図面 (/)

技術 DDR SDRAMインタフェイスのためのDRAM支援エラー訂正メカニズム

出願人 三星電子株式会社
発明者 ニゥ,ディ-ミンチャン,ムゥ-ティェンゼング,ホング-ゾングキム,ヒュン-ジューングソング,ウォン-ヒュングチェ,ジャング-ソク
出願日 2017年8月14日 (4年3ヶ月経過) 出願番号 2017-156564
公開日 2018年2月22日 (3年8ヶ月経過) 公開番号 2018-028910
状態 特許登録済
技術分野 エラー時の再試行 エラーの検出訂正
主要キーワード 一時的エラー チップピン 故障種類 感知メカニズム 基本チップ バースティング 書込み過程 コンピュータマザーボード
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年2月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (9)

課題

DDR SDRAMインタフェイスのための、システムECCオーバヘッドを抑制したDRAM(本発明では、ダイナミックRAMモジュールの略とする)エラー訂正方法を提供する。

解決手段

前記DRAMのデータチップ(複数)からメモリコントローラへデータを送るために多重バーストを含むメモリ処理(transaction)を前記メモリコントローラと共に遂行する段階と、前記DRAMのECCチップ単数)を利用して1つ以上のエラー感知する段階と、前記DRAMの前記ECCチップを利用して前記エラーを有する前記バーストの数を決定する段階と、前記エラーを有する前記バーストの数が所定の閾値より大きいか否か決定する段階と、前記エラーの種類を決定する段階と、前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階と、を含み、前記DRAMはメモリチャネル当たり1つのECCチップを含む。

概要

背景

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技術を利用してDDRRAS(reliability、availability、and serviceability)を維持することは難しい。それだけでなくDIMM当たりメモリチャネル数が増加すると、チップキル技術は追加的なECCオーバヘッドを必要とする。

従って、エラー訂正及びデータ復元の新しい方法を提供し、その際、メモリコントローラからの支援無しで内部的に一部の類型のメモリエラーを訂正することが可能であり、且つ、メモリコントローラからの支援を内部的に訂正できない他の類型のエラーのメモリ訂正に向けることが可能である、DRAMDIMMを提供することが有用である。

概要

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

目的

従って、エラー訂正及びデータ復元の新しい方法を提供し、その際、メモリコントローラからの支援無しで内部的に一部の類型のメモリエラーを訂正することが可能であり、且つ、メモリコントローラからの支援を内部的に訂正できない他の類型のエラーのメモリ訂正に向けることが可能である、DRAMDIMMを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

DDR(doubledatarate)インタフェイスを利用してDRAM(dynamicrandom−accessmemorymodule、ダイナミックRAMモジュール)のメモリエラー訂正する方法において、前記DRAMのデータチップ(複数)からメモリコントローラへデータを送るために多重バーストを含むメモリ処理(transaction)を前記メモリコントローラと共に遂行する段階と、前記DRAMのECCチップを利用して1つ以上のエラー感知する段階と、前記DRAMの前記ECCチップを利用して前記エラーを有する前記バーストの数を決定する段階と、前記エラーを有する前記バーストの数が所定の閾値(thresholdnumber)より大きいか否かを決定する段階と、前記エラーの種類を決定する段階と、前記決定された前記エラーの種類に基づいて前記メモリコントローラを指示する段階と、を含み、前記DRAMは、メモリチャネル当たり1つのECCチップを含むことを特徴とする方法。

請求項2

前記DRAMの前記ECCチップを利用して前記1つ以上のエラーを感知する段階は、前記ECCチップを利用して前記バーストの各々についてパリティチェック(paritycheck)を遂行する段階を含むことを特徴とする請求項1に記載の方法。

請求項3

前記エラーを有する前記バーストの数が前記閾値より大きくなければ、前記DRAMからメモリ読出しを再トライするように前記メモリコントローラを指示する段階をさらに含むことを特徴とする請求項1に記載の方法。

請求項4

前記メモリコントローラが前記メモリ読出しを再トライすれば、追加的なエラーを感知する段階と、前記追加的なエラーが前記感知された1つ以上のエラーと同一のエラーパターンを有するか否かを決定する段階と、をさらに含むことを特徴とする請求項3に記載の方法。

請求項5

前記追加的なエラーが前記感知された1つ以上のエラーと異なるエラーパターンを有すると決定されれば、前記DRAMからメモリ読出しを再び再トライするように前記メモリコントローラを指示する段階をさらに含むことを特徴とする請求項4に記載の方法。

請求項6

前記追加的なエラーが前記感知された1つ以上のエラーと同一のエラーパターンを有すると決定されれば、ハードエラー(harderror)を識別する段階と、エラー訂正において前記DRAMを支援するように前記メモリコントローラを指示する段階と、前記エラーのアドレス(address)を記録する段階をさらに含むことを特徴とする請求項4に記載の方法。

請求項7

前記エラーを有する前記バーストの数が前記閾値より大きければ、前記1つ以上のエラーが同一のチップの同一のピンに対応するか否かを決定する段階をさらに含むことを特徴とする請求項1に記載の方法。

請求項8

前記1つ以上のエラーが前記DRAMの同一のチップの同一のピンに対応すると決定されれば、前記エラーは、DQ故障(DQfailure)に対応すると決定する段階と、前記1つ以上のエラーが前記同一のチップの前記同一のピンに対応しないと決定されれば、前記1つ以上のエラーは、チップ故障(chipfailure)に対応すると決定する段階と、をさらに含むことを特徴とする請求項7に記載の方法。

請求項9

前記メモリコントローラを指示する段階は、前記1つ以上のエラーが前記DQ故障又は前記チップ故障に対応すれば、チップキル感知(chipkilldetection)を支援するようにメモリコントローラを指示する段階を含むことを特徴とする請求項8に記載の方法。

請求項10

前記エラーを有する前記バーストの数が前記閾値より大きければ、前記1つ以上のエラーが前記DRAMの1つより多いチップに対応するか否かを決定する段階と、前記1つ以上のエラーが前記DRAMの同一のチップに対応すると決定されれば、前記DRAMの該当チップは、消去されたことと表示する段階と、前記1つ以上のエラーが前記DRAMの1つより多いチップに対応すると決定されれば、致命的なエラー(fatalerror)を識別する段階と、をさらに含むことを特徴とする請求項1に記載の方法。

請求項11

