JP2018028910A - Ddr sdramインタフェイスのためのdram支援エラー訂正メカニズム - Google Patents

Ddr sdramインタフェイスのためのdram支援エラー訂正メカニズム Download PDF

Info

Publication number
JP2018028910A
JP2018028910A JP2017156564A JP2017156564A JP2018028910A JP 2018028910 A JP2018028910 A JP 2018028910A JP 2017156564 A JP2017156564 A JP 2017156564A JP 2017156564 A JP2017156564 A JP 2017156564A JP 2018028910 A JP2018028910 A JP 2018028910A
Authority
JP
Japan
Prior art keywords
error
dram
chip
ecc
memory
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2017156564A
Other languages
English (en)
Other versions
JP2018028910A5 (ja
JP6882115B2 (ja
Inventor
ニゥ,ディ−ミン
Dimin Niu
チャン,ムゥ−ティェン
Mu-Tien Chang
ゼング,ホング−ゾング
Hongzhong Zheng
キム,ヒュン−ジューング
Hyun Joong Kim
ソング,ウォン−ヒュング
Won Hyung Song
チェ,ジャング−ソク
Jangseok Choi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2018028910A publication Critical patent/JP2018028910A/ja
Publication of JP2018028910A5 publication Critical patent/JP2018028910A5/ja
Application granted granted Critical
Publication of JP6882115B2 publication Critical patent/JP6882115B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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
    • 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

Abstract

【課題】DDR SDRAMインタフェイスのための、システムECCオーバヘッドを抑制したDRAM(本発明では、ダイナミックRAMモジュールの略とする)エラー訂正方法を提供する。【解決手段】前記DRAMのデータチップ(複数)からメモリコントローラへデータを送るために多重バーストを含むメモリ処理(transaction)を前記メモリコントローラと共に遂行する段階と、前記DRAMのECCチップ(単数)を利用して1つ以上のエラーを感知する段階と、前記DRAMの前記ECCチップを利用して前記エラーを有する前記バーストの数を決定する段階と、前記エラーを有する前記バーストの数が所定の閾値より大きいか否か決定する段階と、前記エラーの種類を決定する段階と、前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階と、を含み、前記DRAMはメモリチャネル当たり1つのECCチップを含む。【選択図】図1

Description

本発明はメモリエラー訂正のための方法及びメカニズムに係る。
DDR SDRAM(Double data rate synchronous dynamic random−access memory)はコンピュータで利用されるメモリ集積回路(integrated circuit、IC)の1種である。
DDR SDRAMは電気的なデータ及びクロック信号のタイミング制御を利用して、より速い伝送速度を達成でき、クロック信号の上昇エッジ(rising edge)及び下降エッジ(falling edge)の双方を用いてデータを伝送でき、こうして同一のクロック周波数を利用するSDR SDRAM(single data rate synchronous dynamic random−access memory)インタフェイスと比較すれば、データバス帯域幅(data bus bandwidth)を効率的に2倍に高め、従って約2倍の帯域幅を達成する。
多様な世代のDRAMは一般的な類型のデータエラーを感知し、時には訂正するためにデータ格納の最中にECC(error−correcting code、エラー訂正コード)メモリを利用できる。ECCメモリはパリティ検査(parity checking)の利用を通じて、単一のビットエラーを感知し、後の誤動作を防止できる(immune)。DRAMシステムにおいては、パリティ検査は、メモリ(例えば、DRAMモジュールのパリティ装置又はECCチップ)に、格納されたデータ(例えば、1バイトデータ)の(奇数又は偶数)パリティを示す余分のパリティビットを格納しておき、独立的にパリティを計算し、そして格納されたパリティと計算されたパリティとを比較してデータエラー/メモリエラーが発生したか否かを感知することによって達成される。
従って、DRAMモジュール(例えば、DIMM(dual in−line memory module))で回収された(retrieved)、データワード(data word)又はデータシンボル(data symbol)に対応するデータがDRAMモジュールに書き込まれたデータと同一であることを保証するために、ECCはデータの1つ以上のビットが間違った状態にフリップされた場合に発生するエラーを訂正できる。
即ち、ECCリダンダンシ(Redundancy)を利用して、ECCチップはSEC−DED(single error correction,double error detection、単一エラー訂正・2重エラー感知)を遂行する。これは、ECCチップが1つのバースト(burst)で発生する2つのエラーの存在を感知でき、そしてまた孤立して発生した単一の間違ったビットを訂正できることを意味する。即ち、1つのデータチップがエラーを含む(corrupted)場合、即ち損失された(lost)場合、残っているデータチップのデータ及びECCチップのECCデータを利用して、エラーを含む、即ち損失された(missing)データチップのデータは復元可能である。
追加的に、DRAMシステムは、非機能的(nonfunctional、機能を喪失した)データチップの消去(erasing)、即ち不能化(disabling)のためのチップキル(chipkill)メカニズムを含み得る。DDR4の多様なチップキルメカニズムは、非機能的チップを感知し、そのモジュール上の位置を見つけ出し、そして消去するために、メモリチャネル当たり2つ以上のECC装置/チップを利用する。
例えば、一般的なDDR4は、8nのプリフェッチレングス(prefetch length)、8のバーストレングス(burst length、即ち、メモリ処理(transaction、一連の処理、以下、単に「処理」という)当たり8個のバースト)、そして64ビットのメモリチャネル幅(width)を含む。ここで、nは該当システム構造で利用されるデータのインタフェイス幅(interface width)のビット数である(例えば、インタフェイス幅が4ビットであれば、該当DDR4システムのプリフェッチレングスは32ビットである)。従って、DDR4は1つのメモリ処理毎に512ビットを伝送する。
DDRインタフェイス帯域幅を増加し続けるために、新しいDDRインタフェイスはプリフェッチレングスを増加させる。このような新しいDDRインタフェイスは現行のDDR4インタフェイスのプリフェッチレングスの2倍である16nのプリフェッチレングスを含む。それ故、新しいDDRインタフェイスは、1つのメモリ処理毎にDDR4システムによって伝送されるデータ量の2倍を伝送する。
この新しいDDRインタフェイスは、また16のバーストレングス(即ち、各個別のメモリ処理当たり16個のバースト)、及びメモリチャネル当たり32ビットのメモリチャネル幅を含み、それ故1つのメモリ処理毎にメモリチャネル当たり512ビットをまた伝送する。しかし、このDDRインタフェイスはDIMM当たり2つのメモリチャネルを含み、各DIMMはコンピュータマザーボード(motherboard)との連結を可能にするチップピン(chip pins)を含む回路基板(circuit board)上に多重DRAMチップを含むモジュールである。DDR DIMMの2つのメモリチャネルは互いに独立的に効果的に動作する。
DDR4より狭いメモリチャネルを有するにも拘らず、新しいDDRインタフェイスは、各メモリチャネルに対してデータを格納し、伝送するように構成される8個のデータ装置(例えば、4ビットのデータチップ)を備えてメモリチャネル当たり32ビットのデータ幅を含む。このような新しいDDRインタフェイスは、また各メモリチャネルに対して1つの4ビットECCチップを備えてメモリチャネル当たり4ビットのECC幅を有する。従って、DDR4のメモリチャネル幅の半分を有することを補償するために、このような新しいDDRインタフェイスはDDR4の2倍のバーストレングスを有する。このような新しいDDRインタフェイスは2つのメモリチャネルを含み、各メモリチャネルはデータを格納するための専用の8個の4ビットデータチップを有するので、バースト当たり総計64ビットのメモリデータがある。
それだけでなく、メモリチャネル当たり2つのECCチップを含むDDR4と異なり、この新しいDDRインタフェイスは、データを格納するために利用される16個のデータチップを保護するために、メモリチャネル当たり1つのECCチップ、又は甚だしくはDIMM当たり1つのECCチップしか有しない。従って、この新しいDDRインタフェイスはDDR4に比べてECCオーバヘッド(overhead)を削減できる。従って、この新しいDDRインタフェイスがメモリチャネル当たり1つのECCチップを利用すれば、バースト毎に2つの4ビットECCチップに対応する8ビットのECCデータがある。ここで、1つのECCチップはDIMMの2つのメモリチャネルの各々にある。従って、この新しいDDRインタフェイスはバースト毎に72ビットのデータを伝送する。
システムECCオーバヘッドはデータ幅の減少に対応して増加するので、現在DDR4技術を利用してDDR RAS(reliability、availability、and serviceability)を維持することは難しい。それだけでなくDIMM当たりメモリチャネル数が増加すると、チップキル技術は追加的なECCオーバヘッドを必要とする。
従って、エラー訂正及びデータ復元の新しい方法を提供し、その際、メモリコントローラからの支援無しで内部的に一部の類型のメモリエラーを訂正することが可能であり、且つ、メモリコントローラからの支援を内部的に訂正できない他の類型のエラーのメモリ訂正に向けることが可能である、DRAM DIMMを提供することが有用である。
米国特許第7,721,140号公報 米国特許第7,949,931号公報 米国特許第8,041,990号公報 米国特許第8,566,669号公報 米国特許第8,612,828号公報 米国特許第8,869,005号公報 米国特許第8,996,950号公報 米国特許第9,280,418号公報 米国特許公開第2015/0082122号明細書 米国特許公開第2015/0089111号明細書 米国特許公開第2015/0254003号明細書
上述した技術的課題を解決するためになされた本発明の目的は、DDR SDRAMインタフェイスのための、システムECCオーバヘッドを抑制したDRAMモジュール支援エラー訂正メカニズムを提供することにある。
以下、本発明では、複数の、通常のDRAM(dynamic random−access memory、ダイナミックRAM)を含むモジュールを簡潔に「DRAM」(dynamic random−access memory module、ダイナミックRAMモジュール)と呼び、通常の個々のDRAM(dynamic random−access memory、ダイナミックRAM)をチップと呼ぶ。チップは、データチップとECCチップを含む。
本開示の実施形態の様相は、エラーを訂正するためにDRAM(dynamic random−access memory module、ダイナミックRAMモジュール)内ECCを利用する新しいDDRインタフェイスに係る。
本発明の実施形態によれば、DDR(double data rate)インタフェイスを利用してDRAM(dynamic random−access memory module、ダイナミックRAMモジュール)のメモリエラーを訂正する方法が提供される。該方法は前記DRAMのデータチップ(複数)からメモリコントローラへデータを送るために多重バーストを含むメモリ処理(transaction)を前記メモリコントローラと共に遂行する段階、前記DRAMのECCチップ(単数)を利用して1つ以上のエラーを感知する段階、前記DRAMの前記ECCチップを利用して前記エラーを有する前記バーストの数を決定する段階、前記エラーを有する前記バーストの数が所定の閾値(threshold number)より大きいか否かを決定する段階、前記エラーの種類を決定する段階、及び前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階を含み、前記DRAMはメモリチャネル当たり1つのECCチップを含む。
前記DRAMの前記ECCチップを利用して前記1つ以上のエラーを感知する段階は、前記ECCチップを利用して前記バーストの各々についてパリティチェック(parity check)を遂行する段階を含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きくなければ、前記DRAMからメモリ読出しを再トライするように前記メモリコントローラを指示する段階をさらに含むことができる。
前記方法は前記メモリコントローラが前記メモリ読出しを再トライすれば、追加的なエラーを感知する段階、及び前記追加的なエラーが前記感知された1つ以上のエラーと同一のエラーパターンを有するか否かを決定する段階をさらに含むことができる。
前記方法は前記追加的なエラーが前記感知された1つ以上のエラーと異なるエラーパターンを有すると決定されれば、前記DRAMからメモリ読出しを再び再トライするように前記メモリコントローラを指示する段階をさらに含むことができる。
前記方法は前記追加的なエラーが前記感知された1つ以上のエラーと同一のエラーパターンを有すると決定されれば、ハードエラー(hard error)を識別する段階、エラー訂正において前記DRAMを支援するように前記メモリコントローラを指示する段階、及び前記エラーのアドレス(address)を記録する段階をさらに含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きければ、前記1つ以上のエラーが同一のチップの同一のピンに対応するか否かを決定する段階をさらに含むことができる。
前記方法は前記1つ以上のエラーが前記DRAMの同一のチップの同一のピンに対応すると決定されれば、前記エラーはDQ故障(DQ failure)に対応すると決定する段階、及び前記1つ以上のエラーが前記同一のチップの前記同一のピンに対応しないと決定されれば、前記1つ以上のエラーはチップ故障(chip failure)に対応すると決定する段階をさらに含むことができる。
前記メモリコントローラを指示する段階は前記1つ以上のエラーが前記DQ故障又は前記チップ故障に対応すれば、チップキル感知(chipkill detection)を支援するようにメモリコントローラを指示する段階を含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きければ、前記1つ以上のエラーが前記DRAMの1つより多いチップに対応するか否かを決定する段階、前記1つ以上のエラーが前記DRAMの同一のチップに対応すると決定されれば、前記DRAMの該当チップは消去されたことと表示する段階、及び前記1つ以上のエラーが前記DRAMの1つより多いチップに対応することと決定されれば、致命的なエラー(fatal error)を識別する段階をさらに含むことができる。
前記方法は前記エラーを有する前記バーストの数が前記閾値より大きければ、前記DRAMの他のチップが以前に消去されたか否かを決定する段階、及び前記DRAMの前記他のチップが以前に消去されたら、致命的なエラーを識別する段階をさらに含むことができる。
本発明の他の実施形態によれば、DDR(double data rate)インタフェイスを通じてメモリコントローラと通信するDRAM(dynamic random−access memory module)が提供され、該DRAMは2つのメモリチャネルを含み、各メモリチャネルは、内部にデータを格納し、1つのメモリ処理(transaction)に対応する各々の多重バーストの間に前記メモリコントローラへ1回データを伝達する多重データチップ及び前記データチップの1つ以上に対応するメモリエラーを有する前記多重バーストの数を決定する1つのECC(error−correction code)チップを含む。
前記ECCチップはエラーを感知し、前記感知されたエラーの種類をDQ故障(DQ failure)、チップ故障(chip failure)、ソフトエラー(soft error)又はハードエラー(hard error)の中で何れか1つとして決定することができる。
前記ECCチップはチップキル感知(chipkill detection)を支援するか、又は前記感知されたエラーの前記決定された種類に従ってエラー訂正を支援するようにメモリコントローラを指示することができる。
前記ECCチップがエラーを感知すれば、前記メモリコントローラが前記ECCチップの情報読出し出力を遂行するように前記ECCチップは前記メモリコントローラへ命令を発行することができる。
前記DRAMは、前記ECCチップが1ビットのECCフラッグ(1−bit ECC flag)を利用してエラーを感知すれば、前記メモリ処理の間に前記メモリコントローラへ警告する(alert)、前記ECCチップと連結された1つのピンをさらに含むことができる。
前記データチップ及び前記ECCチップは各メモリ処理の間に前記メモリコントローラへECCチップの情報読出し出力を提供するために前記多重バーストに加えて追加的なバーストを前記メモリコントローラへ伝達することができる。
本発明の他の実施形態によれば、メモリコントローラ及びデータチップ(複数)とECC(error−correction code)チップ(複数)とを含むDRAM(dynamic random−access memory module)を含み、前記ECCチップの各々は前記DRAMの該当メモリチャネルの一部のエラーを訂正し、前記メモリコントローラは前記ECCチップが訂正できない他のエラーを訂正するために前記ECCチップを支援するメモリシステムが提供される。
前記ECCチップの各々はエラー感知に従って前記メモリコントローラへ1ビットのECCフラッグ(1−bit ECC flag)を送るためのピンを含むことができる。
前記DRAMは複数のメモリチャネルを含むことができ、前記DRAMの前記複数のメモリチャネルの各々は前記ECCチップの中の1つを含むことができる。
本発明の実施形態は、DDR4によって提供されるような基本チップキルRAS特徴を提供できるアーキテクチャの具現に際して、ECC機能を内蔵しない複数のデータチップと単一のECCチップを有するので、ECCチップオーバヘッド(即ち、メモリチャネル当たり1つのECCチップ)を最小限に削減し、内部プリフェッチの大きさを最小限に削減し、しかもDDR4に対応するインタフェイスに対するDDRインタフェイスの変更を最小限に抑制するだけで、このような特徴を提供することが可能になる。
本発明のこれら及び他の様相は本明細書、請求の範囲、及び添付図面を参照して認識され、理解されるべきである。
本発明の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。 本発明の他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。 本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。 本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。 本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。 本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。 本発明の1つ以上の実施形態に係ってDAECC(DRAM assist error correction code)メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング(handling)することを示した順序図である。 本発明の1つ以上の実施形態に係ってDAECC(DRAM assist error correction code)メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング(handling)することを示した順序図である。
本発明の特徴及びこれを達成する方法は以下の実施形態及び添付された図面の詳細な説明を参照すれば、さらに容易に理解されることができる。以下、本発明の実施形態は同一の参照番号は同一の構成要素を参照する添付された図面を参照してさらに詳細に説明される。しかし、本発明は多様な形態に具体化されることができ、本明細書で図示された実施形態のみに限定されることと解釈されない。むしろ、このような実施形態は本発明が徹底であり、完全であり、本発明の様相及び特徴を当業者に十分に伝達できるように例として提供される。従って、本発明の様相及び特徴の完全な理解のために当業者に不必要なプロセス、要素、及び技術は説明されないことがある。その他の言及が無い限り、添付図面及び詳細な説明の全般にわたって同一の参照符号は同一の要素を示し、従って、その説明は反複しない。図面で、要素、層、及び領域の相対的な大きさは明確性のために誇張されることができる。
“第1”、”第2”、“第3”等の用語は本明細書で多様な構成要素、成分、領域、層及び/又はセクションを説明するために利用されることができるが、このような構成要素、成分、領域、層及び/又はセクションはこのような用語によって制限されないことと理解されるべきである。このような用語は1つの要素、成分、領域、層又はセクションを他の要素、成分、領域、層又はセクションと区別するために利用される。従って、以下で説明される第1構成要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱しなく、第2構成要素、成分、領域、層、又はセクションとして説明されることができる。
1つの要素又は図面で図示された他の構成要素又は特徴との特徴的な関係を説明するための説明を容易にするために“下の”、“下”、“低い”、“特定部分の下”、“上に”、“上部”と同一の空間的であり、相対的な用語がここで使用されることができる。空間的であり、相対的な用語は図面で示された方向に加えて使用又は動作で装置の他の方向を含むように意図されたことが理解されるべきである。例えば、仮に図面の装置が裏返したら、他の構成要素又は特徴の“下”又は“下の”又は“特定部分の下”として説明された構成要素は他の構成要素又は特徴の“上に”合わせられるようになる。従って、“下の”又は“特定部分の下”の例示的な用語は上又は下方向の全てを含むことができる。装置は異なりに合わせられ(例えば、90°は他の方向に回転されること)、そして空間的に相対的な技術語はそれに従って解釈されなければならない。
要素、層、領域、又は成分が他の構成要素、層、領域又は成分“に”、“に結合された”、“に連結された”ことと言及される時、それは他の要素、層、領域、又は成分“に直接的に”、“に直接的に結合された”、“に直接的に連結された”ことであるか、或いは1つ以上の間の要素、層、領域、又は成分が存在することができる。また、構成要素又は層が2つの要素又は層の間として言及される時、それは単なる要素又は層が2つの構成要素又は層間にあるか、又は1つ以上の間の構成要素又は層がまた存在することができる。
次の例で、x軸、y軸、及びz軸は直角座標システムの3つの軸に限定されなく、広い意味として解釈されることができる。例えば、x軸、y軸、及びz軸は互いに直交することができ、又は互いに直交しない他の方向を示すことができる。
本明細書で使用された用語は単なる特定な実施形態を説明するためのことであり、本発明を制限しようとすることと意図されなかった。本明細書で使用されたように、文脈の上に明確に異なりに意味しない限り、単数形態の“1つ”は複数の形態も含むことと意図される。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語が本明細書で使用される時、このような用語は定まれた特徴、整数、段階、動作、要素、及び/又は成分が存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、成分、及び/又はそれらのグループの追加又は存在を不可能なことではない。本明細書で使用されたように、“及び/又は”の用語は1つ以上の列挙された項目と連関された任意のそして全ての組み合わせを含む。“少なくとも1つ”のような表現は要素の全体リストを修正し、そしてリストの個別要素を修正しない。
本明細書で使用されたように、“大体に”、“約”の用語及びこれと類似な用語は近似値の用語として使用され、程度の用語として使用されなく、本発明の当業者によって識別される測定された又は計算された値の固有な変動を考慮するためのことである。また、本発明の実施形態を記述する時、“することができる”の使用は“本発明の1つ以上の実施形態”を意味する。本明細書で使用されたように、“使用”、“使用される”、そして“使用された”の用語は“利用”、“利用される”、そして“利用された”の用語の同義語として各々看做されることができる。また、“例示”の用語は例又は図面を意味する。
特定の実施形態は異なりに具現される場合、特定プロセス順序は説明された順序と異なりに遂行されることができる。例えば、説明された連続的な2つのプロセッサは同時に概ね遂行されるか、或いは説明された順序と反対順序に遂行されることもできる。
本明細書で記述された本発明の実施形態による電子又は電気装置及び/又は他の任意の関連された装置又は要素は任意の適合なハードウェア、ファームウェア(例えば、Application Specific Integrated Circuit、ASIC)、ソフトウェア、又はソフトウェア、ファームウェア、及びハードウェアの組合を利用して具現されることができる。例えば、このような装置の多様な要素は1つの集積回路(Integrated Circuit、IC)チップ又は分離されたICチップで形成されることができる。また、このような装置の多様な要素は柔軟した印刷回路フィルム(Flexible Printed Circuit Film)、TCP(Tape Carrier Package)、印刷回路基板(Printed Circuit Board、PCB)上に具現されるか、或いは1つの基板上で形成されることができる。また、このような装置の多様な要素はコンピュータプログラム命令を実行し、本明細書で説明された多様な機能を遂行するための他のシステム要素と相互作用する1つ以上のコンピューティング装置で又は1つ以上のプロセッサで遂行されるプロセス又はスレッド(Thread)である。コンピュータプログラム命令は、例えばRAM(Random Access Memory)のような標準メモリ装置を利用するコンピューティング装置で具現されるメモリ内に格納される。コンピュータプログラム命令はまた、例えばCD−ROM、フラッシュドライブ(Flash Drive)、又はそのような他の一時的ではないコンピュータ読出し可能なメディア(Non−transitory Computer Readable Media)に格納されることもあり得る。また、本発明の当業者は本発明の例示的な実施形態の思想及び範囲を逸脱しなく、多様なコンピューティング装置の機能は単一コンピューティング装置に統合されるか、或いは集積され、特定コンピューティング装置の機能が1つ以上の他のコンピューティング装置に分散されることを認識しなければならない。
異なって定義されない限り、本明細書で使用された全ての用語(技術的及び科学的用語を含む)は本発明が属する技術分野で当業者によって一般的に理解される同一の意味を有する。一般的に使用される事前に定義されたこのような用語は本明細書及び/又は関連技術の文脈でそれらの意味と一致する意味を有することと解釈されるべきであり、本明細書で明確に定義されない限り、理想化されるか、或いは過度に形式的なこととして解釈されてはならない。
図1乃至図3と関連されて以下で説明される本発明の実施形態は基本チップキルを提供する。DDR4のメカニズムと同一のカバレージ(coverage)を欠くにも拘らず、新しいDDRインタフェイスはメモリチャネル当たり単一のECCチップしか有しないにも拘らず、単一ダイ/チップ訂正を提供することができる。追加的に、以下で説明されるメカニズムはデータチップがフェイル(Fail、誤動作)した場合を識別するためにECCチップから提供されるECC情報を利用できる。
図1は本発明の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。本発明はメモリ処理(transaction)当たり16個のバーストを利用し、多重バースト内の1つのデータチップのデータを保護するために、DRAM(dynamic random−access memory module、ダイナミックRAMモジュール)内ECC(in−DRAM ECC)を利用する。また、本発明の実施形態は、システムECCエラーが発生したと或るDRAM内ECCが決定した時に、DRAM内ECCの情報の読み出しをシステム/メモリコントローラに可能にすることによって、1つ以上のバースト内の多重チップからデータを保護するために、DRAM/DIMMがシステム/メモリコントローラECCを利用可能にする。
図1に示したように、本発明の実施形態に係るシステム100は内部に格納されたDAECCエンジン(DRAM Assist Error Correction Code Engine)120を含むメモリコントローラ110を含む。メモリコントローラ110はDRAM/DDR_DIMM(double data rate synchronous dynamic random−access memory dual in−line memory module)160の多様なチップ140a、140bにデータを伝達し、多様なチップ140a、140bからデータを受信する。図1で、DRAM160(或いは、DRAMモジュール)の1つのメモリチャネル150が図示されている。メモリコントローラ110は一般的な(normal)読出し及び書込み過程を通じてDRAM160と“一般(normal)”データ170を交換するためのメモリ処理130を遂行する。本発明の実施形態で、DRAM160の各チップ140a、140bはチップの4個のピンを通じて4ビット情報を提供する。
DRAM160の各メモリチャネル150はデータの受信、格納、及び伝達のために8個の4ビットデータチップ(例えば、8個のデータ装置、140a)を含む。DIMM/DRAMのメモリチャネル当たり2つのECCチップを利用するDDR4と異なり、本発明の実施形態のDRAM160はメモリコントローラ110にECCデータを伝送するためにメモリチャネル150当たり1つの4ビットECCチップ(例えば、1つのパリティ装置又はパリティチップ、140b)を含む。メモリチャネル150当たり単一のECCチップ140bのみを含むにも拘らず、本発明の実施形態のDRAM160はシステム内エラー訂正及び基本的なチップキル能力を提供でき、これは以下でさらに説明される。
本発明の実施形態で、DRAM160はバーストを利用してメモリコントローラ110とメモリ処理130を遂行する際に、これによって、別々の処理において各データ片を伝送するために従来ならば要求されるであろう他の段階を省略して、DRAM160は反復的にデータを伝送する。従って、DRAM160は、特定条件下に制限された時間区間内に対してではあるけれども、バースティング(bursting)無しで伝送するより速くデータを伝送できる。
DRAM160の狭いメモリチャネル幅を補償するために、DRAM160は、8のバーストレングスを含むDDR4を利用するDIMMのバーストレングスの2倍である16のバーストレングスを含む。即ち、2つのメモリチャネル150の各々のデータ幅が、DDR4において利用されるメモリチャネルのデータ幅の半分しか無いことを補償するために、DRAM160は各メモリ処理130で4ビット幅チップ140a、140bの各々に格納されたデータのバースト数を、DDR4と比較して2倍だけ内部的にプリフェッチする。
従って、メモリチャネル150当たり36ビット(即ち、9個のチップ140a、140bの各々でチップ当たり4ビットずつ)がバースト毎に送られ、データ幅はメモリチャネル150当たり32ビット、ECC幅はメモリチャネル150当たり4ビットである。これはチャネル当たりメモリ処理130当たり総計576ビットに相当し(即ち、バースト当たり36ビットにメモリ処理130当たり16個のバーストを乗じて得られる)、その内、全体データブロックは512ビットを占め、残る64ビットはメモリチャネル150のECCチップ140bのECCデータに該当する。
追加的に、DDR4と異なり、本発明の実施形態のシステム100はメモリコントローラ110の支援無しでDRAM160の内部でエラー訂正を達成できる。従来のメモリコントローラに支援されたエラー訂正(memory controller−assisted error correction)においては、1つ以上のバースト内の多重データチップ140aの全体に対してデータが保護されるのに比べて、DRAM160のDRAM内ECCはメモリコントローラ110との通信無しで内部エラー訂正を遂行し、しかも多重バースト内データチップ140aの中の何れか1つ単位に対してデータが保護される。従って、DRAM160のDRAM内ECCから内部的に提供された情報と共にメモリコントローラ110のECCを利用して、システム100はエラー訂正の遂行に際して、メモリコントローラ110とDRAM160とを協同させる。
DRAM内128ビットのグループ毎に、DRAMレベル(即ち、メモリコントローラ110の支援無しで)で内部エラー感知を遂行する1つのECCチップ140bを利用することによって、DRAM内ECCはチップ内部で内部的に生成されたECCビットを利用して単一ビットエラーを訂正する。本発明の実施形態は、DDR4でのメモリアプリケーションに対する何らの変更も齎さず、DRAM160とメモリコントローラ110との間に異なるインタフェイスを持ち込まない。従って、内部ECCを提供することによって、エラー復元情報は一般的なデータ伝送170内に含まれず、メモリコントローラ110に伝達されない。従って、ECCチップ140bによるエラーの訂正はメモリコントローラ110とのメモリ処理130の速度又は性能に影響を及ぼさない。
しかし、或る特定の種類のエラーは、ECCチップ140b単独では訂正できない。その場合、メモリコントローラ110がデータ内エラーを感知すれば(例えば、DRAM160がメモリコントローラ110にエラーの存在を示せば)、この時のみ、メモリコントローラ110はエラー訂正をトライするためにDRAM160に対して特別な命令を発行(issue)する。即ち、システム/メモリコントローラECCエラーが発生した時のみ、メモリコントローラ110はDIMMに特定命令を送り、DRAM160からDRAM内ECC情報出力180に含まれた情報を受信する。その後に、メモリコントローラ110は対応するメモリチャネル150の8個のデータチップ140aの中の何れに感知されたエラーの原因があるか否かを決定する。メモリコントローラ110が、故障したデータチップの位置を探すために利用する方法は図7乃至図8を参照して以下で説明される。
図2は本発明の他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。前述した実施形態のエラー訂正メカニズムと同様に、本発明の実施形態はメモリ処理当たり16個のバーストを遂行する。同様に、メモリコントローラ210は内部に格納されたDAECCエンジン220を含み、DRAM260の各メモリチャネル250は一般的なデータ270の交換のために8個のデータチップ240a及び1つのECCチップ240bを含む。
しかし、前述した実施形態と異なり、DRAM260は追加的なピンを通じてメモリコントローラ210に1ビットECCフラッグ(flag)を送ることによってECCエラーをメモリコントローラ210に通知する。
図2を参照すれば、本発明の実施形態のシステム200は図1を参照して説明された実施形態のシステム100と類似である。しかし、本発明の実施形態のDRAM/DDR_DIMM260はDRAM260が容易にECC情報をメモリコントローラ210に伝達するようにするために追加的な1つのピン290を具現する。前述した実施形態と異なり、16個のバーストを含むメモリ処理230の間にエラーが発生する時、DRAM260は1つの1ビットECCフラッグで構成される警告(alert)を伝送できるので、DRAM260内において訂正できないエラーは常に直ちにメモリコントローラ210に露出される。従って、エラーが発生する時、情報はDRAM内ECCチップ240a、240bの中の、例えばDRAM内ECCチップ240bからメモリコントローラ210に提供される。
従って、8個のデータチップ240aの中で1つに対応するメモリエラーが発生すれば、本発明の実施形態のECCチップ240bのピン290は、メモリコントローラ210にエラーが発生したことを通知するために1ビットECCフラッグを設定するために利用される。ピン290を通じて1ビットECCフラッグを感知すると、メモリコントローラ210はエラーと関連されたDRAM260からさらに詳細な情報を得るために特定命令を発行する。メモリコントローラ210は図1を参照して説明された実施形態のシステム100と類似のDRAM内ECC情報出力280を利用してDRAM260から情報を得る。
図1を参照して説明されたシステム100の実施形態と異なり、DRAM260及びメモリコントローラ210の間のDDRインタフェイスは従来のDDR4から変更される。しかし、他の576データビットと共にピン290を通じて1ビットECCフラッグが伝送されるので、性能は悪い影響を受けず、従ってメモリ処理230当たり時間が増加しない。
図3は本発明の更にその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
図3を参照すれば、図1及び図2を各々参照して説明された実施形態のシステム100、200と比較すれば、本発明の実施形態は内部に格納されたDAECCエンジン320と共にメモリコントローラ310を含み、DRAM360の各メモリチャネル350は一般的なデータ370交換のために8個のデータチップ340a及び1つのECCチップ340bを含む。
しかし、本発明の実施形態のシステム300の各メモリ処理330は、17個のバーストからなる総バースト長に寄与する追加的なバーストを含む。しかし、メモリ処理330の17番目のバーストの間に、DRAM内エラー訂正の間に決定されたECC情報はDRAM内ECC情報出力380は、DRAM/DDR_DIMM360からメモリコントローラ310に伝送される。従ってメモリコントローラ310は、各メモリ処理330に対する追加的なバーストに伴う性能の低下という犠牲を払って各メモリ処理330におけるDRAM内ECC情報を識別できる。
上述のように、図1の実施形態のシステム100においては、システム/メモリコントローラECCエラー(例えば、DRAM160のECCチップ140bによって修正できないエラー)が生じた時のみにメモリコントローラ110がDRAM内ECC情報の情報出力180の読出しを遂行した。しかし、これと異なり、本発明の実施形態のメモリコントローラ310は追加的な17番目のバーストを通じてメモリ処理330毎にDRAM内ECC情報出力380の読出しを遂行する。追加的に、メモリコントローラ310はシステムレベルのDRAM内ECCによって(例えば、DRAM360内で)遂行されるのと同一の、エラー訂正動作を常に遂行する。
前述した実施形態では、DAECCメカニズムが4ビットDRAMチップを利用して新しい、狭いDDRインタフェイスに利用できることを説明したが、DAECCメカニズムは仮にDRAMチップの内部でDRAM内ECCが遂行されれば、新しいDDRインタフェイスを利用する他のDRAMアーキテクチャと共に利用されるか、或いはDDR4と類似なインタフェイスにおいて利用され得る。
例えば、図4はDAECCエンジン420が8ビットDRAMチップ440a、440bと共に新しい狭いDDRインタフェイスと関連されて利用できることを示す。このような実施形態で、各チャネル450はデータを格納するための4つの8ビットDRAMチップ440aを含み、システムECCを格納するための1つの8ビットDRAMチップ440bを含む。従って、本発明の実施形態のシステムECCオーバヘッドは1/4、即ち25%である。
他の例を挙げれば、図5はDAECCエンジンが4ビットDRAMチップ540a、540bと共にDDRインタフェイスに利用できることを示す。本発明の実施形態で、各チャネル550はデータを格納するための16個の4ビットDRAMチップ540aを含み、システムECCを格納するための1つの4ビットDRAMチップ540bを含む。従って、この実施形態のシステムECCオーバヘッドはDDR4標準の現行ECCオーバヘッドの半分である1/16、即ち6.25%である。
その他の例えば、図6はDAECCエンジンが8ビットDRAMチップ640a、640bと共にDDR4インタフェイスで利用されることができることを示す。このような実施形態で、各チャネル650はデータを格納するために8個の8ビットDRAMチップ640aを含み、システムECCを格納するために1つの8ビットDRAMチップ640bを含む。従って、システムECCオーバヘッドは1/8、即ち12.5%である。
要約すれば、前述した実施形態におけるDAECCは、追加的な1つのECCDRAMチップを利用し、且つ、DRAM内ECC情報を利用して、任意の種類の構造を有するメモリシステムに対して基本的なチップキル範囲(chipkill coverage)を提供するための、一般的なメカニズムである。
図7及び図8は本発明の1つ以上の実施形態に係ってDAECC(DRAM assist error correction code)メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング(handling)することを示した順序図である。
以下で説明される順序図は図1乃至図6を参照して各々説明された任意のシステムにおいて具現できる。メモリコントローラがDRAM内エラー発生を認識すれば、メモリコントローラはエラーパターン(error pattern)を決定するようにトライする。エラーパターンに従って、メモリコントローラはエラーがランダムエラー(random error、(非永久的なエラー))、永久的なエラー(permanent error)、又はチップキルエラー(chipkill error)に対応するか否かを決定する。エラーの種類決定に従って、システムはエラー訂正を遂行する。
様々な種類のエラーの中で、或る種のエラーはチップキルエラーであると言及される。チップキルエラーは、チップの永久的な故障(failure)、即ちビットエラーの数が或る閾値を超過した単一のチップ/ダイと一般的に対応する。メモリチャネル上の単一の4ビットデータチップの故障はメモリ処理の最中に、多数のバーストにおいて前記データチップに対応する多数の4ビットに対する間違ったデータの提供を惹起する(例えば、前記データチップに対応する4ビットシンボル内多数のエラー)。
従って、本発明の実施形態は、単一チップが何時フェイル(fail)したかを感知し、その後に単一チップ訂正を引き続き提供しながら、そのチップを非活性化する。即ち、本発明の実施形態は、1つのチップに対応する反複的に間違った4ビットを1つのシンボル(symbol)としてグループ化し、フェイル(failed)/デッド(dead)/消去(erased)チップに対応するデータを復旧するためにシンボルベースのメカニズム(symbol−based mechanism)を利用する。
エラーの他の種類はDQエラーであると言及される。前述した通り、説明された実施形態のDRAMで、各チップは4つのデータピンを含み、各ピンはチップに格納された4つのビットの中で1つを出力する。各ピンはDQであると言及される。仮に1つのチップのピンの中で1つがフェイルであれば(全体チップの故障と対照的に)、バーストの各々でそのピンから提供されるデータは潛在的にエラーとなる。従って、ピン故障はDQエラーであると言及される。
説明された実施形態は各チップの間にインターリーブされる(interleaved)簡単なパリティアルゴリズム(parity algorithms)を利用できる。例えば、説明された実施形態はRAID(redundant array of independent disks)構成を利用する(例えば、RAID4と類似な構成)。RAID4は専用パリティディスク(dedicated parity disk)及び多重ディスク(例えば、チップ)にわたったブロックレベルストライピング(block−level striping across multiple disks)を利用するRAID構成である。ディスクストライピングはデータのグループをブロックに分割し、そして2つ又はそれ以上の格納装置(例えば、データチップ)にわたってブロックを分散配置(spread)することを含む。
従って、ECCチップに格納されたデータは4個のパリティビットと対応し、8個のデータチップの中の1つからの各ビットはECCチップによって格納された互いに異なるパリティビットに寄与し、全てのデータチップの中で対応するピンからの1つのビットはパリティビット(例えば、ECCチップの1つのECCグループ)の中の1つに寄与する。仮にホストメモリコントローラがデータ及びECC情報を利用して1つのピンに対応して繰り返し発生する1つの1ビットエラーを感知すれば、ホストメモリコントローラは4つの可能なビット位置の中で同一のビット位置からエラーを識別する(即ち、ECCチップの同一パリティビットはバーストの中で一部で発生するエラーを含む)。以下で説明されるように、感知されたエラーパターンからの情報はエラーが何処にあるかを決定するために利用される(例えば、8個のデータチップの中でどれがエラーを引き起こすピンを含むか)。
図7を参照すれば、S701段階で、エラーが感知される。エラーは図1乃至図3を参照して前述した任意のエラー感知方法によって(例えば、追加的なピン290(図2)を通じてメモリコントローラ210によって感知されるECCフラッグ、又はメモリ処理330の17番目のバーストの間のDRAM内ECC情報出力380(図3)でメモリコントローラ310によって感知されるエラー)及び/又はホストメモリコントローラで遂行されるシステムECC(例えば、RAIDと類似なパリティチェック)によって感知される。
システムがS701段階でDRAM/DDR_DIMMから一部のエラーがあると決定すれば、S702段階で幾つのバーストがエラーを有するかが決定される。これはメモリ処理のバースト毎にパリティチェックを為すことにより遂行できる。異なる種類の故障は異なるエラーパターンを含むので、閾値、又は参照数字、“n”が、感知されたエラーの種類を分類するために利用される。
例えば、ECCチップの同一のピン位置にECCエラーがあっても、DQ故障はメモリ処理の全部又は多数のバーストにおいて単なる1ビットパリティエラーとなる。しかし、チップ故障は全部又は多数のバーストにおいて多重ビットのパリティエラー(例えば、4ビットパリティエラー)となる可能性が大きい。追加的に、ランダムエラーは少数のエラーに対応し、少数のバーストに極めて少数のエラービットがある場合に対応する(例えば、単一のバーストで単一の1ビットエラー)。
従って、感知されたエラーの数が閾値より大きい場合、DQ故障又はチップ故障が発生したと予測される。しかし、感知されたエラーの数が閾値より小さいか、或いは同一である場合、1つ以上の個別的なチップから1つ以上のランダムエラーが発生したと予測され、これはDRAM内ECCでは訂正不能であり、訂正のためにメモリコントローラから支援が必要である。
従って、S702段階で、与えられたメモリ処理においてエラーを有するバーストの数が閾値“n”を超過するかが決定される。閾値に到達したか否かによって、S703段階又はS710段階の中の何れか1つに進行される。即ち、十分に多い数のバーストがパリティエラーを有すると決定されれば(例えば、与えられたメモリ処理においてエラーを有するバーストの数が或る閾値“n”を超える場合)、DQ故障又はチップ故障がある可能性がさらに高く、システムはチップキルメカニズムを進行する。
しかし、感知されたエラーを有するバーストの数が閾値“n”より小さければ(例えば、4バースト又はこれより少ないバースト)、S701段階で感知されたエラーは個別的なチップからのランダム故障の結果である可能性が高い。このようなランダム故障はDRAM内ECCによって訂正可能しないが、エラーは再発しない可能性が大きいので、チップキルメカニズムは利用されない。
上記では閾値の例として4バーストが利用されたが、異なる数が本発明の他の実施形態に利用され得る。その上に、その数は他の実施形態において(例えば、特定装置(デバイス)に対応するように)調整され得る。例えば、対応するメモリ装置が相対的に高い装置エラー率を有し、これに従って多重ランダムエラーが発生する場合、閾値が増加され得る。
S703段階で、S702段階でパリティエラーを有するバーストの数が閾値より大きいと決定されれば(例えば、4バーストより大きい)、システムは8個のデータチップの中の1つがデッドであるか、又は消去されたとを決定するか、或いは8個のデータチップの中の複数個においてエラーがあると決定する。
S703段階でチップが既に消去されたか、又は8個のデータチップの中の複数個のチップにおいてエラーがあると決定されれば、システムはS709段階で致命的、且つ訂正不能なエラーが発生したと決定する。エラーを有するチップの数は特定命令を利用するか、或いはメモリ処理330の17番目のバーストの最中の何れか1つによってDRAM内ECC情報出力180、280、380からメモリコントローラ110、210、310によって感知される。
例えば、チップがDQ故障、チップ故障、バンク(bank)故障、又はロー(row)故障によってデッドであれば、任意の追加的なDQ故障又はチップ故障は致命的な故障をもたらし、本発明の実施形態のシステムはメモリチャネル当たり単一のECCチップしか含まないので、エラー訂正を遂行するための充分な資源をそれ以上含まない。同様に、複数のチップがエラーを含むと、致命的な故障が発生する。
しかし、S703段階で消去されたチップがなく、そして感知されたエラーが単一のデータチップに対応すると決定されれば、S704段階に進行される。例えば、未だ消去されたチップが無ければ、そして感知されたエラーが単一のチップに対応すれば、システムは故障の種類を識別でき、メモリコントローラは故障の種類を記録でき、潛在的にエラーを訂正するために追加措置を実行できる。
S704段階で、感知されたエラーが同一のピンで発生するかが決定される。即ち、S704段階で、システムはバーストの各々に対して同一のピンで感知されたエラーが発生するか否かを決定する。全てのエラーが同一のピンに対応すれば、S705a段階で、DRAM内システムはメモリコントローラにこれを通知し、このようにすることによってメモリコントローラはエラーの故障種類をDQ故障であると記録する。システムが感知されたエラーが全て同一のピンに対応しないと決定すれば、S705b段階で、DRAM内システムはメモリコントローラにこれを通知し、このようにすることによってメモリコントローラは故障種類をチップ故障として記録する。
S706段階で、故障種類がDQ故障又はチップ故障の中の何れか1つであると記録された後、メモリコントローラはチップキル感知(chipkill detection)を支援するために利用される。S706段階で、メモリコントローラはどのようにしてエラーを訂正するか決定するために診断ルーチン(diagnosis routine)を開始する。診断ルーチンは図8を参照して後述される。
図8を参照すれば、S706a段階で、メモリコントローラは以後にエラー感知を遂行できるように、図7のS703段階でDRAM内ECCから提供されるDRAM内ECC情報を既に読み出してある(例えば、ECCチップによって提供されるECCビットのDRAM内ECC情報出力(180、280、又は380))。その後のS706b段階で、メモリコントローラは全ての進行中であるメモリ処理を維持する。その次のS706c段階で、メモリコントローラは現在データを格納する(例えば、8個の4ビットデータチップの現在データD[511:0]に対応する512ビット)。その次に、S706d段階で、メモリコントローラは現在データに対応する反転されたデータ(例えば、反転されたデータD’[511:0]に対応する512ビット)を8個の4ビットデータチップに書き込む。その次に、S706e段階で、メモリコントローラは再びデータを出力して読み出す。その次に、S706f段階で、メモリコントローラはエラーの位置を識別するために新しく読み出したデータと既知の反転されたデータを比較する。
図7を参照すれば、S706段階でメモリコントローラがチップキル感知を支援した後、S707段階で、メモリコントローラは感知された全てのエラーが1つのチップに対応するか否かを決定する。仮に単一のデータチップが消去されれば、又は多重DQエラーが感知された場合でも全ての多重DQエラーが同一のチップに対応すれば、S708段階で、メモリコントローラは残っている消去されないチップにデータを再び書き込み、そして次の全てのメモリ処理は消去されたチップに対応するデータを復元するために簡単なパリティアルゴリズムのパリティビットを利用する。
例えば、データ読出しの際に、メモリコントローラがデータチップの中の1つに対応する多重ビットがS706d段階でデータチップに書き込まれた反転されたデータの該当ビットと一致しないと決定すれば、S708段階でメモリコントローラは該当データチップが消去されたと表示(mark)する。しかし、データ読出しの際に、メモリコントローラがデータチップの中で1つのデータチップに1つのピンに対応するビットの中で単一のビットがS706d段階でデータチップに書き込まれた反転されたデータの該当ビットと一致しないと決定すれば、S708段階でメモリコントローラは単一のチップの単一のピンのみが消去されたと表示(mark)する。
しかし、1つより多いチップが消去されたと表示(mark)されれば、S709段階で、メモリコントローラは致命的であり、且つ訂正不可能なエラーが発生したと判断する。即ち、1つより多いチップでエラーがあれば、予備の追加的なチップがないので、DRAMはパリティを遂行するための充分な資源をそれ以上有さない。従って、任意の追加的なチップエラーはDRAMの交替を必要とする、訂正不可能な、即ち致命的なエラーとなる。
S702段階に戻って、エラーの数が所定の閾値より低いと決定されれば(例えば、メモリ処理において少数のバーストのみがエラーを有する場合)、S710段階で、メモリコントローラはDRAMから追加的なバーストを受信することによってデータチップからデータを読み出すことを再トライする。
S710段階でデータ読出しを再トライした後に、S711段階でメモリコントローラは相変わらず感知されたエラーがあるか否かを決定する。S711段階で追加的なエラーが感知されなければ、S712段階でメモリコントローラはソフトエラー(soft error)、又は一時的エラー(transient error)が発生し、それ以上訂正が必要としないを決定する。しかし、S710段階でデータ読出し再トライの後に追加的なエラーがS711段階で感知されれば、S713段階でエラーがS701段階で初期に感知されたエラーと同一のエラーパターンを有するかが決定される。エラーが同一のエラーパターンを有するか決定することによって、一致しないソフトエラーのケース(即ち、ソフトエラーがS701段階で初期に感知されたケース)は無視され、後続の他のソフトエラーはメモリコントローラのS710段階でデータ読出しを再トライする間に感知される。
S713段階で感知されたエラーがS701段階で初期に感知されたエラーと同一のエラーパターンを有しなければ、S710段階に戻り、メモリコントローラはデータチップからデータ読出しを再び再トライする。従って、順次的であり、同一でないソフトエラーが発生し、こうして他のエラーパターンがもたらされれば、メモリコントローラはデータ読出しトライを継続する。しかし、S713段階で感知されたエラーがS701段階で初期に感知されたエラーと同一のエラーパターンを有すれば、S714段階でハードエラー(hard error、即ち一時的ではないエラー)が発生したと決定される。
S714段階でハードエラー(一時的ではないエラー)の存在が決定された際に、何れのチップも未だ消去されたと表示(mark)されないと仮定される場合、DRAMはS715段階でメモリコントローラECCメカニズムを利用してハードエラーの訂正を支援するようにメモリコントローラをトリガー(trigger)する。メモリコントローラは、例えばエラーの現在住所(例えば、チップ及びピンアドレス)とDRAMの1つ以上のチップのエラーレジスターに格納されたエラー住所を比較してエラー訂正を支援する。また、メモリコントローラはDRAM内ECC情報を利用してエラー訂正を支援する。例えば、DRAM内ECC情報が単一のチップのみが訂正できないDRAM内ECCエラーを有すると表示(indicate)する場合、メモリコントローラはエラーを復旧するためにECCチップを利用する。
S716段階で、メモリコントローラがハードエラーの訂正に成功したか否かが決定される。エラー訂正が成功の場合、S717段階で、オペレーティングシステム(operating system)はエラーイベントを記録(log)し、メモリコントローラは各チップ内のDRAM内ECC情報(例えば、チップエラーレジスタ内の情報)を消去するために他の特定命令を発行する。しかし、エラー訂正が不成功の場合(例えば、1つのチップが既に消去され、従ってシステムはそれ以上ECC能力を有しない場合)、メモリコントローラはS709段階で致命的なエラーが発生したと決定する。
メモリコントローラが致命的であり、訂正不可能なエラーをS709段階で識別すれば、オペレーティングシステムはシステム/アプリケーションレベルのエラー復旧を遂行する。例えば、オペレーティングシステムはページのコンテンツ(content)を他の物理的ページに再配置して該当物理的ページをリタイア(retire)し、リタイアされたページを仮想メモリシステムによって以後、物理的ページの割当禁止リストに配置する。リタイアされた物理的ページの数が増加するに連れて(例えば、訂正できないエラーの数が増加するに連れて)、システムの有効なメモリ容量は減少する。
従って本発明の実施形態は、DDR4によって提供されるのと同様の基本チップキルRAS特徴を提供できるアーキテクチャを提供し、しかもその際、減少された(例えば、最小の)ECCチップオーバヘッド(即ち、メモリチャネル当たり1つのECCチップ)、減少された(例えば、最小の)内部プリフェッチのサイズ(プリフェッチのサイズはDRAM内部ECCと同一のサイズ)、そしてDDR4に対応するインタフェイスに対するDDRインタフェイスの減少された(例えば、最小の)変更を要するだけで、このような特徴を提供することが可能である。追加的に、本発明の実施形態はDDR4より狭いチャネル幅と共に新しいDDRインタフェイスのために12.5%の格納装置オーバヘッドを提供し、基本チップキル能力及びシステムECCを支援し、そしてメモリコントローラ支援エラー感知メカニズムを支援する。
それだけでなく、本発明の実施形態はメモリチャネル当たり単一のECCチップしか有していないにも拘らず、基本的なチップキル能力及びシステムECCを提供できる。本発明の実施形態はまたメモリコントローラがDRAM装置からの支援を得て故障チップを識別するメカニズムを提供し、DRAM内ECC情報を読み出すメカニズム(例えば、追加的なバーストレングス、追加ピン、又はDRAMからのレジスタ読出し出力を利用することによる)を提供し、エラー種類(例えば、ソフトエラー又はハードエラー)を識別するための再トライメカニズムを提供し、そして個別の又はロックステップ(lock−step)方式のメモリチャネルの中の1つを利用し、且つSEC−DEC(単一エラー訂正・2重エラー感知)又はチップキルECCを利用して、異なるECC能力を提供する。
前記説明は例示的な実施形態を説明するためであり、本発明を制限すると解釈されない。幾つかの例示的な実施形態が説明されたが、当業者は、例示的な実施形態の新規な教示及び長所から実質的に逸脱せずに例示的な実施形態において沢山の修正が可能であることを容易に理解できよう。従って、そのような全ての修正は請求項に定義された例示的な実施形態の範囲内に含まれるように意図される。請求の範囲において、「手段プラス機能」的な表現は構造的等価物のみでなく、等価構造を列挙して本明細書で説明された構造を含むように意図された。従って、前記説明は例示的な実施形態を説明するためであり、開示された特定の実施形態に限定されると解釈されてはならず、開示された例示的な実施形態のみならず、他の例示的な実施形態に対する修正が含まれると理解されなければならない。本発明の概念は、次の請求の範囲によって定義され、請求項の均等物も含まれる。
100,200,300 システム
110,210,310 メモリコントローラ
120,220,320,420 DAECCエンジン
130,230,330 メモリ処理
140a、240a,340a,440a,540a,640a DRAMチップ、データチップ
140b、240b、340b、440b、540b,640b DRAMチップ、ECCチップ
150、250,350,450 メモリチャネル
160、260,360 DDR_DIMM/DRAM、DRAM/DDR_DIMM、DRAM
170、270,370 “一般(normal)”データ
180,280,380 DRAM内ECC情報出力
290 追加ピン

Claims (20)

  1. DDR(double data rate)インタフェイスを利用してDRAM(dynamic random−access memory module、ダイナミックRAMモジュール)のメモリエラーを訂正する方法において、
    前記DRAMのデータチップ(複数)からメモリコントローラへデータを送るために多重のバーストを含むメモリ処理(transaction)を前記メモリコントローラと共に遂行する段階と、
    前記DRAMのECCチップを利用して1つ以上のエラーを感知する段階と、
    前記DRAMの前記ECCチップを利用して前記エラーを有する前記バーストの数を決定する段階と、
    前記エラーを有する前記バーストの数が所定の閾値(threshold number)より大きいか否かを決定する段階と、
    前記エラーの種類を決定する段階と、
    前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階と、を含み、
    前記DRAMは、メモリチャネル当たり1つのECCチップを含むことを特徴とする方法。
  2. 前記DRAMの前記ECCチップを利用して前記1つ以上のエラーを感知する段階は、
    前記ECCチップを利用して前記バーストの各々についてパリティチェック(parity check)を遂行する段階を含むことを特徴とする請求項1に記載の方法。
  3. 前記エラーを有する前記バーストの数が前記閾値より大きくなければ、前記DRAMからメモリ読出しを再トライするように前記メモリコントローラを指示する段階をさらに含むことを特徴とする請求項1に記載の方法。
  4. 前記メモリコントローラが前記メモリ読出しを再トライすれば、追加的なエラーを感知する段階と、
    前記追加的なエラーが前記感知された1つ以上のエラーと同一のエラーパターンを有するか否かを決定する段階と、をさらに含むことを特徴とする請求項3に記載の方法。
  5. 前記追加的なエラーが前記感知された1つ以上のエラーと異なるエラーパターンを有すると決定されれば、前記DRAMからメモリ読出しを再び再トライするように前記メモリコントローラを指示する段階をさらに含むことを特徴とする請求項4に記載の方法。
  6. 前記追加的なエラーが前記感知された1つ以上のエラーと同一のエラーパターンを有すると決定されれば、ハードエラー(hard error)を識別する段階と、
    エラー訂正において前記DRAMを支援するように前記メモリコントローラを指示する段階と、
    前記エラーのアドレス(address)を記録する段階をさらに含むことを特徴とする請求項4に記載の方法。
  7. 前記エラーを有する前記バーストの数が前記閾値より大きければ、前記1つ以上のエラーが同一のチップの同一のピンに対応するか否かを決定する段階をさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記1つ以上のエラーが前記DRAMの同一のチップの同一のピンに対応すると決定されれば、前記エラーは、DQ故障(DQ failure)に対応すると決定する段階と、
    前記1つ以上のエラーが前記同一のチップの前記同一のピンに対応しないと決定されれば、前記1つ以上のエラーは、チップ故障(chip failure)に対応すると決定する段階と、をさらに含むことを特徴とする請求項7に記載の方法。
  9. 前記メモリコントローラを指示する段階は、
    前記1つ以上のエラーが前記DQ故障又は前記チップ故障に対応すれば、チップキル感知(chipkill detection)を支援するようにメモリコントローラを指示する段階を含むことを特徴とする請求項8に記載の方法。
  10. 前記エラーを有する前記バーストの数が前記閾値より大きければ、前記1つ以上のエラーが前記DRAMの1つより多いチップに対応するか否かを決定する段階と、
    前記1つ以上のエラーが前記DRAMの同一のチップに対応すると決定されれば、前記DRAMの該当チップは、消去されたことと表示する段階と、
    前記1つ以上のエラーが前記DRAMの1つより多いチップに対応すると決定されれば、致命的なエラー(fatal error)を識別する段階と、をさらに含むことを特徴とする請求項1に記載の方法。
  11. 前記エラーを有する前記バーストの数が前記閾値より大きければ、前記DRAMの他のチップが以前に消去されたか否かを決定する段階と、
    前記DRAMの前記他のチップが以前に消去されたら、致命的なエラーを識別する段階と、をさらに含むことを特徴とする請求項1に記載の方法。
  12. DDR(double data rate)インタフェイスを通じてメモリコントローラと通信するDRAM(dynamic random−access memory module)において、
    2つのメモリチャネルを含み、
    各メモリチャネルは、
    内部にデータを格納し、1つのメモリ処理(transaction)に対応する各々の多重バーストの間に前記メモリコントローラへ1回データを伝達する多重のデータチップと、
    前記データチップの1つ以上に対応するメモリエラーを有する前記多重バーストの数を決定する1つのECC(error−correction code)チップと、を含むことを特徴とするDRAM。
  13. 前記ECCチップは、エラーを感知し、前記感知されたエラーの種類をDQ故障(DQ failure)、チップ故障(chip failure)、ソフトエラー(soft error)又はハードエラー(hard error)の中で何れか1つとして決定することを特徴とする請求項12に記載のDRAM。
  14. 前記ECCチップは、チップキル感知(chipkill detection)を支援するか、又は前記感知されたエラーの前記決定された種類に従ってエラー訂正を支援するようにメモリコントローラを指示することを特徴とする請求項13に記載のDRAM。
  15. 前記ECCチップがエラーを感知すれば、前記メモリコントローラが前記ECCチップの情報読出し出力を遂行するように前記ECCチップは、前記メモリコントローラへ命令を発行することを特徴とする請求項12に記載のDRAM。
  16. 前記ECCチップが1ビットのECCフラッグ(1−bit ECC flag)を利用してエラーを感知すれば、前記メモリ処理の間に前記メモリコントローラへ警告する(alert)、前記ECCチップと連結された1つのピンをさらに含むことを特徴とする請求項12に記載のDRAM。
  17. 前記データチップ及び前記ECCチップは、各メモリ処理の間に前記メモリコントローラへECCチップの情報読出し出力を提供するために前記多重バーストに加えて追加的なバーストを前記メモリコントローラへ伝達することを特徴とする請求項12に記載のDRAM。
  18. メモリコントローラと、
    データチップ(複数)とECC(error−correction code)チップ(複数)とを含むDRAM(dynamic random−access memory module)と、を含み、
    前記ECCチップの各々は、前記DRAMの該当メモリチャネルの一部のエラーを訂正し、
    前記メモリコントローラは、前記ECCチップが訂正できない他のエラーを訂正するために前記ECCチップを支援することを特徴とするメモリシステム。
  19. 前記ECCチップの各々は、エラー感知に従って前記メモリコントローラへ1ビットのECCフラッグ(1−bit ECC flag)を送るためのピンを含むことを特徴とする請求項18に記載のメモリシステム。
  20. 前記DRAMは、複数のメモリチャネルを含み、
    前記DRAMの前記複数のメモリチャネルの各々は、前記ECCチップの中の1つを含むことを特徴とする請求項18に記載のメモリシステム。
JP2017156564A 2016-08-15 2017-08-14 Ddr sdramインタフェイスのためのdram支援エラー訂正方法 Active JP6882115B2 (ja)

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 (3)

Publication Number Publication Date
JP2018028910A true JP2018028910A (ja) 2018-02-22
JP2018028910A5 JP2018028910A5 (ja) 2020-09-03
JP6882115B2 JP6882115B2 (ja) 2021-06-02

Family

ID=61159099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017156564A Active JP6882115B2 (ja) 2016-08-15 2017-08-14 Ddr sdramインタフェイスのためのdram支援エラー訂正方法

Country Status (5)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019204485A (ja) * 2018-05-25 2019-11-28 エスケーハイニックス株式会社SKhynix Inc. マシンラーニング装置、及びそれを利用したマシンラーニングシステム
US11798599B2 (en) 2019-10-16 2023-10-24 Hewlett-Packard Development Company, L.P. Efficient placement of memory

Families Citing this family (27)

* 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 에스케이하이닉스 주식회사 에러 정정 방법 및 칩 킬 감지 방법
WO2019217118A1 (en) 2018-05-11 2019-11-14 Rambus Inc. Efficient storage of error correcting code information
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 苏州浪潮智能科技有限公司 一种检测内存降级错误的方法和装置
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
WO2022041216A1 (en) * 2020-08-31 2022-03-03 Micron Technology, Inc. Debug capabilities of memory system with pin
CN112115077B (zh) * 2020-08-31 2022-04-19 瑞芯微电子股份有限公司 一种dram内存驱动优化方法和装置
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 에스케이하이닉스 주식회사 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법
US20220342582A1 (en) * 2021-04-27 2022-10-27 Microchip Technology Inc. System and method for double data rate (ddr) chip-kill recovery
DE112022002423T5 (de) * 2021-04-27 2024-02-29 Microchip Technology Inc. System und Verfahren zur Chipkill-Wiederherstellung bei doppelter Datenrate (DDR)
US11934696B2 (en) 2021-05-18 2024-03-19 Microchip Technology Inc. Machine learning assisted quality of service (QoS) for solid state drives
CN117280328A (zh) 2021-06-01 2023-12-22 微芯片技术股份有限公司 存储器地址保护
KR20230003766A (ko) 2021-06-30 2023-01-06 삼성전자주식회사 메모리 컨트롤러의 구동 방법, 이를 수행하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
DE112022002131T5 (de) 2021-09-28 2024-04-11 Microchip Technology Inc. Ldpc-dekodierung mit trapped-block-management
WO2023106434A1 (ko) * 2021-12-06 2023-06-15 주식회사 딥아이 Ddr sdram 인터페이스를 이용한 dram 지원 에러 정정 방법
CN114049905B (zh) * 2021-12-16 2024-04-09 西安紫光国芯半导体有限公司 非易失三维存储单元、存储方法、芯片组件和电子设备
CN114464242A (zh) * 2022-01-13 2022-05-10 深圳市金泰克半导体有限公司 一种ddr测试方法、装置、控制器及存储介质
CN114153402B (zh) * 2022-02-09 2022-05-03 阿里云计算有限公司 存储器及其数据读写方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014093092A (ja) * 2012-11-01 2014-05-19 Samsung Electronics Co Ltd メモリモジュール、それを含むメモリシステム、それの駆動方法
US8935592B2 (en) * 2012-11-20 2015-01-13 Arm Limited Apparatus and method for correcting errors in data accessed from a memory device
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US7949931B2 (en) 2007-01-02 2011-05-24 International Business Machines Corporation Systems and methods for error detection in a memory system
US7721140B2 (en) 2007-01-02 2010-05-18 International Business Machines Corporation Systems and methods for improving serviceability of a memory system
TWI499909B (zh) 2007-01-26 2015-09-11 Cheriton David 階層式不可改變的內容可定址的記憶體處理器
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 杭州华三通信技术有限公司 一种实现差错检查与纠正功能的装置
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 阿尔卡特朗讯公司 验证通信会话的方法、设备及系统
DE112011106021B4 (de) 2011-12-22 2018-05-03 Intel Corporation Zugreifen auf Daten, die in einem Befehls-/Adressregister-Gerät gespeichert sind
US8996950B2 (en) 2012-02-23 2015-03-31 Sandisk Technologies Inc. Erasure correction using single error detection parity
US9600359B2 (en) 2012-05-31 2017-03-21 Hewlett Packard Enterprise Development Lp Local error detection and global error correction
US8996960B1 (en) * 2012-06-26 2015-03-31 Inphi Corporation Vertical error correction code for DRAM memory
US8966348B2 (en) * 2012-11-30 2015-02-24 Hewlett-Packard Development Company, L.P. Memory error identification based on corrupted symbol patterns
CN104813400A (zh) * 2012-11-30 2015-07-29 惠普发展公司,有限责任合伙企业 用于形成基于突发的符号的存储器控制器
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
US10379939B2 (en) 2017-01-04 2019-08-13 Samsung Electronics Co., Ltd. Memory apparatus for in-chip error correction

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014093092A (ja) * 2012-11-01 2014-05-19 Samsung Electronics Co Ltd メモリモジュール、それを含むメモリシステム、それの駆動方法
US8935592B2 (en) * 2012-11-20 2015-01-13 Arm Limited Apparatus and method for correcting errors in data accessed from a memory device
US9043674B2 (en) * 2012-12-26 2015-05-26 Intel Corporation Error detection and correction apparatus and method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"DDR3 SDRAM HIGH-PERFORMANCE CONTROLLER USER GUIDE", vol. Version: 9.0, JPN6020038870, March 2009 (2009-03-01), pages 1 - 1, ISSN: 0004365178 *
HISA ANDO, 「WEB+DB PRESS PLUSシリーズ プロセッサを支える技術 −果てしなくスピードを追求する世界」, vol. 初版, JPN6020038862, 25 January 2011 (2011-01-25), JP, pages 283 - 299, ISSN: 0004365176 *
馬場敬信, 「コンピュータアーキテクチャ(改訂3版)」, vol. 改訂3版, JPN6020038866, 15 November 2011 (2011-11-15), JP, pages 174 - 180, ISSN: 0004365177 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019204485A (ja) * 2018-05-25 2019-11-28 エスケーハイニックス株式会社SKhynix Inc. マシンラーニング装置、及びそれを利用したマシンラーニングシステム
KR20190134293A (ko) * 2018-05-25 2019-12-04 에스케이하이닉스 주식회사 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
JP7292039B2 (ja) 2018-05-25 2023-06-16 エスケーハイニックス株式会社 マシンラーニング装置、及びそれを利用したマシンラーニングシステム
KR102615443B1 (ko) 2018-05-25 2023-12-20 에스케이하이닉스 주식회사 머신 러닝 장치 및 이를 이용한 머신 러닝 시스템
US11972328B2 (en) 2018-05-25 2024-04-30 SK Hynix Inc. Machine learning device and machine learning system using the same
US11798599B2 (en) 2019-10-16 2023-10-24 Hewlett-Packard Development Company, L.P. Efficient placement of memory

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6882115B2 (ja) Ddr sdramインタフェイスのためのdram支援エラー訂正方法
US11037619B2 (en) Using dual channel memory as single channel memory with spares
KR102198611B1 (ko) 메모리 내 에러 수정 방법
CN107943609B (zh) 存储器模块、存储器控制器和系统及其相应操作方法
EP2715550B1 (en) Apparatus and methods for providing data integrity
KR20140013095A (ko) 데이터 무결성을 제공하기 위한 방법 및 장치
US20190034270A1 (en) Memory system having an error correction function and operating method of memory module and memory controller
JP2012514274A (ja) ソリッドステートディスクにおける改良された誤り訂正
JP4349532B2 (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
CN112612637B (zh) 内存数据存储方法、内存控制器、处理器芯片及电子设备
US20230236930A1 (en) Crc raid recovery from hard failure in memory systems
WO2023106434A1 (ko) Ddr sdram 인터페이스를 이용한 dram 지원 에러 정정 방법
KR20180040474A (ko) 칩 단위의 페일 정보를 레포팅하는 메모리 모듈, 메모리 모듈 및 메모리 컨트롤러의 동작 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200721

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200721

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200721

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201013

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210506

R150 Certificate of patent or registration of utility model

Ref document number: 6882115

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150