解決CPU異常的‘功臣’,係統控製協處理器的全定製設計
發布時間:2016-01-26 責任編輯:susan
【導讀】IPS體係結構中的係統控製協處理器簡稱CP0,專門提供指令正常執行所需的環境,進行異常/中斷處理、高速緩存填充、虛實地址轉換、操作模式轉換等操作。單從硬件的角度而言,係統控製協處理器對指令集的作用就相當於操作係統對應用程序的作用一樣。
異常處理
CPU運行過程中常常需要中斷正常執行的指令流程,跳轉去執行某段特殊的指令段,接著再恢複原來的指令序列。MIPS體係結構中稱這樣的過程為異常(Exception)。所有的異常都采用統一的機製處理。

對於異常情況,需要采取以下3方麵的措施:
1.異常檢測:CPU需要及時檢測出哪個部件發生了什麼異常;一般而言,異常檢測由各個模塊進行,如加法溢出由加法器在運算過程中產生,並在相應的流水段被係統控製協處理器CP0讀入。因此這部分功能不屬於CP0的設計範圍。
2.異常處理:CPU按照優先級選擇哪個異常被處理,並進行必要的上下文切換(Context Switch),為進入異常服務子程序做準備,保證與該種異常對應的服務程序被執行,並且能夠從中斷處完全恢複原來的指令執行現場。
3.異常服務:執行異常服務子程序,這部分主要由軟件(操作係統)來完成。
對異常處理機製的要求
與傳統的異常/中斷處理機製相比,在MIPS 4Kc體係結構下的異常處理需要特別考慮3個因素。
流水線的劃分
本設計采用五段流水線設計,即每條指令的執行一般都經過IF(取指)、DE(指令譯碼)、EX(指令執行)、MEM(訪問存儲器)和WB(數據寫回R.F.)五個步驟。因為指令動作被分割,所以異常源也被分割到各個流水線段。例如:加法溢出異常隻能在EX被檢測到。
精確異常處理機製
精確異常處理是指在發生異常時,僅僅對發生異常的指令或其後麵的指令進行異常處理;而其前麵的指令要保證能夠正常結束。所謂“精確”,shizhishoudaoyichangchuliyingxiangdezhiyouchanshengyichangtiaojiandenatiaozhiling,suoyouzaicizhiqiandezhilingzaiyichangbeichuliqiandoujiangbeizhixingwancheng。yichangchulijieshuhourengjiangcongfashengyichangdezhilingkaishijixuzhixing。
操作模式切換
對於多進程操作係統,至少要區分兩種進程:有特權的操作係統“核心”進程和一般程序的“用戶”進程。當CPU檢測到異常發生時,指令執行的正常順序會被暫停,處理器進入核心模式。當異常服務子程序執行完後,CPU從斷點中恢複現場,繼續執行原指令序列。
異常處理流水線
根據上述分析可以確定,硬件異常處理流水線的主要任務有3個:更新相應的CP0寄存器,即寫CP0寄存器;保存發生異常的指令地址,或當異常指令在延遲槽時,保存引起延遲槽的跳轉指令地址;選擇異常服務子程序的入口地址。
CP0寄存器記錄了CPU當前的狀態,因此,對CP0寄存器的寫就是對CPU狀態的改變,需要進行嚴格的控製。而且對寄存器的寫是影響關鍵路徑的主要因素。因此本文主要論述對CP0寄存器寫操作的設計。
meigejicunqihuojicunqimouxieweidexiecaozuodoushiyouyigehuoyizuyichangshijianshifoufashengerjuedingde。weicimeiyigeliushuiduanchanshengbingbeijieshoudeyichangdoujiangbeibianma,chengweiyichangbianma,bingzaiduanyuduanzhijianjinxingchuandi,zhidaoMEM段。在MEM段,異常編碼被用於產生對CP0寄存器的寫使能信號,需要進行複雜的解碼使MEM段變長,這成為提高整個CPU速(su)度(du)的(de)瓶(ping)頸(jing)。為(wei)了(le)減(jian)少(shao)這(zhe)個(ge)瓶(ping)頸(jing),可(ke)增(zeng)加(jia)專(zhuan)門(men)用(yong)於(yu)產(chan)生(sheng)寫(xie)使(shi)能(neng)信(xin)號(hao)的(de)邏(luo)輯(ji)。每(mei)一(yi)級(ji)流(liu)水(shui)線(xian)產(chan)生(sheng)的(de)異(yi)常(chang)直(zhi)接(jie)產(chan)生(sheng)寫(xie)使(shi)能(neng),並(bing)經(jing)過(guo)簡(jian)單(dan)的(de)優(you)先(xian)級(ji)比(bi)較(jiao),不(bu)管(guan)它(ta)是(shi)由(you)哪(na)個(ge)異(yi)常(chang)類(lei)型(xing)產(chan)生(sheng)的(de),均(jun)產(chan)生(sheng)1位的寫使能信號。那麼,在MEM段就可以避免複雜的解碼,直接產生對相關CP0寄存器的寫使能信號。這一方案采用了以空間換時間的方法:縱向的執行時間減少了,而橫向則需要增加寫使能判別邏輯。增加邏輯功能意味著需要占用更多的芯片麵積,考慮到CP0模塊處於整個CPU的邊緣,而且全定製物理設計可以大大縮減芯片麵積,因此該方案具有可行性。
係統控製協處理器的全定製物理設計
在深亞微米級的集成電路芯片裏,器件(晶體管)本身對時延的貢獻已越來越小,主要延遲在於連線延遲。由於CP0功能的特殊性,它和存儲管理單元 MMU、指令計數單元PC都有很多連線,這些連線很可能處於全芯片的關鍵路徑上;而且由於CP0邏輯比較複雜,按照標準單元法自動布局布線生成的模塊自身麵積就很大,某些連線在CP0內部就要走很多彎路,可能造成很大的延時。所以決定采用全定製方法設計CP0的數據通路,以方便控製連線的走向和布局。
控製通路與數據通路的劃分
數字電路係統的正常運作過程中存在數據流(包括一般意義上的數據、指令和地址)和控製流。而數據流和控製流是相對獨立的:數據流實現的邏輯相對簡單,但有很多位數據並行;而控製流的邏輯較複雜,絕大多數是1位或幾位的控製信號。因此,控製通路一般不采用全定製設計;而數據通路的全定製設計就具有高性能、低功耗、低成本的優勢。
協助TLB進行虛實地址轉換是CP0的主要功能之一。TLB屬於係統的特權資源,隻有CP0有權對其進行訪問,因此CP0與TLB之間的連線較多,數據交換的時延也比較關鍵。同時,PC模塊與CP0的數據交換也非常重要。因此,CP0單元在版圖上最好同時靠近TLB和PC模塊。本設計將CP0中與TLB相關的邏輯與寄存器獨立為CP0T,放在MMU與PC模塊之間;CP0的其餘部分歸為CP0E,放在PC下部,也就是整塊芯片的最下端。如下圖所示。

