[go: up one dir, main page]

TWI656440B - 記憶體模組、電腦系統以及記憶體控制方法 - Google Patents

記憶體模組、電腦系統以及記憶體控制方法 Download PDF

Info

Publication number
TWI656440B
TWI656440B TW105105759A TW105105759A TWI656440B TW I656440 B TWI656440 B TW I656440B TW 105105759 A TW105105759 A TW 105105759A TW 105105759 A TW105105759 A TW 105105759A TW I656440 B TWI656440 B TW I656440B
Authority
TW
Taiwan
Prior art keywords
memory
reliability
bit
zone
low
Prior art date
Application number
TW105105759A
Other languages
English (en)
Other versions
TW201643716A (zh
Inventor
牛迪民
張牧天
郑宏忠
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201643716A publication Critical patent/TW201643716A/zh
Application granted granted Critical
Publication of TWI656440B publication Critical patent/TWI656440B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一種記憶體模組可包括記憶體陣列及記憶體控制器。所 述記憶體控制器可包括狀況暫存器,所述狀況暫存器規定記憶體模組是以正常功率運作還是以低功率運作。可基於由狀況暫存器所規定的功率位準而在記憶體陣列中界定正常可靠度區及低可靠度區。

Description

記憶體模組、電腦系統以及記憶體控制方法
〔相關申請案資料〕
本申請案主張於2015年3月10日提出申請的美國臨時專利申請案第62/131,232號的權利,所述美國臨時專利申請案出於所有目的併入本案供參考。
本發明概念是有關於一種記憶體,且更具體而言是有關於一種包括具有不同可靠度水準的區的記憶體。
記憶體設計的成本(或每位元成本)高度依賴於記憶體陣列的面積。更大的陣列面積因更容易對互連進行路由以及例如列解碼器、行解碼器、感測放大器、及緩衝器等更多共享組件而產生更佳的面積效率(每位元成本更低)。
舉例而言,圖1A及圖1B示出記憶體模組的提供相同記憶體容量的兩種不同的設計。在圖1A中,示出記憶體陣列 105,記憶體陣列105是使用列解碼器110及行解碼器115來存取。(圖1A至圖1B為記憶體模組的簡化圖式:熟習此項技術者將認識到在記憶體模組中可存在較圖1A至圖1B中所示顯著更多的元件及電路系統。)
與圖1A形成對比,圖1B示出四個較小的記憶體陣列,例如記憶體陣列120。每一較小的記憶體陣列120具有其自己的列解碼器125及行解碼器130。可以看出,圖1A中記憶體模組的佔用面積(footprint)小於圖1B中記憶體模組的佔用面積。
記憶體陣列的大小受諸多約束條件限制。該些約束條件可包括讀取雜訊容限要求、延遲要求、及其他約束條件。此外,新興的非揮發性記憶體(non-volatile memory,NVM)及未來動態隨機存取記憶體(dynamic random access memory,DRAM)設計兩者皆可對記憶體陣列設計施加額外的約束條件。
非揮發性記憶體設計能夠使用垂直連接的裝置作為單元選擇器,例如單向雙極型接面電晶體(bipolar junction transistors,BJTs)或二極體裝置以及雙向裝置。該些設計能夠減小非揮發性記憶體的單元大小。但該些設計亦在字線及位元線處引入更大的潛洩電流(sneak current)。
增大動態隨機存取記憶體記憶體陣列的大小意味著更多位元能夠封包至動態隨機存取記憶體模組上的相同量的空間中。增大動態隨機存取記憶體記憶體陣列的大小亦容許更低的運作電壓及每位元更低的成本。但隨著運作電壓下降,例如閘極漏 電流及次臨限漏電流等漏電流變得顯著。
對非揮發性記憶體設計及動態隨機存取記憶體縮放問題的傳統解決方案是增大陣列大小或增大運作電壓。但增大陣列大小會增加記憶體模組所需要的面積,此會增加成本。而增大運作電壓會增加記憶體模組所消耗的功率。所述兩種後果皆為不可取的。
仍需要一種在記憶體設計中減少對潛洩電流及漏電流的涉及的方式。
105‧‧‧記憶體陣列
110‧‧‧列解碼器
115‧‧‧行解碼器
120‧‧‧記憶體陣列
125‧‧‧列解碼器
130‧‧‧行解碼器
205‧‧‧圓弧
210‧‧‧圓弧
215‧‧‧部分
305‧‧‧區/正常可靠度區/正常功率區
310‧‧‧區/低功率區/低可靠度區
405‧‧‧被圈出的位元
505‧‧‧區/正常可靠度區/正常功率區
510‧‧‧區/低可靠度區/低功率區
605‧‧‧被圈出的位元
705‧‧‧電腦系統
710‧‧‧電腦
715‧‧‧監視器
720‧‧‧鍵盤
725‧‧‧滑鼠
730‧‧‧處理器
735‧‧‧記憶體模組
740‧‧‧記憶體控制器
745‧‧‧狀況暫存器
750‧‧‧遮罩暫存器
755‧‧‧作業系統
760‧‧‧區界定器
765‧‧‧錯誤修正碼
770‧‧‧功率位準
775‧‧‧應用程式
805、810、815、820、825‧‧‧方框
905、910、915、920‧‧‧方框
1005、1010‧‧‧方框
1015、1020、1025、1030、1035‧‧‧方框
1105、1110‧‧‧方框
1205、1210、1215、1220‧‧‧方框
1225、1230、1235、1240、1245‧‧‧方框
1305‧‧‧模組
1310‧‧‧線
1315‧‧‧資料位元儲存器
1320‧‧‧核對位元電路系統
1325‧‧‧核對位元儲存器
1330‧‧‧核對位元電路系統
1335‧‧‧「互斥或」閘
1340‧‧‧「互斥或」閘
1345‧‧‧修正向量電路系統
1350‧‧‧線
1405‧‧‧校正子
1410、1415、1420、1425、1430、1435、1440‧‧‧結果
1505‧‧‧電路
1510‧‧‧線
1515‧‧‧資料位元儲存器
1520‧‧‧核對位元儲存器
1525‧‧‧錯誤修正電路系統/主錯誤修正碼核對器
1530‧‧‧故障資訊儲存器/故障資訊表
1535‧‧‧修正向量電路系統
1540‧‧‧錯誤修正電路系統/次錯誤修正碼核對器
1545‧‧‧最終資料向量電路系統
1605‧‧‧修正向量產生電路系統
1610‧‧‧「互斥或」閘
1615‧‧‧線
1620‧‧‧線
1705‧‧‧位元
1710‧‧‧位元
1715‧‧‧修正向量
1805‧‧‧表
1810、1815、1820、1825、1830、1835、1840、1845、1850‧‧‧單元
圖1A至圖1B比較使用不同陣列大小的記憶體模組所需要的佔用面積。
圖2A至圖2B比較在使用不同電壓時記憶體模組的可靠度。
圖3示出根據本發明概念的實施例,圖1A至圖1B的記憶體陣列基於圖2B的較低功率位準而被分割成具有不同可靠度的區。
圖4示出使用圖1A至圖1B所示記憶體陣列中的單元的列位址對圖3所示的區進行指派。
圖5示出根據本發明概念的第二實施例,圖1A至圖1B的記憶體陣列基於圖2B的較低功率位準而被分割成具有不同可靠度的區。
圖6示出使用圖1A至圖1B所示記憶體陣列中的單元的行位址對圖3所示的區進行指派。
圖7示出其中可使用圖3至圖6的記憶體模組的電腦系統。
圖8示出根據本發明概念的實施例,一種用於將記憶體陣列劃分成具有不同可靠度的區的程序的流程圖。
圖9示出根據本發明概念的實施例,一種使用具有不同可靠度的區來分配記憶體的頁面的程序的流程圖。
圖10A至圖10B示出根據本發明概念的實施例,一種用於分配記憶體的頁面的程序的流程圖。
圖11示出根據本發明概念的實施例,一種使用區界定器來界定區的程序的流程圖。
圖12A至圖12B示出根據本發明概念的實施例,一種用於針對應用程式分配記憶體的頁面的程序的流程圖。
圖13示出根據本發明概念的實施例,能夠修正多位元錯誤的電路。
圖14示出在圖13的電路中不同校正子值(syndrome value)至不同錯誤條件的映射。
圖15示出根據本發明概念的實施例,能夠使用錯誤修正碼來修正多位元錯誤的電路。
圖16示出圖15的修正向量電路系統的細節。
圖17示出圖16的修正向量產生電路系統的細節。
圖18示出基於圖15所示錯誤修正電路系統的結果的不同可 能情形的圖表。
現在將詳細參照本發明概念的實施例,在附圖中說明所述實施例的實例。在以下詳細說明中,闡述眾多具體細節以使得能夠透徹理解本發明概念。然而,應理解,此項技術中具有通常知識者可實踐本發明概念而無需該些具體細節。在其他情況下,眾所習知的方法、程序、組件、電路、及網路已不再詳細闡述以免不必要地使所述實施例的態樣模糊不清。
應理解,儘管在本文中可能使用用語第一、第二等來闡述各種元件,但該些元件不應受限於該些用語。該些用語僅用於區分各個元件。舉例而言,在不背離本發明概念的範圍的條件下,第一模組可被稱為第二模組,且類似地,第二模組可被稱為第一模組。
在本文中,在本發明概念的說明中使用的術語僅用於闡述特定實施例而非旨在限制本發明概念。除非上下文清楚地另外指明,否則在本發明概念的說明及隨附申請專利範圍中使用的單數形式「一(a、an)」及「所述(the)」旨在亦包括複數形式。亦應理解,本文所用的用語「及/或」指代並囊括相關聯列出項中一或多個項的任意及所有可能的組合。更應理解,當在本說明書中使用用語「包括(comprises)及/或包括(comprising)」時,是指出所陳述特徵、整數、步驟、操作、元件、及/或組件的存 在,而不排除一或多個其他特徵、整數、步驟、操作、元件、組件、及/或其群組的存在或添加。圖式的組件及特徵未必按比例繪製。
圖2A至圖2B比較在使用不同電壓時記憶體模組的可靠度。在圖2A中,示出記憶體陣列105正經歷正常電壓。圓弧205表示自電壓源開始的具有正常可靠度的面積。亦即,當電壓自其源沿著字線及位元線行進跨越記憶體陣列105時,電壓因例如洩漏及電阻等各種效應而損耗。隨著訊號行進,訊號變得更弱。最終,訊號行進得足夠遠而不足以確保資料能夠可靠地自記憶體陣列105讀取或可靠地寫入記憶體陣列105。圓弧205表示對記憶體陣列105的可靠讀取及寫入的限制。
使用正常電壓,如圖2A所示,整個記憶體陣列105可處於圓弧205以內。但若電壓較正常低,則記憶體陣列105的一部分可能不會接收足夠的訊號以能夠可靠地讀取或寫入資料。圖2B示出此種情況。
在圖2B中可以看出,圓弧210包括記憶體陣列105的一部分。但記憶體陣列105的由垂直陰影線標出的部分215不處於正常可靠度的界限內。因此,記憶體陣列105的部分215具有較記憶體陣列105的其餘部分低的可靠度。
儘管圖2A至圖2B示出與記憶體陣列105相關的電壓,但本發明概念的實施例可應用於任何記憶體陣列。因此,具有其較小面積(及較低資料儲存)的記憶體陣列120可由記憶體陣列 105來代替且適用性方面無損失,任何其他記憶體陣列亦如此。本發明概念的實施例並非受限於任何特定記憶體技術。因此,記憶體陣列105可為動態隨機存取記憶體(DRAM)陣列、非揮發性記憶體(NVM)陣列、或任何其他所需形式的記憶體陣列。
圖3示出根據本發明概念的實施例,圖1A的記憶體陣列105基於圖2B的較低功率位準而被分割成具有不同可靠度的區。在圖3中,示出記憶體陣列105受制於圓弧210,圓弧210表示記憶體陣列105中的何種資料元件將被視為在較低功率位準下具有正常可靠度。此外,部分215表示記憶體陣列105的不被視為具有正常可靠度的部分:亦即,記憶體陣列105的部分215被視為具有低可靠度。
記憶體陣列105可被分割成兩個區,例如區305及310。區305包括記憶體陣列105的即使在低功率下皆具有正常可靠度的資料元件。相比之下,包括記憶體陣列105的部分215的區310包括記憶體陣列105的被視為具有低可靠度的資料元件。
將記憶體陣列105分割成例如區305及310等多個區的優點在於,使系統知曉記憶體陣列105的特定資料元件是具有正常可靠度還是具有低可靠度成為可能。只需要使系統判斷資料元件位於哪一區中以及所述區被視為具有正常可靠度還是具有低可靠度。
圖4示出使用圖1A所示記憶體陣列105中的單元的列位址對圖3所示的區進行指派。在圖4中,在區305及310中針 對每一列示出列位址的三個位元。可以看出,列位址中被圈出的位元405可用於辨識資料元件位於哪一區中。因此,舉例而言,區305包括其中被圈出的位元具有值0的列位址,而區310包括其中被圈出的位元具有值1的列位址。因此,藉由檢查列位址中的單一位元,系統便可判斷資料元件是位於具有正常可靠度的區305中還是位於具有低可靠度的區310中。
儘管圖4示出區305及310是使用所述區中資料元件的列位址來辨識,但使用列位址中的位元僅為本發明概念的一個可能的實施例。在本發明概念的其他實施例中,可使用記憶體位址中的任何位元來辨識所述區。舉例而言,區305及310可藉由正被存取的資料元件的行位址中的位元或藉由記憶體位址中的任何其他位元來辨識。
圖5至圖6示出根據本發明概念的第二實施例,使用行定址而非列定址將圖1A至圖1B的記憶體陣列分割成具有不同可靠度的區。在圖5中,示出區505及510被排列成行而非列。在圖6中,在區505及510中針對每一行示出行位址的三個位元:被圈出的位元605可用於辨識資料元件位於哪一區中。
儘管圖3至圖6示出兩個區-一個區具有正常可靠度且另一個區具有低可靠度-但亦可界定其他區。舉例而言,記憶體陣列105可被分割成四個區,所述四個區中的某些區具有正常可靠度,且所述四個區中的某些區具有低可靠度。此外,具有正常可靠度的區的數目未必與具有低可靠度的區的數目匹配。舉例而 言,可存在具有低可靠度的一個區以及具有正常可靠度的三個區,或反之亦然。最後,儘管使區的數目為2的冪具有可使用記憶體位址中的位元的子集來辨識區的優點,但記憶體陣列105可被分割成任何數目的區。
圖7示出其中可使用圖3至圖6的記憶體模組的電腦系統。在圖7中,示出電腦系統705包括電腦710、監視器715、鍵盤720、及滑鼠725。熟習此項技術者將認識到電腦系統705可包括其他組件:舉例而言,可包括其他輸入/輸出裝置,例如列印機。此外,電腦系統705可包括例如處理器(中央處理單元)730、記憶體模組735、及記憶體控制器740等傳統內部組件。儘管在圖7中未示出,但熟習此項技術者將認識到電腦系統705可包括例如其他儲存裝置等其他內部組件。此外,熟習此項技術者將認識到電腦系統705可直接或藉由任何類型的網路(未示出)而與其他電腦系統交互。最後,儘管圖7示出電腦系統705為傳統桌上型電腦,但熟習此項技術者將認識到電腦系統705可為任何類型的機器或計算裝置,包括例如膝上型電腦、平板電腦、個人數位助理(personal digital assistant,PDA)、或智慧型電話等等。
記憶體控制器740可包括狀況暫存器745及遮罩暫存器750。狀況暫存器745可規定記憶體模組735是在正常功率狀態中運作還是在低功率狀態中運作。遮罩暫存器750可規定記憶體陣列105的低功率區310或510的可靠度如何。舉例而言,遮罩 暫存器750可規定低功率區310或510中多少百分比的資料元件正以足夠低的功率位準運作使得所述資料元件無法被視為可靠的。抑或遮罩暫存器750可規定低功率區310或510中的特定讀取或寫入操作將不被正確執行的平均機率:亦即,不正確資料將被寫入或不正確資料將被讀取。無論在遮罩暫存器750中所儲存的資料的特定形式如何,遮罩暫存器750可提供關於低功率區310或510的總體可靠度的資訊。大體而言,遮罩暫存器750可使用使記憶體模組735的功率與其總體可靠度相關的公式來計算。舉例而言,在交叉點電阻式記憶體陣列中,電壓降低20%通常造成記憶體陣列中至多12.5%的資料元件為不可靠的。因此,給定記憶體模組735的特定功率位準,可輕易地計算出在遮罩暫存器750中所儲存的可靠度水準。
如上所述,狀況暫存器745可規定記憶體模組735的功率狀態。作業系統755可在電腦系統705被使用時設定狀況暫存器745。舉例而言,在初始起動作業系統755時,作業系統755可判定記憶體模組735將使用正常功率狀態運作還是使用低功率狀態運作,並可據此將所述值儲存於狀況暫存器745中。在本發明概念的某些實施例中,一旦記憶體模組735的功率狀態被設定,則所述功率狀態不發生改變直至電腦系統705重新啟動。在本發明概念的其他實施例中,作業系統755可視需要在電腦系統705的使用期間改變記憶體模組735的功率狀態。
電腦系統705亦可包括例如區界定器760及錯誤修正碼 765等其他組件。區界定器760可用於如以上參照圖3至圖6所述將記憶體陣列105(其可為記憶體模組735的一部分)分割成多個區。由於記憶體模組735中某些資料元件的可靠度的降低在數學上與該些資料元件與電壓源之間的距離相關,因此區界定器760可使用此數學關係來將記憶體陣列105分割成多個區。此外,又由於資料元件的可靠度的降低在數學上與該些資料元件與電壓源之間的距離相關,因此區界定器760可界定多個區,所述多個區中的每一者皆具有不同的可靠度水準。舉例而言,一個區可具有正常可靠度,另一區可為95%可靠,另一區可為90%可靠,且另一區可為85%可靠。若區界定器760界定具有多個可靠度水準的區,則遮罩暫存器750可儲存任何區的最低可靠度水準,抑或遮罩暫存器可儲存不同區的不同可靠度水準。
圖7示出在電腦系統705中所包括的區界定器760。包括區界定器760可使得記憶體模組735能夠在可被施加至記憶體模組735的電壓可能不被預先知曉的情況下使用所述電壓。若未預先知曉可被施加至記憶體模組735的電壓,則無法預先計算出記憶體陣列105中各種資料元件的可靠度,此意味著無法預先計算出特定區及其可靠度水準。但在本發明概念的另一實施例中,電腦系統705可具有被硬編碼的可靠度資訊。亦即,電腦系統705可(例如,在記憶體控制器740中)對以下內容進行儲存:僅有兩個不同電壓位準可被施加至記憶體模組735、以及使用列定址確切地將記憶體模組735劃分成兩個區。藉由此附加資訊,可預 計算出關於記憶體陣列105中的區305(或505)及310(或510)及其相應可靠度水準的資訊。在本發明概念的此實施例中,可省略區界定器760。
作業系統755亦可包括功率位準770,功率位準770可使得作業系統755能夠以不同的功率位準進行實驗,並確定記憶體模組735的不同可靠度。舉例而言,作業系統可選擇二、三、四、或更多個有區別的功率位準以用於記憶體模組735,並可確定每一可能的功率位準的對應區及其相應可靠度。作業系統755然後可選擇功率位準以供使用並可將所選擇的功率位準儲存於狀況暫存器745中。
可結合記憶體陣列105使用錯誤修正碼以嘗試抵消區310或510的低可靠度。亦即,可使用錯誤修正碼765對在記憶體陣列105的區310或510中所儲存的資料進行編碼。然後,若錯誤修正碼765指示自記憶體陣列105的區310或510中的資料元件讀取的資料不正確,則可使用錯誤修正碼來嘗試進行修正。在不將本發明概念的實施例限制於特定實施方式的條件下,漢明碼(Hamming code)為可用於本發明概念的實施例的錯誤修正碼的實例。可以限制方式使用的錯誤修正碼的其他形式包括在以下相關專利申請案中所述的錯誤修正碼:於2015年7月1日提出申請的且名稱為「具有多位元硬錯誤及軟錯誤修正能力的部分同位錯誤修正碼核對機制(PARTIAL PARITY ECC CHECKING MECHANISM WITH MULTI-BIT HARD AND SOFT ERROR CORRECTION CAPABILITY)」的美國專利申請案第14/789,877號、以及於2015年6月25日提出申請的且名稱為「具有多位元硬錯誤及軟錯誤修正能力的多重錯誤修正碼核對機制(MULTIPLE ECC CHECKING MECHANISM WITH MULTI-BIT HARD AND SOFT ERROR CORRECTION CAPABILITY)」的美國專利申請案第14/751,126號,所述美國專利申請案兩者皆出於所有目的併入本案供參考且以下在附錄A及B中在某種程度上作出闡述。
不同區可基於區的可靠度而使用不同錯誤修正碼。舉例而言,被視為100%可靠的區可不使用錯誤修正碼(或僅使用簡單同位位元),被視為90%可靠的區可使用能夠修正單位元錯誤的錯誤修正碼,為80%可靠的區可使用能夠修正雙位元錯誤的錯誤修正碼(例如使用以上所提及的碼),且為70%可靠的區可使用能夠修正三位元錯誤的錯誤修正碼(例如使用以上所提及的碼)。本發明概念的其他實施例可針對不同區使用不同錯誤修正碼。
在本發明概念的一個實施例中,錯誤修正碼765可為電腦系統705的單獨組件。在本發明概念的另一實施例中,錯誤修正碼765可為作業系統755的一部分。在本發明概念的再一實施例中,錯誤修正碼765可為應用程式775的一部分。在本發明概念的其他實施例中,錯誤修正碼765可為記憶體模組735或記憶體控制器740的一部分。
端視錯誤修正碼765被包含於何處而定,對其使用的責任可不同。舉例而言,若錯誤修正碼765為作業系統755的一部分,則作業系統755可在資料被寫入記憶體陣列105或自記憶體陣列105讀取時使用錯誤修正碼765,而應用程式775無需負責使用錯誤修正碼765。因此,應用程式775甚至無需知曉其資料是儲存於正常可靠度區305或550中還是儲存於低可靠度區310或510中。理論上,若錯誤修正碼能夠充分補償在寫入資料或讀取資料時任何可能的錯誤,則應用程式775甚至不需要知曉其資料是儲存於正常可靠度區305或505中還是儲存於低可靠度區310或510中。
另一方面,應用程式775能夠提供關於應用程式775更傾向於其資料被儲存於何處的提示。舉例而言,應用程式775可指示應用程式775要求其資料至少為90%可靠。在所述情形中,電腦系統705可使用狀況暫存器745及遮罩暫存器750來判斷應用程式775的資料是否能夠儲存於正常可靠度區305或505中或應用程式775的資料是否應儲存於低可靠度區310或510中。當然,若狀況暫存器745指示記憶體模組735在正常功率狀態中運作,則記憶體模組735中的所有資料元件為均等地可靠的,且不需要來自應用程式775的提示。但若狀況暫存器745指示記憶體模組735以低功率運作,則電腦系統705可存取遮罩暫存器750以確定記憶體陣列105中低功率區310或510的可靠度。若遮罩暫存器750指示低功率區310或510對於應用程式775而言足夠 可靠,則可自低功率區310或510分配記憶體。否則,可自正常功率區305或505分配記憶體。
如上所述,區界定器760可界定多個區,所述多個區中的每一者皆具有不同可靠度。在所述情形中,電腦系統705可確定具有滿足應用程式的最低可靠度的區並使用所述區。
圖8示出根據本發明概念的實施例,一種用於將記憶體陣列105劃分成具有不同可靠度的區的程序的流程圖。在圖8中,在方框805處,作業系統755可確定記憶體模組735的一或多個低功率位準。在方框810處,區界定器760可界定記憶體陣列105的正常功率區305或505。在方框815處,區界定器760可界定記憶體陣列105的低功率區310或510。在方框820處,作業系統755可將功率位準儲存於記憶體控制器740的狀況暫存器745中。且在方框825處,作業系統755可將記憶體陣列105的低功率區310或510的可靠度水準儲存於遮罩暫存器750中。
在圖8中(以及在下文的其他流程圖中),示出本發明概念的一個實施例。但熟習此項技術者將認識到藉由改變方框的次序、藉由省略方框、或藉由包括圖式中未示出的鏈接,本發明概念的其他實施例亦為可能的。無論是否明確地闡述,流程圖的所有此種變型皆被視為本發明概念的實施例。
圖9示出根據本發明概念的實施例,一種使用具有不同可靠度的區來分配記憶體的頁面的程序的流程圖。在圖9中,在方框905處,作業系統755可接收對例如記憶體的頁面等某一記 憶體進行分配的請求。在方框910處,記憶體控制器740可基於狀況暫存器、遮罩暫存器、及請求得到記憶體的應用程式的可靠度要求來分配所請求記憶體。在方框915處,作業系統755可判斷所分配的記憶體是否位於低功率區310或510中。若判斷結果為是,則在方框920處,作業系統755、應用程式775、記憶體控制器740、或電腦系統705的某一其他組件可對在所分配記憶體中所儲存的資料應用錯誤修正碼765。
在圖8及圖9中,以及在下文其他流程圖中,具體結構被闡述為執行各種功能。該些具體結構為示例性的,且如上所述可由其他結構代替。舉例而言,作業系統755、應用程式775、及記憶體控制器740皆被闡述為能夠執行方框920。但其他結構亦能夠執行方框920。舉例而言,在本發明概念的某些實施例中,記憶體模組735亦可執行方框920。無論是否明確地闡述,所有此種變型皆被視為本發明概念的實施例。
圖10A至圖10B示出根據本發明概念的實施例,一種用於如在圖9的方框910中所示分配記憶體的頁面的程序的流程圖。在圖10A中,在方框1005處,記憶體控制器740可判斷用於分配的頁面是否位於低可靠度區310或510中。若判斷結果為是,則在方框1010處,記憶體控制器740可分配低可靠度區310或510中的頁面。
若待分配的頁面位於正常可靠度區305或505中,則在方框1015處(圖10B),記憶體控制器740可判斷在正常可靠度 區305或505中是否存在可供用於分配的頁面。若判斷結果為是,則在方框1020處,記憶體控制器740可分配正常可靠度區305或505中的頁面。但若在正常可靠度區305或505中不存在可供用於分配的頁面,則記憶體控制器740具有替代方法。
對在正常可靠度區305或505中無可用頁面的問題的一種解決方案是藉由如方框1025所示換出來自正常可靠度區305或505的頁面來騰出正常可靠度區305或505中的頁面。一旦正常可靠度區305或505中的頁面已被騰出,記憶體控制器740便可如方框1020所示分配來自正常可靠度區305或505的頁面。
對在正常可靠度區305或505中無可用頁面的問題的另一解決方案是如方框1030所示分配低可靠度區310或510中的頁面。然後,為補償頁面是自低可靠度區310或510分配的事實,作業系統755、應用程式775、記憶體控制器740、或電腦系統705的某一其他組件可如方框1035所示對所分配頁面應用錯誤修正碼765。注意,在方框1035中所使用的錯誤修正碼765可為較在圖9的方框920中所使用的錯誤修正碼765更有能力的錯誤修正碼,乃因方框920可基於以下假設運作:應用程式775可滿足於低可靠度記憶體,且因此沒有必要期望資料可靠度與正常可靠度區305或505中的頁面相當。
可視需要使用方框1025及1020對方框1030及1035的替代解決方案。舉例而言,記憶體控制器740可在某些情況下使用方框1025及1020,而在其他情況下使用方框1030及1035。 換言之,本發明概念的實施例可使用對在正常可靠度區305或505中無可用頁面供分配的問題的解決方案中的任一者或兩者。(注意,在低可靠度區310或510中缺乏可用頁面不是問題:應用程式總能夠使用較需要更可靠的記憶體的頁面。)
圖11示出根據本發明概念的實施例,一種使用區界定器760來界定區的程序的流程圖。在圖11中,在方框1105處,區界定器760可辨識區,使得所述區中的所有記憶體位址對於記憶體位址中的一或多個位元具有共同值。更具體而言,在方框1110處,區界定器760可辨識區,使得所述區中的所有列位址(或所有行位址)對於記憶體位址中的一或多個位元具有共同值。
圖12A至圖12B示出根據本發明概念的實施例,一種用於針對應用程式775分配記憶體的頁面的程序的流程圖。在圖12A中,在方框1205處,作業系統755可存取來自記憶體控制器740的狀況暫存器745。在方框1210處,作業系統755判斷記憶體模組735如由狀況暫存器745所指示是以正常功率運作還是以低功率運作。若記憶體模組735以正常功率運作,則在方框1215處,可針對應用程式775而自記憶體模組735分配任何記憶體。
作為另一選擇,若記憶體模組735以低功率運作,則在方框1220處,作業系統755可自應用程式775接收關於應用程式775可靠度要求的提示。然後,在方框1225(圖12B)處,作業系統755判斷應用程式775是否要求正常可靠度。若判斷結果 為是,則在方框1230處,作業系統755分配來自記憶體陣列105的正常可靠度區305或505的記憶體,且完成處理。作為另一選擇,若應用程式775不要求正常可靠度,則在方框1235處,作業系統755可存取來自記憶體控制器740的遮罩暫存器750。在方框1240處,作業系統755可判斷應用程式775是否要求較低可靠度區310或510的可靠度優越的可靠度。若判斷結果為是,則控制轉至方框1230以分配來自正常可靠度區305或505的記憶體。否則,在方框1245處,作業系統755可針對應用程式775分配來自低可靠度區310或510的記憶體。
以下論述旨在提供對其中可實作本發明概念的某些態樣的合適的一或多個機器的簡要、大體說明。通常,所述一或多個機器包括系統匯流排,處理器、記憶體(例如,隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、或其他狀態保存媒體)、儲存裝置、視訊介面、及輸入/輸出介面埠附接至所述系統匯流排。所述一或多個機器可至少部分地藉由以下方式受到控制:藉由來自例如鍵盤、滑鼠等傳統輸入裝置的輸入、以及藉由自另一機器接收的指示、與虛擬實境(virtual reality,VR)環境的交互、生物回饋、或其他輸入訊號。本文所用的用語「機器」旨在廣泛地囊括單個機器、虛擬機器、或由以通訊方式耦合的機器、虛擬機器、或一起運作的裝置構成的系統。示例性機器包括例如個人電腦、工作站、伺服器、可攜式電腦、手持裝置、電話、平板電腦等計算裝置、以及 例如私人或公共運輸工具(例如,汽車、火車、出租車等)等運輸裝置。
所述一或多個機器可包括例如可程式化或非可程式化邏輯裝置或陣列、應用專用積體電路(Application Specific Integrated Circuit,ASIC)、嵌式電腦、智慧卡等嵌式控制器。所述一或多個機器可利用例如經由網路介面、數據機、或其他通訊耦合而至一或多個遠端機器的一或多個連接。機器可藉由例如內部網路、網際網路、局部區域網路、廣域網路等物理及/或邏輯網路而進行互連。熟習此項技術者將理解,網路通訊可利用各種有線及/或無線短距離或長距離載波及協定,包括射頻(radio frequency,RF)、衛星、微波、電氣及電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)802.11、藍牙®、光纖、紅外線、纜線、雷射等。
本發明概念的實施例可藉由參照或結合包括功能、程序、資料結構、應用程式等的相關聯資料來闡述,所述相關聯資料當由機器存取時使機器執行任務或界定抽象資料類型或低階硬體上下文(low-level hardware context)。相關聯資料可例如儲存於揮發性及/或非揮發性記憶體(例如,隨機存取記憶體、唯讀記憶體等)中或儲存於其他儲存裝置及其相關聯儲存媒體(包括硬驅動機、軟磁碟、光學儲存器、磁帶、快閃記憶體、記憶條、數位視訊碟、生物儲存器等)中。相關聯資料可藉由傳輸環境(包括物理及/或邏輯網路)以封包、串列資料、並行資料、傳播訊 號等形式來傳遞,並可以壓縮或加密格式使用。相關聯資料可在分佈式環境中使用,並在本地及/或遠端儲存以供機器存取。
本發明概念的實施例可包括包含可由一或多個處理器執行的指令的有形、非暫時性機器可讀媒體,所述指令包括執行本文所述的本發明概念的元件的指令。
已參照所示實施例闡述及說明瞭本發明概念的原理,將認識到在不背離此種原理的條件下,所示實施例可在佈置及細節上進行修改,並可以任何所需方式加以組合。而且,儘管前面的論述著重於特定實施例,但設想其他配置。具體而言,儘管在本文中使用例如「根據本發明概念的實施例」等表達,但該些片語意在大體引用實施例的可能性,而並非旨在將本發明概念限制於特定實施例配置。本文所用的該些用語可引用能夠組合成其他實施例的相同或不同實施例。
前述說明性實施例不應被視為限制所述實施例的本發明概念。儘管已闡述了若干實施例,但熟習此項技術者將易於理解,在不實質上背離本發明的新穎教示內容及優點的條件下可對該些實施例作出諸多潤飾。因此,所有此種潤飾皆旨在包含於在申請專利範圍中界定的本發明概念的範圍內。
本發明概念的實施例可擴展至以下陳述,但沒有限制:
陳述1. 本發明概念的實施例包括一種記憶體模組,所述記憶體模組包括:記憶體陣列; 用於所述記憶體陣列的記憶體控制器;位於所述記憶體控制器中的狀況暫存器,所述狀況暫存器辨識所述記憶體模組是以正常功率位準運作還是以低功率位準運作;以及用於儲存資訊的儲存器,當所述記憶體模組以所述低功率位準運作時,所述資訊界定所述記憶體陣列中的至少一個正常可靠度區及所述記憶體陣列中的至少一個低可靠度區。
陳述2. 本發明概念的實施例包括如陳述1所述的記憶體模組,所述記憶體模組更包括區界定器,用以當所述記憶體模組以所述低功率位準運作時,界定所述記憶體陣列中的所述至少一個正常可靠度區及所述記憶體陣列中的所述至少一個低可靠度區。
陳述3. 本發明概念的實施例包括如陳述2所述的記憶體模組,其中所述區界定器能夠運作以界定所述至少一個正常可靠度區,使得所述至少一個正常可靠度區中的所有記憶體位址對於至少一個第一位元具有第一共同值。
陳述4. 本發明概念的實施例包括如陳述3所述的記憶體模組,其中所述區界定器能夠運作以界定所述至少一個正常可靠度區,使得所述至少一個正常可靠度區中的所有列位址對於至少一個第二位元具有第二共同值。
陳述5. 本發明概念的實施例包括如陳述3所述的記憶體模組,其中所述區界定器能夠運作以界定所述至少一個正常可 靠度區,使得所述至少一個正常可靠度區中的所有行位址對於至少一個第二位元具有第二共同值。
陳述6. 本發明概念的實施例包括如陳述2所述的記憶體模組,其中所述區界定器能夠運作以界定所述至少一個低可靠度區,使得所述至少一個低可靠度區中的所有記憶體位址對於至少一個第一位元具有第一共同值。
陳述7. 本發明概念的實施例包括如陳述6所述的記憶體模組,其中所述區界定器能夠運作以界定所述至少一個低可靠度區,使得所述至少一個低可靠度區中的所有行位址對於至少一個第二位元具有第二共同值。
陳述8. 本發明概念的實施例包括如陳述6所述的記憶體模組,其中所述區界定器能夠運作以界定所述至少一個低可靠度區,使得所述至少一個低可靠度區中的所有列位址對於至少一個第二位元具有第二共同值。
陳述9. 本發明概念的實施例包括如陳述1所述的記憶體模組,更包括位於所述記憶體控制器中的遮罩暫存器,所述遮罩暫存器規定所述至少一個低可靠度區的可靠度水準。
陳述10. 本發明概念的實施例包括如陳述1所述的記憶體模組,所述記憶體模組更包括錯誤修正碼電路系統,所述錯誤修正碼電路系統能夠應用於在所述記憶體陣列中的所述至少一個低可靠度區中所儲存的資料。
陳述11. 本發明概念的實施例包括如陳述10所述的記 憶體模組,所述記憶體模組更包括第二錯誤修正碼電路系統,所述第二錯誤修正碼電路系統能夠應用於在所述至少一個正常可靠度區中所儲存的資料。
陳述12. 本發明概念的實施例包括如陳述10所述的記憶體模組,其中:所述錯誤修正碼電路系統能夠應用於在所述至少一個低可靠度區的第一區中所儲存的第一資料;以及所述記憶體模組更包括第二錯誤修正碼電路系統,所述第二錯誤修正碼電路系統能夠應用於在所述至少一個低可靠度區的第二區中所儲存的第二資料。
陳述13. 本發明概念的實施例包括如陳述1所述的記憶體模組,其中所述記憶體控制器能夠運作以:接收對記憶體的頁面進行分配的請求;存取所述狀況暫存器;以及分配所述至少一個正常可靠度區或所述至少一個低可靠度區中的頁面。
陳述14. 本發明概念的實施例包括如陳述13所述的記憶體模組,其中因應於所述狀況暫存器指示所述記憶體模組正以正常可靠度水準運作,所述記憶體控制器能夠運作以分配所述記憶體陣列中的任何頁面。
陳述15. 本發明概念的實施例包括如陳述13所述的記憶體模組,其中因應於所述狀況暫存器指示所述記憶體模組正以 所述低功率位準運作,所述記憶體控制器能夠運作以:自應用程式接收關於所述應用程式的可靠度要求的提示;以及根據來自所述應用程式的所述提示,分配所述至少一個正常可靠度區或所述至少一個低可靠度區中的所述頁面。
陳述16. 本發明概念的實施例包括如陳述15所述的記憶體模組,其中所述記憶體控制器能夠運作以:自所述應用程式接收關於所述應用程式能夠使用所述至少一個低可靠度區的所述提示;以及分配所述至少一個低可靠度區中的所述頁面。
陳述17. 本發明概念的實施例包括一種系統,所述系統包括:電腦;處理器;以及作業系統,能夠運作以在所述處理器上運行,其中所述作業系統能夠運作以確定記憶體模組的功率位準以及界定所述記憶體模組中的至少一個正常可靠度區及所述記憶體模組中的至少一個低可靠度區。
陳述18. 本發明概念的實施例包括如陳述17所述的系統,其中所述作業系統能夠運作以在記憶體控制器中的狀況暫存器中儲存所述功率位準。
陳述19. 本發明概念的實施例包括如陳述17所述的系 統,其中所述作業系統能夠運作以在記憶體控制器中的遮罩暫存器中儲存所述至少一個低可靠度區的可靠度水準。
陳述20. 本發明概念的實施例包括如陳述17所述的系統,所述系統更包括錯誤修正碼,所述錯誤修正碼能夠應用於所述記憶體模組中的低可靠度區中的資料。
陳述21. 本發明概念的實施例包括如陳述20所述的系統,其中所述作業系統包括所述錯誤修正碼。
陳述22. 本發明概念的實施例包括如陳述20所述的系統,所述系統更包括能夠運作以在所述處理器上運行的應用程式,所述應用程式包括所述錯誤修正碼。
陳述23. 本發明概念的實施例包括一種方法,所述方法包括:確定電腦中的記憶體的低功率位準;基於所述低功率位準來辨識所述記憶體中的至少一個正常可靠度區;基於所述低功率位準來辨識所述記憶體中的至少一個低可靠度區;以及設定所述記憶體的記憶體控制器中的狀況暫存器,所述記憶體控制器連接至所述電腦,所述狀況暫存器規定所述記憶體是以正常功率位準運作還是以所述低功率位準運作。
陳述24. 本發明概念的實施例包括如陳述23所述的方法,其中辨識所述記憶體中的至少一個正常可靠度區包括:辨識 所述記憶體中的所述至少一個正常可靠度區,使得所述至少一個正常可靠度區中的所有記憶體位址對於至少一個第一位元具有第一共同值。
陳述25. 本發明概念的實施例包括如陳述24所述的方法,其中辨識所述記憶體中的所述至少一個正常可靠度區包括:辨識所述記憶體中的所述至少一個正常可靠度區,使得所述至少一個正常可靠度區中的所有列位址對於所述至少一個第一位元具有所述第一共同值。
陳述26. 本發明概念的實施例包括如陳述24所述的方法,其中辨識所述記憶體中的所述至少一個正常可靠度區包括:辨識所述記憶體中的所述至少一個正常可靠度區,使得所述至少一個正常可靠度區中的所有行位址對於所述至少一個第一位元具有所述第一共同值。
陳述27. 本發明概念的實施例包括如陳述23所述的方法,其中辨識所述記憶體中的至少一個低可靠度區包括:辨識所述記憶體中的所述至少一個低可靠度區,使得所述至少一個低可靠度區中的所有記憶體位址對於至少一個第二位元具有第二共同值。
陳述28. 本發明概念的實施例包括如陳述27所述的方法,其中辨識所述記憶體中的所述至少一個低可靠度區包括:辨識所述記憶體中的所述至少一個低可靠度區,使得所述至少一個低可靠度區中的所有行位址對於所述至少一個第二位元具有所 述第二共同值。
陳述29. 本發明概念的實施例包括如陳述27所述的方法,其中辨識所述記憶體中的所述至少一個低可靠度區包括:辨識所述記憶體中的所述至少一個低可靠度區,使得所述至少一個低可靠度區中的所有列位址對於所述至少一個第二位元具有所述第二共同值。
陳述30. 本發明概念的實施例包括如陳述23所述的方法,所述方法更包括對在所述至少一個低可靠度區中所儲存的資料應用錯誤修正碼。
陳述31. 本發明概念的實施例包括如陳述30所述的方法,其中:對在所述至少一個低可靠度區中所儲存的資料應用錯誤修正碼包括:對在所述至少一個低可靠度區的第一區中所儲存的第一資料應用第一錯誤修正碼;且所述方法更包括:對在所述至少一個低可靠度區的第二區中所儲存的第二資料應用第二錯誤修正碼。
陳述32. 本發明概念的實施例包括如陳述30所述的方法,所述方法更包括:對在所述至少一個正常可靠度區中所儲存的第二資料應用第二錯誤修正碼。
陳述33. 本發明概念的實施例包括如陳述23所述的方法,所述方法更包括:根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面。
陳述34. 本發明概念的實施例包括如陳述33所述的方法,其中根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面包括:存取所述狀況暫存器;以及因應於所述狀況暫存器指示所述記憶體正以所述正常功率位準運作,分配所述記憶體中的任意頁面。
陳述35. 本發明概念的實施例包括如陳述34所述的方法,其中根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面更包括因應於所述狀況暫存器指示所述記憶體正以所述低功率位準運作而進行以下操作:自所述應用程式接收關於所述可靠度要求的提示;根據來自所述應用程式的所述提示來分配所述記憶體中的頁面。
陳述36. 本發明概念的實施例包括如陳述35所述的方法,其中:自所述應用程式接收關於所述可靠度要求的提示包括:接收使用所述低可靠度區的提示;且所述方法更包括:由所述應用程式應用錯誤修正碼。
陳述37. 本發明概念的實施例包括如陳述34所述的方法,所述方法更包括:設定所述記憶體的記憶體控制器中的遮罩暫存器,所述記憶體控制器位於所述電腦中,所述遮罩暫存器規定所述至少一個低可靠度區的可靠度水準。
陳述38. 本發明概念的實施例包括如陳述37所述的方法,其中根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面包括因應於所述狀況暫存器指示所述記憶體正以所述低功率位準運作而進行以下操作:自所述應用程式接收關於所述可靠度要求的提示;判斷來自所述應用程式的提示是否指示具有較由所述遮罩暫存器所規定的所述可靠度水準高的可靠度的區;因應於來自所述應用程式的所述提示指示具有較由所述遮罩暫存器所規定的所述可靠度水準高的可靠度的區,分配來自所述記憶體中的所述正常可靠度區的頁面;以及因應於來自所述應用程式的所述提示指示具有並非較由所述遮罩暫存器所規定的所述可靠度水準大的可靠度的區,分配來自所述記憶體中的所述低可靠度區的頁面。
因此,鑒於對本文所述的實施例的各種排列,此詳細說明及隨附材料僅旨在為說明性的,而不應被視為限制本發明概念的範圍。因此,本發明概念所請求保護的是可處於以下申請專利範圍及其等效範圍的範圍及精神內的所有此種潤飾。
附錄A
此附錄包括來自於2015年7月1日提出申請的且名稱為「具有多位元硬錯誤及軟錯誤修正能力的部分同位錯誤修正碼核對機制(PARTIAL PARITY ECC CHECKING MECHANISM WITH MULTI-BIT HARD AND SOFT ERROR CORRECTION CAPABILITY)」的美國專利申請案第14/789,877號的揭露內容的一部分。
本發明概念理念的實施例使用一組部分同位核對位元(partial parity check bit)來產生可與資料一起儲存的唯一核對字。計算核對位元使得資料位元、核對位元、或資料位元與核對位元的組合中小於或等於核對碼的修正容量的任何數目的位元錯誤將產生資料/核對位元組合,所述資料/核對位元組合將基於來自可能有故障資料字的核對位元的重新計算而產生另一唯一碼。若所重新計算的核對位元與先前讀取的核對位元(具有可能故障)進行「互斥或」運算,則可產生具有相同寬度的校正子值。校正子可辨識哪一位元出現錯誤。
圖13示出根據本發明概念的實施例,可用於修正多位元錯誤的模組。圖13將首先在高階層上進行論述,然後關於某些元件進行更具體論述。模組1305可用於電腦的任何所需元件中,但出於示例性目的,模組1305被示出為記憶體模組,例如可用於隨機存取記憶體(RAM)中。模組1305未示出例如用於指示將讀取還是寫入資料的線等控制輸入。此外,模組1305可 被一般化為任何所需記憶體配置,包括可並行讀取或寫入的資料等等。
在圖13中,經由線1310而輸入資料以用於寫入。所述資料被饋送至兩個元件中:資料位元儲存器1315及核對位元電路系統1320。在本發明概念的實施例中,核對位元電路系統1320可用於產生在錯誤修正碼中所使用的核對位元。由核對位元電路系統1320所產生的核對位元可儲存於核對位元儲存器1325中。核對位元儲存器1325為所述模組的儲存器的一部分:模組1305可以核對位元儲存器1325的額外儲存器進行擴展,抑或核對位元儲存器1325可取自資料位元儲存器1315(且資料位元儲存器1315的容量一致減小)。此外,儘管圖13示出資料位元儲存器1315與核對位元儲存器1325有區別,但核對位元可與資料位元混合地儲存於單一儲存元件中。重要的是核對位元可作為核對位元而非資料位元被處理。
當是時候讀取資料時,存取來自資料位元儲存器1315的資料。所讀取資料被饋送至兩個元件中:核對位元電路系統1330及「互斥或」閘(XOR gate)1335。核對位元電路系統1330使用與核對位元電路系統1320相同的邏輯來產生核對位元。在本發明概念的某些實施例中,核對位元電路系統1320可用於在自資料位元儲存器1315讀取資料之後產生核對位元,以減少模組1305中所需要的電路系統量。
可自核對位元儲存器1325讀取核對位元。可與來自資 料位元儲存器1315的資料位元並行地自核對位元儲存器1325讀取核對位元、抑或可視情況調整定時:例如,以確保至「互斥或」閘1340的所有輸入皆同時到達。將自核對位元儲存器1325讀取的及由核對位元電路系統1330產生的核對位元輸入至「互斥或」閘1340。然後,「互斥或」閘1340對所輸入的所述兩組核對位元計算按位元「互斥或」(bitwise XOR)。更具體而言,「互斥或」閘1340對核對位元的每一按位元對的兩個位元C0、兩個位元C1等等計算「互斥或」。
藉由對核對位元的個別對進行「互斥或」運算,模組1305可判斷個別成對的核對位元是否不一致。若一對核對位元一致,則「互斥或」閘1340針對所述一對核對位元計算的結果將為0;若一對核對位元不一致,則「互斥或」閘1340的結果將為1。對各對核對位元進行「互斥或」運算的優點是可使用比較來辨識錯誤的類型並修正所述錯誤,此在下文進一步進行論述。
「互斥或」閘1340的結果當被視為位元的序列時可被稱為校正子。因此校正子為可辨識已發生了何種錯誤(直至錯誤修正碼的限制)的位元型樣(bit pattern)。亦即,校正子可辨識在資料位元與核對位元之間是否存在1、2、3...直至 E 個位元錯誤以及哪一位元出現錯誤。此外,校正子可用於產生可用來修正所偵測錯誤的修正向量。修正向量電路系統1345採用「互斥或」閘1340所輸出的校正子並產生用於資料位元的適當修正向量。然後將此修正向量(連同自資料位元儲存器1315讀取的資料位 元)輸入至「互斥或」閘1335。然後,「互斥或」閘1335的結果為可經由線1350自模組1305輸出的正確的資料。
更詳細地查閱圖13,證實了關於核對位元電路系統1320及1330、「互斥或」閘1340對校正子的計算、及修正向量電路系統1345的其他額外論述。首先,如上所述,核對位元電路系統1320及1330可產生在錯誤修正碼中所使用的核對位元。核對位元電路系統1320及1330可如何產生核對位元的具體細節依賴於被使用的錯誤修正碼的具體細節。被編碼的資料位元的數目及設計碼以進行修正的位元錯誤的數目為影響所需核對位元數目的變數。若 C 表示在錯誤修正碼中所使用的核對位元的數目、 D 表示被編碼的資料位元的數目、且 E 表示可修正錯誤的最大數目,則 C 根據下文由以下兩個方程式限定: C=E * N
2 N >=( D + C + 1 )
錯誤修正位元中所需要的核對位元的數目根據上文僅由可用的儲存量來限定。
對於給定大小為 D 且可修正錯誤的最大數目為 E 的資料,可存在將提供錯誤修正能力的多種不同的核對位元組合。可產生每一核對位元作為資料位元的部分子集的「互斥或」。為能夠偵測及修正資料位元中的錯誤,每一資料位元需要包含於核對位元的某一子集中,且每一核對位元需要包括資料位元的不同子集。此外,由資料位元表示的每一唯一值需要產生核對位元值的 唯一組合。理論上可使用滿足該些約束的任何核對位元計算來產生所需錯誤修正碼。
除部分同位核對位元之外,可計算額外全同位(full parity)核對位元作為所有資料位元的「互斥或」。全同位核對位元可用於關聯來自校正子值的錯誤計數,乃因全同位核對等價於錯誤的數目模2(the number of errors modulo 2)。但由於校正子空間(syndrome space)在部分同位方法中被更稀疏地填充,因此在存在部分同位錯誤修正碼時不需要全同位核對位元,因而存在更佳的固有不可修正錯誤偵測。
轉至校正子值的產生,如上所述,計算校正子值作為由核對位元電路系統1330計算的及自核對位元儲存器1325讀取的核對位元的「互斥或」。若存在用於錯誤修正碼中的 C 個核對位元,則存在2 C 個可能的校正子值。但該些值中的大多數不太可能發生。亦即,有意義的校正子值的數目小於所有可能的校正子值的空間。圖14示出在圖13的電路中不同校正子值至不同錯誤條件的映射。
圖14示出使用可修正達兩個位元錯誤的錯誤修正碼的不同校正子值至不同錯誤條件的示例性映射。但圖14中所示出的映射可一般化為處置任何數目的位元錯誤。如在圖14中所示,若校正子1405不具有被設定為1的位元,則意指自核對位元儲存器1325讀取的核對位元與由核對位元電路系統1330所計算的核對位元匹配。由於核對位元相匹配,因此如在結果1410中所 示在資料中無錯誤。若校正子1405具有一個被設定為1的位元,則如在結果1415中所示在單一核對位元中存在錯誤。類似地,若校正子1405具有兩個被設定為1的位元,則如在結果1420中所示存在兩個核對位元錯誤。(用於在核對位元電路系統1320及1330中產生核對位元的技術保證校正子因資料位元錯誤的任何組合-至少在錯誤修正碼的容差內而無法具有一個或兩個被設定為1的位元。)
若確切而言自資料位元儲存器1315讀取的一個資料位元不同於經由線1310而被輸入至模組1305的資料位元,則存在將在校正子1405中出現的特定型樣。該些型樣可預先產生並進行儲存(例如,儲存於修正向量電路系統1345內),並可與校正子1405進行比較。因此,若校正子1405具有與指示單位元錯誤的型樣匹配的位元型樣,則如在結果1425中所示存在單資料位元錯誤。此外,若確切而言自資料位元儲存器1315讀取的兩個資料位元不同於經由線1310而被輸入至模組1305的資料位元,則校正子1405將與指示該些單位元錯誤的兩個位元型樣的「互斥或」匹配。因此,若校正子1405與指示單位元錯誤的兩個位元型樣的「互斥或」匹配,則如在結果1430中所示存在雙資料位元錯誤。關於單資料位元錯誤,單資料位元錯誤的所有可能對的「互斥或」可預先產生並進行儲存以使得與校正子1405的比較更簡單且更快速。
若存在兩個錯誤,其中一個位於資料位元中且另一個位 於核對位元中,則結果會得到與一個位元中的單資料位元錯誤不同的校正子。注意,此一個位元差異可為被設定為1的位元(亦即,本不應被設定但確實已設定的核對位元)或被設定為0的位元(亦即,本應被設定但尚未設定的核對位元)。根據演算法,此種情況可被表達為單資料位元錯誤的核對位元與被設定為1的單一核對位元的「互斥或」。若校正子1405具有除一個核對位元外與單資料位元錯誤匹配的型樣,則如由結果1435所示存在單資料位元錯誤及單核對位元錯誤兩者。關於資料位元錯誤的型樣,將資料位元與核對位元錯誤組合的該些型樣可預先產生並進行儲存。
最後,可能會發生校正子與上述型樣中的任一者皆不匹配的情況。若發生此種情況,則如在結果1440中所示存在非預期的錯誤。此種非預期的錯誤的實例為發生錯誤的位元的數目超過碼的修正容量的情況。可以任何所需方式(例如拋出異常)對非預期的錯誤進行處置,乃因錯誤修正碼無法修正所述錯誤。
一旦已知核對位元映射解決方案,便可預先計算出錯誤定位表的校正子。核對位元錯誤易於辨識,乃因所述核對位元錯誤為簡單的2的冪:0×0001為核對位元0,0×0002為核對位元1,且依此類推。類似地,所有雙核對位元錯誤將映射至僅具有兩個1位元的校正子值,其中每一者為基於用於單核對位元錯誤的「2的冪」規則的核對位元指標。為資料位元與核對位元的組合的錯誤是與額外「2的冪」核對位元校正子進行「互斥或」運算的資 料位元校正子。
如上所述,校正子1405的一個性質為辨識錯誤的校正子值的數目小於所有可能的校正子值的空間。具體而言,若存在 C 個核對位元,則僅存在一個可能的指示無錯誤的校正子值;若存在指示單位元錯誤(資料位元的或核對位元的)的 C 個可能的校正子值,則存在指示兩個核對位元錯誤或兩個資料位元錯誤的 C .( C -1)個可能的校正子值以及指示一個資料位元錯誤及一個核對位元錯誤的 C 2個可能的校正子值。因此,所有有意義的校正子值總數為2 C 個可能的校正子值中的3 C 2+1。當然,若核對位元的數目保持恆定且錯誤修正碼被設計用於修正多於兩個位元錯誤,則更大百分比的可能的校正子值為有意義的,但即使如此,有意義的校正子值的百分比仍小於包含所有可能的校正子值的空間。
可如圖14所示推斷出校正子值的解譯的若干推論。首先,注意對於自核對位元儲存器1325不正確地讀取的每一核對位元,校正子值將具有被設定為1的位元。因此,辨識資料位元錯誤的任何校正子值具有多於此數目的被設定為1的位元。因此,若錯誤修正碼被設計用於修正達 E 個位元錯誤,則在辨識資料位元錯誤的校正子中被設定為1的位元的數目具有至少 E +1個被設定為1的位元。換言之,若辨識資料位元錯誤的校正子值將具有至多 E 個被設定為1的位元,則校正子無法區分資料位元錯誤與一組核對位元錯誤。
校正子值的解譯的第二推論是任何資料位元用於至少 E 個不同的核對位元中。原因很簡單。假設資料位元用於僅1個核對位元中(此假設使情景減少至數學上最簡單的情形以便於理解,但可被一般化為少於 E 的任何數目的核對位元。)若所述資料位元不正確地自資料位元儲存器1315讀取,則僅一個核對位元將被設定為1。因此,校正子值將無法區分被不正確地讀取的資料位元或被不正確地讀取的核對位元。
現在轉至修正向量電路系統1345,如上所述,修正向量電路系統1345採用校正子並產生適當修正向量來修正位元錯誤。由於每一校正子為唯一故障辨識符,因此可僅使用校正子位元而自簡單「與-或(AND-OR)」結構產生辨識待修正的一或多個位元的修正向量。亦即,映射至特定修正向量的所有校正子值可一起進行「與」運算,且所有可能的所產生的修正向量可一起進行「或」運算,以針對特定校正子值傳回適當修正向量。注意,當每一有意義的校正子值表示不同的錯誤條件時,不同的校正子值可產生相同的修正向量。舉例而言,作為讀取資料的一部分,核對位元錯誤儘管對捕獲而言為重要的但無需進行修正,乃因應用程式僅需要資料位元。因此,舉例而言,辨識資料位元1中的錯誤的校正子值及辨識資料位元1及任何核對位元兩者中的錯誤的校正子值可映射至相同修正向量。
存在其他錯誤修正碼。但使用本發明概念的實施例具有優於此種錯誤修正碼的優點。本發明概念的實施例能夠修正多個 資料故障,例如在存在位於字中的軟錯誤(soft error,SEU)以及硬製造故障時可能發生的故障。此外,本發明概念的實施例包括簡單得多的實施結構。舉例而言,BCH(63,51,5)碼可使用12位元核對字來修正32位元資料字中的多達2個錯誤。但此種碼要求32級「互斥或」閘控(假設其他31個額外碼位元被繞過)以用於核對位元產生及校正子計算。此外,一旦校正子已被計算出,則仍存在多級計算以導出錯誤位置。相比之下,本發明概念的實施例容許並行地計算核對位元及直接映射錯誤位置,使得本發明概念的實施例更適用於具有例如隨機存取記憶體應用等高速定時約束的情況。
附錄B
此附錄包括來自於2015年6月25日提出申請的且名稱為「具有多位元硬錯誤及軟錯誤修正能力的多重錯誤修正碼核對機制(MULTIPLE ECC CHECKING MECHANISM WITH MULTI-BIT HARD AND SOFT ERROR CORRECTION CAPABILITY)」的美國專利申請案第14/751,126號的揭露內容的一部分。
嵌式隨機存取記憶體(RAM)中的少量的製造故障可在所述故障的存在為錯誤修正碼(error correcting code,ECC)機制所已知時被容忍。在此增強的修正方法中所使用的隨機存取記憶體故障資訊為單一固定型故障(Stuck-At fault)的位置及具有所述故障的位元定位的列表,所述列表被稱為硬故障表。位元故障的極性(固定於0(Stuck-At-0)或固定於1(Stuck-At-1))是不需要的。故障位置資訊(字及位元)可在自隨機存取記憶體讀取資料時使用,因此可使用例如唯讀記憶體(ROM)或內容可定址記憶體(content-addressable memory,CAM)等直接映射式結構。所述資訊用於產生與隨機存取記憶體資料字具有相同寬度且在存取無故障位置時皆為零的修正向量,並且在具有故障的位元定位中具有對於含有硬故障的位置中的僅一個位置。修正向量可與隨機存取記憶體讀取資料進行「互斥或(XOR)」運算,以在具有硬故障的位元具有與其固定型值相反的狀態的情況下產生替代資料值。
錯誤修正碼機制使用可並行運作的兩個單錯誤修正/雙錯誤偵測(single-error correcting/double-error detecting,SEC/DED)錯誤修正碼核對器。主錯誤修正碼核對器(ECC1)接收由資料位元及核對位元構成的隨機存取記憶體資料。次錯誤修正碼核對器(ECC2)在應用修正向量之後接收隨機存取記憶體資料的替代副本(alternate copy)。然後使用指示應輸出何種正確資料的一組規則來比較來自所述兩個錯誤修正碼核對器的結果。
圖15示出根據本發明概念的實施例,可使用錯誤修正碼來修正多位元錯誤的電路。在圖15中,電路1505可併入記憶體模組中,例如併入隨機存取記憶體中。但電路1505可併入包括資料儲存器的任何模組(例如位於處理器上的高速緩衝記憶體)中。
可經由線1510輸入資料向量(亦即,一組資料位元,其亦可被稱為資料字)。可將資料向量儲存於資料位元儲存器1515中。電路1505未示出例如用於指示將讀取還是將寫入資料的線等控制輸入。此外,電路1505可被一般化為任何所需記憶體配置,包括可並行讀取或寫入的資料等等。
亦可經由線1510輸入核對向量(亦即,一組核對位元),並可將其儲存於核對位元儲存器1520中。核對向量可使用例如單錯誤修正/雙錯誤偵測漢明碼等任何所需錯誤修正碼演算法來產生。在圖15中,核對向量可在資料向量進入資料位元儲存器 1515中之前產生,但核對向量亦可在資料向量儲存於資料位元儲存器1515中之前使用電路1505內的錯誤修正碼電路系統產生。
儘管圖15示出資料位元儲存器1515與核對位元儲存器1520有區別,但核對位元可與資料位元混合地儲存於單一儲存元件中。重要的是核對位元可作為核對位元而非資料位元被處理。類似地,儘管在閱讀以上說明時可將其理解為暗示資料向量與核對向量在不同時間輸入,但資料向量與核對向量亦可同時輸入。
當自資料位元儲存器1515讀取資料向量時,亦可自核對位元儲存器1520讀取核對向量。該些向量可輸入至錯誤修正電路系統1525(以上被稱為主錯誤修正碼核對器)中,錯誤修正電路系統1525可判斷核對向量是否與資料向量一致。主錯誤修正碼核對器1525可運作的一種方式是使用核對向量來修正資料向量中的任何錯誤,此在使用錯誤修正碼碼時會正常發生。主錯誤修正碼核對器1525可運作的另一種方式是根據自資料位元儲存器1515讀取的資料向量重新計算核對向量,並將所述結果與自核對位元儲存器1520讀取的核對向量進行比較。無論主錯誤修正碼核對器1525運作的方式如何,所述結果指示出現錯誤的位元的數目(在資料向量與核對向量之間)為零、一個、還是多於一個(多位元錯誤)。
電路1505亦包括故障資訊儲存器1530,故障資訊儲存器1530有時被稱為硬故障表,其將關於具有固定型故障的位元的資訊儲存於資料位元儲存器1515中。如上所述,故障資訊儲 存器1530指示位元是否固定;故障資訊儲存器1530無需儲存位元為固定於0還是1。但此項技術中具有通常知識者將認識到故障資訊儲存器1530可包括例如位元為固定於0還是1等額外資訊,且不影響本發明概念的實施例的操作。
由於故障資訊儲存器1530可儲存關於在製造儲存器時有缺陷的位元的資訊,因此故障資訊儲存器1530可預先計算:在製造時或有時在製造之後。故障資訊儲存器1530可為例如可使用的唯讀記憶體(ROM)或內容可定址記憶體(CAM)等直接映射式結構等等。若額外位元在製造之後變得固定,則故障資訊儲存器1530亦可為可寫入儲存器。
來自故障資訊儲存器1530的資訊可饋送至修正向量電路系統1535中。修正向量電路系統1535亦可接收來自資料位元儲存器1515的資料向量的副本。修正向量電路系統1535然後可使用來自故障資訊儲存器1530的資訊來產生替代資料向量。實際上,替代資料向量可為原始資料向量,但其中在故障資訊儲存器1530指示位元被固定的情況下位元的值被翻轉。以下將參照圖16進一步論述修正向量電路系統1535。
除主錯誤修正碼核對器1525之外,電路1505可包括次錯誤修正碼核對器1540。次錯誤修正碼核對器1540在功能上相同於主錯誤修正碼核對器1525,不同的是次錯誤修正碼核對器1540作用於替代資料向量而非自資料位元儲存器1515讀取的資料向量。事實上,次錯誤修正碼核對器1540假設資料向量中的 每一固定位元實際上旨在具有其他二進制值,並核對以查看核對向量是否與所述替代資料向量一致。
然後可將主錯誤修正碼核對器1525及次錯誤修正碼核對器1540的結果以及原始資料向量及替代資料向量輸入至最終資料向量電路系統1545中。接著最終資料向量電路系統可判斷自資料位元儲存器1515讀取的資料向量是否需要修正;若需要修正,則判斷資料向量是否可被修正;且若資料向量可被修正,則判斷如何對其進行修正。因此,電路1505的輸出可為最初寫入資料位元儲存器1515的所需資料向量(儘管可能存在硬錯誤或軟錯誤,但只要所述錯誤可進行修正即可)。
最終資料向量電路系統1545可使用各種規則來判斷輸出何種資料向量作為最終資料向量。該些規則可包括以下內容:
1)若主錯誤修正碼核對器1525及次錯誤修正碼核對器1540兩者皆指示無錯誤,則原始資料向量無錯誤並可輸出而無需修正。此種情況可在不存在錯誤(固定型位元或軟錯誤)時抑或當任何固定型位元與資料匹配時(亦即,針對位元所儲存的值與所述位元被固定至的值相同)產生。
2)若主錯誤修正碼核對器1525指示位元A處存在單位元錯誤(single bit error,SBE)、且次錯誤修正碼核對器1540指示無錯誤,則因所習知的固定型故障而存在單位元錯誤,且可輸出替代資料向量而無需修正。
3)若主錯誤修正碼核對器1525及次錯誤修正碼核對器1540 兩者皆指示在相同位元定位中存在單位元錯誤,則所述錯誤為軟錯誤(SEU),且在使用核對向量進行修正之後可使用原始資料向量。
4)若主錯誤修正碼核對器1525指示多位元錯誤(multi-bit error,MBE)且次錯誤修正碼核對器1540指示單位元錯誤,則由次錯誤修正碼核對器1540所辨識的位元為單位元錯誤,而由主錯誤修正碼核對器1525所辨識的另一位元為固定型錯誤。在使用核對向量進行修正之後可使用替代資料向量。
5)若主錯誤修正碼核對器1525及次錯誤修正碼核對器1540兩者皆指示多位元錯誤,則存在無法修正的多位元軟錯誤。
6)若主錯誤修正碼核對器1525指示單位元錯誤且次錯誤修正碼核對器1540指示多位元錯誤,則出現了無法修正的多位元軟錯誤及固定型錯誤。
該些規則可被分組成四類:
1)未觀察到錯誤:在資料向量中不存在錯誤抑或任何固定型位元與被寫至該些位元的值匹配。
2)單位元錯誤(軟錯誤或不與被寫入位元的值匹配的固定型位元):可使用錯誤修正碼對所述錯誤進行修正。注意,在不被辨識為故障資訊表1530中的固定型位元的位元上將已出現了軟錯誤。
3)軟錯誤及固定型位元兩者:可使用故障資訊表1530來修正固定型位元,且可使用錯誤修正碼及核對向量來修正軟錯誤。
4)任何其他多位元錯誤:無法執行錯誤修正。
查看本發明概念的實施例的再一種方式是將碼指派給主錯誤修正碼核對器1525及次錯誤修正碼核對器1540。所述碼可包括以下字母:Z,意指零錯誤;S,意指單位元可修正錯誤;以及M,意指錯誤修正碼核對器無法自行修正的多位元錯誤。注意,M指示個別電路(主錯誤修正碼核對器1525或次錯誤修正碼核對器1540)無法自行修正多位元錯誤;M並不意指資料向量中的錯誤不可由電路1505修正。
使用主錯誤修正碼核對器1525及次錯誤修正碼核對器1540的此碼,可產生兩個錯誤修正電路的結果作為所述兩個個別碼的序連。可能的結果可表示成集合{ZZ,ZS,SZ,SS,MS,MM,SM}。(注意,ZM及MZ為不可能的情形:若一個錯誤修正碼指示多位元錯誤,則另一錯誤修正碼根本不可能指示無錯誤。)對錯誤修正的選擇是:使用主錯誤修正碼核對器1525核對器作用、使用次錯誤修正碼核對器1540核對器作用、或指示多位元錯誤。修正作用可由以下簡單優先序列來確定:
1)若故障資訊儲存器1530指示在資料向量中不存在固定型位元單元,則主錯誤修正碼核對器1525的結果與次錯誤修正碼核對器1540的結果應相同且可使用主錯誤修正碼核對器1525的結果。
2)否則,若次錯誤修正碼核對器1540指示多位元錯誤,則使用次錯誤修正碼核對器1540來修正多位元錯誤。
否則,端視哪一個指示更佳結果而定,使用主錯誤修正碼核對器1525或次錯誤修正碼1540的結果,其中Z較S佳,且S較M佳。
本發明概念的實施例提供一種權衡。現在可使用具有硬故障的儲存模組,而非捨棄該些模組。所述權衡是模組的儲存容量減少了故障資訊儲存器1530的容量,且所述模組需要增加的用於電路1505的邏輯的空間。
儘管以上所述的本發明概念的實施例可處置一個固定型位元(硬故障),但本發明概念的其他實施例可支持多於一個固定型位元。處置 n 個硬故障所需要的錯誤修正電路的數目為2 n 。因此,處置一個硬故障需要2個錯誤修正碼,處置2個硬故障需要4個錯誤修正碼,且依此類推。
現在轉至圖16,圖16示出圖15的修正向量電路系統的細節。在圖16中,示出修正向量電路系統1535包括修正向量產生電路系統1605及「互斥或」閘1610。修正向量產生電路系統1605顧名思義可產生能夠應用於資料向量的修正向量。修正向量產生電路系統1605可經由線1615而自圖15的故障資訊儲存器1530接收資訊以產生修正向量。然後,可將修正向量與可經由線1620接收的資料向量進行「互斥或」運算,以產生替代資料向量。
圖17示出在本發明概念的另一實施例中,圖16的修正向量產生電路系統的細節。在圖17中,故障資訊儲存器1530儲存於修正向量產生電路系統1605內而非修正向量產生電路系統 1605的外部(如圖15所示)。在圖17中,示出故障資訊儲存器1530指示兩個位元1705及1710具體而言位元1及4具有固定型故障。由此,可產生修正向量1715。修正向量1715可包括處於被指示為固定的定位處的1位元。可以看出(在修正向量1715的右側,位元0為最低有效位元(the least significant bit)),修正向量1715中被設定為1的僅有位元為位元1及4:所有其他位元皆被設定為0。然後可將此修正向量與資料向量進行「互斥或」運算以改變資料向量中被固定的位元的值,以產生替代資料向量。
圖18示出基於圖15的錯誤修正電路系統的結果的不同可能情形的圖表。在圖18中,表1805示出如何修正自資料位元儲存器1515讀取的資料向量的可能的情形(若資料向量需要修正且能夠被修正)。由於表1805僅考慮兩個錯誤修正碼,因此表1805對應於如圖15中所示的本發明概念的實施例。但如上所述,可藉由增加錯誤修正碼的數目且對應增加表1805的維度的數目來處置多於兩個錯誤。
返回圖18中所示的本發明概念的實施例,存在由圖15的錯誤修正電路系統1525所產生的三種可能的結果:無錯誤、單位元錯誤、或多位元錯誤。類似地,存在由錯誤修正電路系統1540所產生的三種可能的結果:無錯誤、單位元錯誤、或多位元錯誤。因此,存在九種可能的結果。
若主錯誤修正碼核對器1525及次錯誤修正碼核對器 1540兩者皆不指示錯誤,則資料向量如單元1810所指示不需要修正。若主錯誤修正碼核對器1525指示無錯誤而次錯誤修正碼核對器1540指示單位元或多位元錯誤,則如單元1815及1820所指示在資料向量中存在不可修正的錯誤。注意,單元1820對應於被編碼為ZM的情形,所述被編碼的ZM並非為可能的組合。
若主錯誤修正碼核對器1525指示單位元錯誤而次錯誤修正碼核對器1540指示無錯誤,則存在被固定於錯誤值處的單一位元(亦即,所述位元在所寫入的值為1時被固定於0處,抑或所述位元在所寫入的值為0時被固定於1處)。由於替代資料向量無錯誤,因此如單元1825所指示應使用替代資料值來替代資料向量。
若主錯誤修正碼核對器1525及次錯誤修正碼核對器1540兩者皆指示單位元錯誤,則存在兩種可能的情形。兩個錯誤修正碼核對器皆指示同一位元處的單位元錯誤抑或所述兩個錯誤修正碼核對器指示不同位元處的單位元錯誤。若兩個錯誤修正碼核對器皆指示同一位元處的單位元錯誤,則所述位元出現軟錯誤,且在使用錯誤修正碼核對器(可使用主錯誤修正碼核對器1525或次錯誤修正碼核對器1540)修正軟錯誤之後可使用資料向量。若主錯誤修正碼核對器1525及次錯誤修正碼核對器1540指示不同的單位元錯誤,則所述錯誤不可修正。所述兩種情形在單元1830中指示。
若主錯誤修正碼核對器1525指示單位元錯誤且次錯誤 修正碼核對器1540指示多位元錯誤,則資料向量包括固定型錯誤及多個軟錯誤兩者。各錯誤的此組合如單元1835所指示無法進行修正。
若主錯誤修正碼核對器1525指示多位元錯誤且次錯誤修正碼核對器1540指示無錯誤,則如單元1840所示存在不可修正的錯誤。注意,單元1840對應於被編碼為MZ的情形,被編碼的MZ並非為可能的組合。若主錯誤修正碼核對器1525指示多位元錯誤且次錯誤修正碼核對器1540指示單位元錯誤,則資料向量具有一個軟錯誤及一個固定型錯誤兩者。如單元1845所指示,藉由使用交替資料向量並使用次錯誤修正碼核對器對其進行修正,可確定正確的資料並自電路1505輸出。最後,若主錯誤修正碼核對器1525及次錯誤修正碼核對器1540指示多位元錯誤,則如單元1850所指示存在使用電路1505無法修正的多個軟錯誤。

