JP2006515452A - 符号化書き込みマスキング - Google Patents

符号化書き込みマスキング Download PDF

Info

Publication number
JP2006515452A
JP2006515452A JP2006500933A JP2006500933A JP2006515452A JP 2006515452 A JP2006515452 A JP 2006515452A JP 2006500933 A JP2006500933 A JP 2006500933A JP 2006500933 A JP2006500933 A JP 2006500933A JP 2006515452 A JP2006515452 A JP 2006515452A
Authority
JP
Japan
Prior art keywords
value
write data
key
mask
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006500933A
Other languages
English (en)
Other versions
JP2006515452A5 (ja
JP4717798B2 (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
Priority claimed from US10/385,908 external-priority patent/US7313639B2/en
Application filed by ラムバス・インコーポレーテッド filed Critical ラムバス・インコーポレーテッド
Publication of JP2006515452A publication Critical patent/JP2006515452A/ja
Publication of JP2006515452A5 publication Critical patent/JP2006515452A5/ja
Application granted granted Critical
Publication of JP4717798B2 publication Critical patent/JP4717798B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Dram (AREA)
  • Read Only Memory (AREA)
  • Optical Recording Or Reproduction (AREA)
  • Memory System (AREA)

Abstract

メモリコントローラと、メモリコントローラに結合されたメモリ装置とを有するメモリシステム。メモリコントローラは、書き込みデータ値をメモリ装置に出力する。メモリ装置は、メモリコントローラから書き込みデータ値を受信して、書き込みデータ値をマスクキー値とを比較する。書き込みデータ値がマスクキー値にマッチする場合、メモリ装置は書き込みデータ値を記憶しない。書き込みデータ値がマスクキー値にマッチしない場合、メモリ装置は書き込みデータ値を記憶する。

Description

関連出願の相互参照
本出願は、発明者リチャード・E・ペレゴ(Richard E.Perego)およびフレデリックA.ウェア(Frederick A.Ware)によって2003年1月13日に出願された米国仮特許出願第60/439,666号、表題「符号化書き込みマスキング(Coded Write Masking)」、発明者リチャード・E・ペレゴ(Richard E.Perego)およびフレデリックA.ウェア(Frederick A.Ware)によって2003年3月11日に出願された米国特許出願第10/386,236号、表題「符号化書き込みマスキング(Coded Write Masking)」、および発明者リチャード・E・ペレゴ(Richard E.Perego)およびフレデリックA.ウェア(Frederick A. Ware)によって2003年3月11日に出願された米国特許出願第10/385,908号、表題「シリアル化データ転送によるメモリシステムおよび装置(Memory System And Device With Serialized Data Transfer)」に対する優先権を主張する。
技術分野
本発明は、一般に、データ転送および記憶技術、より詳しくは、メモリシステムにアクセスするメモリシステムおよび装置のマスクされた書き込み動作に関する。
背景
現在のメモリシステムの読み取りおよび書き込みアクセスは、マルチバイトデータブロックの転送を通して典型的に処理される。完全でないデータブロックをメモリシステムから読み取る場合、所望のデータを含むデータブロックのアドレスがメモリシステムに付与され、完全なデータブロックが読み取られる。一般的に、必要とされるよりも多くのデータの読み取りに不利益はない。対照的に、完全なデータブロックよりも小さな値を書き込む場合、書き込まれた値を除き記憶されたデータブロックが変更されないままであることが重要である。このことは、2種類の特殊な書き込み動作、すなわちマージされた書き込み動作またはマスクされた書き込み動作の一方を通して典型的に達成される。
マージされた書き込み動作(時にリードマージライト動作またはリードモディファイライト動作と呼ばれる)では、メモリコントローラが、更新すべきデータブロックを読み取り、書き込みデータ値を適切なオフセットでデータブロックにマージし、次に、更新されたデータブロックを記憶に書き込んで戻す。2つのメモリアクセスが必要である(読み取りおよび書き込み)ので、マージされた書き込み動作はメモリシステムのピーク帯域幅を実質的に低減し、したがって高性能システムでは典型的に使用されない。
マスクされた書き込み動作では、メモリコントローラは、マスク信号を記憶サブシステムに出力して、データブロック内の各データ値をマスクまたはアンマスクされていると認定する。記憶サブシステムは応答して、アンマスクされたデータ値のみを記憶する。レガシーのため、データマスキングのグラニュラリティは、典型的に、1バイト(すなわち、8ビット)のグラニュラリティに達する。8ビットまたは1バイトのグラニュラリティを有するデータマスキングは、時にバイトマスキングと称される。バイトマスキングは、記憶サブシステムに追加のハードウェア(すなわち、マスク信号を検出して、それに応答するために)を必要とする不都合を有するが、マージされた書き込み動作と関連した二重アクセスの性能上の不利益が回避される。
図1は、メモリコントローラ101と記憶サブシステム103とを有する従来技術のバイトマスキングメモリシステム100を示している。メモリコントローラ100は、アクセスリクエスタからアクセスリクエスト(REQ)とデータブロック(DATA)とマスク情報(MASK)とを受信するためのホストインタフェース105、および対応するリクエストとデータブロックとマスク情報とを記憶サブシステムに出力するためのメモリインタフェース107を含む。マスクされた書き込み動作では、64バイトの書き込みデータブロック(512ビット)が、64ビットのマスクワードとマスクされた書き込みリクエストと共にホストインタフェース105を介して受信される。マスクワードの各ビットは書き込みデータブロックのそれぞれのバイトに対応し、設定された場合、バイトが記憶サブシステム内に記憶されないマスクされたバイトであることを示す。メモリコントローラ101は、マスクされた書き込みリクエストに応答して、マスクされた書き込み指示をリクエスト経路102を介して記憶サブシステム103に交付し、またデータ経路104を介して書き込みデータブロックおよびマスクワードを記憶サブシステムに転送する。データ経路は、4データバイトの並列転送用の32のデータライン108、4つの対応するマスクビットを転送するための4つのマスクライン106を含む。したがって、完全な書き込みデータブロックおよびマスクワードが、16のデータ転送のシーケンスで記憶サブシステムに転送され、各転送は、書き込みデータブロックの4バイトおよびマスクワードの4ビットを含む。
記憶サブシステム103は、いくつかの別個のメモリ装置、MEMRIによって形成され、その各々は、リクエストインタフェースとデータインタフェースとを有する。各メモリ装置のリクエストインタフェースは、マスクされた書き込み指示(アドレス値を含む)を受信するためにリクエスト経路102に結合され、また各メモリ装置のデータインタフェースは、16のデータ転送の各々のデータバイトおよび対応するマスクビットを受信するために、データ経路のそれぞれの9ビットスライスに結合される。各々のデータ転送のために、メモリ装置の各々は、マスクビットが設定されない限り、アドレス値(16のデータ転送が作用されるオフセット)によって示された位置にデータバイトを記憶する。
従来技術のメモリシステム100の1つの不都合は、データ経路104の本質的な部分が、9つのライン毎に1つのラインが、マスク信号の転送専用であることである。したがって、データ経路帯域幅の10%超がバイトマスキングを補助するために予備とされる。装置幅(すなわち、マスク入力を除くメモリ装置データインタフェースの幅)が小さくなるにつれ、この帯域幅の不利益は悪化する。例えば、装置幅が8ビットから4ビットに小さくなるならば、データ経路帯域幅の20%(5つの信号ライン毎に1つ)がバイトマスキング用に確保される。したがって、本質的な帯域幅の不利益を課すことに加えて、従来技術のメモリシステム100の中に使用されるバイトマスキング技術は、記憶サブシステム103内のメモリ装置の装置幅が少なくとも8ビットであるように有効に抑制する。この装置幅の制約は、直接、メモリ装置およびデータ経路幅の所定の形成に対しメモリサイズ上の制約となる。例えば、メモリ装置および32のラインのデータ経路幅(マスクラインを除く)の所定の形成に対し512メガビット(Mb)の記憶容量を仮定すると、メモリコントローラにポイントツーポイント式に結合されるメモリの合計サイズは、512Mb*(32/8)=2ギガビット(Gb)である。追加のグループのメモリ装置は、図1の点線の輪郭の装置MEMR2で示したようにデータ経路104に結合されるが、追加の信号ライン接続部は、データ経路104をマルチドロップバスに有効に変換する。マルチドロップバス構成は、ポイントツーポイント構成とは異なり、かつそれよりも時に相当望ましくないシグナル特性を有する。
本発明について、同様の参照番号が同様の要素を指す添付図面の図で、一例としてまた限定することなく説明する。
詳細な説明
次の説明および添付図において、本発明の完全な理解を提供するために、特定の用語および図面の記号が規定される。ある場合には、用語および記号は、本発明を実施するために必要とされない特定の細部を意味する場合がある。例えば、回路要素または回路ブロックの間の相互接続は、多導体または単一導体の信号ラインとして図示または記述することが可能である。多導体信号ラインの各々は、代わりに単一導体信号ラインでもよく、また単一導体信号ラインの各々は、代わりに多導体信号ラインでもよい。単端であるとして図示または記述した信号および信号経路は、また差異的であってもよく、またその逆でもよい。同様に、アクティブハイまたはアクティブローの論理レベルを有するように記述または示した信号は、代替実施形態の反対の論理レベルを有してもよい。他の実施例として、信号制御の電流を達成し得るバイポーラ技術または他の任意の技術を用いて、金属酸化物半導体(MOS)トランジスタを含むとして記述または示した回路を代わりに実装してもよい。用語に関し、信号が特定の状態を示すためにローまたはハイ論理状態に駆動される(あるいは高い論理状態に充電されるかまたは低い論理状態に放電される)とき、信号が「アサート」されると言われる。逆に、信号がアサート状態以外の状態(ハイまたはロー論理状態、あるいは信号駆動回路がオープンドレインまたはオープンコレクタ状態のような高インピーダンス状態に移行したときに生じ得る浮動状態を含む)に駆動される(あるいは充電または放電される)ことを示すために、信号は「デアサート」されると言われる。信号駆動回路が、信号駆動回路と信号受信回路との間に結合された信号ラインに信号をアサートする(明示的に文脈によって述べられるかまたは示された場合、デアサートする)とき、信号駆動回路は信号を信号受信回路に「出力する」と言われる。信号ラインは、信号が信号ラインにアサートされるときに「活性化」され、信号がデアサートされるときに「非活性化」されると言われる。さらに、信号名に付された接頭辞記号「/」は、信号がアクティブロー信号であることを示す(すなわち、アサート状態は論理ロー状態である)。信号名の上の線(例えば、「<信号名>」)は、アクティブロー信号を示すために使用される。
着信する書き込みデータブロック内のマスクされたデータ値にキー値が置き換えられる書き込みマスキングメモリシステムが、様々な実施形態で本明細書に開示される。一実施形態において、キー値は、メモリシステムによって動的に発生され、次に、マスクされた各データ値に置き換えられて、符号化データブロックを生成する。符号化データブロックおよびキー値の各々は、1つ以上の別個のメモリ装置を含む記憶サブシステムに出力される。別個のメモリ装置は、キー値と符号化データブロックの構成書き込みデータ値とを比較して、キー値にマッチしないことが決定されたそれらの書き込みデータ値のみを記憶する。キー値はマスクされたデータ値を識別するために使用されるので、専用のマスク信号(すなわち、図1のメモリシステムにおけるような書き込みデータ値当たりのマスク信号)の伝送は不必要であり、書き込みデータ転送のためにメモリコントローラと記憶サブシステムとの間の完全なデータ経路を利用可能にし、図1の従来技術のメモリシステムに対する本質的な帯域幅の節減を達成する。
本発明の代替実施形態では、メモリコントローラは、所定値の表からキー値を選択し、次に、セレクタ値を記憶サブシステムに通過させて、所定値のどれが選択されたかを示す。記憶サブシステム内の別個のメモリ装置の各々は所定値の表を含み、セレクタ値を使用して、セレクタによって規定されたキー値を選択する。次に、マスクされたデータ値が記憶から除外されるように、選択されたキー値を用いてマスクされたデータ値が識別される。セレクタ値はキー値よりも相当小さいので、追加の帯域幅節減が達成される。
メモリコントローラと記憶サブシステムとを有するメモリシステム実施形態を主に参照して本発明について以下に説明するが、記述した技術および構造は、処理システム内の他の場所に適用することが可能である。例えば、プロセッサまたは他のメモリリクエスタは、書き込みデータブロックでキー値の置換を実行して、結果として得られる符号化データブロックおよびキー値をメモリコントローラに転送することが可能である。次に、メモリコントローラは、キー値および符号化データブロックを記憶サブシステムに送って、マスクされた書き込み動作を完了する。
符号化書き込みマスキングによるメモリシステム
図2は、本発明の実施形態によるメモリコントローラ内の動作方法を示している。153において、メモリコントローラは、X書き込みデータ値、WD0−WD(X−1)を含む書き込みデータブロック150と、Xマスク値、M0−M(X−1)を含む対応するマスクワード152とを受信し、各マスク値は書き込みデータ値のそれぞれの1つに対応する。書き込みデータ値は任意のサイズでよいが(例えば、8ビット、16ビット、32ビット等)、少なくとも図2の実施形態では、少なくともXの可能なビットパターンがあることを保証するために十分な数の構成ビットを含む。すなわち、書き込みデータ値サイズがNビットであるならば、Nは、2N≧Xを保証する程度に十分に大きい。この構成により、マスクされた書き込み動作でアンマスクされたデータ値のX−1の可能なビットパターンのいずれにもマッチしない少なくとも1つのNビットパターンの存在が保証される(すなわち、書き込みデータブロックのXの書き込みデータ値の少なくとも1つがマスクされるからである)。この説明の残りのため、マスク値は単一ビットの値であると仮定され、またマスクビットと称されるが、マルチビットのマスク値を代わりに使用してもよい。
155において、メモリコントローラは、アンマスクされたデータ値のいずれにもマッチしないパターンで配列されたNの構成ビットを有するここでマスクキー158と称されるキー値を発生する。157において、マスクキーは、書き込みデータブロックのマスクされた各データ値に置き換えられて、符号化データブロック162を生成する。例えば、154に示したように、ビットM1およびマスクワードのM(i)が設定され(例えば、論理「1」の値に)、対応する書き込みデータ値がマスクされたデータ値であることを示す。したがって、マスクキー158はマスクされたデータ値に置き換えられて、符号化データブロック162を発生する。159において、符号化データブロックおよびマスクキーは記憶サブシステムに伝送される。
図3は、図2で参照した本発明の実施形態による記憶サブシステム内の動作方法を示している。175において、記憶サブシステムは、図2に参照した符号化データブロックを受信し、およびマスクされた書き込み命令と図2に参照したマスクキーと記憶サブシステム内の目標記憶位置のアドレスとを含むマスクされた書き込みリクエストを受信する(例えば、書き込まれる記憶位置の範囲の開始アドレス)。以下に説明するように、命令、マスクキーおよび/またはアドレスは、1組のリクエストラインにマルチプレクスしてもよく、あるいはそれぞれの組の信号ラインを介して受信してもよい。符号化データブロックは、マスクされた書き込みリクエストの前、後またはそれと同時に、あるいはその任意の部分で受信することが可能である。
177において、符号化データブロックの各書き込みデータ値がマスクキーと比較される。所定の書き込みデータ値がマスクキーにマッチしない場合、179において、書き込みデータ値は、記憶サブシステムのマスクされた書き込みリクエストに規定されたアドレスに記憶される。書き込みデータ値がマスクキーにマッチする場合、書き込みデータ値は、記憶サブシステム内の記憶から除外され、これによって、マスクされた書き込み動作の選択的な記憶機能が達成される。
図4は、本発明の実施形態によるメモリシステム200を示している。メモリシステム200は、制御経路214とデータ経路216とを介して互いに結合されたメモリコントローラ201と記憶サブシステム203とを含む。メモリコントローラ201は、ホストインタフェース205、メモリインタフェース、マスク論理回路207およびリクエスト発生器209を含む。
ホストインタフェース205は、1つ以上のアクセスリクエスタ(例えば、プロセッサ、特定用途向け集積回路(ASIC)、DMAコントローラ、または他のリクエスタ)からアクセスリクエスト、データおよびマスク情報を受信するように結合される。アクセスリクエストがマスクされた書き込み動作を規定するとき、Y構成ビットを有する書き込みデータブロック(DATA)およびX構成ビットを有するマスクワード(MASK)がホストインタフェースを介してメモリコントローラで受信される。したがって、各マスクビットは書き込みデータブロックのY/Xビットのそれぞれのグループに対応する(すなわち、マスクグラニュラリティ=Y/X)。Y/Xビットのこのようなマスク可能な各グループは、ここで書き込みデータ値と称され、また書き込みデータブロックは、X構成書き込みデータ値を有すると称される。一例として、Y=512(512ビットの書き込みデータブロック)およびX=64(64ビットのマスクワード)であるならば、書き込みデータブロックは64バイトサイズの書き込みデータ値を含む。他の例として、Y=512およびX=16であるならば、書き込みデータブロックは16の32ビットの書き込みデータ値を含むと思われる。YとXの他の多数の値を使用することが可能である。
ホストインタフェースのデータ部分は、例示目的のみのためにYデータラインに結合されるものとして示していることに留意されたい。代わりに、ホストインタフェースのデータ部分は、Yデータラインよりも多いかまたは少ないラインに結合して、書き込みデータ転送シーケンスでYビットの書き込みデータブロックを受信してもよい。同様に、ホストインタフェースのマスク部分は、Xマスク信号ラインよりも多いかまたは少ないラインに結合して、マスク転送シーケンスでXビットマスクワードを受信してもよい。
マスクされた書き込みリクエスト、書き込みデータブロックおよびマスクワードは、マスク論理207に供給され、次に、このマスク論理は、マスクキー158および符号化データブロック208を発生する。符号化データブロック208は、メモリインタフェース内のデータポート215に供給され、マスクキー158はリクエスト発生器209に供給される。リクエスト発生器209はまた、ホストインタフェースからマスクされた書き込みリクエストを受信し、かつ応答して、マスクキー158と、マスクされた書き込みリクエストによって示された書き込みアドレスとを含む対応する制御情報210をメモリインタフェース211内の制御ポート213に出力する。制御ポートは、制御経路214を介して記憶サブシステムに制御情報210を出力するための出力ドライバのバンク(図4に特に示していない)を含む。同様に、データポートは、データ経路を介して記憶サブシステムに符号化データブロック208を出力するための出力ドライバのバンクを含む。
記憶サブシステム203は、Zの別個のメモリ装置2210−221Z-1のグループを含み、メモリ装置の各々は、制御経路214と、データ経路216のそれぞれの部分(すなわち、2180−218Z-1で示したように)とに結合される。この構成により、メモリ装置221の各々は、メモリコントローラ201から制御情報210および符号化データブロック208のそれぞれの部分を受信する。メモリ装置221のそれぞれに結合されたデータラインの数、Wは、マスクグラニュラリティの整数倍(すなわち、W=k(Y/X)、ここでk=1、2、3...)であり、この結果、メモリ装置の各々は、並列のビット組の形態で少なくとも1つの完全な書き込みデータ値を受信する(すなわち、書き込みデータ値の各々のビットはそれぞれのデータラインで受信される)。代替実施形態では、データラインの数、Wはマスクグラニュラリティの整数倍である必要はない。
メモリ装置2210は、キーベースの書き込みマスキング動作を示すために拡大図で示されている。メモリ装置2210は、メモリ装置221の各々と同様に、記憶アレイ245、読み取り/書き込み回路243および比較回路241を含む。データライン218を介して受信された各書き込みデータ値は、比較回路241と読み取り/書き込み回路243に提供される。制御経路214を介して(または代わりにデータ経路216を介して)受信されたマスクキー158も、着信する書き込みデータ値と比較するための比較回路241に提供される。書き込みデータ値がマスクキー158にマッチするならば、比較回路241はマスク信号246をアサートして、読み取り/書き込み回路243が書き込みデータ値を記憶アレイ245に書き込むことを防止する。書き込みデータ値がマスクキーにマッチしないならば、比較回路はマスク信号246をデアサートして、読み取り/書き込み回路243がデータ値を記憶アレイ245に書き込むことをイネーブルにする。
なお図4を参照すると、メモリ装置2210−221Z-1は、ここでメモリランクと称されるアドレス可能なメモリ単位を集合的に形成する。メモリランク内の各メモリ装置は、アドレスが読み取りまたは書き込みアクセス用の制御経路214に供給されるとき、ランク内のすべてのメモリ装置が特定のアドレス(または特定のアドレスからオフセットされたアドレス)でアクセスされるように、同一の物理アドレス範囲を共有する。図4に示したように、1つ以上の追加ランクのメモリ装置は、全体の記憶容量を増すために記憶サブシステム203内に含めることが可能である。一実施形態において、各追加ランクのメモリ装置は、点線矢印214Aで示したように制御経路214に共通に結合され、また各追加のランクの各メモリ装置は、矢印218A0−218Az-1で示したようにデータ経路のそれぞれの部分に結合される。
図5は、図4の別個のメモリ装置221の各々を実装するために使用可能な模範的なメモリ装置260を示している。メモリ装置260は、制御インタフェース261、データインタフェース263、リクエスト論理265、比較回路241、読み取り/書き込み回路243、アドレス復号器267および記憶アレイ245を含む。記憶アレイ245は、ロウおよびコラムで配列された記憶セルを含み、各ロウの記憶セルは、それぞれのワードライン270を介してアドレス復号器に結合され、また各コラムの記憶セルは、それぞれのビットライン272を介して読み取り/書き込み回路243に結合される(または差動結合された記憶セルの場合の対のビットライン)。読み取りまたは書き込みアクセス中、アドレス274が制御インタフェース261を介してメモリコントローラから受信され、アドレス復号器267に供給される。アドレス復号器267は、選択されたワードライン270を活性化するためにアドレスを復号化し(すなわち、アドレスによって規定されたワードライン)、これによって、ワードラインに結合された記憶セルのロウに対する読み取りおよび書き込みアクセスをイネーブルにする。読取り動作中、選択されたワードライン270の活性化により、対応する記憶セル内のデータがビットライン272を介して読み取り/書き込み回路243内のセンス増幅器バンク(図5に図示せず)に供給される。センス増幅器バンクは、ビットライン272の比較的低いレベルの信号を論理レベル(例えば、相補的MOSレベル)に増幅し、また最終的にメモリコントローラに伝送するために、データインタフェース263内の1組の出力ドライバ(図5に図示せず)に増幅信号を出力する。
書き込み動作では、書き込みデータ値がデータインタフェース263内の受信回路271を介して受信され、読み取り/書き込み回路243内のそれぞれの書き込み運転者2730−273K-1にロードされる。書き込みストローブ信号248(WR)がリクエスト論理265によってアサートされると、書き込みドライバ273は、活性化されたワードライン270に結合された記憶セルのロウ内の記憶のために、書き込みデータ値をビットライン272に出力する。図5の実施形態では、書き込みドライバ2730−273K-1のそれぞれのイネーブル入力(EN)における書き込みストローブ信号248のアサートを選択的にブロックするために、論理ANDゲート2750−275K-1が設けられる。各ANDゲート275は、書き込みストローブ信号248を受信するように結合された非反転入力と、比較回路241からマッチ信号2520−252K-1のそれぞれの1つを受信するように結合された反転入力とを含む。ANDゲート2750を参照すると、マッチ信号2520がアサートされると(例えば、論理ハイ状態に)、ANDゲート2750の出力は、書き込みストローブ信号248が高くなるときでも低く留まり、これによって、書き込みドライバ2730が書き込みデータ値を記憶アレイ245に出力することが防止される。マッチ信号2520がデアサートされると、ANDゲート2750は、書き込みストローブ信号248を書き込みドライバ2730のイネーブル入力に通過させ、書き込みドライバ2730が書き込みデータ値を記憶アレイ245に出力することをイネーブルにする。
比較回路241は、いくつかの比較器2690−269K-1を含み、それらの各々は、AND論理ゲート2750−275K-1のそれぞれの1つの反転入力に結合された出力を有し、またそれらの各々は、リクエスト論理265から比較イネーブル信号(CE)246を、制御インタフェース261からマスクキー158を、またデータインタフェース263からそれぞれの書き込みデータ値を受信するように結合された入力を有する。マスクされた書き込み命令以外の書き込み命令がリクエスト論理265内で受信されると、リクエスト論理265は比較イネーブル信号246をデアサートして、比較器269がマッチ信号252をアサートすることをディスエーブルにし、これによって、書き込みストローブ信号248が、論理ANDゲート2750−275K-1を通して書き込みドライバ2731−273K-1のそれぞれのイネーブル入力に通過することをイネーブルにする。マスクされた書き込み命令がリクエスト論理265内で受信されると、リクエスト論理265は比較イネーブル信号246をアサートして、比較器2690−269K-1がマッチ信号2520−252K-1をそれぞれアサートすることをイネーブルにする。比較器269の各々は、マスクキー158と書き込みデータ値のそれぞれの1つとを比較し、またマスクキーおよび書き込みデータ値がマッチするならば、対応するマッチ信号252をアサートして、書き込みストローブ信号248が対応する書き込みドライバ273のイネーブル入力に通過することを防止する。この動作によって、マスクキー158にマッチする各書き込みデータ値は、記憶アレイ245内の記憶から除外される。
メモリ装置260は、多数の書き込みドライバ273、多数のANDゲート275および多数の比較器269を含むものとして示されるが、代わりに、メモリ装置260は、単一書き込みドライバ273、ANDゲート275と比較器269、およびデータインタフェース内の相応に低減した数の受信回路271を有してもよい。また、記憶アレイ245内の記憶セルは、少なくとも2つのデータ状態を表すことができる任意の記憶素子によって実装し得る。例えば、ダイナミックランダムアクセスメモリ(DRAM)装置では、記憶アレイ245の記憶セルの各々は、2つの可能なデータ状態を示すための充電または放電状態にあり得る容量性装置によって実装される(単一の容量性記憶素子を用いて、2つ以上のデータビットが表されるように、多数の異なる充電レベルを用いて、2つよりも多い状態の表示を達成することが可能である)。静的なランダムアクセスメモリ(SRAM)装置では、双安定性のラッチ回路を用いて、記憶アレイ245内に各記憶セルが実装される。非半導体記憶素子(例えば、磁気または光学媒体)のように、不揮発性の記憶セルも使用することが可能である(例えば、フラッシュ消去可能なプログラム可能リードオンリーのメモリ装置に使用されるようなフローティングゲートデバイス)。
記憶アレイ245への直接アクセスに関して、メモリ装置260内の読み取りおよび書き込みアクセスについて記述してきたが、代わりにまたは追加して、このようなアクセスをメモリ装置260内のページバッファに使用してもよい。例えば、DRAM装置の場合、記憶バッファ(例えば、ラッチのバンク)を使用して、当該のロウに向けられた引き続く読み取りまたは書き込みアクセスのために、記憶アレイ245のロウの内容を一時的に記憶することが可能である。このような装置では、マスクされた書き込み動作を記憶バッファならびにより大きな記憶アレイ245に向けることが可能である。
図6は、本発明の実施形態による図4のマスク論理207を示している。マスク論理207は、キー発生器291、マスクバッファ295、書き込みデータバッファ297およびデータ符号器299を含む。着信する書き込みデータブロックおよびマスクワード(すなわち、DATAおよびホストインタフェースを介して受信されるMASK)は、書き込みデータバッファ297およびマスクバッファ295に記憶され、また着信アクセスリクエスト(REQ)と共にキー発電機291にも供給される。キー発電機291は、書き込みデータ値と少なくとも同数の構成ビットを有するマスクキー158を発生する(すなわち、Y/Xビット、ここで、Yは書き込みデータブロックのビット数であり、Xはマスクワードのビット数であり、例えば、書き込みデータ値のY/Xビットの1つ以上がマスクキーとの比較から省略される実施形態では、マスクキーが書き込みデータ値よりも少ない構成ビットを有し得ることに留意されたい)、そして(すなわち、図4の回路ブロック209)データ符号器299にそしてリクエスト発生器にマスクキー158を出力する。一実施形態において、書き込みデータバッファ297およびマスクバッファ295は、1つ以上のロード動作により書き込みデータブロックおよびマスクワードがそれぞれロードされ、次に、シフト動作シーケンスで書き込みデータブロックおよびマスクワードの成分値をデータ符号器299に前進させるために使用される行列回路(すなわち、先入れ先出し記憶回路)である。例えば、一実施形態において、64バイトの書き込みデータブロックおよび対応する64ビットのマスクワードは、書き込みデータバッファ297およびマスクバッファ295にそれぞれロードされ、その後、4バイトおよび対応する4マスクビットの16の連続転送でデータ符号器299に出力される。データ符号器299への書き込みデータ値およびマスクビットの各転送後、新しいグループの書き込みデータ値およびマスクビットが書き込みバッファおよびマスクバッファのヘッドに存在し、かつデータ符号器299への転送のために利用できるように、書き込みデータバッファ297およびマスクバッファ295の内容が前進させられる。各連続転送動作でデータ符号器299に供給された書き込みデータ値のグループは、ここでチャンクと称される。一実施形態において、チャンクサイズ、R(すなわち、チャンク当たりの書き込みデータ値の数)は、メモリコントローラおよび記憶サブシステムとの間のデータ経路(例えば、図4の経路216)の幅の関数であり、また所定のチャンクの各書き込みデータ値がデータ経路に同時に出力されることをイネーブルにするように設定される。
なお図6を参照すると、データ符号器299は、1組のRセレクタ回路3010−301R-1を含み、それらの各々は、キー発生器291からマスクキー158を受信するように結合された第1のデータ入力と、書き込みデータバッファ297内のRリード記憶位置のそれぞれの1つから書き込みデータ値を受信するように結合された第2のデータ入力と、マスクバッファ295内のRリード記憶位置のそれぞれの1つからマスクビットを受信するように結合された選択入力とを有する。一例として、セレクタ回路3010を参照すると、選択入力で受信されたマスクビットがハイならば(例えば、論理1)、対応する書き込みデータ値はマスクされたデータ値であることが示され、またセレクタ回路3010は、書き込みデータ値の代わりにマスクキー158がデータポート(すなわち、図4の要素215)に出力されるように選択する。マスクビットがローならば、書き込みデータ値はアンマスクされたデータ値であり、セレクタ回路3010によってデータポートに出力される。このように、データ符号器299は、マスクキー158を着信書き込みデータブロック内のマスクされた各データ値に置き換えることによって、符号化データブロックを発生する。
図7は、図4のメモリコントローラを通して書き込みデータブロックを伝搬するための模範的な3ステージのパイプラインを示している。書き込みデータブロックWDB0−WDBnは、パイプラインPS1の第1ステージの連続間隔で受信される。次に、書き込みデータブロックはバッファされ、パイプラインPS2の第2ステージの連続間隔でマスクキーを発生するために使用される。最後に、パイプラインの第3のステージ、書き込みデータブロックは、符号化データブロック(CDB)に変換され、記憶サブシステムに伝送される。図7に示した実施形態では、パイプラインの3つのステージの各々の各動作は、段階的に異なる書き込みデータ値で同時に実行される。例えば、書き込みデータブロックWDB0が間隔0(INT0)で受信された後、書き込みデータブロックWDB1は、書き込みデータブロックWDB0に基づきマスクキー0の発生と同時に間隔1で受信される。同様に、書き込みデータブロックWDB2は、マスクキー1の発生と同時にまた符号化データブロック0の伝送と同時に間隔2で(WDB1に基づき)受信される(すなわち、マスクキー置換がデータ符号器で実行された後の書き込みデータブロック0)。代替実施形態では、パイプラインの各ステージは追加のパイプラインステージに分解し得る。
図8は、発明の実施形態による図6のキー発生器291の動作を示している。図8の動作はバイトマスキングについて記述しているが、他のマスクグラニュラリティを有するシステムにも適用可能である。上述のように、キー発生器は、着信書き込みデータブロック内のアンマスクされたバイトにマッチしないマスクキーを発生するように動作する。図8の実施形態では、キー発生器は、潜在的にマスクキーにマッチする書き込みデータブロックのアンマスクされたバイトの数がゼロに低減されるまで、マスクキーを1反復当たり1ビット反復修正することによってこの結果を達成する。潜在的にマスクキーにマッチするアンマスクされたバイトのグループは、ここでマッチプールと称され、またマスクされたすべてのバイトを書き込みデータブロックから除去することによって最初に311に確立される。すなわち、XバイトおよびマスクされたQバイト(Qは少なくとも1)を有する書き込みデータブロックを仮定すると、またマスクキー用に任意の初期値を仮定すると、マスクキーは、着信書き込みデータブロック内の潜在的にアンマスクされたすべてのバイトX−Qにマッチすることが可能である。313において、マスクキー内のビット位置を表すビット位置インデックスiがゼロに初期化され、マッチプール内のバイト数を表すマッチプールサイズjは、X−Qに初期化される。315において、マッチプールB0−Bj-1内の全バイトのi番目のビットは、加算されてタリーTを生成する。このように、動作315の第1の反復で、タリーは、マッチプールバイトの第1のビット位置の1の数を示す。317において、タリーはj/2と比較され、マッチプール内のより多くのバイトがi番目のビット位置に1を有するか、あるいはi番目のビット位置に0を有するかどうかを決定する。タリーがj/2より大きいならば、マッチプール内のバイトの大部分は、i番目のビット位置に1を有し、マスクキーのi番目のビット、MK[i]が319Aにおいて0に設定される。321Aにおいて、i番目のビット位置に1を有するすべてのバイトは、それらのバイトが今やマスクキーに確かにマッチしないので、マッチプールから排除される。323Aにおいて、マッチプールサイズjはタリーTの値だけ低減され、321Aにおける排除動作後にマッチプールに留まるバイト数を反映する。決定動作317に戻って、Tがj/2以下であるならば、マッチプールのバイトの少なくとも半分は、i番目のビット位置に0を有する。その場合、マスクキーのi番目のビットは、319Bにおいて1にセットされ、またi番目のビット位置に0を有するバイトは、それらのバイトが今やマスクキーに確かにマッチしないので、321Bにおいてマッチプールから排除される。323Bにおいて、マッチプールサイズjは、その数が、321Bにおける排除動作後にマッチプールに留まるバイト数を示すので、1のタリーTの値に設定される。325において、ビット位置インデックスiは、次のビット位置におけるタリーの準備のため増分される。327において、ビット位置インデックスは、マスクキー発生が完了したかどうかを決定するために最大値と比較される。一般に、少なくとも1つがマスクされた値であるX書き込みデータ値を有する書き込みデータブロックに関し、初期のマッチプールのユニークなビットパターンの最大数は、X−1である。したがって、マッチプール内のバイトの少なくとも半分が動作315−323の各反復において排除されるならば、マッチプールは、動作319−323のlog2(X)反復の後にゼロに低減されるように保証される(すなわち、マスクキーは書き込みデータブロック内のアンマスクされた書き込みデータ値にマッチしない)。例えば、書き込みデータブロックが、1つがマスクされる64バイトを含むならば、動作315−323のlog2(64)=6の反復の後、マスクキーはアンマスクされたデータバイトにマッチしない。したがって、ビット位置インデックスiが327においてlog2(X)に達したことが決定された場合、マスクキー発生動作は完了している。ビット位置インデックスがlog2(X)に達していないならば、315において更新されたビット位置インデックスの1のタリーから開始して、動作315−323の他の反復が実行される。
異なるマスクキービットが動作315−323の各反復において設定されるかまたはリセットされるので、アンマスクされた書き込みデータ値に対しマスクキーをユニークにする観点から、マスクキーの6ビットのみが重要である。マスクキーの残りのビット(例えば、バイトマスキング実施形態の残りの2ビット)は、ゼロまたは1でパッドし得る。また、マスクキーのユニークさを確立するために使用される6ビットは、マスクキーに割り当てられた合計ビット数内で任意のオフセットで生じる可能性がある。例えば、図8のバイトマスキング実施形態では、ビット位置インデックスは0〜5の代わりに2〜7に増分し得る。
311における書き込みデータブロックからのマスクされたデータ値の除去および動作313の引き続くX−Qの計算は、動作315−323の1つの余分の反復を実行する代替実施形態のキー発生実施形態で省略することが可能である。例えば、64バイトの書き込みデータブロックの場合、マスクキーの少なくとも7ビットが動作315−323のそれぞれの反復を通して割り当てられるならば、結果として得られるマスクキーは、すべての64バイトがユニークであるとしても、構成書き込みデータバイトにマッチしない。すなわち、書き込みデータブロックのバイトの少なくとも半分は、7つの反復の後に、動作315−323の各反復のマッチプールから排除されるので、7ビット値の128のパターンの間でユニークであることが保証されたパターンが獲得され、マスクキーが、書き込みデータブロックの64バイトに対して確かにユニークであることを意味する。
なお図8を参照すると、キー発生の他の代替実施形態では、マッチプールサイズjは、313−ALTにおいてXに初期化され(図8の点線の輪郭に図示)、マッチプールサイズは、315において決定されたタリーに従って323Aおよび323Bにおいて調整されるよりも、むしろ動作323−ALTにおいて半分にされる(すなわち、動作323−ALTは動作323Aおよび動作323Bに取って代わる)。この方法では、jは、マッチプールの実際のサイズよりも、むしろ動作315−321の任意の反復の後のマッチプール内の保証された最大数の書き込みデータ値を示す。キー発生のこの代替実施形態は、組み合わせ論理の実装に特に適しているが、この理由は、323−ALTの2による割算動作を、値jを1ビットだけ右にシフトすることによって達成でき、また313および323Aの算術演算が回避されるからである。
図9は、図8の動作313−ALTおよび323−ALTによって示された代替構成に従って動作するキー発生器350の実施形態を示している。説明目的のみのため、キー発生器350は、64バイトの書き込みデータブロックを受信するバイトマスキングメモリコントローラで動作すると考えられる。代替実施形態で、他のマスクグラニュラリティおよびブロックサイズを使用することが可能である。最初に、着信書き込みデータブロックのバイトがそれらのそれぞれのマスクビットの相補により論理ANDされ、マスク資格のバイトのプール、BYTE00&M00、BYTE01&M01、...、BYTE63&M63を発生する。この動作によって、マスク資格のバイトプールのマスクされた各データ値が強制的にゼロにされ、これは、図8のマスクされたバイトの除去動作311に対応する動作である。加算回路351は、マスク資格のバイトプール内の各バイトのビット0について、1のタリー(すなわち、1の合計)を発生するために使用される。書き込みデータブロックの少なくとも1つのバイトがマスクされるので、加算回路351によって発生された1のタリーは0〜63の範囲にあり得、したがって6ビット値TO[5:0]をもたらし、この場合、設定された場合、最も重要なビットT0[5]は、マスク資格のバイトプール内のバイトの半分超が、0番目のビット位置に1を有することを示す。したがって、マスクキーのビットゼロ、MK[0]は、インバータ353の動作によってT0[5]の相補に設定される。
マスクキーのビット1、MK[1]を生成するための回路は、2つの加算回路3610と3611と、除去回路360とを含む。除去回路は64のビット単位の除去回路E0を含み、その各々は、それぞれのマスク資格のバイトに対応し、マスクキーの0番目のビット、MK[0]の状態による2つの可能な除去結果に対応する2つの信号を発生する。例えば、MK[0]が0ならば、ビット0(b0)が1であるマスク資格のバイトプールのすべてのバイトは排除され、またMK[0]=1ならば、b0=0であるすべてのバイトが排除される。したがって、ビット単位の除去回路E0の各々は、b0=1ならば強制して0にされ、b0=0ならばb1に従って設定される第1の資格ビット1(qb10)と、b0=0ならば強制して0にされ、b0=1ならびにb1に等しい第2の資格ビット1(qb11)とを発生する。ブール表示法(ビット単位のAND動作を示す「&」)では、
qb10=b1&/b0;および
qb11=b1*b0。
加算回路3610は、マスク資格のバイトプールの各々のバイトについてqb10値を加算して、MK[0]が0である場合に生じる排除に対応する1のタリー、T10[4:0]を発生し、また加算回路3611は、マスク資格のバイトプールの各々のバイトについてqb10値を加算して、MK[0]が1である場合に生じる排除に対応する1のタリー、T11[4:0]を発生する。排除回路360で実行された排除のため、MK[0]の実際の状態に対応する1のタリーは、0〜31の範囲にあり、したがって5ビット値をもたらし、この場合、マスク資格のバイトプールの排除されない31の可能なバイトの半分超がビット1位置に1を有するならば、最も重要なビットが設定される。したがって、2つのタリー値、T10[4]およびT11[4]の最も重要なビット(MSB)は、MK[0]に従ってタリーMSBの1つを選択するマルチプレクサ362に入力される。次に、選択されたタリーMSBはインバータ363によって反転され、マスクキー値のビット1、MK[1]を形成する。このように、マスク資格のバイトプール内の可能な数の排除されないバイトの半分超についてb1=1であるならば、MK[1]は0に設定され、さもなければ、MK[1]は1に設定される。
マスクキーのビット2、MK[2]を発生するための回路は、マスクキーのビット1を発生するための回路と較べて以前に決定されたマスクキービットの2倍に依存し、したがって、2つの代わりに4つの加算回路3710−3713と、マスク資格のバイト当たり2よりもむしろ4つの資格ビット値を発生する排除回路370とを含む。より詳しくは、排除回路370は、ビット単位の64の排除回路E1を含み、その各々は、MK[1:0]の4つの可能な状態による4つの可能な除去結果に対応する4つの資格ビット値qb20−qb23を発生する。例えば、MK[1:0]=00ならば、b1=1およびb0=1であるマスク資格のバイトプールのすべてのバイトが排除され、MK[1:0]=01ならば、b1=0およびb0=1であるすべてのバイトが排除される、等々。したがって、ビット単位の排除回路D1の各々は、次式による4つの資格ビット値qb20−qb23を発生する。
qb20=b2&/b1&/b0;
qb21=b2&/b1&b0;
qb22=b2&b1&/b0;および
qb23=b2&b1&b0。
加算回路3710は、マスク資格のバイトプールの各々のバイトについてqb20値を加算して、MK[1:0]=00である場合に生じる排除に対応する1のタリー、T20[3:0]を発生し、また加算回路3711−3713は、同様に、MK[1:0]が01、10、および11である場合に生じる排除にそれぞれ対応する3つの別個の1のタリー、T21[3:0]−T23[3:0]を発生する。排除回路370で実行された排除のため、MK[1:0]の実際の状態に対応する1のタリーは、0〜15の範囲にあり、したがって4ビット値をもたらし、この場合、マスク資格のバイトプールの排除されない15の可能なバイトの半分超がビット2位置に1を有するならば、最も重要なビットが設定される。4つのタリー値、T20[3]−T23[3]の最も重要なビット(MSB)は、MK[1:0]値に従って4つのタリーMSBの1つを選択するマルチプレクサ372に入力される。次に、選択されたタリーMSBはインバータ373によって反転され、マスクキー値のビット2、MK[2]を形成する。このように、マスク資格のバイトプール内の可能な数の排除されないバイトの半分超についてb2=1であるならば、MK[2]は0に設定され、さもなければ、MK[2]は1に設定される。
図9の実施形態では、マスクキービットMK[3]、MK[4]およびMK[5]を発生するための回路は、各ステージにおいて、排除回路によって発生される加算回路の数および資格ビット値の数が2倍になることを除いて、MK[2]を発生するための回路と同様である。このように、MK[5]を発生するための回路は、32の加算回路3910−39131を含み、また排除回路390はビット単位の64の排除回路E5を含み、その各々は、MK[4:0]の32の可能な状態による32つの可能な除去結果に対応する32の資格ビット値qb50−qb531を発生する。加算回路3910−39131は、32の可能な排除結果に対応する32の別個の1のタリー、T50[0]−T531[0]を発生する(すなわち、MK[4:0]に従って)。排除回路390で実行された排除のため、MK[4:0]の実際の状態に対応する1のタリーは、0〜1の範囲にあり、したがって単一ビットのタリーをもたらし、このタリーは、マスク資格のバイトプールに残る可能な単一のバイトがビット5の位置に1を有するならば、1に設定される。32のタリービット、T50[0]−T232[0]は、MK[4:0]値に従って32のタリービットの1つを選択するマルチプレクサ392に入力される。次に、選択されたタリービットはインバータ393によって反転され、マスクキー値のビット5、MK[5]を形成する。このように、マスク資格のバイトプールに残る可能な単一のバイトについてb5=1ならば、MK[5]は0に設定され、さもなければ、MK[5]は1に設定される。上述のように、マスクキーは、任意の残りのビット位置(例えば、バイトマスキング実施形態のビット位置MK[6:7])の1または0でパッドし得る。代わりに、残りのビット位置は任意の値で残してもよい。
本発明の代替実施形態で、図9のキー発生器に対し多数の変更をなし得る。例えば、排除回路(360、370、...、390)の各ステージによって発生された資格ビット値を次のステージ排除回路に付与して、論理の冗長を低減することが可能である。例えば、回路D0によって発生された資格ビット値を回路D1に付与し得る。また、追加のマスクキービットを発生するための回路(例えば、MK[6]を発生するための回路)が設けられるならば、初期のマッチ資格のバイトプールを発生するために使用される論理AND演算を省略してもよい。さらに、マスクキーは、単一の反復によるよりも、むしろ多数反復のビット発生により発生し得る。一般に、Nビットマスクキーのために、マスクキー発生器は、1反復当たりある数のマスクキービットKを発生し、ここで、KはN以下であり、計算されたすべてのキービットを引き続く各反復に送ることが可能である(すなわち、1つよりも多い反復が必要な場合)。例えば、N=6およびK=1ならば、マスクキー発生器は、単一の加算回路(例えば、図9の加算回路351)を用いて1反復当たり1つのマスクキービットを発生し、これによって、6つの反復でマスクキーを完了する。N=6およびK=3ならば、マスクキー発生器は、7つの加算回路(すなわち1+2+4)を用いて1反復当たり3つのマスクキービットを発生し、これによって、2つの反復でマスクキーを完了する。図9は、N=6およびK=6の場合に、63の加算回路および単一の反復を用いてすべてのマスクキービットを発生する実施形態を示している。一般に、キー発生回路の数とマスクキー発生の待ち時間との間には妥協が存在する。したがって、特定の用途の目標および制約に従って、事実上任意の値のNおよびKについてマスクキー発生器をカスタム化することができる。マスクキーを発生するための組み合わせ論理回路が図9に示されているが、代わりに、一般目的のプロセッサ、特殊目的のプロセッサ、専用の状態機械または他の状態ベースの回路を使用して、マスクキーを発生することが可能である。より一般的には、書き込みデータブロック内のアンマスクされたデータ値にマッチしないマスクキーを発生するための任意の回路を本発明の精神と範囲から逸脱することなく使用し得る。
書き込みデータ値のシリアル化転送
図10は、図4のメモリコントローラと記憶サブシステムとの間の32ラインのデータ経路にわたってバイトサイズの書き込みデータ値を転送するための模範的なタイミング図を示している。図示したように、16の伝送間隔の各々の間にデータ経路にわたって4バイトが並列に転送され、これによって、16の伝送間隔にわたって完全な64バイトの書き込みデータブロックの転送が達成される。図4と図5を参照して説明したように、マスクキーは、記憶サブシステムの構成メモリ装置内に受信された各書き込みデータ値と比較される。このように、図10の並列データ転送スキームが使用される場合、各メモリ装置は、一般に、書き込みデータ値のサイズと少なくとも同一幅(すなわち、少なくともマスクグラニュラリティと同一幅)のデータインタフェースを必要とする。したがって、図11に示したように、図10の制約(すなわち、32ラインのデータ経路およびバイトマスクグラニュラリティ)に従って単一ランクのメモリ装置401で達成できる最大記憶容量は、4×SCビットであり、ここで、SCはメモリ装置401の所定の発生の最大記憶容量である。より一般的には、単一ランクのメモリ装置の最大記憶容量は、SC×(DPW)/(MG)であり、ここで、DPWはメモリコントローラと記憶サブシステムとの間のデータ経路の幅であり、MGはマスクグラニュラリティである。記憶サブシステムの容量を増すために、追加のランクのメモリ装置を加えることが可能であるが、信号ドロップの増加は、一般に、データ経路の信号性能の悪化をもたらす。
図12は、記憶サブシステムのランク当たりの記憶容量の実質的な増加をイネーブルにする本発明の代替実施形態のデータ転送スキームを示している。図示したように、並列のデータ経路にわたる転送書き込みデータ値よりも、むしろ各書き込みデータ値が、単一のデータラインを介してシリアルに記憶サブシステムに転送される。例えば、伝送間隔0の間に、データ経路のそれぞれのラインを介して32バイト(B0−B31)の各々のビット0が記憶サブシステムに転送される。具体的にデータラインDQ00を参照すると、バイトB0のビット0−7は、それぞれの伝送間隔0〜7の間にデータラインDQ00にわたってシリアルに転送される。同様に、バイトB1−B31は、伝送間隔0−7の間にデータラインDQ01−DQ31にわたってシリアルにそれぞれ転送される。伝送間隔8−15の間に、書き込みデータブロックB32−B63の残りのバイトは、データラインDQ00−DQ31にわたってシリアルに転送される。このように、書き込みデータ値をシリアルに転送することによって、記憶サブシステム内の各メモリ装置のデータインタフェースを単一のビットと同程度に狭くし、32のデータラインの対応する1つに結合することが可能である(より多いかまたはより少ないデータラインを代替実施形態に使用し得る)。図13に示したように、このような構成により、記憶サブシステムのランク毎に32のSCサイズのメモリ装置403を使用することがイネーブルにされ、記憶サブシステムのランク当たりの記憶容量が書き込みデータ値のサイズだけ有効に増大される。例えば、32ラインのデータ経路を有するバイトマスキングメモリシステムでは、記憶サブシステムのランク当たりの記憶容量は、図11の4×SC容量から図13の32×SC容量に、8のファクタだけ増大される。ランク当たりの記憶容量の増加は、マスクグラニュラリティが大きくなるとより顕著になる。
図14は、本発明の実施形態によるシリアル転送メモリコントローラ420のデータポート421を示している。データポート421は、1組のK出力ドライバ、4250−425K-1、および対応する1組のKシリアル化回路4230−423K-1を含む。それぞれのN−ビット書き込みデータ値は、伝送クロック信号422、TCLKのN番目のサイクル後に常に、シリアル化回路423の各々にロードされ、次に、TCLKの次のNサイクルの各々の間に、シリアル化回路423から一度に1ビットだけシフトされる。この構成によって、書き込みデータ値が所定のシリアル化回路423からシフトされた後、利用可能ならば、シリアル化回路に新しい書き込みデータ値が再ロードされる。出力ドライバの各々は、それぞれのシリアル化回路の出力426に結合され、書き込みデータ値を形成するシリアルビットストリームを受信する。図14の実施形態では、各々の出力ドライバ4250−425K-1は、伝送クロック信号422の各サイクルの間に、データラインDQ0−DQK-1の対応する1つに書き込みデータ値の構成ビットを伝送する。代わりに、出力ドライバ425は、シリアル化回路423内のシフト動作を制御するために使用されるクロック信号から位相オフセットされるクロック信号に応答して伝送することが可能である。また、一実施形態において、シリアル化回路423および出力ドライバ425は、伝送クロック信号422の両方のエッジに応答し、書き込みデータ値のNビットは、伝送クロック信号422のN/2のクロックサイクル後に所定のシリアル化回路からシフトされ、また書き込みデータ値の2ビットは、伝送クロック信号422のサイクル毎に、対応するデータラインに交互に伝送される。さらに他の実施形態では、出力ドライバ425は、単一の信号伝送で2つ以上のビットを搬送できる(例えば、4つの可能な信号レベルの1つを伝送して、1伝送当たり2ビットの記号を搬送できる)マルチレベルの出力ドライバである。このような実施形態では、出力ドライバ425をクロックするために使用されるクロック信号は、シリアル化回路423内のシフト動作を制御するために使用されるクロック信号よりも低い周波数(例えば、2ビットの記号伝送の場合の周波数の半分)で操作することが可能である。代わりに、各シフト動作において各シリアル化回路423から2ビットを出力してもよい。
図15は、図14のデータポート421内で使用可能なシリアル化回路430の模範的な実施形態を示している。シリアル化回路430は、シフトレジスタ433およびモジュロNカウンタ431を含み、その各々は、伝送クロック信号422(TCLK)を受信するように結合される。モジュロNカウンタ431は、TCLKの各立ち上がりおよび/または立ち下がりエッジに応答して増分され、N−1の0からターミナルカウントを繰り返してカウントし、ターミナルカウントに達したときにロード信号432をシフトレジスタ433にアサートする。シフトレジスタは、ロード信号432のアサートに応答して、書き込みデータ値434のNビットをシフトレジスタ内の対応する1組のN記憶素子にロードする。書き込みデータ値の0番目のビットは、シフトレジスタ433のヘッド記憶素子435に記憶され、信号ライン426に出力される(すなわち、出力ドライバによって受信される)。書き込みデータ値434がシフトレジスタ433にロードされた後、書き込みデータ値の構成ビットは、TCLKの立ち上がりおよび/または立ち下がりエッジに応答して、一度に1ビットだけ前方にシフトされる(すなわち、ヘッド記憶素子435に向かってシフトされる)。この装置によって、書き込みデータ値の各ビットは、次にシフトレジスタ433のヘッド記憶素子435にシフトされ、信号ライン426に出力される。代替実施形態では、書き込みデータ値434の最も重要なビットを最初にシフトアウトしてもよい。また、マルチレベルの出力ドライバの場合のように、一度に1つよりも多いビットを出力ドライバに供給するために、2つ以上のシフトレジスタ433を設けることが可能である。
図16は、本発明の実施形態によるシリアル転送メモリ装置440を示している。メモリ装置440は、制御インタフェース261、データインタフェース441、記憶アレイ245、リクエスト論理265、比較器269、論理ANDゲート275および書き込みドライバ273を含む。特に図示しないが、書き込みドライバ273および論理ゲート275は、ビットライン272を介して記憶アレイに結合されたセンス増幅器のバンクを含む読み取り/書き込み回路の部分を形成する。制御インタフェース261、記憶アレイ245、リクエスト論理265、アドレス復号器267、比較器269、書き込みドライバ273および論理ANDゲート275は、一般に、図5を参照して上述したように動作するが、データインタフェース441は、単一のデータラインDQを介して書き込みデータ値の受信をイネーブルにするように修正される。より詳しくは、データインタフェース441は受信回路271と非シリアル化回路443とを含み、その各々は、それぞれのクロック信号442(RCLK)を受信するように結合される。受信回路は、受信クロック信号442の各立ち上がりおよび/または立ち下がりエッジに応答して信号ライン271をサンプリングして、サンプリングされたビットを非シリアル化回路443に次々に出力する。一実施形態において、非シリアル化回路443は、受信クロック信号442のそれぞれの遷移に応答してビット毎にロードされるシフト回路である。すなわち、受信回路271がサンプリングされた各ビットを出力するとき、ビットは非シリアル化回路443にシフトされ、メモリコントローラによってシリアル化された書き込みデータ値を再構築する。マルチレベルの信号の実施形態(すなわち、受信回路271によって受信された各記号は1ビットよりも多い情報を表す)では、受信回路271は、受信された1つの記号当たり2つ以上のビットを出力することが可能であり、2つ以上のビットが、受信クロック信号442の各遷移に応答して非シリアル化回路443にストローブされる。受信クロック信号442のすべてのN遷移(すなわち、立ち上がりエッジ、立ち下がりエッジ、またはその両方に生じる各遷移)の後、完全な書き込みデータ値が非シリアル化回路443にシフトされ、またマスクされた書き込み動作の場合、リクエスト論理265は比較イネーブル信号246をアサートして、比較器269が書き込みデータ値と、制御インタフェース261を介して受信されたマスクキー242とを比較することをイネーブルにする。マスクキーおよび書き込みデータ値がマッチするならば、書き込みデータ値はマスクされたデータ値であり、比較器269はマスク信号252をアサートして、書き込みデータ値の記憶を防止する。すなわち、図5を参照して記述したように、アサートされたマスク信号252は、リクエスト論理によって発生された書き込みストローブ信号248が、書き込みドライバ273のイネーブル入力によってアサートされることを防止する。非シリアル化回路443からの書き込みデータ値がマスクキー242にマッチしないならば、比較器269はマスク信号252をアサートせず、また書き込みストローブ信号248は論理ANDゲート275を介して書き込みドライバ273のイネーブル入力に通過させられ、これによって、書き込みドライバ273が書き込みデータ値を記憶アレイ245内に記憶することをイネーブルにする。
なお図16を参照すると、受信回路271、非シリアル化回路443、比較器269、論理ゲート275および書き込みドライバ273は、メモリ装置440内の書き込みデータチャンネルを形成する。図16の実施形態には、1つのみのこのような書き込みデータチャンネルが示されているが、代わりに、多数の書き込みデータチャンネルを設けてもよく、各書き込みデータチャンネル用の受信回路271は、それぞれの外部データラインDQに結合される。
キー選択の実施形態
図4〜図9および図14〜図16を参照して記述した模範的なメモリシステムでは、メモリコントローラが、各着信書き込みデータブロック用のマスクキーを発生し、次に、マスクキーを記憶サブシステムに転送する。バイトマスクグラニュラリティを有する64バイトの書き込みデータブロックの場合、64の別個のマスク信号(すなわち、図1を参照して記述した別個のマスク信号)の代わりに8ビットのマスクキーの転送により、メモリコントローラと記憶サブシステムとの間に転送されるマスク情報量の8:1の低減が達成される。メモリコントローラと記憶サブシステムとの間のインタフェース全体に関して、書き込みデータブロック当たり56ビットの帯域幅の節減が達成される。
ここでキー選択の実施形態と称される本発明の代替実施形態では、より大きな帯域幅節減およびマスク情報転送のより大きな低減さえも達成される。キー選択の実施形態では、メモリコントローラは、所定のマスクキーの表からマスクキーを選択し、次に、選択されたマスクキー(ここでキーセレクタと称される)を表す値を記憶サブシステムに供給する。メモリコントローラは、選択されたマスクキーを使用して、符号化データブロックを発生し、次に、図10と図12を参照して記述した並列転送またはシリアル転送モードで、符号化データブロックを記憶サブシステムに出力する。記憶サブシステムを形成する複数のメモリ装置の各々(または1つのメモリ装置)は、所定のマスクキーのテーブルを含み、メモリコントローラから受信されたキーセレクタに従って所定のキーの1つを選択する。次に、各メモリ装置は、図5と図16を参照して上述した方法で選択されたマスクキーを使用して、マスクされたデータ値を識別して、記憶サブシステムの記憶からマスクされたデータ値を除外する。
キーセレクタはマスクキー値(マスクキーはマスクグラニュラリティに従って寸法決めされる)よりもはるかに少ないビットを有することがあるので、マスクキーの代わりに記憶サブシステムへのキーセレクタの転送により、メモリコントローラと記憶サブシステムとの間の経路の帯域幅の追加の節減を達成し、マスク情報伝送のさらなる低減を達成することが可能である。例えば、一実施形態において、キーセレクタは、2つの所定のマスクキーの間で選択するために使用される単一ビットの値である。例えば、8ビットのマスクキーの代わりにキーセレクタを転送することにより、メモリコントローラから記憶サブシステムに転送されるマスクキー情報の8:1の低減が達成される。図1を参照して記述した従来技術システムのメモリコントローラから記憶サブシステムに転送される64のマスクビットと比較して、単一ビットのキーセレクタ値を転送することにより、マスク情報伝送の64:1の低減が達成される。
図17は、本発明の実施形態によるキー選択メモリコントローラの動作を示している。説明のためバイトマスキンググラニュラリティが前提とされるが、代替実施形態で、他のマスクグラニュラリティを使用することが可能である。475において、X構成バイトを有する書き込みデータブロックがホストインタフェースを介して受信される。477において、第1の所定のマスクキー、マスクキーAが書き込みデータブロック内のアンマスクされたバイトの各々に対し比較される。アンマスクされたバイトのいずれもマスクキーAにマッチしないならば(決定ブロック479)、481において、マスクキーAが、選択されたマスクキー(SMK)であるように割り当てられ、キーセレクタ(KSEL)がマスクキーAに対応する値に設定される(この例ではKSEL=0)。決定ブロック479に戻って、書き込みデータブロックのアンマスクされたバイトのいずれか1つがマスクキーAにマッチすると決定された場合、487において、アンマスクされたバイトの各々が第2の所定のマスクキー、マスクキーBと比較される。書き込みデータブロックのアンマスクされたバイトのいずれもマスクキーBにマッチしないならば(決定ブロック489)、491において、マスクキーBが、選択されたマスクキーであるように割り当てられ、キーセレクタが対応する値に設定される(この例ではKSEL=1)。
所定のマスクキーの少なくとも1つが、書き込みデータブロックのアンマスクされたバイトのいずれにもマッチしないと決定された場合、483において、選択されたマスクキーを書き込みデータブロック内のマスクされた各バイトに置き換えることによって、符号化データブロックが発生される。485において、符号化データブロックおよびキーセレクタは記憶サブシステムに伝送される。
所定のマスクキーのいずれも、書き込みデータブロックのアンマスクされたバイトに対しユニークでないと決定された場合(すなわち、各マスクキーが少なくとも1つのアンマスクされたバイトにマッチし、479と489において肯定的な決定をもたらした場合)、ここでマスク抵触と称される状態が生じている。図17の実施形態では、マスク抵触は、2相のマスク書き込み動作を通して解決される。2相のマスク書き込み動作において、第1の相のマスク書き込み動作がマスクキーAを使用して実行され、また第2の相のマスク書き込み動作がマスクキーBを使用して実行される。すなわち、493において、マスクキーAが、選択されたマスクキーであるように割り当てられ(かつキーセレクタは0に設定され)、また動作483と485が実施されて(495の円形状の「A」によって示した)、第1の相のマスクされた書き込み動作を完了し、次に497において、マスクキーBが、選択されたマスクキーであるように割り当てられ(かつキーセレクタは1に設定され)、また動作483と485が2回目に実施されて(499に示した)、2相のマスクされた書き込み動作の第2の相を完了する。マスク抵触のため、マスクキーAにマッチする1つ以上のアンマスクされたバイトは、2相のマスクされた書き込みの第1の相の間に偶然マスクされるが、第2の相の間に書き込まれる。
図18は、模範的な書き込みデータブロック(WDB)および対応するマスクワード(MSK)に適用される2相のマスクされた書き込み動作を示している。例示目的のみのため、バイトマスクグラニュラリティが仮定され、またマスクキーAとBは、それぞれ、16進値55(2進値01010101)およびAA(2進値10101010)であると仮定される。マスク抵触が、示したシナリオに存在するが、この理由は、書き込みデータブロックが、マスクキーAおよびマスクキーBの両方にマッチするアンマスクされた値(すなわち、それぞれ55およびAAのアンマスクされた値)を含むからである。したがって、マスクキーAは、2相のマスクされた書き込み動作の第1の相に書き込まれる符号化データブロックCDB−Aを発生するために選択されたマスクキーであるように割り当てられる。符号化データブロックCDB−Aの影付きの「55」入力によって示されるように、マスクキーAは、書き込みデータブロック内のマスクされたバイト(すなわち、12、70およびFF)に置き換えられて、符号化データブロックCDB−Aを発生する。また、符号化データブロックCDB−Aの太字ボックス511によって示されるように、書き込みデータブロックのアンマスクされた55の値は、偶然に、マスクキーAにマッチし、したがって、記憶サブシステム内のマスクされたデータ値のように処理される。図19は、2相のマスクされた書き込み動作の各相の前後に記憶サブシステムの内容を示している。例示目的のため、マスクされた書き込み動作が指示される記憶領域は、ゼロ値の入力を含むと仮定される。したがって、2相のマスクされた書き込み動作の第1の相の後、すべての記憶位置は、対応する書き込みデータバイトがマスクキーAにマッチする位置を除いて、書き込みデータバイトで更新される。したがって、元の書き込みデータブロックのアンマスクされた55の値に対応する記憶位置515は、ホストによって要求された書き込み動作の意図が値55を記憶位置515に書き込むことであったとしても、2相のマスクされた書き込み動作の第1の相で更新されない。
再び図18を参照すると、2相のマスクされた書き込み動作の第2の相において、影付きのAA値の入力によって示されるように、マスクキーBは、書き込みデータブロックWDB内のマスクされた各バイトに置き換えられる。太字ボックス513によって示されるように、アンマスクされたAA値は、偶然に、マスクキーBにマッチし、したがって、記憶サブシステム内のマスクされたデータ値のように処理される。図19を参照すると、2相のマスクされた書き込み動作の第2の相において、すべての記憶位置は、対応する書き込みデータバイトがマスクキーBにマッチする位置を除いて、書き込みデータバイトで更新される。アンマスクされた55の値は、今や、マスクキー値にマッチしないので、アンマスクされた55の値は、本来意図されていた位置515に書き込まれる。アンマスクされたAA値が偶然にマスクキー値にマッチし、また2相のマスクされた書き込み動作の第2の相において書き込まれないとしても、アンマスクされたAA値は、第1の相の書き込み動作においてすでに書き込まれた。このように、第1および第2の相の書き込み動作は、互いに相補して、2相のマスクされた書き込み動作の相手部分の相についてマスクキー値に偶然マッチするアンマスクされた値の記憶を達成する。
2相のマスクされた書き込み動作の実行は、マスク抵触を解決するために有効であるが、1つの代わりに記憶サブシステムに対する2つのマスクされた書き込みアクセスを必要とする望ましくない特性を有することを指摘したい。したがって、2相のマスクされた書き込み動作の周波数がより高くなると、メモリシステムの有効なメモリ帯域幅はそれだけ低くなる。2相のマスクされた書き込み動作の周波数を低減するための1つの直接の方法は、マスクキーが選択される所定のマスクキーの数を増すことである。統計上の問題として、1組のRの所定のマスクキーおよびN構成ビットのユニークなパターンを各々が有するX書き込みデータ値の母集団を仮定すると、各々の追加のマスクキーは、(X−R)/(2N−R)のファクタだけマスク抵触の可能性を小さくする。例えば、64の書き込みデータ値(1つはマスクされた)、バイトマスクグラニュラリティ、および2つの所定のマスクキーの母集団を有するシステムでは、母集団のマスク抵触の可能性は(63/256)*(62/255)=約6%である。2つの追加の所定のマスクキーが設けられる場合、マスク抵触の可能性は、(63/256)*(62/255)*(61/254)*(60/253)=約0.34%に低減される。Pが所定のマスクキーの数を示す場合、キーセレクタに必要な構成ビットの数はlog2(P)である。一般に、log2(P)がマスクグラニュラリティよりも小さい限り、帯域幅の節減がマスクキー転送実施形態にわたって達成される。
マスク抵触の可能性を低減するための他の技術は、書き込みデータ母集団内の公知または予想されるバイアスに従って所定のマスクキーの組を選択することを含む。例えば、16進値FFおよび00を使用して、真および偽のブール状態を示すシステムでは、所定のマスクキーの各々についてFFおよび00以外のパターンを用いて、マスク抵触の可能性を低減することが可能である。マスク抵触を低減する他の方法は、書き込みデータブロックを2つ以上のサブブロックに分割し、これによって、マスク抵触の確率式(X/2N*((X−1)/2N−1))*...*((X−R)/(2N−R))において母集団サイズXを低減することである。例えば、X>>Rと仮定すると、書き込みデータブロックをNのサブブロックに分割することにより、マスク抵触の確率は約Nだけ低減される。
図20は、本発明の実施形態によるキー選択マスク論理回路550を示している。マスク論理回路550は、キーテーブル551、キー選択回路553、マスクバッファ555、書き込みデータバッファ557およびデータ符号器を含む。マスクバッファ555、書き込みデータバッファ557およびデータ符号器299は、一般に、図6を参照して上述したように動作し、着信マスクワード(MASK)および書き込みデータブロック(DATA)に基づき符号化データブロックを発生する。しかし、キー発生器からマスクキーを受信する代わりに、データ符号器299は、キー選択回路553によってマスクテーブル551から選択された所定のマスクキーを受信する。すなわち、キー選択回路553は、選択されたマスクキー554(SMK)としてテーブル551から所定のマスクキーの1つを選択し、符号化データブロックを発生するために、選択されたマスクキー554をデータ符号器に供給する。キー選択回路553はまた、選択されたマスクキー554に対応するキーセレクタ552を発生し、キーセレクタ552をリクエスト発生器に出力する。このように、リクエスト発生器は、マスクキーの代わりにキーセレクタ552を受信して送る。
一実施形態において、キーテーブル551は、システム初期化中にホスト供給のマスクキーでプログラミングされるプログラム可能な記憶回路のバンクを含む。プログラム可能な記憶回路は、揮発性または不揮発性の記憶素子を用いて実装可能であり、不揮発性の記憶素子の場合、代わりに、システム生産中または構造設定操作時にプログラミングしてもよい。代替実施形態では、キーテーブル551は、1組のハードウェア組込のマスクキーを含む(例えば、専用の回路設計を通して、またはヒューズ溶断プログラミング操作のような一回限りのプログラム可能な操作を通して達成される)。また、キーテーブル551は、図20の2つの所定のマスクキー(MKAとMKB)を含むものとして示されているが、キーテーブル551は、代替実施形態では、2つよりも多い所定のマスクキーを含んでもよい。
キー選択回路553は、ホストインタフェースからマスクワードおよび書き込みデータブロックを、ならびにキーテーブル551から所定のマスクキーを受信するように結合される。一実施形態において、キー選択回路553は、組み合わせロジックによって実装される。組み合わせロジックはキーテーブル551の所定のマスクキーの各々を書き込みデータブロックのアンマスクされた書き込みデータ値と比較し、所定のマスクキーの少なくとも1つが、アンマスクされた書き込みデータ値に対しユニークならば、選択されたマスクキー554であるようにユニークな所定のマスクキーを選択するキーセレクタを発生する。所定のマスクキーのいずれも、アンマスクされた書き込みデータ値に対しユニークでないならば(すなわち、キーテーブル551の各マスクキーが少なくとも1つのアンマスクされた書き込みデータ値にマッチする)、キー選択回路553は、キーテーブル551から第1のデフォルトマスクキー(例えば、マスクキーA)を選択し、抵触信号556をアサートして、マスク抵触状態を示す。図20の実施形態では、抵触信号556は、マスクバッファおよび書き込みデータバッファに供給され、2相のマスクされた書き込み動作の第1および第2の相を通して、それらのバッファの内容を維持する。すなわち、抵触信号556は、マスクバッファ555および書き込みデータバッファ557の内容が着信マスクワードおよび書き込みデータブロックによって上書きされるのを防止するようにアサートされる。追加してまたは代わりに、抵触信号556をメモリコントローラ内の他の制御回路に供給し、制御回路をイネーブルにして、マスクバッファおよび書き込みデータバッファが、2相のマスクされた書き込み動作の完了前に上書きされることを防止することが可能である。このような制御回路はまた、ビジー信号を出力して、メモリコントローラが書き込みデータブロックを一時的に受信できないことをアクセスリクエスタに知らせることが可能である。
なおマスク抵触状態を参照すると、第1のデフォルトマスクキーは、2相のマスクされた書き込み動作の第1の相のために選択されたマスクキー554としてデータ符号器299に供給される。符号化データブロック(第1のデフォルトマスクキーを用いて発生される)および選択されたマスクキー554が記憶サブシステムに出力された後、第2のデフォルトマスクキー(例えば、マスクキーB)がキー選択回路によって選択されて、選択されたマスクキーとしてデータ符号器に付与される。次に、第2のデフォルトマスクキーが使用され、2相のマスクされた書き込み動作の第2の相のために符号化データブロックを発生する。
図21は、図20のキー選択回路553によって実装された模範的な状態図565を示している。当初、キー選択回路553は状態556にあり、論理ローキーセレクタおよび抵触信号(すなわち/KSEL、/CNFL)を出力する。マスクキーA(MKA)が着信書き込みデータブロック内のアンマスクされたデータ値にマッチしない限り(すなわち、MKA<>WDB)、キー選択回路は状態556に留まる。マスクキーAが着信書き込みデータブロック内の1つ以上のアンマスクされたデータ値にマッチし、またマスクキーBが書き込みデータブロック内のアンマスクされたデータ値のいずれにもマッチしないならば(すなわち、(MKA=WDB)AND(MKB<>WDB))、キー選択回路は状態557に移行する。状態557において、抵触信号はローに留まるが、キーセレクタはハイになり、符号化データブロックの発生に使用するためのマスクキーBを選択する。次の書き込みデータブロックが受信されると、マスクキーAがアンマスクされたデータ値のいずれにもマッチしないならば、キー論理は状態556に戻る。マスクキーAが書き込みデータブロック内のアンマスクされたデータ値にマッチするが、マスクキーBがマッチしないならば、キー選択回路は状態557に留まる。状態556または557にかかわらず、マスクキーAおよびマスクキーBの各々が着信書き込みデータブロック内のアンマスクされたデータ値にマッチすると決定されたならば、マスク抵触が生じており、キー選択回路は状態558に移行する。キーセレクタは、2相のマスクされた書き込み動作の持続時間の間、状態558に留まり、次に、マスク抵触が次の書き込みデータブロック内で検出されないならば、状態556または557に移行する(すなわち、マスクキーAが書き込みデータブロック内のアンマスクされた書き込みデータ値にマッチするならば、状態556に移行し、さもなければ状態557に移行する)。
図22は、本発明の実施形態による図20のキー選択回路553を示している。キー選択回路553は、マルチプレクサ571および選択信号発生器575を含み、その各々は、キーテーブルから所定のマスクキーを受信するように結合される。4つの所定のマスクキーMK0−MK3は、図22の模範的な実施形態に想定されるが、代わりに、より多いかまたはより少ないマスクキーを使用してもよい。選択信号発生器575は、入力として書き込みデータブロックおよびマスクワードを受信し、また図21を参照して記述したキーセレクタ552および抵触信号556を発生する。図22の実施形態では、キーセレクタ552は、2ビットの信号KSEL[1:0]であり、またマルチプレクサ571の選択入力部に供給されて、選択されたマスクキー554(SMK)として出力されるように4つの所定のマスクキーの1つを選択する。
選択信号発生器575は、Xマッチ検出回路5790−579X-1(MD)、論理ANDゲート5850−5853、および符号器587の組を含む。マッチ検出回路579の各々は、書き込みデータブロックのX書き込みデータ値のそれぞれの値およびマスクワードの対応するマスクビットと共に、キーテーブルから4つの所定のマスクキー値MK0−MK3を受信するように結合される。マッチ検出回路579の各々は、所定のマスクキーMK0−MK3に対応するそれぞれの組の資格マッチ信号(すなわち、QM00-3、QM10-3、...、QM(X−1)0-3)を発生し、各々の資格マッチ信号は、対応するマスクキーがアンマスクされた書き込みデータ値にマッチするかどうかを示す。一例として、マッチ検出回路5790の詳細図を参照すると、各々の所定のマスクキーは、それぞれ1つの比較器581で、書き込みデータ値WD0(すなわち、着信書き込みデータブロックの書き込みデータ値)と比較される。所定の比較器581によって受信された書き込みデータ値と所定のマスクキーとがマッチするならば、比較器は、マッチライン582の対応する1つに論理ハイマッチ信号を出力する。マッチライン582は、それぞれのANDゲート583の入力に結合され、ANDゲートの各々は、マスクビットM0を受信するように共通に結合された反転入力を有する。したがって、ANDゲート583の各々は、対応する比較器581によってマッチが信号伝送され、また書き込みデータ値がアンマスクされる(すなわち、マスクビットM0がローである)ならば、論理ハイ状態のそれぞれの資格マッチ信号を出力する。分析形態で表すと、図22の模範的な実施形態のXマスク検出回路5790−579X-1(MD0−MDX-1)の各々は、次のような4つの資格マッチ信号を出力する。
MD0:QM00:(WD0=MK0)&/M0
QM01:(WD0=MK1)&/M0
QM02:(WD0=MK2)&/M0
QM03:(WD0=MK3)&/M0

MD1:QM10:(WD1=MK0)&/M1
QM11:(WD1=MK1)&/M1
QM12:(WD1=MK2)&/M1
QM13:(WD1=MK3)&M1



MDX-1:QM(X−1)0:(WD(X−1)=MK0)&/M(X−1)
QM(X−1)1:(WD(X−1)=MK1)&/M(X−1)
QM(X−1)2:(WD(X−1)=MK2)&/M(X−1)
QM(X−1)3:(WD(X−1)=MK3)&/M(X−1)
なお図22を参照すると、資格信号QM00、QM10、...、QM(X−1)0のすべては、マスクキーMK0に対応し(各々は、MK0が書き込みデータブロック内のそれぞれのアンマスクされたデータ値にマッチするかどうかを示し)、ANDゲート5850のそれぞれの反転入力に供給される。このように、MK0に対応するすべての資格マッチ信号がローならば、ANDゲート5850の出力(すなわち、S0)はハイであり、MK0が書き込みデータブロック内のアンマスクされたデータ値のいずれにもマッチしないことを示す。同様に、資格マッチ信号QM01、QM11、...、QM(X−1)1のすべては、MK1に対応し、ANDゲート5851の反転入力に供給され、資格マッチ信号QM02、QM12、...、QM(X−1)2のすべては、MK2に対応し、ANDゲート5852の反転入力に供給され、また資格マッチ信号QM03、QM13、...、QM(X−1)3のすべては、MK3に対応し、ANDゲート5853の反転入力に供給される。このように、対応するマスクキーMK0−MK3が書き込みデータブロック内のアンマスクされたデータ値のいずれにもマッチしないならば、ANDゲート5850−5853の各々は論理ハイ信号を出力する。ANDゲート5850−5853の出力(すなわち、信号S0−S3それぞれ)は、符号器587に供給され、そこで、キーセレクタ552および抵触信号556の状態を設定するために使用される。一実施形態において、符号器587は、信号S0−S3の対応する1つの出力がハイである最も低い番号付けのマッチキーに対応するキーセレクタ552を発生する。すなわち、S0がハイならば、KSEL[1:0]は00に設定されてMK0を選択し、S0がローで、S1がハイならば、01に設定されてMK1を選択し、S0がロー、S1がロー、かつS2がハイならば、10に設定されてMK2を選択し、S0がロー、S1がロー、S2がロー、かつS2がハイならば、11に設定されてMK3を選択する。信号S0−S3がすべてローならば、マスクキーMK0−MK3のいずれも書き込みデータブロックに対しユニークでなく、抵触状態が存在する。図22の実施形態では、符号器587は抵触信号556をアサートしてマスク抵触状態を示し、また2相のマスクされた書き込みの第1の相のためのデフォルトマスクキーであるように、マスクキーMK0を選択するようにキーセレクタ552を設定する。2相のマスクされた書き込みの第1の相の後、符号器557は、2相のマスクされた書き込みの第2の相のためのデフォルトマスクキーであるように、マスクキーMK1を選択するようにキーセレクタを設定する。代替実施形態において、2相のマスクされた書き込みの第1および/または第2の相のためのデフォルトマスクキーとして、他のキーテーブル選択を使用してもよい。
図23は、本発明のキー選択の実施形態によるメモリ装置600を示している。メモリ装置600は、ホストインタフェース601、データインタフェース603、アドレス復号器267、リクエスト論理265、キーテーブル609、マルチプレクサ611、比較器269、書き込みドライバ273および論理ゲート275を含む。データインタフェース603(受信器271を含む)、アドレス復号器267、リクエスト論理265、比較器269、書き込みドライバ273および論理ゲート275のすべては、一般に、図5を参照して記述したように動作するが、代わりに、データインタフェース603は、図16を参照して記述したような非シリアル化データインタフェースでもよい。ホストインタフェース601はまた、マスクキーの代わりにキーセレクタ552が受信されること以外、図5を参照して記述したように動作する。キーセレクタ552は、マルチプレクサ611の選択入力部に供給されて、キーテーブル609からマスクキーを選択し、選択されたマスクキー610は、着信書き込みデータ値と比較するために比較器269に供給される(すなわち、比較器269がリクエスト論理265からの比較イネーブル246の信号によってイネーブルにされた場合)。単一の書き込みデータチャネルが図23に示されているが、代わりに、メモリ装置600は、代替実施形態で任意の数の書き込みデータチャネルを有してもよい(すなわち、図5のようなより広いデータインタフェース603、多数の比較器269、多数の書き込みドライバ273および論理ゲート275)ことに留意されたい。
図23の実施形態では、キーテーブル609は4つの所定のマスクキーを含み、また着信キーセレクタ552は、4つのうちの1つの選択をイネーブルにするための2ビットの値KSEL[1:0]である。代替実施形態のキーテーブル609内に、より多いかまたはより少ない所定のマスクキーを設け、キーセレクタ552のビット数を相応して増加または減少させてもよい。一実施形態において、キーテーブル609は、システム初期化中にメモリコントローラによって供給されるマスクキーでプログラミングされるプログラム可能な記憶回路のバンクを含む。プログラム可能な記憶回路は、揮発性または不揮発性の記憶素子を用いて実装可能であり、不揮発性の記憶素子の場合、システム生産中または構造設定操作時にプログラミングしてもよい。代替実施形態では、キーテーブル609は、1組のハードウェア組込のマスクキーを含む(例えば、専用の回路設計を通して、またはヒューズ溶断プログラミング操作のような一回限りのプログラム可能な操作を通して達成される)。
サブブロック符号化
上に簡単に述べたように、キー選択メモリコントローラのマスク抵触を低減する1つの方法は、各々の着信書き込みデータブロックのために多数のマスクキーを選択することであり、選択された各マスクキーは書き込みデータブロックのそれぞれのサブブロック(すなわち、部分)に対応する。次に、選択された各マスクキーは、対応するサブブロック内でマスク値に置き換えられて、符号化されたサブブロックを発生し、また符号化されたサブブロックは、対応するサブブロックのキーセレクタと共に記憶サブシステムに伝送される。各サブブロックの母集団サイズの低減(すなわち、完了した書き込みデータブロックと比較した書き込みデータ値の数の低減)により、マスク抵触の確率のほぼ比例的な低減が達成される。
図24は、2つの32バイトのサブブロック、サブブロック0およびサブブロック1への64バイトの書き込みデータブロックの模範的な空間分割を示している。図示したように、データラインDQ00〜DQ15で伝送される32のデータバイトはサブブロック0を形成し、またデータラインDQ16〜DQ31で伝送される32のデータバイトはサブブロック2を形成する。マスク抵触の可能性をさらに低減するために、代替実施形態でより細かい空間分割を使用し得る(例えば、データ経路の8つのラインの組で各々が伝送される4つのサブブロックに分割すること)。
図25は、2つの32バイトのサブブロック、サブブロック0およびサブブロック1への64バイトの書き込みデータブロックの模範的な空間分割を示している。図示したように、伝送間隔0−7の間に伝送される32のデータバイトはサブブロック0を形成し、また伝送間隔8−15の間に伝送される32のデータバイトはサブブロック1を形成する。代替実施形態で、より細かな時間分割を使用し得る(例えば、それぞれの組の伝送間隔の間に各々が次々に伝送される4つのサブブロックに分割すること)。また、時間的および空間的分割の組み合わせも使用し得る。例えば、図24に示した空間分離は、図25の時間分離と組み合わせて、4つの四分円の分離を生成してもよい。さらに、シリアル化データ転送スキームが図24と図25に示されているが、代わりに、並列のデータ転送スキーム(例えば、図12に示したような)を使用してもよい。
分離の種類および数に関係なく、サブブロックの各々の中の書き込みデータ値に基づき、別個のキーセレクタ値が発生され、サブブロックを符号化するためのそれぞれのマスクキーを選択するために使用される。次に、符号化されたサブブロックおよび対応するキーセレクタは、記憶サブシステムに出力される。
図26は、本発明のキー選択メモリシステム内で使用可能なキーセレクタの模範的な符号化を示している。図示したように、2ビットのキーセレクタKSEL[1:0]は、所定の書き込み動作がマスクされた書き込み動作またはアンマスクされた書き込み動作であるかどうかを示すために、またマスクされた書き込み動作であるならば、3つの所定のマスクキーの1つに規定するために使用される。すなわち、キーセレクタが3つの所定のマスクキーの1つを規定するならば、マスクされた書き込み動作が示される。さもなければ、キーセレクタは、アンマスクされた書き込み動作を示すために00に設定される。
セクションの表題は、参照の便宜のためにのみこの詳細な説明に付与されており、このようなセクションの範囲または程度を決して規定、制限、解釈または記述するものではない。また、本発明の特定の模範的な実施形態を参照して、本発明について記述してきたが、本発明のより広範囲の精神と範囲から逸脱することなく、本発明に対し様々な修正および変更をなし得ることが明白であろう。したがって、本明細書および図面は、制限的というよりもむしろ例示的であると見なすべきである。
従来技術のバイトマスキングメモリシステムの図面である。 本発明の実施形態によるメモリコントローラ内の動作方法の図面である。 本発明の実施形態による記憶サブシステム内の動作方法の図面である。 本発明の実施形態によるメモリシステムの図面である。 本発明の実施形態によるメモリ装置の図面である。 本発明の実施形態による図4のマスク論理の図面である。 図4のメモリコントローラを通して書き込みデータブロックを伝搬するための模範的なパイプラインの図面である。 本発明の実施形態による図6のキー発生器の動作の図面である。 本発明の実施形態によるキー発生器の図面である。 メモリコントローラと図4の記憶サブシステムとの間のデータ経路にわたってバイトサイズの書き込みデータ値を転送するための模範的なタイミング図である。 図10のデータ転送スキームを用いて単一ランクのメモリ装置に達成できる記憶容量の図面である。 記憶サブシステムのランク当たりの記憶容量の実質的な増加をイネーブルにする本発明の代替実施形態のデータ転送スキームの図面である。 図12のデータ転送スキームを用いて単一ランクのメモリ装置に達成できる記憶容量の図面である。 本発明の実施形態によるシリアル転送メモリコントローラのデータポートの図面である。 図14のデータポート内で使用可能なシリアル化回路の模範的な実施形態の図面である。 本発明の実施形態によるシリアル転送メモリ装置の図面である。 本発明の実施形態によるキー選択メモリコントローラの動作の図面である。 模範的な書き込みデータブロックおよび対応するマスクワードに適用される2相のマスクされた書き込み動作の図面である。 図18の2相のマスクされた書き込み動作の各相の前後の記憶サブシステムの内容の図面である。 本発明の実施形態によるキー選択マスク論理回路の図面である。 図20のキー選択回路によって実施される模範的な状態図である。 本発明の実施形態による図20のキー選択回路の図面である。 本発明のキー選択実施形態によるメモリ装置の図面である。 書き込みデータブロックを2つのサブブロックに空間分割した模範的な図面である。 書き込みデータブロックを2つのサブブロックに時間分割した模範的な図面である。 本発明のキー選択メモリシステム内で使用可能なキーセレクタの模範的な符号化の図面である。

Claims (76)

  1. メモリコントローラであって、
    書き込みデータ値のブロックと複数のマスク値とを受信するためのホストインタフェースであって、各マスク値が、前記書き込みデータ値の対応する値が記憶サブシステム内の記憶から除外されるべきマスクされたデータ値であるかどうかを示すホストインタフェースと、
    前記ホストインタフェースから前記書き込みデータ値と前記マスク値とを受信するように結合され、かつ前記書き込みデータ値のブロック内のキー値を、マスクされた各データ値の代わりに用いることによって書き込みデータ値の符号化ブロックを発生するように適合されたマスク論理回路と、
    前記マスク論理回路から前記書き込みデータ値の符号化ブロックを受信するように結合され、かつ前記書き込みデータ値の符号化ブロックを前記記憶サブシステムに出力するように適合されたメモリインタフェースと、を備えるメモリコントローラ。
  2. マスク値の各々が第1の状態または第2の状態を有するビットであり、前記第1の状態が、前記書き込みデータ値の対応する値がマスクされたデータ値であることを示す、請求項1に記載のメモリコントローラ。
  3. 前記ホストインタフェースによって受信された前記書き込みデータ値の各々が、8構成ビットを有する1バイトであり、また前記マスク値の各々が、前記バイトの対応するバイトが前記記憶サブシステム内の記憶から除外されるべきマスクされたバイトであるかどうかを示す、請求項1に記載のメモリコントローラ。
  4. 前記マスク論理回路が、前記キー値を発生するためのキー発生回路を備える、請求項1に記載のメモリコントローラ。
  5. マスクされたデータ値であることが示されない前記書き込みデータ値の各々が、アンマスクされたデータ値を構成し、また前記キー値が前記書き込みデータ値のブロック内のアンマスクされたデータ値にマッチしないように、前記キー発生回路が前記キー値を発生するように適合される、請求項4に記載のメモリコントローラ。
  6. 前記メモリインタフェースが、マスク論理回路からキー値を受信するようにさらに結合され、また前記キー値を前記記憶サブシステムに出力するように適合される、請求項1に記載のメモリコントローラ。
  7. 前記メモリインタフェースが、前記書き込みデータ値の符号化ブロックを前記記憶サブシステムに出力するためのデータインタフェースと、前記キー値を前記記憶サブシステムに出力するためのリクエストインタフェースとを備える、請求項6に記載のメモリコントローラ。
  8. 前記データインタフェースが、
    前記書き込みデータ値の符号化ブロックを表す信号を前記メモリコントローラから出力するためのデータ伝送回路と、
    前記キー値を表す信号を前記メモリコントローラから出力するためのリクエスト伝送回路と、
    を備える請求項7に記載のメモリコントローラ。
  9. 前記データ伝送回路が、前記書き込みデータ値の符号化ブロックのそれぞれの部分を表す信号を同時に出力するように各々が適合された第1の複数の出力ドライバ回路を備える、請求項8に記載のメモリコントローラ。
  10. 前記第1の書き込みデータ値を表す信号が前記メモリコントローラから並列に出力されるように、前記第1の複数の出力ドライバ回路の各出力ドライバ回路が、前記書き込みデータ値の符号化ブロックの第1の書き込みデータ値のそれぞれのビットを出力するように適合される、請求項9に記載のメモリコントローラ。
  11. 前記第1の書き込みデータ値と同時に前記メモリコントローラから第2の書き込みデータ値を出力するように適合された第2の複数の出力ドライバ回路をさらに備える、請求項10に記載のメモリコントローラ。
  12. 前記データ伝送回路が、前記書き込みデータ値の符号化ブロックの第1の書き込みデータ値の構成ビットの各々をシリアルに出力するように適合された第1の出力ドライバ回路を備える、請求項8に記載のメモリコントローラ。
  13. 前記データ伝送回路が、前記書き込みデータ値の符号化ブロックのそれぞれの書き込みデータ値の構成ビットをシリアルに出力するように各々が適合された複数の出力ドライバ回路を備える、請求項8に記載のメモリコントローラ。
  14. 前記マスク論理回路が、複数の所定値から前記キー値を選択するためのキーセレクタ回路を備える、請求項1に記載のメモリコントローラ。
  15. 前記複数の所定値を記憶するための複数の記憶回路をさらに備える、請求項14に記載のメモリコントローラ。
  16. 前記複数の所定値を前記記憶回路内にプログラムするための制御ロジックをさらに備える、請求項15に記載のメモリコントローラ。
  17. 前記制御ロジックが、前記ホストインタフェースを介して受信された命令に応答して前記複数の所定の値を前記記憶回路内にプログラムするように適合される、請求項16に記載のメモリコントローラ。
  18. 前記キーセレクタ回路が、前記複数の所定値を受信するための複数のデータ入力を有するマルチプレクサと、キー選択値を受信するための制御入力部とを備え、前記マルチプレクサが、前記キー選択値による前記キー値として前記複数の所定値の1つを出力するように適合される請求項14に記載のメモリコントローラ。
  19. 前記キーセレクタが、前記選択値を発生するための選択値発生器をさらに備える、請求項18に記載のメモリコントローラ。
  20. マスクされたデータ値であることが示されない前記書き込みデータ値の各々が、アンマスクされたデータ値を構成し、また前記選択値発生器が、前記書き込みデータ値のブロックと前記複数のマスク値とを前記ホストインタフェースから受信するように結合され、前記選択値発生器が、前記書き込みデータ値のブロック内のアンマスクされたデータ値にマッチしない前記複数の所定値の1つを識別するように適合され、前記選択値発生器が、前記複数の所定値の前記識別された1つに従って前記選択信号を発生するようにさらに適合される、請求項19に記載のメモリコントローラ。
  21. メモリコントローラ内の動作方法であって、
    書き込みデータ値のブロックと複数のマスク値とを受信するステップであって、各マスク値が、前記書き込みデータ値の対応する値がマスクされたデータ値であるかどうかを示すステップと、
    マスクされた各データ値の代わりにキー値を用いることによって書き込みデータ値の符号化ブロックを発生するステップと、
    前記書き込みデータ値の符号化ブロックを記憶サブシステムに出力するステップと、
    を含む方法。
  22. 前記キー値にマッチしない各書き込みデータ値を記憶するようにリクエストを前記記憶サブシステムに出力するステップをさらに含む、請求項21に記載の方法。
  23. 前記キー値を発生するステップをさらに含む、請求項21に記載の方法。
  24. マスクされたデータ値であることが示されない前記書き込みデータ値の各々が、アンマスクされたデータ値を構成し、また前記キー値を発生するステップが、前記書き込みデータ値のブロック内のアンマスクされたデータ値にマッチしないキー値を発生するステップを含む、請求項23に記載の方法。
  25. 前記キー値を前記記憶サブシステムに出力するステップをさらに含む、請求項23に記載の方法。
  26. 前記キー値を所定のキー値のテーブルから選択するステップをさらに含む、請求項21に記載の方法。
  27. セレクタ値を前記記憶サブシステムに出力するステップをさらに含み、前記セレクタ値が、所定のキーの前記テーブルから選択された前記キー値に対応する、請求項26に記載の方法。
  28. 初期化動作において所定のキーの前記テーブル内への前記所定のキーをさらに含む、請求項27に記載の方法。
  29. 前記書き込みデータ値の符号化データブロックを前記記憶サブシステムに出力するステップが、前記符号化データブロックの少なくとも1つの書き込みデータ値を記憶サブシステムにシリアルビットストリームとして出力するステップを含む、請求項21に記載の方法。
  30. 前記少なくとも1つの書き込みデータ値をシリアルビットストリームとして出力するステップが、前記書き込みデータ値の各構成ビットを第1の信号ラインにわたって連続伝送して出力するステップを含む、請求項26に記載の方法。
  31. メモリ装置であって、
    記憶アレイと、
    書き込みデータ値とキー値とを比較して、前記書き込みデータ値が前記キー値にマッチするかどうかを示すマッチ信号を発生するための比較回路と、
    前記記憶アレイと前記比較回路とに結合された書き込み回路であって、前記マッチ信号が、前記書き込みデータ値が前記キー値にマッチしないことを示すならば、前記書き込み回路が、前記書き込みデータ値を前記記憶アレイに記憶するように適合される書き込み回路と、
    を備えるメモリ装置。
  32. 前記書き込みデータ値を受信して、前記書き込みデータ値を前記比較回路と前記書き込み回路とに出力するための受信回路をさらに備える、請求項31に記載のメモリ装置。
  33. 前記受信回路が、前記キー値を受信して、前記キー値を前記比較回路に出力するように適合される、請求項32に記載のメモリ装置。
  34. 前記受信回路が、前記書き込みデータ値を受信するための少なくとも1つのサンプリング回路と前記キー値を受信するための少なくとも1つの他のサンプリング回路と、を含む複数のサンプリング回路を備える、請求項33に記載のメモリ装置。
  35. 前記記憶アレイが容量性素子のアレイを備え、前記容量性素子の各々が、その中に記憶される2進基準に従って充電状態または放電状態にあるように適合される、請求項31に記載のメモリ装置。
  36. 前記記憶アレイがラッチ回路のアレイを備え、前記ラッチ回路の各々が、その中に記憶される2進基準に従って第1の状態または第2の状態をラッチするように適合される、請求項31に記載のメモリ装置。
  37. 複数の所定値を記憶するためのテーブルと、前記所定値の1つを前記キー値であるように選択するための選択回路とをさらに備える、請求項32に記載のメモリ装置。
  38. 前記受信回路がセレクタ値を受信するように適合され、また前記選択回路が、前記セレクタ値に従って前記所定値の1つを選択するように適合される、請求項37に記載のメモリ装置。
  39. 前記受信回路が、サンプリング動作シーケンスで前記書き込みデータ値を受信するための少なくとも1つのサンプリング回路を備える、請求項32に記載のメモリ装置。
  40. メモリ装置内の動作方法であって、
    前記メモリ装置の記憶アレイ内に記憶される書き込みデータ値を受信するステップと、
    前記書き込みデータ値とキー値とを比較するステップと、
    前記書き込みデータ値が前記キー値にマッチしない場合、前記書き込みデータ値を前記記憶アレイ内に記憶するステップと、
    を含む方法。
  41. 前記キー値を受信するステップをさらに含む、請求項40に記載の方法。
  42. 複数の所定値の1つを前記キー値であるように選択するステップをさらに含む、請求項40に記載の方法。
  43. 複数の所定値を受信して、前記複数の所定値を前記メモリ装置内に記憶するステップをさらに含む、請求項42に記載の方法。
  44. 選択値を受信するステップをさらに含み、また前記複数の所定値の1つを選択するステップが、前記選択値によって示された前記複数の所定値の1つを選択するステップを含む、請求項42に記載の方法。
  45. メモリシステムであって、
    書き込みデータ値を出力するためのメモリコントローラと、
    前記書き込みデータ値を前記メモリコントローラから受信するように結合されたメモリ装置であって、前記書き込みデータ値と第1のキー値とを比較して、前記書き込みデータ値が前記第1のキー値にマッチしない場合に前記書き込みデータ値を記憶するように適合されるメモリ装置と、
    を備えるメモリシステム。
  46. 前記メモリコントローラが前記第1のキー値を発生して、前記第1のキー値を前記メモリ装置に出力するように適合される、請求項45に記載のメモリシステム。
  47. 前記メモリコントローラが第1のテーブルの所定値を備え、また前記メモリコントローラが前記第1のテーブルの所定値から第2のキー値を選択するように適合される、請求項45に記載のメモリシステム。
  48. 前記メモリコントローラが、前記第1のテーブルの所定値内の前記所定値の1つに対応するセレクタ値を前記メモリ装置に出力するようにさらに適合される、請求項47に記載のメモリシステム。
  49. 前記メモリ装置が第2のテーブルの所定値を備え、また前記メモリ装置が前記セレクタ値を受信するように適合され、かつ前記セレクタ値に基づき前記第2のテーブルの所定値から前記第1のキー値を選択するように適合される、請求項48に記載のメモリシステム。
  50. メモリシステム内の動作方法であって、
    書き込みデータ値のブロックと、対応する複数のマスク値とを受信するステップと、
    前記マスク値の対応する1つが第1の状態にある前記書き込みデータ値の各々の代わりにキー値を用いることによって、書き込みデータ値の符号化ブロックを発生するステップと、
    前記書き込みデータ値の符号化ブロックを記憶サブシステムに転送するステップと、
    前記記憶サブシステム内で、前記書き込みデータ値の各々と前記キー値とを比較するステップと、
    前記記憶サブシステム内に、前記キー値にマッチしないことが決定された前記書き込みデータ値の各々を記憶するステップと、
    を含む方法。
  51. 前記キー値を発生して、前記キー値を前記記憶サブシステムに転送するステップをさらに含む、請求項50に記載の方法。
  52. 前記キー値を発生するステップが、前記マスク値の対応する1つがマスク状態を示す前記書き込みデータ値のいずれにもマッチしないキー値を発生するステップを含む、請求項51に記載の方法。
  53. セレクタ値を用いて第1のテーブルの所定値から前記キー値を選択するステップと、
    前記セレクタ値を前記記憶サブシステムに転送するステップと、
    前記記憶サブシステム内の第2のテーブルの所定値から前記キー値を選択するステップと、
    をさらに含む、請求項50に記載の方法。
  54. 初期化動作において前記第2のテーブルの所定値に所定値を記憶するステップをさらに含む、請求項53に記載の方法。
  55. メモリコントローラであって、
    第1の書き込みデータ値を受信するためのリクエストインタフェースおよび前記第1の書き込みデータ値を記憶サブシステムに記憶するためのリクエスト部と、
    前記リクエストインタフェースから1組の並列の構成ビットとして前記第1の書き込みデータ値を受信するように結合され、かつシリアル構成ビットストリームとして前記第1の書き込みデータ値を第1の信号ラインを介して前記記憶サブシステムに出力するように適合されたシリアル化ドライバ回路と、
    を備えるメモリコントローラ。
  56. 前記シリアル化ドライバ回路が、
    前記並列構成ビットの組を前記シリアル構成ビットストリームに変換するためのシリアル化回路と、
    前記シリアル化回路から連続して前記シリアル構成ビットストリームのビットの各々を受信して、前記シリアル構成ビットストリームの各ビットを前記第1の信号ラインに出力するための出力ドライバと、
    を備える、請求項55に記載のメモリコントローラ。
  57. 前記メモリコントローラが、外部信号ラインに結合するためのインタフェースを備え、前記第1の信号ラインが前記出力ドライバと前記インタフェースとの間に結合される、請求項56に記載のメモリコントローラ。
  58. 前記シリアル化回路が、複数の記憶素子を有するシフトレジスタを備え、前記シフトレジスタが、負荷信号遷移に対する前記複数の応答内の前記並列構成ビットの組を受信して、シフト信号のそれぞれの遷移に応答して前記並列構成ビットの組の各ビットを前記出力ドライバに出力するように適合される、請求項56に記載のメモリコントローラ。
  59. 前記インタフェースが、前記第1の書き込みデータ値と同時に第2の書き込みデータ値を受信するように適合され、また前記シリアル化ドライバ回路が、前記リクエストインタフェースから1組の並列の構成ビットとして前記第2の書き込みデータ値を受信して、シリアル構成ビットストリームとして前記第2の書き込みデータ値を第2の信号ラインを介して前記記憶サブシステムに出力するようにさらに適合される、請求項55に記載のメモリコントローラ。
  60. 前記シリアル化ドライバ回路が、前記第1および第2の書き込みデータ値を前記第1および第2の信号ラインに同時にそれぞれ出力するようにさらに適合される、請求項59に記載のメモリコントローラ。
  61. 前記シリアル化ドライバ回路が、前記第1の信号ラインを介して前記第1の書き込みデータ値を出力するための第1の出力ドライバ回路と、前記第2の信号ラインを介して前記第2の書き込みデータ値を出力するための第2の出力ドライバ回路とを備え、また前記第1の出力ドライバ回路および前記第2の出力ドライバ回路が、伝送クロック信号の遷移に応答して、前記第1および第2の書き込みデータ値を出力するようにそれぞれ適合される、請求項60に記載のメモリコントローラ。
  62. 前記リクエストインタフェースが、前記第1の書き込みデータ値が前記記憶サブシステムの記憶から除外されるべきであるかどうかを示すマスク値を受信するように適合され、また前記マスク値が、前記第1の書き込みデータ値が前記記憶サブシステムの記憶から除外されるべきことを示す場合に、前記メモリコントローラが前記第1の書き込みデータ値の代わりにキー値を用いるためのマスク論理回路をさらに備える、請求項55に記載のメモリコントローラ。
  63. 前記マスク値が、第1の状態または第2の状態を有するビットであり、前記第1の状態が、前記第1の書き込みデータ値が前記記憶サブシステムの記憶から除外されるべきであることを示す、請求項62に記載のメモリコントローラ。
  64. 前記第1の書き込みデータ値が、8構成ビットを有する1バイトである、請求項62に記載のメモリコントローラ。
  65. 前記キー値を前記記憶サブシステムに出力するためのリクエストインタフェースをさらに備える、請求項62に記載のメモリコントローラ。
  66. メモリ装置であって、
    複数の記憶素子と、前記記憶素子のそれぞれのコラムに結合されたビットラインとを有する記憶アレイと、
    第1の書き込みデータ値を構成するシリアルビットストリームの少なくとも8ビットを第1の信号ラインから受信するための受信機と、
    前記シリアルビットストリームを前記受信機から受信するように結合され、かつ前記シリアルビットストリームを1組の並列ビットに変換するように適合された非シリアル化回路と、
    前記ビットラインに結合され、かつ前記並列ビットの組を前記非シリアル化回路から受信するように結合された書き込みドライバ回路であって、前記書き込みドライバ回路が、前記並列ビットの組の各ビットを前記ビットラインのそれぞれの1つに出力して、前記記憶アレイ内の前記第1の書き込みデータ値の記憶をイネーブルにするように適合される書き込みドライバ回路と、
    を備えるメモリ装置。
  67. 前記書き込みドライバ回路が、前記並列ビットの組を前記ビットラインに同時に出力するようにさらに適合される、請求項66に記載のメモリ装置。
  68. 前記非シリアル化回路がシフトレジスタを備える、請求項66に記載のメモリ装置。
  69. 前記並列ビットの組をキー値と比較して、前記並列ビットの組が前記キー値にマッチする場合に第1の状態を有し、前記並列ビットの組が前記キー値にマッチしない場合に第2の状態を有する書き込みイネーブル信号を発生するための書き込みイネーブル回路をさらに備える、請求項66に記載のメモリ装置。
  70. 前記書き込みドライバ回路が、前記書き込みイネーブル回路から前記書き込みイネーブル信号を受信するように結合されたイネーブル入力部を有し、また前記書き込みイネーブル信号が前記第2の状態にある場合、前記書き込みドライバ回路が前記並列ビットの組を前記ビットラインに出力するようにさらに適合される、請求項69に記載のメモリ装置。
  71. 前記キー値を受信するためのリクエストインタフェースをさらに備える、請求項69に記載のメモリ装置。
  72. 前記書き込みイネーブル信号回路が、選択信号に応答して複数の所定値から前記キー値を選択するように適合される、請求項69に記載のメモリ装置。
  73. 前記選択信号を受信するためのリクエストインタフェースをさらに備える、請求項72に記載のメモリ装置。
  74. 前記複数の所定値を記憶するための複数の記憶回路をさらに備える、請求項72に記載のメモリ装置。
  75. メモリシステムであって、
    ホストから複数の書き込みデータ値を受信して、それぞれのシリアルビットストリームとして前記書き込みデータ値を出力するためのメモリコントローラと、
    前記メモリコントローラから前記シリアルビットストリームの少なくとも1つを受信するように各々が結合され、かつ前記シリアルビットストリームの少なくとも1つを記憶用の1組の並列ビットに変換するように適合された複数のメモリ装置と、
    を備えるメモリシステム。
  76. 前記メモリコントローラと前記複数のメモリ装置との間に結合された複数の信号ラインをさらに備え、また前記メモリコントローラが、前記複数の信号ラインのそれぞれの1つを介して前記書き込みデータ値の各々をシリアルビットストリームとして出力するように適合される、請求項75に記載のメモリシステム。
JP2006500933A 2003-01-13 2004-01-13 符号化書き込みマスキング Expired - Fee Related JP4717798B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US43966603P 2003-01-13 2003-01-13
US60/439,666 2003-01-13
US10/386,236 2003-03-11
US10/385,908 US7313639B2 (en) 2003-01-13 2003-03-11 Memory system and device with serialized data transfer
US10/385,908 2003-03-11
US10/386,236 US6826663B2 (en) 2003-01-13 2003-03-11 Coded write masking
PCT/US2004/000793 WO2004063906A2 (en) 2003-01-13 2004-01-13 Coded write masking

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008209929A Division JP2008276809A (ja) 2003-01-13 2008-08-18 符号化書き込みマスキング

Publications (3)

Publication Number Publication Date
JP2006515452A true JP2006515452A (ja) 2006-05-25
JP2006515452A5 JP2006515452A5 (ja) 2008-10-02
JP4717798B2 JP4717798B2 (ja) 2011-07-06

Family

ID=32719034

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006500933A Expired - Fee Related JP4717798B2 (ja) 2003-01-13 2004-01-13 符号化書き込みマスキング
JP2008209929A Pending JP2008276809A (ja) 2003-01-13 2008-08-18 符号化書き込みマスキング

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2008209929A Pending JP2008276809A (ja) 2003-01-13 2008-08-18 符号化書き込みマスキング

Country Status (5)

Country Link
US (1) US7171528B2 (ja)
JP (2) JP4717798B2 (ja)
DE (1) DE112004000140T5 (ja)
GB (2) GB2424105B (ja)
WO (1) WO2004063906A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012502391A (ja) * 2008-09-09 2012-01-26 インテル コーポレイション インバンドのデータ・マスク・ビットの転送システム、方法、及び装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
US8045707B2 (en) * 2003-08-15 2011-10-25 Broadcom Corporation System and method for securing data
US7287103B2 (en) 2005-05-17 2007-10-23 International Business Machines Corporation Method and apparatus for generating a mask value and command for extreme data rate memories utilizing error correction codes
US7610417B2 (en) * 2005-11-30 2009-10-27 Rambus Inc. Data-width translator coupled between variable-width and fixed-width data ports and supporting multiple data-width configurations
US7921263B2 (en) * 2006-12-22 2011-04-05 Broadcom Corporation System and method for performing masked store operations in a processor
US7877398B2 (en) * 2007-11-19 2011-01-25 International Business Machines Corporation Masking related sensitive data in groups
TW200925934A (en) * 2007-12-06 2009-06-16 Avision Inc Key status detecting circuit
US7761714B2 (en) * 2008-10-02 2010-07-20 Infineon Technologies Ag Integrated circuit and method for preventing an unauthorized access to a digital value
JP5178839B2 (ja) 2009-11-27 2013-04-10 株式会社東芝 メモリチップ
US9135984B2 (en) 2013-12-18 2015-09-15 Micron Technology, Inc. Apparatuses and methods for writing masked data to a buffer
KR102195893B1 (ko) * 2014-02-19 2020-12-29 에스케이하이닉스 주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
US9792965B2 (en) 2014-06-17 2017-10-17 Rambus Inc. Memory module and system supporting parallel and serial access modes
US9361027B1 (en) * 2014-12-16 2016-06-07 Texas Instruments Incorporated System and method for fast modification of register content
US9570125B1 (en) * 2016-03-15 2017-02-14 Micron Technology, Inc. Apparatuses and methods for shifting data during a masked write to a buffer
US9858989B1 (en) 2016-11-29 2018-01-02 Taiwan Semiconductor Manufacturing Co., Ltd. Serialized SRAM access to reduce congestion
US10171435B1 (en) * 2017-06-12 2019-01-01 Ironclad Encryption Corporation Devices that utilize random tokens which direct dynamic random access
US10616192B2 (en) * 2017-06-12 2020-04-07 Daniel Maurice Lerner Devices that utilize random tokens which direct dynamic random access
US11863209B2 (en) * 2021-08-18 2024-01-02 Pixart Imaging Inc. Integrated circuit and method capable of minimizing circuit area of non-volatile memory circuit

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122492A (ja) * 1989-10-06 1991-05-24 Toshiba Ceramics Co Ltd 加熱装置用扉
JPH05325545A (ja) * 1992-05-25 1993-12-10 Mitsubishi Electric Corp 半導体記憶装置
JPH07121351A (ja) * 1993-10-26 1995-05-12 Sharp Corp 半導体ram
JP2006507555A (ja) * 2002-03-22 2006-03-02 インテル コーポレイション コントローラプログラミングによるハードウェアへのデータマスクマッピング

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5844584A (ja) 1981-09-11 1983-03-15 Hitachi Ltd マトリクス記録の制御回路
US4745577A (en) * 1984-11-20 1988-05-17 Fujitsu Limited Semiconductor memory device with shift registers for high speed reading and writing
US4999620A (en) * 1986-08-21 1991-03-12 Ascii Corporation Apparatus for storing and accessing image data to be displayed on a display unit
JPH03122492U (ja) * 1990-03-26 1991-12-13
US5243703A (en) 1990-04-18 1993-09-07 Rambus, Inc. Apparatus for synchronously generating clock signals in a data processing system
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
KR940004404B1 (ko) * 1990-11-30 1994-05-25 삼성전자 주식회사 불휘발성 반도체 메모리장치
US5430859A (en) * 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
JP3134819B2 (ja) * 1997-06-04 2001-02-13 ソニー株式会社 データ処理装置
US5715407A (en) 1992-03-06 1998-02-03 Rambus, Inc. Process and apparatus for collision detection on a parallel bus by monitoring a first line of the bus during even bus cycles for indications of overlapping packets
FR2699707B1 (fr) * 1992-12-23 1995-01-27 Bull Sa Système informatique à haut débit, composant de mémoire et contrôleur de mémoire en résultant.
JP3186320B2 (ja) * 1993-04-09 2001-07-11 カシオ電子工業株式会社 記憶装置のアクセス制御回路
US5764963A (en) 1995-07-07 1998-06-09 Rambus, Inc. Method and apparatus for performing maskable multiple color block writes
US6035369A (en) 1995-10-19 2000-03-07 Rambus Inc. Method and apparatus for providing a memory with write enable information
US6401167B1 (en) 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
US6347354B1 (en) 1997-10-10 2002-02-12 Rambus Incorporated Apparatus and method for maximizing information transfers over limited interconnect resources
US6304930B1 (en) 1998-01-20 2001-10-16 Matsushita Electric Industrial Co., Ltd. Signal transmission system having multiple transmission modes
US6122189A (en) * 1998-10-02 2000-09-19 Rambus Inc. Data packet with embedded mask
FR2807245B1 (fr) 2000-03-30 2002-05-24 France Telecom Procede de protection d'une puce electronique contre la fraude
JP2002007201A (ja) * 2000-06-21 2002-01-11 Nec Corp メモリシステム、メモリインターフェース及びメモリチップ
US6820148B1 (en) * 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
US6578126B1 (en) * 2001-09-21 2003-06-10 Emc Corporation Memory system and method of using same
US6801459B2 (en) 2002-03-22 2004-10-05 Intel Corporation Obtaining data mask mapping information
JP2004005830A (ja) * 2002-05-31 2004-01-08 Sony Corp 情報読み出し装置、情報書き込み装置、情報読み出し方法、情報書き込み方法、プログラムおよび記憶媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03122492A (ja) * 1989-10-06 1991-05-24 Toshiba Ceramics Co Ltd 加熱装置用扉
JPH05325545A (ja) * 1992-05-25 1993-12-10 Mitsubishi Electric Corp 半導体記憶装置
JPH07121351A (ja) * 1993-10-26 1995-05-12 Sharp Corp 半導体ram
JP2006507555A (ja) * 2002-03-22 2006-03-02 インテル コーポレイション コントローラプログラミングによるハードウェアへのデータマスクマッピング

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012502391A (ja) * 2008-09-09 2012-01-26 インテル コーポレイション インバンドのデータ・マスク・ビットの転送システム、方法、及び装置

Also Published As

Publication number Publication date
WO2004063906A3 (en) 2004-10-21
US20050015558A1 (en) 2005-01-20
GB2424105B (en) 2007-03-07
GB2414582B (en) 2007-08-01
WO2004063906A2 (en) 2004-07-29
GB2414582A (en) 2005-11-30
GB0514229D0 (en) 2005-08-17
JP2008276809A (ja) 2008-11-13
DE112004000140T5 (de) 2006-02-09
GB0609830D0 (en) 2006-06-28
JP4717798B2 (ja) 2011-07-06
US7171528B2 (en) 2007-01-30
GB2424105A (en) 2006-09-13

Similar Documents

Publication Publication Date Title
US7921245B2 (en) Memory system and device with serialized data transfer
JP2008276809A (ja) 符号化書き込みマスキング
JP6029923B2 (ja) Nand型フラッシュメモリの読み込み方法及び装置
US7120754B2 (en) Synchronous DRAM with selectable internal prefetch size
KR100884096B1 (ko) 메모리 디바이스 및 모듈과, 컴퓨팅 디바이스와, 메모리시스템과 디바이스 및 컨트롤러의 작동 방법
US7382637B1 (en) Block-writable content addressable memory device
US5822245A (en) Dual buffer flash memory architecture with multiple operating modes
US7417881B2 (en) Low power content addressable memory
US6345334B1 (en) High speed semiconductor memory device capable of changing data sequence for burst transmission
US11069423B2 (en) Buffer circuit with adaptive repair capability
US9741406B2 (en) Semiconductor memory and memory system
US6545942B2 (en) Semiconductor memory device and information processing unit
JP2008527604A (ja) 接近パッドオーダリングロジック
US6973006B2 (en) Predecode column architecture and method
US6901490B2 (en) Read/modify/write registers
JPH0830434A (ja) メモリアクセス制御装置
JP2004206843A (ja) 同期型半導体記憶装置
JP2004119011A (ja) 同期式大規模集積回路記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100223

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100524

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100531

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100630

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100722

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100823

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110330

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees