在內存讀寫速度可以達到20~30GB/S的現在(DDR3末期,DDR4早期),為什麼PC或MAC的內存測試依然需要動輒數小時?
01-05
把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機開機自檢一般只做很簡單的測試,速度很快。
推薦閱讀: