TW200921507A - Scheduling of background scrub commands to reduce high workload memory request latency - Google Patents
Scheduling of background scrub commands to reduce high workload memory request latency Download PDFInfo
- Publication number
- TW200921507A TW200921507A TW097133776A TW97133776A TW200921507A TW 200921507 A TW200921507 A TW 200921507A TW 097133776 A TW097133776 A TW 097133776A TW 97133776 A TW97133776 A TW 97133776A TW 200921507 A TW200921507 A TW 200921507A
- Authority
- TW
- Taiwan
- Prior art keywords
- purification
- memory
- processing
- purification processing
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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/106—Correcting 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)
Abstract
Description
200921507 九、發明說明: 【發明所屬之技術領域】 本發明大體係關於電腦系統中之記憶體控制器。更特定 &之’本發明係關於有效率地排程淨化處理命令。 本申請案係關於: 2007年--申請之美國申請案序號_(代理人案號 ROC920070424US1),其標題為五办七化价&心办"叹^ Background Scrub Commands 〇 【先前技術】 現代的電腦系統包含記憶體及記憶體控制器。在諸如 DRAM(動態隨機存取記憶體)或SRAM(靜態隨機存取記憶 體)之記憶體中,儲存於記憶體中之資料可(例如)因一或多 個形式之輻射而變得被破壞。此破壞常常將其自身呈現為 "軟性錯誤"。舉例而言,可將所讀取的資料區塊(諸如,所 讀取的快取線)中之單個位元讀取作為”〇”,而已將單個位元 寫入作為"1 ”。在將資料區塊傳遞至處理器之前,最現代的 電腦系統使用錯誤校正碼(ECC)電路來校正單個位元錯誤 (SBE> SBE可為永久錯誤(記憶體或至記憶體之互連中之實 體錯誤),或SBE可為"軟性錯誤”。 些現代的電腦系統能夠校正所讀取的資料區塊中之一 個以上錯誤。為了解釋之簡單起見,將按照校正單個位元 錯誤來描述本文中之Ecc電路,但本發明不限於具有僅校 正單個位元錯誤之ECC電路的電腦系統。 常常藉由淨化處理來校正記憶體中之軟性錯誤。淨化處 133927.doc 200921507 理指代週期性地或以其他方式讀取資料、校正任何可校正 :誤且將經校正資料寫入回至記憶體。淨化處理對於防止 早個位元軟性錯誤隨時間而變為ECC電路不能夠校正之多 位元錯誤而言為重要的。 舉例而言’假設ECC電路㈣校正咖,且在特定快取線 中出現第-軟性錯誤。Ecc電路能夠校正咖且將校正資料 發4至處理g。另夕卜’假設使第_軟性錯誤未經校正且 在一時間週期之後’在特定快取線中出現第二錯誤(硬性或 軟陡錯$)。硬性’,錯誤為永久錯誤,例如,斷開的信號連 接器或失敗的驅動器或接收器。ECC電路不能夠校正具有 日誤之!夬取線’且報告錯誤已被偵測,但不能被校正, 此很可能導致要求較快取線之任務的終止, 電腦系統之重新啟動。 而要 因此’為了減小不可校正多位元錯誤之可能性,在—指 定淨化處理週期内淨化處理記憶體。舉例而言,可在二 四小時淨化處理週期内淨化處理電腦线之整個記 指定記憶體可靠性速率依在指定週期中淨化處 體之完成而定。 己隐 一記憶體控制器判定連接至記憶體控制器的記憶體 定在淨化處理週期(例如,一天)期間淨化處理整個記 必須伺服淨化處理要求的量’且將淨化處 化處理間隔。 刀牧為淨 記憶體控制H按序通過所需之全部數目的淨化處理,— 人個淨化處理命令,其需要在每一淨化處理間隔期間飼 133927.doc 200921507 服一淨化處理。 =術圖3Α及圖3Β,在一特定淨化處理間隔之 由产^ 隔期間,若伺服淨化處理命令不會影響 二 =所發出之正常讀取命令(或在—些情況下,寫入命 二丨:如此進行。若在特定淨化處理間隔之第一淨化處 仏』間尚未飼服淨化處理命令 子間隨如卩日 、』在第一夺化處理 隔期間,淨化處理要求逐步上升 此時,推遲正常命令流(由處理器所求’在 以有利於淨化處理需求’祠服淨化#理服°取及寫入) 正常命令流。需求淨化處理減少電腦系=二著恢復 其增加讀取及寫入要求之延==之輸送量,因為 此以繪^ Μ起處理n等待資料。 内進^ 聊。在圖辦,在淨化處理週期 的,二♦匕處理之進程在淨化處理週期(為了例示性目 ί 需求工作㊣週期為一天)之過程内經展示為直線。記憶體 貞载經展示成在約8 am時增加、保持相對較高直 體=帅,且接著逐漸減少。在時❹及時間⑽間,記憶 :工作負載相對較輕。在時軸間’記憶體需求工作 理子Η目Γ較重’且常常出現在淨化處理間隔之第一淨化處 ^期間不能伺服淨化處理要求。為了保持直線”進程”, 理需錢處理間隔之第二淨化處理子間隔中施行淨化處 此弓1起祠服淨化處理要求,而由處理器所發出之 讀取要求及寫入要求等候。 【發明内容】 在本發明之一實施例中,判定淨化處理遲緩(Slack)值。 133927.doc 200921507 淨化處理遲緩值指示在一給定時 弋f間淨化處理進程在期望淨 化處理進程之前還是之後。按時刻藉由動態地量測工作負 載或藉由使用記憶體工作負载之預定估計來判定記憶體工 作負載。記憶體工作負載可藉由在記憶體控制器中寫入仔 列或讀取仵列之滿度_ness)之觀測來動態地判定,盆中 若讀取仵列及/或寫人仔列變得相對滿,㈣ 重。回應於淨化處理進程及記憶體工作負載,調整淨化處 理優先權。有利地,當記憶H貞載相對較輕時,記憶 體控制器試圖藉由在一給定時間間隔中伺服較多淨化處理 要求來”超過”期望淨化處理進程。當記憶體工作負載相對 較重時’記憶體控制器伺服相對較少淨化處理要求,以便 減少與由處理器所發出之讀取要求及寫入要求有關的讀取 及/或寫入要求延時。此外,若淨化處理進程在淨化處理週 期接近完成時滯後於期望淨化處理進程,則提高淨化處理 優先權,以便使記憶體控制器在淨化處理週期期間完成整 個記憶體之淨化處理。 在一實鉍例中,藉由延長或縮短淨化處理間隔來調整淨 化處理優先權。在一實施例中,藉由改變淨化處理間隔在 淨化處理要求具有第一優先權相對於讀取及/或寫入要求 期間之第一淨化處理子間隔與淨化處理要求具有比第一優 先權高之第二優先權相對於讀取要求及/或寫入要求期間 之第二淨化處理子間隔之間的分配來調整淨化處理優先 權。 【實施方式】 133927.doc 200921507 在較佳實施例之w相描述巾,對隨關式進行參 2 ’隨附圖式形成詳細描述之—部分,且在隨附圖式内藉 由說明而展示可實踐本發明所藉由之特定實施例。應理 解,可利用其他實施例,且可在不脫離本發明之範嘴的情 況下進行結構改變。 現參看圖式(且詳令之,阁 _ 。之圖i),展示電腦系統100。電腦 糸統⑽包含-或多個處理器102、將處理器職接至記憶 體控制器106之處理 r200921507 IX. Description of the invention: [Technical field to which the invention pertains] The large system of the invention relates to a memory controller in a computer system. More specifically &'' is directed to efficient scheduling of purge processing commands. This application is related to: 2007--Application of the US application serial number _ (agent case number ROC920070424US1), its title is five to seven prices & heart to do "sigh ^ Background Scrub Commands 〇 [previous technology] modern The computer system contains a memory and a memory controller. In a memory such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory), the data stored in the memory can be corrupted, for example, by one or more forms of radiation. . This damage often presents itself as a "soft error". For example, a single bit in a read data block (such as a read cache line) can be read as "〇", and a single bit has been written as "1". Before passing the data block to the processor, the most modern computer system uses an error correction code (ECC) circuit to correct a single bit error (SBE> SBE can be a permanent error (memory or entity in the memory interconnect) Error), or SBE can be "soft error." Some modern computer systems can correct more than one error in the data block being read. For the sake of simplicity of explanation, this article will be described in terms of correcting a single bit error. The Ecc circuit in the present invention, but the invention is not limited to computer systems having an ECC circuit that corrects only a single bit error. The soft error in the memory is often corrected by a purification process. The cleansing area 133927.doc 200921507 refers to periodically Or read the data in other ways, correct any calibratable: error and write the corrected data back to the memory. The purification process prevents the early bit soft error from becoming ECC circuit over time. For example, it is important to correct the multi-bit error. For example, 'Assume that the ECC circuit (4) corrects the coffee, and the first soft error occurs in the specific cache line. The Ecc circuit can correct the coffee and send the correction data to the processing. g. In addition, 'assuming that the _ soft error is uncorrected and after a period of time 'a second error (hard or soft steep error $) occurs in a particular cache line. Hard ', the error is a permanent error, for example , disconnected signal connector or failed driver or receiver. ECC circuit can not correct the error! Capture line ' and report the error has been detected, but can not be corrected, which may lead to faster request The termination of the task of the line, the restart of the computer system. Therefore, in order to reduce the possibility of uncorrectable multi-bit errors, the memory is processed in the specified purification process cycle. For example, in two or four hours. The entire memory of the purification processing computer line in the purification processing cycle specifies the memory reliability rate according to the completion of the purification process in the specified cycle. The hidden memory controller determines the connection to The memory of the memory controller is set to purify the entire amount of the servo cleaning process required during the purification processing cycle (for example, one day) and to clean the processing interval. Knife and animal husbandry for the net memory control H through the order The entire number of purification treatments required, a person's purification treatment order, which needs to be cleaned during each purification treatment interval. 133927.doc 200921507 Service-purification treatment = Figure 3Α and Figure 3Β, at a specific purification treatment interval During the production interval, if the servo purge processing command does not affect the normal read command issued by the second = (or in some cases, write the second command: this is done. If the first cleansing interval is at the first cleansing interval)仏 间 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 尚未 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 』 Processing requirements '祠服净化#理服°Get and write) Normal command stream. The demand purification process reduces the computer system = the second recovery to increase the read and write requirements of the delay == the amount of delivery, because this is done by drawing the process. Into ^ chat. In the diagram, during the purification process, the process of the process is shown as a straight line during the purification process cycle (for the purpose of the illustrative goal, the positive cycle of demand is one day). The memory 贞 is shown to increase at about 8 am, remain relatively high straight = handsome, and then gradually decrease. Between time and time (10), memory: The workload is relatively light. Between the time axes, the 'memory demand work is too heavy, and often occurs during the first cleanup interval of the purification process interval. In order to maintain a straight line "process", it is necessary to perform a purging operation in the second purification processing sub-interval of the money processing interval. The bow 1 is required to perform the purging processing request, and the reading request and the writing request issued by the processor wait. SUMMARY OF THE INVENTION In one embodiment of the present invention, a purge processing slack value is determined. 133927.doc 200921507 The purge processing delay value indicates whether the purification process progresses before or after the desired purification process is performed at a given time. The memory workload is determined at any time by dynamically measuring the workload or by using a predetermined estimate of the memory workload. The memory workload can be dynamically determined by reading in the memory controller or reading the fullness _ness of the queue. If the array is read and/or written in the basin, Relatively full, (four) heavy. The purification process priority is adjusted in response to the purification process and the memory workload. Advantageously, when the memory H load is relatively light, the memory controller attempts to "exceed" the desired purge process by servoing more purge processing requirements during a given time interval. When the memory workload is relatively heavy, the memory controller servo is relatively less cleaned to reduce the read and/or write latency associated with the read and write requirements issued by the processor. Further, if the purification process lags behind the desired purification process while the purification process is near completion, the purification process priority is increased so that the memory controller completes the entire memory purification process during the purification process cycle. In a practical example, the cleaning process priority is adjusted by extending or shortening the purge processing interval. In one embodiment, the first purification processing subinterval and the purification processing requirement during the purification processing request having the first priority relative to the read and/or write request are higher than the first priority by changing the purification processing interval. The second priority is adjusted relative to the allocation between the read request and/or the second cleanup processing subinterval during the write request period. [Embodiment] 133927.doc 200921507 In the preferred embodiment, the w-phase description towel is described in detail with reference to the accompanying drawings, and is shown by way of illustration in the accompanying drawings. Particular embodiments of the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the invention. Referring now to the drawings (and in detail, Figure _. Figure i), the computer system 100 is shown. The computer system (10) includes - or a plurality of processors 102, and processes the processor to the memory controller 106.
L =匯机排105,及藉由記憶體匯流排1〇7 而耗接至至記憶體控制器106之記憶體1〇8。記憶體ι〇8進一 步包含記憶體晶片i H)(經展示為記憶體晶片iU之 -或多個記憶體階層(rank)U2(經展示為記憶體階層 。記憶體晶片11〇通常為DRA叫動態隨機存取 記憶體)晶片。如圖2所示,每一記憶體晶片i i 0進-步包含 一或多個記憶體庫⑴(經展示為記憶體庫llla_llld)。記憶 1¾層112及5己憶體庫! i!為記憶體元件之實例。記憶體元 ,為在由記憶體控制器1G6所發出之讀取要求、寫入要求或 爭化處理要求之伺服期間所存取的記憶體單元。為了解釋 之目的’記憶體階層112及記憶體庫ln將在本文中用作記 憶體元件之實例。 應理解,典型電腦系統! 〇〇進一步包括許多其他組件,諸 如網路連接設施、碟片及碟片控制器、使用者介面及其 類似者,其皆為熟知的,且其論述不為本發明之實施例的 理解所必要的。 現轉至圖4A至圖4D,看到本文中待描述的本發明之實施 133927.docL = the hub 105, and is consuming to the memory 1 〇 8 of the memory controller 106 by the memory bus 1 〇 7. The memory ι 8 further includes a memory chip i H) (shown as a memory chip iU - or a plurality of memory levels U2 (shown as a memory hierarchy. The memory chip 11 is usually called a DRA) Dynamic Random Access Memory (DRAM). As shown in Figure 2, each memory chip includes one or more memory banks (1) (shown as memory banks 111a_llld). Memory 13⁄4 layers 112 and 5 I remember the library! i! is an example of a memory component. The memory cell is a memory accessed during the servo request by the memory controller 1G6 for the read request, write request, or contention processing request. Units. For the purpose of explanation, the memory hierarchy 112 and the memory bank ln will be used as examples of memory components in this document. It should be understood that a typical computer system! 〇〇 further includes many other components, such as network connection facilities, The sheet and disc controller, the user interface and the like are well known and the discussion thereof is not necessary for the understanding of the embodiments of the present invention. Turning now to Figures 4A to 4D, see this article Implementation of the invention to be described 1 33927.doc
圖4Β展示淨化處理間隔13Q,其經分割為第—淨化處理子 間隔⑴及第二淨化處理子間隔134,第二淨化處理子 始於淨化處理需求開始135。在淨化處理間隔⑶中,若未 增加讀取延時(且在-些實施例中,若未增加寫人延時),則 執行淨化處理要求。在其他實施例中’第一淨化處理優先 ::際上處於第一淨化處理子間隔期間,I第二較高淨化 地理優先權實際上處於第二淨化處理子間隔期間。 在一實施财,若淨化處理間隔之持續時間為θ,,χ,% 第—淨化處理間隔在"X”秒之後消逝,且緊接著 、 處理間隔。在一替代實施例中,若在 一淨化 „ ^ 你币—淨化處理間隔期 間飼服淨化處理要求,則在完成淨化處理要求之伺服後便 200921507 例之、纟σ果的向級綜述。圖4A展示在一預定淨化處理週期(在 圖^之實例中為__天)内的指示在淨化處理記憶體時之所 要平句進权的期望進程線。若以比平均淨化處理速率快 的速率進们f化處理,則在任—給定時間所淨化處理的百 分比將在區域中經表示為前131 ”。另—方面,若在一給定 時間已執行的淨化處理量少於平均期望進程則由給定時 間所淨化處理的百分比在區域中經標記為"後i32”。在記憶 體工作負載低時之時間期間,本發明之實施例提供以比 均速率快的速率之淨化處理,讀進人前ΐ3ι區域、在前⑴ 區域變得較高或試圖脫逸後i现域。若記憶體卫作負载 重’且所淨化處理的記憶體之百分比在前131區域中,則可 以較低淨化處料料行淨化處理,μ達成關於讀取要 求(且在一些實施及情形中’寫入要求)之較低延時。 I33927.doc 200921507 π同始笫四淨化處 短4 s _3 Q _ 長或縮 、,’ w化處理間隔13G會引起必須在處置讀取或寫 词服淨化處理要求的情況之增加,藉此增加淨化處 逮率。淨化處理速率為執行淨化處理之速率,例如 =:淨化處理。亦可藉由降低第一淨化處理子間隔與第 ^化處理子間隔之㈣(亦即,在_中”向左,,移動淨化 處理需求開始135)來增加淨化處理速率,此引起在第 2處理子間隔中花費較多時間,在此時間期間 =寫入之延時’亦可選擇淨化處理以用於飼服= 二增加淨化處理間隔130之持續時間及/或增加第一淨化 理U間隔與第二淨化處理子間隔之比率將會減少淨化處 本發明之實施例提供經呈現至要求選擇 描述)之第一淨化處理要求及第二淨化= 之二=淨化處理要求增力,服淨化處理要求中 率,=:要求(或可能地,寫入要求)之延時的機 羊藉此亦增加淨化處理速率。預期彳壬h h s 之淨化處理要求。 預期任何數目之同時呈現 作==何使用對在淨化處理週期過程内之記憶體工 =„淨化處理速率。在圖-之實例 二 載在,·正常工作小時”(經展示為大致8 p)期間顯著較高。將淨化處理週期界定成始於大致 133927.doc -12- 200921507 pm ’且程式化淨化處理速率(例如,藉由縮短淨化處理間 隔130及/或增加第:淨化處理子間隔134)。淨化處理進程經 展不成在圖4C中以相對較高淨化處理速率”斜率A"進行。在 常作小時期間之期望較高工作負載期間,藉由增加淨 化處理間隔130或"向右"移動淨化處理需求開始出(亦即, 減少第-淨化處理間隔133與第二淨化處理間隔134之比 率)而將淨化處理速率減少至”斜率B,,。在重記憶體工作負Fig. 4A shows a purification processing interval 13Q which is divided into a first purification processing sub-interval (1) and a second purification processing sub-interval 134, and a second purification processing starts at a purification processing demand start 135. In the purge processing interval (3), if the read delay is not increased (and in some embodiments, if the write delay is not increased), the purge processing request is performed. In other embodiments, the 'first purification process priority' is during the first purge process subinterval, and the I second higher purge geography priority is actually during the second purge process subinterval. In an implementation, if the duration of the purge processing interval is θ, χ, the %-purification processing interval elapses after "X" seconds, and immediately after, the processing interval. In an alternative embodiment, if Purification „ ^ Your Coin – Purification treatment requirements during the purification treatment interval, then the completion of the purification treatment requirements of the servo, 200921507, 纟 果 fruit level summary. Figure 4A shows the desired progress line indicating the desired sentence in the process of purifying the memory in a predetermined purge processing cycle (__day in the example of Figure). If the rate is higher than the average purification rate, the percentage of the purification process at any given time will be expressed as the first 131" in the region. On the other hand, if it has been executed at a given time. The percentage of purification treatment processed by a given time is less than the average expected process and is marked as "after i32" in the region. During times when the memory workload is low, embodiments of the present invention provide a purification process at a faster rate than the average rate, reading into the front region, the first (1) region becoming higher, or attempting to escape after the i field . If the memory is heavily loaded and the percentage of the memory being cleaned is in the first 131 area, then the lower purge can be purged, μ is achieved with respect to read requirements (and in some implementations and situations) The lower latency of the write request). I33927.doc 200921507 π is the same as the beginning of the four purifications short 4 s _3 Q _ long or shrink, 'w processing interval 13G will cause an increase in the situation that must be processed in the reading or writing service requirements, thereby increasing Purification rate. The purification treatment rate is the rate at which the purification treatment is performed, for example, = purification treatment. It is also possible to increase the purification processing rate by lowering the first cleaning processing subinterval and the fourth processing subinterval (four) (ie, moving to the left in the _), increasing the purification processing rate, which is caused by the second More time is spent in the processing subinterval, during which time the delay of writing 'may also be selected for the cleaning process for the feeding service = two to increase the duration of the purification treatment interval 130 and / or to increase the first purification interval The ratio of the second purification treatment sub-interval will reduce the purification treatment. The embodiment of the present invention provides the first purification treatment requirement presented to the requirement selection description) and the second purification=second=the purification treatment requires the force to be enhanced. Medium rate, =: required (or possibly, write request) delay of the sheep to increase the purification process rate. Expected 彳壬hhs purification treatment requirements. It is expected that any number of simultaneous presentations == what use Memory work during the purification process cycle = "purification process rate. In the second example of Figure - "normal operating hours" (shown as approximately 8 p) is significantly higher. The purification treatment cycle is defined as starting at approximately 133927.doc -12- 200921507 pm 'and stylized purification treatment The rate (e.g., by shortening the purge processing interval 130 and/or increasing the: purge processing sub-interval 134). The purification process progresses without progress in Figure 4C at a relatively high purge processing rate "slope A". During the expected higher workload during the usual hours, the purification process interval 130 or "rightward" mobile purge process demand begins (i.e., reduces the first-purification process interval 133 and the second purge process interval). 134 ratio) and reduce the purification process rate to "slope B," in negative memory work
载時間期間展示以"斜率B"之速率的淨化處理進程。在一實 施例中I’移動淨化處理需求135,使得第二淨化處理間隔134 為零,在該情況下,不進行淨化處理需求,且僅當淨化 處理要求不影響關於讀#(且可能為寫入)之延時時才伺服 淨化處理要求。 通常’在寫入佇列中累積寫入要求,且以比讀取要求低 的優先權來伺服寫入要求。然而,若寫入仵列變得滿,則 處理器可停止’因為其可不再傳輸新寫入要求。因此,在 寫入仔列變得幾乎時’ 一些記憶體控制器將增加寫入要求 優先權。 在許多情況下,可進行淨化處理要求而不影響讀取(或寫 入)要求。舉例而t ’參看圖1及圖2,第一讀取要求經發射 且將由記憶體階層112〇中之記憶體晶片11〇之記憶體庫 (記憶體庫〇)處置。視特定記憶體晶片技術而定7彼要 求將花費許多讀取要求器循環。在完成讀取後,便可關閉 記憶體庫(11 la),此時,必須將所讀取之資料寫入回至記憶 體庫,且必須對位元線再充電,此花費額外時間。因此: B3927.doc 200921507 記憶體控制器不能在 本双山 斗夕要求選擇器循環内將第二讀取要 未發出至記憶體階層u 2〇(δ己隐體庫Ilia(記憶體庫〇))。然 而右 '淨化處理要求將至π π 4此 至不冋5己憶體階層或甚至記憶體階 層1120中之不同記憶 淨仆虑捆亜七 股庫(lub、Ulc、llld),貝,J可伺服彼 淨化處理要求而不影㈣二讀取要求之延時。The purification process at the rate of "slope B" is displayed during the loading time. In one embodiment I'm moving the purge processing requirement 135 such that the second purge processing interval 134 is zero, in which case no purification processing requirements are required, and only if the purification processing requirements do not affect the read # (and possibly write) Servo purification processing requirements only when the delay is entered. Usually, the write request is accumulated in the write queue, and the write request is servoed with a lower priority than the read request. However, if the write queue becomes full, the processor can stop 'because it can no longer transmit new write requests. Therefore, when the write queue becomes almost the same, some memory controllers will increase the write request priority. In many cases, purification processing requirements can be performed without affecting the read (or write) requirements. For example, referring to Figures 1 and 2, the first read request is transmitted and will be handled by the memory bank (memory bank) of the memory chip 11 in the memory hierarchy 112. Depending on the particular memory chip technology, it will take many read request cycles. After the reading is completed, the memory bank (11 la) can be closed. At this time, the read data must be written back to the memory bank, and the bit line must be recharged, which takes extra time. Therefore: B3927.doc 200921507 The memory controller can't send the second read to the memory level u 2〇 in the double-talker's request selector loop (δ 隐 hidden library Ilia (memory bank) ). However, the right 'purification processing requirement will be π π 4 to the different memory of the 5 memory level or even the memory level 1120. The net servant bundles the seven stocks (lub, Ulc, llld), Bay, J can The servo is cleaned up and the processing requirements are not affected (4).
㈣電腦系統HH)很可能具有包含許多記憶體階層ιΐ2之 Ά大。己It體108,所以本發明之實施例提高可藉由同時 :許多淨化處理要求發出至不同記憶體階層及/或記憶體 ㈣而不影響讀取要求(或寫入要求)之 可月匕[生冑例而吕’若記憶體108具有八個記憶體階層112, 則對於記憶體階層112中之每—者進行—淨化處理要求。或 者’一實施例自一特定記憶體階層112之每-記憶體庫ln 發出淨化^理要求。在又—實施财,對於每—記憶體階 層112之每一記憶體庫丨丨i發出同時淨化處理要求。 同時自多個記憶體階層及/或記憶體庫發出淨化處理要 求之另一優勢在於:較早地發現機械或電問題。舉例而言, 在先前記憶體控制器中,一次一個地發出淨化處理要求, 在移動至不同記憶體階層! 12之前步進通過特定記憶體階 層112中之所有記憶體庫U1。假設淨化處理週期為以小時 且存在十二個記憶體階層112。在淨化處理期間直至最終淨 化處理第十二個記憶體階層時的淨化處理週期之第22個小 時才將偵測到在彼記憶體階層上特定信號上之不良連接或 不良接收器或驅動器。在所描述之實施例(具有來自不同記 憶體階層及/或記憶體庫之同時淨化處理要求)的情況下,實 J33927.doc 14 200921507 際上確定到,每一記憶體階層將具有在頻繁基礎上所飼服 之至少-淨化處理要求,且可較快地應對此等故障。 圖4D說明隨著記憶體王作負㈣小而增加淨化處理 且㈣記憶體工作負載增加而減小淨化處理速率的本發明 之另一實施例。基於實際記憶體工作負載相對於如來(4) Computer system HH) is likely to have a large memory matrix ιΐ2. It has been 108, so the embodiment of the present invention can be improved by simultaneously: many purification processes are required to be issued to different memory levels and/or memory (4) without affecting the reading requirements (or writing requirements). For example, if the memory 108 has eight memory levels 112, then a purification process is required for each of the memory levels 112. Or an embodiment issues a cleansing request from each of the memory banks ln of a particular memory hierarchy 112. In addition, the implementation of the fiscal, for each of the memory layer 112 of each memory bank 丨丨i issued a simultaneous purification processing requirements. Another advantage of simultaneously purging purification requirements from multiple memory levels and/or memory banks is the early discovery of mechanical or electrical problems. For example, in the previous memory controller, the purification processing requirements are issued one at a time, moving to different memory levels! Step 12 passes through all of the memory banks U1 in the particular memory level layer 112. It is assumed that the purification processing cycle is in hours and there are twelve memory levels 112. A poor connection or a bad receiver or driver on a particular signal at the memory level will be detected during the 22nd hour of the purification processing cycle during the purification process until the 12th memory level is finally cleared. In the case of the described embodiment (with purification processing requirements from different memory levels and/or memory banks), it is determined that each memory hierarchy will have a frequent basis. At least the purification treatment requirements of the above feeding, and the failure should be faster. Fig. 4D illustrates another embodiment of the present invention in which the purification process is increased as the memory king is negative (four) small and (4) the memory workload is increased to reduce the purification process rate. Based on actual memory workload relative to
扣所描述的記憶體工作負载之狀估計來㈣淨 先權。 W f 圖5展示記憶體控制器1〇6之方塊圖。處理器匯流排ι〇5 將5己憶體控制器106叙接至處理器1〇2,如圖】所示;記憶體 匯流排1〇7將記憶體控制器灣接至記憶體1〇8,如圖; 1應理解’在各種實施中’緩衝器晶片(未圖示)可用以緩 衝鉍傳輸至記憶體晶片110或自記憶體晶片所傳輸之俨 ==體_器1()6包含儲存由處理器⑽所發出之料 Ο 琴H)2所列121 °記憶體控制器1G6亦包含儲存由處理 :a在一寫入要求的寫入符列⑵。記憶體控制器1〇6 LLi φ特疋要求選擇器循環期間發出淨化處理要求(在 實施例中,多個淨化處理要求)之淨 突理讀取 ^15125^ 冩入及淨化處理要求衝突。 要求選擇器124在一要求選摆考据 12 選擇器循環期間自讀取佇列 自寫广件列123或自淨化處理控制器125選擇要求且 、予。己憶體108之特定記憶體階層中之 的記憶體匯产Μ〗l 疋"己隐體庫 選擇器循環;;Γ可將要求1舉例而言’在-要求 頊$ I * 、崎取要求及兩個淨化處理要求呈 選擇器124,且在要求選擇器循環之末期,要求選 133927.doc -15- 200921507 擇器124在記憶體匯流排! 〇7上發出一選自讀取要求及兩個 淨化處理要求之選定要求(圖5)。The shape of the memory workload described by the deduction is estimated to be (4) net prior weight. W f Figure 5 shows a block diagram of the memory controller 1〇6. The processor bus 〇5 connects the 5 memory controller 106 to the processor 1〇2, as shown in the figure; the memory bus 1〇7 connects the memory controller bay to the memory 1〇8 1; it should be understood that 'in various implementations' a buffer wafer (not shown) may be used to buffer the transfer to or from the memory chip 110. 俨==body_1()6 contains Storing the material issued by the processor (10) 121 H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H The memory controller 1〇6 LLi φSpecially requires the net processing of the purge processing requirement (in the embodiment, multiple purification processing requirements) during the selector cycle. ^15125^ The intrusion and purification processing requirements conflict. The selector 124 is required to select the request and the self-cleaning processing unit 125 during the request cycle of the selector 12 or the self-cleaning processing controller 125. The memory of the specific memory hierarchy of the memory 108 is Μl 疋"The hidden library selector loop;; Γ can be asked as an example of 'in-request 顼$ I *, The requirements and the two purification treatment requirements are presented as the selector 124, and at the end of the cycle of the selector is required, the 133927.doc -15-200921507 selector 124 is required to be in the memory busbar! A selection request from the reading request and two purification processing requirements is issued on 〇7 (Fig. 5).
衝突符列1 29知道何時將每一要求發出至記憶體1 〇8及將 每一要求發出至哪一記憶體階層u 2及記憶體庫丨n。此 外,衝突佇列129知道每一要求將佔據要求所發出至之記憶 體階層112及記憶體庫π 1的持續時間,且將防止要求選擇 裔124將後續要求發出至彼記憶體階層i 12及記憶體庫 111,直至彼記憶體階層及記憶體庫再次可用。 記憶體控制器106包含ECC(錯誤檢查及校正)12〇,其將校 正具有自記憶體108所讀取之錯誤的第一數目之位元,且將 偵測具有自記憶體108所讀取之錯誤的第二數目之位元。 ECC 120確保在匯流排1〇5上發送回至處理器1〇2之所有資 料皆正確,或在ECC 12〇不能夠校正自記憶體1〇8所讀取之 資料時信號傳輸錯誤。在將在對淨化處理要求所進行之讀 取期間所讀取的資料重新寫入至記憶體1〇8中之前,在淨化 處理期間亦使用ECC 120來校正資料中之錯誤中之任何可 校正位元。在淨化處理期間’淨化處理控制器125記住已侦 測到何記憶體階層及記憶體庫4自特定位置之重複㈣ 由淨化處理控制器丨25識別’且可指示記憶體1〇8中可^為 有故障資料位元、有故障導線、有故障驅動器或有㈣接 收器之有缺陷位置。 淨化處理控制器125可包含以下各項中之—些或全部. 刻21〇、淨化處理優先化器212、淨化處理狀態214及二 载監視器216,現在將介紹其中之每一者,且稍後將對直 133927.doc •16- 200921507 行更詳細地描述。 淨化處理控制器125可包含時刻210(諸如,時鐘或對電腦 系統1 00中其他處之時鐘之存取)。在基於記憶體工作負載 之預定估計來調整淨化處理速率的記憶體控制器1 〇6之實 施例中使用時刻2 10。 淨化處理控制器125可包含工作負載監視器216,其監視 記憶體系統108之繁忙程度’且淨化處理控制器ι25相應地 調整淨化處理速率。The conflict register 1 29 knows when each request is sent to the memory 1 〇 8 and to which memory level u 2 and memory bank 丨 n each request is issued. In addition, the conflict queue 129 knows that each request will occupy the duration of the memory hierarchy 112 and the memory bank π 1 to which the request is issued, and will prevent the requesting descendants 124 from issuing subsequent requests to the memory class i 12 and The memory bank 111 is available until the memory level and the memory bank are available again. The memory controller 106 includes an ECC (Error Check and Correction) 12〇 that will correct the first number of bits having errors read from the memory 108 and will have the detection read from the memory 108. The second digit of the wrong number. The ECC 120 ensures that all data sent back to the processor 1〇2 on the bus 1〇5 is correct, or that the ECC 12〇 cannot correct the data read from the memory 1〇8. The ECC 120 is also used during the purification process to correct any correctable bit in the data prior to rewriting the data read during the reading of the purification process request into the memory 1 8 yuan. During the purification process, the purification processing controller 125 remembers which memory hierarchy has been detected and the repetition of the memory bank 4 from a specific location (4) is recognized by the purification processing controller 丨 25 and can indicate that the memory 1 〇 8 can be ^ is a faulty data bit, a faulty wire, a faulty drive, or a defective location with a (iv) receiver. The purification process controller 125 may include some or all of the following: a 21 〇, a purification process prioritizer 212, a purification process state 214, and a two-load monitor 216, each of which will now be described, and This will be described in more detail in the line 133927.doc •16- 200921507. The cleanup process controller 125 can include a time instant 210 (such as a clock or access to a clock elsewhere in the computer system 100). Time 2 10 is used in the embodiment of the memory controller 1 〇 6 that adjusts the purge processing rate based on a predetermined estimate of the memory workload. The purge process controller 125 can include a workload monitor 216 that monitors the busyness of the memory system 108 and the purge process controller ι25 adjusts the purge process rate accordingly.
淨化處理控制器125包含淨化處理狀態214,其中可保留 在記憶體108中、在每一記憶體階層112中及/或在每一記憶 體階層112之每一記憶體庫111中所淨化處理的記憶體之分 率。 淨化處理控制器125包含淨化處理優先化器212,其將一 或多個淨化處理要求發出至要求選擇器丨24。 現參看圖6A至圖6D ’更詳細地展示淨化處理狀態2丨4。 圖6A將淨化處理狀態214展示成包括記憶體狀態173及對於 記憶體108中之每一記憶體階層的記憶體階層狀態181。 圖6B中更詳細地展示記憶體狀態173。記憶體總數174含 有對於整個記憶體1 08的在淨化處理週期期間必須執行之 淨化處理之總數目之值。所淨化處理之記憶體175在淨化處 理週期之開始時經重設,且每當伺服淨化處理要求時經遞 增。所淨化處理的總記憶體之百分比為所淨化處理之記憶 體175除以記憶體總數174。淨化處理間隔176維持可用以指 定第-淨化處理子間隔133(圖4B)的第—淨化處理子間隔 I33927.doc 200921507 177之持續時間之值及可用以指定第二淨化處理子間隔 134(圖4B)的第二淨化處理子間隔178之持續時間之值。如 較早先所解釋,可調整第一淨化處理子間隔及第二淨化處 理子間隔之持續時間以增加或減小淨化處理速率。當記憶 體狀態1 73由其自身使用時(無以下待描述之額外”由記憶 體階層及/或"由記憶體庫”),可調整淨化處理速率,但僅 在記憶體108中之全域基礎上。 圖6C展示記憶體階層狀態181之一實施例。在淨化處理狀 悲214使用記憶體階層狀態丨8丨之實施例中,淨化處理進程 由記憶體階層維持,其有用於將落後的記憶體階層優先 化。舉例而言,若記憶體階層丨12^經8〇%淨化處理,但記憶 體階層1123僅經4〇%淨化處理,則應相對於記憶體階層ιΐ2〇 之淨化處理速率而增加記憶體階層HI之淨化處理迷率。 έ己憶體階層總S 1 84含有必須伺服以完成記憶體階層之淨 化處理的淨化處理要求之總數目。所淨化處理之記憶體階 層185在淨化處理週期之開始時經重設’且每當伺服對於^己 憶體階層之淨化處理要求時經遞增。記憶體階層中所完成 的淨化處理之百分比為所淨化處理之記憶體階層Μ〗值除 以記憶體階層總數184值。淨化處理間隔186含有用於對瞬 時§己憶體階層所進行之淨化處理要求的如以上所描述可用 以控制第-淨化處理子間隔133及第5淨化處理子間隔IB 之持續時間的第—淨化處理子間隔187及第二淨化處理子 間隔188。記憶體階層狀態181可進—步包含許多記憶體庫 狀惑183 ’其可用以藉由記憶體階層112内之記憶體庫lu來 133927.doc -18- 200921507 控制淨化處理速率。 展示記憶體庫狀態183之方塊圖。記憶體庫狀態⑻ 匕“己憶體庫總數194,其含有在淨化處理週期内必須進行 的淨化處理之總數目。所淨化處理之記㈣庫195在淨化處 週』之開始時㈣設’且每當伺服對於彼記憶體庫之淨 化處理要求時經遞增。對於彼記憶體庫所完成的淨化處理 百刀比為所淨化處理之記憶體庫195與記憶體庫總數⑼ 之比率。淨化處理間隔196含有第一淨化處理子間隔197及 第二淨化處理子間隔198,其可如所描述與以上其他第一子 間隔及第二子間隔一起用以增加或減小彼記憶體庫之淨化 處理速率。 “以上論述已描述可總體上控制記憶體1〇8之淨化處理速 率的實她例,藉由δ己憶體階層1丨2或藉由每一記憶體階層 中之記憶體庫lu β θ 圖展示工作負載監視器216。工作負載監視器2i6提供 〇 f己憶體108繁忙程度之指示。圖7展示工作負載監視器216, 其使用讀取佇列之滿度161來判定讀取佇列121之滿程度且 使用寫入佇列之滿度162來判定寫入佇列123之滿程度。讀 取仔列之滿度161記住讀取佇列121所具有的項數相對於讀 取佇列121之容量。如圖5所示,讀取佇列121具有儲存”η" 個要求之空間。零個要求至"η"個要求之值指示在讀取佇列 121中現存的讀取要求之數目。若讀取佇列i 2丨已滿或幾乎 滿(如由讀取佇列之滿度16丨所指示),則記憶體1〇8彼繁忙。 類似地,寫入佇列123經展示成具有用於”m”個項之空間, 133927.doc •19- 200921507 且零至"m"之值指示當前在寫入佇列123中存在的項之數 目。寫入佇列之滿度162以某一方式(例如,最大容量之分 率)指示寫入佇列丨23在一給定時間之滿程度。若讀取佇= 121及寫入佇列123相對為空(例如,每一者為四分之—或更 小滿)’則記憶體系統1〇8具有相對較低記憶體工作負载, 且工作負載判定器163在淨化處理優先權164上報告此情 形。淨化處理優先權164可為單個位元(例如,"〇"為"不繁忙The purification process controller 125 includes a purge process state 214 that may be retained in the memory 108, in each memory level 112, and/or in each memory bank 111 of each memory bank 112. The rate of memory. The purge process controller 125 includes a purge process prioritizer 212 that issues one or more purge process requests to the demand selector 丨24. The purification treatment state 2丨4 is now shown in more detail with reference to Figs. 6A to 6D'. FIG. 6A shows purge processing state 214 as including memory state 173 and memory hierarchy state 181 for each memory level in memory 108. Memory state 173 is shown in more detail in Figure 6B. The total number of memories 174 contains the total number of purification processes that must be performed during the purge processing cycle for the entire memory 108. The cleaned memory 175 is reset at the beginning of the purge processing cycle and is incremented each time the servo purge process requires it. The percentage of total memory cleaned is the memory 175 of the cleaned process divided by the total number of memory 174. The purge processing interval 176 maintains the value of the duration of the first purification processing subinterval I33927.doc 200921507 177 that can be used to specify the first purification processing subinterval 133 (Fig. 4B) and can be used to specify the second purification processing subinterval 134 (Fig. 4B). The value of the duration of the second purge processing subinterval 178. As explained earlier, the duration of the first purge subinterval and the second purge subinterval can be adjusted to increase or decrease the purge processing rate. When the memory state 173 is used by itself (without the additional "to be described below" by the memory hierarchy and/or "from the memory bank"), the purification processing rate can be adjusted, but only in the memory 108 basically. FIG. 6C illustrates one embodiment of a memory hierarchy state 181. In the embodiment in which the purification processing state 214 uses the memory hierarchy state, the purification process is maintained by the memory hierarchy, which is used to prioritize the backward memory hierarchy. For example, if the memory level 丨12^ is cleaned by 8〇%, but the memory level 1123 is only 4%% cleaned, the memory level HI should be increased relative to the memory processing rate of the memory level ΐ2〇. Purify the processing rate. The total S 1 84 contains the total number of purification processing requirements that must be servoed to complete the cleaning process of the memory hierarchy. The cleaned memory layer 185 is reset at the beginning of the purge processing cycle and is incremented each time the servo is required for the purification process of the memory hierarchy. The percentage of the purification process done in the memory hierarchy is the value of the memory level of the cleaned process divided by the total number of memory levels of 184. The purge treatment interval 186 contains the first purification that can be used to control the duration of the first purification treatment sub-interval 133 and the fifth purification treatment sub-interval IB as described above, as required for the purification treatment of the transient § memory layer hierarchy. The subinterval 187 and the second purification processing subinterval 188 are processed. The memory hierarchy state 181 can further include a plurality of memory banks 183' which can be used to control the purification processing rate by the memory bank lu in the memory hierarchy 112. 133927.doc -18- 200921507. A block diagram showing the state of the memory bank 183. Memory bank status (8) 匕 “The total number of memory banks 194, which contains the total number of purification processes that must be performed during the purification process. The record of the purification process (4) Library 195 at the beginning of the purification week” (4) Whenever the servo is required to purify the memory bank, it is incremented. The ratio of the memory processing done by the memory bank to the memory bank is the ratio of the memory bank 195 and the total number of memory banks (9). 196 includes a first purification processing subinterval 197 and a second purification processing subinterval 198, which may be used together with the other first subintervals and second subintervals described above to increase or decrease the purification processing rate of the memory bank. "The above discussion has described an example of the overall rate of purification processing that can control memory 1〇8, either by the δ-remembered hierarchy 1丨2 or by the memory bank lu β θ in each memory hierarchy. The figure shows a workload monitor 216. The workload monitor 2i6 provides an indication of how busy the memory 108 is. Figure 7 shows a workload monitor 216 that uses the full scale 161 of the read queue to determine the full extent of the read queue 121 and uses the full scale 162 of the write queue to determine the full extent of the write queue 123. The fullness of the read queue 161 remembers that the number of entries in the read queue 121 is relative to the capacity of the read queue 121. As shown in Figure 5, the read queue 121 has a space for storing "η" requirements. The zero request to "η" value indicates the number of read requests that are present in the read queue 121. If the read queue i 2 is full or almost full (as indicated by the full scale of the read queue 16 ,), then the memory 1 〇 8 is busy. Similarly, the write queue 123 is shown to be useful. In the space of "m" items, 133927.doc •19- 200921507 and the value of zero to "m" indicates the number of items currently present in the write queue 123. The full scale of the write queue is 162 to some A mode (e.g., a fraction of the maximum capacity) indicates the degree to which the write queue 23 is full at a given time. If the read 伫 = 121 and the write queue 123 is relatively empty (for example, each is four) The memory system 1 具有 8 has a relatively low memory workload, and the workload determiner 163 reports this on the cleanup processing priority 164. The cleanup processing priority 164 can be a single bit Meta (for example, "〇" is "not busy
且”1’’為,,繁忙”),或可包含複數個位元以僅指示記憶體工作 :载在-給定時間為輕或重之程度。一般而言,隨著讀取 <丁列之滿度161及寫入符列之滿度162報告增加的滿度 化處理優先權164報告記憶紅作負載正增加,且淨化處理 速率相應地減小(例如,藉由淨化處理控制器125增加 多個淨化處理間隔、士唐敕 “ …周整一或多個第-淨化處理子間隔與 各別第二淨化處理間隔t + i = i 間隔之比率或甚至消除-或多個第二 淨化處理子間隔)。 且 ㈣淨化處理優先權164應以要求選擇器 “列而吕,採用兩位元淨化處理優先權164,豆中"〇〇" 工作負裁||不很繁™,意謂記憶體工作負 可發二:Γ處理優先權164為”〇°"時,要求選擇器124 求==二(即使淨化處理要求影響三個讀取要 可發出,Γ:/ 優先權164為"°1",則要求選擇⑽ 化處理要求(即使淨化處理要求影響兩個讀取要 可;=)化;淨化處理優先權為,,則要求選咖^ ,处理要求(若淨化處理要求料—個讀取要求 133927.doc -20- 200921507 =)虚若淨化處理優先權為”11",則要求選擇器將不發 日字處理要軸如此進行,則將影響-讀取要求之延 如較早先所描述,以較低優先權來處置寫入要求至 >直至寫入佇列開始變得相當滿。 (二體:作負載輕時允許淨化處理要求增加讀取要求 :乍7:::求)之延時為可接受的,因為當記憶體工 讀取要二::仃之彼同一讀取要求通常將必須在伺服彼 等待許多其他讀取要求。以,等待一或預 工化處理要求不會使超出彼讀取要求在重記憶體 作負载之時間期間將招致之延時的讀取要求延時慢。可 即將發生的讀取要求之前伺服的淨化處理要求之預定數 ::如)等於新淨化處理要求在重記憶體工作負載時間 期間將期望等待的讀取要求之平均數目。 ^描述’可在—或多個讀取要求之前舰在記憶體工 ::輕時之週期期間的淨化處理要求,而在重記憶體工 小…之週期期間,伺服淨化處理要求而非讀取要求會減 I^IGG之輸送1。此外,若在淨化處理週期接近結束時 匕处理進程在"後||,則必須增加淨化處理速率,以便在 淨化處理週期之末期之前完成淨化處理。因此,淨化處理 優=化器212有利地包括記憶體工作負載及·,前⑴"或,,後 兩者及在淨化處理週期中留有的時間之量以判定 ’、"、處it帛因此詳述以上具有兩位元淨化處理優先權 、匕括作負栽及量"前131”或"後132”資訊連同在淨化 地理週期中留有的時間之實例,考慮下—段落之實例。 133927.doc 21 200921507 再次’採用兩位元淨化處理優先權1 64。對於淨化處理週 期之第一半,當淨化處理優先權為"〇(Τ、"0Γ、,'1〇"及"11" 時淨化處理要求相對於讀取(或可能地,寫入)要求之處理如 同在以上實例中。對於淨化處理週期之下一四分之一(亦 即,淨化處理週期為5〇%與乃%之間的完成),若淨化處理 進程在冑’則必須給出較多優先權。當淨化處理優先權 4為00時,要求選擇器124可發出淨化處理要求(即使淨 化處理要求影響兩個讀取要求之延時)。當淨化處理優先權 為"01”時’要求選擇器124可發出淨化處理要求(若伺服淨化 2理要求會影響五個或五個以下讀取(寫人)要求之延時)。 处理優先權為"丨〇"時,要求選擇器124可發出淨化處 理要求(若伺服淨化處理要求會影響三個或三個以下讀取 (寫广)要求之延時)。當淨化處理優先權為””時,要求選 一 Γ 可毛出淨化處理要求(若伺服淨化處理要求會影響 一,零個讀取(寫入)要求)。在淨化處理週期之最後四分之 仏1右’爭化處理進程在”後,,,則必須對淨化處理速率 口出相對較其γ暴土 成 ,以便在淨化處理週期之末期之前完 成淨Ifci處理。輿. 求選擇化’當淨化處理優先權為”〇〇,,時,要 影塑十發出淨化處理要求(若伺服淨化處理要求會 先權為(寫入)要求)。當淨化處理優 求選擇為124可發出淨化處理要求(即使伺 服净化處理要求會影響 求)。杏、、秦π * 调次十—個以下讀取(寫入)要 田淨化處理優先權為,丨1〇丨 化處理要求(即 I求選擇益m可發出淨 1服錢處理要求會影響人個或八下以 J33927.doc -22- 200921507 下讀取(寫入)要求)。當淨化處理優先權為⑴ :器12何發出淨化處理要求(即使飼服淨化處 二二 ==或四個以下讀取(寫入)要求)。淨化處理優先化器犯 吏用當前淨化處理進程滞"後"於期望進程的遠之程度 值/1對淨化處理優先化。若淨化處理進程(例如)僅^ 洛4於期望進程,則不必施行顯著的淨化處理速率增 加,直至在淨化處理週期中很落後。 現參看圖5,淨化處理優先化器212 一次發送一或多個淨 化處理要求至要求選擇器124。如較早先所描述,發送複數 $同時要求會提高可伺服淨化處理要求中之至少—者而不 〜響喂取(或可能地,寫入)延時之機率(即使當記憶體工作 負載相對較高時)。此外,亦如較早先所描述,自多個記憶 體階層U2發送淨化處理要求會增加比在第二記憶體階層 上開始淨化處理之前在第—記憶體階層中完成所有淨化處 理早地發現驅動器、接收器或互連之問題的機率。在一實 施例中’淨化處理優先化器212僅使用淨化處理狀態214, 且發送-或多個淨化處理要求,㈣對應第—淨化處理子 間隔及第二淨化處理子間隔之持續時間。在第二實施例 =淨化處理優先化器與對應第一淨化處理子間隔及第二 淨化處理子間隔—起發送對於每__記憶體階層⑴之淨化 要长此有助於確保無記憶體階層丨丨2被允許顯著地滯 後於其他記憶體階層。舉例而言,假設第一記憶體階層ιΐ2 含有必須被淨化處理之-百萬個快取線,且第二記憶體階 層僅3有必須被淨化處理之256,〇〇〇個快取線。如以上所解 133927.doc -23- 200921507 釋’每-記憶體階層m具有與其所執行的淨化處理之百分 成例之淨化處理速率。若在―時間内第一記憶體階層 112與第二記憶體階層112具有相等數目之所執行的淨化處 理,則作為所執行的淨化處理之百分比,第一記憶體階層 112將落後。接著將對第—記憶體階層給出較高淨化處理速 t(例如’藉由縮短對於第-記憶體階層U2之淨化處理間 隔13〇 ’或藉由相對地增加對於第—記憶體階層ιΐ2之第二 >⑽理間隔134)’以便伺服對於第一記憶體階層"2之較 多淨化處理要求。或者’在注意到第-記憶體階層U2在百 分比基礎上"落後"後’淨化處理優先化器212便發出對於第 一記憶體階層112之多個記憶體庫⑴之淨化處理要求且僅 發出對於第二記憶體階層m之一個(或無)淨化處理要求。 二展示本發明之方法實施例7〇〇的高級流程圖。方法· 始:步驟繼。在步驟中,判定淨化處理遲緩值。若淨 化 =遲緩值為”正",則淨化處理"提前排程,,,亦即,在圖 不為前⑶之區域中。若淨化處理遲緩值為"負 淨化處理丨丨落後排輕” 中。/牛/ 亦即’在圖4A中表示為後⑴之區域 否當前很忙於處置已:處:Γ:广其指示_是 罝已由處理态發出的對於讀取(及可能 =體^^求。在步驟708中,使用淨化處理遲緩值及 =體工作負載來調整淨化處理速率。若記憶體工作負載 相對較低,則必要拉 、 取藉由使淨化處理要求比某一數目之讀 ^作;^’寫人)要求優先來增加淨化處理速率。若記憶 體工作負载相對較高,則減小淨化處理速率,其允許極少 133927.doc -24- 200921507 數(若有)淨化處理要求將延時添加至讀取(或可能地,寫入) 要求。類似地,若淨化處理遲緩值開始變得愈來愈負,則 增加淨化處理速率以"趕上",使得將在淨化處理週期期間 淨化處理整個S己憶體。可動態地量測記憶體工作負載,或 可將§己憶體工作負載之估計儲存於系統中,例如,如較早 先所描述,按時刻。 圖9為提供圖8之步驟704之更詳細步驟的流程圖。 步驟710開始步驟704之更詳細實施例。步驟712判定在電 腦之總記憶體中、在記憶體階層中或在記憶體庫中待淨化 處理之總記憶體(資料區塊之數目,例如,快取線)。 步驟714判定在-淨化處理週期中已經淨化處理的待淨 化處理之總記憶體之分率(百分比)。舉例而言,若需要一百 萬,淨化處理來完全淨化處理一記憶體且已執行5〇〇,_ 人淨化處理’ %已完成對於記憶體之5㈣的淨化處理。 步㈣6判定已消逝的淨化處理週期之分率(百分比)。舉 例而„ ’右淨化處理週期為二十四小時且自從淨化處理週 期之開始已消逝六小時’則淨化處理週期經25%完成。 步:m藉由自已完成的淨化處理之分率減去已消逝的 ^匕處理週期之分率來判(淨化處理遲緩值。舉例而言, 若淨化處理為〇. 7 5完忐曰,鬼儿占„ 處理遲緩為狀〜彳化處理狀5G完成,則淨化 將 率 n淨化處理遲緩值之其他實施為可能的。舉例而言, 化處理之分率除以完成的淨化處理週期之分 用以上例7^性分率,0·7別.50=1.50。在此情況 133927.doc •25· 200921507 下,恰好地處於圖4A之期望進程線上將具有值一,而非由 減法產生的”正”或"負”遲緩。在,,前"將比__大;在"後"將比 -* 小 〇 步驟719完成判定淨化處理遲緩的步驟7〇4之擴展方法。 圖10A更詳細地展示步驟7〇6(圖8)之第一實施例,其在圖 1〇A中表示為706A,其始於步驟720。在步驟722中,進行 讀取仵列之滿度的量測。舉例而言,若讀取仔列具有叫固 讀取要求位置且當前保持四個讀取要求,則讀取佇列為八 分之一滿。步驟724類似地判定寫入佇列之滿度。步驟726 類似地判定在具有衝突佇列之實施中衝突佇列之滿度。步 驟728使用讀取佇列、寫入佇列及衝突佇列滿度之值來判定 記μ卫作負冑。若彼等仔列中之—或多者滿或幾乎滿, 則記憶體工作負載很重;若彼等佇列中之全部皆空或幾乎 空,則記憶體工作負載相對較輕。步驟729完成步驟7〇6之 擴展方法。 圖10B提供步驟706(圖8)之第二實施例,其在圖_中表 示為7嶋。步驟730開始方法7〇6B。在步驟732中,藉由讀 取時刻鐘來判定時刻。在步驟734中,藉由使用在步驟732 中所判疋之時刻及儲存於電腦系統中的記憶體卫作負載之 預疋估计來判定記憶體工作負載,例士口,以工作負載需求 相對於時間之表或等式的方式。步驟739結束方法7嶋。 圖11為調整淨化處理速率的步驟7G8(圖8)之擴展。方法 708始於步驟75〇。 在步驟7 5 2中,使用# a* . 汉用'•己隐體工作負載及淨化處理遲緩值來 133927.doc -26 - 200921507 調整淨化處理間隔之持續㈣1 緩值指示淨化處理當 °右淨化處理遲 —時間量二淨:::::理間隔較短, 淨化處理子間隔之更多情況要:第二 寫入要求)延時為代價而強行淨化處理求(或可能地, 及變化淨化處理間隔至第一淨化處理子間隔 处理子間隔内之分配。若 相對較長,則增加在讀取 叫#化處理子間隔 擇淨化處理要求之可能性(W地,以要幻内將選 在步驟756中,藉由要求選擇器(諸如,圖5所示之要长.$ 擇器⑵)來接收一或多個淨 要“ ^ - sa . ^ 处里要衣。有利地,藉由要 = 數個淨化處理要求(針對不同記憶號階 地,窝入彳&本 表見了在不影響讀取(或可能 求。·‘、)要求之延時的情況下所词服之至少一淨化處理要And "1'' is, busy"), or may contain a plurality of bits to indicate only the memory operation: the degree at which the given time is light or heavy. In general, as the read <dot fullness 161 and write rank fullness 162 report increased full-scale processing priority 164 report memory red load is increasing, and the purification processing rate is correspondingly reduced Small (for example, by adding a plurality of purification processing intervals by the purification processing controller 125, "the whole one or more first-purification processing sub-intervals and the respective second purification processing intervals t + i = i intervals" Ratio or even elimination - or multiple second purification processing sub-intervals). And (d) purification treatment priority 164 should be required to select the selector "column, using two-dimensional purification processing priority 164, beans in" "〇〇" Work negative ruling||Not very complicated TM, meaning that the memory work can be sent two: Γ processing priority 164 is "〇 °", when the selector 124 is required to find == two (even if the purification processing requirements affect three Reads can be issued, Γ: / priority 164 is "°1", which requires selection (10) processing requirements (even if the purification processing requirements affect two readings; =); purification processing priority is, Then ask for a coffee ^, processing requirements (if purification treatment requirements) The reading requirement 133927.doc -20- 200921507 =) The virtual purification processing priority is "11", the selector is required to not send the Japanese word processing to the axis to do so, then the impact-reading request is delayed. As described earlier, the write request is handled with a lower priority to > until the write queue begins to become quite full. (Two-body: Allows the purification process to increase the read requirement when the load is light: 乍7::: The delay is acceptable because when the memory is read, the same read requirement will usually have to wait for many other read requests on the servo. Wait for one or pre-processing requirements. It will not delay the read request delay that will be incurred during the time when the heavy memory is loaded as a load. The pre-determined read request requires a predetermined number of pre-purification processing requirements: :)) equals new The purification process requires an average number of read requests that will be expected to wait during the heavy memory workload time. ^Describes the 'cleaning process requirements during the period of the memory::light time period during the memory: or during the period of the heavy memory work, the servo cleaning process request instead of reading The request will reduce the delivery of I^IGG1. Further, if the processing progress is at the end of the purification processing cycle at "after||, the purification processing rate must be increased to complete the purification processing before the end of the purification processing cycle. Therefore, the purification process optimizer 212 advantageously includes the memory workload and the first (1) " or, the latter two and the amount of time remaining in the purification process cycle to determine ', " Therefore, detail the above examples with the two-dimensional purification treatment priority, including the burden and quantity "first 131" or "post 132" information together with the time left in the purification geography cycle, consider the next paragraph Example. 133927.doc 21 200921507 Again, using the two-dimensional purification process priority 1 64. For the first half of the purification process, when the purification process priority is "〇(Τ,"0Γ,, '1〇" and "11", the purification process requires relative to reading (or possibly, writing The processing required is as in the above example. For one quarter of the purification treatment cycle (that is, the purification treatment cycle is between 5〇% and %), if the purification process is in the process More priority must be given. When the purge treatment priority 4 is 00, the selector 124 is required to issue a purge treatment request (even if the purge treatment request affects the delay of the two read requests). When the purge treatment priority is " When 01", the selector 124 is required to issue a purification processing request (if the servo cleaning requirement affects the delay of five or less readings (writers) required). The processing priority is "丨〇" The selector 124 is required to issue a purification processing request (if the servo cleaning processing requirement affects the delay of three or more reading (writing wide) requirements). When the purification processing priority is "", a selection is required. Hair purification Requirements (if the servo cleaning process requirements will affect one, zero read (write) requirements). After the last quarter of the purification process cycle 1 right 'contention process is in,', then must be cleaned The processing rate is relatively high compared to the γ turbulence, so that the net Ifci treatment is completed before the end of the purification treatment cycle. 求. Selecting the choice 'When the purification treatment priority is 〇〇,,, Processing requirements (if the servo purification processing requirements will be first (write) requirements). When the purification treatment is selected as 124, the purification treatment requirements can be issued (even if the servo purification processing requirements will affect the demand). Apricot, Qin π * The next ten-to-six read (write) to the field purification treatment priority is 丨1〇丨 processing requirements (ie, I want to choose the benefit m can issue a net 1 service money processing requirements will affect people or eight to J33927 .doc -22- 200921507 Under reading (writing) requirements). When the purification treatment priority is (1): What is the requirement for the purification treatment of the device 12 (even if the feeding service is cleaned at two or two == or four or less readings (writing) )))) purification treatment The prioritizer is guilty of using the current purification process lags "after" prioritization of the desired process value/1 prioritization of the purification process. If the purification process (for example) only ^4 is expected, the process does not have to be performed The significant purge treatment rate increases until it lags behind during the purge treatment cycle. Referring now to Figure 5, the purge process prioritizer 212 sends one or more purge process requests to the demand selector 124 at a time. As described earlier, the complex number is transmitted. At the same time, the requirement is to increase the probability of at least one of the servo-cleaning processing requirements without the delay of feeding (or possibly, writing) (even when the memory workload is relatively high). In addition, as described earlier, the transmission of the purification processing request from the plurality of memory levels U2 may increase the discovery of the driver earlier than the completion of all the purification processing in the first memory level before starting the purification processing at the second memory level. The probability of a problem with the receiver or interconnect. In one embodiment, the decontamination process prioritizer 212 uses only the purge process state 214 and transmits - or multiple purge process requests, and (d) corresponds to the duration of the first purge process subinterval and the second purge process subinterval. In the second embodiment, the decontamination processing prioritizer and the corresponding first decontamination processing subinterval and the second decontamination processing subinterval are sent to each of the __memory levels (1) to be cleaned to help ensure a memoryless hierarchy.丨丨 2 is allowed to lag significantly behind other memory classes. For example, assume that the first memory level ιΐ2 contains millions of cache lines that must be cleaned, and the second memory level layer only has 256, cache lines that must be cleaned. As explained above, 133927.doc -23- 200921507 explains that the per-memory level m has a purification treatment rate of a percentage of the purification treatment performed therewith. If the first memory level 112 and the second memory level 112 have an equal number of performed purification processes during the time period, the first memory level 112 will lag behind as a percentage of the purification process performed. Then, the first memory level is given a higher purification processing speed t (for example, 'by shortening the purification processing interval 13 〇 for the first memory level U2' or by relatively increasing the first memory level ι ΐ 2 The second > (10) intervals 134)' to servo the more clean processing requirements for the first memory level "2. Or 'reporting the first-memory level U2 on a percentage basis"trailing" post-purification processing prioritizer 212 issues a purification process request for a plurality of memory banks (1) of the first memory level 112 and only A one (or none) purge processing requirement for the second memory level m is issued. A high level flow chart showing an embodiment of the method of the present invention. Method · Start: Steps follow. In the step, the purification processing retardation value is determined. If the purification = sluggish value is "positive", then the purification process " advance scheduling,, that is, in the area before the map (3). If the purification processing delay value is " negative purification treatment, backward row Light". / cow / that is, in the area shown in Figure 4A as the latter (1) is not currently busy dealing with: Has: Γ: wide its indication _ is 罝 has been issued by the processing state for reading (and possible = body ^ ^ In step 708, the purification processing delay value and the = body workload are used to adjust the purification processing rate. If the memory workload is relatively low, it is necessary to pull and take the cleaning processing requirement to be more than a certain number of readings. ;^'Writer) requires priority to increase the purification rate. If the memory workload is relatively high, then the purge processing rate is reduced, which allows very few 133927.doc -24- 200921507 number (if any) purification processing requirements to add a delay to the read (or possibly, write) requirement. Similarly, if the purge treatment retardation value begins to become more and more negative, the purge treatment rate is increased to "catch" so that the entire S memory will be cleaned during the purge treatment cycle. The memory workload can be measured dynamically, or an estimate of the § memory workload can be stored in the system, for example, as described earlier, by time. 9 is a flow chart showing the more detailed steps of step 704 of FIG. Step 710 begins with a more detailed embodiment of step 704. Step 712 determines the total memory (the number of data blocks, e.g., the cache line) to be cleaned in the total memory of the computer, in the memory hierarchy, or in the memory bank. Step 714 determines the percentage (percentage) of the total memory to be cleaned that has been cleaned up in the -cleaning process cycle. For example, if one million is needed, the purification process is to completely purify a memory and 5 〇〇 has been performed, the _ human purification process '% has completed the purification process for the memory 5 (4). Step (4) 6 determines the fraction (percentage) of the purge treatment cycle that has elapsed. For example, „ 'The right purification treatment cycle is twenty-four hours and six hours have elapsed since the beginning of the purification treatment cycle'. The purification treatment cycle is completed by 25%. Step: m is subtracted from the fraction of the self-purified purification process. The elapsed rate of the processing cycle is judged (purification processing delay value. For example, if the purification treatment is 〇. 7 5 忐曰 忐曰 鬼 鬼 鬼 鬼 处理 处理 处理 处理 处理 处理 处理 处理 彳 彳 彳 彳 彳 彳 彳 彳 彳 彳 彳 彳 彳 彳Other implementations of purifying the rate n of the purification treatment delay value are possible. For example, the fraction of the treatment divided by the completed purification treatment cycle is divided by the above example 7^ sex fraction, 0·7, .50=1.50 In this case 133927.doc •25· 200921507, exactly the desired process line in Figure 4A will have a value of one, rather than the “positive” or “negative” delay caused by the subtraction. In, before " More than __; in "after" will be compared to -* 〇 step 719 to complete the expansion method of step 7〇4 to determine that the purification process is slow. Figure 10A shows the first step 7〇6 (Fig. 8) in more detail. An embodiment, which is represented as 706A in FIG. 1A, begins at step 720 In step 722, a measure of the fullness of the read queue is performed. For example, if the read queue has a fixed read request position and currently holds four read requests, the read queue is eight points. One is full. Step 724 similarly determines the fullness of the write queue. Step 726 similarly determines the fullness of the conflict queue in the implementation with the conflict queue. Step 728 uses the read queue, the write queue, and The value of the conflict 伫 fullness is used to determine the negative 胄. If the 仔 或 或 或 或 或 或 或 或 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若 若Or almost empty, the memory workload is relatively light. Step 729 completes the expansion method of step 7 。 6. Figure 10B provides a second embodiment of step 706 (Figure 8), which is represented in Figure _ as 7 嶋. 730 starts method 7〇6B. In step 732, the time is determined by reading the time clock. In step 734, by using the time determined in step 732 and the memory of the memory stored in the computer system Preload estimation of the load to determine the memory workload, the case mouth, to the workload The method relative to the time table or equation is sought. Step 739 ends the method 7. Figure 11 is an extension of the step 7G8 (Fig. 8) for adjusting the purge processing rate. The method 708 begins at step 75. In step 7 5 2 , using # a* . Han used '• 隐 hidden body workload and purification delay value to 133927.doc -26 - 200921507 Adjust the duration of the purification treatment interval (4) 1 mitigation indicator purification treatment when ° right purification treatment late - time amount two The net::::: the interval is shorter, the more the cleaning processing interval is: the second writing requirement) the delay is the cost and the purification process is forcibly (or possibly, and the cleaning process interval is changed to the first purification process) The subinterval handles the allocation within the subinterval. If it is relatively long, the possibility of selecting a purification processing request in the read processing is increased (W, in order to be selected in step 756, by requiring a selector (such as shown in FIG. 5). It is necessary to long. $ (2) to receive one or more net "^-sa. ^ where the clothing is needed. Advantageously, by = several purification processing requirements (for different memory levels, nesting彳& This table sees at least one purification treatment in the case of not affecting the delay of reading (or possibly asking for .·, )
Ci 可二ΓΓ中,要求選擇器判定是否可在不影響讀取(或 二‘”人)要求之情況下舰淨化處理要求。若如此, =驟762中伺服淨化處理要求;若不,則步驟判定 :匕處理需求週期(亦即’第二淨化處理子間隔)是否現用。 右如此,則藉由步驟762來伺服淨化處理要U不,削司 服讀取要求(或可能地,寫入要求)。應注意,為了解釋起見 而間化圖U之方法。如較早先所解釋,視工作負載及淨 化處理遲緩而定’若記憶體工作負載报輕,則步驟758可分 支至步驟762以伺服淨化處理要求(即使—或多個讀取(或可 I33927.doc -27· 200921507 能地’寫入)要求即將發生)。 【圖式簡單說明】 圖1展示包含處理器、記憶體 隐體控制器及一或多個記憶體階 層之電腦系統的方塊圖。 圖^展示包含由圖1之電腦系統所使用之一或多個記憶體 庫之記憶體晶片的方塊圖。 心 圖3A及圖3B為說明在預定淨化處理週期内維持淨化 f 理進程之習知記憶體控制器之操作的先前技術圖式。 圖4A至圖4D展示本發明之實施例如何在相對較輕記憶 體工作負载週期期間提供飼服較多淨化處理要求及在相對 重記憶體卫作負載週期期間提供健較少淨化處理要 求。 圖5為適合於在圖i之電腦系統中使用之記憶體控制 方塊圖。 圖6A至圖6D展示各種記憶體淨化處理狀態方塊圖。 圖7為適合於在記憶體控制器中使用之工作負載監視器 實施例的方塊圖。 圖8為說明視記憶體工作負載而調整伺服淨化處理要求 之速率的高級流程圖。 圖9為說明如何判定淨化處理遲缓之值的流程圖。 圖10A及圖10B為展示如何判定記憶體工作負載之流程 圖。 <圖11為展示使用記憶體需求及淨化處理遲緩資訊來伺服 淨化處理要求之速率之調整的流程圖。 133927.doc -28- 200921507 【主要元件符號說明】 100 電腦糸統/電腦 102 處理器 105 處理器匯流排 106 記憶體控制器 107 記憶體匯流排 108 記憶體 110 記憶體晶片 11〇〇 記憶體晶片 ll〇n-. 記憶體晶片 111a 記憶體庫 1 lib 記憶體庫 111c 記憶體庫 llld 記憶體庫 112〇 記憶體階層 112m., 記憶體階層 120 ECC(錯誤檢查及校正) 121 讀取佇列 123 寫入佇列 124 要求選擇器 125 淨化處理控制器 129 衝突佇列 130 淨化處理間隔 131 前 133927.doc -29- 200921507 f 132 後 133 第一淨化處理子間隔 134 第二淨化處理子間隔 135 淨化處理需求開始 161 讀取佇列之滿度 162 寫入佇列之滿度 163 工作負載判定器 164 淨化處理優先權 173 記憶體狀態 174 記憶體總數 175 所淨化處理之記憶體 176 淨化處理間隔 177 第一淨化處理子間隔 178 第二淨化處理子間隔 181 記憶體階層狀態 183 記憶體庫狀態 184 記憶體階層總數 185 所淨化處理之記憶體階層 186 淨化處理間隔 187 第一淨化處理子間隔 188 第二淨化處理子間隔 194 記憶體庫總數 195 所淨化處理之記憶體庫 196 淨化處理間隔 133927.doc -30- 200921507 197 第一淨化處理子間隔 198 第二淨化處理子間隔 210 時刻 212 淨化處理優先化器 214 淨化處理狀態 216 工作負載監視器 133927.doc -31 -Ci can be used to determine whether the ship can be cleaned without affecting the reading (or two 'persons) requirements. If so, the servo cleaning process is required in step 762; if not, the step Judgment: 匕 processing demand period (that is, 'second purification processing sub-interval) is active. Right, then, by step 762, the servo purification processing is required to be U, and the cutting service reading request (or possibly, the writing request) It should be noted that the method of interpreting the graph U for the sake of explanation. As explained earlier, depending on the workload and the sluggish processing delay, if the memory workload is reported to be light, step 758 may branch to step 762. Servo purification processing requirements (even if - or multiple readings (or I33927.doc -27· 200921507 can be 'written') is about to occur. [Simplified schematic] Figure 1 shows the inclusion of the processor, memory hidden A block diagram of a computer system with one or more memory levels. Figure 2 shows a block diagram of a memory chip containing one or more memory banks used by the computer system of Figure 1. Figure 3A and Figure 3B for the description in advance A prior art diagram of the operation of a conventional memory controller that maintains a clean process during a purge process. Figures 4A-4D show how an embodiment of the present invention provides a feed comparison during a relatively light memory workload cycle. Multiple purification processing requirements and less robust purification processing requirements during a relatively heavy memory servo load cycle. Figure 5 is a memory control block diagram suitable for use in the computer system of Figure i. Figures 6A-6D show various A block diagram of a memory cleanup process state. Figure 7 is a block diagram of an embodiment of a workload monitor suitable for use in a memory controller. Figure 8 is a high level diagram illustrating the rate at which servo cleanup processing requirements are adjusted for a memory workload. Fig. 9 is a flow chart showing how to determine the value of the depletion processing delay. Fig. 10A and Fig. 10B are flowcharts showing how to determine the memory workload. <Fig. 11 shows the use of the memory demand and the purification processing delay. Flowchart of information to adjust the rate of servo cleaning processing requirements. 133927.doc -28- 200921507 [Key component symbol description] 100 Cerebrospinal system/computer 102 processor 105 processor bus 106 memory controller 107 memory bus 108 memory 110 memory chip 11 memory chip 〇n-. memory chip 111a memory bank 1 lib Memory bank 111c Memory bank llld Memory bank 112 〇 Memory level 112m., Memory level 120 ECC (Error check and correction) 121 Read queue 123 Write queue 124 Request selector 125 Purification processing controller 129 Conflict queue 130 Purification processing interval 131 Front 133927.doc -29- 200921507 f 132 After 133 First purification processing subinterval 134 Second purification processing subinterval 135 Purification processing demand start 161 Reading the fullness of the array 162 Write 伫Column fullness 163 Workload determiner 164 Purification processing priority 173 Memory state 174 Total memory 175 Purified processing memory 176 Purification processing interval 177 First purification processing subinterval 178 Second purification processing subinterval 181 Memory Hierarchy status 183 Memory bank status 184 Total number of memory levels 185 Memory of purification processing Level 186 Purification processing interval 187 First purification processing subinterval 188 Second purification processing subinterval 194 Total memory bank 195 Memory bank for purification processing 196 Purification processing interval 133927.doc -30- 200921507 197 First purification processing subinterval 198 Second Purification Processing Subinterval 210 Time 212 Purification Processing Prioritizer 214 Purification Processing Status 216 Workload Monitor 133927.doc -31 -
Claims (1)
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 true TW200921507A (en) | 2009-05-16 |
TWI448964B TWI448964B (en) | 2014-08-11 |
Family
ID=40433153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097133776A TWI448964B (en) | 2007-09-07 | 2008-09-03 | Computer system and method for scrubbing a memory therein |
Country Status (2)
Country | Link |
---|---|
US (1) | US7882323B2 (en) |
TW (1) | TWI448964B (en) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4606455B2 (en) * | 2007-12-20 | 2011-01-05 | 富士通株式会社 | Storage management device, storage management program, and storage system |
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 (en) * | 2010-08-05 | 2017-03-15 | Siemens Ag Oesterreich | MEMORY CONTROL DEVICE AND ASSOCIATED CONFIGURATION METHOD |
US9141451B2 (en) | 2013-01-08 | 2015-09-22 | Freescale Semiconductor, Inc. | Memory having improved reliability for certain data types |
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 |
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 (en) * | 2016-06-01 | 2017-12-11 | 주식회사 맴레이 | Memory controller, and memory module and processor including the same |
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 (en) * | 2019-10-24 | 2023-12-08 | 杭州数梦工场科技有限公司 | Operation method, device and equipment of data exchange system |
US11907573B2 (en) * | 2021-06-21 | 2024-02-20 | Western Digital Technologies, Inc. | Performing background operations during host read in solid state memory device |
JP2023079292A (en) * | 2021-11-29 | 2023-06-08 | ラピステクノロジー株式会社 | Semiconductor storage device, data writing method, and manufacturing method of semiconductor storage device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5632012A (en) * | 1993-11-24 | 1997-05-20 | Storage Technology Corporation | Disk scrubbing system |
US5987628A (en) * | 1997-11-26 | 1999-11-16 | Intel Corporation | Method and apparatus for automatically correcting errors detected in a memory subsystem |
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 |
US7012835B2 (en) | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7257686B2 (en) * | 2004-06-03 | 2007-08-14 | International Business Machines Corporation | Memory controller and method for scrubbing memory without using explicit atomic operations |
-
2007
- 2007-09-07 US US11/851,458 patent/US7882323B2/en not_active Expired - Fee Related
-
2008
- 2008-09-03 TW TW097133776A patent/TWI448964B/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US20090070647A1 (en) | 2009-03-12 |
US7882323B2 (en) | 2011-02-01 |
TWI448964B (en) | 2014-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW200921507A (en) | Scheduling of background scrub commands to reduce high workload memory request latency | |
US7882314B2 (en) | Efficient scheduling of background scrub commands | |
EP3270290B1 (en) | Ddr memory error recovery | |
US6718444B1 (en) | Read-modify-write for partial writes in a memory controller | |
JP6592305B2 (en) | Memory device and memory module | |
TWI307476B (en) | Cache memory subsystem capable of executing multiple accesses per cycle, microprocessor, and related computer system | |
KR20190003591A (en) | Recovering after an integrated package | |
JP2022153654A (en) | Data integrity for persistent memory systems and the like | |
US11748034B2 (en) | Signalling for heterogeneous memory systems | |
US20210374006A1 (en) | Refresh management for dram | |
US20230125792A1 (en) | Error recovery for non-volatile memory modules | |
CN114902197B (en) | Command replay for non-volatile dual inline memory modules | |
US20090287889A1 (en) | Read/write clustering systems and methods | |
US10515671B2 (en) | Method and apparatus for reducing memory access latency | |
CN115605853A (en) | Efficient memory bus management | |
KR102705924B1 (en) | DRAM Command Streak Efficiency Management | |
JPWO2003079194A1 (en) | Information processing device | |
JP2012104160A (en) | Arbitration device, image forming apparatus, arbitrating method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |