多級時序系統:機器週期,時鐘週期
機器週期、節拍(狀態)組成了多級時許系統。
一個指令週期包含若干個機器週期,一個機器週期包含若干個時鐘週期。
一、指令週期和時鐘週期
指令週期:CPU每取出並執行一條指令所需的全部時間叫指令週期,也即CPU完成一條指令的時間叫指令週期
機器週期:一般一條完整的指令包括:取指週期、間址週期、執行週期、中斷週期。所有指令執行過程中的一個基準事件。機器週期取決於指令的功能和器件的速度。機器內的各種操作大致可歸屬於對CPU內部的操作和對主存的操作兩大類。
由於CPU內部的操作速度較快,CPU訪存的操作時間較長,因此通常以訪問一次儲存器的時間定為基準時間較為合理,這個基準時間就是機器週期。
又由於不論執行什麼指令,都需要訪問儲存器取出指令,因此在儲存字長等於指令字長的前提下,取指週期也可看作機器週期。
時鐘週期:在一個機器週期可完成若干個微操作,每個微操作需要一定的時間,可用時鐘訊號來控制每一個微操作命令。用時鐘訊號控制節拍發生器,就可產生節拍。每個節拍的寬度正好對應一個時鐘週期。時鐘週期是控制計算機操作的最小時間單位。
JMP X:該指令的指令週期只有取指週期。
ADD X:該指令只有取指週期、執行週期。
一個指令週期包含的機器週期個數亦與指令所要求的動作有關,如單運算元指令,只需要一個取運算元週期,而雙運算元指令需要兩個取運算元週期。實際上,不同的指令可以有不同的機器週期個數,而每個機器週期又可包含不同的時鐘脈衝個數。
二、取指週期、間址週期、執行週期、中斷週期
取指週期:在取指週期中CPU主要完成兩個操作:(1)按程式計數器PC的內容取指令(2)形成後繼指令的地址;
間址週期:當遇到間接定址的指令時,由於指令字中只給出運算元有效地址的地址,因此,為了取出運算元,需先訪問一次儲存器,取出有效地址,然後在接下來的執行週期才可以去取出運算元。
執行週期:間址週期是取出運算元的有效地址。執行週期是取出運算元,並執行。
中斷週期:在執行週期結束時刻,CPU要查詢是否有請求中斷的事件發生,如果有則進入中斷週期。
在中斷週期,由中斷隱指令自動完成保護斷點、尋找中斷服務程式入口地址以及硬體關中斷的操作。
三、機器速度
機器速度不僅與主頻有關,還與機器週期中所含時鐘週期(主頻的倒數)數以及指令週期所含的機器週期數有關。
相關文章
- 時鐘週期,機器週期,指令週期
- [微控制器]時鐘週期
- Python學習需要多長時間?學習週期Python
- 10分鐘理解React生命週期React
- 實時時鐘、系統時鐘和主機伺服器時鐘的區別伺服器
- 關於定時器週期、頻率等相關計算定時器
- 虛擬機器類載入機制_類載入時機和類的生命週期虛擬機
- 一臺智慧手機的系統維護週期有多長才算合理?
- 生命週期
- Newbe.Claptrap 框架如何實現多級生命週期控制?APT框架
- VNPY 自帶跨時間週期交易策略MultiTimeframeStrategy 分析
- View生命週期與Activity生命週期的關係View
- TiPLM---產品全生命週期管理系統
- vue - 生命週期Vue
- Fragment生命週期Fragment
- vue生命週期Vue
- spring生命週期Spring
- ubuntu生命週期Ubuntu
- Flutter - 生命週期Flutter
- sessionStorag 生命週期Session
- PHP 生命週期PHP
- maven生命週期Maven
- Activity生命週期
- React生命週期React
- Salesforce 生命週期管理(一)應用生命週期淺談Salesforce
- 不同時期資料如何儲存?浪潮資訊提供全生命週期管理方案
- c++臨時物件導致的生命週期問題C++物件
- 圖解React的生命週期及執行順序圖解React
- 【系統設計】系統發展生命週期(System Development Life Cycle)dev
- 週期函式的傅立葉級數函式
- vue 生命週期梳理Vue
- Laravel 請求週期Laravel
- java servlet 生命週期JavaServlet
- Android Activity生命週期Android
- Activity生命週期onDestroy
- React-生命週期React
- IOC與生命週期
- vue 生命週期深入Vue