錯誤數

錯誤數

我這裡有一台筆記型電腦,我懷疑它的記憶體模組有故障。因此我下載了記憶體測試86+並讓它運行。

請注意,截圖不是我的真實截圖,它是由 memtest86+ 提供的

記憶體測試

如何解讀螢幕上的數字?我已經讓它運行了大約四個小時,現在我已經進入了第 7 關。

特別是,什麼是

  • 測試編號
  • 錯誤數
  • ECC 錯誤計數

表明?記憶體錯誤的合理值是多少?什麼時候該考慮更換記憶體?

答案1

長話短說

首先是最重要的數字:健康記憶體的錯誤計數應該為 0。任何大於 0 的數字都可能表示扇區損壞/故障。


畫面說明

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

數據/測試說明

MemTest 執行許多測試,它將特定模式寫入記憶體的每個磁區並檢索它。如果檢索到的資料與最初儲存的資料不同,MemTest 會記錄錯誤並增加錯誤計數一個。錯誤通常是 RAM 條帶損壞的跡象。

由於記憶體不僅僅是保存資訊的記事本,還具有快取等高級功能,因此需要進行幾種不同的測試。這就是Test #表示。 MemTest 執行許多不同的測試來查看是否發生錯誤。

一些(簡化的)測試範例:

  • 依此順序測試扇區:A、B、C、D、E、F。
  • 依此順序測試扇區:A、C、E、B、D、F。
  • 用圖案填滿所有扇區:aaaaaaaa
  • 用隨機圖案填滿所有扇區。

所有測試的更詳細描述來自:https://www.memtest86.com/technical.htm#detailed

測試 0 [地址測試,步行,無緩存]

使用步行位址模式測試所有儲存體中的所有位址位元。

測試1 [地址測試,自己的地址,順序]

每個地址都寫入自己的地址,然後檢查一致性。理論上,先前的測試應該能夠發現任何記憶體尋址問題。該測試應該捕獲以前未檢測到的任何尋址錯誤。該測試是對每個可用的 CPU 依序完成的。

測試2【地址測試,自己的地址,並行】

與測試 1 相同,但測試是使用所有 CPU 並使用重疊位址並行完成的。

測試 3 [移動反轉、一與零、順序]

該測試使用具有全 1 和 0 模式的移動反轉演算法。即使快取在一定程度上乾擾了測試演算法,它仍然被啟用。啟用快取後,此測試不會花費很長時間,並且應該很快就會找到所有“硬”錯誤和一些更微妙的錯誤。此測試只是一個快速檢查。該測試是對每個可用的 CPU 依序完成的。

測試 4 [移動反轉、一和零、並行]

與測試 3 相同,但測試是使用所有 CPU 並行完成的。

測試 5 [移動反轉,8 位元拍]

這與測試 4 相同,但使用「行走」1 和 0 的 8 位寬模式。該測試將更好地檢測“寬”記憶體晶片中的細微錯誤。

測試 6 [移動反轉,隨機模式]

測試 6 使用與測試 4 相同的演算法,但資料模式是隨機數字且是補碼。該測試對於發現難以檢測的資料敏感錯誤特別有效。每次傳遞的隨機數序列都不同,因此多次傳遞可提高有效性。

測試7【方塊移動,64步】

該測試透過使用區塊移動 (movsl) 指令來強調內存,並且基於 Robert Redelmeier 的 burnBX 測試。記憶體使用每 8 個位元組反轉一次的移位模式進行初始化。然後使用 movsl 指令移動 4mb 記憶體區塊。移動完成後,檢查資料模式。由於僅在記憶體移動完成後才檢查數據,因此無法知道錯誤發生在哪裡。報告的地址僅適用於發現不良模式的位置。由於移動被限制在 8mb 的記憶體段內,因此失敗的位址與報告的位址之間的距離始終小於 8mb。此測試中的錯誤不會用於計算 BadRAM 模式。

測試 8 [移動反轉,32 位元 pat]

這是移動反轉演算法的一種變體,該演算法將每個連續位址的資料模式左移一位。每一遍的起始位位置都會左移。要使用所有可能的資料模式,需要 32 次。該測試在檢測資料敏感錯誤方面非常有效,但執行時間較長。

測試 9 [隨機數字序列]

該測試將一系列隨機數寫入記憶體。透過重置隨機數的種子,可以創建相同的數字序列以供參考。檢查初始模式,然後在下一次通過時再次補充和檢查。然而,與移動反轉不同的是,測試寫入和檢查只能在正向進行。

測試 10 [模 20,一和零]

使用 Modulo-X 演算法應該可以發現由於快取和緩衝對演算法的干擾而無法透過移動反轉檢測到的錯誤。與測試一一樣,資料模式僅使用 1 和 0。

測試 11 [位元淡入淡出測試,90 分鐘,2 種模式]

位元褪色測試使用模式初始化所有內存,然後休眠 5 分鐘。然後檢查內存以查看是否有任何內存位已更改。使用全 1 和全 0 模式。

因為壞扇區有時可能有效,有時則無效,因此我建議讓 MemTest 運行幾次。滿滿的經過是已通過的完整測試系列。 (上述測試系列 1-11)您獲得的無錯誤通過次數越多,您的 MemTest 運行就越準確。為了確保這一點,我通常會跑大約 5 次。

錯誤計數健康記憶體應為 0。

ECC 錯誤計數ECC僅當設定為時才應考慮off。 ECC 代表糾錯碼內存,它是一種檢測和糾正內存狀態中錯誤位的機制。它可以與 RAID 或光學介質上執行的奇偶校驗稍作比較。這項技術非常昂貴,並且可能只會在伺服器設定中遇到。 ECC 計數計算記憶體的 ECC 機制已修正了多少錯誤。健康的 RAM 不必調用 ECC,因此 ECC 錯誤計數高於 0 也可能表示記憶體有問題。


