(57)【特許請求の範囲】
【請求項１】
メモリ装置内の動作方法であって、
データ値のブロックを受信することと、
前記データ値のいずれかがマスクキーを表すか否かを判断することと、
マスクキーを表さないデータ値をメモリに書き込むことと、
を備える方法。
【請求項２】
前記判断することが、
前記データ値のブロックと、予め定められた少なくとも１つのマスクキーとを比較することと、
マスクされたデータ値を、前記予め定められた少なくとも１つのマスクキーに対応するデータ値として識別すること
を含む、請求項１に記載の方法。
【請求項３】
前記方法が、前記データ値のブロックの２つのコピーを２相動作で受信することをさらに備え、
マスクされたデータ値は、前記２つのコピーの不一致に基づいて検出されるようになっている、請求項１に記載の方法。
【請求項４】
前記データ値のいずれかがマスクキーを表すか否かを判断することが、前記データ値から、複数の所定のコードのうちの１つを検出することを含む、請求項１に記載の方法。
【請求項５】
前記データ値のいずれかがマスクキーを表すか否かを判断することが、有効なデータ値に対応しないコードを検出することを含む、請求項１に記載の方法。
【請求項６】
メモリ装置であって、
記憶アレイと、
データ値のブロックを受信するインタフェースと、
前記データ値のブロックにおけるいずれかのデータ値がマスキング動作を示すか否かを前記データ値から識別し、かつ、マスキング動作を示すデータ値を除くすべてのデータ値を前記記憶アレイに応答的に書き込む回路と、
を備えるメモリ装置。
【請求項７】
前記回路は、複数の所定のコードのうちの１つへの対応を検出するために各データ値をフィルタするようになっており、かつ、対応していない場合に前記データ値を前記記憶アレイに応答的に書き込むようになっている、請求項６に記載のメモリ装置。
【請求項８】
前記回路は、マスクキーテーブルと比較器とをさらに備え、
前記回路は、各データ値と前記マスクキーテーブル内の複数の所定値の各値との対応を検出するために、前記各データ値と前記各値とを比較することによって、前記データ値のブロック内のいずれかのデータ値がマスキング動作を示すか否かを識別する、請求項７に記載のメモリ装置。
【請求項９】
前記メモリ装置は、前記データ値のブロックの２つのコピーを２相動作の一部として受信するようになっており、かつ、前記２つのコピーにおいて同一である値を前記記憶アレイに書き込むようになっている、請求項８に記載のメモリ装置。
【請求項１０】
前記回路は、有効なデータ値に対応しない前記データ値のブロック内のいずれかの値をマスクキーとして検出するようになっている、請求項６に記載のメモリ装置。
【請求項１１】
マスクキーテーブルをさらに備え、
前記回路は、前記マスクキーテーブル中で識別される所定のマスクキー値が前記データ値のブロック内に存在するか否かを判断するために、前記マスクキーテーブルに結合される、請求項６に記載のメモリ装置。
【請求項１２】
メモリ装置であって、
記憶アレイと、
データ値の符号化ブロックを受信するインタフェースと、
前記データ値の符号化ブロックに存在するマスクキー値を識別し、かつ、マスクキー値に対応する値を除く、前記データ値の符号化ブロック内に存在するすべてのデータ値を、前記記憶アレイに応答的に書き込むロジックと、
を備えるメモリ装置。
【請求項１３】
前記ロジックは、マスクキーが存在するか否かを前記データ値の符号化ブロックの分析によって識別するようになっており、前記データ値の符号化ブロック内のどのデータがマスクされるべきかを識別するようになっており、かつその他すべてのデータで前記記憶アレイを応答的に更新するようになっている、請求項１２に記載のメモリ装置。
【請求項１４】
前記ロジックが、
少なくとも１つの所定のマスクキー値と、
アンマスクされたデータを識別するために、前記少なくとも１つの所定のマスクキー値と前記データ値の符号化ブロックとを比較する比較器と
を含む、請求項１２に記載のメモリ装置。
【請求項１５】
記憶セルのアレイと、メモリに書き込まれるべきデータ値のブロックを受信するようになっているインタフェースとを備えるメモリ装置において、
前記データ値のブロック内の各データ値について、当該データ値がマスクキーを表すコードに対応するか否かを検出することと、
マスクキーを表すコードに対応しない各データ値について、当該データ値を前記記憶セルのアレイに書き込むことと、
マスクキーを表すコードに対応する各データ値について、当該データ値を前記記憶セルのアレイに書き込まないことによって、前記データ値のブロック内の前記データ値の位置に関連づけられる前記アレイの既存の内容を上書きしないようすることと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、発明者リチャード・Ｅ・ペレゴ（Ｒｉｃｈａｒｄ  Ｅ．Ｐｅｒｅｇｏ）およびフレデリックＡ．ウェア（Ｆｒｅｄｅｒｉｃｋ  Ａ．Ｗａｒｅ）によって２００３年１月１３日に出願された米国仮特許出願第６０／４３９，６６６号、表題「符号化書き込みマスキング（Ｃｏｄｅｄ  Ｗｒｉｔｅ  Ｍａｓｋｉｎｇ）」、発明者リチャード・Ｅ・ペレゴ（Ｒｉｃｈａｒｄ  Ｅ．Ｐｅｒｅｇｏ）およびフレデリックＡ．ウェア（Ｆｒｅｄｅｒｉｃｋ  Ａ．Ｗａｒｅ）によって２００３年３月１１日に出願された米国特許出願第１０／３８６，２３６号、表題「符号化書き込みマスキング（Ｃｏｄｅｄ  Ｗｒｉｔｅ  Ｍａｓｋｉｎｇ）」、および発明者リチャード・Ｅ・ペレゴ（Ｒｉｃｈａｒｄ  Ｅ．Ｐｅｒｅｇｏ）およびフレデリックＡ．ウェア（Ｆｒｅｄｅｒｉｃｋ  Ａ．  Ｗａｒｅ）によって２００３年３月１１日に出願された米国特許出願第１０／３８５，９０８号、表題「シリアル化データ転送によるメモリシステムおよび装置（Ｍｅｍｏｒｙ  Ｓｙｓｔｅｍ  Ａｎｄ  Ｄｅｖｉｃｅ  Ｗｉｔｈ  Ｓｅｒｉａｌｉｚｅｄ  Ｄａｔａ  Ｔｒａｎｓｆｅｒ）」に対する優先権を主張する。
【０００２】
技術分野
本発明は、一般に、データ転送および記憶技術、より詳しくは、メモリシステムにアクセスするメモリシステムおよび装置のマスクされた書き込み動作に関する。
【背景技術】
【０００３】
背景
現在のメモリシステムの読み取りおよび書き込みアクセスは、マルチバイトデータブロックの転送を通して典型的に処理される。完全でないデータブロックをメモリシステムから読み取る場合、所望のデータを含むデータブロックのアドレスがメモリシステムに付与され、完全なデータブロックが読み取られる。一般的に、必要とされるよりも多くのデータの読み取りに不利益はない。対照的に、完全なデータブロックよりも小さな値を書き込む場合、書き込まれた値を除き記憶されたデータブロックが変更されないままであることが重要である。このことは、２種類の特殊な書き込み動作、すなわちマージされた書き込み動作またはマスクされた書き込み動作の一方を通して典型的に達成される。
【０００４】
マージされた書き込み動作（時にリードマージライト動作またはリードモディファイライト動作と呼ばれる）では、メモリコントローラが、更新すべきデータブロックを読み取り、書き込みデータ値を適切なオフセットでデータブロックにマージし、次に、更新されたデータブロックを記憶に書き込んで戻す。２つのメモリアクセスが必要である（読み取りおよび書き込み）ので、マージされた書き込み動作はメモリシステムのピーク帯域幅を実質的に低減し、したがって高性能システムでは典型的に使用されない。
【０００５】
マスクされた書き込み動作では、メモリコントローラは、マスク信号を記憶サブシステムに出力して、データブロック内の各データ値をマスクまたはアンマスクされていると認定する。記憶サブシステムは応答して、アンマスクされたデータ値のみを記憶する。レガシーのため、データマスキングのグラニュラリティは、典型的に、１バイト（すなわち、８ビット）のグラニュラリティに達する。８ビットまたは１バイトのグラニュラリティを有するデータマスキングは、時にバイトマスキングと称される。バイトマスキングは、記憶サブシステムに追加のハードウェア（すなわち、マスク信号を検出して、それに応答するために）を必要とする不都合を有するが、マージされた書き込み動作と関連した二重アクセスの性能上の不利益が回避される。
【０００６】
図１は、メモリコントローラ１０１と記憶サブシステム１０３とを有する従来技術のバイトマスキングメモリシステム１００を示している。メモリコントローラ１００は、アクセスリクエスタからアクセスリクエスト（ＲＥＱ）とデータブロック（ＤＡＴＡ）とマスク情報（ＭＡＳＫ）とを受信するためのホストインタフェース１０５、および対応するリクエストとデータブロックとマスク情報とを記憶サブシステムに出力するためのメモリインタフェース１０７を含む。マスクされた書き込み動作では、６４バイトの書き込みデータブロック（５１２ビット）が、６４ビットのマスクワードとマスクされた書き込みリクエストと共にホストインタフェース１０５を介して受信される。マスクワードの各ビットは書き込みデータブロックのそれぞれのバイトに対応し、設定された場合、バイトが記憶サブシステム内に記憶されないマスクされたバイトであることを示す。メモリコントローラ１０１は、マスクされた書き込みリクエストに応答して、マスクされた書き込み指示をリクエスト経路１０２を介して記憶サブシステム１０３に交付し、またデータ経路１０４を介して書き込みデータブロックおよびマスクワードを記憶サブシステムに転送する。データ経路は、４データバイトの並列転送用の３２のデータライン１０８、４つの対応するマスクビットを転送するための４つのマスクライン１０６を含む。したがって、完全な書き込みデータブロックおよびマスクワードが、１６のデータ転送のシーケンスで記憶サブシステムに転送され、各転送は、書き込みデータブロックの４バイトおよびマスクワードの４ビットを含む。
【０００７】
記憶サブシステム１０３は、いくつかの別個のメモリ装置、ＭＥＭRIによって形成され、その各々は、リクエストインタフェースとデータインタフェースとを有する。各メモリ装置のリクエストインタフェースは、マスクされた書き込み指示（アドレス値を含む）を受信するためにリクエスト経路１０２に結合され、また各メモリ装置のデータインタフェースは、１６のデータ転送の各々のデータバイトおよび対応するマスクビットを受信するために、データ経路のそれぞれの９ビットスライスに結合される。各々のデータ転送のために、メモリ装置の各々は、マスクビットが設定されない限り、アドレス値（１６のデータ転送が作用されるオフセット）によって示された位置にデータバイトを記憶する。
【０００８】
従来技術のメモリシステム１００の１つの不都合は、データ経路１０４の本質的な部分が、９つのライン毎に１つのラインが、マスク信号の転送専用であることである。したがって、データ経路帯域幅の１０％超がバイトマスキングを補助するために予備とされる。装置幅（すなわち、マスク入力を除くメモリ装置データインタフェースの幅）が小さくなるにつれ、この帯域幅の不利益は悪化する。例えば、装置幅が８ビットから４ビットに小さくなるならば、データ経路帯域幅の２０％（５つの信号ライン毎に１つ）がバイトマスキング用に確保される。したがって、本質的な帯域幅の不利益を課すことに加えて、従来技術のメモリシステム１００の中に使用されるバイトマスキング技術は、記憶サブシステム１０３内のメモリ装置の装置幅が少なくとも８ビットであるように有効に抑制する。この装置幅の制約は、直接、メモリ装置およびデータ経路幅の所定の形成に対しメモリサイズ上の制約となる。例えば、メモリ装置および３２のラインのデータ経路幅（マスクラインを除く）の所定の形成に対し５１２メガビット（Ｍｂ）の記憶容量を仮定すると、メモリコントローラにポイントツーポイント式に結合されるメモリの合計サイズは、５１２Ｍｂ*（３２／８）＝２ギガビット（Ｇｂ）である。追加のグループのメモリ装置は、図１の点線の輪郭の装置ＭＥＭR2で示したようにデータ経路１０４に結合されるが、追加の信号ライン接続部は、データ経路１０４をマルチドロップバスに有効に変換する。マルチドロップバス構成は、ポイントツーポイント構成とは異なり、かつそれよりも時に相当望ましくないシグナル特性を有する。
【０００９】
本発明について、同様の参照番号が同様の要素を指す添付図面の図で、一例としてまた限定することなく説明する。
【発明を実施するための最良の形態】
【００１０】
詳細な説明
次の説明および添付図において、本発明の完全な理解を提供するために、特定の用語および図面の記号が規定される。ある場合には、用語および記号は、本発明を実施するために必要とされない特定の細部を意味する場合がある。例えば、回路要素または回路ブロックの間の相互接続は、多導体または単一導体の信号ラインとして図示または記述することが可能である。多導体信号ラインの各々は、代わりに単一導体信号ラインでもよく、また単一導体信号ラインの各々は、代わりに多導体信号ラインでもよい。単端であるとして図示または記述した信号および信号経路は、また差異的であってもよく、またその逆でもよい。同様に、アクティブハイまたはアクティブローの論理レベルを有するように記述または示した信号は、代替実施形態の反対の論理レベルを有してもよい。他の実施例として、信号制御の電流を達成し得るバイポーラ技術または他の任意の技術を用いて、金属酸化物半導体（ＭＯＳ）トランジスタを含むとして記述または示した回路を代わりに実装してもよい。用語に関し、信号が特定の状態を示すためにローまたはハイ論理状態に駆動される（あるいは高い論理状態に充電されるかまたは低い論理状態に放電される）とき、信号が「アサート」されると言われる。逆に、信号がアサート状態以外の状態（ハイまたはロー論理状態、あるいは信号駆動回路がオープンドレインまたはオープンコレクタ状態のような高インピーダンス状態に移行したときに生じ得る浮動状態を含む）に駆動される（あるいは充電または放電される）ことを示すために、信号は「デアサート」されると言われる。信号駆動回路が、信号駆動回路と信号受信回路との間に結合された信号ラインに信号をアサートする（明示的に文脈によって述べられるかまたは示された場合、デアサートする）とき、信号駆動回路は信号を信号受信回路に「出力する」と言われる。信号ラインは、信号が信号ラインにアサートされるときに「活性化」され、信号がデアサートされるときに「非活性化」されると言われる。さらに、信号名に付された接頭辞記号「／」は、信号がアクティブロー信号であることを示す（すなわち、アサート状態は論理ロー状態である）。信号名の上の線（例えば、「＜信号名＞」）は、アクティブロー信号を示すために使用される。
【００１１】
着信する書き込みデータブロック内のマスクされたデータ値にキー値が置き換えられる書き込みマスキングメモリシステムが、様々な実施形態で本明細書に開示される。一実施形態において、キー値は、メモリシステムによって動的に発生され、次に、マスクされた各データ値に置き換えられて、符号化データブロックを生成する。符号化データブロックおよびキー値の各々は、１つ以上の別個のメモリ装置を含む記憶サブシステムに出力される。別個のメモリ装置は、キー値と符号化データブロックの構成書き込みデータ値とを比較して、キー値にマッチしないことが決定されたそれらの書き込みデータ値のみを記憶する。キー値はマスクされたデータ値を識別するために使用されるので、専用のマスク信号（すなわち、図１のメモリシステムにおけるような書き込みデータ値当たりのマスク信号）の伝送は不必要であり、書き込みデータ転送のためにメモリコントローラと記憶サブシステムとの間の完全なデータ経路を利用可能にし、図１の従来技術のメモリシステムに対する本質的な帯域幅の節減を達成する。
【００１２】
本発明の代替実施形態では、メモリコントローラは、所定値の表からキー値を選択し、次に、セレクタ値を記憶サブシステムに通過させて、所定値のどれが選択されたかを示す。記憶サブシステム内の別個のメモリ装置の各々は所定値の表を含み、セレクタ値を使用して、セレクタによって規定されたキー値を選択する。次に、マスクされたデータ値が記憶から除外されるように、選択されたキー値を用いてマスクされたデータ値が識別される。セレクタ値はキー値よりも相当小さいので、追加の帯域幅節減が達成される。
【００１３】
メモリコントローラと記憶サブシステムとを有するメモリシステム実施形態を主に参照して本発明について以下に説明するが、記述した技術および構造は、処理システム内の他の場所に適用することが可能である。例えば、プロセッサまたは他のメモリリクエスタは、書き込みデータブロックでキー値の置換を実行して、結果として得られる符号化データブロックおよびキー値をメモリコントローラに転送することが可能である。次に、メモリコントローラは、キー値および符号化データブロックを記憶サブシステムに送って、マスクされた書き込み動作を完了する。
【００１４】
符号化書き込みマスキングによるメモリシステム
図２は、本発明の実施形態によるメモリコントローラ内の動作方法を示している。１５３において、メモリコントローラは、Ｘ書き込みデータ値、ＷＤ０−ＷＤ（Ｘ−１）を含む書き込みデータブロック１５０と、Ｘマスク値、Ｍ０−Ｍ（Ｘ−１）を含む対応するマスクワード１５２とを受信し、各マスク値は書き込みデータ値のそれぞれの１つに対応する。書き込みデータ値は任意のサイズでよいが（例えば、８ビット、１６ビット、３２ビット等）、少なくとも図２の実施形態では、少なくともＸの可能なビットパターンがあることを保証するために十分な数の構成ビットを含む。すなわち、書き込みデータ値サイズがＮビットであるならば、Ｎは、２N≧Ｘを保証する程度に十分に大きい。この構成により、マスクされた書き込み動作でアンマスクされたデータ値のＸ−１の可能なビットパターンのいずれにもマッチしない少なくとも１つのＮビットパターンの存在が保証される（すなわち、書き込みデータブロックのＸの書き込みデータ値の少なくとも１つがマスクされるからである）。この説明の残りのため、マスク値は単一ビットの値であると仮定され、またマスクビットと称されるが、マルチビットのマスク値を代わりに使用してもよい。
【００１５】
１５５において、メモリコントローラは、アンマスクされたデータ値のいずれにもマッチしないパターンで配列されたＮの構成ビットを有するここでマスクキー１５８と称されるキー値を発生する。１５７において、マスクキーは、書き込みデータブロックのマスクされた各データ値に置き換えられて、符号化データブロック１６２を生成する。例えば、１５４に示したように、ビットＭ１およびマスクワードのＭ（ｉ）が設定され（例えば、論理「１」の値に）、対応する書き込みデータ値がマスクされたデータ値であることを示す。したがって、マスクキー１５８はマスクされたデータ値に置き換えられて、符号化データブロック１６２を発生する。１５９において、符号化データブロックおよびマスクキーは記憶サブシステムに伝送される。
【００１６】
図３は、図２で参照した本発明の実施形態による記憶サブシステム内の動作方法を示している。１７５において、記憶サブシステムは、図２に参照した符号化データブロックを受信し、およびマスクされた書き込み命令と図２に参照したマスクキーと記憶サブシステム内の目標記憶位置のアドレスとを含むマスクされた書き込みリクエストを受信する（例えば、書き込まれる記憶位置の範囲の開始アドレス）。以下に説明するように、命令、マスクキーおよび／またはアドレスは、１組のリクエストラインにマルチプレクスしてもよく、あるいはそれぞれの組の信号ラインを介して受信してもよい。符号化データブロックは、マスクされた書き込みリクエストの前、後またはそれと同時に、あるいはその任意の部分で受信することが可能である。
【００１７】
１７７において、符号化データブロックの各書き込みデータ値がマスクキーと比較される。所定の書き込みデータ値がマスクキーにマッチしない場合、１７９において、書き込みデータ値は、記憶サブシステムのマスクされた書き込みリクエストに規定されたアドレスに記憶される。書き込みデータ値がマスクキーにマッチする場合、書き込みデータ値は、記憶サブシステム内の記憶から除外され、これによって、マスクされた書き込み動作の選択的な記憶機能が達成される。
【００１８】
図４は、本発明の実施形態によるメモリシステム２００を示している。メモリシステム２００は、制御経路２１４とデータ経路２１６とを介して互いに結合されたメモリコントローラ２０１と記憶サブシステム２０３とを含む。メモリコントローラ２０１は、ホストインタフェース２０５、メモリインタフェース、マスク論理回路２０７およびリクエスト発生器２０９を含む。
【００１９】
ホストインタフェース２０５は、１つ以上のアクセスリクエスタ（例えば、プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、ＤＭＡコントローラ、または他のリクエスタ）からアクセスリクエスト、データおよびマスク情報を受信するように結合される。アクセスリクエストがマスクされた書き込み動作を規定するとき、Ｙ構成ビットを有する書き込みデータブロック（ＤＡＴＡ）およびＸ構成ビットを有するマスクワード（ＭＡＳＫ）がホストインタフェースを介してメモリコントローラで受信される。したがって、各マスクビットは書き込みデータブロックのＹ／Ｘビットのそれぞれのグループに対応する（すなわち、マスクグラニュラリティ＝Ｙ／Ｘ）。Ｙ／Ｘビットのこのようなマスク可能な各グループは、ここで書き込みデータ値と称され、また書き込みデータブロックは、Ｘ構成書き込みデータ値を有すると称される。一例として、Ｙ＝５１２（５１２ビットの書き込みデータブロック）およびＸ＝６４（６４ビットのマスクワード）であるならば、書き込みデータブロックは６４バイトサイズの書き込みデータ値を含む。他の例として、Ｙ＝５１２およびＸ＝１６であるならば、書き込みデータブロックは１６の３２ビットの書き込みデータ値を含むと思われる。ＹとＸの他の多数の値を使用することが可能である。
【００２０】
ホストインタフェースのデータ部分は、例示目的のみのためにＹデータラインに結合されるものとして示していることに留意されたい。代わりに、ホストインタフェースのデータ部分は、Ｙデータラインよりも多いかまたは少ないラインに結合して、書き込みデータ転送シーケンスでＹビットの書き込みデータブロックを受信してもよい。同様に、ホストインタフェースのマスク部分は、Ｘマスク信号ラインよりも多いかまたは少ないラインに結合して、マスク転送シーケンスでＸビットマスクワードを受信してもよい。
【００２１】
マスクされた書き込みリクエスト、書き込みデータブロックおよびマスクワードは、マスク論理２０７に供給され、次に、このマスク論理は、マスクキー１５８および符号化データブロック２０８を発生する。符号化データブロック２０８は、メモリインタフェース内のデータポート２１５に供給され、マスクキー１５８はリクエスト発生器２０９に供給される。リクエスト発生器２０９はまた、ホストインタフェースからマスクされた書き込みリクエストを受信し、かつ応答して、マスクキー１５８と、マスクされた書き込みリクエストによって示された書き込みアドレスとを含む対応する制御情報２１０をメモリインタフェース２１１内の制御ポート２１３に出力する。制御ポートは、制御経路２１４を介して記憶サブシステムに制御情報２１０を出力するための出力ドライバのバンク（図４に特に示していない）を含む。同様に、データポートは、データ経路を介して記憶サブシステムに符号化データブロック２０８を出力するための出力ドライバのバンクを含む。
【００２２】
記憶サブシステム２０３は、Ｚの別個のメモリ装置２２１0−２２１Z-1のグループを含み、メモリ装置の各々は、制御経路２１４と、データ経路２１６のそれぞれの部分（すなわち、２１８0−２１８Z-1で示したように）とに結合される。この構成により、メモリ装置２２１の各々は、メモリコントローラ２０１から制御情報２１０および符号化データブロック２０８のそれぞれの部分を受信する。メモリ装置２２１のそれぞれに結合されたデータラインの数、Ｗは、マスクグラニュラリティの整数倍（すなわち、Ｗ＝ｋ（Ｙ／Ｘ）、ここでｋ＝１、２、３．．．）であり、この結果、メモリ装置の各々は、並列のビット組の形態で少なくとも１つの完全な書き込みデータ値を受信する（すなわち、書き込みデータ値の各々のビットはそれぞれのデータラインで受信される）。代替実施形態では、データラインの数、Ｗはマスクグラニュラリティの整数倍である必要はない。
【００２３】
メモリ装置２２１0は、キーベースの書き込みマスキング動作を示すために拡大図で示されている。メモリ装置２２１0は、メモリ装置２２１の各々と同様に、記憶アレイ２４５、読み取り／書き込み回路２４３および比較回路２４１を含む。データライン２１８を介して受信された各書き込みデータ値は、比較回路２４１と読み取り／書き込み回路２４３に提供される。制御経路２１４を介して（または代わりにデータ経路２１６を介して）受信されたマスクキー１５８も、着信する書き込みデータ値と比較するための比較回路２４１に提供される。書き込みデータ値がマスクキー１５８にマッチするならば、比較回路２４１はマスク信号２４６をアサートして、読み取り／書き込み回路２４３が書き込みデータ値を記憶アレイ２４５に書き込むことを防止する。書き込みデータ値がマスクキーにマッチしないならば、比較回路はマスク信号２４６をデアサートして、読み取り／書き込み回路２４３がデータ値を記憶アレイ２４５に書き込むことをイネーブルにする。
【００２４】
なお図４を参照すると、メモリ装置２２１0−２２１Z-1は、ここでメモリランクと称されるアドレス可能なメモリ単位を集合的に形成する。メモリランク内の各メモリ装置は、アドレスが読み取りまたは書き込みアクセス用の制御経路２１４に供給されるとき、ランク内のすべてのメモリ装置が特定のアドレス（または特定のアドレスからオフセットされたアドレス）でアクセスされるように、同一の物理アドレス範囲を共有する。図４に示したように、１つ以上の追加ランクのメモリ装置は、全体の記憶容量を増すために記憶サブシステム２０３内に含めることが可能である。一実施形態において、各追加ランクのメモリ装置は、点線矢印２１４Ａで示したように制御経路２１４に共通に結合され、また各追加のランクの各メモリ装置は、矢印２１８Ａ0−２１８Ａz-1で示したようにデータ経路のそれぞれの部分に結合される。
【００２５】
図５は、図４の別個のメモリ装置２２１の各々を実装するために使用可能な模範的なメモリ装置２６０を示している。メモリ装置２６０は、制御インタフェース２６１、データインタフェース２６３、リクエスト論理２６５、比較回路２４１、読み取り／書き込み回路２４３、アドレス復号器２６７および記憶アレイ２４５を含む。記憶アレイ２４５は、ロウおよびコラムで配列された記憶セルを含み、各ロウの記憶セルは、それぞれのワードライン２７０を介してアドレス復号器に結合され、また各コラムの記憶セルは、それぞれのビットライン２７２を介して読み取り／書き込み回路２４３に結合される（または差動結合された記憶セルの場合の対のビットライン）。読み取りまたは書き込みアクセス中、アドレス２７４が制御インタフェース２６１を介してメモリコントローラから受信され、アドレス復号器２６７に供給される。アドレス復号器２６７は、選択されたワードライン２７０を活性化するためにアドレスを復号化し（すなわち、アドレスによって規定されたワードライン）、これによって、ワードラインに結合された記憶セルのロウに対する読み取りおよび書き込みアクセスをイネーブルにする。読取り動作中、選択されたワードライン２７０の活性化により、対応する記憶セル内のデータがビットライン２７２を介して読み取り／書き込み回路２４３内のセンス増幅器バンク（図５に図示せず）に供給される。センス増幅器バンクは、ビットライン２７２の比較的低いレベルの信号を論理レベル（例えば、相補的ＭＯＳレベル）に増幅し、また最終的にメモリコントローラに伝送するために、データインタフェース２６３内の１組の出力ドライバ（図５に図示せず）に増幅信号を出力する。
【００２６】
書き込み動作では、書き込みデータ値がデータインタフェース２６３内の受信回路２７１を介して受信され、読み取り／書き込み回路２４３内のそれぞれの書き込み運転者２７３0−２７３K-1にロードされる。書き込みストローブ信号２４８（ＷＲ）がリクエスト論理２６５によってアサートされると、書き込みドライバ２７３は、活性化されたワードライン２７０に結合された記憶セルのロウ内の記憶のために、書き込みデータ値をビットライン２７２に出力する。図５の実施形態では、書き込みドライバ２７３0−２７３K-1のそれぞれのイネーブル入力（ＥＮ）における書き込みストローブ信号２４８のアサートを選択的にブロックするために、論理ＡＮＤゲート２７５0−２７５K-1が設けられる。各ＡＮＤゲート２７５は、書き込みストローブ信号２４８を受信するように結合された非反転入力と、比較回路２４１からマッチ信号２５２0−２５２K-1のそれぞれの１つを受信するように結合された反転入力とを含む。ＡＮＤゲート２７５0を参照すると、マッチ信号２５２0がアサートされると（例えば、論理ハイ状態に）、ＡＮＤゲート２７５0の出力は、書き込みストローブ信号２４８が高くなるときでも低く留まり、これによって、書き込みドライバ２７３0が書き込みデータ値を記憶アレイ２４５に出力することが防止される。マッチ信号２５２0がデアサートされると、ＡＮＤゲート２７５0は、書き込みストローブ信号２４８を書き込みドライバ２７３0のイネーブル入力に通過させ、書き込みドライバ２７３0が書き込みデータ値を記憶アレイ２４５に出力することをイネーブルにする。
【００２７】
比較回路２４１は、いくつかの比較器２６９0−２６９K-1を含み、それらの各々は、ＡＮＤ論理ゲート２７５0−２７５K-1のそれぞれの１つの反転入力に結合された出力を有し、またそれらの各々は、リクエスト論理２６５から比較イネーブル信号（ＣＥ）２４６を、制御インタフェース２６１からマスクキー１５８を、またデータインタフェース２６３からそれぞれの書き込みデータ値を受信するように結合された入力を有する。マスクされた書き込み命令以外の書き込み命令がリクエスト論理２６５内で受信されると、リクエスト論理２６５は比較イネーブル信号２４６をデアサートして、比較器２６９がマッチ信号２５２をアサートすることをディスエーブルにし、これによって、書き込みストローブ信号２４８が、論理ＡＮＤゲート２７５0−２７５K-1を通して書き込みドライバ２７３1−２７３K-1のそれぞれのイネーブル入力に通過することをイネーブルにする。マスクされた書き込み命令がリクエスト論理２６５内で受信されると、リクエスト論理２６５は比較イネーブル信号２４６をアサートして、比較器２６９0−２６９K-1がマッチ信号２５２0−２５２K-1をそれぞれアサートすることをイネーブルにする。比較器２６９の各々は、マスクキー１５８と書き込みデータ値のそれぞれの１つとを比較し、またマスクキーおよび書き込みデータ値がマッチするならば、対応するマッチ信号２５２をアサートして、書き込みストローブ信号２４８が対応する書き込みドライバ２７３のイネーブル入力に通過することを防止する。この動作によって、マスクキー１５８にマッチする各書き込みデータ値は、記憶アレイ２４５内の記憶から除外される。
【００２８】
メモリ装置２６０は、多数の書き込みドライバ２７３、多数のＡＮＤゲート２７５および多数の比較器２６９を含むものとして示されるが、代わりに、メモリ装置２６０は、単一書き込みドライバ２７３、ＡＮＤゲート２７５と比較器２６９、およびデータインタフェース内の相応に低減した数の受信回路２７１を有してもよい。また、記憶アレイ２４５内の記憶セルは、少なくとも２つのデータ状態を表すことができる任意の記憶素子によって実装し得る。例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）装置では、記憶アレイ２４５の記憶セルの各々は、２つの可能なデータ状態を示すための充電または放電状態にあり得る容量性装置によって実装される（単一の容量性記憶素子を用いて、２つ以上のデータビットが表されるように、多数の異なる充電レベルを用いて、２つよりも多い状態の表示を達成することが可能である）。静的なランダムアクセスメモリ（ＳＲＡＭ）装置では、双安定性のラッチ回路を用いて、記憶アレイ２４５内に各記憶セルが実装される。非半導体記憶素子（例えば、磁気または光学媒体）のように、不揮発性の記憶セルも使用することが可能である（例えば、フラッシュ消去可能なプログラム可能リードオンリーのメモリ装置に使用されるようなフローティングゲートデバイス）。
【００２９】
記憶アレイ２４５への直接アクセスに関して、メモリ装置２６０内の読み取りおよび書き込みアクセスについて記述してきたが、代わりにまたは追加して、このようなアクセスをメモリ装置２６０内のページバッファに使用してもよい。例えば、ＤＲＡＭ装置の場合、記憶バッファ（例えば、ラッチのバンク）を使用して、当該のロウに向けられた引き続く読み取りまたは書き込みアクセスのために、記憶アレイ２４５のロウの内容を一時的に記憶することが可能である。このような装置では、マスクされた書き込み動作を記憶バッファならびにより大きな記憶アレイ２４５に向けることが可能である。
【００３０】
図６は、本発明の実施形態による図４のマスク論理２０７を示している。マスク論理２０７は、キー発生器２９１、マスクバッファ２９５、書き込みデータバッファ２９７およびデータ符号器２９９を含む。着信する書き込みデータブロックおよびマスクワード（すなわち、ＤＡＴＡおよびホストインタフェースを介して受信されるＭＡＳＫ）は、書き込みデータバッファ２９７およびマスクバッファ２９５に記憶され、また着信アクセスリクエスト（ＲＥＱ）と共にキー発電機２９１にも供給される。キー発電機２９１は、書き込みデータ値と少なくとも同数の構成ビットを有するマスクキー１５８を発生する（すなわち、Ｙ／Ｘビット、ここで、Ｙは書き込みデータブロックのビット数であり、Ｘはマスクワードのビット数であり、例えば、書き込みデータ値のＹ／Ｘビットの１つ以上がマスクキーとの比較から省略される実施形態では、マスクキーが書き込みデータ値よりも少ない構成ビットを有し得ることに留意されたい）、そして（すなわち、図４の回路ブロック２０９）データ符号器２９９にそしてリクエスト発生器にマスクキー１５８を出力する。一実施形態において、書き込みデータバッファ２９７およびマスクバッファ２９５は、１つ以上のロード動作により書き込みデータブロックおよびマスクワードがそれぞれロードされ、次に、シフト動作シーケンスで書き込みデータブロックおよびマスクワードの成分値をデータ符号器２９９に前進させるために使用される行列回路（すなわち、先入れ先出し記憶回路）である。例えば、一実施形態において、６４バイトの書き込みデータブロックおよび対応する６４ビットのマスクワードは、書き込みデータバッファ２９７およびマスクバッファ２９５にそれぞれロードされ、その後、４バイトおよび対応する４マスクビットの１６の連続転送でデータ符号器２９９に出力される。データ符号器２９９への書き込みデータ値およびマスクビットの各転送後、新しいグループの書き込みデータ値およびマスクビットが書き込みバッファおよびマスクバッファのヘッドに存在し、かつデータ符号器２９９への転送のために利用できるように、書き込みデータバッファ２９７およびマスクバッファ２９５の内容が前進させられる。各連続転送動作でデータ符号器２９９に供給された書き込みデータ値のグループは、ここでチャンクと称される。一実施形態において、チャンクサイズ、Ｒ（すなわち、チャンク当たりの書き込みデータ値の数）は、メモリコントローラおよび記憶サブシステムとの間のデータ経路（例えば、図４の経路２１６）の幅の関数であり、また所定のチャンクの各書き込みデータ値がデータ経路に同時に出力されることをイネーブルにするように設定される。
【００３１】
なお図６を参照すると、データ符号器２９９は、１組のＲセレクタ回路３０１0−３０１R-1を含み、それらの各々は、キー発生器２９１からマスクキー１５８を受信するように結合された第１のデータ入力と、書き込みデータバッファ２９７内のＲリード記憶位置のそれぞれの１つから書き込みデータ値を受信するように結合された第２のデータ入力と、マスクバッファ２９５内のＲリード記憶位置のそれぞれの１つからマスクビットを受信するように結合された選択入力とを有する。一例として、セレクタ回路３０１0を参照すると、選択入力で受信されたマスクビットがハイならば（例えば、論理１）、対応する書き込みデータ値はマスクされたデータ値であることが示され、またセレクタ回路３０１0は、書き込みデータ値の代わりにマスクキー１５８がデータポート（すなわち、図４の要素２１５）に出力されるように選択する。マスクビットがローならば、書き込みデータ値はアンマスクされたデータ値であり、セレクタ回路３０１0によってデータポートに出力される。このように、データ符号器２９９は、マスクキー１５８を着信書き込みデータブロック内のマスクされた各データ値に置き換えることによって、符号化データブロックを発生する。
【００３２】
図７は、図４のメモリコントローラを通して書き込みデータブロックを伝搬するための模範的な３ステージのパイプラインを示している。書き込みデータブロックＷＤＢ０−ＷＤＢｎは、パイプラインＰＳ１の第１ステージの連続間隔で受信される。次に、書き込みデータブロックはバッファされ、パイプラインＰＳ２の第２ステージの連続間隔でマスクキーを発生するために使用される。最後に、パイプラインの第３のステージ、書き込みデータブロックは、符号化データブロック（ＣＤＢ）に変換され、記憶サブシステムに伝送される。図７に示した実施形態では、パイプラインの３つのステージの各々の各動作は、段階的に異なる書き込みデータ値で同時に実行される。例えば、書き込みデータブロックＷＤＢ０が間隔０（ＩＮＴ０）で受信された後、書き込みデータブロックＷＤＢ１は、書き込みデータブロックＷＤＢ０に基づきマスクキー０の発生と同時に間隔１で受信される。同様に、書き込みデータブロックＷＤＢ２は、マスクキー１の発生と同時にまた符号化データブロック０の伝送と同時に間隔２で（ＷＤＢ１に基づき）受信される（すなわち、マスクキー置換がデータ符号器で実行された後の書き込みデータブロック０）。代替実施形態では、パイプラインの各ステージは追加のパイプラインステージに分解し得る。
【００３３】
図８は、発明の実施形態による図６のキー発生器２９１の動作を示している。図８の動作はバイトマスキングについて記述しているが、他のマスクグラニュラリティを有するシステムにも適用可能である。上述のように、キー発生器は、着信書き込みデータブロック内のアンマスクされたバイトにマッチしないマスクキーを発生するように動作する。図８の実施形態では、キー発生器は、潜在的にマスクキーにマッチする書き込みデータブロックのアンマスクされたバイトの数がゼロに低減されるまで、マスクキーを１反復当たり１ビット反復修正することによってこの結果を達成する。潜在的にマスクキーにマッチするアンマスクされたバイトのグループは、ここでマッチプールと称され、またマスクされたすべてのバイトを書き込みデータブロックから除去することによって最初に３１１に確立される。すなわち、ＸバイトおよびマスクされたＱバイト（Ｑは少なくとも１）を有する書き込みデータブロックを仮定すると、またマスクキー用に任意の初期値を仮定すると、マスクキーは、着信書き込みデータブロック内の潜在的にアンマスクされたすべてのバイトＸ−Ｑにマッチすることが可能である。３１３において、マスクキー内のビット位置を表すビット位置インデックスｉがゼロに初期化され、マッチプール内のバイト数を表すマッチプールサイズｊは、Ｘ−Ｑに初期化される。３１５において、マッチプールＢ0−Ｂj-1内の全バイトのｉ番目のビットは、加算されてタリーＴを生成する。このように、動作３１５の第１の反復で、タリーは、マッチプールバイトの第１のビット位置の１の数を示す。３１７において、タリーはｊ／２と比較され、マッチプール内のより多くのバイトがｉ番目のビット位置に１を有するか、あるいはｉ番目のビット位置に０を有するかどうかを決定する。タリーがｊ／２より大きいならば、マッチプール内のバイトの大部分は、ｉ番目のビット位置に１を有し、マスクキーのｉ番目のビット、ＭＫ［ｉ］が３１９Ａにおいて０に設定される。３２１Ａにおいて、ｉ番目のビット位置に１を有するすべてのバイトは、それらのバイトが今やマスクキーに確かにマッチしないので、マッチプールから排除される。３２３Ａにおいて、マッチプールサイズｊはタリーＴの値だけ低減され、３２１Ａにおける排除動作後にマッチプールに留まるバイト数を反映する。決定動作３１７に戻って、Ｔがｊ／２以下であるならば、マッチプールのバイトの少なくとも半分は、ｉ番目のビット位置に０を有する。その場合、マスクキーのｉ番目のビットは、３１９Ｂにおいて１にセットされ、またｉ番目のビット位置に０を有するバイトは、それらのバイトが今やマスクキーに確かにマッチしないので、３２１Ｂにおいてマッチプールから排除される。３２３Ｂにおいて、マッチプールサイズｊは、その数が、３２１Ｂにおける排除動作後にマッチプールに留まるバイト数を示すので、１のタリーＴの値に設定される。３２５において、ビット位置インデックスｉは、次のビット位置におけるタリーの準備のため増分される。３２７において、ビット位置インデックスは、マスクキー発生が完了したかどうかを決定するために最大値と比較される。一般に、少なくとも１つがマスクされた値であるＸ書き込��データ値を有する書き込みデータブロックに関し、初期のマッチプールのユニークなビットパターンの最大数は、Ｘ−１である。したがって、マッチプール内のバイトの少なくとも半分が動作３１５−３２３の各反復において排除されるならば、マッチプールは、動作３１９−３２３のｌｏｇ2（Ｘ）反復の後にゼロに低減されるように保証される（すなわち、マスクキーは書き込みデータブロック内のアンマスクされた書き込みデータ値にマッチしない）。例えば、書き込みデータブロックが、１つがマスクされる６４バイトを含むならば、動作３１５−３２３のｌｏｇ2（６４）＝６の反復の後、マスクキーはアンマスクされたデータバイトにマッチしない。したがって、ビット位置インデックスｉが３２７においてｌｏｇ2（Ｘ）に達したことが決定された場合、マスクキー発生動作は完了している。ビット位置インデックスがｌｏｇ2（Ｘ）に達していないならば、３１５において更新されたビット位置インデックスの１のタリーから開始して、動作３１５−３２３の他の反復が実行される。
【００３４】
異なるマスクキービットが動作３１５−３２３の各反復において設定されるかまたはリセットされるので、アンマスクされた書き込みデータ値に対しマスクキーをユニークにする観点から、マスクキーの６ビットのみが重要である。マスクキーの残りのビット（例えば、バイトマスキング実施形態の残りの２ビット）は、ゼロまたは１でパッドし得る。また、マスクキーのユニークさを確立するために使用される６ビットは、マスクキーに割り当てられた合計ビット数内で任意のオフセットで生じる可能性がある。例えば、図８のバイトマスキング実施形態では、ビット位置インデックスは０〜５の代わりに２〜７に増分し得る。
【００３５】
３１１における書き込みデータブロックからのマスクされたデータ値の除去および動作３１３の引き続くＸ−Ｑの計算は、動作３１５−３２３の１つの余分の反復を実行する代替実施形態のキー発生実施形態で省略することが可能である。例えば、６４バイトの書き込みデータブロックの場合、マスクキーの少なくとも７ビットが動作３１５−３２３のそれぞれの反復を通して割り当てられるならば、結果として得られるマスクキーは、すべての６４バイトがユニークであるとしても、構成書き込みデータバイトにマッチしない。すなわち、書き込みデータブロックのバイトの少なくとも半分は、７つの反復の後に、動作３１５−３２３の各反復のマッチプールから排除されるので、７ビット値の１２８のパターンの間でユニークであることが保証されたパターンが獲得され、マスクキーが、書き込みデータブロックの６４バイトに対して確かにユニークであることを意味する。
【００３６】
なお図８を参照すると、キー発生の他の代替実施形態では、マッチプールサイズｊは、３１３−ＡＬＴにおいてＸに初期化され（図８の点線の輪郭に図示）、マッチプールサイズは、３１５において決定されたタリーに従って３２３Ａおよび３２３Ｂにおいて調整されるよりも、むしろ動作３２３−ＡＬＴにおいて半分にされる（すなわち、動作３２３−ＡＬＴは動作３２３Ａおよび動作３２３Ｂに取って代わる）。この方法では、ｊは、マッチプールの実際のサイズよりも、むしろ動作３１５−３２１の任意の反復の後のマッチプール内の保証された最大数の書き込みデータ値を示す。キー発生のこの代替実施形態は、組み合わせ論理の実装に特に適しているが、この理由は、３２３−ＡＬＴの２による割算動作を、値ｊを１ビットだけ右にシフトすることによって達成でき、また３１３および３２３Ａの算術演算が回避されるからである。
【００３７】
図９は、図８の動作３１３−ＡＬＴおよび３２３−ＡＬＴによって示された代替構成に従って動作するキー発生器３５０の実施形態を示している。説明目的のみのため、キー発生器３５０は、６４バイトの書き込みデータブロックを受信するバイトマスキングメモリコントローラで動作すると考えられる。代替実施形態で、他のマスクグラニュラリティおよびブロックサイズを使用することが可能である。最初に、着信書き込みデータブロックのバイトがそれらのそれぞれのマスクビットの相補により論理ＡＮＤされ、マスク資格のバイトのプール、ＢＹＴＥ00＆Ｍ00、ＢＹＴＥ01＆Ｍ01、．．．、ＢＹＴＥ63＆Ｍ63を発生する。この動作によって、マスク資格のバイトプールのマスクされた各データ値が強制的にゼロにされ、これは、図８のマスクされたバイトの除去動作３１１に対応する動作である。加算回路３５１は、マスク資格のバイトプール内の各バイトのビット０について、１のタリー（すなわち、１の合計）を発生するために使用される。書き込みデータブロックの少なくとも１つのバイトがマスクされるので、加算回路３５１によって発生された１のタリーは０〜６３の範囲にあり得、したがって６ビット値ＴＯ［５：０］をもたらし、この場合、設定された場合、最も重要なビットＴ０［５］は、マスク資格のバイトプール内のバイトの半分超が、０番目のビット位置に１を有することを示す。したがって、マスクキーのビットゼロ、ＭＫ［０］は、インバータ３５３の動作によってＴ０［５］の相補に設定される。
【００３８】
マスクキーのビット１、ＭＫ［１］を生成するための回路は、２つの加算回路３６１0と３６１1と、除去回路３６０とを含む。除去回路は６４のビット単位の除去回路Ｅ０を含み、その各々は、それぞれのマスク資格のバイトに対応し、マスクキーの０番目のビット、ＭＫ［０］の状態による２つの可能な除去結果に対応する２つの信号を発生する。例えば、ＭＫ［０］が０ならば、ビット０（ｂ０）が１であるマスク資格のバイトプールのすべてのバイトは排除され、またＭＫ［０］＝１ならば、ｂ０＝０であるすべてのバイトが排除される。したがって、ビット単位の除去回路Ｅ０の各々は、ｂ０＝１ならば強制して０にされ、ｂ０＝０ならばｂ１に従って設定される第１の資格ビット１（ｑｂ１0）と、ｂ０＝０ならば強制して０にされ、ｂ０＝１ならびにｂ１に等しい第２の資格ビット１（ｑｂ１1）とを発生する。ブール表示法（ビット単位のＡＮＤ動作を示す「＆」）では、
ｑｂ１0＝ｂ１＆／ｂ０；および
ｑｂ１1＝ｂ１*ｂ０。
【００３９】
加算回路３６１0は、マスク資格のバイトプールの各々のバイトについてｑｂ１0値を加算して、ＭＫ［０］が０である場合に生じる排除に対応する１のタリー、Ｔ１0［４：０］を発生し、また加算回路３６１1は、マスク資格のバイトプールの各々のバイトについてｑｂ１0値を加算して、ＭＫ［０］が１である場合に生じる排除に対応する１のタリー、Ｔ１1［４：０］を発生する。排除回路３６０で実行された排除のため、ＭＫ［０］の実際の状態に対応する１のタリーは、０〜３１の範囲にあり、したがって５ビット値をもたらし、この場合、マスク資格のバイトプールの排除されない３１の可能なバイトの半分超がビット１位置に１を有するならば、最も重要なビットが設定される。したがって、２つのタリー値、Ｔ１0［４］およびＴ１1［４］の最も重要なビット（ＭＳＢ）は、ＭＫ［０］に従ってタリーＭＳＢの１つを選択するマルチプレクサ３６２に入力される。次に、選択されたタリーＭＳＢはインバータ３６３によって反転され、マスクキー値のビット１、ＭＫ［１］を形成する。このように、マスク資格のバイトプール内の可能な数の排除されないバイトの半分超についてｂ１＝１であるならば、ＭＫ［１］は０に設定され、さもなければ、ＭＫ［１］は１に設定される。
【００４０】
マスクキーのビット２、ＭＫ［２］を発生するための回路は、マスクキーのビット１を発生するための回路と較べて以前に決定されたマスクキービットの２倍に依存し、したがって、２つの代わりに４つの加算回路３７１0−３７１3と、マスク資格のバイト当たり２よりもむしろ４つの資格ビット値を発生する排除回路３７０とを含む。より詳しくは、排除回路３７０は、ビット単位の６４の排除回路Ｅ１を含み、その各々は、ＭＫ［１：０］の４つの可能な状態による４つの可能な除去結果に対応する４つの資格ビット値ｑｂ２0−ｑｂ２3を発生する。例えば、ＭＫ［１：０］＝００ならば、ｂ１＝１およびｂ０＝１であるマスク資格のバイトプールのすべてのバイトが排除され、ＭＫ［１：０］＝０１ならば、ｂ１＝０およびｂ０＝１であるすべてのバイトが排除される、等々。したがって、ビット単位の排除回路Ｄ１の各々は、次式による４つの資格ビット値ｑｂ２0−ｑｂ２3を発生する。
ｑｂ２0＝ｂ２＆／ｂ１＆／ｂ０；
ｑｂ２1＝ｂ２＆／ｂ１＆ｂ０；
ｑｂ２2＝ｂ２＆ｂ１＆／ｂ０；および
ｑｂ２3＝ｂ２＆ｂ１＆ｂ０。
【００４１】
加算回路３７１0は、マスク資格のバイトプールの各々のバイトについてｑｂ２0値を加算して、ＭＫ［１：０］＝００である場合に生じる排除に対応する１のタリー、Ｔ２0［３：０］を発生し、また加算回路３７１1−３７１3は、同様に、ＭＫ［１：０］が０１、１０、および１１である場合に生じる排除にそれぞれ対応する３つの別個の１のタリー、Ｔ２1［３：０］−Ｔ２3［３：０］を発生する。排除回路３７０で実行された排除のため、ＭＫ［１：０］の実際の状態に対応する１のタリーは、０〜１５の範囲にあり、したがって４ビット値をもたらし、この場合、マスク資格のバイトプールの排除されない１５の可能なバイトの半分超がビット２位置に１を有するならば、最も重要なビットが設定される。４つのタリー値、Ｔ２0［３］−Ｔ２3［３］の最も重要なビット（ＭＳＢ）は、ＭＫ［１：０］値に従って４つのタリーＭＳＢの１つを選択するマルチプレクサ３７２に入力される。次に、選択されたタリーＭＳＢはインバータ３７３によって反転され、マスクキー値のビット２、ＭＫ［２］を形成する。このように、マスク資格のバイトプール内の可能な数の排除されないバイトの半分超についてｂ２＝１であるならば、ＭＫ［２］は０に設定され、さもなければ、ＭＫ［２］は１に設定される。
【００４２】
図９の実施形態では、マスクキービットＭＫ［３］、ＭＫ［４］およびＭＫ［５］を発生するための回路は、各ステージにおいて、排除回路によって発生される加算回路の数および資格ビット値の数が２倍になることを除いて、ＭＫ［２］を発生するための回路と同様である。このように、ＭＫ［５］を発生するための回路は、３２の加算回路３９１0−３９１31を含み、また排除回路３９０はビット単位の６４の排除回路Ｅ５を含み、その各々は、ＭＫ［４：０］の３２の可能な状態による３２つの可能な除去結果に対応する３２の資格ビット値ｑｂ５0−ｑｂ５31を発生する。加算回路３９１0−３９１31は、３２の可能な排除結果に対応する３２の別個の１のタリー、Ｔ５0［０］−Ｔ５31［０］を発生する（すなわち、ＭＫ［４：０］に従って）。排除回路３９０で実行された排除のため、ＭＫ［４：０］の実際の状態に対応する１のタリーは、０〜１の範囲にあり、したがって単一ビットのタリーをもたらし、このタリーは、マスク資格のバイトプールに残る可能な単一のバイトがビット５の位置に１を有するならば、１に設定される。３２のタリービット、Ｔ５0［０］−Ｔ２32［０］は、ＭＫ［４：０］値に従って３２のタリービットの１つを選択するマルチプレクサ３９２に入力される。次に、選択されたタリービットはインバータ３９３によって反転され、マスクキー値のビット５、ＭＫ［５］を形成する。このように、マスク資格のバイトプールに残る可能な単一のバイトについてｂ５＝１ならば、ＭＫ［５］は０に設定され、さもなければ、ＭＫ［５］は１に設定される。上述のように、マスクキーは、任意の残りのビット位置（例えば、バイトマスキング実施形態のビット位置ＭＫ［６：７］）の１または０でパッドし得る。代わりに、残りのビット位置は任意の値で残してもよい。
【００４３】
本発明の代替実施形態で、図９のキー発生器に対し多数の変更をなし得る。例えば、排除回路（３６０、３７０、．．．、３９０）の各ステージによって発生された資格ビット値を次のステージ排除回路に付与して、論理の冗長を低減することが可能である。例えば、回路Ｄ０によって発生された資格ビット値を回路Ｄ１に付与し得る。また、追加のマスクキービットを発生するための回路（例えば、ＭＫ［６］を発生するための回路）が設けられるならば、初期のマッチ資格のバイトプールを発生するために使用される論理ＡＮＤ演算を省略してもよい。さらに、マスクキーは、単一の反復によるよりも、むしろ多数反復のビット発生により発生し得る。一般に、Ｎビットマスクキーのために、マスクキー発生器は、１反復当たりある数のマスクキービットＫを発生し、ここで、ＫはＮ以下であり、計算されたすべてのキービットを引き続く各反復に送ることが可能である（すなわち、１つよりも多い反復が必要な場合）。例えば、Ｎ＝６およびＫ＝１ならば、マスクキー発生器は、単一の加算回路（例えば、図９の加算回路３５１）を用いて１反復当たり１つのマスクキービットを発生し、これによって、６つの反復でマスクキーを完了する。Ｎ＝６およびＫ＝３ならば、マスクキー発生器は、７つの加算回路（すなわち１＋２＋４）を用いて１反復当たり３つのマスクキービットを発生し、これによって、２つの反復でマスクキーを完了する。図９は、Ｎ＝６およびＫ＝６の場合に、６３の加算回路および単一の反復を用いてすべてのマスクキービットを発生する実施形態を示している。一般に、キー発生回路の数とマスクキー発生の待ち時間との間には妥協が存在する。したがって、特定の用途の目標および制約に従って、事実上任意の値のＮおよびＫについてマスクキー発生器をカスタム化することができる。マスクキーを発生するための組み合わせ論理回路が図９に示されているが、代わりに、一般目的のプロセッサ、特殊目的のプロセッサ、専用の状態機械または他の状態ベースの回路を使用して、マスクキーを発生することが可能である。より一般的には、書き込みデータブロック内のアンマスクされたデータ値にマッチしないマスクキーを発生するための任意の回路を本発明の精神と範囲から逸脱することなく使用し得る。
【００４４】
書き込みデータ値のシリアル化転送
図１０は、図４のメモリコントローラと記憶サブシステムとの間の３２ラインのデータ経路にわたってバイトサイズの書き込みデータ値を転送するための模範的なタイミング図を示している。図示したように、１６の伝送間隔の各々の間にデータ経路にわたって４バイトが並列に転送され、これによって、１６の伝送間隔にわたって完全な６４バイトの書き込みデータブロックの転送が達成される。図４と図５を参照して説明したように、マスクキーは、記憶サブシステムの構成メモリ装置内に受信された各書き込みデータ値と比較される。このように、図１０の並列データ転送スキームが使用される場合、各メモリ装置は、一般に、書き込みデータ値のサイズと少なくとも同一幅（すなわち、少なくともマスクグラニュラリティと同一幅）のデータインタフェースを必要とする。したがって、図１１に示したように、図１０の制約（すなわち、３２ラインのデータ経路およびバイトマスクグラニュラリティ）に従って単一ランクのメモリ装置４０１で達成できる最大記憶容量は、４×ＳＣビットであり、ここで、ＳＣはメモリ装置４０１の所定の発生の最大記憶容量である。より一般的には、単一ランクのメモリ装置の最大記憶容量は、ＳＣ×（ＤＰＷ）／（ＭＧ）であり、ここで、ＤＰＷはメモリコントローラと記憶サブシステムとの間のデータ経路の幅であり、ＭＧはマスクグラニュラリティである。記憶サブシステムの容量を増すために、追加のランクのメモリ装置を加えることが可能であるが、信号ドロップの増加は、一般に、データ経路の信号性能の悪化をもたらす。
【００４５】
図１２は、記憶サブシステムのランク当たりの記憶容量の実質的な増加をイネーブルにする本発明の代替実施形態のデータ転送スキームを示している。図示したように、並列のデータ経路にわたる転送書き込みデータ値よりも、むしろ各書き込みデータ値が、単一のデータラインを介してシリアルに記憶サブシステムに転送される。例えば、伝送間隔０の間に、データ経路のそれぞれのラインを介して３２バイト（Ｂ０−Ｂ３１）の各々のビット０が記憶サブシステムに転送される。具体的にデータラインＤＱ００を参照すると、バイトＢ０のビット０−７は、それぞれの伝送間隔０〜７の間にデータラインＤＱ００にわたってシリアルに転送される。同様に、バイトＢ１−Ｂ３１は、伝送間隔０−７の間にデータラインＤＱ０１−ＤＱ３１にわたってシリアルにそれぞれ転送される。伝送間隔８−１５の間に、書き込みデータブロックＢ３２−Ｂ６３の残りのバイトは、データラインＤＱ００−ＤＱ３１にわたってシリアルに転送される。このように、書き込みデータ値をシリアルに転送することによって、記憶サブシステム内の各メモリ装置のデータインタフェースを単一のビットと同程度に狭くし、３２のデータラインの対応する１つに結合することが可能である（より多いかまたはより少ないデータラインを代替実施形態に使用し得る）。図１３に示したように、このような構成により、記憶サブシステムのランク毎に３２のＳＣサイズのメモリ装置４０３を使用することがイネーブルにされ、記憶サブシステムのランク当たりの記憶容量が書き込みデータ値のサイズだけ有効に増大される。例えば、３２ラインのデータ経路を有するバイトマスキングメモリシステムでは、記憶サブシステムのランク当たりの記憶容量は、図１１の４×ＳＣ容量から図１３の３２×ＳＣ容量に、８のファクタだけ増大される。ランク当たりの記憶容量の増加は、マスクグラニュラリティが大きくなるとより顕著になる。
【００４６】
図１４は、本発明の実施形態によるシリアル転送メモリコントローラ４２０のデータポート４２１を示している。データポート４２１は、１組のＫ出力ドライバ、４２５0−４２５K-1、および対応する１組のＫシリアル化回路４２３0−４２３K-1を含む。それぞれのＮ−ビット書き込みデータ値は、伝送クロック信号４２２、ＴＣＬＫのＮ番目のサイクル後に常に、シリアル化回路４２３の各々にロードされ、次に、ＴＣＬＫの次のＮサイクルの各々の間に、シリアル化回路４２３から一度に１ビットだけシフトされる。この構成によって、書き込みデータ値が所定のシリアル化回路４２３からシフトされた後、利用可能ならば、シリアル化回路に新しい書き込みデータ値が再ロードされる。出力ドライバの各々は、それぞれのシリアル化回路の出力４２６に結合され、書き込みデータ値を形成するシリアルビットストリームを受信する。図１４の実施形態では、各々の出力ドライバ４２５0−４２５K-1は、伝送クロック信号４２２の各サイクルの間に、データラインＤＱ0−ＤＱK-1の対応する１つに書き込みデータ値の構成ビットを伝送する。代わりに、出力ドライバ４２５は、シリアル化回路４２３内のシフト動作を制御するために使用されるクロック信号から位相オフセットされるクロック信号に応答して伝送することが可能である。また、一実施形態において、シリアル化回路４２３および出力ドライバ４２５は、伝送クロック信号４２２の両方のエッジに応答し、書き込みデータ値のＮビットは、伝送クロック信号４２２のＮ／２のクロックサイクル後に所定のシリアル化回路からシフトされ、また書き込みデータ値の２ビットは、伝送クロック信号４２２のサイクル毎に、対応するデータラインに交互に伝送される。さらに他の実施形態では、出力ドライバ４２５は、単一の信号伝送で２つ以上のビットを搬送できる（例えば、４つの可能な信号レベルの１つを伝送して、１伝送当たり２ビットの記号を搬送できる）マルチレベルの出力ドライバである。このような実施形態では、出力ドライバ４２５をクロックするために使用されるクロック信号は、シリアル化回路４２３内のシフト動作を制御するために使用されるクロック信号よりも低い周波数（例えば、２ビットの記号伝送の場合の周波数の半分）で操作することが可能である。代わりに、各シフト動作において各シリアル化回路４２３から２ビットを出力してもよい。
【００４７】
図１５は、図１４のデータポート４２１内で使用可能なシリアル化回路４３０の模範的な実施形態を示している。シリアル化回路４３０は、シフトレジスタ４３３およびモジュロＮカウンタ４３１を含み、その各々は、伝送クロック信号４２２（ＴＣＬＫ）を受信するように結合される。モジュロＮカウンタ４３１は、ＴＣＬＫの各立ち上がりおよび／または立ち下がりエッジに応答して増分され、Ｎ−１の０からターミナルカウントを繰り返してカウントし、ターミナルカウントに達したときにロード信号４３２をシフトレジスタ４３３にアサートする。シフトレジスタは、ロード信号４３２のアサートに応答して、書き込みデータ値４３４のＮビットをシフトレジスタ内の対応する１組のＮ記憶素子にロードする。書き込みデータ値の０番目のビットは、シフトレジスタ４３３のヘッド記憶素子４３５に記憶され、信号ライン４２６に出力される（すなわち、出力ドライバによって受信される）。書き込みデータ値４３４がシフトレジスタ４３３にロードされた後、書き込みデータ値の構成ビットは、ＴＣＬＫの立ち上がりおよび／または立ち下がりエッジに応答して、一度に１ビットだけ前方にシフトされる（すなわち、ヘッド記憶素子４３５に向かってシフトされる）。この装置によって、書き込みデータ値の各ビットは、次にシフトレジスタ４３３のヘッド記憶素子４３５にシフトされ、信号ライン４２６に出力される。代替実施形態では、書き込みデータ値４３４の最も重要なビットを最初にシフトアウトしてもよい。また、マルチレベルの出力ドライバの場合のように、一度に１つよりも多いビットを出力ドライバに供給するために、２つ以上のシフトレジスタ４３３を設けることが可能である。
【００４８】
図１６は、本発明の実施形態によるシリアル転送メモリ装置４４０を示している。メモリ装置４４０は、制御インタフェース２６１、データインタフェース４４１、記憶アレイ２４５、リクエスト論理２６５、比較器２６９、論理ＡＮＤゲート２７５および書き込みドライバ２７３を含む。特に図示しないが、書き込みドライバ２７３および論理ゲート２７５は、ビットライン２７２を介して記憶アレイに結合されたセンス増幅器のバンクを含む読み取り／書き込み回路の部分を形成する。制御インタフェース２６１、記憶アレイ２４５、リクエスト論理２６５、アドレス復号器２６７、比較器２６９、書き込みドライバ２７３および論理ＡＮＤゲート２７５は、一般に、図５を参照して上述したように動作するが、データインタフェース４４１は、単一のデータラインＤＱを介して書き込みデータ値の受信をイネーブルにするように修正される。より詳しくは、データインタフェース４４１は受信回路２７１と非シリアル化回路４４３とを含み、その各々は、それぞれのクロック信号４４２（ＲＣＬＫ）を受信するように結合される。受信回路は、受信クロック信号４４２の各立ち上がりおよび／または立ち下がりエッジに応答して信号ライン２７１をサンプリングして、サンプリングされたビットを非シリアル化回路４４３に次々に出力する。一実施形態において、非シリアル化回路４４３は、受信クロック信号４４２のそれぞれの遷移に応答してビット毎にロードされるシフト回路である。すなわち、受信回路２７１がサンプリングされた各ビットを出力するとき、ビットは非シリアル化回路４４３にシフトされ、メモリコントローラによってシリアル化された書き込みデータ値を再構築する。マルチレベルの信号の実施形態（すなわち、受信回路２７１によって受信された各記号は１ビットよりも多い情報を表す）では、受信回路２７１は、受信された１つの記号当たり２つ以上のビットを出力することが可能であり、２つ以上のビットが、受信クロック信号４４２の各遷移に応答して非シリアル化回路４４３にストローブされる。受信クロック信号４４２のすべてのＮ遷移（すなわち、立ち上がりエッジ、立ち下がりエッジ、またはその両方に生じる各遷移）の後、完全な書き込みデータ値が非シリアル化回路４４３にシフトされ、またマスクされた書き込み動作の場合、リクエスト論理２６５は比較イネーブル信号２４６をアサートして、比較器２６９が書き込みデータ値と、制御インタフェース２６１を介して受信されたマスクキー２４２とを比較することをイネーブルにする。マスクキーおよび書き込みデータ値がマッチするならば、書き込みデータ値はマスクされたデータ値であり、比較器２６９はマスク信号２５２をアサートして、書き込みデータ値の記憶を防止する。すなわち、図５を参照して記述したように、アサートされたマスク信号２５２は、リクエスト論理によって発生された書き込みストローブ信号２４８が、書き込みドライバ２７３のイネーブル入力によってアサートされることを防止する。非シリアル化回路４４３からの書き込みデータ値がマスクキー２４２にマッチしないならば、比較器２６９はマスク信号２５２をアサートせず、また書き込みストローブ信号２４８は論理ＡＮＤゲート２７５を介して書き込みドライバ２７３のイネーブル入力に通過させられ、これによって、書き込みドライバ２７３が書き込みデータ値を記憶アレイ２４５内に記憶することをイネーブルにする。
【００４９】
なお図１６を参照すると、受信回路２７１、非シリアル化回路４４３、比較器２６９、論理ゲート２７５および書き込みドライバ２７３は、メモリ装置４４０内の書き込みデータチャンネルを形成する。図１６の実施形態には、１つのみのこのような書き込みデータチャンネルが示されているが、代わりに、多数の書き込みデータチャンネルを設けてもよく、各書き込みデータチャンネル用の受信回路２７１は、それぞれの外部データラインＤＱに結合される。
【００５０】
キー選択の実施形態
図４〜図９および図１４〜図１６を参照して記述した模範的なメモリシステムでは、メモリコントローラが、各着信書き込みデータブロック用のマスクキーを発生し、次に、マスクキーを記憶サブシステムに転送する。バイトマスクグラニュラリティを有する６４バイトの書き込みデータブロックの場合、６４の別個のマスク信号（すなわち、図１を参照して記述した別個のマスク信号）の代わりに８ビットのマスクキーの転送により、メモリコントローラと記憶サブシステムとの間に転送されるマスク情報量の８：１の低減が達成される。メモリコントローラと記憶サブシステムとの間のインタフェース全体に関して、書き込みデータブロック当たり５６ビットの帯域幅の節減が達成される。
【００５１】
ここでキー選択の実施形態と称される本発明の代替実施形態では、より大きな帯域幅節減およびマスク情報転送のより大きな低減さえも達成される。キー選択の実施形態では、メモリコントローラは、所定のマスクキーの表からマスクキーを選択し、次に、選択されたマスクキー（ここでキーセレクタと称される）を表す値を記憶サブシステムに供給する。メモリコントローラは、選択されたマスクキーを使用して、符号化データブロックを発生し、次に、図１０と図１２を参照して記述した並列転送またはシリアル転送モードで、符号化データブロックを記憶サブシステムに出力する。記憶サブシステムを形成する複数のメモリ装置の各々（または１つのメモリ装置）は、所定のマスクキーのテーブルを含み、メモリコントローラから受信されたキーセレクタに従って所定のキーの１つを選択する。次に、各メモリ装置は、図５と図１６を参照して上述した方法で選択されたマスクキーを使用して、マスクされたデータ値を識別して、記憶サブシステムの記憶からマスクされたデータ値を除外する。
【００５２】
キーセレクタはマスクキー値（マスクキーはマスクグラニュラリティに従って寸法決めされる）よりもはるかに少ないビットを有することがあるので、マスクキーの代わりに記憶サブシステムへのキーセレクタの転送により、メモリコントローラと記憶サブシステムとの間の経路の帯域幅の追加の節減を達成し、マスク情報伝送のさらなる低減を達成することが可能である。例えば、一実施形態において、キーセレクタは、２つの所定のマスクキーの間で選択するために使用される単一ビットの値である。例えば、８ビットのマスクキーの代わりにキーセレクタを転送することにより、メモリコントローラから記憶サブシステムに転送されるマスクキー情報の８：１の低減が達成される。図１を参照して記述した従来技術システムのメモリコントローラから記憶サブシステムに転送される６４のマスクビットと比較して、単一ビットのキーセレクタ値を転送することにより、マスク情報伝送の６４：１の低減が達成される。
【００５３】
図１７は、本発明の実施形態によるキー選択メモリコントローラの動作を示している。説明のためバイトマスキンググラニュラリティが前提とされるが、代替実施形態で、他のマスクグラニュラリティを使用することが可能である。４７５において、Ｘ構成バイトを有する書き込みデータブロックがホストインタフェースを介して受信される。４７７において、第１の所定のマスクキー、マスクキーＡが書き込みデータブロック内のアンマスクされたバイトの各々に対し比較される。アンマスクされたバイトのいずれもマスクキーＡにマッチしないならば（決定ブロック４７９）、４８１において、マスクキーＡが、選択されたマスクキー（ＳＭＫ）であるように割り当てられ、キーセレクタ（ＫＳＥＬ）がマスクキーＡに対応する値に設定される（この例ではＫＳＥＬ＝０）。決定ブロック４７９に戻って、書き込みデータブロックのアンマスクされたバイトのいずれか１つがマスクキーＡにマッチすると決定された場合、４８７において、アンマスクされたバイトの各々が第２の所定のマスクキー、マスクキーＢと比較される。書き込みデータブロックのアンマスクされたバイトのいずれもマスクキーＢにマッチしないならば（決定ブロック４８９）、４９１において、マスクキーＢが、選択されたマスクキーであるように割り当てられ、キーセレクタが対応する値に設定される（この例ではＫＳＥＬ＝１）。
【００５４】
所定のマスクキーの少なくとも１つが、書き込みデータブロックのアンマスクされたバイトのいずれにもマッチしないと決定された場合、４８３において、選択されたマスクキーを書き込みデータブロック内のマスクされた各バイトに置き換えることによって、符号化データブロックが発生される。４８５において、符号化データブロックおよびキーセレクタは記憶サブシステムに伝送される。
【００５５】
所定のマスクキーのいずれも、書き込みデータブロックのアンマスクされたバイトに対しユニークでないと決定された場合（すなわち、各マスクキーが少なくとも１つのアンマスクされたバイトにマッチし、４７９と４８９において肯定的な決定をもたらした場合）、ここでマスク抵触と称される状態が生じている。図１７の実施形態では、マスク抵触は、２相のマスク書き込み動作を通して解決される。２相のマスク書き込み動作において、第１の相のマスク書き込み動作がマスクキーＡを使用して実行され、また第２の相のマスク書き込み動作がマスクキーＢを使用して実行される。すなわち、４９３において、マスクキーＡが、選択されたマスクキーであるように割り当てられ（かつキーセレクタは０に設定され）、また動作４８３と４８５が実施されて（４９５の円形状の「Ａ」によって示した）、第１の相のマスクされた書き込み動作を完了し、次に４９７において、マスクキーＢが、選択されたマスクキーであるように割り当てられ（かつキーセレクタは１に設定され）、また動作４８３と４８５が２回目に実施されて（４９９に示した）、２相のマスクされた書き込み動作の第２の相を完了する。マスク抵触のため、マスクキーＡにマッチする１つ以上のアンマスクされたバイトは、２相のマスクされた書き込みの第１の相の間に偶然マスクされるが、第２の相の間に書き込まれる。
【００５６】
図１８は、模範的な書き込みデータブロック（ＷＤＢ）および対応するマスクワード（ＭＳＫ）に適用される２相のマスクされた書き込み動作を示している。例示目的のみのため、バイトマスクグラニュラリティが仮定され、またマスクキーＡとＢは、それぞれ、１６進値５５（２進値０１０１０１０１）およびＡＡ（２進値１０１０１０１０）であると仮定される。マスク抵触が、示したシナリオに存在するが、この理由は、書き込みデータブロックが、マスクキーＡおよびマスクキーＢの両方にマッチするアンマスクされた値（すなわち、それぞれ５５およびＡＡのアンマスクされた値）を含むからである。したがって、マスクキーＡは、２相のマスクされた書き込み動作の第１の相に書き込まれる符号化データブロックＣＤＢ−Ａを発生するために選択されたマスクキーであるように割り当てられる。符号化データブロックＣＤＢ−Ａの影付きの「５５」入力によって示されるように、マスクキーＡは、書き込みデータブロック内のマスクされたバイト（すなわち、１２、７０およびＦＦ）に置き換えられて、符号化データブロックＣＤＢ−Ａを発生する。また、符号化データブロックＣＤＢ−Ａの太字ボックス５１１によって示されるように、書き込みデータブロックのアンマスクされた５５の値は、偶然に、マスクキーＡにマッチし、したがって、記憶サブシステム内のマスクされたデータ値のように処理される。図１９は、２相のマスクされた書き込み動作の各相の前後に記憶サブシステムの内容を示している。例示目的のため、マスクされた書き込み動作が指示される記憶領域は、ゼロ値の入力を含むと仮定される。したがって、２相のマスクされた書き込み動作の第１の相の後、すべての記憶位置は、対応する書き込みデータバイトがマスクキーＡにマッチする位置を除いて、書き込みデータバイトで更新される。したがって、元の書き込みデータブロックのアンマスクされた５５の値に対応する記憶位置５１５は、ホストによって要求された書き込み動作の意図が値５５を記憶位置５１５に書き込むことであったとしても、２相のマスクされた書き込み動作の第１の相で更新されない。
【００５７】
再び図１８を参照すると、２相のマスクされた書き込み動作の第２の相において、影付きのＡＡ値の入力によって示されるように、マスクキーＢは、書き込みデータブロックＷＤＢ内のマスクされた各バイトに置き換えられる。太字ボックス５１３によって示されるように、アンマスクされたＡＡ値は、偶然に、マスクキーＢにマッチし、したがって、記憶サブシステム内のマスクされたデータ値のように処理される。図１９を参照すると、２相のマスクされた書き込み動作の第２の相において、すべての記憶位置は、対応する書き込みデータバイトがマスクキーＢにマッチする位置を除いて、書き込みデータバイトで更新される。アンマスクされた５５の値は、今や、マスクキー値にマッチしないので、アンマスクされた５５の値は、本来意図されていた位置５１５に書き込まれる。アンマスクされたＡＡ値が偶然にマスクキー値にマッチし、また２相のマスクされた書き込み動作の第２の相において書き込まれないとしても、アンマスクされたＡＡ値は、第１の相の書き込み動作においてすでに書き込まれた。このように、第１および第２の相の書き込み動作は、互いに相補して、２相のマスクされた書き込み動作の相手部分の相についてマスクキー値に偶然マッチするアンマスクされた値の記憶を達成する。
【００５８】
２相のマスクされた書き込み動作の実行は、マスク抵触を解決するために有効であるが、１つの代わりに記憶サブシステムに対する２つのマスクされた書き込みアクセスを必要とする望ましくない特性を有することを指摘したい。したがって、２相のマスクされた書き込み動作の周波数がより高くなると、メモリシステムの有効なメモリ帯域幅はそれだけ低くなる。２相のマスクされた書き込み動作の周波数を低減するための１つの直接の方法は、マスクキーが選択される所定のマスクキーの数を増すことである。統計上の問題として、１組のＲの所定のマスクキーおよびＮ構成ビットのユニークなパターンを各々が有するＸ書き込みデータ値の母集団を仮定すると、各々の追加のマスクキーは、（Ｘ−Ｒ）／（２N−Ｒ）のファクタだけマスク抵触の可能性を小さくする。例えば、６４の書き込みデータ値（１つはマスクされた）、バイトマスクグラニュラリティ、および２つの所定のマスクキーの母集団を有するシステムでは、母集団のマスク抵触の可能性は（６３／２５６）*（６２／２５５）＝約６％である。２つの追加の所定のマスクキーが設けられる場合、マスク抵触の可能性は、（６３／２５６）*（６２／２５５）*（６１／２５４）*（６０／２５３）＝約０．３４％に低減される。Ｐが所定のマスクキーの数を示す場合、キーセレクタに必要な構成ビットの数はｌｏｇ2（Ｐ）である。一般に、ｌｏｇ2（Ｐ）がマスクグラニュラリティよりも小さい限り、帯域幅の節減がマスクキー転送実施形態にわたって達成される。
【００５９】
マスク抵触の可能性を低減するための他の技術は、書き込みデータ母集団内の公知または予想されるバイアスに従って所定のマスクキーの組を選択することを含む。例えば、１６進値ＦＦおよび００を使用して、真および偽のブール状態を示すシステムでは、所定のマスクキーの各々についてＦＦおよび００以外のパターンを用いて、マスク抵触の可能性を低減することが可能である。マスク抵触を低減する他の方法は、書き込みデータブロックを２つ以上のサブブロックに分割し、これによって、マスク抵触の確率式（Ｘ／２N）*（（Ｘ−１）／２N−１））*．．．*（（Ｘ−Ｒ）／（２N−Ｒ））において母集団サイズＸを低減することである。例えば、Ｘ＞＞Ｒと仮定すると、書き込みデータブロックをＮのサブブロックに分割することにより、マスク抵触の確率は約Ｎだけ低減される。
【００６０】
図２０は、本発明の実施形態によるキー選択マスク論理回路５５０を示している。マスク論理回路５５０は、キーテーブル５５１、キー選択回路５５３、マスクバッファ５５５、書き込みデータバッファ５５７およびデータ符号器を含む。マスクバッファ５５５、書き込みデータバッファ５５７およびデータ符号器２９９は、一般に、図６を参照して上述したように動作し、着信マスクワード（ＭＡＳＫ）および書き込みデータブロック（ＤＡＴＡ）に基づき符号化データブロックを発生する。しかし、キー発生器からマスクキーを受信する代わりに、データ符号器２９９は、キー選択回路５５３によってマスクテーブル５５１から選択された所定のマスクキーを受信する。すなわち、キー選択回路５５３は、選択されたマスクキー５５４（ＳＭＫ）としてテーブル５５１から所定のマスクキーの１つを選択し、符号化データブロックを発生するために、選択されたマスクキー５５４をデータ符号器に供給する。キー選択回路５５３はまた、選択されたマスクキー５５４に対応するキーセレクタ５５２を発生し、キーセレクタ５５２をリクエスト発生器に出力する。このように、リクエスト発生器は、マスクキーの代わりにキーセレクタ５５２を受信して送る。
【００６１】
一実施形態において、キーテーブル５５１は、システム初期化中にホスト供給のマスクキーでプログラミングされるプログラム可能な記憶回路のバンクを含む。プログラム可能な記憶回路は、揮発性または不揮発性の記憶素子を用いて実装可能であり、不揮発性の記憶素子の場合、代わりに、システム生産中または構造設定操作時にプログラミングしてもよい。代替実施形態では、キーテーブル５５１は、１組のハードウェア組込のマスクキーを含む（例えば、専用の回路設計を通して、またはヒューズ溶断プログラミング操作のような一回限りのプログラム可能な操作を通して達成される）。また、キーテーブル５５１は、図２０の２つの所定のマスクキー（ＭＫＡとＭＫＢ）を含むものとして示されているが、キーテーブル５５１は、代替実施形態では、２つよりも多い所定のマスクキーを含んでもよい。
【００６２】
キー選択回路５５３は、ホストインタフェースからマスクワードおよび書き込みデータブロックを、ならびにキーテーブル５５１から所定のマスクキーを受信するように結合される。一実施形態において、キー選択回路５５３は、組み合わせロジックによって実装される。組み合わせロジックはキーテーブル５５１の所定のマスクキーの各々を書き込みデータブロックのアンマスクされた書き込みデータ値と比較し、所定のマスクキーの少なくとも１つが、アンマスクされた書き込みデータ値に対しユニークならば、選択されたマスクキー５５４であるようにユニークな所定のマスクキーを選択するキーセレクタを発生する。所定のマスクキーのいずれも、アンマスクされた書き込みデータ値に対しユニークでないならば（すなわち、キーテーブル５５１の各マスクキーが少なくとも１つのアンマスクされた書き込みデータ値にマッチする）、キー選択回路５５３は、キーテーブル５５１から第１のデフォルトマスクキー（例えば、マスクキーＡ）を選択し、抵触信号５５６をアサートして、マスク抵触状態を示す。図２０の実施形態では、抵触信号５５６は、マスクバッファおよび書き込みデータバッファに供給され、２相のマスクされた書き込み動作の第１および第２の相を通して、それらのバッファの内容を維持する。すなわち、抵触信号５５６は、マスクバッファ５５５および書き込みデータバッファ５５７の内容が着信マスクワードおよび書き込みデータブロックによって上書きされるのを防止するようにアサートされる。追加してまたは代わりに、抵触信号５５６をメモリコントローラ内の他の制御回路に供給し、制御回路をイネーブルにして、マスクバッファおよび書き込みデータバッファが、２相のマスクされた書き込み動作の完了前に上書きされることを防止することが可能である。このような制御回路はまた、ビジー信号を出力して、メモリコントローラが書き込みデータブロックを一時的に受信できないことをアクセスリクエスタに知らせることが可能である。
【００６３】
なおマスク抵触状態を参照すると、第１のデフォルトマスクキーは、２相のマスクされた書き込み動作の第１の相のために選択されたマスクキー５５４としてデータ符号器２９９に供給される。符号化データブロック（第１のデフォルトマスクキーを用いて発生される）および選択されたマスクキー５５４が記憶サブシステムに出力された後、第２のデフォルトマスクキー（例えば、マスクキーＢ）がキー選択回路によって選択されて、選択されたマスクキーとしてデータ符号器に付与される。次に、第２のデフォルトマスクキーが使用され、２相のマスクされた書き込み動作の第２の相のために符号化データブロックを発生する。
【００６４】
図２１は、図２０のキー選択回路５５３によって実装された模範的な状態図５６５を示している。当初、キー選択回路５５３は状態５５６にあり、論理ローキーセレクタおよび抵触信号（すなわち／ＫＳＥＬ、／ＣＮＦＬ）を出力する。マスクキーＡ（ＭＫＡ）が着信書き込みデータブロック内のアンマスクされたデータ値にマッチしない限り（すなわち、ＭＫＡ＜＞ＷＤＢ）、キー選択回路は状態５５６に留まる。マスクキーＡが着信書き込みデータブロック内の１つ以上のアンマスクされたデータ値にマッチし、またマスクキーＢが書き込みデータブロック内のアンマスクされたデータ値のいずれにもマッチしないならば（すなわち、（ＭＫＡ＝ＷＤＢ）ＡＮＤ（ＭＫＢ＜＞ＷＤＢ））、キー選択回路は状態５５７に移行する。状態５５７において、抵触信号はローに留まるが、キーセレクタはハイになり、符号化データブロックの発生に使用するためのマスクキーＢを選択する。次の書き込みデータブロックが受信されると、マスクキーＡがアンマスクされたデータ値のいずれにもマッチしないならば、キー論理は状態５５６に戻る。マスクキーＡが書き込みデータブロック内のアンマスクされたデータ値にマッチするが、マスクキーＢがマッチしないならば、キー選択回路は状態５５７に留まる。状態５５６または５５７にかかわらず、マスクキーＡおよびマスクキーＢの各々が着信書き込みデータブロック内のアンマスクされたデータ値にマッチすると決定されたならば、マスク抵触が生じており、キー選択回路は状態５５８に移行する。キーセレクタは、２相のマスクされた書き込み動作の持続時間の間、状態５５８に留まり、次に、マスク抵触が次の書き込みデータブロック内で検出されないならば、状態５５６または５５７に移行する（すなわち、マスクキーＡが書き込みデータブロック内のアンマスクされた書き込みデータ値にマッチするならば、状態５５６に移行し、さもなければ状態５５７に移行する）。
【００６５】
図２２は、本発明の実施形態による図２０のキー選択回路５５３を示している。キー選択回路５５３は、マルチプレクサ５７１および選択信号発生器５７５を含み、その各々は、キーテーブルから所定のマスクキーを受信するように結合される。４つの所定のマスクキーＭＫ０−ＭＫ３は、図２２の模範的な実施形態に想定されるが、代わりに、より多いかまたはより少ないマスクキーを使用してもよい。選択信号発生器５７５は、入力として書き込みデータブロックおよびマスクワードを受信し、また図２１を参照して記述したキーセレクタ５５２および抵触信号５５６を発生する。図２２の実施形態では、キーセレクタ５５２は、２ビットの信号ＫＳＥＬ［１：０］であり、またマルチプレクサ５７１の選択入力部に供給されて、選択されたマスクキー５５４（ＳＭＫ）として出力されるように４つの所定のマスクキーの１つを選択する。
【００６６】
選択信号発生器５７５は、Ｘマッチ検出回路５７９0−５７９X-1（ＭＤ）、論理ＡＮＤゲート５８５0−５８５3、および符号器５８７の組を含む。マッチ検出回路５７９の各々は、書き込みデータブロックのＸ書き込みデータ値のそれぞれの値およびマスクワードの対応するマスクビットと共に、キーテーブルから４つの所定のマスクキー値ＭＫ０−ＭＫ３を受信するように結合される。マッチ検出回路５７９の各々は、所定のマスクキーＭＫ０−ＭＫ３に対応するそれぞれの組の資格マッチ信号（すなわち、ＱＭ０0-3、ＱＭ１0-3、．．．、ＱＭ（Ｘ−１）0-3）を発生し、各々の資格マッチ信号は、対応するマスクキーがアンマスクされた書き込みデータ値にマッチするかどうかを示す。一例として、マッチ検出回路５７９0の詳細図を参照すると、各々の所定のマスクキーは、それぞれ１つの比較器５８１で、書き込みデータ値ＷＤ０（すなわち、着信書き込みデータブロックの書き込みデータ値）と比較される。所定の比較器５８１によって受信された書き込みデータ値と所定のマスクキーとがマッチするならば、比較器は、マッチライン５８２の対応する１つに論理ハイマッチ信号を出力する。マッチライン５８２は、それぞれのＡＮＤゲート５８３の入力に結合され、ＡＮＤゲートの各々は、マスクビットＭ０を受信するように共通に結合された反転入力を有する。したがって、ＡＮＤゲート５８３の各々は、対応する比較器５８１によってマッチが信号伝送され、また書き込みデータ値がアンマスクされる（すなわち、マスクビットＭ０がローである）ならば、論理ハイ状態のそれぞれの資格マッチ信号を出力する。分析形態で表すと、図２２の模範的な実施形態のＸマスク検出回路５７９0−５７９X-1（ＭＤ0−ＭＤX-1）の各々は、次のような４つの資格マッチ信号を出力する。
ＭＤ0：ＱＭ０0：（ＷＤ０＝ＭＫ０）＆／Ｍ０
ＱＭ０1：（ＷＤ０＝ＭＫ１）＆／Ｍ０
ＱＭ０2：（ＷＤ０＝ＭＫ２）＆／Ｍ０
ＱＭ０3：（ＷＤ０＝ＭＫ３）＆／Ｍ０
ＭＤ1：ＱＭ１0：（ＷＤ１＝ＭＫ０）＆／Ｍ１
ＱＭ１1：（ＷＤ１＝ＭＫ１）＆／Ｍ１
ＱＭ１2：（ＷＤ１＝ＭＫ２）＆／Ｍ１
ＱＭ１3：（ＷＤ１＝ＭＫ３）＆Ｍ１
・
・
・
ＭＤX-1：ＱＭ（Ｘ−１）0：（ＷＤ（Ｘ−１）＝ＭＫ０）＆／Ｍ（Ｘ−１）
ＱＭ（Ｘ−１）1：（ＷＤ（Ｘ−１）＝ＭＫ１）＆／Ｍ（Ｘ−１）
ＱＭ（Ｘ−１）2：（ＷＤ（Ｘ−１）＝ＭＫ２）＆／Ｍ（Ｘ−１）
ＱＭ（Ｘ−１）3：（ＷＤ（Ｘ−１）＝ＭＫ３）＆／Ｍ（Ｘ−１）
【００６７】
なお図２２を参照すると、資格信号ＱＭ０0、ＱＭ１0、．．．、ＱＭ（Ｘ−１）0のすべては、マスクキーＭＫ０に対応し（各々は、ＭＫ０が書き込みデータブロック内のそれぞれのアンマスクされたデータ値にマッチするかどうかを示し）、ＡＮＤゲート５８５0のそれぞれの反転入力に供給される。このように、ＭＫ０に対応するすべての資格マッチ信号がローならば、ＡＮＤゲート５８５0の出力（すなわち、Ｓ０）はハイであり、ＭＫ０が書き込みデータブロック内のアンマスクされたデータ値のいずれにもマッチしないことを示す。同様に、資格マッチ信号ＱＭ０1、ＱＭ１1、．．．、ＱＭ（Ｘ−１）1のすべては、ＭＫ１に対応し、ＡＮＤゲート５８５1の反転入力に供給され、資格マッチ信号ＱＭ０2、ＱＭ１2、．．．、ＱＭ（Ｘ−１）2のすべては、ＭＫ２に対応し、ＡＮＤゲート５８５2の反転入力に供給され、また資格マッチ信号ＱＭ０3、ＱＭ１3、．．．、ＱＭ（Ｘ−１）3のすべては、ＭＫ３に対応し、ＡＮＤゲート５８５3の反転入力に供給される。このように、対応するマスクキーＭＫ０−ＭＫ３が書き込みデータブロック内のアンマスクされたデータ値のいずれにもマッチしないならば、ＡＮＤゲート５８５0−５８５3の各々は論理ハイ信号を出力する。ＡＮＤゲート５８５0−５８５3の出力（すなわち、信号Ｓ０−Ｓ３それぞれ）は、符号器５８７に供給され、そこで、キーセレクタ５５２および抵触信号５５６の状態を設定するために使用される。一実施形態において、符号器５８７は、信号Ｓ０−Ｓ３の対応する１つの出力がハイである最も低い番号付けのマッチキーに対応するキーセレクタ５５２を発生する。すなわち、Ｓ０がハイならば、ＫＳＥＬ［１：０］は００に設定されてＭＫ０を選択し、Ｓ０がローで、Ｓ１がハイならば、０１に設定されてＭＫ１を選択し、Ｓ０がロー、Ｓ１がロー、かつＳ２がハイならば、１０に設定されてＭＫ２を選択し、Ｓ０がロー、Ｓ１がロー、Ｓ２がロー、かつＳ２がハイならば、１１に設定されてＭＫ３を選択する。信号Ｓ０−Ｓ３がすべてローならば、マスクキーＭＫ０−ＭＫ３のいずれも書き込みデータブロックに対しユニークでなく、抵触状態が存在する。図２２の実施形態では、符号器５８７は抵触信号５５６をアサートしてマスク抵触状態を示し、また２相のマスクされた書き込みの第１の相のためのデフォルトマスクキーであるように、マスクキーＭＫ０を選択するようにキーセレクタ５５２を設定する。２相のマスクされた書き込みの第１の相の後、符号器５５７は、２相のマスクされた書き込みの第２の相のためのデフォルトマスクキーであるように、マスクキーＭＫ１を選択するようにキーセレクタを設定する。代替実施形態において、２相のマスクされた書き込みの第１および／または第２の相のためのデフォルトマスクキーとして、他のキーテーブル選択を使用してもよい。
【００６８】
図２３は、本発明のキー選択の実施形態によるメモリ装置６００を示している。メモリ装置６００は、ホストインタフェース６０１、データインタフェース６０３、アドレス復号器２６７、リクエスト論理２６５、キーテーブル６０９、マルチプレクサ６１１、比較器２６９、書き込みドライバ２７３および論理ゲート２７５を含む。データインタフェース６０３（受信器２７１を含む）、アドレス復号器２６７、リクエスト論理２６５、比較器２６９、書き込みドライバ２７３および論理ゲート２７５のすべては、一般に、図５を参照して記述したように動作するが、代わりに、データインタフェース６０３は、図１６を参照して記述したような非シリアル化データインタフェースでもよい。ホストインタフェース６０１はまた、マスクキーの代わりにキーセレクタ５５２が受信されること以外、図５を参照して記述したように動作する。キーセレクタ５５２は、マルチプレクサ６１１の選択入力部に供給されて、キーテーブル６０９からマスクキーを選択し、選択されたマスクキー６１０は、着信書き込みデータ値と比較するために比較器２６９に供給される（すなわち、比較器２６９がリクエスト論理２６５からの比較イネーブル２４６の信号によってイネーブルにされた場合）。単一の書き込みデータチャネルが図２３に示されているが、代わりに、メモリ装置６００は、代替実施形態で任意の数の書き込みデータチャネルを有してもよい（すなわち、図５のようなより広いデータインタフェース６０３、多数の比較器２６９、多数の書き込みドライバ２７３および論理ゲート２７５）ことに留意されたい。
【００６９】
図２３の実施形態では、キーテーブル６０９は４つの所定のマスクキーを含み、また着信キーセレクタ５５２は、４つのうちの１つの選択をイネーブルにするための２ビットの値ＫＳＥＬ［１：０］である。代替実施形態のキーテーブル６０９内に、より多いかまたはより少ない所定のマスクキーを設け、キーセレクタ５５２のビット数を相応して増加または減少させてもよい。一実施形態において、キーテーブル６０９は、システム初期化中にメモリコントローラによって供給されるマスクキーでプログラミングされるプログラム可能な記憶回路のバンクを含む。プログラム可能な記憶回路は、揮発性または不揮発性の記憶素子を用いて実装可能であり、不揮発性の記憶素子の場合、システム生産中または構造設定操作時にプログラミングしてもよい。代替実施形態では、キーテーブル６０９は、１組のハードウェア組込のマスクキーを含む（例えば、専用の回路設計を通して、またはヒューズ溶断プログラミング操作のような一回限りのプログラム可能な操作を通して達成される）。
【００７０】
サブブロック符号化
上に簡単に述べたように、キー選択メモリコントローラのマスク抵触を低減する１つの方法は、各々の着信書き込みデータブロックのために多数のマスクキーを選択することであり、選択された各マスクキーは書き込みデータブロックのそれぞれのサブブロック（すなわち、部分）に対応する。次に、選択された各マスクキーは、対応するサブブロック内でマスク値に置き換えられて、符号化されたサブブロックを発生し、また符号化されたサブブロックは、対応するサブブロックのキーセレクタと共に記憶サブシステムに伝送される。各サブブロックの母集団サイズの低減（すなわち、完了した書き込みデータブロックと比較した書き込みデータ値の数の低減）により、マスク抵触の確率のほぼ比例的な低減が達成される。
【００７１】
図２４は、２つの３２バイトのサブブロック、サブブロック０およびサブブロック１への６４バイトの書き込みデータブロックの模範的な空間分割を示している。図示したように、データラインＤＱ００〜ＤＱ１５で伝送される３２のデータバイトはサブブロック０を形成し、またデータラインＤＱ１６〜ＤＱ３１で伝送される３２のデータバイトはサブブロック２を形成する。マスク抵触の可能性をさらに低減するために、代替実施形態でより細かい空間分割を使用し得る（例えば、データ経路の８つのラインの組で各々が伝送される４つのサブブロックに分割すること）。
【００７２】
図２５は、２つの３２バイトのサブブロック、サブブロック０およびサブブロック１への６４バイトの書き込みデータブロックの模範的な空間分割を示している。図示したように、伝送間隔０−７の間に伝送される３２のデータバイトはサブブロック０を形成し、また伝送間隔８−１５の間に伝送される３２のデータバイトはサブブロック１を形成する。代替実施形態で、より細かな時間分割を使用し得る（例えば、それぞれの組の伝送間隔の間に各々が次々に伝送される４つのサブブロックに分割すること）。また、時間的および空間的分割の組み合わせも使用し得る。例えば、図２４に示した空間分離は、図２５の時間分離と組み合わせて、４つの四分円の分離を生成してもよい。さらに、シリアル化データ転送スキームが図２４と図２５に示されているが、代わりに、並列のデータ転送スキーム（例えば、図１２に示したような）を使用してもよい。
【００７３】
分離の種類および数に関係なく、サブブロックの各々の中の書き込みデータ値に基づき、別個のキーセレクタ値が発生され、サブブロックを符号化するためのそれぞれのマスクキーを選択するために使用される。次に、符号化されたサブブロックおよび対応するキーセレクタは、記憶サブシステムに出力される。
【００７４】
図２６は、本発明のキー選択メモリシステム内で使用可能なキーセレクタの模範的な符号化を示している。図示したように、２ビットのキーセレクタＫＳＥＬ［１：０］は、所定の書き込み動作がマスクされた書き込み動作またはアンマスクされた書き込み動作であるかどうかを示すために、またマスクされた書き込み動作であるならば、３つの所定のマスクキーの１つに規定するために使用される。すなわち、キーセレクタが３つの所定のマスクキーの１つを規定するならば、マスクされた書き込み動作が示される。さもなければ、キーセレクタは、アンマスクされた書き込み動作を示すために００に設定される。
【００７５】
セクションの表題は、参照の便宜のためにのみこの詳細な説明に付与されており、このようなセクションの範囲または程度を決して規定、制限、解釈または記述するものではない。また、本発明の特定の模範的な実施形態を参照して、本発明について記述してきたが、本発明のより広範囲の精神と範囲から逸脱することなく、本発明に対し様々な修正および変更をなし得ることが明白であろう。したがって、本明細書および図面は、制限的というよりもむしろ例示的であると見なすべきである。
【図面の簡単な説明】
【００７６】
【図１】従来技術のバイトマスキングメモリシステムの図面である。
【図２】本発明の実施形態によるメモリコントローラ内の動作方法の図面である。
【図３】本発明の実施形態による記憶サブシステム内の動作方法の図面である。
【図４】本発明の実施形態によるメモリシステムの図面である。
【図５】本発明の実施形態によるメモリ装置の図面である。
【図６】本発明の実施形態による図４のマスク論理の図面である。
【図７】図４のメモリコントローラを通して書き込みデータブロックを伝搬するための模範的なパイプラインの図面である。
【図８】本発明の実施形態による図６のキー発生器の動作の図面である。
【図９】本発明の実施形態によるキー発生器の図面である。
【図１０】メモリコントローラと図４の記憶サブシステムとの間のデータ経路にわたってバイトサイズの書き込みデータ値を転送するための模範的なタイミング図である。
【図１１】図１０のデータ転送スキームを用いて単一ランクのメモリ装置に達成できる記憶容量の図面である。
【図１２】記憶サブシステムのランク当たりの記憶容量の実質的な増加をイネーブルにする本発明の代替実施形態のデータ転送スキームの図面である。
【図１３】図１２のデータ転送スキームを用いて単一ランクのメモリ装置に達成できる記憶容量の図面である。
【図１４】本発明の実施形態によるシリアル転送メモリコントローラのデータポートの図面である。
【図１５】図１４のデータポート内で使用可能なシリアル化回路の模範的な実施形態の図面である。
【図１６】本発明の実施形態によるシリアル転送メモリ装置の図面である。
【図１７】本発明の実施形態によるキー選択メモリコントローラの動作の図面である。
【図１８】模範的な書き込みデータブロックおよび対応するマスクワードに適用される２相のマスクされた書き込み動作の図面である。
【図１９】図１８の２相のマスクされた書き込み動作の各相の前後の記憶サブシステムの内容の図面である。
【図２０】本発明の実施形態によるキー選択マスク論理回路の図面である。
【図２１】図２０のキー選択回路によって実施される模範的な状態図である。
【図２２】本発明の実施形態による図２０のキー選択回路の図面である。
【図２３】本発明のキー選択実施形態によるメモリ装置の図面である。
【図２４】書き込みデータブロックを２つのサブブロックに空間分割した模範的な図面である。
【図２５】書き込みデータブロックを２つのサブブロックに時間分割した模範的な図面である。
【図２６】本発明のキー選択メモリシステム内で使用可能なキーセレクタの模範的な符号化の図面である。
【図１】
0004717798.tif 000002
【図２】
0004717798.tif 000003
【図３】
0004717798.tif 000004
【図４】
0004717798.tif 000005
【図５】
0004717798.tif 000006
【図６】
0004717798.tif 000007
【図７】
0004717798.tif 000008
【図８】
0004717798.tif 000009
【図１０】
0004717798.tif 000010
【図１１】
0004717798.tif 000011
【図１２】
0004717798.tif 000012
【図１３】
0004717798.tif 000013
【図１４】
0004717798.tif 000014
【図１６】
0004717798.tif 000015
【図１７】
0004717798.tif 000016
【図１８】
0004717798.tif 000017
【図１９】
0004717798.tif 000018
【図２０】
0004717798.tif 000019
【図２２】
0004717798.tif 000020
【図２３】
0004717798.tif 000021
【図２４】
0004717798.tif 000022
【図２５】
0004717798.tif 000023
【図２６】
0004717798.tif 000024