Claims (28)

  1. 一種記憶體模組,包括:記憶體陣列;用於所述記憶體陣列的記憶體控制器;位於所述記憶體控制器中的狀況暫存器,所述狀況暫存器辨識所述記憶體模組是以正常功率位準運作還是以低功率位準運作;以及用於儲存資訊的儲存器,當所述記憶體模組以所述低功率位準運作時,所述資訊界定所述記憶體陣列中的至少一個正常可靠度區及所述記憶體陣列中的至少一個低可靠度區,其中,所述記憶體模組能夠以所述正常功率位準或以所述低功率位準正常寫入和讀取。
  2. 如申請專利範圍第1項所述的記憶體模組,更包括區界定器,用以當所述記憶體模組以所述低功率位準運作時,界定所述記憶體陣列中的所述至少一個正常可靠度區及所述記憶體陣列中的所述至少一個低可靠度區。
  3. 如申請專利範圍第1項所述的記憶體模組,更包括位於所述記憶體控制器中的遮罩暫存器,所述遮罩暫存器規定所述至少一個低可靠度區的可靠度水準。
  4. 如申請專利範圍第3項所述的記憶體模組,其中所述至少一個低可靠度區的可靠度水準是關於由於所述記憶體模組以 所述低功率位準運作導致所述至少一個低可靠度區的資料錯誤的機率。
  5. 如申請專利範圍第4項所述的記憶體模組,其中所述至少一個低可靠度區的可靠度水準規定所述至少一個低可靠度區的資料錯誤的機率。
  6. 如申請專利範圍第1項所述的記憶體模組,更包括錯誤修正碼電路系統,所述錯誤修正碼電路系統能夠應用於在所述記憶體陣列中的所述至少一個低可靠度區中所儲存的資料。
  7. 如申請專利範圍第6項所述的記憶體模組,其中:所述錯誤修正碼電路系統能夠應用於在所述至少一個低可靠度區的第一區中所儲存的第一資料;以及所述記憶體模組更包括第二錯誤修正碼電路系統,所述第二錯誤修正碼電路系統能夠應用於在所述至少一個低可靠度區的第二區中所儲存的第二資料。
  8. 如申請專利範圍第1項所述的記憶體模組,其中所述記憶體控制器能夠運作以:接收對記憶體的頁面進行分配的請求;存取所述狀況暫存器;以及分配所述至少一個正常可靠度區或所述至少一個低可靠度區中的頁面。
  9. 如申請專利範圍第8項所述的記憶體模組,其中因應於所述狀況暫存器指示所述記憶體模組正以所述低功率位準運作,所述記憶體控制器能夠運作以:自應用程式接收關於所述應用程式的可靠度要求的提示;以及根據來自所述應用程式的所述提示,分配所述至少一個正常可靠度區或所述至少一個低可靠度區中的所述頁面。
  10. 如申請專利範圍第9項所述的記憶體模組,其中所述記憶體控制器能夠運作以:自所述應用程式接收關於所述應用程式能夠使用所述至少一個低可靠度區的所述提示;以及分配所述至少一個低可靠度區中的所述頁面。
  11. 一種電腦系統,包括:電腦;處理器;以及作業系統,能夠運作以在所述處理器上運行,其中所述作業系統能夠運作以確定記憶體模組的功率位準以及界定所述記憶體模組中的至少一個正常可靠度區及所述記憶體模組中的至少一個低可靠度區,其中,所述記憶體模組能夠以正常功率位準或以低功率位準正常寫入和讀取。
  12. 如申請專利範圍第11項所述的電腦系統,其中所述作業系統能夠運作以在記憶體控制器中的狀況暫存器中儲存所述功率位準。
  13. 如申請專利範圍第11項所述的電腦系統,其中所述作業系統能夠運作以在記憶體控制器的遮罩暫存器中儲存所述至少一個低可靠度區的可靠度水準。
  14. 如申請專利範圍第13項所述的電腦系統,其中所述至少一個低可靠度區的可靠度水準是關於由於所述記憶體模組以所述低功率位準運作導致所述至少一個低可靠度區的資料錯誤的機率。
  15. 如申請專利範圍第14項所述的電腦系統,其中所述至少一個低可靠度區的可靠度水準規定所述至少一個低可靠度區的資料錯誤的機率。
  16. 如申請專利範圍第11項所述的電腦系統,更包括錯誤修正碼,所述錯誤修正碼能夠應用於所述記憶體模組中的低可靠度區中的資料。
  17. 一種記憶體控制方法,包括:確定電腦中的記憶體的低功率位準;基於所述低功率位準來辨識所述記憶體中的至少一個正常可靠度區;基於所述低功率位準來辨識所述記憶體中的至少一個低可靠度區; 設定所述記憶體的記憶體控制器中的狀況暫存器,所述記憶體控制器連接至所述電腦,所述狀況暫存器規定所述記憶體是以正常功率位準運作還是以所述低功率位準運作;以及根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面。
  18. 如申請專利範圍第17項所述的記憶體控制方法,其中所述記憶體模組能夠以所述正常功率位準或以所述低功率位準正常寫入和讀取。
  19. 如申請專利範圍第17項所述的記憶體控制方法,更包括對在所述至少一個低可靠度區中所儲存的資料應用錯誤修正碼。
  20. 如申請專利範圍第19項所述的記憶體控制方法,其中:對在所述至少一個低可靠度區中所儲存的資料應用錯誤修正碼包括:對在所述至少一個低可靠度區的第一區中所儲存的第一資料應用第一錯誤修正碼;且所述方法更包括:對在所述至少一個低可靠度區的第二區中所儲存的第二資料應用第二錯誤修正碼。
  21. 如申請專利範圍第17項所述的記憶體控制方法,其中根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面包括:存取所述狀況暫存器;以及因應於所述狀況暫存器指示所述記憶體正以所述正常功率 位準運作,分配所述記憶體中的任意頁面。
  22. 如申請專利範圍第21項所述的記憶體控制方法,其中根據所述狀況暫存器及應用程式的可靠度要求來分配記憶體的頁面更包括因應於所述狀況暫存器指示所述記憶體正以所述低功率位準運作而進行以下操作:自所述應用程式接收關於所述可靠度要求的提示;根據來自所述應用程式的所述提示來分配所述記憶體中的頁面。
  23. 如申請專利範圍第22項所述的記憶體控制方法,其中:自所述應用程式接收關於所述可靠度要求的提示包括:接收使用所述低可靠度區的提示;且所述方法更包括:由所述應用程式應用錯誤修正碼。
  24. 如申請專利範圍第21項所述的記憶體控制方法,更包括:設定所述記憶體的記憶體控制器中的遮罩暫存器,所述記憶體控制器位於所述電腦中,所述遮罩暫存器規定所述至少一個低可靠度區的可靠度水準。
  25. 如申請專利範圍第24項所述的記憶體控制方法,其中所述至少一個低可靠度區的可靠度水準是關於由於所述記憶體模組以所述低功率位準運作導致所述至少一個低可靠度區的資料錯誤的機率。
  26. 如申請專利範圍第25項所述的記憶體控制方法,其中所述至少一個低可靠度區的可靠度水準規定所述至少一個低可靠度區的資料錯誤的機率。
  27. 一種記憶體模組,包括:記憶體陣列;用於所述記憶體陣列的記憶體控制器;位於所述記憶體控制器中的狀況暫存器,所述狀況暫存器辨識所述記憶體模組是以正常功率位準運作還是以低功率位準運作;用於儲存資訊的儲存器,當所述記憶體模組以所述低功率位準運作時,所述資訊界定所述記憶體陣列中的至少一個正常可靠度區及所述記憶體陣列中的至少一個低可靠度區;以及位於所述記憶體控制器中的遮罩暫存器,所述遮罩暫存器規定所述至少一個低可靠度區的可靠度水準,其中所述至少一個低可靠度區的可靠度水準是關於由於所述記憶體模組以所述低功率位準運作導致所述至少一個低可靠度區的資料錯誤的機率。
  28. 如申請專利範圍第27項所述的記憶體模組,其中所述至少一個低可靠度區的可靠度水準規定所述至少一個低可靠度區的資料錯誤的機率。
