<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 32位嵌入式CPU中系統控制協(xié)處理器的設計

32位嵌入式CPU中系統控制協(xié)處理器的設計

——
作者: 時(shí)間:2007-08-27 來(lái)源:電子設計應用 收藏
 MIPS體系結構中的系統控制協(xié)簡(jiǎn)稱(chēng)CP0,它提供指令正常執行所需的環(huán)境,進(jìn)行異常/中斷處理、高速緩存填充、虛實(shí)地址轉換、操作模式轉換等操作。單從硬件的角度而言,系統控制協(xié)對指令集的作用就相當于操作系統對應用程序的作用一樣。

  異常處理

  運行過(guò)程中常常需要中斷正常執行的指令流程,跳轉去執行某段特殊的指令段,接著(zhù)再恢復原來(lái)的指令序列。MIPS體系結構中稱(chēng)這樣的過(guò)程為異常(Exception)。所有的異常都采用統一的機制處理。

  對于異常情況,需要采取以下3方面的措施:

  1) 異常檢測:需要及時(shí)檢測出哪個(gè)部件發(fā)生了什么異常;一般而言,異常檢測由各個(gè)模塊進(jìn)行,如加法溢出由加法器在運算過(guò)程中產(chǎn)生,并在相應的流水段被系統控制協(xié)CP0讀入。因此這部分功能不屬于CP0的設計范圍。

  2) 異常處理:按照優(yōu)先級選擇哪個(gè)異常被處理,并進(jìn)行必要的上下文切換(Context Switch),為進(jìn)入異常服務(wù)子程序做準備,保證與該種異常對應的服務(wù)程序被執行,并且能夠從中斷處完全恢復原來(lái)的指令執行現場(chǎng)。

  3) 異常服務(wù):執行異常服務(wù)子程序,這部

