微型處理器基本結構說明

1.微型處理器的結構:

 

8086中央處理單元(CPU)是第三代微處理器,是Intel x86系列微處理器中的第一代產品。它是典型的16位微處理器,採用HMOS工藝,芯片內部包含有29000多個晶體管。它具有16位數據線和20位地址線,尋址空間爲1M bytes8086由單一+5V電源供電,時鐘頻率510MHz。從功能上看,8086 CPU分爲執行單元(EU)和總線接口單元(BIU)兩部分。EUBIU協同工作,形成指令級的流水線。

2.EUBIU

(1)BIU的結構和功能
  概括地講,EU負責執行指令,BIU負責與存儲器或I/O接口交互數據。CPU通過BIU從存儲器讀取指令或操作數,送往EU執行。再通過BIUEU執行指令的結果傳送到存貯器或者和I/O端口交換數據。

BIU的功能:

BIUEU完成全部的總線操作,根據EU的命令控制數據在CPU和存儲器或I/O接口之間傳送。以存儲器訪問爲例,BIU的操作過程是這樣的,BIU首先將要訪問存儲器的邏輯地址轉換成物理地址,再從(往)物理地址對應的存儲器單元讀取(寫入)數據;如果是讀取指令,BIU從物理地址取到指令後將指令送入指令隊列

BIU的組成:

段寄存器(均爲16位)
 CS:代碼段寄存器,存放程序段地址;
 DS:數據段寄存器,存放數據段地址;
 ES:擴展段寄存器,存放輔助數據段地址;
 SS:堆棧段寄存器,存放堆棧段地址。

爲什麼要分段??

808620位地址線,具有1M空間的尋址能力。但是808616位微處理器,其內部寄存器均爲16位,那麼如何用16位寄存器提供的信息來實現1M空間的存儲器尋址呢?爲了解決這個問題,8086採用了將存儲器分段的技術。段地址由段寄存器給出,段寄存器內容左移4位得到20位的地址,就是該存儲器段的起始地址。存儲器每段的最大長度爲64K,(因爲16位寄存器表示的最大量爲64K)因此段內的存儲地址相對於該段起始地址的最大偏移爲64K.


指令指針寄存器(16位)
 IP寄存器用於存放程序段的偏移量。
地址加法器(20位)
 地址加法器用於根據邏輯地址計算20位物理地址。
6
字節的指令隊列
 指令隊列可存放多條指令,用於指令預取。

解決8086執行指令的速度要比CPU芯片外部的數據訪問快很多倍的問題;
總線控制電路

 總線控制電路實現總線的控制邏輯,產生相應的控制信號。

 

 

BIU功能的實現:

舉個例子:

CS是代碼段的段寄存器。一條指令的物理地址就是根據代碼段寄存器CS內容和指令指針寄存器IP的內容得到的。具體計算是通過地址加法器進行的,地址加法器將段寄存器的內容左移4位(乘以16),然後再與IP的內容相加。得到指令的物理地址。例如:
  設CSED00HIP=0020H,計算物理地址時,先將CS左移4位,即得到ED00 0H,再與IP內容相加,即ED00 0H + 0020H = ED020HED020H就是該指令的物理地址。
  然後,由總線控制邏輯驅動地址信號和控制信號,讀取ED020H單元的指令。取到指令以後,送入指令隊列的隊尾,備EU執行。EU總是從指令隊列的隊首得到指令。BIUEU執行指令的同時,不斷從存儲器順序讀取一條或多條指令,陸續將指令隊列添滿。這樣,EU就可以連續執行指令,實現指令級的流水作業。

(2)EU的結構和功能

執行單元EUBIU的指令隊列得到指令以後,完成對指令的譯碼、執行並回寫結果。當EU需要操作數時,便申請BIU訪問存儲器並向BIU提供段偏移地址。此外它還具有管理寄存器等功能

EU的組成:

通用寄存器(16 bit
 AX:用作累加器;
 BX:一般用作基址寄存器;
 CX:常常作爲計數器;
 DX:多用作輔助累加器
 AXBXCXDX都是16位寄存器,可是它們都可以分別作爲28位寄存器使用。
專用寄存器(16 bit
 BP:基數指針寄存器
 SP:堆棧指針寄存器
 SI:源變址寄存器
 DI:目的變址寄存器
標誌寄存器Flag16 bit

算術邏輯單元ALU
執行單元的控制電路

標誌寄存器的作用:

(3)BIUEU之間的關係

操作流程:

  • BIU中的指令隊列有2個或2個以上字節爲空時,BIU自動啓動總線週期,從存儲單元取出指令。填充指令隊列。直至將指令隊列填滿,BIU才進入空閒狀態。

  • EU每執行完一條指令,從BIU指令隊列的隊首取指令。系統初始化後,指令隊列爲空,EU需要等待BIU從內存取指填充指令隊列。

  • EU從指令隊列取得指令後,譯碼並執行指令。若該指令需要取操作數或存操作結果,也就是說需要訪問存儲器或者I/O時,EUBIU發出訪問總線的請求。

  • BIU接到EU申請總線的請求,若BIU正忙(正在執行取指令的總線週期),則必須等待BIU執行完當前的總線週期,方能響應EU請求;若BIU空閒,則立即執行EU申請總線的請求。

  • EU執行轉移、調用和返回指令時,若下一條指令不在指令隊列中,則隊列中的指令被自動清除,BIU根據轉移、調用和返回指令指示的目標地址重新取出指令並填充指令隊列。

形成流水線結構:

8086中,指令的提取和執行是分別由總線接口部件和執行部件完成的,它們各行其責又相互配合。它們之間形成指令級的流水線,使得8086CPU可以在執行指令的同時進行讀取指令的操作。執行部件從指令隊列中取得指令的過程是數據在CPU內部寄存器之間傳送的過程,所花費的時間遠遠小於總線訪問的時間。一般情況下,EU可以不斷地從指令隊列中取得指令並執行指令,與BIU從對存儲器的訪問並行執行

3.總線週期

時鐘週期或狀態週期:8086CPU內部的邏輯操作以及與外部存儲器和I/O交換數據進行的總線操作全部由CPU的時鐘來定時的。CPU的基本定時單位稱爲時鐘週期或者狀態週期。假設8086的主頻爲10MHz,一個時鐘週期爲100ns

總線週期:CPU爲了讀取指令或傳送數據,需要通過總線接口部件BIU與存儲器或I/O接口進行信息交互,執行對總線的操作。進行一次數據傳送的總線操作定義爲一個總線週期。
  典型的總線週期通常由4個時鐘(狀態)週期T1T2T3T4組成。
  T1爲地址週期。CPU通過地址/數據(或地址/狀態)複用總線發出地址信息,指示要尋址的存儲器單元或者I/O的地址。

         T2爲緩衝週期。例如,在總線讀週期,CPUT2撤銷低16位地址信號,使該組信號線浮空,準備接收存儲器或I/O的數據。
  T3爲數據週期。數據出現在複用總線的低16位上。
  T4總線週期結束。

空閒週期:
  系統總線處在空閒狀態,此時,執行空閒週期T1

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