TW105105759A 2015-03-10 2016-02-26 記憶體模組、電腦系統以及記憶體控制方法 TWI656440B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562131232P 2015-03-10 2015-03-10
US62/131,232 2015-03-10
US14/813,097 2015-07-29
US14/813,097 US9696923B2 (en) 2015-03-10 2015-07-29 Reliability-aware memory partitioning mechanisms for future memory technologies

Publications (2)

Publication Number Publication Date
TW201643716A TW201643716A (zh) 2016-12-16
TWI656440B true TWI656440B (zh) 2019-04-11

Family

ID=56888637

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105105759A TWI656440B (zh) 2015-03-10 2016-02-26 記憶體模組、電腦系統以及記憶體控制方法

Country Status (3)

Country Link
US (1) US9696923B2 (zh)
KR (1) KR102262257B1 (zh)
TW (1) TWI656440B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014198050A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Framework and applications for proximity-based social interaction
US10031801B2 (en) * 2015-12-01 2018-07-24 Microsoft Technology Licensing, Llc Configurable reliability for memory devices
DE102016115272A1 (de) * 2016-08-17 2018-02-22 Infineon Technologies Ag Speicher mit unterschiedlichen zuverlässigkeiten
US10394648B2 (en) * 2016-11-07 2019-08-27 Samsung Electronics Co., Ltd. Method to deliver in-DRAM ECC information through DDR bus
US10726139B2 (en) * 2017-06-04 2020-07-28 Apple Inc. Differential privacy using a multibit histogram
US10776511B2 (en) 2017-06-04 2020-09-15 Apple Inc. User experience using privatized crowdsourced data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195631A1 (en) * 2006-02-21 2007-08-23 Jochen Hoffmann Control system for a dynamic random access memory and method of operation thereof
TW201415222A (zh) * 2009-07-16 2014-04-16 Netlist Inc 記憶體模組以及其操作方法
US8862952B1 (en) * 2012-03-16 2014-10-14 Western Digital Technologies, Inc. Prioritized memory scanning for data storage systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005021894A1 (de) 2004-05-08 2006-01-12 Samsung Electronics Co., Ltd., Suwon Speichersytem, IC-Speicherbauelement und Betriebsverfahren
US8239735B2 (en) * 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR20110004164A (ko) * 2009-07-07 2011-01-13 삼성전자주식회사 반도체 메모리 장치
US8589766B2 (en) 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US9047211B2 (en) 2013-03-15 2015-06-02 SanDisk Technologies, Inc. Managing data reliability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070195631A1 (en) * 2006-02-21 2007-08-23 Jochen Hoffmann Control system for a dynamic random access memory and method of operation thereof
TW201415222A (zh) * 2009-07-16 2014-04-16 Netlist Inc 記憶體模組以及其操作方法
US8862952B1 (en) * 2012-03-16 2014-10-14 Western Digital Technologies, Inc. Prioritized memory scanning for data storage systems