前記エラーを有する前記バーストの数が前記閾値より大きければ、前記DRAMの他のチップが以前に消去されたか否かを決定する段階と、前記DRAMの前記他のチップが以前に消去されたら、致命的なエラーを識別する段階と、をさらに含むことを特徴とする請求項1に記載の方法。

請求項12

DDR(doubledatarate)インタフェイスを通じてメモリコントローラと通信するDRAM(dynamicrandom−accessmemorymodule)において、2つのメモリチャネルを含み、各メモリチャネルは、内部にデータを格納し、1つのメモリ処理(transaction)に対応する各々の多重バーストの間に前記メモリコントローラへ1回データを伝達する多重のデータチップと、前記データチップの1つ以上に対応するメモリエラーを有する前記多重バーストの数を決定する1つのECC(error−correctioncode)チップと、を含むことを特徴とするDRAM。

請求項13

前記ECCチップは、エラーを感知し、前記感知されたエラーの種類をDQ故障(DQfailure)、チップ故障(chipfailure)、ソフトエラー(softerror)又はハードエラー(harderror)の中で何れか1つとして決定することを特徴とする請求項12に記載のDRAM。

請求項14

前記ECCチップは、チップキル感知(chipkilldetection)を支援するか、又は前記感知されたエラーの前記決定された種類に従ってエラー訂正を支援するようにメモリコントローラを指示することを特徴とする請求項13に記載のDRAM。

請求項15

前記ECCチップがエラーを感知すれば、前記メモリコントローラが前記ECCチップの情報読出し出力を遂行するように前記ECCチップは、前記メモリコントローラへ命令発行することを特徴とする請求項12に記載のDRAM。

請求項16

前記ECCチップが1ビットのECCフラッグ(1−bitECCflag)を利用してエラーを感知すれば、前記メモリ処理の間に前記メモリコントローラへ警告する(alert)、前記ECCチップと連結された1つのピンをさらに含むことを特徴とする請求項12に記載のDRAM。

請求項17

前記データチップ及び前記ECCチップは、各メモリ処理の間に前記メモリコントローラへECCチップの情報読出し出力を提供するために前記多重バーストに加えて追加的なバーストを前記メモリコントローラへ伝達することを特徴とする請求項12に記載のDRAM。

請求項18

メモリコントローラと、データチップ(複数)とECC(error−correctioncode)チップ(複数)とを含むDRAM(dynamicrandom−accessmemorymodule)と、を含み、前記ECCチップの各々は、前記DRAMの該当メモリチャネルの一部のエラーを訂正し、前記メモリコントローラは、前記ECCチップが訂正できない他のエラーを訂正するために前記ECCチップを支援することを特徴とするメモリシステム

請求項19

前記ECCチップの各々は、エラー感知に従って前記メモリコントローラへ1ビットのECCフラッグ(1−bitECCflag)を送るためのピンを含むことを特徴とする請求項18に記載のメモリシステム。

請求項20

前記DRAMは、複数のメモリチャネルを含み、前記DRAMの前記複数のメモリチャネルの各々は、前記ECCチップの中の1つを含むことを特徴とする請求項18に記載のメモリシステム。

技術分野

0001

本発明はメモリエラー訂正のための方法及びメカニズムに係る。

背景技術

0002

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倍の帯域幅を達成する。

0003

