JP5222099B2 - トランスペアレントeccメモリシステム - Google Patents

トランスペアレントeccメモリシステム Download PDF

Info

Publication number
JP5222099B2
JP5222099B2 JP2008283571A JP2008283571A JP5222099B2 JP 5222099 B2 JP5222099 B2 JP 5222099B2 JP 2008283571 A JP2008283571 A JP 2008283571A JP 2008283571 A JP2008283571 A JP 2008283571A JP 5222099 B2 JP5222099 B2 JP 5222099B2
Authority
JP
Japan
Prior art keywords
memory
data
ecc
configuration
error correction
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.)
Expired - Lifetime
Application number
JP2008283571A
Other languages
English (en)
Other versions
JP2009080822A (ja
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 JP2009080822A publication Critical patent/JP2009080822A/ja
Application granted granted Critical
Publication of JP5222099B2 publication Critical patent/JP5222099B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本書面は、電子メモリ設計の分野に関する。より詳細には、本書面は、専用のECCピン接続なしでのトランスペアレントな(transparent)誤り訂正符号(ECC)メモリ機能を提供するシステム及び方法に関する。
[背景]
電子システム及び回路は、現代社会の進歩に対しこれまで大きく貢献し、有益な結果を実現するため多くの用途で利用されている。デジタルコンピュータ、電卓、音声装置、映像装置、電話システムなどの多数の電子技術が、生産性の向上を促進し、ビジネス、化学、教育及び娯楽などの大部分の領域においてデータ、アイデア及びトレンドの分析及び通信に関するコストを低減させてきた。しばしば、これらの有益な結果は、記憶媒体に格納され、処理装置により操作される情報の利用を通じて実現される。メモリに格納されている情報の精度は、しばしば結果の有用性に重大な影響を与える。より高い精度を与えるためには、典型的には、誤り訂正動作をサポートすることが可能なメモリコンポーネントを必要とする。誤り訂正に対する伝統的なアプローチは、コンポーネントが誤り訂正情報のための追加的な専用接続またはピンを有することを通常は必要とする。これらの追加的な接続ピンは、リソースを消費し、メモリコンポーネントまたはチップセットの製造の困難さを増大させる。
通常、メモリに格納されている情報は、あるアプリケーションに関する有用なタスクの実行においてデータを操作する命令系列から構成されるソフトウェアプログラムを備える。一般には、当該アプリケーションを適切に実行するのに、情報におけるあるレベルの精度が要求される。通常、情報はメモリに格納されている論理値から構成されるビット(例えば、0と1からなる文字列)により表される。しかしながら、情報をメモリに格納するとき、このビット値が変更される可能性がある。少なくとも1の論理値が0の論理値として誤って格納されたり、その逆が起こることは比較的よくあることである。このような誤った反転による影響は、典型的には、情報が利用されるアプリケーションに依存する。
あるアプリケーションは、高いメモリ精度を必要としない。例えば、誤ったビットは一般には、グラフィックアプリケーションに対しては重大な影響を与えない。大部分のグラフィックシステムは、モニタ上に視覚表示を与えるためのものである。この視覚表示は、典型的には、かなり多数の画素を含み、誤ったビットによる少数の画素のわずかな変化は肉眼では検出されない。このため、画素情報の一部がメモリにおいて変形する可能性は、システムの最終的なパフォーマンスに認知されうる影響を与えるものでない。
しかしながら、他のアプリケーションはしばしば相対的に高い情報及びメモリの信頼性を要求する。データが影響を与えやすかったり、価値あるものであったり、あるいは重要な動作に利用されるものである場合、メモリの高い信頼性が通常求められる。例えば、公衆の安全性に影響を及ぼしうるアプリケーション(例えば、橋、車、飛行機などの設計に利用されるアプリケーション)や、金融活動(例えば、銀行処理、株式取引など)に関するアプリケーションは、通常高い信頼性を必要とされる。これらのアプリケーションに関して、情報の誤った変更が起こらないことを保証することが望ましい。従って、誤った情報を検出することができることが、あるアプリケーションにおいてはとても重要である。
情報の信頼性を向上させる構成を設けることにより、通常、メモリコンポーネント及び/またはチップセットの製造時に消費されるリソースが増大する。データ通信に専用の接続ピン及びデータに関する誤り訂正情報に専用の独立したピンを設けることにより、製造作業の複雑さが増大する。通常、より複雑な誤り訂正手法は、多数の専用ピンが情報の通信に対応することを要求する。誤り訂正機能を設けることは重要ではあるが、誤り訂正符号(ECC)処理のための専用の入出力(IO)ピンを設けることにより、高価な接続が要求され、貴重な配置リソースが拡大される。これにより、設計者はしばしば、誤り訂正処理のための重要なチップリソースを拡張したり、あるいは有用な構成を割愛する必要がでてくる。
誤り対応可能システムに追加的なリソースを投資するか、あるいは通常のメモリシステムを選択するかの判断は、通常とても難しいものである。あるシステムで用いられるアプリケーションを高い確実性により予測することは困難なことである。このため、影響を及ぼし易い情報に関する動作を典型的には行わないシステムに対しては、誤り訂正処理に専用の高価な接続を利用することは稀である。しかしながら、ユーザが専用の誤り訂正機能を備えていない従来のメモリを選択する場合、影響を受け易い動作に利用されるとき、信頼性の低いメモリへの格納のリスクがある。誤り訂正対応メモリあるいはより安価なメモリを設けるかどうかのジレンマは、製造業者の製造問題をも増大させる。実際問題として、通常、製造業者は、メモリ及び/またはチップセットのタイプの設計及び作成に係るリソースを、各自の対立する市場要求に対応して使用する。個別の設計及び製造施設を設けることは、極めて高コストなものとなってしまう。
必要とされるものは、ピンリソースの消費及び誤り訂正問題の両方を解決することが可能なフレキシブルかつ効率的なメモリである。
[概要]
本発明は、接続ピンリソース消費と誤り訂正問題の両方を解決することが可能なフレキシブルかつ効率的なメモリ構成の利用を容易にすることである。本発明によるトランスペアレントな誤り訂正符号(ECC)メモリシステムは、専用のECC接続なしでのECC処理を容易にする。トランスペアレントなECCメモリシステムは、同じ接続ピンの少なくとも一部を用いて、データとECCの両方をメモリと通信させる。ユーザは、ECC機能が可能とされているか、あるいはメモリアクセスがECC機能のない通常の方法により行われるか選択する。ユーザがECC機能を可能にすると、データを通信する同一のメモリ接続を介してECC情報をメモリと通信することにより、トランスペアレントにECC処理が実行される。本発明は、ECC情報の通信に専用とされるメモリ及び/またはチップセット接続ピンを必要とすることなく、様々な物理的及び論理的構成に容易に適応可能である。
本発明の一実施例では、メモリは、複数のメモリ構成またはセクションに論理的に分割される。第1のランダムアクセスメモリ(RAM)構成がデータを格納し、メモリシステムへのデータ接続はこの第1のRAM構成の幅に限定される。第2のRAM構成は、誤り訂正符号情報の格納に専用とされ、この誤り訂正符号情報はデータ接続を介してアクセスされる。他の実施例では、データ及びECCはインタリーブ処理され、データ及びECCの何れのオーバーフローも第2のメモリ構成に格納される。例えば、32バイトバーストデータを用いるシステムでは、29倍とのデータと3倍とのECCが、ECCが用いられない場合に使用されるであろう同一のメモリアドレスへの書き込み及び当該アドレスからの読み出しが行われる。このオーバーフローは、その他の3データバイトと第4ECCバイトを含む異なるアドレスへの書き込み及び当該アドレスからの読み出しがなされる。データ及びECCは、同一の接続ピンを介してメモリ構成と通信される。
本発明の他の実施例では、2つの相異なるメモリバンクが、データ及びECCに専用とされる構成に論理的に分割される。第1メモリバンクに格納されるデータ情報は、誤り確認及び訂正のため、第2メモリバンクに格納されているECCを利用する。第2メモリバンクに格納されているデータは、第1メモリバンクに格納されているECCと関連付けされる。各メモリバンクは、同じ接続ピンを用いて、メモリバンクに格納されているECC情報とデータを通信する。一方のメモリバンクからのデータと、他方のメモリバンクからのECCは、パラレルにアクセスされる。このため、同一の接続ピンは、同じアクセス期間中ではないが、データとECCと通信する。任意の与えられたアクセス期間中、データはあるメモリバンクと通信され、ECCは他のメモリバンクと通信される。メモリバンクは、別の集積回路にあってもよいし、同じ集積回路にあってもよい。
[詳細な説明]
本発明の好適な実施例であるトランスペアレントな誤り訂正符号(ECC)メモリシステム及び方法が詳細に参照され、その実施例が添付された図面において示される。本発明はこの好適な実施例に関して説明されるが、本発明がこれら実施例に限定されるものではないということは理解されるであろう。逆に、本発明は、添付されたクレームにより画定される本発明の趣旨及び範囲内に含まれる変形、改良及び均等物をカバーするものとされる。さらに、本発明の以下の詳細に説明では、本発明の完全な理解を与えるため、多数の具体的な詳細が与えられる。しかしながら、本発明がこれらの具体的詳細なしでも実現されるということは、当業者には明らかであろう。他の実施例では、本発明の特徴を不必要に不明瞭にすることを回避するため、周知の方法、手続、構成要素及び回路は詳細には記載されない。
本発明によるトランスペアレントなECCシステム及び方法は、メモリモジュールやチップセットに専用のECCピンを設けることなく、ECC機能を実現することを容易にする。データのみに専用とされる接続ピン(例えば、64ピン)とECCに専用とされる追加的な接続ピン(例えば、8ピン)による従来技術と異なり、同一の接続ピン(例えば、64ピン)を用いて、データ及びECCの通信を行う。本発明の一実施例では、メモリ空間の一範囲が、後述されるトランスペアレントなデータ構成アプローチ(例えば、ECC情報に専用な、あるいはオーバフロー情報に専用な)での使用に専用とされる。本発明は、複数の物理的メモリ構成を有するシステムにおける利用に対して容易に適用可能である。一実施例では、1つの物理的メモリ(例えば、デュアルインラインメモリモジュール、すなわちDIMM)からなる単一のバンク構成が利用される。他の実施例では、データとそれに対応するECC情報が異なるバンクに格納されている少なくとも2つのバンクから構成されるマルチメモリバンク構成が存在する。他の実施例では、マルチチャネル構成は少なくとも2つの物理的メモリ(例えば、別々のDIMM)から構成され、各物理的メモリは別々のメモリチャネルによりアクセス可能であり、それの対応するECC情報は異なるチャネルに接続される物理的メモリに格納される。
図1は、本発明の一実施例によるトランスペアレントECCメモリシステム100のブロック図である。トランスペアレントECCメモリシステム100は、メモリバンク101、メモリ通信チャネル130及びメモリコントローラ150から構成される。メモリバンク101は情報を格納し、メモリコントローラ150は情報の格納を制御し、メモリ通信チャネル130はメモリ101とメモリコントローラ150との間の通信パスを与える。メモリ101とメモリコントローラ150を接続する通信バス130の終端の接続またはピンは、データとECC情報の両方を通信する。
本発明の一実施例では、メモリバンク101内のメモリ位置は、第1メモリ構成110と第2メモリ構成120に論理的に分割されている。第1メモリ構成110はメモリ位置111〜115を備え、第2メモリ構成120はメモリ位置21及び122を備える。本発明の一実施例では、メモリバンク101は、ランダムアクセスメモリ(例えば、DIMM)である。メモリコントローラ150は、メモリバンク101へのアクセスとメモリバンク101の論理分割を制御する。例えば、メモリコントローラ150は、どのメモリ位置が第1メモリ構成110と第2メモリ構成120に含まれるか追跡し、これに応じたメモリ書き込み及び読み出し動作を指示する。
本発明は、様々なメモリ構成に容易に適用可能である。一実施例では、64ビットデュアルインラインメモリモジュールが利用される。同一の接続ピンが、データとECCの両方をメモリに対して通信するのに用いられる。例えば、64ビットのデータはDIMMの64データピンを介し通信され、当該データに関する8ビットのECCはこれらの同一の8つのデータピンを介し通信される。これにより、本発明は、72接続ピンを要する従来のシステム(データに専用の64接続ピンと、ECCに専用の追加的な8接続ピン)に対して、64接続ピンを介しデータとECCがメモリと通信されるのを可能にする。第1メモリ構成と第2メモリ構成にこれらの情報を格納する構成的アプローチが少なくとも2つある。
第1のデータ構成アプローチは、データの格納に対して論理的に分割された第1メモリ構成110(例えば、第1RAM構成)と、ECCの格納に対して第2メモリ構成120を利用する。一実施例では、32バイトのデータと4バイトのECC情報が、メモリから抽出される。32バイトのデータが第1メモリ構成110から読み出され、4バイトのECC情報が第2メモリ構成120から読み出される。ECC情報は、メモリから読み出されると、まず誤り訂正処理がデータに対して開始されるよう読み出されてもよい。図2Aは、本発明の一実施例によるメモリからの情報の一例となる抽出を示すテーブルである。データは4クロックサイクル(例えば、0〜3)中に抽出され、ECC情報は第5クロックサイクル中に抽出される。本発明の一実施例では、これらの情報は、クロック信号のライジングエッジとフォーリングエッジの両方において通信されるダブルデータレート(DDR)により抽出される。
与えられるすべての実施例の変形として、一部のデータは対応するECCを有するようにしなくてもよく、これにより一部のデータはECCにより保護され、他のデータは保護されないメモリシステムが提供される。さらなる変形は、対応するECCを有するデータ量を動的に調整し、これによりECCにより保護されるデータ量を減少(または増加)するとき、有効となるデータ格納量を増加(または減少)することができる。
第2のデータ構成アプローチは、データとそれの対応するECC情報を第1メモリ構成110にインタリーブ処理し、第2メモリ構成120をオーバフロー情報に専用とするものである。例えば、32バイトのデータバーストを利用するシステムでは、29バイトのデータと3バイトのECCが、ECCが利用されない場合に用いられたであろう同一のメモリアドレス(例えば、第1メモリ構成のメモリ位置)に対して書き込み及び読み出しが行われる。オーバフローは、その他の3データバイトと第4のECCバイトを含む異なるアドレス(例えば、第2メモリ構成120のメモリ位置)に対して書き込み及び読み出しが行われる。
図2Bは、本発明の一実施例による各メモリアクセスクロックサイクル中に抽出される情報を示すテーブルである。最初の4クロックサイクル中においてインタリーブ処理されたデータとECC情報が抽出され、第5クロックサイクル中にオーバフローデータとECC情報が抽出される。当該アプローチでは、メモリに対する書き込み及び読み出し処理に対して、ECCはデータとインタリーブ処理されているため、誤り訂正は最小の遅延から開始可能である。このアプローチは、ワード及びページ境界とのずれを生じさせないか、あるいはオーバフロー情報が第2メモリ構成内の所定の位置に便宜上格納されるため、新たなアドレスを形成するための計算のパフォーマンスを要求するものでない。
本発明の他の実施例では、メモリは分離した構成またはセクションに分割されない。この構成アプローチでは、データとそれの対応するECC情報は、単一のメモリ構成を通じた逐次的方法によりインタリーブ処理され、メモリアドレスの調整が追加的なECC情報を補償するのに行われる。例えば、8バイトデータごとに1バイトのECCが存在する場合、データとECCは一緒に保持される9バイトとしてパッケージ処理され、DRAMの各9番目のバイトはECCとなり、その他の8/9はデータとなる。DRAM内のワード及びページ境界がずれたとしても、このずれを訂正するアドレス計算が行われる(例えば、アドレスが9/8と乗算される)。この構成アプローチの効果は、9バイトのパッケージがDRAMから受信されるとすぐに、誤り訂正の開始が可能となるということである。
図3は、本発明の他の実施例によるトランスペアレントECCメモリシステム300のブロック図であり、データがメモリから抽出されると即座に誤り訂正処理が開始されるかもしれない。トランスペアレントECCメモリシステム300は、複数のメモリバンクに沿って複数のメモリ構成に分割される。トランスペアレントECCメモリシステム300は、メモリバンク301及び302と、メモリ通信チャネル330及び380と、メモリコントローラ350とから構成される。メモリバンク301及び302は、データとECCを含む情報を格納する。メモリコントローラ350は、メモリアクセス動作(例えば、メモリ読み出し及び書き込み処理)を制御する。通信チャネル330及び380は、メモリコントローラ350とメモリ301及び302との間の通信をそれぞれ提供する。メモリバンク301及び302をメモリコントローラ350に接続する通信バス330及び380の終端の接続またはピンは、データと誤り訂正符号情報の両方を通信する。
本発明の一実施例では、メモリバンクはデータのためのセクションとECC情報のためのセクションに論理的に分割される。しかしながら、このデュアルメモリバンクの実施例では、一方の構成またはセクションに格納されるECC情報は、他方のメモリバンクに格納されるデータと関連付けされる。例えば、メモリバンク301内のメモリ位置は、メモリ構成310と320に論理的に分割される。メモリバンク302内のメモリ位置は、メモリ構成370と390に論理的に分割される。第1メモリ構成310はメモリ位置311〜315を備え、第2メモリ構成320はメモリ位置321及び322を備える。第3メモリ構成370はメモリ位置371〜375を備え、第4メモリ構成390はメモリ位置391及び392を備える。メモリコントローラ350は、メモリバンク301及び302へのアクセス及びそれらの論理分割を制御する。例えば、メモリコントローラ350は、各メモリ構成310、320、370及び390に含まれるメモリ位置を追跡し、これに従ってメモリ読み出し及び書き込み処理を指示する。例えば、メモリコントローラ350は、第1メモリ構成310にデータを、第4メモリ構成390に関連するECCを書き込む。
ECC情報を有する構成またはセクションは、その他のメモリバンクのデータを供する。メモリ構成320はメモリ構成370に格納されているデータのチェックに用いられるECC情報を格納し、メモリ構成390はメモリ構成310に格納されているデータのチェックに用いられるECC情報を格納している。このため、メモリ構成310からデータが抽出されると、対応するECC情報がメモリ構成390から抽出される。逆に、メモリ構成370からデータが抽出されると、対応するECC情報がメモリ構成320から抽出される。本発明の一実施例では、データ及び関連するECC情報が対応するメモリ構成からパラレルに抽出される。例えば、メモリコントローラ350は、メモリ通信チャネル330を介しメモリ構成310からデータを抽出し、それと同時に、メモリコントローラ350は、メモリ通信チャネル380を介しメモリ位置390から対応するECC情報を抽出する。
一選択肢として、ECCをメモリ(例えば、DRAM)に格納されているデータの一部のみに適用することもできる。例えば、メモリはプログラムメモリとフレームバッファメモリ(またはテキストメモリなど)の両方を備えてもよく、この場合、プログラムの格納に利用されるDRAMの部分のみがECCを利用するであろう。
図4は、本発明の一実施例によるトランスペアレントECCメモリシステムを利用した一例となるシステム400のブロック図である。システム400は、中央演算ユニット(CPU)490、ブリッジ455、ローカルプロセッサ440、内部バス450、誤り訂正コンポーネント435、メモリコントローラ430、メモリバンク410及び420から構成される。内部バス450は、ECCコンポーネント435、ローカルプロセッサ440及びCPU490に接続されたブリッジ455に接続される。ECCコンポーネント435は、メモリバンク410及び420に接続されるコントローラ430に接続される。メモリバンク410及び420は、2つのセクションまたは構成に論理的に分割される。第1のセクションはデータの格納に用いられ(例えば、データセクション415及び425)、第2のセクションはECC情報の格納に用いられる(例えば、ECCセクション417及び427)。データとECC情報は、同じメモリ接続ピンを介して通信される。
本発明の一実施例において、トランスペアレントECC処理を開始するECC選択コンポーネントが設けられる。ECC選択コンポーネントは、トランスペアレントECCが可能または不可であるかユーザが選択することを可能にする。一実施例では、トランスペアレントECCが可能である場合、メモリは第1構成(例えば、データのためのセクション)と第2構成(例えば、ECCのためのセクション)に論理的に分割される。トランスペアレントECCが不可である場合、メモリはECC処理を扱うのに論理的に分割されない。他の実施例では、トランスペアレントECCが可能であるとき、メモリは分割されるのでなく、追加的ECC情報を補償するためのメモリアドレス調整を実行することにより、ECC機能が設けられる。ECC選択コンポーネントは、配線を備えたスイッチを含む様々な形態をとるようにしてもよく、あるいは好ましくはテキストまたはグラフィカルユーザインタフェースをとるようにしてもよい。
図5は、本発明の一実施例によるトランスペアレント誤り訂正符号方法500のフローチャートである。トランスペアレント誤り訂正符号方法500は、誤り訂正動作に専用のメモリ接続ピンを要することなくメモリの効率的な誤り訂正を容易にする。トランスペアレント誤り訂正符号方法500は、様々なメモリシステムでの実現に対して容易に適用可能である。例えば、トランスペアレント誤り訂正符号方法500は、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、あるいはデュアルインラインメモリモジュール(DIMM)またはシングルインラインメモリモジュール(SIMM)として構成されるフラッシュメモリにより実現されてもよい。本発明の一実施例では、トランスペアレント誤り訂正符号方法500は、チップセットに含まれるメモリコントローラ(例えば、150、350など)により実現される。
ステップ510において、メモリは第1セクションと第2セクションに論理的に分割される。一実施例では、追加的なセクションが、他のメモリバンクにおいて論理的に分割される。例えば、第1セクションと第2セクションは第1メモリバンクに備えられ、第3セクションは第2メモリバンクに備えられる。一実施例では、この分割を開始するための表示が設けられる。例えば、トランスペアレント誤り訂正符号方法500を可能にするか選択するため、グラフィカルユーザインタフェースがユーザにより利用される。
ステップ520において、データ及び誤り訂正符号が、当該データ及び誤り訂正符号の両方を通信するデータ接続ピンを介しメモリに書き込まれる。一実施例では、データ情報は第1セクションに書き込まれ、誤り訂正符号は第2セクションに書き込まれる。他の実施例では、データ情報は第1セクションに誤り訂正符号と共にインタリーブ処理され、当該データ情報と誤り訂正符号のオーバフローが第2セクションに書き込まれる。複数のメモリチップからなる実施例では、データは第1メモリチップの第1セクションに書き込まれ、当該データと関連しない(例えば、データに対する誤りのチェックを行うのに用いられない)誤り訂正符号が第1メモリバンクの第2セクションに書き込まれ、当該データの関連する誤り訂正符号が第2メモリチップに含まれる第3セクションに書き込まれる。
ステップ530において、当該データ及び誤り訂正符号が、それら両方を通信するメモリデータ接続ピンから読み出される。
ステップ540において、当該データに対して、誤り訂正符号処理が実行される。一実施例では、誤り訂正符号処理は、ステップ530においてデータ接続ピンを介しメモリから抽出された誤り訂正符号情報に基づく。複数のメモリバンクを有する実施例では、誤り訂正符号処理は、異なるメモリ通信チャネルを介し第2メモリバンクから抽出された誤り訂正符号情報に基づく。
当該トランスペアレント誤り訂正符号方法の他の実施例では、メモリセクションは誤り訂正符号の格納のためは論理分割されない。データ及び誤り訂正符号情報は、逐次的なメモリ位置にインタリーブ方式により格納される。これらのメモリ位置は、データと誤り訂正符号情報の両方を通信するのに用いられる接続ピンを介しアクセスされる。アドレスのずれの訂正は、当該データ及び誤り訂正符号情報の抽出時に実行される。一実施例では、メモリ位置が単一のメモリモジュールに備えられ、単一のメモリチャネルを介しアクセスされる。例えば、メモリ位置はデュアルインラインメモリモジュール構成により製造されたランダムアクセスメモリに備えられる。
これにより、本発明は、リソース消費とECC問題を共に安価に解決することが可能なフレキシブルかつ効率的なメモリ構成を提供する。データとECC情報のためのメモリ位置は、メモリモジュールの同一の接続ピンを介してアクセスされる。ユーザは、トランスペアレントECC機能の動作の要否を簡単に示すことができる。トランスペアレントECC機能が可能であるとき、影響を及ぼしうる情報が誤り訂正の保護に与えられる。ECC機能が不可であるとき、アプリケーションはデータを多量に要する動作に対するデータ格納のため、完全なメモリスペースへのアクセスを有する(例えば、グラフィックアプリケーション)。何れの例でも、同一のメモリモデルは当該メモリ機能の実行が可能であり、製造業者は異なるピン構成(ECCのためのものと、ECCでないもののためのもの)に対する設計及び製造設備を維持する必要がない。メモリバンクに備えられるデータ接続ピンの個数はメモリのデータ幅に等しく、データとECCの両方の通信が可能である。これにより、データとECC情報の両方を通信する接続ピンを有する(追加的なECC専用ピンが不要な)安価なメモリシステムが、ECCを要するアプリケーションとECCを不要とするアプリケーションによるフレキシブルな使用に対し利用可能である。
要約すると、ここでは、リソース消費とECC問題の両方を安価に解決することが可能なフレキシブルかつ効率的なメモリ構成が開示された。メモリシステムは、専用のECC接続なしでのトランスペアレントECC処理を容易にするものである。第1ダイナミックランダムアクセスメモリ構成がデータを格納し、メモリシステムへのデータ接続はこの第1ダイナミックランダムアクセスメモリ構成の幅に限定される。第2ダイナミックランダムアクセスメモリ構成は、誤り訂正符号情報の格納に専用のものであり、誤り訂正符号情報はデータ接続を介しアクセスされる。一実施例による第1メモリ構成と第2メモリ構成では、データとECCが同じメモリバンクに備えられる。他の実施例による第1メモリ構成と第2メモリ構成では、データとECCは異なるメモリバンクに備えられ、パラレルにアクセスされる。
本発明の具体的な実施例に関する上記説明は、例示及び説明のため与えられた。上記説明は、網羅的であることを意図したものでなく、本発明を開示された尖閣名形態に限定することを意図したものでもなく、上記教示に基づき多数の変更及び変形が明らかに可能である。上記実施例は、本発明の原理及びそれの実践用途を最も良く説明するため、選択及び説明されたものであり、これにより、本発明及び各種実施例を想定されうる特定の用途に適した様々な変更により、当業者が最も良く利用することができる。本発明の範囲は、添付されるクレームとそれの均等物により画定されるものとする。
図1は、本発明の一実施例によるトランスペアレントECCメモリシステムのブロック図である。 図2Aは、データ情報が逐次的に格納され、ECC情報が論理的に分割されているメモリに格納されているメモリから、各メモリアクセスクロックサイクル中に抽出される情報を示すテーブルである。 図2Bは、データとECC情報がインタリーブ処理され、オーバフロー情報が論理的に分割されたメモリから抽出されるメモリから、各メモリアクセスクロックサイクル中に抽出される情報を示すテーブルである。 図3は、複数のメモリバンクが互いにECC情報を格納し、あるメモリバンクのデータと他のメモリバンクのECC情報へのパラレルなアクセスを可能にする本発明の他の実施例によるトランスペアレントECCメモリシステムのブロック図である。 図4は、本発明の一実施例によるトランスペアレントECCメモリシステムを用いた一例となるコンピュータシステムのブロック図である。 図5は、本発明の一実施例によるトランスペアレント誤り訂正符号方法のフローチャートである。

Claims (2)

  1. メモリシステムであって、
    第1ランダムアクセスメモリ構成と、
    第2ランダムアクセスメモリ構成と
    を備え、
    該メモリシステムへのデータ接続は前記第1ランダムアクセスメモリ構成の幅に限定され、
    り訂正符号情報の少なくとも一部は前記データ接続を介しアクセスされ、
    前記幅は、前記誤り訂正符号情報を含まないデータ幅であり、
    前記第1及び第2ランダムアクセスメモリ構成は異なるメモリバンクに備えられ、
    前記第1ランダムアクセスメモリ構成に格納されるデータに対応する誤り訂正符号情報が前記第2ランダムアクセスメモリ構成に格納され、前記第2ランダムアクセスメモリ構成に格納されるデータに対応する誤り訂正符号情報が前記第1ランダムアクセスメモリ構成に格納され、
    前記第1ランダムアクセスメモリ構成内の前記データと前記第2ランダムアクセスメモリ構成内の前記誤り訂正符号情報とがパラレルにアクセスされ、前記第2ランダムアクセスメモリ構成内の前記データと前記第1ランダムアクセスメモリ構成内の前記誤り訂正符号情報とがパラレルにアクセスされ、
    各メモリバンクは、各メモリバンクに格納される前記データ及び前記誤り訂正符号情報を通信するために、各メモリバンクの同じ接続ピンを用いる
    ことを特徴とするメモリシステム。
  2. 請求項1に記載のメモリシステムであって、
    前記第1ランダムアクセスメモリ構成は、第1メモリチャネルを介しアクセス可能であり、
    前記第2ランダムアクセスメモリ構成は、第2メモリチャネルを介しアクセス可能である、
    ことを特徴とするメモリシステム。
JP2008283571A 2002-05-31 2008-11-04 トランスペアレントeccメモリシステム Expired - Lifetime JP5222099B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/159,460 2002-05-31
US10/159,460 US7117421B1 (en) 2002-05-31 2002-05-31 Transparent error correction code memory system and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004509960A Division JP4243245B2 (ja) 2002-05-31 2003-05-29 トランスペアレントeccメモリシステム

Publications (2)

Publication Number Publication Date
JP2009080822A JP2009080822A (ja) 2009-04-16
JP5222099B2 true JP5222099B2 (ja) 2013-06-26

Family

ID=29709673

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004509960A Expired - Lifetime JP4243245B2 (ja) 2002-05-31 2003-05-29 トランスペアレントeccメモリシステム
JP2008283571A Expired - Lifetime JP5222099B2 (ja) 2002-05-31 2008-11-04 トランスペアレントeccメモリシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2004509960A Expired - Lifetime JP4243245B2 (ja) 2002-05-31 2003-05-29 トランスペアレントeccメモリシステム

Country Status (5)

Country Link
US (1) US7117421B1 (ja)
EP (1) EP1532636A4 (ja)
JP (2) JP4243245B2 (ja)
AU (1) AU2003231935A1 (ja)
WO (1) WO2003102965A1 (ja)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386797B1 (en) * 2002-08-07 2013-02-26 Nvidia Corporation System and method for transparent disk encryption
US7505890B2 (en) * 2003-01-15 2009-03-17 Cox Communications, Inc. Hard disk drive emulator
US6906961B2 (en) 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
JP2005025827A (ja) * 2003-06-30 2005-01-27 Toshiba Corp 半導体集積回路装置およびそのエラー検知訂正方法
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
TWI254848B (en) * 2004-11-16 2006-05-11 Via Tech Inc Method and related apparatus for performing error checking-correcting
US7464241B2 (en) * 2004-11-22 2008-12-09 Intel Corporation Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding
US7428689B2 (en) * 2005-08-30 2008-09-23 Infineon Technologies Ag Data memory system and method for transferring data into a data memory
US7676730B2 (en) * 2005-09-30 2010-03-09 Quantum Corporation Method and apparatus for implementing error correction coding in a random access memory
US20070116044A1 (en) * 2005-10-25 2007-05-24 Xyratex Technology Limited Capture buffer, a network analyser, a network analyser card and a method of capturing network data
KR100746225B1 (ko) * 2006-02-13 2007-08-03 삼성전자주식회사 반도체 메모리 장치 및 이를 구비한 메모리 시스템
US7734985B2 (en) 2006-02-27 2010-06-08 Intel Corporation Systems, methods, and apparatuses for using the same memory type to support an error check mode and a non-error check mode
US7620875B1 (en) * 2006-03-07 2009-11-17 Xilinx, Inc. Error correction code memory system with a small footprint and byte write operation
US7774684B2 (en) * 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008027296A (ja) * 2006-07-24 2008-02-07 Yokogawa Electric Corp メモリ装置
US7836380B2 (en) * 2006-10-31 2010-11-16 Intel Corporation Destination indication to aid in posted write buffer loading
US7587571B2 (en) * 2006-11-29 2009-09-08 Qimonda Ag Evaluation unit in an integrated circuit
US7975205B2 (en) * 2007-01-26 2011-07-05 Hewlett-Packard Development Company, L.P. Error correction algorithm selection based upon memory organization
US8135935B2 (en) * 2007-03-20 2012-03-13 Advanced Micro Devices, Inc. ECC implementation in non-ECC components
US8086936B2 (en) 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US8019919B2 (en) 2007-09-05 2011-09-13 International Business Machines Corporation Method for enhancing the memory bandwidth available through a memory module
US20100269021A1 (en) * 2007-09-05 2010-10-21 Gower Kevin C Method for Performing Error Correction Operations in a Memory Hub Device of a Memory Module
US8429492B2 (en) * 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8140936B2 (en) 2008-01-24 2012-03-20 International Business Machines Corporation System for a combined error correction code and cyclic redundancy check code for a memory channel
US9128868B2 (en) * 2008-01-31 2015-09-08 International Business Machines Corporation System for error decoding with retries and associated methods
US8181094B2 (en) * 2008-01-31 2012-05-15 International Business Machines Corporation System to improve error correction using variable latency and associated methods
US8185801B2 (en) 2008-01-31 2012-05-22 International Business Machines Corporation System to improve error code decoding using historical information and associated methods
US8185800B2 (en) * 2008-01-31 2012-05-22 International Business Machines Corporation System for error control coding for memories of different types and associated methods
US8176391B2 (en) * 2008-01-31 2012-05-08 International Business Machines Corporation System to improve miscorrection rates in error control code through buffering and associated methods
US8171377B2 (en) 2008-01-31 2012-05-01 International Business Machines Corporation System to improve memory reliability and associated methods
US8352806B2 (en) * 2008-01-31 2013-01-08 International Business Machines Corporation System to improve memory failure management and associated methods
US8949684B1 (en) * 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8473815B2 (en) * 2008-12-22 2013-06-25 Industrial Technology Research Institute Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data
KR101014040B1 (ko) * 2009-03-19 2011-02-14 (주)인디링스 디램 버퍼 관리 장치 및 방법
JP2010287128A (ja) * 2009-06-12 2010-12-24 Toshiba Corp コントローラ、記憶媒体、及び情報制御方法
US20120151300A1 (en) * 2009-08-25 2012-06-14 Tillema John E Error Correcting
US8386885B1 (en) * 2009-08-26 2013-02-26 Cypress Semiconductor Corporation Using ECC memory to store configuration information
WO2011034686A2 (en) * 2009-09-16 2011-03-24 Rambus Inc. Configurable memory banks of a memory device
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
WO2012051039A1 (en) * 2010-10-12 2012-04-19 Rambus Inc. Facilitating error detection and recovery in a memory system
US8738993B2 (en) 2010-12-06 2014-05-27 Intel Corporation Memory device on the fly CRC mode
JP2012137885A (ja) 2010-12-24 2012-07-19 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
JP5367686B2 (ja) 2010-12-24 2013-12-11 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
US9189329B1 (en) 2011-10-13 2015-11-17 Marvell International Ltd. Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level
WO2013057532A1 (en) 2011-10-21 2013-04-25 Freescale Semiconductor, Inc. Memory device and method for organizing a homogeneous memory
US8959417B2 (en) 2011-11-23 2015-02-17 Marvell World Trade Ltd. Providing low-latency error correcting code capability for memory
CN103166747B (zh) * 2011-12-14 2017-12-29 中兴通讯股份有限公司 一种harq合并的方法及装置
WO2013147890A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Error correcting code scheme utilizing reserved space
US9612901B2 (en) 2012-03-30 2017-04-04 Intel Corporation Memories utilizing hybrid error correcting code techniques
US20140157043A1 (en) * 2012-03-30 2014-06-05 Joshua D. Ruggiero Memories utilizing hybrid error correcting code techniques
US9069698B2 (en) * 2012-09-06 2015-06-30 Advanced Micro Devices, Inc. Channel rotating error correction code
US9734921B2 (en) 2012-11-06 2017-08-15 Rambus Inc. Memory repair using external tags
CN105283923A (zh) * 2013-07-31 2016-01-27 惠普发展公司,有限责任合伙企业 存储器模块外的ecc辅助存储器系统
JP6140093B2 (ja) * 2014-03-18 2017-05-31 株式会社東芝 キャッシュメモリ、誤り訂正回路およびプロセッサシステム
US9954557B2 (en) * 2014-04-30 2018-04-24 Microsoft Technology Licensing, Llc Variable width error correction
JP2016031626A (ja) * 2014-07-29 2016-03-07 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
US9891986B2 (en) 2016-01-26 2018-02-13 Nxp Usa, Inc. System and method for performing bus transactions
US10558521B2 (en) * 2017-02-27 2020-02-11 Dell Products, Lp System and method for providing predictive failure detection on DDR5 DIMMs using on-die ECC
WO2018193448A1 (en) * 2017-04-17 2018-10-25 Mobileye Vision Technologies Ltd. Systems and methods for error correction
GB2568776B (en) * 2017-08-11 2020-10-28 Google Llc Neural network accelerator with parameters resident on chip
US20190243566A1 (en) * 2018-02-05 2019-08-08 Infineon Technologies Ag Memory controller, memory system, and method of using a memory device
CN111771192A (zh) * 2018-05-11 2020-10-13 拉姆伯斯公司 纠错码信息的有效存储
US10998023B2 (en) 2018-08-03 2021-05-04 Mobileye Vision Technologies Ltd. Error correction coding in a dynamic memory module
US11663073B2 (en) 2020-12-10 2023-05-30 Advanced Micro Devices, Inc. Method and apparatus for data protection in memory devices
US11983066B2 (en) * 2022-05-05 2024-05-14 Nanya Technology Corporation Data storage device storing associated data in two areas

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2105583A (en) 1982-11-25 1984-05-31 Pullan, B.R. Apparatus for detecting and determining the distribution of radioactivity on a medium
US5172379A (en) * 1989-02-24 1992-12-15 Data General Corporation High performance memory system
CA2019351A1 (en) 1989-07-06 1991-01-06 Francis H. Reiff Fault tolerant memory
US5233616A (en) * 1990-10-01 1993-08-03 Digital Equipment Corporation Write-back cache with ECC protection
JPH04336644A (ja) * 1991-05-14 1992-11-24 Okuma Mach Works Ltd 記憶装置
US5987627A (en) 1992-05-13 1999-11-16 Rawlings, Iii; Joseph H. Methods and apparatus for high-speed mass storage access in a computer system
US5452429A (en) * 1993-11-17 1995-09-19 International Business Machines Corporation Error correction code on add-on cards for writing portions of data words
US5553264A (en) 1994-06-24 1996-09-03 Digital Equipment Corporation Method and apparatus for efficient cache refilling by the use of forced cache misses
US5666371A (en) 1995-02-24 1997-09-09 Unisys Corporation Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
IN188196B (ja) * 1995-05-15 2002-08-31 Silicon Graphics Inc
JPH10111839A (ja) * 1996-10-04 1998-04-28 Fujitsu Ltd 記憶回路モジュール
US6076182A (en) * 1996-12-16 2000-06-13 Micron Electronics, Inc. Memory fault correction system and method
JPH11110920A (ja) * 1997-09-30 1999-04-23 Toshiba Corp 誤り訂正符号化方法及び装置、誤り訂正復号化方法及び装置、並びにデータ記録・再生装置、並びに記憶媒体
US6108730A (en) * 1998-02-27 2000-08-22 International Business Machines Corporation Memory card adapter insertable into a motherboard memory card socket comprising a memory card receiving socket having the same configuration as the motherboard memory card socket
EP1122645A1 (en) 1998-09-14 2001-08-08 Fujitsu Limited Method of diagnosing a memory failure and recovering data, and a memory device using this method
US6327672B1 (en) * 1998-12-31 2001-12-04 Lsi Logic Corporation Multiple drive failure tolerant raid system
US6279072B1 (en) 1999-07-22 2001-08-21 Micron Technology, Inc. Reconfigurable memory with selectable error correction storage
US6662333B1 (en) * 2000-02-04 2003-12-09 Hewlett-Packard Development Company, L.P. Shared error correction for memory design
US20020029415A1 (en) 2000-05-11 2002-03-14 Meacham Jeremiah W. Providing a plumbing kit of parts and utilizing them to provide an outside hot water source of a dwelling, interconnected to a nearby existing outside cold water source, creating an outside controllable temperature and controllable flow of outside water

Also Published As

Publication number Publication date
JP4243245B2 (ja) 2009-03-25
EP1532636A1 (en) 2005-05-25
JP2009080822A (ja) 2009-04-16
JP2005528712A (ja) 2005-09-22
US7117421B1 (en) 2006-10-03
EP1532636A4 (en) 2005-12-28
AU2003231935A1 (en) 2003-12-19
WO2003102965A1 (en) 2003-12-11

Similar Documents

Publication Publication Date Title
JP5222099B2 (ja) トランスペアレントeccメモリシステム
CN108320764B (zh) 半导体设备、存储器模块及其操作方法
US5961660A (en) Method and apparatus for optimizing ECC memory performance
US7506226B2 (en) System and method for more efficiently using error correction codes to facilitate memory device testing
US8775747B2 (en) Write data mask method and system
US20070234182A1 (en) Error checking and correction (ECC) system and method
US7272774B2 (en) Extender card for testing error-correction-code (ECC) storage area on memory modules
US7487413B2 (en) Memory module testing apparatus and method of testing memory modules
US5379304A (en) Method and structure for providing error correction code and parity for each byte on SIMM's
JPH07191915A (ja) コンピュータ・システム、メモリ・カード、及びその操作方法
JPWO2011148484A1 (ja) メモリシステム、メモリ装置及びメモリインターフェース装置
CN114365225A (zh) 具有系统ecc的存储器
US6714460B2 (en) System and method for multiplexing data and data masking information on a data bus of a memory device
US8732415B2 (en) Write data mask method and system
KR102142589B1 (ko) 패리티 체크를 수행하는 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작방법
US20030182611A1 (en) Method for verifying error correction code function of a computer system
JP2003345669A (ja) メモリアクセスエラーを防止するシステム及び方法
US10255986B2 (en) Assessing in-field reliability of computer memories
US6535955B1 (en) Redundant array of inexpensive disks controller
KR20230095437A (ko) 메모리 시스템 및 이의 동작 방법
JPS61211786A (ja) Icカ−ド
KR20140021419A (ko) 메모리 모듈 및 이를 포함하는 메모리 시스템
CN116069548A (zh) 存储器装置、存储器模块和存储器控制器的操作方法
JPS6133557A (ja) 主記憶装置
JP2003058494A (ja) 半導体集積回路

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120201

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120803

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130123

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: 20130212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130308

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5222099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term