Also Published As

Publication number Publication date
KR20160110107A (ko) 2016-09-21
US20160266824A1 (en) 2016-09-15
US9696923B2 (en) 2017-07-04
KR102262257B1 (ko) 2021-06-08
TW201643716A (zh) 2016-12-16

Similar Documents

Publication Publication Date Title
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
TWI656440B (zh) 記憶體模組、電腦系統以及記憶體控制方法
US10019312B2 (en) Error monitoring of a memory device containing embedded error correction
CN105340022B (zh) 用于校正数据错误的电路、设备及方法
TWI674767B (zh) 用於nand快閃記憶體的渦輪乘積碼
US11204825B2 (en) Memory device and repair method with column-based error code tracking
US9819362B2 (en) Apparatus and method for detecting and mitigating bit-line opens in flash memory
US10198314B2 (en) Memory device with in-system repair capability
US20160239663A1 (en) Detecting a cryogenic attack on a memory device with embedded error correction
US20130339820A1 (en) Three dimensional (3d) memory device sparing
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
KR20100082710A (ko) 데이터 메모리 디바이스 및 인터페이스 에러 검출 및 처리 논리를 갖는 제어기
TWI652685B (zh) 自我識別記憶體錯誤
US20130104002A1 (en) Memory controller, semiconductor memory system, and memory control method
US9626242B2 (en) Memory device error history bit
US9037948B2 (en) Error correction for memory systems
US20250383815A1 (en) Key identifier check in a compute express link (cxl) memory device
JP2013218525A (ja) 半導体記憶システム、メモリコントローラおよびメモリ制御方法