TWI448964B - 電腦系統及用於淨化處理其中之記憶體之方法 - Google Patents

電腦系統及用於淨化處理其中之記憶體之方法 Download PDF

Info

Publication number
TWI448964B
TWI448964B TW097133776A TW97133776A TWI448964B TW I448964 B TWI448964 B TW I448964B TW 097133776 A TW097133776 A TW 097133776A TW 97133776 A TW97133776 A TW 97133776A TW I448964 B TWI448964 B TW I448964B
Authority
TW
Taiwan
Prior art keywords
memory
purification
processing
purification processing
rate
Prior art date
Application number
TW097133776A
Other languages
English (en)
Other versions
TW200921507A (en
Inventor
Brian David Allison
Joseph Allen Kirscht
Elizabeth A Mcglone
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200921507A publication Critical patent/TW200921507A/zh
Application granted granted Critical
Publication of TWI448964B publication Critical patent/TWI448964B/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
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

電腦系統及用於淨化處理其中之記憶體之方法
本發明大體係關於電腦系統中之記憶體控制器。更特定言之,本發明係關於有效率地排程淨化處理命令。
本申請案係關於:2007年___申請之美國申請案序號___(代理人案號ROC920070424US1),其標題為Efficient Scheduling of Background Scrub Commands
現代的電腦系統包含記憶體及記憶體控制器。在諸如DRAM(動態隨機存取記憶體)或SRAM(靜態隨機存取記憶體)之記憶體中,儲存於記憶體中之資料可(例如)因一或多個形式之輻射而變得被破壞。此破壞常常將其自身呈現為"軟性錯誤"。舉例而言,可將所讀取的資料區塊(諸如,所讀取的快取線)中之單個位元讀取作為"0",而已將單個位元寫入作為"1"。在將資料區塊傳遞至處理器之前,最現代的電腦系統使用錯誤校正碼(ECC)電路來校正單個位元錯誤(SBE)。SBE可為永久錯誤(記憶體或至記憶體之互連中之實體錯誤),或SBE可為"軟性錯誤"。
一些現代的電腦系統能夠校正所讀取的資料區塊中之一個以上錯誤。為了解釋之簡單起見,將按照校正單個位元錯誤來描述本文中之ECC電路,但本發明不限於具有僅校正單個位元錯誤之ECC電路的電腦系統。
常常藉由淨化處理來校正記憶體中之軟性錯誤。淨化處 理指代週期性地或以其他方式讀取資料、校正任何可校正錯誤且將經校正資料寫入回至記憶體。淨化處理對於防止單個位元軟性錯誤隨時間而變為ECC電路不能夠校正之多位元錯誤而言為重要的。
舉例而言,假設ECC電路能夠校正SBE,且在特定快取線中出現第一軟性錯誤。ECC電路能夠校正SBE且將校正資料發送至處理器。另外,假設使第一軟性錯誤未經校正,且在一時間週期之後,在特定快取線中出現第二錯誤(硬性或軟性錯誤)。"硬性"錯誤為永久錯誤,例如,斷開的信號連接器或失敗的驅動器或接收器。ECC電路不能夠校正具有兩個錯誤之快取線,且報告錯誤已被偵測,但不能被校正,此很可能導致要求特定快取線之任務的終止,且可能需要電腦系統之重新啟動。
因此,為了減小不可校正多位元錯誤之可能性,在一指定淨化處理週期內淨化處理記憶體。舉例而言,可在二十四小時淨化處理週期內淨化處理電腦系統之整個記憶體。指定記憶體可靠性速率依在指定週期中淨化處理所有記憶體之完成而定。
記憶體控制器判定連接至記憶體控制器的記憶體量、判定在淨化處理週期(例如,一天)期間淨化處理整個記憶體而必須伺服淨化處理要求的量,且將淨化處理週期分裂為淨化處理間隔。
記憶體控制器按序通過所需之全部數目的淨化處理,一次一個淨化處理命令,其需要在每一淨化處理間隔期間伺 服一淨化處理。
現參看先前技術圖3A及圖3B,在一特定淨化處理間隔之第一淨化處理子間隔期間,若伺服淨化處理命令不會影響由處理器所發出之正常讀取命令(或在一些情況下,寫入命令),則將如此進行。若在特定淨化處理間隔之第一淨化處理子間隔期間尚未伺服淨化處理命令,則在第二淨化處理子間隔期間,淨化處理要求逐步上升為淨化處理需求,在此時,推遲正常命令流(由處理器所發出之伺服讀取及寫入)以有利於淨化處理需求,伺服淨化處理需求,且接著恢復正常命令流。需求淨化處理減少電腦系統之輸送量,因為其增加讀取及寫入要求之延時,此引起處理器等待資料。 此以繪畫形式展示於圖3B中。在圖3B中,在淨化處理週期內進行淨化處理之進程在淨化處理週期(為了例示性目的,淨化處理週期為一天)之過程內經展示為直線。記憶體需求工作負載經展示成在約8 am時增加、保持相對較高直至約5 pm,且接著逐漸減少。在時間A及時間C期間,記憶體需求工作負載相對較輕。在時間B期間,記憶體需求工作負載相對較重,且常常出現在淨化處理間隔之第一淨化處理子間隔期間不能伺服淨化處理要求。為了保持直線"進程",接著在淨化處理間隔之第二淨化處理子間隔中施行淨化處理需求,此引起伺服淨化處理要求,而由處理器所發出之讀取要求及寫入要求等候。
在本發明之一實施例中,判定淨化處理遲緩(slack)值。 淨化處理遲緩值指示在一給定時間淨化處理進程在期望淨化處理進程之前還是之後。按時刻藉由動態地量測工作負載或藉由使用記憶體工作負載之預定估計來判定記憶體工作負載。記憶體工作負載可藉由在記憶體控制器中寫入佇列或讀取佇列之滿度(fullness)之觀測來動態地判定,其中若讀取佇列及/或寫入佇列變得相對滿,則記憶體工作負載重。回應於淨化處理進程及記憶體工作負載,調整淨化處理優先權。有利地,當記憶體工作負載相對較輕時,記憶體控制器試圖藉由在一給定時間間隔中伺服較多淨化處理要求來"超過"期望淨化處理進程。當記憶體工作負載相對較重時,記憶體控制器伺服相對較少淨化處理要求,以便減少與由處理器所發出之讀取要求及寫入要求有關的讀取及/或寫入要求延時。此外,若淨化處理進程在淨化處理週期接近完成時滯後於期望淨化處理進程,則提高淨化處理優先權,以便使記憶體控制器在淨化處理週期期間完成整個記憶體之淨化處理。
在一實施例中,藉由延長或縮短淨化處理間隔來調整淨化處理優先權。在一實施例中,藉由改變淨化處理間隔在淨化處理要求具有第一優先權相對於讀取及/或寫入要求期間之第一淨化處理子間隔與淨化處理要求具有比第一優先權高之第二優先權相對於讀取要求及/或寫入要求期間之第二淨化處理子間隔之間的分配來調整淨化處理優先權。
在較佳實施例之以下詳細描述中,對隨附圖式進行參看,隨附圖式形成詳細描述之一部分,且在隨附圖式內藉由說明而展示可實踐本發明所藉由之特定實施例。應理解,可利用其他實施例,且可在不脫離本發明之範疇的情況下進行結構改變。
現參看圖式(且詳言之,圖1),展示電腦系統100。電腦系統100包含一或多個處理器102、將處理器102耦接至記憶體控制器106之處理器匯流排105,及藉由記憶體匯流排107而耦接至至記憶體控制器106之記憶體108。記憶體108進一步包含記憶體晶片110(經展示為記憶體晶片1100 -110n-1 )之一或多個記憶體階層(rank)112(經展示為記憶體階層1120 -112m-1 )。記憶體晶片110通常為DRAM(動態隨機存取記憶體)晶片。如圖2所示,每一記憶體晶片110進一步包含一或多個記憶體庫111(經展示為記憶體庫111a-111d)。記憶體階層112及記憶體庫111為記憶體元件之實例。記憶體元件為在由記憶體控制器106所發出之讀取要求、寫入要求或淨化處理要求之伺服期間所存取的記憶體單元。為了解釋之目的,記憶體階層112及記憶體庫111將在本文中用作記憶體元件之實例。
應理解,典型電腦系統100進一步包括許多其他組件,諸如,網路連接設施、碟片及碟片控制器、使用者介面及其類似者,其皆為熟知的,且其論述不為本發明之實施例的理解所必要的。
現轉至圖4A至圖4D,看到本文中待描述的本發明之實施 例之結果的高級綜述。圖4A展示在一預定淨化處理週期(在圖4A之實例中為一天)內的指示在淨化處理記憶體時之所要"平均"進程的期望進程線。若以比平均淨化處理速率快的速率進行淨化處理,則在任一給定時間所淨化處理的百分比將在區域中經表示為"前131"。另一方面,若在一給定時間已執行的淨化處理量少於平均期望進程,則由給定時間所淨化處理的百分比在區域中經標記為"後132"。在記憶體工作負載低時之時間期間,本發明之實施例提供以比平均速率快的速率之淨化處理,以便進入前131區域、在前131區域變得較高或試圖脫逸後132區域。若記憶體工作負載重,且所淨化處理的記憶體之百分比在前131區域中,則可以較低淨化處理速率進行淨化處理,以便達成關於讀取要求(且在一些實施及情形中,寫入要求)之較低延時。
圖4B展示淨化處理間隔130,其經分割為第一淨化處理子間隔133及第二淨化處理子間隔134,第二淨化處理子間隔始於淨化處理需求開始135。在淨化處理間隔133中,若未增加讀取延時(且在一些實施例中,若未增加寫入延時),則執行淨化處理要求。在其他實施例中,第一淨化處理優先權實際上處於第一淨化處理子間隔期間,且第二較高淨化處理優先權實際上處於第二淨化處理子間隔期間。
在一實施例中,若淨化處理間隔之持續時間為"X"秒,則第一淨化處理間隔在"X"秒之後消逝,且緊接著為第二淨化處理間隔。在一替代實施例中,若在第三淨化處理間隔期間伺服淨化處理要求,則在完成淨化處理要求之伺服後便 立即開始第四淨化處理間隔,而非等待完成"X"秒持續時間。
在本發明之一實施例中,淨化處理間隔130經延長或縮短。縮短淨化處理間隔130會引起必須在處置讀取或寫入要求之前伺服淨化處理要求的情況之增加,藉此增加淨化處理速率。淨化處理速率為執行淨化處理之速率,例如,每秒"X"個淨化處理。亦可藉由降低第一淨化處理子間隔與第二淨化處理子間隔之比率(亦即,在圖4B中"向左"移動淨化處理需求開始135)來增加淨化處理速率,此引起在第二淨化處理子間隔中花費較多時間,在此時間期間,即使增加讀取或寫入之延時,亦可選擇淨化處理以用於伺服。類似地,增加淨化處理間隔130之持續時間及/或增加第一淨化處理子間隔與第二淨化處理子間隔之比率將會減少淨化處理速率。
本發明之實施例提供經呈現至要求選擇器(要求選擇器124,稍後待描述)之第一淨化處理要求及第二淨化處理要求。複數個同時淨化處理要求增加可伺服淨化處理要求中之一者而不影響讀取要求(或可能地,寫入要求)之延時的機率,藉此亦增加淨化處理速率。預期任何數目之同時呈現之淨化處理要求。
圖4C展示如何使用對在淨化處理週期過程內之記憶體工作負載變化的認識來判定淨化處理速率。在圖4C之實例中,已知的是,工作負載在"正常工作小時"(經展示為大致8 am至5 pm)期間顯著較高。將淨化處理週期界定成始於大致 7 pm,且程式化淨化處理速率(例如,藉由縮短淨化處理間隔130及/或增加第二淨化處理子間隔134)。淨化處理進程經展示成在圖4C中以相對較高淨化處理速率"斜率A"進行。在正常工作小時期間之期望較高工作負載期間,藉由增加淨化處理間隔130或"向右"移動淨化處理需求開始135(亦即,減少第一淨化處理間隔133與第二淨化處理間隔134之比率)而將淨化處理速率減少至"斜率B"。在重記憶體工作負載時間期間展示以"斜率B"之速率的淨化處理進程。在一實施例中,移動淨化處理需求135,使得第二淨化處理間隔134為"零",在該情況下,不進行淨化處理需求,且僅當淨化處理要求不影響關於讀取(且可能為寫入)之延時時才伺服淨化處理要求。
通常,在寫入佇列中累積寫入要求,且以比讀取要求低的優先權來伺服寫入要求。然而,若寫入佇列變得滿,則處理器可停止,因為其可不再傳輸新寫入要求。因此,在寫入佇列變得幾乎時,一些記憶體控制器將增加寫入要求優先權。
在許多情況下,可進行淨化處理要求而不影響讀取(或寫入)要求。舉例而言,參看圖1及圖2,第一讀取要求經發射且將由記憶體階層1120 中之記憶體晶片110之記憶體庫111a(記憶體庫0)處置。視特定記憶體晶片技術而定,彼要求將花費許多讀取要求器循環。在完成讀取後,便可關閉記憶體庫(111a),此時,必須將所讀取之資料寫入回至記憶體庫,且必須對位元線再充電,此花費額外時間。因此, 記憶體控制器不能在許多要求選擇器循環內將第二讀取要求發出至記憶體階層1120 (記憶體庫111a(記憶體庫0))。然而,若淨化處理要求將至不同記憶體階層或甚至記憶體階層1120 中之不同記憶體庫(111b、111c、111d),則可伺服彼淨化處理要求而不影響第二讀取要求之延時。
因為電腦系統100很可能具有包含許多記憶體階層112之相對較大記憶體108,所以本發明之實施例提高可藉由同時將許多淨化處理要求發出至不同記憶體階層及/或記憶體庫來伺服淨化處理要求而不影響讀取要求(或寫入要求)之可能性。舉例而言,若記憶體108具有八個記憶體階層112,則對於記憶體階層112中之每一者進行一淨化處理要求。或者,一實施例自一特定記憶體階層112之每一記憶體庫111發出淨化處理要求。在又一實施例中,對於每一記憶體階層112之每一記憶體庫111發出同時淨化處理要求。
同時自多個記憶體階層及/或記憶體庫發出淨化處理要求之另一優勢在於:較早地發現機械或電問題。舉例而言,在先前記憶體控制器中,一次一個地發出淨化處理要求,在移動至不同記憶體階層112之前步進通過特定記憶體階層112中之所有記憶體庫111。假設淨化處理週期為24小時且存在十二個記憶體階層112。在淨化處理期間直至最終淨化處理第十二個記憶體階層時的淨化處理週期之第22個小時才將偵測到在彼記憶體階層上特定信號上之不良連接或不良接收器或驅動器。在所描述之實施例(具有來自不同記憶體階層及/或記憶體庫之同時淨化處理要求)的情況下,實 際上確定到,每一記憶體階層將具有在頻繁基礎上所伺服之至少一淨化處理要求,且可較快地應對此等故障。
圖4D說明隨著記憶體工作負載減小而增加淨化處理速率且隨著記憶體工作負載增加而減小淨化處理速率的本發明之另一實施例。基於實際記憶體工作負載相對於如參看圖4C所描述的記憶體工作負載之預定估計來判定淨化處理優先權。
圖5展示記憶體控制器106之方塊圖。處理器匯流排105將記憶體控制器106耦接至處理器102,如圖1所示;記憶體匯流排107將記憶體控制器106耦接至記憶體108,如圖1所示。應理解,在各種實施中,緩衝器晶片(未圖示)可用以緩衝經傳輸至記憶體晶片110或自記憶體晶片110所傳輸之信號。記憶體控制器106包含儲存由處理器102所發出之讀取要求的讀取佇列121。記憶體控制器106亦包含儲存由處理器102所發出之寫入要求的寫入佇列123。記憶體控制器106包含在一特定要求選擇器循環期間發出淨化處理要求(在實施例中,多個淨化處理要求)之淨化處理控制器125。衝突佇列129用以管理讀取、寫入及淨化處理要求衝突。
要求選擇器124在一要求選擇器循環期間自讀取佇列121、自寫入佇列123或自淨化處理控制器125選擇要求,且在將存取記憶體108之特定記憶體階層中之特定記憶體庫的記憶體匯流排107上發出選定要求。舉例而言,在一要求選擇器循環期間,可將一讀取要求及兩個淨化處理要求呈現至要求選擇器124,且在要求選擇器循環之末期,要求選 擇器124在記憶體匯流排107上發出一選自讀取要求及兩個淨化處理要求之選定要求(圖5)。
衝突佇列129知道何時將每一要求發出至記憶體108及將每一要求發出至哪一記憶體階層112及記憶體庫111。此外,衝突佇列129知道每一要求將佔據要求所發出至之記憶體階層112及記憶體庫111的持續時間,且將防止要求選擇器124將後續要求發出至彼記憶體階層112及記憶體庫111,直至彼記憶體階層及記憶體庫再次可用。
記憶體控制器106包含ECC(錯誤檢查及校正)120,其將校正具有自記憶體108所讀取之錯誤的第一數目之位元,且將偵測具有自記憶體108所讀取之錯誤的第二數目之位元。ECC 120確保在匯流排105上發送回至處理器102之所有資料皆正確,或在ECC 120不能夠校正自記憶體108所讀取之資料時信號傳輸錯誤。在將在對淨化處理要求所進行之讀取期間所讀取的資料重新寫入至記憶體108中之前,在淨化處理期間亦使用ECC 120來校正資料中之錯誤中之任何可校正位元。在淨化處理期間,淨化處理控制器125記住已偵測到何記憶體階層及記憶體庫。來自特定位置之重複錯誤由淨化處理控制器125識別,且可指示記憶體108中可能為有故障資料位元、有故障導線、有故障驅動器或有故障接收器之有缺陷位置。
淨化處理控制器125可包含以下各項中之一些或全部:時刻210、淨化處理優先化器212、淨化處理狀態214及工作負載監視器216,現在將介紹其中之每一者,且稍後將對其進 行更詳細地描述。
淨化處理控制器125可包含時刻210(諸如,時鐘或對電腦系統100中其他處之時鐘之存取)。在基於記憶體工作負載之預定估計來調整淨化處理速率的記憶體控制器106之實施例中使用時刻210。
淨化處理控制器125可包含工作負載監視器216,其監視記憶體系統108之繁忙程度,且淨化處理控制器125相應地調整淨化處理速率。
淨化處理控制器125包含淨化處理狀態214,其中可保留在記憶體108中、在每一記憶體階層112中及/或在每一記憶體階層112之每一記憶體庫111中所淨化處理的記憶體之分率。
淨化處理控制器125包含淨化處理優先化器212,其將一或多個淨化處理要求發出至要求選擇器124。
現參看圖6A至圖6D,更詳細地展示淨化處理狀態214。圖6A將淨化處理狀態214展示成包括記憶體狀態173及對於記憶體108中之每一記憶體階層的記憶體階層狀態181。
圖6B中更詳細地展示記憶體狀態173。記憶體總數174含有對於整個記憶體108的在淨化處理週期期間必須執行之淨化處理之總數目之值。所淨化處理之記憶體175在淨化處理週期之開始時經重設,且每當伺服淨化處理要求時經遞增。所淨化處理的總記憶體之百分比為所淨化處理之記憶體175除以記憶體總數174。淨化處理間隔176維持可用以指定第一淨化處理子間隔133(圖4B)的第一淨化處理子間隔 177之持續時間之值及可用以指定第二淨化處理子間隔134(圖4B)的第二淨化處理子間隔178之持續時間之值。如較早先所解釋,可調整第一淨化處理子間隔及第二淨化處理子間隔之持續時間以增加或減小淨化處理速率。當記憶體狀態173由其自身使用時(無以下待描述之額外"由記憶體階層"及/或"由記憶體庫"),可調整淨化處理速率,但僅在記憶體108中之全域基礎上。
圖6C展示記憶體階層狀態181之一實施例。在淨化處理狀態214使用記憶體階層狀態181之實施例中,淨化處理進程由記憶體階層維持,其有用於將落後的記憶體階層優先化。舉例而言,若記憶體階層1120 經80%淨化處理,但記憶體階層1123 僅經40%淨化處理,則應相對於記憶體階層1120 之淨化處理速率而增加記憶體階層1123 之淨化處理速率。記憶體階層總數184含有必須伺服以完成記憶體階層之淨化處理的淨化處理要求之總數目。所淨化處理之記憶體階層185在淨化處理週期之開始時經重設,且每當伺服對於記憶體階層之淨化處理要求時經遞增。記憶體階層中所完成的淨化處理之百分比為所淨化處理之記憶體階層185值除以記憶體階層總數184值。淨化處理間隔186含有用於對瞬時記憶體階層所進行之淨化處理要求的如以上所描述可用以控制第一淨化處理子間隔133及第二淨化處理子間隔134之持續時間的第一淨化處理子間隔187及第二淨化處理子間隔188。記憶體階層狀態181可進一步包含許多記憶體庫狀態183,其可用以藉由記憶體階層112內之記憶體庫111來 控制淨化處理速率。
圖6D展示記憶體庫狀態183之方塊圖。記憶體庫狀態183包含記憶體庫總數194,其含有在淨化處理週期內必須進行的淨化處理之總數目。所淨化處理之記憶體庫195在淨化處理週期之開始時經重設,且每當伺服對於彼記憶體庫之淨化處理要求時經遞增。對於彼記憶體庫所完成的淨化處理之百分比為所淨化處理之記憶體庫195與記憶體庫總數194之比率。淨化處理間隔196含有第一淨化處理子間隔197及第二淨化處理子間隔198,其可如所描述與以上其他第一子間隔及第二子間隔一起用以增加或減小彼記憶體庫之淨化處理速率。
以上論述已描述可總體上控制記憶體108之淨化處理速率的實施例;藉由記憶體階層112或藉由每一記憶體階層112中之記憶體庫111。
圖7中展示工作負載監視器216。工作負載監視器216提供記憶體108繁忙程度之指示。圖7展示工作負載監視器216,其使用讀取佇列之滿度161來判定讀取佇列121之滿程度且使用寫入佇列之滿度162來判定寫入佇列123之滿程度。讀取佇列之滿度161記住讀取佇列121所具有的項數相對於讀取佇列121之容量。如圖5所示,讀取佇列121具有儲存"n"個要求之空間。零個要求至"n"個要求之值指示在讀取佇列121中現存的讀取要求之數目。若讀取佇列121已滿或幾乎滿(如由讀取佇列之滿度161所指示),則記憶體108很繁忙。類似地,寫入佇列123經展示成具有用於"m"個項之空間, 且零至"m"之值指示當前在寫入佇列123中存在的項之數目。寫入佇列之滿度162以某一方式(例如,最大容量之分率)指示寫入佇列123在一給定時間之滿程度。若讀取佇列121及寫入佇列123相對為空(例如,每一者為四分之一或更小滿),則記憶體系統108具有相對較低記憶體工作負載,且工作負載判定器163在淨化處理優先權164上報告此情形。淨化處理優先權164可為單個位元(例如,"0"為"不繁忙",且"1"為"繁忙"),或可包含複數個位元以僅指示記憶體工作負載在一給定時間為輕或重之程度。一般而言,隨著讀取佇列之滿度161及寫入佇列之滿度162報告增加的滿度,淨化處理優先權164報告記憶體工作負載正增加,且淨化處理速率相應地減小(例如,藉由淨化處理控制器125增加一或多個淨化處理間隔、調整一或多個第一淨化處理子間隔與其各別第二淨化處理間隔之比率或甚至消除一或多個第二淨化處理子間隔)。
或者,可直接將淨化處理優先權164應用至要求選擇器124。舉例而言,採用兩位元淨化處理優先權164,其中"00"意謂記憶體工作負載"不很繁忙",且"11"意謂記憶體工作負載很高,當淨化處理優先權164為"00"時,要求選擇器124可發出淨化處理要求(即使淨化處理要求影響三個讀取要求之延時)。若淨化處理優先權164為"01",則要求選擇器124可發出淨化處理要求(即使淨化處理要求影響兩個讀取要求之延時)。若淨化處理優先權為"10",則要求選擇器124可發出淨化處理要求(若淨化處理要求影響一個讀取要求 之延時)。若淨化處理優先權為"11",則要求選擇器將不發出淨化處理要求(若如此進行,則將影響一讀取要求之延時)。如較早先所描述,以較低優先權來處置寫入要求,至少直至寫入佇列開始變得相當滿。
當記憶體工作負載輕時允許淨化處理要求增加讀取要求(或可能地,寫入要求)之延時為可接受的,因為當記憶體工作負載重時所進行之彼同一讀取要求通常將必須在伺服彼讀取要求之前等待許多其他讀取要求。因此,等待一或預定數目之淨化處理要求不會使超出彼讀取要求在重記憶體工作負載之時間期間將招致之延時的讀取要求延時慢。可在即將發生的讀取要求之前伺服的淨化處理要求之預定數目可(例如)等於新淨化處理要求在重記憶體工作負載時間期間將期望等待的讀取要求之平均數目。
如所描述,可在一或多個讀取要求之前伺服在記憶體工作負載輕時之週期期間的淨化處理要求,而在重記憶體工作負載之週期期間,伺服淨化處理要求而非讀取要求會減少電腦100之輸送量。此外,若在淨化處理週期接近結束時淨化處理進程在"後",則必須增加淨化處理速率,以便在淨化處理週期之末期之前完成淨化處理。因此,淨化處理優先化器212有利地包括記憶體工作負載及"前131"或"後132"兩者,以及在淨化處理週期中留有的時間之量以判定淨化處理速率。因此詳述以上具有兩位元淨化處理優先權164以包括工作負載及量"前131"或"後132"資訊連同在淨化處理週期中留有的時間之實例,考慮下一段落之實例。
再次,採用兩位元淨化處理優先權164。對於淨化處理週期之第一半,當淨化處理優先權為"00"、"01"、"10"及"11"時淨化處理要求相對於讀取(或可能地,寫入)要求之處理如同在以上實例中。對於淨化處理週期之下一四分之一(亦即,淨化處理週期為50%與75%之間的完成),若淨化處理進程在"後",則必須給出較多優先權。當淨化處理優先權164為"00"時,要求選擇器124可發出淨化處理要求(即使淨化處理要求影響兩個讀取要求之延時)。當淨化處理優先權為"01"時,要求選擇器124可發出淨化處理要求(若伺服淨化處理要求會影響五個或五個以下讀取(寫入)要求之延時)。當淨化處理優先權為"10"時,要求選擇器124可發出淨化處理要求(若伺服淨化處理要求會影響三個或三個以下讀取(寫入)要求之延時)。當淨化處理優先權為"11"時,要求選擇器124可發出淨化處理要求(若伺服淨化處理要求會影響一或零個讀取(寫入)要求)。在淨化處理週期之最後四分之一期間,若淨化處理進程在"後",則必須對淨化處理速率給出相對較高優先權,以便在淨化處理週期之末期之前完成淨化處理。舉例而言,當淨化處理優先權為"00"時,要求選擇器124可發出淨化處理要求(若伺服淨化處理要求會影響十六個或十六個以下讀取(寫入)要求)。當淨化處理優先權為"01"時,要求選擇器124可發出淨化處理要求(即使伺服淨化處理要求會影響十二個或十二個以下讀取(寫入)要求)。當淨化處理優先權為"10"時,要求選擇器124可發出淨化處理要求(即使伺服淨化處理要求會影響八個或八下以 下讀取(寫入)要求)。當淨化處理優先權為"11"時,要求選擇器124可發出淨化處理要求(即使伺服淨化處理要求會影響四個或四個以下讀取(寫入)要求)。淨化處理優先化器212亦可使用當前淨化處理進程滯"後"於期望進程的遠之程度之值以對淨化處理優先化。若淨化處理進程(例如)僅1%"落後"於期望進程,則不必施行顯著的淨化處理速率增加,直至在淨化處理週期中很落後。
現參看圖5,淨化處理優先化器212一次發送一或多個淨化處理要求至要求選擇器124。如較早先所描述,發送複數個同時要求會提高可伺服淨化處理要求中之至少一者而不影響讀取(或可能地,寫入)延時之機率(即使當記憶體工作負載相對較高時)。此外,亦如較早先所描述,自多個記憶體階層112發送淨化處理要求會增加比在第二記憶體階層上開始淨化處理之前在第一記憶體階層中完成所有淨化處理早地發現驅動器、接收器或互連之間題的機率。在一實施例中,淨化處理優先化器212僅使用淨化處理狀態214,且發送一或多個淨化處理要求,連同對應第一淨化處理子間隔及第二淨化處理子間隔之持續時間。在第二實施例中,淨化處理優先化器與對應第一淨化處理子間隔及第二淨化處理子間隔一起發送對於每一記憶體階層112之淨化處理要求,此有助於確保無記憶體階層112被允許顯著地滯後於其他記憶體階層。舉例而言,假設第一記憶體階層112含有必須被淨化處理之一百萬個快取線,且第二記憶體階層僅含有必須被淨化處理之256,000個快取線。如以上所解 釋,每一記憶體階層112具有與其所執行的淨化處理之百分比成比例之淨化處理速率。若在一時間內第一記憶體階層112與第二記憶體階層112具有相等數目之所執行的淨化處理,則作為所執行的淨化處理之百分比,第一記憶體階層112將落後。接著將對第一記憶體階層給出較高淨化處理速率(例如,藉由縮短對於第一記憶體階層112之淨化處理間隔130,或藉由相對地增加對於第一記憶體階層112之第二淨化處理間隔134),以便伺服對於第一記憶體階層112之較多淨化處理要求。或者,在注意到第一記憶體階層112在百分比基礎上"落後"後,淨化處理優先化器212便發出對於第一記憶體階層112之多個記憶體庫111之淨化處理要求且僅發出對於第二記憶體階層112之一個(或無)淨化處理要求。
圖8展示本發明之方法實施例700的高級流程圖。方法700始於步驟702。在步驟704中,判定淨化處理遲緩值。若淨化處理遲緩值為"正",則淨化處理"提前排程",亦即,在圖4A中表示為前131之區域中。若淨化處理遲緩值為"負",則淨化處理"落後排程",亦即,在圖4A中表示為後132之區域中。在步驟706中,判定記憶體工作負載,其指示記憶體是否當前很忙於處置已由處理器發出的對於讀取(及可能地,寫入)之要求。在步驟708中,使用淨化處理遲緩值及記憶體工作負載來調整淨化處理速率。若記憶體工作負載相對較低,則必要時藉由使淨化處理要求比某一數目之讀取(及可能地,寫入)要求優先來增加淨化處理速率。若記憶體工作負載相對較高,則減小淨化處理速率,其允許極少 數(若有)淨化處理要求將延時添加至讀取(或可能地,寫入)要求。類似地,若淨化處理遲緩值開始變得愈來愈負,則增加淨化處理速率以"趕上",使得將在淨化處理週期期間淨化處理整個記憶體。可動態地量測記憶體工作負載,或可將記憶體工作負載之估計儲存於系統中,例如,如較早先所描述,按時刻。
圖9為提供圖8之步驟704之更詳細步驟的流程圖。
步驟710開始步驟704之更詳細實施例。步驟712判定在電腦之總記憶體中、在記憶體階層中或在記憶體庫中待淨化處理之總記憶體(資料區塊之數目,例如,快取線)。
步驟714判定在一淨化處理週期中已經淨化處理的待淨化處理之總記憶體之分率(百分比)。舉例而言,若需要一百萬次淨化處理來完全淨化處理一記憶體且已執行500,000次淨化處理,則已完成對於記憶體之50%的淨化處理。
步驟716判定已消逝的淨化處理週期之分率(百分比)。舉例而言,若淨化處理週期為二十四小時且自從淨化處理週期之開始已消逝六小時,則淨化處理週期經25%完成。
步驟718藉由自已完成的淨化處理之分率減去已消逝的淨化處理週期之分率來判定淨化處理遲緩值。舉例而言,若淨化處理為0.75完成且淨化處理週期為0.50完成,則淨化處理遲緩為正0.25。
當然,淨化處理遲緩值之其他實施為可能的。舉例而言,將完成的淨化處理之分率除以完成的淨化處理週期之分率。藉由使用以上例示性分率,0.75/0.50=1.50。在此情況 下,恰好地處於圖4A之期望進程線上將具有值一,而非由減法產生的"正"或"負"遲緩。在"前"將比一大;在"後"將比一小。
步驟719完成判定淨化處理遲緩的步驟704之擴展方法。
圖10A更詳細地展示步驟706(圖8)之第一實施例,其在圖10A中表示為706A,其始於步驟720。在步驟722中,進行讀取佇列之滿度的量測。舉例而言,若讀取佇列具有32個讀取要求位置且當前保持四個讀取要求,則讀取佇列為八分之一滿。步驟724類似地判定寫入佇列之滿度。步驟726類似地判定在具有衝突佇列之實施中衝突佇列之滿度。步驟728使用讀取佇列、寫入佇列及衝突佇列滿度之值來判定記憶體工作負載。若彼等佇列中之一或多者滿或幾乎滿,則記憶體工作負載很重;若彼等佇列中之全部皆空或幾乎空,則記憶體工作負載相對較輕。步驟729完成步驟706之擴展方法。
圖10B提供步驟706(圖8)之第二實施例,其在圖10B中表示為706B。步驟730開始方法706B。在步驟732中,藉由讀取時刻鐘來判定時刻。在步驟734中,藉由使用在步驟732中所判定之時刻及儲存於電腦系統中的記憶體工作負載之預定估計來判定記憶體工作負載,例如,以工作負載需求相對於時間之表或等式的方式。步驟739結束方法706B。
圖11為調整淨化處理速率的步驟708(圖8)之擴展。方法708始於步驟750。
在步驟752中,使用記憶體工作負載及淨化處理遲緩值來 調整淨化處理間隔之持續時間。舉例而言,若淨化處理遲緩值指示淨化處理當前在"後",則使淨化處理間隔較短,使得在給定時間量中考慮較多淨化處理要求,且執行第二淨化處理子間隔之更多情況,其中以讀取要求(或可能地,寫入要求)延時為代價而強行淨化處理。
在步驟754中,變化淨化處理間隔至第一淨化處理子間隔及第二淨化處理子間隔內之分配。若第二淨化處理子間隔相對較長,則增加在讀取要求(或可能地,寫入要求)內將選擇淨化處理要求之可能性。
在步驟756中,藉由要求選擇器(諸如,圖5所示之要求選擇器124)來接收一或多個淨化處理要求。有利地,藉由要求選擇器來接收複數個淨化處理要求(針對不同記憶體階層及/或記憶體庫),以便可發現可在不影響讀取(或可能地,寫入)要求之延時的情況下所伺服之至少一淨化處理要求。
在步驟758中,要求選擇器判定是否可在不影響讀取(或可能地,寫入)要求之情況下伺服淨化處理要求。若如此,則在步驟762中伺服淨化處理要求;若不,則步驟760判定淨化處理需求週期(亦即,第二淨化處理子間隔)是否現用。若如此,則藉由步驟762來伺服淨化處理要求;若不,則伺服讀取要求(或可能地,寫入要求)。應注意,為了解釋起見而簡化圖11之方法708。如較早先所解釋,視工作負載及淨化處理遲緩而定,若記憶體工作負載很輕,則步驟758可分支至步驟762以伺服淨化處理要求(即使一或多個讀取(或可 能地,寫入)要求即將發生)。
100‧‧‧電腦系統/電腦
102‧‧‧處理器
105‧‧‧處理器匯流排
106‧‧‧記憶體控制器
107‧‧‧記憶體匯流排
108‧‧‧記憶體
110‧‧‧記憶體晶片
1100 ‧‧‧記憶體晶片
110n-1 ‧‧‧記憶體晶片
111a‧‧‧記憶體庫
111b‧‧‧記憶體庫
111c‧‧‧記憶體庫
111d‧‧‧記憶體庫
1120 ‧‧‧記憶體階層
112m-1 ‧‧‧記憶體階層
120‧‧‧ECC(錯誤檢查及校正)
121‧‧‧讀取佇列
123‧‧‧寫入佇列
124‧‧‧要求選擇器
125‧‧‧淨化處理控制器
129‧‧‧衝突佇列
130‧‧‧淨化處理間隔
131‧‧‧前
132‧‧‧後
133‧‧‧第一淨化處理子間隔
134‧‧‧第二淨化處理子間隔
135‧‧‧淨化處理需求開始
161‧‧‧讀取佇列之滿度
162‧‧‧寫入佇列之滿度
163‧‧‧工作負載判定器
164‧‧‧淨化處理優先權
173‧‧‧記憶體狀態
174‧‧‧記憶體總數
175‧‧‧所淨化處理之記憶體
176‧‧‧淨化處理間隔
177‧‧‧第一淨化處理子間隔
178‧‧‧第二淨化處理子間隔
181‧‧‧記憶體階層狀態
183‧‧‧記憶體庫狀態
184‧‧‧記憶體階層總數
185‧‧‧所淨化處理之記憶體階層
186‧‧‧淨化處理間隔
187‧‧‧第一淨化處理子間隔
188‧‧‧第二淨化處理子間隔
194‧‧‧記憶體庫總數
195‧‧‧所淨化處理之記憶體庫
196‧‧‧淨化處理間隔
197‧‧‧第一淨化處理子間隔
198‧‧‧第二淨化處理子間隔
210‧‧‧時刻
212‧‧‧淨化處理優先化器
214‧‧‧淨化處理狀態
216‧‧‧工作負載監視器
圖1展示包含處理器、記憶體控制器及一或多個記憶體階層之電腦系統的方塊圖。
圖2展示包含由圖1之電腦系統所使用之一或多個記憶體庫之記憶體晶片的方塊圖。
圖3A及圖3B為說明在預定淨化處理週期內維持淨化處理進程之習知記憶體控制器之操作的先前技術圖式。
圖4A至圖4D展示本發明之實施例如何在相對較輕記憶體工作負載週期期間提供伺服較多淨化處理要求及在相對較重記憶體工作負載週期期間提供伺服較少淨化處理要求。
圖5為適合於在圖1之電腦系統中使用之記憶體控制器的方塊圖。
圖6A至圖6D展示各種記憶體淨化處理狀態方塊圖。
圖7為適合於在記憶體控制器中使用之工作負載監視器實施例的方塊圖。
圖8為說明視記憶體工作負載而調整伺服淨化處理要求之速率的高級流程圖。
圖9為說明如何判定淨化處理遲緩之值的流程圖。
圖10A及圖10B為展示如何判定記憶體工作負載之流程圖。
圖11為展示使用記憶體需求及淨化處理遲緩資訊來伺服淨化處理要求之速率之調整的流程圖。
105‧‧‧處理器匯流排
106‧‧‧記憶體控制器
107‧‧‧記憶體匯流排
121‧‧‧讀取佇列
123‧‧‧寫入佇列
124‧‧‧要求選擇器
125‧‧‧淨化處理控制器
129‧‧‧衝突佇列
210‧‧‧時刻
212‧‧‧淨化處理優先化器
214‧‧‧淨化處理狀態
216‧‧‧工作負載監視器

Claims (9)

  1. 一種用於淨化處理一電腦系統中之一記憶體之方法,其包含以下步驟:判定一淨化處理遲緩值;判定一記憶體工作負載;依據該淨化處理遲緩值及該記憶體工作負載來調整一淨化處理速率;當該記憶體工作負載處於一第一記憶體工作負載值且該淨化處理遲緩處於一第一淨化處理遲緩值時,將該淨化處理速率調整為處於一第一淨化處理速率;當該記憶體工作負載處於一比該第一工作負載值大的第二記憶體工作負載值且該淨化處理遲緩處於該第一值時,將該淨化處理速率調整為處於一比該第一淨化處理速率小的第二淨化處理速率;及當該記憶體工作負載處於該第一記憶體工作負載值且該淨化處理遲緩處於一比該第一淨化處理遲緩值小的第二淨化處理遲緩值時,將該淨化處理速率調整為處於一比該第一淨化處理速率大的第三淨化處理速率。
  2. 如請求項1之方法,判定該淨化處理遲緩值之該步驟進一步包含以下步驟:判定必須淨化處理所有記憶體期間之一淨化處理週期;判定在該淨化處理週期內必須執行的淨化處理之總數目; 週期性地判定已淨化處理該記憶體的量;判定淨化處理該記憶體之一期望進程;及藉由比較已淨化處理該記憶體的量與淨化處理該記憶體之該期望進程來判定該淨化處理遲緩值。
  3. 如請求項2之方法,調整該淨化處理速率之該步驟進一步包含以下步驟:若淨化處理狀態滯後於該期望進程且一當前時間在該淨化處理週期之一末期附近,則增加該淨化處理速率。
  4. 如請求項1之方法,其進一步包含以下步驟:當該記憶體工作負載處於一第三記憶體工作負載值且該淨化處理遲緩處於一第三淨化處理遲緩值,該第三淨化處理遲緩值指示淨化處理進程滯後於該期望淨化處理進程,且一當前時間處於一第一時間值時,將該淨化處理速率調整為處於一第四淨化處理速率;及當該記憶體工作負載處於該第三記憶體工作負載值、該淨化處理遲緩處於該第三淨化處理遲緩值且該當前時間處於一第二時間值時,將該淨化處理速率調整為處於一比該第四淨化處理速率大之第五淨化處理速率,該第二時間值比該第一時間值靠近該淨化處理週期之一末期。
  5. 如請求項1之方法,判定一記憶體工作負載之該步驟進一步包含:判定一讀取佇列之一滿度之步驟。
  6. 如請求項1之方法,依據該淨化處理遲緩值及該記憶體工作負載來調整該淨化處理速率之該步驟進一步包含:調 整一淨化處理間隔持續時間之步驟。
  7. 如請求項1之方法,依據該淨化處理遲緩值及該記憶體工作負載來調整該淨化處理速率之該步驟進一步包含:改變介於對淨化處理要求給出相對於讀取要求之一第一優先權期間的一第一淨化處理子間隔與對淨化處理要求給出相對於讀取要求之比該第一優先權高之一第二優先權期間的一第二淨化處理子間隔之間的一分配之步驟。
  8. 一種電腦系統,其包含:一處理器,其經組態以發出讀取要求及寫入要求;一記憶體;及一記憶體控制器,其經組態以接收該等讀取要求及該等寫入要求,且經進一步組態以藉由控制至該記憶體之讀取及寫入來伺服該等讀取要求及該等寫入要求,該記憶體控制器進一步包含:一淨化處理控制器,其經組態以在一淨化處理週期期間淨化處理該整個記憶體;其中該淨化處理控制器經組態以視一記憶體工作負載及一淨化處理遲緩而調整一淨化處理速率;當該記憶體工作負載處於一第一記憶體工作負載值且該淨化處理遲緩處於一第一淨化處理遲緩值時,將該淨化處理速率調整為處於一第一淨化處理速率;當該記憶體工作負載處於一比該第一工作負載值大的第二記憶體工作負載值且該淨化處理遲緩處於該第一值時,將該淨化處理速率調整為處於一比該第一淨化處 理速率小的第二淨化處理速率;及當該記憶體工作負載處於該第一記憶體工作負載值且該淨化處理遲緩處於一比該第一淨化處理遲緩值小的第二淨化處理遲緩值時,將該淨化處理速率調整為處於一比該第一淨化處理速率大的第三淨化處理速率。
  9. 如請求項8之電腦系統,其中該淨化處理控制器經進一步組態以:當該記憶體工作負載處於一第三記憶體工作負載值且該淨化處理遲緩處於一第三淨化處理遲緩值,該第三淨化處理遲緩值指示淨化處理進程滯後於期望淨化處理進程,且一當前時間處於一第一時間值時,將該淨化處理速率調整為處於一第四淨化處理速率;及當該記憶體工作負載處於該第三記憶體工作負載值、該淨化處理遲緩處於該第三淨化處理遲緩值且該當前時間處於一第二時間值時,將該淨化處理速率調整為處於一比該第四淨化處理速率大之第五淨化處理速率,該第二時間值比該第一時間值靠近該淨化處理週期之一末期。
TW097133776A 2007-09-07 2008-09-03 電腦系統及用於淨化處理其中之記憶體之方法 TWI448964B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/851,458 US7882323B2 (en) 2007-09-07 2007-09-07 Scheduling of background scrub commands to reduce high workload memory request latency

Publications (2)

Publication Number Publication Date
TW200921507A TW200921507A (en) 2009-05-16
TWI448964B true TWI448964B (zh) 2014-08-11

Family

ID=40433153

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097133776A TWI448964B (zh) 2007-09-07 2008-09-03 電腦系統及用於淨化處理其中之記憶體之方法

Country Status (2)

Country Link
US (1) US7882323B2 (zh)
TW (1) TWI448964B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4606455B2 (ja) * 2007-12-20 2011-01-05 富士通株式会社 ストレージ管理装置、ストレージ管理プログラムおよびストレージシステム
US8429464B2 (en) 2009-11-12 2013-04-23 Bally Gaming, Inc. Background memory validation for gaming devices
US8407191B1 (en) * 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
AT510381B1 (de) * 2010-08-05 2017-03-15 Siemens Ag Oesterreich Speicherkontrollelement und zugehöriges konfigurationsverfahren
US9081719B2 (en) * 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Selective memory scrubbing based on data type
US9081693B2 (en) * 2012-08-17 2015-07-14 Freescale Semiconductor, Inc. Data type dependent memory scrubbing
US9141552B2 (en) 2012-08-17 2015-09-22 Freescale Semiconductor, Inc. Memory using voltage to improve reliability for certain data types
US9141451B2 (en) 2013-01-08 2015-09-22 Freescale Semiconductor, Inc. Memory having improved reliability for certain data types
US9026869B1 (en) 2012-11-01 2015-05-05 Amazon Technologies, Inc. Importance-based data storage verification
US9454451B2 (en) * 2013-02-11 2016-09-27 Arm Limited Apparatus and method for performing data scrubbing on a memory device
US9824004B2 (en) * 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US9213595B2 (en) * 2013-10-15 2015-12-15 International Business Machines Corporation Handling errors in ternary content addressable memories
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US9811415B2 (en) * 2014-03-31 2017-11-07 Symbol Technologies, Llc Apparatus and method for detecting and correcting read disturb errors on a flash memory
US9823962B2 (en) 2015-04-22 2017-11-21 Nxp Usa, Inc. Soft error detection in a memory system
US9864653B2 (en) 2015-07-30 2018-01-09 International Business Machines Corporation Memory scrubbing in a mirrored memory system to reduce system power consumption
KR20170136382A (ko) * 2016-06-01 2017-12-11 주식회사 맴레이 메모리 컨트롤러, 그리고 이를 포함하는 메모리 모듈 및 프로세서
US10013192B2 (en) 2016-08-17 2018-07-03 Nxp Usa, Inc. Soft error detection in a memory system
US10310935B2 (en) 2016-11-17 2019-06-04 International Business Machines Corporation Dynamically restoring disks based on array properties
US11334457B1 (en) 2019-06-27 2022-05-17 Samsung Electronics Co., Ltd. Semiconductor memory device and memory system including the same
CN111046091B (zh) * 2019-10-24 2023-12-08 杭州数梦工场科技有限公司 数据交换系统的运行方法、装置及设备
US11907573B2 (en) * 2021-06-21 2024-02-20 Western Digital Technologies, Inc. Performing background operations during host read in solid state memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5632012A (en) * 1993-11-24 1997-05-20 Storage Technology Corporation Disk scrubbing system
TW413755B (en) * 1997-11-26 2000-12-01 Intel Corp Method and apparatus for automatically correcting errors detected in a memory subsystem
TW200532695A (en) * 2003-10-03 2005-10-01 Sandisk Corp Flash memory data correction and scrub techniques
US20050273646A1 (en) * 2004-06-03 2005-12-08 International Business Machines Corporation Memory controller and method for scrubbing memory without using explicit atomic operations

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832340B2 (en) * 2000-01-26 2004-12-14 Hewlett-Packard Development Company, L.P. Real-time hardware memory scrubbing
US7137038B2 (en) * 2003-07-29 2006-11-14 Hitachi Global Storage Technologies Netherlands, B.V. System and method for autonomous data scrubbing in a hard disk drive

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5632012A (en) * 1993-11-24 1997-05-20 Storage Technology Corporation Disk scrubbing system
TW413755B (en) * 1997-11-26 2000-12-01 Intel Corp Method and apparatus for automatically correcting errors detected in a memory subsystem
TW200532695A (en) * 2003-10-03 2005-10-01 Sandisk Corp Flash memory data correction and scrub techniques
US20050273646A1 (en) * 2004-06-03 2005-12-08 International Business Machines Corporation Memory controller and method for scrubbing memory without using explicit atomic operations

Also Published As

Publication number Publication date
US7882323B2 (en) 2011-02-01
TW200921507A (en) 2009-05-16
US20090070647A1 (en) 2009-03-12

Similar Documents

Publication Publication Date Title
TWI448964B (zh) 電腦系統及用於淨化處理其中之記憶體之方法
US7882314B2 (en) Efficient scheduling of background scrub commands
TWI536268B (zh) 記憶體排程之方法、系統及裝置
JP6592305B2 (ja) メモリ装置及びメモリモジュール
KR102460513B1 (ko) 통합 패키지 후 복구
KR100619806B1 (ko) 디스크 콘트롤러 메모리에 접속을 중개하기 위한 중개방법및 시스템
EP0614142B1 (en) System and method for detecting and correcting memory errors
JP5430484B2 (ja) 半導体記憶装置、及びその制御方法
WO2018013584A1 (en) Ddr memory error recovery
KR20060081928A (ko) 반도체 디스크 제어 장치
US11561862B2 (en) Refresh management for DRAM
CN103765522A (zh) 排特定的循环冗余校验
US11609817B2 (en) Low latency availability in degraded redundant array of independent memory
TW202223903A (zh) 適應性內部記憶體錯誤刷洗及錯誤處置
US8464007B2 (en) Systems and methods for read/write phase request servicing
JP2023521249A (ja) Dramのリフレッシュ管理
US11520659B2 (en) Refresh-hiding memory system staggered refresh
US8230276B2 (en) Writing to memory using adaptive write techniques
US8386739B2 (en) Writing to memory using shared address buses
US11404105B2 (en) Write disturb refresh rate reduction using write history buffer
EP3553662A1 (en) Intergral post package repair
KR100666162B1 (ko) 위성의 대용량메모리 제어모듈

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees