TW201535382A - 動態隨機存取記憶體(dram)列備用技術 - Google Patents

動態隨機存取記憶體(dram)列備用技術 Download PDF

Info

Publication number
TW201535382A
TW201535382A TW103145230A TW103145230A TW201535382A TW 201535382 A TW201535382 A TW 201535382A TW 103145230 A TW103145230 A TW 103145230A TW 103145230 A TW103145230 A TW 103145230A TW 201535382 A TW201535382 A TW 201535382A
Authority
TW
Taiwan
Prior art keywords
column
dram device
data
fault
buffer
Prior art date
Application number
TW103145230A
Other languages
English (en)
Inventor
Andrew C Walton
Melvin K Benedict
Eric L Pope
Erin A Handgen
Original Assignee
Hewlett Packard Development Co
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 Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201535382A publication Critical patent/TW201535382A/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06COMPUTING; CALCULATING OR 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2229/00Indexing scheme relating to checking stores for correct operation, subsequent repair or testing stores during standby or offline operation
    • G11C2229/70Indexing scheme relating to G11C29/70, for implementation aspects of redundancy repair
    • G11C2229/74Time at which the repair is done
    • G11C2229/743After packaging
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2229/00Indexing scheme relating to checking stores for correct operation, subsequent repair or testing stores during standby or offline operation
    • G11C2229/70Indexing scheme relating to G11C29/70, for implementation aspects of redundancy repair
    • G11C2229/76Storage technology used for the repair
    • G11C2229/763E-fuses, e.g. electric fuses or antifuses, floating gate transistors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

實例實現方式涉及動態隨機存取記憶體(DRAM)列備用。在實例實現方式中,一DRAM裝置之一故障列的使用會被排除。在該DRAM裝置中的一熔絲會被熔斷以用一備用列來替換該故障列。該熔絲可在該DRAM裝置的運行操作期間被熔斷。當該熔絲正被熔斷時,錯誤更正碼(ECC)可被使用來更正來自該故障列的錯誤資料。在該熔絲被熔斷之後,對該故障列之存取會被重新導向到該備用列。

Description

動態隨機存取記憶體(DRAM)列備用技術
本發明係有關於動態隨機存取記憶體(DRAM)列備用技術。
發明背景
動態隨機存取記憶體(DRAM)裝置可把資料儲存在一記憶胞元陣列中。在DRAM裝置中的備用列可以被使用來增加晶片的成品率。如果一DRAM製造商發現在一工廠中之一DRAM裝置的一列中有一缺陷,在該DRAM裝置中的一熔絲可被熔斷以把一備用列映射入該陣列中並把該缺陷列映射出該陣列之外。
依據本發明之一實施例,係特地提出一種用於動態隨機存取記憶體(DRAM)列備用的方法,該方法包含有:在一DRAM裝置的運行操作期間,排除該DRAM裝置之一故障列的使用;發送指令以熔斷在該DRAM裝置中的一熔絲以用一備用列來替換該故障列,其中該熔絲是在該DRAM裝置的運行操作期間被熔斷;當該熔絲正被熔斷時,使用錯誤更正碼(ECC)更正來自該故障列的錯誤資料;以及在該熔絲被熔斷之後,把對該故障列之存取重新導向 到該備用列。
100‧‧‧記憶體控制器
102‧‧‧處理器
104‧‧‧機器可讀取儲存媒體
106‧‧‧DRAM裝置之故障列的使用排除
108‧‧‧熔斷在DRAM裝置中的熔絲
110‧‧‧使用ECC更正來自故障列的錯誤資料
112‧‧‧把對故障列的存取重新導向到備用列
200‧‧‧記憶體控制器
202‧‧‧處理器
204‧‧‧機器可讀取儲存媒體
206‧‧‧DRAM裝置之故障列的使用排除
208‧‧‧熔斷在DRAM裝置中的熔絲
210‧‧‧使用ECC更正來自故障列的錯誤資料
212‧‧‧把對故障列的存取重新導向到備用列
214‧‧‧在熔絲被熔斷後恢復使用DRAM裝置
300‧‧‧記憶體控制器
302‧‧‧處理器
304‧‧‧機器可讀取儲存媒體
306‧‧‧DRAM裝置之故障列的使用排除
308‧‧‧熔斷在DRAM裝置中的熔絲
310‧‧‧使用ECC更正來自故障列的錯誤資料
312‧‧‧把對故障列的存取重新導向到備用列
314‧‧‧把資料從故障列複製到在DRAM裝置中的列緩衝器
316‧‧‧在該熔絲被熔斷之後,把資料從列緩衝器複製到備用列
400‧‧‧記憶體控制器
402‧‧‧處理器
404‧‧‧機器可讀取儲存媒體
406‧‧‧DRAM裝置之故障列的使用排除
408‧‧‧熔斷在DRAM裝置中的熔絲
410‧‧‧使用ECC更正來自故障列的錯誤資料
412‧‧‧把對故障列的存取重新導向到備用列
414‧‧‧把資料從故障列複製到在記憶體控制器中的列緩衝器
416‧‧‧把要被寫入到故障列的資料寫入到列緩衝器
418‧‧‧在熔絲被熔斷之後把資料從列緩衝器複製到備用列
420‧‧‧把要被寫入到列緩衝器的資料寫入到備用列
500‧‧‧記憶體控制器
502‧‧‧處理器
504‧‧‧機器可讀取儲存媒體
506‧‧‧識別出具有故障列的DRAM裝置
508‧‧‧識別出DRAM裝置之故障列的列號
510‧‧‧熔斷在DRAM裝置中的熔絲
600‧‧‧記憶體控制器
602‧‧‧處理器
604‧‧‧機器可讀取儲存媒體
606‧‧‧識別出具有故障列的第一DRAM裝置
608‧‧‧識別出第一DRAM裝置之故障列的列號
610‧‧‧熔斷在第一DRAM裝置中的熔絲
612‧‧‧暫時地用第二DRAM裝置替換第一DRAM裝置
614‧‧‧使用ECC更正錯誤資料
616‧‧‧在熔絲被熔斷之後恢復使用第一DRAM裝置
700‧‧‧記憶體控制器
702‧‧‧處理器
704‧‧‧機器可讀取儲存媒體
706‧‧‧識別出具有故障列的DRAM裝置
708‧‧‧識別出DRAM裝置之故障列的列號
710‧‧‧熔斷在DRAM裝置中的熔絲
712‧‧‧使用ECC重建資料
800‧‧‧記憶體控制器
802‧‧‧處理器
804‧‧‧機器可讀取儲存媒體
806‧‧‧識別出具有故障列的DRAM裝置
808‧‧‧識別出DRAM裝置之故障列的列號
810‧‧‧熔斷在DRAM裝置中的熔絲
812‧‧‧把要被寫入到故障列的資料寫入到在記憶體控制器中的列緩衝器
814‧‧‧存取依賴在故障列中位元的記憶體位址
816‧‧‧把對故障列的存取暫時 地重新導向到列緩衝器
818‧‧‧把要被寫入到列緩衝器的資料寫入到備用列
820‧‧‧把對故障列的存取重新導向到備用列
900‧‧‧方法
902~908‧‧‧方塊
1000‧‧‧方法
1002~1008‧‧‧方塊
1100‧‧‧方法
1102~1114‧‧‧方塊
1200‧‧‧方法
1202~1218‧‧‧方塊
1300‧‧‧方法
1302~1312‧‧‧方塊
1400‧‧‧方法
1402~1408‧‧‧方塊
1500‧‧‧方法
1502~1510‧‧‧方塊
以下的詳細說明參考到該等附圖,其中:圖1係一實例記憶體控制器的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用DRAM列備用;圖2係一實例記憶體控制器的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用一DRAM裝置的備用;圖3係一實例記憶體控制器的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用在一DRAM裝置中一列緩衝器的使用;圖4係一實例記憶體控制器的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用在記憶體控制器中一列緩衝器的使用;圖5係一實例裝置的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體以在一DRAM裝置的運行操作期間熔斷在該DRAM裝置中的一熔絲;圖6係一實例裝置的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體以暫時地以一第二DRAM裝置替換一第一DRAM裝置;圖7係一實例裝置的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體以使用錯誤更正碼來重建資料; 圖8係一實例裝置的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用在記憶體控制器中一列緩衝器的暫時使用;圖9係DRAM列備用之一實例方法的流程圖;圖10係在一DRAM裝置上當一熔絲正被熔斷時DRAM列備用之一實例方法的流程圖;圖11係在一DRAM裝置中使用一列緩衝器之一實例方法的流程圖;圖12係在一記憶體控制器中使用一列緩衝器之一實例方法的流程圖;圖13係在一DRAM裝置中更換一故障列之一實例方法的流程圖;圖14係在一DRAM裝置的運行操作期間熔斷在該DRAM裝置中一熔絲之一實例方法的流程圖;以及圖15係使用在一記憶體控制器中之一列緩衝器來暫時更換一DRAM裝置之一故障列的一實例方法的流程圖。
較佳實施例之詳細說明
如以上所提到的,在一DRAM裝置中的一熔絲可以在一工廠中被熔斷以映射出一缺陷列和映射入一備用列。一些標準,諸如第四代雙倍資料率(DDR4)標準,允許電腦系統可在運行時藉由熔斷一熔絲來映射入備用列。熔斷一熔絲可能需要很長的時間(例如,幾百毫秒),而當一熔 絲正被熔斷時一DRAM裝置的行為會是不確定的,因此,一作業系統(OS)可能無法使用一在其中一熔絲正在被熔斷的一DRAM裝置。一具有缺陷列的DRAM裝置在該DRAM裝置中的一熔絲正被熔斷時,支援熔絲可在運行時被熔斷的一OS會把應用程式撤出該DRAM裝置。該OS會把在該DRAM裝置上的資料移動到其他的記憶體區域上,使得應用程式可以繼續使用該資料。然而,並不是所有的OS都支援熔絲可在運行時被熔斷,甚至支援此一功能的OS可能無法使得具有「釘住」記憶體的應用程式可免於使用記憶體的一缺陷區域,或可能沒有時間來釋放用來備用之一記憶體缺陷區域。
有鑑於上述的情況,本發明提供了方法可在運行期間替換一DRAM裝置的一列,就算當一熔絲正被熔斷時應用程式仍繼續使用該DRAM裝置,和就算OS並不支援在運行期間的列備用。當一熔絲被熔斷時,能夠容忍一故障DRAM裝置之各種錯誤更正方案(例如,記憶體抹除、晶片備用)可被使用來更正(或重建)錯誤(或缺失)的資料。因此,在運行期間替換一DRAM裝置之一缺陷列對正在運行的應用程式來說可以是透明的,並且對於不支援在運行期間列備用的OS來說也是透明的。
現在參照該等附圖,圖1係一實例記憶體控制器100的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用DRAM列備用。如本文所使用的,術語「包括」、「具有」和、「包含」是可互換的,並且應當 被理解為具有相同的含義。記憶體控制器100可被通信地耦合到一記憶體模組,諸如一單列直插式記憶體模組(SIMM)或雙列直插式記憶體模組(DIMM)。在圖1中,記憶體控制器100包括處理器102和電腦可讀取儲存媒體104。
處理器102可以包括一中央處理單元(CPU)、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體104中指令的其他硬體裝置。處理器102可以提取、解碼、和/或執行指令106、108、110、和112以啟用DRAM列備用,如以下所述。作為一替代方案或除了檢索和/或執行指令之外,處理器102可以包括一電子電路,其包含數個電子組件用於執行指令106、108、110、和/或112的該功能。
機器可讀取儲存媒體104可以是包含或儲存可執行指令之任何合適的電子、磁性、光學、或其他的實體儲存裝置。因此,機器可讀取儲存媒體104可以包括,舉例來說,一隨機存取記憶體(RAM)、一電可抹除可編程唯讀記憶體(EEPROM)、一儲存裝置,一光碟、和類似物。在一些實現方式中,機器可讀取儲存媒體104可以包括一非暫時性的儲存媒體,其中術語「非暫時性」不包括暫時性的傳播信號。如在以下會詳細描述的,機器可讀取儲存媒體104可被編碼有一組可執行指令106、108、110、和112。
在一DRAM裝置的運行操作期間,指令106可以排除使用該DRAM裝置的一故障列。如本文所用的術語「故障列」係指一記憶體區域,其重複地無法準確地儲存寫入 到該區域中的資料,和/或重複地當對該區域執行一讀取操作時無法準確地輸出儲存的資料。在一些實現方式中,如果與該區域相關聯的錯誤數(例如,資料被不正確地寫入到該區域和/或從其被讀出的次數)超過一錯誤數臨界值,一記憶體區域可被視為一故障列。
在一些實現方式中,可藉由把一DRAM裝置以另一DRAM裝置做暫時地替代來排除該DRAM裝置之一故障列的使用。舉例來說,一錯誤更正方案,諸如雙重晶片刪除(DCK)可被使用來暫時地映射出該具有該故障列的該DRAM裝置以有利於一備用的DRAM裝置。在一些實現方式中,可藉由把一故障列以一列緩衝器做暫時地替代來排除該DRAM裝置之一故障列的使用。在一些實現方式中,一DRAM裝置之一故障列的排除使用可藉由忽略從該DRAM裝置讀出的資料(例如,記憶體抹除),而不用暫時地更換該DRAM裝置或該故障列。排除一故障列使用之各種技術會在下面做進一步的討論。
在該DRAM裝置的運行操作期間,指令108可熔斷在該DRAM裝置中的一熔絲以用一備用列來更換該故障列。用一備用列來更換一故障列在本文中也可以被稱為「映射入」一備用列。一備用列可以是該DRAM裝置的一冗餘區域,一旦該熔絲被熔斷,其可以用相同於該故障列的方式做存取,並取代之。一DRAM裝置可以具有多個備用列,以允許多個故障列的更換。
當該熔絲正被熔斷時,指令110可以使用錯誤更 正碼(ECC)來更正來自該故障列的錯誤資料。在一些實現方式中,ECC可以被用來更正從該故障列複製到一備用DRAM裝置或一列緩衝器的錯誤資料,使得該備用DRAM裝置/列緩衝器會儲存正確的而不是錯誤的資料。在一些實現方式中,ECC可以被用來為一快取列中一位置重建資料,該快取包括從具有該故障列之該DRAM所讀出的錯誤資料。
在該熔絲被熔斷之後,指令112可以把對該故障列的存取重新導向到該備用列。在該故障列中的位址/位置可以被映射到在該備用列中對應的位址/位置。在該熔絲被熔斷之後,當記憶體控制器100接收到的讀取命令是指向到該故障列中的位址/位置時,在該備用列中對應的位址/位置會被讀取,而不是在該故障列中的那些。類似地,為了回應於指向到該故障列中位址/位置的寫入命令,記憶體控制器100會替代地寫入到該備用列中對應的該位址/位置。
圖2係一實例記憶體控制器200的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用一DRAM裝置的備用。記憶體控制器200可被通信地耦合到一記憶體模組,諸如SIMM或DIMM。在圖2中,記憶體控制器200包括處理器202和電腦可讀取儲存媒體204。
正如圖1的處理器102,處理器202可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體204中指令的其他硬體裝置。處理器202可以提取、解碼、和/或執行指 令206、208、210、212、和214以啟用一DRAM裝置的備用,如以下所述。作為一替代方案或除了檢索和/或執行指令之外,處理器202可以包括一電子電路,其包含數個電子組件用於執行指令206、208、210、212、和/或214的該功能。
正如圖1的機器可讀取儲存媒體104,機器可讀取儲存媒體204可以是包含或儲存可執行指令之任何合適的實體儲存裝置。在機器可讀取儲存媒體204上的指令206、208、210、和212會類似於(例如,具有類似的功能和/或組件)在機器可讀取儲存媒體104上的指令106、108、110、和112。指令206可排除數個DRAM裝置之一第一DRAM裝置之一故障列的使用。當該故障列的使用被排除時,該第一DRAM裝置可以用該等數個DRAM裝置之一第二DRAM裝置來替換。舉例來說,一控制記憶體控制器200的基本輸入/輸出系統(BIOS)可以調用DCK,而當在該第一DRAM裝置中的一熔絲被熔斷以用一備用列更換該故障列時該第一DRAM裝置可被替換為一第二(例如,備用)DRAM裝置。資料可從該第一DRAM裝置被複製到該第二DRAM裝置,而ECC可被用使來在該第二DRAM裝置中更正/重建錯誤的和/或遺失的資料。
在該熔絲被熔斷之後,指令214可以恢復使用該第一DRAM裝置。ECC可被用使來在該備用列中更正/重建錯誤的和/或遺失的資料。在一些實現方式中,毋需重新啟動記憶體控制器200指令214可就被執行(例如,如果一BIOS能夠在運行期間恢復DCK晶片備用)。在一些實現方式中, 指令214會在重新啟動時被執行,並且具有該映射入備用列之該第一DRAM裝置可在一OS被載入之前被初始化來使用。
圖3係一實例記憶體控制器300的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用在一DRAM裝置中一列緩衝器的使用。記憶體控制器300可被通信地耦合到一記憶體模組,諸如SIMM或DIMM。在圖3中,記憶體控制器300包括處理器302和電腦可讀取儲存媒體304。
正如圖1的處理器102,處理器302可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體304中指令的其他硬體裝置。處理器302可以提取、解碼、和/或執行指令306、308、310、312、314、和316以啟用在一DRAM裝置中一列緩衝器的使用,如以下所述。作為一替代方案或除了檢索和/或執行指令之外,處理器302可以包括一電子電路,其包含數個電子組件用於執行指令306、308、310、312、314、和/或316的該功能。
正如圖1的機器可讀取儲存媒體104,機器可讀取儲存媒體304可以是包含或儲存可執行指令之任何合適的實體儲存裝置。在機器可讀取儲存媒體304上的指令306、308、310、和312可類似於在機器可讀取儲存媒體104上的指令106、108、110、和112。指令314可把資料從一DRAM裝置的一故障列複製到在該DRAM裝置中的一列緩衝器。 對已被複製到該列緩衝器之該故障列部分的存取可暫時地被重新導向到該列緩衝器。在資料從該故障列到該列緩衝器的複製完成之前,對該故障列之存取會被重新導向到該列緩衝器;在複製正在進行的過程中,對已被複製之該故障列部分的存取會被重新導向到該列緩衝器,而對於尚未被複製之該故障列部分的存取仍然可能會發生。在該DRAM裝置中的一熔絲正被熔斷以把該故障列用該DRAM裝置的一備用列來更換時,該列緩衝器會被使用來取代該故障列。
在該熔絲被熔斷之後,指令316會把資料從該列緩衝器複製到該備用列。對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列。在資料從該列緩衝器到該備用列的複製完成之前,對該故障列之存取會被重新導向到該備用列;在複製正在進行的過程中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列,而對於尚未從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該列緩衝器。
圖4係一實例記憶體控制器400的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體,該等指令可啟用在一記憶體控制器中一列緩衝器的使用。記憶體控制器400可被通信地耦合到一記憶體模組,諸如SIMM或DIMM。在圖4中,記憶體控制器400包括處理器402和電腦可讀取儲存媒體404。
正如圖1的處理器102,處理器402可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體404中指令的其他硬體裝置。處理器402可以提取、解碼、和/或執行指令406、408、410、412、414、416、418、和420以啟用在一記憶體控制器中一列緩衝器的使用,如以下所述。作為一替代方案或除了檢索和/或執行指令之外,處理器402可以包括一電子電路,其包含數個電子組件用於執行指令406、408、410、412、414、416、418、和/或420的該功能。
正如圖1的機器可讀取儲存媒體104,機器可讀取儲存媒體404可以是包含或儲存可執行指令之任何合適的實體儲存裝置。在機器可讀取儲存媒體404上的指令406、408、410、和412會類似在機器可讀取儲存媒體104上的指令106、108、110、和112。指令414會把資料從一DRAM裝置的一故障列複製到在記憶體控制器400中的一列緩衝器。對已被複製到該列緩衝器之該故障列部分的存取會被暫時地重新導向到該列緩衝器。在資料從該故障列到該列緩衝器的複製完成之前,對該故障列之存取會被重新導向到該列緩衝器;在複製正在進行的過程中,對已被複製之該故障列部分的存取會被重新導向到該列緩衝器,而對於尚未被複製之該故障列部分的存取仍然可能會發生。把資料從該故障列複製到該列緩衝器可以由一BIOS來控制。當該複製完成時,該BIOS可發送給記憶體控制器400一指示告知不要存取該故障列。當在該DRAM裝置中的一熔絲正被 熔斷以把該故障列以該DRAM裝置的一備用列來更換時,該列緩衝器會被使用來取代該故障列。
依賴在該故障列中位元的記憶體位址可以被存取以從該故障列複製資料到該列緩衝器。因為記憶體控制器400會以一次一快取列的方式存取DRAM裝置,記憶體控制器400可能必須要存取多個依賴該故障列的快取列,以確保在該故障列中所有的資料都被複製到該列緩衝器。在一些實現方式中,一巡查清除器可被使用來存取所有依賴該故障列的位址。在一些實現方式中,一BIOS在韌體中斷期間可以手動式地讀取位址(例如,在每一次中斷期間一些位址會被讀取)。在一些實現方式中,一OS驅動程式可以讀取所有依賴該故障列的該等位址。
當資料從該故障列被複製到該列緩衝器時,指令416可把要被寫入到該故障列的資料寫入到該列緩衝器。在所有的資料從該故障列被複製到該列緩衝器之前,記憶體控制器400可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會寫入到該故障列。當資料從該故障列被複製到該列緩衝器時,把把要被寫入到該故障列的資料寫入到該列緩衝器可讓該列緩衝器具有在該故障列中資料的一份最新的拷貝,當對該故障列所有的存取被暫時地重新導向到該列緩衝器時。
在該熔絲被熔斷之後,指令418會把資料從該列緩衝器複製到該備用列。對已從該列緩衝器被複製到該備 用列之該故障列部分的存取會被重新導向到該備用列。在資料從該列緩衝器到該備用列的複製完成之前,對該故障列之存取可被重新導向到該備用列;在複製正在進行的過程中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列,而對於尚未從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該列緩衝器。把資料從該列緩衝器複製到該備用列可以由一BIOS來控制。當該複製完成時,該BIOS可發送給記憶體控制器400一指示告知不要使用該列緩衝器。
依賴在該故障列中位元的記憶體位址可以被存取以把資料從該列緩衝器複製到該備用列。因為記憶體控制器400會以一次一快取列的方式存取DRAM裝置,記憶體控制器400可能必須要存取多個依賴該故障列的快取列,以確保在該列緩衝器中所有的資料都被複製到該備用列。在一些實現方式中,一巡查清除器可被使用來存取所有依賴該故障列的位址。在一些實現方式中,一BIOS在韌體中斷期間可以手動式地讀取位址(例如,在每一次中斷期間一些位址會被讀取)。在一些實現方式中,一OS驅動程式可以讀取所有依賴該故障列的該等位址。
當資料從該列緩衝器被複製到該備用列時,指令416可以把要被寫入到該列緩衝器的資料寫入到該備用列。在所有的資料從該列緩衝器被複製到該備用列之前,記憶體控制器400可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式 可能會嘗試要寫入到該故障列(這種嘗試會被重新導向到該列緩衝器)。當資料從該列緩衝器被複製到該備用列時,把要被寫入到該列緩衝器的資料寫入到該備用列可讓該備用列具有在該列緩衝器中資料的一份最新的拷貝,當對該故障列所有的存取被暫時地重新導向到該備用列時。
圖5係一實例裝置500的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體以在一DRAM裝置的運行操作期間熔斷在該DRAM裝置中的一熔絲。裝置500可以實現一可識別出與一DRAM裝置相關聯之錯誤的實體(例如,BIOS、狀態機、管理處理器),並強制執行其一錯誤處置政策(例如,判定何時指定一列為,和/或何時更換,一故障列)。在圖5中,裝置500包括處理器502和電腦可讀取儲存媒體504。
正如圖1的處理器102,處理器502可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體504中指令的其他硬體裝置。處理器502可以提取、解碼、和/或執行指令506、508、和510。作為一替代方案或除了檢索和/或執行指令之外,處理器502可以包括一電子電路,其包含數個電子組件用於執行指令506、508、和/或510的該功能。
正如圖1的機器可讀取儲存媒體104,機器可讀取儲存媒體504可以是可儲存可執行指令之任何合適的實體儲存裝置。在一些實現方式中,機器可讀取儲存媒體504可包括非暫時性的儲存媒體。如在下面會詳細描述的,機器 可讀取儲存媒體504可以用一組可執行指令506、508、和510來被編碼。
指令506可以識別出一具有一故障列的DRAM裝置。舉例來說,可維護記錄以記錄有多少錯誤(例如,讀取/寫入錯誤)與該DRAM裝置相關聯以及當該等錯誤發生時係在該DRAM裝置中哪些位址/位置上被存取。當與一DRAM裝置之一區域相關聯的該錯誤數超過一錯誤臨界數量時,該DRAM裝置可被識別為具有一故障列。
指令508可識別出該DRAM裝置之該故障列的一列號。如在本文中所使用的,術語「列號」是指用於識別一DRAM裝置之一區域之任何合適的指示符。在一些實現方式中,該列號可以被寫入到在一記憶體控制器中的一暫存器。該故障列在被識別出之後會被排除使用。舉例來說,具有該故障列的該DRAM裝置可暫時用一備用DRAM裝置來替換,或者該故障列可以暫時被置換為一列緩衝器,或者從該DRAM裝置所讀取出的資料可以被忽略,如以上所討論的。
在該DRAM裝置的運行操作期間,指令510可熔斷在該DRAM裝置中的一熔絲以用一備用列來更換該故障列。在一些實現方式中,在一記憶體控制器中的一暫存器會被寫入以致使該記憶體控制器發送一命令到該DRAM裝置以熔斷該熔絲。當該熔絲正被熔斷時,可使用錯誤更正碼(ECC)來更正來自該故障列的錯誤資料。舉例來說,ECC可以被用來更正從該故障列被複製到一備用DRAM裝置或 一列緩衝器的錯誤資料,或者ECC可以被用來在一快取列中為錯誤資料出現所在的位置重建資料。在該熔絲被熔斷之後,對該故障列的存取會被重新導向到該備用列。
圖6係一實例裝置600的一方塊圖,其包括有以指令來編碼的一機器可讀取儲存媒體以暫時地以一第二DRAM裝置替換一第一DRAM裝置。裝置600可以實現一可識別出與一DRAM裝置相關聯之錯誤的實體(例如,BIOS、狀態機、管理處理器),並強制執行其一錯誤處置政策(例如,判定何時指定一列為,和/或何時更換,一故障列)。在圖6中,裝置600包括處理器602和電腦可讀取儲存媒體604。
正如圖5的處理器502,處理器602可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體604中指令的其他硬體裝置。處理器602可以提取、解碼、和/或執行指令606、608、610、612、614、和616。作為一替代方案或除了檢索和/或執行指令之外,處理器602可以包括一電子電路,其包含數個電子組件用於執行指令606、608、610、612、614、和/或616的該功能。
正如圖5的機器可讀取儲存媒體504,機器可讀取儲存媒體604可以是可儲存可執行指令之任何合適的實體儲存裝置。在機器可讀取儲存媒體604上的指令606、608、和610會類似在機器可讀取儲存媒體504上的指令506、508、和510。指令606可以識別數個DRAM裝置之一第一DRAM裝置,其具有一故障列。指令612可暫時地把該第一 DRAM裝置以該等數個DRAM裝置之一第二DRAM裝置來替換。在一些實現方式中,指令612可以調用DCK,其會導致該第一DRAM裝置會被替換為該第二(例如,備用)DRAM裝置。在該第一DRAM裝置被替換之前,資料可以從該第一DRAM裝置被複製到該第二DRAM裝置。當在該第一DRAM裝置中的一熔絲正被熔斷以用該第一DRAM裝置的一備用列更換該故障列時,該第二DRAM裝置可用來取代該第一DRAM裝置。
指令614可以使用ECC來更正從該第一個DRAM裝置的該故障列被複製到該第二DRAM裝置的錯誤資料。因此,該第二DRAM裝置會儲存正確的而不是錯誤的資料。在一些實現方式中,ECC可被用於重建在該第二DRAM裝置中遺失的資料。
在該熔絲被熔斷之後,指令616會恢復使用該第一DRAM裝置。在一些實現方式中,毋須一系統重新啟動就可執行指令616(例如,如果一BIOS能夠在運行期間中恢復DCK晶片備用)。在一些實現方式中,指令616會在重新啟動時被執行,並且具有該映射入備用列的該第一DRAM裝置可在一OS被載入之前被初始化來使用。
圖7係一實例裝置700的一方塊圖,其包括有用指令來編碼的一機器可讀取儲存媒體以使用ECC來重建資料。裝置700可以實現一可識別出與一DRAM裝置相關聯之錯誤的實體(例如,BIOS、狀態機、管理處理器),並強制執行該DRAM裝置的一錯誤處置政策(例如,判定何時指定 一列為,和/或何時更換,一故障列)。在圖7中,裝置700包括處理器702和電腦可讀取儲存媒體704。
正如圖5的處理器502,處理器702可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體704中指令的其他硬體裝置。處理器702可以提取、解碼、和/或執行指令706、708、710、和712。作為一替代方案或除了檢索和/或執行指令之外,處理器702可以包括一電子電路,其包含數個電子組件用於執行指令706、708、710、和/或712的該功能。
正如圖5的機器可讀取儲存媒體504,機器可讀取儲存媒體704可以是可儲存可執行指令之任何合適的實體儲存裝置。在機器可讀取儲存媒體704上的指令706、708、和710會類似於在機器可讀取儲存媒體504上的指令506、508、和510。指令706可以識別出具有一故障列之一第一DRAM裝置。從該DRAM裝置(例如,從該故障列)所讀取出的錯誤資料可能會出現在一快取列的一位置上。指令712可以使用ECC,使用來自該快取列中其他位置上的資料,來為在該快取列中錯誤資料出現所在的該位置重建資料。當在該DRAM裝置中的一熔絲被熔斷以用一備用列來更換該故障列時,指令712可被執行,而在此期間,該DRAM裝置的行為可能是不確定的。指令712的執行可允許從該DRAM裝置所讀取出的資料會被忽略,並且允許在該DRAM裝置中的一熔絲可在運行期間被熔斷,即使當該熔絲被熔斷時 該DRAM裝置/故障列並未被暫時地替換(例如,以一備用DRAM裝置或列緩衝器)。
圖8係一實例裝置800的一方塊圖,其包括有用指令來編碼的一機器可讀取儲存媒體,該等指令可啟用在記憶體控制器中一列緩衝器的暫時使用。裝置800可以實現一可識別出與一DRAM裝置相關聯之錯誤的實體(例如,BIOS、狀態機、管理處理器),並強制執行該DRAM裝置的一錯誤處置政策(例如,判定何時指定一列為,和/或何時更換,一故障列)。在圖8中,裝置800包括處理器802和電腦可讀取儲存媒體804。
正如圖5的處理器502,處理器802可以包括一CPU、微處理器(例如,基於半導體的微處理器)、和/或適於檢索和/或執行儲存在機器可讀取儲存媒體804中指令的其他硬體裝置。處理器802可以提取、解碼、和/或執行指806、808、810、812、814、816、818、和820。作為一替代方案或除了檢索和/或執行指令之外,處理器802可以包括一電子電路,其包含數個電子組件用於執行指令806、808、810、812、814、816、818、和/或820的該功能。
正如圖5的機器可讀取儲存媒體504,機器可讀取儲存媒體804可以是可儲存可執行指令之任何合適的實體儲存裝置。在機器可讀取儲存媒體804上的指令806、808、和810會類似在機器可讀取儲存媒體504上的指令506、508、和510。指令806可以識別出一具有一故障列的DRAM裝置。指令812可把要被寫入到該故障列之資料寫入到在一 記憶體控制器中的一列緩衝器。資料可以從該故障列被複製到該列緩衝器。在一些實現方式中,當資料從該故障列被複製到該列緩衝器時,在該記憶體控制器中的一暫存器可以被寫入以致使要被寫入到該故障列之資料會被寫入到該列緩衝器。在所有的資料從該故障列被複製到該列緩衝器之前,該記憶體控制器可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會寫入到該故障列。當資料從該故障列被複製到該列緩衝器時,把要被寫入到該故障列的資料寫入到該列緩衝器可以讓該列緩衝器具有在該故障列中資料的一份最新的拷貝,當對該故障列所有的存取被暫時地重新導向到該列緩衝器時。
指令814可以存取依賴在該故障列中位元的記憶體位址。指令814可被執行以從該故障列把資料複製到該列緩衝器,並從該列緩衝器把資料複製到一備用列,該備用列係為該故障列被映射入作為一熔斷一熔絲的結果。在一些實現方式中,指令814的執行可致使一巡查清除器被使用來存取所有依賴該故障列的位址。在一些實現方式中,一BIOS在韌體中斷期間可以手動式地讀取位址(例如,在每一次中斷期間一些位址會被讀取)。在一些實現方式中,指令814的執行可致使一OS驅動程式讀取所有依賴該故障列的該等位址。
指令816可把對已被複製到該列緩衝器之該故障列部分的存取暫時地重新導向到該列緩衝器。在資料從該 故障列到該列緩衝器的複製完成之前,對該故障列之存取會被重新導向到該列緩衝器;在複製正在進行的過程中,對已被複製之該故障列部分的存取會被重新導向到該列緩衝器,而對於尚未被複製之該故障列部分的存取仍然可能會發生。當在該DRAM裝置中的一熔絲正被熔斷以把該故障列以該DRAM裝置的一備用列來更換時,該列緩衝器會被使用來取代該故障列。
指令818可把要被寫入到該列緩衝器的資料寫入到該備用列。在該熔絲被熔斷之後,資料可以從該列緩衝器被複製到該備用列。在一些實現方式中,當資料從該列緩衝器被複製到該備用列時,在該記憶體控制器中的一暫存器可以被寫入以致使要被寫入到該列緩衝器之資料會被寫入到該備用列。在所有的資料從該列緩衝器被複製到該備用列之前,該記憶體控制器可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會嘗試要寫入到該故障列(這種嘗試會被重新導向到該列緩衝器)。當資料從該列緩衝器被複製到該備用列時,把要被寫入到該列緩衝器的資料寫入到該備用列可讓該備用列會具有在該列緩衝器中資料的一份最新的拷貝,當對該故障列所有的存取被重新導向到該備用列時。
對已從該列緩衝器被複製到該備用列之該故障列部分的存取,指令820會重新導向到該備用列。在資料從該列緩衝器到該備用列的複製完成之前,對該故障列之存 取會被重新導向到該備用列;在複製正在進行的過程中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列,而對於尚未從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該列緩衝器。一旦從該列緩衝器到該備用列之複製完成時,該列緩衝器就不再被使用了。
有關於更換一DRAM裝置之一故障列的方法係參照圖9-15做討論。圖9係DRAM列備用之一實例方法900的一流程圖。雖然以下方法900的執行係參照圖1的處理器102來描述的,應當被理解的是,方法900的執行亦可透過其他合適的裝置,諸如分別在圖2、3、和4中的處理器202、302、和402來執行。方法900可以被實現為被儲存在一機器可讀取儲存媒體之可執行指令的形式和/或被實現為一電子電路的形式。
方法900可始於方塊902,其中處理器102可在一DRAM裝置的運行操作期間,排除該DRAM裝置之一故障列的使用。在一些實現方式中,排除使用該故障列可藉由暫時地把該DRAM以一備用的DRAM來取代,或藉由暫時地把該故障列以一列緩衝器來取代,如以上所討論的。在一些實現方式中,排除使用該故障列可藉由忽略從該故障列所讀出並顯示在一快取列之一位置上的錯誤資料。
在方塊904中,處理器102可發送指令以熔斷在該DRAM裝置中的一熔絲以用一備用列來更換該故障列。該熔絲可在該DRAM裝置的運行操作期間被熔斷。儘管在圖9 中方塊904係被圖示出在方塊902的下方,但應被理解的是,要熔斷該熔絲的指令可在該故障列排除使用之前或是與其並行地被發送。該熔絲的熔斷也可能發生在該故障列的使用被排除之後。
接下來,在方塊906中,當該熔絲正被熔斷時,處理器102可使用ECC來更正來自該故障列的錯誤資料。在一些實現方式中,ECC可被用來更正從該故障列被複製到一備用DRAM裝置或一列緩衝器的錯誤資料,使得該備用DRAM裝置/列緩衝器會儲存正確的而不是錯誤的資料。在一些實現方式中,從該故障列所讀出並顯示在一快取列之一位置中的錯誤資料會被忽略,並且使用來自該快取列其他位置上的資料,ECC可以被用來為在該快取列中錯誤資料出現所在的該位置重建無誤的資料。
最後,在方塊908中,在該熔絲被熔斷之後,處理器102可以把對該故障列的存取重新導向到該備用列。在該故障列中的位址/位置可被映射到在該備用列中對應的位址/位置。在該熔絲被熔斷之後,當一記憶體控制器(例如,記憶體控制器100)接收到的讀取命令係指向到該故障列中的位址/位置時,在該備用列中對應的位址/位置會被讀取,而不是在該故障列中的那些。類似地,為了回應於指向到該故障列中位址/位置的寫入命令,該記憶體控制器會替代地寫入到在該備用列中對應的該位址/位置。
圖10係在一DRAM裝置上的一熔絲正被熔斷時,DRAM列備用之一實例方法1000的一流程圖。雖然以 下方法1000的執行係參照圖2的處理器202來描述的,但應當被理解的是,方法1000的執行亦可透過其他合適的裝置,諸如圖1的處理器102來執行。方法1000中的某些方塊可以與方法900並行地被執行和/或在其之後被執行。方法1000可以被實現為被儲存在一機器可讀取儲存媒體之可執行指令的形式和/或被實現為一電子電路的形式。
方法1000可以始於方塊1002,其中處理器202可以暫時地把數個DRAM裝置之一第一DRAM裝置用該等數個DRAM裝置之一第二DRAM裝置來替換。在一些實現方式中,在該第一DRAM裝置被識別出有一故障列之後,一BIOS會調用DCK,其會導致該第一DRAM裝置會被置換為該第二(例如,備用)DRAM裝置。在該第一DRAM裝置被替換之前,資料可以從該第一DRAM裝置被複製到該第二DRAM裝置。
在方塊1004中,處理器202會發送指令以熔斷在該第一DRAM裝置中的一熔絲以用一備用列來更換該故障列。該熔絲可以在該第一DRAM裝置的運行操作期間被熔斷。儘管在圖10中方塊1004係被圖示在方塊1002的下方,但應被理解的是,要熔斷該熔絲的指令可在以該第二DRAM裝置替換該第一DRAM裝置之前或是與其並行地被發送。該熔絲的熔斷也可能發生在已經用該第二DRAM裝置替換該第一DRAM裝置之後。當該熔絲正被熔斷時,該第二DRAM裝置可被使用來代替該第一DRAM裝置。
接下來,在方塊1006中,當該熔絲正被熔斷時, 處理器202可使用ECC來更正從該第一DRAM裝置的該故障列被複製到該第二DRAM裝置的錯誤資料。因此,該第二DRAM裝置會儲存正確的而不是錯誤的資料。在一些實現方式中,ECC可以被用來重建在該第二DRAM裝置中遺失的資料。
最後,在方塊1008中,在該熔絲被熔斷之後,處理器202可恢復使用該第一DRAM裝置。ECC可被用使來在由熔斷熔絲被映射入之該備用列中更正/重建錯誤的和/或遺失的資料。在一些實現方式中,處理器202毋須一系統重新啟動就可恢復使用該第一DRAM裝置。舉例來說,一BIOS可以在運行期間反轉DCK晶片備用。在一些實現方式中,恢復使用該第一DRAM裝置會發生在一系統重新啟動期間。舉例來說,DCK可能不再應用於重新啟動,而具有該映射入備用列的該第一DRAM裝置可在一OS被載入之前就被初始化來使用。
圖11係在一DRAM裝置中使用一列緩衝器之一實例方法1100的一流程圖。雖然以下方法1100的執行係參照圖3的處理器302來被描述的,但應當被理解的是,方法1100亦可透過其他合適的裝置,諸如圖1的處理器102,來執行。方法1100中的某些方塊可與方法900並行地被執行和/或在其之後被執行。方法1100可以被實現為被儲存在一機器可讀取儲存媒體之可執行指令的形式和/或被實現為一電子電路的形式。
方法1100可始於方塊1102,其中處理器302會把 資料從一DRAM裝置的一故障列複製到在該DRAM裝置中的一列緩衝器。在方塊1104中,處理器302可把對已被複製到該列緩衝器之該故障列部分的存取暫時地重新導向到該列緩衝器。儘管在圖11中方塊1104係被圖示在方塊1102的下方,但應被理解的是,在資料從該故障列到該列緩衝器的複製完成之前,對該故障列之存取會被重新導向到該列緩衝器;在複製正在進行的過程中,對已被複製之該故障列部分的存取會被重新導向到該列緩衝器,而對於尚未被複製之該故障列部分的存取仍然可能會發生。當在該DRAM裝置中的一熔絲正被熔斷以把該故障列以該DRAM裝置的一備用列來更換時,該列緩衝器會被使用來取代該故障列。
在方塊1106中,處理器302會發送指令以熔斷在該DRAM裝置中的一熔絲以用一備用列來更換該故障列。該熔絲可以在該DRAM裝置的運行操作期間被熔斷。雖然在圖11中方塊1106係被圖示在方塊1102和1104的下方,但應被理解的是,方塊1106元件的執行可以在方塊1102和/或1104的元件之前或與其並行。該熔絲的熔斷可發生在把資料從該故障列複製到該列緩衝器的完成之後。
在方塊1108中,處理器302可以使用ECC來更正從該列緩衝器被讀出的錯誤資料,其係從該故障列被複製到該列緩衝器。因此,該列緩衝器會儲存正確的而不是錯誤的資料。在一些實現方式中,ECC可被用來重建資料在該列緩衝器中遺失的資料。
在方塊1110中,處理器302可判定該熔絲的熔斷是否完成。如果處理器302判定該熔絲的熔斷尚未完成,方法1100可以循環回到方塊1108。當該熔絲正被熔斷時,處理器302可以繼續使用該列緩衝器而非該故障列。如果,在方塊1110中,處理器302判定該熔絲的熔斷已完成,方法1100可以前進到方塊1112,其中處理器302可以把資料從該列緩衝器的複製到該備用列。
在方塊1114中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取,處理器302會重新導向到該備用列。雖然在圖11中方塊1114係被圖示在方塊1112的下方,但應被理解的是,在資料從該列緩衝器到該備用列的複製完成之前,對該故障列之存取會被重新導向到該備用列;在複製正在進行的過程中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列,而對於尚未從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該列緩衝器。在把資料從該列緩衝器複製到該備用列完成之後,處理器302就不再使用該列緩衝器了。
圖12係在一記憶體控制器中使用一列緩衝器之一實例方法1200的一流程圖。雖然以下方法1200的執行係參照圖4的處理器402來描述的,但應當被理解的是,方法1200亦可透過其他合適的裝置,諸如圖1的處理器102,來執行。方法1200中的某些方塊可以與方法900並行地被執行和/或在其之後被執行。方法1200可以被實現為被儲存在一 機器可讀取儲存媒體之可執行指令的形式和/或被實現為一電子電路的形式。
方法1200可以始於方塊1202,其中處理器402會把資料從一DRAM裝置的一故障列複製到在一記憶體控制器的一列緩衝器。依賴在該故障列中位元的記憶體位址可被存取以從該故障列複製資料到該列緩衝器。因為該記憶體控制器(記憶體控制器400)會以一次一快取列的方式存取DRAM裝置,該記憶體控制器可能必須要存取多個依賴該故障列的快取列,以確保在該故障列中所有的資料都被複製到該列緩衝器。在一些實現方式中,一巡查清除器可被使用來存取所有依賴該故障列的位址。在一些實現方式中,一BIOS在韌體中斷期間可以手動式地讀取位址(例如,在每一次中斷期間一些位址會被讀取)。在一些實現方式中,一OS驅動程式可以讀取所有依賴該故障列的該等位址。
在方塊1204中,處理器402可把要被寫入到該故障列的資料寫入到該列緩衝器。雖然在圖12中方塊1204係被圖示在方塊1202的下方,但應被理解的是,當資料從該故障列被複製到該列緩衝器時,要被寫入到該故障列的資料會被寫入到該列緩衝器。在所有的資料從該故障列被複製到該列緩衝器之前,一記憶體控制器(例如,記憶體控制器400)可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會寫入到該故障列。當資料從該故障列被複製到該列緩衝器時,把要被寫入到該故障列的資料寫入到該列緩衝器可以 讓該列緩衝器具有在該故障列中資料的一份最新的拷貝,當對該故障列所有的存取被暫時地重新導向到該列緩衝器時。
在方塊1206中,對已被複製到該列緩衝器之該故障列部分的存取,處理器402會被暫時地重新導向到該列緩衝器。雖然在圖12中方塊1206係被圖示在方塊1202和1204的下方,但應被理解的是,在資料從該故障列到該列緩衝器的複製完成之前,對該故障列之存取會被重新導向到該列緩衝器;在複製正在進行的過程中,對已被複製之該故障列部分的存取會被重新導向到該列緩衝器,而對於尚未被複製之該故障列部分的存取仍然可能會發生。把資料從該故障列複製到該列緩衝器可以由一BIOS來控制。當該複製完成時,該BIOS可發送給該記憶體控制器一指示告知不要存取該故障列。當在該DRAM裝置中的一熔絲正被熔斷以把該故障列以該DRAM裝置的一備用列來更換時,該列緩衝器會被使用而非該故障列。
在方塊1208中,處理器402會發送指令以熔斷在該DRAM裝置中的一熔絲以用一備用列來更換該故障列。該熔絲可以在該DRAM裝置的運行操作期間被熔斷。雖然在圖12中方塊1208係被圖示在方塊1202、1204、和1206的下方,但應被理解的是,方塊1208元件的執行可在方塊1202、1204、和/或1206的元件之前或與其並行。該熔絲的熔斷可發生在把資料從該故障列複製到該列緩衝器的完成之後。
在方塊1210中,處理器402可使用ECC來更正從該列緩衝器被讀出的錯誤資料,其係從該故障列被複製到該列緩衝器。因此,該列緩衝器會儲存正確的而不是錯誤的資料。在一些實現方式中,ECC可以被用來重建資料在該列緩衝器中遺失的資料。
在方塊1212中,處理器402可判定該熔絲的熔斷是否完成。如果處理器402判定該熔絲的熔斷尚未完成,方法1200可循環回到方塊1210。當該熔絲正被熔斷時,處理器402可繼續使用該列緩衝器而非該故障列。
如果,在方塊1212中,處理器402判定該熔絲的熔斷已完成的話,方法1200可前進到方塊1214,其中處理器402可把資料從該列緩衝器複製到該備用列。依賴在該故障列中位元的記憶體位址可被存取以從該列緩衝器複製資料到該備用列。因為該記憶體控制器會以一次一快取列的方式存取DRAM裝置,該記憶體控制器可能必須要存取多個依賴該故障列的快取列,以確保在該列緩衝器中所有的資料都被複製到該備用列。在一些實現方式中,一巡查清除器可被使用來存取所有依賴該故障列的位址。在一些實現方式中,一BIOS在韌體中斷期間可以手動式地讀取位址(例如,在每一次中斷期間一些位址會被讀取)。在一些實現方式中,一OS驅動程式可以讀取所有依賴該故障列的該等位址。
在方塊1216中,當資料從該列緩衝器被複製到該備用列時,處理器402可把要被寫入到該列緩衝器的資料寫 入到該備用列。雖然在圖12中方塊1216係被圖示在方塊1214的下方,但應被理解的是,當資料從該列緩衝器被複製到該備用列時,要被寫入到該列緩衝器的資料會被寫入到該備用列。在所有的資料從該列緩衝器被複製到該備用列之前,該記憶體控制器可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會嘗試要寫入到該故障列(這種嘗試會被重新導向到該列緩衝器)。當資料從該列緩衝器被複製到該備用列時,把要被寫入到該列緩衝器的資料寫入到該備用列可以讓該備用列具有在該列緩衝器中資料的一份最新的拷貝,當對該故障列所有的存取都被重新導向到該備用列時。
在方塊1218中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取,處理器402會重新導向到該備用列。雖然在圖12中方塊1218係被圖示在方塊1214和1216的下方,但應被理解的是,在資料從該列緩衝器到該備用列的複製完成之前,對該故障列之存取會被重新導向到該備用列;在複製正在進行的過程中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列,而對於尚未從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該列緩衝器。把資料從該列緩衝器複製到該備用列可以由一BIOS來控制。當該複製完成時,該BIOS會發送一指示給該記憶體控制器告知不要使用該列緩衝器。
圖13係在一DRAM裝置上更換一故障列之一實 例方法1300的一流程圖。雖然以下方法1300的執行係參照圖6的處理器602來被描述的,但應當被理解的是,方法1300亦可透過其他合適的裝置,諸如圖5的處理器502,來執行。方法1300可以被實現為被儲存在一機器可讀取儲存媒體之可執行指令的形式和/或實現為一電子電路的形式。
方法1300可始於方塊1302,其中處理器602可在數個DRAM裝置中識別出一具有一故障列的第一DRAM裝置。舉例來說,可維護記錄以記錄有多少錯誤(例如,讀取/寫入錯誤)與該第一DRAM裝置相關聯以及當該等錯誤發生時係在該DRAM裝置中哪些位址/位置被存取。當與該第一DRAM裝置之一區域相關聯的該錯誤數超過一錯誤臨界數量時,該第一DRAM裝置可被識別為具有一故障列。
在方塊1304中,處理器602可識別出該第一DRAM裝置之該故障列的一列號。在一些實現方式中,處理器602可把該列號寫入到在一記憶體控制器中的一暫存器。雖然在圖13中方塊1304係被圖示在方塊1302的下方,但應被理解的是,方塊1302和1304的元件可被並行地執行。
接下來,在方塊1306中,處理器602可致使以該等數個DRAM裝置之一第二DRAM裝置來暫時地替換該第一DRAM裝置。舉例來說,處理器602可以調用DCK,其可致使該第一DRAM裝置被替換為該第二(例如,備用)DRAM裝置。在該第一DRAM裝置被替換之前,資料可從該第一DRAM裝置被複製到該第二DRAM裝置。當在該第一DRAM裝置中的一熔絲正被熔斷以用該第一DRAM裝置的一備用 列更換該故障列時,該第二DRAM裝置可被使用而非該第一DRAM裝置。
在方塊1308中,處理器602可致使該第一DRAM裝置中的一熔絲被熔斷。在一些實現方式中,處理器602可以寫入在一記憶體控制器中的一暫存器以致使該記憶體控制器發送一命令給該第一DRAM裝置以熔斷該熔絲。該熔絲可以在該第一DRAM裝置的運行操作期間被熔斷。
在方塊1310中,當該熔絲正被熔斷時,處理器602會致使ECC被使用來更正來自該故障列的錯誤資料。舉例來說,ECC會被使用來更正從該第一DRAM裝置之該故障列被複製到該第二DRAM裝置的錯誤資料。因此,該第二DRAM裝置會儲存正確的而不是錯誤的資料。在一些實現方式中,ECC可被用來重建在該第二DRAM裝置中遺失的資料。
最後,在方塊1312中,在該熔絲被熔斷之後,處理器602可致使恢復使用該第一DRAM裝置。在該熔絲被熔斷之後,對該故障列的存取會被重新導向到該備用列。在一些實現方式中,毋須一系統重新啟動就可恢復使用該第一DRAM裝置。舉例來說,處理器602以在運行期間反轉DCK晶片備用。在一些實現方式中,該恢復會發生在重新啟動期間,而處理器602會初始化該具有該映射入備用列的第一DRAM裝置以在一OS被載入之前就可使用。
圖14係在一DRAM裝置的運行操作期間熔斷在該DRAM裝置中一熔絲之一實例方法1400的一流程圖。雖 然以下方法1400的執行係參照圖7的處理器702來被描述的,但應當被理解的是,方法1400亦可透過其他合適的裝置,諸如圖5的處理器502,來執行。方法1400可被實現為被儲存在一機器可讀取儲存媒體之可執行指令的形式和/或被實現為一電子電路的形式。
方法1400可始於方塊1402,其中處理器702可識別出一具有一故障列的DRAM裝置。舉例來說,可維護記錄以記錄有多少錯誤(例如,讀取/寫入錯誤)與該DRAM裝置相關聯以及當該等錯誤發生時係在該DRAM裝置中的哪些位址/位置上被存取。當與該DRAM裝置之一區域相關聯的該錯誤數超過一錯誤臨界數量時,該DRAM裝置可被識別為具有一故障列。
在方塊1404中,處理器702可識別出該DRAM裝置之該故障列的一列號。在一些實現方式中,處理器702可把該列號寫入到在一記憶體控制器中的一暫存器。雖然在圖14中方塊1404係被圖示在方塊1402的下方,但應被理解的是,方塊1402和1404的元件可被並行地執行。在該故障列被識別出之後,其可被排除使用。從該DRAM裝置(例如,從該故障列)所讀出的錯誤資料可能會出現在一快取列的一位置中。
在方塊1406中,處理器702會致使ECC使用來自該快取列中其他位置上的資料為在該快取列中錯誤資料出現所在的該位置重建資料。當在該DRAM裝置中的一熔絲被熔斷以用一備用列來更換該故障列時,ECC會被使用來 重建資料,而在此期間,該DRAM裝置的行為可能是不確定的。為在一快取列中的一位置使用來自該快取列中其他位置上的資料來重建資料的能力可允許從該DRAM裝置所讀出的資料會被忽略,並且可允許在該DRAM裝置中的一熔絲可在運行期間被熔斷,即使當該熔絲被熔斷時該DRAM裝置/故障列並未被暫時地替代(例如,以一備用DRAM裝置或列緩衝器)。
在方塊1408中,處理器702會致使在該DRAM裝置中的一熔絲被熔斷以用一備用列來更換該故障列。在一些實現方式中,處理器702會寫入在一記憶體控制器中的一暫存器以致使該記憶體控制器會發送一命令到該DRAM裝置以熔斷該熔絲。該熔絲可以在該DRAM裝置的運行操作期間被熔斷。在該熔絲被熔斷之後,對該故障列的存取會被重新導向到該備用列。
圖15係以在一記憶體控制器中之一列緩衝器來暫時更換一DRAM裝置的一故障列之一實例方法1500的一流程圖。雖然以下方法1500的執行係參照圖8的處理器802來被描述的,但應當被理解的是,方法1500亦可透過其他合適的裝置,諸如圖5的處理器502,來執行。方法1500可以被實現為被儲存在一機器可讀取儲存媒體之可執行指令的形式和/或實現為一電子電路的形式。
方法1500可始於方塊1502,其中處理器802會致使把要被寫入到一DRAM裝置之一故障列之資料寫入到在一記憶體控制器中的一列緩衝器。資料可從該故障列被複 製到該列緩衝器。在一些實現方式中,當資料從該故障列被複製到該列緩衝器時,處理器802會寫入在該記憶體控制器中的一暫存器以致使要被寫入到該故障列之資料會被寫入到該列緩衝器。在所有的資料從該故障列被複製到該列緩衝器之前,該記憶體控制器可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會寫入到該故障列。當資料從該故障列被複製到該列緩衝器時,把要被寫入到該故障列的資料寫入到該列緩衝器可以讓該列緩衝器具有在該故障列中資料的一份最新的拷貝,當對該故障列所有的存取被暫時地重新導向到該列緩衝器時。依賴在該故障列中位元的記憶體位址可以被存取(例如,使用一巡查清除器、BIOS、或OS驅動程式)以從該故障列複製資料到該列緩衝器,如以上所討論的。
在方塊1504中,對已被複製到該列緩衝器之該故障列部分的存取,處理器802會暫時地重新導向到該列緩衝器。在資料從該故障列到該列緩衝器的複製完成之前,對該故障列之存取會被重新導向到該列緩衝器;在複製正在進行的過程中,對已被複製之該故障列部分的存取會被重新導向到該列緩衝器,而對於尚未被複製之該故障列部分的存取仍然可能會發生。處理器802可控制把資料從該故障列複製到該列緩衝器。當該複製完成時,處理器802可發送一指示給該記憶體控制器告知不要存取該故障列。當在該DRAM裝置中的一熔絲正被熔斷以把該故障列以該DRAM 裝置的一備用列來更換時,該列緩衝器會被使用而非該故障列。
在方塊1506中,處理器802會致使在該DRAM裝置中的一熔絲被熔斷以用一備用列來更換該故障列。在一些實現方式中,處理器802會寫入在一記憶體控制器中的一暫存器以致使該記憶體控制器發送一命令該DRAM裝置以熔斷該熔絲。該熔絲可以在該DRAM裝置的運行操作期間被熔斷。
在方塊1508中,處理器802可把要被寫入到該列緩衝器的資料寫入到該備用列。在該熔絲被熔斷之後,資料會從該列緩衝器被複製到該備用列。在一些實現方式中,當資料從該列緩衝器被複製到該備用列時,處理器802會寫入在該記憶體控制器中的一暫存器以致使要被寫入到該列緩衝器之資料會被寫入到該備用列。在所有的資料從該列緩衝器被複製到該備用列之前,該記憶體控制器可能必須要存取多個快取列,如以上所討論的,而在所有的這些快取列被存取之前,一OS/應用程式可能會嘗試要寫入到該故障列(這種嘗試會被重新導向到該列緩衝器)。當資料從該列緩衝器被複製到該備用列時,把要被寫入到該列緩衝器的資料寫入到該備用列可讓該備用列會具有在該列緩衝器中資料的一份最新的拷貝,當對該故障列所有的存取被重新導向到該備用列時。依賴在該故障列中位元的記憶體位址可以被存取(例如,使用一巡查清除器、BIOS、或OS驅動程式)以從該故障列複製資料到該列緩衝器,如以上所 討論的。
在方塊1510中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取,處理器802會重新導向到該備用列。在資料從該列緩衝器到該備用列的複製完成之前,對該故障列之存取會被重新導向到該備用列;在複製正在進行的過程中,對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列,而對於尚未從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該列緩衝器。處理器802可控制把資料從該列緩衝器複製到該備用列。當該複製完成時,處理器802會發送一指示給該記憶體控制器告之不要使用該列緩衝器。
前述的揭露描述了在運行期間之DRAM列備用技術。在本文中所描述的實例實現方式使得在運行期間更換一DRAM裝置的一故障列變得可能,即使當一熔絲正被熔斷時應用程式仍繼續使用該DRAM裝置,而且甚至沒有在運行期間列備用的OS支援。
100‧‧‧記憶體控制器
102‧‧‧處理器
104‧‧‧機器可讀取儲存媒體
106‧‧‧DRAM裝置之故障列的使用排除
108‧‧‧熔斷在DRAM裝置中的熔絲
110‧‧‧使用ECC來更正來自故障列的錯誤資料
112‧‧‧把對故障列的存取重新導向到備用列

