企業級的理解---你不得不看的Pentium處理器

 

Pentium微處理器

Pentium微處理器是一種最先進的32位微處理器。它與DOS,Windows, OS/2和UNIX基礎上的應用軟件兼容。
有兩組算術邏輯單元(ALU)、兩條流水線、能同時執行兩條指令;
並且把數據cache(高速緩衝存儲器)和代碼cache分開;不僅提高了總線的速度;還將數據總線增加到64條;
流水浮點部件提供了工作站的特性。因此它幾乎具有兩臺80X86的功能。

 

 

 

Pentium的原理結構

  包括12個主要部件,核心部件是兩個流水線執行部件和浮點處理部件


總線接口部件  

  • 實現CPU與系統總線的連接,包含64位數據線、32位地址線和控制信號線,實現信息交換

U流水線和V流水線       

  • 獨立運行,均含ALU。每條流水線含5級(取指令、譯碼、生成地址、執行指令、回寫) 
  • U:可執行所有的整數運算指令 V:執行簡單的整數運算和數據交換指令

數據Cache      

  • 存放CPU最近要使用的數據和指令,提高存取速度,並分別配置了轉換檢測緩衝器

代碼Cache    

  • Cache存放CPU最近要使用的數據和指令,提高存取速度,並配置轉換檢測緩衝器(TLB),將線性地址轉換爲高速緩存的物理地址

控制ROM       

  • 含有複雜指令對應的微程序

分支目標緩衝器BTB   

  • BTB在遇到條件轉移指令時用來預測是否發生轉移,並提供預取地址

控制部件    

  • 通過解析指令譯碼器中的譯碼信息和控制ROM中的微程序,控制兩條流水線和FPU的執行

浮點處理單元FPU           

  • 採用硬件電路實現加、乘、除浮點運算

分段部件和分頁部件        

  • 分段/分頁實現對存儲器的兩級管理

寄存器組                       

  •  通用寄存器
  • 段寄存器
  • 描述符寄存器
  • 指令計數器
  • 標誌寄存器
  • 控制組寄存器
  • 系統地址寄存器
  • 調試寄存器

指令預取部件                 

  •  從指令緩存中預取指令流

指令譯碼器                   

  • 三個譯碼器進行譯碼

Pentium的主要部件


總線接口部件

64位數據線、32位地址線、控制總線


功能
    ① 地址驅動和傳輸:A31~ A3、BE7#~BE0#
    ② 數據驅動:D63~D0
    ③ 數據總線寬度控制(8,16,32,64位通過控制信號實現總線寬度控制)
    ④ 數據緩衝
    ⑤ 總線操作的控制功能(數據傳輸,成組傳輸,中斷,復位,DMA操作等)
    ⑥ 奇/偶校驗告示功能
    ⑦ Cache操作控制(片內和片外Cache一致性)


U流水線和V流水線,獨立運行


代碼Cache和數據Cache(高速緩存可讀寫RAM)

  1. 兩者分開,減少衝突,提高數據存取命中率
  2. 兩者分別配置專用的TLB(轉換檢測緩衝器),將線性地址轉換爲高速緩存的物理地址


指令預取部件IPU、指令譯碼器IDU、控制ROM和分支目標緩衝器BTB

  1. IPU每次預取兩條指令
  2. 複雜指令需要控制ROM的轉換(轉換爲微程序)


控制部件(控制流水線和FPU的正常運行)

  1. FPU按流水線機制執行指令(8級)
  2. 是U流水線的補充
  3. 浮點運算指令的前4級在U流水線中執行
  4. 常用浮點指令採用專門的硬件電路實現
  5. 支持32位、64位、80位精度

 

分段部件和分頁部件

  1. 片內二級存儲管理
  2. 分段將邏輯地址轉換爲物理地址
  3. 分頁將線性地址轉換爲物理地址

先進的體系結構

  1. 外部數據總線爲64位,數據傳輸量提高一倍
  2. 設置片內代碼cache和數據cache(速度高容量小的存儲器)提高取指令和讀/寫數據速度
  3. 兩條指令流水線並行執行
  4. 片內集成FPU(浮點運算器),是U流水線的補充,採用硬件實現浮點運算,對ADD,MUL,INC,DEC,PUSH等常用指令採用硬件實現
  5. 採用分段和分頁兩級存儲管理機制,存儲管理方便靈活
  6. 增強了信息傳輸準確性的檢測能力和機器異常事件的處理能力

 

RISC,CISC技術

計算機流水線一般是:指令流水線和運算流水線

RISC出現後,就出現了超流水線,超標量等體系結構

CISC

新設計的處理器,只需要增加較少的電晶體就可以執行同樣的指令集,也可以很快的編寫新的指令集程式。

優點:能夠有效縮短新指令的微代碼設計事件,允許設計師實現CISC體系機器的向上相容

缺點:指令集以及晶片的設計比上一代產品更復雜,不同的指令需要不同的時鐘週期完成,執行較慢的指令,將影響整臺機器的執行效率

 

RISC

解決途徑就是減少微處理器指令總數和減少指令操作的時鐘週期數

精簡指令集:包含了簡單的基本指令,透過簡單,基本的指令,就可以組成複雜指令。

相同長度的指令:每條指令的長度都是相同的,可以再一個單獨西操作裏完成。

單機器週期指令:大多數的指令都可以再一個機器週期裏完成,並且允許處理器在同一時間內執行一系列的指令

