TW201818245A - 動態隨機存取記憶體的錯誤更正方法、模組及記憶體系統 - Google Patents

動態隨機存取記憶體的錯誤更正方法、模組及記憶體系統 Download PDF

Info

Publication number
TW201818245A
TW201818245A TW106121723A TW106121723A TW201818245A TW 201818245 A TW201818245 A TW 201818245A TW 106121723 A TW106121723 A TW 106121723A TW 106121723 A TW106121723 A TW 106121723A TW 201818245 A TW201818245 A TW 201818245A
Authority
TW
Taiwan
Prior art keywords
error
wafer
memory
dram
memory controller
Prior art date
Application number
TW106121723A
Other languages
English (en)
Other versions
TWI710892B (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 TW201818245A publication Critical patent/TW201818245A/zh
Application granted granted Critical
Publication of TWI710892B publication Critical patent/TWI710892B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/0617Improving the reliability of storage systems in relation to availability
    • 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
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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/52Protection of memory contents; Detection of errors in memory contents
    • 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)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一種更正使用雙倍資料速率(DDR)介面之動態隨機存取記憶體模組(DRAM)的記憶體錯誤的方法,所述方法包括:與記憶體控制器進行包括多個叢發的記憶體事務,以自所述DRAM的資料晶片發送資料至所述記憶體控制器;使用所述DRAM的ECC晶片來偵測一或多個錯誤;使用所述DRAM的所述ECC晶片來確定具有所述錯誤的所述叢發的數目;判斷具有所述錯誤的所述叢發的所述數目是否大於臨界數目;確定所述錯誤的類型;以及基於所述錯誤的所述所確定類型來指示所述記憶體控制器,其中所述DRAM每一記憶體通道包括單個ECC晶片。

Description

