在內存讀寫速度可以達到20~30GB/S的現在(DDR3末期,DDR4早期),為什麼PC或MAC的內存測試依然需要動輒數小時?

把Mac mini 2010加到8GB DDR-3 1066Mhz內存,使用Apple Hardware Test進行內存測試用了兩個多小時。請問在目前DDR3內存的讀寫速度這麼快的情況下,為何8GB內存測試依然需要這麼久的時間,這些測試項目是什麼?


首先,實際中我沒見過內存速度超過10GB/s的情況,不知道是不是題主你把單位弄錯了?實際見過的像RamDisk之類的軟體,連續讀寫能達到的速度也不過5~8GB/s左右,如果是隨機讀寫,性能大概還要下降接近十分之一。

所以內存沒你想的那麼快。

其次,內存檢測不是把內存讀寫一遍就完事,讀寫完還要檢測讀寫數據是否一致,這些都是要通過CPU的ALU完成,CPU的負載會非常重,而且很多時候也並非是大塊讀寫,而是4位元組甚至單位元組讀寫,這樣算下來,為了檢測一個位元組的內存單元,CPU可能需要十幾個到幾十指令,這裡還包含不少算數指令,速度很慢。

這樣最終算下來,內存檢測的速度大概在100MB/s或者更慢,這還沒完,為了檢測內存的每個bit是否正確,通常來說要擦寫很多中不同的數據,比如uboot里的內存檢測就寫了好幾次,如果以4位元組16進位數來看,那麼寫入的東西包括:全0,全1,全5,全A,全F,基於地址的移位,地址值,地址值求反……

這還沒完,還要檢測物理地址的地址線是否有效,地址線可能會斷開、互繞、短路等等,還有一堆堆的數字要寫進去、讀出來,有些地址線還可能把同一個內存位置錯誤的映射成兩個不同的地址,因此寫入的次序也有要求。

所以最終的結果就是內存檢測的時間非常漫長,不亞於壓縮一部像內存那麼大的片子。

補充:以上僅限於用專門的內存檢測工具測試的效果,PC機開機自檢一般只做很簡單的測試,速度很快。


推薦閱讀:

電腦死機的時候到底在幹什麼?
Windows是如何統治世界的?
win10下到底如何關閉WmiPrvSE.exe呢?

TAG:操作系統 | 內存RAM |