異なるメモリ種類にアクセスする異なる速度での時分割多重化
【課題】 システムの性能、コスト、又は他の特徴を最適化し得ること。
【解決手段】 メモリコントローラは、時分割多重化バスの使用を通して異なる固有速度で実行中の異なる種類のメモリ装置にアクセスする。データは、1種類のメモリ装置にアクセスする場合にはある速度でバスを介して転送され、別の種類のメモリ装置にアクセスする場合には異なる速度で転送される。加えて、メモリコントローラは、制御情報(例えば、コマンド及びアドレス情報)を異なる種類のメモリ装置に異なる速度で提供し得、場合によっては、制御情報を共有バス上に時間多重化し得る。
【解決手段】 メモリコントローラは、時分割多重化バスの使用を通して異なる固有速度で実行中の異なる種類のメモリ装置にアクセスする。データは、1種類のメモリ装置にアクセスする場合にはある速度でバスを介して転送され、別の種類のメモリ装置にアクセスする場合には異なる速度で転送される。加えて、メモリコントローラは、制御情報(例えば、コマンド及びアドレス情報)を異なる種類のメモリ装置に異なる速度で提供し得、場合によっては、制御情報を共有バス上に時間多重化し得る。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本願は、本願の所有者が所有する2010年2月23日に出願された米国仮特許出願第61/307,336号の利益及び優先権を主張するものであり、この仮特許出願を参照により本明細書に援用する。
【0002】
技術分野
本願は、一般的にはメモリ技術に関し、排他的ではないがより詳細には、異なる種類のメモリへのアクセスに異なる速度の時間多重化を利用することに関する。
【背景技術】
【0003】
異なる種類のメモリ技術をデータ処理システムで使用して、異なる種類のデータを記憶し、システムの性能、コスト、又は他の特徴を最適化し得る。例えば、システムの電源が落ちた場合に保持する必要があるデータは、フラッシュメモリ等の不揮発性メモリに記憶し得る。対照的に、メモリに比較的高速に読み書きする必要があるが、システムの電源が落ちた場合に保持する必要がないデータは、高速アクセス時間を提供するランダムアクセスメモリ(RAM)等の揮発性メモリに記憶し得る。大量のデータも、高い記憶容量:コスト比を提供するメモリに記憶し得る。
【発明の概要】
【課題を解決するための手段】
【0004】
システムによっては、2つ以上の種類のメモリを単一のシステム構成要素で使用し得る。例えば、モバイル装置(例えば、電話、個人情報端末、個人エンターテイメント装置)は、フラッシュメモリ(例えば、NOR及び/又はNANDフラッシュ)及びRAMを利用し得る。これらの異なる種類のメモリは、最大入出力(I/O)転送速度、最適なインタフェースレイアウト、又は他の特徴の点で大きな違いを有し得るため、そのような装置のメモリコントローラは、各種のメモリにアクセスする別個の専用インタフェースを有し得る。その結果、そのようなメモリコントローラは、比較的多数のI/Oピンを有し得、メモリコントローラのコスト及びサイズを増大させる。
【0005】
本開示の例としての特徴、態様、及び利点について以下の詳細な説明及び添付の特許請求の範囲並びに添付の図面で説明する。
【図面の簡単な説明】
【0006】
【図1】異なる種類のメモリが時分割多重化信号バスを介して異なる速度でアクセスされるメモリシステムの実施形態の簡略ブロック図である。
【図2】異なる種類のメモリが時分割多重化信号バスを介して異なる速度でアクセスされるメモリシステムでの例としてのタイミングの簡略図である。
【図3】例としてのメモリ書き込み動作の実施形態のフローチャートである。
【図4】例としてのメモリ読み出す動作の実施形態のフローチャートである。
【図5】メモリシステムの実施形態の例としての機能構成要素を示す簡略ブロック図である。
【図6】メモリコントローラの実施形態の例としての機能構成要素を示す簡略ブロック図である。
【図7】メモリマップの実施形態の例としての態様を示す簡略ブロック図である。
【図8A】異なる種類のメモリ装置のプロトコル構造の例としての態様を示す簡略図である。
【図8B】異なる種類のメモリ装置のプロトコル構造の例としての態様を示す簡略図である。
【図9A】異なる種類のメモリ装置の例としての命令コードを示す簡略図である。
【図9B】異なる種類のメモリ装置の例としての命令コードを示す簡略図である。
【図10】例としての命令処理の実施形態のフローチャートである。
【図11】メモリシステムの実施形態での速度制御の例としての態様を示す概略ブロック図である。
【図12】メモリコントローラのクロック回路の実施形態の例としての態様を示す簡略ブロック図である。
【図13】所与の種類のメモリ装置に対して複数のクロック速度をサポートするクロック回路の実施形態の例としての態様を示す簡略ブロック図である。
【図14】メモリ装置がクロックをメモリコントローラに提供するメモリシステムの実施形態の例としての態様を示す概略ブロック図である。
【図15】外部クロック生成器がクロックをメモリコントローラ及びメモリ装置に提供するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図16】外部クロック生成器が複数のクロックをメモリコントローラ及びメモリ装置に提供するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図17】メモリ装置がクロック・データ復元を利用して、メモリコントローラから受信する埋め込みクロック及びデータ信号からクロック及びデータを復元するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図18】メモリコントローラが、クロック・データ復元を利用して、メモリ装置から受信する埋め込みクロック及びデータ信号からクロック及びデータを復元する、メモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図19】異なる種類のメモリ装置が異なる分周器を利用して、外部装置からのクロックを分周するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図20】メモリ装置のイネーブル/ディセーブル方式の実施形態の例としての態様を示す簡略ブロック図である。
【図21】メモリ装置のコマンドに基づくイネーブル/ディセーブル方式の実施形態の例としての態様を示す簡略ブロック図である。
【図22】多重化クロックバスを利用するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図23】書き込み動作の速度適合方式の実施形態の簡略図である。
【図24】読み出し動作の速度適合方式の実施形態の簡略図である。
【図25】書き込み動作の速度適合方式の別の実施形態の簡略図である。
【図26】読み出し動作の速度適合方式の別の実施形態の簡略図である。
【図27】メモリコントローラの実施形態の簡略ブロック図である。
【図28】選択論理の実施形態の簡略ブロック図である。
【図29】バッファ回路を利用するメモリ装置の実施形態の簡略ブロック図である。
【発明を実施するための形態】
【0007】
一般的な通例によれば、図面に示される様々な特徴は一定の縮尺で描かれていない場合がある。したがって、様々な特徴の寸法は、明確にするために任意に拡大又は縮小し得る。加えて、図面によっては明確にするために簡略化されているものがある。したがって、図面は、所与の装置又は方法のすべての構成要素を示している訳ではない。最後に、同様の番号を使用して、本明細書全体及び図全体を通して同様の特徴を示し得る。
【0008】
詳細な説明
図1は、メモリコントローラ102が、共有バス104を介して異なる種類のメモリ装置に異なる速度でアクセスするメモリシステム100の実施形態を示す。この例では、データは、共有バス104を介してある速度でメモリ装置106(例えば、DRAM)から読み書きされ、その一方で、データは、共有バス104を介して別の速度でメモリ装置108(例えば、フラッシュメモリ)に読み書きされる。いくつかの実施態様では、メモリ装置106が動作する速度は、メモリ装置108が動作する速度の整数倍(例えば、2倍、3倍、又は4倍)である。異なる相対比率(例えば、非整数倍を含む)、異なる数のメモリ種類、及び異なる数のメモリ装置を、本明細書における教示により他の実施形態で利用し得る。
【0009】
メモリコントローラ又はメモリ装置106及び108による異なる速度で出力されたデータは、共有バス104上でメモリ装置106及び108を相互に排他的にイネーブルすることにより、共有バス104上で時分割多重化される。例えば、メモリ装置106への書き込み中、メモリコントローラ102は、装置選択0信号110をイネーブルし、クロック信号112(例えば、メモリ装置106の固有速度に対応する比較的高速のクロック速度を有する)を提供し、クロック信号112に対応する速度で制御情報及びデータを共有バス104に出力する。同様に、メモリ装置108への書き込み中、メモリコントローラ102は、装置選択1信号114をイネーブルし、クロック信号116(例えば、メモリ装置108の固有速度に対応する比較的遅いクロック速度を有する)を提供し、クロック信号116に対応する速度でデータを共有バス104に出力する。メモリ装置106からの読み出し中、メモリコントローラ102は、装置選択0信号110をイネーブルし、クロック信号112を提供し、制御情報を共有バス104に出力し、それを受けて、メモリ装置106は、クロック信号112に対応する速度でデータを共有バス104に出力する。メモリ装置108からの読み出し中、メモリコントローラ102は、装置選択1信号114をイネーブルし、クロック信号116を提供し、制御情報を共有バス104に出力し、それを受けて、メモリ装置108は、クロック信号116に対応する速度でデータを共有バス104に出力する。
【0010】
本明細書において教示されるように、異なる速度での時分割多重化の使用を通して、メモリコントローラは、異なる種類のメモリに別個の専用インタフェースを含むメモリコントローラと比較してかなり少数のI/Oピンを用いて実施し得る。例えば、16本のI/Oピンが、メモリコントローラと所与のメモリ装置との間でのデータ送信に使用される場合、対応する16の信号路が、このメモリコントローラに結合された異なる種類のメモリ装置により共有されるため、メモリコントローラ上のI/Oピン数を少なくとも16本、少なくし得る。さらに、制御信号がこれらの16の信号路でも同様に時分割多重化される場合、I/Oピン計数の追加の低減を達成し得る。
【0011】
さらに、時分割多重化の使用を通して、帯域幅を必要に応じて各種のメモリ装置に効率的に割り振り得る。例えば、フラッシュメモリは主に、システムが起動中である場合に使用し得る一方で、DRAMは主に、システムが標準動作モードである場合に使用し得る。したがって、本明細書における教示により構築されるメモリコントローラは、より低コスト且つより小さなフットプリントで構築し得、システム内のメモリをより効率的に使用することが可能であり得る。
【0012】
図2のタイミング図は、共有バス上での多速度時分割多重化の例を示す。この例では、メモリコントローラ(図示せず)は、2つの異なる種類のメモリ装置(図示せず)のそれぞれのクロック信号及び装置選択信号を生成する。特に、第1のメモリ装置(装置選択0によりイネーブルされる)に提供される高速クロック(2X)は、第2のメモリ装置(装置選択1によりイネーブルされる)に提供される低速クロック(1X)の速度の2倍で動作する。
【0013】
上述したように、共有バスは多重化された制御情報及びデータを搬送し得る。例えば、所与のメモリ装置にアクセスする場合、メモリコントローラはまず、適切な制御情報(例えば、コマンド及びアドレス)をメモリ装置に送信し得、その後、そのアクセスのデータを共有バスに出力し得る。したがって、図2の例では、ブロックA0、B0等とA1、B1等とは、制御情報及び/又はデータに対応し得る。
【0014】
第2のメモリ装置への読み出し又は書き込みの場合、装置選択1がアクティブ化され、それを受けて、制御情報及びデータが、低速クロックに対応する速度で共有バスに出力される。特に、ブロックA1で表される第1の組のコマンド情報及び/又はデータは、低速クロックの立ち上がりエッジ中に出力され、ブロックB1で表される第2の組のコマンド情報及び/又はデータは、低速クロックの次の立ち上がりエッジ中に出力され、以下同様である。
【0015】
第1のメモリ装置への読み出し又は書き込みの場合、装置選択0がアクティブ化され、それを受けて、制御情報及びデータが、高速クロックに対応する速度で共有バスに出力される。特に、ブロックA0で表される第1の組のコマンド情報及び/又はデータは、高速クロックの立ち上がりエッジ中に出力され、ブロックB0で表される第2の組のコマンド情報及び/又はデータは、高速クロックの次の立ち上がりエッジ中に出力され、以下同様である。
【0016】
メモリコントローラは、異なる速度を切り替える際に信頼性の高い動作を維持するために適切な機能を含み得る。例えば、2つのクロック信号が、メモリコントローラから同相で送信されない場合、異なる種類のメモリ装置へのシグナリングを切り替えるとき、タイミングシフトを利用し得る。
【0017】
図2は、データをクロックの立ち上がりエッジでサンプリングし得る例を示すが、本明細書における技法は、他のクロック方式にも同様に適用可能である。例えば、2倍データ速度方式(すなわち、負及び正両方のクロックエッジでのサンプリング)、4倍データ速度方式、又はそのような方式と両立し得るクロック及びデータ速度を利用する他の何らかの適したクロック方式を他の実施形態で利用し得る。
【0018】
多速度時分割多重化は、様々な方法で実施し得る。例としての実施態様の詳細について、図3及び図4のフローチャートと併せてこれより説明する。便宜上、図3及び図4の動作(又は本明細書において考察又は教示される他の任意の動作)は、特定の構成要素により実行されるものとして説明し得る。しかし、これらの動作を他の種類の構成要素で実行してもよく、異なる数の構成要素を使用して実行してもよいことを理解されたい。本明細書に説明される動作のうちの1つ又は複数を所与の実施態様において利用しなくてもよいことも理解されたい。
【0019】
まず図3を参照すると、このフローチャートは、共有バスを介してデータを異なる種類のメモリ装置に書き込むことに併せて実行し得る例としての動作を説明する。ブロック302及び304で表されるように、時間のある時点で、メモリコントローラは、データを第1及び第2の種類のメモリ装置(例えば、メモリ装置106及び108)に書き込む要求を受信する(例えば、システムプロセッサから)。例えば、メモリコントローラは、第1のメモリ装置に対応するアドレスに書き込むべきデータを含む第1の書き込み要求を受信し得る(ブロック302)とともに、第2のメモリ装置に対応するアドレスに書き込むべきデータを含む第2の書き込み要求を受信し得る(ブロック304)。
【0020】
ブロック306で表されるように、メモリコントローラは、書き込み動作に使用すべき適切なクロック速度及びプロトコルを選択し得る。例えば、書き込み要求の宛先アドレスが第1のメモリ装置に対応する場合、メモリコントローラは、そのメモリ装置に対応するクロック速度(例えば、メモリ装置の固有速度)と、そのメモリ装置へのアクセスに使用すべきプロトコルとを選択する。書き込み要求の宛先アドレスが第2のメモリ装置に対応する場合、同様の動作が実行される。
【0021】
メモリコントローラがクロック信号をメモリ装置に出力する様式は、メモリコントローラからメモリ装置へのクロックバスの構成に依存する。いくつかの実施態様では、クロックバスは、各種のメモリ装置にルーティングされる別個のクロック信号路を備える(例えば、図1に示されるように)。この場合、メモリコントローラは、異なる速度(例えば、1X及び2X)を有するクロック信号を異なるクロックバス信号路に連続して出力し得る。
【0022】
図22においてより詳細に後述するように、他の実施態様は多重化クロックバスを使用し得、共有クロック信号路が異なる種類のメモリ装置にルーティングされる。この場合、メモリコントローラは、所与のクロック速度を有するクロック信号をある時間期間にわたり(例えば、第1の種類のメモリ装置が共有データバスでイネーブルされる時間)クロックバスに出力し得、次に、別のクロック速度を有する別のクロック信号を別の時間期間にわたり(例えば、第2の種類のメモリ装置が共有データバスでイネーブルされる時間)クロックバスに出力し得る。
【0023】
所与の種類のメモリ装置により使用されるプロトコルは、メモリ装置へのアクセスに使用される制御情報(例えば、命令セット)を指定する。場合によっては、そのような命令プロトコルは、どの命令(例えば、コマンド)が所与の種類のメモリに使用されるかを指定する。例えば、DRAMプロトコルは、フラッシュプロトコルに使用されないリフレッシュ命令を含み得、その一方で、フラッシュプロトコルは、DRAMプロトコルに使用されないポーリング命令を含み得る。場合によっては、命令プロトコルは、特定の命令に関連付けられたコード値を指定する。例えば、図9A及び図9Bにおいてより詳細に後述するように、一プロトコルでは、書き込み命令はコード値0×02を有し得、その一方で、別のプロトコルでは、読み出し命令はコード値0×02を有し得る。場合によっては、プロトコルは、所与の種類のメモリ装置のアクセスに関連付けられたタイミングパラメータを定義する。例えば、プロトコルは、メモリ装置が読み出し(又はポーリング)命令を受信した後、データがメモリ装置からの読み出しに利用可能な最小時間又は最大時間を定義し得る。プロトコルは、特定のメモリ装置にアクセスする場合にクロックに適用すべき1つ又は複数の位相シフトを定義し得る。場合によっては、命令プロトコルは、所与の種類のメモリにアクセスする場合に使用すべきパケットサイズを定義する。例えば、以下の図8A及び図8Bにおいてより詳細に後述するように、あるプロトコルは、各パケットが6ビット幅であり(例えば、6ワイヤ制御バスの場合)、4ビット長である(例えば、パケットは4クロックサイクルで出される)ことを指定し得、その一方で、別のプロトコルは、各パケットが3ビット長であることを指定し得る。場合によっては、命令プロトコルは、制御情報(例えば、コマンド及びアドレス)がメモリ装置に提供される特定の信号線を定義する。より詳細に後述するように、場合によっては、異なる種類のメモリにアクセスする場合、共有バスの1つ又は複数の信号路のタスクを変更し得る(例えば、データから制御に)。
【0024】
ブロック308で表されるように、メモリコントローラは、メモリ装置に送信すべき制御情報及び書き込みデータを提供する。例えば、メモリコントローラは、適切なコマンド及びアドレス(C/A)情報とデータ(DQ)とを、各メモリ装置に送られるパケットにフォーマットし得る。図23〜図26と併せてより詳細に後述するように、メモリコントローラは、有利なことには、共通のクロック速度でメモリ装置に送信すべき情報を処理し得る。例えば、コントローラは、共有バスを介して異なる速度で送信すべきフォーマットされたC/A情報及びデータを、これらの速度のうちの最高速度で提供し得る。この場合、より低速の情報を続けて処理して、共有バスに適切な速度でデータを出力し得る。例えば、後述するように、複製データをより低速のデータストリームに追加し得、又はタイミングバブルをこのデータストリームに追加し得る。同様の動作を、より低速で送信される制御情報に対しても実行し得る。
【0025】
ブロック310で表されるように、メモリコントローラは、異なるメモリ装置を宛先とする書き込みデータを共有バス上で時分割多重化する。したがって、本明細書で考察されるように(例えば、図2において)、メモリコントローラは、一種類のメモリ装置を宛先とした書き込みデータをあるクロック速度で送信し、別の種類のメモリ装置を宛先とした書き込みデータを別のクロック速度で送信する。
【0026】
メモリコントローラは、異なる実施態様では異なる方法でメモリ装置を宛先とした制御情報を出力し得る。場合によっては、制御情報は、上述したように、共有バス上でデータと時分割多重化し得る。すなわち、メモリコントローラは、時分割多重化制御・データバスを利用し得る。例えば、図2では、ブロックA1はC/A情報を含み得、ブロックB1〜D1は、メモリ装置のうちの1つを宛先としたデータを含み得る。
【0027】
場合によっては、メモリシステムは、別個のデータバス及び制御バスを利用し得る。これらの場合、制御バスはメモリ装置で共有し得、又は専用の制御バスを各メモリ装置に提供し得る。例えば、共有制御バスを利用し得、それにより、メモリコントローラは、異なるメモリ装置を宛先とした制御情報を共有制御バスに時分割多重化する。あるいは、専用の制御バスを各種のメモリに提供し得る。例えば、メモリコントローラは、制御情報を一種類のメモリ装置にある制御バスを介して送信し、制御情報を別の種類のメモリ装置に異なる制御バスを介して送信し得る。
【0028】
メモリコントローラが制御情報をメモリ装置に出力する速度は、この情報の搬送に使用される1つ又は複数のバスの構成に依存する。場合によっては、メモリコントローラは、制御情報を異なる速度で異なる種類のメモリ装置に出力する。例えば、多重化バス上で、メモリコントローラは、制御情報を一種類のメモリ装置にある速度で送信し(例えば、図2のブロックA1)、制御情報を別の種類のメモリ装置に異なる速度で送信し得る(例えば、図2のブロックA0)。同様に、専用の制御バスが利用される場合、メモリコントローラは、制御信号を異なる速度で異なる制御バスを介して送信し得る。
【0029】
他の場合、メモリコントローラは、制御情報を異なる種類のメモリ装置に、データがこれらのメモリ装置で異なる速度で送信されるにも関わらず、同じ速度で送信し得る。例えば、制御情報が共有バスを介して送信される場合(制御のみ又はデータ/制御)、メモリコントローラは、最も遅いメモリ装置に関連付けられたクロック速度(例えば、データ転送に使用される最も遅いクロック速度)又はより低速のある速度で制御情報を連続又は定期的に送信し得る。このようにして、共有バス上のすべてのメモリ装置が、少なくともいくつかの時点で制御情報を取得することが可能である。そのような方式は、より高速のメモリ装置が、最も遅いメモリ装置が動作する速度の整数倍の速度で動作する(例えば、制御情報を受信する)メモリシステムで特に実用的であり得る。そのような整数倍速度のクロック信号は、様々な方法で生成し得る。いくつかの実施態様では、低速クロックは、高速クロックを分周することにより生成し得る。いくつかの実施態様では、低速クロック及び高速クロックは共通クロックから生成し得る(例えば、異なる分周器を使用して、共通タイミング源から高速クロック及び低速クロックを生成し得る)。
【0030】
いくつかの態様では、共有バス上の時分割多重化は、どのメモリ装置が共有バス上でイネーブルされるかを制御することにより達成される。場合によっては、これは、図2に説明されるように、メモリ装置を相互に排他的にイネーブルする装置選択(例えば、チップ選択)信号の使用を通して達成される。
【0031】
場合によっては、メモリ装置のアクセス制御は、どのメモリ装置が共有バス上で所与のデータ転送にイネーブルされるかを指定する制御情報の使用を通して達成される。例えば、バス上のすべてのメモリ装置は、どのメモリ装置が所与の時間期間にわたり共有バス上でデータ転送にイネーブルすべきかを示す制御情報を受信するように構成し得る。ここで、メモリ装置は、連続して、又は指定された時間(例えば、定期的)に制御情報を受信するように構成し得る。この情報に基づいて、各メモリ装置は、それ自体を共有バス上で指定された時間にデータ転送にイネーブルし得る。
【0032】
したがって、ブロック312及び314で表されるように、メモリ装置は適切な時間にイネーブルされて、それぞれの書き込みデータをメモリコントローラから受信する。ここで、第1のメモリ装置がイネーブルされる場合、メモリ装置は、受信器回路をイネーブルし得、それにより、クロック信号(例えば、共有クロックバスの場合)、制御情報、及びデータをこの時間期間中に受信する。対照的に、共有バス上の他の任意のメモリ装置は、この時間期間中、共有バス上の信号を無視し得る。例えば、別のメモリ装置は受信器回路をディセーブルし得、それにより、クロック信号、制御情報、又はデータをこのときに受信しない。受信器回路のイネーブル及びディセーブルを行うためにメモリ装置に利用し得る例としての回路を図20〜図22において後述する。
【0033】
イネーブルされる場合、各メモリ装置は、対応するクロック信号(例えば、メモリコントローラ、そのメモリ装置、又は他の何らかのエンティティにより提供される)を使用して、書き込みデータを共有バスから受信する。例えば、図2に示されるように、所与のメモリ装置(装置1)は、第1のクロック速度(1X)を有するクロック信号を使用して、書き込みデータ(A1〜D1)を受信し得る一方で、別のメモリ装置(装置0)は、第2のクロック速度(2X)を有する別のクロック信号を使用して、書き込みデータ(A0〜D0)を受信し得る。
【0034】
図4を参照すると、このフローチャートは、共有バスを介する異なる種類のメモリ装置からのデータ読み出しと併せて実行し得る例としての動作を説明する。ブロック402及び404で表されるように、ある時点で、メモリコントローラは、第1の種類のメモリ装置に対応するアドレスからデータを読み出す要求を受信するとともに(例えば、システムプロセッサから)、第2の種類のメモリ装置に対応するアドレスからデータを読み出す要求も受信する。
【0035】
ブロック406で表されるように、メモリコントローラは、読み出し動作に使用すべき適切なクロック速度及びプロトコルを選択し得る。したがって、これらの動作は、ブロック306において上述した動作と同様であり得る。
【0036】
ブロック408で表されるように、メモリコントローラは、メモリ装置に送信すべき読み出し要求の制御情報を提供する。例えば、メモリコントローラは、適切なコマンド及びアドレス(C/A)情報を、各メモリ装置に送られるパケットにフォーマットし得る。メモリコントローラは、適切なバスを介して(例えば、共有データ/制御バスを介して、共有制御バスを介して、又は専用制御バスを介して)制御情報をメモリ装置に送信する。したがって、これらの動作は、ブロック308及び310において上述した類似の動作と同様であり得る。例えば、制御情報は、同じ又は異なる速度で異なるメモリ装置に送信し得、制御情報は、共有バス上で時分割多重化し得、装置選択信号又は他のアクセス制御技法を使用して、共有バス上でのデータ転送にメモリ装置をイネーブルし得る等である。
【0037】
ブロック410及び412で表されるように、メモリ装置は、読み出し要求の受信を受けて、適切な時間にイネーブルされ、各読み出しデータを共有バスに出力する。したがって、各メモリ装置は、メモリコントローラにより提供される対応するクロック信号を使用して、読み出しデータを出力し、それにより、データは共有バス上に異なる速度で時分割多重化される。したがって、これらの動作は、いくつかの側面において(例えば、アクセス制御、制御情報の受信、及びクロック信号の使用に関して)ブロック312及び314において上述した書き込み動作と同様であり得る。
【0038】
ブロック414で表されるように、メモリコントローラは、共有バスから時分割多重化データを受信する。図24及び図26において後述するように、いくつかの実施態様では、メモリコントローラは、有利なことに、異なるメモリ装置からの読み出しデータが共有バス上に異なる速度で現れるにも関わらず、単一の速度で受信時分割多重化データをサンプリングし得る。例えば、受信データは、最高速メモリ装置(例えば、データの転送に使用される最高速クロック速度)に関連付けられたクロック速度又はより高速のある速度でサンプリングし得る。
【0039】
ブロック416で表されるように、メモリコントローラは、妥当な場合、受信読み出しデータを処理して、読み出しデータを適切で効率的な速度で提供する。例えば、より高速のクロックが、より低速のデータのサンプリングに使用される場合、複製又はタイミングバブルを受信データストリームから除去し得る。逆に、サンプリングクロック速度がデータ速度と同じである場合、メモリコントローラは、データをさらに処理する必要がないことがある。読み出しデータがメモリ装置のうちの所与の1つから取得されると、メモリコントローラは、データを要求側(例えば、システムプロセッサ)に送信して、読み出し動作を完了する。
【0040】
これより図5を参照して、メモリコントローラ及びメモリ装置に利用し得る例としての高レベル機能構成要素を説明する。ここでは、メモリシステム500はメモリコントローラ502を含み、メモリコントローラ502は、共有信号バス508を介して異なる種類のメモリ装置504及び506にアクセスする。したがって、図5の構成要素は、図1において説明される同様の構成要素に対応し得る。いくつかの態様では、メモリコントローラ502と、メモリ装置504及び506とは、従来のメモリコントローラ及びメモリ装置と同様の機能を提供する。加えて、メモリコントローラ502と、メモリ装置504及び506は、本明細書において教示されるメモリ制御動作に役立つ機能を含む。図5は、この追加の機能を提供し得る例としての機能構成要素を簡略化して示す。
【0041】
メモリコントローラ502は、メモリ制御論理524と、インタフェース回路526(例えば、一般にPHYとして知られる物理的なインタフェース回路)とを含む。メモリ制御論理524は、例えば、プロセッサバス528(例えば、CPUバス)を介して処理エンティティ(例えば、CPU)から受信した命令(例えば、コマンド、要求等)のキュー入れ及び解釈、システムバス528を介して受信した書き込みデータのメモリ装置504及び506への転送、システムバス528を介してメモリ装置504及び506から読み出した読み出しデータの転送、命令アービトレーションの実行、読み出し動作及び書き込み動作のタイミング制限の実行、並びにデータが正確な速度で、本明細書において教示される適切なプロトコルを使用してメモリ装置504又は506から読み書きされることの保証等の機能を実行する。加えて、メモリ制御論理524は、メモリ回路534に記憶された情報(例えば、メモリマップ)を使用して、異なる種類のメモリ装置にアクセスする場合に使用すべき動作パラメータ(例えば、クロック速度、プロトコル等)を決定し得る。インタフェース回路526は、例えば、チャネルの駆動、ビットの受信、データの直列化、データの非直列化、及びクロック領域交差機能の提供等の動作を実行し得る。これら及び他のメモリコントローラの動作については、図6〜図11においてより詳細に後述する。
【0042】
メモリ装置504及び506のそれぞれは、インタフェース回路530又は532と、装置制御論理512又は514と、メモリアレイ516又は518とを含む。便宜上、以下にメモリ装置504の構成要素の例としての動作について説明する。同様の動作をメモリ装置506の構成要素により実行し得ることを理解されたい。インタフェース回路530は、システムバス(例えば、共有信号バス508、クロックバス520、及び制御バス522)とインタフェースして、メモリアレイ516とのデータの読み書きに役立つ。いくつかの態様では、インタフェース回路530は、クロックバス520上に提供されるクロックに基づく速度で、システムバスのうちの1つ又は複数から制御情報及び/又はデータを受信するように構成される。加えて、インタフェース回路530は、クロックバス520上に提供されるクロックに基づく速度で、メモリアレイ516から読み出したデータを共有信号バス508に出力するように構成される。制御論理512は、メモリ装置504に関連付けられたプロトコルを使用して、メモリアレイ516の読み書きを制御する。特に、制御論理512は、インタフェース回路530が受信した書き込みデータをメモリアレイ516に転送し、メモリアレイ516からの読み出しデータを、共有信号バス508を介して送信するために、インタフェース回路528に転送する。これら及び他のメモリ装置動作については、図11〜図22においてより詳細に後述する。
【0043】
図5の例では、メモリ装置504及び506はメモリ装置510内で実施される。いくつかの実施態様では、メモリ装置510は、メモリ装置504及び506が一緒にパッケージされた単一の集積回路パッケージを備える。例えば、メモリ装置504及び506のダイをパッケージ内の共通基板上に提供し、上下に重ね、又は他の何らかの様式で同じ場所に配置し得る。メモリ装置510は、例えば、メモリ装置504及び506が上に配置されたプリント回路基板等の他の形態を取ってもよい。メモリ装置510は、任意の適した数の異なる種類のメモリ装置及び/又は任意の適した数のメモリ装置も備え得る。
【0044】
そのようなメモリ装置の使用を通して、メモリシステム500は、異なる種類のメモリ装置に別個のインタフェースを使用する従来のシステムと比較して、少数の信号路を組み込み得る(例えば、メモリコントローラ502及びメモリ装置510が上に配置された回路基板上に)。したがって、メモリシステム500の複雑性、ひいてはコストを、これらの従来のシステムと比較して下げることができる。
【0045】
メモリ装置510は、メモリ装置504及び506にシステムバスをルーティングするのに適した信号路を含む。特に、共有信号バス508は、メモリ装置504及び506に並列してルーティングされる。例えば、共有信号508バスは、マルチドロップ結合方式を使用してメモリ装置504及び506にルーティングし得る。加えて、制御バス522及び/又はクロックバス520は、並列構成でメモリ装置504及び506にルーティングし得、又はこれらのバスの異なる部分を一方又は他方のメモリ装置にルーティングし得る。
【0046】
場合によっては、クロックバス520は、異なるクロック速度を有する異なるクロック信号が多重化される単一の信号路又は複数の信号路(例えば、異なる信号又は分岐クロック毎に)を備え得る。あるいは、場合によっては、クロックバス520は、1組の専用クロック信号路を備え得、この場合、所与の信号路(又は一対の経路)がメモリ装置のうちの所与の1つにルーティングされる。
【0047】
異なる実施態様では、制御信号をメモリコントローラと関連付けられたメモリ装置との間で異なる方法でルーティングしてもよい。したがって、図5の制御バス522は、異なる実施態様では異なる形態をとり得る。
【0048】
いくつかの実施態様では、制御信号は共有信号バス508上でデータと多重化される。この場合、制御バス522は、アクセス制御信号(例えば、図1に示されるような装置選択信号)又は他の何らかの種類の信号を搬送する単一の信号路又は複数の信号路を備え得る。
【0049】
いくつかの実施態様では、制御信号はデータとは異なる1つ又は複数のバス上に提供される。この場合、制御バス522は、共有制御バス又はいくつかの専用制御バス(すなわち、異なる組の制御信号路)を備え得る。
【0050】
共有制御バスを使用する実施態様では、制御バス522は、メモリ装置504及び506に並列にルーティングされる多重化バスを備え得る。ここでも、異なる種類のメモリ装置を宛先とした制御信号は、この場合、同じ又は異なる速度で提供し得る。
【0051】
制御バス522がいくつかの専用バス(例えば、異なる種類のメモリ装置毎に1組の専用制御信号路)を備える実施態様では、所与の専用バスをメモリ装置のうちの所与の1つにルーティングし得る。例えば、1組の信号路は、C/A信号を一種類のメモリ装置に搬送するC/Aバスを備え得る一方で、異なる組の信号路は、別の組のC/A信号を別の種類のメモリ装置に搬送する別のC/Aバスを備え得る。そのような場合、異なる組の制御信号路上の制御信号は通常、異なる速度で(例えば、メモリ装置の固有速度に基づいて)提供される。
【0052】
図6は、本明細書において教示されるように、異なる種類のメモリ装置への異なる速度での読み書きに役立つために、メモリコントローラ502に利用し得る例としての構成要素を示す。メモリ制御論理524は装置選択論理602を含み、装置選択論理602は、異なる種類のメモリにアクセスする場合に使用すべき異なるパラメータ又は情報を、この情報にメモリ装置534のメモリマップ604からアクセスすることにより選択し得る。例えば、装置選択論理602は、読み出し命令又は書き込み命令と共に受信するターゲットアドレスをメモリマップへの参照入力として使用することにより、アクセスすべき特定の種類のメモリ(例えば、ターゲットメモリ装置)を選択(例えば、識別)し得る。加えて、装置選択論理602は、所与の種類のメモリにアクセスする場合に使用すべきクロック速度及び/又はプロトコルを選択し得る。例としてのメモリマップについては図7においてより詳細に後述する。
【0053】
上述したように、メモリ制御論理524は、メモリコントローラ502により制御される任意の異なる種類のメモリにデータを書き込み、且つ/又はメモリからデータを読み出すシステム構成要素からプロセッサバス528を介して受信される命令を処理する機能を提供する。ここで、メモリ制御論理524は、入力された命令をキューに入れるための命令キュー606を利用し得る(例えば、新しい命令を受信した場合、メモリ装置のアクセスが保留されるとき)。装置0及び装置1の命令キュー608及び610のそれぞれで表されるように、メモリコントローラ502により制御されるメモリ装置毎に命令キューを提供し得る。
【0054】
メモリ制御論理524は、入出力(I/O)回路612を介してプロセッサバス528とインタフェースする。I/O回路612は、異なる実施態様では異なる形態をとり得る。メモリコントローラ502が、メモリコントローラ502を使用してシステムメモリにアクセスするシステムエンティティ(例えば、CPU)と同じ集積回路(例えば、同じダイ)上に存在する実施態様では、I/O回路612は単に、例えば、同じダイ内の他の論理への信号路を備え得る。メモリコントローラ502が、メモリコントローラ502を使用するシステムエンティティとは異なる集積回路(例えば、異なるダイ)上に存在する場合、I/O回路612は、例えば、信号を駆動し受信する送信器構成要素及び受信器構成要素も備え得る。
【0055】
メモリ制御論理524は、インタフェース回路526を介してコマンドをメモリ装置に送信し、メモリ装置とデータを転送する。いくつかの態様では、インタフェース回路526は、プロセッサクロック領域とメモリクロック領域との変換を行うクロック領域交差回路(例えば、FIFO614として実施される)を備える。例えば、メモリ制御論理524は、プロセッサクロック回路616により提供されるプロセッサクロック(例えば、PCLK)に基づいて動作(例えば、クロックイン情報及びクロックアウト情報)を実行し得る。しかし、1つ又は複数のメモリバス(例えば、バス508と、場合によっては図5のバス522と)を介するメモリコントローラ502とメモリ装置との間での情報転送は、メモリクロック回路618により提供されるメモリクロック(例えば、MCLK)に基づいて異なるクロック速度で行われる。
【0056】
クロック回路618により提供される現在のクロック速度は、装置選択論理602により提供される装置選択信号に基づく。これより図7を参照すると、メモリ制御論理524(例えば、装置選択論理602)が所与の種類のメモリ装置へのアクセスに適切なパラメータをいかに選択し得るかの例について説明する。
【0057】
メモリマップ604は、メモリ装置の異なる種類毎に異なるエントリを含む。例えば、第1の組のエントリ702は第1の種類のメモリ装置(装置0として示される)に対応し得、第2の組のエントリ704は第2の種類のメモリ装置(装置1として示される)に対応し得る。ここで、メモリマップ604は、1組(例えば、ある範囲)のターゲットアドレスを各組のエントリにマッピングし得る。例えば、第1の種類のメモリ装置に割り当てられた物理アドレスに対応するアドレス範囲706(例えば、ある範囲の仮想アドレス)が、第1の組のエントリ702にマッピングされる。同様に、第2の種類のメモリ装置に割り当てられた物理アドレスに対応する異なるアドレス範囲708(例えば、ある範囲の仮想アドレス)が、第2の組のエントリ704にマッピングされる。したがって、メモリ制御論理524が、特定のターゲットアドレスを含む命令(例えば、読み出し要求又は書き込み要求)を受信する場合、メモリ制御論理524は、そのターゲットアドレスが入るのがどのアドレス範囲であるかを識別し、次に、メモリマップ604のマッピングに基づいて、どの組のエントリをそのメモリアクセスに使用すべきかを決定する。
【0058】
所与の種類のメモリ装置のエントリは様々な形態をとり得る。例えば、図7に示されるように、エントリは、1)その種類のメモリ装置に関連付けられた1つ又は複数の装置、2)その種類のメモリ装置にアクセスする場合に使用すべきクロック速度、3)その種類のメモリ装置にアクセスする場合に使用すべきプロトコル、4)その種類のメモリ装置に対応するすべての仮想アドレスを対応するすべての物理アドレスにマッピングする物理アドレスマップ、並びに5)例えば、クロックを切り替える場合に利用すべき整定時間量及びその種類のメモリ装置にアクセスする場合にクロックに利用すべき位相調整等の装置タイミングパラメータを識別し得る。上記に鑑みて、いくつかの態様では、メモリマップ604が特定の種類のメモリ装置と、クロック速度、プロトコル等の様々な装置パラメータとのマッピングを提供することが分かり得る。
【0059】
図12においてより詳細に考察するように、いくつかの実施態様では、メモリ制御論理524は、特定の種類のメモリ装置にアクセスする場合、クロック速度情報を使用してクロック回路を構成し、所望のクロック信号を提供する。しかし、いくつかの実施態様では、メモリ制御論理524は単に、メモリマップからの特定のメモリ装置の識別情報に基づいて装置選択信号をアサートし得る。例えば、受信した命令がメモリ装置0をターゲットとするとの特定を受けて、メモリ制御論理(例えば、装置選択論理602)は単に、そのメモリ装置の装置選択信号をアサートし得る。次に、クロック回路618を、装置選択信号のアサートに基づいて適切なクロック速度でクロック信号を提供するように構成し得る。
【0060】
上述したように、異なる種類のメモリ装置は異なるプロトコルを使用するように構成し得る。したがって、メモリ制御論理524は、メモリマップ604から得られる特定のプロトコル情報に基づいて、特定のメモリ装置を宛先としたコマンド(例えば、読み出し、書き込み等)をフォーマットし得る。図8A及び図8Bは、異なる種類のメモリ装置が利用し得るプロトコルフォーマット(例えば、パケット構造)の2つの例を示す。図8Aは、例えば、DRAMの読み出し/書き込みコマンドに対応し得る。この場合、プロトコルは、命令コード(OP)、列アドレス(C)、及びバンクアドレス(BA)等の特定の情報がパケット内の特定の位置に現れることを指定する。図8Bは、例えば、フラッシュメモリのコマンドに対応し得る。この場合、プロトコルは、命令コード(OP)及びアドレス(A)等の特定の情報がパケット内の特定の位置に現れることを指定する。図8A及び図8Bは、異なるプロトコルが異なるパケットサイズ(例えば、4ビット長パケット及び3ビット長パケット)構造を指定し得ることを示す。図8A及び図8Bでは、パケットの高さは時間中のビット数を表し(例えば、時間T(N)、T(N+1)、T(N+2)、及びT(N+3))、その一方で、パケットの幅はパケットのビット幅(例えば、ビット0〜5)を表し、パケットの各ビット幅は、制御バスの別個のワイヤ(例えば、送信路0〜5及び/又はI/O路0〜5)に対応し得る。
【0061】
加えて、図9A及び図9Bは、異なるプロトコルが異なる制御シグナリングを使用し得ることを示す。例えば、図9Aの命令コード(例えば、図8Aの命令コード)は、3本のワイヤ(ビット0〜2)を介して送信し得る一方で、図9Bの命令コード(例えば、図8Bの命令コード)は、2本のワイヤ(ビット0〜1)を介して送信し得る。図9A及び図9Bは、異なるプロトコルが、異なるコマンドの識別に同じ値を使用し得ることも示す。例えば、値0×2は、図9Aでは読み出しに対応し、図9Bでは書き込みに対応する。
【0062】
上記を念頭に置き、命令を処理するためにメモリ制御論理524により実行し得る例としての動作について、図10を参照してこれより対処する。ここで、メモリ制御論理524が、入力された命令を上述したように適切な命令キューに配置すると仮定する。
【0063】
ブロック1002で表されるように、メモリ制御論理は、キューのうちの1つから次の命令を検索する。複数の命令が同時に保留中の場合、適切なアービトレーション技法をここで利用し得る。例えば、特定のメモリアクセス(例えば、特定のメモリ種類又はアドレスへの書き込み又はアクセス)を他よりも優先し得、所与のメモリ装置へのアクセスをキューに入れて、複数の連続アクセスを可能にし得る等である。
【0064】
ブロック1004で表されるように、メモリ制御論理は、命令により提供される仮想アドレスを使用して、適切なメモリ装置パラメータをメモリマップから得る。したがって、上述したように、メモリ制御論理は、ターゲットメモリ装置、クロック速度、クロック位相、整定時間、及び他の情報を識別し得る。
【0065】
ブロック1006で表されるように、メモリ制御論理は次に、メモリマップから検索されたパラメータに基づいて適切な1つ又は複数のメモリ装置をイネーブルし得る。例えば、適切な装置選択をこの時点でイネーブルし得、他の任意の前にイネーブルされた装置選択をディセーブルし得る。加えて、ブロック1008で表されるように、いくつかの実施態様では、メモリ制御論理は、メモリマップから検索された情報に基づいてクロック速度及び位相情報を取得し得、この情報を使用して、要求されたアクセスに適切なクロックを提供し得る。
【0066】
ブロック1010で表されるように、クロック速度が変更される場合、メモリ制御論理は、クロックが整定できるようにする定義された時間期間にわたって遅延し得る。ここで、メモリ制御論理は、メモリ装置の種類のメモリマップから得られる遅延(例えば、整定時間)情報に基づいて遅延量を決定し得る。
【0067】
ブロック1012で表されるように、メモリ制御論理は、メモリマップから検索されるプロトコル情報に基づいて、メモリ装置に送信すべきコマンドをフォーマットする。例えば、メモリ制御論理は、図8A〜図9Bに示されるように、使用に適切なパケット構造を決定し得る。
【0068】
ブロック1014で表されるように、メモリ制御論理は、フォーマットされたコマンドをメモリ装置に送信する。図11においてより詳細に後述するように、いくつかの実施態様では、これは、適切なメモリ装置に続けて送られるように、パケットをFIFO614に送信することを含む。
【0069】
ブロック1016で表されるように、次に、メモリ制御論理は、このコマンドの完了を待ってから、命令キューから次の命令を検索し得る。しかし、ここで、パイプライン処理又は他の技法を利用して、コントローラ性能を向上させ得ることを理解されたい。
【0070】
図11は、メモリコントローラのインタフェース回路及びクロック回路(例えば、1つ又は複数のクロック回路)に利用し得る例としての構成要素を示す。ここで、メモリコントローラ502は、第1の種類のメモリ装置1102と、第2の種類のメモリ装置1104とに接続されて示される。メモリ装置1102のアクセスは、あるクロック速度を有するクロック0に基づいて実行され、その一方で、メモリ装置1104のアクセスは、異なるクロック速度を有するクロック1に基づいて実行される。クロック信号は、メモリコントローラ502の内部で使用されるクロックと、メモリコントローラ502とメモリ装置1102及び1104との間の信号路に存在するクロックとの間に位相差があり得ることを示すために、クロック0及びクロック0’として、そしてクロック1及びクロック1’として示される。本明細書において考察するように、これらのクロックは、メモリコントローラ502、メモリ装置1102及び1104、又は他の何らかの構成要素で生成し得る。
【0071】
図6のFIFO614は、図11では2つのFIFOとして表される。送信FIFO1106は、情報をメモリ装置1102及び1104に送信する場合に使用される。受信FIFO1108は、メモリ装置1102及び1104から情報を受信する場合に使用される。メモリクロック領域では、情報は、MCLKにより駆動される1組のラッチ(便宜上、ラッチ1108で表される)の使用を通して、メモリ装置にクロックアウトされる。各ラッチ信号は、対応する送信器(便宜上、送信器1110で表される)により駆動され、適切なメモリバス信号路に提供される。逆に、メモリバス信号路上でメモリ装置により駆動される信号は、受信器(便宜上、受信器1112で表される)により受信され、次に、MCLKにより駆動される1組のラッチ(便宜上、ラッチ1114で表される)を介してクロックインされる。
【0072】
この例では、MCLKのクロック速度は、マルチプレクサ1116の制御に使用される装置選択信号の現在値により決定される。例えば、選択元として2つのクロック信号しかない場合、装置選択信号は0又は1の値をとり得る。ここで、一方の値は、クロック回路1118により提供されるクロック0をMCLKとして提供させ、他方の値は、クロック回路1118により提供されるクロック1をMCLKとして提供させ得る。
【0073】
メモリ装置1102は、インタフェース回路1120と、装置制御論理1122と、メモリアレイ1124とを含む。インタフェース回路1120は、例えば、受信器と、送信器と、信号を送受信するためのラッチとを含み得る。装置制御論理1122は、例えば、メモリコントローラ502からのコマンドを解釈し、メモリアレイ1124をアクティブ化し、データをメモリアレイ1124に送信し、メモリアレイ124からデータを検索する機能を含み得る。メモリ装置1104も、同様の名称のインタフェース回路1126と、装置制御論理1128と、メモリアレイ1130とを含む。しかし、これらの構成要素の機能は、メモリの種類がこの例では異なるため、いくつかの側面で異なる。
【0074】
図12は、クロック信号がメモリコントローラ502のクロック回路1202により生成されるメモリシステムの実施形態を示す。この例では、クロック回路1202は、指定された周波数で主クロック信号を生成する位相ロックループ(PLL)回路1204を含む。クロック信号であるクロック0及びクロック1は、分周器1206及び1208のそれぞれの使用を通してこの主クロック信号から生成される。分周器1206及び1208により使用される除数は事前に定義することができ、より典型的には、レジスタ1210に記憶された対応する速度値(速度0及び速度1)により指定し得る。
【0075】
したがって、この後者の場合、クロック0及びクロック1のクロック速度は、メモリ制御論理524が適切な値をレジスタ1210にプログラムすることにより指定し得る。上述したように、場合によっては、これらの値はメモリマップから得られる情報に基づき得る。場合によっては、これらの値は、システムに最初にメモリ装置が構成されるとき、又はメモリコントローラが初期化されるときに常に、ロードし得る(例えば、不揮発性メモリからロードされる値)。
【0076】
図12は、位相調整回路1212及び1214が、クロック信号であるクロック0及びクロック1の位相制御に使用される実施態様も示す。位相調整回路1212及び1214により付与される位相シフトは、事前に定義することができ、より典型的には、レジスタ1210に記憶された対応する位相値(位相0及び位相1)により指定し得る。
【0077】
したがって、後者の場合、クロック0及びクロック1の位相調整は、メモリ制御論理524が適切な値をレジスタ1210にプログラムすることにより指定し得る。上述したように、場合によっては、これらの値はメモリマップから得られる情報に基づき得る。場合によっては、これらの値は、システムに最初にメモリ装置が構成されるとき、又はメモリコントローラが初期化されるときに常に、ロードし得る(例えば、不揮発性メモリからロードされる値)。
【0078】
場合によっては、位相値は較正回路1216により決定し得る。例えば、較正回路は、既知のデータパターンをメモリ装置に送信させ、メモリ装置に返信させ得る。次に、異なる位相値がレジスタ1210にプログラムされる場合、返信データを収集し得る。次に、各位相の誤差率又は返信データに関連付けられた他の情報に基づいて、較正回路1216は最適な位相値を選択し得る。
【0079】
図12の例では、MCLKが、装置選択信号に基づいてクロック0及びクロック1から選択される。次に、MCLKは、上述したように、適切なインタフェース回路構成要素1218(例えば、ラッチ及びFIFO)に提供される。
【0080】
クロック信号であるクロック0及びクロック1は、対応するメモリ装置にも送信される。便宜上、メモリ装置1102のみが図12に示される。ここで、クロック0はインタフェース回路1120により受信され(インタフェース回路1120は単にクロック信号の受信器を提供し得る)、インタフェース回路1120は、信号路1220を介して信号をメモリ装置1102のクロック回路1222にルーティングする。次に、クロック回路1222は、クロック0に基づいて、メモリ装置1102の構成要素(例えば、インタフェース回路1120内のラッチ)が使用する1つ又は複数のクロック信号を生成し得る。例えば、クロック回路1222は、位相遅延をクロックに付与する回路を組み込んでもよく、クロックをクリーンアップする回路(例えば、PLL)を組み込んでもよく、又は他の種類の回路(例えば、クロックを受動的に渡す)を組み込んでもよい。
【0081】
上述したように、場合によっては、2つ以上のクロックを所与の種類のメモリ装置に使用し得る。例えば、あるクロック速度をメモリ装置からの読み出しに使用し、別のクロック速度をメモリ装置への書き込みに使用し得る。
【0082】
図13は、3つ以上のクロック信号が2つのメモリ種類に提供されるクロック回路1302の例を示す。ここで、分周器1304は、クロック1306を第1のクロック速度で提供し、分周器1308は、クロック1310を第2のクロック速度で提供し、分周器1312は、クロック1314を第3のクロック速度で提供する。クロック1306は、例えば、第1のメモリ装置(例えば、装置0)から読み出す場合に使用し得る。クロック1310は、例えば、第1のメモリ装置(例えば、装置0)に書き込む場合に使用し得る。クロック1314は、例えば、第2のメモリ装置(例えば、装置1)から読み出すか、又は書き込む場合に使用し得る。
【0083】
これらのクロックの選択に様々な技法を使用し得る。図13の例では、読み出し/書き込み選択信号(例えば、メモリ制御論理により提供される)が、装置選択信号と併せて使用される。しかし、他の場合、他の種類の信号を利用し得る。例えば、特定の種類のアクセスポイントの特定のアクセス(例えば、読み出し又は書き込み)に特定のコードを提供する信号を使用し得る。
【0084】
図14は、クロック信号がメモリ装置により生成されるメモリシステムの実施形態を示す。例えば、メモリ装置1102のクロック回路1402は、指定された周波数でクロック信号を生成するPLL回路1404を含む。いくつかの態様では、このクロック信号は、メモリ装置1102の構成要素(例えば、インタフェース回路1120内のラッチ)により使用される1つ又は複数のクロック信号の生成に使用し得る。
【0085】
クロック信号は、信号路1406及びインタフェース回路1120(単にクロック信号の送信器を提供し得る)を介してメモリコントローラ502にも送信される。したがって、クロック信号であるクロック0及び他の任意のクロック信号(例えば、クロック1)は、メモリコントローラ502の受信器により受信され、受信器はクロック信号をクロック回路1408にルーティングする。次に、クロック回路1408は、受信信号を処理して、メモリコントローラ502による使用にクロック(例えば、クロック0’及びクロック1’)を提供する。例えば、クロック回路1408は、位相遅延をクロックに付与する回路を組み込んでもよく、クロックをクリーンアップする回路(例えば、PLL1410)を組み込んでもよく、又は他の種類の回路(例えば、クロックを受動的に渡す)を組み込んでもよい。
【0086】
図15は、クロック信号が、メモリコントローラ502及びメモリ装置から外部のクロック生成器1502により生成されるメモリシステムの実施形態を示す。このクロック信号は、メモリコントローラ502のクロック回路1504と、メモリ装置のクロック回路(例えば、メモリ装置1102のクロック回路1506)とに、データ転送動作に使用するために送信される。
【0087】
クロック回路1504は、任意選択的に、受信クロック信号を処理し得る(例えば、クロックに位相遅延を付与するため、PLL回路1508を使用してクロックをクリーンアップするため)。いずれの場合でも、受信クロック信号又は処理されたクロック信号のいずれかが分周器1510及び1512に提供され、異なるクロック(例えば、クロック0及びクロック1)を異なる種類のメモリ装置のアクセスに提供する。上述したように、クロック回路1504は、分周器1510及び1512を構成するレジスタ1514を利用し得る。
【0088】
クロック回路1506は、任意選択的に、受信クロック信号を処理してもよい(例えば、クロックに位相遅延を付与し、PLL回路1516を使用してクロックをクリーンアップし得る)。したがって、受信クロック信号又は処理されたクロック信号のいずれかが、分周が必要な場合には分周器1518に提供され、メモリ装置1102にアクセスするクロック(例えば、クロック0)を提供する。本明細書において考察するように、クロック回路1506は、分周器1518を構成するレジスタ(図15に示されず)を利用してもよく、又は分周器1518は何らかの他の様式で構成してもよい(例えば、事前定義)。
【0089】
いくつかの実施態様では、分周器を外部クロック生成器において利用し得る(例えば、メモリコントローラ及びメモリ装置で利用する代わりに)。図16は、この種の実施態様の例を示す。ここでは、クロック生成器1602において生成されるクロックは、1つ又は複数の分周器1604に提供されて、複数のクロック信号(例えば、クロック0及びクロック1)が生成される。次に、これらのクロック信号はメモリコントローラ502と、メモリ装置1102及び1104とに提供され、上述したように使用される。例えば、メモリコントローラ502のクロック回路1606は、装置選択信号に基づいて、これらのクロック信号のうちの一方を、内部データ転送クロック動作に選択し得る。
【0090】
いくつかの実施態様では、クロック信号は、埋め込みクロック・データ信号を介してメモリシステム内の構成要素間で渡し得る。図17は、メモリコントローラ502が埋め込みクロック・データ信号をメモリ装置1102に送信する例を示し、その一方で、図18は、メモリ装置1102が埋め込みクロック・データ信号をメモリコントローラ502に送信する例を示す。
【0091】
図17では、送信FIFO1106からのデータは埋め込みクロック回路1702に提供され、埋め込みクロック回路1702は、クロック(例えば、MCLK)をデータに埋め込み、埋め込みクロック・データ信号を提供する。次に、この信号はメモリ装置1102に送信され、メモリ装置1102において、クロック・データ復元回路1704がデータを抽出し、受信信号からクロックを復元する。次に、復元されたクロックはクロック回路1706に提供し得、クロック回路1706は、任意選択的に、復元されたクロックを処理し(例えば、位相調整又は信号のクリーンアップ)、復元されたクロックを使用してI/Oクロックを提供する。このI/Oクロックは、例えば、データをメモリコントローラ502に送信するために使用し得る。
【0092】
図18では、メモリ装置1102のメモリアレイから読み出されたデータは、埋め込みクロック回路1802に提供され、埋め込みクロック回路1802は、クロック(例えば、クロック回路1804により生成されたI/Oクロック)をデータに埋め込み、埋め込みクロック・データ信号を提供する。次に、この信号はメモリコントローラ502に送信され、メモリコントローラ502において、クロック・データ復元回路1806が、受信信号からデータを抽出し、クロックを復元する。次に、復元されたクロックはクロック回路1808に提供し得、クロック回路1808は、任意選択的に、復元されたクロックを処理し(例えば、位相調整又は信号のクリーンアップ)、復元されたクロックを使用してクロック(例えば、MCLK)を提供する。本明細書において考察するように、MCLKは、例えば、データをメモリ装置1102に送信するために使用し得る。
【0093】
上述したように、メモリ装置がクロック分周器を含む実施態様では、その分周器の除数はプログラム可能である。図19は、そのような分周器をいかにプログラムし得るかの一例を示す。この場合、低速バスがメモリコントローラ502と、メモリ装置1102及び1104のクロック回路1902及び1904のそれぞれとの間に提供される。このようにして、除数情報又は他の適した情報を、分周器1910及び1912を制御する速度選択回路1906及び1908のそれぞれに提供し得る。いくつかの実施態様では、速度選択回路は、低速バスを介する通信を可能にする機能と、除数情報を記憶する機能(例えば、データレジスタ)とを備え得る。
【0094】
この例では、分周器1910及び1912に入力を提供するクロックは、メモリコントローラ502により提供されるものとして示される。しかし、クロックが何らかの他のエンティティ(例えば、図15のクロック生成器)で発生する場合もあることを理解されたい。
【0095】
図20〜図22は、メモリ装置を時分割多重化バス上で選択的に動作できるようにするために利用し得る技法を示す。特に、図20は、メモリ装置のイネーブルに装置選択信号を使用する実施形態を示し、図21は、メモリ装置のコマンドに基づくイネーブルを使用する実施形態を示し、図22は、時分割多重化クロック信号のイネーブル受信にクロック受信イネーブル信号を利用する実施形態を示す。
【0096】
図20では、状態機械2002(例えば、装置制御論理1122の)が、制御バス上の入力コマンドを処理する。例えば、状態機械2002は、制御バス上のコマンドを識別し、コマンドのフィールドを解釈するコマンドインタプリタ2004を備え得る(例えば、図8A〜図9Bに示されるように)。メモリ装置1102がそのメモリ装置に意図されたコマンドのみを解釈することを保証するために、メモリコントローラは、メモリコントローラがメモリ装置1102にアクセスしている場合のみメモリ装置1102をイネーブルする装置選択信号を提供し得る。例えば、装置選択信号のアクティブ化を受けて、状態機械2002は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号をメモリ装置1102の受信器2006及び送信器2008(例えば、インタフェース回路1120内に提供される)に提供し得る。逆に、装置選択信号の非アクティブ化を受けて、状態機械2002は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号を非アクティブ化し得る。このようにして、メモリ装置1102がメモリアレイ1124に対して意図しない書き込みを実行せず、又はTDMデータバス上に誤った時間(例えば、別の装置がTDMデータバスを使用している時間)にデータを出力しないことを保証し得る。
【0097】
図21では、メモリ装置1102は、制御バス上の入力コマンドを処理する状態機械2102(例えば、コマンドインタプリタ2104を備える)も含む。しかし、この場合、制御バス上のコマンドは、特定のメモリ装置種類がTDMデータバス上でイネーブルされるか否かを示し得る。例えば、図8A及び図8Bに示されるように、コマンドは、データバス上での続く(例えば、次の)動作にイネーブルされるメモリ装置の種類を識別するチップ選択(CS)フィールドを有し得る。したがって、状態機械2102は、チップ選択情報を、メモリ装置1102に関連付けられた識別子と比較することにより、メモリ装置がイネーブルされるか否かを判断し得る。いくつかの実施態様では、この識別子は装置識別子(装置ID)2106の形態をとり得る。そのような識別情報は、例えば、ハードワイヤードであってもよく(例えば、メモリ装置の指定されたピンに与えられる電力信号及び/又は接地信号を介して)、プログラムしてもよく(例えば、装置識別子2106がレジスタを備える実施形態において)、又は他の何らかの様式で構成してもよい。
【0098】
メモリ装置1102を、TDMデータバス上での来るデータ転送にイネーブルすべきであるとの決定を受けて、状態機械2102は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号をメモリ装置1102の受信器2108及び/又は送信器2110(例えば、インタフェース回路1120内に提供される)に提供し得る。したがって、指定されたアクセスの終了時、状態機械2102は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号を非アクティブ化し得る。このようにして、メモリ装置1102が、メモリアレイ1124に対して意図しない書き込みを実行せず、又はTDMデータバス上に誤った時間(例えば、別の装置がTDMデータバスを使用している時間)にデータを出力しないことを保証し得る。
【0099】
図21は、制御バスを本明細書において考察するように時分割多重化し得ることも示す。すなわち、1つのメモリ装置のコマンドが、ある時間期間中に制御バス上に現れ、別のメモリ装置のコマンドが、別の時間期間中に制御バス上に現れ得る。本明細書において考察されるように、いくつかの実施態様では、共通の時分割多重化制御・データバスを利用することもできる。これらの場合のいずれでも、図20の装置選択イネーブル又は図21のコマンドに基づくイネーブルを利用して、適切な時間にメモリ装置をイネーブルし得る。しかし、コマンドに基づくイネーブルの場合、メモリ装置が多重化バスに誤った時間にアクセスしないことを保証する対策が必要であり得る。例えば、すべてのメモリ装置が制御情報をリッスンする特定の時間を指定し得る。別の例として、特定の時間にバスをリッスンするように特定のメモリ装置をスケジュールし得る。
【0100】
これより図22を参照すると、いくつかの実施態様では、異なるクロック信号(例えば、クロック0及びクロック1)を共通(すなわち、同じ)信号路(例えば、単一のトレース又はトレース対)を介して時分割多重化し得る。そのような場合、メモリコントローラ502(例えば、メモリ制御論理524)は、クロック受信イネーブル信号を提供して、所与のメモリ装置が多重化クロック路上でいつクロック信号をリッスンし得るかを知れるようにし得る。クロック受信イネーブル信号がアクティブ化されると、メモリ装置1102上のクロック回路2202は、多重化クロック路に存在する信号に基づいてクロック(例えば、I/Oクロック)を提供し得る。本明細書において考察されるように、クロック回路2202は、受信クロック信号をある程度処理し得る(例えば、遅延を提供し、又は信号をクリーンアップするために)。
【0101】
図22は、多重化クロック信号を提供するために利用し得る例としてのクロック回路2204(例えば、クロック生成器)も簡略的に説明する。この例では、クロック回路2204はスイッチ2206(例えば、マルチプレクサ)を含み、スイッチ2206は、複数の異なる周波数信号のうちの1つを選択することで、所与の速度でクロック信号を提供する。ここで、スイッチ2206は速度制御信号(例えば、上述したように、装置選択論理602により提供される装置選択信号又は他の適した信号)により制御し得る。したがって、どの種類のメモリが現在アクセス中であるかに基づいて速度制御信号を変更することにより、クロック回路2204を制御して、時分割多重化クロック信号を提供し得る。図10において上述したように、クロック周波数を切り替えた後に遅延を生じさせて、クロック信号に適切な整定時間を提供し得る。図22の例では、異なる周波数信号が分周器2208によりスイッチに提供され、分周器2208は、PLL2210等のマスタクロック源からのクロック信号に基づいて異なる分周クロック信号を提供する。
【0102】
上述したように、メモリコントローラは、異なる種類のメモリ装置を宛先とした書き込みデータを共通クロック速度で提供し、それと同じクロック速度で受信データを処理し得る。そのような場合、メモリコントローラは、この処理を駆動するクロックを繰り返し変更する必要なく、同じ信号処理路を使用して、任意の種類のメモリ装置を宛先としたデータ又は任意の種類のメモリ装置から受信したデータを処理し得るため、メモリコントローラの構築及び動作を簡略化し得る。図23〜図26は、データがメモリ装置に書き込まれる速度又はデータがメモリ装置から読み出される速度とは異なる速度で、メモリコントローラがデータを処理する実施態様において、速度適合をいかに達成し得るかの例を説明する。便宜上、以下の考察では、共有バスを介してルーティングされるデータに対して実行し得る速度適合を説明した。制御情報に速度適合を提供するためにも、これらの技法を使用し得ることを理解されたい。
【0103】
図23及び図24は、複製データを書き込みデータに追加し、複製データを読み出しデータストリームから除去することにより、速度適合が提供される例を説明する。そのような方式は、高速クロックのクロック速度が低速クロックのクロック速度の整数倍である実施態様で有利に利用し得る。
【0104】
図23では、メモリコントローラ(例えば、図5のメモリ制御論理524及びインタフェース回路526の構成要素)は、高速データ(A0〜C0)及び低速データ(A1〜C1)を同時に処理する。例えば、高速データは、2Xクロックに対応する速度でデータを受信するメモリ装置を宛先とし得る。逆に、低速データは、1Xクロックに対応する速度でデータを受信するメモリ装置を宛先とし得る。この例では、メモリコントローラは、2つの装置を宛先とした書き込みデータを2X速度で提供する。このようにして、メモリコントローラのこの段階は、データがメモリ装置に最終的に送信される速度に関係なく、同じようにデータを処理し得る。
【0105】
この場合、高速データを同じ速度で共有バスに出力し得る。すなわち、高速データの場合、速度適合処理はない。
【0106】
他方、低速データの場合、速度適合回路2302は、複製データを2Xクロック速度でデータストリーム中に挿入する。その結果、図23の右上の枠内のデータ対(例えば、A1、A1)で表されるように、メモリコントローラは低速データを1Xクロック速度で出力する。換言すれば、いくつかの態様では、複製データは、第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、第2のより低速のクロック速度でデータを提供する。
【0107】
図24は、読み出しデータの場合の相補的な動作を説明する。ここで、メモリコントローラ(例えば、図5のインタフェース回路526の構成要素)は、高速データを2Xクロック速度で受信し、低速データを1Xクロック速度で受信する。この場合、メモリコントローラは、高速データ及び低速データの両方を2Xクロック速度でサンプリングする。したがって、メモリコントローラのこの段階は、データをメモリ装置から受信した速度に関係なく、データを同じように(例えば、同じ速度で)処理し得る。
【0108】
この場合、高速データを同じ速度で渡し得る(例えば、システムプロセッサに送信し得る)。すなわち、高速データの場合、速度適合処理はない。
【0109】
低速データの場合、2Xクロックでサンプリングされると、結果として生成されるデータストリームは、2Xクロック速度で複製データ(例えば、追加のA1サンプル)を含む。したがって、速度適合回路2402は、データストリーム内の複製データを破棄(例えば、無視)して、2X速度で元のデータを提供する。
【0110】
図23及び図24の速度適合回路は、様々な方法で実施し得る。例えば、速度適合回路2302は、データをある速度でバッファリングし、それと同じ速度で二重読み出しを実行して、複製データを提供するバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。逆に、速度適合回路2402は、ある速度でデータをバッファリングし、それと同じ速度で1つ置きのメモリ位置を読み出して、複製データを除去するバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。
【0111】
速度適合回路も同様に、様々な方法で制御し得る。例えば、場合によっては、すべてのデータは、速度適合回路を通ってルーティングし得るが、速度適合回路を選択的にイネーブルして、処理中のデータが速度適合を必要とする(例えば、データが低速データである)か否かを示す制御信号に基づいて速度適合を実行し得る。そのような制御信号は、例えば、ターゲットメモリ装置に基づいて(例えば、メモリアドレスに基づいて)低速データを識別し得る図6の装置選択論理602により生成し得る。
【0112】
図25及び図26は、タイミングバブルデータを書き込みデータストリームに挿入し、読み出しデータストリームからタイミングバブルを除去することにより、それぞれの速度適合が提供される例を説明する。そのような方式は、高速クロックのクロック速度が、低速クロックのクロック速度の整数倍であるか、又は整数倍ではない実施態様で利用し得る。図23及び図24の例と同様に、高速データはこの方式では速度適合を受けない。したがって、高速データについてはここで詳述しない。
【0113】
図25では、メモリコントローラ(例えば、メモリ制御論理524及びインタフェース回路526の構成要素)は、低速データ(A1〜C1)を高速クロック速度(例えば、1.33X)で処理する。低速データの場合、パディング回路2502がタイミングバブルを高速クロック速度で追加する。このタイミングバブルは、ダミー(例えば、「無関係」又は無効)データ2504を含み得る。したがって、上のように、この段階において、メモリコントローラは、データが最終的にメモリ装置に送信される速度に関係なく、同じように(例えば、同じ速度)でデータを処理し得る。
【0114】
次に、速度適合回路2506は、タイミングバブルを含むデータのタイミングを再びとり、低速クロック速度(例えば、1X)でデータを提供する。したがって、メモリコントローラは、低速クロック速度で低速データを出力する。
【0115】
図26は、読み出しデータの場合の相補的な動作を説明する。ここで、メモリコントローラ(例えば、インタフェース回路526の構成要素)は、低速クロック速度で低速データを受信する。次に、速度適合回路2602は、データのタイミングを再びとり(任意選択的に、ダミーデータ2604を有するタイミングバブルを挿入し)、高速クロック速度でデータを提供する。したがって、メモリコントローラの続く段階において、メモリコントローラは、データをメモリ装置から受信した速度に関係なく、同じようにデータを処理し得る。ここで、ダミーデータとは、タイミングバブル中に存在するデータ値を指す。したがって、ダミーデータは、ダミーデータを受信するエンティティにより使用されるべきではない(例えば、無視又は破棄される)データを含む。換言すれば、ダミーデータの値は、メモリシステムの動作に影響しないため、「無関係」であると見なし得る。
【0116】
ダミーデータ2604が受信データストリームに挿入される場合、パディング除去回路2606を利用して、ダミーデータ2604を除去し得る。したがって、タイミングバブル又はダミーデータのないデータストリームが、高速で提供される(そして、例えば、データを要求したシステムプロセッサに送信される)。
【0117】
図25及び図26の回路は、様々な方法で実施し得る。例えば、パディング回路2502は、データをある速度でバッファリングし、それと同じ速度でデータを読み出し、定義された間隔でダミーデータを読み出す(又は多重化する)バッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。速度適合回路2506も、データをある速度(例えば、1.33X)でバッファリングし、定義されたデータ位置を飛ばして、ダミーデータの読み出しを回避しながら、異なる速度(例えば、1X)でデータを読み出すバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。速度適合回路2602は、データをある速度(例えば、1X)でバッファリングし、任意選択的に、定義された間隔にあるダミーデータを読み出し(又は多重化し)ながら、異なる速度(1.33X)でデータを読み出すバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。最後に、パディング除去回路2606は、データをある速度でバッファリングし、任意選択的に、定義されたデータ位置を飛ばして、ダミーデータの読み取りを回避しながら、それと同じ速度でデータを読み出すバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。
【0118】
図25及び図26の回路も同様に、様々な方法で制御し得る。例えば、場合によっては、すべてのデータを速度適合回路及びパディング又はパディング除去回路を通ってルーティングし得るが、これらの回路は選択的にイネーブルされて、図23及び図24と併せて上述したのと同様に、処理中のデータが速度適合を必要とするか否かを示す制御信号に基づいて速度適合を実行し得る。
【0119】
上述した方式以外の方式の使用を通して速度適合を実施してもよいことを理解されたい。例えば、データが並列バスで送信される場合、一構成要素が、バス信号路の一部分でデータを送信して、より低速でデータを提供し得る。
【0120】
本明細書において説明される速度制御動作は、異なる実施形態では、メモリコントローラの異なる機能ブロックで実施し得る。例えば、図27は、メモリコントローラ2700がメモリ制御論理ブロック2702と、物理インタフェース(PHY)ブロック2704とを備え得ることを示す。上述したように、いくつかの実施態様では、PHYブロック2704は単に、チャネル駆動、ビット受信、直列化、及び非直列化等の動作を実行し得る。しかし、他の実施態様では、PHYブロック2704は速度適合動作を実行し得る。例えば、制御情報及びデータを所与の速度で、メモリ制御論理ブロック2702とPHYブロック2704との間で転送し得る。データを所与のメモリ装置に送信又は所与のメモリ装置から受信すべき場合、メモリ制御論理ブロック2702は、速度制御信号をPHYブロック2704に送信し得る。PHYブロックは次に、速度適合動作を実行して、適切な速度でデータを出力又は受信し得る。
【0121】
図28は、例としての選択論理回路2800(例えば、図6の装置選択論理602に対応する)を簡略化して示す。この例では、速度・プロトコルセレクタ2802が、メモリアクセスに関連付けられたアドレス(例えば、読み出し要求又は書き込み要求内にシステムプロセッサにより提供されるような)に基づいて、所与のメモリアクセスに使用すべき速度及びプロトコルを選択する。ここで、選択論理回路2800はアドレスマップを含み、アドレスマップは、異なるアドレス範囲を異なる種類のメモリ装置にマッピングするとともに、それらの種類のメモリ装置にアクセスする場合(すなわち、それらの範囲内のアドレスにアクセスする場合)に使用すべきデータ速度及びプロトコルにマッピングする。
【0122】
上述したように、いくつかの実施態様では、異なるプロトコルの使用は、I/Oピン、ひいては制御信号及び/又はデータ信号の搬送に使用される対応する共有バス信号路の再マッピングを含み得る。したがって、メモリコントローラ(例えば、メモリ制御論理524及びインタフェース回路526の構成要素)は、マッピング制御回路2806を含み得、マッピング制御回路2806は、選択されたプロトコルに基づいて(例えば、どの種類のメモリ装置が現在アクセス中であるかに基づいて)、制御信号と信号路とのマッピング及び/又はデータ信号と信号路とのマッピングを構成する。例えば、メモリコントローラは、第1の種類のメモリ装置にアクセスする場合、所与の信号路を介してデータを送信し、第2の種類のメモリ装置にアクセスする場合、同じ信号路を介して制御情報を送信し得る。別の例として、メモリコントローラは、第1の種類のメモリ装置にアクセスする場合、所与の信号路を介して第1の種類の制御情報を送信し、第2の種類のメモリ装置にアクセスする場合、同じ信号路を介して第2の種類(であるが、第1の種類ではない)制御情報を送信し得る。
【0123】
マッピング制御回路2806は様々な形態をとり得る。場合によっては、マッピング制御回路2806は1つ又は複数のマルチプレクサ回路を含み得、各マルチプレクサ回路は、メモリコントローラの1組の内部信号路の1つを、メモリコントローラの所与のI/Oピンに選択的に結合する。場合によっては、このマッピングは、単に異なる情報(例えば、制御又はデータ)を特定の出力レジスタに書き込むか、又は受信した情報を別様に解釈する(例えば、制御又はデータとして解釈する)ことにより達成し得る。
【0124】
図29は、信号をシステムバス(例えば、クロックバス520、制御バス522、及び共有信号バス508)とメモリ装置2904及び2906との間でルーティングするバッファ回路2902を含むメモリ装置2900(例えば、メモリモジュール)の実施形態を示す。いくつかの態様では、バッファ回路は、メモリ装置コネクタインタフェース(図示せず)と集積回路メモリ装置とのインタフェースとして動作する集積回路を備え得る。様々な実施態様では、バッファ回路2902は、メモリ装置の信号の分離、記憶、ルーティング、又は変換のうちの1つ又は複数を実行するように構成し得る。
【0125】
図29に示されるように、バッファ回路2902は、バスの多重化及び逆多重化を提供し得る。例えば、バッファ回路2902は、クロックバス520を逆多重化し、専用クロック信号(クロック0及びクロック1)を各メモリ装置2904及び2906に提供し得る。加えて、バッファ回路2902は、制御バス522を逆多重化し、専用制御信号(例えば、装置選択0及び装置選択1)を各メモリ装置2904及び2906に提供し得る。バッファ回路2902は、共有信号バス508も逆多重化し、専用バス(例えば、制御/データバス0及び制御/データバス1)を各メモリ装置2904及び2906に提供し得る。
【0126】
本明細書の教示は多種多様な形態で具現し得、そのうちのいくつかは、開示される実施形態の形態とはかなり異なって見え得る。したがって、本明細書に開示される具体的な構造及び機能の詳細は、単に代表的なものであり、本開示の範囲を限定しない。例えば、本明細書の教示に基づいて、本明細書に開示された様々な構造及び機能の詳細を、他の任意の構造又は機能の詳細から独立して、実施形態で組み込み得ることを当業者は理解するはずである。したがって、開示される任意の実施形態に記載される任意の数の構造又は機能の詳細を使用して、装置又は方法を実施し得る。開示される任意の実施形態に記載される構造又は機能の詳細に加えて、又はそのような詳細以外の他の構造又は機能の詳細を使用して、装置又は方法を実施してもよい。
【0127】
本明細書において教示されるコントローラ装置(例えば、コントローラ機能を組み込んだ集積回路)及びメモリ装置(例えば、メモリコアを組み込んだ集積回路)は、様々な形態をとり得る。例えば、コントローラ装置は、メモリコントローラチップ、コントローラ機能を含むプロセッサチップ、又は他の何らかの適した装置を含み得る。いくつかの態様では、メモリ装置は、1組の記憶セルを含む半導体集積回路素子を含み得、記憶セルは集合的にメモリアレイ又はメモリアレイの部分を提供し得る。
【0128】
本明細書の教示に従って利用し得る異なるメモリ種類(すなわち、メモリ技術)の例としては、限定せずに、揮発性メモリ装置、不揮発性メモリ装置、フラッシュメモリ、ダイナミックRAM(DRAM)、抵抗RAM(RRAM)、磁気抵抗RAM(MRAM)、相変化メモリ(PCM)、及びスタティックRAM(SRAM)が挙げられる。これらのメモリ種類の様々な特徴は、本明細書において教示されるように、共有バスを介してこれらのメモリ種類を一緒に使用するのに役立つように構成し得る。例えば、いくつかの実施態様では、異なる種類のメモリは同一のプロトコル、シグナリングレベル、及びピン出力を使用し得る。しかし、他の実施形態では、これらの特徴の1つ又は複数は、異なるメモリ種類間で異なり得る。
【0129】
本明細書において教示されるメモリシステムは、様々な用途で使用し得る。例えば、そのようなメモリシステムは、ポータブル装置、携帯電話、コンピュータグラフィックスカード、ビデオゲームコンソール、プリンタ、パーソナルコンピュータ、サーバ、処理システム(例えば、CPU素子)、又はデータ記憶を利用する他の何らかの装置内に組み込み得る。
【0130】
本明細書に記載された様々な構造及び機能を、様々な方法で、様々な装置を使用して実施し得ることも理解されたい。例えば、装置(例えば、デバイス)は、様々なハードウェア構成要素により実施し得、そのようなプロセッサ、コントローラ、状態機械、論理、又はこれらの構成要素の1つ若しくは複数の何らかの組み合わせ。いくつかの態様では、装置又は装置の任意の構成要素は、例えば、本明細書において教示されるような機能を提供するように装置又は構成要素を製造する(例えば、組み立てる)ことにより、そのような機能を提供するように装置又は構成要素をプログラムすることにより、或いは他の何らかの適した手段の使用を通して、そのような機能を提供するように構成し得る。
【0131】
いくつかの実施形態では、命令(例えば、ソフトウェア、ファームウェア、ミドルウェア等)を含むコードは、1つ又は複数の処理装置上で実行して、記載された機能又は構成要素の1つ又は複数を実施し得る。コード及び関連する構成要素(例えば、データ構造及びコードによる構成要素又はコードを実行する構成要素)は、処理装置により可読な適切なデータメモリ(例えば、一般にコンピュータ可読媒体と呼ばれる)に記憶し得る。いくつかの実施形態では、本明細書の教示により構築される装置は、機械可読媒体に記憶された回路記述を備え得る。そのような回路記述は、例えば、本明細書において教示されるような1つ又は複数の機能又は構成要素を実施し得る。
【0132】
本明細書に開示されるプロセス内のブロックの記載順序は、単に適切な手法の例である。したがって、そのようなブロックに関連付けられた動作は、本開示の範囲内にありながら、再編成し得る。同様に、付随する方法クレームは、動作を例としての順序で提示し、必ずしも提示される特定の順序に限定されない。
【0133】
本明細書に記載の構成要素及び機能は、様々な方法で結び付け又は結合し得る。これが行われる様式は、部分的に、構成要素が他の構成要素から分離されているか否か、及びどのように分離されているかに依存し得る。いくつかの実施形態では、図面でリード線により表される接続又は結合のいくつかは、集積回路内にあってもよく、回路基板上にあってもよく、離散ワイヤとして実施されてもよく、又は他の何らかの方法であってもよい。
【0134】
本明細書において考察される信号は様々な形態をとり得る。例えば、いくつかの実施形態では、信号は、ワイヤを介して伝送される電気信号、光ファイバ若しくは空気等の光学媒体を通って伝送される光パルス、又は空気等の媒質を通って伝送されるRF波等を含み得る。加えて、本明細書では、複数の信号をまとめて信号と呼び得る。上記信号は、データの形態をとることもできる。例えば、いくつかの実施形態では、アプリケーションプログラムは信号を別のアプリケーションプログラムに送信し得る。そのような信号は、データメモリに記憶し得る。
【0135】
本明細書での「第1の」、「第2の」等の表記を使用した要素のいかなる言及も、一般にこれらの要素の数量又は順序を限定しないことも理解されたい。むしろ、これらの表記は、本明細書において、2つ以上の要素又は要素のインスタンスを区別する都合のよい方法として使用し得る。したがって、第1及び第2の要素という言及は、2つのみの要素を利用し得ることを意味せず、又は第1の要素が何らかの様式で第2の要素に先行しなければならないことを意味しない。また、別記される場合を除き、1組の要素は1つ又は複数の要素を含み得る。
【0136】
特定の例としての実施形態について、詳細に上述し、添付図面に示したが、そのような実施形態が本明細書の教示の単なる例示であり、本明細書の教示を限定しないことを理解されたい。特に、本明細書の教示を多種多様な装置及び方法に適用可能なことを認識されたい。したがって、広義の本発明の範囲から逸脱せずに、示された実施形態及び本明細書に教示される補間お実施形態に様々な変更を行い得ることが認識される。上記に鑑みて、本明細書の教示が開示された特定の実施形態又は構成に限定されず、むしろ、添付の特許請求の範囲内にあるあらゆる変更、適合、又は修正の包含を意図されることが理解される。
【技術分野】
【0001】
優先権の主張
本願は、本願の所有者が所有する2010年2月23日に出願された米国仮特許出願第61/307,336号の利益及び優先権を主張するものであり、この仮特許出願を参照により本明細書に援用する。
【0002】
技術分野
本願は、一般的にはメモリ技術に関し、排他的ではないがより詳細には、異なる種類のメモリへのアクセスに異なる速度の時間多重化を利用することに関する。
【背景技術】
【0003】
異なる種類のメモリ技術をデータ処理システムで使用して、異なる種類のデータを記憶し、システムの性能、コスト、又は他の特徴を最適化し得る。例えば、システムの電源が落ちた場合に保持する必要があるデータは、フラッシュメモリ等の不揮発性メモリに記憶し得る。対照的に、メモリに比較的高速に読み書きする必要があるが、システムの電源が落ちた場合に保持する必要がないデータは、高速アクセス時間を提供するランダムアクセスメモリ(RAM)等の揮発性メモリに記憶し得る。大量のデータも、高い記憶容量:コスト比を提供するメモリに記憶し得る。
【発明の概要】
【課題を解決するための手段】
【0004】
システムによっては、2つ以上の種類のメモリを単一のシステム構成要素で使用し得る。例えば、モバイル装置(例えば、電話、個人情報端末、個人エンターテイメント装置)は、フラッシュメモリ(例えば、NOR及び/又はNANDフラッシュ)及びRAMを利用し得る。これらの異なる種類のメモリは、最大入出力(I/O)転送速度、最適なインタフェースレイアウト、又は他の特徴の点で大きな違いを有し得るため、そのような装置のメモリコントローラは、各種のメモリにアクセスする別個の専用インタフェースを有し得る。その結果、そのようなメモリコントローラは、比較的多数のI/Oピンを有し得、メモリコントローラのコスト及びサイズを増大させる。
【0005】
本開示の例としての特徴、態様、及び利点について以下の詳細な説明及び添付の特許請求の範囲並びに添付の図面で説明する。
【図面の簡単な説明】
【0006】
【図1】異なる種類のメモリが時分割多重化信号バスを介して異なる速度でアクセスされるメモリシステムの実施形態の簡略ブロック図である。
【図2】異なる種類のメモリが時分割多重化信号バスを介して異なる速度でアクセスされるメモリシステムでの例としてのタイミングの簡略図である。
【図3】例としてのメモリ書き込み動作の実施形態のフローチャートである。
【図4】例としてのメモリ読み出す動作の実施形態のフローチャートである。
【図5】メモリシステムの実施形態の例としての機能構成要素を示す簡略ブロック図である。
【図6】メモリコントローラの実施形態の例としての機能構成要素を示す簡略ブロック図である。
【図7】メモリマップの実施形態の例としての態様を示す簡略ブロック図である。
【図8A】異なる種類のメモリ装置のプロトコル構造の例としての態様を示す簡略図である。
【図8B】異なる種類のメモリ装置のプロトコル構造の例としての態様を示す簡略図である。
【図9A】異なる種類のメモリ装置の例としての命令コードを示す簡略図である。
【図9B】異なる種類のメモリ装置の例としての命令コードを示す簡略図である。
【図10】例としての命令処理の実施形態のフローチャートである。
【図11】メモリシステムの実施形態での速度制御の例としての態様を示す概略ブロック図である。
【図12】メモリコントローラのクロック回路の実施形態の例としての態様を示す簡略ブロック図である。
【図13】所与の種類のメモリ装置に対して複数のクロック速度をサポートするクロック回路の実施形態の例としての態様を示す簡略ブロック図である。
【図14】メモリ装置がクロックをメモリコントローラに提供するメモリシステムの実施形態の例としての態様を示す概略ブロック図である。
【図15】外部クロック生成器がクロックをメモリコントローラ及びメモリ装置に提供するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図16】外部クロック生成器が複数のクロックをメモリコントローラ及びメモリ装置に提供するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図17】メモリ装置がクロック・データ復元を利用して、メモリコントローラから受信する埋め込みクロック及びデータ信号からクロック及びデータを復元するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図18】メモリコントローラが、クロック・データ復元を利用して、メモリ装置から受信する埋め込みクロック及びデータ信号からクロック及びデータを復元する、メモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図19】異なる種類のメモリ装置が異なる分周器を利用して、外部装置からのクロックを分周するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図20】メモリ装置のイネーブル/ディセーブル方式の実施形態の例としての態様を示す簡略ブロック図である。
【図21】メモリ装置のコマンドに基づくイネーブル/ディセーブル方式の実施形態の例としての態様を示す簡略ブロック図である。
【図22】多重化クロックバスを利用するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図23】書き込み動作の速度適合方式の実施形態の簡略図である。
【図24】読み出し動作の速度適合方式の実施形態の簡略図である。
【図25】書き込み動作の速度適合方式の別の実施形態の簡略図である。
【図26】読み出し動作の速度適合方式の別の実施形態の簡略図である。
【図27】メモリコントローラの実施形態の簡略ブロック図である。
【図28】選択論理の実施形態の簡略ブロック図である。
【図29】バッファ回路を利用するメモリ装置の実施形態の簡略ブロック図である。
【発明を実施するための形態】
【0007】
一般的な通例によれば、図面に示される様々な特徴は一定の縮尺で描かれていない場合がある。したがって、様々な特徴の寸法は、明確にするために任意に拡大又は縮小し得る。加えて、図面によっては明確にするために簡略化されているものがある。したがって、図面は、所与の装置又は方法のすべての構成要素を示している訳ではない。最後に、同様の番号を使用して、本明細書全体及び図全体を通して同様の特徴を示し得る。
【0008】
詳細な説明
図1は、メモリコントローラ102が、共有バス104を介して異なる種類のメモリ装置に異なる速度でアクセスするメモリシステム100の実施形態を示す。この例では、データは、共有バス104を介してある速度でメモリ装置106(例えば、DRAM)から読み書きされ、その一方で、データは、共有バス104を介して別の速度でメモリ装置108(例えば、フラッシュメモリ)に読み書きされる。いくつかの実施態様では、メモリ装置106が動作する速度は、メモリ装置108が動作する速度の整数倍(例えば、2倍、3倍、又は4倍)である。異なる相対比率(例えば、非整数倍を含む)、異なる数のメモリ種類、及び異なる数のメモリ装置を、本明細書における教示により他の実施形態で利用し得る。
【0009】
メモリコントローラ又はメモリ装置106及び108による異なる速度で出力されたデータは、共有バス104上でメモリ装置106及び108を相互に排他的にイネーブルすることにより、共有バス104上で時分割多重化される。例えば、メモリ装置106への書き込み中、メモリコントローラ102は、装置選択0信号110をイネーブルし、クロック信号112(例えば、メモリ装置106の固有速度に対応する比較的高速のクロック速度を有する)を提供し、クロック信号112に対応する速度で制御情報及びデータを共有バス104に出力する。同様に、メモリ装置108への書き込み中、メモリコントローラ102は、装置選択1信号114をイネーブルし、クロック信号116(例えば、メモリ装置108の固有速度に対応する比較的遅いクロック速度を有する)を提供し、クロック信号116に対応する速度でデータを共有バス104に出力する。メモリ装置106からの読み出し中、メモリコントローラ102は、装置選択0信号110をイネーブルし、クロック信号112を提供し、制御情報を共有バス104に出力し、それを受けて、メモリ装置106は、クロック信号112に対応する速度でデータを共有バス104に出力する。メモリ装置108からの読み出し中、メモリコントローラ102は、装置選択1信号114をイネーブルし、クロック信号116を提供し、制御情報を共有バス104に出力し、それを受けて、メモリ装置108は、クロック信号116に対応する速度でデータを共有バス104に出力する。
【0010】
本明細書において教示されるように、異なる速度での時分割多重化の使用を通して、メモリコントローラは、異なる種類のメモリに別個の専用インタフェースを含むメモリコントローラと比較してかなり少数のI/Oピンを用いて実施し得る。例えば、16本のI/Oピンが、メモリコントローラと所与のメモリ装置との間でのデータ送信に使用される場合、対応する16の信号路が、このメモリコントローラに結合された異なる種類のメモリ装置により共有されるため、メモリコントローラ上のI/Oピン数を少なくとも16本、少なくし得る。さらに、制御信号がこれらの16の信号路でも同様に時分割多重化される場合、I/Oピン計数の追加の低減を達成し得る。
【0011】
さらに、時分割多重化の使用を通して、帯域幅を必要に応じて各種のメモリ装置に効率的に割り振り得る。例えば、フラッシュメモリは主に、システムが起動中である場合に使用し得る一方で、DRAMは主に、システムが標準動作モードである場合に使用し得る。したがって、本明細書における教示により構築されるメモリコントローラは、より低コスト且つより小さなフットプリントで構築し得、システム内のメモリをより効率的に使用することが可能であり得る。
【0012】
図2のタイミング図は、共有バス上での多速度時分割多重化の例を示す。この例では、メモリコントローラ(図示せず)は、2つの異なる種類のメモリ装置(図示せず)のそれぞれのクロック信号及び装置選択信号を生成する。特に、第1のメモリ装置(装置選択0によりイネーブルされる)に提供される高速クロック(2X)は、第2のメモリ装置(装置選択1によりイネーブルされる)に提供される低速クロック(1X)の速度の2倍で動作する。
【0013】
上述したように、共有バスは多重化された制御情報及びデータを搬送し得る。例えば、所与のメモリ装置にアクセスする場合、メモリコントローラはまず、適切な制御情報(例えば、コマンド及びアドレス)をメモリ装置に送信し得、その後、そのアクセスのデータを共有バスに出力し得る。したがって、図2の例では、ブロックA0、B0等とA1、B1等とは、制御情報及び/又はデータに対応し得る。
【0014】
第2のメモリ装置への読み出し又は書き込みの場合、装置選択1がアクティブ化され、それを受けて、制御情報及びデータが、低速クロックに対応する速度で共有バスに出力される。特に、ブロックA1で表される第1の組のコマンド情報及び/又はデータは、低速クロックの立ち上がりエッジ中に出力され、ブロックB1で表される第2の組のコマンド情報及び/又はデータは、低速クロックの次の立ち上がりエッジ中に出力され、以下同様である。
【0015】
第1のメモリ装置への読み出し又は書き込みの場合、装置選択0がアクティブ化され、それを受けて、制御情報及びデータが、高速クロックに対応する速度で共有バスに出力される。特に、ブロックA0で表される第1の組のコマンド情報及び/又はデータは、高速クロックの立ち上がりエッジ中に出力され、ブロックB0で表される第2の組のコマンド情報及び/又はデータは、高速クロックの次の立ち上がりエッジ中に出力され、以下同様である。
【0016】
メモリコントローラは、異なる速度を切り替える際に信頼性の高い動作を維持するために適切な機能を含み得る。例えば、2つのクロック信号が、メモリコントローラから同相で送信されない場合、異なる種類のメモリ装置へのシグナリングを切り替えるとき、タイミングシフトを利用し得る。
【0017】
図2は、データをクロックの立ち上がりエッジでサンプリングし得る例を示すが、本明細書における技法は、他のクロック方式にも同様に適用可能である。例えば、2倍データ速度方式(すなわち、負及び正両方のクロックエッジでのサンプリング)、4倍データ速度方式、又はそのような方式と両立し得るクロック及びデータ速度を利用する他の何らかの適したクロック方式を他の実施形態で利用し得る。
【0018】
多速度時分割多重化は、様々な方法で実施し得る。例としての実施態様の詳細について、図3及び図4のフローチャートと併せてこれより説明する。便宜上、図3及び図4の動作(又は本明細書において考察又は教示される他の任意の動作)は、特定の構成要素により実行されるものとして説明し得る。しかし、これらの動作を他の種類の構成要素で実行してもよく、異なる数の構成要素を使用して実行してもよいことを理解されたい。本明細書に説明される動作のうちの1つ又は複数を所与の実施態様において利用しなくてもよいことも理解されたい。
【0019】
まず図3を参照すると、このフローチャートは、共有バスを介してデータを異なる種類のメモリ装置に書き込むことに併せて実行し得る例としての動作を説明する。ブロック302及び304で表されるように、時間のある時点で、メモリコントローラは、データを第1及び第2の種類のメモリ装置(例えば、メモリ装置106及び108)に書き込む要求を受信する(例えば、システムプロセッサから)。例えば、メモリコントローラは、第1のメモリ装置に対応するアドレスに書き込むべきデータを含む第1の書き込み要求を受信し得る(ブロック302)とともに、第2のメモリ装置に対応するアドレスに書き込むべきデータを含む第2の書き込み要求を受信し得る(ブロック304)。
【0020】
ブロック306で表されるように、メモリコントローラは、書き込み動作に使用すべき適切なクロック速度及びプロトコルを選択し得る。例えば、書き込み要求の宛先アドレスが第1のメモリ装置に対応する場合、メモリコントローラは、そのメモリ装置に対応するクロック速度(例えば、メモリ装置の固有速度)と、そのメモリ装置へのアクセスに使用すべきプロトコルとを選択する。書き込み要求の宛先アドレスが第2のメモリ装置に対応する場合、同様の動作が実行される。
【0021】
メモリコントローラがクロック信号をメモリ装置に出力する様式は、メモリコントローラからメモリ装置へのクロックバスの構成に依存する。いくつかの実施態様では、クロックバスは、各種のメモリ装置にルーティングされる別個のクロック信号路を備える(例えば、図1に示されるように)。この場合、メモリコントローラは、異なる速度(例えば、1X及び2X)を有するクロック信号を異なるクロックバス信号路に連続して出力し得る。
【0022】
図22においてより詳細に後述するように、他の実施態様は多重化クロックバスを使用し得、共有クロック信号路が異なる種類のメモリ装置にルーティングされる。この場合、メモリコントローラは、所与のクロック速度を有するクロック信号をある時間期間にわたり(例えば、第1の種類のメモリ装置が共有データバスでイネーブルされる時間)クロックバスに出力し得、次に、別のクロック速度を有する別のクロック信号を別の時間期間にわたり(例えば、第2の種類のメモリ装置が共有データバスでイネーブルされる時間)クロックバスに出力し得る。
【0023】
所与の種類のメモリ装置により使用されるプロトコルは、メモリ装置へのアクセスに使用される制御情報(例えば、命令セット)を指定する。場合によっては、そのような命令プロトコルは、どの命令(例えば、コマンド)が所与の種類のメモリに使用されるかを指定する。例えば、DRAMプロトコルは、フラッシュプロトコルに使用されないリフレッシュ命令を含み得、その一方で、フラッシュプロトコルは、DRAMプロトコルに使用されないポーリング命令を含み得る。場合によっては、命令プロトコルは、特定の命令に関連付けられたコード値を指定する。例えば、図9A及び図9Bにおいてより詳細に後述するように、一プロトコルでは、書き込み命令はコード値0×02を有し得、その一方で、別のプロトコルでは、読み出し命令はコード値0×02を有し得る。場合によっては、プロトコルは、所与の種類のメモリ装置のアクセスに関連付けられたタイミングパラメータを定義する。例えば、プロトコルは、メモリ装置が読み出し(又はポーリング)命令を受信した後、データがメモリ装置からの読み出しに利用可能な最小時間又は最大時間を定義し得る。プロトコルは、特定のメモリ装置にアクセスする場合にクロックに適用すべき1つ又は複数の位相シフトを定義し得る。場合によっては、命令プロトコルは、所与の種類のメモリにアクセスする場合に使用すべきパケットサイズを定義する。例えば、以下の図8A及び図8Bにおいてより詳細に後述するように、あるプロトコルは、各パケットが6ビット幅であり(例えば、6ワイヤ制御バスの場合)、4ビット長である(例えば、パケットは4クロックサイクルで出される)ことを指定し得、その一方で、別のプロトコルは、各パケットが3ビット長であることを指定し得る。場合によっては、命令プロトコルは、制御情報(例えば、コマンド及びアドレス)がメモリ装置に提供される特定の信号線を定義する。より詳細に後述するように、場合によっては、異なる種類のメモリにアクセスする場合、共有バスの1つ又は複数の信号路のタスクを変更し得る(例えば、データから制御に)。
【0024】
ブロック308で表されるように、メモリコントローラは、メモリ装置に送信すべき制御情報及び書き込みデータを提供する。例えば、メモリコントローラは、適切なコマンド及びアドレス(C/A)情報とデータ(DQ)とを、各メモリ装置に送られるパケットにフォーマットし得る。図23〜図26と併せてより詳細に後述するように、メモリコントローラは、有利なことには、共通のクロック速度でメモリ装置に送信すべき情報を処理し得る。例えば、コントローラは、共有バスを介して異なる速度で送信すべきフォーマットされたC/A情報及びデータを、これらの速度のうちの最高速度で提供し得る。この場合、より低速の情報を続けて処理して、共有バスに適切な速度でデータを出力し得る。例えば、後述するように、複製データをより低速のデータストリームに追加し得、又はタイミングバブルをこのデータストリームに追加し得る。同様の動作を、より低速で送信される制御情報に対しても実行し得る。
【0025】
ブロック310で表されるように、メモリコントローラは、異なるメモリ装置を宛先とする書き込みデータを共有バス上で時分割多重化する。したがって、本明細書で考察されるように(例えば、図2において)、メモリコントローラは、一種類のメモリ装置を宛先とした書き込みデータをあるクロック速度で送信し、別の種類のメモリ装置を宛先とした書き込みデータを別のクロック速度で送信する。
【0026】
メモリコントローラは、異なる実施態様では異なる方法でメモリ装置を宛先とした制御情報を出力し得る。場合によっては、制御情報は、上述したように、共有バス上でデータと時分割多重化し得る。すなわち、メモリコントローラは、時分割多重化制御・データバスを利用し得る。例えば、図2では、ブロックA1はC/A情報を含み得、ブロックB1〜D1は、メモリ装置のうちの1つを宛先としたデータを含み得る。
【0027】
場合によっては、メモリシステムは、別個のデータバス及び制御バスを利用し得る。これらの場合、制御バスはメモリ装置で共有し得、又は専用の制御バスを各メモリ装置に提供し得る。例えば、共有制御バスを利用し得、それにより、メモリコントローラは、異なるメモリ装置を宛先とした制御情報を共有制御バスに時分割多重化する。あるいは、専用の制御バスを各種のメモリに提供し得る。例えば、メモリコントローラは、制御情報を一種類のメモリ装置にある制御バスを介して送信し、制御情報を別の種類のメモリ装置に異なる制御バスを介して送信し得る。
【0028】
メモリコントローラが制御情報をメモリ装置に出力する速度は、この情報の搬送に使用される1つ又は複数のバスの構成に依存する。場合によっては、メモリコントローラは、制御情報を異なる速度で異なる種類のメモリ装置に出力する。例えば、多重化バス上で、メモリコントローラは、制御情報を一種類のメモリ装置にある速度で送信し(例えば、図2のブロックA1)、制御情報を別の種類のメモリ装置に異なる速度で送信し得る(例えば、図2のブロックA0)。同様に、専用の制御バスが利用される場合、メモリコントローラは、制御信号を異なる速度で異なる制御バスを介して送信し得る。
【0029】
他の場合、メモリコントローラは、制御情報を異なる種類のメモリ装置に、データがこれらのメモリ装置で異なる速度で送信されるにも関わらず、同じ速度で送信し得る。例えば、制御情報が共有バスを介して送信される場合(制御のみ又はデータ/制御)、メモリコントローラは、最も遅いメモリ装置に関連付けられたクロック速度(例えば、データ転送に使用される最も遅いクロック速度)又はより低速のある速度で制御情報を連続又は定期的に送信し得る。このようにして、共有バス上のすべてのメモリ装置が、少なくともいくつかの時点で制御情報を取得することが可能である。そのような方式は、より高速のメモリ装置が、最も遅いメモリ装置が動作する速度の整数倍の速度で動作する(例えば、制御情報を受信する)メモリシステムで特に実用的であり得る。そのような整数倍速度のクロック信号は、様々な方法で生成し得る。いくつかの実施態様では、低速クロックは、高速クロックを分周することにより生成し得る。いくつかの実施態様では、低速クロック及び高速クロックは共通クロックから生成し得る(例えば、異なる分周器を使用して、共通タイミング源から高速クロック及び低速クロックを生成し得る)。
【0030】
いくつかの態様では、共有バス上の時分割多重化は、どのメモリ装置が共有バス上でイネーブルされるかを制御することにより達成される。場合によっては、これは、図2に説明されるように、メモリ装置を相互に排他的にイネーブルする装置選択(例えば、チップ選択)信号の使用を通して達成される。
【0031】
場合によっては、メモリ装置のアクセス制御は、どのメモリ装置が共有バス上で所与のデータ転送にイネーブルされるかを指定する制御情報の使用を通して達成される。例えば、バス上のすべてのメモリ装置は、どのメモリ装置が所与の時間期間にわたり共有バス上でデータ転送にイネーブルすべきかを示す制御情報を受信するように構成し得る。ここで、メモリ装置は、連続して、又は指定された時間(例えば、定期的)に制御情報を受信するように構成し得る。この情報に基づいて、各メモリ装置は、それ自体を共有バス上で指定された時間にデータ転送にイネーブルし得る。
【0032】
したがって、ブロック312及び314で表されるように、メモリ装置は適切な時間にイネーブルされて、それぞれの書き込みデータをメモリコントローラから受信する。ここで、第1のメモリ装置がイネーブルされる場合、メモリ装置は、受信器回路をイネーブルし得、それにより、クロック信号(例えば、共有クロックバスの場合)、制御情報、及びデータをこの時間期間中に受信する。対照的に、共有バス上の他の任意のメモリ装置は、この時間期間中、共有バス上の信号を無視し得る。例えば、別のメモリ装置は受信器回路をディセーブルし得、それにより、クロック信号、制御情報、又はデータをこのときに受信しない。受信器回路のイネーブル及びディセーブルを行うためにメモリ装置に利用し得る例としての回路を図20〜図22において後述する。
【0033】
イネーブルされる場合、各メモリ装置は、対応するクロック信号(例えば、メモリコントローラ、そのメモリ装置、又は他の何らかのエンティティにより提供される)を使用して、書き込みデータを共有バスから受信する。例えば、図2に示されるように、所与のメモリ装置(装置1)は、第1のクロック速度(1X)を有するクロック信号を使用して、書き込みデータ(A1〜D1)を受信し得る一方で、別のメモリ装置(装置0)は、第2のクロック速度(2X)を有する別のクロック信号を使用して、書き込みデータ(A0〜D0)を受信し得る。
【0034】
図4を参照すると、このフローチャートは、共有バスを介する異なる種類のメモリ装置からのデータ読み出しと併せて実行し得る例としての動作を説明する。ブロック402及び404で表されるように、ある時点で、メモリコントローラは、第1の種類のメモリ装置に対応するアドレスからデータを読み出す要求を受信するとともに(例えば、システムプロセッサから)、第2の種類のメモリ装置に対応するアドレスからデータを読み出す要求も受信する。
【0035】
ブロック406で表されるように、メモリコントローラは、読み出し動作に使用すべき適切なクロック速度及びプロトコルを選択し得る。したがって、これらの動作は、ブロック306において上述した動作と同様であり得る。
【0036】
ブロック408で表されるように、メモリコントローラは、メモリ装置に送信すべき読み出し要求の制御情報を提供する。例えば、メモリコントローラは、適切なコマンド及びアドレス(C/A)情報を、各メモリ装置に送られるパケットにフォーマットし得る。メモリコントローラは、適切なバスを介して(例えば、共有データ/制御バスを介して、共有制御バスを介して、又は専用制御バスを介して)制御情報をメモリ装置に送信する。したがって、これらの動作は、ブロック308及び310において上述した類似の動作と同様であり得る。例えば、制御情報は、同じ又は異なる速度で異なるメモリ装置に送信し得、制御情報は、共有バス上で時分割多重化し得、装置選択信号又は他のアクセス制御技法を使用して、共有バス上でのデータ転送にメモリ装置をイネーブルし得る等である。
【0037】
ブロック410及び412で表されるように、メモリ装置は、読み出し要求の受信を受けて、適切な時間にイネーブルされ、各読み出しデータを共有バスに出力する。したがって、各メモリ装置は、メモリコントローラにより提供される対応するクロック信号を使用して、読み出しデータを出力し、それにより、データは共有バス上に異なる速度で時分割多重化される。したがって、これらの動作は、いくつかの側面において(例えば、アクセス制御、制御情報の受信、及びクロック信号の使用に関して)ブロック312及び314において上述した書き込み動作と同様であり得る。
【0038】
ブロック414で表されるように、メモリコントローラは、共有バスから時分割多重化データを受信する。図24及び図26において後述するように、いくつかの実施態様では、メモリコントローラは、有利なことに、異なるメモリ装置からの読み出しデータが共有バス上に異なる速度で現れるにも関わらず、単一の速度で受信時分割多重化データをサンプリングし得る。例えば、受信データは、最高速メモリ装置(例えば、データの転送に使用される最高速クロック速度)に関連付けられたクロック速度又はより高速のある速度でサンプリングし得る。
【0039】
ブロック416で表されるように、メモリコントローラは、妥当な場合、受信読み出しデータを処理して、読み出しデータを適切で効率的な速度で提供する。例えば、より高速のクロックが、より低速のデータのサンプリングに使用される場合、複製又はタイミングバブルを受信データストリームから除去し得る。逆に、サンプリングクロック速度がデータ速度と同じである場合、メモリコントローラは、データをさらに処理する必要がないことがある。読み出しデータがメモリ装置のうちの所与の1つから取得されると、メモリコントローラは、データを要求側(例えば、システムプロセッサ)に送信して、読み出し動作を完了する。
【0040】
これより図5を参照して、メモリコントローラ及びメモリ装置に利用し得る例としての高レベル機能構成要素を説明する。ここでは、メモリシステム500はメモリコントローラ502を含み、メモリコントローラ502は、共有信号バス508を介して異なる種類のメモリ装置504及び506にアクセスする。したがって、図5の構成要素は、図1において説明される同様の構成要素に対応し得る。いくつかの態様では、メモリコントローラ502と、メモリ装置504及び506とは、従来のメモリコントローラ及びメモリ装置と同様の機能を提供する。加えて、メモリコントローラ502と、メモリ装置504及び506は、本明細書において教示されるメモリ制御動作に役立つ機能を含む。図5は、この追加の機能を提供し得る例としての機能構成要素を簡略化して示す。
【0041】
メモリコントローラ502は、メモリ制御論理524と、インタフェース回路526(例えば、一般にPHYとして知られる物理的なインタフェース回路)とを含む。メモリ制御論理524は、例えば、プロセッサバス528(例えば、CPUバス)を介して処理エンティティ(例えば、CPU)から受信した命令(例えば、コマンド、要求等)のキュー入れ及び解釈、システムバス528を介して受信した書き込みデータのメモリ装置504及び506への転送、システムバス528を介してメモリ装置504及び506から読み出した読み出しデータの転送、命令アービトレーションの実行、読み出し動作及び書き込み動作のタイミング制限の実行、並びにデータが正確な速度で、本明細書において教示される適切なプロトコルを使用してメモリ装置504又は506から読み書きされることの保証等の機能を実行する。加えて、メモリ制御論理524は、メモリ回路534に記憶された情報(例えば、メモリマップ)を使用して、異なる種類のメモリ装置にアクセスする場合に使用すべき動作パラメータ(例えば、クロック速度、プロトコル等)を決定し得る。インタフェース回路526は、例えば、チャネルの駆動、ビットの受信、データの直列化、データの非直列化、及びクロック領域交差機能の提供等の動作を実行し得る。これら及び他のメモリコントローラの動作については、図6〜図11においてより詳細に後述する。
【0042】
メモリ装置504及び506のそれぞれは、インタフェース回路530又は532と、装置制御論理512又は514と、メモリアレイ516又は518とを含む。便宜上、以下にメモリ装置504の構成要素の例としての動作について説明する。同様の動作をメモリ装置506の構成要素により実行し得ることを理解されたい。インタフェース回路530は、システムバス(例えば、共有信号バス508、クロックバス520、及び制御バス522)とインタフェースして、メモリアレイ516とのデータの読み書きに役立つ。いくつかの態様では、インタフェース回路530は、クロックバス520上に提供されるクロックに基づく速度で、システムバスのうちの1つ又は複数から制御情報及び/又はデータを受信するように構成される。加えて、インタフェース回路530は、クロックバス520上に提供されるクロックに基づく速度で、メモリアレイ516から読み出したデータを共有信号バス508に出力するように構成される。制御論理512は、メモリ装置504に関連付けられたプロトコルを使用して、メモリアレイ516の読み書きを制御する。特に、制御論理512は、インタフェース回路530が受信した書き込みデータをメモリアレイ516に転送し、メモリアレイ516からの読み出しデータを、共有信号バス508を介して送信するために、インタフェース回路528に転送する。これら及び他のメモリ装置動作については、図11〜図22においてより詳細に後述する。
【0043】
図5の例では、メモリ装置504及び506はメモリ装置510内で実施される。いくつかの実施態様では、メモリ装置510は、メモリ装置504及び506が一緒にパッケージされた単一の集積回路パッケージを備える。例えば、メモリ装置504及び506のダイをパッケージ内の共通基板上に提供し、上下に重ね、又は他の何らかの様式で同じ場所に配置し得る。メモリ装置510は、例えば、メモリ装置504及び506が上に配置されたプリント回路基板等の他の形態を取ってもよい。メモリ装置510は、任意の適した数の異なる種類のメモリ装置及び/又は任意の適した数のメモリ装置も備え得る。
【0044】
そのようなメモリ装置の使用を通して、メモリシステム500は、異なる種類のメモリ装置に別個のインタフェースを使用する従来のシステムと比較して、少数の信号路を組み込み得る(例えば、メモリコントローラ502及びメモリ装置510が上に配置された回路基板上に)。したがって、メモリシステム500の複雑性、ひいてはコストを、これらの従来のシステムと比較して下げることができる。
【0045】
メモリ装置510は、メモリ装置504及び506にシステムバスをルーティングするのに適した信号路を含む。特に、共有信号バス508は、メモリ装置504及び506に並列してルーティングされる。例えば、共有信号508バスは、マルチドロップ結合方式を使用してメモリ装置504及び506にルーティングし得る。加えて、制御バス522及び/又はクロックバス520は、並列構成でメモリ装置504及び506にルーティングし得、又はこれらのバスの異なる部分を一方又は他方のメモリ装置にルーティングし得る。
【0046】
場合によっては、クロックバス520は、異なるクロック速度を有する異なるクロック信号が多重化される単一の信号路又は複数の信号路(例えば、異なる信号又は分岐クロック毎に)を備え得る。あるいは、場合によっては、クロックバス520は、1組の専用クロック信号路を備え得、この場合、所与の信号路(又は一対の経路)がメモリ装置のうちの所与の1つにルーティングされる。
【0047】
異なる実施態様では、制御信号をメモリコントローラと関連付けられたメモリ装置との間で異なる方法でルーティングしてもよい。したがって、図5の制御バス522は、異なる実施態様では異なる形態をとり得る。
【0048】
いくつかの実施態様では、制御信号は共有信号バス508上でデータと多重化される。この場合、制御バス522は、アクセス制御信号(例えば、図1に示されるような装置選択信号)又は他の何らかの種類の信号を搬送する単一の信号路又は複数の信号路を備え得る。
【0049】
いくつかの実施態様では、制御信号はデータとは異なる1つ又は複数のバス上に提供される。この場合、制御バス522は、共有制御バス又はいくつかの専用制御バス(すなわち、異なる組の制御信号路)を備え得る。
【0050】
共有制御バスを使用する実施態様では、制御バス522は、メモリ装置504及び506に並列にルーティングされる多重化バスを備え得る。ここでも、異なる種類のメモリ装置を宛先とした制御信号は、この場合、同じ又は異なる速度で提供し得る。
【0051】
制御バス522がいくつかの専用バス(例えば、異なる種類のメモリ装置毎に1組の専用制御信号路)を備える実施態様では、所与の専用バスをメモリ装置のうちの所与の1つにルーティングし得る。例えば、1組の信号路は、C/A信号を一種類のメモリ装置に搬送するC/Aバスを備え得る一方で、異なる組の信号路は、別の組のC/A信号を別の種類のメモリ装置に搬送する別のC/Aバスを備え得る。そのような場合、異なる組の制御信号路上の制御信号は通常、異なる速度で(例えば、メモリ装置の固有速度に基づいて)提供される。
【0052】
図6は、本明細書において教示されるように、異なる種類のメモリ装置への異なる速度での読み書きに役立つために、メモリコントローラ502に利用し得る例としての構成要素を示す。メモリ制御論理524は装置選択論理602を含み、装置選択論理602は、異なる種類のメモリにアクセスする場合に使用すべき異なるパラメータ又は情報を、この情報にメモリ装置534のメモリマップ604からアクセスすることにより選択し得る。例えば、装置選択論理602は、読み出し命令又は書き込み命令と共に受信するターゲットアドレスをメモリマップへの参照入力として使用することにより、アクセスすべき特定の種類のメモリ(例えば、ターゲットメモリ装置)を選択(例えば、識別)し得る。加えて、装置選択論理602は、所与の種類のメモリにアクセスする場合に使用すべきクロック速度及び/又はプロトコルを選択し得る。例としてのメモリマップについては図7においてより詳細に後述する。
【0053】
上述したように、メモリ制御論理524は、メモリコントローラ502により制御される任意の異なる種類のメモリにデータを書き込み、且つ/又はメモリからデータを読み出すシステム構成要素からプロセッサバス528を介して受信される命令を処理する機能を提供する。ここで、メモリ制御論理524は、入力された命令をキューに入れるための命令キュー606を利用し得る(例えば、新しい命令を受信した場合、メモリ装置のアクセスが保留されるとき)。装置0及び装置1の命令キュー608及び610のそれぞれで表されるように、メモリコントローラ502により制御されるメモリ装置毎に命令キューを提供し得る。
【0054】
メモリ制御論理524は、入出力(I/O)回路612を介してプロセッサバス528とインタフェースする。I/O回路612は、異なる実施態様では異なる形態をとり得る。メモリコントローラ502が、メモリコントローラ502を使用してシステムメモリにアクセスするシステムエンティティ(例えば、CPU)と同じ集積回路(例えば、同じダイ)上に存在する実施態様では、I/O回路612は単に、例えば、同じダイ内の他の論理への信号路を備え得る。メモリコントローラ502が、メモリコントローラ502を使用するシステムエンティティとは異なる集積回路(例えば、異なるダイ)上に存在する場合、I/O回路612は、例えば、信号を駆動し受信する送信器構成要素及び受信器構成要素も備え得る。
【0055】
メモリ制御論理524は、インタフェース回路526を介してコマンドをメモリ装置に送信し、メモリ装置とデータを転送する。いくつかの態様では、インタフェース回路526は、プロセッサクロック領域とメモリクロック領域との変換を行うクロック領域交差回路(例えば、FIFO614として実施される)を備える。例えば、メモリ制御論理524は、プロセッサクロック回路616により提供されるプロセッサクロック(例えば、PCLK)に基づいて動作(例えば、クロックイン情報及びクロックアウト情報)を実行し得る。しかし、1つ又は複数のメモリバス(例えば、バス508と、場合によっては図5のバス522と)を介するメモリコントローラ502とメモリ装置との間での情報転送は、メモリクロック回路618により提供されるメモリクロック(例えば、MCLK)に基づいて異なるクロック速度で行われる。
【0056】
クロック回路618により提供される現在のクロック速度は、装置選択論理602により提供される装置選択信号に基づく。これより図7を参照すると、メモリ制御論理524(例えば、装置選択論理602)が所与の種類のメモリ装置へのアクセスに適切なパラメータをいかに選択し得るかの例について説明する。
【0057】
メモリマップ604は、メモリ装置の異なる種類毎に異なるエントリを含む。例えば、第1の組のエントリ702は第1の種類のメモリ装置(装置0として示される)に対応し得、第2の組のエントリ704は第2の種類のメモリ装置(装置1として示される)に対応し得る。ここで、メモリマップ604は、1組(例えば、ある範囲)のターゲットアドレスを各組のエントリにマッピングし得る。例えば、第1の種類のメモリ装置に割り当てられた物理アドレスに対応するアドレス範囲706(例えば、ある範囲の仮想アドレス)が、第1の組のエントリ702にマッピングされる。同様に、第2の種類のメモリ装置に割り当てられた物理アドレスに対応する異なるアドレス範囲708(例えば、ある範囲の仮想アドレス)が、第2の組のエントリ704にマッピングされる。したがって、メモリ制御論理524が、特定のターゲットアドレスを含む命令(例えば、読み出し要求又は書き込み要求)を受信する場合、メモリ制御論理524は、そのターゲットアドレスが入るのがどのアドレス範囲であるかを識別し、次に、メモリマップ604のマッピングに基づいて、どの組のエントリをそのメモリアクセスに使用すべきかを決定する。
【0058】
所与の種類のメモリ装置のエントリは様々な形態をとり得る。例えば、図7に示されるように、エントリは、1)その種類のメモリ装置に関連付けられた1つ又は複数の装置、2)その種類のメモリ装置にアクセスする場合に使用すべきクロック速度、3)その種類のメモリ装置にアクセスする場合に使用すべきプロトコル、4)その種類のメモリ装置に対応するすべての仮想アドレスを対応するすべての物理アドレスにマッピングする物理アドレスマップ、並びに5)例えば、クロックを切り替える場合に利用すべき整定時間量及びその種類のメモリ装置にアクセスする場合にクロックに利用すべき位相調整等の装置タイミングパラメータを識別し得る。上記に鑑みて、いくつかの態様では、メモリマップ604が特定の種類のメモリ装置と、クロック速度、プロトコル等の様々な装置パラメータとのマッピングを提供することが分かり得る。
【0059】
図12においてより詳細に考察するように、いくつかの実施態様では、メモリ制御論理524は、特定の種類のメモリ装置にアクセスする場合、クロック速度情報を使用してクロック回路を構成し、所望のクロック信号を提供する。しかし、いくつかの実施態様では、メモリ制御論理524は単に、メモリマップからの特定のメモリ装置の識別情報に基づいて装置選択信号をアサートし得る。例えば、受信した命令がメモリ装置0をターゲットとするとの特定を受けて、メモリ制御論理(例えば、装置選択論理602)は単に、そのメモリ装置の装置選択信号をアサートし得る。次に、クロック回路618を、装置選択信号のアサートに基づいて適切なクロック速度でクロック信号を提供するように構成し得る。
【0060】
上述したように、異なる種類のメモリ装置は異なるプロトコルを使用するように構成し得る。したがって、メモリ制御論理524は、メモリマップ604から得られる特定のプロトコル情報に基づいて、特定のメモリ装置を宛先としたコマンド(例えば、読み出し、書き込み等)をフォーマットし得る。図8A及び図8Bは、異なる種類のメモリ装置が利用し得るプロトコルフォーマット(例えば、パケット構造)の2つの例を示す。図8Aは、例えば、DRAMの読み出し/書き込みコマンドに対応し得る。この場合、プロトコルは、命令コード(OP)、列アドレス(C)、及びバンクアドレス(BA)等の特定の情報がパケット内の特定の位置に現れることを指定する。図8Bは、例えば、フラッシュメモリのコマンドに対応し得る。この場合、プロトコルは、命令コード(OP)及びアドレス(A)等の特定の情報がパケット内の特定の位置に現れることを指定する。図8A及び図8Bは、異なるプロトコルが異なるパケットサイズ(例えば、4ビット長パケット及び3ビット長パケット)構造を指定し得ることを示す。図8A及び図8Bでは、パケットの高さは時間中のビット数を表し(例えば、時間T(N)、T(N+1)、T(N+2)、及びT(N+3))、その一方で、パケットの幅はパケットのビット幅(例えば、ビット0〜5)を表し、パケットの各ビット幅は、制御バスの別個のワイヤ(例えば、送信路0〜5及び/又はI/O路0〜5)に対応し得る。
【0061】
加えて、図9A及び図9Bは、異なるプロトコルが異なる制御シグナリングを使用し得ることを示す。例えば、図9Aの命令コード(例えば、図8Aの命令コード)は、3本のワイヤ(ビット0〜2)を介して送信し得る一方で、図9Bの命令コード(例えば、図8Bの命令コード)は、2本のワイヤ(ビット0〜1)を介して送信し得る。図9A及び図9Bは、異なるプロトコルが、異なるコマンドの識別に同じ値を使用し得ることも示す。例えば、値0×2は、図9Aでは読み出しに対応し、図9Bでは書き込みに対応する。
【0062】
上記を念頭に置き、命令を処理するためにメモリ制御論理524により実行し得る例としての動作について、図10を参照してこれより対処する。ここで、メモリ制御論理524が、入力された命令を上述したように適切な命令キューに配置すると仮定する。
【0063】
ブロック1002で表されるように、メモリ制御論理は、キューのうちの1つから次の命令を検索する。複数の命令が同時に保留中の場合、適切なアービトレーション技法をここで利用し得る。例えば、特定のメモリアクセス(例えば、特定のメモリ種類又はアドレスへの書き込み又はアクセス)を他よりも優先し得、所与のメモリ装置へのアクセスをキューに入れて、複数の連続アクセスを可能にし得る等である。
【0064】
ブロック1004で表されるように、メモリ制御論理は、命令により提供される仮想アドレスを使用して、適切なメモリ装置パラメータをメモリマップから得る。したがって、上述したように、メモリ制御論理は、ターゲットメモリ装置、クロック速度、クロック位相、整定時間、及び他の情報を識別し得る。
【0065】
ブロック1006で表されるように、メモリ制御論理は次に、メモリマップから検索されたパラメータに基づいて適切な1つ又は複数のメモリ装置をイネーブルし得る。例えば、適切な装置選択をこの時点でイネーブルし得、他の任意の前にイネーブルされた装置選択をディセーブルし得る。加えて、ブロック1008で表されるように、いくつかの実施態様では、メモリ制御論理は、メモリマップから検索された情報に基づいてクロック速度及び位相情報を取得し得、この情報を使用して、要求されたアクセスに適切なクロックを提供し得る。
【0066】
ブロック1010で表されるように、クロック速度が変更される場合、メモリ制御論理は、クロックが整定できるようにする定義された時間期間にわたって遅延し得る。ここで、メモリ制御論理は、メモリ装置の種類のメモリマップから得られる遅延(例えば、整定時間)情報に基づいて遅延量を決定し得る。
【0067】
ブロック1012で表されるように、メモリ制御論理は、メモリマップから検索されるプロトコル情報に基づいて、メモリ装置に送信すべきコマンドをフォーマットする。例えば、メモリ制御論理は、図8A〜図9Bに示されるように、使用に適切なパケット構造を決定し得る。
【0068】
ブロック1014で表されるように、メモリ制御論理は、フォーマットされたコマンドをメモリ装置に送信する。図11においてより詳細に後述するように、いくつかの実施態様では、これは、適切なメモリ装置に続けて送られるように、パケットをFIFO614に送信することを含む。
【0069】
ブロック1016で表されるように、次に、メモリ制御論理は、このコマンドの完了を待ってから、命令キューから次の命令を検索し得る。しかし、ここで、パイプライン処理又は他の技法を利用して、コントローラ性能を向上させ得ることを理解されたい。
【0070】
図11は、メモリコントローラのインタフェース回路及びクロック回路(例えば、1つ又は複数のクロック回路)に利用し得る例としての構成要素を示す。ここで、メモリコントローラ502は、第1の種類のメモリ装置1102と、第2の種類のメモリ装置1104とに接続されて示される。メモリ装置1102のアクセスは、あるクロック速度を有するクロック0に基づいて実行され、その一方で、メモリ装置1104のアクセスは、異なるクロック速度を有するクロック1に基づいて実行される。クロック信号は、メモリコントローラ502の内部で使用されるクロックと、メモリコントローラ502とメモリ装置1102及び1104との間の信号路に存在するクロックとの間に位相差があり得ることを示すために、クロック0及びクロック0’として、そしてクロック1及びクロック1’として示される。本明細書において考察するように、これらのクロックは、メモリコントローラ502、メモリ装置1102及び1104、又は他の何らかの構成要素で生成し得る。
【0071】
図6のFIFO614は、図11では2つのFIFOとして表される。送信FIFO1106は、情報をメモリ装置1102及び1104に送信する場合に使用される。受信FIFO1108は、メモリ装置1102及び1104から情報を受信する場合に使用される。メモリクロック領域では、情報は、MCLKにより駆動される1組のラッチ(便宜上、ラッチ1108で表される)の使用を通して、メモリ装置にクロックアウトされる。各ラッチ信号は、対応する送信器(便宜上、送信器1110で表される)により駆動され、適切なメモリバス信号路に提供される。逆に、メモリバス信号路上でメモリ装置により駆動される信号は、受信器(便宜上、受信器1112で表される)により受信され、次に、MCLKにより駆動される1組のラッチ(便宜上、ラッチ1114で表される)を介してクロックインされる。
【0072】
この例では、MCLKのクロック速度は、マルチプレクサ1116の制御に使用される装置選択信号の現在値により決定される。例えば、選択元として2つのクロック信号しかない場合、装置選択信号は0又は1の値をとり得る。ここで、一方の値は、クロック回路1118により提供されるクロック0をMCLKとして提供させ、他方の値は、クロック回路1118により提供されるクロック1をMCLKとして提供させ得る。
【0073】
メモリ装置1102は、インタフェース回路1120と、装置制御論理1122と、メモリアレイ1124とを含む。インタフェース回路1120は、例えば、受信器と、送信器と、信号を送受信するためのラッチとを含み得る。装置制御論理1122は、例えば、メモリコントローラ502からのコマンドを解釈し、メモリアレイ1124をアクティブ化し、データをメモリアレイ1124に送信し、メモリアレイ124からデータを検索する機能を含み得る。メモリ装置1104も、同様の名称のインタフェース回路1126と、装置制御論理1128と、メモリアレイ1130とを含む。しかし、これらの構成要素の機能は、メモリの種類がこの例では異なるため、いくつかの側面で異なる。
【0074】
図12は、クロック信号がメモリコントローラ502のクロック回路1202により生成されるメモリシステムの実施形態を示す。この例では、クロック回路1202は、指定された周波数で主クロック信号を生成する位相ロックループ(PLL)回路1204を含む。クロック信号であるクロック0及びクロック1は、分周器1206及び1208のそれぞれの使用を通してこの主クロック信号から生成される。分周器1206及び1208により使用される除数は事前に定義することができ、より典型的には、レジスタ1210に記憶された対応する速度値(速度0及び速度1)により指定し得る。
【0075】
したがって、この後者の場合、クロック0及びクロック1のクロック速度は、メモリ制御論理524が適切な値をレジスタ1210にプログラムすることにより指定し得る。上述したように、場合によっては、これらの値はメモリマップから得られる情報に基づき得る。場合によっては、これらの値は、システムに最初にメモリ装置が構成されるとき、又はメモリコントローラが初期化されるときに常に、ロードし得る(例えば、不揮発性メモリからロードされる値)。
【0076】
図12は、位相調整回路1212及び1214が、クロック信号であるクロック0及びクロック1の位相制御に使用される実施態様も示す。位相調整回路1212及び1214により付与される位相シフトは、事前に定義することができ、より典型的には、レジスタ1210に記憶された対応する位相値(位相0及び位相1)により指定し得る。
【0077】
したがって、後者の場合、クロック0及びクロック1の位相調整は、メモリ制御論理524が適切な値をレジスタ1210にプログラムすることにより指定し得る。上述したように、場合によっては、これらの値はメモリマップから得られる情報に基づき得る。場合によっては、これらの値は、システムに最初にメモリ装置が構成されるとき、又はメモリコントローラが初期化されるときに常に、ロードし得る(例えば、不揮発性メモリからロードされる値)。
【0078】
場合によっては、位相値は較正回路1216により決定し得る。例えば、較正回路は、既知のデータパターンをメモリ装置に送信させ、メモリ装置に返信させ得る。次に、異なる位相値がレジスタ1210にプログラムされる場合、返信データを収集し得る。次に、各位相の誤差率又は返信データに関連付けられた他の情報に基づいて、較正回路1216は最適な位相値を選択し得る。
【0079】
図12の例では、MCLKが、装置選択信号に基づいてクロック0及びクロック1から選択される。次に、MCLKは、上述したように、適切なインタフェース回路構成要素1218(例えば、ラッチ及びFIFO)に提供される。
【0080】
クロック信号であるクロック0及びクロック1は、対応するメモリ装置にも送信される。便宜上、メモリ装置1102のみが図12に示される。ここで、クロック0はインタフェース回路1120により受信され(インタフェース回路1120は単にクロック信号の受信器を提供し得る)、インタフェース回路1120は、信号路1220を介して信号をメモリ装置1102のクロック回路1222にルーティングする。次に、クロック回路1222は、クロック0に基づいて、メモリ装置1102の構成要素(例えば、インタフェース回路1120内のラッチ)が使用する1つ又は複数のクロック信号を生成し得る。例えば、クロック回路1222は、位相遅延をクロックに付与する回路を組み込んでもよく、クロックをクリーンアップする回路(例えば、PLL)を組み込んでもよく、又は他の種類の回路(例えば、クロックを受動的に渡す)を組み込んでもよい。
【0081】
上述したように、場合によっては、2つ以上のクロックを所与の種類のメモリ装置に使用し得る。例えば、あるクロック速度をメモリ装置からの読み出しに使用し、別のクロック速度をメモリ装置への書き込みに使用し得る。
【0082】
図13は、3つ以上のクロック信号が2つのメモリ種類に提供されるクロック回路1302の例を示す。ここで、分周器1304は、クロック1306を第1のクロック速度で提供し、分周器1308は、クロック1310を第2のクロック速度で提供し、分周器1312は、クロック1314を第3のクロック速度で提供する。クロック1306は、例えば、第1のメモリ装置(例えば、装置0)から読み出す場合に使用し得る。クロック1310は、例えば、第1のメモリ装置(例えば、装置0)に書き込む場合に使用し得る。クロック1314は、例えば、第2のメモリ装置(例えば、装置1)から読み出すか、又は書き込む場合に使用し得る。
【0083】
これらのクロックの選択に様々な技法を使用し得る。図13の例では、読み出し/書き込み選択信号(例えば、メモリ制御論理により提供される)が、装置選択信号と併せて使用される。しかし、他の場合、他の種類の信号を利用し得る。例えば、特定の種類のアクセスポイントの特定のアクセス(例えば、読み出し又は書き込み)に特定のコードを提供する信号を使用し得る。
【0084】
図14は、クロック信号がメモリ装置により生成されるメモリシステムの実施形態を示す。例えば、メモリ装置1102のクロック回路1402は、指定された周波数でクロック信号を生成するPLL回路1404を含む。いくつかの態様では、このクロック信号は、メモリ装置1102の構成要素(例えば、インタフェース回路1120内のラッチ)により使用される1つ又は複数のクロック信号の生成に使用し得る。
【0085】
クロック信号は、信号路1406及びインタフェース回路1120(単にクロック信号の送信器を提供し得る)を介してメモリコントローラ502にも送信される。したがって、クロック信号であるクロック0及び他の任意のクロック信号(例えば、クロック1)は、メモリコントローラ502の受信器により受信され、受信器はクロック信号をクロック回路1408にルーティングする。次に、クロック回路1408は、受信信号を処理して、メモリコントローラ502による使用にクロック(例えば、クロック0’及びクロック1’)を提供する。例えば、クロック回路1408は、位相遅延をクロックに付与する回路を組み込んでもよく、クロックをクリーンアップする回路(例えば、PLL1410)を組み込んでもよく、又は他の種類の回路(例えば、クロックを受動的に渡す)を組み込んでもよい。
【0086】
図15は、クロック信号が、メモリコントローラ502及びメモリ装置から外部のクロック生成器1502により生成されるメモリシステムの実施形態を示す。このクロック信号は、メモリコントローラ502のクロック回路1504と、メモリ装置のクロック回路(例えば、メモリ装置1102のクロック回路1506)とに、データ転送動作に使用するために送信される。
【0087】
クロック回路1504は、任意選択的に、受信クロック信号を処理し得る(例えば、クロックに位相遅延を付与するため、PLL回路1508を使用してクロックをクリーンアップするため)。いずれの場合でも、受信クロック信号又は処理されたクロック信号のいずれかが分周器1510及び1512に提供され、異なるクロック(例えば、クロック0及びクロック1)を異なる種類のメモリ装置のアクセスに提供する。上述したように、クロック回路1504は、分周器1510及び1512を構成するレジスタ1514を利用し得る。
【0088】
クロック回路1506は、任意選択的に、受信クロック信号を処理してもよい(例えば、クロックに位相遅延を付与し、PLL回路1516を使用してクロックをクリーンアップし得る)。したがって、受信クロック信号又は処理されたクロック信号のいずれかが、分周が必要な場合には分周器1518に提供され、メモリ装置1102にアクセスするクロック(例えば、クロック0)を提供する。本明細書において考察するように、クロック回路1506は、分周器1518を構成するレジスタ(図15に示されず)を利用してもよく、又は分周器1518は何らかの他の様式で構成してもよい(例えば、事前定義)。
【0089】
いくつかの実施態様では、分周器を外部クロック生成器において利用し得る(例えば、メモリコントローラ及びメモリ装置で利用する代わりに)。図16は、この種の実施態様の例を示す。ここでは、クロック生成器1602において生成されるクロックは、1つ又は複数の分周器1604に提供されて、複数のクロック信号(例えば、クロック0及びクロック1)が生成される。次に、これらのクロック信号はメモリコントローラ502と、メモリ装置1102及び1104とに提供され、上述したように使用される。例えば、メモリコントローラ502のクロック回路1606は、装置選択信号に基づいて、これらのクロック信号のうちの一方を、内部データ転送クロック動作に選択し得る。
【0090】
いくつかの実施態様では、クロック信号は、埋め込みクロック・データ信号を介してメモリシステム内の構成要素間で渡し得る。図17は、メモリコントローラ502が埋め込みクロック・データ信号をメモリ装置1102に送信する例を示し、その一方で、図18は、メモリ装置1102が埋め込みクロック・データ信号をメモリコントローラ502に送信する例を示す。
【0091】
図17では、送信FIFO1106からのデータは埋め込みクロック回路1702に提供され、埋め込みクロック回路1702は、クロック(例えば、MCLK)をデータに埋め込み、埋め込みクロック・データ信号を提供する。次に、この信号はメモリ装置1102に送信され、メモリ装置1102において、クロック・データ復元回路1704がデータを抽出し、受信信号からクロックを復元する。次に、復元されたクロックはクロック回路1706に提供し得、クロック回路1706は、任意選択的に、復元されたクロックを処理し(例えば、位相調整又は信号のクリーンアップ)、復元されたクロックを使用してI/Oクロックを提供する。このI/Oクロックは、例えば、データをメモリコントローラ502に送信するために使用し得る。
【0092】
図18では、メモリ装置1102のメモリアレイから読み出されたデータは、埋め込みクロック回路1802に提供され、埋め込みクロック回路1802は、クロック(例えば、クロック回路1804により生成されたI/Oクロック)をデータに埋め込み、埋め込みクロック・データ信号を提供する。次に、この信号はメモリコントローラ502に送信され、メモリコントローラ502において、クロック・データ復元回路1806が、受信信号からデータを抽出し、クロックを復元する。次に、復元されたクロックはクロック回路1808に提供し得、クロック回路1808は、任意選択的に、復元されたクロックを処理し(例えば、位相調整又は信号のクリーンアップ)、復元されたクロックを使用してクロック(例えば、MCLK)を提供する。本明細書において考察するように、MCLKは、例えば、データをメモリ装置1102に送信するために使用し得る。
【0093】
上述したように、メモリ装置がクロック分周器を含む実施態様では、その分周器の除数はプログラム可能である。図19は、そのような分周器をいかにプログラムし得るかの一例を示す。この場合、低速バスがメモリコントローラ502と、メモリ装置1102及び1104のクロック回路1902及び1904のそれぞれとの間に提供される。このようにして、除数情報又は他の適した情報を、分周器1910及び1912を制御する速度選択回路1906及び1908のそれぞれに提供し得る。いくつかの実施態様では、速度選択回路は、低速バスを介する通信を可能にする機能と、除数情報を記憶する機能(例えば、データレジスタ)とを備え得る。
【0094】
この例では、分周器1910及び1912に入力を提供するクロックは、メモリコントローラ502により提供されるものとして示される。しかし、クロックが何らかの他のエンティティ(例えば、図15のクロック生成器)で発生する場合もあることを理解されたい。
【0095】
図20〜図22は、メモリ装置を時分割多重化バス上で選択的に動作できるようにするために利用し得る技法を示す。特に、図20は、メモリ装置のイネーブルに装置選択信号を使用する実施形態を示し、図21は、メモリ装置のコマンドに基づくイネーブルを使用する実施形態を示し、図22は、時分割多重化クロック信号のイネーブル受信にクロック受信イネーブル信号を利用する実施形態を示す。
【0096】
図20では、状態機械2002(例えば、装置制御論理1122の)が、制御バス上の入力コマンドを処理する。例えば、状態機械2002は、制御バス上のコマンドを識別し、コマンドのフィールドを解釈するコマンドインタプリタ2004を備え得る(例えば、図8A〜図9Bに示されるように)。メモリ装置1102がそのメモリ装置に意図されたコマンドのみを解釈することを保証するために、メモリコントローラは、メモリコントローラがメモリ装置1102にアクセスしている場合のみメモリ装置1102をイネーブルする装置選択信号を提供し得る。例えば、装置選択信号のアクティブ化を受けて、状態機械2002は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号をメモリ装置1102の受信器2006及び送信器2008(例えば、インタフェース回路1120内に提供される)に提供し得る。逆に、装置選択信号の非アクティブ化を受けて、状態機械2002は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号を非アクティブ化し得る。このようにして、メモリ装置1102がメモリアレイ1124に対して意図しない書き込みを実行せず、又はTDMデータバス上に誤った時間(例えば、別の装置がTDMデータバスを使用している時間)にデータを出力しないことを保証し得る。
【0097】
図21では、メモリ装置1102は、制御バス上の入力コマンドを処理する状態機械2102(例えば、コマンドインタプリタ2104を備える)も含む。しかし、この場合、制御バス上のコマンドは、特定のメモリ装置種類がTDMデータバス上でイネーブルされるか否かを示し得る。例えば、図8A及び図8Bに示されるように、コマンドは、データバス上での続く(例えば、次の)動作にイネーブルされるメモリ装置の種類を識別するチップ選択(CS)フィールドを有し得る。したがって、状態機械2102は、チップ選択情報を、メモリ装置1102に関連付けられた識別子と比較することにより、メモリ装置がイネーブルされるか否かを判断し得る。いくつかの実施態様では、この識別子は装置識別子(装置ID)2106の形態をとり得る。そのような識別情報は、例えば、ハードワイヤードであってもよく(例えば、メモリ装置の指定されたピンに与えられる電力信号及び/又は接地信号を介して)、プログラムしてもよく(例えば、装置識別子2106がレジスタを備える実施形態において)、又は他の何らかの様式で構成してもよい。
【0098】
メモリ装置1102を、TDMデータバス上での来るデータ転送にイネーブルすべきであるとの決定を受けて、状態機械2102は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号をメモリ装置1102の受信器2108及び/又は送信器2110(例えば、インタフェース回路1120内に提供される)に提供し得る。したがって、指定されたアクセスの終了時、状態機械2102は、受信(RX)イネーブル信号及び/又は送信(TX)イネーブル信号を非アクティブ化し得る。このようにして、メモリ装置1102が、メモリアレイ1124に対して意図しない書き込みを実行せず、又はTDMデータバス上に誤った時間(例えば、別の装置がTDMデータバスを使用している時間)にデータを出力しないことを保証し得る。
【0099】
図21は、制御バスを本明細書において考察するように時分割多重化し得ることも示す。すなわち、1つのメモリ装置のコマンドが、ある時間期間中に制御バス上に現れ、別のメモリ装置のコマンドが、別の時間期間中に制御バス上に現れ得る。本明細書において考察されるように、いくつかの実施態様では、共通の時分割多重化制御・データバスを利用することもできる。これらの場合のいずれでも、図20の装置選択イネーブル又は図21のコマンドに基づくイネーブルを利用して、適切な時間にメモリ装置をイネーブルし得る。しかし、コマンドに基づくイネーブルの場合、メモリ装置が多重化バスに誤った時間にアクセスしないことを保証する対策が必要であり得る。例えば、すべてのメモリ装置が制御情報をリッスンする特定の時間を指定し得る。別の例として、特定の時間にバスをリッスンするように特定のメモリ装置をスケジュールし得る。
【0100】
これより図22を参照すると、いくつかの実施態様では、異なるクロック信号(例えば、クロック0及びクロック1)を共通(すなわち、同じ)信号路(例えば、単一のトレース又はトレース対)を介して時分割多重化し得る。そのような場合、メモリコントローラ502(例えば、メモリ制御論理524)は、クロック受信イネーブル信号を提供して、所与のメモリ装置が多重化クロック路上でいつクロック信号をリッスンし得るかを知れるようにし得る。クロック受信イネーブル信号がアクティブ化されると、メモリ装置1102上のクロック回路2202は、多重化クロック路に存在する信号に基づいてクロック(例えば、I/Oクロック)を提供し得る。本明細書において考察されるように、クロック回路2202は、受信クロック信号をある程度処理し得る(例えば、遅延を提供し、又は信号をクリーンアップするために)。
【0101】
図22は、多重化クロック信号を提供するために利用し得る例としてのクロック回路2204(例えば、クロック生成器)も簡略的に説明する。この例では、クロック回路2204はスイッチ2206(例えば、マルチプレクサ)を含み、スイッチ2206は、複数の異なる周波数信号のうちの1つを選択することで、所与の速度でクロック信号を提供する。ここで、スイッチ2206は速度制御信号(例えば、上述したように、装置選択論理602により提供される装置選択信号又は他の適した信号)により制御し得る。したがって、どの種類のメモリが現在アクセス中であるかに基づいて速度制御信号を変更することにより、クロック回路2204を制御して、時分割多重化クロック信号を提供し得る。図10において上述したように、クロック周波数を切り替えた後に遅延を生じさせて、クロック信号に適切な整定時間を提供し得る。図22の例では、異なる周波数信号が分周器2208によりスイッチに提供され、分周器2208は、PLL2210等のマスタクロック源からのクロック信号に基づいて異なる分周クロック信号を提供する。
【0102】
上述したように、メモリコントローラは、異なる種類のメモリ装置を宛先とした書き込みデータを共通クロック速度で提供し、それと同じクロック速度で受信データを処理し得る。そのような場合、メモリコントローラは、この処理を駆動するクロックを繰り返し変更する必要なく、同じ信号処理路を使用して、任意の種類のメモリ装置を宛先としたデータ又は任意の種類のメモリ装置から受信したデータを処理し得るため、メモリコントローラの構築及び動作を簡略化し得る。図23〜図26は、データがメモリ装置に書き込まれる速度又はデータがメモリ装置から読み出される速度とは異なる速度で、メモリコントローラがデータを処理する実施態様において、速度適合をいかに達成し得るかの例を説明する。便宜上、以下の考察では、共有バスを介してルーティングされるデータに対して実行し得る速度適合を説明した。制御情報に速度適合を提供するためにも、これらの技法を使用し得ることを理解されたい。
【0103】
図23及び図24は、複製データを書き込みデータに追加し、複製データを読み出しデータストリームから除去することにより、速度適合が提供される例を説明する。そのような方式は、高速クロックのクロック速度が低速クロックのクロック速度の整数倍である実施態様で有利に利用し得る。
【0104】
図23では、メモリコントローラ(例えば、図5のメモリ制御論理524及びインタフェース回路526の構成要素)は、高速データ(A0〜C0)及び低速データ(A1〜C1)を同時に処理する。例えば、高速データは、2Xクロックに対応する速度でデータを受信するメモリ装置を宛先とし得る。逆に、低速データは、1Xクロックに対応する速度でデータを受信するメモリ装置を宛先とし得る。この例では、メモリコントローラは、2つの装置を宛先とした書き込みデータを2X速度で提供する。このようにして、メモリコントローラのこの段階は、データがメモリ装置に最終的に送信される速度に関係なく、同じようにデータを処理し得る。
【0105】
この場合、高速データを同じ速度で共有バスに出力し得る。すなわち、高速データの場合、速度適合処理はない。
【0106】
他方、低速データの場合、速度適合回路2302は、複製データを2Xクロック速度でデータストリーム中に挿入する。その結果、図23の右上の枠内のデータ対(例えば、A1、A1)で表されるように、メモリコントローラは低速データを1Xクロック速度で出力する。換言すれば、いくつかの態様では、複製データは、第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、第2のより低速のクロック速度でデータを提供する。
【0107】
図24は、読み出しデータの場合の相補的な動作を説明する。ここで、メモリコントローラ(例えば、図5のインタフェース回路526の構成要素)は、高速データを2Xクロック速度で受信し、低速データを1Xクロック速度で受信する。この場合、メモリコントローラは、高速データ及び低速データの両方を2Xクロック速度でサンプリングする。したがって、メモリコントローラのこの段階は、データをメモリ装置から受信した速度に関係なく、データを同じように(例えば、同じ速度で)処理し得る。
【0108】
この場合、高速データを同じ速度で渡し得る(例えば、システムプロセッサに送信し得る)。すなわち、高速データの場合、速度適合処理はない。
【0109】
低速データの場合、2Xクロックでサンプリングされると、結果として生成されるデータストリームは、2Xクロック速度で複製データ(例えば、追加のA1サンプル)を含む。したがって、速度適合回路2402は、データストリーム内の複製データを破棄(例えば、無視)して、2X速度で元のデータを提供する。
【0110】
図23及び図24の速度適合回路は、様々な方法で実施し得る。例えば、速度適合回路2302は、データをある速度でバッファリングし、それと同じ速度で二重読み出しを実行して、複製データを提供するバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。逆に、速度適合回路2402は、ある速度でデータをバッファリングし、それと同じ速度で1つ置きのメモリ位置を読み出して、複製データを除去するバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。
【0111】
速度適合回路も同様に、様々な方法で制御し得る。例えば、場合によっては、すべてのデータは、速度適合回路を通ってルーティングし得るが、速度適合回路を選択的にイネーブルして、処理中のデータが速度適合を必要とする(例えば、データが低速データである)か否かを示す制御信号に基づいて速度適合を実行し得る。そのような制御信号は、例えば、ターゲットメモリ装置に基づいて(例えば、メモリアドレスに基づいて)低速データを識別し得る図6の装置選択論理602により生成し得る。
【0112】
図25及び図26は、タイミングバブルデータを書き込みデータストリームに挿入し、読み出しデータストリームからタイミングバブルを除去することにより、それぞれの速度適合が提供される例を説明する。そのような方式は、高速クロックのクロック速度が、低速クロックのクロック速度の整数倍であるか、又は整数倍ではない実施態様で利用し得る。図23及び図24の例と同様に、高速データはこの方式では速度適合を受けない。したがって、高速データについてはここで詳述しない。
【0113】
図25では、メモリコントローラ(例えば、メモリ制御論理524及びインタフェース回路526の構成要素)は、低速データ(A1〜C1)を高速クロック速度(例えば、1.33X)で処理する。低速データの場合、パディング回路2502がタイミングバブルを高速クロック速度で追加する。このタイミングバブルは、ダミー(例えば、「無関係」又は無効)データ2504を含み得る。したがって、上のように、この段階において、メモリコントローラは、データが最終的にメモリ装置に送信される速度に関係なく、同じように(例えば、同じ速度)でデータを処理し得る。
【0114】
次に、速度適合回路2506は、タイミングバブルを含むデータのタイミングを再びとり、低速クロック速度(例えば、1X)でデータを提供する。したがって、メモリコントローラは、低速クロック速度で低速データを出力する。
【0115】
図26は、読み出しデータの場合の相補的な動作を説明する。ここで、メモリコントローラ(例えば、インタフェース回路526の構成要素)は、低速クロック速度で低速データを受信する。次に、速度適合回路2602は、データのタイミングを再びとり(任意選択的に、ダミーデータ2604を有するタイミングバブルを挿入し)、高速クロック速度でデータを提供する。したがって、メモリコントローラの続く段階において、メモリコントローラは、データをメモリ装置から受信した速度に関係なく、同じようにデータを処理し得る。ここで、ダミーデータとは、タイミングバブル中に存在するデータ値を指す。したがって、ダミーデータは、ダミーデータを受信するエンティティにより使用されるべきではない(例えば、無視又は破棄される)データを含む。換言すれば、ダミーデータの値は、メモリシステムの動作に影響しないため、「無関係」であると見なし得る。
【0116】
ダミーデータ2604が受信データストリームに挿入される場合、パディング除去回路2606を利用して、ダミーデータ2604を除去し得る。したがって、タイミングバブル又はダミーデータのないデータストリームが、高速で提供される(そして、例えば、データを要求したシステムプロセッサに送信される)。
【0117】
図25及び図26の回路は、様々な方法で実施し得る。例えば、パディング回路2502は、データをある速度でバッファリングし、それと同じ速度でデータを読み出し、定義された間隔でダミーデータを読み出す(又は多重化する)バッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。速度適合回路2506も、データをある速度(例えば、1.33X)でバッファリングし、定義されたデータ位置を飛ばして、ダミーデータの読み出しを回避しながら、異なる速度(例えば、1X)でデータを読み出すバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。速度適合回路2602は、データをある速度(例えば、1X)でバッファリングし、任意選択的に、定義された間隔にあるダミーデータを読み出し(又は多重化し)ながら、異なる速度(1.33X)でデータを読み出すバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。最後に、パディング除去回路2606は、データをある速度でバッファリングし、任意選択的に、定義されたデータ位置を飛ばして、ダミーデータの読み取りを回避しながら、それと同じ速度でデータを読み出すバッファ(例えば、メモリ制御論理524により制御されるFIFO)を備え得る。
【0118】
図25及び図26の回路も同様に、様々な方法で制御し得る。例えば、場合によっては、すべてのデータを速度適合回路及びパディング又はパディング除去回路を通ってルーティングし得るが、これらの回路は選択的にイネーブルされて、図23及び図24と併せて上述したのと同様に、処理中のデータが速度適合を必要とするか否かを示す制御信号に基づいて速度適合を実行し得る。
【0119】
上述した方式以外の方式の使用を通して速度適合を実施してもよいことを理解されたい。例えば、データが並列バスで送信される場合、一構成要素が、バス信号路の一部分でデータを送信して、より低速でデータを提供し得る。
【0120】
本明細書において説明される速度制御動作は、異なる実施形態では、メモリコントローラの異なる機能ブロックで実施し得る。例えば、図27は、メモリコントローラ2700がメモリ制御論理ブロック2702と、物理インタフェース(PHY)ブロック2704とを備え得ることを示す。上述したように、いくつかの実施態様では、PHYブロック2704は単に、チャネル駆動、ビット受信、直列化、及び非直列化等の動作を実行し得る。しかし、他の実施態様では、PHYブロック2704は速度適合動作を実行し得る。例えば、制御情報及びデータを所与の速度で、メモリ制御論理ブロック2702とPHYブロック2704との間で転送し得る。データを所与のメモリ装置に送信又は所与のメモリ装置から受信すべき場合、メモリ制御論理ブロック2702は、速度制御信号をPHYブロック2704に送信し得る。PHYブロックは次に、速度適合動作を実行して、適切な速度でデータを出力又は受信し得る。
【0121】
図28は、例としての選択論理回路2800(例えば、図6の装置選択論理602に対応する)を簡略化して示す。この例では、速度・プロトコルセレクタ2802が、メモリアクセスに関連付けられたアドレス(例えば、読み出し要求又は書き込み要求内にシステムプロセッサにより提供されるような)に基づいて、所与のメモリアクセスに使用すべき速度及びプロトコルを選択する。ここで、選択論理回路2800はアドレスマップを含み、アドレスマップは、異なるアドレス範囲を異なる種類のメモリ装置にマッピングするとともに、それらの種類のメモリ装置にアクセスする場合(すなわち、それらの範囲内のアドレスにアクセスする場合)に使用すべきデータ速度及びプロトコルにマッピングする。
【0122】
上述したように、いくつかの実施態様では、異なるプロトコルの使用は、I/Oピン、ひいては制御信号及び/又はデータ信号の搬送に使用される対応する共有バス信号路の再マッピングを含み得る。したがって、メモリコントローラ(例えば、メモリ制御論理524及びインタフェース回路526の構成要素)は、マッピング制御回路2806を含み得、マッピング制御回路2806は、選択されたプロトコルに基づいて(例えば、どの種類のメモリ装置が現在アクセス中であるかに基づいて)、制御信号と信号路とのマッピング及び/又はデータ信号と信号路とのマッピングを構成する。例えば、メモリコントローラは、第1の種類のメモリ装置にアクセスする場合、所与の信号路を介してデータを送信し、第2の種類のメモリ装置にアクセスする場合、同じ信号路を介して制御情報を送信し得る。別の例として、メモリコントローラは、第1の種類のメモリ装置にアクセスする場合、所与の信号路を介して第1の種類の制御情報を送信し、第2の種類のメモリ装置にアクセスする場合、同じ信号路を介して第2の種類(であるが、第1の種類ではない)制御情報を送信し得る。
【0123】
マッピング制御回路2806は様々な形態をとり得る。場合によっては、マッピング制御回路2806は1つ又は複数のマルチプレクサ回路を含み得、各マルチプレクサ回路は、メモリコントローラの1組の内部信号路の1つを、メモリコントローラの所与のI/Oピンに選択的に結合する。場合によっては、このマッピングは、単に異なる情報(例えば、制御又はデータ)を特定の出力レジスタに書き込むか、又は受信した情報を別様に解釈する(例えば、制御又はデータとして解釈する)ことにより達成し得る。
【0124】
図29は、信号をシステムバス(例えば、クロックバス520、制御バス522、及び共有信号バス508)とメモリ装置2904及び2906との間でルーティングするバッファ回路2902を含むメモリ装置2900(例えば、メモリモジュール)の実施形態を示す。いくつかの態様では、バッファ回路は、メモリ装置コネクタインタフェース(図示せず)と集積回路メモリ装置とのインタフェースとして動作する集積回路を備え得る。様々な実施態様では、バッファ回路2902は、メモリ装置の信号の分離、記憶、ルーティング、又は変換のうちの1つ又は複数を実行するように構成し得る。
【0125】
図29に示されるように、バッファ回路2902は、バスの多重化及び逆多重化を提供し得る。例えば、バッファ回路2902は、クロックバス520を逆多重化し、専用クロック信号(クロック0及びクロック1)を各メモリ装置2904及び2906に提供し得る。加えて、バッファ回路2902は、制御バス522を逆多重化し、専用制御信号(例えば、装置選択0及び装置選択1)を各メモリ装置2904及び2906に提供し得る。バッファ回路2902は、共有信号バス508も逆多重化し、専用バス(例えば、制御/データバス0及び制御/データバス1)を各メモリ装置2904及び2906に提供し得る。
【0126】
本明細書の教示は多種多様な形態で具現し得、そのうちのいくつかは、開示される実施形態の形態とはかなり異なって見え得る。したがって、本明細書に開示される具体的な構造及び機能の詳細は、単に代表的なものであり、本開示の範囲を限定しない。例えば、本明細書の教示に基づいて、本明細書に開示された様々な構造及び機能の詳細を、他の任意の構造又は機能の詳細から独立して、実施形態で組み込み得ることを当業者は理解するはずである。したがって、開示される任意の実施形態に記載される任意の数の構造又は機能の詳細を使用して、装置又は方法を実施し得る。開示される任意の実施形態に記載される構造又は機能の詳細に加えて、又はそのような詳細以外の他の構造又は機能の詳細を使用して、装置又は方法を実施してもよい。
【0127】
本明細書において教示されるコントローラ装置(例えば、コントローラ機能を組み込んだ集積回路)及びメモリ装置(例えば、メモリコアを組み込んだ集積回路)は、様々な形態をとり得る。例えば、コントローラ装置は、メモリコントローラチップ、コントローラ機能を含むプロセッサチップ、又は他の何らかの適した装置を含み得る。いくつかの態様では、メモリ装置は、1組の記憶セルを含む半導体集積回路素子を含み得、記憶セルは集合的にメモリアレイ又はメモリアレイの部分を提供し得る。
【0128】
本明細書の教示に従って利用し得る異なるメモリ種類(すなわち、メモリ技術)の例としては、限定せずに、揮発性メモリ装置、不揮発性メモリ装置、フラッシュメモリ、ダイナミックRAM(DRAM)、抵抗RAM(RRAM)、磁気抵抗RAM(MRAM)、相変化メモリ(PCM)、及びスタティックRAM(SRAM)が挙げられる。これらのメモリ種類の様々な特徴は、本明細書において教示されるように、共有バスを介してこれらのメモリ種類を一緒に使用するのに役立つように構成し得る。例えば、いくつかの実施態様では、異なる種類のメモリは同一のプロトコル、シグナリングレベル、及びピン出力を使用し得る。しかし、他の実施形態では、これらの特徴の1つ又は複数は、異なるメモリ種類間で異なり得る。
【0129】
本明細書において教示されるメモリシステムは、様々な用途で使用し得る。例えば、そのようなメモリシステムは、ポータブル装置、携帯電話、コンピュータグラフィックスカード、ビデオゲームコンソール、プリンタ、パーソナルコンピュータ、サーバ、処理システム(例えば、CPU素子)、又はデータ記憶を利用する他の何らかの装置内に組み込み得る。
【0130】
本明細書に記載された様々な構造及び機能を、様々な方法で、様々な装置を使用して実施し得ることも理解されたい。例えば、装置(例えば、デバイス)は、様々なハードウェア構成要素により実施し得、そのようなプロセッサ、コントローラ、状態機械、論理、又はこれらの構成要素の1つ若しくは複数の何らかの組み合わせ。いくつかの態様では、装置又は装置の任意の構成要素は、例えば、本明細書において教示されるような機能を提供するように装置又は構成要素を製造する(例えば、組み立てる)ことにより、そのような機能を提供するように装置又は構成要素をプログラムすることにより、或いは他の何らかの適した手段の使用を通して、そのような機能を提供するように構成し得る。
【0131】
いくつかの実施形態では、命令(例えば、ソフトウェア、ファームウェア、ミドルウェア等)を含むコードは、1つ又は複数の処理装置上で実行して、記載された機能又は構成要素の1つ又は複数を実施し得る。コード及び関連する構成要素(例えば、データ構造及びコードによる構成要素又はコードを実行する構成要素)は、処理装置により可読な適切なデータメモリ(例えば、一般にコンピュータ可読媒体と呼ばれる)に記憶し得る。いくつかの実施形態では、本明細書の教示により構築される装置は、機械可読媒体に記憶された回路記述を備え得る。そのような回路記述は、例えば、本明細書において教示されるような1つ又は複数の機能又は構成要素を実施し得る。
【0132】
本明細書に開示されるプロセス内のブロックの記載順序は、単に適切な手法の例である。したがって、そのようなブロックに関連付けられた動作は、本開示の範囲内にありながら、再編成し得る。同様に、付随する方法クレームは、動作を例としての順序で提示し、必ずしも提示される特定の順序に限定されない。
【0133】
本明細書に記載の構成要素及び機能は、様々な方法で結び付け又は結合し得る。これが行われる様式は、部分的に、構成要素が他の構成要素から分離されているか否か、及びどのように分離されているかに依存し得る。いくつかの実施形態では、図面でリード線により表される接続又は結合のいくつかは、集積回路内にあってもよく、回路基板上にあってもよく、離散ワイヤとして実施されてもよく、又は他の何らかの方法であってもよい。
【0134】
本明細書において考察される信号は様々な形態をとり得る。例えば、いくつかの実施形態では、信号は、ワイヤを介して伝送される電気信号、光ファイバ若しくは空気等の光学媒体を通って伝送される光パルス、又は空気等の媒質を通って伝送されるRF波等を含み得る。加えて、本明細書では、複数の信号をまとめて信号と呼び得る。上記信号は、データの形態をとることもできる。例えば、いくつかの実施形態では、アプリケーションプログラムは信号を別のアプリケーションプログラムに送信し得る。そのような信号は、データメモリに記憶し得る。
【0135】
本明細書での「第1の」、「第2の」等の表記を使用した要素のいかなる言及も、一般にこれらの要素の数量又は順序を限定しないことも理解されたい。むしろ、これらの表記は、本明細書において、2つ以上の要素又は要素のインスタンスを区別する都合のよい方法として使用し得る。したがって、第1及び第2の要素という言及は、2つのみの要素を利用し得ることを意味せず、又は第1の要素が何らかの様式で第2の要素に先行しなければならないことを意味しない。また、別記される場合を除き、1組の要素は1つ又は複数の要素を含み得る。
【0136】
特定の例としての実施形態について、詳細に上述し、添付図面に示したが、そのような実施形態が本明細書の教示の単なる例示であり、本明細書の教示を限定しないことを理解されたい。特に、本明細書の教示を多種多様な装置及び方法に適用可能なことを認識されたい。したがって、広義の本発明の範囲から逸脱せずに、示された実施形態及び本明細書に教示される補間お実施形態に様々な変更を行い得ることが認識される。上記に鑑みて、本明細書の教示が開示された特定の実施形態又は構成に限定されず、むしろ、添付の特許請求の範囲内にあるあらゆる変更、適合、又は修正の包含を意図されることが理解される。
【特許請求の範囲】
【請求項1】
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供するように構成されたクロック回路と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化するように構成されたインタフェース回路と、
を備える、メモリコントローラ。
【請求項2】
前記インタフェース回路は、前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記データの前記異なる種類のメモリ装置への書き込みに異なる命令プロトコルを選択するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項3】
前記クロック信号は第1のクロック信号及び第2のクロック信号を含み、
前記第1のクロック信号は、前記メモリ装置の種類のうちの第1の種類に関連付けられた第1の固有クロック速度で動作し、
前記第2のクロック信号は、前記メモリ装置の種類のうちの第2の種類に関連付けられた第2の固有クロック速度で動作し、
前記第1の固有クロック速度は、前記第2の固有クロック速度とは異なる、請求項1に記載のメモリコントローラ。
【請求項4】
前記クロック信号は、第1のクロック信号、第2のクロック信号、及び少なくとも1つの他のクロック信号を含み、
前記第1のクロック信号は、前記メモリ装置の種類のうちの第1の種類の書き込み動作に関連付けられた第1の固有クロック速度で動作し、
前記第2のクロック信号は、前記メモリ装置の種類のうちの前記第1の種類の読み出し動作に関連付けられた第2の固有クロック速度で動作し、
前記少なくとも1つの他のクロック信号は、前記メモリ装置の種類のうちの第2の種類の読み書き動作に関連付けられた第3の固有クロック速度で動作する、請求項1に記載のメモリコントローラ。
【請求項5】
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置は、前記クロック速度のうちの第1の速度で前記共有信号バスを介して送受信するように構成され、
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置は、前記クロック速度のうちの第2の速度で前記共有信号バスを介して送受信するように構成される、請求項1に記載のメモリコントローラ。
【請求項6】
前記第1のクロック速度は、前記第2のクロック速度の整数倍である、請求項5に記載のメモリコントローラ。
【請求項7】
前記インタフェース回路は、
前記第1のメモリ装置に向けられた書き込み動作に第1の書き込みデータを前記第1のクロック速度で提供し、
前記第2のメモリ装置に向けられた書き込み動作に第2の書き込みデータを前記第1のクロック速度で提供する
ようにさらに構成され、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、前記第2のクロック速度でデータを提供する、請求項6に記載のメモリコントローラ。
【請求項8】
前記インタフェース回路は、
前記第1のクロック速度に基づく1クロックサイクルにわたり、前記第1の書き込みデータの各インスタンスを出力することにより、前記第1の書き込みデータを前記第1のクロック速度で前記共有信号バスに出力し、
前記第2のクロック速度に基づく1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の書き込みデータを前記第2のクロック速度で出力する
ようにさらに構成される、請求項7に記載のメモリコントローラ。
【請求項9】
前記インタフェース回路は、
前記第1の種類のメモリ装置により送信された第1のデータを前記第1のクロック速度で受信し、前記第2の種類のメモリ装置により送信された第2のデータを前記第2のクロック速度で受信するように構成された受信器と、
前記第1のデータを第1のクロック速度でサンプリングし、前記第2のデータを前記第1のクロック速度でサンプリングするように構成可能な少なくとも1つのラッチと、
をさらに備える、請求項6に記載のメモリコントローラ。
【請求項10】
前記インタフェース回路は、
前記第1の種類のメモリ装置からの読み出し動作中、第1の読み出しデータを前記第1のクロック速度でサンプリングし、前記第2の種類のメモリ装置からの読み出し動作中、第2の読み出しデータを前記第1のクロック速度でサンプリングするように構成可能な少なくとも1つのラッチであって、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供する、少なくとも1つのラッチと、
前記サンプリングされた第2の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供するように構成された速度適合回路と、
をさらに備える、請求項6に記載のメモリコントローラ。
【請求項11】
前記インタフェース回路は、
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に向けられた書き込み動作に、前記クロック速度のうちの第1の速度で第1の書き込みデータを提供するようにさらに構成され、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成され、前記インタフェース回路は、
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第2の書き込みデータを提供するようにさらに構成され、前記第2の種類のメモリ装置は、前記第1のクロック速度よりも遅い前記クロック速度のうちの第2の速度で、前記共有信号バスを介して送受信するように構成され、前記第2の書き込みデータの部分はダミーデータを含む、請求項1に記載のメモリコントローラ。
【請求項12】
前記第2の書き込みデータを前記第1のクロック速度でバッファリングし、前記バッファリングされたデータを前記第2のクロック速度で読み出して、前記共有信号バスに前記第2のクロック速度で書き込みデータを提供するように構成された速度適合回路をさらに備え、前記第2のクロック速度での前記書き込みデータは、前記ダミーデータを含まない、請求項11に記載のメモリコントローラ。
【請求項13】
前記インタフェース回路は、前記共有信号バスを介して前記異なる種類のメモリ装置を宛先とした制御情報を前記データに時分割多重化するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項14】
前記共有信号バスは共有データバスを含み、
前記インタフェース回路は、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項15】
前記異なる種類のメモリ装置のうちの1つは、前記異なる種類のメモリ装置のうちの任意の他の1つよりも遅い速度で制御情報を受信するように構成され、
前記インタフェース回路は、前記制御情報を前記より遅い速度で送信するようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項16】
前記インタフェース回路は、
制御情報を第1の速度で前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に送信し、
制御情報を、前記第1の速度とは異なる第2の速度で前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に送信する
ようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項17】
前記制御バスはコマンド・アドレスバスを含む、請求項14に記載のメモリコントローラ。
【請求項18】
所与のデータ転送に対して、
ターゲットメモリ装置として前記異なる種類のメモリ装置のうちの1つと、
前記異なるクロック速度への前記異なる種類のメモリ装置のマッピングに基づいて、前記異なるクロック速度のうちの1つと、
を選択するように構成された装置選択論理をさらに備える、請求項1に記載のメモリコントローラ。
【請求項19】
前記クロック回路は、前記装置選択論理からの信号に基づいて、それぞれが異なる周波数を有する複数の信号のうちの1つを選択することにより、前記クロック信号のうちの1つを前記所与のデータ転送に提供するように構成されたスイッチを備える、請求項18に記載のメモリコントローラ。
【請求項20】
前記第1のクロック速度の第1のクロック信号は、前記インタフェース回路と前記第1の種類のメモリ装置との間に、第1の信号路を介して結合され、
前記第2のクロック速度の第2のクロック信号は、前記インタフェース回路と前記第2の種類のメモリ装置との間に、第2の信号路を介して結合される、請求項1に記載のメモリコントローラ。
【請求項21】
前記制御論理は、
第1の較正動作を実行して、前記第1の種類のメモリ装置へのデータ送信に使用すべき第1のクロック位相を決定し、
第2の較正動作を実行して、前記第2の種類のメモリ装置へのデータ送信に使用すべき第2のクロック位相を決定する
ようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項22】
第1のクロック速度の第1のクロック信号を第1の書き込みデータに埋め込み、前記共有信号バスを介して第1の埋め込みクロック・データ信号を前記第1の種類のメモリ装置に提供し、
第2のクロック速度の第2のクロック信号を第2の書き込みデータに埋め込み、前記共有信号バスを介して第2の埋め込みクロック・データ信号を前記第2の種類のメモリ装置に提供する
ように構成されたクロック回路をさらに備える、請求項1に記載のメモリコントローラ。
【請求項23】
前記クロック回路は、前記メモリコントローラにより受信される少なくとも1つのクロック信号に基づいて、前記クロック信号を提供する、請求項1に記載のメモリコントローラ。
【請求項24】
前記メモリコントローラにより受信される前記少なくとも1つのクロック信号は、前記異なるクロック速度の複数のクロック信号を含み、
前記複数のクロック信号は、前記異なる種類のメモリ装置により提供される、請求項23に記載のメモリコントローラ。
【請求項25】
前記クロック回路はクロック生成器を備える、請求項1に記載のメモリコントローラ。
【請求項26】
前記異なるクロック速度を有する前記クロック信号は、共通の信号路を介して時分割多重化される、請求項1に記載のメモリコントローラ。
【請求項27】
前記インタフェース回路は、前記信号バスの信号路を使用して、
データを前記異なる種類のメモリ装置のうちの第1のメモリ種類の装置に送信し、
制御情報を前記異なる種類のメモリ装置のうちの第2のメモリ種類に送信する
するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項28】
前記異なる種類のメモリ装置は、ダイナミックランダムアクセスメモリと、フラッシュメモリとを含む、請求項1に記載のメモリコントローラ。
【請求項29】
メモリ制御方法であって、
異なるクロック速度を有するクロック信号を異なる種類のメモリ装置に提供すること、及び
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化すること
を含む、方法。
【請求項30】
前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記異なる種類のメモリ装置へのデータ書き込みに異なる命令プロトコルを選択することをさらに含む、請求項29に記載の方法。
【請求項31】
前記クロック速度のうちの第1の速度で第1の書き込みデータを、前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に向けられた書き込み動作に提供することであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、及び
第2の書き込みデータを前記第1のクロック速度で、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に向けられた書き込み動作に提供することであって、前記第2の種類のメモリ装置は、前記クロック速度のうちの第2の速度で前記共有信号バスを介して送受信するように構成され、前記第1のクロック速度は、前記第2のクロック速度の整数倍であり、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供すること
をさらに含む、請求項29に記載の方法。
【請求項32】
前記第1のクロック速度に基づく1クロックサイクル中に、前記第1の書き込みデータの各インスタンスを出力することにより、前記共有信号バスに前記第1のクロック速度で前記第1の書き込みデータを出力すること、及び
前記第2のクロック速度に基づく1クロックサイクル中に、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記共有信号バスに前記第2のクロック速度で前記第2の書き込みデータを出力すること
をさらに含む、請求項31に記載の方法。
【請求項33】
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置からの読み出し動作中、前記クロック速度のうちの第1の速度で第1の読み出しデータをサンプリングすること、
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置の読み出し動作中、前記第1のクロック速度で第2の読み出しデータをサンプリングすることであって、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供すること、及び
前記サンプリングされた第2の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供することであって、前記第1のクロック速度は、前記第2のクロック速度の整数倍であること、
をさらに含む、請求項29に記載の方法。
【請求項34】
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に向けられた書き込み動作に、前記クロック速度のうちの第1の速度で第1の書き込みデータを提供することであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、及び
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第2の書き込みデータを提供することであって、前記第2の種類のメモリ装置は、前記第1のクロック速度よりも遅い前記クロック速度のうちの第2の速度で、前記共有信号バスを介して送受信するように構成され、前記第2の書き込みデータの部分は、ダミーデータを含むこと
をさらに含む、請求項29に記載の方法。
【請求項35】
前記データに、前記異なる種類のメモリ装置を宛先とした制御情報を前記共有信号バス上で時分割多重化することをさらに含む、請求項29に記載の方法。
【請求項36】
前記共有信号バスは共有データバスを含み、
前記方法は、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信することをさらに含む、請求項29に記載の方法。
【請求項37】
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供する手段と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化する手段と、
を備える、メモリ制御装置。
【請求項38】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供するように構成されたクロック回路と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化するように構成されたインタフェース回路と、
を含む、装置。
【請求項39】
信号バスと、
前記信号バスに並列に結合された異なる種類の複数のメモリ装置と、
前記信号バスに結合され、データが前記異なる種類のメモリ装置に異なるクロック速度で前記信号バスに出力されるように、前記異なる種類のメモリ装置のデータを前記信号バス上で時分割多重化するように構成されたメモリコントローラと、
を備える、メモリシステム。
【請求項40】
前記異なる種類のメモリ装置は、異なる命令プロトコルを使用して、前記信号バスでのデータ転送を行うように構成され、
前記メモリコントローラは、前記異なる種類のメモリ装置を前記異なる命令プロトコルにマッピングするマッピングに基づいて、前記異なる命令プロトコルのうちの1つを選択して、前記データ転送のうちの所与の1つに制御信号を提供するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項41】
前記メモリコントローラは、前記クロック速度のうちの第1の速度の第1のクロック信号を、前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に提供し、前記クロック速度のうちの第2の速度の第2のクロック信号を、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に提供するようにさらに構成され、
前記第1のクロック速度は、前記第1の種類のメモリ装置に関連付けられた第1の固有クロック速度を含み、
前記第2のクロック速度は、前記第2の種類のメモリ装置に関連付けられた第2の固有クロック速度を含み、
前記第1の固有クロック速度は、前記第2の固有クロック速度とは異なる、請求項39に記載のメモリシステム。
【請求項42】
前記メモリコントローラは、前記メモリコントローラにより受信される少なくとも1つのクロック信号に基づいて、前記異なるクロック速度でのデータ出力に異なるクロック信号を提供するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項43】
前記少なくとも1つのクロック信号は、前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置から受信される前記クロック速度のうちの第1の速度の第1のクロック信号と、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置から受信される前記クロック速度のうちの第2の速度の第2のクロック信号とを含む、請求項42に記載のメモリシステム。
【請求項44】
前記複数の異なる種類のメモリ装置のうちの第1の種類のメモリ装置は、前記クロック速度のうちの第1の速度で前記信号バスを介して送受信するように構成され、
前記複数の異なる種類のメモリ装置のうちの第2の種類のメモリ装置は、前記クロック速度のうちの第2の速度で前記信号バスを介して送受信するように構成され、
前記第1のクロック速度は、前記第2のクロック速度の整数倍である、請求項39に記載のメモリシステム。
【請求項45】
前記メモリコントローラは、
前記第1の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第1の書き込みデータを提供し、
前記第2の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第2の書き込みデータを提供する
ようにさらに構成され、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供する、請求項44に記載のメモリシステム。
【請求項46】
前記メモリコントローラは、
前記第1のクロック速度に基づく1クロックサイクルにわたり、前記第1の書き込みデータの各インスタンスを出力することにより、前記信号バスに前記第1のクロック速度で前記第1の書き込みデータを出力し、
前記第2のクロック速度に基づく1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の書き込みデータを前記第2のクロック速度で前記信号バスに出力する
ようにさらに構成される、請求項45に記載のメモリシステム。
【請求項47】
前記メモリコントローラは、
前記第1の種類のメモリ装置からの読み出し動作中、第1の読み出しデータを前記第1のクロック速度でサンプリングし、
前記第2の種類のメモリ装置からの読み出し動作中、第2の読み出しデータを前記第1のクロック速度でサンプリングするようにさらに構成され、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供し、
前記サンプリングされた第2の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供するようにさらに構成される、請求項44に記載のメモリシステム。
【請求項48】
前記メモリコントローラは、データに、前記異なる種類のメモリ装置を宛先とする制御情報を前記信号バス上で時分割多重化するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項49】
前記制御情報は、コマンド情報と、アドレス情報とを含む、請求項48に記載のメモリシステム。
【請求項50】
前記信号バスはデータバスを含み、
前記メモリコントローラは、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項51】
前記メモリコントローラは、
前記制御情報の第1の部分を第1の速度で、前記複数の異なる種類のメモリ装置のうちの第1の種類のメモリ装置に送信し、
前記制御情報の第2の部分を、前記第1の速度とは異なる第2の速度で、前記複数の異なる種類のメモリ装置のうちの第2の種類のメモリ装置に送信する
ようにさらに構成される、請求項50に記載のメモリシステム。
【請求項52】
前記メモリコントローラは、それぞれが異なる周波数を有する複数の信号のうちの1つを選択することにより、前記信号バス上での所与のデータ転送に前記クロック信号のうちの1つを提供するように構成されたスイッチを備える、請求項39に記載のメモリシステム。
【請求項53】
前記メモリコントローラは、前記信号バスの信号路を使用して、
データを前記複数の異なる種類のメモリ装置のうちの第1の種類のメモリ装置に送信し、
制御情報を前記複数の異なる種類のメモリ装置のうちの第2の種類のメモリ装置に送信する
ようにさらに構成される、請求項39に記載のメモリシステム。
【請求項54】
前記異なる種類のメモリ装置は、ダイナミックランダムアクセスメモリと、フラッシュメモリとを含む、請求項39に記載のメモリシステム。
【請求項55】
メモリアクセス方法であって、
第1の組のデータの転送に第1のクロック速度を有する第1のクロック信号を提供し、第2の組のデータの転送に第2のクロック速度を有する第2のクロック信号を提供することにより、異なる速度で時分割多重様式で共有信号バスを介したデータを転送すること、
前記第1の組のデータの転送中、前記第1のクロック信号を使用して、前記共有信号バスと、前記信号バスに並列に結合された異なる種類の複数のメモリ装置のうちの第1の種類のメモリ装置との間で前記データの第1の部分を転送すること、及び
前記第2の組のデータの転送中、前記第2のクロック信号を使用して、前記共有信号バスと、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置との間で前記データの第2の部分を転送すること
を含む、方法。
【請求項56】
前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記第1及び第2の組のデータの転送に異なる命令プロトコルを選択することをさらに含む、請求項55に記載の方法。
【請求項57】
前記第1の種類のメモリ装置に向けられた書き込み動作に、第1の書き込みデータを前記第1のクロック速度で提供することであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、及び
前記第2の種類のメモリ装置に向けられた書き込み動作に、第2の書き込みデータを前記第1のクロック速度で提供することであって、前記第2のメモリ装置は、前記第2のクロック速度で前記共有信号バスを介して送受信するように構成され、前記第1のクロック速度は、前記第2のクロック速度の整数倍であり、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、前記第2のクロック速度でデータを提供すること
をさらに含む、請求項55に記載の方法。
【請求項58】
前記第1のクロック信号の1サイクルにわたり、前記第1の書き込みデータの各インスタンスを出力することにより、前記第1の書き込みデータを前記第1のクロック速度で前記共有信号バスに出力すること、及び
前記第2のクロック速度の1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の書き込みデータを前記第2のクロック速度で前記共有信号バスに出力すること、
をさらに含む、請求項57に記載の方法。
【請求項59】
前記第1の種類のメモリ装置からの読み出し動作中、第1の読み出しデータを前記第1のクロック速度でサンプリングすることであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、
前記第2の種類のメモリ装置からの読み出し動作中、第2の読み出しデータを前記第1のクロック速度でサンプリングすることであって、前記第2の種類のメモリ装置は、前記第2のクロック速度で前記共有信号バスを介して送受信するように構成され、前記第1のクロック速度は、前記第2のクロック速度の整数倍であり、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供すること、及び
前記サンプリングされた第2の読み出しデータを処理して、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供して、データを前記第2のクロック速度で提供すること
をさらに含む、請求項55に記載の方法。
【請求項60】
前記データに、前記異なる種類のメモリ装置を宛先とした制御情報を共有信号バス上で時分割多重化することをさらに含む、請求項55に記載の方法。
【請求項61】
前記共有信号バスは共有データバスを含み、
前記方法は、時分割多重化された様式で制御情報を前記異なる種類のメモリ装置に共有制御バス上で送信することをさらに含む、請求項55に記載の方法。
【請求項62】
第1の組のデータの転送に第1のクロック速度を有する第1のクロック信号を提供し、第2の組のデータの転送に第2のクロック速度を有する第2のクロック信号を提供することにより、異なる速度で時分割多重様式で共有信号バスを介したデータを転送する手段と、
前記第1の組のデータの転送中、前記第1のクロック信号を使用して、前記共有信号バスと、前記信号バスに並列に結合された異なる種類の複数のメモリ装置のうちの第1の種類のメモリ装置との間で前記データの第1の部分を転送する手段と、
前記第2の組のデータの転送中、前記第2のクロック信号を使用して、前記共有信号バスと、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置との間で前記データの第2の部分を転送する手段と、
を備える、メモリシステム。
【請求項63】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
信号バスと、
前記信号バスに並列に結合された異なる種類の複数のメモリ装置と、
前記信号バスに結合され、データが、前記異なる種類のメモリ装置に異なるクロック速度で前記信号バスに出力されるように、前記異なる種類のメモリ装置のデータを前記信号バス上で時分割多重化するように構成されたメモリコントローラと、
を備える、装置。
【請求項64】
第1のクロック信号を使用して、第1のデータを第1のクロック速度で受信するように構成された第1の種類の第1のメモリ装置と、
第2のクロック信号を使用して、第2のデータを第2のクロック速度で受信するように構成された第2の種類の第2のメモリ装置であって、前記第1のクロック速度は前記第2のクロック速度よりも高速である、第2のメモリ装置と、
前記第1及び第2のメモリ装置に並列に結合されて、前記第1のデータ及び前記第2のデータを時分割多重化された様式で搬送する信号バスと、
少なくとも1つの制御信号を搬送して、第1のデータを前記信号バスから前記第1のメモリ装置に前記前記第1のクロック速度で転送できるようにするとともに、前記第2のデータを前記信号バスから前記第2のメモリ装置に前記第2のクロック速度で転送できるようにする少なくとも1つの制御信号路と、
を備える、メモリ装置。
【請求項65】
前記第1のメモリ装置は、前記信号バスからの前記第1のデータの受信に第1の命令プロトコルを使用するようにさらに構成され、
前記第2のメモリ装置は、前記信号バスからの前記第2のデータの受信に第2の命令プロトコルを使用するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項66】
前記少なくとも1つの制御信号路は、少なくとも1つの装置選択信号路を含む、請求項64に記載のメモリ装置。
【請求項67】
前記少なくとも1つの制御信号路は、コマンド・アドレスバスを含む、請求項64に記載のメモリ装置。
【請求項68】
前記第1及び第2のメモリ装置は、前記コマンド・アドレスバスに提供される制御情報を、前記第2のクロック速度以下の速度で受信するようにさらに構成される、請求項67に記載のメモリ装置。
【請求項69】
前記第1及び第2のメモリ装置は、前記信号バス上で前記第1及び第2のデータに時分割多重化された制御情報を受信するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項70】
前記第1のメモリ装置は、第1の種類の制御情報の転送に、前記信号バスの第1の信号路を使用するようにさらに構成され、
前記第2のメモリ装置は、前記第1の種類の制御情報ではなく第2の種類の制御情報の転送に前記第1の信号路を使用するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項71】
前記第1のメモリ装置は、データの転送に前記信号バスの第1の信号路を使用するようにさらに構成され、
前記第2のメモリ装置は、制御情報の転送に前記第1の信号路を使用するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項72】
前記第1及び第2のメモリ装置への前記信号バスの並列結合を提供するように構成されたバッファ回路をさらに備え、バスコントローラは、少なくとも1つの制御信号に基づいて、前記第1のメモリ装置又は前記第2のメモリ装置を前記信号バスに相互に排他的に結合するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項73】
前記第1のクロック速度は、前記第2のクロック信号の整数倍である、請求項64に記載のメモリ装置。
【請求項74】
前記異なる種類のメモリは、ダイナミックランダムアクセスメモリ集積回路と、フラッシュメモリ集積回路とを含む、請求項64に記載のメモリ装置。
【請求項75】
前記第1及び第2のメモリ装置は、単一の集積回路パッケージ内に一緒にパッケージされる、請求項64に記載のメモリ装置。
【請求項76】
メモリモジュールで具現される、請求項64に記載のメモリ装置。
【請求項77】
メモリ記憶方法であって、
制御情報、第1のクロック速度を有する第1のクロック信号、及び第2のクロック速度を有する第2のクロック信号を受信すること、
前記制御情報を使用して、第1の種類の第1のメモリ装置及び第2の種類の第2のメモリ装置が、相互に排他的に共有信号バスから時分割多重化データを受信できるようにすること、
前記第1のクロック信号を前記第1のメモリ装置で使用して、前記第1のクロック速度で前記時分割多重化データの第1の部分を受信すること、並びに
前記第2のクロック信号を前記第2のメモリ装置に使用して、前記第2のクロック速度で前記時分割多重化データの第2の部分を受信すること
を含む、方法。
【請求項78】
第1の命令プロトコルを前記第1のメモリ装置で使用して、前記信号バスから前記第1のデータを受信すること、及び
第2の命令プロトコルを前記第2のメモリ装置で使用して、前記信号バスから前記第2のデータを受信すること
をさらに含む、請求項77に記載の方法。
【請求項79】
前記第1及び第2のメモリ装置において、前記信号バス上で前記第1及び第2のデータに時分割多重化された制御情報を受信することをさらに含む、請求項77に記載の方法。
【請求項80】
前記信号バスの信号路を介して第1の種類の制御情報を前記第1のメモリ装置に転送すること、及び
前記信号路を介して、前記第1の種類の制御情報ではなく第2の種類の制御情報を前記第2のメモリ装置に転送すること
をさらに含む、請求項77に記載の方法。
【請求項81】
前記信号バスの第1の信号路を介して前記第1のメモリ装置にデータを転送するとともに、前記第1のメモリ装置からデータを転送すること、及び
前記第1の信号路を介して制御情報を前記第2のメモリ装置に転送すること
をさらに含む、請求項77に記載の方法。
【請求項82】
前記第1及び第2のメモリ装置は、単一の集積回路パッケージに一緒にパッケージされる、請求項77に記載の方法。
【請求項83】
制御情報、第1のクロック速度を有する第1のクロック信号、及び第2のクロック速度を有する第2のクロック信号を受信する手段と、
前記制御情報を使用して、第1の種類の第1のメモリ装置及び第2の種類の第2のメモリ装置が、相互に排他的に共有信号バスから時分割多重化データを受信できるようにする手段と、
前記第1のクロック信号を前記第1のメモリ装置で使用して、前記第1のクロック速度で前記時分割多重化データの第1の部分を受信する手段と、
前記第2のクロック信号を前記第2のメモリ装置で使用して、前記第2のクロック速度で前記時分割多重化データの第2の部分を受信する手段と、
を備える、メモリ装置。
【請求項84】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
第1のクロック信号を使用して、第1のデータを第1のクロック速度で受信するように構成された第1の種類の第1のメモリ装置と、
第2のクロック信号を使用して、第2のデータを第2のクロック速度で受信するように構成された第2の種類の第2のメモリ装置であって、前記第1のクロック速度は前記第2のクロック速度よりも高速である、第2のメモリ装置と、
前記第1及び第2のメモリ装置に並列に結合されて、前記第1のデータ及び前記第2のデータを時分割多重化された様式で搬送する信号バスと、
少なくとも1つの制御信号を搬送して、第1のデータを前記信号バスから前記第1のメモリ装置に前記前記第1のクロック速度で転送できるようにするとともに、前記第2のデータを前記信号バスから前記第2のメモリ装置に前記第2のクロック速度で転送できるようにする少なくとも1つの制御信号路と、
を含む、装置。
【請求項85】
メモリコントローラであって、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピングを提供するとともに、第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供するように構成されたメモリ回路と、
前記第1の種類のメモリ装置を第1の組のデータの宛先として識別するように構成され、前記第1のマッピング及び前記第1の種類のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成される制御論理と、
前記第1のクロック速度を選択した結果、信号バスを介して前記第1のクロック速度で前記第1の組のデータを前記第1の種類のメモリ装置に送信するように構成されたインタフェース回路と、
を備える、メモリコントローラ。
【請求項86】
前記制御論理は、第2の組のデータの宛先として、前記第2の種類のメモリ装置を識別するようにさらに構成されるとともに、前記第2のマッピング及び前記第2の種類のメモリ装置の識別に基づいて、前記第2のクロック速度を選択するようにさらに構成され、
前記インタフェース回路は、前記第2のクロック速度を選択した結果、前記信号バスを介して前記第2のクロック速度で第2の組のデータを前記第2の種類のメモリ装置に送信するようにさらに構成され、前記第2の組のデータは、前記第1の組のデータと前記信号バス上で時分割多重化される、請求項85に記載のメモリコントローラ。
【請求項87】
前記メモリ回路は、前記第1の種類のメモリ装置からの読み出し動作に、第3のクロック速度への前記第1の種類のメモリ装置の第3のマッピングを提供するようにさらに構成され、
前記制御論理は、第3の組のデータの送信元として前記第1の種類のメモリ装置を識別するようにさらに構成されるとともに、前記第3のマッピング及び前記第1の種類のメモリ装置の識別に基づいて、前記第3のクロック速度を選択するようにさらに構成され、
前記インタフェース回路は、前記第3のクロック速度を選択した結果、前記信号バスを介して前記第3のクロック速度で前記第3の組のデータを前記第1の種類のメモリ装置から受信するようにさらに構成され、前記第3の組のデータは、前記第1及び第2の組のデータと前記信号バス上で時分割多重化される、請求項86に記載のメモリコントローラ。
【請求項88】
前記メモリ回路は、第3の命令プロトコルへの前記第1の種類のメモリ装置の第3のマッピング及び第2の命令プロトコルへの前記第2の種類のメモリ装置の第4のマッピングを提供するようにさらに構成され、
前記制御論理は、前記第3のマッピング及び前記第1の種類のメモリ装置の識別に基づいて、前記第1の種類のメモリ装置への前記第1の組のデータの送信に前記第1の命令プロトコルを選択するようにさらに構成され、
前記制御論理は、前記第4のマッピング及び前記第2の種類のメモリ装置の識別に基づいて、前記第2の種類のメモリ装置への前記第2の組のデータの送信に前記第2の命令プロトコルを選択するようにさらに構成される、請求項86に記載のメモリコントローラ。
【請求項89】
前記メモリ回路は、第1の組のアドレスへの前記第1の種類のメモリ装置の第3のマッピング及び第2の組のアドレスへの前記第2の種類のメモリ装置の第4のマッピングを提供するようにさらに構成され、
前記制御論理は、前記第1のデータを第1のアドレスに書き込む命令を受信し、前記第2のデータを第2のアドレスに書き込む命令を受信するようにさらに構成され、
前記第1の種類のメモリ装置の識別は、前記第3のマッピング及び前記第1のアドレスが前記第1の組のアドレスに関連付けられていることに基づき、
前記第2の種類のメモリ装置の識別は、前記第4のマッピング及び第2のアドレスが前記第2の組のアドレスに関連付けられていることに基づく、請求項86に記載のメモリコントローラ。
【請求項90】
前記第1のクロック速度は、前記第2のクロック速度の整数倍である、請求項86に記載のメモリコントローラ。
【請求項91】
前記インタフェース回路は、
前記第1の種類のメモリ装置に向けられた書き込み動作に、第1の書き込みデータを前記第1のクロック速度で提供し、
前記第2の種類のメモリ装置に向けられた書き込み動作に、第2の書き込みデータを前記第1のクロック速度で提供する
ようにさらに構成され、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供する、請求項90に記載のメモリコントローラ。
【請求項92】
前記インタフェース回路は、先入れ先出しメモリと、少なくとも1つのラッチとをさらに備え、前記少なくとも1つのラッチは、
前記第1のクロック速度に基づく1クロックサイクルにわたり、前記第1の組のデータの各インスタンスを出力することにより、前記第1の組のデータを前記第1のクロック速度で前記信号バスに出力し、
前記第2のクロック速度に基づく1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の組のデータを前記第2のクロック速度で出力する
ように構成される、請求項91に記載のメモリコントローラ。
【請求項93】
前記インタフェース回路は少なくとも1つのラッチをさらに備え、前記少なくとも1つのラッチは、
前記第1のクロック速度で、前記第1の種類のメモリ装置により前記第1のクロック速度で送信されたデータをサンプリングし、
前記第1のクロック速度で、前記第2の種類のメモリ装置により前記第2のクロック速度で送信されたデータをサンプリングする
ように構成可能である、請求項90に記載のメモリコントローラ。
【請求項94】
前記インタフェース回路は、前記データに、前記第1及び第2の種類のメモリ装置を宛先とした制御情報を前記共有信号バス上で時分割多重化するようにさらに構成される、請求項85に記載のメモリコントローラ。
【請求項95】
前記共有信号バスは共有データバスを含み、
前記インタフェース回路は、時分割多重化された様式で、共有制御バス上で制御情報を前記第1及び第2の種類のメモリ装置に送信するようにさらに構成される、請求項85に記載のメモリコントローラ。
【請求項96】
前記インタフェース回路は、
前記共有制御バスを介して、制御情報を前記第1の種類のメモリ装置に第1の速度で送信し、
前記共有制御バスを介して、制御情報を前記第2の種類のメモリ装置に、前記第1の速度とは異なる第2の速度で送信する
ようにさらに構成される、請求項95に記載のメモリコントローラ。
【請求項97】
メモリ制御方法であって、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピング及び第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供すること、
第1の組のデータの宛先として、前記第1の種類のメモリ装置を識別し、前記第1のマッピング及び前記第1のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成され、及び
前記第1のクロック速度を選択した結果、信号バスを介して前記第1の組のデータを前記第1の種類のメモリ装置に前記第1のクロック速度で送信すること、
を含む、方法。
【請求項98】
メモリ制御装置であって、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピング及び第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供する手段と、
第1の組のデータの宛先として、前記第1の種類のメモリ装置を識別し、前記第1のマッピング及び前記第1のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成された手段と、
前記第1のクロック速度を選択した結果、信号バスを介して前記第1の組のデータを前記第1の種類のメモリ装置に前記第1のクロック速度で送信する手段と、
を備える、装置。
【請求項99】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピング及び第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供するメモリ回路と、
第1の組のデータの宛先として、前記第1の種類のメモリ装置を識別するように構成されるとともに、前記第1のマッピング及び前記第1のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成される制御論理と、
前記第1のクロック速度を選択した結果、信号バスを介して前記第1の組のデータを前記第1の種類のメモリ装置に前記第1のクロック速度で送信するように構成されたインタフェース回路と、
を含む、装置。
【請求項1】
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供するように構成されたクロック回路と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化するように構成されたインタフェース回路と、
を備える、メモリコントローラ。
【請求項2】
前記インタフェース回路は、前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記データの前記異なる種類のメモリ装置への書き込みに異なる命令プロトコルを選択するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項3】
前記クロック信号は第1のクロック信号及び第2のクロック信号を含み、
前記第1のクロック信号は、前記メモリ装置の種類のうちの第1の種類に関連付けられた第1の固有クロック速度で動作し、
前記第2のクロック信号は、前記メモリ装置の種類のうちの第2の種類に関連付けられた第2の固有クロック速度で動作し、
前記第1の固有クロック速度は、前記第2の固有クロック速度とは異なる、請求項1に記載のメモリコントローラ。
【請求項4】
前記クロック信号は、第1のクロック信号、第2のクロック信号、及び少なくとも1つの他のクロック信号を含み、
前記第1のクロック信号は、前記メモリ装置の種類のうちの第1の種類の書き込み動作に関連付けられた第1の固有クロック速度で動作し、
前記第2のクロック信号は、前記メモリ装置の種類のうちの前記第1の種類の読み出し動作に関連付けられた第2の固有クロック速度で動作し、
前記少なくとも1つの他のクロック信号は、前記メモリ装置の種類のうちの第2の種類の読み書き動作に関連付けられた第3の固有クロック速度で動作する、請求項1に記載のメモリコントローラ。
【請求項5】
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置は、前記クロック速度のうちの第1の速度で前記共有信号バスを介して送受信するように構成され、
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置は、前記クロック速度のうちの第2の速度で前記共有信号バスを介して送受信するように構成される、請求項1に記載のメモリコントローラ。
【請求項6】
前記第1のクロック速度は、前記第2のクロック速度の整数倍である、請求項5に記載のメモリコントローラ。
【請求項7】
前記インタフェース回路は、
前記第1のメモリ装置に向けられた書き込み動作に第1の書き込みデータを前記第1のクロック速度で提供し、
前記第2のメモリ装置に向けられた書き込み動作に第2の書き込みデータを前記第1のクロック速度で提供する
ようにさらに構成され、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、前記第2のクロック速度でデータを提供する、請求項6に記載のメモリコントローラ。
【請求項8】
前記インタフェース回路は、
前記第1のクロック速度に基づく1クロックサイクルにわたり、前記第1の書き込みデータの各インスタンスを出力することにより、前記第1の書き込みデータを前記第1のクロック速度で前記共有信号バスに出力し、
前記第2のクロック速度に基づく1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の書き込みデータを前記第2のクロック速度で出力する
ようにさらに構成される、請求項7に記載のメモリコントローラ。
【請求項9】
前記インタフェース回路は、
前記第1の種類のメモリ装置により送信された第1のデータを前記第1のクロック速度で受信し、前記第2の種類のメモリ装置により送信された第2のデータを前記第2のクロック速度で受信するように構成された受信器と、
前記第1のデータを第1のクロック速度でサンプリングし、前記第2のデータを前記第1のクロック速度でサンプリングするように構成可能な少なくとも1つのラッチと、
をさらに備える、請求項6に記載のメモリコントローラ。
【請求項10】
前記インタフェース回路は、
前記第1の種類のメモリ装置からの読み出し動作中、第1の読み出しデータを前記第1のクロック速度でサンプリングし、前記第2の種類のメモリ装置からの読み出し動作中、第2の読み出しデータを前記第1のクロック速度でサンプリングするように構成可能な少なくとも1つのラッチであって、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供する、少なくとも1つのラッチと、
前記サンプリングされた第2の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供するように構成された速度適合回路と、
をさらに備える、請求項6に記載のメモリコントローラ。
【請求項11】
前記インタフェース回路は、
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に向けられた書き込み動作に、前記クロック速度のうちの第1の速度で第1の書き込みデータを提供するようにさらに構成され、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成され、前記インタフェース回路は、
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第2の書き込みデータを提供するようにさらに構成され、前記第2の種類のメモリ装置は、前記第1のクロック速度よりも遅い前記クロック速度のうちの第2の速度で、前記共有信号バスを介して送受信するように構成され、前記第2の書き込みデータの部分はダミーデータを含む、請求項1に記載のメモリコントローラ。
【請求項12】
前記第2の書き込みデータを前記第1のクロック速度でバッファリングし、前記バッファリングされたデータを前記第2のクロック速度で読み出して、前記共有信号バスに前記第2のクロック速度で書き込みデータを提供するように構成された速度適合回路をさらに備え、前記第2のクロック速度での前記書き込みデータは、前記ダミーデータを含まない、請求項11に記載のメモリコントローラ。
【請求項13】
前記インタフェース回路は、前記共有信号バスを介して前記異なる種類のメモリ装置を宛先とした制御情報を前記データに時分割多重化するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項14】
前記共有信号バスは共有データバスを含み、
前記インタフェース回路は、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項15】
前記異なる種類のメモリ装置のうちの1つは、前記異なる種類のメモリ装置のうちの任意の他の1つよりも遅い速度で制御情報を受信するように構成され、
前記インタフェース回路は、前記制御情報を前記より遅い速度で送信するようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項16】
前記インタフェース回路は、
制御情報を第1の速度で前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に送信し、
制御情報を、前記第1の速度とは異なる第2の速度で前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に送信する
ようにさらに構成される、請求項14に記載のメモリコントローラ。
【請求項17】
前記制御バスはコマンド・アドレスバスを含む、請求項14に記載のメモリコントローラ。
【請求項18】
所与のデータ転送に対して、
ターゲットメモリ装置として前記異なる種類のメモリ装置のうちの1つと、
前記異なるクロック速度への前記異なる種類のメモリ装置のマッピングに基づいて、前記異なるクロック速度のうちの1つと、
を選択するように構成された装置選択論理をさらに備える、請求項1に記載のメモリコントローラ。
【請求項19】
前記クロック回路は、前記装置選択論理からの信号に基づいて、それぞれが異なる周波数を有する複数の信号のうちの1つを選択することにより、前記クロック信号のうちの1つを前記所与のデータ転送に提供するように構成されたスイッチを備える、請求項18に記載のメモリコントローラ。
【請求項20】
前記第1のクロック速度の第1のクロック信号は、前記インタフェース回路と前記第1の種類のメモリ装置との間に、第1の信号路を介して結合され、
前記第2のクロック速度の第2のクロック信号は、前記インタフェース回路と前記第2の種類のメモリ装置との間に、第2の信号路を介して結合される、請求項1に記載のメモリコントローラ。
【請求項21】
前記制御論理は、
第1の較正動作を実行して、前記第1の種類のメモリ装置へのデータ送信に使用すべき第1のクロック位相を決定し、
第2の較正動作を実行して、前記第2の種類のメモリ装置へのデータ送信に使用すべき第2のクロック位相を決定する
ようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項22】
第1のクロック速度の第1のクロック信号を第1の書き込みデータに埋め込み、前記共有信号バスを介して第1の埋め込みクロック・データ信号を前記第1の種類のメモリ装置に提供し、
第2のクロック速度の第2のクロック信号を第2の書き込みデータに埋め込み、前記共有信号バスを介して第2の埋め込みクロック・データ信号を前記第2の種類のメモリ装置に提供する
ように構成されたクロック回路をさらに備える、請求項1に記載のメモリコントローラ。
【請求項23】
前記クロック回路は、前記メモリコントローラにより受信される少なくとも1つのクロック信号に基づいて、前記クロック信号を提供する、請求項1に記載のメモリコントローラ。
【請求項24】
前記メモリコントローラにより受信される前記少なくとも1つのクロック信号は、前記異なるクロック速度の複数のクロック信号を含み、
前記複数のクロック信号は、前記異なる種類のメモリ装置により提供される、請求項23に記載のメモリコントローラ。
【請求項25】
前記クロック回路はクロック生成器を備える、請求項1に記載のメモリコントローラ。
【請求項26】
前記異なるクロック速度を有する前記クロック信号は、共通の信号路を介して時分割多重化される、請求項1に記載のメモリコントローラ。
【請求項27】
前記インタフェース回路は、前記信号バスの信号路を使用して、
データを前記異なる種類のメモリ装置のうちの第1のメモリ種類の装置に送信し、
制御情報を前記異なる種類のメモリ装置のうちの第2のメモリ種類に送信する
するようにさらに構成される、請求項1に記載のメモリコントローラ。
【請求項28】
前記異なる種類のメモリ装置は、ダイナミックランダムアクセスメモリと、フラッシュメモリとを含む、請求項1に記載のメモリコントローラ。
【請求項29】
メモリ制御方法であって、
異なるクロック速度を有するクロック信号を異なる種類のメモリ装置に提供すること、及び
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化すること
を含む、方法。
【請求項30】
前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記異なる種類のメモリ装置へのデータ書き込みに異なる命令プロトコルを選択することをさらに含む、請求項29に記載の方法。
【請求項31】
前記クロック速度のうちの第1の速度で第1の書き込みデータを、前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に向けられた書き込み動作に提供することであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、及び
第2の書き込みデータを前記第1のクロック速度で、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に向けられた書き込み動作に提供することであって、前記第2の種類のメモリ装置は、前記クロック速度のうちの第2の速度で前記共有信号バスを介して送受信するように構成され、前記第1のクロック速度は、前記第2のクロック速度の整数倍であり、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供すること
をさらに含む、請求項29に記載の方法。
【請求項32】
前記第1のクロック速度に基づく1クロックサイクル中に、前記第1の書き込みデータの各インスタンスを出力することにより、前記共有信号バスに前記第1のクロック速度で前記第1の書き込みデータを出力すること、及び
前記第2のクロック速度に基づく1クロックサイクル中に、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記共有信号バスに前記第2のクロック速度で前記第2の書き込みデータを出力すること
をさらに含む、請求項31に記載の方法。
【請求項33】
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置からの読み出し動作中、前記クロック速度のうちの第1の速度で第1の読み出しデータをサンプリングすること、
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置の読み出し動作中、前記第1のクロック速度で第2の読み出しデータをサンプリングすることであって、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供すること、及び
前記サンプリングされた第2の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供することであって、前記第1のクロック速度は、前記第2のクロック速度の整数倍であること、
をさらに含む、請求項29に記載の方法。
【請求項34】
前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に向けられた書き込み動作に、前記クロック速度のうちの第1の速度で第1の書き込みデータを提供することであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、及び
前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第2の書き込みデータを提供することであって、前記第2の種類のメモリ装置は、前記第1のクロック速度よりも遅い前記クロック速度のうちの第2の速度で、前記共有信号バスを介して送受信するように構成され、前記第2の書き込みデータの部分は、ダミーデータを含むこと
をさらに含む、請求項29に記載の方法。
【請求項35】
前記データに、前記異なる種類のメモリ装置を宛先とした制御情報を前記共有信号バス上で時分割多重化することをさらに含む、請求項29に記載の方法。
【請求項36】
前記共有信号バスは共有データバスを含み、
前記方法は、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信することをさらに含む、請求項29に記載の方法。
【請求項37】
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供する手段と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化する手段と、
を備える、メモリ制御装置。
【請求項38】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供するように構成されたクロック回路と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化するように構成されたインタフェース回路と、
を含む、装置。
【請求項39】
信号バスと、
前記信号バスに並列に結合された異なる種類の複数のメモリ装置と、
前記信号バスに結合され、データが前記異なる種類のメモリ装置に異なるクロック速度で前記信号バスに出力されるように、前記異なる種類のメモリ装置のデータを前記信号バス上で時分割多重化するように構成されたメモリコントローラと、
を備える、メモリシステム。
【請求項40】
前記異なる種類のメモリ装置は、異なる命令プロトコルを使用して、前記信号バスでのデータ転送を行うように構成され、
前記メモリコントローラは、前記異なる種類のメモリ装置を前記異なる命令プロトコルにマッピングするマッピングに基づいて、前記異なる命令プロトコルのうちの1つを選択して、前記データ転送のうちの所与の1つに制御信号を提供するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項41】
前記メモリコントローラは、前記クロック速度のうちの第1の速度の第1のクロック信号を、前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置に提供し、前記クロック速度のうちの第2の速度の第2のクロック信号を、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置に提供するようにさらに構成され、
前記第1のクロック速度は、前記第1の種類のメモリ装置に関連付けられた第1の固有クロック速度を含み、
前記第2のクロック速度は、前記第2の種類のメモリ装置に関連付けられた第2の固有クロック速度を含み、
前記第1の固有クロック速度は、前記第2の固有クロック速度とは異なる、請求項39に記載のメモリシステム。
【請求項42】
前記メモリコントローラは、前記メモリコントローラにより受信される少なくとも1つのクロック信号に基づいて、前記異なるクロック速度でのデータ出力に異なるクロック信号を提供するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項43】
前記少なくとも1つのクロック信号は、前記異なる種類のメモリ装置のうちの第1の種類のメモリ装置から受信される前記クロック速度のうちの第1の速度の第1のクロック信号と、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置から受信される前記クロック速度のうちの第2の速度の第2のクロック信号とを含む、請求項42に記載のメモリシステム。
【請求項44】
前記複数の異なる種類のメモリ装置のうちの第1の種類のメモリ装置は、前記クロック速度のうちの第1の速度で前記信号バスを介して送受信するように構成され、
前記複数の異なる種類のメモリ装置のうちの第2の種類のメモリ装置は、前記クロック速度のうちの第2の速度で前記信号バスを介して送受信するように構成され、
前記第1のクロック速度は、前記第2のクロック速度の整数倍である、請求項39に記載のメモリシステム。
【請求項45】
前記メモリコントローラは、
前記第1の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第1の書き込みデータを提供し、
前記第2の種類のメモリ装置に向けられた書き込み動作に、前記第1のクロック速度で第2の書き込みデータを提供する
ようにさらに構成され、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供する、請求項44に記載のメモリシステム。
【請求項46】
前記メモリコントローラは、
前記第1のクロック速度に基づく1クロックサイクルにわたり、前記第1の書き込みデータの各インスタンスを出力することにより、前記信号バスに前記第1のクロック速度で前記第1の書き込みデータを出力し、
前記第2のクロック速度に基づく1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の書き込みデータを前記第2のクロック速度で前記信号バスに出力する
ようにさらに構成される、請求項45に記載のメモリシステム。
【請求項47】
前記メモリコントローラは、
前記第1の種類のメモリ装置からの読み出し動作中、第1の読み出しデータを前記第1のクロック速度でサンプリングし、
前記第2の種類のメモリ装置からの読み出し動作中、第2の読み出しデータを前記第1のクロック速度でサンプリングするようにさらに構成され、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供し、
前記サンプリングされた第2の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供するようにさらに構成される、請求項44に記載のメモリシステム。
【請求項48】
前記メモリコントローラは、データに、前記異なる種類のメモリ装置を宛先とする制御情報を前記信号バス上で時分割多重化するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項49】
前記制御情報は、コマンド情報と、アドレス情報とを含む、請求項48に記載のメモリシステム。
【請求項50】
前記信号バスはデータバスを含み、
前記メモリコントローラは、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信するようにさらに構成される、請求項39に記載のメモリシステム。
【請求項51】
前記メモリコントローラは、
前記制御情報の第1の部分を第1の速度で、前記複数の異なる種類のメモリ装置のうちの第1の種類のメモリ装置に送信し、
前記制御情報の第2の部分を、前記第1の速度とは異なる第2の速度で、前記複数の異なる種類のメモリ装置のうちの第2の種類のメモリ装置に送信する
ようにさらに構成される、請求項50に記載のメモリシステム。
【請求項52】
前記メモリコントローラは、それぞれが異なる周波数を有する複数の信号のうちの1つを選択することにより、前記信号バス上での所与のデータ転送に前記クロック信号のうちの1つを提供するように構成されたスイッチを備える、請求項39に記載のメモリシステム。
【請求項53】
前記メモリコントローラは、前記信号バスの信号路を使用して、
データを前記複数の異なる種類のメモリ装置のうちの第1の種類のメモリ装置に送信し、
制御情報を前記複数の異なる種類のメモリ装置のうちの第2の種類のメモリ装置に送信する
ようにさらに構成される、請求項39に記載のメモリシステム。
【請求項54】
前記異なる種類のメモリ装置は、ダイナミックランダムアクセスメモリと、フラッシュメモリとを含む、請求項39に記載のメモリシステム。
【請求項55】
メモリアクセス方法であって、
第1の組のデータの転送に第1のクロック速度を有する第1のクロック信号を提供し、第2の組のデータの転送に第2のクロック速度を有する第2のクロック信号を提供することにより、異なる速度で時分割多重様式で共有信号バスを介したデータを転送すること、
前記第1の組のデータの転送中、前記第1のクロック信号を使用して、前記共有信号バスと、前記信号バスに並列に結合された異なる種類の複数のメモリ装置のうちの第1の種類のメモリ装置との間で前記データの第1の部分を転送すること、及び
前記第2の組のデータの転送中、前記第2のクロック信号を使用して、前記共有信号バスと、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置との間で前記データの第2の部分を転送すること
を含む、方法。
【請求項56】
前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記第1及び第2の組のデータの転送に異なる命令プロトコルを選択することをさらに含む、請求項55に記載の方法。
【請求項57】
前記第1の種類のメモリ装置に向けられた書き込み動作に、第1の書き込みデータを前記第1のクロック速度で提供することであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、及び
前記第2の種類のメモリ装置に向けられた書き込み動作に、第2の書き込みデータを前記第1のクロック速度で提供することであって、前記第2のメモリ装置は、前記第2のクロック速度で前記共有信号バスを介して送受信するように構成され、前記第1のクロック速度は、前記第2のクロック速度の整数倍であり、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、前記第2のクロック速度でデータを提供すること
をさらに含む、請求項55に記載の方法。
【請求項58】
前記第1のクロック信号の1サイクルにわたり、前記第1の書き込みデータの各インスタンスを出力することにより、前記第1の書き込みデータを前記第1のクロック速度で前記共有信号バスに出力すること、及び
前記第2のクロック速度の1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の書き込みデータを前記第2のクロック速度で前記共有信号バスに出力すること、
をさらに含む、請求項57に記載の方法。
【請求項59】
前記第1の種類のメモリ装置からの読み出し動作中、第1の読み出しデータを前記第1のクロック速度でサンプリングすることであって、前記第1の種類のメモリ装置は、前記第1のクロック速度で前記共有信号バスを介して送受信するように構成されること、
前記第2の種類のメモリ装置からの読み出し動作中、第2の読み出しデータを前記第1のクロック速度でサンプリングすることであって、前記第2の種類のメモリ装置は、前記第2のクロック速度で前記共有信号バスを介して送受信するように構成され、前記第1のクロック速度は、前記第2のクロック速度の整数倍であり、前記第2の読み出しデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供すること、及び
前記サンプリングされた第2の読み出しデータを処理して、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供して、データを前記第2のクロック速度で提供すること
をさらに含む、請求項55に記載の方法。
【請求項60】
前記データに、前記異なる種類のメモリ装置を宛先とした制御情報を共有信号バス上で時分割多重化することをさらに含む、請求項55に記載の方法。
【請求項61】
前記共有信号バスは共有データバスを含み、
前記方法は、時分割多重化された様式で制御情報を前記異なる種類のメモリ装置に共有制御バス上で送信することをさらに含む、請求項55に記載の方法。
【請求項62】
第1の組のデータの転送に第1のクロック速度を有する第1のクロック信号を提供し、第2の組のデータの転送に第2のクロック速度を有する第2のクロック信号を提供することにより、異なる速度で時分割多重様式で共有信号バスを介したデータを転送する手段と、
前記第1の組のデータの転送中、前記第1のクロック信号を使用して、前記共有信号バスと、前記信号バスに並列に結合された異なる種類の複数のメモリ装置のうちの第1の種類のメモリ装置との間で前記データの第1の部分を転送する手段と、
前記第2の組のデータの転送中、前記第2のクロック信号を使用して、前記共有信号バスと、前記異なる種類のメモリ装置のうちの第2の種類のメモリ装置との間で前記データの第2の部分を転送する手段と、
を備える、メモリシステム。
【請求項63】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
信号バスと、
前記信号バスに並列に結合された異なる種類の複数のメモリ装置と、
前記信号バスに結合され、データが、前記異なる種類のメモリ装置に異なるクロック速度で前記信号バスに出力されるように、前記異なる種類のメモリ装置のデータを前記信号バス上で時分割多重化するように構成されたメモリコントローラと、
を備える、装置。
【請求項64】
第1のクロック信号を使用して、第1のデータを第1のクロック速度で受信するように構成された第1の種類の第1のメモリ装置と、
第2のクロック信号を使用して、第2のデータを第2のクロック速度で受信するように構成された第2の種類の第2のメモリ装置であって、前記第1のクロック速度は前記第2のクロック速度よりも高速である、第2のメモリ装置と、
前記第1及び第2のメモリ装置に並列に結合されて、前記第1のデータ及び前記第2のデータを時分割多重化された様式で搬送する信号バスと、
少なくとも1つの制御信号を搬送して、第1のデータを前記信号バスから前記第1のメモリ装置に前記前記第1のクロック速度で転送できるようにするとともに、前記第2のデータを前記信号バスから前記第2のメモリ装置に前記第2のクロック速度で転送できるようにする少なくとも1つの制御信号路と、
を備える、メモリ装置。
【請求項65】
前記第1のメモリ装置は、前記信号バスからの前記第1のデータの受信に第1の命令プロトコルを使用するようにさらに構成され、
前記第2のメモリ装置は、前記信号バスからの前記第2のデータの受信に第2の命令プロトコルを使用するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項66】
前記少なくとも1つの制御信号路は、少なくとも1つの装置選択信号路を含む、請求項64に記載のメモリ装置。
【請求項67】
前記少なくとも1つの制御信号路は、コマンド・アドレスバスを含む、請求項64に記載のメモリ装置。
【請求項68】
前記第1及び第2のメモリ装置は、前記コマンド・アドレスバスに提供される制御情報を、前記第2のクロック速度以下の速度で受信するようにさらに構成される、請求項67に記載のメモリ装置。
【請求項69】
前記第1及び第2のメモリ装置は、前記信号バス上で前記第1及び第2のデータに時分割多重化された制御情報を受信するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項70】
前記第1のメモリ装置は、第1の種類の制御情報の転送に、前記信号バスの第1の信号路を使用するようにさらに構成され、
前記第2のメモリ装置は、前記第1の種類の制御情報ではなく第2の種類の制御情報の転送に前記第1の信号路を使用するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項71】
前記第1のメモリ装置は、データの転送に前記信号バスの第1の信号路を使用するようにさらに構成され、
前記第2のメモリ装置は、制御情報の転送に前記第1の信号路を使用するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項72】
前記第1及び第2のメモリ装置への前記信号バスの並列結合を提供するように構成されたバッファ回路をさらに備え、バスコントローラは、少なくとも1つの制御信号に基づいて、前記第1のメモリ装置又は前記第2のメモリ装置を前記信号バスに相互に排他的に結合するようにさらに構成される、請求項64に記載のメモリ装置。
【請求項73】
前記第1のクロック速度は、前記第2のクロック信号の整数倍である、請求項64に記載のメモリ装置。
【請求項74】
前記異なる種類のメモリは、ダイナミックランダムアクセスメモリ集積回路と、フラッシュメモリ集積回路とを含む、請求項64に記載のメモリ装置。
【請求項75】
前記第1及び第2のメモリ装置は、単一の集積回路パッケージ内に一緒にパッケージされる、請求項64に記載のメモリ装置。
【請求項76】
メモリモジュールで具現される、請求項64に記載のメモリ装置。
【請求項77】
メモリ記憶方法であって、
制御情報、第1のクロック速度を有する第1のクロック信号、及び第2のクロック速度を有する第2のクロック信号を受信すること、
前記制御情報を使用して、第1の種類の第1のメモリ装置及び第2の種類の第2のメモリ装置が、相互に排他的に共有信号バスから時分割多重化データを受信できるようにすること、
前記第1のクロック信号を前記第1のメモリ装置で使用して、前記第1のクロック速度で前記時分割多重化データの第1の部分を受信すること、並びに
前記第2のクロック信号を前記第2のメモリ装置に使用して、前記第2のクロック速度で前記時分割多重化データの第2の部分を受信すること
を含む、方法。
【請求項78】
第1の命令プロトコルを前記第1のメモリ装置で使用して、前記信号バスから前記第1のデータを受信すること、及び
第2の命令プロトコルを前記第2のメモリ装置で使用して、前記信号バスから前記第2のデータを受信すること
をさらに含む、請求項77に記載の方法。
【請求項79】
前記第1及び第2のメモリ装置において、前記信号バス上で前記第1及び第2のデータに時分割多重化された制御情報を受信することをさらに含む、請求項77に記載の方法。
【請求項80】
前記信号バスの信号路を介して第1の種類の制御情報を前記第1のメモリ装置に転送すること、及び
前記信号路を介して、前記第1の種類の制御情報ではなく第2の種類の制御情報を前記第2のメモリ装置に転送すること
をさらに含む、請求項77に記載の方法。
【請求項81】
前記信号バスの第1の信号路を介して前記第1のメモリ装置にデータを転送するとともに、前記第1のメモリ装置からデータを転送すること、及び
前記第1の信号路を介して制御情報を前記第2のメモリ装置に転送すること
をさらに含む、請求項77に記載の方法。
【請求項82】
前記第1及び第2のメモリ装置は、単一の集積回路パッケージに一緒にパッケージされる、請求項77に記載の方法。
【請求項83】
制御情報、第1のクロック速度を有する第1のクロック信号、及び第2のクロック速度を有する第2のクロック信号を受信する手段と、
前記制御情報を使用して、第1の種類の第1のメモリ装置及び第2の種類の第2のメモリ装置が、相互に排他的に共有信号バスから時分割多重化データを受信できるようにする手段と、
前記第1のクロック信号を前記第1のメモリ装置で使用して、前記第1のクロック速度で前記時分割多重化データの第1の部分を受信する手段と、
前記第2のクロック信号を前記第2のメモリ装置で使用して、前記第2のクロック速度で前記時分割多重化データの第2の部分を受信する手段と、
を備える、メモリ装置。
【請求項84】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
第1のクロック信号を使用して、第1のデータを第1のクロック速度で受信するように構成された第1の種類の第1のメモリ装置と、
第2のクロック信号を使用して、第2のデータを第2のクロック速度で受信するように構成された第2の種類の第2のメモリ装置であって、前記第1のクロック速度は前記第2のクロック速度よりも高速である、第2のメモリ装置と、
前記第1及び第2のメモリ装置に並列に結合されて、前記第1のデータ及び前記第2のデータを時分割多重化された様式で搬送する信号バスと、
少なくとも1つの制御信号を搬送して、第1のデータを前記信号バスから前記第1のメモリ装置に前記前記第1のクロック速度で転送できるようにするとともに、前記第2のデータを前記信号バスから前記第2のメモリ装置に前記第2のクロック速度で転送できるようにする少なくとも1つの制御信号路と、
を含む、装置。
【請求項85】
メモリコントローラであって、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピングを提供するとともに、第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供するように構成されたメモリ回路と、
前記第1の種類のメモリ装置を第1の組のデータの宛先として識別するように構成され、前記第1のマッピング及び前記第1の種類のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成される制御論理と、
前記第1のクロック速度を選択した結果、信号バスを介して前記第1のクロック速度で前記第1の組のデータを前記第1の種類のメモリ装置に送信するように構成されたインタフェース回路と、
を備える、メモリコントローラ。
【請求項86】
前記制御論理は、第2の組のデータの宛先として、前記第2の種類のメモリ装置を識別するようにさらに構成されるとともに、前記第2のマッピング及び前記第2の種類のメモリ装置の識別に基づいて、前記第2のクロック速度を選択するようにさらに構成され、
前記インタフェース回路は、前記第2のクロック速度を選択した結果、前記信号バスを介して前記第2のクロック速度で第2の組のデータを前記第2の種類のメモリ装置に送信するようにさらに構成され、前記第2の組のデータは、前記第1の組のデータと前記信号バス上で時分割多重化される、請求項85に記載のメモリコントローラ。
【請求項87】
前記メモリ回路は、前記第1の種類のメモリ装置からの読み出し動作に、第3のクロック速度への前記第1の種類のメモリ装置の第3のマッピングを提供するようにさらに構成され、
前記制御論理は、第3の組のデータの送信元として前記第1の種類のメモリ装置を識別するようにさらに構成されるとともに、前記第3のマッピング及び前記第1の種類のメモリ装置の識別に基づいて、前記第3のクロック速度を選択するようにさらに構成され、
前記インタフェース回路は、前記第3のクロック速度を選択した結果、前記信号バスを介して前記第3のクロック速度で前記第3の組のデータを前記第1の種類のメモリ装置から受信するようにさらに構成され、前記第3の組のデータは、前記第1及び第2の組のデータと前記信号バス上で時分割多重化される、請求項86に記載のメモリコントローラ。
【請求項88】
前記メモリ回路は、第3の命令プロトコルへの前記第1の種類のメモリ装置の第3のマッピング及び第2の命令プロトコルへの前記第2の種類のメモリ装置の第4のマッピングを提供するようにさらに構成され、
前記制御論理は、前記第3のマッピング及び前記第1の種類のメモリ装置の識別に基づいて、前記第1の種類のメモリ装置への前記第1の組のデータの送信に前記第1の命令プロトコルを選択するようにさらに構成され、
前記制御論理は、前記第4のマッピング及び前記第2の種類のメモリ装置の識別に基づいて、前記第2の種類のメモリ装置への前記第2の組のデータの送信に前記第2の命令プロトコルを選択するようにさらに構成される、請求項86に記載のメモリコントローラ。
【請求項89】
前記メモリ回路は、第1の組のアドレスへの前記第1の種類のメモリ装置の第3のマッピング及び第2の組のアドレスへの前記第2の種類のメモリ装置の第4のマッピングを提供するようにさらに構成され、
前記制御論理は、前記第1のデータを第1のアドレスに書き込む命令を受信し、前記第2のデータを第2のアドレスに書き込む命令を受信するようにさらに構成され、
前記第1の種類のメモリ装置の識別は、前記第3のマッピング及び前記第1のアドレスが前記第1の組のアドレスに関連付けられていることに基づき、
前記第2の種類のメモリ装置の識別は、前記第4のマッピング及び第2のアドレスが前記第2の組のアドレスに関連付けられていることに基づく、請求項86に記載のメモリコントローラ。
【請求項90】
前記第1のクロック速度は、前記第2のクロック速度の整数倍である、請求項86に記載のメモリコントローラ。
【請求項91】
前記インタフェース回路は、
前記第1の種類のメモリ装置に向けられた書き込み動作に、第1の書き込みデータを前記第1のクロック速度で提供し、
前記第2の種類のメモリ装置に向けられた書き込み動作に、第2の書き込みデータを前記第1のクロック速度で提供する
ようにさらに構成され、前記第2の書き込みデータは、前記第1のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第2のクロック速度で提供する、請求項90に記載のメモリコントローラ。
【請求項92】
前記インタフェース回路は、先入れ先出しメモリと、少なくとも1つのラッチとをさらに備え、前記少なくとも1つのラッチは、
前記第1のクロック速度に基づく1クロックサイクルにわたり、前記第1の組のデータの各インスタンスを出力することにより、前記第1の組のデータを前記第1のクロック速度で前記信号バスに出力し、
前記第2のクロック速度に基づく1クロックサイクルにわたり、前記第1のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第2の組のデータを前記第2のクロック速度で出力する
ように構成される、請求項91に記載のメモリコントローラ。
【請求項93】
前記インタフェース回路は少なくとも1つのラッチをさらに備え、前記少なくとも1つのラッチは、
前記第1のクロック速度で、前記第1の種類のメモリ装置により前記第1のクロック速度で送信されたデータをサンプリングし、
前記第1のクロック速度で、前記第2の種類のメモリ装置により前記第2のクロック速度で送信されたデータをサンプリングする
ように構成可能である、請求項90に記載のメモリコントローラ。
【請求項94】
前記インタフェース回路は、前記データに、前記第1及び第2の種類のメモリ装置を宛先とした制御情報を前記共有信号バス上で時分割多重化するようにさらに構成される、請求項85に記載のメモリコントローラ。
【請求項95】
前記共有信号バスは共有データバスを含み、
前記インタフェース回路は、時分割多重化された様式で、共有制御バス上で制御情報を前記第1及び第2の種類のメモリ装置に送信するようにさらに構成される、請求項85に記載のメモリコントローラ。
【請求項96】
前記インタフェース回路は、
前記共有制御バスを介して、制御情報を前記第1の種類のメモリ装置に第1の速度で送信し、
前記共有制御バスを介して、制御情報を前記第2の種類のメモリ装置に、前記第1の速度とは異なる第2の速度で送信する
ようにさらに構成される、請求項95に記載のメモリコントローラ。
【請求項97】
メモリ制御方法であって、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピング及び第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供すること、
第1の組のデータの宛先として、前記第1の種類のメモリ装置を識別し、前記第1のマッピング及び前記第1のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成され、及び
前記第1のクロック速度を選択した結果、信号バスを介して前記第1の組のデータを前記第1の種類のメモリ装置に前記第1のクロック速度で送信すること、
を含む、方法。
【請求項98】
メモリ制御装置であって、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピング及び第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供する手段と、
第1の組のデータの宛先として、前記第1の種類のメモリ装置を識別し、前記第1のマッピング及び前記第1のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成された手段と、
前記第1のクロック速度を選択した結果、信号バスを介して前記第1の組のデータを前記第1の種類のメモリ装置に前記第1のクロック速度で送信する手段と、
を備える、装置。
【請求項99】
機械可読媒体に記憶された回路記述を備える装置であって、前記回路記述は、
第1のクロック速度への第1の種類のメモリ装置の第1のマッピング及び第2のクロック速度への第2の種類のメモリ装置の第2のマッピングを提供するメモリ回路と、
第1の組のデータの宛先として、前記第1の種類のメモリ装置を識別するように構成されるとともに、前記第1のマッピング及び前記第1のメモリ装置の識別に基づいて、前記第1のクロック速度を選択するようにさらに構成される制御論理と、
前記第1のクロック速度を選択した結果、信号バスを介して前記第1の組のデータを前記第1の種類のメモリ装置に前記第1のクロック速度で送信するように構成されたインタフェース回路と、
を含む、装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8A】
【図8B】
【図9A】
【図9B】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【公表番号】特表2013−520721(P2013−520721A)
【公表日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2012−553877(P2012−553877)
【出願日】平成22年11月23日(2010.11.23)
【国際出願番号】PCT/US2010/057902
【国際公開番号】WO2011/106049
【国際公開日】平成23年9月1日(2011.9.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.RRAM
【出願人】(501055961)ラムバス・インコーポレーテッド (89)
【Fターム(参考)】
【公表日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願日】平成22年11月23日(2010.11.23)
【国際出願番号】PCT/US2010/057902
【国際公開番号】WO2011/106049
【国際公開日】平成23年9月1日(2011.9.1)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.RRAM
【出願人】(501055961)ラムバス・インコーポレーテッド (89)
【Fターム(参考)】
[ Back to top ]