TW413755B - Method and apparatus for automatically correcting errors detected in a memory subsystem - Google Patents

Method and apparatus for automatically correcting errors detected in a memory subsystem Download PDF

Info

Publication number
TW413755B
TW413755B TW087119018A TW87119018A TW413755B TW 413755 B TW413755 B TW 413755B TW 087119018 A TW087119018 A TW 087119018A TW 87119018 A TW87119018 A TW 87119018A TW 413755 B TW413755 B TW 413755B
Authority
TW
Taiwan
Prior art keywords
memory
data
logic
error
access
Prior art date
Application number
TW087119018A
Other languages
English (en)
Inventor
Bokern Vincent Von
Zohar Bogin
David Freker
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW413755B publication Critical patent/TW413755B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

413755 五、發明說明(1) 發明範疇, _ 於記憶體管理範圍,而且尤其有關於校正記 u to久糸統中的錯誤資料。 發明背景 t杳體職用錯誤恢復技術以次系統校正讀取自記 =入:r 起储存在記憶體次系統°當資 :值=賴式錯誤恢復技術的觸統的記憶體 為對應原始資料值的簽$,並且與資料 ?ECC:: 體。稍後當資料值從記憶體讀出^ EC _:子σ心 ;輸出,c與資料值則輪?共=^ 。二產九稱為θ共存體的值,若資料值尚未錯誤則其二是 ’ 則疋非0值。(在此的錯誤資料值是指—資对 ,/、中至少一位元相對於其正確狀態已反置、可 共存體輸入倒裝向量產生,器,其用以將稱為。 表值編上號碼。在能校正單—位元錯誤的系統申、°里-量表一般包含資料值,中每一可能位元位置的—L倒裝向 每一資料具有單組位元,其在與其他資料不料:而 置。因此藉由互斥的或合併資料值(其具有單、位兀又 與適當的倒裝向量’即可倒.裝失效位元以恢 凡錯誤) 值。因為錯誤校玉一般發生在記憶體與資料值 ° 、/ 處理器,圖形加速器等)之間的傳輸路徑,,\粍者(如 可明顯看到錯誤校正。 乂 4耗者即 413755 丨五、發明說明(2)
上述錯誤恢復技術的限制是,若資料錯誤源是儲存在記 憶體中的值(例如原因是資料值傳送到記憶體期間的暫態 事件,或是資料值儲存在記憶體中),當從記憶體讀出的 資料值不校正記憶體本身的錯誤值時,即可偵測單一位元 |校正的失效。換言之,即使恢復資料值傳送到消耗者,記 !憶體次系統中的資料值仍會受到錯誤。這極為重要,因為 許多電腦系統使用錯誤恢復技術以便能校正單一位元錯 |誤,但不是多重位元錯誤。接著在這些系統中,若已錯誤 資料值的至少一額外位元是錯誤的倒裝,則資斜值會變成 不可恢復的錯誤。 發明總結 揭示一種用以校正錯誤資料之裝置及方法。提供存取邏 i !輯以存取一記憶體。對於記憶體輸出的各資料值,錯誤偵 丨測邏輯產生一錯誤信號以指示資料值是否具有一可校正錯 I誤。對於錯誤信號指示具有一可校正錯誤的各資料值,校 正邏輯請求存取邏輯將資料值之校正版本寫入記憶體.。 丨附圖間早說明 丨 用例子來說明本發明,且本發明不限於附圖中的各圖 形,其中相同的參考數字表示類似元件,而其中: 圖1是一裝置的方塊圖,該裝置可使用於本發明的至少 一實施例; 圖2是次系統控制器實施例的方塊圖; 圖3是根據一實施例的記憶體校正邏輯的方塊圖; 圖4說明一記憶體次系統的實施例,其包含多重元件
第5頁 / I 413755 五、發明說明(3) 歹丨J ; 圖5的時序圖在說明記憶體次系統的管線存取; 圖6A是典型的指令表以便從記憶體次系統讀取資料; 圖6B說明已開始第一次讀取動作後的清洗缓衝區; 圖6 C說明已開始第二次讀取動作後的清洗緩衝區; 圖6 D說明已開始第三次讀取動作後的清洗緩衝區; 圖6E說明已開始第四次讀取動作後,以及對應第一次讀 取動作的資料已從記憶體次系統輸出後的清洗緩衝區;
-圖6F說明已開始第五次讀取動作後,以及對應第二次讀 取動作的資料已從記憶體次系統輸出後的清洗缓衝區.; 圖6G說明對應第三次讀取動作的資料已從記憶體次系統 輸出後的清洗緩衝區; 圖6H已判定完成或開始一清洗動作後的清洗缓衝區; 圖7說明將校正資料寫人記憶體次系統的實施例; 圖8的方法流程圖是根據本發明的至少一實施例。 詳細說明 I根據本發明的各實施例,由記憶體校正邏輯檢索記憶體 !讀取動作中加入的位址,並儲存在緩衝區中。因對應儲存 i位址的各資料值從記憶體輸出,所以資料值則輸入錯誤邏 輯以便向記憶體校正邏輯指示是否偵測到一可校正錯誤, 並產生資料值的校正版本。若是在資料值中彳貞測到一可校 正錯誤,則記憶體校正邏輯發出請求以便將缓衝區中的資、y 料值的校正版本回寫到記憶體的位址中,,該緩衝區對應於 1 J ! |資料值。接著將資料值的校正版本回寫到記憶體的位址
第6頁 413755 五、發明說明(4) 中,該位址係先前讀取的位址,以便用校正資料蓋過錯誤 的資料值=因為錯誤資料在記憶體中校正,而不是只在至 消耗者的傳輸路徑令,所以極不可能有進一步的錯誤事件 ;會使資料變成不可恢復。結果,增加了總系統的可靠度、。
圖1是裝置15的方塊圖,其中可使用於本發明的至少一 實施例°裝置1 5包含處理器1 〇 ’ s己憶體次系統1 4,圖形次 系統1 6及ί / 0次系統2 2 ’其皆連接到次系統控制器1 2。在 一實施例中,處理器1 0經由區域匯流排1 1而接到次系統控 制器1 2 °圖形次系統1 6 ’記憶體次系統1 4及I /〇次系統2 2 都相同的經由各匯流排而到次系統控制器。 記憶體次系統1 4 一般是由半導體隨機存取記憶體(R A Μ ) 如資料延伸動態RAM(ED0 DRAM)或同步動態raM(SDRAM)。 也可使用它種記憶體裝置包含RAMBUS DRAM裝置及靜態RAM 裝置(SRAM)。 I/O次系統22由至少一元件匯流排(24,25)組成,其與 各I/O裝置(26A,26B,26D,26E)連接。在I/O次系統22中可 使用各種不同的匯癉排,例如包含周邊元件連匯流 (P⑴,工業標準架構(ISA)蔭流排,延伸排 (EISA),微通道匯流排等。若1/〇匯流排次系統22中出現 —個以上的元件匯流排(如高帶寬資料傳送的至少一pci匯 ,排’及至少-ISA®流排以支援舊式擴充卡),用橋咖 或戒似的匯流排至匯流排連接裝置來連 I/O裝置的特性是由裝置hΒ ^ ^ 复i 5的預&又目的所決定.。例如若 裝呈15疋電腦糸統,則1/〇裝置(26A,26b,26D,26E) 一般包
ί 413755 I五、發明說明(5) I含:使用者輸入裝置如鍵盤及游標控制裝置(如滑鼠,追 蹤球或光筆),至少一主儲存裝置如用以讀寫光學及磁性 儲存媒體上的資料的裝置,及各種其他電腦系統敕置(如 印表機,聲訊I / 0,串聯匯流排控制裝置等)。或者若裝置 1 5是數位相機,行動電話或其他消費者電子裝置,則I / 〇 裝置(26八,268,26126£)可包含使用者介面(如按鍵及顯示 幕)以允許裝置配置成供操作及其他特定功能裝置(如行動 電話的射頻收發器,數位相機的光圈與聚焦控制等)。 圖形次系統1 6包含接到次系統控制器1 2的圖形加速器
2 0 ’以允許將記憶體次系統1 4的圖形資料高速的傳送到圖 !形次系統16,以便由顯示控制器19該圖形資料並顯示在顯 I示幕丨8上。在一實施例中,圖形加速器20經由加速圖形埠 i (AGP)而接到次系統控制器,該AGp符合「加速圖形埠介面 i規格」,1 0以後的版本.,由j n t e 1公司於1 9 9 6 / 8 / 1出版。
| AGP是—專屬介面用以在圖形加速器2〇與次系統控制器之 丨間傳送圖形資訊及指令。在其他實施例中’可使用其他的 :專屬圖形埠。而且除了經由專屬圖形埠接到次系統控制器 丨,外’圖形次系統16也可經由共用匯流排而接到次系统控 丨^范1 2 ’該匯流排如區域匯流排丨1或丨/〇次系統22中的元 ί件匯流排(24,25)。 圖2是次糸統控制器12實施例的方塊圖。次系統控制器 | U包含存取請求邏輯(45a,45B,45C),記憶體存取控制邏 i ,記憶體介面邏輯37,記憶體校正邏輯35,錯誤報告 W輯4 3,E C C邏輯3 9 ’及讀寫邏輯4 i (四丨y邏輯)。次系統控
第8頁 413755 輯46以控制記憶體次系統中DRAM格14 ”〜,中,恢復邏輯1 2可以與次系統控制器 分開。次系統控制器I 2也包含其他邏輯(未示),包含邏 輯以管理請求,例如在處理器1 0與ί / 0次系統2 2之間,在 處埋器1 0與圖形次系統1 6之間,或是在圖形次系統1 6與 1 /〇次系統22之間傳送資料。 在一實施例中,用存取請求邏辨(45A,45B,45C)來管理 接收自處理器1 0,圖形次系統1 6,及I /〇次系統22中的至 少一匯流排主控裝置的記憶體存取請求。也可以有其他請 求仲介,包含恢復邏輯4 6及記憶體校正邏輯3 5。雖然處理 哭 in „ 一一一 五 '發明說明(6) _器1 2也包含恢復邏 歧復。在其他實施例中,恢復 含恢復邂杵4 0及記懦遐仅止邏輯0 3。绯%题Jj 器丨〇 1圖形次系統1 6及I /0次系統2 2中顯示分開的存取請 求邏輯單元(45A,45B,45C),但這不是必要的,用單一存 取=求邏輯單元即可服務來自多重記憶體存取的請求。 化,邏=(75A,45B,45C)根據各種標準(頁命中最佳 並接著傳送請求到,已二?體存取請求的優先順序’ 從存取往1馮itHc;隐祖存取控制邏輯30。這一般如圖2 徑 3 0的讀寫請求 徑所示。各圖中顯示以及從恢復邏輯46的REQ路 V"符號,表示該信號路徑^^及^^信號傳輸路徑上的 徑上若無V"符號則也不;:,體。然❿,信號路 該路徑的單一信號導體。而?馮本發明的實施例僅限於 —用以同時在分開^請求^ . f請求路徑包含平行路 讀寫請灰。 中'作記憶體存取控制邏輯 記憶趙存取控制她包含件裁邏輯3ι以使從處理㈣
413755 丨五、發明說明(7) 以及從圖形次系統1 6將存取優先順序給某些請求,但是其 他服務請求方式要能確保記_憶體存取到所有的請求仲介。
Q 當選擇各請求以便服務時(即請求串聯化),即傳送請求 到記憶體存取控制邏輯30中的循序邏輯33。循序邏輯33根 據該請求而發出一存取指令34到記憶體介面邏輯37。例如 在一實施例中,循序邏輯33產生一存取指令34其包含要讀 取的記憶體位置的位址,要傳屬的四倍字的數目,及讀寫 信號以指._示是否已請求記憶體讀取或記憶體寫入動作。當 記憶體介面邏輯__3 7不再需要記憶體存取控制邏輯3 0輪入存 i取指令34,益準備接收後續存取指令時,記憶體介面邏輯 3 7會將指令認可信號輸入記憶體存取邏輯。回應記憶體存 取控制邏輯時,記憶體存取控制邏輯3 〇可發出一認可信號 |到請求仲介以指示已開始該請求的存取。在一實施例中例 !如記憶體存取控制邏輯30發出一清洗認可信號42到記憶體 校正邏輯3 5以指示已開始一清洗動作,其詳情如下所述。
: 回應記憶體存取控制邏輯3 0的存取指令3 4時’記憶體介 i面邏輯37輸入控制(CNTRL)及位址信號UDDR)到記憶體次 I系統14以執行指令運算。例如在包含ED0 DRAM元件的記憶 體次系統14中,記憶體介面邏輯37發出一列位址選通信號 1 (RAS)以便將位址(ADDR)的列部分選通入適當的DRAM元 |件,而—行位址選通信號(CAS)則選通位址的剩餘部分入 丨D R A Μ元件以遂擇該位址列部分選擇的記憶體頁部分。在包 丨含S D R A Μ元件的記憶體次系統Η中,’晶片選擇的各種組 I合,列位址遂通’及行位址選通信號都可用以控制記憶體
第10頁 413755 五、發明說明(8) 次系統的操作。其他記憶體控制方法也可用於它種記憶 | 體,包含如由RAMBUS DRAM元件組成的記憶體。而且在混 合記憶體次系統(如包含EDO DRAM及SDRAM元件者)中,可 將輸入控制信號(CNTRL)的協定從一存取變為次一存取, 以支援不同類的元件。 在一實施例中,記憶體介面邏輯3 7也包含列解碼邏輯 i (圖2中未示)以判定記憶體元件的許多列中的那一列要與 一已知記憶體存取中讀取或寫入,並發出一晶片選擇信號 以選擇元件列。本文的名詞元件列是指至少一 I C (積體電 路),其可選擇以經由資料路徑的各部分而同時輸出(或接 枚)資料°例如,在記憶體次系統1 4的實施例中,一元件列 由4個DRAM裝置組成,各提供四倍字值的各個字(即一個1 6 位元值)。在一元件列只包含一記憶體I C的例子中,.選擇 時一記憶體I C可驅動所有的資料或僅是一部分資料。如圖 2所示,一列解碼信號(R〇w )可識別選定的元件列從記憶體 介面邏輯37輪出到記憶體校正邏輯35以支援某些錯誤報告 !功能。當記憶體次系統1 4在其輸出發出一資料值時,記憶 I體介面邏輯37也會發出一資料準備信號(DATA RDY)。 I 如圖2所示,記憶體次系統14輸出的資料值及ECC值也提 |供到E C C邏輯3 9 =對於接收自記憶體次系統1 4的各資料 值’ ECC邏輯3 9決定資料值是否為錯誤的,並經由昱少一 i錯誤偵測信號27(ERR0R DETECT)而通知記憶體校玉邏輯35 I以指示實料值是否為錯誤的,以及若資料是錯誤的’則式 I.著恢復該資料值。接著經由稱為CORREC TED DATA的資料路 413755 i五、發明說明(9) i I徑而將資料值從ECC邏輯傳送到RMW邏輯41。或者資料值可 傳送到各請求仲介所屬的各讀取缓衝區(未示)。注意,雖 然名稱是CORRECTED DATA,但是若它具有不可校正的錯 誤’則經由CORRECTED DATA PATH而從ECC邏輯傳輸的資料 值也會錯誤。 在—實施例中,RMtf邏輯41由記憶體存取控制邏輯30中 的循序邏輯33經由至少一RMW控制信號(RMW CNTRL)而控 制’並用以經由記憶體寫入動作中的ECC邏輯39而提供資 料到記憶體次系統丨4。從記憶體讀取的資料可以和其他寫 入缓衝區的資料合併,並經由WR I TE DATA而回寫到記憶 體。在以下的實施例中,在邏輯41中,將校正資料緩 衝’並接著回寫到位於—位址的記憶體次系統丨4,該位址 由記憶體校正邏輯3 5提供。 根據存取請求邏輯(4以,456,45(:)的上述說明,記憶體 存取控制邏輯30,記憶體介面邏輯37及RMW邏輯41,可了 解的疋合起來這些邏輯單元·組成存取邏輯,用以從記情 體次糸統1 4寫入資料以及將資料寫入記憶體次系統丨4。更 可了解的是存取邏輯包含其他邏輯單元,如包含(但不限 於此)各^求仲介所屬的讀取缓衝區及寫入緩衝區。义 、:S 一7 ΐ ί例中,記憶體校正邏輯35檢索到達記憶體介面 指令路徑34 ’以決定記憶體存取控制邏輯3。 何%開始一記憶體讀取動作。如以下所述,此 合叩邏則9輸出的至少1誤横測信號271使索用貝,^配 產生6己憶體存取控制邏輯30的請求以便將一校正資料值回
第12寅 413755 ____________ 五、發明說明(10) , 寫到記憶體次系統1 4。記憶體校正邏輯3 5也將至少一錯誤 债測信號2 7以及檢索的位址資訊與元件列資訊(經由列解 i碼信號(ROW)而從記憶體介面邏輯接收)傳送到錯誤報告邏 輯43。如圖2的ERROR DETECT及ADDR/R0W信號路徑所示, 其從記憶體校正邏輯3 5延伸到錯誤報告邏輯4 3。如以下所 述,記憶體校正邏輯3 5感測到記憶體介面邏輯3 γ輸出的資 料準備信號以判定各存取指令何時已完成。 在一實施例令,錯誤報告邏輯4 3包含至少一處理器可存 |取’報告暫存器’而且也包含邏輯以產生系統錯誤信號 (SERR)以回應記憶體校正邏輯35傳送的至少一錯誤铺測信 號。藉由將處理器可存取暫存器中的元件列及錯誤資料位 址儲存在錯誤報告邏輯,並將SERR輸入以中斷處理器丨〇, ;即可將記憶體錯誤一事通知處理器1 0並採取校正動作σ例 |如可規畫處理器1 〇為記錄失效資訊在資料庫供診斷目的, !或者處理器1 〇藉由分配記憶體次系統1 4中的其他記憶體作 丨為替代來使用,以阻止存取到受錯誤影響的記憶體區域。 i元件列資訊特別有助於服務人事方面,因為一元件列時常 i位於單一場替換記憶體卡如雙同線記憶體模組(ΜΜΜ)中。 在其他貫施例中,錯誤報告邏輯43中的報告暫存器可由電 :腦系統中的其他仲介來存取,該系統如圖形次’系統或丨/〇 I次系统2 2中的匯流排主控裝置。 ! 圖3是一記憶體校正邏輯35實施例的的方塊圖。記憶體 丨校正邏輯35包含Ν個清洗緩衝區50,清洗控制邏輯5丨及清 '洗請求邏輯5 3。在一實施例中,用清洗缓衝區5 0來儲存位
第13頁 413755 .—— ------------- ---------— i五、發明說明ui) i址,元件列及產生以供各記憶體讀取動作用的錯誤實訊。 清洗控制邏輯51包含寫入指標54及旗號指標55以決定清洗 緩衝區5 0中的那一筆資料要接收一已知位址組,列與錯誤 資訊。在一實施例中,用清洗請求邏輯53來發出一清洗請 |求(SCRUB REQ)給記憶體存取控制邏輯(如圖2的元件30), j這是根據旗號指標5 5指向.的清洗缓衝區.5 0中的資訊。由清 |洗控制邏輯5 1維持清洗指標56指示清洗缓衝區5 0中的一筆 i資料,其為未.定的清洗請求。
! 如上所述,記憶體存取控制邏輯輸入記憶體介面邏輯 (如圖2的元件37)的器存取包含:讀寫信號(RD/WR*),以 |指示下令的記憶體動作是否為讀取動作或寫入動作’異動 i長度(LEN),以指示讀或寫動作完成前,要連續傳輸的值 的數目,以及發生存取的記憶體次系統位址(A D D R )。在一 實施例中,由清洗控制邏輯5 1檢索R D / W R *與L E N,以決定 i何時增加寫入指標54及旗號指標55。從記憶體次系統輸出 i的資料準備(DATA RDY)信號則輸入各資料值’並配合異動 長度(L E N )使用以決定何時完成一已知的讀取存取。例如 若由記憶體存取控制邏輯發出讀取4個四倍字的指令(即連 丨續傳輸4個四倍字以完成讀取存取),接著記憶體校正邏輯 丨計算輸入的資料準備信號直到已偵測到4次輸入(如異動長 度所示)。接著可假設資料準備信號的後續輸入以回應另 一存取指令。 當記憶體存取控制邏輯發出一存取指令時,清洗控制邏 :輯5 1即感測RD/WR*信號以決定是否已開始一1讀取動作或是
五、發明說明(12) 一寫入動作。 位址(A D D R )即 中。記憶體介 指標指向的位 後,即增加寫 資料。注意, 令路徑中以使 訊(ADDR)的接 在一實施例 衝區5 0的最後 中的啟始點=> 缓衝區5 0的結 5 4不同。因此 洗控制邏輯5 1 位址與列資 料的錯誤旗號 為對應清洗缓 輸出。事實上 指標5 4加一以 輸出之前的數 來指示清洗緩 憶體次糸統輸 因此在至少一 區資料’其中 413755 若指示為一讀取動作,則存取指令中包含的 儲存在如寫入指標5 4所示的清洗缓衝區位址 面邏輯輸出的元件列值(ROW)也儲存在寫入 址中(即在COMP· ROW行),已儲存位址及列值 入指標5 4以指示清洗缓衝區5 0中下一筆可用 一延遲元件如正反器(未示),可置於存取指 清洗缓衝區5 0中的元件列值(ROW)與位址資 收同步。 中,將寫入指標5 4連續加一直到抵達清洗缓 一筆資料。在此,寫入指標5 4即回到缓彳齡區 旗號指標5 5及清洗指標5 6也相同的回到清洗 束位置,雖然其位置增加的標準與寫入指標 在最後實施例中,由功能是圓形緩衝區的清 來管理清洗缓衝區5 0。 訊寫入清洗缓衝區5 0中的一筆資料時,該資 部分(即錯誤旗號行的值)一般是未定的,因 衝區中的位址的資料值尚未從記憶體次系統 因為記憶體存取動作的管線特性,可將寫入 回應對應第一組指令的資料從記憶體次系統 個存取指令。根據一實施例,用旗號指標5 5 衝區5 0中表近儲存的貢料,而貢料尚未從§己 出此尚未輸出的資料在此稱為未定資料。 實施例_中,旗號指標5 5指示最,舊的清洗緩衝 該資料是未定的。 〇
第15頁 413755 五、發明說明(13) 如上所述’根據從記憶體次系統輸出的E c C與資料值而 使用E C C邏輯來產生至少一錯誤摘測信號(£ Q R DETECT )。在一實施例中,至少一錯誤偵測信號包含至少 一可杈正錯誤指不器5 7 ,以指示輸出資料值是否被一錯誤 所錯誤,忒錯誤可由Ecc邏輯校正。當輸入資料準備信號 (D^A, RDY)時、,其指示已從記憶體次系統輸出一先前未定 的:2 U二!!控制邏輯51能使可校正錯誤指示器5 7進 例如可财子-個〇值錯^:先^以衝/—資料的錯誤旗號部分。 _ t . 0 >旗唬以私不育料無可校正的錯 二旗节p德土 〇錯誤旗號以指示—可校正錯誤。錯 緩衝區資料中之後,職指標55即加 清洗缓衝區資料,而其中的資料是未定,、兄隹疋取售的 在μ施例中田異動長度(LEN )指示要傳輸多重資料 值:完成-:達指令的記憶體存取時,旗號指標”即不加 -直到貧料準備信號已輪入LEN次之後。可校正錯誤指示 器57的各次輸人可以作邏輯合併(如用邏_功能)以決定 多重輸出值的複合錯誤旗號。在—實施例中,彡重傳輸記 憶體存取的啟始位址是記錄在清洗緩衝區5〇中^而且於各 迷續貢料值輸出後不會改變。在另—實施例中,清洗控制 邏㈣可以將啟始位址加―,並且於各資料準備輸入後再 寫入由旗號指標55指·到的清洗緩衝區位址。使用這種方 法,清洗緩衝區50中的位址即可追縱多重輸出值的每一 者,以便能i確的識別出得到錯誤資料迫位址。為了計算 413755 五、發明說明(14) 一多重傳輸記憶體存取中多重錯誤的機率,可以在每一清 洗緩衝區資料中儲存多重錯誤旗號。 在一實施例中,來自清洗指標(即清洗資料)指到的資料 的位址與錯誤旗號輸出到清洗請求邏輯5 3。若清洗資料的 錯誤旗號(即清洗旗號)指示一可校jS錯誤;則清洗請求邏 輯發出一清洗請求4 1,其包含清洗資,.料的位址(即清洗位 址) 清洗請求4 1已發出傻,清洗控制邏輯5 1即在將清洗 指標56加一之前,等待輸入清洗認玎信號42。 © 為了回應清洗請求4 1,記憶體存取控制邏輯發出一讀合 併寫存取’其使得要從清洗位址處的記憶體次系統讀取的 資料值,通過ECC邏輯以產生資料值的校正版本,並在rMW 邏輯(即圖2的元件41 )中緩衝。如以下所述,記憶體存取 控制邏輯中的循序邏輯接著使得RMW邏輯中的資料值的校 正洗位址的記憶體次系 '统。讀取,校正以及 此稱為清洗動作,因為^ #動作的總性能在 系統中的錯誤資料1此疋以校正資料蓋過記憶體次 校正資料才會記憶體次系;;=知系統不同是傳輸期間只有 施例能在其記憶體次李统來=輸到请耗者,本發明的各實 在-實施例中,記=源校正錯誤的資料。 先順序高於其他請求仲人子取控制邏輯給予清洗請求的優 成清洗動作。接著,,、主=吻求,並阻止其他請求直到完 清洗動作後發出一存二^ ^制邏輯51假設清洗請求對應一 控制清洗指標5 6的加—7 並且配合清洗認可信號42來 。因為清洗動作實際上需要2次記
413755 五、發明說明(15) 憶體存取,一讀取後接著一寫入,因此在清洗動作期間記 |憶體介面邏輯產生的2個指令認可信號(即圖2的信號3 6 ), j 各記憶體存取一次。在一實施例中,記憶體存取控制邏輯 (如圖2的元件3 0 )在收到一指令認可信號後,其認可一指 令將校正資料寫入記憶體次系統,即發出一清洗認可信號 4 2到記億體校正邏輯3 5。’當收到清洗認可信號4 2後,即清 !除清洗資料中的錯誤旗號並且將清洗指標增加到另一清洗 缓衝區資料,其具有一設定錯誤旗號。若將錯誤旗號的其 I ,
他資料設定為零,則不必將清洗缓衝區加一。或者,若無 錯誤則可藉由以下方式來指示,如將清洗指標5 6指向一範 圍外的資料,或是藉由將清洗指標5 6指向包含一清除錯誤 丨旗號的特定資料。
I 簡短的回到清洗緩衝區5 0,該注意的是雖然記憶體存取 控制邏輯提供到記憶體介面邏輯的位址包含N個位元,其 j為唯一識別記憶體次系統中的記憶體位置所必須的,但是 1清洗缓衝區5 0中儲存的對應位址可包含少於N位元的資 :料°此外傳送到錯誤報告邏輯的位址值包含所有的位址位 !元或是其一部分,該等位元在儲存於清洗緩衝區5 0的位址 !中。尤其是,雖然在一些實施例中可期望儲存_或報告每一 輸入位址的整組N位元,但是在其他實施例中,可期望冊ij i除位址的非最高及非最低...位元以外的部分位元,,其儲存在 清洗缓衝區5 0中,或者向錯誤報告邏輯報告。’例如識別記 憶體的頁所特別需要的位址位元可儲存在清洗緩衝區中。 在該情況下,當發出一清洗請求時,可以用校正值來讀取
第18頁 413755 五、發明說明(16) 記憶體的頁或者是回寫。就名詞定義而言,將位址儲存在 清洗緩衝區的動作在此可了解為是指儲存—位址,其識別 記憶體次系統中的唯一可定址位置,以便讀取一資料值, 或是一位址其識別記憶體次系統中的可定址位置區域,以 包含記憶體次系統的唯—可定址位置’以便由此讀資料 值。 仍參考圖3,在一實施例中,至少一錯誤偵測信號2 7, 以及旗號推標指到的缓衝區資料中的位址及元件列資訊 (即旗號位址與旗號列),會輸出到錯誤報告邏輯(如圖2的 元件43 )。若至少一錯誤偵測信號2 7指示一錯誤,則可以 記錄位址及元件列(錯誤資料是由此得到),並且如上所述 的通知處理器或其他錯誤處理仲介。 . 圖4說明一記憶體次系統1 4的實施例,其包含多重元件 列(70A,70B,70C)。圖中的各列於不同的DIMM68。從設 備維護的觀點來看這疋較佳的’因為不必替換其他DI 即 可藉由替換對應的D I MM來校正一已知元件列報告的失效。 在另一實施例中,多重列可位於D I MM上,或是整個記憶體 可裝在單一1C ’或至少在單一電路板上的一組1(:中。 如上所述,次系統控制器12中的記憶體介面邏輯37接收_ 來自記憶體存取控制邏輯的記憶體存取指令。記憶體介面 I邏輯3 7中的列解碼邏輯6 5,根據存取指令的位址部分,其 要存取許多列(70A ’ 70B,70C)並因此而產生一列解碼、
號6 7。如上所述列解碼信號6 7輪出到記憶體校正邏輯,而 |且也輸出到列選擇邏輯66以啟動許多列選擇線(RS()_RU
第19頁 41875 五、發明說明(17) 之一。在一戸、細例中(如圖4),各列選擇線(Rs〇 —以”)接 不同記憶體積體電路(1C)的各列的選擇輸入。例如列選 j線RSe經由列0記憶體ICh而接到列0記億體Ic。,列選擇線 RS!經由列1記憶1體ICM_,,列N-1等而接到列i記憶體。依 此,同時選擇單一元件.列的記憶體rc以便在—已知記憶體 周期中接收或輸出資料。每資料存取傳輸的資料值寬^ = : 施方式無關,且—般以MxK表示,Μ是每元件列記憶體^數 目’而Κ是每記憶體I C的傳輸資料位元數。為了說明目 的’將資料值視為包含ECC值。此外,雖然記憶體的内容
在此一般是指資料或資料值,可了解的是這些表示法也包 含程式指令(如ο ρ碼,位元組碼等)。 仍參考圖4,記憶體I C的選擇輸入依使用的記憶體元件 種類而可以不同。例如在一SDRAM元件中,選擇輸入—般 疋曰曰片選擇輸入而列選擇線(RSQ-RSN])會載有晶片選擇信 號。至於EDO DRAM元件,選擇輸入一般是列位址選通輪 入,而列選擇線可載有列位址選通信號。在不違背本發明 I的精神及範圍下,可用其他列選擇設計來支援它種記怜 丨體。 " I · j
! 圖5的時序圖說明在〇 R A Μ時脈信號7 3的控制下記憶體次 ;系統的管線存取。為了圖5的目的,假設記憶體次系統是 |由s D R Α Μ元件組成,雖然如上所述也可使用它種記憶體元 I 件包含EDO DRAM 及RAMBUS DRAM。
; 為了現明管線兄憶體存取,假設4次讀取動作7 4的興型 序列’而各項取劫作.需要從記憶韓輸出2個四倍子。為了
41875, 丨五、發明說明(18) 間輸入 a曰 I開始第一次讀取動作RD1 ’在⑽AM時脈信號73的升緣73A期 “ —片選擇#號(維持低)。在此例中因為各讀取動 作需要從記憶體輸出2個四倍字,所以在⑽―時脈的升緣 73B期間,即.升緣73A後的2個時脈周期,輸入第二讀取動 作R D 2的晶片選擇信.號。在升緣7 3 C及7 3 D期間也相同的在2 時脈周期中輸入第三及第四讀取動作的晶片選擇信號。輸 入晶片選擇信號以選通一位址入SDRAM中之後,在SDRAM輸 出有效資料前需要數個時脈周期(、如3個)。因此如記憶體 資料信號19所示,並不取樣資料值1 a,其係R D1動作要.找 尋的第一值,直到DRAM時脈緣73E,即輪入晶片選擇後的3 © 個時脈周期,以及已輪入RD2動作的晶片選擇後。因此在 輸出第一次讀取動作的資料前,發出第二次讀取動作r D 2 的存取指令。這稱為管線。儘管事實上在動作RD1的狀態 與資料值丨A的輸出.之間啟始了至少一額外讀取請求,資料 值1 A仍要藉由良好定義的等待時間來作判定以回應RD 1動 作’該等待時間係指開始讀取動作與對應資料的輸出之間 的時間。 並不取樣資料值1 B,即R D1所找尋的第二值,直到時脈 緣73C,在相同時脈緣取樣RD3動作的晶片選擇。資料值 2A/2B,3A/3B,4A/4B也類似的管線 匕。此外因為一些 D R A M D I Μ Μ提供暫存器以緩衝某些控制信號,藉由另一 DRAM時脈周期即可延伸管線的深度(即輸入晶片選擇與對 應資料輸出之間的等待時間)。此如暫存記憶體資料信號 8 1所示《資料值從記憶體次系統輸出後,e c C邏輯會消耗
第21頁 413755 五、發明說明(19) a 一額外時脈周期,所以當記憶體校正邏輯收到一可校正錯 誤信號時,其對應RD1存取指令,RD2與仙3存取指令早已 發出了。此如圖5所示,藉由ECC邏輯輸出83資料值la不會 成為有效,直到已開始R D 3存取。如清洗請求輪出8 5所 示,當錯誤校正邏輯發出資料值1 A的清洗請求時(假設清 洗動作是必要的),則記億體存取控制邏輯已發出至少4個 存取指令。 如圖5,多重DRAM時脈周期在開始讀取動作的時間與未 定資料輸出並通過ECC邏輯時間之間通過°在該時間中, 可發‘出額外的存取指令。由錯誤校正的觀點來看,此特徵 的管線記憶體存取有一個問題,因為一已知存取指令所屬 的位址資訊在請求資料從記憶體次系統輸出時會不能使 用。如上所述,在本發明的各實施例中,藉由缓衝存取指 令的至少位址部分,其對應讀取動作’即可解決此問題," 所以若偵測到錯誤資料,即可召回存取指令的位址部分敌 在一請求中提供給記憶體存取控制邏輯,以便將資料的校 正版本回寫到緩衝位址的記憶體次系統。 圖6A,6B,,6D,6E,6F , 6G , 6H說明記憶體校正邏 輯處理一典型項取動作組的各種方式。在圖6 6 ◦中,根 據參考圖3所不的各實施例而顯示清洗缓衝,寫入指標, 旗號指標及清洗指標。在不違背本發明精神及範圍下也可 使用其他β洗緩衝的賞施例及指標配置 <=例如雖然圖 6B-6C顯示兀件列資訊的一行,此行在其他實施例中是可 以省略的。 413755 五、發明說明(20) 圆6A列出5個典型指令以便從記憶體次系統讀取資料。 顯示各指令的讀取資料的位址,以及是否在資料值讀取時 偵測到錯誤的指示。 圖6 B說明已開始第一讀取動作後的清洗緩衝區的狀態。 寫入指標於開始時指到資料0,而且在位址0 5 0 0 0 0 0及元 件列0已寫入資料0之後增加到指到資料1。此動作稱為載 入清洗缓衝區的資料。假設清洗缓衝區中沒有其他資料, 則指定旗號指標指到貢料0 ^而位置0的貧料疋未定的(即 尚未從記憶體次系統中輸出)d清洗指標指示為N / A (不可 使用),因為尚未設定錯誤旗號。如上所述,清洗指標的 N / A狀態可以顯著化,例如藉由指定範圍.外的值給清洗指 標,或是藉由令清洗指標指到具清除錯誤旗號的清洗缓衝 |區資料(即設定錯誤旗號為非錯誤指示狀態資料1的錯 誤旗號行(E F L A G )的内容指示為未知(即?),而資料值則 !未定。為了避免清洗指標意外的增加,在系統啟始時可以 I將所有清洗缓衝區資料的錯誤旗號行的内容清除。因為尚 |未載入資料,所以資料1的位址,列及錯誤旗號行的内容 |也指示為未知。 圖6C說明已啟始2次讀取動作後的清洗緩衝區狀態資 ;料1載入位址及元件列資訊後,寫入指標即增加到資料2。 |旗號指標仍指到資料〇,因為資料〇是最舊的資料,其資料 |為未定。清洗指標仍維持N/A ^ 圖6D說明已啟始3次讀取動作後的清洗緩衝區狀態。清 洗缓衝區資料2載入位址及元件列資訊,其對應第三讀取
第23頁 413755 五、發明說明C21) 動作,而寫入指標即增加到資料3。在開始第四讀取動作 之前的同一點,資料0的未定資料值即從記憶體次系統輸 出並通過ECC邏輯。因為在此實施例的第一讀取動作t沒 有偵測到錯誤(即資料已清除),所以0值錯誤旗號記錄在 旗號指標指到的清洗缓衝區資料中。注意,用〇值錯誤旗 號來指示清除資料是隨意的,也可使用非0值來指示清除 資料。在任一情況下,指定一值給錯·誤旗號以指示清除資 料則稱為清除錯誤旗號,而指定一值以指示錯誤資料則稱 為設定錯誤旗號。已清除錯誤旗號後,旗號指標即增加以 指到清洗缓衝區資料1,其現在是最舊的清洗缓衝區資 料,而其資料是未定的。 ' 圖6 E說明已啟始4次讀取動作後,以及對應資料1的資料 已由記憶體次系統輸出後的清洗缓衝區狀態。圖中的第三 筆資料載入位址與對應第四讀取動作的元件列資訊,而寫 入指標則增加以指到資料4。因為在輸出資料值中已偵測 . 到錯誤,所以設定資料1的錯誤旗號而旗號指標則增加到 !資料2。如上所述,資料1中的位址及元件列資訊可傳送到 |錯誤報告邏輯。而且,因為設定資料1的錯誤旗號,所以 指定清洗指標指到貢'料1 (即貢料1成為清洗·.貢料)。清洗清 求邏輯,其接收清洗資料的位址及錯誤旗號值.,會偵測出 已設定錯誤旗號並發出一清诜請求。在一實施例j7—U 收到一清洗認可,其指示一存取指令認可,以便將校正資 料值寫入清洗位址的記憶體次系統,清洗.資料中的錯誤旗
第24頁 413755 五、發明說明(22) 圖6 F說明已啟始五次讀取動作後,以及對應清洗緩衝區 資料2的資料已由記憶體次系統輸出後的清洗狀態°資料4 載入位址與對應第五讀取動作的元件列資訊,而寫入指標 則增加到清洗缓衝區資料5。依清洗缓衝區中的資料數目 而定,當寫入指標繼續增加時最後會使寫入指標又回到實 料0。因為清洗缓衝區資料2所屬的資料是清除的,所以資 料2的錯誤旗號也清除了 ,而旗號指標會增加。清洗指標 仍維持指到資料1。 Ο 圖6G說明對應資料3的資料已輸出後的清洗緩衝區狀 :態。設定賢料3錯誤旗號並將旗號指標增加。因此在此例. 中沒有啟始新的讀取動作,寫入指標仍指到資料5。清洗 |指標仍指到資料1。. I 在圖6 Ή ’認可資料1請求的清洗動作。根據一實施例, ί將資料的錯誤旗號值清除並將清洗指標增加到指到次一清 |洗緩衝區資料’並設定一錯誤旗號(在此例中是資料3 )。 |因為資料3現在是清洗資料’所以提供資料3的位址及錯誤 |旗號給清洗請求邏輯β因為設定資料3錯誤旗號,所以清 丨洗吻求邏輯發出一清洗請求以便將校正資料值寫入位於資 丨料3位址的記憶體次系統中。 丨圖7况明裉據本發明而將校正資料回寫到記憶體次系統 i的方式。圖中從記憶體次系統"輸出的資料及ecc值通過 又向驅動|§98A亚輸入到eCC邏輯39中的共存體產生器9丨。 裉據ECC及其對應實料值的合併’共存體產生器η輸岀— 個稱為共存體95的值,以及至少一錯誤偵測信號2?。若至
第25頁 413755 ί !五、發明說明(23) 少一錯誤偵測信號27指示資料具有一可校正錯誤,則記憶 體校正邏輯如上所述的會產生一清洗請求並報告錯誤。 〇 提供共存體95給倒裝向量產生器92以產生一倒裝向量 9 6。在一實施例中,倒裝向量9 6.與資料值作互斥或(如使 用邏輯元件9 4)以產生一校正的資料值。尤其是,若記憶 體次系統1 4輸出的資料值具有至少一可識別,倒裝位元,, 包含設定位元的倒裝向量9 6,其位置對應資料值中的失效 !位置,則與資料值作互斥或以恢復資料值成為校正狀態。 i若資料值沒有倒裝位元,則可提供0值的倒裝向量9 6。若 資料值有至少一個不可識別的倒裝位元,則視資料為不可 恢復的錯誤。 假設本文的目的是由ECC邏輯39校正錯.誤的資料值,則 |提供資料值給RMW邏輯41。根據一實施例,RMW邏輯41包 :含:RMW控制邏輯1 02,RMW緩衝區1 05,及多工器(1 00A, j 丨1 0 0 B,1 0 0C )。RMW控制邏輯1 0 2接收記憶體存取控制邏輯 |的控制信號(RMW CNTRL)以支援至少2種動作:部分寫入動 丨作及清洗動作。 ί 部分寫入動作是指寫入的資料量比記憶體次系統1 4細度 !允許的較小(如寫入字大小的值在記憶體次系統中,其只 :能以四倍字細度來#取)。一種執行部分寫入動作的方式 j是以要寫入的資料來蓋過讀取自記憶體次系統14的部分資 ;料值(即合併要寫入的資料以及從記憶體讀取的值),並接 I著將合併值回寫到記憶體次系統1 4中·。在一實施例中,使 丨用多工器(l〇〇A,100B,100C)以合併來自數個寫入緩衝區 |
第26頁 413755 五、發明說明(24) ΐ回Uir 緩05中的資料即可達成。為 Ϊ取邏輯的至少,w控制信號,m控制邏 ί邏輯39輸出的資料值儲存在mw缓衝區丨〇5 ,’珣入夕工器控制信號到多工器(i〇〇A ,i〇〇B⑽C) 以合併RMW緩衝區1〇5中的資料值與另—寫入缓衝區的資 料。接著增合併資料值提供給記憶體次系統丨4 (經由E c c邏 輯3 9中的ECC產生器97),在此寫入適當的位址。
根據一實施例,用以執行上述讀寫合併動作的電路也可 用以支援清洗動作。為了回應清洗請求,記憶體存取控制 邏輯發出RMW控制信號以使校正資料值儲存在⑽界緩衝區 1 0 5 ’並接著在沒有其他寫入緩衝區的部分寫入資料作的 修正下,通過多工器(1〇〇A,i〇〇b,WOC)。RMW緩衝區1〇5 的校正資料值接箸寫入記憶體,其位址在清洗請求中提 i供。在一實施例中,RMW緩衝區j 〇 5輸出的校正資料值通過 ECC邏輯39中的ECC產生器97,以使校正資料值及其對應 E C C儲存在記憶體次系統丨4中。
! 可了解的是上述服務清洗請求的實碜例利用許多相同的 |邏輯元件及資料路徑用以支援部分寫入動作。藉由依此實 j施讀寫合併邏輯,本發明的各實施例即可在減縮閘計數下 I貫把’因此可減少成本。儘管有這些優點’這些實施例》 I其中用不同的邏輯作讀寫合併及清洗動作,仍不會違背本 發明的精神及範圍。 圖8的一般方法流程圖是根據本發明的至少一實施例。 在步驟11 2 ’將位址輸入記憶體次系統以便從記憶體次系
第27頁 413755 I五、發明說明(25) 丨統讀取資料值。在步驟1 1 4,將位址儲存在儲存缓衝區中 ;而資料值則等待從記憶體次系統輸出。至於從記憶體次系 統輸出的各值,在步驟1 1 6判定資料值是否具有一可校正 i錯誤。若資料值有一可校正錯誤’,則在步驟118將資料值 |的校正版本寫入記憶體次系統中的位置,如儲存在儲存缓 I衝區中的對應位址者所示。 Ϊ
} 在上述說明中,已參考其特定典型實施例來說明本發 明。然而很明顯的在不違反本發明的較廣精神及範圍下可 作各種修正及變化,該精神及範圍如後附申請專利範圍所 示。因此應將說明書及附圖視為說明性質而非一種限制。
第28頁

Claims (1)

  1. 413755 六、申請專利範圍 1 . 一種裝置,包含: 存取邏輯,以存取一記憶體; 錯誤偵測邏輯,以產生各資料值之錯誤信號,由記 : 憶體輸出以指示資料值是否具有一可校正錯誤;以及 校正邏輯,連接至存取邏輯及錯誤偵測邏輯,以請 求存取邏輯將各資料值之校正版本寫入記憶體,如錯誤信 號所示以具有一可校正錯誤。 2. 如申請專利範圍第1項之裝置,其中校正邏輯包含: 一儲存缓衝區,以容納在記憶體讀取動作中輸入之 位址; 一寫_入指標’以指不儲存缓衝區1中之各寅料’在該 缓衝區儲存各位址;以及 一旗號指標,以指示儲存缓衝區中之資料,該缓衝 區包含一最新儲存之位址,其中資料等待從記憶體輸出。 3. 如申請專利範圍第2項之裝置,其中校正邏輯更包含 一清洗指標,以指示儲存緩衝區中之資料,其中從記憶體 輸出之對應資料值具有一可校正錯誤。 4. 如申請專利範圍第3項之裝置,其中存取控制邏輯之 請求包含來自儲存缓衝區資料 < 位址,如清洗指標所示。 5. 如申請專利範圍第2項之裝置*其中未定資料從記憶 體輸出後,以及一旗號值,其指示資料值是否具有一可校 正錯誤,儲存在儲存缓衝區資料之後,旗號指標即增加以 i 指示儲存緩衝區中之連續資料,如旗號指標所示。 6. 如申請專利範圍第5項之裝置,其中根據錯誤信號而 413755 六、申請專利範圍 決定旗號值。 7. 如申請專利範圍第5項之裝置,其中校正邏輯更包含 一清洗指標,以指示儲存缓衝區中之資料,該緩衝區包含 一最新儲存之位址,其已在一未定請求中供給至存取邏 輯,俾寫入一校正資料值至記憶體。 8. 如申請專利範圍軍6項之裝置,其中未定資料增加以 指向儲存缓衝區中之另一資料,其中未定請求寫入一校正 資料值後,旗號值指示認可一可校正錯誤。 9. 如申請專利範圍第2項之裝置,其中校正邏輯更包含 一清洗指標,以指示儲存缓衝區中之資料1該缓衝區包含 一最新儲存之位址,其已在一未定請求中供給至存取邏 輯,俾寫入一校正資料值。 1 0.如申請專利範圍第.2項之裝置,其中如旗號指標所示 之儲存缓衝區資料中之位址,若未定資料當記憶體輸出 時,如對應錯誤信號所示具有一可校正錯誤,即供給至錯 I誤報告邏輯。 ; 1 1.如申請專利範圍第2項之裝置,更包含記憶體介面邏 _輯,以輸入一信號至校正邏輯以指示在一記憶體讀取動作 丨期間存取諸記憶體元件之眾多列之那一列,品其中校正邏 !輯將指示存取列之列值與一資料中之對應位址一起儲存在 i 丨儲存缓衝區中。 ) I 12.如申請專利範圍第9項之裝置,其中旗號指標所示之 I
    第30頁 413755 六、申請專利範圍 至錯誤報告邏輯。 13. —種用以校正錯誤實料之裝置,該裝置包含: 存取邏輯,以存取一記憶體以回應來自至少一請求 仲介之記憶體存取請求; 錯誤偵測邏輯,若讀取自記憶體中第一位置之資料 係錯誤,即輸入一第一錯誤信號; ' 校正邏輯,以偵測第一錯誤信號之輸入,及輸入以 回應一記憶體存取請求存取邏輯以寫入資料之校正版本至 第一位置。 1 4. 一種用以校正錯誤資料之裝置,該裝置包含: 裝置,用以存取一記憶體以回應來自至少一請求仲 i介之記憶體存取請求; ; 裝置,若讀取自記‘憶體中第一位置之資料係錯誤, 即用以輸入一第一錯誤信.號; 裝置,用以偵測第一錯誤信號之輸入,及用以輸入 以回應一記憶體存取請求該裝置用以存取,以寫入資料之 丨校正版本至第一位置。 i I 15. —種用以校正錯誤資料之方法,包含以下步驟: | 輸入一記憶體之諸位址俾從其中讀取資料值; 儲存諸位址在一儲存缓衝區中,而資料值則等待從 記憶體輸出; | 對於從記憶體輸出之各資料值,判定資料值是否具 ;有一可校正錯誤;以及 ! 若資料值具有一可校正錯誤,則將資料值之校正版
    第31頁 413755 六、申請專利範圍 本寫入記憶體位置,如儲存在儲存缓衝區中之一對應位址 所示—。 1 6.如申請專利範圍第1 5項之方法,儲存諸位址之步驟 包含將輸入記憶體之各位址之最顯著部分儲存在儲存緩衝 I I 區中之步驟。 | I 7.如申請專利範圍第1 5項之方法,更包含儲存諸列值 在儲存緩衝區中之步驟,以指示存取諸記憶體元件之眾多 列之那一列,以讀取資料值之每一者。 [ . ' 〇 1 8.如申請專利範圍第1 7項之方法,更包含以下步驟: 若記憶體輸出之對應資料值具有一可校正錯誤,則從儲存 |緩衝區傳輸一列值及一位址至錯誤報告邏輯俾供一處理器 卜存取° j 丨 19.如申請專利範圍第15項之方法,更包含以下步驟: ! 儲存各位址在各儲存缓衝區資料中,如一寫入指標 |所示;以及 I 對於各資料值,儲存一旗號值其指示資料值是否在 各儲存缓衝區資料中具有一可校正錯誤如一旗號指標所 !示,如旗號指標所示之各儲存緩衝區資料也包含一對應位 址,由此讀取資料值。 ; 2 0.如申請專利範圍第1 9項之方法,更包含以下步驟: i 維持一清洗指標,以指示儲存緩衝區中之資料具有 一旗號值以指示一可校正錯誤;以及
    開始寫入資料值之校正版本步驟後,清除儲存缓衝 | ..... 區資料中之旗號值如清洗指標所示。 413755 六、申請專利範圍 2 1.如申請專利範圍第2 0項之方法,其中寫入資料值之 校正版本至記憶體位置之步驟,包含寫入資料值之校正版 本至記憶體之步..驟,該記憶體在清洗指標指到之儲存缓衝 區資料之位址中。 2 2.如申請專利範圍第丨5項之方法,寫入資料值之校正 版本至記憶體位置之步驟,包含以下步驟: 從記憶體位置讀取資料值; 根據與資料值結合之錯誤校正值而產生資料值之校
    正版本;以及 寫入資料值之校正版本至記憶體位置 2 3. —種電腦系統,包含: 一處理器; 一記憶體,其包含眾多隨機存取記憶體元件;以及 I 一控制器,連接至處理器及記憶體,控制器包含: 存取邏輯,以存取記憶體以回應來自處理器之請 求; ! 錯誤偵測邏輯,以產生各資料值之錯誤信號,由 !記憶體輸出以指示資料值是否具有一可校正錯誤;以及 校正邏輯,連接至存取邏輯及錯誤偵測邏輯,以 請求存取邏輯將各資料值之校正版本寫入記憶體,如錯誤 ;信號所示以具有一可校正錯誤。
    第33頁 413755 六、申請專利範圍 體(E D 0 D R A Μ )元件;以及 一控制器,連接至處理器及記憶體,控制器包含: 存取邏輯,以存取記憶體以回應來自處理器之請 求; 錯誤偵測邏輯,以產生各資料值之錯誤信號,由 記憶體輸出以指示資料值是否具有一可校正錯誤;以及 校正邏輯,連接至存.取邏輯及錯誤偵測藥_.輯,以 請求存取邏輯將各資料值之校正版本寫入記憶體,如錯誤 信號所示以具有一可校正錯誤。 -D 2 5, —種電腦系統,包含: 一處理器; 一記憶體,其包含眾多同步動態隨機存取記憶體 (SDRAM)元件;以及 一控制器,連接至處理器及記憶體,控制器包含: 存取邏輯,以存取記憶體以回應來自處理器之請 求; ! 錯誤偵測邏輯,以產生各資料值之錯誤信號,由 I記憶體輸出以指示資料值是否具有一可校正錯誤;以及 校正邏輯,連接至存取邏輯及錯誤偵測邏輯,以
    第34頁
TW087119018A 1997-11-26 1998-11-17 Method and apparatus for automatically correcting errors detected in a memory subsystem TW413755B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/978,807 US5987628A (en) 1997-11-26 1997-11-26 Method and apparatus for automatically correcting errors detected in a memory subsystem

Publications (1)

Publication Number Publication Date
TW413755B true TW413755B (en) 2000-12-01

Family

ID=25526405

Family Applications (1)

Application Number Title Priority Date Filing Date
TW087119018A TW413755B (en) 1997-11-26 1998-11-17 Method and apparatus for automatically correcting errors detected in a memory subsystem

Country Status (5)

Country Link
US (1) US5987628A (zh)
AU (1) AU1273999A (zh)
DE (1) DE19882853B3 (zh)
TW (1) TW413755B (zh)
WO (1) WO1999027449A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716556B2 (en) 2005-09-09 2010-05-11 Via Optical Solution, Inc. Method for calculating an error detecting code
TWI448964B (zh) * 2007-09-07 2014-08-11 Ibm 電腦系統及用於淨化處理其中之記憶體之方法

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560725B1 (en) * 1999-06-18 2003-05-06 Madrone Solutions, Inc. Method for apparatus for tracking errors in a memory system
US6519717B1 (en) * 1999-10-06 2003-02-11 Sun Microsystems Inc. Mechanism to improve fault isolation and diagnosis in computers
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US6784889B1 (en) * 2000-12-13 2004-08-31 Micron Technology, Inc. Memory system and method for improved utilization of read and write bandwidth of a graphics processing system
US6675317B2 (en) * 2000-12-14 2004-01-06 International Business Machines Corporation Method and system for determining erase procedures run on a hard drive
US7346278B2 (en) * 2001-02-05 2008-03-18 Finisar Corporation Analog to digital signal conditioning in optoelectronic transceivers
US7302186B2 (en) * 2001-02-05 2007-11-27 Finisar Corporation Optical transceiver and host adapter with memory mapped monitoring circuitry
US7079775B2 (en) 2001-02-05 2006-07-18 Finisar Corporation Integrated memory mapped controller circuit for fiber optics transceiver
US20040197101A1 (en) * 2001-02-05 2004-10-07 Sasser Gary D. Optical transceiver module with host accessible on-board diagnostics
US6851070B1 (en) * 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
US6741253B2 (en) * 2001-10-09 2004-05-25 Micron Technology, Inc. Embedded memory system and method including data error correction
US6941493B2 (en) * 2002-02-27 2005-09-06 Sun Microsystems, Inc. Memory subsystem including an error detection mechanism for address and control signals
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
EP1359485B1 (de) * 2002-05-03 2015-04-29 Infineon Technologies AG Steuer- und Überwachungssystem
US6996766B2 (en) * 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US6973613B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US6996686B2 (en) * 2002-12-23 2006-02-07 Sun Microsystems, Inc. Memory subsystem including memory modules having multiple banks
US7779285B2 (en) * 2003-02-18 2010-08-17 Oracle America, Inc. Memory system including independent isolated power for each memory module
US7092978B2 (en) 2003-02-24 2006-08-15 Sun Microsystems, Inc. Space-efficient, depth-first parallel copying collection technique making use of work—stealing on the same structures that maintain the stack of items to be scanned
US20040186862A1 (en) * 2003-03-18 2004-09-23 Garthwaite Alexander T. Parallel caching of insertions into remembered-sets
US7072918B2 (en) * 2003-03-24 2006-07-04 Sun Microsystems, Inc. Remembered-set scrubbing to remove stale entries in an incremental garbage collector
US7613767B2 (en) 2003-07-11 2009-11-03 Microsoft Corporation Resolving a distributed topology to stream data
US7530008B2 (en) 2003-08-08 2009-05-05 Sun Microsystems, Inc. Scalable-chip-correct ECC scheme
US7188296B1 (en) 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
US7733962B2 (en) * 2003-12-08 2010-06-08 Microsoft Corporation Reconstructed frame caching
US7712108B2 (en) * 2003-12-08 2010-05-04 Microsoft Corporation Media processing methods, systems and application program interfaces
US7900140B2 (en) 2003-12-08 2011-03-01 Microsoft Corporation Media processing methods, systems and application program interfaces
US7735096B2 (en) * 2003-12-11 2010-06-08 Microsoft Corporation Destination application program interfaces
US20050185718A1 (en) * 2004-02-09 2005-08-25 Microsoft Corporation Pipeline quality control
US7934159B1 (en) 2004-02-19 2011-04-26 Microsoft Corporation Media timeline
US7941739B1 (en) 2004-02-19 2011-05-10 Microsoft Corporation Timeline source
US7664882B2 (en) 2004-02-21 2010-02-16 Microsoft Corporation System and method for accessing multimedia content
US7609653B2 (en) 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
US7577940B2 (en) 2004-03-08 2009-08-18 Microsoft Corporation Managing topology changes in media applications
US7669206B2 (en) * 2004-04-20 2010-02-23 Microsoft Corporation Dynamic redirection of streaming media between computing devices
US7590750B2 (en) * 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
US7328317B2 (en) * 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
DE102004059392B4 (de) 2004-12-09 2015-09-10 Infineon Technologies Ag Verfahren zur Neubelegung eines Befehlsspeichers, Subsystem zur Durchführung eines derartigen Verfahrens, sowie Mikrokontroller
US7831882B2 (en) 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US9459960B2 (en) * 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7885929B2 (en) 2006-01-03 2011-02-08 Motio, Inc. Continuous integration of business intelligence software
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
JP4887824B2 (ja) * 2006-02-16 2012-02-29 富士通セミコンダクター株式会社 メモリシステム
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
JP4343945B2 (ja) * 2006-12-28 2009-10-14 三菱電機株式会社 電子制御装置
US8176388B1 (en) * 2007-06-20 2012-05-08 Marvell Israel (Misl) Ltd. System and method for soft error scrubbing
US8122308B2 (en) * 2008-06-25 2012-02-21 Intel Corporation Securely clearing an error indicator
US8159956B2 (en) 2008-07-01 2012-04-17 Finisar Corporation Diagnostics for serial communication busses
US9170879B2 (en) * 2009-06-24 2015-10-27 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated data errors from a memory system
GB2497525A (en) 2011-12-12 2013-06-19 St Microelectronics Ltd Controlling shared memory data flow
US9325346B1 (en) * 2012-05-31 2016-04-26 Marvell International Ltd. Systems and methods for handling parity and forwarded error in bus width conversion
US9898362B2 (en) * 2016-04-07 2018-02-20 Atmel Corporation Multi-channel RAM with ECC for partial writes
KR102243582B1 (ko) * 2017-04-24 2021-04-23 에스케이하이닉스 주식회사 반도체장치
US11361839B2 (en) 2018-03-26 2022-06-14 Rambus Inc. Command/address channel error detection
US11294766B2 (en) * 2019-08-13 2022-04-05 Micron Technology, Inc. Coordinated error correction
US20220075688A1 (en) * 2021-11-14 2022-03-10 Intel Corporation Circuits And Methods For Correcting Errors In Memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3735105A (en) * 1971-06-11 1973-05-22 Ibm Error correcting system and method for monolithic memories
US4005405A (en) * 1975-05-07 1977-01-25 Data General Corporation Error detection and correction in data processing systems
US4336611A (en) * 1979-12-03 1982-06-22 Honeywell Information Systems Inc. Error correction apparatus and method
US4319356A (en) * 1979-12-19 1982-03-09 Ncr Corporation Self-correcting memory system
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
JPS6388920A (ja) * 1986-10-02 1988-04-20 Victor Co Of Japan Ltd 符号エラ−訂正回路
US4939694A (en) * 1986-11-03 1990-07-03 Hewlett-Packard Company Defect tolerant self-testing self-repairing memory system
US4884271A (en) * 1987-12-28 1989-11-28 International Business Machines Corporation Error checking and correcting for read-modified-write operations
US4899342A (en) * 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US4920539A (en) * 1988-06-20 1990-04-24 Prime Computer, Inc. Memory error correction system
US4964129A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. Memory controller with error logging
US4964130A (en) * 1988-12-21 1990-10-16 Bull Hn Information Systems Inc. System for determining status of errors in a memory subsystem
US5127014A (en) * 1990-02-13 1992-06-30 Hewlett-Packard Company Dram on-chip error correction/detection
US5140592A (en) * 1990-03-02 1992-08-18 Sf2 Corporation Disk array system
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
US5392302A (en) * 1991-03-13 1995-02-21 Quantum Corp. Address error detection technique for increasing the reliability of a storage subsystem
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5263032A (en) * 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US5430742A (en) * 1992-10-14 1995-07-04 Ast Research, Inc. Memory controller with ECC and data streaming control
US5388108A (en) * 1992-10-23 1995-02-07 Ncr Corporation Delayed initiation of read-modify-write parity operations in a raid level 5 disk array
US5588112A (en) * 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
US5367526A (en) * 1993-06-22 1994-11-22 Kong Edmund Y Memory module, parity bit emulator, and associated method for parity bit emulation
US5428630A (en) * 1993-07-01 1995-06-27 Quantum Corp. System and method for verifying the integrity of data written to a memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716556B2 (en) 2005-09-09 2010-05-11 Via Optical Solution, Inc. Method for calculating an error detecting code
TWI448964B (zh) * 2007-09-07 2014-08-11 Ibm 電腦系統及用於淨化處理其中之記憶體之方法

Also Published As

Publication number Publication date
AU1273999A (en) 1999-06-15
WO1999027449A1 (en) 1999-06-03
US5987628A (en) 1999-11-16
DE19882853B3 (de) 2014-02-20
DE19882853T1 (de) 2001-06-21

Similar Documents

Publication Publication Date Title
TW413755B (en) Method and apparatus for automatically correcting errors detected in a memory subsystem
EP1449082B1 (en) Error correcting memory and method of operating same
US7650557B2 (en) Memory scrubbing of expanded memory
US20090070654A1 (en) Design Structure For A Processor System With Background Error Handling Feature
US8301938B2 (en) Managing memory health
KR102426619B1 (ko) 영구 메모리 시스템 등을 위한 데이터 무결성
US5809280A (en) Adaptive ahead FIFO with LRU replacement
US8245087B2 (en) Multi-bit memory error management
JP4907154B2 (ja) メモリエラーを分類するための方法および装置
US3800294A (en) System for improving the reliability of systems using dirty memories
US20030037280A1 (en) Computer memory error management system and method
CN114902197B (zh) 非易失性双列直插式存储器模块的命令重放
US7571357B2 (en) Memory wrap test mode using functional read/write buffers
KR20220116033A (ko) 비휘발성 메모리 모듈에 대한 오류 복구
KR20220116208A (ko) 비휘발성 메모리 모듈에 대한 에러 보고
CN108369519B (zh) 在使用块-原子执行模型的基于处理器的系统中重放部分执行的指令块
US20080301403A1 (en) System for integrity protection for standard 2n-bit multiple sized memory devices
US9110796B2 (en) Apparatus and circuitry for memory-based collection and verification of data integrity information
US6701484B1 (en) Register file with delayed parity check
US20070079212A1 (en) Techniques for efficient error correction code implementation in a system
EP1278123A1 (en) High integrity cache directory
US20130159591A1 (en) Verifying data received out-of-order from a bus
TWI254849B (en) Method and related apparatus for data error checking
JP2003345669A (ja) メモリアクセスエラーを防止するシステム及び方法
US11586360B2 (en) Hybrid memory mirroring using storage class memory

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees