CDRAM內部是大量由電容構成的存儲單元,這些存儲單元按照行(row)和列(column)組成表格,為了對某個單元進行讀寫,需要指定該單元的行地址和列地址。以讀過程為例,首先行地址信號加在晶片的地址線上,當ras信號變為低電平時,行地址被鎖定在晶片內部的行地址緩衝區內,同時感應放大器被激活,ras信號穩定之後,指定行的所有數據位都被傳送至感應放大器中,接下來列地址信號加在晶片的地址線上,當cas信號變為低電平時,列地址被鎖定在列地址緩衝區內,同時輸出緩衝區被打開,當cas信號穩定之後,感應放大器把指定列的數據傳送至輸出緩衝區中,接著送到晶片的數據線上。由於存儲單元的電容在送出數據後就已放電,所以在讀操作結束之前,感應放大器還要把選定行的數據重新送回到存儲單元之中。
任何類型的CDRAM在讀寫數據時都需要進行上述基本的內部操作,而完成這些步驟需要一定的時間,為了加快cpu讀寫dram的速度,dram設計者們對晶片內部操作的某些步驟和信號定時進行了最佳化和改進,在一些特殊情況下去掉不必要的步驟,從而設計出各種類型的dram。
兩三年前還相當流行的fpm(fastpagemode)和edo(hyperpagemode)dram都屬於異步記憶體,其輸入輸出接口不與系統時鐘同步,cpu在存取數據時不得不保持和監視各種信號,等待dram完成所有內部操作,典型的等待時間為60ns或70ns,這個延遲時間也就代表了異步dram的存取速度。
sdram具有同步接口,在系統時鐘的控制下,sdram能夠把地址、控制和數據信號鎖定起來,經過指定的時鐘數後,cpu可以直接從數據線上獲得所需數據。由於不再需要監視數據的存取過程,一些具有亂序執行功能的高級cpu能夠在等待存取數據時完成其它一些工作,這也是同步dram的優點之一。sdram晶片的速度通常用其最高輸出頻率來表示,如66mhz或100mhz,它們轉換成時間分別為15ns和10ns,這裡的15ns或10ns與edo記憶體的60ns不是一個概念。sdram記憶體條由多塊sdram晶片組裝而成,為了實現各種信號之間的同步又會引入額外的延遲,因此即使由100mhz晶片構成的記憶體條很多也只能穩定工作在83mhz及以下頻率上,這些記憶體條被統稱為pc66sdram。intel很清楚地認識到了sdram市場的狀況,於是在推出支持100mhz匯流排頻率的440BX晶片組之前提出了一個pc100sdram的規範,以確保通過檢測的sdram能夠穩定工作在100mhz主頻上。該規範除了對sdram的各種電氣特性作出了規定外,還引入了spd(串列存在檢測),支持spd的主機板可以從eeprom中讀取sdram的工作參數,以避免由於參數設定不當而引起系統的不穩定。
從內部結構來看,我們最常用的sdram都是jedecsdram,jedec是eia(電子工業聯盟)下屬的電子設備工程聯合委員會的簡稱,這個組織專門負責制定半導體工程方面的標準。jedecsdram和其它一些sdram都支持突發傳輸模式,在這種工作模式下,當第一個列地址輸入之後,sdram晶片內部自動產生下面三個連續的列地址,省去了重新輸入列地址的步驟,從而可以快速輸出後三個地址的數據,這些sdram與支持突發模式的高速快取相配合可以有效地提高系統的性能。
sdram有兩項速度指標會對系統性能產生影響,它們是延遲(latency)時間和最大頻寬(bandwidth),前者是指當高速快取沒有命中時,從cpu發出讀數請求到取回數據所需要經過的時間,後者是指l2高速快取在cpu讀數時利用突發模式取回相鄰地址的數據的最快速度,通常我們在bios中設定的“7-1-1-1”或“5-2-2-2”就包含了這兩個指標,其中的7或5是以匯流排時鐘數表示的延遲,1或2是突發模式下傳輸一次數據需要的時鐘數。由於sdram記憶體條具有64位數據傳輸通道,因此在100mhz匯流排頻率下,理論上sdram能達到的最大傳輸速率為800mb/s。
由於CPU的運算速度愈來愈快,主存儲器(DRAM)的數據存取速度常無法跟上CPU的速度,因而影響計算機的執行效率,如果在CPU與主存儲器之間,使用速度最快之SRAM來作為CPU的數據快取區,將可大幅提升系統的執行效率,而且透過Cache來事先讀取CPU可能需要的數據,可避免主存儲器與速度更慢的輔助記憶體的頻繁存取數據,對系統的執行效率也大有幫助。
不過因SRAM比DRAM貴太多,如果主存儲器全採用SRAM則系統造價太高,所以一般皆只安裝512KB~1MB的Cache。Cache的套用除了加在CPU與主存儲器之間外,硬碟、印表機、CD-ROM等外圍設備也都會加上Cache來提升該設備的數據存取效率。在CPU開始執行任何指令之前,都會首先從記憶體中取得該條指令以及其它一些相關數據和信息。為了加快CPU的運行速度,幾乎所有的晶片都採用兩種不同類型的內部存儲器,即高速快取。快取被用來臨時存放一些經常被使用的程式片段或數據。
一級高速快取是性能最好快取類型,與解釋指令和執行算術運算的處理單元一到構成CPU的核心。CPU可以在全速運行的狀態下讀取存放在一級高速快取中的指令或數據。Intel的處理器產品一般都會具有32K的一級快取,而象AMD或Via這種競爭對手的產品則會使用更多的一級快取。如果在一級快取中沒有找到所需要的指令或數據,處理器會查看容量更大的二級快取。二級快取既可以被集成到CPU晶片內部,也可以作為外部快取。PentiumII處理器具有512K的二級快取,工作速度相當於CPU速度的一半。Celeron以及更新的PentiumIII晶片則分別具有128K和256K的在片二級快取,能夠在處理器全速下運行。對於存放在速度較慢的二級快取中的指令或數據,處理器往往需要等待2到4個時鐘周期。為了充分利用計算資源,CPU可以在這段時間內查看和執行其它正在等候處理,但不需要使用額外數據的指令,從而提高整個系統的速度,把空閒時間降低到最低程度。