SoCTechnicalJournal123AnalysisandDesignofLowPowerRegisterFilewithMultipleInputandOutputPorts低功率多輸出入埠暫存器檔案之分析與設計AnalysisandDesignofLowPowerRegisterFilewithMultipleInputandOutputPorts楊維斌Wei-BinYang系統晶片硬體技術部摘要本篇文章主要是在探討如何分析與設計低功率多輸出入埠暫存器檔案,因為暫存器檔案常被使用在微處理器與數位訊號處理晶片上,因此,如何設計高效能的暫存器檔案電路是當務之急。本篇文章將從暫存器檔案的架構與電路型態做切入,分析各種不同電路架構之優劣,以決定適合之暫存器檔案電路架構。再由電路功率消耗分析著手,將暫存器檔案電路內部各個區塊電路,做功率消耗分析,找出最耗能的區塊電路,用低功率的電路設計技巧來完成高效能低功率之暫存器檔案電路。1.前言由於近幾年來隨著製程的進步System-on-a-Chip(SoC)已經是無法避免的趨勢,而在SoC晶片中又以數位電路佔大部分,因此如何開發高效能且具低功率消耗之數位電路,就成了當務之急。在數位電路中,暫存器檔案(RegisterFile)是最常被使用的電路區塊之一。研究發現除了微處理器(µP)與算術及邏輯運算單元(ALU)外,暫存器檔案電路是最需快速傳輸與儲存的單元。若從架構上與系統需求來做分析,暫存器檔案可分為單讀出/寫入埠(1read/writeport)與多讀出/寫入埠(Multipleread/writeports)兩種。圖一所示電路圖為單讀出/寫入埠電路,由電路圖可知暫存器檔案電路結構可分為三大部分:1.兩組位址解碼電路(Addressdecoder):一組為讀出解碼電路(Readdecoder),另一組為寫入解碼電路(Writedecoder)。2.儲存單元集(Cellbank):如虛線所示,本單元集包含了位元負載電路(Bitlineload)、記憶細胞單元集(Cells)與感測放大器電路dibdiOutputStageBitlineloadBitlineloadCellSABitlineloadBitlineloadCellSAcellcelldidibControlcktsReadDECWriteDECInputdata圖一單讀出/寫入埠(1read/writeport)暫存器檔案低功率多輸出入埠暫存器檔案之分析與設計124系統晶片001期(Senseamplifier)。由電路圖可知,儲存單元集是整個暫存器檔案的重心,這個部分負責資料的儲存與輸出,也是決定記憶容量多寡的重要單元。3.周邊電路:周邊電路包含控制電路(Controlcircuits)與輸入資料控制電路(Inputdata)。任何資料的寫入與讀出,都須經由控制電路的控制信號來發號命令,以使電路能正確工作。但是,單讀出/寫入埠暫存器檔案,每次只能對一個記憶細胞單元做一讀或一寫的操作,其操作速度因此大大受到限制。其解決方式有兩種:一為增加記憶細胞單元,另一為採用多讀出/寫入埠架構。第一種方法雖可以達到提高操作速度的要求,但是需耗費較大的面積,更可能大量增加功率消耗。因此,暫存器檔案電路的設計,大都採用多讀出/寫入埠架構,以達到高操作速度與低功率的需求。圖二為多讀出/寫入埠架構,由電路圖可知多讀出/寫入埠暫存器檔案電路仍是由三大部分所組成,只是每個部分有些許的不同。首先在位址解碼電路方面,因為圖二電路具有二讀出/一寫入埠,所以位址解碼電路共有三個:兩個為讀出解碼電路,一個為寫入解碼電路。另外在儲存單元集電路部分,由於須達到多讀出/寫入埠的要求,因此記憶細胞單元做了些許的改良。每一個記憶細胞單元都擁有兩條控制讀出的信號線(Wordlines),及一條控制寫入的信號線,因此,可允許同時對一個記憶細胞單元作兩組讀出儲存資料的需求,以分別給不同的系統或指令集用,而達到多工的目的,然而感測放大器電路與負載電路,也因此增加了一倍的電路數量。最後在週邊電路方面,因為要完成多讀出/寫入的要求,所以會增加一些額外的控制電路成本,但佔整個暫存器檔案的比例不大。暫存器檔案電路除了常被用在微處理器及邏輯運算單元外,更常被用於數位訊號處理晶片上(DSP),尤其是在資料傳輸路徑(Datapath)上。要達到高資料輸出率(Throughputrate),需要具有能同時高速多埠讀出(Multipleread)的功能,以及能允許高速多埠寫入(Multiplewrite)的條件,而且能在一個時脈裡完成。因此,暫存器檔案電路需要具有高操作速度的能力,以符合數位信號處理晶片之所需。也因為暫存器檔案電路需具有快速儲存與讀出的能力,所以也是最消耗能源的地方。因此,如何設計一快速且低功率消耗之暫存器檔案,成為現今之主要課題。本文章將以深入淺出的方式,分析現今最省功率消耗之高效能暫存器檔案電路設計技巧,並擇其優點設計出低功率消耗之暫存器檔案電路,以達到高速且低功率之需求。dibdiBitlineloadBitlineloadCellBitlineloadBitlineloadcellSASAdibdiBitlineloadBitlineloadCellBitlineloadBitlineloadcellSASAOutputStageControlcktsRdDECWriteDECReadDECdidibInputdata圖二多讀出/寫入埠(2read/1writeport)暫存器檔案SoCTechnicalJournal125AnalysisandDesignofLowPowerRegisterFilewithMultipleInputandOutputPorts2.電路設計及分析我們在前言中提及,若從架構與系統需求來做分類,暫存器檔案電路可分為兩大類,單讀出/寫入埠與多讀出/寫入埠這兩種。如果將暫存器檔案電路做功率消耗的模擬分析,會得到如圖三與圖四的結果,而圖中所示之ctl_ckts與dec,分別代表控制電路與位址解碼電路。圖三描述在兩組讀出埠及x組寫入埠(2RxW)時的功率消耗狀況,而圖四則和圖三相反,描述在一組寫入埠及x組讀出埠(xR1W)時的功率消耗狀況。由模擬結果可知,不論是變化讀出或寫入埠數,儲存單元集消耗功率所佔的比例是最大的,因此如何降低儲存單元集的功率消耗,是暫存器檔案電路設計者研究的重心。儲存單元集結構可分為兩大類,一是雙端儲存單元(Differential-endedcell),另一為單端儲存單元(Single-endedcell)。以下將依序做分析與探討。2.1雙端儲存單元圖五所示為雙端儲存單元的多讀出/寫入埠架構[1],共具有六個讀出與四個寫入埠,其中RWL為讀出位址信號線,WWL為寫入位址信號線,而中間交互連接的反相器(Inverter)電路,是和傳統靜態記憶體(StaticRAM)記憶單元一樣的栓鎖(Latch)電路。其電路操作模式可分為寫入與讀出:1.寫入:讀寫控制電路會選擇四條寫入位址信號線中之一條,將其信號拉高至電源電壓(Pullhigh),使得NMOS電晶體M1與M2導通,讓資料能通過NMOS電晶體,以完成寫入記憶細胞元的動作。又因為同一個寫入位址信號0.05.010.015.020.025.02r1w2r2w2r3w2r4w2RxWmwctl_cktsbankdec圖三暫存器檔案功率消耗(2RxW)0.010.020.030.040.050.060.02r1w3r1w4r1w6r1wxR1Wmwctl_cktsbankdec圖四暫存器檔案功率消耗(xR1W)RWLWWLPr_highRBLSATI6Read4WritedatadatabitbitM1M2M3M4M5M6圖五雙端儲存單元(6R/4W)低功率多輸出入埠暫存器檔案之分析與設計126系統晶片001期線可控制記憶細胞元兩邊兩條資料寫入的路徑,一條是正相資料(Data),另一條是反相資料(Databar),因此在寫入資料時,可以彼此互相幫助,以達到快速寫入的目的。2.讀出:記憶細胞元資料會預先打開NMOS電晶體M4或M6,以等待讀寫控制電路選擇六條讀出位址信號線中之一條,來將其信號拉高(pullhigh)至電源電壓,使得NMOS電晶體M3與M5導通,讓記憶細胞元內之資料輸出至位元線上。又因為同一個讀出位址信號線能控制記憶細胞元兩邊兩條資料讀出的路徑,因此位元線上輸出信號可以獲得正相資料(Bit)輸出與反相資料(Bitbar)輸出。其他周邊電路包括預充高電壓電路(Pr_high)與感測放大器電路(SATI)。如果要加速位元線預充至高電位,可考慮使用如BiCMOS電路來實現,但在整體電路方面,可能會造成較大的功率消耗。圖六為另一種雙端儲存電路(4R/4W)[2],中心儲存電路仍是標準的交互連接反相器。其讀出與寫入操作模式約略與圖五相同,而電路本身與圖五之差別為輸出只有四組讀出埠RSp0∼RSp3,除了比圖六少兩組之外,電路本身讀出信號LBLp0(LBLP1)與LBL#P2(LBL#P3)之間互為補數,因此雖然為四組輸出信號,但實際上是為兩組正函數輸出及兩組補數輸出。所以,圖六之電路在做讀出時要小心選擇輸出信號之正負關係,以防下一級子電路系統抓錯資料,造成運算錯誤。有關寫入電路部分,如圖六所示,資料輸入(Din)經由反相器反向之後,分別送至儲存單元的兩邊,以達到如圖五之雙向寫入的動作。但是由電路圖可知,資料輸入的地方比圖五之電路少一隻接腳,故在寫入控制電路部分,則可以少掉一部分之控制電路,以節省功率消耗。2.2單端儲存單元儲存單元中除了上述的雙端儲存單元外,另一類為單端儲存單元。如圖七所示[3]之單端儲存單元具有一讀出埠與一寫入埠,因此不論是讀出或是寫入都只有一個連接埠,所以稱為單端儲存單元。而讀出與寫入的路徑分別接在栓鎖電路的兩邊,控制信號B(WordlineB)即是讀出位址信號控制線,而位元線B(BitlineB)即是將栓鎖電路內資料讀出之輸出信號線,因此讀出電路是靠B這組控制電路來完成的。控制信號A(WordlineA)即是寫入位址信號控制線,而位元線A(BitlineA)即是將資料寫入栓鎖電路內寫入信號線,因此寫入電路是靠A這組控制電路來完成的。電路操作模式亦可分為寫入與讀出:圖六雙端儲存單元(4R/4W)WordlineBWordlineABitlineBBitlineAM1M2圖七單端儲存單元(1R/1W)WordlineBWordlineAWordlineCBitlineBBitlineABitlineCBitlineNCM1M2M3M4SoCTechnicalJournal127AnalysisandDesignofLowPowerRegisterFilewithMultipleInputandOutputPorts1.寫入:寫入位址會經由寫入解碼器解碼輸出,將控制信號A拉高至電源電壓,使得NMOS電晶體M1導通,讓資料能經由位元線A通過NMOS電晶體M1,以完成寫入記憶細胞元的動作。因此,寫入資料路徑是由儲存單元左邊寫入,所以不像雙端儲存單元,有互補式輸入資料。2.讀出:讀出位址會經由讀出解碼器解碼輸出,將控制信號B拉高至電源電壓,使得NMOS電晶體M2導通,讓儲存單元內之資料,能通過NMOS電晶體M2,由位元線B輸出。因此,輸出讀出資料路徑是由儲存單元右邊讀出,所以不像雙端儲存單元,有互補式輸出資料。由上述可知,單端元件之讀出與寫入資料,都是由單邊所完成,因此若要有多埠讀出與寫入的功能,則可將儲存單元電路改接成如圖八[4]與圖九[5]之電路,以增加電路之使用效能。圖八電路為二讀出/一寫入之儲存單元,由電路圖可知,兩讀出控制信號分別為控制信號A(WordlineA)與B(WordlineB),分別控制儲存單元之兩邊NMOS電晶體M1與M2,以使儲存單元資料能分別經由位元線A(BitlineA)與位元線B(BitlineB)