2.2.5. 結論
這一節應該已經顯示出存取 DRAM 並不是一個非常快速的過程。至少與處理器執行、以及存取暫存器與快取的速度相比並不怎麼快。務必將 CPU 與記憶體頻率之間的差異放在心上。一顆以 2.933GHz 運作的 Intel Core 2 處理器以及一條 1.066GHz FSB 的時脈比率(clock ratio)為 11:1(註:1.066GHz 匯流排是四倍頻的)。每在記憶體匯流排延誤一個週期,意味著延誤處理器 11 個週期。對於大多數機器來說,實際使用的 DRAM 要更慢一些,也因此增加延遲。當我們在接下來的章節中談論延誤的時候,要把這些數字記在心中。
讀取命令的時序圖顯示 DRAM 模組的持續資料傳輸速率(sustained data rate)很高。整個 DRAM 列能夠在毫無延誤的情況下傳輸。資料匯流排能夠 100% 持續使用。對於 DDR 模組而言,這代表每個週期傳輸二個 64 位元的字組。以 DDR2-800 模組與雙通道來說,這代表速率為 12.8GB/s。
但是,除了為此而設計的情況,DRAM 並非總是循序存取的。使用不連續的記憶體區域,意味著需要預充電以及新的 訊號。這即是工作慢下來、並且 DRAM 需要協助的時候。能越早進行預充電以及發送 ,真的需要那列時的損失(penalty)就越小。
硬體與軟體預取(prefetch)(見 6.3 節)能夠用以創造更多時間上的重疊並減少延誤。預取也有助於及時搬移記憶體操作,以讓之後 ── 在資料真的被需要之前 ── 少點爭奪。當必須儲存這一輪所產生的資料、並且必須讀取下一輪所需的資料時,這是個常見的問題。藉由及時搬移讀取操作,就不必在基本上相同的時間發出寫入與讀取操作。