記憶體刷洗

記憶體刷洗(英語:Memory scrubbing)也可稱記憶體擦洗記憶體清洗,它是指從每個電腦存儲器位置讀取數據、以一種錯誤糾錯碼(ECC)糾正比特錯誤(如果存在),然後將校正後的數據寫回到相同位置。

基本介紹

  • 中文名:記憶體刷洗
  • 外文名:Memory scrubbing
  • 又叫:記憶體擦洗
  • 領域:計算機
簡介,概述,變種,參見,

簡介

由於現代計算機記憶體晶片的高度集成,單個記憶體單元的結構已足夠小到易於受到宇宙射線和/或阿爾法粒子的影響。由這些現象引發的錯誤被稱為軟性錯誤,這對基於DRAMSRAM的記憶體來說可能是個問題。在任何單個記憶體比特發生軟錯誤的機率非常小。但是,配以現代計算機的龐大記憶體空間,加之長時間持續運行的如伺服器,在已安裝記憶體中發生軟錯誤的機率可能比較顯著。
糾錯記憶體中的信息被冗餘存儲,以便能校正每個記憶體字(word)的單比特錯誤。也因如此,ECC記憶體可以支持對記憶體的刷洗。換句話說,如果記憶體控制器系統性掃描記憶體,則可以檢測到單比特錯誤,並可以使用ECC校驗和來確定出錯的比特並將校正的數據寫回記憶體。

概述

在同一個字(word)未發生多比特錯誤前周期性檢查每個記憶體位置很重要,這是因為截至2008年,ECC記憶體模組還不能校正出現多比特的錯誤。
為了不干擾來自CPU的常規記憶體請求以及防止電腦性能下降,刷洗通常僅在空閒時進行。由於刷洗是由正常的讀取和寫入操作組成,它可能增加記憶體相較非刷洗操作時的功耗。因此,刷洗應該周期性但不是持續性進行。許多伺服器可以在BIOS設定程式中配置刷洗周期。
普通的記憶體讀取是由CPU或DMA設備發出和檢查ECC錯誤,但由於數據局部性原因,它們可能被限制在小範圍的地址空間內,並且保持位置、很長時間不被觸碰。這些位置因而可能容易受到多個軟錯誤的影響,而刷洗可確保在指定時間內檢查整個記憶體。
在某些系統上,不止主記憶體(基於DRAM的記憶體)支持刷洗,有些CPU高速快取(基於SRAM)也可以。在大多數系統上,兩者都可以獨立配置刷洗速率。因為快取比主記憶體小得多,所以快取的擦洗不需要頻繁進行。
記憶體刷洗提高了可靠性,因此它可被歸類為可靠性、可用性和可維護性(RAS)特性。

變種

它通常有兩種變體,被稱為巡邏刷洗(patrol scrubbing)與按需刷洗(demand scrubbing)。雖然它們本質上都執行記憶體刷洗及相關的錯誤糾正(如果可行),兩者的主要區別是如何啟動和執行。巡邏刷洗會在系統空閒時自動運行,而按需刷洗是在數據被主存儲器實際請求時執行錯誤糾正。

參見

  • 數據刷洗,包含記憶體刷洗等的一般分類
  • 軟性錯誤,執行記憶體刷洗的一個重要原因
  • 錯誤檢測與糾正,記憶體刷洗的一般理論
  • 記憶體刷新,用於保留存儲在記憶體中的信息。

相關詞條

熱門詞條

聯絡我們