用於雙倍資料速率同步動態隨機存取記憶體介面之動態存取記憶體協助錯誤更正機制
根據本發明的實施例的一或多個態樣是有關於記憶體錯誤更正的方法及機制。
雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random-access memory,DDR SDRAM)是一種用於電腦中的記憶體積體電路(integrated circuit,IC)。DDR SDRAM能夠利用對電性資料及時脈訊號的時序控制達成較快的傳送速率(transfer rate),且能夠在時脈訊號的上升邊緣及下降邊緣二者上傳送資料,由此有效地使資料匯流排頻寬相較於利用相同時脈頻率的單一資料速率(single data rate,SDR)SDRAM介面而言翻倍,且由此達成所述頻寬的將近兩倍。
不同世代的DRAM均能夠在資料儲存期間使用錯誤更正碼(error-correcting code,ECC)記憶體來偵測且有時更正常見類型的資料訛誤(data corruption)。ECC記憶體藉由使用奇偶校驗(parity checking)而不受單個位元錯誤(single-bit error)影響。在DRAM系統中,奇偶校驗是藉由以下而達成:儲存代表儲存於記憶體中(例如,儲存於所述DRAM模組的奇偶校驗裝置中或ECC晶片中)的資料(例如,一個位元組的資料)的奇偶性(奇或偶)的冗餘奇偶校驗位元(redundant parity bit);獨立地計算所述奇偶性;以及將所儲存奇偶性與所計算奇偶性進行比較,以判斷是否已出現資料錯誤/記憶體錯誤。
因此,為確保自DRAM模組(例如,雙列直插記憶體模組(dual in-line memory module,DIMM))擷取的可對應於資料字(data word)或資料符號(data symbol)的資料與被寫入至所述DRAM模組的資料相同,ECC可更正當所述資料的一或多個位元翻轉成錯誤狀態時出現的錯誤。
亦即,使用ECC冗餘使得ECC晶片能夠進行單錯誤更正雙錯誤偵測(single error correction double error detection,SEC-DED),此意指ECC晶片能夠偵測在單個叢發(burst)中出現的兩個錯誤的存在,且亦能夠更正單獨地出現的單個錯誤位元。亦即,若一個資料晶片訛誤或丟失,則可使用其餘資料晶片的資料及ECC晶片的ECC資料來重建訛誤的或缺失的資料晶片的資料。
另外,DRAM系統可具有用於抹除非功能性資料晶片或對非功能性資料晶片進行去能的晶片刪除機制(chipkill mechanism)。用於DDR4的各種晶片刪除機制每一記憶體通道使用兩個或更多個ECC裝置/晶片來偵測、定位、及抹除非功能性晶片。
舉例而言,正常的DDR4具有為8n的預取長度(prefetch length)、為8的叢發長度(burst length)(即,每一記憶體事務(memory transaction)8個叢發)、及為六十四位元的記憶體通道寬度,其中n是對應系統架構中所使用的資料的介面寬度的位元數目(例如,若介面寬度為4位元,則對應DDR4系統的預取長度為32位元)。因此,DDR4將對每一記憶體事務傳輸512個位元。
為持續增大DDR介面寬度,新型DDR介面可增大預取長度。此新型DDR介面可具有為16n的預取長度,此為當前DDR4介面的預取長度的兩倍。新型DDR介面將因此對每一記憶體事務傳送為由DDR4系統所傳送的資料量的兩倍的資料量。此新型DDR介面亦可具有為16的叢發長度(即,每一個別記憶體事務中存在十六個資料叢發),且每一記憶體通道具有為32位元的記憶體通道寬度,且將因此亦在每一記憶體事務的每一記憶體通道中傳輸512個位元。然而,此DDR介面每一DIMM具有兩個記憶體通道,每一DIMM為在包括晶片接腳(chip pin)的電路板上具有多個DRAM晶片以能夠與電腦母板(computer motherboard)達成連接的模組。DDR DIMM的所述兩個記憶體通道有效地彼此獨立地工作。
儘管具有較DDR4窄的記憶體通道,然而新型DDR介面每一記憶體通道具有為32位元的資料寬度,且每一記憶體通道具有被配置成儲存及傳送資料的八個資料裝置(例如,4位元資料晶片)。此新型DDR介面亦每一記憶體通道具有為四位元的ECC寬度,且每一記憶體通道具有一個4位元ECC晶片。因此,為了對僅具有DDR4的記憶體通道寬度的一半進行補償,此新型DDR介面具有為DDR4的叢發長度的兩倍的叢發長度。由於此新型DDR介面具有兩個記憶體通道、每一記憶體通道具有專用於儲存資料的八個4位元資料晶片,因此每一叢發總共將有六十四位元的記憶體資料。
此外,與每一記憶體通道具有兩個ECC晶片的DDR4不同,此新型DDR介面可每一記憶體通道具有單個ECC晶片、或甚至每一DIMM具有單個ECC晶片,以保護用於儲存資料的所述16個資料晶片。新型DDR介面可因此相較於DDR4而言具有減少的ECC製造費用(overhead)。因此,若新型DDR介面每一記憶體通道使用一個ECC晶片,則對於每一叢發將存在與所述兩個4位元ECC晶片對應的八個位元的ECC資料,DIMM的所述兩個記憶體通道中的每一者中存在一個ECC晶片。因此,該新型DDR介面將對每一叢發傳輸72個位元的資料。
由於系統ECC製造費用隨著資料寬度的對應減小而增加,因此可能難以使用當前的DDR4技術來維持DDR可靠性、可用性、及可服務性(reliability, availability, and serviceability,RAS)。此外,每一DIMM記憶體通道的數目的增加使得晶片刪除技術需要額外的ECC製造費用。
因此,提供錯誤更正及資料恢復的新穎方法及提供DRAM DIMM可為有用的,所述DRAM DIMM能夠在無記憶體控制器協助的條件下在內部更正某些類型的記憶體錯誤,且此DRAM DIMM能夠指示記憶體控制器協助對DRAM所不能夠在內部更正的其他類型的錯誤進行記憶體更正。
本發明的實施例的態樣是有關於一種使用DRAM內錯誤更正碼(in-DRAM ECC)來達成錯誤更正的新型DDR介面。
根據本發明的實施例,提供一種更正使用雙倍資料速率(DDR)介面之動態隨機存取記憶體模組(DRAM)的記憶體錯誤的方法,所述方法包括:與記憶體控制器進行包括多個叢發的記憶體事務,以自所述DRAM的資料晶片發送資料至所述記憶體控制器;使用所述DRAM的ECC晶片來偵測一或多個錯誤;使用所述DRAM的所述ECC晶片來確定具有所述錯誤的所述叢發的數目;判斷具有所述錯誤的所述叢發的所述數目是否大於臨界數目;確定所述錯誤的類型;以及基於所述錯誤的所述所確定類型來指示所述記憶體控制器,其中所述DRAM每一記憶體通道包括單個ECC晶片。
使用所述DRAM的所述ECC晶片來偵測所述一或多個錯誤可包括使用所述ECC晶片對所述叢發中的每一者執行奇偶檢驗。
所述方法可更包括:當具有錯誤的所述叢發的所述數目不大於所述臨界數目時,指示所述記憶體控制器重試自所述DRAM進行記憶體讀取。
所述方法可更包括當所述記憶體控制器重試所述記憶體讀取時偵測額外的錯誤;以及判斷所述額外的錯誤是否具有與所述所偵測的一或多個錯誤相同的錯誤圖案。
所述方法可更包括當確定所述額外的錯誤具有與所述所偵測的一或多個錯誤不同的錯誤圖案時,指示所述記憶體控制器再次重試自所述DRAM進行記憶體讀取。
所述方法可更包括:當確定所述額外的錯誤具有與所述所偵測的一或多個錯誤相同的錯誤圖案時,辨識出硬錯誤(hard error);指示所述記憶體控制器協助所述DRAM進行錯誤更正;以及記錄所述錯誤的位址。
所述方法可更包括:當具有所述錯誤的所述叢發的所述數目大於所述臨界數目時,判斷所述一或多個錯誤是否對應於同一晶片的同一接腳。
所述方法可更包括:當確定所述一或多個錯誤對應於所述DRAM的同一晶片的同一接腳時,確定所述錯誤對應於DQ故障;以及當確定所述一或多個錯誤不對應於同一晶片的同一接腳時,確定所述一或多個錯誤對應於晶片故障。
所述指示所述記憶體控制器可包括當所述一或多個錯誤對應於所述DQ故障或對應於所述晶片故障時,指示所述記憶體控制器協助進行晶片刪除偵測。
所述方法可更包括:當具有所述錯誤的所述叢發的所述數目大於所述臨界數目時,判斷所述一或多個錯誤是否對應於所述DRAM的多於一個晶片;當確定所述一或多個錯誤對應於所述DRAM的同一晶片時,將所述DRAM的對應晶片標記為被抹除;以及當確定所述一或多個錯誤對應於所述DRAM的多於一個晶片時,辨識出嚴重錯誤。
所述方法可更包括:當具有所述錯誤的所述叢發的所述數目大於所述臨界數目時,判斷所述DRAM的另一晶片是否此前已被抹除;以及當所述DRAM的所述另一晶片此前已被抹除時,辨識出嚴重錯誤。
根據本發明的另一實施例,提供一種被配置成經由雙倍資料速率(DDR)介面而與記憶體控制器進行通訊的動態隨機存取記憶體模組(DRAM),所述DRAM包括:兩個記憶體通道,所述記憶體通道中的每一者包括:多個資料晶片,被配置成在上面儲存資料,且被配置成在與單個記憶體事務對應的多個叢發中的每一叢發期間將所述資料遞送至所述記憶體控制器一次;以及單個錯誤更正碼(ECC)晶片,被配置成確定具有與所述資料晶片中的一或多者對應的記憶體錯誤的所述多個叢發的數目。
所述ECC晶片可被配置成偵測錯誤,且可被配置成將所述所偵測錯誤的類型確定為DQ故障、晶片故障、軟錯誤(soft error)、或硬錯誤中的一種。
所述ECC晶片可被配置成指示所述記憶體控制器依據所述所偵測錯誤的所述所確定類型來協助進行晶片刪除偵測或協助進行錯誤更正。
所述ECC晶片可被配置成當所述ECC晶片已偵測到錯誤時向所述記憶體控制器發出命令,以使所述記憶體控制器執行所述ECC晶片的資訊讀出。
所述DRAM可更包括耦合至所述ECC晶片的單個接腳,所述單個接腳被配置成在所述記憶體事務期間在所述ECC晶片已偵測到錯誤時利用1位元ECC旗標警示所述記憶體控制器。
所述資料晶片及所述ECC晶片可被配置成在每一記憶體事務期間將除所述多個叢發之外的額外叢發遞送至所述記憶體控制器,以將所述ECC晶片的讀出資訊提供至所述記憶體控制器。
根據本發明的另一實施例,提供一種記憶體系統,所述記憶體系統包括:記憶體控制器;以及動態隨機存取記憶體模組(DRAM),包括資料晶片及錯誤更正碼(ECC)晶片,其中所述ECC晶片中的每一者被配置成更正所述DRAM的對應記憶體通道的某些錯誤,且其中所述記憶體控制器被配置成協助所述ECC晶片更正所述ECC晶片所不能夠更正的其他錯誤。
所述ECC晶片中的每一者可包括用於在偵測到錯誤時向所述記憶體控制器發送1位元ECC旗標的接腳。
所述DRAM可包括多個記憶體通道,且所述DRAM的每一記憶體通道可包括所述ECC晶片中的單個錯誤更正碼晶片。
藉由參照以下對實施例的詳細說明及附圖,可更易於理解本發明概念的特徵及達成該些特徵的方法。在下文中,將參照附圖來更詳細地闡述示例性實施例,在所有附圖中相同的參考號碼指代相同的元件。然而,本發明可被實施為各種不同的形式,且不應被視為僅限於本文中所說明的實施例。確切而言,提供該些實施例作為實例是為了使此揭露內容將透徹及完整,並將向熟習此項技術者充分傳達本發明的態樣及特徵。因此,可不再闡述對於此項技術中具有通常知識者全面理解本發明的態樣及特徵而言不必要的過程、元件、及技術。除非另外注明,否則在所有附圖及書面說明通篇中,相同的參考編號表示相同的元件,且因此將不再對其予以贅述。在圖式中,為清晰起見,可誇大元件、層、及區的相對大小。
應理解,儘管本文中可能使用用語「第一(first)」、「第二(second)」、「第三(third)」等來闡述各種元件、組件、區、層、及/或區段,然而該些元件、組件、區、層、及/或區段不應受該些用語限制。該些用語用於區分各個元件、組件、區、層、或區段。因此,在不背離本發明的精神及範圍的條件下,可將以下所述的第一元件、組件、區、層、或區段稱為第二元件、組件、區、層、或區段。
為易於闡釋,本文中可能使用例如「在…之下(beneath)」、「在…下面(below)」、「下方的(lower)」、「在…以下(under)」、「在…之上(above)」、「上方的(upper)」等空間相對性用語來闡述圖中所示的一個元件或特徵與另一(其他)元件或特徵的關係。應理解,所述空間相對性用語旨在除圖中所繪示的定向以外亦囊括裝置在使用或操作中的不同定向。舉例而言,若圖中裝置被翻轉,則被闡述為在其他元件或特徵「下面」或「之下」或者「以下」的元件此時將被定向為在其他元件或特徵「之上」。因此,實例性用語「在…下面」及「在…以下」可囊括上方及下方兩種定向。所述裝置亦可具有其他定向(例如,旋轉90度或處於其他定向),且本文中所用的空間相對性描述語應相應地進行解釋。
應理解,當稱元件、層、區、或組件位於另一元件、層、區、或組件「上(on)」、「連接至(connected to)」或「耦接至(coupled to)」另一元件、層、區、或組件時,所述元件、層、區、或組件可直接位於所述另一元件、層、區、或組件上、直接連接至或直接耦接至所述另一元件、層、區、或組件,抑或可存在一或多個中間元件、層、區、或組件。另外,亦應理解,當稱元件或層位於兩個元件或層「之間(between)」時,所述元件或層可為所述兩個元件或層之間的唯一元件或層,抑或亦可存在一或多個中間元件或層。
在以下實例中,x軸、y軸、及z軸並非僅限於直角座標系的三個軸,而是可以更寬泛的意義進行解釋。舉例而言,x軸、y軸、及z軸可彼此垂直,或可代表彼此不垂直的不同的方向。
本文中所用的術語僅是為了闡述具體實施例,而非旨在限制本發明。除非上下文中清楚地另外指明,否則本文所用的單數形式「一(a及an)」旨在亦包含複數形式。更應理解,當在本說明書中使用用語「包括(comprises/comprising)」、及「包含(includes/including)」時,是指明所陳述特徵、整數、步驟、操作、元件、及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、元件、組件及/或其群組的存在或增添。本文中所用用語「及/或」包括相關聯所列項其中一或多個項的任意及全部組合。當例如「…中的至少一者(at least one of)」等表達出現在一系列元件之前時是修飾整個系列的元件且並非修飾所述系列中的個別元件。
本文所用用語「實質上(substantially)」、「大約(about)」及類似用語用作近似值用語、而並非作為程度用語,並且旨在慮及此項技術中具有通常知識者將知的量測值或計算值的固有偏差。此外,在闡述本發明的實施例時使用「可(may)」是指代「本發明的一或多個實施例」。本文所用用語「使用(use)」、「正使用(using)」、及「被使用(used)」可視為分別與用語「利用(utilize)」、「正利用(utilizing)」、及「被利用(utilized)」同義。此外,用語「示例性(exemplary)」旨在指代實例或說明。
當可以不同的方式實作某一實施例時,可與所述次序不同地執行一特定過程次序。舉例而言,可實質上同時執行或以與所述次序相反的次序執行兩個連續的所述過程。
根據本文所述本發明的實施例的電子裝置或電裝置及/或任何其他相關裝置或組件可利用任何適合的硬體、韌體(例如,應用專用積體電路(application-specific integrated circuit))、軟體、或軟體、韌體、及硬體的組合來實作。舉例而言,可將該些裝置中的各種組件形成於一個積體電路(IC)晶片上或單獨的積體電路晶片上。此外,可將該些裝置的各種組件實作於撓性印刷電路膜、膠帶載體封裝(tape carrier package,TCP)、印刷電路板(printed circuit board,PCB)上、或形成於一個基板上。此外,該些裝置的各種組件可為在一或多個計算裝置中由一或多個處理器運行、執行電腦程式指令並與用於執行本文所述各種功能性的其他系統組件進行交互的程序或執行緒。電腦程式指令儲存於可在使用例如(舉例而言,隨機存取記憶體(random access memory,RAM)等)標準記憶體裝置的計算裝置中實作的記憶體中。電腦程式指令亦可儲存於例如(舉例而言,光碟唯讀記憶體(CD-ROM)、快閃隨身碟(flash drive)或類似元件等)其他非暫時性電腦可讀媒體中。此外,熟習此項技術者應知,在不背離本發明示例性實施例的精神及範圍的條件下,可將各種計算裝置的功能性組合或整合成單一的計算裝置,或者可使一特定計算裝置的功能性分佈在一或多個其他計算裝置上。
除非另外定義,否則本文所用的全部用語(包括技術及科學用語)的含義皆與本發明所屬技術領域中具有通常知識者所通常理解的含義相同。更應理解,用語(例如在常用字典中所定義的用語)應被解釋為具有與其在相關技術的上下文及/或本說明書中的含義一致的含義,且除非本文中進行明確定義,否則不應將其解釋為具有理想化或過於正式的意義。
以下參照圖1、圖2、及圖3所述的本發明的實施例能夠提供基礎的晶片刪除。儘管缺少與DDR4的晶片刪除機制相同的覆蓋率(coverage)、且每一記憶體通道僅具有一個ECC晶片,然而所述新型DDR介面仍能夠提供單個晶粒/晶片更正。另外,以下所述機制能夠使用自ECC晶片提供的ECC資訊在資料晶片出現故障時進行辨識。
圖1是繪示根據本發明實施例的用於DDR介面的錯誤更正機制的方塊圖。本實施例每一記憶體事務使用十六個叢發,且能夠使用DRAM內ECC來在多個叢發內保護一個資料晶片中的資料。本實施例亦使得DRAM DIMM能夠使用系統/記憶體控制器ECC、藉由使得記憶體控制器能夠當DRAM內ECC確定已出現系統ECC錯誤時讀出所述DRAM內ECC的資訊,以在一或多個叢發內保護來自多個晶片的資料。
如可在圖1中看出,本發明的實施例的系統100包括記憶體控制器110,記憶體控制器110內儲存有DRAM協助錯誤更正碼(DAECC)引擎120。記憶體控制器110能夠往來於雙倍資料速率同步動態隨機存取記憶體雙列直插記憶體模組(double date rate synchronous dynamic random-access memory dual in-line memory module)(DDR DIMM)/DRAM 160的各種晶片140a及140b傳送資料。在圖1中,示出DRAM 160的一個記憶體通道150。記憶體控制器110藉由正常的讀取過程及寫入過程進行用於與DRAM 160交換「正常的」資料170的記憶體事務130。在本實施例中,DRAM 160的每一晶片140a及140b經由所述晶片的四個接腳提供四個位元的資訊。
DRAM 160的每一記憶體通道150具有用於接收、儲存、及傳輸資料的八個4位元資料晶片(例如,八個資料裝置)140a。與DIMM/DRAM的每一記憶體通道使用兩個ECC晶片的DDR4不同,本實施例的DRAM 160每一記憶體通道150具有用於將ECC資料傳送至記憶體控制器110的單個4位元ECC晶片(例如,一個奇偶校驗裝置、或奇偶校驗晶片)140b。儘管每一記憶體通道150僅具有單個ECC晶片140b,然而本實施例的DRAM 160能夠提供以下將進一步論述的系統內錯誤更正(in-system error correction)及基礎晶片刪除能力(basic chip-kill capability)。
在本實施例中,DRAM 160使用叢發與記憶體控制器110進行記憶體事務130,藉此DRAM 160會重複地傳輸資料,而不再進行原本在單獨的事務中傳輸每一資料所通常需要進行的其他步驟。因此,儘管僅在特定條件下持續有限的時間週期,然而DRAM 160能夠較不存在叢發時更快地傳送資料。
為對DRAM 160的較窄的記憶體通道寬度進行補償,DRAM 160具有為16的叢發長度,此為與DDR4一起使用的DIMM的叢發長度的兩倍,所述與DDR4一起使用的DIMM具有為8的叢發長度。亦即,為對所述兩個記憶體通道150中的每一者具有與DD4一起使用的記憶體通道的資料寬度的僅一半進行補償,DRAM 160相較於DDR4而言能夠對每一記憶體事務130在內部預取所述4位元晶片140a及140b中的每一者上所儲存的資料的叢發數目的兩倍。
因此,對於每一叢發,每一記憶體通道150發送36個位元(即,對於九個晶片140a及140b中的每一者,每一晶片具有四個位元),每一記憶體通道150的資料寬度為32位元,且每一記憶體通道150的ECC寬度為四位元。此對應於每一通道每一記憶體事務130的總共576個位元(即,每一叢發的36位元乘以每一記憶體事務130的十六個叢發),整個資料區塊為512位元,且其餘64個位元對應於記憶體通道150的ECC晶片140b的ECC資料。
另外,與DDR4不同,本實施例的系統100能夠在無記憶體控制器110協助的條件下在DRAM 160內達成錯誤更正。DRAM 160的DRAM內ECC在不與記憶體控制器110通訊的條件下執行內部錯誤更正以使得資料能夠在多個叢發內在資料晶片140a中的一者中得到保護,同時記憶體控制器協助錯誤更正使得資料能夠在一或多個叢發內在多個資料晶片140a內得到保護。因此,藉由使用記憶體控制器110的ECC及自DRAM 160的DRAM內ECC在內部提供的資訊,系統100能夠以記憶體控制器110與DRAM 160相結合地工作的方式使用記憶體控制器110及DRAM 160來執行錯誤更正。
對於DRAM中的為128位元的每一群組,藉由使用單個ECC晶片140b在DRAM層階處執行內部錯誤偵測(即,在無記憶體控制器110協助的條件下),DRAM內ECC能夠使用在所述晶片內在內部產生的ECC位元來更正單個位元的錯誤。本實施例不提供相較於DDR4的記憶體應用程式而言在記憶體應用程式方面的任何變化,且不在DRAM 160與記憶體控制器110之間提供不同的介面。因此,藉由提供內部ECC,正常的資料傳送170內不會含有錯誤恢復資訊,且所述錯誤恢復資訊不會被傳達至記憶體控制器110。由ECC晶片140b進行的錯誤更正將因此不會影響與記憶體控制器110進行的記憶體事務130的速度或效能。
然而,某些類型的錯誤是不能夠僅藉由ECC晶片140b來更正的。當記憶體控制器110偵測到資料中的錯誤時(例如,當DRAM 160向記憶體控制器110指示存在錯誤時),記憶體控制器110僅在此時向DRAM 160發出用以試圖更正錯誤的某些命令。亦即,記憶體控制器110將向DIMM發送專門命令且僅當發生系統/記憶體控制器ECC錯誤時自DRAM 160接收DRAM內ECC資訊讀出180中所含有的資訊。此後,記憶體控制器110將確定對應記憶體通道150的所述八個資料晶片140a中的哪一者造成了所偵測錯誤。以下參照圖7A至圖7B來進一步闡述被記憶體控制器110用來定位故障資料晶片的方法。
圖2是繪示根據本發明另一實施例的用於DDR介面的錯誤更正機制的方塊圖。與此前所述實施例的錯誤更正機制相同,本實施例每一記憶體事務進行十六個叢發。相似地,記憶體控制器210中儲存有DAECC引擎220,且DRAM 260的每一記憶體通道250具有用於交換正常的資料270的八個資料晶片240a及一個ECC晶片240b。然而,與前一實施例不同,DRAM 260藉由經由額外的接腳向記憶體控制器210發送1位元ECC旗標(flag)來向記憶體控制器210警示ECC錯誤。
參照圖2,本實施例的系統200相似於參照圖1所述的實施例的系統100。然而本實施例的DRAM/DDR DIMM 260實作單個額外的接腳290以使得DRAM 260能夠容易地向記憶體控制器210遞送ECC資訊。與前一實施例不同,DRAM 260內的不能夠更正的錯誤總總是會立即暴露至記憶體控制器210,乃因DRAM 260能夠當在包括十六個叢發的記憶體事務230期間出現錯誤時傳輸由單個1位元ECC旗標組成的警示。因此,當出現錯誤時,資訊被自晶片240a及240b的DRAM內ECC晶片240b提供至記憶體控制器210。
因此,當出現與所述八個資料晶片240a中的一者對應的記憶體錯誤時,則將使用本實施例的ECC晶片240b的接腳290來將1位元ECC旗標設定成向記憶體控制器210警示已出現錯誤。當經由接腳290偵測到1位元ECC旗標時,記憶體控制器210將發出專門命令以自DRAM 260獲得與所述錯誤有關的更詳細的資訊。記憶體控制器210可以與參照圖1所述的實施例所示系統100相似的方式使用DRAM內ECC資訊讀出280而自DRAM 260獲得資訊。
與參照圖1所述的系統100的實施例不同,DRAM 260與記憶體控制器210之間的DDR介面是自DDR4修改而成。然而,效能不受負面影響,乃因1位元ECC旗標經由接腳290而與其他576個位元的資料一起被傳送,且因此不會增加每一記憶體事務230的時間量。
圖3是繪示根據本發明又一實施例的用於DDR介面的錯誤更正機制的方塊圖。
參照圖3,相較於分別參照圖1及圖2所述的實施例的系統100及200,本實施例所具有的記憶體控制器310中儲存有DAECC引擎320,且DRAM 360的每一記憶體通道350具有用於交換正常的資料370的八個資料晶片340a及一個ECC晶片340b。然而,本實施例的系統300的每一記憶體事務330具有額外的叢發,此使得總叢發長度為十七個叢發。然而,在記憶體事務330的第十七叢發期間,在DRAM內錯誤更正期間所確定的ECC資訊在DRAM內ECC資訊讀出380中自DRAM/DDR DIMM 360傳送至記憶體控制器310。因此,記憶體控制器310能夠以降低與每一記憶體事務330的額外叢發相關聯的效能為代價來辨識每一記憶體事務330中的DRAM內ECC資訊。
因此,與圖1所示實施例的其中記憶體控制器110僅當出現系統/記憶體控制器ECC錯誤(例如,DRAM 160的ECC晶片140b所不能夠更正的錯誤)時進行DRAM內ECC資訊的資訊讀出180的系統100不同,本實施例的記憶體控制器310藉由額外的第十七叢發而在每一記憶體事務330中執行DRAM內ECC資訊讀出380。另外,記憶體控制器310將總是執行與在系統層階中(例如,在DRAM 360中)由DRAM內ECC執行的用以更正錯誤的操作相同的操作。
儘管以上所述實施例闡述可用於使用4位元DRAM晶片的新型窄DDR介面的DAECC機制,然而所述DAECC機制可結合使用所述新型DDR介面的其他DRAM架構來使用,或者若DRAM內ECC是在所述DRAM晶片內執行,則可在DDR4類介面中使用。
舉例而言,圖4示出DAECC引擎420可結合具有8位元DRAM晶片440a及440b的新型窄DDR介面來使用。在此實施例中,每一通道450具有用以儲存資料的四個8位元DRAM晶片440a、及用以儲存系統ECC的一個8位元DRAM晶片440b。因此,本實施例中的系統ECC製造費用為1/4或25%。
另舉一例,圖5示出DAECC引擎可用於具有4位元DRAM晶片540a及540b的DDR介面中。在本實施例中,每一通道550具有用以儲存資料的十六個4位元DRAM晶片540a、及用以儲存系統ECC的一個4位元DRAM晶片540b。在此實施例中,系統ECC製造費用因此為1/16或6.25%,此為DDR4標準中的當前ECC製造費用的一半。
再舉一例,圖6示出DAECC引擎可用於具有8位元DRAM晶片640a及640b的DDR4介面中。在此實施例中,每一通道650具有用於儲存資料的八個8位元DRAM晶片640a、及用於儲存系統ECC的一個8位元DRAM晶片640b。因此,系統ECC製造費用為1/8或12.5%。
綜上所述,以上所述實施例的DAECC是一種用於使用單個額外的ECC DRAM晶片、及用於使用DRAM內ECC資訊來對具有任意種類的組織方式的記憶體系統提供基礎晶片刪除覆蓋的通用機制。
圖7A至圖7B是繪示根據本發明一或多個實施例的使用DAECC機制來偵測錯誤、確定所述錯誤的類型、及處理所述錯誤的流程圖。
可藉由分別參照圖1、圖2、圖3、圖4、圖5、及圖6所述的系統中的任一者來實作以下所述流程圖。當記憶體控制器意識到DRAM中出現錯誤時,所述記憶體控制器可設法確定錯誤圖案。根據所述錯誤圖案,記憶體控制器將能夠判斷所述錯誤是否對應於隨機錯誤(非永久性錯誤)、永久性錯誤、或晶片刪除錯誤(chipkill error)。在確定錯誤的類型時,所述系統可執行錯誤更正。
不同錯誤類型中的一種錯誤類型被稱作晶片刪除錯誤。晶片刪除錯誤一般對應於單個晶片/晶粒或晶片超過位元錯誤臨界值的永久性故障。記憶體通道的單個4位元資料晶片的故障可能使與所述資料晶片對應的數目較大的所述四個位元在記憶體事務期間在大量叢發中提供錯誤資料(例如,與所述資料晶片對應的4位元符號中的大量錯誤)。因此,本發明的實施例可當單個晶片出現故障時進行偵測,且此後可在繼續提供單個晶片更正的同時停用所述晶片。亦即,本發明的實施例可將與單個晶片對應的4個重複錯誤位元編組成一個符號,且可使用基於符號的機制(例如,奇偶校驗)來恢復與有故障的/失效的/被抹除的晶片對應的資料。
另一錯誤類型被稱作DQ錯誤。如以上所提及,在所述實施例的DRAM中,每一晶片具有4個資料接腳,每一接腳用於輸出儲存於所述晶片上的所述四個位元中的一者。每一接腳可被稱作DQ。若單個晶片的所述接腳中的一者出現故障(與整個晶片出現故障相對),則在所述叢發中的每一者中自此接腳提供的資料可能為錯誤的。因此,接腳故障可被稱作DQ錯誤。
所述實施例可使用與每一晶片交織的簡單奇偶校驗演算法。舉例而言,所述實施例可使用獨立磁碟冗餘陣列(redundant array of independent disk,RAID)配置(例如,與RAID 4的組織方式相似的組織方式)。RAID 4是一種使用專用奇偶校驗磁碟且跨越多個磁碟(例如,晶片)進行區塊層階分段(block-level striping)的RAID配置。磁碟分段(disk striping)包括將資料群組劃分成多個區塊並使所述區塊跨越兩個或更多個儲存裝置(例如,資料晶片)擴展。
因此,儲存於ECC晶片上的資料將對應於四個奇偶校驗位元,其中來自所述八個資料晶片中的單個資料晶片的每一位元作為由ECC晶片儲存的不同的奇偶校驗位元,且其中來自所有資料晶片的對應接腳的一個位元作為所述奇偶校驗位元中的一者(例如,ECC晶片的單個ECC群組)。若主機記憶體控制器使用資料及ECC資訊而偵測到與單個接腳對應的反復出現的單個1位元錯誤,則所述主機記憶體控制器將自所述四個可能位元位置中的同一位元位置辨識出所述錯誤(即,ECC晶片的同一奇偶校驗位元將在若干叢發中出現錯誤)。如以下所將闡述,可使用來自所偵測錯誤圖案的資訊來確定錯誤所在(例如,所述八個資料晶片中的哪一者具有造成所述錯誤的接腳)。
參照圖7A,在S701處,偵測錯誤。可藉由以上參照圖1、圖2、及圖3所述的錯誤偵測方法中的任一者(例如,由記憶體控制器210經由額外的接腳290偵測ECC旗標、或由記憶體控制器310在記憶體事務330的第17叢發期間在DRAM內ECC資訊讀出380中偵測錯誤)來偵測所述錯誤,及/或藉由在主機記憶體控制器中執行的系統ECC(例如,RAID類奇偶校驗)來偵測所述錯誤。
當系統確定存在來自S701中的DRAM/DDR DIMM的某些錯誤時,在S702處確定多少叢發具有所述錯誤。此可藉由對記憶體事務的每一叢發進行奇偶校驗來執行。由於不同類型的故障具有不同的錯誤圖案、臨界值、或參考數目,因此可使用「n」來對所偵測錯誤的類型進行分類。舉例而言,儘管ECC錯誤將處於ECC晶片的同一接腳位置,然而DQ故障將在記憶體事務的諸多叢發或所有叢發中僅具有1位元奇偶校驗錯誤。然而,晶片故障將可能在諸多叢發或所有叢發中在多個位元中具有奇偶校驗錯誤(例如,4位元奇偶校驗錯誤)。另外,隨機錯誤可對應於少量錯誤,以使在少量叢發中將存在非常少的錯誤位元(例如,在單個叢發中存在單個1位元錯誤)。
因此,若所偵測錯誤的數目大於臨界值,則可預測已出現DQ故障或晶片故障。然而,若所偵測錯誤的數目小於或等於臨界值,則可預測已自一或多個個別晶片出現一或多個隨機錯誤,所述一或多個隨機錯誤是DRAM內ECC所不能夠更正的且可能需要記憶體控制器協助進行更正。
因此,在S702處,可判斷給定記憶體事務的具有錯誤的叢發的數目是否超過臨界值「n」。依據是否滿足所述臨界值,所述邏輯流程進行至S703或S710。亦即,若確定充足數目的叢發具有奇偶校驗錯誤(例如,若給定記憶體事務中具有錯誤的叢發的數目高於臨界數目「n」),則更可能已存在DQ故障或晶片故障,且所述系統將轉到晶片刪除機制。然而,若具有所偵測錯誤的叢發的數目小於臨界數目「n」(例如,4個叢發或少於4個叢發),則在S701處偵測到的錯誤有可能是來自個別晶片的隨機故障所造成。該些隨機故障是DRAM內ECC所不能夠更正的,但由於所述錯誤將不可能再次出現,因此不使用晶片刪除機制。
應注意,儘管使用為4個叢發的臨界數目作為實例,然而在本發明的其他實施例中可使用不同的數目。此外,所述數目可在其他實施例中進行調整(例如,被調整成對應於特定裝置)。舉例而言,若對應的記憶體裝置具有相對高的裝置錯誤率而使得出現多個隨機錯誤,則可增大所述臨界數目。
在S703處,當在S702處確定出具有奇偶校驗錯誤的叢發的數目大於臨界數目(例如,大於4個叢發)時,則所述系統確定所述八個資料晶片中的一者失效或被抹除,或者確定在所述八個資料晶片中的多於一者中已出現錯誤。
若在S703處確定出此前已對晶片進行抹除或者確定出在所述八個資料晶片中的多於一者中存在錯誤,則系統可在S709處確定已出現嚴重的不能夠更正的錯誤。可由記憶體控制器110、210、310在使用專門命令進行的或在記憶體事務330的第17叢發期間進行的DRAM內ECC資訊讀出180、280、380中偵測具有錯誤的晶片的數目。舉例而言,若晶片因DQ故障、晶片故障、記憶庫故障(bank failure)、或列故障(row failure)而失效,則任意額外的DQ故障或晶片故障均會造成嚴重故障,乃因本實施例的系統每一記憶體通道僅具有單個ECC晶片,且因此將不再具有充足的資源來執行錯誤更正。相似地,若多個晶片具有錯誤,則會出現嚴重故障。
然而,若在S703處確定出未抹除晶片且確定出所偵測錯誤對應於僅單個資料晶片,則過程可移動至S704。舉例而言,若尚未抹除晶片且若所偵測錯誤對應於僅單個晶片,則系統能夠辨識出故障的類型,且記憶體控制器可記錄所述故障類型並可能採取進一步措施來更正所述錯誤。
在S704處,可判斷所偵測錯誤是否出現於同一接腳處。亦即,在S704處,系統判斷對於叢發中的每一者,所偵測錯誤是否出現於同一接腳處。若所有錯誤皆對應於同一接腳,則在S705a處,DRAM內系統(in-DRAM system)可向記憶體控制器進行報告,以使所述記憶體控制器可將錯誤的故障類型記錄為DQ故障。若系統確定出所偵測錯誤並非皆出現於同一接腳處,則在S705b處,DRAM內系統可向記憶體控制器進行報告,以使所述記憶體控制器可將故障類型記錄為晶片故障。
在S706處,在將故障類型記錄為DQ故障或記錄為晶片故障之後,使用記憶體控制器來協助進行晶片刪除偵測。在S706處,記憶體控制器可開始診斷常式(diagnosis routine)以確定如何更正所述錯誤。將參照圖7B來闡述所述診斷常式。
參照圖7B,在S706a處,記憶體控制器已讀出在圖7A所示S703中自DRAM內ECC提供的DRAM內ECC資訊(例如,由ECC晶片提供的ECC位元的DRAM內ECC資訊讀出180、280、或380),使得所述記憶體控制器可此後執行錯誤偵測。此後,在S706b處,記憶體控制器將暫停所有正在進行的記憶體事務。此時,在S706c處,記憶體控制器儲存當前資料(例如,與所述八個4位元資料晶片的當前資料D[511:0]對應的512個位元)。此時,在S706d處,記憶體控制器將與當前資料對應的反向資料(reversed data)(例如,與反向資料D′[511:0]對應的512個位元)寫入至所述八個4位元資料晶片。此時,在S706e處,記憶體控制器再次將資料讀出。此時,在S706f處,記憶體控制器將新讀出的資料與已知的反向資料進行比較以辨識所述錯誤的位置。
參照圖7A,在記憶體控制器在S706處協助進行晶片刪除偵測之後,在S707處,所述記憶體控制器判斷所有所偵測錯誤是否皆對應於單個晶片。若僅單個資料晶片被抹除、或者若偵測到多個DQ錯誤但所述多個DQ錯誤中的所有者皆對應於同一晶片,則在S708處記憶體控制器將會將資料寫回至其餘未被抹除的晶片,且所有後續的記憶體事務將使用簡單奇偶校驗演算法的奇偶校驗位元來恢復與被抹除晶片對應的資料。舉例而言,若記憶體控制器在讀出資料時確定出與資料晶片中的一者對應的多個位元不匹配在S706d處被寫入至所述資料晶片的反向資料的對應位元,則所述記憶體控制器將在S708處將此資料晶片標記為被抹除。然而,若記憶體控制器在讀出資料時確定出僅所述位元中與資料晶片中的一者的一個接腳對應的一個位元不匹配在S706d處被寫入至所述資料晶片的反向資料的對應位元,則所述記憶體控制器將在S708處將所述一個晶片的僅單個接腳標記為被抹除。
然而,若多於一個晶片被標記為被抹除,則在S709處,記憶體控制器將確定已出現嚴重的不能夠更正的錯誤。亦即,若在多於一個晶片中存在錯誤,則DRAM將因未預留額外的晶片而不再具有充足的資源來執行奇偶校驗,且任意額外的晶片錯誤將為不能夠更正的需要置換DRAM的嚴重錯誤。
返回至S702,若確定錯誤的數目低於臨界數目(例如,僅記憶體事務的少量叢發具有錯誤),則在S710處,記憶體控制器藉由自DRAM接收額外的叢發而重試自資料晶片讀取資料。
在S710處重試讀取資料之後,記憶體控制器在S711處判斷是否仍存在所偵測錯誤。若未在S711處偵測到額外的錯誤,則記憶體控制器在S712處確定已出現軟錯誤或暫態錯誤(transient error),且確定無需進行進一步更正。然而,若在S710處重試讀取資料之後在S711處偵測到額外的錯誤,則在S713處判斷所述錯誤是否具有與最初在S701處所偵測的錯誤相同的錯誤圖案。藉由判斷所述錯誤是否具有相同的錯誤圖案,可忽略不匹配的軟錯誤的情形,所述情形即最初在S701處偵測到軟錯誤,且在記憶體控制器在S710處重試讀取所述資料期間偵測到不同的後續軟錯誤。
若在S713處偵測到的錯誤不具有與最初在S701處偵測到的錯誤相同的錯誤圖案,則過程返回至S710,且記憶體控制器再次重試自資料晶片讀取所述資料。因此,若出現依序的且非相同的軟錯誤、進而造成不同的錯誤圖案,則記憶體控制器可能繼續試圖讀取所述資料。然而,若在S713處偵測到的錯誤具有與最初在S701處偵測到的錯誤相同的錯誤圖案,則在S714處確定已出現硬錯誤(非暫態錯誤)。
在S714處確定存在硬錯誤(非暫態錯誤)且假定尚未有晶片被標記為被抹除時,DRAM會在S715處觸發記憶體控制器使用記憶體控制器ECC機制來協助更正所述硬錯誤。記憶體控制器可藉由例如將所述錯誤的當前位址(例如,晶片及接腳位址)與DRAM上的晶片中的一或多者中的錯誤暫存器(error register)中所儲存的錯誤位址進行比較來協助進行錯誤更正。記憶體控制器亦可藉由使用DRAM內ECC資訊來協助進行錯誤更正。舉例而言,若DRAM內ECC資訊指示僅一個晶片具有不能夠更正的DRAM內ECC錯誤,則記憶體控制器可使用ECC晶片來恢復所述錯誤。
在S716處,判斷記憶體控制器是否已成功更正所述硬錯誤。若錯誤更正成功,則在S717處,作業系統(operating system)可記錄錯誤事件,且記憶體控制器可發出用以抹除每一晶片中的DRAM內ECC資訊(例如,晶片錯誤暫存器)的另一專門命令。然而,若錯誤更正不成功(例如,若一個晶片已被移除,且因此系統不再具有ECC能力),則記憶體控制器將在S709處確定已出現嚴重錯誤。
當記憶體控制器在S709處辨識出嚴重的不能夠更正的錯誤時,作業系統可執行系統/應用程式層階錯誤恢復(system/application level error recovery)。舉例而言,作業系統可藉由將頁面的內容重新定位至另一物理頁面來棄用對應的物理頁面,且可將所棄用的頁面放置於不應隨後由虛擬記憶體系統指配的物理頁面清單上。隨著所棄用的物理頁面的數目的增大(例如,隨著不能夠更正的錯誤的數目的增大),系統的有效記憶體能力降低。
因此,本發明的實施例提供以下一種架構:所述架構能夠提供與DDR4所提供的基礎晶片刪除RAS特徵相同的基礎晶片刪除RAS特徵,同時為該些特徵提供降低的(例如,最低的)ECC晶片製造費用(即,每一記憶體通道一個ECC晶片)、減小的(例如,最小的)內部預取大小(所述預取大小與DRAM內ECC的大小相同)、及所述DRR介面相較於與DDR4對應的介面而言減少的(例如,最少的)變化。另外,本發明的實施例為具有較DDR4窄的通道寬度的新型DDR介面提供12.5%的儲存製造費用,支援基礎晶片刪除能力及系統ECC,且支援記憶體控制器協助進行錯誤偵測機制。
此外,本發明的實施例能夠提供基礎晶片刪除能力及系統ECC,儘管每一記憶體通道僅具有一個ECC晶片。本發明的實施例亦提供一種使得記憶體控制器能夠在DRAM裝置的協助下辨識故障晶片的機制,提供一種用以讀出DRAM內ECC資訊(例如,使用自DRAM讀出的額外的叢發長度、額外的接腳、或暫存器)的機制,提供一種用以辨識錯誤類型(例如,是軟錯誤還是硬錯誤)的重試機制,並使用個別記憶體通道或鎖步記憶體通道(lock-step memory channel)且使用SEC-DEC或晶片刪除ECC來提供不同的ECC能力。
前述者是對示例性實施例的說明,且不應被視為對示例性實施例進行限制。儘管已闡述了一些示例性實施例,然而熟習此項技術者將易於領會,可在不實際上背離示例性實施例的新穎教示內容及優點的條件下在示例性實施例中作出諸多潤飾。因此,所有此類潤飾皆旨在包含於如在申請專利範圍中所界定的示例性實施例的範圍內。在申請專利範圍中,方式加功能條款旨在涵蓋本文所述的用於執行所敍述功能的結構、且不僅涵蓋結構性等效形式而且亦涵蓋等效結構。因此,應理解,前述者是對示例性實施例的說明且不應被視為僅限於所揭露的具體實施例,且對所揭露示例性實施例所作的潤飾以及其他示例性實施例皆旨在包含於隨附申請專利範圍的範圍內。本發明概念是由以下申請專利範圍所界定,其中在本發明概念中欲包含申請專利範圍的等效範圍。
100、200、300‧‧‧系統
110、210、310‧‧‧記憶體控制器
120、220、320、420‧‧‧DRAM協助錯誤更正碼(DAECC)引擎
130、230、330‧‧‧記憶體事務
140a‧‧‧晶片/4位元資料晶片/4位元晶片/資料晶片
140b‧‧‧晶片/ECC)晶片/4位元晶片
150、250、350‧‧‧記憶體通道
160‧‧‧DDR DIMM/DRAM
170‧‧‧交換「正常的」資料/正常的資料傳送
180‧‧‧資訊讀出/DRAM內ECC資訊讀出
240a‧‧‧晶片/資料晶片
240b‧‧‧晶片/ECC晶片
270、370‧‧‧交換正常的資料
280、380‧‧‧DRAM內ECC資訊讀出
290‧‧‧接腳
340a‧‧‧資料晶片
340b‧‧‧ECC晶片
440a、440b、640a、640b‧‧‧8位元DRAM晶片
450、550、650‧‧‧通道
540a、540b‧‧‧4位元DRAM晶片
S701、S702、S703、S704、S705a、S705b、S706、S707、S708、S709、S710、S711、S712、S713、S714、S715、S716、S717、S706a、S706b、S706c、S706d、S706e、S706f‧‧‧步驟
參照說明書、申請專利範圍、及附圖,將領會且理解本發明的該些及其他態樣,在附圖中: 圖1是繪示根據本發明實施例的用於DDR介面的錯誤更正機制的方塊圖。 圖2是繪示根據本發明另一實施例的用於DDR介面的錯誤更正機制的方塊圖。 圖3是繪示根據本發明又一實施例的用於DDR介面的錯誤更正機制的方塊圖。 圖4是繪示根據本發明又一實施例的用於DDR介面的錯誤更正機制的方塊圖。 圖5是繪示根據本發明又一實施例的用於DDR介面的錯誤更正機制的方塊圖。 圖6是繪示根據本發明又一實施例的用於DDR介面的錯誤更正機制的方塊圖。 圖7A至圖7B是繪示根據本發明一或多個實施例的使用DRAM協助錯誤更正碼(DRAM Assist Error Correction Code,DAECC)機制來偵測錯誤、確定所述錯誤的類型、及處理所述錯誤的流程圖。

