操作系統學習筆記(一)-- CPU

 

1 CPU內部主要部件及功能

image

PC: 程序計數器,存儲下一條執行的指令的地址

IR: 指令寄存器,存儲下一條執行的指令內容

MAR: 存儲器地址寄存器,用於確定下一次讀/寫的存儲器地址;

MBR: 存儲器緩衝寄存器,用於存放要寫入存儲器的數據或者從存儲器中讀取的數據;

I/O MAR: 輸入/輸出地址寄存器,用於確定一個特定的輸入/輸出設備;

I/O MBR: 輸入/輸出緩衝寄存器,用於在輸入/輸出模塊和處理器間交換數據

2 指令的執行

2.1 基本指令週期

image

2.2 一個簡單程序的執行過程

下圖描述了一個簡單的程序片段的執行過程,該片段把地址爲940的存儲單元中的內容與地址爲941的存儲單元內容相加,並將結果保存在後一個單元中。操作碼0001、0010和0101分別表示從存儲器中加載到AC、把AC的內容存儲到存儲器和將存儲器中的內容相加到AC中:

image

2.3 中斷
2.3.1 中斷的基本概念

中斷最初是爲了提高CPU的效率,使得CPU可以及時相應一些突發事件,如掉電、存儲器奇偶校驗出錯、I/O設備正常完成某個操作或出現錯誤等。中斷從引起中斷的不同原因的角度,可以分爲如下幾類:

1) 程序中斷:如算術溢出、除數爲0、執行非法指令和訪問不允許的存儲器位置等;

2) 時鐘中斷:由CPU內部的計時器產生,允許操作系統在時鐘中斷時執行進程/線程調度;

3) I/O中斷:由I/O控制器產生,通知CPU一個操作的正常完成或錯誤;

4) 硬件失效中斷:如掉電或奇偶校驗出錯之類的故障產生

爲了適應中斷產生的情況,在指令週期中需要增加一箇中斷階段,如下圖所示。在中斷階段,CPU檢查是否有中斷髮生,即檢查是否有中斷信號。如果沒有中斷,處理器繼續運行,並在取指週期取當前程序的下一條指令;如果有中斷,處理器掛起當前程序的執行,並執行一箇中斷處理程序。中斷處理程序通常是操作系統的一部分,它確定中斷的性質並執行所需要的操作。當中斷處理程序完成後,處理器在中斷點恢復用戶程序的執行。

2.3.2 中斷處理過程

下圖描述了當一箇中斷髮生時,處理器執行的指令序列。爲了保證中斷處理完畢後處理器可以恢復原有程序的執行,保存原有程序被中斷時的所有狀態信息並在中斷處理結束後恢復這些信息,是十分重要的。

image

2.3.3 多箇中斷的處理

1)正在處理一箇中斷時,禁止再發生中斷(CPU忽略新的中斷信號);

2) 定義中斷優先級,允許高優先級的中斷請求打斷低優先級的中斷處理程序的運行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章