在 Windows 3.x 的同位檢查錯誤

文章翻譯 文章翻譯
文章編號: 93521 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
3.00 3.00a 3.10 3.11
視窗
kbhw kbdisplay kbprb
全部展開 | 全部摺疊

在此頁中

結論

同位檢查錯誤訊息會因 nonmaskable 插斷 (NMIs) 產生。乾淨、 uncorrupt Windows 安裝無法產生一個 NMI,因此不可能乾淨、 uncorrupt 安裝版的 Windows 會造成同位檢查錯誤。

其他相關資訊

同位檢查是很基本的資訊完整性檢查。每個位元組 (8 位元) 的 RAM 儲存空間實際上會採用九種位元的資訊。八個位元使用的資料,最後一個位元 (同位元) 用來儲存資料的同位檢查。

處理器是負責的檢查將同位檢查位元的精確度,處理器會產生一個 NMI,如果它決定同位檢查位元設定不正確。這 Windows 386 增強模式擷取由一個虛擬裝置驅動程式 (VDD),* 同位會顯示錯誤訊息。在 Windows 標準模式 NMIs 被忽略,並傳遞至預設同位檢查處理常式上。 這可能不會執行任何動作或者會產生 TTY (全螢幕) 錯誤訊息。在這兩種情況下機器會處於不穩定的狀態,而暫止。

同位檢查錯誤可以似乎被解析是否您移除記憶體常駐的項目,例如裝置驅動程式或終止和-保持-常駐 (TSR) 程式。這只會變更載入程式碼的記憶體位置。如果您變更位置,或移除項目,然後程式碼不再位於上有錯誤的記憶體,並且您可能會不會再收到同位檢查錯誤。如果資料位於可疑記憶體,您可能看不到同位檢查錯誤根本。不幸的是,因為資料與在 Windows 中的程式碼會不斷變更的記憶體位置,同位檢查錯誤可能會出現 (或重新出現) 更新版本。

在 Windows 中,通常是以旗標來初始化為零記憶體配置記憶體。這使得同位檢查偶數 (零的設定中的資料位元組)。如果沒有有錯誤的記憶體晶片其中一個位元的值永遠是設定為零,然後一切正常運作做任何事寫入該記憶體 (因為同位檢查位元是正確的)。如果有錯誤的記憶體位址會落在程式碼區段 (也就將記憶體會移至儲存實際、 可執行程式碼) 很可能會使用 「 位元,並且會產生同位檢查錯誤。

同位檢查錯誤可能因不同的情況下,但它幾乎都是硬體問題。

同位檢查錯誤的常見原因

同位檢查錯誤的其中一個原因是有錯誤的記憶體。解決此問題最萬無一失的方法,就是交換出每一種記憶體,直到問題消失。請確定您使用的良好、 品質的記憶體,而且在電腦中安裝的記憶體正確。記憶體檢查程式並不足夠,因為它們不測試記憶體方式,Windows 會使用它。大部份,如果不是所有,(條狀方格) 使用讀取/寫入的記憶體循環掃描記憶體時。由於 Windows 從該記憶體執行程式碼,使用執行循環。執行週期實體上不同於讀取/寫入循環及更容易同位檢查錯誤。很可能記憶體檢查記憶體已極有瑕疵,就會找到同位檢查錯誤的程式。

有時候同位檢查錯誤都不相符的記憶體速度所造成。CPU 可能正在存取該記憶體速度比記憶體是能夠處理要求還快。可能的解決方法是增加的 CMOS 設定中的等候狀態數目。這個選項不適用於所有機器,並永遠無法運作。在短增加等候狀態數目會指示 CPU 等待記憶體讀取之間的時間預先決定的數量。這減慢電腦因為現在花費較長的時間存取記憶體。通常,可以設定這個選項以零、 一或二等待狀態。較高數字,長它會等到記憶體週期之間。在另外嘗試保持相同的速度的安裝在您的電腦上的 RAM。如果有混合的速度,請確定,您會有相同的速度在每個銀行中安裝的 RAM。 銀行通常是在主機板上的四個記憶體晶片一組。

支援像視訊卡的硬體經常會造成同位檢查錯誤。 因為裝置會佔據記憶體內 [UMB,讀取/寫入資料至這些裝置也會造成同位檢查錯誤。最佳的方式測試這是取代其中一個裝置出正常運作。也有瑕疵的電源供應器可能會造成同位檢查錯誤。

另一個的同位檢查錯誤的已知的原因是同位檢查開機 B 病毒。

同位檢查是什麼?

有兩個版本的同位檢查: 奇數及即使。同位檢查 BIT 根據開啟位元或 1 的計數設定開啟或關閉資料通常位元組中。

範例

11011010 (同位檢查會被設定成 1,甚至讓的一種數字)

11110111 (同位檢查會被設為 0 以進行數目是奇數)

記憶體的設計以致一個額外的晶片或額外 BIT PC 設定預留同位檢查。這個晶片將保留的記憶體位元組的同位檢查。這就是為什麼通常 9 晶片上記憶體 SIMM,或者晶片本身標記為 256 x 9 的] 或 [1Megx9 的等等。

在有錯誤的記憶體位址執行一段程式碼時,將會產生同位檢查錯誤。擷取或 CPU CPU 位置接收的指令從記憶體執行的點的 pre-fetch 週期期間硬體會檢查同位檢查擷取的程式碼。如果所擷取失敗時,會產生例外狀況錯誤。這麼做是為了安全警衛 CPU 從執行並不是可行的指令。

在使用一般記憶體] 擷取過程也就是資料讀取,同位檢查未核取。 這也是記憶體檢查程式將正常無法找出同位檢查錯誤的原因。 只會檢查同位檢查問題的記憶體正確是一種程式,在 RAM 中執行程式碼的程式解決有問題。Windows 3.0 而且 3.1 是這種程式。在 Windows 3.0 中檢查同位檢查錯誤機制已經做了不正確且相反地產生的函式 UAE 的。這些 UAE 所產生的未攔截的同位檢查錯誤] 及 [程式碼中有錯誤的記憶體執行再繼續。

注意: 您無法藉由建立一個 RAMDRIVE、 將程式複製到它,並執行程式檢查同位檢查問題的記憶體。程式仍然會儲存為 [RAMDRIVE 中的資料。當執行,程式就會複製到傳統記憶體,它執行之前。如需如何使用一個 RAMDRIVE 疑難排解記憶體資訊,請參閱下列的發行項 「 Microsoft 知識庫 」 中:
142546如何使用 RAM 磁碟機來疑難排解記憶體

屬性

文章編號: 93521 - 上次校閱: 2014年2月27日 - 版次: 2.1
這篇文章中的資訊適用於:
  • Microsoft Windows 3.0 Standard Edition
  • Microsoft Windows 3.0a
  • Microsoft Windows 3.1 Standard Edition
  • Microsoft Windows 3.11 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt KB93521 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:93521
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com