Claims (15)

  1. 一種用於動態隨機存取記憶體(DRAM)列備用的方法,該方法包含有:在一DRAM裝置的運行操作期間,排除該DRAM裝置之一故障列的使用;發送指令以熔斷在該DRAM裝置中的一熔絲以用一備用列來替換該故障列,其中該熔絲是在該DRAM裝置的運行操作期間被熔斷;當該熔絲正被熔斷時,使用錯誤更正碼(ECC)更正來自該故障列的錯誤資料;以及在該熔絲被熔斷之後,把對該故障列之存取重新導向到該備用列。
  2. 如請求項1之方法,其中:該DRAM裝置是數個DRAM裝置中的一第一DRAM裝置;該故障列使用的排除包括以該等數個DRAM裝置中的一第二DRAM裝置暫時地替換該第一DRAM裝置;在該第一DRAM裝置被替換之前,資料會從該第一DRAM裝置被複製到該第二DRAM裝置;以及使用ECC更正來自該故障列的錯誤資料包括使用ECC來更正從該第一DRAM裝置被複製到該第二DRAM裝置的錯誤資料;該方法更包含有在該熔絲被熔斷之後恢復使用該 第一DRAM裝置。
  3. 如請求項2之方法,其中該恢復使用該第一DRAM裝置發生在一系統重新啟動期間。
  4. 如請求項1之方法,其中:該故障列使用的排除包括忽略從該故障列被讀出並出現在一快取列中之一位置上的錯誤資料;以及使用ECC更正來自該故障列的錯誤資料包括使用來自在該快取列中其他位置上的資料來為在該快取列中該錯誤資料出現所在的位置上重建無誤的資料。
  5. 如請求項1之方法,該方法更包含有:把資料從該故障列複製到在該DRAM裝置中的一列緩衝器;以及在該熔絲被熔斷之後,把資料從該列緩衝器複製到該備用列;其中該故障列使用的排除包括對已被複製到該列緩衝器之該故障列部分的存取暫時地重新導向到該列緩衝器;使用ECC更正來自該故障列的錯誤資料包括使用ECC來更正從該列緩衝器被讀出的,其係從該故障列被複製到該列緩衝器之錯誤的資料;以及對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列。
  6. 如請求項1之方法,該方法更包含有: 把資料從該故障列複製到在一記憶體控制器中的一列緩衝器;當資料從該故障列被複製到該列緩衝器時,把要被寫入到該故障列之資料寫入該列緩衝器;在該熔絲被熔斷之後,把資料從該列緩衝器被複製到該備用列;當資料從該列緩衝器被複製到該備用列時,把要被寫入到該列緩衝器之資料寫入該備用列;其中:該故障列使用的排除包括對已被複製到該列緩衝器之該故障列部分的存取暫時地重新導向到該列緩衝器;使用ECC更正來自該故障列的錯誤資料包括使用ECC來更正從該列緩衝器被讀出的,其係從該故障列被複製到該列緩衝器之錯誤的資料;以及對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列。
  7. 使用可由一記憶體控制器之一處理器來執行之指令來編碼之一機器可讀取儲存媒體,其用於動態隨機存取記憶體(DRAM)列備用,該機器可讀取儲存媒體包含有:指令用以在一DRAM裝置的運行操作期間排除該DRAM裝置之一故障列的使用;指令用以在一DRAM裝置的運行操作期間熔斷在該DRAM裝置中的一熔絲以用一備用列來替換該故障 列;指令用以在該熔絲正被熔斷時使用錯誤更正碼(ECC)更正來自該故障列的錯誤資料;以及指令用以在該熔絲被熔斷之後,把對該故障列之存取重新導向到該備用列。
  8. 如請求項7之機器可讀取儲存媒體,其中該DRAM裝置是數個DRAM裝置中的一第一DRAM裝置,而且其中當該故障列的使用被排除時,以該等數個DRAM裝置中的一第二DRAM裝置替換該第一DRAM裝置,該機器可讀取儲存媒體更包含有指令以在該熔絲被熔斷之後恢復使用該第一DRAM裝置。
  9. 如請求項7之機器可讀取儲存媒體,其更包含有:指令以把資料從該故障列複製到在該DRAM裝置中的一列緩衝器,其中對已被複製到該列緩衝器之該故障列部分的存取暫時地被重新導向到該列緩衝器;以及指令以在該熔絲被熔斷之後把資料從該列緩衝器複製到在該備用列,其中對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列。
  10. 如請求項7之機器可讀取儲存媒體,其更包含有:指令,以把資料從該故障列複製到在一記憶體控制器中的一列緩衝器,其中對已被複製到該列緩衝器之該故障列部分的存取暫時地被重新導向到該列緩衝器;指令,以在資料從該故障列被複製到該列緩衝器 時,把要被寫入到該故障列的資料寫入到該列緩衝器;指令,以在該熔絲被熔斷之後,把資料從該列緩衝器複製到該備用列,其中對已從該列緩衝器被複製到該備用列之該故障列部分的存取會被重新導向到該備用列;以及指令,以在資料從該列緩衝器被複製到該備用列時,把要被寫入到該列緩衝器的資料寫入到該備用列。
  11. 使用可由一處理器來執行之指令來編碼之一機器可讀取儲存媒體,其用於動態隨機存取記憶體(DRAM)列備用,該機器可讀取儲存媒體包含有:指令以識別出一具有一故障列的DRAM裝置;指令以識別出該DRAM裝置之該故障列的一列號,其中該故障列在被識別出之後會被排除使用;以及指令用以在該DRAM裝置的運行操作期間熔斷在該DRAM裝置中的一熔絲以用一備用列來替換該故障列,其中在該熔絲正被熔斷時,錯誤更正碼(ECC)會被使用來更正來自該故障列的錯誤資料;以及在該熔絲被熔斷之後,把對該故障列之存取重新導向到該備用列。
  12. 如請求項11之機器可讀取儲存媒體,其中該DRAM裝置是數個DRAM裝置中的一第一DRAM裝置,該機器可讀取儲存媒體更包含有:指令以使用該等數個DRAM裝置中的一第二 DRAM裝置暫時地替換該第一DRAM裝置,其中在該第一DRAM裝置被替換之前,資料會從該第一DRAM裝置被複製到該第二DRAM裝置;指令以使用ECC來更正從該第一DRAM裝置的該故障列被複製到該第二DRAM裝置的錯誤資料;以及指令以在該熔絲被熔斷之後恢復使用該第一DRAM裝置。
  13. 如請求項11之機器可讀取儲存媒體,其中從該DRAM裝置被讀出的錯誤資料出現在一快取列中的一位置上,該機器可讀取儲存媒體更包含有指令以使用ECC,使用來自在該快取列中其他位置上的資料,來為在該快取列中該錯誤資料出現所在的該位置上重建資料。
  14. 如請求項11之機器可讀取儲存媒體,其更包含有:指令,以把要被寫入到該故障列的資料寫入到在一記憶體控制器中的一列緩衝器,其中資料係從該故障列被複製到該列緩衝器;指令,以把對已被複製到該列緩衝器之該故障列部分的存取暫時地重新導向到該列緩衝器;指令,以把要被寫入到該列緩衝器的資料寫入到該備用列,其中資料係在該熔絲被熔斷之後從該列緩衝器被複製到該備用列;以及指令,以把對已從該列緩衝器被複製到該備用列之該故障列部分的存取重新導向到該備用列。
  15. 如請求項11之機器可讀取儲存媒體,其更包含有指令以 存取依賴在該故障列中位元的記憶體位址。
