中央處理機一般功能
(1)進行算術邏輯運算
(2)可接收和傳送數據
(3)可暫存少量數據
(4)提供控制信號
CPU一般組成
(2)控制邏輯
(3)暫存器組
中央處理機結構格式
中央處理機執行系統需要的算術和邏輯操作並對系統匯流排實施統一的管理。
1.兩種程式狀態
中央處理機在兩種不同的狀態下工作。這兩種狀態是核心態和用戶態。只有核心態程式對系統有完全的控制權。用戶態不允許執行某些指令,不允許直接與系統中的外圍設備打交道*。這樣的硬體特性適用於多道程式環境下實施完善的保護。
2.通用暫存器
中央處理機使用6個通用暫存器,兩個堆疊指示器和一個程式計數器。R7用作機器的程式計數器(PC),存放下一條要執行的指令地址。此外它可以用於編址,但不能作為累加器使用。R6通常作為“處理機堆疊指示器”,保存最近進人堆疊的數據地址。在186計算機中有兩個處理機堆疊指示器:“核心態堆疊指示器”和“用戶態堆疊指示器”。它們由相應程式狀態的程式使用。當發生外中斷或內中斷時,處理機原來的狀態保留在由服務程式的程式態所規定的處理機堆疊中。其餘的6個暫存器是真正的通用暫存器。
3.處理機狀態字(pSW)777776
處理機狀態字暫存器存放處理機的現時狀態。它包括:現時處理機優先權,現行程式態和原先程式態,表征最近一條指令結果特徵的條件碼,一個程式調整的跟蹤位。
現行程式態(14、15位)是指目前正在利用處理機運行的程式是核心態或用戶態。原先態(12、13位)是指最近一次外中斷或內中斷之前的程式態是核心態或用戶態。
兩種程式態為多道程式系統提供了保護環境,因為它為用戶提供了兩個處理機堆疊和兩組存管暫存器。除了核心態程式之外,其它態的程式禁止執行“停機”指令。非核心態程式企圖執行“停機”指令,使處理機發生“非法停機”內中斷,內中斷向量地址4。此外,非核心態的“復位”或“置優先權”指令,不被執行,作為“空操作”指令對待。只有核心態程式可以執行所有的指令。它可以把用戶程式分配到存貯空間的任何位置,從而直接地保護關鍵區域(包括設備暫存器和處理機狀態字)在用戶操作環境下不被破壞。
在處理機狀態字的5~7位,保存著現在在處理機中運行的程式的優先權,它起著外中斷請求禁止的作用。三位代碼表示了處理機8個可能的優先權。當處理機的優先權是7時,所有的外中斷請求都不能被回響。處理機只回響比其優先權高的外中斷請求。處理機優先權可通過執行“置優先權”指令動態地改變。這條指令允許核心態程式,在不改變處理機狀態字其餘部分的情況下,改變處理機的優先權。
4.向量區的保護
在186機中,從。~377號單元為系統向量區,在這裡存放的信息極為重要,不允許破壞,由於系統堆疊通常設定在系統向量區之上,而且它是向低地址擴展的,所以進棧操作有可能破壞向量區。為防止進棧操作破壞系匆句量區,在186機內,設有堆疊溢出檢測功能,當進棧地址小於(400)8時引起“堆疊溢出”內中斷。
5.中斷系統
介紹了中央處理機內程式可訪的主要資源的基礎上,以中斷系統為題目來說明系統各部分相互作用的約定。
(1)直傳請求和直傳
在186機中,直傳請求只是請求單匯流排控制權,在獲得匯流排控制權後,匯流排上的丙個設備之間直接傳送數據,無需中央處理機為干預。但因為在單匯流排使用上會與中央處理禮發生衝突,所以必須規定兩者的優先次序。在180系列中,直傳請求的優先權高於處理機。在186機中更是重點保證直傳請求能獲得最快的回響。基本上做到現行匯流排周期一結束就予以回響。所以直傳請求的等待時間不大於代個存貯周期。直傳請求設備一旦獲得控制權以後,可按與之協同工作的存貯器等效周期時間相同的速度進行高速傳輸。
(2)外設硬體中斷請求
186計算機設定了四根外中斷請求線,供單匯流排上的外設為中斷的目的請求匯流排控制權。外中斷請求在中央處理機完成一條指令時,按預定的硬體優先權予以回響,在所有請求中優先權最高的設備取得匯流排控制權。通過外中斷請求線取得匯流排控制權的設備原則上可以進行兩種可能的操作:(l)啟動匯流排數據傳輸(2)發中斷命令及中斷向量地址,使處理機執行它所要求的中斷服務程式。或者在進行第一種操作之後再進行第二次操作。實際上在180系列中的大多數設備通過外中斷請求獲得控制權的設備只進行第二種操作。
(3)內中斷和緊急內中斷
中央處理機和存貯系統發生的錯誤和某些指令的執行,使處理機中斷現行程式轉而執行相應的中斷處理程式。這個過程與回響外中斷請求的過程相類似,由於中斷源是在中央處理機內部,所以稱為內中斷。根據內中斷源的性質,內甲斷分為內中斷和緊急內中斷兩類。凡是檢測到一次內中斷請求時,本條指令尚能執行完畢,然後再轉入中斷處理的稱為一般內中斷;凡是內中斷的原因使本條指令不能進行下去,必須中止引起內中斷的操作,立即轉人中斷處理的,稱為緊急內中斷。
(4)中斷的申請及優先權結構
內中斷及緊急內中斷源直接向處理機申請中斷並提供中斷向量地址。內中斷不受處理機優先權的禁止,即可視為優先於所有處理機程式。外部設備請求中斷表現為請求匯流排控制權的形式。對匯流排控制權處理取決於設備在單匯流排優先權結構中的位置。
(5)中斷的利用
通過外中斷請求取得匯流排控制權的設備可以通過中斷中央處理機的現行程式,使處理機的全部功能為設備服務,利用整個指令系統操;縱數據和狀態暫存器。每個可以中斷處理機現行程式的設備在主存中有一對單元保存它的“中斷向量”。其中第一個字存放它的服務程式的起始地址。第2個字是處理程式所使用的處理機狀態字,通過正確地使用處理機狀態字,可以轉變處理機的程式態,改變所用的堆疊指示器,修改處理機的優先權。
(6)外中斷步驟
在186機中下述中斷處理步驟是由硬體自動完成的:
①如果中斷優先權系統許可,處理機批准在所有申請中斷的設備中,優先權最高的設備取得匯流排控制權。
②設備取得匯流排控制權,向處理機發出“中斷”命令,和它的服務程式的向量地址。向量地址和服務程式都是在核心態虛擬空間。中斷向量的第一個字是服務程式的首地址,中斷向量的第二個字(它的地址等於中斷向量地址+2)是該服務程式所用的處理機狀態字。
③處理機把現行處理機狀態字和程式計數器存人處理機內的暫存暫存器。
④處理機從核心態虛擬空間取出新的程式計數器和狀態暫存器(中斷向量)。然後把老的程式狀態和程式計數器壓入由新的程式狀態字15、14位所規定的堆疊。並且把老程式狀態字的現行程式狀態置人狀態字暫存器的13、12位。然後啟動服務程式。
這些操作,從處理機接受中斷命令,至開始執行服務程式的第一條指令,所花的時間約為12微秒。這個時間是以整個過程中未發生直接傳送為前提的。
⑤中斷服務程式結束時,通過執行“中斷返回”或“推遲跟蹤中斷返回”指令返回被中斷的程式。執行上述命令的結果是從現行程式態堆疊中彈出兩個字裝人程式計數器和狀態字暫存器。
(7)內中斷步驟
內中斷步驟與外中斷基本相同,每個內中斷源有自己的中斷向量。所不同的是因為中斷源在處理機內部,所以不必請求匯流排控制權,就可傳送中斷向量。
(8)系統對同時發生的內中斷,外中斷統一按如下優先次序服務:
①在處理“指令內中斷”、“跟蹤內中斷”、“堆疊溢出內中斷”或“匯流排錯誤內中斷”時又出現匯流排錯誤,處理機只能立即停機。
②在處理“指令內中斷”、“匯流排錯誤內中斷”或“跟蹤內中斷”的過程中出現“堆疊溢出”,處理過程被完成。然後處理堆疊溢出。在處理堆疊溢出時,在中斷隱指令中仍有兩次壓堆疊的操作會引起堆疊進一步溢出,在中央處理機內已採取措施避免因此而引起死循環。