Claims (20)

  1. 一種更正使用雙倍資料速率(DDR)介面之動態隨機存取記憶體模組(DRAM)的記憶體錯誤的方法,所述方法包括: 與記憶體控制器進行包括多個叢發的記憶體事務,以自所述動態隨機存取記憶體模組的資料晶片發送資料至所述記憶體控制器; 使用所述動態隨機存取記憶體模組的錯誤更正碼晶片來偵測一或多個錯誤; 使用所述動態隨機存取記憶體模組的所述錯誤更正碼晶片來確定具有所述錯誤的所述叢發的數目; 判斷具有所述錯誤的所述叢發的所述數目是否大於臨界數目; 確定所述錯誤的類型;以及 基於所述錯誤的所述所確定類型來指示所述記憶體控制器, 其中所述動態隨機存取記憶體模組每一記憶體通道包括單個所述錯誤更正碼晶片。
  2. 如申請專利範圍第1項所述的方法,其中使用所述動態隨機存取記憶體模組的所述錯誤更正碼晶片來偵測所述一或多個錯誤包括使用所述錯誤更正碼晶片對所述叢發中的每一者執行奇偶檢驗。
  3. 如申請專利範圍第1項所述的方法,更包括:當具有所述錯誤的所述叢發的所述數目不大於所述臨界數目時,指示所述記憶體控制器重試自所述動態隨機存取記憶體模組進行記憶體讀取。
  4. 如申請專利範圍第3項所述的方法,更包括當所述記憶體控制器重試所述記憶體讀取時偵測額外的錯誤;以及 判斷所述額外的錯誤是否具有與所述所偵測的一或多個錯誤相同的錯誤圖案。
  5. 如申請專利範圍第4項所述的方法,更包括當確定所述額外的錯誤具有與所述所偵測的一或多個錯誤不同的錯誤圖案時,指示所述記憶體控制器再次重試自所述動態隨機存取記憶體模組進行記憶體讀取。
  6. 如申請專利範圍第4項所述的方法,更包括: 當確定所述額外的錯誤具有與所述所偵測的一或多個錯誤相同的錯誤圖案時,辨識出硬錯誤; 指示所述記憶體控制器協助所述動態隨機存取記憶體模組進行錯誤更正;以及 記錄所述錯誤的位址。
  7. 如申請專利範圍第1項所述的方法,更包括:當具有所述錯誤的所述叢發的所述數目大於所述臨界數目時,判斷所述一或多個錯誤是否對應於同一晶片的同一接腳。
  8. 如申請專利範圍第7項所述的方法,更包括:當確定所述一或多個錯誤對應於所述動態隨機存取記憶體模組的同一晶片的同一接腳時,確定所述錯誤對應於DQ故障;以及 當確定所述一或多個錯誤不對應於同一晶片的同一接腳時,確定所述一或多個錯誤對應於晶片故障。
  9. 如申請專利範圍第8項所述的方法,其中所述指示所述記憶體控制器包括當所述一或多個錯誤對應於所述DQ故障或對應於所述晶片故障時,指示所述記憶體控制器協助進行晶片刪除偵測。
  10. 如申請專利範圍第1項所述的方法,更包括:當具有所述錯誤的所述叢發的所述數目大於所述臨界數目時,判斷所述一或多個錯誤是否對應於所述動態隨機存取記憶體模組的多於一個晶片; 當確定所述一或多個錯誤對應於所述動態隨機存取記憶體模組的同一晶片時,將所述動態隨機存取記憶體模組的對應晶片標記為被抹除;以及 當確定所述一或多個錯誤對應於所述動態隨機存取記憶體模組的多於一個晶片時,辨識出嚴重錯誤。
  11. 如申請專利範圍第1項所述的方法,更包括:當具有所述錯誤的所述叢發的所述數目大於所述臨界數目時,判斷所述動態隨機存取記憶體模組的另一晶片是否此前已被抹除;以及 當所述動態隨機存取記憶體模組的所述另一晶片此前已被抹除時,辨識出嚴重錯誤。
  12. 一種被配置成經由雙倍資料速率(DDR)介面而與記憶體控制器進行通訊的動態隨機存取記憶體模組(DRAM),所述動態隨機存取記憶體模組包括: 兩個記憶體通道,所述記憶體通道中的每一者包括: 多個資料晶片,被配置成在上面儲存資料,且被配置成在與單個記憶體事務對應的多個叢發中的每一叢發期間將所述資料遞送至所述記憶體控制器一次;以及 單個錯誤更正碼(ECC)晶片,被配置成確定具有與所述資料晶片中的一或多者對應的記憶體錯誤的所述多個叢發的數目。
  13. 如申請專利範圍第12項所述的動態隨機存取記憶體模組,其中所述錯誤更正碼晶片被配置成偵測錯誤,且被配置成將所述所偵測錯誤的類型確定為DQ故障、晶片故障、軟錯誤、或硬錯誤中的一種。
  14. 如申請專利範圍第13項所述的動態隨機存取記憶體模組,其中所述錯誤更正碼晶片被配置成指示所述記憶體控制器依據所述所偵測錯誤的所述所確定類型來協助進行晶片刪除偵測或協助進行錯誤更正。
  15. 如申請專利範圍第12項所述的動態隨機存取記憶體模組,其中所述錯誤更正碼晶片被配置成當所述錯誤更正碼晶片已偵測到錯誤時向所述記憶體控制器發出命令,以使所述記憶體控制器執行所述錯誤更正碼晶片的資訊讀出。
  16. 如申請專利範圍第12項所述的動態隨機存取記憶體模組,其中所述動態隨機存取記憶體模組更包括耦合至所述錯誤更正碼晶片的單個接腳,所述單個接腳被配置成在所述記憶體事務期間在所述錯誤更正碼晶片已偵測到錯誤時利用1位元錯誤更正碼旗標警示所述記憶體控制器。
  17. 如申請專利範圍第12項所述的動態隨機存取記憶體模組,其中所述資料晶片及所述錯誤更正碼晶片被配置成在每一記憶體事務期間將除所述多個叢發之外的額外叢發遞送至所述記憶體控制器,以將所述錯誤更正碼晶片的讀出資訊提供至所述記憶體控制器。
  18. 一種記憶體系統,包括: 記憶體控制器;以及 動態隨機存取記憶體模組(DRAM),包括資料晶片及錯誤更正碼(ECC)晶片, 其中所述錯誤更正碼晶片中的每一者被配置成更正所述動態隨機存取記憶體模組的對應記憶體通道的某些錯誤,且 其中所述記憶體控制器被配置成協助所述錯誤更正碼晶片更正所述錯誤更正碼晶片所不能夠更正的其他錯誤。
  19. 如申請專利範圍第18項所述的記憶體系統,其中所述錯誤更正碼晶片中的每一者包括用於在偵測到錯誤時向所述記憶體控制器發送1位元錯誤更正碼旗標的接腳。
  20. 如申請專利範圍第18項所述的記憶體系統,其中所述動態隨機存取記憶體模組包括多個記憶體通道,且 其中所述動態隨機存取記憶體模組的每一記憶體通道包括所述錯誤更正碼晶片中的單個錯誤更正碼晶片。
