不同的存取技術對於動態隨機存取存儲器(DRAM)在進行實體設計時將發生什麼改變? 當動態隨機存取存儲器(DRAM)中的儲存單元(storage cell)加上控制端點以及數據端點後, 就被稱為1T1C DRAM單元; 其中, 控制端點也就是字組線(WL), 用於傳遞位址訊號, 數據端點也就是位元線(BL), 用於傳遞數據值.
陣列結構的差異
長期以來, 對於DRAM單元陣列之中的位元線是使用差動對(differential pair)的樣式來配置, 於是位元線就被區分成 '+BL' 以及 '-BL' ; 本文將這樣的陣列結構命名為差動式儲存陣列(Differential Storage Array), 包含這種陣列結構的DRAM晶片就名為差動式DRAM晶片. 相對於差動式儲存陣列, 新的存取技術可使用單端的樣式來配置, 於是位元線就是 'BL' ; 本文將這樣的陣列結構命名為單端式儲存陣列, 包含這種陣列結構的DRAM晶片就名為單端式DRAM晶片.
在圖1左上方呈現儲存單元的電路圖, 這就是1T1C DRAM晶片的記憶單位. 在圖1中, 為了清楚比較差動式儲存陣列與單端式儲存陣列之間的差異, 特別將上半部繪製成差動式儲存陣列, 又將下半部繪製成單端式儲存陣列. 這樣本是將位址空間設定為4, 其中, 連接定址電路的導線即是WL0至WL3. 連接數據傳輸電路的導線對於差動式儲存陣列的設計是BL00 (+BL)以及BL10 (-BL), 它的數據寬度是2, 並且必為偶數, 但是單端式儲存陣列就止於BL0, 它的數據寬度是1, 可為奇數. 差動式儲存陣列有複雜的導線連接方式, 並且必須交錯連接位址線, 這又被稱為奇偶連線, 像那BL00就是配合WL0以及WL2來存取數據.
從圖 1可清楚看出單端式儲存陣列相對於差動式儲存陣列的優勢, 那就是簡單俐落地連接全部的導線, 這在布局的時候可減輕繞線的工作量以及簡化儲存單元的排列; 在實體電路中可去除差動對的電壓互相影響另一相對的儲存單元, 也就是在進行存取時會互相影響那些在儲存單元之內的電壓值, 這原因歸於電晶體的泄漏電流.
規格設計的差異
在規格設計上, DRAM晶片會配置許多儲存陣列, 本文將這些儲存陣列所形成的布局區域命名為存儲器陣列, 並且這一存儲器陣列又可分割出許多存儲器區塊, 還可聚集這些存儲器區塊成一區塊簇(Block Cluster). 關於本文所提出的DRAM晶片是以圖2來呈現它的內部架構, 這些存儲器區塊配置相同的定址空間, 簡稱區塊空間, 這一區塊空間包含多個與數據寬度相等的單端式儲存陣列, 或是包含多個與半數數據寬度相等的差動式儲存陣列. 在圖中有標記保持單元(Hold Cell)以及更新單元(Refresh Cell), 這需要分別配合主動保持(Active Hold)以及主動更新(Active Refresh)的功能. 在存儲器區塊之內包含更新控制器以及列解碼器即可經由平行技術來執行局部更新作業.
有許多因素可決定區塊空間(Sblock), 像是執行更新作業的時脈頻率, 等待更新作業完成的時間, 執行更新作業的間隔時間以及執行存取作業的時間; 以上這些因素分別簡稱為更新時脈頻率(fCrefresh), 等待時間(t_wait), 更新時間(t_refresh)以及存取時間(t_access). 區塊空間與數據寬度(W_data)的乘積就是存儲器區塊所含有的位元數, 名為區塊容量(C_block). 這些因素之間的關係可由以下的數學方程式來表達, 並隨附範例在後:
圖2: DRAM晶片內部架構
實體結構的差異
在實體結構中, 單一儲存陣列上連接所有儲存單元的單一位元線, 該金屬導線的長度以及寄生電容會限制區塊空間的最大值, 這要從儲存陣列的布局以及儲存單元的特性來分析這些因素. 圖3呈現有一實體結構來示意金屬導線在晶粒上的布局, 其中, 側視圖呈現差動式儲存陣列將那些與+BL以及-BL連接的金屬導線放置在比較下面的金屬層, 像是第一金屬層, 在圖中以粗點線示意; 單端式儲存陣列反而將那些與BL連接的金屬導線放置在比較上面的金屬層, 像是第三金屬層, 在圖中以細實線示意. 頂視圖呈現差動式儲存陣列會加寬金屬導線來增加寄生電容; 單端式儲存陣列反而要使用最小的線寬來去除寄生電容.
以下請對照圖3, 當WL0或WL1使得電晶體導通之後, 與其連接的電容器就會向BL或+BL或-BL放電, 位元線的電流經過一段金屬導線之後連接至數據驅動器以及數據接收器. 那些寄生在金屬導線的全部電容在圖中被標記為 'C_BL' , 這電容量也關聯於實現回寫功能的硬體電路; 圖中有一測試點(TP)用於探測儲存單元的儲存狀態, 它的電壓值即是儲存電壓(V_storage). 當測試點的電荷逐漸移至金屬導線之時, 測試點的電壓也會逐漸下降, 除此之外, 那些與位元線連接的電晶體皆有泄漏電流, 甚至是數據驅動器的輸出端, 因此, 那些移至金屬導線的電荷又會被帶走. 如果提高C_BL的電容量就能夠減緩電荷從金屬導線被帶走的速度, 然而, 金屬導線需要從測試點取得更多的電荷來累積足夠的電壓值, 如此才能判斷數據值, 此外會增加預充電的時間; 這一現象會增加讀取作業的時間以及回寫作業的時間. 如果C_BL的電容量能夠趨近於零即可縮短預充電的時間, 但是那些移至金屬導線的電荷就會迅速流失, 並且測試點的電壓值也會迅速歸零; 這一現象如同發生了突波而導致數據接收器不能判斷數據值, 然而, 這有可能經由增強數據接收器的整體效能而解決. 這一寄生電容對於差動式儲存陣列而言是需要足夠大的電容量來判斷數據值, 對於單端式儲存陣列反而期望得到最小的電容量, 否則不止需要更長的回寫時間來恢複儲存狀態, 也有可能需要更大的電容量來維持正在讀取之時的數據值, 甚至無法判斷數據值.
區塊空間的最大值正比於數據接收器的整體效能, 正比於那在儲存單元內部的電容量(C_storage), 反比於金屬導線的寄生電容, 反比於金屬導線的總阻抗值, 反比於電流路徑之中的動態總泄漏電流(i_DTLC), 這涵意即是每當有一儲存陣列正在存取之時就會根據各儲存單元的儲存電壓值而動態地變化. 經由電容器的電荷分壓定律而能算出正在讀取數據之時那在位元線上的電壓值, 亦即 'V_BL(@reading)' , 數學方程式如後, 其中, 'V_BL(@reading)' 是那在位元線上的差異電壓值, 'V_precharge' 是預充電的電壓值, 這電壓值在差動式儲存陣列是1/2V_dd, 在單端式儲存陣列是0:
儲存電壓的差異
在進入這段的主題之前要先清楚定義以下的名詞: '電源電壓(V_dd)' 是位於儲存單元之外的供應電壓, 也就是向著數字邏輯電路而供應正電壓的電源; '儲存電壓(V_storage)' 是位於儲存單元之內用於接收電壓值並且盡量維持其所對應的邏輯准位來提供讀取期間的數據值; '鑒別電壓(V_discerning)' 是數據接收器在讀取期間或更新期間能夠對最微小的電壓變化而鑒別數據值的極限值; '最小雜訊邊界(V_margin〡MIN)' 是數據接收器在讀取期間或更新期間內受到各類雜訊的幹擾時也能夠鑒別數據值的最小邊界電壓值, 這些雜訊包含電源雜訊以及切換雜訊; '最小差異電壓(ΔV〡MIN))' 等於鑒別電壓加上最小雜訊邊界, 是在讀取期間或更新期間能夠在受到雜訊幹擾之時也能被數據接收器鑒別數據值的最小儲存電壓, 這電壓也會影響更新時間的極限值. 另外, '單元電壓(V_cell)' 是筆者發表有關SRAM的存取技術時所提出的一種供應電壓, 這用途不同於儲存電壓.
圖4呈現差動式儲存陣列以及單端式儲存陣列的儲存電壓, 並且突顯在單一儲存單元之中的差異. 為了忽略不同的儲存陣列在存取技術上的差異, 所以這電壓波形圖所對應到的硬體電路就是單一儲存單元. 換言之, 這是設定在相同的製程參數, 電容量以及泄漏電流來比較關於儲存電壓的差異.
電晶體的閘極電壓(V_t)會使得儲存電壓低於電源電壓, 如果逐漸增加電晶體的閘極電壓則可使得儲存電壓逐漸趨近電源電壓. 差動式儲存陣列為了去除閘極電壓, 於是在存取期間之內會令字組線的電壓值至少到達電源電壓加上閘極電壓, 使得最大的儲存電壓等於電源電壓. 單端式儲存陣列除了可經由上述的增壓方法來達到同樣的效果之外, 尚可經由多閘極電壓的製程技術來使用高閘極電壓的電晶體, 如此還能減小泄漏電流. 對於減小泄漏電流的電路也能使用三阱製程(triple-well process)來設計列解碼器的輸出驅動器, 如此即可令字組線以負電壓截止電晶體.
圖4的電壓波形圖是呈現去除閘極電壓的影響而形成的工作狀態. 在寫入期間之內, 差動式儲存陣列的儲存電壓會先到達預充電的電壓值, 然後到達所被寫入的電壓值; 然而, 單端式儲存陣列沒有預充電的電壓值. 在保持期間之內, 差動式儲存陣列的儲存電壓會逐漸趨近半倍的電源電壓值; 然而, 單端式儲存陣列是逐漸趨近最小的電壓值, 亦即接地電壓值. 由此看出單端式儲存陣列的更新時間大約是差動式儲存陣列的二倍.
圖5是為了突顯差動式儲存陣列與單端式儲存陣列之間的效益差異, 所以這電壓波形圖呈現加入閘極電壓所形成的影響. 在寫入期間之內, 最大的儲存電壓值低於電源電壓值, 這影響了差動式儲存陣列的電壓對稱性. 在保持期間之內, 對於差動式儲存陣列的儲存電壓, 放電曲線比充電曲線更快到達半倍的電源電壓值, 使得更新時間被迫縮短. 由此看出單端式儲存陣列的更新時間超過差動式儲存陣列的二倍.
經由上述的分析而得知一些會影響時間的因素, 其中, 泄漏電流是主要因素, 並且正比於工作溫度. 關於在差動式儲存陣列內部單一單元的泄漏時間(tDleakage)以及在單端式儲存陣列內部單一單元的泄漏時間(tSleakage)可由以下的數學方程式來表達, 其中, 't_zeroing' 代表單端式儲存單元在每次對儲存電壓執行歸零的時間, 亦即啟動主動保持功能的時間:
由於每當有一儲存陣列正在存取之時就會影響內部各儲存單元的更新時間, 所以其餘儲存單元受到這一存取作業而被縮短了更新時間就名為收縮時間. 差動式儲存陣列的收縮時間(σtDshrink)以及單端式儲存陣列的收縮時間(σtSshrink)可由以下的數學方程式來表達, 其中, 't_precharge' 代表預充電時間, 't_rdvwr' 代表讀取或寫入時間, 't_rewrite' 代表回寫時間:
關於各種儲存陣列在工作中的動態更新時間(σt_refresh@working)可由以下的數學方程式來表達, 並且動態更新時間不同於設計上的更新時間, 其中, 'T_access' 代表執行存取作業的次數:
圖4: 儲存單元(不帶Vt)的儲存電壓比較
結論
差動式儲存陣列的存取電路很容易經由習以為知的電路來實現, 然而, 單端式儲存陣列的存取特性對於數據接收器的設計是一重大的考驗, 由此可推知1T1C DRAM單元在出現以來就是使用差動放大器來讀取數據. 本文對於DRAM存取技術的改變而形成了這種單端式儲存陣列, 乃是基於由三電晶體結合另一電阻器所組成的SRAM單元. 簡言之, 靜態減量技術成, 動態存取特性同. 在標準的CMOS製程技術下, 當SRAM單元的電晶體數量減少至三顆的時候就少了些原有的特性, 尤其是存取特性的迵異, 並且類似於DRAM單元.