TW202223903A - 適應性內部記憶體錯誤刷洗及錯誤處置 - Google Patents
適應性內部記憶體錯誤刷洗及錯誤處置 Download PDFInfo
- Publication number
- TW202223903A TW202223903A TW110126096A TW110126096A TW202223903A TW 202223903 A TW202223903 A TW 202223903A TW 110126096 A TW110126096 A TW 110126096A TW 110126096 A TW110126096 A TW 110126096A TW 202223903 A TW202223903 A TW 202223903A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- ecs
- address
- error
- logic
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 856
- 238000005201 scrubbing Methods 0.000 title claims abstract description 182
- 230000003044 adaptive effect Effects 0.000 title description 32
- 230000004044 response Effects 0.000 claims abstract description 109
- 238000003860 storage Methods 0.000 claims description 85
- 238000012937 correction Methods 0.000 claims description 69
- 230000008859 change Effects 0.000 claims description 60
- 238000001451 molecular beam epitaxy Methods 0.000 claims 2
- 238000001514 detection method Methods 0.000 abstract description 41
- 238000011010 flushing procedure Methods 0.000 description 38
- 238000010586 diagram Methods 0.000 description 36
- 208000011580 syndromic disease Diseases 0.000 description 36
- 238000000034 method Methods 0.000 description 35
- 238000012545 processing Methods 0.000 description 32
- 230000007717 exclusion Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 19
- 210000004027 cell Anatomy 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 16
- 230000007613 environmental effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 15
- 230000002093 peripheral effect Effects 0.000 description 14
- 230000008878 coupling Effects 0.000 description 13
- 238000010168 coupling process Methods 0.000 description 13
- 238000005859 coupling reaction Methods 0.000 description 13
- 230000001419 dependent effect Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 230000004913 activation Effects 0.000 description 11
- 230000000116 mitigating effect Effects 0.000 description 10
- 238000007726 management method Methods 0.000 description 9
- 238000012546 transfer Methods 0.000 description 9
- 230000001052 transient effect Effects 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000011664 signaling Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 239000000872 buffer Substances 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 239000002574 poison Substances 0.000 description 3
- 231100000614 poison Toxicity 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- CURLTUGMZLYLDI-UHFFFAOYSA-N Carbon dioxide Chemical compound O=C=O CURLTUGMZLYLDI-UHFFFAOYSA-N 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001680 brushing effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 231100000572 poisoning Toxicity 0.000 description 2
- 230000000607 poisoning effect Effects 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- UGFAIRIUMAVXCW-UHFFFAOYSA-N Carbon monoxide Chemical compound [O+]#[C-] UGFAIRIUMAVXCW-UHFFFAOYSA-N 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910002092 carbon dioxide Inorganic materials 0.000 description 1
- 239000001569 carbon dioxide Substances 0.000 description 1
- 229910002091 carbon monoxide Inorganic materials 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 230000003938 response to stress Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Debugging And Monitoring (AREA)
Abstract
一種在記憶體上具有裝置上錯誤檢查及刷洗(ECS)邏輯之記憶體子系統可在記憶體裝置處於自動ECS模式中時回應於偵測到該記憶體中之錯誤而調適ECS操作之速率。該ECS邏輯可包括已藉由主機離線之記憶體的列之一指示。該ECS邏輯可在ECS操作計數中跳過離線列。該ECS邏輯可包括該主機之執行ECS操作的請求或提示。該ECS邏輯之一內部位址產生器可在所產生位址與該等提示之間進行選擇。系統可允許一記憶體控制器偵測與相關聯記憶體之一特定位址相關的多位元錯誤(MBE)。當偵測到之MBE指示一錯誤型樣時,該記憶體控制器觸發針對該特定位址之一列錘回應。
Description
發明領域
描述大體上係關於記憶體系統錯誤管理,且更特定而言,描述係關於用於管理記憶體內之錯誤刷洗及錯誤處置的適應性操作。
發明背景
記憶體刷洗為藉助於錯誤檢查及校正(ECC)機制修正可校正錯誤且偵測不可校正錯誤之背景操作。記憶體刷洗在傳統上實施為主機中之邏輯,作為記憶體控制器內之邏輯或作為專用於記憶體刷洗之獨立組件。現可運用包括裝置上或晶粒上ECC之裝置在記憶體上執行記憶體刷洗。
運用記憶體刷洗來修正可校正錯誤可有效地避免產生不可校正錯誤,此通常將導致非想要的系統重設。刷洗可作為常規程序發生,諸如使用週期性巡邏刷洗,其中整個系統位址空間在設定時段內(例如,在12小時或24小時內)被刷洗一次。刷洗操作包括讀取記憶體,偵測及校正錯誤,其後接著寫入至記憶體。在偵測到不可校正錯誤之狀況下,系統可使資料毒化(poison)以發信不可校正錯誤。舉例而言,可用毒化位元標示資料以允許主機將資料自末級快取記憶體寫回或將位址標記為壞位址。
巡邏刷洗通常限於記憶體上刷洗操作之單個組態。所有巡邏刷洗在傳統上係基於在記憶體之系統初始化時設定的組態而執行。
另外,儘管新興的記憶體包括記憶體上ECC及錯誤刷洗機制,但改變列錘攻擊向量仍被證實為在具有列錘保護機制之機器中導致列錘故障。列錘攻擊係指在目標列之再新循環內的重複存取。對目標列之重複存取會持續地循環目標列上的電力,此可致使電荷積聚於實體上鄰近的列(受害者列)上,從而導致對受害者列上之資料的無意覆寫。列錘緩解(row hammer mitigation)可包括目標再新及存取計數監測以防止列錘條件。
然而,較新的列錘攻擊包括列模糊攻擊,其中對多個目標列而非僅一個目標列進行存取,此舉往往會降低監測機制之有效性。列錘條件之當前監測解決方案在其將何些情形識別為列錘攻擊上受到限制。
依據本發明之一實施例,係特地提出一種記憶體控制器,其包含:控制邏輯,其用以偵測針對具有錯誤檢查及刷洗(ECS)邏輯之一記憶體裝置的一錯誤率之一改變,以在一自動ECS模式中運用晶粒上錯誤檢查及校正(ECC)邏輯執行ECS操作,其中該ECS邏輯係用以控制該等ECS操作之該執行;以及輸入/輸出(I/O)電路系統,其用以回應於偵測到該錯誤率之該改變而將一命令發送至該記憶體裝置,以調整執行該等ECS操作之一速率。
較佳實施例之詳細說明
如本文中所描述,一種在記憶體上具有裝置上或晶粒上錯誤檢查及刷洗(ECS)邏輯之記憶體子系統可以一或多種方式調適錯誤刷洗且調適錯誤資訊之使用。對偵測到之即時錯誤資訊的調適可導致錯誤刷洗或其他錯誤緩解技術之智慧應用,從而導致記憶體中之不可校正錯誤較少。
在一個實例中,當記憶體裝置在自動刷洗模式中時,錯誤刷洗系統可回應於偵測到記憶體中之錯誤而調適記憶體上刷洗操作之速率。自動刷洗模式係指記憶體控制刷洗應用之模式,而非主機經由來自記憶體控制器之直接命令控制操作。基於偵測到錯誤率之改變或錯誤率之預測改變(例如,基於感測器資訊),主機可藉由記憶體刷洗引擎改變刷洗操作之速率。
在一個實例中,主機可將已藉由主機離線之記憶體列的指示提供至記憶體上錯誤刷洗引擎。對於具有透明地對偵測到之錯誤進行計數及報告之ECS邏輯的錯誤刷洗引擎,離線錯誤之指示可使得錯誤刷洗引擎能夠在ECS操作計數中跳過離線列。跳過可經由不對離線頁面執行錯誤刷洗或經由對離線頁面執行錯誤刷洗但接著不會將離線頁面包括於被提供至主機之錯誤計數資訊中來進行。
在一個實例中,主機可將提示提供至記憶體上之錯誤刷洗引擎或錯誤刷洗邏輯。該等提示指示主機判定應執行刷洗之位址。記憶體上錯誤刷洗邏輯之內部位址產生器可在用於典型刷洗操作之正常遞增位址或由主機提供之一或多個位址之間進行選擇。
在一個實例中,系統可經由監測記憶體內之錯誤資訊來偵測列錘條件。回應於偵測到多位元錯誤(MBE),系統可判定MBE是否為與記憶體之特定位址相關的錯誤型樣之部分。當偵測到之錯誤指示錯誤型樣時,主機可觸發與特定位址相關之列錘回應。舉例而言,主機可將特定位址視為列錘攻擊之目標位址,且為受害者列提供列錘緩解(諸如,目標列再新)。
在一個實例中,可在執行階段期間將提示提供至巡邏刷洗器以改善不可校正錯誤之減少。錯誤刷洗及列錘回應之調適可回應於作業系統(OS)存取型樣或代理程式軟體(例如,在OS下執行之應用程式軟體)之存取型樣。另外,調適可回應於環境條件,諸如溫度升高,其往往會增加錯誤。另外,調適可回應於應力條件,該等應力條件可包括環境條件以及其他系統條件,諸如中央處理單元(CPU)負載、網路頻寬使用量、寫入至記憶體之速率或其他條件。基於應力條件之調適可包括調適比例因子或加權因子,以考慮為錯誤刷洗選擇之位址。
圖1為可調適刷洗速率及刷洗目標位址之錯誤檢查及刷洗系統之實例的方塊圖。系統100說明保持錯誤資訊計數之錯誤監測系統的組件。在一個實例中,系統100可被稱作錯誤檢查及刷洗(ECS)系統或ECS引擎。系統100表示待刷洗之記憶體上的裝置上組件。通篇對ECS操作或錯誤刷洗操作之提及皆可指根據系統100之系統進行的操作。系統100適應於記憶體中之改變錯誤條件,或回應於主機系統內可導致記憶體內之錯誤增加的不同環境條件。
ECS控制110表示用以在系統100內產生控制刷洗操作之邏輯或控制電路系統。在一個實例中,ECS控制110為記憶體裝置內部之控制器的部分。在一個實例中,ECS控制110為記憶體內用以控制刷洗操作之獨立組件。在一個實例中,儲存最終計數之暫存器為主機可存取之暫存器,且其他組件在記憶體裝置上之控制器內。出於描述之目的,下文將刷洗操作描述為ECS操作,係指檢查錯誤、校正發現之可校正錯誤(校正偵測到之錯誤)且將已校正資料寫回至記憶體的操作。在一個實例中,ECS操作包括在系統中執行錯誤計數,該系統以透明或洞察錯誤數目之方式執行刷洗。在一個實例中,ECS操作包括與偵測不可校正錯誤及報告不可校正錯誤相關之操作,諸如向主機指示或使資料毒化。
在一個實例中,ECS控制110包括用以控制ECS操作之執行速率的速率控制(CTRL) 112。在一個實例中,諸如相關聯記憶體控制器之主機指示記憶體裝置之改變。回應於來自主機之所指示改變,ECS控制110可設定用於刷洗之新時間間隔。舉例而言,ECS控制110可提供觸發ECS操作之執行的刷洗間隔,從而導致所有記憶體位址在一時段(例如,24小時、10小時或某一其他間隔)內執行刷洗。刷洗間隔可為導致在該時段內刷洗整個位址空間的刷洗操作之間的平均時間。
位址控制120表示用以使得記憶體裝置能夠管理ECS操作之內部定址的控制邏輯。記憶體裝置可負責某些位址資訊且記憶體控制器負責其他位址資訊。因此,取決於記憶體裝置之位址資訊責任,系統100可具有不同實施。在一個實例中,位址控制120包括一或多個ECS位址計數器以遞增用於ECS命令之位址。位址控制120可包括用於行位址、列位址、記憶體組位址、記憶體組群組位址或此等位址之組合的計數器。在一個實例中,位址控制120包括用以遞增用於ECS操作之列或其他片段之行位址的計數器。
在一個實例中,位址控制120基於自ECS控制110提供之信號而控制位址資訊。自ECS控制110接收到之信號可被稱作內部信號,係指藉由內部控制器在記憶體裝置內部產生之信號。內部信號可區別於自記憶體控制器接收到之外部信號。來自ECS控制110之內部信號可指基於自動ECS操作而產生的信號,其中記憶體裝置自身判定何時及如何執行ECS操作以及對何些位址執行操作。因此,內部控制器控制ECS操作,而非簡單地產生內部信號以執行主機控制之ECS操作。主機控制之ECS操作係指由記憶體控制器指導之關於何時執行ECS操作或刷洗何些位址的ECS操作。運用速率控制112,主機可基於偵測到外部錯誤而請求ECS頻率之增加,記憶體裝置可接著使用該等外部錯誤來判定如何調整其速率及ECS操作。因而,在一個實例中,記憶體控制器可直接請求速率增加且可控制ECS速率。在一個實例中,記憶體控制器可請求速率增加,且記憶體裝置將判定如何執行增加。
在一個實例中,位址控制120針對各ECS WR命令遞增行位址(INCR COL ADDR),該命令可藉由將內部ECS命令信號(ECS CMD)與如由用於寫入之內部行位址選通(CAS WR)所指示的內部寫入命令進行「與(AND)」運算來觸發或指示,如藉由邏輯116所說明。在一個實例中,一旦行計數器繞回或翻轉,列計數器便將依序遞增且讀取下一列中之碼字及相關聯檢查位元,直至記憶體組內之所有列被存取。在一個實例中,一旦列計數器繞回,記憶體組計數器便將依序遞增且記憶體組群組內之下一依序記憶體組將重複存取各碼字及相關聯檢查位元之程序,直至記憶體內之所有記憶體組及記憶體組群組被存取。在一個實例中,一旦列計數器繞回,記憶體組計數器便將依序遞增,且下一依序記憶體組群組將重複存取各碼字及相關聯檢查位元之程序,直至記憶體內之所有記憶體組群組被存取。
在一個實例中,可回應於記憶體子系統之重設(RESET)條件或回應於模式暫存器(MR)中之位元而重設用以在位址控制120中產生內部位址之行、列、記憶體組、記憶體組群組或其他計數器,如藉由邏輯114對RESET信號與MR位元進行的「或(OR)」運算所說明。重設可在電力循環或其他系統重新啟動時發生。在一個實例中,由位址控制120產生之位址資訊可用以控制解碼邏輯(例如,記憶體裝置內之列及行解碼器電路),從而觸發ECS操作。然而,可見對於其他操作,記憶體裝置對自主機接收到之外部位址資訊進行操作,在一個實例中,系統100包括多工器(mux) 170以在外部位址(ADDR) 174與由位址控制120產生之內部位址資訊(內部位址(ADDR) 172)之間進行選擇。雖然未具體展示,但應理解,對多工器170之控制可為ECS模式狀態,其中在ECS模式中,選擇內部位址產生以存取記憶體陣列之記憶體位置,且當不在ECS模式中時,選擇外部位址174以存取記憶體陣列之記憶體位置。因此,多工器170之輸出可去往解碼邏輯以存取記憶體陣列。
當記憶體控制器提供一些位址資訊時,系統100之選擇邏輯可選擇性地更複雜。基於內部位址資訊或外部位址資訊,系統100可檢查記憶體內之所有碼字及檢查位元。更具體而言,系統100可執行ECS操作,該等ESC操作包括讀取、校正及寫回所有選定或指定位址之記憶體位置的ECC操作。在一個實例中,ECS系統可讀取記憶體陣列,運用內部錯誤檢查及校正(ECC)邏輯校正錯誤,且寫回已校正資料。在一個實例中,無論ECC是否偵測到且校正錯誤,ECS系統每次皆可讀取記憶體陣列且將資料寫回至陣列。
在被操作一次之後,系統100可經組配(例如,經由計數器之大小)以繞回計數器且重新啟動位址計數。舉例而言,一旦已檢查記憶體之所有記憶體位置,記憶體組群組計數器便可繞回且根據下一ECS命令再次開始程序。完成ECS模式之一個循環所需的ECS命令之總數為密度相依的。
在一個實例中,位址控制120包括提示控制(CTRL) 122,該提示控制表示針對記憶體裝置之內部位址選擇而提供的提示。如上文所指示,記憶體控制器可在外部控制ECS操作,包括提供待刷洗之一或多個列的位址。外部位址174表示由主機提供之ECS位址資訊,且內部位址172表示在內部產生之位址資訊。提示控制122可指示混合,其中替代直接提供ECS操作之位址資訊,主機指示其已判定應被刷洗之位址,如下文更詳細地描述,記憶體裝置可接著在產生內部位址資訊時考慮該等位址。
在一個實例中,提示控制122可表示主機指示應被刷洗之位址之清單。在一個實例中,提示控制122可表示主機已離線之位址之清單,主機不希望將該等位址包括於錯誤計數資訊中。基於所建議位址,位址控制120可產生並非連續遞增位址之位址,從而無序地執行ECS操作,其可包括在刷洗尚未被刷洗之位址之前,在刷洗時段內重複刷洗一些位址。在一個實例中,位址控制120可產生控制信號,諸如控制計數器之設定以控制對選定位址之錯誤進行計數的信號。
系統100包括用以對(多個)選定或經定址記憶體位置執行錯誤檢查及校正操作之ECC邏輯130。在一個實例中,當在記憶體位置中偵測到錯誤時,ECC邏輯130產生輸出旗標(錯誤偵測(ERROR DETECT))。在一個實例中,ECC邏輯130回應於運用ECC操作偵測到及校正單位元錯誤(SBE)而產生旗標。在一個實例中,ECC邏輯130回應於偵測到多位元錯誤(MBE)而產生旗標。在一個實例中,來自ECC邏輯130之錯誤偵測信號可將區塊132設定為作用中,該區塊在被設定時提供等於一之錯誤計數或EC=1的輸出。在一個實例中,可控制重設控制信號以防止對排除位址之錯誤進行計數。
在一個實例中,來自ECC邏輯130之錯誤偵測信號可將區塊134設定為作用中,該區塊在被設定時提供每列錯誤大於一或EPR>1的輸出。應理解,區塊134可能需要在重設之間具有二個錯誤偵測信號以觸發EPR>1的設定。因此,將區塊134之輸入標示為INCR/SET,以指示在一個實例中,除非存在至少2個錯誤,否則該列將不會被視為具有高錯誤計數。
在一個實例中,區塊132、TF 136及錯誤計數器(EC) 142對每列錯誤進行計數,且EC 142僅遞增以對具有至少一個錯誤之列進行計數。在一個實例中,區塊132、TF 136及錯誤計數器(EC) 142對錯誤總數進行計數,且EC 142遞增以對由ECC邏輯130發現之每個錯誤進行計數。
在一個實例中,區塊132之設定觸發臨限值篩選器(TF) 136以遞增。在一個實例中,當臨限值篩選器計數等於錯誤臨限值計數(ETC)時,TF 136被設定。ETC表示由系統或使用者設定之可組配臨限值,以僅回應於臨限值數目而對錯誤進行計數。臨限值可為每列、每記憶體組、每記憶體組接地或記憶體之某一其他片段。在一個實例中,臨限值篩選器可與針對用於製造之記憶體所判定的初始錯誤數目相關,此可允許透明度計數僅報告超過在記憶體整合至系統中之後出現的錯誤數目的錯誤。因而,製造商可設定臨限值以指示僅超過選定數目(例如,選自表)、由製造商設定之組配數目或某一其他臨限值之錯誤數目,從而設定在向主機報告錯誤計數之前必須達到的基線錯誤數目。TF 136之設定可觸發錯誤計數器(EC) 142以遞增。
EC 142可繼續遞增以對錯誤進行計數,直至錯誤計數162載入計數器值。錯誤計數162表示用以儲存錯誤計數之暫存器或儲存位置。在一個實例中,錯誤計數162表示可由主機存取之暫存器,諸如模式暫存器。發佈載入之錯誤計數以供主機存取。
在一個實例中,區塊134之設定遞增每列錯誤計數器(EPRC) 144。無論區塊132對全部錯誤數抑或具有至少一個錯誤之列之數目進行計數,EPRC 144皆對每列錯誤之數目進行計數,在一個實例中,對具有至少2個錯誤之列進行計數。EPRC 144對錯誤進行計數以指示在正被刷洗之位址的區塊中或在記憶體中之整個位址區塊中具有最高數目個錯誤的列。
在一個實例中,EPRC 144將其計數提供至高錯誤計數152,以及提供其計數以供與來自錯誤計數152之先前高或最大錯誤計數進行比較。高錯誤計數152表示保存高錯誤計數之暫存器或其他儲存器,該高錯誤計數指示在任何列中偵測到的錯誤之最大數目。比較邏輯150判定EPRC 144中之計數值是否大於高錯誤計數152。在一個實例中,若EPRC 144中之當前錯誤計數大於高錯誤計數152之先前最大值,則邏輯150產生輸出「大於先前(GREATER THAN PREVIOUS)」以觸發錯誤計數152自EPRC 144載入新計數值。
EPR及位址164表示用以儲存具有最高數目個錯誤之列之錯誤計數及位址的暫存器或儲存位置。在一個實例中,EPR及位址164表示可由主機存取之暫存器,諸如模式暫存器。發佈載入之錯誤計數及位址以供主機存取。在一個實例中,來自邏輯150之指示較高錯誤計數的輸出信號觸發高錯誤計數152以將新的高錯誤計數以及高錯誤位址154之位址發送至EPR及位址164。在一個實例中,當高錯誤計數152載入新的高錯誤計數時,高錯誤位址154鎖存位址。
錯誤計數162以及EPR及位址164之提供可被稱作提供錯誤透明度或透明度資料。透明度資料使主機或記憶體控制器能夠洞察記憶體內之錯誤。更特定而言,如下文更詳細地描述,主機可基於由記憶體裝置提供之錯誤透明度資料而判定錯誤型樣且判定需要或建議錯誤刷洗。
圖2為用以控制記憶體上錯誤檢查及刷洗系統之刷洗速率的系統之實例的方塊圖。系統200表示記憶體子系統之組件。系統200包括根據圖1之系統100的錯誤刷洗引擎。
記憶體控制器210表示系統200之主機,且記憶體模組250表示包括多個記憶體裝置260之模組。在一個實例中,記憶體模組250表示雙列直插記憶體模組(DIMM),且記憶體裝置260表示模組上的動態隨機存取記憶體(DRAM)裝置。
在一個實例中,記憶體控制器210包括錯誤控制220,該錯誤控制表示記憶體控制器210內用以對自記憶體裝置260接收到之資料執行錯誤校正的邏輯或電路系統。記憶體裝置260包括用以在記憶體裝置260內執行錯誤檢查及校正之ECC 272。ECC 272可被稱作記憶體裝置之裝置上或晶粒上ECC,其不同於記憶體控制器210之錯誤校正222。ECC 272可在本端對儲存於陣列262內之資料操作。陣列262表示記憶體裝置260內之記憶體胞元。陣列262可包括記憶體之多個列。校正222表示在全系統層級並行地對來自多個記憶體裝置260之資料進行的錯誤校正。校正222可偵測及校正來自多個記憶體裝置260之資料中的錯誤。校正222可為記憶體控制器210內用以對自記憶體裝置260接收到之資料執行與錯誤檢查及校正相關之操作的錯誤校正邏輯或錯誤校正電路。
在一個實例中,錯誤控制220在系統層級對資料校正中之錯誤進行計數。計數224表示由錯誤控制220管理之錯誤計數,其與記憶體裝置260之錯誤計數器274分開。記憶體裝置260之ECS引擎270內的錯誤計數器274表示儲存由錯誤計數器產生之錯誤計數的一或多個計數器或錯誤暫存器。錯誤計數器之使用可根據關於參考系統100所描述的內容。錯誤計數器274在記憶體裝置260內部且可表示在資料被發送至記憶體控制器210之前由記憶體裝置校正的SBE之數目。在一個實例中,記憶體裝置260將不會發送具有單位元錯誤之資料至記憶體控制器210,此係因為該等錯誤將已在記憶體內被校正。
在一個實例中,計數224表示在自記憶體裝置260發送之資料中的由記憶體控制器210計數之多位元錯誤(MBE)的數目。在一個實例中,MBE之數目將表示記憶體裝置在執行內部ECC時遇到的不可校正錯誤。實務上,可在自記憶體裝置260發送之資料中偵測到及校正某些SBE,即使記憶體裝置應在將所有SBE發送至記憶體控制器210之前校正其亦如此。SBE可能由於一位元之傳輸或偵測中的錯誤而發生,其可在記憶體控制器210處被校正。在一個實例中,錯誤控制220僅追蹤MBE,甚至在錯誤校正222校正SBE時亦如此。SBE可表示資料通訊中之瞬時錯誤,而MBE可表示記憶體裝置260之資料內的更顯著錯誤。當晶粒上ECC對相比發送至記憶體控制器之部分更大的資料部分執行校正時,SBE亦可能會因記憶體錯誤而存在。舉例而言,若晶粒上ECC對128個位元執行校正且記憶體裝置僅將64個位元發送至記憶體控制器,則所發送之資料中可能存在SBE。
在一個實例中,錯誤控制220包括用以執行自記憶體裝置260接收到之錯誤之關聯的邏輯。下文更詳細地描述錯誤關聯及對關聯錯誤之回應。在一個實例中,錯誤控制220將錯誤計數及潛在地關聯之位址資訊傳遞至刷洗速率邏輯230。刷洗速率邏輯230表示記憶體控制器210內用以觸發對記憶體裝置260之刷洗速率之調整的邏輯或電路系統。
在一個實例中,刷洗速率邏輯230自系統200內之一或多個感測器240接收輸入。舉例而言,溫度感測器(TEMP 242)、電壓感測器或其他感測器可指示系統200內可能觸發錯誤增加之環境條件或影響記憶體中之錯誤率的環境條件。在一個實例中,刷洗速率邏輯230可回應於錯誤率之增加而觸發刷洗速率之增加。在一個實例中,刷洗速率邏輯230可回應於錯誤率之減小而觸發刷洗速率之減小。在一個實例中,刷洗速率邏輯230可基於改變感測器資料而分別以錯誤率之預計增加或減小來觸發增加或減小。因此,記憶體控制器210可基於預期錯誤而並非僅基於偵測到之錯誤率增加而主動地改變刷洗速率。預測性刷洗速率增加可在錯誤率增加發生之前降低其可能性。舉例而言,可用與基於溫度臨限值或電壓臨限值之可能錯誤率相關的資訊來規劃刷洗速率邏輯230。回應於達到一或多個臨限值,刷洗速率邏輯230可觸發記憶體裝置260內之刷洗速率之對應改變。
在一個實例中,記憶體裝置260包括暫存器264,該暫存器表示允許記憶體控制器210組配記憶體裝置260之操作模式的模式暫存器或組態暫存器或組態記憶體。在一個實例中,暫存器264表示記憶體模組250上之暫存器,其將適用於多個記憶體裝置260,諸如記憶體模組250上之暫存時脈驅動器(RCD)或其他控制器邏輯上之組態。暫存器264包括可由記憶體控制器210設定以觸發記憶體裝置260中之刷洗速率改變的一或多個欄位。在一個實例中,刷洗速率改變可根據記憶體裝置260之二個或多於二個可選擇刷洗速率。
在一個實例中,基於在暫存器264中設定之組態資訊,ECS引擎270之刷洗速率控制276可調整對記憶體裝置260執行ECS操作之速率。在一個實例中,刷洗速率控制276表示巡邏刷洗操作之速率,該等巡邏刷洗操作表示在固定時段內遍及諸如整個記憶體之整個位址區段系統地執行刷洗操作的操作。在一個實例中,ECS引擎270可被稱作用以對陣列262之記憶體資源執行錯誤刷洗操作的錯誤刷洗邏輯或ECS邏輯或錯誤刷洗電路或ECS電路。
在一個實例中,ECS引擎270可運用錯誤計數器274偵測錯誤增加,且在記憶體裝置260內自主地增加或減小刷洗速率。自主調整係指基於錯誤計數器274而未必基於記憶體控制器210之命令或組態控制而調整刷洗速率控制276。在一個實例中,錯誤計數器274將錯誤計數資訊提供至記憶體控制器210之刷洗速率邏輯230,諸如經由控制信號線或經由將資訊提供至可由記憶體控制器210讀取之暫存器。因此,記憶體控制器210可偵測錯誤率之改變,且基於指示錯誤率之改變的自記憶體裝置接收到之資料或來自記憶體裝置之信號而觸發刷洗速率之改變。
在一個實例中,刷洗速率邏輯230可監測由錯誤計數器274所指示之錯誤率,且基於錯誤率增加而觸發刷洗速率控制276之改變。在一個實例中,刷洗速率邏輯230使如自錯誤計數器274所指示之SBE錯誤之增加或減少與錯誤控制220所見之MBE錯誤之增加或減少關聯,以判定是否調整刷洗速率。舉例而言,SBE之增加結合SBE或MBE之增加可指示更多不可校正錯誤或更多混淆錯誤,此可指示例如列錘攻擊。混淆錯誤係指藉由將ECC應用於多位元錯誤而在記憶體資料中產生的錯誤。
應理解,可根據協定將錯誤資訊自記憶體裝置260傳遞至記憶體控制器210且藉由記憶體控制器210設定組態以調整刷洗速率。協定係指裝置之間的通訊慣例。在一個實例中,基於協定,記憶體控制器210可回應於錯誤或系統條件而請求藉由晶粒上ECS引擎270改變記憶體裝置260之刷洗速率。
應理解,調整刷洗速率之記憶體控制器可觸發記憶體裝置260之內部刷洗速率的改變,而非記憶體控制器發送特定命令以觸發更多ECS操作或更多刷洗操作。記憶體控制器210可例如回應於監測到預期錯誤之改變或實際錯誤之改變而觸發改變。
手動ECS模式可指記憶體控制器210管理ECS操作之模式,其中記憶體控制器210負責將ECS命令發送至記憶體裝置260。自動ECS模式可指在再新時段或其他閒置時間期間藉由記憶體裝置260在內部管理ECS操作之模式。替代發送特定ECS命令,記憶體控制器210僅需要為記憶體裝置260提供再新命令以在自動模式中管理ECS操作。
在一個實例中,動態地減少ECS引擎270刷洗表示記憶體裝置260之記憶體胞元之整個陣列262所花費的時間需要改變平均週期性ECS間隔(tECSint)。tECSint表示完成陣列262之整體刷洗的時間(例如,以秒計)除以完成ECS之一個完整循環的個別ECS操作之總數。tECSint判定在處於自動ECS模式中時主機發出REFab命令或自我再新模式之間的最大時間間隔,或在處於手動ECS模式中時手動ECS命令之間的時間。在一個實例中,記憶體控制器210監測tECSint以便能夠發出週期性REFab命令或自我再新時段以供ECS引擎270執行自動ECS操作。在一個實例中,記憶體裝置260可在將REFab命令用於正常再新操作或刷洗操作之間進行選擇。
在一個實例中,記憶體控制器210經由刷洗速率邏輯230判定需要多頻繁地將命令發送至記憶體裝置260,以使得自動ECS操作能夠在時段(例如,24小時(24 h)、10小時(10 h))內執行整個陣列之刷洗。因此,記憶體裝置260更改tECSint,諸如在刷洗速率控制276中,以確保使用額外再新時間用於刷洗。
在一個實例中,記憶體控制器210可觸發記憶體裝置260以經由設定暫存器264調整刷洗速率。在一個實例中,記憶體控制器210可觸發記憶體裝置260以基於特殊命令而調整暫存器264之設定,從而調整刷洗速率。
圖3為執行內部錯誤校正及刷洗且在再新循環期間儲存錯誤資訊之系統之實例的方塊圖。系統300表示記憶體子系統之組件。系統300包括根據圖1之系統100的錯誤刷洗引擎。系統300可包括於使用具有內部ECC之記憶體的任何類型之計算裝置或電子電路中,其中記憶體裝置對錯誤資訊進行計數。處理器310表示基於儲存於記憶體330中或待儲存於記憶體330中之資料而執行操作的任何類型之處理邏輯或組件。處理器310可為或包括主機處理器、中央處理單元(CPU)、微控制器或微處理器、圖形處理器、周邊處理器、特殊應用處理器或其他處理器。處理器310可為或包括單核心或多核心電路。
記憶體控制器320表示用以與記憶體330介接且管理對記憶體330之資料之存取的邏輯。在一個實例中,記憶體控制器320整合至處理器310中。自記憶體330之視角,處理器310及記憶體控制器320一起可被視為「主機」,且記憶體330儲存主機之資料。記憶體控制器320包括輸入/輸出(I/O) 312,輸入/輸出312包括用以與記憶體330之對應I/O 332互連的硬體資源。
記憶體控制器320之命令邏輯322表示用以產生命令且將命令發送至記憶體330之邏輯或電路系統。再新(REF)控制324表示記憶體控制器320內用以控制再新命令至記憶體330之發送的邏輯或電路系統。再新命令可包括外部再新命令,其中記憶體控制器320提供待再新之記憶體330之列的位址資訊或自我再新命令,以觸發記憶體330進入低功率狀態且在內部產生待再新之列的位址。
ECS控制326表示記憶體控制器320內用以將錯誤刷洗應用於記憶體330之邏輯或電路系統。在一個實例中,記憶體控制器320可發送用於記憶體330之直接命令以執行刷洗操作。在一個實例中,記憶體控制器320可設定記憶體330內之模式(例如,經由暫存器或模式暫存器),以觸發記憶體產生位址且控制刷洗操作之執行。此模式可被稱作自動刷洗或自動ECS模式,其中記憶體330控制ECS操作之執行。在一個實例中,記憶體330在自我再新期間(例如,在記憶體控制器320將記憶體330置於自我再新模式中之時間)或回應於全記憶體組再新命令而執行ECS操作。因此,對於自動ECS,記憶體控制器320僅需要確保向記憶體330提供足夠的再新命令,且記憶體330將判定何時執行ECS操作。
在一個實例中,ECS控制326表示記憶體控制器320內用以監測及關聯記憶體330內之錯誤之發生的邏輯或電路系統。回應於錯誤,記憶體控制器320可將錯誤關聯成將指示列錘條件之錯誤型樣。回應於列錘條件,在一個實例中,記憶體控制器320可建議記憶體330之特定位址以考慮ECS操作,增加被提供至記憶體330之再新循環之數目以允許其執行更多ECS操作,或執行其他列錘緩解,或組合。
在一個實例中,ECS控制326表示記憶體控制器320內用以執行ECS操作之邏輯或電路系統。在一個實例中,記憶體控制器320包括可類似於參考系統100所描述之引擎的錯誤檢查及刷洗(ECS)引擎。儘管通篇描述皆提及由具有記憶體上ECS及ECC組件之記憶體控制器執行的ECS操作,但記憶體控制器320可包括此等組件且使用該等組件將錯誤刷洗應用於記憶體330。記憶體控制器320可向記憶體330發信以基於記憶體控制器處之ECS操作而調整記憶體之ECS操作(例如,調整刷洗頻率,提供待刷洗位址之建議或其他操作)。在一個實例中,記憶體控制器320處之ECS邏輯可被視為如本文中所描述之錯誤控制邏輯或錯誤邏輯之部分。
通篇描述皆提及記憶體控制器或主機回應於來自ECS操作之資料而在無記憶體之情況下判定引發或觸發操作。在一個實例中,此等描述可應用於ECS操作由記憶體控制器320之ECS控制326執行的系統300之實例。因此,基於由ECS控制326執行之操作,記憶體控制器可判定列錘攻擊是否正在記憶體330上發生,可判定是否提供提示及將何些提示提供至ECS控制350,可判定將何些權重應用於ECS控制350內之邏輯,可調整記憶體之ECS控制350進行錯誤刷洗操作之速率,或其他操作,或操作之組合。計數器328可表示用於ECS操作之一或多個計數器,其類似於ECS控制350可包括以向記憶體控制器320報告錯誤透明度資料之計數器。
記憶體330包括命令(CMD)執行334,該命令執行表示記憶體裝置內用以接收及執行來自記憶體控制器320之命令的控制邏輯。在一個實例中,命令執行334產生待在記憶體330內執行之與ECC及錯誤刷洗相關的內部操作。命令執行334可產生用於內部操作之命令,該等操作可包括記憶體裝置在ECS模式中執行以記錄錯誤計數資訊之一系列ECC操作。在一個實例中,模式暫存器336包括用以儲存錯誤計數資訊之一或多個多用途暫存器。在一個實例中,模式暫存器336包括可由記憶體控制器320設定以使得能夠重設錯誤計數資訊之一或多個欄位。
記憶體330包括再新(REF)控制338,該再新控制表示記憶體330內用以管理記憶體內之再新操作的邏輯。在一個實例中,再新控制338可為命令執行邏輯之部分。再新控制338使得記憶體330能夠管理再新操作。再新控制338可在自我再新模式中控制記憶體330之操作。在一個實例中,再新控制338可在處於自我再新模式中時觸發ECS操作。在一個實例中,再新控制338可回應於全記憶體組再新命令而觸發ECS操作。
記憶體330包括陣列340,該陣列表示資料儲存於記憶體裝置中之記憶體位置的陣列。陣列340表示可組織為記憶體組或記憶體組群組之記憶體位置。在一個實例中,陣列340之各位址位置344包括相關聯資料及ECC位元。在一個實例中,無論位元數目表示可定址資料,字位址位置344皆表示可定址資料塊,諸如資料位元組或資料字。陣列340包括N列342,且列342包括M個記憶體位置。在一個實例中,列342對應於記憶體頁面或字線。
在一個實例中,位址位置344對應於記憶體字,且列342對應於記憶體頁面。記憶體頁面係指為記憶體存取操作分配之記憶體空間的粒度大小。在一個實例中,陣列340具有較大數目個位元以除資料位元之外亦容納ECC位元。因此,正常頁面大小將包括為資料位元分配的足夠空間,且陣列340為資料位元加ECC位元分配足夠空間。
在一個實例中,記憶體330包括由ECS控制350管理之內部ECC。記憶體控制器320管理全系統ECC,且可跨越多個不同記憶體資源(例如,記憶體330之多個裝置)並行地偵測及校正錯誤。用於全系統ECC之許多技術已為吾人所知且可包括以跨越多個並行資源散佈資料之方式管理記憶體資源。藉由跨越多個資源散佈資料,錯誤藉由使用跨越資源而散佈之資料復原的可能性較大,且甚至在記憶體330中發生一或多個失敗之情況下,記憶體控制器320亦可復原資料。記憶體失敗通常分類為:軟錯誤或軟失敗,其為通常由隨機環境條件造成之瞬時位元錯誤;或硬錯誤或硬失敗,其為由於硬體失敗而發生的非瞬時位元錯誤。硬錯誤亦可被稱作永久故障,其中硬體失敗導致位址處的硬失敗,其不可藉由簡單地將新的正確資料寫入至位置位址來復原。
在一個實例中,ECS控制350包括列342之單位元錯誤(SBE)計數352,該計數可表示偵測到及校正之SBE的總數或包括至少一個SBE之列342的數目。在一個實例中,ECS控制350包括最大計數(CNT)/位址(ADDR) 354,其表示儲存每列具有最多錯誤之列中的錯誤之計數及該列之位址的暫存器。應理解,在一個實例中,僅指示單個最大錯誤計數,即使多於一列具有相同數目個錯誤亦如此。在一個實例中,ECS控制350包括更多計數器。ECS控制350包括用以執行錯誤檢查及校正之ECC邏輯(未具體展示)。ECS控制350之操作可根據系統100之實例。
在一個實例中,ECS控制350包括ECS速率356,該ECS速率表示用以調整ECS操作之速率的暫存器或組態設定。在一個實例中,記憶體330包括多頻繁地執行巡邏刷洗之可選擇選項,例如每24小時一次,或某一其他時間範圍,諸如12小時、10小時、16小時或某一其他時段。在一個實例中,調整ECS速率356可在執行階段期間或在記憶體330之操作期間動態地發生,而非在記憶體初始化時發生。因此,相較於當初始化記憶體時,可在記憶體330儲存可使用資料時調整ECS速率356。在一個實例中,ECS控制350回應於記憶體330中之錯誤的增加而調整ECS速率356。在一個實例中,記憶體控制器320判定記憶體330及其他並行記憶體裝置中有多少錯誤應該會觸發ECS速率356之增加。因此,記憶體控制器320可指示記憶體330何時應增加ECS速率356。類似地,當錯誤條件改善時,記憶體控制器320可向記憶體330指示將ECS速率356減小至不同速率。
在一個實例中,ECS控制350可將ECS速率356調整至不在諸如表之可選擇清單上的刷洗速率。舉例而言,ECS控制350可能不基於表值而基於調整刷洗間隔之可組配值來調整ECS速率356。因而,相比簡單地自表選擇值,ECS控制350可更精細地調整ECS 356。此操作可使得ECS控制350能夠對可導致錯誤增加之環境改變作出回應,且接著在條件消退時放寬速率。一個此類實例可為當記憶體控制器320之ECS控制326偵測到指示列錘條件之錯誤型樣時。在一個實例中,記憶體控制器320可向記憶體330指示條件,該記憶體可接著調整ECS速率356,或記憶體控制器320可指示應增加ECS速率。
圖4為用於改變晶粒上錯誤刷洗之速率的程序之實例的流程圖。程序400表示基於偵測到記憶體裝置之錯誤率改變而改變晶粒上ECS操作的程序。
在一個實例中,在402處,記憶體控制器基於來自記憶體自身之指示、基於記憶體控制器進行之偵測或基於感測器資料而偵測增加的記憶體錯誤率。在一個實例中,來自記憶體之指示可為來自記憶體上之ECS系統的錯誤率之指示。在一個實例中,記憶體控制器進行之偵測可包括記憶體控制器偵測錯誤率增加。在一個實例中,偵測可指基於感測器資料而偵測預測錯誤率增加。雖然參考記憶體控制器來指示偵測,但在一個實例中,記憶體裝置在其ECS系統內偵測錯誤增加且基於錯誤率增加之內部偵測而判定調整刷洗速率。
在一個實例中,在404處,記憶體控制器發送改變記憶體之ECS速率的命令。該命令可為設定暫存器之組態的命令,諸如模式暫存器設定。在一個實例中,命令可為觸發ECS操作之速率之改變的特殊命令。若記憶體裝置偵測到錯誤,則在一個實例中,不需要外部命令來調整刷洗速率,而是記憶體裝置可在內部調整刷洗速率。
在406處,記憶體裝置基於速率改變而調整ECS時序。在一個實例中,ECS時序係指基於記憶體應在每個不同時段內被完全刷洗一次之判定的ECS操作之間的時間間隔。
在一個實例中,在408處,記憶體控制器排程再新操作以支援ECS速率改變。在一個實例中,ECS之速率改變係指記憶體裝置之內部ECS引擎的刷洗速率,該內部ECS引擎由記憶體裝置在自動模式中管理。記憶體裝置在再新時間期間管理ECS操作,且記憶體控制器確保向記憶體裝置提供足夠的再新時間以使得記憶體裝置能夠以針對裝置所設定之速率執行ECS操作。
圖5為用以自錯誤刷洗計數中排除離線列之系統之實例的方塊圖。系統500說明耦接至主機之記憶體。主機510表示主機計算系統。主機510包括主機硬體,諸如處理器520及記憶體控制器530。亦包括於主機硬體中的組件包括用以提供主機510與記憶體550之間的互連的硬體互連件及驅動器/接收器硬體。記憶體550表示耦接至主機510之一或多個記憶體裝置,該一或多個記憶體裝置由記憶體控制器530管理。記憶體控制器530包括根據系統100、系統200或系統300之錯誤監測及控制。
主機硬體支援主機510上之主機軟體的執行。主機軟體可包括主機作業系統(OS) 540。主機OS 540表示軟體平台,其他軟體將在該軟體平台下執行。主機OS 540提供控制以與硬體互連件介接,從而耦接至記憶體550。
在執行期間,主機OS 540提供存取記憶體之請求。該等請求可直接來自主機OS軟體,可為經由應用程式設計介面(API)或供在主機OS 540下執行之程式請求記憶體存取的其他機制的請求。回應於主機記憶體存取請求,記憶體控制器530將對記憶體資源之基於主機之定址映射至記憶體550之實體位址位置。
回應於記憶體錯誤,記憶體控制器530可判定應自使用中移除記憶體之一或多個位址。在一個實例中,主機OS 540可偵測被提供至各種應用程式之頁面中的錯誤,且主機OS可請求記憶體控制器530將頁面離線。因此,記憶體控制器530可基於其操作或根據主機OS 540之請求而判定自使用中移除一或多個位址。通常對具有失敗之位址列或快取行(CL)執行頁面離線。因此,記憶體控制器530可將某些列或快取行離線且經由主機OS 540將請求重新映射至不同實體記憶體位置。離線位址532表示記憶體控制器已離線之位置的位址。在一個實例中,當記憶體550中已發生硬錯誤時但在記憶體控制器530可執行永久故障偵測(PFD)常式、封裝後修復(PPR)常式或將資料移動至記憶體內之備用位置的其他程序之前,在轉變時間期間不向記憶體550報告離線位址532,因此改變記憶體550內之某些資料的定址。
在傳統上,記憶體控制器530並不指示列何時已離線。因此,由ECS 552表示之在刷洗期間維持由晶粒上ECC偵測到之錯誤之計數的記憶體上ECS系統在傳統上將報告與記憶體控制器532已離線之列相關的錯誤。
在系統500中,ECS 552包括離線位址554,該等離線位址表示記憶體控制器530至ECS 552之對離線位址532中之一或多者的指示。在一個實例中,理想情形將為離線位址554包括離線位址532中之所有位址。在轉變期間,位址之清單可能不完全匹配。在一個實例中,ECS 552自ECS錯誤計數中排除離線位址554。
在一個實例中,當ECS 552執行ECS操作時,其對照離線位址554檢查ECS操作之目標位址以判定ECS目標位址是否已離線。因此,ECS 552可藉由包括線上記憶體中之錯誤及避免包括離線的、可能失敗的列之錯誤計數來維持更準確的錯誤計數。應理解,相比任何線上列,具有許多錯誤之失敗列可具有更多錯誤,此將意謂對離線列中之錯誤進行計數將會掩蔽具有最高錯誤計數之線上列,使其不會在錯誤計數指示中報告給記憶體控制器530。當ECS 552考慮離線位址時,透明度資訊可更準確地反映線上記憶體。
圖6為錯誤檢查及刷洗邏輯之適應性位址產生邏輯之實例的方塊圖。系統600表示根據系統100之實例的位址控制邏輯之位址產生元件。
位址(ADDR)產生邏輯620表示記憶體上之ECS系統中的記憶體上邏輯。位址產生邏輯620產生位址資訊以識別用於ECS邏輯之ECS操作的列。位址630表示輸出至ECS邏輯以用於錯誤檢查及刷洗之所產生位址,其可包括錯誤透明度計數。
在一個實例中,位址產生邏輯620包括計數器、暫存器、指標或用以產生位址之其他邏輯。在傳統上,位址產生邏輯620將依序遍歷位址空間以在自動ECS操作中執行巡邏刷洗。位址產生邏輯620包括為待刷洗之記憶體空間產生依序位址資訊的能力。位址產生邏輯620亦包括暫停依序位址產生且對非依序之選定列執行刷洗或自刷洗或錯誤計數中排除選定位址的能力。
在一個實例中,位址產生邏輯620接收ECS模式檢查612作為輸入,該ECS模式檢查表示經組配以供ECS邏輯執行之ECS模式。舉例而言,一個模式可指示應跳過對排除位址之錯誤刷洗。在另一實例中,另一模式可指示應對排除位址執行錯誤刷洗,但應自計數中排除結果。
在一個實例中,位址產生邏輯620接收輸入ECS操作觸發614,該ECS操作觸發表示執行ECS操作之命令或觸發。對於手動ECS操作,觸發可呈由記憶體控制器發出之ECS命令的形式。對於自動ECS操作,觸發可為再新命令,其觸發記憶體裝置之內部控制器以產生內部ECS操作。對於內部觸發,位址產生邏輯620為ECS操作產生位址資訊。對於手動ECS操作,位址產生邏輯可設定多工器以選擇由記憶體控制器設定之外部位址用於刷洗,此可繞過錯誤計數。
在一個實例中,位址產生邏輯620包括位址(ADDR)排除邏輯622,該位址排除邏輯表示位址產生邏輯620內排除位址資訊且執行與排除位址之比較的邏輯或電路系統。在一個實例中,位址產生邏輯620可儲存位址資訊或存取具有排除位址之位址資訊的儲存器。若所產生位址匹配排除位址,則位址產生邏輯620可自被提供至主機之透明度資訊中排除錯誤計數。
在一個實例中,位址產生邏輯620包括位址(ADDR)提示邏輯624,該位址提示邏輯表示位址產生邏輯620內用以提供來自主機之用於ECS操作之位址選擇的提示。在一個實例中,位址產生邏輯620可儲存位址資訊或存取具有主機希望已刷洗之位址之位址資訊的儲存器。在一個實例中,位址產生邏輯620可將所建議位址資訊與內部位址資訊進行因子化(factor),且可選擇是否依序繼續或是否選擇由主機所建議之一或多個位址用於刷洗。
圖7為具有適應性位址產生邏輯之錯誤刷洗引擎之實例的方塊圖。系統700表示根據系統100之實例的錯誤刷洗邏輯。系統700表示與系統500之離線相容的錯誤刷洗邏輯。系統700提供在內部記憶體刷洗操作期間應用記憶體位址排除的實例。
系統700並未明確地說明記憶體控制器及記憶體裝置。系統700之記憶體控制器及記憶體裝置可根據系統500之記憶體控制器530及記憶體550的實例。系統700包括可根據系統100之實例的ECS系統之元件。位址控制720可包括根據系統600之實例的位址產生邏輯。
錯誤計數及透明度邏輯770表示ECS系統之邏輯,該邏輯執行錯誤之計數及將錯誤計數載入至可用於記憶體控制器之暫存器中。錯誤計數及透明度邏輯770提供系統700之錯誤計數邏輯或錯誤計數電路系統。ECC邏輯750表示可偵測及校正記憶體陣列中之SBE或偵測記憶體陣列中之MBE的錯誤檢查及校正邏輯。如同上文的系統100,錯誤計數及透明度邏輯770使得ECS能夠維持在刷洗期間偵測到之錯誤的計數。在一個實例中,ECS系統對含有至少一個錯誤之列之數目進行計數且報告具有最高錯誤計數之位址。在一個實例中,ECS系統對具有錯誤之快取行(CL)或資料字(其中一列可包括多個字或快取行)進行計數且報告具有最高錯誤計數之列位址。
在一個實例中,系統700包括ECS計數器邏輯內用以儲存離線或排除位址之儲存單元。在一個實例中,系統700實施一或多個協定以在記憶體控制器與記憶體裝置之間傳送及管理離線頁面位址。在一個實例中,系統700實施一或多個協定以管理離線頁面之刷洗以及自藉由ECS系統提供至記憶體控制器之錯誤計數資訊中排除離線頁面。
當系統選擇將具有大量錯誤之頁面離線時,系統700可與典型ECS系統不同地操作。替代繼續刷洗此等區域且將結果包括於錯誤計數中,系統700可忽略關於所報告錯誤計數之刷洗結果。因此,根據系統700之ECS透明度邏輯將報告具有最高錯誤計數之線上區域,而非潛在地將離線區域報告為具有最高數目個區域之區域。
系統700包括位址控制720,該位址控制可為根據系統100之實例的位址控制。系統700包括排除位址(ADDR)記憶體732,該排除位址記憶體表示用以包括離線列之N個位址(ADDR[N-1:0])的儲存器。在一個實例中,排除位址記憶體732為位址控制720之部分。在一個實例中,排除位址記憶體732與位址控制720分開,但為ECS引擎之部分。在一個實例中,排除位址記憶體732與位址控制720分開且與ECS引擎分開,但可由ECS引擎存取。
排除位址記憶體732表示具有排除位址之儲存器。在刷洗期間,位址控制720可對照排除位址記憶體732中之排除位址清單檢查待刷洗之位址。若位址不含於排除位址清單中,則ECS操作可繼續而不進行先前所描述之任何修改。在一個實例中,若位址含於排除位址清單內,則修改ECS操作。
在一個實例中,組態設定諸如經由模式暫存器可選擇用於經修改ECS操作之二個選項中之一者。在一個實例中,該等選項中之一者或另一者為在發現排除位址時的預設ECS操作。在一個實例中,當遇到排除位址時,以下選項中之僅一者可用於ECS系統。下文關於系統700之可能操作來解釋該等選項。
在一個實例中,位址控制720產生內部位址資訊,該內部位址資訊展示為比較730之輸入中之一者。比較730表示用以將所產生位址與由主機識別為離線之位址進行比較的位址比較器或比較機制。比較730之另一輸入為排除位址記憶體732。在一個實例中,比較730將由位址控制720產生之位址與排除位址記憶體732中之所有條目進行比較。應理解,至多N個位址可儲存於排除位址記憶體732中,但排除位址可少至零,或1與N之間的任何整數。若排除位址記憶體732中之任何位址與所產生位址匹配,則比較730之輸出經設定為真或設定為1。若位址不匹配,則比較730將輸出零。
在一個實例中,比較730之輸出為用於多工器760之選擇信號,該多工器在「零」輸入上的ECC邏輯750之錯誤偵測信號之間及在多工器之「一」輸入上的硬寫碼零之間進行選擇。因此,當比較730輸出零時,多工器760選擇ECC邏輯750之輸出。當比較730輸出一時,多工器760選擇零。多工器760之輸出被提供至錯誤計數及透明度邏輯770。舉例而言,提供ECC邏輯輸出,該輸出取決於錯誤偵測而可為一或零,或錯誤計數及透明度邏輯770之錯誤計數器的輸入保持為零,因此不對錯誤進行計數。
在一個實例中,將比較730之輸出作為輸入提供至「及(AND)」閘740以與刷洗停用信號進行AND運算。若比較730之輸出為零,意謂發現位址匹配,則無關於刷洗停用之值,AND閘740皆將輸出零,其將啟用ECC邏輯750且將零提供至OR閘710之輸入。當比較730之輸出為一,意謂發現位址匹配時,刷洗停用之值將判定AND閘740輸出一抑或零。若發現位址匹配且刷洗停用為假或設定為零,則AND閘740之輸出將為零,從而啟用ECC邏輯750。當比較730之輸出經設定且刷洗停用經設定時,AND閘740之輸出為一,其將停用ECC邏輯750且在OR閘710之輸入處提供一。
在一個選項中,位址控制720防止ECS系統對排除位址執行刷洗及錯誤計數。因此,回應於排除位址,位址控制720將觸發ECS系統以遞增位址計數器且繼續刷洗循環而不對排除位址執行刷洗。舉例而言,刷洗停用信號可設定為高,意謂當比較730之輸出經確證時,AND閘740將輸出一,從而停用ECC邏輯750且將1提供至OR閘710。在停用ECC邏輯750且選擇自多工器760至錯誤計數及透明度邏輯770之零輸出的情況下,將不對錯誤進行計數,且將不會發生ECC及刷洗操作。OR閘710處之一輸入將觸發位址控制720以遞增位址。
在第二選項中,位址控制720並不防止ECS系統執行排除位址之刷洗,但防止對排除位址上之錯誤進行計數。因此,回應於排除位址,位址控制將觸發ECS以對排除位址執行刷洗,但自列或快取行錯誤計數中排除該位址且接著繼續刷洗循環。舉例而言,刷洗停用將設定為低,意謂AND閘740將始終輸出零,從而啟用ECC邏輯750。當比較730未發現位址匹配時,將選擇錯誤偵測輸入,此意謂當未發現排除位址且未停用刷洗時,ECC邏輯750之輸出將被提供至錯誤計數及透明度邏輯770。當比較730輸出一時,多工器760之零輸入將被選擇且提供至錯誤計數及透明度邏輯770,即使ECC邏輯750將被啟用且「互斥或(XOR)」閘710將不會觸發位址遞增直至信號位址(ADDR)刷洗完成被設定為高。
在任一選項中,可據稱記憶體跳過排除位址之刷洗計數。在一個實例中,記憶體控制器運用特殊組態命令將排除位址資訊提供至記憶體裝置以自ECS計數中排除。在一個實例中,排除位址記憶體732可藉由記憶體控制器寫入,諸如藉由模式暫存器寫入命令或多用途暫存器寫入命令。在一個實例中,記憶體控制器將設定模式暫存器位元以判定ECS系統在遇到排除位址時的行為:是否執行錯誤刷洗且排除結果;或是否簡單地不執行錯誤刷洗。在一個實例中,記憶體控制器具有自排除位址記憶體732清除選定位址的命令。在一個實例中,記憶體控制器可運用單個命令清除整個排除位址記憶體732。
圖8為用於自錯誤刷洗計數中排除離線列之程序之實例的流程圖。程序800表示用於在記憶體裝置內進行內部刷洗及錯誤報告時排除位址的程序。通篇描述將排除位址稱作離線位址。應理解,出於除位址已離線之事實以外的原因,主機可潛在地選擇位址以排除。因此,與離線位址相關之描述通常可指主機判定應自錯誤報告中排除的任何位址。
在一個實例中,在802處,主機向記憶體裝置指示離線或排除位址。在一個實例中,在804處,記憶體裝置將離線位址儲存為ECS排除位址。在一個實例中,主機將位址寫入至記憶體控制器可存取之暫存器或記憶體,在此狀況下,記憶體裝置僅需要存取儲存器以判定排除何些位址。在一個實例中,記憶體控制器針對應排除之各位址發送一命令,且記憶體裝置將該位址記錄於排除位址清單中。
在一個實例中,在806處,主機啟用刷洗操作且記憶體起始刷洗。對於記憶體裝置產生位址資訊且可因此自刷洗中排除位址的自動刷洗,主機可運用組態設定啟用刷洗且接著發送再新命令或自我再新命令以觸發記憶體執行刷洗操作。主機可發送關於在再新時段內實現再新通常將需要之操作的額外再新命令。在一個實例中,記憶體裝置可使用額外再新命令以用於錯誤刷洗。
在一個實例中,在808處,記憶體上之ECS引擎比較所產生位址資訊與排除位址。若不存在位址匹配(在810處,否分支),則ECS引擎在812處執行刷洗操作,且在814處更新刷洗計數資訊。在816處,ECS引擎將載入刷洗計數資訊至一或多個計數暫存器以供主機存取。在824處,ECS引擎可接著在ECS經啟用以執行時遞增位址且繼續ECS操作。
若存在位址匹配(在810處,是分支),則ECS操作將取決於所使用的排除機制。若排除機制為跳過刷洗操作(在818處,排除操作分支),則在一個實例中,在824處,ECS引擎可簡單地在ECS經啟用以執行時遞增位址且繼續ECS操作。
若排除機制為僅排除刷洗計數(818處之排除計數分支),則在一個實例中,ECS引擎在820處刷洗停用計數資訊至(多個)計數暫存器之載入。ECS引擎可接著在822處執行刷洗操作,且在824處,遞增位址且在ECS經啟用時繼續執行ECS操作。
圖9為基於自主機至記憶體上錯誤刷洗引擎之資訊而提供適應性錯誤刷洗操作的系統之實例的方塊圖。系統900可根據系統300之實例。ECS引擎可根據系統100之實例。
記憶體控制器910表示系統900之主機。在一個實例中,記憶體控制器910包括錯誤邏輯912,該錯誤邏輯表示記憶體控制器910內用以對來自記憶體裝置920之資料執行錯誤校正的邏輯或電路系統。在一個實例中,錯誤邏輯912使得記憶體控制器910能夠關聯錯誤日期以偵測錯誤型樣。錯誤型樣可包括跨越多個不同記憶體裝置920之共同位置中的錯誤,或記憶體裝置920內之特定區內的錯誤,或使MBE之增加型樣與SBE關聯,或關聯所儲存之ACT位址周圍的區中之MBE,或其他型樣。
記憶體控制器910包括ECS控制914,該ECS控制表示記憶體控制器910內用以提供與記憶體裝置920之錯誤刷洗相關之命令的控制邏輯或電路系統。在一個實例中,基於由錯誤邏輯912產生之資訊,ECS控制914可產生記憶體控制器910判定應刷洗或將得益於刷洗之位址的提示。該判定可為在特定區域中發現多個SBE或MBE且刷洗可防止發生額外錯誤的判定。
記憶體控制器920可將提示傳遞至記憶體裝置920,該記憶體裝置在控制器922處接收提示。控制器922表示控制記憶體裝置920內部之操作的記憶體上控制器。在一個實例中,控制器922將範圍控制(CTRL) 924應用於所接收提示。範圍控制924表示預設組態或協定設定,控制器922可藉由預設組態或協定設定來解譯由記憶體控制器910提供之提示。在一個實例中,該等提示為由範圍控制924識別為位置範圍之位址,其可包括開始位址及結束位址。在一個實例中,該等提示為個別位址,範圍控制924可藉由包括位址之預設範圍來將該等位址解譯為位址範圍。
控制器922可將位址範圍資訊提供至提示926以儲存於記憶體裝置920內。提示926表示用於來自主機之提示資訊的儲存器。提示926亦可被稱作建議,此係因為記憶體控制器910提供位址資訊以建議用於刷洗操作之位址或位址範圍。提示926可表示ECS引擎930外部之記憶體或儲存位置,或可表示ECS引擎930內之記憶體或儲存位置。
ECS引擎930包括位址(ADDR)產生器932,該位址產生器用以產生用於在記憶體裝置920內執行ECS操作之內部位址資訊。在一個實例中,位址產生器932應用提示926以判定產生何些位址以用於ECS操作。
在一個實例中,ECS引擎930將記憶體刷洗作為連續背景操作執行,以運用晶粒上ECC主動地修正可校正錯誤且偵測不可校正錯誤。基於基於提示926而執行背景ECS操作,ECS引擎930可刷洗記憶體裝置920之否則可能會產生錯誤的區域,此可包括避免不可校正錯誤產生。
在一個實例中,ECS引擎930執行巡邏刷洗。若偵測到可校正錯誤,則刷洗操作可包括讀取記憶體,其後接著寫入至記憶體。在偵測到不可校正錯誤之狀況下,在一個實例中,ECS引擎930毒化資料且將資料寫回至記憶體。在一個實例中,經由機器檢查架構(MCA)報告已校正錯誤及未校正錯誤二者。根據MCA架構,資料毒化之使用可提供錯誤抑制及可能的MCA復原。
基於由記憶體控制器910提供且由ECS引擎930使用之提示926,系統900可操控記憶體刷洗以持續地適應系統環境。提示926可具有可有助於ECS引擎930最佳化其操作的任何性質。在一個實例中,提示926包括與系統上之負載相關的提示或與諸如溫度之環境條件相關的提示。提示可與應力條件相關,該等應力條件可包括環境條件以及其他系統條件,諸如中央處理單元(CPU)負載、網路頻寬使用量、寫入至記憶體之速率或其他條件。
舉例而言,若系統負載較輕,則記憶體子系統可受益於加速巡邏刷洗。在此實例中,提示926可提供位址產生提示以及與ECS之速率相關的提示二者。在一個實例中,提示926可觸發ECS引擎930以調整其刷洗速率,類似於上文參考系統200所論述的操作。在一個實例中,提示926表示特定列位址藉由
在一個實例中,與系統900相關聯之主機OS希望在將記憶體中之給定區指派給應用程式之前刷洗該區。在一個實例中,記憶體控制器910可建議刷洗記憶體裝置920之未充分利用的部分,以便使記憶體之區在記憶體空間之其他部分被存取的同時受益於定向巡邏刷洗,而該存取可更受益於按需刷洗或手動刷洗。在一個實例中,提示926提供在系統900中之巡邏刷洗操作期間主動地尋找可校正及不可校正資料錯誤的手段,此可允許系統軟體提供一種建議刷洗之機制,以根據已校正錯誤率預測未來失敗或自非執行路徑中之未校正資料失敗調用復原。此定向刷洗可避免諸如執行路徑上之MCA復原的其他可靠性、可用性及可服務性(RAS)功能之限制,其中在操作其他功能時,錯誤可能已增加至不可復原。
在一個實例中,記憶體控制器910基於偵測到錯誤或偵測到列錘條件或列錘事件而提供對一或多個區進行刷洗的提示或請求。該等提示向系統900提供一種機制,以藉由刷洗記憶體之特定區域、允許不同區當中的不同刷洗速率(例如,藉由在完成巡邏刷洗之前重複刷洗某些區)或對錯誤率改變、列錘條件或環境條件作出回應來調適錯誤刷洗之應用粒度。
圖10為回應於主機提示之適應性錯誤刷洗引擎的適應性位址產生邏輯之實例的方塊圖。系統1000使得主機提示能夠由ECS引擎之記憶體上位址產生邏輯使用,其可使得能夠進行「預測性記憶體刷洗」,藉以可按可減少發生在記憶體陣列中之錯誤之數目的方式刷洗記憶體。
系統1000說明用於預測性記憶體刷洗器之記憶體上預提取源的組件。系統1000可根據系統900之實例。位址產生可根據系統600之實例。
系統1000包括位址產生器1020,該位址產生器產生用於可包括巡邏刷洗之自動ECS操作的內部位址資訊。在一個實例中,系統1000包括提示1010。說明N個提示(提示[N-1:0])。在一個實例中,主機限於其可向記憶體裝置提供某數目個提示。因此,主機可判定其認為何些提示最重要且基於何些提示更重要而限制所提供的提示。
提示1010可被視為由主機識別或標記為用於刷洗之候選者的位址。主機可提供一個經識別位址用於刷洗,或可提供多個提示1010以提供多個經識別位址用於刷洗。該等提示可被稱作經識別位址,其為由主機識別之主機判定應刷洗的位址。在一個實例中,主機針對各提示而提供一所建議權重,該權重可基於記憶體裝置與記憶體控制器之間的協定而提供。權重可根據提示之組配比例或類型。提示之比例或類型可有助於位址產生器1020判定各種提示之優先級。
在一個實例中,位址產生器1020支援傳統的ECS系統位址產生之舊式操作。線性位址(ADDR)產生器1022可表示將在給定時段內逐步刷洗記憶體陣列中之全部的舊式位址產生器。在一個實例中,可在位址產生器1020內停用提示特徵以使得能夠進行傳統的記憶體刷洗操作。舉例而言,信號舊式刷洗啟用1024可繞過權重仲裁1030以始終將線性位址產生器1022之輸出作為位址輸出提供至記憶體刷洗引擎1040。
如已提及,在一個實例中,位址產生器1020包括加權仲裁1030,該加權仲裁表示在多個可能位址源當中進行選擇的權重仲裁器。在一個實例中,加權仲裁1030係以硬體實施且可被稱作加權仲裁電路。在一個實例中,加權仲裁1030係以硬體或硬體與軟體之組合實施,且可被稱作加權仲裁邏輯。在一個實例中,線性位址產生器1022為權重仲裁1030之輸入中之一者,權重仲裁允許系統1000在依序刷洗操作與主機提示1010之間進行選擇。在一個實例中,位址產生器1020可選擇性地暫停依序刷洗操作,刷洗記憶體之另一區,該區可為已在巡邏刷洗操作中刷洗之區域的重複刷洗,或可為正無序刷洗之區域,且接著在將刷洗應用於所提示位址之後恢復依序刷洗。
權重仲裁1030包括准許在不同位址源之間切換的邏輯。將加權仲裁1030之輸出饋送至記憶體刷洗引擎1040,該記憶體刷洗引擎可為舊式刷洗引擎或具有所描述之其他適應性刷洗特徵的刷洗引擎。在一個實例中,系統1000包括用於仲裁源之可規劃權重。可規劃權重可被稱作源權重。在一個實例中,由主機識別之輸入提示或位址中之各者皆存在相關聯權重。在一個實例中,各相關聯權重可儲存於分開的暫存器中,該暫存器可被稱作儲存用於提示之權重的相關聯暫存器。在一個實例中,權重與提示之間不存在一對一對應。在提示之間不存在一對一對應之情形中,可存在參考權重,其中一個權重與多個提示相關聯,諸如一個權重待應用於一類或一群提示。
仲裁源因此可藉由不同權重暫存器SRC_WEIGHT[N:0]組配。在一個實例中,存在N+1個權重源以提供用於N個提示1010之權重,加上提供用於線性位址產生器1022之權重。可將源權重(SRC_WEIGHT)作為輸入提供至加權仲裁1030,以使得仲裁器能夠基於類型或優先級對不同位址源進行加權。
在一個實例中,系統1000包括源啟用(SRC_ENABLE)控制暫存器SRC_ENABLE[N:0]以個別地啟用或停用不同的刷洗提示源。舉例而言,控制暫存器可包括經指派以個別地啟用/停用各刷洗提示之位元。
在一個實例中,系統1000包括與如由不同提示之佇列表示之各種提示1010相關聯的位址範圍。佇列[N-1:0]可針對各提示提供開始位址及結束位址暫存器,因此提供提示之位址區。
在一個實例中,暫存器SRC_WEIGHT[N:0]在諸如功率控制單元(PCU)之記憶體系統平台代理程式之執行階段期間可存取可規劃,例如基於系統溫度或根據中央處理單元(CPU)利用率。可在執行階段動態地更新暫存器以根據系統之改變條件而動態地調整權重。SRC_WEIGHT[N:0]中之權重值對應於仲裁器將多頻繁地拾取位址以饋送至記憶體刷洗引擎。
在一個實例中,源權重暫存器可被視為與提示1010匹配之旋鈕,以提供影響記憶體刷洗引擎1040之操作從而適應系統之使用的能力。提示之規劃性加權可有助於仲裁器根據所提供之所有提示中的各提示對刷洗動作或刷洗操作之相對重要性來考慮該提示。在一個實例中,權重可藉由記憶體裝置自身或藉由主機或記憶體控制器動態地規劃。在一個實例中,可在記憶體之執行階段期間基於諸如上文所識別之彼等條件的應力條件而動態地調整權重。舉例而言,系統條件之改變可識別一個提示比另一提示更大程度地加權的原因。在另一實例中,系統條件之改變可指示相對於指派給舊式位址產生之權重而改變用於提示之所有權重的原因。
在一個實例中,系統1000包括巡邏刷洗完成指示以標記給定提示/區之刷洗操作的結束。該指示可為可規劃的以支援各種使用模型,諸如用於平台層級處置之系統管理中斷(SMI)、用於向主機板服務處理器指示之底板管理控制器(BMC),或用以通知已校正事件之已校正機器檢查中斷(CMCI),或用以將直接訊息傳遞提供至主機OS之串列通訊介面(SCI)。
圖11為用於基於主機提示進行刷洗之程序之實例的流程圖。程序1100表示用於基於主機提示進行刷洗的程序。該程序可由根據所提供之任何實例的適應性ECS系統執行。
在一個實例中,在1102處,主機偵測記憶體中之錯誤條件或潛在錯誤條件。可自SBE之增加或MBE之增加、如另外所描述之錯誤型樣或其他條件來識別錯誤條件或潛在錯誤條件。在一個實例中,在1104處,主機識別與偵測到之錯誤條件或所預測之錯誤條件相關的記憶體列或區。
在1106處,主機可將位址提示提供至記憶體以供用於刷洗操作中。更具體而言,記憶體之ECS引擎可使用提示資訊來判定何些位址待用於ECS操作。在一個實例中,在1108處,主機直接將提示儲存於ECS引擎可存取之儲存位置中,或記憶體將提示儲存於ECS引擎可存取之位置中。在一個實例中,系統亦可儲存提示權重以供位址產生系統使用,從而動態地調整待在作出關於何些位址待用於錯誤刷洗之決策時應用的權重。權重可因此反映系統中之改變條件,且動態地改變關於何些位址待刷洗之仲裁決策。
在1110處,刷洗引擎在用於刷洗操作之位址產生中將主機提示進行因子化。在1112處,記憶體接著基於選定位址執行刷洗。
圖12為記憶體子系統之實例的方塊圖,在該記憶體子系統中,主機可基於記憶體中之錯誤的型樣而偵測列錘條件。系統1200表示計算系統之元件。系統1200提供根據系統200之實例、系統300之實例或系統900之實例的系統之實例。
主機1210包括產生對儲存於記憶體1230中之資料之請求的一或多個處理器1212 (例如,中央處理單元(CPU)或圖形處理單元(GPU))。在一個實例中,記憶體控制器1220整合至處理器1212上。記憶體控制器1220包括輸入/輸出(I/O) 1226以連接至記憶體1230。I/O包括用以將記憶體裝置互連至主機1210之連接器、信號線、驅動器及其他硬體。I/O 1226可包括如由命令(CMD)匯流排1214表示之命令I/O及由資料(DQ)匯流排(未具體說明)表示之資料I/O。CMD匯流排1214包括使得記憶體控制器1220能夠將命令發送至記憶體1230之命令信號線,該等命令包括啟動命令(ACT)、再新命令(REF)及與ECS操作相關聯之命令(ECS)。
記憶體控制器1220包括用以回應於處理器1212之操作而產生用於記憶體之命令的命令(CMD)邏輯1222。命令可為用於資料存取之命令(諸如,讀取、寫入、再新或其他命令)或用於組態之命令(諸如,模式暫存器命令)。記憶體控制器1220包括用以排程在操作序列中何時發送命令的排程器1224。排程器1224可控制I/O之時序以改善I/O將無錯之機率。命令次序可維持記憶體之高效用以改善資料輸送量。在一個實例中,命令次序可影響刷洗操作之執行,且排程器1224管理命令次序以確保記憶體1240可執行自動刷洗。
系統1200說明記憶體1240中之記憶體裝置的二個排組:Rank[0]及Rank[1]。排組係指共用選擇線(例如,CS信號線)之記憶體裝置的集合或群組。因此,一排組中之記憶體裝置將並行地執行操作。Rank[0]及Rank[1]經說明為包括N個DRAM裝置或DRAM。通常,具有多個排組之系統將在各排組中具有相同數目個DRAM。
Rank[0]之DRAM[0]及Rank[1]之DRAM[0]經展示為包括I/O 1242、暫存器(REG) 1244、控制(CTRL) 1250或控制邏輯1250、列錘(RH)邏輯1252及ECS邏輯1254。此等組件應理解為亦包括於其他DRAM中。I/O 1242表示類似於記憶體控制器1220之I/O 1226的連接硬體。I/O 1242使得DRAM能夠連接至記憶體控制器1220。暫存器1244表示DRAM內之一或多個暫存器,其包括諸如模式暫存器之一或多個組態暫存器。暫存器1244可包括根據上文所描述之內容的ECS操作之組態設定。
控制邏輯1250表示DRAM內用以解碼且執行命令及存取操作之控制組件。控制邏輯1250使DRAM執行內部操作,該等內部操作為執行由記憶體控制器1220起始之存取所需的。在一個實例中,DRAM包括RH邏輯1252,該邏輯表示DRAM內用以執行諸如目標再新命令之列錘緩解的邏輯或電路系統。RH邏輯1252可使得DRAM能夠解碼列錘再新命令以再新一或多個受害者列。
在一個實例中,DRAM包括ECS邏輯1254,該邏輯表示DRAM內用以執行包括位址產生之自動ECS操作的邏輯或電路系統。根據所描述之任何實例,ECS邏輯1254為適應性的,其中ECS邏輯可對主機提示作出回應,ECS邏輯可基於主機提示或排除位址而執行位址產生,或且可基於系統條件而調整或調適其刷洗速率。在一個實例中,ECS邏輯1254亦可對與記憶體控制器1220之列錘判定相關的提示或信號作出回應。
DRAM裝置經說明為具有多個記憶體組(Bank[0:7])。應理解,八個記憶體組為一個實例且不具限制性。其他系統可包括4個記憶體組、16個記憶體組、12個記憶體組或某一其他數目個記憶體組。自定址視角來看,記憶體組之二進位數目更簡單,但出於操作目的而並非必要的,且可使用任何數目個記憶體組。記憶體組1260可用作可由記憶體組編號分開地定址的分開記憶體組。在一個實例中,記憶體組1260組織成記憶體組群組,諸如Bank[0:3]組織為記憶體組群組0 (BG0)且Bank[4:7]組織為BG1。記憶體組群組可替代地為具有例如Bank[0,2,4,6]之BG0或某一其他分組。舉例而言,記憶體組群組通常可被分開地存取,且可使得存取時間能夠短於對同一記憶體組群組中之記憶體組的背對背存取。
在一個實例中,記憶體控制器1220包括用以監測列錘緩解之條件的一或多個啟動計數器(ACT CTR) 1228。在一個實例中,計數器1228偵測發送至記憶體1240之數個啟動命令。追蹤經排程以發送至記憶體1240之啟動命令可指示在再新時段內何時重複地存取特定位址。
在一個實例中,記憶體控制器1220包括永久故障偵測(PFD)引擎1232,該永久故障偵測引擎表示記憶體控制器1220內用以判定在記憶體1240中偵測到的故障為永久故障(亦即,硬故障)抑或瞬時錯誤(軟故障)的邏輯或電路系統。PFD引擎1232可使得記憶體控制器1220能夠判定記憶體1240之DRAM內的錯誤之嚴重性,以判定定向自動ECS操作是否可減少系統1200內的錯誤。在一個實例中,PFD引擎1232可藉由回應於偵測到MBE而將已知型樣(例如,1010…b)寫入至失敗位址來操作。主機可接著讀回資料以確保錯誤為瞬時而非永久的。為確保正確地檢查位址,主機寫入需要確保將資料寫入至陣列(例如,藉由發出預充電且接著再次開啟頁面以進行讀取)而非僅寫入至感測放大器。
在一個實例中,記憶體控制器1220包括錯誤型樣引擎1234,該錯誤型樣引擎表示記憶體控制器1220內用以基於記憶體1240內之錯誤而識別錯誤型樣的邏輯或電路系統。在一個實例中,錯誤型樣引擎1234基於DRAM中之不同錯誤的位址位置而識別型樣。舉例而言,記憶體組群組之類似位址處或同一排組內之DRAM之同一記憶體組位址處的錯誤可為錯誤係經由目標攻擊產生之指示。在一個實例中,錯誤型樣引擎1234可基於來自ECS邏輯1254之ECS資料而識別DRAM內的錯誤,該等錯誤可與由記憶體控制器1220 (未具體說明)之系統層級錯誤校正偵測到的錯誤匹配。
在一個實例中,基於錯誤型樣辨識,記憶體控制器1220可排程額外再新且將ECS提示提供至DRAM。因此,記憶體控制器1220可向ECS邏輯1254指示提示,且提供再新命令以使得ECS邏輯1254能夠執行ECS操作,該等操作可包括考慮ECS提示。
在一個實例中,基於錯誤型樣引擎1234偵測到多位元錯誤,記憶體控制器1220可接合PFD引擎1232以判定錯誤為瞬時的抑或永久的。在一個實例中,回應於判定MBE為瞬時的,記憶體控制器1220判定錯誤與列錘攻擊相關。回應於列錘攻擊之判定,記憶體控制器1220可排程列錘緩解再新或DRAM之再新命令,以執行ECS操作從而刷洗記憶體。
應理解,根據如先前所描述之ECS位址產生,ECS邏輯可對提示作出回應。因而,系統可將列錘目標列位址或列錘受害者列位址提供至用於ECS引擎之提示中。然而,應理解,使用所有列錘資訊作為ECS提示可能會需要不切實際的資源量。藉由允許記憶體控制器1220判定何些位址應用作提示且提供選定位址,系統1200可應用列錘資訊以指導在合理使用DRAM之資源的情況下操控ECS操作。另外,記憶體控制器1220可提供與列錘條件之判定直接相關的提示資訊,以及判定提供不與列錘條件之判定直接相關的提示。
圖13為基於記憶體中之錯誤之型樣的主機偵測而執行列錘緩解的系統之實例的方塊圖。系統1300提供根據系統1200之實例的系統之實例。記憶體控制器1310可被稱作主機控制器或簡單地稱作控制器。記憶體裝置1320可包括具有記憶體胞元之鄰近列的任何類型之記憶體技術,其中資料可經由字線或等效者存取。在一個實例中,記憶體裝置1320包括DRAM技術。再新記憶體裝置1320之列以維持確定性狀態。
記憶體裝置1320包括表示記憶體胞元或儲存胞元之陣列的記憶體陣列1330。一記憶體胞元儲存一資料位元,或一多位準胞元儲存多個位元。記憶體陣列1330包括潛在列錘情形之表示。出於實例之目的,記憶體陣列1330展示記憶體組1340及記憶體組1350。應理解,記憶體陣列1330可包括多個記憶體組,包括未圖示之記憶體組。一般而言,記憶體之記憶體組或子記憶體組包括可與另一記憶體組或子記憶體組之記憶體胞元分開地定址且因此可與記憶體陣列1330之另一部分並行地存取的記憶體胞元。
記憶體裝置1320包括行解碼器(dec) 1332,該行解碼器表示用以基於存取命令而將電荷施加至行的邏輯或電路系統。在一個實例中,行解碼器1332回應於行位址選通(CAS)命令而選擇行。記憶體裝置1320包括列解碼器(dec) 1334,該列解碼器表示用以基於記憶體存取命令而將選擇電壓施加至列的邏輯或電路系統。在一個實例中,列解碼器1334回應於列位址選通(RAS)命令而選擇列。
記憶體控制器1310包括用以產生用於記憶體裝置1320之命令的命令邏輯1314。命令可包括諸如寫入命令或讀取命令之命令。命令亦可包括啟動命令、預充電命令、再新命令或其他命令。在一個實例中,記憶體控制器1310包括再新邏輯1372,該再新邏輯表示用以控制記憶體裝置1320之再新的邏輯。
再新邏輯1372可包括用以判定對記憶體裝置1320之再新之需要的一或多個計數器及用以追蹤再新命令之發送的暫存器空間。再新命令可包括外部再新命令(例如,REFab、REFpb),其中記憶體裝置繼續根據來自記憶體控制器1310之時脈信號而操作。再新命令可包括自我再新命令(例如,SRE),其中記憶體裝置根據內部時脈而非基於來自記憶體控制器之時脈信號而操作。在某些再新命令期間,記憶體裝置1320可根據本文中之任何描述而執行錯誤刷洗。在一個實例中,記憶體控制器1310包括列錘(RH)邏輯1374以使得控制器能夠對列錘條件作出回應。
記憶體控制器1310包括用以管理命令序列之排程及至記憶體裝置1320之發送的排程器1316。排程器1316包括用以判定命令次序以及命令之時序要求的邏輯。記憶體控制器1310必須判定發送何些命令,包括與組配及啟用ECS操作相關的命令。在一個實例中,排程器1316包括用於發送至記憶體裝置1320之緩衝器排入佇列命令。
記憶體控制器1310包括輸入/輸出(I/O)硬體1312。I/O 1312表示收發器及信號線介面硬體以使得記憶體控制器1310能夠經由一或多個匯流排連接至記憶體裝置1320。I/O 1312使得記憶體控制器1310能夠將命令發送至記憶體裝置1320。
為說明列錘條件,記憶體陣列1330包括記憶體組1340中之目標列1342。基於在對目標列1342進行再新操作之前的時段內重複存取該列,實體上接近的列或實體上鄰近的列可遭受儲存於該列中之一或多個值的無意規劃或干擾。受害者列1344表示在重複存取目標列1342時經受列錘的列。當受害者列1344具有發生列錘事件之風險時,目標列1342可被稱作加害者列。記憶體組1340中可存在為目標列1342之受害者列的另一列。
在一個實例中,記憶體組1340亦包括目標列1346。考慮目標列1346在記憶體組邊界處或附近。取決於列之實體佈局的架構,基於對目標列1346之存取,記憶體組1350之邊界上的列亦可具有發生列錘事件之風險。在一個實例中,對目標列之重複存取可導致對多個鄰近列之干擾。如所說明,目標列1346可導致記憶體組1340之受害者列1348及記憶體組1350之受害者列1352二者發生列錘事件。
記憶體裝置1320包括用以與記憶體控制器1310之I/O 1312介接的I/O 1322。I/O 1322具有至I/O 1312之對應信號線以接收命令及位址資訊,從而接收啟動及再新命令以及其他命令。在一個實例中,I/O 1322包括至資料匯流排之介面以與記憶體控制器1310交換資料。
記憶體裝置1320包括暫存器1324,該暫存器表示用以儲存與記憶體裝置1320之操作相關之組態資訊或值的一或多個暫存器或儲存位置。在一個實例中,暫存器1324包括一或多個模式暫存器。在一個實例中,暫存器1324包括組態資訊以控制ECS引擎1326在記憶體裝置1320中應用錯誤刷洗。
記憶體裝置1320包括控制器1380,該控制器表示在記憶體裝置本端的控制器。控制器1380包括用以回應於命令而執行操作的硬體邏輯。控制器1380包括用以控制硬體邏輯且控制記憶體裝置中之操作及操作序列的軟體或韌體邏輯。在一個實例中,控制器1380包括再新邏輯1360。在一個實例中,控制器1380包括ECS引擎1326。控制器1380管理I/O 1322。
在一個實例中,記憶體裝置1320包括再新邏輯1360,該再新邏輯表示記憶體裝置1320內用以管理記憶體陣列1330之再新的邏輯。在一個實例中,再新邏輯1360包括再新(REF)計數器1362及列錘(RH)邏輯1364。再新計數器1362使得再新邏輯1360能夠對用於內部再新操作之位址及時序進行計數。列錘邏輯1364使得再新邏輯1360能夠執行與再新相關的內部操作,再新可包括自我再新。
ECS引擎1326表示根據所描述之任何實例的ECS邏輯。ECS引擎1326應用ECC邏輯1328以執行錯誤檢查及校正,且將錯誤資訊提供至記憶體控制器1310,錯誤邏輯1318可使用該錯誤資訊來識別列錘攻擊之可能性。在一個實例中,錯誤邏輯1318可自錯誤型樣判定記憶體裝置1320內是否存在列錘條件。
在一個實例中,錯誤邏輯1318使用ECC錯誤資訊來偵測列錘攻擊。在一個實例中,啟用命令邏輯1314以發送觸發記憶體裝置1320以傳回資料而不應用ECC邏輯1328的讀取重試命令或類似命令。因此,可任擇地回應於重試命令而停用ECC邏輯1328之應用。當記憶體裝置1320在不啟用SBE之情況下發送資料時,讀取命令之使用可允許主機自特定記憶體裝置1320獲得資料,而不會由於對單位元錯誤之晶粒上ECC錯誤校正而導致任何錯誤校正。錯誤邏輯1318可甚至在無此讀取命令之情況下偵測錯誤型樣。然而,此命令之應用可提供偵測錯誤型樣的另一機制。
在一個實例中,錯誤邏輯1318可經由使用所提及之特殊讀取命令較佳地偵測錯誤型樣。在一個實例中,錯誤邏輯1318可使得記憶體控制器1310能夠基於系統1300中之錯誤資訊而偵測列錘攻擊。在一個實例中,錯誤邏輯1318可基於ECS引擎1326之巡邏刷洗而偵測MBE。列錘位元翻換在本質上為瞬時的,且跨越DIMM上之排組可具有類似位址位置。若錯誤邏輯1318偵測到此錯誤型樣,則其可為系統已受到損害的指示。在一個實例中,錯誤邏輯1318可基於列錘條件之偵測而應用鄰近列定址之知識以進行刷洗。替代簡單地再新受害者列,記憶體控制器1310可觸發記憶體裝置1320之ECS引擎1326以校正受害者列周圍的區或目標列周圍的區。
錯誤邏輯1318可偵測的另一型樣為是否偵測到可校正錯誤(CE)已被偏移預期偏移,被偏移預期偏移可為列錘攻擊之指示。在一個實例中,記憶體控制器1310之RH邏輯1374可維持最近ACT命令之清單以用於機率目標列再新(pTRR),從而判定是否存在與MBE及ACT位址的關聯。強關聯可指示列錘攻擊。在一個實例中,ECC邏輯1328包括晶粒上錯誤計數器。在一個實例中,記憶體裝置1320包括記憶體內建式自我測試(MBIST)引擎以追蹤錯誤。在一個實例中,啟發式DRAM健康監測器可偵測列錘攻擊。
在一個實例中,錯誤邏輯1318可基於在空間分組之列中之錯誤而偵測錯誤型樣。偵測錯誤型樣及回應於型樣偵測而提供列錘回應或ECS操作亦可對列模糊攻擊而非簡單的列錘攻擊有效。即使傳統的列錘緩解技術對簡單的列錘攻擊(亦即,特定加害者列)有效,其未必對列模糊(亦即,同時針對多個不同加害者列)有效。
在一個實例中,錯誤邏輯1318基於由ECS操作或其他ECC操作偵測到之錯誤而偵測錯誤,且執行測試以判定或計算記憶體中是否存在錯誤型樣或錯誤是否僅為隨機/瞬時的。當記憶體控制器1310偵測到錯誤型樣時,記憶體控制器1310可判定記憶體正經歷列錘攻擊,且執行操作以解決列錘條件。操作可包括:限制對記憶體之存取;藉由ECS引擎1326指導額外ECS操作;藉由再新邏輯1360觸發列錘回應機制;或操作之組合。
圖14為具有記憶體裝置之記憶體模組之實例的方塊圖,該等記憶體裝置具有用以提供適應性錯誤刷洗之錯誤邏輯。系統1400提供根據系統200之實例或系統1200之實例的系統之實例。
系統1400說明具有記憶體裝置之系統的一個實例,該等記憶體裝置共用控制匯流排(命令/位址(C/A)匯流排1442)及資料匯流排(資料匯流排1446),該等匯流排經說明為分成用於通道0 (CH[0])及通道1 (CH[1])之二個部分。記憶體裝置表示為動態隨機存取記憶體(DRAM)裝置1430。在一個實例中,二個分開的通道共用控制器1440至RCD 1420的C/A匯流排1442連接。在一個實例中,分開的通道將具有分開的C/A匯流排。DRAM裝置1430可運用裝置特定命令個別地進行存取,且可運用並行命令並行地進行存取。
已暫存時脈驅動器或暫存時脈驅動器(RCD) 1420表示用於雙列直插記憶體模組(DIMM) 1410之控制器。在一個實例中,RCD 1420自控制器1440接收資訊且將信號緩衝至各種DRAM裝置1430。藉由緩衝來自控制器1440之輸入信號,控制器僅可見RCD 1420之負載,RCD 1420可接著控制至DRAM裝置1430的時序及發信。
在一個實例中,RCD 1420經由C/A匯流排1422[0]控制至通道0之DRAM裝置的信號,且經由C/A匯流排1422[1]控制至通道1之DRAM裝置的信號。在一個實例中,RCD 1420具有用於分開通道的獨立命令埠。在一個實例中,DIMM 1410包括用以緩衝DRAM裝置1430與控制器1440之間的資料匯流排信號的資料緩衝器(未說明)。資料匯流排1444[0]提供用於通道0之DRAM裝置的資料匯流排,且資料匯流排1444[1]提供用於通道1之DRAM裝置的資料匯流排。
C/A匯流排1422[0]及C/A匯流排1422[1] (統稱為C/A匯流排1422)通常為用以將命令及位址資訊自控制器1440攜載至DRAM裝置1430之單側匯流排或單向匯流排。因此,C/A匯流排1422可為多點匯流排。統稱為資料匯流排1444之資料匯流排1444[0]及1444[1]在傳統上為雙向點對點匯流排。
在一個實例中,DRAM 1430包括ECC 1432,該ECC表示用於DRAM裝置之ECC邏輯。DRAM 1430包括ECS 1434,該ECS表示根據本文中之任何實例的ECS邏輯。運用DRAM 1430中之ECC邏輯及ECS邏輯,系統1400使得能夠進行根據本文中之任何實例的適應性刷洗操作。
在一個實例中,控制器1440包括錯誤控制1450,該錯誤控制表示根據本文中之任何實例的錯誤控制。錯誤控制1450可偵測DRAM 1430中之錯誤型樣,且回應於偵測到之錯誤型樣而提供ECS操作或再新操作。在一個實例中,如由來自ECC 1432或ECS 1434之錯誤資訊所指示的錯誤型樣指示DRAM 1430內的列錘條件。
在一個實例中,控制1446[0]表示用以啟用Channel[0]之DRAM的信號線,且控制1446[1]表示用以啟用Channel[1]之DRAM的信號線,從而啟用DRAM來提供錯誤資訊以由錯誤控制1450進行評估。因此,錯誤控制1450可接收關於DRAM中之錯誤的資訊以偵測可指示列錘條件之型樣。
圖15為用於關聯記憶體錯誤以偵測列錘條件之程序之實例的流程圖。程序1500表示基於記憶體中之錯誤偵測而識別列錘條件的程序。
在一個實例中,在1502處,記憶體控制器偵測記憶體裝置中之MBE。該偵測可來自記憶體控制器自身上之錯誤校正操作或經由自記憶體裝置接收信號。在一個實例中,在1504處,記憶體控制器與其他錯誤進行比較以判定錯誤是否為錯誤型樣之部分。
若錯誤經判定為並非錯誤型樣之部分(在1506處,否分支),則在1508處,記憶體控制器可根據已知技術觸發錯誤復原之執行。若錯誤經判定為錯誤型樣之部分(在1506處,是分支),則在1510處,記憶體控制器可判定MBE之列位址具有列錘條件。基於列錘條件之判定,在1512處,記憶體控制器可選擇列錘回應且執行回應。列錘回應可包括列錘緩解回應,諸如列錘再新操作,或ECS操作之改變,諸如ECS提示,或某一其他列錘回應,以觸發受害者列或選定記憶體區域中之錯誤校正。
圖16為用以在適應性錯誤刷洗系統中應用矩陣以執行晶粒上錯誤檢查及校正之檢查位元產生邏輯及校正子位元產生邏輯之實例的方塊圖。
H矩陣1610表示用於與裝置上ECC一起使用的碼矩陣之16個位元的實例。應理解,現代計算系統中之典型操作碼字包括多於16個位元。然而,16位元H矩陣說明待用於根據本文中之任何實例的記憶體上錯誤檢查及校正以及錯誤刷洗中之晶粒上ECC的ECC操作之原理。
矩陣1610可為SEC漢明碼之部分,諸如用於128位元碼字之漢明碼。矩陣1610僅說明16個碼,各資料位元[15:0]一個碼位元。在一個實例中,矩陣1610之每個碼對應於一個資料位元。在所說明之實例中,各碼包括8個檢查位元CB[0:7]。當自儲存於記憶體中之資料字及檢查位元計算校正子時,ECC引擎可判定校正子是否對應於矩陣1610中之一個碼。若ECC引擎判定校正子與一個碼匹配,則ECC引擎切換對應資料位元以校正錯誤。說明了檢查位元產生及校正子位元產生之實例。
檢查位元產生邏輯1602表示用以執行ECC操作以產生檢查位元的邏輯。校正子位元產生邏輯1604表示用以執行ECC操作以產生校正子位元來與檢查位元進行比較的邏輯。出於圖式中之說明目的,僅說明與檢查位元CB[0:2]相關的邏輯,且對應地,僅說明校正子位元SB[0:2]。
如所說明,校正子可在ECC邏輯中完全編碼以用於檢查位元產生及校正子位元產生。在一個實例中,檢查位元產生1602包括XOR閘以接收寫入資料字1620,且對碼之一位元執行XOR運算。舉例而言,說明相對於16個碼字位元產生CB[0]的,位元D[10:0]皆為一,而位元D[15:11]為零。因此,在一個實例中,CB[0]之計算包括運用XOR 1622對碼字之位元D[10:0]進行XOR運算。類似地,校正子位元SB[0]之產生包括用以接收讀取資料字1630且運用XOR 1632對讀取資料碼字之位元D[10:0]執行XOR運算的邏輯。接著運用XOR 1642將XOR 1632之輸出與CB[0]進行XOR運算以產生SB[0]。
應理解,自技術上而言,真正的XOR運算可僅針對二個輸入存在,其中當且僅當該等輸入中之僅一者為一,則輸出為一。然而,通常的慣例係將XOR運算之級聯表示為多輸入XOR (意謂輸入之數目大於2),諸如用於CB[0]之XOR 1622及用於SB[0]之XOR 1632。XOR運算具有交換性質,且多對輸入之XOR及接著彼等運算之輸出的串聯XOR可以任何次序互換,得到相同結果。因此,XOR運算具有模2加法之實際效應,其亦等效於奇同位偵測。奇同位偵測在該等輸入當中存在奇數個一時提供「1」作為輸出,且在該等輸入當中存在偶數個一時提供輸出零。
在另一實例中,說明相對於16個碼字位元產生CB[1],位元D[15:10]及D[4:1]為一,且位元D[9:5]及D[0]為零。XOR 1624自一位元計算CB[1]。類似地,對於產生CB[2],位元D[15:9]及D[2:0]為一,且位元D[8:3]為零。XOR 1626自一位元計算CB[2]。
校正子位元產生1604表示用以接收讀取資料字1630及檢查位元字1640且藉由比較CB計算與所儲存之檢查位元來產生校正子位元的邏輯。類似地,說明相對於16個碼字位元之SB[1]的校正子位元產生,XOR 1634計算D[15:10]與D[4:1]的XOR,且接著XOR 1644藉由對CB[1]與XOR 1634之輸出進行XOR來計算SB[1]。類似地,說明相對於16個碼字位元之SB[2]的校正子位元產生,XOR 1636計算D[15:9]與D[2:0]的XOR,且接著XOR 1646藉由對CB[2]與XOR 1636之輸出進行XOR來計算SB[2]。
基於檢查位元及校正子位元之判定,系統可識別錯誤且潛在地翻換位元,例如對於發現與校正子位元匹配的CB[7:0]之位元或行。ECS系統應用此類技術以對記憶體位址執行刷洗。在一個實例中,系統應用ECC之錯誤偵測以偵測記憶體錯誤,且將錯誤資訊提供至記憶體控制器以允許記憶體控制器偵測錯誤型樣並調整根據本文中之任何實例的錯誤刷洗操作。
圖17為適應性錯誤刷洗系統中之晶粒上錯誤檢查及校正之實例的方塊圖。系統1700提供根據系統100之實例的系統之晶粒上ECC電路系統的實例。主機1710包括管理對記憶體1720之存取的記憶體控制器或等效或替代邏輯或電路或組件。主機1710對自記憶體1720讀取之資料執行外部ECC。記憶體1720實施晶粒上ECC以在將資料發送至主機1710之前檢查及校正資料。ECC邏輯可由根據本文中之任何實例的ECS邏輯使用。
系統1700說明記憶體1720中之寫入路徑1732,該寫入路徑表示自主機1710寫入至記憶體1720之資料的路徑。主機1710將資料1742提供至記憶體1720以供寫入至(多個)記憶體陣列。在一個實例中,記憶體1720運用檢查位元產生器1722產生檢查位元1744以與資料一起儲存於記憶體中。檢查位元1744可被稱作ECC位元,且使得記憶體1720能夠校正可能在寫入至(多個)記憶體陣列及自(多個)記憶體陣列讀取中發生的錯誤。可包括資料1742及檢查位元1744作為經寫入至記憶體資源之碼字輸入1746。
讀取路徑1734表示自記憶體1720讀取至主機1710之資料的路徑。在一個實例中,寫入路徑1732及讀取路徑1734之至少某些硬體組件為相同硬體。在一個實例中,記憶體1720回應於來自主機1710之讀取命令而提取碼字輸出1752。碼字可包括資料1754及檢查位元1756。資料1754及檢查位元1756可分別對應於在寫入路徑1732中寫入的資料1742及檢查位元1744。因此,讀取可存取資料及ECC位元。應理解,讀取路徑1734中之錯誤校正可包括將互斥或(XOR)樹應用於對應H矩陣以偵測錯誤且選擇性地校正錯誤(在單位元錯誤之狀況下)。如此項技術中所理解,H矩陣係指展示碼字之數位之線性組合如何等於零的漢明碼同位檢查矩陣。因此,H矩陣列識別待成為碼字之部分之分量或數位必須滿足的同位檢查等式之係數。在一個實例中,記憶體1720包括校正子解碼1724,該校正子解碼使得記憶體能夠將檢查位元1756應用於資料1754以偵測讀取資料中之錯誤。校正子解碼1724可產生校正子1758以供用於針對讀取資料產生適當錯誤資訊。亦可將資料1754轉遞至錯誤校正1728以用於校正偵測到之錯誤。
在一個實例中,校正子解碼1724將校正子1758傳遞至校正子產生器1726以產生錯誤向量。在一個實例中,檢查位元產生器1722及校正子產生器1726完全由用於記憶體裝置之對應H矩陣指定。在一個實例中,若讀取資料中不存在錯誤(例如,零校正子1758),則校正子產生器1726產生無錯誤信號1762。在一個實例中,若讀取資料中存在多個錯誤(例如,不匹配對應H矩陣中之任一行的非零校正子1758),則校正子產生器1726產生偵測到之未校正錯誤(DUE)信號1764,該信號指示偵測到之未校正錯誤。DUE信號1764可指示記憶體1720無法藉由內部ECC校正的多位元錯誤。
在一個實例中,若存在單位元錯誤(例如,匹配對應H矩陣之一行的非零校正子1758),則校正子產生器1726可產生具有錯誤位置之已校正錯誤(CE)信號1760,該信號為至錯誤校正邏輯1728之已校正錯誤指示。錯誤校正1728可將已校正錯誤應用於資料1754中之指定位置以產生已校正資料1766,以供輸出至主機1710。在一個實例中,錯誤校正1728亦產生檢查位元1768,該等檢查位元包括用於讀取資料之檢查位元。
檢查位元1768可被視為指示傳輸至主機1710之讀取資料中的錯誤之狀態的錯誤向量。應理解,產生已校正資料1766之零校正子(無錯誤1762)條件及已校正SBE將具有相同檢查位元1768,其向主機1710指示無錯誤。因此,檢查位元1768將不提供關於記憶體1720中之SBE的資訊,而僅提供關於多位元錯誤之資訊。在一個實例中,系統1700將已校正資料寫回至記憶體陣列。
在一個實例中,系統1700包括用於陣列之各部分的內部ECC寫入路徑1732及內部ECC讀取路徑1734。在一個實例中,記憶體裝置1720可包括用於其I/O接腳之一半的一個路徑及用於其I/O接腳之另一半的第二路徑。因此,記憶體1720可運用硬體資源執行ECC隔離以分開ECC之應用,從而分開待由記憶體裝置提供之整體資料的子部分。
圖18為具有用於適應性錯誤刷洗之晶粒上錯誤檢查及校正的記憶體裝置之實例的方塊圖。記憶體裝置1800表示具有晶粒上ECC以使得能夠進行線上錯誤檢查及校正之記憶體裝置的實例。在一個實例中,記憶體裝置1800為非依電性記憶體裝置。
控制邏輯1810接收命令(CMD)及控制(CTRL)信號,且控制與彼等信號相關之記憶體裝置1800之操作。控制信號可包括時脈(CLK)、時脈啟用(CKE)以及其他信號。位址(ADDR)暫存器1820接收位址資訊(ADDR)信號。位址資訊信號可包括列位址、記憶體組位址、記憶體組群組位址或其他信號以識別將受到特定命令影響之記憶體之一部分。
位址以及命令(CMD)及控制(CTRL)信號表示用於記憶體裝置1800之命令及位址的I/O連接器。在一個實例中,位址暫存器1820將位址資訊分配至列解碼器(DEC) 1832及行解碼器(COL DEC) 1834。列解碼器1832及行解碼器1834選擇記憶體陣列1830之特定部分以用於執行命令,諸如讀取命令。雖然未具體說明,但解碼器電路可包括鎖存電路、計數器或其他邏輯以控制特定位址之選擇。出於簡化的目的,將記憶體組選擇邏輯及記憶體組群組選擇邏輯視為記憶體裝置1800之列解碼器及行解碼器的部分。
列解碼器1832選擇記憶體組中之位址,該位址可包括記憶體陣列1830之列。在一個實例中,記憶體陣列1830可為或包括子陣列。行解碼器1834啟動用於記憶體陣列1830之所要部分的適當感測放大器(AMP) 1842。行解碼器1834可觸發表示硬體之I/O閘控1840,該硬體包括用以將資料投送至記憶體陣列1830及自記憶體陣列投送資料之信號線或導線以及邏輯。I/O閘控1840可針對寫入操作而將資料置放至感測放大器1842中,且可針對讀取操作而讀出資料。行解碼器1834基於記憶體組控制邏輯選擇及行位址計數器選擇而為I/O閘控1840作出行選擇。
在一個實例中,對於讀取操作,讀取鎖存器1852經耦接以自I/O閘控1840接收資料位元。讀取鎖存器1852將資料饋送至多工器1854中,該多工器可選擇對應於裝置資料介面之位元數目(記憶體裝置1800中所說明之N個DQ位元)。多工器1854可將資料發送至I/O 1860之驅動器部分,該部分將驅動I/O連接器DQ[0:(N-1)]上之資料。雖然未具體說明,但應理解,驅動器可基於時序在一或多條資料選通線上驅動。應理解,讀取路徑上之鎖存及多工可將資料串行化以供經由信號線輸出。
對於寫入操作,控制器將在DQ[0:(N-1)]上提供資料。在一個實例中,I/O 1860之接收器部分自資料匯流排接收寫入資料,且將寫入資料輸入至輸入暫存器(REG) 1862或輸入緩衝器中。在一個實例中,I/O 1860之接收器接收可指示記憶體裝置應何時執行讀取操作之資料遮罩信號(DM)。輸入暫存器1862根據資料選通線對資料進行取樣,且可將資料鎖存至寫入驅動器1864,該寫入驅動器將資料提供至I/O閘控1840。應理解,資料緩衝可將寫入路徑上之資料解串行化以用於輸入至陣列。
在一個實例中,記憶體裝置1800包括I/O路徑1870以在I/O閘控1840與讀取及寫入路徑之間轉送資料。因此,在一個實例中,資料路徑包括讀取路徑及寫入路徑。參考DQ[0:(N-1)],I/O路徑1870可經特定地路由以將一或多個記憶體陣列1830映射至特定I/O連接器。
在一個實例中,記憶體裝置1800包括用以對資料執行內部ECC之ECC 1872。在一個實例中,ECC 1872提供根據系統1700之操作。ECC邏輯可產生用於傳入資料之檢查位元作為碼字。檢查位元可與資料一起儲存至陣列1830。ECC邏輯亦可自所儲存檢查位元及資料產生校正子位元作為自陣列1830讀取的碼字。
在一個實例中,控制邏輯1810包括再新(REF)邏輯1812,該再新邏輯表示記憶體裝置1800內用以管理記憶體裝置內之再新操作的邏輯或電路系統。再新邏輯1812可管理自我再新之應用,包括關於何時僅執行內部再新操作或在再新循環期間何時執行刷洗操作的決策。再新循環係指記憶體控制器已提供再新命令,預期記憶體裝置因為其正執行再新操作而不可用的時脈循環。
在一個實例中,控制邏輯1810包括ECS邏輯1814,該ECS邏輯可為根據本文中之任何實例的ECS邏輯。ECS邏輯1814可控制ECC 1872之操作,包括將已校正資料置放回至感測放大器1842中以寫回至陣列1830用於刷洗操作所需的控制。在一個實例中,ECS邏輯1814將錯誤計數提供至相關聯記憶體控制器(未說明)以供記憶體控制器進行錯誤判定。
根據所提供之任何實例,ECS邏輯1814可為可調適的。在一個實例中,ECS邏輯1814可回應於環境條件改變或回應於錯誤率改變而動態地調整巡邏刷洗之刷洗速率。在一個實例中,ECS邏輯1814可自記憶體控制器接收提示且判定刷洗何些位址,包括考慮來自記憶體控制器之提示。在一個實例中,ECS邏輯1814包括加權值以執行位址判定。在一個實例中,ECS邏輯1814可執行ECS操作而不對排除位址中之錯誤進行計數。
在一個實例中,控制邏輯1810包括錯誤邏輯1816。錯誤邏輯1816表示記憶體裝置處用以偵測錯誤率改變的邏輯。在一個實例中,記憶體裝置1800可基於藉由錯誤邏輯1816識別的錯誤而自動地調整刷洗速率。在一個實例中,錯誤邏輯1816將資訊提供至記憶體控制器,記憶體控制器接著使用該資訊來判定記憶體裝置1800中之列錘條件。
圖19為可實施適應性錯誤刷洗之記憶體子系統之實例的方塊圖。系統1900包括計算裝置中之處理器以及記憶體子系統的元件。系統1900提供根據系統200之系統之實例。
在一個實例中,記憶體裝置1940之控制器1950包括ECC邏輯1956及ECS邏輯1958。ECS邏輯1958可為根據本文中之任何實例的ECS邏輯。ECS邏輯1958可根據系統100之實例。ECC邏輯1956表示用於記憶體裝置1940之晶粒上ECC,以使得能夠在記憶體中進行錯誤檢查及校正。ECC邏輯1956可根據系統1700之實例。
在一個實例中,記憶體控制器1920包括錯誤邏輯1928,該錯誤邏輯表示記憶體控制器1920內用以使得能夠進行關於記憶體內之錯誤之判定的邏輯。在一個實例中,錯誤邏輯1928可偵測錯誤型樣且判定在記憶體裝置1940中存在列錘攻擊。錯誤邏輯1928亦可表示記憶體控制器1920內用以執行系統層級ECC操作且偵測及校正來自記憶體裝置1940之錯誤的邏輯。錯誤檢查及校正操作之執行可使得記憶體控制器1920能夠判定記憶體裝置1940中之錯誤率且識別包括MBE之錯誤的位置。錯誤邏輯可使得記憶體控制器能夠提供提示且執行與根據本文中之任何實例之ECS操作相關的操作。
處理器1910表示計算平台之處理單元,該計算平台可執行可統稱為記憶體之主機或使用者的作業系統(OS)及應用程式。OS及應用程式執行導致記憶體存取之操作。處理器1910可包括一或多個分開的處理器。各分開的處理器可包括單個處理單元、多核心處理單元或組合。處理單元可為諸如中央處理單元(CPU)之主要處理器、諸如圖形處理單元(GPU)之周邊處理器或組合。記憶體存取亦可藉由諸如網路控制器或硬碟控制器之裝置起始。此等裝置可與一些系統中之處理器整合,或經由匯流排(例如,快速PCI)附接至處理器,或組合。系統1900可實施為系統單晶片(SOC),或藉由獨立組件實施。
對記憶體裝置之提及可適用於不同記憶體類型。記憶體裝置常常係指依電性記憶體技術。依電性記憶體為在裝置供電中斷之情況下狀態(且因此上面所儲存之資料)不確定的記憶體。非依電性記憶體係指即使裝置供電中斷亦能判定狀態的記憶體。動態依電性記憶體需要再新儲存於裝置中之資料以維持狀態。動態依電性記憶體之一個實例包括動態隨機存取記憶體(DRAM)或一些變體,諸如同步DRAM (SDRAM)。如本文中所描述之記憶體子系統可與數種記憶體技術相容,該等技術諸如DDR4 (雙資料速率第4版,JESD79-4,其最初由JEDEC在2012年9月發佈)、LPDDR4 (低功率DDR第4版,JESD209-4,其最初由JEDEC在2014年8月發佈)、WIO2 (寬I/O 2(WideIO2),JESD229-2,其最初由JEDEC在2014年8月發佈)、HBM (高頻寬記憶體DRAM,JESD235A,其最初由JEDEC在2015年11月發佈)、DDR5 (DDR第5版,其最初由JEDEC在2020年7月發佈)、LPDDR5 (LPDDR第5版,JESD209-5,其最初由JEDEC在2019年2月發佈)、HBM2 ((HBM第2版),當前由JEDEC論述),或記憶體技術中之其他者或組合,以及基於此等規格之衍生或擴展的技術。
除依電性記憶體之外或替代依電性記憶體,在一個實例中,對記憶體裝置之提及可指即使裝置供電中斷亦能判定狀態的非依電性記憶體裝置。在一個實例中,非依電性記憶體裝置為區塊可定址記憶體裝置,諸如NAND或NOR快閃記憶體技術。因此,記憶體裝置亦可包括下一代非依電性裝置,諸如三維交叉點(3DXP)記憶體裝置。3DXP可作為位元組可定址非依電性記憶體裝置或作為區塊可定址非依電性記憶體裝置而操作。記憶體裝置可包括基於記憶體胞元之電阻狀態或記憶體胞元之相位而儲存資料的非依電性位元組可定址媒體或區塊可定址媒體。在一個實例中,記憶體裝置可使用硫族化物相變材料(例如,硫族化物玻璃)。在一個實例中,記憶體裝置可為或包括多臨限位準NAND快閃記憶體、NOR快閃記憶體、單位準或多位準相變記憶體(PCM)或具有開關之相變記憶體(PCMS)、電阻式記憶體、奈米線記憶體、鐵電式電晶體隨機存取記憶體(FeTRAM)、併有憶阻器技術之磁阻式隨機存取記憶體(MRAM)記憶體,或自旋轉移力矩(STT)-MRAM,或以上各者中之任一者的組合,或其他記憶體。
記憶體控制器1920表示系統1900之一或多個記憶體控制器電路或裝置。記憶體控制器1920表示回應於處理器1910執行操作而產生記憶體存取命令的控制邏輯。記憶體控制器1920存取一或多個記憶體裝置1940。記憶體裝置1940可為根據上文所提及之任何者的DRAM裝置。在一個實例中,記憶體裝置1940經組織及管理為不同通道,其中各通道耦接至匯流排及信號線,該等匯流排及信號線並聯地耦接至多個記憶體裝置。各通道可獨立地操作。因此,各通道經獨立地存取及控制,且時序、資料傳送、命令及位址交換以及其他操作對於各通道為分開的。耦接可指電氣耦接、通訊耦接、實體耦接或此等各者之組合。實體耦接可包括直接接觸。電氣耦接包括允許組件之間的電流或允許組件之間的發信或其二者的介面或互連。通訊耦接包括使得組件能夠交換資料之連接,包括有線或無線連接。
在一個實例中,各通道之設定由分開的模式暫存器或其他暫存器設定來控制。在一個實例中,各記憶體控制器1920管理分開的記憶體通道,但系統1900可經組配以具有由單個控制器管理之多個通道或在單個通道上具有多個控制器。在一個實例中,記憶體控制器1920為主機處理器1910之部分,諸如與處理器實施於同一晶粒上或實施於同一封裝空間中的邏輯。
記憶體控制器1920包括I/O介面邏輯1922以耦接至記憶體匯流排,諸如,如上文所提及之記憶體通道。I/O介面邏輯1922 (以及記憶體裝置1940之I/O介面邏輯1942)可包括接腳、襯墊、連接器、信號線、跡線或導線,或用以連接裝置之其他硬體,或此等各者之組合。I/O介面邏輯1922可包括硬體介面。如所說明,I/O介面邏輯1922至少包括信號線之驅動器/收發器。通常,積體電路介面內的導線與襯墊、接腳或連接器耦接以介接裝置之間的信號線或跡線或其他導線。I/O介面邏輯1922可包括驅動器、接收器、收發器或終端,或其他電路系統或電路系統組合以在裝置之間的信號線上交換信號。信號交換包括傳輸或接收中之至少一者。雖然展示為將I/O 1922自記憶體控制器1920耦接至記憶體裝置1940之I/O 1942,但應理解,在並行地存取記憶體裝置1940之群組的系統1900之實施中,多個記憶體裝置可包括至記憶體控制器1920之同一介面的I/O介面。在包括一或多個記憶體模組1970之系統1900的實施中,除記憶體裝置自身上的介面硬體之外,I/O 1942亦可包括記憶體模組之介面硬體。其他記憶體控制器1920將包括至其他記憶體裝置1940之分開介面。
記憶體控制器1920與記憶體裝置1940之間的匯流排可實施為將記憶體控制器1920耦接至記憶體裝置1940之多條信號線。匯流排通常可至少包括時脈(CLK) 1932、命令/位址(CMD) 1934以及寫入資料(DQ)及讀取資料(DQ) 1936,及零條或多於零條其他信號線1938。在一個實例中,記憶體控制器1920與記憶體之間的匯流排或連接可被稱作記憶體匯流排。在一個實例中,記憶體匯流排為多點匯流排。用於CMD之信號線可被稱作「C/A匯流排」 (或ADD/CMD匯流排,或指示命令(C或CMD)及位址(A或ADD)資訊之傳送的某一其他命名),且用於寫入及讀取DQ之信號線可被稱作「資料匯流排」。在一個實例中,獨立通道具有不同時脈信號、C/A匯流排、資料匯流排及其他信號線。因此,在獨立介面路徑可被視為分開匯流排之意義上,系統1900可被視為具有多個「匯流排」。應理解,除明確展示的線之外,匯流排可包括選通發信線、警示線、輔助線或其他信號線或組合中之至少一者。亦應理解,串列匯流排技術可用於記憶體控制器1920與記憶體裝置1940之間的連接。串列匯流排技術之實例為高速資料之8B10B編碼及運用嵌入式時脈經由單個差分信號對在各方向上的傳輸。在一個實例中,CMD 1934表示與多個記憶體裝置並行地共用的信號線。在一個實例中,多個記憶體裝置共用CMD 1934之編碼命令信號線,且各自具有分開的晶片選擇(CS_n)信號線以選擇個別記憶體裝置。
應理解,在系統1900之實例中,記憶體控制器1920與記憶體裝置1940之間的匯流排包括附屬命令匯流排CMD 1934及用以攜載寫入及讀取資料DQ 1936之輔助匯流排。在一個實例中,資料匯流排可包括用於讀取資料及用於寫入/命令資料之雙向線。在另一實例中,附屬匯流排DQ 1936可包括用於自主機至記憶體之寫入及資料的單向寫入信號線,且可包括用於自記憶體至主機之讀取資料的單向線。根據所選擇的記憶體技術及系統設計,其他信號1938可伴有匯流排或子匯流排,諸如選通線DQS。基於系統1900之設計或在設計支援多個實施之情況下基於實施,資料匯流排可針對每個記憶體裝置1940具有或多或少的頻寬。舉例而言,資料匯流排可支援具有×4介面、×8介面、×16介面或其他介面之記憶體裝置。慣例「×W」係指記憶體裝置1940之介面的介面大小或寬度,其中W為整數,其表示用以與記憶體控制器1920交換資料之信號線的數目。記憶體裝置之介面大小為關於可在系統1900中每通道同時使用多少記憶體裝置或將多少記憶體裝置並行地耦接至相同信號線的控制因素。在一個實例中,高頻寬記憶體裝置、寬介面裝置或堆疊記憶體組態或組合可實現較寬介面,諸如×128介面、×256介面、×512介面、×1024介面或其他資料匯流排介面寬度。
在一個實例中,記憶體裝置1940及記憶體控制器1920經由資料匯流排以連續資料傳送之叢發或序列來交換資料。叢發對應於與匯流排頻率相關之數個傳送循環。在一個實例中,傳送循環可為用於在同一時脈或選通信號邊緣上(例如,在上升邊緣上)進行傳送的整個時脈循環。在一個實例中,將係指系統時脈之循環的每個時脈循環分成多個單位間隔(UI),其中各UI皆為一傳送循環。舉例而言,雙資料速率傳送在時脈信號之二個邊緣(例如,上升及下降)上觸發。叢發可持續組配數目個UI,其可為儲存於暫存器中或在運作中觸發的組態。舉例而言,八個連續傳送時段之序列可被視為叢發長度八(BL8),且各記憶體裝置1940可在各UI上傳送資料。因此,在BL8上操作的×8記憶體裝置可傳送64個資料位元(8條資料信號線乘以每條線經由叢發傳送的8個資料位元)。應理解,此簡單實例僅為說明且並非限制性的。
記憶體裝置1940表示系統1900之記憶體資源。在一個實例中,各記憶體裝置1940為分開的記憶體晶粒。在一個實例中,各記憶體裝置1940可每個裝置或晶粒與多個(例如,2個)通道介接。各記憶體裝置1940包括I/O介面邏輯1942,該介面邏輯具有由裝置實施判定的頻寬(例如,×16或×8或某一其他介面頻寬)。I/O介面邏輯1942使得記憶體裝置能夠與記憶體控制器1920介接。I/O介面邏輯1942可包括硬體介面且可根據記憶體控制器之I/O 1922,但在記憶體裝置末端處。在一個實例中,多個記憶體裝置1940並聯連接至相同命令及資料匯流排。在另一實例中,多個記憶體裝置1940並聯連接至相同命令匯流排,且連接至不同資料匯流排。舉例而言,系統1900可經組配有並聯耦接的多個記憶體裝置1940,其中各記憶體裝置對命令作出回應且存取各者內部的記憶體資源1960。對於寫入操作,個別記憶體裝置1940可寫入整個資料字之一部分,且對於讀取操作,個別記憶體裝置1940可提取整個資料字之一部分。該字之剩餘位元將由其他記憶體裝置並行地提供或接收。
在一個實例中,記憶體裝置1940直接安置於計算裝置之主機板或主機系統平台(例如,印刷電路板(PCB),其上安置有處理器1910)上方。在一個實例中,記憶體裝置1940可組織成記憶體模組1970。在一個實例中,記憶體模組1970表示雙列直插記憶體模組(DIMM)。在一個實例中,記憶體模組1970表示多個記憶體裝置之其他組織以共用存取或控制電路系統之至少一部分,該存取或控制電路系統可為與主機系統平台分開的電路、分開的裝置或分開的板。記憶體模組1970可包括多個記憶體裝置1940,且記憶體模組可包括對至安置於其上之所包括的記憶體裝置之多個分開通道的支援。在另一實例中,記憶體裝置1940可與記憶體控制器1920併入至同一封裝中,諸如藉由諸如多晶片模組(MCM)、疊層封裝、矽穿孔(TSV)或其他技術或組合的技術。類似地,在一個實例中,多個記憶體裝置1940可併入至記憶體模組1970中,該等記憶體模組自身可與記憶體控制器1920併入至同一封裝中。應瞭解,對於此等及其他實施,記憶體控制器1920可為主機處理器1910之部分。
記憶體裝置1940各自包括一或多個記憶體陣列1960。記憶體陣列1960表示資料之可定址記憶體位置或儲存位置。通常,將記憶體陣列1960作為資料列來管理,經由字線(列)及位元線(列內之個別位元)控制來存取。記憶體陣列1960可組織為記憶體之分開的通道、排組及記憶體組。通道可指至記憶體裝置1940內之儲存位置的獨立控制路徑。排組可指並行地跨越多個記憶體裝置(例如,不同裝置內的相同列位址)的共同位置。記憶體組可指記憶體裝置1940內之記憶體位置的子陣列。在一個實例中,記憶體之記憶體組被分成子記憶體組,該等子記憶體組具有用於其的共用電路系統(例如,驅動器、信號線、控制邏輯)之至少一部分,從而允許分開的定址及存取。應理解,通道、排組、記憶體組、子記憶體組、記憶體組群組或記憶體位置之其他組織及組織之組合可在其應用於實體資源時重疊。舉例而言,相同實體記憶體位置可作為特定記憶體組經由特定通道進行存取,該特定記憶體組亦可屬於排組。因此,應以包括性而非排他性方式理解記憶體資源之組織。
在一個實例中,記憶體裝置1940包括一或多個暫存器1944。暫存器1944表示提供用於記憶體裝置之操作之組態或設定的一或多個儲存裝置或儲存位置。在一個實例中,暫存器1944可提供用以儲存供記憶體控制器1920存取之資料的記憶體裝置1940之儲存位置,該存取作為控制或管理操作之部分。在一個實例中,暫存器1944包括一或多個模式暫存器。在一個實例中,暫存器1944包括一或多個多用途暫存器。暫存器1944內之位置的組態可組配記憶體裝置1940以在不同「模式」中操作,其中命令資訊可基於模式而觸發記憶體裝置1940內的不同操作。另外或在替代例中,不同模式亦可取決於模式而根據位址資訊或其他信號線觸發不同操作。暫存器1944之設定可指示用於I/O設定(例如,時序、終端或晶粒上終端(ODT) 1946、驅動器組態或其他I/O設定)之組態。
在一個實例中,記憶體裝置1940包括ODT 1946作為與I/O 1942相關聯之介面硬體的部分。ODT 1946可如上文所提及而組配,且提供待應用於至指定信號線之介面的阻抗之設定。在一個實例中,將ODT 1946應用於DQ信號線。在一個實例中,將ODT 1946應用於命令信號線。在一個實例中,將ODT 1946應用於位址信號線。在一個實例中,可將ODT 1946應用於前述各者之任何組合。ODT設定可基於記憶體裝置為存取操作之選定目標抑或非目標裝置而改變。ODT 1946設定可影響端接線上之發信的時序及反射。對ODT 1946的謹慎控制可使得能夠進行高速操作且改善所施加阻抗及負載之匹配。可將ODT 1946應用於I/O介面1942、1922之特定信號線(例如,用於DQ線之ODT或用於CA線之ODT),且未必應用於所有信號線。
記憶體裝置1940包括控制器1950,該控制器表示記憶體裝置內用以控制記憶體裝置內之內部操作的控制邏輯。舉例而言,控制器1950解碼由記憶體控制器1920發送之命令,且產生內部操作以執行或滿足命令。控制器1950可被稱作內部控制器,且與主機之記憶體控制器1920分開。控制器1950可基於暫存器1944而判定選擇何模式,且基於選定模式而組配用於存取記憶體資源1960之操作或其他操作的內部執行。控制器1950產生控制信號以控制記憶體裝置1940內之位元的投送,從而提供用於選定模式之適當介面且將命令導引至適當記憶體位置或位址。控制器1950包括命令邏輯1952,該命令邏輯可解碼在命令及位址信號線上接收到的命令編碼。因此,命令邏輯1952可為或包括命令解碼器。運用命令邏輯1952,記憶體裝置可識別命令且產生內部操作以執行所請求命令。
再次參考記憶體控制器1920,記憶體控制器1920包括命令(CMD)邏輯1924,該命令邏輯表示用以產生命令以發送至記憶體裝置1940之邏輯或電路系統。命令之產生可指在排程之前的命令,或準備好發送之已排入佇列的準備。通常,記憶體子系統中之發信包括命令內或伴隨命令的位址資訊以指示或選擇一或多個記憶體位置,記憶體裝置應在該一或多個記憶體位置處執行命令。回應於排程記憶體裝置1940之異動,記憶體控制器1920可經由I/O 1922發出命令以使記憶體裝置1940執行命令。在一個實例中,記憶體裝置1940之控制器1950接收及解碼經由I/O 1942自記憶體控制器1920接收到之命令及位址資訊。基於接收到之命令及位址資訊,控制器1950可控制記憶體裝置1940內之邏輯及電路系統之操作時序,以執行命令。控制器1950負責遵從記憶體裝置1940內之標準或規格,諸如時序及發信要求。記憶體控制器1920可藉由存取排程及控制來遵從標準或規格。
記憶體控制器1920包括排程器1930,該排程器表示用以產生異動且對異動進行排序以發送至記憶體裝置1940的邏輯或電路系統。自一個視角來看,記憶體控制器1920之主要功能可據稱為排程對記憶體裝置1940之記憶體存取及其他異動。此排程可包括產生異動自身以實施處理器1910對資料之請求且維持資料完整性(例如,諸如運用與再新相關之命令)。異動可包括一或多個命令,且導致經由諸如時脈循環或單位間隔之一個或多個時序循環傳送命令或資料或其二者。異動可用於存取,諸如讀取或寫入或相關命令或組合,且其他異動可包括用於組態、設定、資料完整性之記憶體管理命令,或其他命令或組合。
記憶體控制器1920通常包括諸如排程器1930之邏輯以允許對異動進行選擇及排序,從而改善系統1900之效能。因此,記憶體控制器1920可選擇應將未決異動中之哪一者以哪一次序發送至記憶體裝置1940,此通常運用比簡單的先進先出演算法複雜得多的邏輯實現。記憶體控制器1920管理異動至記憶體裝置1940之傳輸,且管理與交易相關聯之時序。在一個實例中,異動具有確定性時序,該確定性時序可由記憶體控制器1920管理且用於判定如何運用排程器1930排程異動。
在一個實例中,記憶體控制器1920包括再新(REF)邏輯1926。再新邏輯1926可用於為依電性的且需要再新以保持確定性狀態之記憶體資源。在一個實例中,再新邏輯1926指示用於再新位置及待執行再新之類型。再新邏輯1926可觸發記憶體裝置1940內之自我再新,或藉由發送再新命令執行可被稱作自動再新命令之外部再新,或組合。在一個實例中,記憶體裝置1940內之控制器1950包括用以在記憶體裝置1940內應用再新之再新邏輯1954。在一個實例中,再新邏輯1954產生內部操作以根據自記憶體控制器1920接收到之外部再新而執行再新。再新邏輯1954可判定再新是否係針對記憶體裝置1940及回應於命令而判定再新何些記憶體資源1960。
圖20為可實施適應性錯誤刷洗之計算系統之實例的方塊圖。系統2000表示根據本文中之任何實例的計算裝置,且可為膝上型電腦、桌上型電腦、平板電腦、伺服器、遊戲或娛樂控制系統、嵌入式計算裝置,或其他電子裝置。系統2000說明根據系統200之實例的系統,其中可實施系統100之實例。
在一個實例中,記憶體控制器2022包括錯誤控制2094,該錯誤控制表示記憶體控制器2022內用以使得能夠進行關於記憶體內之錯誤之判定的邏輯。在一個實例中,錯誤控制2094可偵測錯誤型樣且判定在記憶體裝置2030中存在列錘攻擊。錯誤控制2094亦可表示記憶體控制器2022內用以執行系統層級ECC操作且偵測及校正來自記憶體裝置2030之錯誤的邏輯。錯誤檢查及校正操作之執行可使得記憶體控制器2022能夠判定記憶體2030中之錯誤率且識別包括MBE之錯誤的位置。錯誤控制可使得記憶體控制器能夠提供提示且執行與根據本文中之任何實例之ECS操作相關的操作。
在一個實例中,記憶體2030包括錯誤控制2092,該錯誤控制可表示ECS邏輯及用以將錯誤資訊提供至記憶體控制器2022且在記憶體2030內執行錯誤判定的邏輯。錯誤控制2092可包括根據本文中之任何實例的適應性ECS邏輯。
系統2000包括處理器2010,處理器可包括任何類型之微處理器、中央處理單元(CPU)、圖形處理單元(GPU)、處理核心或其他處理硬體或組合,以提供系統2000之指令的處理或執行。處理器2010可為主機處理器裝置。處理器2010控制系統2000之整體操作,且可為或包括一或多個可規劃一般用途或特殊用途微處理器、數位信號處理器(DSP)、可規劃控制器、特殊應用積體電路(ASIC)、可規劃邏輯裝置(PLD),或此等裝置之組合。
在一個實例中,系統2000包括耦接至處理器2010之介面2012,該介面可表示用於需要較高頻寬連接之系統組件的較高速度介面或高輸送量介面,該等組件諸如記憶體子系統2020或圖形介面組件2040。介面2012表示介面電路,該介面電路可為獨立組件或整合至處理器晶粒上。介面2012可作為電路整合至處理器晶粒上或作為組件整合於系統單晶片上。在存在的情況下,圖形介面2040介接至圖形組件,以用於將視覺顯示提供至系統2000之使用者。圖形介面2040可為獨立組件或整合至處理器晶粒或系統單晶片上。在一個實例中,圖形介面2040可驅動將輸出提供至使用者的高清晰度(HD)顯示器或超高清晰度(UHD)顯示器。在一個實例中,顯示器可包括觸控式螢幕顯示器。在一個實例中,圖形介面2040基於儲存於記憶體2030中之資料或基於由處理器2010執行之操作或其二者而產生顯示。
記憶體子系統2020表示系統2000之主記憶體,且提供對待由處理器2010執行之程式碼或待在執行常式時使用之資料值的儲存。記憶體子系統2020可包括一或多個記憶體裝置2030,諸如唯讀記憶體(ROM)、快閃記憶體、諸如DRAM之一或多種隨機存取記憶體(RAM)、三維交叉點(3DXP),或其他記憶體裝置,或此等裝置之組合。記憶體2030儲存及代管作業系統(OS) 2032以及其他者,以提供用於執行系統2000中之指令的軟體平台。另外,應用程式2034可自記憶體2030在OS 2032之軟體平台上執行。應用程式2034表示具有自身的操作邏輯以執行一或多個功能之執行的程式。程序2036表示將輔助功能提供至OS 2032或一或多個應用程式2034或組合之代理程式或常式。OS 2032、應用程式2034及程序2036提供軟體邏輯以提供系統2000之功能。在一個實例中,記憶體子系統2020包括記憶體控制器2022,該記憶體控制器為用以產生及發出命令至記憶體2030之記憶體控制器。應理解,記憶體控制器2022可為處理器2010之實體部分或介面2012之實體部分。舉例而言,記憶體控制器2022可為整合式記憶體控制器,其整合至具有處理器2010之電路上,諸如整合至處理器晶粒或系統單晶片上。
雖然未具體說明,應理解,系統2000可包括裝置之間的一或多個匯流排或匯流排系統,諸如記憶體匯流排、圖形匯流排、介面匯流排或其他匯流排。匯流排或其他信號線可將組件以通訊方式或電氣方式耦接在一起,或以通訊方式及電氣方式二者耦接該等組件。匯流排可包括實體通訊線、點對點連接、橋接器、配接器、控制器或其他電路系統或組合。舉例而言,匯流排可包括以下各者中之一或多者:系統匯流排、周邊組件互連(PCI)匯流排、超傳送或工業標準架構(ISA)匯流排、小型電腦系統介面(SCSI)匯流排、通用串列匯流排(USB),或其他匯流排,或組合。
在一個實例中,系統2000包括介面2014,該介面可耦接至介面2012。介面2014可為速度低於介面2012的介面。在一個實例中,介面2014表示介面電路,該介面電路可包括獨立組件及積體電路系統。在一個實例中,多個使用者介面組件或周邊組件或其二者耦接至介面2014。網路介面2050向系統2000提供經一或多個網路與遠端裝置(例如,伺服器或其他計算裝置)通訊之能力。網路介面2050可包括乙太網路配接器、無線互連組件、蜂巢式網路互連組件、通用串列匯流排(USB)或其他基於有線或無線標準或專屬的介面。網路介面2050可與遠端裝置交換資料,該交換可包括發送儲存於記憶體中之資料或接收待儲存於記憶體中之資料。
在一個實例中,系統2000包括一或多個輸入/輸出(I/O)介面2060。I/O介面2060可包括一或多個介面組件(例如,音訊、文數字、觸覺/觸碰或其他介接),使用者經由該一或多個介面組件與系統2000互動。周邊介面2070可包括上文未具體提及之任何硬體介面。周邊裝置通常指相依性地連接至系統2000之裝置。相依連接為系統2000提供操作執行所在且與使用者互動的軟體平台或硬體平台或其二者的連接。
在一個實例中,系統2000包括以非依電性方式儲存資料之儲存子系統2080。在一個實例中,在某些系統實施中,儲存器2080之至少某些組件可與記憶體子系統2020之組件重疊。儲存子系統2080包括(多個)儲存裝置2084,該(多個)儲存裝置可為或包括用於以非依電性方式儲存大量資料的任何習知媒體,諸如一或多個磁性、固態、3DXP或基於光學之磁碟,或組合。儲存器2084以持久性狀態保存程式碼或指令及資料2086 (亦即,即使系統2000供電中斷,值亦保留)。儲存器2084一般可被視為「記憶體」,但記憶體2030通常為將指令提供至處理器2010之執行或操作記憶體。儲存器2084為非依電性的,而記憶體2030可包括依電性記憶體(亦即,資料之值或狀態在系統2000供電中斷的情況下為不確定的)。在一個實例中,儲存子系統2080包括與儲存器2084介接的控制器2082。在一個實例中,控制器2082為介面2014或處理器2010之實體部分,或可包括處理器2010及介面2014二者中的電路或邏輯。
電源2002將電力提供至系統2000之組件。更具體而言,電源2002通常介接至系統2000中之一個或多個電源供應器2004以將電力提供至系統2000之組件。在一個實例中,電源供應器2004包括交流電至直流電(AC至DC)配接器以插入至壁式插座中。此AC電力可為再生能源(例如,太陽能)電源2002。在一個實例中,電源2002包括DC電源,諸如外部AC至DC轉換器。在一個實例中,電源2002或電源供應器2004包括無線充電硬體以經由接近充電場來進行充電。在一個實例中,電源2002可包括內部電池組或燃料電池源。
圖21為可實施適應性錯誤刷洗之行動裝置之實例的方塊圖。系統2100表示行動計算裝置,諸如計算平板電腦、行動電話或智慧型手機、可穿戴式計算裝置,或其他行動裝置,或嵌入式計算裝置。應理解,通常展示某些組件,但並非此裝置之所有組件皆展示於系統2100中。系統2100說明根據系統200之實例的系統,其中可實施系統100之實例。
在一個實例中,記憶體控制器2164包括錯誤控制2194,該錯誤控制表示記憶體控制器2164內用以使得能夠進行關於記憶體內之錯誤之判定的邏輯。在一個實例中,錯誤控制2194可偵測錯誤型樣且判定在記憶體裝置2162中存在列錘攻擊。錯誤控制2194亦可表示記憶體控制器2164內用以執行系統層級ECC操作且偵測及校正來自記憶體裝置2162之錯誤的邏輯。錯誤檢查及校正操作之執行可使得記憶體控制器2164能夠判定記憶體2162中之錯誤率且識別包括MBE之錯誤的位置。錯誤控制可使得記憶體控制器能夠提供提示且執行與根據本文中之任何實例之ECS操作相關的操作。
在一個實例中,記憶體2162包括錯誤控制2192,該錯誤控制可表示ECS邏輯及用以將錯誤資訊提供至記憶體控制器2164且在記憶體2162內執行錯誤判定的邏輯。錯誤控制2192可包括根據本文中之任何實例的適應性ECS邏輯。
系統2100包括處理器2110,該處理器執行系統2100之主要處理操作。處理器2110可為主機處理器裝置。處理器2110可包括一或多個實體裝置,諸如微處理器、應用程式處理器、微控制器、可規劃邏輯裝置或其他處理構件。由處理器2110執行之處理操作包括操作平台或作業系統之執行,應用程式及裝置功能在該操作平台或作業系統上執行。處理操作包括與人類使用者或其他裝置之輸入/輸出(I/O)相關的操作、與功率管理相關之操作、與將系統2100連接至另一裝置相關之操作,或組合。處理操作亦可包括與音訊I/O、顯示I/O或其他介接或組合相關之操作。處理器2110可執行儲存於記憶體中之資料。處理器2110可寫入或編輯儲存於記憶體中之資料。
在一個實例中,系統2100包括一或多個感測器2112。感測器2112表示嵌入式感測器,或至外部感測器之介面,或組合。感測器2112使得系統2100能夠監測或偵測實施系統2100之環境或裝置的一或多個條件。感測器2112可包括環境感測器(諸如,溫度感測器、運動偵測器、光偵測器、攝影機、化學感測器(例如,一氧化碳、二氧化碳、或其他化學感測器))、壓力感測器、加速度計、陀螺儀、醫學或生理感測器(例如,生物感測器、心率監測器,或偵測生理屬性之其他感測器),或其他感測器,或組合。感測器2112亦可包括用於生物測定系統之感測器,諸如指紋辨識系統、人臉偵測或辨識系統,或偵測或辨識使用者特徵之其他系統。應廣泛地理解感測器2112,且並不限於可藉由系統2100實施之許多不同類型之感測器。在一個實例中,一或多個感測器2112經由與處理器2110整合之前端電路耦接至處理器2110。在一個實例中,一或多個感測器2112經由系統2100之另一組件耦接至處理器2110。
在一個實例中,系統2100包括音訊子系統2120,該音訊子系統表示與將音訊功能提供至計算裝置相關聯之硬體(例如,音訊硬體及音訊電路)及軟體(例如,驅動程式、編解碼器)組件。音訊功能可包括揚聲器或耳機輸出,以及麥克風輸入。用於此等功能之裝置可整合至系統2100中,或連接至系統2100。在一個實例中,使用者藉由提供由處理器2110接收及處理之音訊命令來與系統2100互動。
顯示子系統2130表示提供視覺顯示以供呈現給使用者之硬體(例如,顯示裝置)及軟體組件(例如,驅動程式)。在一個實例中,顯示器包括供使用者與計算裝置互動之觸覺組件或觸控式螢幕元件。顯示子系統2130可包括顯示介面2132,該顯示介面包括用以將顯示提供至使用者之特定螢幕或硬體裝置。在一個實例中,顯示介面2132包括與處理器2110 (諸如,圖形處理器)分開的用以至少執行與顯示器相關之一些處理的邏輯。在一個實例中,顯示子系統2130包括將輸出及輸入二者提供至使用者之觸控式螢幕裝置。在一個實例中,顯示子系統2130包括將輸出提供至使用者之高清晰度(HD)或超高清晰度(UHD)顯示器。在一個實例中,顯示子系統包括或驅動觸控式螢幕顯示器。在一個實例中,顯示子系統2130基於儲存於記憶體中之資料或基於由處理器2110執行之操作或其二者而產生顯示資訊。
I/O控制器2140表示相關於與使用者之互動的硬體裝置及軟體組件。I/O控制器2140可操作以管理為音訊子系統2120或顯示子系統2130或其二者之部分的硬體。另外,I/O控制器2140說明用於連接至系統2100之額外裝置的連接點,使用者可經由該連接點與系統互動。舉例而言,可附接至系統2100之裝置可包括麥克風裝置、揚聲器或立體聲系統、視訊系統或其他顯示裝置、鍵盤或小鍵盤裝置、按鈕/開關,或用於與諸如讀卡器或其他裝置之特定應用程式一起使用的其他I/O裝置。
如上文所提及,I/O控制器2140可與音訊子系統2120或顯示子系統2130或其二者互動。舉例而言,經由麥克風或其他音訊裝置之輸入可提供用於系統2100之一或多個應用程式或功能的輸入或命令。另外,替代顯示輸出或除顯示輸出之外,亦可提供音訊輸出。在另一實例中,若顯示子系統包括觸控式螢幕,則顯示裝置亦充當可至少部分地由I/O控制器2140管理之輸入裝置。在系統2100上亦可能存在額外按鈕或開關,以提供由I/O控制器2140管理之I/O功能。
在一個實例中,I/O控制器2140管理裝置,諸如加速度計、攝影機、光感測器或其他環境感測器、陀螺儀、全球定位系統(GPS),或可包括於系統2100或感測器2112中之其他硬體。輸入可為直接使用者互動之部分,以及將環境輸入提供至系統以影響系統操作(諸如,對雜訊濾波、針對亮度偵測調整顯示器、為攝像機應用閃光燈,或其他特徵)。
在一個實例中,系統2100包括管理電池組用電量、電池組充電及與省電操作相關之特徵的電力管理2150。電力管理2150管理來自電源2152之電力,該電源將電力提供至系統2100之組件。在一個實例中,電源2152包括交流電至直流電(AC至DC)配接器以插入至壁式插座中。此AC電力可為再生能源(例如,太陽能、基於運動之電力)。在一個實例中,電源2152僅包括可由諸如外部AC至DC轉換器之DC電源提供的DC電力。在一個實例中,電源2152包括無線充電硬體以經由接近充電場來進行充電。在一個實例中,電源2152可包括內部電池組或燃料電池源。
記憶體子系統2160包括用於將資訊儲存於系統2100中之(多個)記憶體裝置2162。記憶體子系統2160可包括非依電性(在記憶體裝置供電中斷之情況下狀態並未改變)或依電性(在記憶體裝置供電中斷之情況下狀態不確定)記憶體裝置,或組合。記憶體2160可儲存應用程式資料、使用者資料、音樂、相片、文件或其他資料,以及與系統2100之應用程式及功能之執行相關的系統資料(不論係長期的抑或暫時的)。在一個實例中,記憶體子系統2160包括記憶體控制器2164 (其亦可被視為系統2100之控制的部分,且可潛在地被視為處理器2110之部分)。記憶體控制器2164包括用以產生命令且發出命令以控制對記憶體裝置2162之存取的排程器。
連接性2170包括硬體裝置(例如,無線或有線連接器及通訊硬體,或有線及無線硬體之組合)及軟體組件(例如,驅動程式、協定堆疊),以使得系統2100能夠與外部裝置通訊。外部裝置可為分開的裝置,諸如其他計算裝置、無線存取點或基地台,以及諸如頭戴式耳機、印表機或其他裝置之周邊裝置。在一個實例中,系統2100與外部裝置交換資料以供儲存於記憶體中或以供在顯示裝置上顯示。所交換的資料可包括待儲存於記憶體中之資料或已儲存於記憶體中之資料,以讀取、寫入或編輯資料。
連接性2170可包括多種不同類型之連接性。概括而言,系統2100經說明為具有蜂巢式連接性2172及無線連接性2174。蜂巢式連接性2172通常係指由無線載體提供之蜂巢式網路連接性,諸如經由全球行動通訊系統(GSM)或變化或衍生物、分碼多重存取(CDMA)或變化或衍生物、分時多工(TDM)或變化或衍生物、長期演進(LTE,亦被稱作「4G」)、5G或其他蜂巢式服務標準所提供的連接性。無線連接性2174係指非蜂巢式之無線連接性,且可包括個人區域網路(諸如,藍牙)、區域網路(諸如,WiFi),或廣域網路(諸如,WiMax),或其他無線通訊,或組合。無線通訊係指資料經由使用經調變電磁輻射穿過非固體介質的傳送。有線通訊經由固體通訊介質發生。
周邊連接2180包括硬體介面及連接器以及軟體組件(例如,驅動程式、協定堆疊)以進行周邊連接。應理解,系統2100可為其他計算裝置之周邊裝置(「至」 2182),以及具有連接至系統之周邊裝置(「自」 2184)。系統2100通常具有「銜接」連接器,以出於諸如管理(例如,下載、上傳、改變、同步)系統2100上之內容的目的而連接至其他計算裝置。另外,銜接連接器可允許系統2100連接至某些周邊裝置,該等周邊裝置允許系統2100控制例如至視聽或其他系統之內容輸出。
除了專屬銜接連接器或其他專屬連接硬體之外,系統2100亦可經由共同或基於標準之連接器進行周邊連接2180。常見類型可包括通用串列匯流排(USB)連接器(其可包括大量不同硬體介面中之任一者)、包括MiniDisplayPort (MDP)之DisplayPort、高清晰度多媒體介面(HDMI),或其他類型。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:控制邏輯,其用以偵測具有錯誤檢查及刷洗(ECS)邏輯之記憶體裝置的錯誤率之改變,以在自動ECS模式中運用晶粒上錯誤檢查及校正(ECC)邏輯執行ECS操作,其中ECS邏輯控制ECS操作之執行;以及輸入/輸出(I/O)電路系統,其用以回應於偵測到錯誤率之改變而將命令發送至記憶體裝置,以調整執行ECS操作之速率。
在一個實例中,該記憶體控制器在自動ECS模式中調整執行ECS操作之速率,其中記憶體裝置在自我再新期間執行ECS操作。在一個實例中,該記憶體控制器在自動ECS模式中調整執行ECS操作之速率,其中記憶體裝置回應於全記憶體組再新命令而執行ECS操作。在一個實例中,該控制邏輯基於自記憶體裝置接收到之資料而偵測改變。在一個實例中,該控制邏輯基於來自ECS邏輯之錯誤透明度資料而偵測改變。在一個實例中,該記憶體控制器進一步包括:錯誤校正邏輯,其用以對自記憶體裝置接收到之資料執行錯誤校正;其中該控制邏輯基於由錯誤校正邏輯偵測到之錯誤而偵測改變。在一個實例中,該控制邏輯回應於來自記憶體裝置的指示錯誤率之改變的信號而偵測改變。在一個實例中,該控制邏輯將改變偵測為由於影響錯誤率之環境條件之改變的錯誤率之預測改變。在一個實例中,該I/O電路系統發送改變模式暫存器設定之命令以調整執行ECS操作之速率。在一個實例中,該I/O電路系統發送命令以設定ECS邏輯內之組態。在一個實例中,該I/O電路系統將額外再新命令發送至記憶體裝置以使得記憶體裝置能夠執行ECS操作。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:控制電路,其用以偵測具有錯誤檢查及刷洗(ECS)電路之記憶體裝置的錯誤率之改變,以在自動ECS模式中運用晶粒上錯誤檢查及校正(ECC)電路系統執行ECS操作,其中ECS電路控制ECS操作之執行;以及輸入/輸出(I/O)電路系統,其用以回應於偵測到錯誤率之改變而將命令發送至記憶體裝置,以調整執行ECS操作之速率。
一般而言,關於本文中的描述,在一個實例中,一種管理記憶體之錯誤的方法包括:偵測具有錯誤檢查及刷洗(ECS)邏輯之記憶體裝置的錯誤率之改變,以在自動ECS模式中運用晶粒上錯誤檢查及校正(ECC)邏輯執行ECS操作,其中ECS邏輯控制ECS操作之執行;回應於偵測到錯誤率之改變而將命令自記憶體控制器發送至記憶體裝置,以調整執行ECS操作之速率;以及基於執行ECS操作之經調整速率而調整發送至記憶體裝置之再新命令的頻率。
在一個實例中,調整在自動ECS模式中執行ECS操作之速率包含調整執行供記憶體裝置在自我再新期間執行之ECS操作的速率。在一個實例中,調整在自動ECS模式中執行ECS操作之速率包含調整執行供記憶體裝置回應於全記憶體組再新命令而執行之ECS操作的速率。在一個實例中,偵測改變包含基於自記憶體裝置接收到之資料而偵測改變。在一個實例中,偵測改變包含基於來自ECS邏輯之錯誤透明度資料而偵測改變。在一個實例中,該方法進一步包括:運用錯誤校正邏輯在記憶體控制器中執行錯誤校正以對自記憶體裝置接收到之資料執行錯誤校正;其中偵測改變包含基於由錯誤校正邏輯偵測到之錯誤而偵測改變。在一個實例中,偵測改變包含基於來自記憶體裝置之指示錯誤率之改變的信號而偵測改變。在一個實例中,偵測改變包含將改變偵測為由於影響錯誤率之環境條件之改變的錯誤率之預測改變。在一個實例中,發送命令包含發送改變模式暫存器設定之命令以調整執行ECS操作之速率。在一個實例中,發送命令包含設定ECS邏輯內之組態。在一個實例中,發送命令包含將額外再新命令發送至記憶體裝置以使得記憶體裝置能夠執行ECS操作。
一般而言,關於本文中的描述,在一個實例中,一種動態隨機存取記憶體(DRAM)裝置包括:晶粒上錯誤檢查及校正(ECC)邏輯,其用以偵測及校正錯誤;錯誤檢查及刷洗(ECS)邏輯,其用以在自動ECS模式中運用晶粒上ECC邏輯執行ECS操作,其中ECS邏輯控制ECS操作之執行;以及儲存器,其用以儲存值以控制執行ECS操作之速率,其中該ECS邏輯基於偵測到錯誤率之改變而改變該值以改變執行ECS操作之速率。
在一個實例中,該ECS邏輯改變在自動ECS模式中執行ECS操作之速率,其中DRAM裝置在自我再新期間執行ECS操作。在一個實例中,該ECS邏輯改變在自動ECS模式中執行ECS操作之速率,其中DRAM裝置回應於全記憶體組再新命令而執行ECS操作。在一個實例中,錯誤率之改變的偵測包含藉由相關聯記憶體控制器基於自DRAM裝置發送至相關聯記憶體控制器之資料而進行偵測。在一個實例中,錯誤率之改變的偵測包含基於自DRAM裝置發送至相關聯記憶體控制器之來自ECS邏輯的錯誤透明度資料而進行偵測。在一個實例中,錯誤率之改變的偵測包含藉由相關聯記憶體控制器之錯誤校正邏輯進行偵測,該錯誤校正邏輯對發送至相關聯記憶體控制器之資料執行錯誤校正。在一個實例中,錯誤率之改變的偵測包含藉由相關聯記憶體控制器偵測由於影響錯誤率之環境條件之改變的錯誤率之預測改變。在一個實例中,錯誤率之改變的偵測包含藉由ECS邏輯進行偵測。在一個實例中,該ECS邏輯回應於來自相關聯記憶體控制器之改變模式暫存器設定的命令而改變該值以改變執行ECS操作之速率,從而調整執行ECS操作之速率。在一個實例中,該ECS邏輯回應於來自相關聯記憶體控制器之將速率設定為ECS邏輯內之組態的命令而改變該值以改變執行ECS操作之速率。在一個實例中,該儲存器包含模式暫存器。
一般而言,關於本文中的描述,在一個實例中,一種系統包括:記憶體裝置,其包括:晶粒上錯誤檢查及校正(ECC)邏輯,其用以偵測及校正錯誤;以及錯誤檢查及刷洗(ECS)邏輯,其用以在自動ECS模式中運用晶粒上ECC邏輯執行ECS操作,其中該ECS邏輯控制ECS操作之執行,其中該ECS邏輯基於偵測到錯誤率之改變而改變執行ECS操作之速率;以及記憶體控制器,其包括:控制邏輯,其用以偵測記憶體裝置之錯誤率的改變;以及輸入/輸出(I/O)電路系統,其用以回應於偵測到錯誤率之改變而將命令發送至記憶體裝置,以觸發ECS邏輯調整執行ECS操作之速率。
一般而言,關於本文中的描述,在一個實例中,一種記憶體裝置包括:記憶體之多個列;錯誤刷洗邏輯,其用以對記憶體之多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至記憶體,且該錯誤刷洗邏輯用以針對ECS操作而產生錯誤計數以指示在ECS操作中偵測到之錯誤;以及儲存裝置,其用以識別藉由與記憶體相關聯之主機離線的列之位址,其中該錯誤刷洗邏輯並不針對藉由主機離線之列的位址之ECS操作而產生錯誤計數。
在一個實例中,該儲存裝置包含錯誤刷洗邏輯中之儲存裝置。在一個實例中,該儲存裝置包含錯誤刷洗邏輯之計數器邏輯內的儲存裝置。在一個實例中,該錯誤刷洗邏輯包括位址比較器,該位址比較器用以對照藉由主機離線之列的位址而檢查用於ECS操作之內部產生位址,且僅在產生位址並非藉由主機離線之列的位址之情況下執行ECS操作,包括產生錯誤計數。在一個實例中,該錯誤刷洗邏輯包括位址比較器,該位址比較器用以對照藉由主機離線之列的位址而檢查用於ECS操作之內部產生位址,對所產生位址執行ECS操作,且在所產生位址並非藉由主機離線之列的位址之情況下產生錯誤計數。在一個實例中,相關聯記憶體控制器將藉由主機離線之列的位址寫入儲存裝置中。在一個實例中,該記憶體裝置進一步包括:模式暫存器,其用以儲存值以選擇對藉由主機離線之列的位址之識別的回應,包括不對藉由主機離線之列的位址執行ECS操作且不產生錯誤計數的第一回應,及對藉由主機離線之列的位址執行ECS操作且不產生錯誤計數的第二回應。在一個實例中,該錯誤刷洗邏輯包括位址產生器,該位址產生器包括位址比較器,其中該位址產生器輸出信號以選擇性地停用錯誤刷洗邏輯之錯誤檢查及校正(ECC)邏輯,從而提供第一回應。在一個實例中,該錯誤刷洗邏輯包括位址產生器,該位址產生器包括位址比較器,其中該位址產生器輸出信號以停用錯誤計數邏輯,從而提供第一回應及第二回應。
一般而言,關於本文中的描述,在一個實例中,一種記憶體裝置包括:記憶體之多個列;錯誤刷洗電路,其用以對記憶體之多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至記憶體,且錯誤刷洗電路用以針對ECS操作而產生錯誤計數以指示在ECS操作中偵測到之錯誤;以及儲存裝置,其用以識別藉由與記憶體相關聯之主機離線的列之位址,其中該錯誤刷洗電路並不針對藉由主機離線之列的位址之ECS操作而產生錯誤計數。
一般而言,關於本文中的描述,在一個實例中,一種用於錯誤刷洗之方法包括:產生記憶體裝置之陣列的多個列中之一者的位址以藉由記憶體裝置之錯誤刷洗邏輯進行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤及將已校正資料寫回至陣列;判定該位址是否與藉由與記憶體裝置相關聯之主機離線的列相關聯;以及回應於判定位址是否與藉由主機離線之列相關聯而針對ECS操作選擇性地產生錯誤計數以指示在ECS操作中偵測到之錯誤。
在一個實例中,判定位址是否與藉由主機離線之列相關聯包含判定是否在錯誤刷洗邏輯中之儲存裝置中識別到位址。在一個實例中,判定位址是否與藉由主機離線之列相關聯包含判定是否在錯誤刷洗邏輯之計數器邏輯內的儲存裝置中識別到位址。在一個實例中,針對ECS操作選擇性地產生錯誤計數包含僅在位址不與藉由主機離線之列相關聯的情況下執行ECS操作且產生錯誤計數。在一個實例中,針對ECS操作選擇性地產生錯誤計數包含執行ECS操作,但僅在位址不與藉由主機離線之列相關聯的情況下產生錯誤計數。在一個實例中,選擇性地產生錯誤計數包含基於模式暫存器之值而在第一回應與第二回應之間進行選擇,其中該第一回應包括僅在位址不與藉由主機離線之列相關聯的情況下執行ECS操作且產生錯誤計數,且其中該第二回應包括執行ECS操作,但僅在位址不與藉由主機離線之列相關聯的情況下產生錯誤計數。在一個實例中,選擇性地產生錯誤計數包含產生信號以在所產生位址經識別為與藉由主機離線之列相關聯時選擇性地停用ECS邏輯之錯誤檢查及校正(ECC)邏輯。在一個實例中,選擇性地產生錯誤計數包含產生信號以在所產生位址經識別為與藉由主機離線之列相關聯時選擇性地停用錯誤檢查及刷洗(ECS)邏輯之錯誤計數邏輯。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:輸入/輸出(I/O)電路系統,其用以耦接至記憶體,該記憶體具有多個列;以及錯誤刷洗邏輯,其用以對記憶體之多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至記憶體,且該錯誤刷洗邏輯用以針對ECS操作而產生錯誤計數以指示在ECS操作中偵測到之錯誤;以及控制邏輯,其用以偵測記憶體之多個列中之一者中的錯誤且將與多個列中之該者相關聯的位址離線;其中I/O電路系統將離線位址發送至錯誤刷洗邏輯以使錯誤刷洗邏輯不針對離線位址之ECS操作而產生錯誤計數。
在一個實例中,I/O電路系統將離線位址發送至記憶體以儲存於錯誤刷洗邏輯中之儲存裝置中。在一個實例中,I/O電路系統將離線位址發送至記憶體以儲存於錯誤刷洗邏輯之計數器邏輯內的儲存裝置中。在一個實例中,I/O電路系統將離線位址直接寫入至記憶體之儲存裝置以供錯誤刷洗邏輯使用。在一個實例中,該記憶體具有模式暫存器,該模式儲存器用以儲存值以選擇對離線位址之識別的回應,包括不對離線位址執行ECS操作且不產生錯誤計數之第一回應及對離線位址執行ECS操作且不產生錯誤計數之第二回應。在一個實例中,I/O電路系統發送寫入模式暫存器之值的命令以選擇第一回應或第二回應。在一個實例中,該錯誤刷洗邏輯包括位址產生器,該位址產生器包括位址比較器,其中該位址產生器回應於來自I/O電路系統之離線位址而輸出信號以選擇性地停用錯誤刷洗邏輯之錯誤檢查及校正(ECC)邏輯,從而提供第一回應。在一個實例中,該錯誤刷洗邏輯包括位址產生器,該位址產生器包括位址比較器,其中該位址產生器回應於來自I/O電路系統之離線位址而輸出信號以停用錯誤計數邏輯,從而提供第一回應及第二回應。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:輸入/輸出(I/O)電路系統,其用以耦接至記憶體,該記憶體具有多個列;以及錯誤刷洗電路,其用以對記憶體之多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至記憶體,且錯誤刷洗電路用以針對ECS操作而產生錯誤計數以指示在ECS操作中偵測到之錯誤;以及控制電路,其用以偵測記憶體之多個列中之一者中的錯誤且將與多個列中之該者相關聯的位址離線;其中I/O電路系統將離線位址發送至錯誤刷洗電路以使錯誤刷洗電路不針對離線位址之ECS操作而產生錯誤計數。
一般而言,關於本文中的描述,在一個實例中,一種用於管理錯誤刷洗之方法包括:自具有陣列之記憶體裝置接收資料,該陣列具有多個列;以及錯誤刷洗邏輯,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,且該錯誤刷洗邏輯用以針對ECS操作而產生錯誤計數以指示在ECS操作中偵測到之錯誤;偵測多個列中之一者中的錯誤;將與多個列中之被偵測到錯誤之該者相關聯的位址離線;以及將離線位址發送至錯誤刷洗邏輯以使錯誤刷洗邏輯不針對離線位址之ECS操作而產生錯誤計數。
在一個實例中,發送離線位址包含發送離線位址以供儲存於錯誤刷洗邏輯中之儲存裝置中。在一個實例中,發送離線位址包含發送離線位址以供儲存於錯誤刷洗邏輯之計數器邏輯內的儲存裝置中。在一個實例中,發送離線位址包含將離線位址直接寫入至記憶體裝置之儲存裝置以供錯誤刷洗邏輯使用。在一個實例中,將離線位址發送至錯誤刷洗邏輯包含將命令發送至記憶體裝置以使錯誤刷洗邏輯不針對離線位址而產生錯誤計數。在一個實例中,該記憶體裝置具有模式暫存器,該模式儲存器用以儲存值以藉由記憶體裝置之錯誤檢查及刷洗(ECS)邏輯選擇對離線位址之識別的回應,包括不對離線位址執行ECS操作且不產生錯誤計數之第一回應及對離線位址執行ECS操作且不產生錯誤計數之第二回應;其中發送命令包含發送寫入模式暫存器之值的命令以選擇第一回應或第二回應。在一個實例中,將離線位址發送至錯誤刷洗邏輯以使錯誤刷洗邏輯不針對離線位址之位址的ECS操作而產生錯誤計數包含觸發ECS邏輯以回應於選擇離線位址用於藉由ECS邏輯進行刷洗而選擇性地停用ECS邏輯之錯誤檢查及校正(ECC)邏輯,從而提供第一回應。在一個實例中,將離線位址發送至錯誤刷洗邏輯以使錯誤刷洗邏輯不針對離線位址之位址的ECS操作而產生錯誤計數包含觸發ECS邏輯以回應於選擇離線位址用於藉由ECS邏輯進行刷洗而停用錯誤計數邏輯,從而提供第一回應及第二回應。
一般而言,關於本文中的描述,在一個實例中,一種記憶體系統包括:記憶體裝置,其包括:具有多個列之陣列;以及錯誤刷洗邏輯,其用以對記憶體之多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,且該錯誤刷洗邏輯用以針對ECS操作而產生錯誤計數以指示在ECS操作中偵測到之錯誤;以及記憶體控制器,其耦接至記憶體裝置,該記憶體控制器包括:控制邏輯,其用以偵測記憶體裝置之多個列中之一者中的錯誤且將與多個列中之該者相關聯的位址離線;以及輸入/輸出(I/O)電路系統,其用以將離線位址發送至錯誤刷洗邏輯;其中該記憶體裝置進一步包括用以儲存來自記憶體控制器之離線位址的儲存裝置,其中該錯誤刷洗邏輯並不針對離線位址之ECS操作而產生錯誤計數。
一般而言,關於本文中的描述,在一個實例中,一種記憶體裝置包括:具有多個列之陣列;錯誤刷洗邏輯,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,其中該錯誤刷洗邏輯包括用以產生多個列之位址的內部位址產生器,在該等位址處執行ECS操作;以及儲存裝置,其用以識別由主機請求以用於執行ECS操作之列的位址,其中該內部位址產生器在內部位址產生與由主機請求以用於執行ECS操作之列的經識別位址之間進行選擇。
在一個實例中,該儲存裝置包含錯誤刷洗邏輯中之儲存裝置。在一個實例中,該儲存裝置包含錯誤刷洗邏輯之內部位址產生器內的儲存裝置。在一個實例中,該內部位址產生器包含加權仲裁邏輯,該加權仲裁邏輯對由內部位址產生器產生之位址及經識別位址執行權重仲裁,以判定用於執行ECS操作之一或多個位址。在一個實例中,經識別位址包含多個經識別位址中之一者,其中多個經識別位址中之各者具有用以儲存用於各別經識別位址之權重的相關聯暫存器。在一個實例中,相關聯暫存器包含可動態組配之暫存器。在一個實例中,相關聯暫存器可藉由主機及記憶體裝置寫入。在一個實例中,在執行階段動態地更新相關聯暫存器以基於併有記憶體裝置之系統的應力條件而改變權重。在一個實例中,該等應力條件包括系統溫度。在一個實例中,該等應力條件包括耦接至記憶體裝置之中央處理單元的負載。在一個實例中,經識別位址包含由主機請求以用於執行ECS操作之特定列位址。在一個實例中,錯誤刷洗邏輯對由主機請求之特定列位址及具有與特定列位址連續之位址的列執行ECS操作。在一個實例中,該錯誤刷洗邏輯對由主機請求之特定列位址及具有與特定列位址不連續之所產生位址的其他列執行ECS操作。在一個實例中,經識別位址為第一位址,其中該儲存裝置儲存第二位址,其中該第一位址識別列位址範圍之開始,且第二位址識別列位址範圍之結束。在一個實例中,經識別位址包含藉由主機由於記憶體裝置之系統上的應力條件而選擇的位址。在一個實例中,該應力條件包含來自溫度感測器之資料。在一個實例中,該應力條件包含系統之中央處理單元上的負載。
一般而言,關於本文中的描述,在一個實例中,一種記憶體裝置包括:具有多個列之陣列;錯誤刷洗電路,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,其中該錯誤刷洗電路包括用以產生多個列之位址的內部位址產生器,在該等位址處執行ECS操作;以及儲存裝置,其用以識別由主機請求以用於執行ECS操作之列的位址,其中該內部位址產生器在內部位址產生與由主機請求以用於執行ECS操作之列的經識別位址之間進行選擇。
一般而言,關於本文中的描述,在一個實例中,一種用於錯誤刷洗之方法包括:產生用於對記憶體裝置之陣列之多個列執行錯誤檢查及刷洗(ECS)操作的內部位址;對多個列執行ECS操作,包括偵測多個列中之錯誤,校正偵測到之錯誤及將已校正資料寫回至陣列;以及識別由主機請求以用於執行ECS操作之列的位址;其中產生內部位址包括在內部位址產生與經識別位址之間進行選擇。
在一個實例中,識別位址包含自記憶體裝置之錯誤刷洗邏輯中的儲存裝置讀取位址。在一個實例中,在內部位址產生與經識別位址之間進行選擇包含對由內部位址產生器產生之位址及經識別位址應用權重仲裁,以判定用於執行ECS操作之一或多個位址。在一個實例中,經識別位址包含多個經識別位址中之一者,其中多個經識別位址中之各者具有用以儲存用於各別經識別位址之權重的相關聯暫存器。在一個實例中,相關聯暫存器包含可動態組配之暫存器。在一個實例中,相關聯暫存器可藉由主機及記憶體裝置寫入。在一個實例中,在執行階段動態地更新相關聯暫存器以基於併有記憶體裝置之系統的應力條件而改變權重。在一個實例中,該等應力條件包括系統溫度。在一個實例中,該等應力條件包括耦接至記憶體裝置之中央處理單元的負載。在一個實例中,經識別位址包含由主機請求以用於執行ECS操作之特定列位址。在一個實例中,執行ECS操作包含對由主機請求之特定列位址及具有與特定列位址連續之位址的列執行ECS操作。在一個實例中,執行ECS操作包含對由主機請求之特定列位址及具有與特定列位址不連續之所產生位址的其他列執行ECS操作。在一個實例中,經識別位址為識別列位址範圍之開始的第一位址,且進一步包含識別列位址範圍之結束的第二位址。在一個實例中,由主機請求以用於執行ECS操作之列的位址包含藉由主機由於記憶體裝置之系統上之應力條件而選擇的位址。在一個實例中,該應力條件包含來自溫度感測器之資料。在一個實例中,該應力條件包含系統之中央處理單元上的負載。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:輸入/輸出(I/O)電路系統,其用以耦接至具有陣列之記憶體裝置,該陣列具有多個列;以及錯誤刷洗邏輯,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,其中該錯誤刷洗邏輯包括用以產生多個列之位址的內部位址產生器,在該等位址處執行ECS操作;以及控制邏輯,其用以識別請求用於執行ECS操作之多個列中之一列的位址;其中I/O電路系統將經識別位址發送至錯誤刷洗邏輯以使內部位址產生器在內部位址產生與經識別位址之間進行選擇。
在一個實例中,I/O電路系統將經識別位址發送至錯誤刷洗邏輯中之儲存裝置。在一個實例中,該儲存裝置包含錯誤刷洗邏輯之內部位址產生器內的儲存裝置。在一個實例中,該內部位址產生器包含加權仲裁邏輯,該加權仲裁邏輯對由內部位址產生器產生之位址及經識別位址執行權重仲裁,以選擇用於執行ECS操作之位址。在一個實例中,經識別位址包含多個經識別位址中之一者,其中多個經識別位址中之各者具有用以儲存用於各別經識別位址之權重的相關聯暫存器。在一個實例中,相關聯暫存器包含可動態組配之暫存器。在一個實例中,相關聯暫存器可藉由記憶體控制器及記憶體裝置寫入。在一個實例中,在執行階段動態地更新相關聯暫存器以基於併有記憶體裝置之系統的應力條件而改變權重。在一個實例中,該等應力條件包括系統溫度。在一個實例中,該等應力條件包括耦接至記憶體裝置之中央處理單元的負載。在一個實例中,經識別位址包含經識別以用於執行ECS操作之特定列位址。在一個實例中,錯誤刷洗邏輯對特定列位址及具有與特定列位址連續之位址的列執行ECS操作。在一個實例中,該錯誤刷洗邏輯對特定列位址及具有與特定列位址不連續之所產生位址的其他列執行ECS操作。在一個實例中,經識別位址為識別列位址範圍之開始的第一位址,且進一步包含識別列位址範圍之結束的第二位址。在一個實例中,經識別位址包含由於記憶體裝置之系統上的應力條件而選擇的位址。在一個實例中,該應力條件包含來自溫度感測器之資料。在一個實例中,該應力條件包含系統之中央處理單元上的負載。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:輸入/輸出(I/O)電路系統,其用以耦接至具有陣列之記憶體裝置,該陣列具有多個列;以及錯誤刷洗電路,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,其中該錯誤刷洗電路包括用以產生多個列之位址的內部位址產生器,在該等位址處執行ECS操作;以及控制電路,其用以識別請求用於執行ECS操作之多個列中之一列的位址;其中I/O電路系統將經識別位址發送至錯誤刷洗邏輯以使內部位址產生器在內部位址產生與經識別位址之間進行選擇。
一般而言,關於本文中的描述,在一個實例中,一種用以管理錯誤刷洗之方法包括:識別請求用於執行ECS操作之記憶體裝置之陣列的多個列中之一列的位址,其中該記憶體裝置包括:錯誤刷洗邏輯,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,其中該錯誤刷洗邏輯包括用以產生多個列之位址的內部位址產生器,在該等位址處執行ECS操作;以及將經識別位址發送至錯誤刷洗邏輯以使內部位址產生器在內部位址產生與經識別位址之間進行選擇。
在一個實例中,發送經識別位址包含將經識別位址發送至錯誤刷洗邏輯中之儲存裝置。在一個實例中,發送經識別位址包含將經識別位址發送至錯誤刷洗邏輯之內部位址產生器內的儲存裝置。在一個實例中,將經識別位址發送至錯誤刷洗邏輯以使內部位址產生器在內部位址產生與經識別位址之間進行選擇包含將經識別位址發送至錯誤刷洗邏輯以使內部位址產生器對由內部位址產生器產生之位址及經識別位址應用權重仲裁,從而選擇用於執行ECS操作之位址。在一個實例中,發送經識別位址包含發送多個經識別位址中之一者,其中多個經識別位址中之各者具有用以儲存用於各別經識別位址之權重的相關聯暫存器。在一個實例中,相關聯暫存器包含可動態組配之暫存器。在一個實例中,相關聯暫存器可藉由記憶體裝置及與記憶體裝置相關聯之記憶體控制器寫入。在一個實例中,在執行階段動態地更新相關聯暫存器以基於併有記憶體裝置之系統的應力條件而改變權重。在一個實例中,該等應力條件包括系統溫度。在一個實例中,該等應力條件包括耦接至記憶體裝置之中央處理單元的負載。在一個實例中,發送經識別位址包含識別經識別以用於執行ECS操作之特定列位址。在一個實例中,發送經識別位址使錯誤刷洗邏輯對特定列位址及具有與特定列位址連續之位址的列執行ECS操作。在一個實例中,發送經識別位址使錯誤刷洗邏輯對特定列位址及具有與特定列位址不連續之所產生位址的其他列執行ECS操作。在一個實例中,發送經識別位址發送第一位址且包含發送第二位址,其中該第一位址識別列位址範圍之開始,且第二位址識別列位址範圍之結束。在一個實例中,發送經識別位址包含發送由於記憶體裝置之系統上的應力條件而選擇的位址。在一個實例中,該應力條件包含來自溫度感測器之資料。在一個實例中,該應力條件包含系統之中央處理單元上的負載。
一般而言,關於本文中的描述,在一個實例中,一種記憶體系統包括:記憶體裝置,其包括:具有多個列之陣列;以及錯誤刷洗邏輯,其用以對多個列執行錯誤檢查及刷洗(ECS)操作,包括偵測多個列中之錯誤,校正偵測到之錯誤且將已校正資料寫回至陣列,其中該錯誤刷洗邏輯包括用以產生多個列之位址的內部位址產生器,在該等位址處執行ECS操作;以及記憶體控制器,其耦接至記憶體裝置,包括:控制邏輯,其用以識別請求用於執行ECS操作之多個列中之一列的位址;以及I/O電路系統,其用以將經識別位址發送至錯誤刷洗邏輯;其中該記憶體裝置進一步包括用以儲存經識別位址之儲存裝置,其中該內部位址產生器在內部位址產生與經識別位址之間進行選擇以用於執行ECS操作。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:控制邏輯,其用以偵測相關聯記憶體中之多位元錯誤(MBE)且判定偵測到之MBE是否為與相關聯記憶體之特定位址相關的錯誤型樣之部分,其中該錯誤型樣包括特定位址與具有MBE之位址之間的關聯;以及輸入/輸出(I/O)邏輯,其用以回應於偵測到之MBE為與特定位址相關的錯誤型樣之部分的判定而將命令發送至相關聯記憶體,以觸發針對相關聯記憶體之特定位址的列錘回應。
在一個實例中,該控制邏輯將MBE偵測為自相關聯記憶體接收到之資料中的MBE。在一個實例中,控制邏輯將MBE偵測為由相關聯記憶體之ECS邏輯偵測到的MBE之指示。在一個實例中,控制邏輯藉由相關聯記憶體中具有MBE之多個位址的比較來偵測型樣。在一個實例中,控制邏輯比較為同一排組之部分的相關聯記憶體之不同記憶體裝置的位址。在一個實例中,控制邏輯藉由偵測到之MBE的位址與最近啟動(ACT)命令之位址的比較來偵測型樣。在一個實例中,控制邏輯藉由識別具有MBE之相關聯記憶體內的位址之群組來偵測型樣。在一個實例中,I/O邏輯發送停用對相關聯記憶體之存取的命令。在一個實例中,I/O邏輯發送執行目標列再新之命令。在一個實例中,I/O邏輯發送增加相關聯記憶體之刷洗速率的命令。在一個實例中,I/O邏輯發送識別用於相關聯記憶體之ECS邏輯之位址提示的命令。在一個實例中,相關聯記憶體包含多個並聯的記憶體裝置。
一般而言,關於本文中的描述,在一個實例中,一種記憶體控制器包括:控制電路,其用以偵測相關聯記憶體中之多位元錯誤(MBE)且判定偵測到之MBE是否為與相關聯記憶體之特定位址相關的錯誤型樣之部分,其中該錯誤型樣包括特定位址與具有MBE之位址之間的關聯;以及輸入/輸出(I/O)電路系統,其用以回應於偵測到之MBE為與特定位址相關的錯誤型樣之部分的判定而將命令發送至相關聯記憶體,以觸發針對相關聯記憶體之特定位址的列錘回應。
一般而言,關於本文中的描述,在一個實例中,一種用於管理記憶體錯誤之方法包括:偵測相關聯記憶體中之多位元錯誤(MBE);判定偵測到之MBE是否為與相關聯記憶體之特定位址相關的錯誤型樣之部分,其中該錯誤型樣包括特定位址與具有MBE之位址之間的關聯;以及回應於判定偵測到之MBE為與特定位址相關的錯誤型樣之部分而將命令發送至相關聯記憶體,以觸發針對相關聯記憶體之特定位址的列錘回應。
在一個實例中,偵測MBE包含在自相關聯記憶體接收到之資料中偵測MBE。在一個實例中,偵測MBE包含接收由相關聯記憶體之ECS邏輯偵測到的MBE之指示。在一個實例中,判定偵測MBE是否為錯誤之型樣的部分包含比較經歷MBE之相關聯記憶體的多個位址以偵測型樣。在一個實例中,比較多個位址包含比較為同一排組之部分的相關聯記憶體之不同記憶體裝置的位址。在一個實例中,判定偵測MB是否為錯誤之型樣的部分包含比較偵測到之MBE的位址與最近啟動(ACT)命令之位址以偵測型樣。在一個實例中,判定偵測MBE是否為錯誤之型樣的部分包含識別具有MBE之相關聯記憶體內的位址之群組。在一個實例中,發送命令包含發送停用對相關聯記憶體之存取的命令。在一個實例中,發送命令包含發送執行目標列再新之命令。在一個實例中,發送命令包含發送增加相關聯記憶體之刷洗速率的命令。在一個實例中,發送命令包含發送識別用於相關聯記憶體之ECS電路之位址提示的命令。在一個實例中,相關聯記憶體包含多個並聯的記憶體裝置。
一般而言,關於本文中的描述,在一個實例中,一種記憶體系統包含:記憶體裝置;以及記憶體控制器,其耦接至記憶體裝置,該記憶體控制器包括:控制邏輯,其用以偵測記憶體裝置中之多位元錯誤(MBE)且判定偵測到之MBE是否為與記憶體裝置之特定位址相關的錯誤型樣之部分,其中該錯誤型樣包括特定位址與具有MBE之位址之間的關聯;以及輸入/輸出(I/O)邏輯,其用以回應於偵測到之MBE為與特定位址相關的錯誤型樣之部分的判定而將命令發送至記憶體裝置,以觸發針對記憶體裝置之特定位址的列錘回應。
如本文中所說明之流程圖提供各種程序動作之序列的實例。該等流程圖可指示待由軟體或韌體常式執行之操作,以及實體操作。流程圖可說明有限狀態機(FSM)之狀態的實施實例,該有限狀態機可以硬體及/或軟體來實施。儘管以特定序列或次序來展示,但除非另外指定,否則可修改動作之次序。因此,所說明之圖應僅理解為實例,且程序可以不同次序執行,且一些動作可並行地執行。另外,可省略一或多個動作;因此,並非所有設施皆將執行所有動作。
就本文中所描述之各種操作或功能而言,該等操作或功能可被描述或定義為軟體程式碼、指令、組態及/或資料。內容可為直接可執行的(「物件」或「可執行體」形式)、原始程式碼或差異程式碼(「差量」或「修補」程式碼)。本文中所描述之實施例的軟體內容可經由上面儲存有內容之製品提供,或經由操作通訊介面以經由通訊介面發送資料之方法提供。機器可讀儲存媒體可使機器執行所描述之功能或操作,且包括以可由機器(例如,計算裝置、電子系統等)存取之形式儲存資訊的任何機構,諸如可記錄/不可記錄媒體(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體裝置等)。通訊介面包括介接至固線式媒體、無線媒體、光學媒體等中之任一者以通訊至另一裝置的任何機制,諸如記憶體匯流排介面、處理器匯流排介面、網際網路連接、磁碟控制器等。可藉由提供組態參數及/或發送信號以使通訊介面準備好提供描述軟體內容之資料信號來組配通訊介面。可經由發送至通訊介面之一或多個命令或信號來存取通訊介面。
本文中所描述之各種組件可為用於執行所描述之操作或功能的構件。本文中所描述之各組件包括軟體、硬體或此等各者之組合。該等組件可實施為軟體模組、硬體模組、特殊用途硬體(例如,特殊應用硬體、特殊應用積體電路(ASIC)、數位信號處理器(DSP)等)、嵌入式控制器、固線式電路系統等。
除本文中所描述之內容之外,亦可對本發明之所揭示內容及實施進行各種修改,而不脫離其範圍。因此,本文中之說明及實例應以說明性意義而非限制性意義來解釋。本發明之範圍應僅藉由參考下文之申請專利範圍來量測。
100,200,300,500,600,700,900,1000,1200,1300,1400,1700,1900,2000,2100:系統
110,326,350,914:ECS控制
112:速率控制(CTRL)
114,116:邏輯
120,720:位址控制
122:提示控制(CTRL)
130,750,1328,1956:ECC邏輯
132,134:區塊
136:臨限值篩選器(TF)
142,274:錯誤計數器(EC)
144:每列錯誤計數器(EPRC)
150:比較邏輯
152:高錯誤計數
154:高錯誤位址
162:錯誤計數
164:EPR及位址
170,760,1854:多工器(mux)
172:內部位址(ADDR)
174:外部位址(ADDR)
210,320,530,910,1220,1310,1920,2022,2164:記憶體控制器
220,1450,2092,2094,2192,2194:錯誤控制
222:錯誤校正
224:計數
230:刷洗速率邏輯
240,2112:感測器
242:溫度感測器(TEMP)
250,1970:記憶體模組
260,920,1320,1800,1940:記憶體裝置
262,340:陣列
264,1244,1324,1944:暫存器
270,930,1326:ECS引擎
272,1432,1872:ECC
276:刷洗速率控制
310,520,1212,1910,2010,2110:處理器
312,332,1226,1242,1322,1860:輸入/輸出(I/O)
322,1222,1314,1924,1952:命令邏輯
324,338:再新(REF)控制
328:計數器
330,550,1230,1720:記憶體
334:命令(CMD)執行
336:模式暫存器
342:列
344:位址位置
352:單位元錯誤(SBE)計數
354:最大計數(CNT)/位址(ADDR)
356:ECS速率
400,800,1100,1500,2036:程序
402,404,406,408,802,804,806,808,810,812,814,816,818,820,824,1102,1104,1106, 1108,1110,1112,1502,1504,1506,1508,1510,1512:步驟
510,1210,1710:主機
540:主機作業系統(OS)
552,1434:ECS
554:離線位址
612:ECS模式檢查
614:ECS操作觸發
620:位址(ADDR)產生邏輯
622:位址(ADDR)排除邏輯
624:位址(ADDR)提示邏輯
630:位址
710:OR閘/XOR閘
730:比較
732:排除位址(ADDR)記憶體
740:AND閘
770:錯誤計數及透明度邏輯
912,1318,1816,1928:錯誤邏輯
922,1380,1440,1950,2082:控制器
924:範圍控制(CTRL)
926,1010:提示
932,1020:位址(ADDR)產生器
1022:線性位址(ADDR)產生器
1024:信號舊式刷洗啟用
1030:權重仲裁/加權仲裁
1040:記憶體刷洗引擎
1214:命令(CMD)匯流排
1224,1316,1930:排程器
1228:啟動計數器(ACT CTR)
1232:永久故障偵測(PFD)引擎
1234:錯誤型樣引擎
1250:控制(CTRL)/控制邏輯
1252,1364,1374:列錘(RH)邏輯
1254,1814,1958:ECS邏輯
1260,1340,1350:記憶體組
1312:輸入/輸出(I/O)硬體/I/O
1330,1830:記憶體陣列
1332,1834:行解碼器
1334,1832:列解碼器
1342,1346:目標列
1344,1348,1352:受害者列
1360,1372,1812,1926,1954:再新(REF)邏輯
1362:再新(REF)計數器
1410:雙列直插記憶體模組(DIMM)
1420:已暫存時脈驅動器或暫存時脈驅動器(RCD)
1422[0],1422[1],1442:命令/位址(C/A)匯流排
1430:動態隨機存取記憶體(DRAM)裝置
1444[0],1444[1]:資料匯流排
1446[0],1446[1]:控制
1602:檢查位元產生邏輯
1604:校正子位元產生邏輯
1610:H矩陣
1620:寫入資料字
1622,1624,1626,1632,1634,1636,1642,1644,1646:XOR
1630:讀取資料字
1640:檢查位元字
1722:檢查位元產生器
1724:校正子解碼
1726:校正子產生器
1728:錯誤校正/錯誤校正邏輯
1732:內部ECC寫入路徑
1734:內部ECC讀取路徑
1742,1754:資料
1744,1756,1768:檢查位元
1746:碼字輸入
1752:碼字輸出
1758:校正子
1760:具有錯誤位置之已校正錯誤(CE)信號
1762:無錯誤信號/無錯誤
1764:偵測到之未校正錯誤(DUE)信號
1766:已校正資料
1810:控制邏輯
1820:位址(ADDR)暫存器
1840:I/O閘控
1842:感測放大器(AMP)
1852:讀取鎖存器
1862:輸入暫存器(REG)
1864:寫入驅動器
1870:I/O路徑
1922,1942:I/O介面邏輯/I/O
1932:時脈(CLK)
1934:命令/位址(CMD)
1936:寫入資料(DQ)及讀取資料(DQ)
1938:信號線
1946:晶粒上終端(ODT)
1960:記憶體資源/記憶體陣列
2002,2152:電源
2004:電源供應器
2012,2014:介面
2020:記憶體子系統
2030,2162:記憶體裝置/記憶體
2032:作業系統(OS)
2034:應用程式
2040:圖形介面組件/圖形介面
2050:網路介面
2060:輸入/輸出(I/O)介面
2070:周邊介面
2080:儲存子系統/儲存器
2084:儲存裝置/儲存器
2086:程式碼或指令及資料
2120:音訊子系統
2130:顯示子系統
2132:顯示介面
2140:I/O控制器
2150:電力管理
2160:記憶體子系統/記憶體
2170:連接性
2172:蜂巢式連接性
2174:無線連接性
2180:周邊連接
2182:「至」
2184:「自」
以下描述包括具有作為實施實例給出之說明的諸圖之論述。圖式應作為實例而非作為限制來理解。如本文中所使用,對一或多個實例之提及應理解為描述包括於本發明之至少一個實施中之特定特徵、結構或特性。本文中出現的諸如「在一個實例中」或「在替代實例中」之片語提供本發明之實施實例,且未必皆指同一實施。然而,該等片語亦未必相互排斥。
圖1為可調適刷洗速率及刷洗目標位址之錯誤檢查及刷洗系統之實例的方塊圖。
圖2為用以控制記憶體上錯誤檢查及刷洗系統之刷洗速率的系統之實例的方塊圖。
圖3為執行內部錯誤校正及刷洗且在再新循環期間儲存錯誤資訊之系統之實例的方塊圖。
圖4為用於改變晶粒上錯誤刷洗之速率的程序之實例的流程圖。
圖5為用以自錯誤刷洗計數中排除離線列之系統之實例的方塊圖。
圖6為錯誤檢查及刷洗邏輯之適應性位址產生邏輯之實例的方塊圖。
圖7為具有適應性位址產生邏輯之錯誤刷洗引擎之實例的方塊圖。
圖8為用於自錯誤刷洗計數中排除離線列之程序之實例的流程圖。
圖9為基於自主機至記憶體上錯誤刷洗引擎之資訊而提供適應性錯誤刷洗操作的系統之實例的方塊圖。
圖10為回應於主機提示之適應性錯誤刷洗引擎的適應性位址產生邏輯之實例的方塊圖。
圖11為用於基於主機提示進行刷洗之程序之實例的流程圖。
圖12為記憶體子系統之實例的方塊圖,在該記憶體子系統中,主機可基於記憶體中之錯誤的型樣而偵測列錘條件。
圖13為基於記憶體中之錯誤之型樣的主機偵測而執行列錘緩解的系統之實例的方塊圖。
圖14為具有記憶體裝置之記憶體模組之實例的方塊圖,該等記憶體裝置具有用以提供適應性錯誤刷洗之錯誤邏輯。
圖15為用於關聯記憶體錯誤以偵測列錘條件之程序之實例的流程圖。
圖16為用以在適應性錯誤刷洗系統中應用矩陣以執行晶粒上錯誤檢查及校正之檢查位元產生邏輯及校正子位元產生邏輯之實例的方塊圖。
圖17為適應性錯誤刷洗系統中之晶粒上錯誤檢查及校正之實例的方塊圖。
圖18為具有用於適應性錯誤刷洗之晶粒上錯誤檢查及校正的記憶體裝置之實例的方塊圖。
圖19為可實施適應性錯誤刷洗之記憶體子系統之實例的方塊圖。
圖20為可實施適應性錯誤刷洗之計算系統之實例的方塊圖。
圖21為可實施適應性錯誤刷洗之行動裝置之實例的方塊圖。
某些細節及實施之描述如下,包括諸圖之非限制性描述,其可描繪一些或所有實例以及其他可能實施。
300:系統
310:處理器
312,332:輸入/輸出(I/O)
320:記憶體控制器
322:命令邏輯
324,338:再新(REF)控制
326,350:ECS控制
328:計數器
330:記憶體
334:命令(CMD)執行
336:模式暫存器
340:陣列
342:列
344:位址位置
352:單位元錯誤(SBE)計數
354:最大計數(CNT)/位址(ADDR)
356:ECS速率
Claims (28)
- 一種記憶體控制器,其包含: 控制邏輯,其用以偵測針對具有錯誤檢查及刷洗(ECS)邏輯之一記憶體裝置的一錯誤率之一改變,以在一自動ECS模式中運用晶粒上錯誤檢查及校正(ECC)邏輯執行ECS操作,其中該ECS邏輯係用以控制該等ECS操作之該執行;以及 輸入/輸出(I/O)電路系統,其用以回應於偵測到該錯誤率之該改變而將一命令發送至該記憶體裝置,以調整執行該等ECS操作之一速率。
- 如請求項1之記憶體控制器,其中該記憶體控制器係用以調整在該自動ECS模式中執行該等ECS操作之該速率,其中該記憶體裝置係用以在自我再新期間執行該等ECS操作。
- 如請求項1之記憶體控制器,其中該記憶體控制器係用以調整在該自動ECS模式中執行該等ECS操作之該速率,其中該記憶體裝置係用以回應於一全記憶體組再新命令而執行該等ECS操作。
- 如請求項1至3中任一項之記憶體控制器,其中該控制邏輯係用以基於自該記憶體裝置所接收之資料而偵測該改變。
- 如請求項1至3中任一項之記憶體控制器,其中該控制邏輯係用以回應於來自該記憶體裝置的指示該錯誤率之一改變的一信號而偵測該改變。
- 如請求項1至5中任一項之記憶體控制器,其中該I/O電路系統係用以發送改變一模式暫存器設定之該命令以調整執行該等ECS操作之該速率。
- 如請求項1至5中任一項之記憶體控制器,其中該I/O電路系統係用以發送設定該ECS邏輯內之一組態的該命令。
- 如請求項1至5中任一項之記憶體控制器,其中該I/O電路系統係用以將額外再新命令發送至該記憶體裝置以使得該記憶體裝置能夠執行該等ECS操作。
- 一種記憶體裝置,其包含: 記憶體之多個列; 錯誤刷洗邏輯,其用以對記憶體之該等多個列執行錯誤檢查及刷洗(ECS)操作,包括用以偵測該等多個列中之錯誤、校正偵測到之錯誤且將經校正資料寫回至該記憶體,且該錯誤刷洗邏輯用以針對該等ECS操作來產生一錯誤計數以指示在該等ECS操作中偵測到之錯誤;以及 一儲存裝置,其用以識別藉由與該記憶體相關聯之一主機離線的列之位址,其中該錯誤刷洗邏輯係用以不針對藉由該主機離線之該等列之該等位址的該等ECS操作來產生該錯誤計數。
- 如請求項9之記憶體裝置,其中該儲存裝置包含該錯誤刷洗邏輯中之一儲存裝置。
- 如請求項10之記憶體裝置,其中該儲存裝置包含該錯誤刷洗邏輯之計數器邏輯內的一儲存裝置。
- 如請求項9至11中任一項之記憶體裝置,其中該錯誤刷洗邏輯包括一位址比較器,該位址比較器用以對照藉由該主機離線之列的該等位址而檢查用於ECS操作之內部的一產生位址,且僅在該產生位址並非藉由該主機離線之一列的一位址之情況下執行該等ECS操作,包括產生該錯誤計數。
- 如請求項9至11中任一項之記憶體裝置,其中該錯誤刷洗邏輯包括一位址比較器,該位址比較器用以對照藉由該主機離線之列的該等位址而檢查用於ECS操作之內部的一產生位址,對該產生位址執行該等ECS操作,且在該產生位址並非藉由該主機離線之一列的一位址之情況下產生該錯誤計數。
- 如請求項9至13中任一項之記憶體裝置,其中一相關聯記憶體控制器將藉由該主機離線之該等列的該等位址寫入該儲存裝置中。
- 一種記憶體裝置,其包含: 一陣列,其具有多個列; 錯誤刷洗邏輯,其用以對該等多個列執行錯誤檢查及刷洗(ECS)操作,包括用以偵測該等多個列中之錯誤、校正偵測到之錯誤且將經校正資料寫回至該陣列,其中該錯誤刷洗邏輯包括用以產生該等多個列之位址的一內部位址產生器,在該等位址處執行該等ECS操作;以及 一儲存裝置,其用以識別由一主機所請求以用於ECS操作的執行之一列的一位址,其中該內部位址產生器係用以在內部位址產生與由該主機所請求以用於該等ECS操作的執行之一列的一經識別位址之間進行選擇。
- 如請求項15之記憶體裝置,其中該儲存裝置包含該錯誤刷洗邏輯中之一儲存裝置或該錯誤刷洗邏輯之該內部位址產生器內的一儲存裝置。
- 如請求項15至16中任一項之記憶體裝置,其中該內部位址產生器包含加權仲裁邏輯,該加權仲裁邏輯對由該內部位址產生器所產生之位址及該經識別位址執行權重仲裁,以判定用於ECS操作之該執行的一或多個位址。
- 如請求項17之記憶體裝置,其中該經識別位址包含多個經識別位址中之一者,其中該等多個經識別位址中之各者具有用以儲存用於各別經識別位址之一權重的一相關聯暫存器。
- 如請求項18之記憶體裝置,其中該相關聯暫存器包含可藉由該主機及藉由該記憶體裝置寫入的一可動態組配之暫存器。
- 如請求項15至19中任一項之記憶體裝置,其中該經識別位址包含由該主機所請求以用於ECS操作之該執行的一特定列位址。
- 如請求項20之記憶體裝置,其中該錯誤刷洗邏輯係用以對由該主機所請求之該特定列位址及具有與該特定列位址連續之位址的列執行ECS操作,或用以對由該主機所請求之該特定列位址及與該特定列位址不連續之所產生位址的其他列執行ECS操作。
- 如請求項15至19中任一項之記憶體裝置,其中該經識別位址為一第一位址,其中該儲存裝置係用以儲存一第二位址,其中該第一位址係用以識別一列位址範圍之一開始,且該第二位址係用以識別該列位址範圍之一結束。
- 一種記憶體控制器,其包含: 控制邏輯,其用以偵測一相關聯記憶體中之一多位元錯誤(MBE)且判定偵測到之該MBE是否為與該相關聯記憶體之一特定位址相關的一錯誤型樣之部分,其中該錯誤型樣包括在該特定位址與具有多MBE之位址之間的一關聯;以及 輸入/輸出(I/O)邏輯,其用以回應於偵測到之該MBE為與該特定位址相關之一錯誤型樣之部分的一判定而將一命令發送至該相關聯記憶體,以觸發針對該相關聯記憶體之該特定位址的一列錘回應。
- 如請求項23之記憶體控制器,其中該控制邏輯係用以將該MBE偵測為自該相關聯記憶體所接收之資料中的一MBE,或將該MBE偵測為由該相關聯記憶體之一ECS電路偵測到的MBE之一指示。
- 如請求項23至24中任一項之記憶體控制器,其中該控制邏輯係用以藉由為同一排組之部分的該相關聯記憶體之不同記憶體裝置的多個位址之一比較來偵測該型樣,或其中該控制邏輯係用以藉由偵測到之該MBE的一位址與最近啟動(ACT)命令之位址的一比較來偵測該型樣。
- 如請求項23至25中任一項之記憶體控制器,其中該控制邏輯係用以藉由具有MBE之該相關聯記憶體內的位址之一群組的識別來偵測該型樣。
- 如請求項23至26中任一項之記憶體控制器,其中該I/O邏輯係用以發送停用對該相關聯記憶體之存取的該命令,或用以發送執行一目標列再新之該命令,以發送增加該相關聯記憶體之一刷洗速率的該命令。
- 如請求項23至26中任一項之記憶體控制器,其中該I/O邏輯係用以發送識別用於該相關聯記憶體之ECS邏輯之一位址提示的該命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/052959 WO2022066178A1 (en) | 2020-09-26 | 2020-09-26 | Adaptive internal memory error scrubbing and error handling |
WOPCT/US20/52959 | 2020-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202223903A true TW202223903A (zh) | 2022-06-16 |
Family
ID=78650005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110126096A TW202223903A (zh) | 2020-09-26 | 2021-07-15 | 適應性內部記憶體錯誤刷洗及錯誤處置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240211344A1 (zh) |
DE (1) | DE102021122170A1 (zh) |
NL (1) | NL2029034B1 (zh) |
TW (1) | TW202223903A (zh) |
WO (1) | WO2022066178A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11961578B2 (en) | 2022-09-01 | 2024-04-16 | Nanya Technology Corporation | Test device and test method thereof |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220269599A1 (en) * | 2021-02-25 | 2022-08-25 | International Business Machines Corporation | Sensor based memory array data scrubbing |
CN115443451A (zh) | 2021-04-01 | 2022-12-06 | 美光科技公司 | 与由微处理器识别的存储器错误相关的信息的记录和解码 |
US11726873B2 (en) * | 2021-12-20 | 2023-08-15 | Micron Technology, Inc. | Handling memory errors identified by microprocessors |
US20230206988A1 (en) * | 2021-12-24 | 2023-06-29 | Micron Technology, Inc. | Apparatus with memory process feedback |
US12001706B2 (en) * | 2022-01-21 | 2024-06-04 | Micron Technology, Inc. | Predictive sanitization of an array of memory with capacitive cells and/or ferroelectric cells |
CN115223615B (zh) * | 2022-09-20 | 2022-12-09 | 睿力集成电路有限公司 | 一种译码电路、译码方法和半导体存储器 |
CN117894363A (zh) * | 2022-10-08 | 2024-04-16 | 长鑫存储技术有限公司 | 一种ecs电路、方法和存储器 |
CN118284939A (zh) * | 2022-11-02 | 2024-07-02 | 长江存储科技有限责任公司 | 用于集成电路的终端电阻配置 |
CN115543678B (zh) * | 2022-11-30 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 监管ddr5内存颗粒错误的方法、系统、存储介质及设备 |
WO2024207649A1 (zh) * | 2023-04-03 | 2024-10-10 | 长鑫存储技术有限公司 | 一种存储器和控制器 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255772B1 (en) * | 2008-06-18 | 2012-08-28 | Cisco Technology, Inc. | Adaptive memory scrub rate |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
GB201500446D0 (en) * | 2015-01-12 | 2015-02-25 | Univ Manchester | Monitoring device |
US10599504B1 (en) * | 2015-06-22 | 2020-03-24 | Amazon Technologies, Inc. | Dynamic adjustment of refresh rate |
US10127101B2 (en) * | 2015-08-28 | 2018-11-13 | Intel Corporation | Memory device error check and scrub mode and error transparency |
US9880900B2 (en) * | 2015-12-08 | 2018-01-30 | Nvidia Corporation | Method for scrubbing and correcting DRAM memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state |
WO2017151567A1 (en) * | 2016-03-01 | 2017-09-08 | University Of Rochester | Content aware refresh |
CN107799143A (zh) * | 2016-09-06 | 2018-03-13 | 钰创科技股份有限公司 | 输出存储电路在自刷新模式的信息的电路及其相关方法 |
US10896088B2 (en) * | 2018-11-15 | 2021-01-19 | Seagate Technology Llc | Metadata recovery mechanism for page storage |
-
2020
- 2020-09-26 WO PCT/US2020/052959 patent/WO2022066178A1/en active Application Filing
- 2020-09-26 US US18/025,868 patent/US20240211344A1/en active Pending
-
2021
- 2021-07-15 TW TW110126096A patent/TW202223903A/zh unknown
- 2021-08-24 NL NL2029034A patent/NL2029034B1/en active
- 2021-08-26 DE DE102021122170.6A patent/DE102021122170A1/de active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11961578B2 (en) | 2022-09-01 | 2024-04-16 | Nanya Technology Corporation | Test device and test method thereof |
TWI847336B (zh) * | 2022-09-01 | 2024-07-01 | 南亞科技股份有限公司 | 測試裝置和其測試方法 |
Also Published As
Publication number | Publication date |
---|---|
NL2029034A (en) | 2022-05-24 |
WO2022066178A1 (en) | 2022-03-31 |
US20240211344A1 (en) | 2024-06-27 |
DE102021122170A1 (de) | 2022-03-31 |
NL2029034B1 (en) | 2022-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202223903A (zh) | 適應性內部記憶體錯誤刷洗及錯誤處置 | |
US10810079B2 (en) | Memory device error check and scrub mode and error transparency | |
US10255989B2 (en) | Semiconductor memory devices, memory systems including the same and methods of operating the same | |
US11966286B2 (en) | Read retry to selectively disable on-die ECC | |
US20210224155A1 (en) | Reduction of latency impact of on-die error checking and correction (ecc) | |
KR20190019209A (ko) | Ddr 메모리 에러 복구 | |
US11704194B2 (en) | Memory wordline isolation for improvement in reliability, availability, and scalability (RAS) | |
US11928042B2 (en) | Initialization and power fail isolation of a memory module in a system | |
US11664083B2 (en) | Memory, memory system having the same and operating method thereof | |
US20230083193A1 (en) | Uncorrectable memory error prediction | |
US11200113B2 (en) | Auto-increment write count for nonvolatile memory | |
US20240021263A1 (en) | Dynamic random access memory built-in self-test power fail mitigation | |
NL2029789B1 (en) | Adaptive error correction to improve for system memory reliability, availability, and serviceability (ras) | |
US20240013851A1 (en) | Data line (dq) sparing with adaptive error correction coding (ecc) mode switching | |
US11537292B2 (en) | Methods and apparatus for enhancing uber rate for storage devices | |
US20240118970A1 (en) | Techniques for memory scrubbing associated with reliability availability and serviceability features | |
US20220326860A1 (en) | Method and apparatus to perform bank sparing for adaptive double device data correction | |
US20220091764A1 (en) | Detection of data corruption in memory address decode circuitry | |
CN115762621A (zh) | 不可校正的存储器错误预测 | |
JP2023088840A (ja) | 適応的ダブルデバイスデータ訂正スペアリングのためのアドレス生成 |