CP0單元與臨近單元的連接示意圖
電路設計
本設計中使用的電路輸入工具為Cadence公司的Composer。設計時,將HDL描述轉化為電路描述後輸入到Composer中。然後,通過形式驗證來確保所設計的電路與RTL代碼一致。電路設計的好壞很大程度上要取決於設計者的經驗和技巧。
電路的定製設計主要指的是,在Composer環境中手工設計晶體管級的電路。電路參數的確定由Synopsys的電路仿真工具Hspice協助完成。將從設計好的電路中抽出的網表輸入到Hspice中,仿真計算出電路的時延,再根據時延來修改電路MOS管的參數。
為了減少全定製設計的工作量,電路設計要建立模塊的微體係結構。其中CP0的基本單元確定如下:基本的CP0寄存器(時鍾上沿同步寄存器) ;32位比較器;32位加法器;多選一選擇器(包括2選1、3選1和4選1 MUX);驅動器(即反相器;其尺寸參數化以適應不同驅動要求)。
加法器基本采用了超前進位加法器的思想,然後在整體上分成兩個16位加法器的模塊,模塊間采用進位選擇加法器的思想,從而大大提高了整個電路的速度。但其麵積比全部采用超前進位加法器時要大20%左右。
shejichulaidedianluluojishifouzhengque,shiyanshifoumanzuyaoqiu,fenbiexuyaozuogongnengyanzhenghedianlufangzhen。zaiyanzhenglegegexiaomokuaidezhengquexingzhihou,xuyanzhengxiaomokuaizhijiandeluojilianjiezhengquexing,zuihouduizhenggemokuaijinxingyanzheng,jinyibufenxidianluzhaochumokuaizhongdezuichanglujing,tongguofangzhen、更改電路、再仿真的過程,來確定該模塊是否能達到預期的邏輯設計要求。
版圖的全定製設計
版圖設計是根據電路功能和性能的要求以及工藝條件的限製(如線寬、間距、製版設備所允許的基本圖形等),設計集成電路製造過程中必需的光刻掩膜版圖。版圖設計與集成電路製造工藝技術緊密相連,是集成電路設計的最終目標。
在(zai)設(she)計(ji)過(guo)程(cheng)中(zhong),為(wei)了(le)降(jiang)低(di)設(she)計(ji)的(de)複(fu)雜(za)度(du),采(cai)用(yong)混(hun)合(he)設(she)計(ji)模(mo)式(shi),即(ji)全(quan)定(ding)製(zhi)和(he)標(biao)準(zhun)單(dan)元(yuan)設(she)計(ji)相(xiang)結(jie)合(he)的(de)設(she)計(ji)方(fang)法(fa)。這(zhe)樣(yang)既(ji)有(you)利(li)於(yu)保(bao)證(zheng)電(dian)性(xing)能(neng)的(de)要(yao)求(qiu),又(you)能(neng)減(jian)小(xiao)設(she)計(ji)周(zhou)期(qi),是(shi)一(yi)種(zhong)較(jiao)為(wei)理(li)想(xiang)的(de)設(she)計(ji)模(mo)式(shi)。
在(zai)全(quan)定(ding)製(zhi)版(ban)圖(tu)中(zhong),設(she)計(ji)過(guo)程(cheng)分(fen)為(wei)兩(liang)步(bu)完(wan)成(cheng),每(mei)個(ge)大(da)單(dan)元(yuan)電(dian)路(lu)總(zong)是(shi)由(you)各(ge)種(zhong)基(ji)本(ben)電(dian)路(lu)組(zu)合(he)而(er)成(cheng),所(suo)以(yi)第(di)一(yi)步(bu)是(shi)繪(hui)製(zhi)基(ji)本(ben)電(dian)路(lu)的(de)版(ban)圖(tu),畫(hua)完(wan)後(hou)做(zuo)DRC和LVS,保證基本電路的正確性。第二步用這些基本電路來組合成大的單元。

quandingzhixinpianshejikeyigenjushujutongludianludeguizeshougongshejichuhelidebantu。bantushejizhongjinliangbaozhenggegebufendeguizhengheduicheng,shiqiyiyukuozhan。bantudebujuzhongshilianxijiaoduodedanyuanjinliangkaojin,congersuoduanhulianxiandechangdu,jianxiaomeigedanyuandemianjiheshiyan,jiangdiqijiandefuzaidianrong,caiqudejuticuoshiruxia:
1. 增加地與襯底、電源與阱的接觸,在沒有器件和走線的空白處多打接觸孔,並且將其與電源或地連接,有利於收集噪聲電流、穩定電位、減小幹擾和被幹擾;
2.形成網狀的電源地線網絡;
3.避免同層或上下兩層中長金屬線的平行走線,對噪聲敏感的線盡量布得短;
4.避免首尾循環的走線;
5.在滿足設計規則的前提下,盡量減小MOS管的有源區麵積,以減小寄生電容,提高工作速度;
6.在數據通路設計中,要為金屬連線留下一些備用位置。
控製通路與數據通路的集成設計及驗證
邏輯層次
控製部分直接用行為級的RTL代碼,數據通路部分由從全定製電路導出的結構化RTL代碼,得到全模塊的邏輯描述。
可采用向量進行驗證,與采用RTL(或C模型)進行驗證的結果(trace文件)進行比對。
電路層次
電路層次控製通路與數據通路的集成可以借助Composer順利完成。
對於延時信息的獲取,數據通路或控製通路內部的路徑分別采用Hspice仿真及綜合來獲得,分析內部是否存在關鍵路徑。
涉及數據通路與控製通路之間的關鍵路徑,可以由全定製部分提交數據通路部分接口的輸入/輸出時延信息,即該路徑在其內部需要的時間。以這些信息作為外部約束,再對相關模塊進行綜合(按模塊綜合),結果文件中將得到集成後的關鍵路徑。
版圖層次
要保證版圖與電路的一致性,需要做LVS驗證。即將控製通路的門級網表導入Composer,與數據通路的全定製電路合成總電路,並由此提取電路級的Spice網表進行LVS驗證。LVS采用的工具為Mentor Graphics 的Calibre工具。
結語
本文主要研究了基於MIPS 4Kc體(ti)係(xi)結(jie)構(gou)的(de)係(xi)統(tong)控(kong)製(zhi)協(xie)處(chu)理(li)器(qi)的(de)設(she)計(ji)和(he)實(shi)現(xian),包(bao)括(kuo)精(jing)確(que)異(yi)常(chang)處(chu)理(li)的(de)實(shi)現(xian)方(fang)式(shi)和(he)全(quan)定(ding)製(zhi)的(de)物(wu)理(li)設(she)計(ji)。在(zai)對(dui)精(jing)確(que)異(yi)常(chang)處(chu)理(li)機(ji)製(zhi)的(de)過(guo)程(cheng)中(zhong)通(tong)過(guo)增(zeng)加(jia)寫(xie)使(shi)能(neng)判(pan)別(bie)邏(luo)輯(ji)達(da)到(dao)了(le)縮(suo)減(jian)關(guan)鍵(jian)路(lu)徑(jing)時(shi)延(yan)的(de)目(mu)的(de),降(jiang)低(di)了(le)控(kong)製(zhi)邏(luo)輯(ji)的(de)複(fu)雜(za)性(xing),同(tong)時(shi)增(zeng)加(jia)了(le)全(quan)芯(xin)片(pian)的(de)可(ke)靠(kao)性(xing)。本(ben)文(wen)的(de)設(she)計(ji)通(tong)過(guo)了(le)邏(luo)輯(ji)、電路驗證,應用於32位CPU的設計中,並采用中芯國際的1P6M 0.18mm工藝成功流片。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 邊緣AI的發展為更智能、更可持續的技術鋪平道路
- 每台智能體PC,都是AI時代的新入口
- IAR作為Qt Group獨立BU攜兩項重磅汽車電子應用開發方案首秀北京車展
- 構建具有網絡彈性的嵌入式係統:來自行業領袖的洞見
- 數字化的線性穩壓器
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
SATA連接器
SD連接器
SII
SIM卡連接器
SMT設備
SMU
SOC
SPANSION
SRAM
SSD
ST
ST-ERICSSON
Sunlord
SynQor
s端子線
Taiyo Yuden
TDK-EPC
TD-SCDMA功放
TD-SCDMA基帶
TE
Tektronix
Thunderbolt
TI
TOREX
TTI
TVS
UPS電源
USB3.0
USB 3.0主控芯片
USB傳輸速度


