(57)【特許請求の範囲】
【請求項１】
メモリ装置であって、
メモリ・セルの複数のアドレス指定可能なセグメントにデータを記憶するよう構成されたメモリ・セル・アレイと、
第１の複数のデータ・サイクルにわたり、前記メモリ装置によって受信された入力データの配信を制御するためのバースト・コントローラであって、前記入力データは、
第１のデータと、
前記第１のデータに対する第１の誤り訂正符号データと、
第２の誤り訂正符号データと
を含むバースト・コントローラと、
前記メモリ・セル・アレイに結合された書き込み回路であって、第１のバースト書き込みモードでは、前記バースト・コントローラが、メモリ・セルの前記アドレス指定可能なセグメントのうちの第１のセグメント内に前記第１のデータを書き込み、前記第１のセグメントと関連付けられた少なくとも１つの更なるメモリ・セルに前記第１の誤り訂正符号データを書き込む旨を前記書き込み回路にシグナリングする書き込み回路と、
外部マスク信号に基づいて動作可能な書き込みマスキング回路であって、前記第１のバースト書き込みモードでは、前記外部マスク信号は、前記第１の複数のデータ・サイクル中にアサートされると、前記書き込み回路が前記第２の誤り訂正符号データを書き込むことを阻止させる書き込みマスキング回路と
を備えるメモリ装置。
【請求項２】
請求項１記載のメモリ装置であって、前記第１の誤り訂正符号データは、第２の複数のデータ・サイクルのうちのデータ・サイクル中に受信され、前記第２の誤り訂正符号データは、前記第２の複数のデータ・サイクルのうちの前記データ・サイクル中に受信されるメモリ装置。
【請求項３】
請求項１記載のメモリ装置であって、前記バースト・コントローラは、少なくとも、第１のバースト読み出しモードと第２のバースト読み出しモードとの間で更に構成可能であり、前記第１のバースト読み出しモードは、前記第１のセグメントからのデータ、及び前記第１のセグメントに関連付けられた前記少なくとも１つの更なるメモリ・セルからの誤り訂正データを出力し、前記第２のバースト読み出しモードは、前記第１の複数のデータ・サイクルよりも短い第２の複数のデータ・サイクルにわたり、前記第１のセグメントからのデータを出力し、前記少なくとも１つの更なるメモリ・セルからのデータは前記第２の複数のデータ・サイクル中に出力されないメモリ装置。
【請求項４】
請求項３記載のメモリ装置であって、前記第１のバースト読み出しモードにおいて、前記バースト・コントローラは前記第２の複数のデータ・サイクルのうちの第１のデータ・サイクルにおいて誤り訂正符号化データを配列するメモリ装置。
【請求項５】
請求項１記載のメモリ装置であって、前記バースト・コントローラは更に、前記第１の複数のデータ・サイクルよりも短い第３の複数のデータ・サイクルにわたって第２のバースト書き込みモードにおいて前記メモリ装置によって受信された他の入力データの配信を制御し、前記バースト・コントローラは、前記第１のセグメントに関連付けられた前記少なくとも１つの更なるメモリ・セルに前記受信された他のデータの何れも書き込まずにメモリ・セルの前記第１のセグメント内のアドレス可能な場所に、受信された他の入力データを書き込む旨を前記書き込み回路にシグナリングするメモリ装置。
【請求項６】
方法であって、
バースト・コントローラにより、第１の複数のデータ・サイクルにわたり、受信された入力データのメモリ・セル・アレイにおける配信を制御する工程を含み、前記メモリ・セル・アレイは、メモリ・セルの複数のアドレス指定可能なセグメントを含み、アドレス指定可能なセグメントはそれぞれ、少なくとも１つの更なるメモリ・セルと関連付けられ、前記入力データは、
第１のデータと、
前記第１のデータに対する第１の誤り訂正符号データと、
第２の誤り訂正符号データと
を含み、
前記配信を制御する工程は、
メモリ・セルの前記アドレス指定可能なセグメントのうちの第１のセグメント内に前記第１のデータを書き込む旨を書き込み回路にシグナリングする工程と、
前記第１のセグメントと関連付けられた前記少なくとも１つの更なるメモリ・セルに前記第１の誤り訂正符号データを書き込む旨を前記書き込み回路にシグナリングする工程と、
前記第１の複数のデータ・サイクル中にアサートされる外部マスク信号に基づいて、前記第２の誤り訂正符号データを書き込むことを書き込み回路に阻止させる工程と
を含む方法。
【請求項７】
請求項６記載の方法であって、前記第１の誤り訂正符号データは、前記第２の複数のデータ・サイクルのうちのデータ・サイクル中に受信され、前記第２の誤り訂正符号データは、前記第２の複数のデータ・サイクルのうちの前記データ・サイクル中に受信される方法。
【請求項８】
請求項６記載の方法であって、
第１のバースト読み出しモード及び第２のバースト読み出しモードの間で前記バースト・コントローラを構成する工程を更に含み、前記第１のバースト読み出しモードは、前記第１のセグメントからのデータ、及び前記第１のセグメントに関連付けられた前記少なくとも１つの更なるメモリ・セルからの誤り訂正データを出力し、前記第２のバースト読み出しモードは、前記第１の複数のデータ・サイクルよりも短い第２の複数のデータ・サイクルにわたり、前記第１のセグメントからのデータを出力し、前記少なくとも１つの更なるメモリ・セルからのデータは前記第２の複数のデータ・サイクル中に出力されない方法。
【請求項９】
請求項８記載の方法であって、前記第１のバースト読み出しモードにおいて、前記バースト・コントローラは前記第２の複数のデータ・サイクルのうちの第１のデータ・サイクルにおいて前記誤り訂正符号化データを配列する方法。
【請求項１０】
請求項６記載の方法であって、
前記第１の複数のデータ・サイクルよりも短い第３の複数のデータ・サイクルにわたって前記バースト・コントローラの第２のバースト書き込みモード中に受信された他の入力データの配信を前記バースト・コントローラが制御する工程を更に含み、前記制御する工程は、前記第１のセグメントに関連付けられた前記少なくとも１つの更なるメモリ・セルに、受信された他のデータの何れも書き込まずにメモリ・セルの前記第１のセグメント内のアドレス可能な場所に、前記受信された他の入力データを書き込む旨を前記バースト・コントローラが前記書き込み回路にシグナリングする工程を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ディジタル・メモリのシステム、構成部分及び方法に関し、特に、バースト・メモリ・トランザクションにおいて誤り訂正符号化データを多重化することができるメモリ・システム構成部分に関する。
【背景技術】
【０００２】
マイクロプロセッサなどのディジタル・プロセッサは、コンピュータ・メモリ・サブシステムを用いて、データ及びプロセッサ命令を記憶する。一部のプロセッサはメモリと直接通信し、他のプロセッサは専用コントローラ・チップ（多くの場合、「チップセット」の一部）を用いてメモリにアクセスする。
【０００３】
通常のコンピュータ・メモリ・サブシステムは多くの場合、メモリ・モジュールを用いて実現される。図１に示すコンピューティング・システム１００を参照すれば、プロセッサ１２０は、種々の周辺装置にプロセッサ１２０を結合するメモリ・コントローラ／ハブ（MCH）１３０とフロントサイド・バス１２５を介して通信する。前述の周辺装置の１つは、メモリ・モジュールMM0として示すシステム・メモリである。メモリは、全システムにおける前述のモジュ―ル上に配置しなくてよいが、モジュールを多くのシステムにおいて用いて、モジュールをより大きな容量のモジュールと置き換えることによって、かつ／又は更なるメモリ・スロットに更なるモジュール（図示せず）を追加することによってメモリ拡張を可能にする。接続されると、メモリ・モジュールMM0は、MCH１３０がアドレス／コマンド（ADD／CMD）バス１５０上で適切な信号をアサートする都度、MCH１３０からアドレス指定される。MCH１３０と、メモリ・モジュールの１つとの間のデータ転送はデータ・バス１４０上で行われる。
【０００４】
通常、メモリ・モジュールは複数の半導体メモリ装置を用いて構築される。個々の装置それぞれは、モジュールに記憶された各データ語の一部分を記憶する。例えば、メモリ・モジュールMMOは、5個のダイナミック・ランダムアクセス・メモリ（DRAM）装置DRAM0乃至DRAM4を示す。各DRAM装置は、ADD／CMDバス１５０から同じアドレス及びコマンド信号を受信する。各DRAM装置は、データ・バス１４０を構成する信号線部分集合DQnに接続し、DRAM0は16本のバス線DQ0乃至DQ15に接続し、DRAM１はDQ16乃至DQ31に接続し、DRAM２はDQ32乃至DQ47に接続し、DRAM３はDQ48乃至DQ63に接続し、DRAM４はDQ64乃至DQ71に接続する。よって、７２ビットのデータが、データ・サイクル中にデータ・バス１４０を介して転送されると、DRAM4を除いて、各DRAMはそのビットのうちの16ビットの原因となる。DRAM4は8ビット（通常、DRAM4の他の8つのDQn入力は、接続されていないに過ぎず、DRAM4の半分はアクセス可能でない）の原因となる。各DRAMは、72ビットの語のその割り当てられた部分を、他のDRAMそれぞれが72ビットの語のその部分を記憶するのと同じチップ場所に記憶する。
【０００５】
図１の例では、各アドレス指定可能データ語のサイズは７２ビットである。前述のビットの６４ビットを用いてデータを記憶する。更なる８ビットを用いて、同じアドレスを有する６４ビットのデータに対応する誤り訂正符号化（ECC）情報を記憶する。例えば、DRAM4をECCの記憶に特化することが可能であり、DQ64-DQ71はその場合、ECC情報を記憶し、取り出すのに用いられる。他のシステムは、他のバス幅を用いることができる。３６ビットも一般的である（バスは３２個のデータ・ビット・レーン及び４つのECCビット・レーンに分けられる）。
【０００６】
現在の多くのメモリ装置及びコントローラは、単一のコマンドによって、順次記憶されている複数のデータ語を併せてアクセスすることを可能にするバースト・モードを提供する。図２は、図１のECCメモリ・モジュールMM0を用いた16ワードのバースト・モード・データ転送のタイミング図を示す。MCH１３０は、開始アドレス、及び、バースト・モード16の読み出し又は書き込みのコマンドをモジュールMM0に供給する。コマンドが読み出しコマンドの場合、モジュールMM0上のDRAMはそれぞれ、開始アドレスを含んでいるワード線に接続されたデータ記憶セルを読み出し、次いで、データ・バス140上の開始アドレス及び連続した１５個の後続アドレスからのデータを16の連続データ・サイクルにわたって駆動させる。コマンドが書き込みコマンドの場合、MCH１３０は、16の連続データ・サイクルにわたって書き込みデータを供給する。モジュールMM0上のDRAMは、その書き込みデータを受信し、バッファリングし、次いで、ワード線における連続したメモリ場所に、開始アドレスから始めて書き込む。
【０００７】
DRAM4は、前述のバースト・コマンドの間、他のDRAM全てと同様にふるまい、そのデータを用いてDRAM0乃至DRAM３に記憶されたデータに対してECC機能を行うことができることを知らなくてよい。例えば、時間スロットT0の間、データ「A」及びECCデータ「A」が送信される。ここで、「A」は、MCH１３０によって規定される開始アドレスにおけるデータを表す。時間スロットT1の間、データ「B」及びECCデータ「B」が送信される。ここで、「B」は、「A」アドレスに連続して後続するアドレスにおけるデータを表す。
【０００８】
システム全てが前述のECC保護を用いる訳でない。ECC保護はより広いデータ・バスを必要とし、通常、メモリ・ランク毎に余分のメモリ・チップを必要とする（例えば、DRAM４やDQ64‐DQ71は、64ビットの非ECCシステムでは必要になるものでない。更に、ECCは一般に、（誤り検査機能によって）レーテンシを増加させ、（要求される余分なチップによって）電力消費を増加させる。非ECCシステムはさもなければ、前述のように機能する。但し、次の場合は除く（例えば、メモリ・コントローラは、読み出し動作においてDRAM0-DRAM3から受け取られるデータのデータ・インテグリティを信用する）。よって、ECC及び非ECCメモリ・モジュールは、相互に交換可能でない。現在、前述の欠点が主な理由で、ECCシステムより多くの非ECCシステムが生産されている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本明細書は、ECC可能なメモリ・システム構成部分を提供する新たな手法に関する。
【課題を解決するための手段】
【００１０】
実施例は、添付図面を参照して本明細書を読むことによって最も深く理解することができる。
【図面の簡単な説明】
【００１１】
【図１】従来技術のコンピュータ・システムのプロセッサ及び一部のメモリ・システム構成部分を示す図である。
【図２】図１のデータ・バス上のバースト・モード・データ転送のタイミング図である。
【図３】本発明の実施例によるコンピュータ・システムのプロセッサ及び一部のメモリ・システム構成部分の構成図である。
【図４Ａ】本発明の実施例による、誤り訂正バースト・モード・データ転送のタイミング図である。
【図４Ｂ】本発明の実施例による、誤り訂正バースト・モード・データ転送のタイミング図である。
【図５】本発明の実施例による、誤り訂正バースト・モード・データ転送のタイミング図である。
【図６】A、B、Cは本発明の実施例による、誤り訂正バースト・モード・データ転送のタイミング図である。
【図７】本発明の実施例による、DRAM装置の構成図である。
【発明を実施するための形態】
【００１２】
この手法は、専用のECCメモリ装置及び専用のECCビット・レーンに対する要求を避けることが可能になる。それによって、ECCモジュールと非ECCモジュールとの間の互換性が少なくとも一部の実施例において可能になる。専用のECC装置及びビット・レーンの代わりに、本願明細書において記載されている実施例では、データ・ビット・レーンを介したバースト・モード転送の間、システム・データがECCデータと時間多重化され、メモリ・コントローラ及びメモリ装置が、所定のやり方で混合データ／ECCバースト転送を扱うことに対して責任がある。特定の実施例では、メモリ装置は、ECCおよび非ECCバーストの転送モードによって設計される（ECCシステムにおいても非ECCシステムにおいても、他のデータについてではないが特定の重要データについてECC保護に依存するシステムにおいてでさえも、交換可能にモジュールを用いることが可能になる）。好ましい実施例は、ECCデータが、アドレス指定可能なメモリ空間を占めないが、アドレス指定可能なメモリ空間に関連した内部的にアドレス指定可能なメモリ領域に記憶されるメモリ構造を用いる。
【実施例】
【００１３】
実施例の紹介として、図３は、メモリ・コントローラ３３０に結合されたプロセッサ３２０を組み入れたコンピューティング・システム３００を示す。プロセッサ３２０及びメモリ・コントローラ３３０は、単一の回路上に集積することが可能であるか、又は、図１に表したものと同様にフロントサイド・バスによって接続された別個の回路上に常駐し得る。メモリ・コントローラ３３０は同様に、アドレス／コマンド・バス３５０及びデータ・バス３４０によってバイモーダル・メモリ・モジュールBMM0に接続される。データ・バス３４０は、６４個のビット・レーンDQ0乃至DQ63を有するものとして示しているが、これは例示に過ぎない。他の実施例は、例えば、１６、３２や１２８のデータ・バス・ビット・レーンを用いる。バイモーダル・メモリ・モジュールBMM0は、本発明のメモリ装置実施例において以下に更に説明する４つの誤り訂正バースト・モード（ECB)DRAM（ECB-DRAM0、ECB-DRAM1、ECB-DRAM2及びECB-DRAM3）を含む。誤り訂正バースト・モードを用いたシステム実施例では、メモリ・コントローラ３３０は、誤り訂正バースト・モード・データを受信し、送信するよう設計される。しかし、従来技術の非ECCバースト・モードのみを用いた特定のシステム実施例では、従来技術の非ECCメモリ・コントローラをモジュールBMM0に結合することが可能である。
【００１４】
メモリ・コントローラ３３０及びECB  DRAMのシステム・レベル機能は、データ・バス３４０を介した誤り訂正バースト・モード・データ伝送のタイミング図を検査することによってより深く理解することが可能である。まず図４A及び図４Bを参照すれば、「誤り訂正バースト・モード１８A」の１８個のデータ・サイクルT0-T17を表す。この例では、前述の１８個のデータ・サイクルは、図２の従来技術のコンピュータ・システム１００によって転送された同じ16個の72ビット・データ語A乃至Pを転送する。しかし、重要なことには、図４は、従来技術のように７２個のビット・レーン及び１６個のデータ・サイクルの代わりに転送に６４ビット・レーン及び１８個のデータ・サイクルを用いる。更に、データ語と同時にデータ語のECC符号化を転送する代わりに、データの時間配置が図２から修正される。
【００１５】
今度は、BMM0との間のデータの読み書きを検討する。まず図４Aの読み出しデータ・サイクルT0をみれば、ECCデータのみがT0中に転送されることがわかり得る。データ・サイクルT0中に、ECCデータA及びCがECB-DRAM0から転送される。このECCデータはそれぞれ、全てのECB  DRAMによってデータ・サイクルT２中に転送されるデータA及び全てのECB  DRAMによってデータ・サイクルT4中に転送されるデータCに対応する。更に、データ・サイクルT0中に、ECCデータE及びGがECB-DRAM1によって転送される。このECCデータはそれぞれは、全てのECB  DRAMによってデータ・サイクルT6中に転送されるデータE及び全てのECB  DRAMによってデータ・サイクルT8中に転送されるデータGに対応する。同様に、Ｔ0中にECB-DRAM2及びECB-DRAM3は、データ・サイクルT10、T12、T14及びT16中にECB-DRAM全てによって転送されるデータにそれぞれ対応するECCデータI、K、M及びOを送信する。
【００１６】
次にデータ・サイクルT1をみれば、やはりECCデータのみがT1中に転送されることが分かり得る。転送されるECCデータは、残りの奇数データ・サイクル（例えば、T3、T5、T7、T9、T11、T13、T15及びT17）中に転送されるデータに対応する。
【００１７】
メモリ・コントローラ３３０は、ECCデータをT0及びT1中に受信すると、１６個の8ビットECCレジスタを含むECCレジスタ・バンク３３５にそのデータを転送する。更に、データがメモリ・コントローラ３３０によってT2において受信されると、ECCデータ「A」が、バンク３３５内のそのレジスタから取り出され、データAに対して誤り訂正を行うのに用いられる。データがメモリ・コントローラ３３０によってT3において受信されると、ECCデータ「B」が、バンク３３５内のそのレジスタから取り出され、データBに対して誤り訂正を行うのに用いられる。この処理は、データ・サイクルT17まで続く。データ・サイクルT17では、ECCデータ「P」が、最後のECCレジスタから読み出され、データPに対して誤り訂正を行うのに用いられる。誤り訂正データ語A乃至Pは、プロセッサ320によってメモリ・コントローラ330に、又は、直接メモリ・アクセス（DMA）コマンドによってデータを要求した特定の別の周辺装置に転送される。
【００１８】
誤り訂正がデータ語A乃至Pに望まれなかった場合、最初の２つのデータ・サイクルがないこと以外は図４に表すものと同じデータ転送を用いることが可能である。
【００１９】
BMM0にデータを書き込む場合、図４Bに示すデータ・サイクル構造を一実施例において用いる。データ語A乃至Pは、データ・サイクルT0乃至T15中に全ECB  DRAMそれぞれに転送される。メモリ・コントローラ３３０は、伝送するための各データ語を作成すると、対応するＥＣＣデータを算出し、そのＥＣＣデータを、前述のバンク３３５内の１６個のＥＣＣレジスタの１つに記憶する。更に、データ・サイクルT16中に、ECCデータA、C、E、G、I、K、M及びOが、図示したようにECB  DRAMに転送される。データ・サイクルT17中に、残りのECCデータB、D、F、H、J、L、N及びPが、図示したようにECB  DRAMに転送される。
【００２０】
ECCデータの特定の配列は例示である。例えば、第１のECCデータ・サイクル中にECCデータ値A乃至Hを転送することが可能であり、第２のECCデータ・サイクル中にECCデータ値I乃至Pを転送することが可能である。メモリ・コントローラ３３０が読み出し及び書き込みと整合している限り、如何なる好都合な配列も利用することが可能である。まもなく説明するように、本願記載の実施例では、ECB  DRAMには、データ・サイクル形式のみが分かればよく、ECCデータがメモリ・コントローラによってメモリ装置に割り当てられる方法は分からなくてよい。
【００２１】
図５は、別のバースト・モード１８Bを示す。このバースト・モードでは、1つのECCデータ・サイクルに、対応する8個のデータ・サイクルを割り込ませている。ECCデータ・サイクル中に、対応する8個のサイクル毎のECCデータが伝送される。一実施例では、データ・サイクルT0中に、次の8個のサイクルT1-T8中に伝送される対象であるデータ語A-Hに対応するECCデータが転送される。次いで、データ・サイクルT9中に、データ語I乃至Pに対応するECCデータが転送され、次いで、データ・サイクルT10-T17中に、データ語I乃至Pが転送される。図５は、連結された２つの9データ・サイクル・バーストから成る。これは、このモードを、半分の転送を行うことによるバースト・モード９の転送に用いることも可能であることを示唆している。更に、ユーザ・データの8個のデータ・サイクルが最初に転送され、次いで、ユーザ・データの8個のデータ・サイクルに対応するECCデータの1つのデータ・サイクルが転送されるように、バースト・モード18Bを書込み動作について修正することが可能である。
【００２２】
前述のタイミング実施例は、データ・サイクルにおいて転送することが可能なECC値の数と、対応するデータのバースト長との間に整数関係が存在している状態を例証している。図６A乃至図６Cは、これが必ずしもあてはまらない実施例を示す。
【００２３】
図６Aでは、メモリ・コントローラ３３０は、誤り訂正バースト・モード５転送を要求する。これは、一データ・サイクルのECCデータ及び4データ・サイクルのユーザ・データをECB  DRAMから転送する。この転送は、図５の最初の5個のデータ・サイクルと同一であるが、データ・サイクルT4の後が切り捨てられる。ECB-DRAM2及びECB-DRAM3から受信されたECCデータE-Hは「ドントケア」データである。これは、メモリ・コントローラ３３０によってＥＣＣレジスタ・バンク３３５に転送され、ロードされるが、用いられることは決してない。
【００２４】
この例の場合、ECB-DRAMに供給される列アドレスを0xC80とする。ここで、0xは16進の表記法を表し、ユーザ・データ「A」は、列アドレス0xC80及び特定の行アドレスRAにおいて記憶される。ECCデータ「A」及び「B」には、ECB-DRAM0メモリにおいて行アドレスRA及び列アドレス0xC80-87と関連付けられる。ECB-DRAM0メモリ・アレイからのそのアドレス範囲における如何なるユーザ・データの取り出しも、行アドレスRA及び列アドレス0xC8[0b0XXX]と関連付けされたECCメモリ・アレイ要素からのECCデータ「A」及び「B」の取り出しをもたらす。括弧内の値は、２進法（0b）の表記法であり、「X」は、ドントケア・ビットを表す。同様に、ECCデータ「I」及び「J」が、行アドレスRA及び列アドレス0xC8[0b1XXX]に関連付けられたECCメモリ・アレイ要素に記憶される。通常のユーザECCバースト・モードでは、メモリ・コントローラは、前述のＥＣＣメモリ・アレイ要素を明示的にアドレス指定することが可能でないが、コントローラには、対応するユーザ空間アドレス指定におけるユーザ・データが供給される際に、前述のECCメモリ・アレイ要素がECCモードにおいてアクセスされることが分かっている。
【００２５】
更に、バーストが2つのECC連結にわたる（例えば、図4Aの4語バーストG-Jを要求する）場合、1データ・サイクル、バーストを増やし、両方のECC連結を供給するようメモリ・システムを設計することが可能である。
【００２６】
図６Ａ、６Ｂ及び６Ｃそれぞれでは、メモリ・モジュールBMM0は、同じECCデータを戻すが、別々のユーザ・データを戻す。列アドレスの低位ビットに応じて、メモリ・コントローラは、使用する対象のECCデータ及び無視する対象のECCデータを選択する。例えば、図６Bでは、開始列アドレスは0xC82である。そうすると、ECB-DRAM1及びECB-DRAM2から戻されるECCデータが用いられ、ECB-DRAM0及びECB-DRAM3から戻されるECCデータは無視される。図６Cでは、開始列アドレスは0xC84である。そうすると、ECB-DRAM2及びECB-DRAM3から戻されるECCデータが用いられる。
【００２７】
他のバースト長は例示していないが、例えば、バースト長3（1つのECCデータ・サイクルを含む）バースト・モード、ユーザ・データを単一のアドレスから転送するバースト長2（1つのECCデータ・サイクルを含む）モード、及び、特に言及していない何れかの他のバースト長に当業者は上記の原理を適用することが可能である。
【００２８】
特定の実施例では、特定の無効ECCデータを含むバースト長において書き込みユーザ・データ及びECCデータを書き込むことも可能である。一実施例では、メモリ装置はデータ・マスキング（DM）シグナリング入力を含み、メモリ・コントローラは、書き込まれるユーザ・データに対応しないECC場所にECCデータが書き込まれるのを防止するために、適切なマスキング線をECCデータ・サイクル中にアサートする。例えば、図６Bでは、メモリ・コントローラは、ECB-DRAM1及びECB-DRAM2のみが実際にT0中にECCデータを得て、そのECCデータをECCメモリに保存するように、T0中にECB-DRAM0及びECB-DRAM3のDM入力をアサートすることが可能である。
【００２９】
別の実施例では、DMシグナリング入力は存在しないか、又は、データ・バス線上のECCデータを制御するのに用いられない。その代わりに、各メモリ装置のモード・レジスタ・セット（MRS）におけるモジュール位置レジスタがBMM0上のその装置の位置によってプログラムされるか、又は、モジュールが構築される際にオプションがハードコードされる。各メモリ装置における論理は、装置に供給されたECCデータを書き込むか又は無視するべきかを決定するために、書き込みに要求された列アドレス範囲を、モジュール位置レジスタと比較する。例えば、ECB-DRAM0上では、MRSモジュール位置レジスタは、値000及び001によってプログラムされる。書き込みバーストの列アドレス範囲が低位アドレス000を含む場合、ECB-DRAM0は、そのECCメモリ空間に、DQ0-DQ7上にT0において受信されたECCデータを保存し、さもなければ、そのデータは保存しない。低位アドレス001の同様の論理は、DQ8-DQ15上でT0において受信されたECCデータがECCメモリ空間に保存されるか否かを判定する。
【００３０】
ECB  DRAM700の一実施例を図７の構成図に示す。ECB  DRAM７００は、アドレス及び制御論理７１０と、アドレス・レジスタ７２０と、行デコーダ７３０と、列デコーダ７４０と、バースト／ECCコントローラ／カウンタ７５０と、Ｉ／Ｏレジスタ、ドライバ及びレシーバ７６０と、Ｉ／Ｏゲ―ティング及びマスク論理７７０と、センス増幅器７８０と、メモリ・セル・アレイ７９０とを備える。前述のブロックのいくつかは当業者になじみがあるが、他のものは、前述の誤り訂正バーストに対応するよう修正されている。以下の説明は、ブロックと、誤り訂正バーストをサポートする新たな機能との間の協調に焦点を当てる。
【００３１】
アドレス及び制御論理ブロック７１０は、例えば、メモリ・コントローラから信号入力ＣＭＤ上でコマンドを受信する。一般的なコマンドは、メモリ・セル・アレイ７９０におけるワード線を選択するためのＡＣＴＩＶＥコマンド、メモリ・セル・アレイ７９０において読み出す対象の列を規定するＲＥＡＤコマンド、メモリ・セル・アレイ７９０において書き込む対象の列を規定するＷＲＩＴＥコマンド、リフレッシュ・コマンド、及び種々のモード設定コマンドを含む。
【００３２】
ACTIVEコマンド中に、行アドレスが、信号入力ADD上で受信され、アドレス・レジスタ７２０によってラッチされる。行アドレスは、アドレス及び制御論理７１０からの信号によって行デコーダ７３０に転送され、次いで、メモリ・セル・アレイ７９０の対応する行を駆動するのに用いられる。センス増幅器７８０は、ACTIVEコマンドに応答してメモリ・セル・アレイ行の内容を読み出し、リフレッシュする。
【００３３】
READコマンド中には、列アドレスが、信号入力ADD上で受信され、アドレス・レジスタ７２０によってラッチされる。列アドレスは、アドレス及び制御論理７１０からの信号によってバースト／ECC／コントローラ／カウンタ７５０に転送される。バースト／ECCコントローラ／カウンタ７５０は、列アドレスを用いて、READ動作のデータ段階中のセンス増幅器７８０からI/Oゲーティング及びマスク論理７７０を介したI／Oレジスタ及びドライバ７６０へのデータの選択及び転送を制御する。
【００３４】
WRITEコマンド中には、列アドレスが、信号入力ADD上で受信され、アドレス・レジスタ７２０によってラッチされる。列アドレスは、アドレス及び制御論理７１０からの信号によってバースト／ECC／コントローラ／カウンタ７５０に転送される。バースト／ECCコントローラ／カウンタ７５０は、列アドレスを用いて、WRITE動作のデータ段階中のI／Oレジスタ及びレシーバ７６０からI／Oゲーティング及びマスク論理７７０へのデータの転送を制御する。
【００３５】
少なくとも一部のモード設定コマンド中には、モード・レジスタ値が、信号入力ADD上で受信され、アドレス・レジスタ７２０によってラッチされる。モード・レジスタ値は、アドレス及び制御論理７１０の一部として図７に示すモード・レジスタ７１５に転送される。特定の実施例では、モード・レジスタ値の１つはECCモードである。ECCモードは、READ及びWRITEのバースト・コマンドが、余分のデータ・サイクルをECCデータの転送に含むか否かを示す。モード・レジスタ値ECC  MODEはバースト／ECCコントローラ／カウンタ７５０に供給され、読み出し及び書き込みのコマンドのデータ転送中にバースト／ECCコントローラ／カウンタ７５０がデータ列を選択する方法を定める。
【００３６】
列デコーダ７４０は、読み出し又は書き込みのデ―タ・サイクル毎のI／Oゲーティング及びマスク論理７７０とI／Oレジスタ７６０との間のデータの転送のためにメモリ・セル・アレイ７９０においてn個の列を選択する。選択されるn個の列は、そのデータ・サイクルについてバースト／ECCコントローラ／カウンタ７５０によって供給されるアドレスによって変わってくる。書き込みデータの場合、列の選択は、書き込みデータとともに受信される1つ又は複数のデータ・マスキング（DM）入力によっても変わってくる。マスキングされているものと書き込みデータが示されている場合、I／Oゲーティング及びマスク論理７７０は、メモリ・セル・アレイ７９０へのそのデータの転送を阻止する。
【００３７】
ECCバースト長及び非ECCバースト長をサポートするためにバースト／ECCコントローラ／コントローラ／カウンタ７５０によってバースト長を調節することが可能である以外はI／Oレジスタ、ドライバ及びレシーバ７６０は通常に動作する。書き込みバースト中には、レシーバ７６０は、各データ・サイクル（ストローブI/OピンDQS上のストローブ信号によって示される）中にピンDQ1-DQn上にデータを受信し、ピンＤＭ上にデータ・マスキング入力を受信し、I／Oゲーティング制御及びマスク論理７７０への転送のために、受信されたデータ及びデータ・マスキング入力をI／Oレジスタにラッチする。読み出しバースト中には、I／Oレジスタ７６０はI／Oゲーティング及びマスク論理７７０からデータを受信し、ドライバは、DQ1-DQn上のデータ、及びDQS上のストローブ信号を駆動させる。
【００３８】
メモリ・セル・アレイ７９０の配列は、ECB  DRAM700がECCモードでも非ECCモードでも機能することができることに寄与する。8個のデータ列毎に、ECC列も存在する。この配列は、本発明の実施例を実現することが可能な１つのやり方を示す役目を担う。ここで、アドレス指定可能な列セグメントは更なるECC列と関連付けられる。前述の他の配列に、バースト／ECCコントローラ・カウンタ及び列デコーダが整合している限り、他の配列、及びデータ列対ECC列の比が可能である。
【００３９】
ECB  DRAM７００の更なる動作を次に図６Aに関して説明する。ECB  DRAM７００は、この図において表すECB-DRAM0とする。まず、ACTIVEコマンドに応じて、センス増幅器７８０はメモリ・セル・アレイ７９０の行からデータを読み出す。行は行デコーダ７３０によって選択される。センス増幅器７８０によって読み出されるデータは、ECC列からのECCデータ及びデータ列からのユーザ・データを含む。
【００４０】
次に、誤り訂正バースト・モード５が選択されるとすれば、READコマンドによって供給された列アドレス0xC80がバースト／ECCコントローラ／カウンタ７５０に転送される（図７は一メモリ・バンクを示すが、ECB  DRAM７００は、複数のバンクを有し、列アドレスのうちの一部ビットをバンク・セレクトとすることが可能である）。バースト／ECCコントローラ／カウンタ７５０はまず、列アドレス0xC80に関連したECC列を選択するよう列デコーダ７４０にシグナリングする。このシグナリングは例えば、ECCアドレス・オーバライド信号ECC-A0をアサートする一方で、CA上に開始列アドレス0xC80を供給することを備え得る。ECC-A0信号がアサートされると、列デコーダ７４０は、CA上に生起するアドレスの３つの低位ビットを無視し、代わりに、外部アドレス指定可能なセグメント0xC80-87に関連した第9のアドレスを選択する。この第9のアドレスは、外部供給列アドレスによって直接アドレス指定可能なものでないが、ECCモードにおいて列デコーダによって内部アドレス指定可能である。メモリ・コントローラはよって、ECCモードにおける対応するデータ・セグメントをアドレス指定することによってのみECCデータを間接的にアドレス指定することが可能である。
【００４１】
第９のアドレスが選択されると、I／Oゲーティング及びマスク論理７７０は、データ・サイクルT0中にDQ1-DQnを駆動させるために、外部列アドレス0xC80-87に関連したECC列からのデータをI／Oレジスタ及びドライバ７６０に転送する。
【００４２】
バースト／ECCコントローラ／カウンタは次に、ECCアドレス状態からデータ・アドレス状態に遷移する。開始列アドレス0xC80を列デコーダに供給し続けるが、ECC-A0をアサート解除する。データ・サイクルT1中にDQ1-DQnを駆動させるためにI/Oゲーティング及びマスク論理７７０を介してI／Oレジスタ及びドライバ７６０に転送するためにその外部アドレスに関連付けられたデータ列を列デコーダ７４０に選択させる。
【００４３】
バースト／ECCコントローラ／カウンタはその内部列アドレスを0xC81に増やし、データ・サイクルT2のデータを供給するよう前述の動作を繰り返す。この処理を更に2回繰り返して図６Aの5データ・サイクル・バースト読み出し動作を完了する。
【００４４】
ECCモードがイネーブルされない旨をモード・レジスタ７１５が示す場合、バースト／ECCコントローラ／カウンタ７５０は、ECCアドレス状態に決して入らず、ECC-A0を決してアサートしない。データ・アドレス状態は同じ状態に留まる。それによって、４データ・サイクル・バースト読み出し動作においてECC列ではないがデータ列が読み出されることになる。
【００４５】
誤り訂正書き込みバースト・モードの場合、動作は同様である。適切な１つ又は複数のデータ・サイクルでは、バースト／ECCコントローラ／カウンタ７５０は、CAによって示されるデータ列セグメントに関連したECC列を書き込みに選択させるようECC-A0をアサートする。書き込みバースト長が、余分なデータ・サイクルが誤り訂正書き込みバースト・モードにおいて収容されるよう伸長される。前述したように、ECCデータは、データ・マスキング信号DMに依存することが可能であり、それにより、論理が単純化され、メモリ・コントローラが、書き込まれるECCデータをファイン・グレイン・ベースで判定することが可能になる。
【００４６】
ECCモード及び非ECCモードを示すモード登録方法を説明した。前述のシステムでは、メモリ・コントローラによって変えられない限り、デフォルトとして一モード（例えば、非ECC）を選択することが可能である。ECCモード及び非ECCモードを示す別の方法は、２つの別々のコマンドを供給することであり得る。この方法によって、例えば、プロセッサによって示されるデータの重要度によって、メモリ・コントローラがECCデータ・バースト及び非ECCデータ・バーストを効率的に混合することが可能になる。
【００４７】
４チップのモジュール及び64ビット・データ・バスを示しているが、これは例示に過ぎず、他のチップ数やデータ・バス幅を用いることが可能である。例えば、１チップ、2チップ又は8チップのモジュールも前述の原理によって実現することが可能である。モジュールは、単一のメモリ装置ランクも有していなくてよい。例えば、2つの8チップ・ランクそれぞれをモジュール上に含むことが可能である。本発明は、メモリ装置を用いるプロセッサと同じ回路に搭載されたメモリ装置を有するシステムにも利用可能である。
【００４８】
本明細書において教示された概念が、特定の応用例に、他の多くの効果的なやり方で合わせることが可能であることを当業者は認識するであろう。特に、本明細書の検討によって明らかになる別の多くの実現形態から、例証した実施例が選択されることを当業者は認識するであろう。例えば、バーストにおけるユーザ・データ及びECCデータの種々の多くの時間的配列が考えられる。このうちの一部は、一部又は全部のデータ・サイクルにおいてECCデータ及びユーザ・データをミックスすることもできる。DRAM実施例を説明したが、本明細書記載の原理は、本願の原理が、メモリ・タイプではなくメモリ・セル配列及びデータ転送に当てはまるので、静的、フラッシュ等などの他のタイプの半導体メモリに同様に当てはまる。本明細書記載の装置実施例の特定の機能配列は、１つの考えられる機能グループ化を提示しているが、本特許請求の範囲記載の範囲に収まる他の多くの組み合わせで機能をサブ分割／合成することが可能である。
【００４９】
本発明記載の用途は、誤り訂正符号化である。しかし、ECCに用いる補助メモリ空間及びバースト転送データ・サイクルをあるいは用いて、アドレス指定可能メモリ・アドレス範囲とプロセッサ及び／又はメモリ・コントローラが関連付けられるように構成されたいかなる補助データも記憶し、取り出すことが可能であることを当業者は認識するであろう。
【００５０】
本明細書記載の特定の特徴の多くは、設計上の選択であり、他の多くの設計上の選択の説明は、当該技術分野において存在している技術範囲内であり、かつ／又は実現形態に依存するために省略した。前述のわずかな修正は、本発明の実施例内に包含され、本特許請求の範囲記載の範囲内に収まることが意図されている。
【００５１】
前述の実施例は例示である。本明細書は、いくつかの箇所において「an  embodiment」、「one  embodiment」、「another  embodiment」、又は「some  embodiment」を参照し得るが、これは、前述の各参照が、同じ実施例に対するものであるか、又は単一の実施例のみに特徴があてはまるかを必ずしも意味するものでない。
【図１】
0005399442.tif 000002
【図２】
0005399442.tif 000003
【図３】
0005399442.tif 000004
【図４Ａ】
0005399442.tif 000005
【図４Ｂ】
0005399442.tif 000006
【図５】
0005399442.tif 000007
【図６】
0005399442.tif 000008
【図７】
0005399442.tif 000009