分主要由軟件(操作系統)來(lái)完成。

  對異常處理機制的要求

  與傳統的異常/中斷處理機制相比,在MIPS 4Kc體系結構下的異常處理需要特別考慮3個(gè)因素。

  流水線(xiàn)的劃分

  本設計采用五段流水線(xiàn)設計,即每條指令的執行一般都經(jīng)過(guò)IF(取指)、DE(指令譯碼)、EX(指令執行)、MEM(訪(fǎng)問(wèn)存儲器)和WB(數據寫(xiě)回R.F.)五個(gè)步驟。因為指令動(dòng)作被分割,所以異常源也被分割到各個(gè)流水線(xiàn)段。例如:加法溢出異常只能在EX被檢測到。

  精確異常處理機制

  精確異常處理是指在發(fā)生異常時(shí),僅僅對發(fā)生異常的指令或其后面的指令進(jìn)行異常處理;而其前面的指令要保證能夠正常結束。所謂“精確”,是指受到異常處理影響的只有產(chǎn)生異常條件的那條指令,所有在此之前的指令在異常被處理前都將被執行完成。異常處理結束后仍將從發(fā)生異常的指令開(kāi)始繼續執行。

  操作模式切換

  對于多進(jìn)程操作系統,至少要區分兩種進(jìn)程:有特權的操作系統“核心”進(jìn)程和一般程序的“用戶(hù)”進(jìn)程。當CPU檢測到異常發(fā)生時(shí),指令執行的正常順序會(huì )被暫停,處理器進(jìn)入核心模式。當異常服務(wù)子程序執行完后,CPU從斷點(diǎn)中恢復現場(chǎng),繼續執行原指令序列。

  異常處理流水線(xiàn)

  根據上述分析可以確定,硬件異常處理流水線(xiàn)的主要任務(wù)有3個(gè):更新相應的CP0寄存器,即寫(xiě)CP0寄存器;保存發(fā)生異常的指令地址,或當異常指令在延遲槽時(shí),保存引起延遲槽的跳轉指令地址;選擇異常服務(wù)子程序的入口地址。

  CP0寄存器記錄了CPU當前的狀態(tài),因此,對CP0寄存器的寫(xiě)就是對CPU狀態(tài)的改變,需要進(jìn)行嚴格的控制。而且對寄存器的寫(xiě)是影響關(guān)鍵路徑的主要因素。因此本文主要論述對CP0寄存器寫(xiě)操作的設計。

  每個(gè)寄存器或寄存器某些位的寫(xiě)操作都是由一個(gè)或一組異常事件是否發(fā)生而決定的。為此每一個(gè)流水段產(chǎn)生并被接收的異常都將被編碼,稱(chēng)為異常編碼,并在段與段之間進(jìn)行傳遞,直到MEM段。在MEM段,異常編碼被用于產(chǎn)生對CP0寄存器的寫(xiě)使能信號,需要進(jìn)行復雜的解碼使MEM段變長(cháng),這成為提高整個(gè)CPU速度的瓶頸。為了減少這個(gè)瓶頸,可增加專(zhuān)門(mén)用于產(chǎn)生寫(xiě)使能信號的邏輯。每一級流水線(xiàn)產(chǎn)生的異常直接產(chǎn)生寫(xiě)使能,并經(jīng)過(guò)簡(jiǎn)單的優(yōu)先級比較,不管它是由哪個(gè)異常類(lèi)型產(chǎn)生的,均產(chǎn)生1位的寫(xiě)使能信號。那么,在MEM段就可以避免復雜的解碼,直接產(chǎn)生對相關(guān)CP0寄存器的寫(xiě)使能信號。這一方案采用了以空間換時(shí)間的方法:縱向的執行時(shí)間減少了,而橫向則需要增加寫(xiě)使能判別邏輯。增加邏輯功能意味著(zhù)需要占用更多的芯片面積,考慮到CP0模塊處于整個(gè)CPU的邊緣,而且全定制物理設計可以大大縮減芯片面積,因此該方案具有可行性。

  系統控制協(xié)處理器的全定制物理設計

  在深亞微米級的集成電路芯片里,器件(晶體管)本身對時(shí)延的貢獻已越來(lái)越小,主要延遲在于連線(xiàn)延遲。由于CP0功能的特殊性,它和存儲管理單元MMU、指令計數單元PC都有很多連線(xiàn),這些連線(xiàn)很可能處于全芯片的關(guān)鍵路徑上;而且由于CP0邏輯比較復雜,按照標準單元法自動(dòng)布局布線(xiàn)生成的模塊自身面積就很大,某些連線(xiàn)在CP0內部就要走很多彎路,可能造成很大的延時(shí)。所以決定采用全定制方法設計CP0的數據通路,以方便控制連線(xiàn)的走向和布局。

  控制通路與數據通路的劃分

  數字電路系統的正常運作過(guò)程中存在數據流(包括一般意義上的數據、指令和地址)和控制流。而數據流和控制流是相對獨立的:數據流實(shí)現的邏輯相對簡(jiǎn)單,但有很多位數據并行;而控制流的邏輯較復雜,絕大多數是1位或幾位的控制信號。因此,控制通路一般不采用全定制設計;而數據通路的全定制設計就具有高性能、低功耗、低成本的優(yōu)勢。

    協(xié)助TLB進(jìn)行虛實(shí)地址轉換是CP0的主要功能之一。TLB屬于系統的特權資源,只有CP0有權對其進(jìn)行訪(fǎng)問(wèn),因此CP0與TLB之間的連線(xiàn)較多,數據交換的時(shí)延也比較關(guān)鍵。同時(shí),PC模塊與CP0的數據交換也非常重要。因此,CP0單元在版圖上最好同時(shí)靠近TLB和PC模塊。本設計將CP0中與TLB相關(guān)的邏輯與寄存器獨立為CP0T,放在MMU與PC模塊之間;CP0的其余部分歸為CP0E,放在PC下部,也就是整塊芯片的最下端。如圖1所示。

 CP0單元與臨近單元的連接示意圖

圖1. CP0單元與臨近單元的連接示意圖

  電路設計

  本設計中使用的電路輸入工具為Cadence公司的Composer。設計時(shí),將HDL描述轉化為電路描述后輸入到Composer中。然后,通過(guò)形式驗證來(lái)確保所設計的電路與RTL代碼一致。電路設計的好壞很大程度上要取決于設計者的經(jīng)驗和技巧。

  電路的定制設計主要指的是,在Composer環(huán)境中手工設計晶體管級的電路。電路參數的確定由Synopsys的電路仿真工具Hspice協(xié)助完成。將從設計好的電路中抽出的網(wǎng)表輸入到Hspice中,仿真計算出電路的時(shí)延

