6.2-5 動態隨機存取記憶體
一個動態隨機存取記憶體(Dynamic RAM,DRAM)的記憶胞結構如(圖6-15 )所示,儲存一個位元的資料簡單到只需一只電容C,當行解碼線與列解碼線動作時,可令MOSFET接通允許電容電壓被讀取或寫入,由於電容的電壓儲存時有漏電現象以及傳輸時的損失,除了在寫入與讀出時都經過放大之外,每一列的所有位元經過經一段時間就必須將資料讀出後再寫入一次,這個工作稱為DRAM的再新(refresh),每一列再新所需時間為15.625μS,因此每128列(7條位址線)的更新間隔時間為2mS。
(圖6-15
DRAM最大的優勢是容量大,約為SRAM的4倍,不但省電又比SRAM便宜。但是DRAM須要再新電路的設計,導致使用的不便以及使用效率上的損失。因此廠商將再新電路做在DRAM裡面,以計數器自動再新,簡化了外部電路的設計,使用的便利性就和SRAM沒有兩樣,這種DRAM稱之為虛擬靜態RAM(Pseudo SRAM,PSRAM)。PSRAM雖然簡化了DRAM的外部電路設計,但是想要讓記憶體能配合CPU的速度,目前也只能選擇SRAM。
(圖6-16) DRAM多工方式的位址輸入與解碼結構
DRAM的市場需求大,生產廠商也多,因此編號種類也多,典型的編號為41×××-YY,其中×××代表位元容量,必須注意的是大多數的DRAM字組長度為一位元,例如4164-35是一只64K×1位元,存取時間為350nS的DRAM。為了減少IC接腳,DRAM的行解碼輸入線與列解碼輸入線都是採多工方式,亦即以同樣的位址線分兩次輸入,見(圖6-16 ),所以一只n條位址線輸入的DRAM,行位址(低位址)線有n條,列位址(高位址)可以是n條或小於n條,可以規劃最大解碼的記憶胞應為 22n。因此DRAM晶片的容量多以4的倍數遞增,例如4M位元、16M位元、64M位元、256M位元等等,相信更大容量的DRAM不久之後就會問世。
由於DRAM以MOS為主要元件,電路中的雜散電容影響存取時間頗大,如(圖6-17 )所示,每更換一次列位址時,RAS都必須等待一段時間讓控制電路充電,資料的存取才會正確,此充電時間稱為預充電時間(precharge time , tRP ; 約40nS)。
(圖6-17) DRAM定址時序
從(圖6-17 )可知,早期的DRAM列位址(高位址)必須由RAS負緣鎖定在列門閂解碼電路中,然後RAS至少要維持一個列位址建立時間(tRAS ; 典型約80nS)的低態,這段時間內再以CAS負緣鎖定行位址(低位址)在行門閂解碼電路,才能解碼到一個正確的記憶胞位址,因此一個DRAM的存取週期(tRC)可用列位址建立時間加上預充電時間來計算(tRC = tRAS + tRP ; 約120nS)。這個不算小的時間,使得DRAM無法成為與CPU高速匹配的存取裝置,但是低價大容量的特性怎會讓生產廠商輕易放棄,於是在CPU與DRAM之間產生了一種變通方式的電路設計,也就是購買電腦時的重要配備選項之一:『隱藏記憶體(cache memory)』,俗稱快取或快捷記憶體。
為了要與隱藏記憶體工作模式搭配,DRAM的發展又有四個階斷的改良,首先讓我們先對隱藏記憶體做一番瞭解。快取記憶體並非材質變化上的記憶體,而是電腦對SRAM應用上的一個稱呼。原因是DRAM對CPU的配合速度不夠,為了折衷成本與速度,在CPU與DRAM中加入了一小部份的SRAM (圖6-18 ),當CPU需要到記憶體中抓取資料時,都是先到SRAM中去找,若沒有則快取管理晶片會將CPU所要資料,從DRAM對映搬移到SRAM中,而且每次都是整段(整頁)搬移,並不是CPU所要的一個字組而已。當CPU下次還要資料時,通常都是在前筆資料的位址附近,因此在SRAM中讀取資料就比每次都到DRAM中讀取快多了。當然,寫入時快取管理晶片一樣提供Cache RAM對映DRAM的服務,也就是CPU先寫到SRAM中,再由快取管理晶片轉入DRAM中。因此Cache RAM的容量大小會關係著CPU是否容易找到資料的機率,間接影響系統效率。
(圖6-18) Cache RAM的系統架構
自從Cache架構出現後,DRAM為了配合整頁存取的模式,就產生了快頁模式(FPM)、延展資料輸出(EDO)模式、同步動態隨機記憶體 (SDRAM)、雙倍速率記憶體(DDR SDRAM)四階段的演進,依其改良目的簡介於下:
(1)FPM模式
DRAM每存取非連續性資料典型值在120nS左右,換句話說只能工作在8.3MHz的系統中。但是在快取架構的整頁存取模式下,DRAM在列位址鎖定後只需更改連續的行位址 (圖6-20 ),此時除了第一筆資料需要一個列存取時間tRAC (約60nS)外,其餘的資料僅需行規劃時間tPC(約35nS),這種模式下在快取與DRAM之間的平均存取時間速率可提高到28MHz(1/35ns),稱此模式為快頁模式(fast page mode ; FPM)。由於80×86CPU的快取架構以4的倍數做為一個基本區段資料的存取,因此DRAM業者會以前四筆資料的存取時間百分比來比較各種DRAM模式的存取速度,因此以一個列存取時間(tRAC)為60nS的FPM 模式DRAM而言,前四筆資料的存取時間比為60/35/35/35以等比方式簡記成「5/3/3/3」。
(圖6-20) DRAM的FPM模式
(2)EDO模式
DRAM的FPM模式在CAS預充電時間,輸出端的三態緩衝器是關閉的,亦即呈現開路狀態 (圖6-20 ),為了要穩定的輸出資料時間夠長,就只能延長tCAS的低態時間,而延展資料輸出(expanded data output , EDO)模式的DRAM,在CAS預充電時間並不關閉三態緩衝器,且允許輸出維持到下一筆資料,這微小的改變可令資料輸出時間維持FPM一樣的水準之下,將CAS的開啟時間(tCAS)再縮短一點,使得每行的規劃時間(tPC) 縮短到25nS,系統工作頻率可到40MHz。前四筆資料存取時間比為「5/2/2/2」。
(圖6-22) DRAM的EDO模式
EDO DRAM改善資料輸出時間的構想,引發了第二波快速轉移資料輸出的設計,那就是猝發型EDO(Burst EDO , BEDO)。BEDO DRAM內建兩條管線的頁位址產生器和控制暫存器,當使用整頁猝發模式的下第一頁資料鎖定在輸出緩衝器時,第二頁的位址線已解碼就緒,此種模式下讓EDO DRAM的效率增加40%,可工作在66MHz的時脈頻率。
(3)SDRAM
在商業的競爭下,設計者對DRAM功能的改善是積極的,例如:
1. 對於連性續猝發模式(burst mode)的存取長度是可以控制的(包括1筆、2筆、4筆、8筆、整頁等模式)。
2. 含有自動及自我再新(self refresh)的能力。
3. 可選擇性的抑制輸出線中部份位元成為高阻抗(使用DQM控制線),可配合不同位元長度的微處理機使用。
4. 更大的容量、更快的存取速度等等要求。
5. 自動預充電,或控制下充電。
6. 待機時的省電設計。
以上的要求在SDRAM的出現後逐一實現,導致FPM及EDO只能在價格上與SDRAM競爭,相信不久之後FRM或EDO都免不了被淘汰。
從前面兩節的分析可知,DRAM的預充電時間限制了DRAM的存取速度,這個天生的障礙很難改善分散資料的隨機存取時間。但是對於猝發模式(burst mode)的存取,可預知道下一筆資料的位址,因此SDRAM利用了交叉記憶模組(interleaved memory module)以及多管線(multi-pipeline)的技術,改善了DRAM在猝發模式下的存取時間,在連續存取的應用中可到達與外步時脈同步存取的效率,故稱同步型DRAM(Synchronous DRAM,SDRAM)。值得注意的是,SDRAM可以改善的是資料預選及輸出的方式,並非資料真正的存取時間,所以對於猝發模式下的第一筆資料的存取時間仍然無法改善,所以列存取時間(tRAC)為60nS而言,前四筆資料存取時間比為「5/1/1/1」,第二筆以後的存取時間可在12nS以下。目前猝發模式最高可達143MHz以上,增加管線處理的數量將來可至1GHz。
所謂交叉記憶模組是指將記憶體分成兩個以上的記憶庫(目前為2或4個),可用交叉(輪流)方式在它們之間存取資料,而多管線是指利用多工器的原理將多個資料庫的資料輪流接通至資料端,這兩種硬體功能的結合可以有效的忽略等待解碼及預充電的時間。(圖6-23 )說明了DRAM的資料建立時間(tDS)大於外部一個時脈時間(tCK),外部仍可同步讀取資料的原因。
(圖6-23) 管線結構資料建立說明圖
(圖6-24) SDRAM結構簡化圖
SDRAM與傳統的DRAM在使用程序上有所不同,因為SDRAM是一個可以規劃猝發存取長度及選擇操作模式的DRAM,所以必須先對SDRAM依序寫入命令才能進行存取,規劃方法請參考各廠商的技術資料手冊。SDRAM的資料寬度均配合CPU的發展而生產,故有8位元、16位元、32位元、64位元的產品。也有配合繪圖顯示卡的需求的產品,可以將資料寫入每一位元(write-per-bit)以及區段寫入(block-write function)的功能,以配合顯示畫面需要整頁更改或部分的修改,此種SDRAM稱為“SGRAM”。
(4)DDR SDRAM
DDR SDRAM即雙倍資料速率(Double Data Rate) SDRAM的意思,它利用記憶體時脈的正緣及負緣各呈現一次資料,故資料傳輸速率成為SDRAM的兩倍,由於先前介紹的SDRAM僅在時脈負緣呈現資料,為了與DDR SDRAM區別又稱為SDR SDRAM。
(圖6-25) SDR SDRAM與DDR SDRAM資料呈現差異圖
由 (圖6-25) 可知一個工作於64位元/100MHz時脈下的DDR SDRAM,每秒的傳輸率為100M×64bit×2/8bit=1600MB/S,而SDR SDRAM則為它的一半(800MB/S)。此外SDR SDRAM的電源為3.3V而DDR SDRAM為2.5V,DDR的省電性較優勢。
製造SDRAM的廠商都會對自己的產品編號,但對應用於個人電腦的SDR SDRAM,包裝成記憶模組後市場上會以PC×××稱之,而DDR SDRAM會以DDR×××稱之,其中×××是此SDRAM的最大工作頻率。