錯誤解釋

Memtest 遇到錯誤的範例。它顯示哪個磁區/位址發生故障。

Memtest 畫面有錯誤

第一列(測試時間)顯示哪個測試失敗,該數字對應於上面已經提到的列表中的測試編號。第二列(經過) 顯示該測試是否通過了。在本例中,測試 7 沒有通過。

第三列(失敗地址)準確顯示記憶體的哪一部分有錯誤。這樣的部分有一個位址,很像IP位址,對於該資料儲存來說是唯一的。它顯示哪個位址發生故障以及資料塊有多大。 (範例中為 0.8MB)

第四個 (好的)和第五個(壞的) 列分別顯示寫入的資料和檢索的資料。兩列在無故障記憶體中應該相等(顯然)。

第六欄(錯誤位元)顯示發生故障的確切位元的位置。

第七欄(數數)顯示具有相同位址和失敗位元的連續錯誤的數量。

最後,最後,第七欄() 顯示記憶體條所在的頻道(如果系統上使用多個頻道)。


如果發現錯誤

如果 MemTest 發現任何錯誤,確定哪個模組有故障的最佳方法參見這個超級用戶問題及其接受的答案:

使用排除法-刪除一半的模組並再次執行測試...

如果沒有故障,那麼您就知道這兩個模組是好的,因此請將它們放在一邊並再次測試。

如果發生故障,則再次減少一半(現在減少到四個記憶體模組之一),然後再次測試。

但是,不要因為一個測試失敗就認為另一個不會失敗(您可能有兩個失敗的記憶體模組)——如果您檢測到兩個記憶體模組出現故障,請隨後分別測試這兩個模組。

重要提示:由於記憶體交錯等功能以及某些主機板供應商糟糕的記憶體模組插槽編號方案,可能很難知道給定位址代表哪個模組。

答案2

測試編號:memtest 目前正在執行的特定測試的編號。他們有很多。

錯誤計數:遇到的記憶體錯誤數

ECC 錯誤:ECC 修正的錯誤數。您的晶片組/記憶體沒有 ECC,因此這個數字並不重要。

如果您的記憶體有任何數量超過 0 的錯誤,您將需要更換它。

編輯:測試是 memtest 寫入記憶體的不同模式。它將不同的模式寫入記憶體並將其讀回以檢查錯誤,並且它使用不同的模式來測試所有位元的所有狀態。

該計數表示讀回 memtest 的結果與寫入記憶體的結果不符的次數,這表示正在測試的記憶體區塊中存在錯誤。

ECC 是一種內建於伺服器和工作站記憶體晶片中的糾錯技術。大多數桌上型電腦不支援內建 ECC 的記憶體模組。 ECC修正的錯誤數就是ECC晶片成功修復的錯誤數。

答案3

錯誤數

在進行測試時,如果記憶體無法完成任何測試,則會增加錯誤數量。如果我沒記錯的話,它會計算未通過測試的位址數量。

ECC 錯誤數

ECC記憶體是一種特殊的記憶體晶片,用於防止資料損壞。您的ECC Errs專欄統計了 ECC 修復了多少問題。

(ECC 速度慢且成本高,基本上適用於懶得更換 RAM 的關鍵任務系統。)

測試編號

Memtest 對您的記憶進行不同類型的測試,這些測試在記憶體測試86網站。就像快速簡單的英文翻譯一樣:

測試 0:行走地址測試

Memtest 將寫入00000001第一個記憶體位置,00000010然後寫入下一個記憶體位置,依此類推,每 8 個位元組重複此模式。然後它讀取記憶體並確保該值沒有改變。 (來源

測試 1&2:自己的地址地址測試

Memtest 使用自己的位址寫入每個記憶體位置,並檢查該值是否未變更。

測試 1 是順序的,測試 2 是並行的(即使用並發)。

測試3&4移動倒轉測試

本質上,這個測試將 0 載入到記憶體中,然後

  1. 取得記憶體的每個位置(從第一個/最低位置開始),
  2. 並寫出該模式的逆(我相信這是按位非,但我找不到任何相關文件)。

這裡的目標是嘗試測試每一位及其相鄰位元「0 和 1 的每種可能的組合」。

測試 3 不使用並發,而測試 4 使用並發。

測試 5:移動反轉,8 位 Pat

這再次執行移動反轉方法,但這次是從 8 位元區塊中的測試 0 開始移動 1。

測試 6:移動反轉,隨機模式

Memtest 使用隨機數字而不是全 0 或走 1。

測試 7:塊移動

這個很有趣。它將模式載入到記憶體中,以 4mb 為單位移動它們,並驗證它們。

測試 8:移動反轉,32 位元 Pat

與測試 5 相同,但使用 32 位元區塊。事實上,它確實在每個位置加載了每個可能的 32 位元值。

測試 9:隨機數

這會將偽隨機數載入到記憶體中並進行驗證。偽隨機數產生器的一個很酷的事情是它不是非常隨機(如果您曾經在printf("%d", rand());沒有播種的情況下運行過 C 程式並獲得了隨機的 41,您就知道我的意思)。因此,它透過重置隨機數播種器並再次運行生成器來進行驗證。

測試 10:Modulo-X

每 20 個位置,它寫入一個模式(全 0 或全 1),並在所有其他位置寫入補碼,然後進行驗證。

測試11:位元淡入淡出測試

此操作會向 RAM 載入全 1(然後再次載入全 0),等待 5 分鐘,然後查看是否有任何值變更。

相關內容