TW103145230A 2014-03-03 2014-12-24 動態隨機存取記憶體(dram)列備用技術 TW201535382A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/019801 WO2015133982A1 (en) 2014-03-03 2014-03-03 Dram row sparing

Publications (1)

Publication Number Publication Date
TW201535382A true TW201535382A (zh) 2015-09-16

Family

ID=54055649

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103145230A TW201535382A (zh) 2014-03-03 2014-12-24 動態隨機存取記憶體(dram)列備用技術

Country Status (3)

Country Link
US (1) US10468118B2 (zh)
TW (1) TW201535382A (zh)
WO (1) WO2015133982A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106710632A (zh) * 2015-11-17 2017-05-24 华邦电子股份有限公司 存储器装置
TWI764856B (zh) * 2021-12-13 2022-05-11 慧榮科技股份有限公司 記憶體控制器與資料處理方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102233068B1 (ko) * 2014-09-01 2021-03-30 삼성전자주식회사 반도체 메모리 장치의 결함 메모리 셀 리페어 방법
US9928924B2 (en) * 2015-12-15 2018-03-27 Qualcomm Incorporated Systems, methods, and computer programs for resolving dram defects
US9910728B2 (en) 2015-12-23 2018-03-06 Intel Corporation Method and apparatus for partial cache line sparing
KR102623234B1 (ko) * 2018-08-14 2024-01-11 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US11481294B2 (en) * 2018-09-15 2022-10-25 Intel Corporation Runtime cell row replacement in a memory
US10770164B1 (en) 2019-05-02 2020-09-08 International Business Machines Corporation Soft post package repair function validation
US10922025B2 (en) * 2019-07-17 2021-02-16 Samsung Electronics Co., Ltd. Nonvolatile memory bad row management
KR102263044B1 (ko) 2019-08-23 2021-06-09 삼성전자주식회사 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
US11557366B2 (en) * 2019-11-21 2023-01-17 SK Hynix Inc. Memory, memory system, operation method of the memory, and operation of the memory system
US11989106B2 (en) * 2019-12-11 2024-05-21 Intel Corporation Inline buffer for in-memory post package repair (PPR)
US11586495B2 (en) * 2020-07-15 2023-02-21 Micron Technology, Inc. Fuse logic to perform selectively enabled ECC decoding

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6599789B1 (en) * 2000-11-15 2003-07-29 Micron Technology, Inc. Method of forming a field effect transistor
US7085971B2 (en) * 2001-10-25 2006-08-01 International Business Machines Corporation ECC based system and method for repairing failed memory elements
CN1600050A (zh) 2001-10-30 2005-03-23 伊金耐勒股份有限公司 用于容纳多个处理器的底盘系统的简化的电力和数据连接器
KR100462877B1 (ko) * 2002-02-04 2004-12-17 삼성전자주식회사 반도체 메모리 장치, 및 이 장치의 불량 셀 어드레스프로그램 회로 및 방법
JP2005310313A (ja) * 2004-04-23 2005-11-04 Toshiba Corp 半導体記憶装置
US7284168B2 (en) * 2005-01-26 2007-10-16 Hewlett-Packard Development Company, L.P. Method and system for testing RAM redundant integrated circuits
US7984329B2 (en) 2007-09-04 2011-07-19 International Business Machines Corporation System and method for providing DRAM device-level repair via address remappings external to the device
US7895374B2 (en) 2008-07-01 2011-02-22 International Business Machines Corporation Dynamic segment sparing and repair in a memory system
US8902638B2 (en) 2011-09-16 2014-12-02 Inphi Corporation Replacement of a faulty memory cell with a spare cell for a memory circuit
US8788904B2 (en) 2011-10-31 2014-07-22 Hewlett-Packard Development Company, L.P. Methods and apparatus to perform error detection and correction
US9087613B2 (en) * 2012-02-29 2015-07-21 Samsung Electronics Co., Ltd. Device and method for repairing memory cell and memory system including the device
US8719493B2 (en) 2012-03-21 2014-05-06 Dell Products L.P. Memory controller-independent memory sparing
US8817560B2 (en) * 2012-06-12 2014-08-26 SK Hynix Inc. Semiconductor memory device having redundant fuse circuit
KR102083266B1 (ko) * 2013-11-29 2020-03-03 삼성전자주식회사 반도체 메모리 장치의 테스트 방법 및 반도체 메모리 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106710632A (zh) * 2015-11-17 2017-05-24 华邦电子股份有限公司 存储器装置
CN106710632B (zh) * 2015-11-17 2020-01-07 华邦电子股份有限公司 存储器装置
TWI764856B (zh) * 2021-12-13 2022-05-11 慧榮科技股份有限公司 記憶體控制器與資料處理方法