,再根據時(shí)延來(lái)修改電路MOS管的參數。

  為了減少全定制設計的工作量,電路設計要建立模塊的微體系結構。其中CP0的基本單元確定如下:基本的CP0寄存器(時(shí)鐘上沿同步寄存器) ;比較器;加法器;多選一選擇器(包括2選1、3選1和4選1 MUX);驅動(dòng)器(即反相器;其尺寸參數化以適應不同驅動(dòng)要求)。

  加法器基本采用了超前進(jìn)位加法器的思想,然后在整體上分成兩個(gè)16位加法器的模塊,模塊間采用進(jìn)位選擇加法器的思想,從而大大提高了整個(gè)電路的速度。但其面積比全部采用超前進(jìn)位加法器時(shí)要大20%左右。

  設計出來(lái)的電路邏輯是否正確,時(shí)延是否滿(mǎn)足要求,分別需要做功能驗證和電路仿真。在驗證了各個(gè)小模塊的正確性之后,需驗證小模塊之間的邏輯連接正確性,最后對整個(gè)模塊進(jìn)行驗證,進(jìn)一步分析電路找出模塊中的最長(cháng)路徑,通過(guò)仿真、更改電路、再仿真的過(guò)程,來(lái)確定該模塊是否能達到預期的邏輯設計要求。

  版圖的全定制設計

  版圖設計是根據電路功能和性能的要求以及工藝條件的限制(如線(xiàn)寬、間距、制版設備所允許的基本圖形等),設計集成電路制造過(guò)程中必需的光刻掩膜版圖。版圖設計與集成電路制造工藝技術(shù)緊密相連,是集成電路設計的最終目標。

  在設計過(guò)程中,為了降低設計的復雜度,采用混合設計模式,即全定制和標準單元設計相結合的設計方法。這樣既有利于保證電性能的要求,又能減小設計周期,是一種較為理想的設計模式。

  在全定制版圖中,設計過(guò)程分為兩步完成,每個(gè)大單元電路總是由各種基本電路組合而成,所以第一步是繪制基本電路的版圖,畫(huà)完后做DRC和LVS,保證基本電路的正確性。第二步用這些基本電路來(lái)組合成大的單元。

  全定制芯片設計可以根據數據通路電路的規則手工設計出合理的版圖。版圖設計中盡量保證各個(gè)部分的規整和對稱(chēng),使其易于擴展。版圖的布局中使聯(lián)系較多的單元盡量靠近,從而縮短互連線(xiàn)的長(cháng)度,減小每個(gè)單元的面積和時(shí)延,降低器件的負載電容,采取的具體措施如下:

  1) 增加地與襯底、電源與阱的接觸,在沒(méi)有器件和走線(xiàn)的空白處多打接觸孔,并且將其與電源或地連接,有利于收集噪聲電流、穩定電位、減小干擾和被干擾;

  2) 形成網(wǎng)狀的電源地線(xiàn)網(wǎng)絡(luò );

  3) 避免同層或上下兩層中長(cháng)金屬線(xiàn)的平行走線(xiàn),對噪聲敏感的線(xiàn)盡量布得短;

  4) 避免首尾循環(huán)的走線(xiàn);

  5) 在滿(mǎn)足設計規則的前提下,盡量減小MOS管的有源區面積,以減小寄生電容,提高工作速度;

  6) 在數據通路設計中,要為金屬連線(xiàn)留下一些備用位置。

  控制通路與數據通路的集成設計及驗證

  邏輯層次

  控制部分直接用行為級的RTL代碼,數據通路部分由從全定制電路導出的結構化RTL代碼,得到全模塊的邏輯描述。

  可采用向量進(jìn)行驗證,與采用RTL(或C模型)進(jìn)行驗證的結果(trace文件)進(jìn)行比對。

  電路層次

  電路層次控制通路與數據通路的集成可以借助Composer順利完成。

  對于延時(shí)信息的獲取,數據通路或控制通路內部的路徑分別采用Hspice仿真及綜合來(lái)獲得,分析內部是否存在關(guān)鍵路徑。

  涉及數據通路與控制通路之間的關(guān)鍵路徑,可以由全定制部分提交數據通路部分接口的輸入/輸出時(shí)延信息,即該路徑在其內部需要的時(shí)間。以這些信息作為外部約束,再對相關(guān)模塊進(jìn)行綜合(按模塊綜合),結果文件中將得到集成后的關(guān)鍵路徑。

  版圖層次

  要保證版圖與電路的一致性,需要做LVS驗證。即將控制通路的門(mén)級網(wǎng)表導入Composer,與數據通路的全定制電路合成總電路,并由此提取電路級的Spice網(wǎng)表進(jìn)行LVS驗證。LVS采用的工具為Mentor Graphics 的Calibre工具。

  結語(yǔ)

  本文主要研究了基于MIPS 4Kc體系結構的系統控制協(xié)處理器的設計和實(shí)現,包括精確異常處理的實(shí)現方式和全定制的物理設計。在對精確異常處理機制的過(guò)程中通過(guò)增加寫(xiě)使能判別邏輯達到了縮減關(guān)鍵路徑時(shí)延的目的,降低了控制邏輯的復雜性,同時(shí)增加了全芯片的可靠性。本文的設計通過(guò)了邏輯、電路驗證,應用于CPU的設計中,并采用中芯國際的1P6M 0.18mm工藝成功流片。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>