優點:在使用相同的晶片技術相同運行時鐘下,RISC系統的運行速度是CISC的2~ 4倍

缺點:要選用合適的編譯器;多任務環境下,會形成任務切換時衆多寄存器保護和恢復的需求,從而增加操作量

 

Pentium結合兩者之長——大多數指令採用簡化指令,但仍保留一部分複雜指令並用硬件實現

RISC對編譯器的要求高,CISC強調硬件的複雜性,CPU的實現更爲複雜

 

超標量流水線

超流水線結構:一個時鐘週期再細分偉多個子週期,每個子週期發出一條指令
超標量結構:再每個時鐘週期內發射多條指令,這要求微處理器片內集成兩條或以上的流水線
超標量超流水線結構:就是超流水線和超標量結合起來

標準狀態下:一個處理器含有一條指令流水線

 

Pentium微處理器的超標量執行機構允許兩條指令以並行的方式執行:一條叫U流水線,一條叫V流水線

這種雙流水線可以使兩條指令並行執行,使Pentium微處理器在每個時鐘週期內可以同時執行兩條指令

 

U流水線和V流水線均含有獨立的ALU,一系列寄存器,地址生成電路和連接數據Cache存取數據,稱爲Cache雙端接口

要求所有指令基本都是簡化指令,V流水線能接受U流水線的下一條指令

先進的分支預測技術

BTB可以進行動態分支預測

BTB含有一個1KB容量的Cache,BTB中存放三種信息。

以前執行過的分支指令的地址記錄BIA;該分支指令的跳轉目的地址BTA;分支歷史記錄,歷史狀態有四種情況:必定轉移,可能轉移,可能不轉移,必定不轉移

指令解碼完成後,CPU搜索BTB中的記錄,如果當前指令的地址與BTB某一條目中的BIA部分記錄相符,則成爲一次BTB命中。BTB命中後首先根據該條目分支歷史紀錄來判定分支是否跳轉,如果判定爲跳轉,那麼CPU按條目中BTA的地址紀錄取指令,否則依舊按編譯順序取指令。如果BTB未命中,.則同樣按編譯順序取指令。

與此同時,不論BTB是否命中,也不論預測結果如何,分支指令依然會被送到下級處理單元,直至執行完成,並將執行結果回饋給BTB。如果出現誤預測,則修改歷史記錄,並清空流水線裏的後續指令,並按正確的地址進行取指。
進一步提高性能

雙向分支預測 芯片內部配置了兩個預取緩衝存儲器 一個按照BTB預測結果預取指令,並在預取指令時,在BTB中建立一個登記項

 

Pentium的指令流水線技術

指令流水線的組成

總線接口部件

  1. 控制數據總線和地址總線的信息傳輸
  2. 主要進行讀取指令和存取指令

指令預取部件

        在總線空閒時從存儲器讀取指令放入指令預取隊列

指令譯碼部件

        對指令譯碼,送入譯碼指令隊列

執行部件

         控制兩條流水線的運行

 

總線接口部件、指令預取部件、指令譯碼部件和存儲器管理部件構成了80386CPU指令流水線

指令流水線的原理

非流水線方式

以此執行取指令,指令譯碼,執行三個操作

流水線

  1. Pentium的整數運算流水線最初由5級組成:
  2. 指令預取級PF、首級譯碼級D1、二次譯碼級D2(形成物理地址)、執行級EX、回寫級WB
  3. 級別越多,速度越快
  4. Pentium4的流水線達20級
  • Pentium的浮點運算部件也採用流水線機制運行 8級組成:PF、D1、D2、EX、X1、X2、WF、ER

 

八個階段的浮點流水線:

  1. PF 預取
  2. D1 譯碼階段1
  3. D2 譯碼階段2
  4. EX 取操作數
  5. X1 浮點執行步驟1
  6. X2 浮點執行步驟2
  7. WT 寫浮點數
  8. ER 出錯報告

 

 

超標量流水線技術

標準狀態下

  • 一個處理器含有一條指令流水線

超標量

  • 一個處理器中又多條指令流水線

指令流水線的組成

  • 總線接口部件、指令預取部件、指令譯碼部件、執行部件

Pentium的一條指令流水線:

  • 5級:指令預取級PF、首次譯碼級D1、D2、執行級EX、回寫級WB

Pentium中:

  1. U、V兩條流水線,U—所有整數運算,V—簡單整數運算和數據交換指令
  2. 每條流水線均含有獨立的ALU、一系列寄存器、地址生成電路、連接數據Cache的接口

超標量:

  • 以並行方式在U、V兩條流水線上同時執行兩條指令
  • 在U流水線中可以執行任何指令
  • V流水線中只能執行和U流水線當前執行的指令符合配對規則的指令

配對規則:

  • 兩條指令都是簡單指令(包括RISC指令)
  • 互相沒有寄存器關聯性:兩條指令中的寄存器不是“讀後寫”或者“寫後寫”的關係(不能對同一寄存器多次操作)
  • 一條指令不能同時既包含位移量又包含立即數
  • 帶前綴的指令只能出現在U流水中
  • 浮點運算指令不能和任何指令配對

過程:

  • D1步驟,指令譯碼器中的兩個並行的譯碼部件對兩套指令譯碼,並用指令配對規則進行判斷
  • 不能100%配對成功:V流水線不會全速運行

流水線受阻的情況:

  • U:影響V
  • V:不會影響U

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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