Also Published As

Publication number Publication date
WO2015133982A1 (en) 2015-09-11
US10468118B2 (en) 2019-11-05
US20170169905A1 (en) 2017-06-15

Similar Documents

Publication Publication Date Title
TW201535382A (zh) 動態隨機存取記憶體(dram)列備用技術
US9613656B2 (en) Scalable storage protection
US8869007B2 (en) Three dimensional (3D) memory device sparing
US8479062B2 (en) Program disturb error logging and correction for flash memory
US20110029716A1 (en) System and method of recovering data in a flash storage system
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
TWI490876B (zh) 系統啟動引導處理方法及裝置
US10558519B2 (en) Power-reduced redundant array of independent memory (RAIM) system
JPWO2007097019A1 (ja) キャッシュ制御装置およびキャッシュ制御方法
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
US10467074B2 (en) Conditional journal for storage class memory devices
US20180074734A1 (en) Bank-level fault management in a memory system
US9934085B2 (en) Invoking an error handler to handle an uncorrectable error
EP3029570B1 (en) Bad track repairing method and apparatus
US20160328291A1 (en) Memory device error history bit
US9037948B2 (en) Error correction for memory systems
WO2017012507A1 (zh) 一种数据恢复方法及装置
JP2004213470A (ja) ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
JP2018136735A (ja) メモリ制御装置及びメモリ制御方法
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
CN114840364A (zh) 对内存中的存储数据进行备份的方法、装置及电子设备
CN110134322B (zh) 运用dram的储存装置及其相关数据处理方法
US11809742B2 (en) Recovery from HMB loss
TWI676105B (zh) 運用dram的儲存裝置及其相關資料處理方法
WO2021196662A1 (zh) 读写方法及存储器装置