TW106121723A 2016-08-15 2017-06-29 動態隨機存取記憶體的錯誤更正方法 TWI710892B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662375381P 2016-08-15 2016-08-15
US62/375,381 2016-08-15
US15/286,460 2016-10-05
US15/286,460 US10268541B2 (en) 2016-08-15 2016-10-05 DRAM assist error correction mechanism for DDR SDRAM interface

Publications (2)

Publication Number Publication Date
TW201818245A true TW201818245A (zh) 2018-05-16
TWI710892B TWI710892B (zh) 2020-11-21

Family

ID=61159099

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106121723A TWI710892B (zh) 2016-08-15 2017-06-29 動態隨機存取記憶體的錯誤更正方法

Country Status (5)

Country Link
US (5) US10268541B2 (zh)
JP (1) JP6882115B2 (zh)
KR (1) KR102191223B1 (zh)
CN (1) CN107766172B (zh)
TW (1) TWI710892B (zh)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503435B2 (en) * 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
KR20190062908A (ko) * 2017-11-29 2019-06-07 에스케이하이닉스 주식회사 에러 정정 방법 및 칩 킬 감지 방법
US11609816B2 (en) 2018-05-11 2023-03-21 Rambus Inc. Efficient storage of error correcting code information
KR102615443B1 (ko) * 2018-05-25 2023-12-20 에스케이하이닉스 주식회사 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
US10884850B2 (en) * 2018-07-24 2021-01-05 Arm Limited Fault tolerant memory system
US11216333B2 (en) * 2018-10-16 2022-01-04 Micron Technology, Inc. Methods and devices for error correction
CN110727401B (zh) * 2019-09-09 2021-03-02 无锡江南计算技术研究所 一种访存系统
CN110718263B (zh) * 2019-09-09 2021-08-10 无锡江南计算技术研究所 芯片访存通路的高效分段测试系统、方法
CN110781053A (zh) 2019-09-29 2020-02-11 苏州浪潮智能科技有限公司 一种检测内存降级错误的方法和装置
KR20210045073A (ko) 2019-10-16 2021-04-26 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 효율적인 메모리 배치
US11210167B2 (en) 2019-10-28 2021-12-28 Intel Corporation Memory wordline isolation for improvement in reliability, availability, and scalability (RAS)
KR20210051668A (ko) 2019-10-31 2021-05-10 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
KR20210089016A (ko) 2020-01-07 2021-07-15 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템
US11437114B1 (en) * 2020-05-04 2022-09-06 Meta Platforms, Inc. Reduced error correction code for dual channel DDR dynamic random-access memory
CN112115077B (zh) * 2020-08-31 2022-04-19 瑞芯微电子股份有限公司 一种dram内存驱动优化方法和装置
US11923023B2 (en) 2020-08-31 2024-03-05 Micron Technology, Inc. Debug capabilities of a memory system with a pin
US11593197B2 (en) * 2020-12-23 2023-02-28 Samsung Electronics Co., Ltd. Storage device with data quality metric and selectable data recovery scheme
US11409601B1 (en) 2021-01-26 2022-08-09 Micron Technology, Inc. Memory device protection
KR20220143450A (ko) * 2021-04-16 2022-10-25 에스케이하이닉스 주식회사 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법
US12014068B2 (en) * 2021-04-27 2024-06-18 Microchip Technology Inc. System and method for double data rate (DDR) chip-kill recovery
WO2022231681A1 (en) * 2021-04-27 2022-11-03 Microchip Technology Inc. System and method for double data rate (ddr) chip-kill recovery
US11934696B2 (en) 2021-05-18 2024-03-19 Microchip Technology Inc. Machine learning assisted quality of service (QoS) for solid state drives
DE112022001547T5 (de) 2021-06-01 2024-01-11 Microchip Technology Inc. Speicheradressenschutz
KR20230003766A (ko) 2021-06-30 2023-01-06 삼성전자주식회사 메모리 컨트롤러의 구동 방법, 이를 수행하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
JP7178465B1 (ja) * 2021-08-31 2022-11-25 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN117480732A (zh) 2021-09-28 2024-01-30 微芯片技术股份有限公司 具有陷阱块管理的ldpc解码
WO2023106434A1 (ko) * 2021-12-06 2023-06-15 주식회사 딥아이 Ddr sdram 인터페이스를 이용한 dram 지원 에러 정정 방법
CN114049905B (zh) * 2021-12-16 2024-04-09 西安紫光国芯半导体有限公司 非易失三维存储单元、存储方法、芯片组件和电子设备
KR20230095437A (ko) 2021-12-22 2023-06-29 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
CN114464242B (zh) * 2022-01-13 2024-06-14 深圳市金泰克半导体有限公司 一种ddr测试方法、装置、控制器及存储介质
CN114153402B (zh) * 2022-02-09 2022-05-03 阿里云计算有限公司 存储器及其数据读写方法
KR20240007996A (ko) 2022-07-11 2024-01-18 삼성전자주식회사 반도체 메모리 장치 및 메모리 모듈
US20240289212A1 (en) * 2023-02-27 2024-08-29 Google Llc Bit Efficient Memory Error Correcting Coding And Decoding Scheme
US20240330108A1 (en) * 2023-03-28 2024-10-03 Google Llc Memory Device and Module Life Expansion

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59165300A (ja) * 1983-03-10 1984-09-18 Fujitsu Ltd メモリ障害訂正方式
US5631909A (en) * 1995-05-31 1997-05-20 Quantum Corporation Method and apparatus for determining burst errors in an error pattern
US5841782A (en) * 1995-08-22 1998-11-24 Motorola, Inc. System and method for indicating errored messages
US5740188A (en) * 1996-05-29 1998-04-14 Compaq Computer Corporation Error checking and correcting for burst DRAM devices
US6216247B1 (en) 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
US6438560B1 (en) 1999-09-16 2002-08-20 International Business Machines Corporation Reuse of immutable objects during object creation
US6779149B1 (en) * 2000-07-31 2004-08-17 Oak Technology, Inc. Burst error correction on DVD data
JP2003044349A (ja) * 2001-07-30 2003-02-14 Elpida Memory Inc レジスタ及び信号生成方法
US7028213B2 (en) * 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7043679B1 (en) 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
US7080295B2 (en) * 2002-11-01 2006-07-18 Broadcom Corporation Methods and systems for detecting symbol erasures
US7484065B2 (en) * 2004-04-20 2009-01-27 Hewlett-Packard Development Company, L.P. Selective memory allocation
US7509568B2 (en) * 2005-01-11 2009-03-24 International Business Machines Corporation Error type identification circuit for identifying different types of errors in communications devices
US7722081B2 (en) * 2006-05-04 2010-05-25 Conax Florida Corporation Combat vehicle restraint system
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
US7949931B2 (en) 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
EP2115593B1 (en) * 2007-01-26 2018-10-24 Intel Corporation Hierarchical immutable content-addressable memory processor
US20080270842A1 (en) * 2007-04-26 2008-10-30 Jenchang Ho Computer operating system handling of severe hardware errors
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
CN100527091C (zh) * 2007-08-22 2009-08-12 杭州华三通信技术有限公司 一种实现差错检查与纠正功能的装置
JP4617405B2 (ja) * 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP5335779B2 (ja) * 2008-05-12 2013-11-06 パナソニック株式会社 半導体記録装置
JP5094593B2 (ja) * 2008-06-27 2012-12-12 キヤノン株式会社 送信装置、受信装置、及び方法、プログラム
US8612828B2 (en) 2009-12-22 2013-12-17 Intel Corporation Error correction mechanisms for 8-bit memory devices
US8327225B2 (en) 2010-01-04 2012-12-04 Micron Technology, Inc. Error correction in a stacked memory
US8566669B2 (en) 2010-07-07 2013-10-22 Ocz Technology Group Inc. Memory system and method for generating and transferring parity information
CN102480486B (zh) 2010-11-24 2015-07-22 阿尔卡特朗讯公司 验证通信会话的方法、设备及系统
CN103999055B (zh) 2011-12-22 2017-03-01 英特尔公司 访问命令/地址寄存器装置中存储的数据
US8996950B2 (en) 2012-02-23 2015-03-31 Sandisk Technologies Inc. Erasure correction using single error detection parity
US9218876B2 (en) * 2012-05-08 2015-12-22 Micron Technology, Inc. Methods, articles and devices for pulse adjustments to program a memory cell
CN104246898B (zh) 2012-05-31 2017-03-22 慧与发展有限责任合伙企业 局部错误检测和全局错误纠正
US8996960B1 (en) * 2012-06-26 2015-03-31 Inphi Corporation Vertical error correction code for DRAM memory
KR102002925B1 (ko) 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US8935592B2 (en) * 2012-11-20 2015-01-13 Arm Limited Apparatus and method for correcting errors in data accessed from a memory device
WO2014084855A1 (en) * 2012-11-30 2014-06-05 Hewlett-Packard Development Company, L.P. Memory controllers to form symbols based on bursts
US8966348B2 (en) * 2012-11-30 2015-02-24 Hewlett-Packard Development Company, L.P. Memory error identification based on corrupted symbol patterns
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method
JP2014186761A (ja) 2013-03-21 2014-10-02 Toshiba Corp 半導体記憶装置、コントローラ、及びメモリシステム
US10031802B2 (en) * 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping
WO2015016880A1 (en) 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Global error correction
US9280418B2 (en) 2013-08-01 2016-03-08 Integrated Silicon Solution, Inc. Memory device implementing reduced ECC overhead
US10185515B2 (en) 2013-09-03 2019-01-22 Qualcomm Incorporated Unified memory controller for heterogeneous memory on a multi-chip package
US9281970B2 (en) * 2013-10-11 2016-03-08 Intel Corporation Error burst detection for assessing reliability of a communication link
CN110299157B (zh) * 2013-11-11 2023-04-28 拉姆伯斯公司 使用标准控制器部件的大容量存储系统
US9116702B2 (en) * 2013-11-21 2015-08-25 International Business Machines Corporation Computer memory power management
US9263157B2 (en) 2013-12-23 2016-02-16 International Business Machines Corporation Detecting defective connections in stacked memory devices
US9887008B2 (en) 2014-03-10 2018-02-06 Futurewei Technologies, Inc. DDR4-SSD dual-port DIMM device
US9431129B2 (en) * 2014-04-30 2016-08-30 Qualcomm Incorporated Variable read delay system
US9772900B2 (en) 2014-07-10 2017-09-26 Samsung Electronics Co., Ltd. Tiered ECC single-chip and double-chip Chipkill scheme
TWI618891B (zh) 2014-07-18 2018-03-21 王柏豐 具可拆式光源之導光線體組之裝置
US9442801B2 (en) 2014-09-26 2016-09-13 Hewlett Packard Enterprise Development Lp Platform error correction
CN105575425A (zh) * 2014-10-09 2016-05-11 宏碁股份有限公司 存储器晶片、其资料读取方法以及资料储存系统
US9710324B2 (en) * 2015-02-03 2017-07-18 Qualcomm Incorporated Dual in-line memory modules (DIMMs) supporting storage of a data indicator(s) in an error correcting code (ECC) storage unit dedicated to storing an ECC
US9691505B2 (en) 2015-03-27 2017-06-27 Intel Corporation Dynamic application of error correction code (ECC) based on error type
KR102290020B1 (ko) * 2015-06-05 2021-08-19 삼성전자주식회사 스택드 칩 구조에서 소프트 데이터 페일 분석 및 구제 기능을 제공하는 반도체 메모리 장치
US9760435B2 (en) * 2015-10-14 2017-09-12 Intel Corporation Apparatus and method for generating common locator bits to locate a device or column error during error correction operations
US10025508B2 (en) * 2015-12-02 2018-07-17 International Business Machines Corporation Concurrent upgrade and backup of non-volatile memory
US10628248B2 (en) * 2016-03-15 2020-04-21 International Business Machines Corporation Autonomous dram scrub and error counting
US11481126B2 (en) * 2016-05-24 2022-10-25 Micron Technology, Inc. Memory device error based adaptive refresh rate systems and methods
US10379939B2 (en) 2017-01-04 2019-08-13 Samsung Electronics Co., Ltd. Memory apparatus for in-chip error correction