多様な世代のDRAMは一般的な類型データエラー感知し、時には訂正するためにデータ格納の最中にECC(error−correcting code、エラー訂正コードメモリを利用できる。ECCメモリパリティ検査(parity checking)の利用を通じて、単一のビットエラーを感知し、後の誤動作を防止できる(immune)。DRAMシステムにおいては、パリティ検査は、メモリ(例えば、DRAMモジュールパリティ装置又はECCチップ)に、格納されたデータ(例えば、1バイトデータ)の(奇数又は偶数パリティを示す余分のパリティビットを格納しておき、独立的にパリティを計算し、そして格納されたパリティと計算されたパリティとを比較してデータエラー/メモリエラーが発生したか否かを感知することによって達成される。

0004

従って、DRAMモジュール(例えば、DIMM(dual in−line memory module))で回収された(retrieved)、データワード(data word)又はデータシンボル(data symbol)に対応するデータがDRAMモジュールに書き込まれたデータと同一であることを保証するために、ECCはデータの1つ以上のビットが間違った状態にフリップされた場合に発生するエラーを訂正できる。

0005

即ち、ECCリダンダンシ(Redundancy)を利用して、ECCチップはSEC−DED(single error correction,double error detection、単一エラー訂正・2重エラー感知)を遂行する。これは、ECCチップが1つのバースト(burst)で発生する2つのエラーの存在を感知でき、そしてまた孤立して発生した単一の間違ったビットを訂正できることを意味する。即ち、1つのデータチップがエラーを含む(corrupted)場合、即ち損失された(lost)場合、残っているデータチップのデータ及びECCチップのECCデータを利用して、エラーを含む、即ち損失された(missing)データチップのデータは復元可能である。

0006

追加的に、DRAMシステムは、非機能的(nonfunctional、機能を喪失した)データチップの消去(erasing)、即ち不能化(disabling)のためのチップキル(chipkill)メカニズムを含み得る。DDR4の多様なチップキルメカニズムは、非機能的チップを感知し、そのモジュール上の位置を見つけ出し、そして消去するために、メモリチャネル当たり2つ以上のECC装置/チップを利用する。

0007

例えば、一般的なDDR4は、8nのプリフェッチレングス(prefetch length)、8のバーストレングス(burst length、即ち、メモリ処理(transaction、一連の処理、以下、単に「処理」という)当たり8個のバースト)、そして64ビットのメモリチャネル幅(width)を含む。ここで、nは該当システム構造で利用されるデータのインタフェイス幅(interface width)のビット数である(例えば、インタフェイス幅が4ビットであれば、該当DDR4システムのプリフェッチレングスは32ビットである)。従って、DDR4は1つのメモリ処理毎に512ビットを伝送する。

0008

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つのメモリチャネルは互いに独立的に効果的に動作する。

0009

DDR4より狭いメモリチャネルを有するにも拘らず、新しいDDRインタフェイスは、各メモリチャネルに対してデータを格納し、伝送するように構成される8個のデータ装置(例えば、4ビットのデータチップ)を備えてメモリチャネル当たり32ビットのデータ幅を含む。このような新しいDDRインタフェイスは、また各メモリチャネルに対して1つの4ビットECCチップを備えてメモリチャネル当たり4ビットのECC幅を有する。従って、DDR4のメモリチャネル幅の半分を有することを補償するために、このような新しいDDRインタフェイスはDDR4の2倍のバーストレングスを有する。このような新しいDDRインタフェイスは2つのメモリチャネルを含み、各メモリチャネルはデータを格納するための専用の8個の4ビットデータチップを有するので、バースト当たり総計64ビットのメモリデータがある。

0010

それだけでなく、メモリチャネル当たり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ビットのデータを伝送する。

0011

システムECCオーバヘッドはデータ幅の減少に対応して増加するので、現在DDR4技術を利用してDDRRAS(reliability、availability、and serviceability)を維持することは難しい。それだけでなくDIMM当たりメモリチャネル数が増加すると、チップキル技術は追加的なECCオーバヘッドを必要とする。

0012

従って、エラー訂正及びデータ復元の新しい方法を提供し、その際、メモリコントローラからの支援無しで内部的に一部の類型のメモリエラーを訂正することが可能であり、且つ、メモリコントローラからの支援を内部的に訂正できない他の類型のエラーのメモリ訂正に向けることが可能である、DRAMDIMMを提供することが有用である。

先行技術

0013

米国特許第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号明細書

発明が解決しようとする課題

0014

上述した技術的課題を解決するためになされた本発明の目的は、DDR SDRAMインタフェイスのための、システムECCオーバヘッドを抑制したDRAMモジュール支援エラー訂正メカニズムを提供することにある。
以下、本発明では、複数の、通常のDRAM(dynamic random−access memory、ダイナミックRAM)を含むモジュールを簡潔に「DRAM」(dynamic random−access memory module、ダイナミックRAMモジュール)と呼び、通常の個々のDRAM(dynamic random−access memory、ダイナミックRAM)をチップと呼ぶ。チップは、データチップとECCチップを含む。

課題を解決するための手段

0015

本開示の実施形態の様相は、エラーを訂正するために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チップを含む。

0016

前記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の前記他のチップが以前に消去されたら、致命的なエラーを識別する段階をさらに含むことができる。

0017

本発明の他の実施形態によれば、DDR(double data rate)インタフェイスを通じてメモリコントローラと通信するDRAM(dynamic random−access memory module)が提供され、該DRAMは2つのメモリチャネルを含み、各メモリチャネルは、内部にデータを格納し、1つのメモリ処理(transaction)に対応する各々の多重バーストの間に前記メモリコントローラへ1回データを伝達する多重データチップ及び前記データチップの1つ以上に対応するメモリエラーを有する前記多重バーストの数を決定する1つのECC(error−correction code)チップを含む。

0018

前記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チップの情報読出し出力を提供するために前記多重バーストに加えて追加的なバーストを前記メモリコントローラへ伝達することができる。

0019

本発明の他の実施形態によれば、メモリコントローラ及びデータチップ(複数)とECC(error−correction code)チップ(複数)とを含むDRAM(dynamic random−access memory module)を含み、前記ECCチップの各々は前記DRAMの該当メモリチャネルの一部のエラーを訂正し、前記メモリコントローラは前記ECCチップが訂正できない他のエラーを訂正するために前記ECCチップを支援するメモリシステムが提供される。

0020

前記ECCチップの各々はエラー感知に従って前記メモリコントローラへ1ビットのECCフラッグ(1−bit ECC flag)を送るためのピンを含むことができる。
前記DRAMは複数のメモリチャネルを含むことができ、前記DRAMの前記複数のメモリチャネルの各々は前記ECCチップの中の1つを含むことができる。

発明の効果

0021

本発明の実施形態は、DDR4によって提供されるような基本チップキルRAS特徴を提供できるアーキテクチャの具現に際して、ECC機能を内蔵しない複数のデータチップと単一のECCチップを有するので、ECCチップオーバヘッド(即ち、メモリチャネル当たり1つのECCチップ)を最小限に削減し、内部プリフェッチの大きさを最小限に削減し、しかもDDR4に対応するインタフェイスに対するDDRインタフェイスの変更を最小限に抑制するだけで、このような特徴を提供することが可能になる。

図面の簡単な説明

0022

本発明のこれら及び他の様相は本明細書、請求の範囲、及び添付図面を参照して認識され、理解されるべきである。
本発明の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
本発明の他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
本発明のその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。
本発明の1つ以上の実施形態に係ってDAECC(DRAMassist error correction code)メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング(handling)することを示した順序図である。
本発明の1つ以上の実施形態に係ってDAECC(DRAM assist error correction code)メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング(handling)することを示した順序図である。

実施例

0023

本発明の特徴及びこれを達成する方法は以下の実施形態及び添付された図面の詳細な説明を参照すれば、さらに容易に理解されることができる。以下、本発明の実施形態は同一の参照番号は同一の構成要素を参照する添付された図面を参照してさらに詳細に説明される。しかし、本発明は多様な形態に具体化されることができ、本明細書で図示された実施形態のみに限定されることと解釈されない。むしろ、このような実施形態は本発明が徹底であり、完全であり、本発明の様相及び特徴を当業者に十分に伝達できるように例として提供される。従って、本発明の様相及び特徴の完全な理解のために当業者に不必要なプロセス、要素、及び技術は説明されないことがある。その他の言及が無い限り、添付図面及び詳細な説明の全般にわたって同一の参照符号は同一の要素を示し、従って、その説明は反複しない。図面で、要素、層、及び領域の相対的な大きさは明確性のために誇張されることができる。

0024

“第1”、”第2”、“第3”等の用語は本明細書で多様な構成要素、成分、領域、層及び/又はセクションを説明するために利用されることができるが、このような構成要素、成分、領域、層及び/又はセクションはこのような用語によって制限されないことと理解されるべきである。このような用語は1つの要素、成分、領域、層又はセクションを他の要素、成分、領域、層又はセクションと区別するために利用される。従って、以下で説明される第1構成要素、成分、領域、層、又はセクションは本発明の思想及び範囲を逸脱しなく、第2構成要素、成分、領域、層、又はセクションとして説明されることができる。

0025

1つの要素又は図面で図示された他の構成要素又は特徴との特徴的な関係を説明するための説明を容易にするために“下の”、“下”、“低い”、“特定部分の下”、“上に”、“上部”と同一の空間的であり、相対的な用語がここで使用されることができる。空間的であり、相対的な用語は図面で示された方向に加えて使用又は動作で装置の他の方向を含むように意図されたことが理解されるべきである。例えば、仮に図面の装置が裏返したら、他の構成要素又は特徴の“下”又は“下の”又は“特定部分の下”として説明された構成要素は他の構成要素又は特徴の“上に”合わせられるようになる。従って、“下の”又は“特定部分の下”の例示的な用語は上又は下方向の全てを含むことができる。装置は異なりに合わせられ(例えば、90°は他の方向に回転されること)、そして空間的に相対的な技術語はそれに従って解釈されなければならない。

0026

要素、層、領域、又は成分が他の構成要素、層、領域又は成分“に”、“に結合された”、“に連結された”ことと言及される時、それは他の要素、層、領域、又は成分“に直接的に”、“に直接的に結合された”、“に直接的に連結された”ことであるか、或いは1つ以上の間の要素、層、領域、又は成分が存在することができる。また、構成要素又は層が2つの要素又は層の間として言及される時、それは単なる要素又は層が2つの構成要素又は層間にあるか、又は1つ以上の間の構成要素又は層がまた存在することができる。

0027

次の例で、x軸、y軸、及びz軸は直角座標システムの3つの軸に限定されなく、広い意味として解釈されることができる。例えば、x軸、y軸、及びz軸は互いに直交することができ、又は互いに直交しない他の方向を示すことができる。

0028

本明細書で使用された用語は単なる特定な実施形態を説明するためのことであり、本発明を制限しようとすることと意図されなかった。本明細書で使用されたように、文脈の上に明確に異なりに意味しない限り、単数形態の“1つ”は複数の形態も含むことと意図される。“構成される”、“構成されている”、“含む”、及び“含んでいる”の用語が本明細書で使用される時、このような用語は定まれた特徴、整数、段階、動作、要素、及び/又は成分が存在を明示するが、1つ以上の他の特徴、整数、段階、動作、要素、成分、及び/又はそれらのグループの追加又は存在を不可能なことではない。本明細書で使用されたように、“及び/又は”の用語は1つ以上の列挙された項目連関された任意のそして全ての組み合わせを含む。“少なくとも1つ”のような表現は要素の全体リスト修正し、そしてリストの個別要素を修正しない。

0029

本明細書で使用されたように、“大体に”、“約”の用語及びこれと類似な用語は近似値の用語として使用され、程度の用語として使用されなく、本発明の当業者によって識別される測定された又は計算された値の固有な変動を考慮するためのことである。また、本発明の実施形態を記述する時、“することができる”の使用は“本発明の1つ以上の実施形態”を意味する。本明細書で使用されたように、“使用”、“使用される”、そして“使用された”の用語は“利用”、“利用される”、そして“利用された”の用語の同義語として各々看做されることができる。また、“例示”の用語は例又は図面を意味する。

0030

特定の実施形態は異なりに具現される場合、特定プロセス順序は説明された順序と異なりに遂行されることができる。例えば、説明された連続的な2つのプロセッサは同時に概ね遂行されるか、或いは説明された順序と反対順序に遂行されることもできる。

0031

本明細書で記述された本発明の実施形態による電子又は電気装置及び/又は他の任意の関連された装置又は要素は任意の適合ハードウェアファームウェア(例えば、Application Specific IntegratedCircuit、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つ以上の他のコンピューティング装置に分散されることを認識しなければならない。

0032

異なって定義されない限り、本明細書で使用された全ての用語(技術的及び科学的用語を含む)は本発明が属する技術分野で当業者によって一般的に理解される同一の意味を有する。一般的に使用される事前に定義されたこのような用語は本明細書及び/又は関連技術の文脈でそれらの意味と一致する意味を有することと解釈されるべきであり、本明細書で明確に定義されない限り、理想化されるか、或いは過度形式的なこととして解釈されてはならない。

0033

図1乃至図3と関連されて以下で説明される本発明の実施形態は基本チップキルを提供する。DDR4のメカニズムと同一のカバレージ(coverage)を欠くにも拘らず、新しいDDRインタフェイスはメモリチャネル当たり単一のECCチップしか有しないにも拘らず、単一ダイ/チップ訂正を提供することができる。追加的に、以下で説明されるメカニズムはデータチップがフェイル(Fail、誤動作)した場合を識別するためにECCチップから提供されるECC情報を利用できる。

0034

図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を利用可能にする。

0035

図1に示したように、本発明の実施形態に係るシステム100は内部に格納されたDAECCエンジン(DRAMAssist 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ビット情報を提供する。

0036

DRAM160の各メモリチャネル150はデータの受信、格納、及び伝達のために8個の4ビットデータチップ(例えば、8個のデータ装置、140a)を含む。DIMM/DRAMのメモリチャネル当たり2つのECCチップを利用するDDR4と異なり、本発明の実施形態のDRAM160はメモリコントローラ110にECCデータを伝送するためにメモリチャネル150当たり1つの4ビットECCチップ(例えば、1つのパリティ装置又はパリティチップ、140b)を含む。メモリチャネル150当たり単一のECCチップ140bのみを含むにも拘らず、本発明の実施形態のDRAM160はシステム内エラー訂正及び基本的なチップキル能力を提供でき、これは以下でさらに説明される。

0037

本発明の実施形態で、DRAM160はバーストを利用してメモリコントローラ110とメモリ処理130を遂行する際に、これによって、別々の処理において各データ片を伝送するために従来ならば要求されるであろう他の段階を省略して、DRAM160は反復的にデータを伝送する。従って、DRAM160は、特定条件下に制限された時間区間内に対してではあるけれども、バースティング(bursting)無しで伝送するより速くデータを伝送できる。

0038

DRAM160の狭いメモリチャネル幅を補償するために、DRAM160は、8のバーストレングスを含むDDR4を利用するDIMMのバーストレングスの2倍である16のバーストレングスを含む。即ち、2つのメモリチャネル150の各々のデータ幅が、DDR4において利用されるメモリチャネルのデータ幅の半分しか無いことを補償するために、DRAM160は各メモリ処理130で4ビット幅チップ140a、140bの各々に格納されたデータのバースト数を、DDR4と比較して2倍だけ内部的にプリフェッチする。

0039

従って、メモリチャネル150当たり36ビット(即ち、9個のチップ140a、140bの各々でチップ当たり4ビットずつ)がバースト毎に送られ、データ幅はメモリチャネル150当たり32ビット、ECC幅はメモリチャネル150当たり4ビットである。これはチャネル当たりメモリ処理130当たり総計576ビットに相当し(即ち、バースト当たり36ビットにメモリ処理130当たり16個のバーストを乗じて得られる)、その内、全体データブロックは512ビットを占め、残る64ビットはメモリチャネル150のECCチップ140bのECCデータに該当する。

0040

追加的に、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とを協同させる。

0041

DRAM内128ビットのグループ毎に、DRAMレベル(即ち、メモリコントローラ110の支援無しで)で内部エラー感知を遂行する1つのECCチップ140bを利用することによって、DRAM内ECCはチップ内部で内部的に生成されたECCビットを利用して単一ビットエラーを訂正する。本発明の実施形態は、DDR4でのメモリアプリケーションに対する何らの変更も齎さず、DRAM160とメモリコントローラ110との間に異なるインタフェイスを持ち込まない。従って、内部ECCを提供することによって、エラー復元情報は一般的なデータ伝送170内に含まれず、メモリコントローラ110に伝達されない。従って、ECCチップ140bによるエラーの訂正はメモリコントローラ110とのメモリ処理130の速度又は性能に影響を及ぼさない。

0042

しかし、或る特定の種類のエラーは、ECCチップ140b単独では訂正できない。その場合、メモリコントローラ110がデータ内エラーを感知すれば(例えば、DRAM160がメモリコントローラ110にエラーの存在を示せば)、この時のみ、メモリコントローラ110はエラー訂正をトライするためにDRAM160に対して特別な命令を発行(issue)する。即ち、システム/メモリコントローラECCエラーが発生した時のみ、メモリコントローラ110はDIMMに特定命令送り、DRAM160からDRAM内ECC情報出力180に含まれた情報を受信する。その後に、メモリコントローラ110は対応するメモリチャネル150の8個のデータチップ140aの中の何れに感知されたエラーの原因があるか否かを決定する。メモリコントローラ110が、故障したデータチップの位置を探すために利用する方法は図7乃至図8を参照して以下で説明される。

0043

図2は本発明の他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。前述した実施形態のエラー訂正メカニズムと同様に、本発明の実施形態はメモリ処理当たり16個のバーストを遂行する。同様に、メモリコントローラ210は内部に格納されたDAECCエンジン220を含み、DRAM260の各メモリチャネル250は一般的なデータ270の交換のために8個のデータチップ240a及び1つのECCチップ240bを含む。
しかし、前述した実施形態と異なり、DRAM260は追加的なピンを通じてメモリコントローラ210に1ビットECCフラッグ(flag)を送ることによってECCエラーをメモリコントローラ210に通知する。

0044

図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に提供される。

0045

従って、8個のデータチップ240aの中で1つに対応するメモリエラーが発生すれば、本発明の実施形態のECCチップ240bのピン290は、メモリコントローラ210にエラーが発生したことを通知するために1ビットECCフラッグを設定するために利用される。ピン290を通じて1ビットECCフラッグを感知すると、メモリコントローラ210はエラーと関連されたDRAM260からさらに詳細な情報を得るために特定命令を発行する。メモリコントローラ210は図1を参照して説明された実施形態のシステム100と類似のDRAM内ECC情報出力280を利用してDRAM260から情報を得る。

0046

図1を参照して説明されたシステム100の実施形態と異なり、DRAM260及びメモリコントローラ210の間のDDRインタフェイスは従来のDDR4から変更される。しかし、他の576データビットと共にピン290を通じて1ビットECCフラッグが伝送されるので、性能は悪い影響を受けず、従ってメモリ処理230当たり時間が増加しない。

0047

図3は本発明の更にその他の実施形態に係るDDRインタフェイスのためのエラー訂正メカニズムを示したブロック図である。

0048

図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情報を識別できる。

0049

上述のように、図1の実施形態のシステム100においては、システム/メモリコントローラECCエラー(例えば、DRAM160のECCチップ140bによって修正できないエラー)が生じた時のみにメモリコントローラ110がDRAM内ECC情報の情報出力180の読出しを遂行した。しかし、これと異なり、本発明の実施形態のメモリコントローラ310は追加的な17番目のバーストを通じてメモリ処理330毎にDRAM内ECC情報出力380の読出しを遂行する。追加的に、メモリコントローラ310はシステムレベルのDRAM内ECCによって(例えば、DRAM360内で)遂行されるのと同一の、エラー訂正動作を常に遂行する。

0050

前述した実施形態では、DAECCメカニズムが4ビットDRAMチップを利用して新しい、狭いDDRインタフェイスに利用できることを説明したが、DAECCメカニズムは仮にDRAMチップの内部でDRAM内ECCが遂行されれば、新しいDDRインタフェイスを利用する他のDRAMアーキテクチャと共に利用されるか、或いはDDR4と類似なインタフェイスにおいて利用され得る。

0051

例えば、図4はDAECCエンジン420が8ビットDRAMチップ440a、440bと共に新しい狭いDDRインタフェイスと関連されて利用できることを示す。このような実施形態で、各チャネル450はデータを格納するための4つの8ビットDRAMチップ440aを含み、システムECCを格納するための1つの8ビットDRAMチップ440bを含む。従って、本発明の実施形態のシステムECCオーバヘッドは1/4、即ち25%である。

0052

他の例を挙げれば、図5はDAECCエンジンが4ビットDRAMチップ540a、540bと共にDDRインタフェイスに利用できることを示す。本発明の実施形態で、各チャネル550はデータを格納するための16個の4ビットDRAMチップ540aを含み、システムECCを格納するための1つの4ビットDRAMチップ540bを含む。従って、この実施形態のシステムECCオーバヘッドはDDR4標準の現行ECCオーバヘッドの半分である1/16、即ち6.25%である。

0053

その他の例えば、図6はDAECCエンジンが8ビットDRAMチップ640a、640bと共にDDR4インタフェイスで利用されることができることを示す。このような実施形態で、各チャネル650はデータを格納するために8個の8ビットDRAMチップ640aを含み、システムECCを格納するために1つの8ビットDRAMチップ640bを含む。従って、システムECCオーバヘッドは1/8、即ち12.5%である。

0054

要約すれば、前述した実施形態におけるDAECCは、追加的な1つのECCDRAMチップを利用し、且つ、DRAM内ECC情報を利用して、任意の種類の構造を有するメモリシステムに対して基本的なチップキル範囲(chipkill coverage)を提供するための、一般的なメカニズムである。

0055

図7及び図8は本発明の1つ以上の実施形態に係ってDAECC(DRAMassist error correction code)メカニズムを利用してエラーの感知、エラー種類の決定、そしてエラーをハンドリング(handling)することを示した順序図である。

0056

以下で説明される順序図は図1乃至図6を参照して各々説明された任意のシステムにおいて具現できる。メモリコントローラがDRAM内エラー発生を認識すれば、メモリコントローラはエラーパターン(error pattern)を決定するようにトライする。エラーパターンに従って、メモリコントローラはエラーがランダムエラー(random error、(非永久的なエラー))、永久的なエラー(permanent error)、又はチップキルエラー(chipkill error)に対応するか否かを決定する。エラーの種類決定に従って、システムはエラー訂正を遂行する。

0057

様々な種類のエラーの中で、或る種のエラーはチップキルエラーであると言及される。チップキルエラーは、チップの永久的な故障(failure)、即ちビットエラーの数が或る閾値を超過した単一のチップ/ダイと一般的に対応する。メモリチャネル上の単一の4ビットデータチップの故障はメモリ処理の最中に、多数のバーストにおいて前記データチップに対応する多数の4ビットに対する間違ったデータの提供を惹起する(例えば、前記データチップに対応する4ビットシンボル内多数のエラー)。
従って、本発明の実施形態は、単一チップが何時フェイル(fail)したかを感知し、その後に単一チップ訂正を引き続き提供しながら、そのチップを非活性化する。即ち、本発明の実施形態は、1つのチップに対応する反複的に間違った4ビットを1つのシンボル(symbol)としてグループ化し、フェイル(failed)/デッド(dead)/消去(erased)チップに対応するデータを復旧するためにシンボルベースのメカニズム(symbol−based mechanism)を利用する。

0058

エラーの他の種類はDQエラーであると言及される。前述した通り、説明された実施形態のDRAMで、各チップは4つのデータピンを含み、各ピンはチップに格納された4つのビットの中で1つを出力する。各ピンはDQであると言及される。仮に1つのチップのピンの中で1つがフェイルであれば(全体チップの故障と対照的に)、バーストの各々でそのピンから提供されるデータは潛在的にエラーとなる。従って、ピン故障はDQエラーであると言及される。

0059

説明された実施形態は各チップの間にインターリーブされる(interleaved)簡単なパリティアルゴリズム(parity algorithms)を利用できる。例えば、説明された実施形態はRAID(redundant array of independent disks)構成を利用する(例えば、RAID4と類似な構成)。RAID4は専用パリティディスク(dedicated parity disk)及び多重ディスク(例えば、チップ)にわたったブロックレベルストライピング(block−level stripingacross multiple disks)を利用するRAID構成である。ディスクストライピングはデータのグループをブロックに分割し、そして2つ又はそれ以上の格納装置(例えば、データチップ)にわたってブロックを分散配置(spread)することを含む。

0060

従って、ECCチップに格納されたデータは4個のパリティビットと対応し、8個のデータチップの中の1つからの各ビットはECCチップによって格納された互いに異なるパリティビットに寄与し、全てのデータチップの中で対応するピンからの1つのビットはパリティビット(例えば、ECCチップの1つのECCグループ)の中の1つに寄与する。仮にホストメモリコントローラがデータ及びECC情報を利用して1つのピンに対応して繰り返し発生する1つの1ビットエラーを感知すれば、ホストメモリコントローラは4つの可能なビット位置の中で同一のビット位置からエラーを識別する(即ち、ECCチップの同一パリティビットはバーストの中で一部で発生するエラーを含む)。以下で説明されるように、感知されたエラーパターンからの情報はエラーが何処にあるかを決定するために利用される(例えば、8個のデータチップの中でどれがエラーを引き起こすピンを含むか)。

0061

図7を参照すれば、S701段階で、エラーが感知される。エラーは図1乃至図3を参照して前述した任意のエラー感知方法によって(例えば、追加的なピン290(図2)を通じてメモリコントローラ210によって感知されるECCフラッグ、又はメモリ処理330の17番目のバーストの間のDRAM内ECC情報出力380(図3)でメモリコントローラ310によって感知されるエラー)及び/又はホストメモリコントローラで遂行されるシステムECC(例えば、RAIDと類似なパリティチェック)によって感知される。

0062

システムがS701段階でDRAM/DDR_DIMMから一部のエラーがあると決定すれば、S702段階で幾つのバーストがエラーを有するかが決定される。これはメモリ処理のバースト毎にパリティチェックを為すことにより遂行できる。異なる種類の故障は異なるエラーパターンを含むので、閾値、又は参照数字、“n”が、感知されたエラーの種類を分類するために利用される。
例えば、ECCチップの同一のピン位置にECCエラーがあっても、DQ故障はメモリ処理の全部又は多数のバーストにおいて単なる1ビットパリティエラーとなる。しかし、チップ故障は全部又は多数のバーストにおいて多重ビットのパリティエラー(例えば、4ビットパリティエラー)となる可能性が大きい。追加的に、ランダムエラーは少数のエラーに対応し、少数のバーストに極めて少数のエラービットがある場合に対応する(例えば、単一のバーストで単一の1ビットエラー)。

0063

従って、感知されたエラーの数が閾値より大きい場合、DQ故障又はチップ故障が発生したと予測される。しかし、感知されたエラーの数が閾値より小さいか、或いは同一である場合、1つ以上の個別的なチップから1つ以上のランダムエラーが発生したと予測され、これはDRAM内ECCでは訂正不能であり、訂正のためにメモリコントローラから支援が必要である。

0064

従って、S702段階で、与えられたメモリ処理においてエラーを有するバーストの数が閾値“n”を超過するかが決定される。閾値に到達したか否かによって、S703段階又はS710段階の中の何れか1つに進行される。即ち、十分に多い数のバーストがパリティエラーを有すると決定されれば(例えば、与えられたメモリ処理においてエラーを有するバーストの数が或る閾値“n”を超える場合)、DQ故障又はチップ故障がある可能性がさらに高く、システムはチップキルメカニズムを進行する。
しかし、感知されたエラーを有するバーストの数が閾値“n”より小さければ(例えば、4バースト又はこれより少ないバースト)、S701段階で感知されたエラーは個別的なチップからのランダム故障の結果である可能性が高い。このようなランダム故障はDRAM内ECCによって訂正可能しないが、エラーは再発しない可能性が大きいので、チップキルメカニズムは利用されない。

0065

上記では閾値の例として4バーストが利用されたが、異なる数が本発明の他の実施形態に利用され得る。その上に、その数は他の実施形態において(例えば、特定装置デバイス)に対応するように)調整され得る。例えば、対応するメモリ装置が相対的に高い装置エラー率を有し、これに従って多重ランダムエラーが発生する場合、閾値が増加され得る。

0066

S703段階で、S702段階でパリティエラーを有するバーストの数が閾値より大きいと決定されれば(例えば、4バーストより大きい)、システムは8個のデータチップの中の1つがデッドであるか、又は消去されたとを決定するか、或いは8個のデータチップの中の複数個においてエラーがあると決定する。

0067

S703段階でチップが既に消去されたか、又は8個のデータチップの中の複数個のチップにおいてエラーがあると決定されれば、システムはS709段階で致命的、且つ訂正不能なエラーが発生したと決定する。エラーを有するチップの数は特定命令を利用するか、或いはメモリ処理330の17番目のバーストの最中の何れか1つによってDRAM内ECC情報出力180、280、380からメモリコントローラ110、210、310によって感知される。
例えば、チップがDQ故障、チップ故障、バンク(bank)故障、又はロー(row)故障によってデッドであれば、任意の追加的なDQ故障又はチップ故障は致命的な故障をもたらし、本発明の実施形態のシステムはメモリチャネル当たり単一のECCチップしか含まないので、エラー訂正を遂行するための充分な資源をそれ以上含まない。同様に、複数のチップがエラーを含むと、致命的な故障が発生する。

0068

しかし、S703段階で消去されたチップがなく、そして感知されたエラーが単一のデータチップに対応すると決定されれば、S704段階に進行される。例えば、未だ消去されたチップが無ければ、そして感知されたエラーが単一のチップに対応すれば、システムは故障の種類を識別でき、メモリコントローラは故障の種類を記録でき、潛在的にエラーを訂正するために追加措置を実行できる。

0069

S704段階で、感知されたエラーが同一のピンで発生するかが決定される。即ち、S704段階で、システムはバーストの各々に対して同一のピンで感知されたエラーが発生するか否かを決定する。全てのエラーが同一のピンに対応すれば、S705a段階で、DRAM内システムはメモリコントローラにこれを通知し、このようにすることによってメモリコントローラはエラーの故障種類をDQ故障であると記録する。システムが感知されたエラーが全て同一のピンに対応しないと決定すれば、S705b段階で、DRAM内システムはメモリコントローラにこれを通知し、このようにすることによってメモリコントローラは故障種類をチップ故障として記録する。

0070

S706段階で、故障種類がDQ故障又はチップ故障の中の何れか1つであると記録された後、メモリコントローラはチップキル感知(chipkill detection)を支援するために利用される。S706段階で、メモリコントローラはどのようにしてエラーを訂正するか決定するために診断ルーチン(diagnosis routine)を開始する。診断ルーチンは図8を参照して後述される。

0071

図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段階で、メモリコントローラはエラーの位置を識別するために新しく読み出したデータと既知の反転されたデータを比較する。

0072

図7を参照すれば、S706段階でメモリコントローラがチップキル感知を支援した後、S707段階で、メモリコントローラは感知された全てのエラーが1つのチップに対応するか否かを決定する。仮に単一のデータチップが消去されれば、又は多重DQエラーが感知された場合でも全ての多重DQエラーが同一のチップに対応すれば、S708段階で、メモリコントローラは残っている消去されないチップにデータを再び書き込み、そして次の全てのメモリ処理は消去されたチップに対応するデータを復元するために簡単なパリティアルゴリズムのパリティビットを利用する。
例えば、データ読出しの際に、メモリコントローラがデータチップの中の1つに対応する多重ビットがS706d段階でデータチップに書き込まれた反転されたデータの該当ビットと一致しないと決定すれば、S708段階でメモリコントローラは該当データチップが消去されたと表示(mark)する。しかし、データ読出しの際に、メモリコントローラがデータチップの中で1つのデータチップに1つのピンに対応するビットの中で単一のビットがS706d段階でデータチップに書き込まれた反転されたデータの該当ビットと一致しないと決定すれば、S708段階でメモリコントローラは単一のチップの単一のピンのみが消去されたと表示(mark)する。

0073

しかし、1つより多いチップが消去されたと表示(mark)されれば、S709段階で、メモリコントローラは致命的であり、且つ訂正不可能なエラーが発生したと判断する。即ち、1つより多いチップでエラーがあれば、予備の追加的なチップがないので、DRAMはパリティを遂行するための充分な資源をそれ以上有さない。従って、任意の追加的なチップエラーはDRAMの交替を必要とする、訂正不可能な、即ち致命的なエラーとなる。

0074

S702段階に戻って、エラーの数が所定の閾値より低いと決定されれば(例えば、メモリ処理において少数のバーストのみがエラーを有する場合)、S710段階で、メモリコントローラはDRAMから追加的なバーストを受信することによってデータチップからデータを読み出すことを再トライする。

0075

S710段階でデータ読出しを再トライした後に、S711段階でメモリコントローラは相変わらず感知されたエラーがあるか否かを決定する。S711段階で追加的なエラーが感知されなければ、S712段階でメモリコントローラはソフトエラー(soft error)、又は一時的エラー(transient error)が発生し、それ以上訂正が必要としないを決定する。しかし、S710段階でデータ読出し再トライの後に追加的なエラーがS711段階で感知されれば、S713段階でエラーがS701段階で初期に感知されたエラーと同一のエラーパターンを有するかが決定される。エラーが同一のエラーパターンを有するか決定することによって、一致しないソフトエラーのケース(即ち、ソフトエラーがS701段階で初期に感知されたケース)は無視され、後続の他のソフトエラーはメモリコントローラのS710段階でデータ読出しを再トライする間に感知される。

0076

S713段階で感知されたエラーがS701段階で初期に感知されたエラーと同一のエラーパターンを有しなければ、S710段階に戻り、メモリコントローラはデータチップからデータ読出しを再び再トライする。従って、順次的であり、同一でないソフトエラーが発生し、こうして他のエラーパターンがもたらされれば、メモリコントローラはデータ読出しトライを継続する。しかし、S713段階で感知されたエラーがS701段階で初期に感知されたエラーと同一のエラーパターンを有すれば、S714段階でハードエラー(hard error、即ち一時的ではないエラー)が発生したと決定される。

0077

S714段階でハードエラー(一時的ではないエラー)の存在が決定された際に、何れのチップも未だ消去されたと表示(mark)されないと仮定される場合、DRAMはS715段階でメモリコントローラECCメカニズムを利用してハードエラーの訂正を支援するようにメモリコントローラをトリガー(trigger)する。メモリコントローラは、例えばエラーの現在住所(例えば、チップ及びピンアドレス)とDRAMの1つ以上のチップのエラーレジスターに格納されたエラー住所を比較してエラー訂正を支援する。また、メモリコントローラはDRAM内ECC情報を利用してエラー訂正を支援する。例えば、DRAM内ECC情報が単一のチップのみが訂正できないDRAM内ECCエラーを有すると表示(indicate)する場合、メモリコントローラはエラーを復旧するためにECCチップを利用する。

0078

S716段階で、メモリコントローラがハードエラーの訂正に成功したか否かが決定される。エラー訂正が成功の場合、S717段階で、オペレーティングシステム(operating system)はエラーイベントを記録(log)し、メモリコントローラは各チップ内のDRAM内ECC情報(例えば、チップエラーレジスタ内の情報)を消去するために他の特定命令を発行する。しかし、エラー訂正が不成功の場合(例えば、1つのチップが既に消去され、従ってシステムはそれ以上ECC能力を有しない場合)、メモリコントローラはS709段階で致命的なエラーが発生したと決定する。

0079

メモリコントローラが致命的であり、訂正不可能なエラーをS709段階で識別すれば、オペレーティングシステムはシステム/アプリケーションレベルのエラー復旧を遂行する。例えば、オペレーティングシステムはページコンテンツ(content)を他の物理的ページ再配置して該当物理的ページをリタイア(retire)し、リタイアされたページを仮想メモリシステムによって以後、物理的ページの割当禁止リストに配置する。リタイアされた物理的ページの数が増加するに連れて(例えば、訂正できないエラーの数が増加するに連れて)、システムの有効なメモリ容量は減少する。

0080

従って本発明の実施形態は、DDR4によって提供されるのと同様の基本チップキルRAS特徴を提供できるアーキテクチャを提供し、しかもその際、減少された(例えば、最小の)ECCチップオーバヘッド(即ち、メモリチャネル当たり1つのECCチップ)、減少された(例えば、最小の)内部プリフェッチのサイズ(プリフェッチのサイズはDRAM内部ECCと同一のサイズ)、そしてDDR4に対応するインタフェイスに対するDDRインタフェイスの減少された(例えば、最小の)変更を要するだけで、このような特徴を提供することが可能である。追加的に、本発明の実施形態はDDR4より狭いチャネル幅と共に新しいDDRインタフェイスのために12.5%の格納装置オーバヘッドを提供し、基本チップキル能力及びシステムECCを支援し、そしてメモリコントローラ支援エラー感知メカニズムを支援する。

0081

それだけでなく、本発明の実施形態はメモリチャネル当たり単一のECCチップしか有していないにも拘らず、基本的なチップキル能力及びシステムECCを提供できる。本発明の実施形態はまたメモリコントローラがDRAM装置からの支援を得て故障チップを識別するメカニズムを提供し、DRAM内ECC情報を読み出すメカニズム(例えば、追加的なバーストレングス、追加ピン、又はDRAMからのレジスタ読出し出力を利用することによる)を提供し、エラー種類(例えば、ソフトエラー又はハードエラー)を識別するための再トライメカニズムを提供し、そして個別の又はロックステップ(lock−step)方式のメモリチャネルの中の1つを利用し、且つSEC−DEC(単一エラー訂正・2重エラー感知)又はチップキルECCを利用して、異なるECC能力を提供する。

0082

前記説明は例示的な実施形態を説明するためであり、本発明を制限すると解釈されない。幾つかの例示的な実施形態が説明されたが、当業者は、例示的な実施形態の新規な教示及び長所から実質的に逸脱せずに例示的な実施形態において沢山の修正が可能であることを容易に理解できよう。従って、そのような全ての修正は請求項に定義された例示的な実施形態の範囲内に含まれるように意図される。請求の範囲において、「手段プラス機能」的な表現は構造的等価物のみでなく、等価構造を列挙して本明細書で説明された構造を含むように意図された。従って、前記説明は例示的な実施形態を説明するためであり、開示された特定の実施形態に限定されると解釈されてはならず、開示された例示的な実施形態のみならず、他の例示的な実施形態に対する修正が含まれると理解されなければならない。本発明の概念は、次の請求の範囲によって定義され、請求項の均等物も含まれる。

0083

100,200,300 システム
110,210,310メモリコントローラ
120,220,320,420 DAECCエンジン
130,230,330メモリ処理
140a、240a,340a,440a,540a,640aDRAMチップ、データチップ
140b、240b、340b、440b、540b,640b DRAMチップ、ECCチップ
150、250,350,450メモリチャネル
160、260,360DDR_DIMM/DRAM、DRAM/DDR_DIMM、DRAM
170、270,370 “一般(normal)”データ
180,280,380DRAM内ECC情報出力
290 追加ピン

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 東芝メモリ株式会社の「 メモリシステム」が 公開されました。( 2021/09/30)

    【課題】不揮発性メモリにおける各メモリセルのデータリテンションを適切化できるメモリシステムを提供する。【解決手段】メモリシステムは、不揮発性メモリとコントローラ(メモリコントローラ)とを有する。不揮発... 詳細

  • 株式会社デンソーの「 車両用データ記録装置」が 公開されました。( 2021/09/27)

    【課題】不揮発性メモリの寿命が短くなることを抑制しつつ、データを記録できる車両用データ記録装置を提供すること。【解決手段】データ記録ECU10は、揮発性メモリ13と不揮発性メモリ14とを備えている。不... 詳細

  • 東芝メモリ株式会社の「 半導体装置及び半導体記憶装置」が 公開されました。( 2021/09/27)

    【課題】誤り訂正能力を高めた半導体装置を提供する。【解決手段】実施形態の半導体装置は、積符号フレームの横方向のECCフレームデータにECC復号を行うECC復号処理回路31と、積符号フレームの縦方向の第... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