記憶體設計探索
本文作者:admin
點擊:
2006-10-24 00:00
前言:
前言靜態隨機存取記憶體(SRAM)與暫存器(Register)在各種微處理器(Micro Processor)的應用系統中是不可或缺的資料儲存性元件,隨著大型的嵌入式系統發展與PDA, Smart Phone的應用趨勢,勢必對於微處理器內部的記憶體與暫存器會有大量的需求。本文在介紹藉由減少靜態隨機存取記憶體和暫存器的MOS元件數量來因應在相同的製程因素、積體電路面積的要求下使微處理器系統擁有較多的內部儲存空間、高密度的快取記憶體,並且使用ADS(Advanced Design System)軟體來模擬。
從6T到5T投入減少SRAM cell技術的精神與時間的原由,一是來自於曾經撰寫過超頻(over clocking)電腦主機板的BIOS自動超頻技術,不論主時脈頻率如何的調高、CPU工作電壓如何的加大、冷卻方式如何的優越,最終的程式執行效率與視訊顯像速度還是受制於動態隨機存取記憶體(DRAM)的讀寫時序的瓶頸,二是使用PDA搭配市售熱門的衛星導航軟體需要大量的內部記憶體,然而嵌入式微處理器的主記憶體僅僅內含了64KB SRAM,即使是再高貴的品牌也會因記憶體不夠而當機。我們早已需要更快的執行效率與更大的內部記憶體空間,但是到目前仍然沒有足以餵飽我們饑渴的高速、高密度的隨機存取記憶體。
隨著DRAM從3顆電晶體的記憶細胞(3T DRAM cell)洐進到1T DRAM cell以及製程技術從0.18μm到0.13μm以下,而SRAM基本上還是一直停留在6T SRAM cell的階段,縱使目前Xilinx XC4036EX FPGA[1]已經採用了5T SRAM cell,亦因目前的5T SRAM cell必須調整MOS的通道寬度,甚至是MOS的通道長度來達成記憶效應與存取的能力,因此會增加電晶體的洩漏電流,所以有強調低洩漏電流(low leakage current)的論文發表。
圖1是傳統的6T SRAM cell的電路圖,不論是DRAM還是SRAM,每個記憶細胞都要連接到記憶體陣列的字組線(Word Line, WL)與位元線(Bit Line, BL)才能被定址及存取,字組線的用途是給予各個記憶細胞擁有自己的位址並且控制資料位元的進出,位元線則是資料寫入與讀取的傳輸線。如圖中所示的這6顆電晶體的寬度與長度的參數都是設成Width/Length=0.22μm/0.18μm,然後經由如圖2所示的模擬電路與參數進行電路模擬,並且將模擬的結果與5T SRAM cell和4T SRAM cell的模擬結果互相比較。
在參考論文資料[2]的圖4.12是此篇論文中完成的5T SRAM cell的電路及電晶體參數圖(Five-transistor SRAM cell with final sizes.),在此圖中有清楚的標示出各個電晶體的寬度與長度。然而在此文中的5T SRAM cell的組合結構有些許的不同,而且電晶體參數完全與6T SRAM cell的參數一致,甚至是後面的4T SRAM cell的模擬也全是採用相同的通道寬度與通道長度,也由於將所有的電晶體的通道寬度都固定在最小值,會將洩漏電流降到最低,自然擁有低耗電量的特性,而且採用最小的寬度與長度也讓集積密度得以提高。
如圖2所示的模擬電路與參數圖是一個包含資料讀寫電路的32位元5T SRAM cell (4-addresses × 8-bits),在此圖中的7個訊號源的時序資料請參考表1,其中有3個控制訊號(chip select: cs#, write: wr# , read: rd#)、2個資料線訊號(data: d0, d1)與2個位址線訊號(address: ad0, ad1),模擬的時間單位是0.8奈秒(ns)、模擬電壓源是1.80V,另外,資料讀取之後的輸出節點名稱為bit0和bit1。圖3的模擬圖依序是觀察圖2中的wl0, wl1, bit1, bit0, wl2, wl3這6個節點的電壓波形,並且將這6個節點的電壓波形與表1的資料互相比對,圖3中的wl0, wl1, wl2和wl3皆是連續3個脈波的循環時序,而這3個脈波是讀取─寫入─讀取的控制順序,以這樣的順序來模擬記憶體的存取的用意是在於寫入之前必須確認原本儲存的資料沒有因為其他位址的存取而被破壞,在寫入之後確認資料被正確的寫入與讀出,並且在下次同位址的讀取時序中確認此次的讀取並不會造成破壞性讀取(destructive read)。
d1 0 1 1 0 0 0 0 1 1
d0 0 1 1 0 0 0 1 0 1
ad[1..0] 0 1 2 3 0 1 2 3 0
cs# 1 0 0 0 0 0 0 0 0
wr# 1111011111 1111011111 1111011111 1111011111 1111011111 1111011111 1111011111 1111011111 1111011111
rd# 1011111011 1011111011 1011111011 1011111011 1011111011 1011111011 1011111011 1011111011 1011111011
bit1 ---------- x?xx1xx1xx x?xx1xx1xx x?xx0xx0xx x?xx0xx0xx x1xx0xx0xx x1xx0xx0xx x0xx1xx1xx x0xx1xx1xx
bit0 ---------- x?xx1xx1xx x?xx1xx1xx x?xx0xx0xx x?xx0xx0xx x1xx0xx0xx x1xx1xx1xx x0xx0xx0xx x0xx1xx1xx
表1: 模擬的資料讀寫時序、存取位址與預計的資料輸出值
圖1: 6T SRAM cell的電路圖
圖2: 4x8 5T SRAM的模擬電路與參數圖
圖3: 4x8 5T SRAM的模擬圖
從5T到4T
5顆電晶體不會是靜態隨機存取記憶體的每個記憶細胞的電晶體的最小數量,這是在完成5T SRAM cell的模擬之後的想法,應該還可以再減去1顆電晶體!而且如今的1T DRAM cell僅須1條字組線與1條位元線就可以做到記憶位元的存取,為了讓4T SRAM cell可以逼近於1T DRAM cell,因此連位元線也要從2條減少到1條。在參考資料[3]與[4]的文件裡所提到的4T SRAM cell是4顆電晶體和2顆電阻所組成的記憶細胞架構,這種4T2R SRAM cell的架構並沒有減少記憶細胞的體積,而且位元線也沒有減少。在參考論文資料[5]的文件裡有提出一種4T SRAM cell,但是必須加大電晶體的通道寬度、增加電流驅動力才能達到記憶儲存的能力,並且仍然須要2條位元線。
目前探討所謂的4T SRAM cell的功率消耗、存取速度與集積密度,多數的相關論文文件是4T2R SRAM cell的架構,但是這裡是將完成模擬之後的5T SRAM cell再進一步的修改成Real 4T SRAM cell。將記憶細胞的電晶體數量減少到4顆,而且要和1T DRAM cell一樣僅用1條字組線與1條位元線來達到記憶位元的存取,這是不容易達成的基本要件。經由模擬軟體的執行結果,可以看出Real 4T SRAM cell是能夠做到記憶細胞的寫入與讀取,另外,Real 4T SRAM cell也可以單獨地在記憶保持的期間僅將記憶細胞的工作電壓從1.80V下降到(Vdd*0.4) V,如此可以節省記憶細胞的耗電量,而且可以動態地在讀取時序中提升工作電壓至(Vdd*0.6) V以上使得靜態隨機存取記憶體的讀取速度不會因此而降低;在模擬記憶細胞的待機電壓的電路模型中,Real 4T SRAM cell還可以降低到(Vdd*0.15) V,然而5T SRAM cell僅能降低到(Vdd*0.4) V。所以,Real 4T SRAM cell是擁有最高的集積度、最低的功率消耗與最小的存取時間於一身的靜態隨機存取記憶體。
消耗電流的比較
基本上,減少電晶體數量是可以降低消耗電流,但是如果所設計的電晶體是工作在飽和區,消耗電流倒是不減反增。為了觀察靜態隨機存取記憶體的記憶細胞從6顆電晶體減少到4顆的動態消耗電流的情形,在圖2的中間位置放置了一個模擬軟體內建的電流探測物件─I_Probe,並將這個電流探測的節點命名為"CellCP0"。如圖4所示的電流模擬比較圖是圖2所有的記憶細胞的總消耗電流,5T SRAM cell的最大瞬間電流是49μA,4T SRAM cell的最大瞬間電流是51μA。
圖4: 5T SRAM cell, 4T SRAM cell的電流模擬比較圖
記憶體細胞的讀取
一般記憶體的容量都很大,因此位元線的長度會很長並且會增加導線的電阻值,在讀取記憶體細胞的時候,位元線的電阻會產生壓降,必須使用感測放大器(Sense Amplifier)將微弱的讀取電壓放大至正確的數位邏輯的鑑別準位。在6T SRAM cell與4T2R SRAM cell的感測放大器是使用差動式的cross-coupled做為記憶體細胞的讀取電路,然而在Real 4T SRAM cell僅有一條位元線,不能使用差動式的感測放大器,但是可以利用擴展脈波觸發器(Spread Pulse Trigger)[6]來當作感測放大器。如圖5所示的讀寫電路即是在5T SRAM cell與Real 4T SRAM cell的模擬中皆有使用到的細胞讀寫的電路架構,在電路圖中間的"SPT3W-RAM; SPT1"即是將擴展脈波觸發器稍做修改來配合記憶體讀取的電路模組,此時的擴展脈波觸發器就相當於一個感測放大器;配合電路圖下方的"MOSFET1"就含有在讀取DRAM cell時所必須擁有的回寫(restore)功能。
圖5: 記憶體細胞的讀寫電路
從記憶體到暫存器
記憶體和暫存器都是一種資料儲存元件,差別在於記憶體主要用在大量資料的紀錄與讀取,而暫存器用於各種工作狀態的保存以及處理器內部資料處理的緩衝與暫存。在此,將如圖6所示的Fast DFF電路[7]使用這套模擬軟體來觀察輸出波形,並以更新的Ultra DFF電路來與它相互比較。
圖7是Ultra DFF/Fast DFF的模擬電路與參數圖,時脈頻率設定在4.5GHz、工作電壓1.80V,以交替的1和0作為資料輸入。圖8是Ultra DFF的模擬圖,由上而下的電壓波形依序是圖7右方的clr節點、pls節點、D節點和Q節點,經由此圖的模擬結果可以確定Ultra DFF的輸出正確與否,以及在4.5GHz的時脈頻率輸入時,仍然可以運作。
圖9是Ultra DFF和Fast DFF的Q節點以及包含clr信號的模擬比較圖,Ultra DFF在資料輸出的電壓爬升和下降都比Fast DFF來得快,減少了資料的傳遞延遲。Fast DFF是直接利用邏輯閘來組成的資料暫存器,如果在電晶體階層(Transistor Level)可以利用電晶體本身的特性來完成資料儲存的目的,減少暫存器的佔用面積、降低功率消耗,而Ultra DFF的架構還可以減少傳遞延遲時間。再將Ultra DFF的電路做些改變之後就可以實現轉態暫存器(TFF)的功能。在圖8的模擬電路中,是使用7顆電晶體來組成資料暫存器,其中包含了1顆用來處理clr信號的電晶體,另一種可以利用5T SRAM cell的架構以6顆電晶體來組成資料暫存器。
圖6: Fast DFF的電路圖
圖7: Ultra DFF的模擬電路與參數圖
圖8: Ultra DFF的模擬圖
圖9: Ultra DFF和Fast DFF的模擬比較圖(虛線是clr信號)
結論
直到目前,電腦的主記憶體(Main Memory)與視訊記憶體(Video RAM)都是由1T DRAM cell來擔任資料儲存的角色,而且電腦的每一條DDR/DDR2記憶體模組(memory module)必須含有1顆編號為24C02的Serial EEPROM,其中含有SPD(Serial Presence Detect)資訊,主要紀錄著這條記憶體模組標準的讀寫時序,也因為電腦要經由這些資訊才能正確地設定北橋晶片組與記憶體之間的讀寫時序,所以在開機之初,BIOS程式不能使用到主記憶體,反而要善加利用CPU內部的各個暫存器。
除了上述的小缺點之外,在多工作業、多媒體播放與巨量資料存取的需求下,電腦的效能瓶頸受制於主記憶體的存取速度,電腦的超頻玩家必須對記憶體的CAS Latency(CL), Additive Latency(AL), Read Latency[8], Burst Lengths等讀寫參數的設定瞭若指掌,而且不論冷却方法是如何地優異到可以令CPU的時脈頻率、工作電壓提高,記憶體的讀寫時序已經大幅度地壓縮了電腦所能超頻的範圍,另外,電腦的主要熱源除了CPU之外,如果再插上1GB以上大容量的動態隨機存取記憶體之後,筆記型電腦的耗電與熱能是不容忽視的。
基本上,Real 4T SRAM cell的面積會是6T SRAM cell的2/3倍以下,約是1T DRAM cell的2倍,一方面可以提高嵌入式記憶體的容量,另一方面也有機會在效能與省電的雙重要求下,逐步取代1T DRAM cell的地位。在高效率的多工作業之下,CPU必須快速地讀取分散在記憶體之中的BIOS呼叫、系統呼叫、中斷處理、SMI處理等等,系統最底層的處理程序亦是被利用的最澈底、最頻繁的程式碼,我們可以將這些系統程式碼以實際或虛擬定址的方式移至電腦中已經插上Real 4T SRAM cell的記憶體模組裡,甚至在電腦系統進入休眠(hibernation, S4)狀態[9]時,善用Real 4T SRAM cell的省電能力,不再將記憶體中的資料存入系統的硬碟機裡,減少系統從S0進入S4以及從S4狀態恢復到S0狀態所要花費的時間。