Also Published As

Publication number Publication date
CN107766172A (zh) 2018-03-06
US20180046541A1 (en) 2018-02-15
US20190179704A1 (en) 2019-06-13
US11625296B2 (en) 2023-04-11
US11010242B2 (en) 2021-05-18
US20190179705A1 (en) 2019-06-13
US20210294697A1 (en) 2021-09-23
JP2018028910A (ja) 2018-02-22
US10268541B2 (en) 2019-04-23
CN107766172B (zh) 2022-06-28
US10977118B2 (en) 2021-04-13
KR20180019473A (ko) 2018-02-26
US20230229555A1 (en) 2023-07-20
KR102191223B1 (ko) 2020-12-16
JP6882115B2 (ja) 2021-06-02
TWI710892B (zh) 2020-11-21

Similar Documents

Publication Publication Date Title
TWI710892B (zh) 動態隨機存取記憶體的錯誤更正方法
CN110148434B (zh) 半导体存储器件、存储系统和操作半导体存储器件的方法
CN107943609B (zh) 存储器模块、存储器控制器和系统及其相应操作方法
JP5792380B2 (ja) データ完全性を与えるための装置および方法
CN108268340B (zh) 校正存储器中的错误的方法
KR101536853B1 (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
TWI442407B (zh) 在固態儲存系統中之資料回復
US20160357630A1 (en) Semiconductor memory device providing analysis and correcting of soft data fail in stacked chips
US20190034270A1 (en) Memory system having an error correction function and operating method of memory module and memory controller
TW201933099A (zh) 半導體記憶體裝置、記憶體系統以及操作半導體記憶體裝置的方法
KR20100082710A (ko) 데이터 메모리 디바이스 및 인터페이스 에러 검출 및 처리 논리를 갖는 제어기
EP3462318B1 (en) Memory controller error checking process using internal memory device codes
JP4349532B2 (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US20220283728A1 (en) Method for redundant array of independent disks striping against programming failures and apparatus thereof
KR20230121611A (ko) 시스템 메모리 신뢰성, 가용성 및 서비스 가능성(ras)을개선하기 위한 적응형 오류 정정
WO2023106434A1 (ko) Ddr sdram 인터페이스를 이용한 dram 지원 에러 정정 방법
KR20180040474A (ko) 칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법