解決CPU異常的‘功臣’,系統(tǒng)控制協(xié)處理器的全定制設(shè)計(jì)
發(fā)布時(shí)間:2016-01-26 責(zé)任編輯:susan
【導(dǎo)讀】IPS體系結(jié)構(gòu)中的系統(tǒng)控制協(xié)處理器簡(jiǎn)稱CP0,專門提供指令正常執(zhí)行所需的環(huán)境,進(jìn)行異常/中斷處理、高速緩存填充、虛實(shí)地址轉(zhuǎn)換、操作模式轉(zhuǎn)換等操作。單從硬件的角度而言,系統(tǒng)控制協(xié)處理器對(duì)指令集的作用就相當(dāng)于操作系統(tǒng)對(duì)應(yīng)用程序的作用一樣。
異常處理
CPU運(yùn)行過(guò)程中常常需要中斷正常執(zhí)行的指令流程,跳轉(zhuǎn)去執(zhí)行某段特殊的指令段,接著再恢復(fù)原來(lái)的指令序列。MIPS體系結(jié)構(gòu)中稱這樣的過(guò)程為異常(Exception)。所有的異常都采用統(tǒng)一的機(jī)制處理。
對(duì)于異常情況,需要采取以下3方面的措施:
1.異常檢測(cè):CPU需要及時(shí)檢測(cè)出哪個(gè)部件發(fā)生了什么異常;一般而言,異常檢測(cè)由各個(gè)模塊進(jìn)行,如加法溢出由加法器在運(yùn)算過(guò)程中產(chǎn)生,并在相應(yīng)的流水段被系統(tǒng)控制協(xié)處理器CP0讀入。因此這部分功能不屬于CP0的設(shè)計(jì)范圍。
2.異常處理:CPU按照優(yōu)先級(jí)選擇哪個(gè)異常被處理,并進(jìn)行必要的上下文切換(Context Switch),為進(jìn)入異常服務(wù)子程序做準(zhǔn)備,保證與該種異常對(duì)應(yīng)的服務(wù)程序被執(zhí)行,并且能夠從中斷處完全恢復(fù)原來(lái)的指令執(zhí)行現(xiàn)場(chǎng)。
3.異常服務(wù):執(zhí)行異常服務(wù)子程序,這部分主要由軟件(操作系統(tǒng))來(lái)完成。
對(duì)異常處理機(jī)制的要求
與傳統(tǒng)的異常/中斷處理機(jī)制相比,在MIPS 4Kc體系結(jié)構(gòu)下的異常處理需要特別考慮3個(gè)因素。
流水線的劃分
本設(shè)計(jì)采用五段流水線設(shè)計(jì),即每條指令的執(zhí)行一般都經(jīng)過(guò)IF(取指)、DE(指令譯碼)、EX(指令執(zhí)行)、MEM(訪問(wèn)存儲(chǔ)器)和WB(數(shù)據(jù)寫回R.F.)五個(gè)步驟。因?yàn)橹噶顒?dòng)作被分割,所以異常源也被分割到各個(gè)流水線段。例如:加法溢出異常只能在EX被檢測(cè)到。
精確異常處理機(jī)制
精確異常處理是指在發(fā)生異常時(shí),僅僅對(duì)發(fā)生異常的指令或其后面的指令進(jìn)行異常處理;而其前面的指令要保證能夠正常結(jié)束。所謂“精確”,是指受到異常處理影響的只有產(chǎn)生異常條件的那條指令,所有在此之前的指令在異常被處理前都將被執(zhí)行完成。異常處理結(jié)束后仍將從發(fā)生異常的指令開始繼續(xù)執(zhí)行。
操作模式切換
對(duì)于多進(jìn)程操作系統(tǒng),至少要區(qū)分兩種進(jìn)程:有特權(quán)的操作系統(tǒng)“核心”進(jìn)程和一般程序的“用戶”進(jìn)程。當(dāng)CPU檢測(cè)到異常發(fā)生時(shí),指令執(zhí)行的正常順序會(huì)被暫停,處理器進(jìn)入核心模式。當(dāng)異常服務(wù)子程序執(zhí)行完后,CPU從斷點(diǎn)中恢復(fù)現(xiàn)場(chǎng),繼續(xù)執(zhí)行原指令序列。
異常處理流水線
根據(jù)上述分析可以確定,硬件異常處理流水線的主要任務(wù)有3個(gè):更新相應(yīng)的CP0寄存器,即寫CP0寄存器;保存發(fā)生異常的指令地址,或當(dāng)異常指令在延遲槽時(shí),保存引起延遲槽的跳轉(zhuǎn)指令地址;選擇異常服務(wù)子程序的入口地址。
CP0寄存器記錄了CPU當(dāng)前的狀態(tài),因此,對(duì)CP0寄存器的寫就是對(duì)CPU狀態(tài)的改變,需要進(jìn)行嚴(yán)格的控制。而且對(duì)寄存器的寫是影響關(guān)鍵路徑的主要因素。因此本文主要論述對(duì)CP0寄存器寫操作的設(shè)計(jì)。
每個(gè)寄存器或寄存器某些位的寫操作都是由一個(gè)或一組異常事件是否發(fā)生而決定的。為此每一個(gè)流水段產(chǎn)生并被接收的異常都將被編碼,稱為異常編碼,并在段與段之間進(jìn)行傳遞,直到MEM段。在MEM段,異常編碼被用于產(chǎn)生對(duì)CP0寄存器的寫使能信號(hào),需要進(jìn)行復(fù)雜的解碼使MEM段變長(zhǎng),這成為提高整個(gè)CPU速度的瓶頸。為了減少這個(gè)瓶頸,可增加專門用于產(chǎn)生寫使能信號(hào)的邏輯。每一級(jí)流水線產(chǎn)生的異常直接產(chǎn)生寫使能,并經(jīng)過(guò)簡(jiǎn)單的優(yōu)先級(jí)比較,不管它是由哪個(gè)異常類型產(chǎn)生的,均產(chǎn)生1位的寫使能信號(hào)。那么,在MEM段就可以避免復(fù)雜的解碼,直接產(chǎn)生對(duì)相關(guān)CP0寄存器的寫使能信號(hào)。這一方案采用了以空間換時(shí)間的方法:縱向的執(zhí)行時(shí)間減少了,而橫向則需要增加寫使能判別邏輯。增加邏輯功能意味著需要占用更多的芯片面積,考慮到CP0模塊處于整個(gè)CPU的邊緣,而且全定制物理設(shè)計(jì)可以大大縮減芯片面積,因此該方案具有可行性。
系統(tǒng)控制協(xié)處理器的全定制物理設(shè)計(jì)
在深亞微米級(jí)的集成電路芯片里,器件(晶體管)本身對(duì)時(shí)延的貢獻(xiàn)已越來(lái)越小,主要延遲在于連線延遲。由于CP0功能的特殊性,它和存儲(chǔ)管理單元 MMU、指令計(jì)數(shù)單元PC都有很多連線,這些連線很可能處于全芯片的關(guān)鍵路徑上;而且由于CP0邏輯比較復(fù)雜,按照標(biāo)準(zhǔn)單元法自動(dòng)布局布線生成的模塊自身面積就很大,某些連線在CP0內(nèi)部就要走很多彎路,可能造成很大的延時(shí)。所以決定采用全定制方法設(shè)計(jì)CP0的數(shù)據(jù)通路,以方便控制連線的走向和布局。
控制通路與數(shù)據(jù)通路的劃分
數(shù)字電路系統(tǒng)的正常運(yùn)作過(guò)程中存在數(shù)據(jù)流(包括一般意義上的數(shù)據(jù)、指令和地址)和控制流。而數(shù)據(jù)流和控制流是相對(duì)獨(dú)立的:數(shù)據(jù)流實(shí)現(xiàn)的邏輯相對(duì)簡(jiǎn)單,但有很多位數(shù)據(jù)并行;而控制流的邏輯較復(fù)雜,絕大多數(shù)是1位或幾位的控制信號(hào)。因此,控制通路一般不采用全定制設(shè)計(jì);而數(shù)據(jù)通路的全定制設(shè)計(jì)就具有高性能、低功耗、低成本的優(yōu)勢(shì)。
協(xié)助TLB進(jìn)行虛實(shí)地址轉(zhuǎn)換是CP0的主要功能之一。TLB屬于系統(tǒng)的特權(quán)資源,只有CP0有權(quán)對(duì)其進(jìn)行訪問(wèn),因此CP0與TLB之間的連線較多,數(shù)據(jù)交換的時(shí)延也比較關(guān)鍵。同時(shí),PC模塊與CP0的數(shù)據(jù)交換也非常重要。因此,CP0單元在版圖上最好同時(shí)靠近TLB和PC模塊。本設(shè)計(jì)將CP0中與TLB相關(guān)的邏輯與寄存器獨(dú)立為CP0T,放在MMU與PC模塊之間;CP0的其余部分歸為CP0E,放在PC下部,也就是整塊芯片的最下端。如下圖所示。
CP0單元與臨近單元的連接示意圖
電路設(shè)計(jì)
本設(shè)計(jì)中使用的電路輸入工具為Cadence公司的Composer。設(shè)計(jì)時(shí),將HDL描述轉(zhuǎn)化為電路描述后輸入到Composer中。然后,通過(guò)形式驗(yàn)證來(lái)確保所設(shè)計(jì)的電路與RTL代碼一致。電路設(shè)計(jì)的好壞很大程度上要取決于設(shè)計(jì)者的經(jīng)驗(yàn)和技巧。
電路的定制設(shè)計(jì)主要指的是,在Composer環(huán)境中手工設(shè)計(jì)晶體管級(jí)的電路。電路參數(shù)的確定由Synopsys的電路仿真工具Hspice協(xié)助完成。將從設(shè)計(jì)好的電路中抽出的網(wǎng)表輸入到Hspice中,仿真計(jì)算出電路的時(shí)延,再根據(jù)時(shí)延來(lái)修改電路MOS管的參數(shù)。
為了減少全定制設(shè)計(jì)的工作量,電路設(shè)計(jì)要建立模塊的微體系結(jié)構(gòu)。其中CP0的基本單元確定如下:基本的CP0寄存器(時(shí)鐘上沿同步寄存器) ;32位比較器;32位加法器;多選一選擇器(包括2選1、3選1和4選1 MUX);驅(qū)動(dòng)器(即反相器;其尺寸參數(shù)化以適應(yīng)不同驅(qū)動(dòng)要求)。
加法器基本采用了超前進(jìn)位加法器的思想,然后在整體上分成兩個(gè)16位加法器的模塊,模塊間采用進(jìn)位選擇加法器的思想,從而大大提高了整個(gè)電路的速度。但其面積比全部采用超前進(jìn)位加法器時(shí)要大20%左右。
設(shè)計(jì)出來(lái)的電路邏輯是否正確,時(shí)延是否滿足要求,分別需要做功能驗(yàn)證和電路仿真。在驗(yàn)證了各個(gè)小模塊的正確性之后,需驗(yàn)證小模塊之間的邏輯連接正確性,最后對(duì)整個(gè)模塊進(jìn)行驗(yàn)證,進(jìn)一步分析電路找出模塊中的最長(zhǎng)路徑,通過(guò)仿真、更改電路、再仿真的過(guò)程,來(lái)確定該模塊是否能達(dá)到預(yù)期的邏輯設(shè)計(jì)要求。
版圖的全定制設(shè)計(jì)
版圖設(shè)計(jì)是根據(jù)電路功能和性能的要求以及工藝條件的限制(如線寬、間距、制版設(shè)備所允許的基本圖形等),設(shè)計(jì)集成電路制造過(guò)程中必需的光刻掩膜版圖。版圖設(shè)計(jì)與集成電路制造工藝技術(shù)緊密相連,是集成電路設(shè)計(jì)的最終目標(biāo)。
在設(shè)計(jì)過(guò)程中,為了降低設(shè)計(jì)的復(fù)雜度,采用混合設(shè)計(jì)模式,即全定制和標(biāo)準(zhǔn)單元設(shè)計(jì)相結(jié)合的設(shè)計(jì)方法。這樣既有利于保證電性能的要求,又能減小設(shè)計(jì)周期,是一種較為理想的設(shè)計(jì)模式。
在全定制版圖中,設(shè)計(jì)過(guò)程分為兩步完成,每個(gè)大單元電路總是由各種基本電路組合而成,所以第一步是繪制基本電路的版圖,畫完后做DRC和LVS,保證基本電路的正確性。第二步用這些基本電路來(lái)組合成大的單元。
全定制芯片設(shè)計(jì)可以根據(jù)數(shù)據(jù)通路電路的規(guī)則手工設(shè)計(jì)出合理的版圖。版圖設(shè)計(jì)中盡量保證各個(gè)部分的規(guī)整和對(duì)稱,使其易于擴(kuò)展。版圖的布局中使聯(lián)系較多的單元盡量靠近,從而縮短互連線的長(zhǎng)度,減小每個(gè)單元的面積和時(shí)延,降低器件的負(fù)載電容,采取的具體措施如下:
1. 增加地與襯底、電源與阱的接觸,在沒(méi)有器件和走線的空白處多打接觸孔,并且將其與電源或地連接,有利于收集噪聲電流、穩(wěn)定電位、減小干擾和被干擾;
2.形成網(wǎng)狀的電源地線網(wǎng)絡(luò);
3.避免同層或上下兩層中長(zhǎng)金屬線的平行走線,對(duì)噪聲敏感的線盡量布得短;
4.避免首尾循環(huán)的走線;
5.在滿足設(shè)計(jì)規(guī)則的前提下,盡量減小MOS管的有源區(qū)面積,以減小寄生電容,提高工作速度;
6.在數(shù)據(jù)通路設(shè)計(jì)中,要為金屬連線留下一些備用位置。
控制通路與數(shù)據(jù)通路的集成設(shè)計(jì)及驗(yàn)證
邏輯層次
控制部分直接用行為級(jí)的RTL代碼,數(shù)據(jù)通路部分由從全定制電路導(dǎo)出的結(jié)構(gòu)化RTL代碼,得到全模塊的邏輯描述。
可采用向量進(jìn)行驗(yàn)證,與采用RTL(或C模型)進(jìn)行驗(yàn)證的結(jié)果(trace文件)進(jìn)行比對(duì)。
電路層次
電路層次控制通路與數(shù)據(jù)通路的集成可以借助Composer順利完成。
對(duì)于延時(shí)信息的獲取,數(shù)據(jù)通路或控制通路內(nèi)部的路徑分別采用Hspice仿真及綜合來(lái)獲得,分析內(nèi)部是否存在關(guān)鍵路徑。
涉及數(shù)據(jù)通路與控制通路之間的關(guān)鍵路徑,可以由全定制部分提交數(shù)據(jù)通路部分接口的輸入/輸出時(shí)延信息,即該路徑在其內(nèi)部需要的時(shí)間。以這些信息作為外部約束,再對(duì)相關(guān)模塊進(jìn)行綜合(按模塊綜合),結(jié)果文件中將得到集成后的關(guān)鍵路徑。
版圖層次
要保證版圖與電路的一致性,需要做LVS驗(yàn)證。即將控制通路的門級(jí)網(wǎng)表導(dǎo)入Composer,與數(shù)據(jù)通路的全定制電路合成總電路,并由此提取電路級(jí)的Spice網(wǎng)表進(jìn)行LVS驗(yàn)證。LVS采用的工具為Mentor Graphics 的Calibre工具。
結(jié)語(yǔ)
本文主要研究了基于MIPS 4Kc體系結(jié)構(gòu)的系統(tǒng)控制協(xié)處理器的設(shè)計(jì)和實(shí)現(xiàn),包括精確異常處理的實(shí)現(xiàn)方式和全定制的物理設(shè)計(jì)。在對(duì)精確異常處理機(jī)制的過(guò)程中通過(guò)增加寫使能判別邏輯達(dá)到了縮減關(guān)鍵路徑時(shí)延的目的,降低了控制邏輯的復(fù)雜性,同時(shí)增加了全芯片的可靠性。本文的設(shè)計(jì)通過(guò)了邏輯、電路驗(yàn)證,應(yīng)用于32位CPU的設(shè)計(jì)中,并采用中芯國(guó)際的1P6M 0.18mm工藝成功流片。
特別推薦
- 克服碳化硅制造挑戰(zhàn),助力未來(lái)電力電子應(yīng)用
- 了解交流電壓的產(chǎn)生
- 單結(jié)晶體管符號(hào)和結(jié)構(gòu)
- 英飛凌推出用于汽車應(yīng)用識(shí)別和認(rèn)證的新型指紋傳感器IC
- Vishay推出負(fù)載電壓達(dá)100 V的業(yè)內(nèi)先進(jìn)的1 Form A固態(tài)繼電器
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
技術(shù)文章更多>>
- 提前圍觀第104屆中國(guó)電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動(dòng)器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個(gè)新物料
- 大聯(lián)大世平集團(tuán)的駕駛員監(jiān)控系統(tǒng)(DMS)方案榮獲第六屆“金輯獎(jiǎng)之最佳技術(shù)實(shí)踐應(yīng)用”獎(jiǎng)
- X-CUBE-STL:支持更多STM32, 揭開功能安全的神秘面紗
技術(shù)白皮書下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
音頻IC
音頻SoC
音頻變壓器
引線電感
語(yǔ)音控制
元件符號(hào)
元器件選型
云電視
云計(jì)算
云母電容
真空三極管
振蕩器
振蕩線圈
振動(dòng)器
振動(dòng)設(shè)備
震動(dòng)馬達(dá)
整流變壓器
整流二極管
整流濾波
直流電機(jī)
智能抄表
智能電表
智能電網(wǎng)
智能家居
智能交通
智能手機(jī)
中電華星
中電器材
中功率管
中間繼電器