回到時序本身

看完記憶體存取資料的方式與過程之後,我們現在就可以回頭談時序本身了,如同本節一開始出現過的這張圖,時序通常由四組數字組成:

MTT6335

首先從意義比較簡單的 tRAS 開始,RAS 的全名是 Row Address Strobe,也就是列位置閘門切換的延遲時間,其實就是前面記憶體存取步驟中說明過的「啟動一整列」所需要的時脈週期數。

另一個時序參數則是 tRCD,RCD 的全名是 RAS to CAS Delay,也就是記憶體完成啟動一整列之後,到開始選定欄之前這中間經過的延遲時間。

第三個時序參數則是 tRP,RP 的全名是 RAS Precharge,意義上則是前面介紹記憶體存取步驟中的 Step 5 內,要將原本已經啟動的一整列關閉,再到開始啟動另一列這之間所經過的時脈週期數。

最後要談的時序參數 (同時也是一般來說我們比較在意的) 就是上圖顯示的第一組數字,CL 的全名是 CAS (Column Address Strobe) Latency,也就是前面提過的,如果要存取的資料都在同一列的狀況下,就不需要重新啟動其他列,而可以直接存取同列的另一個欄位,也就是欄位編號定位之後到真正取得資料這之間所經過的時脈週期數。

時序越高,延遲就一定越高嗎?

這個問題大概是不少人都會有的疑問,因為從前面的說明看起來好像時序高是一件很不好的事情?但實際上並不這麼單純,要特別留意到時序的單位並不是秒,而是時脈週期 (clock cycle) 數,所以會跟記憶體的運作時脈有直接關係,所以這個問題的答案是否定的。

以時序 15 的 DDR4-2400 來說好了,運作時脈為 300 MHz,每個時脈週期換算成時間其實是 3.33ns (nanoseconds),因此 15 個時序經過的延遲時間是 49.95 ns,如果我們拿一個時序 14 的 DDR4-2133 來對比,由於運作時脈下降到 266 MHz,每個時脈週期換算的時間就增加到 3.76 ns,經過 14 個時序其實會有 52.64 ns 的延遲,這就是一個時序低但其實延遲反而長的例子,基本上在高時脈記憶體上看到較高的時序這也是其中一個原因。

近來風氣強調時脈多於時序

其實時至今日已經很少聽到有人特別在意時序的問題了,也越來越少聽說有人要「特挑低時序」的記憶體模組,甚至連超頻玩家也漸漸較少人去研究時序的調校,或許是因為時脈提升帶來的性能提升遠較時序降低來得明顯,而降低時序的困難度卻比拉高時脈來得困難許多的緣故吧?

當然如果要追求效能的最大極限,選擇時脈最高「且」同時有最低時序的組合應該是可以帶來最佳效果的,但付出如此多時間心力換來的效果是否明顯到值得這麼做,恐怕就有待商榷了。