(57)【特許請求の範囲】
【請求項１】
異なる種類のメモリ装置に異なるクロック速度を有するクロック信号を提供するように構成されたクロック回路と、
データが前記異なる種類のメモリ装置に異なるクロック速度で出力されるように、前記異なる種類のメモリ装置を宛先としたデータを共有信号バス上で時分割多重化するように構成されたインタフェース回路と、
を備え、
前記異なる種類のメモリ装置のうちの第１の種類のメモリ装置は、前記クロック速度のうちの第１の速度で前記共有信号バスを介して送受信するように構成され、
前記異なる種類のメモリ装置のうちの第２の種類のメモリ装置は、前記クロック速度のうちの第２の速度で前記共有信号バスを介して送受信するように構成され、
前記第１のクロック速度は、前記第２のクロック速度の整数倍であり、
前記インタフェース回路は、
前記第１の種類のメモリ装置に向けられた書き込み動作に第１の書き込みデータを前記第１のクロック速度で提供し、
前記第２の種類のメモリ装置に向けられた書き込み動作に第２の書き込みデータを前記第１のクロック速度で提供する
ようにさらに構成され、前記第２の書き込みデータは、前記第１のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、前記第２のクロック速度でデータを提供する、メモリコントローラ。
【請求項２】
前記インタフェース回路は、前記異なる種類のメモリ装置を異なる命令プロトコルにマッピングするマッピングに基づいて、前記データの前記異なる種類のメモリ装置への書き込みに異なる命令プロトコルを選択するようにさらに構成される、請求項１に記載のメモリコントローラ。
【請求項３】
前記クロック信号は第１のクロック信号及び第２のクロック信号を含み、
前記第１のクロック信号は、前記メモリ装置の種類のうちの第１の種類に関連付けられた第１の固有クロック速度で動作し、
前記第２のクロック信号は、前記メモリ装置の種類のうちの第２の種類に関連付けられた第２の固有クロック速度で動作し、
前記第１の固有クロック速度は、前記第２の固有クロック速度とは異なる、請求項１に記載のメモリコントローラ。
【請求項４】
前記クロック信号は、第１のクロック信号、第２のクロック信号、及び少なくとも１つの他のクロック信号を含み、
前記第１のクロック信号は、前記メモリ装置の種類のうちの第１の種類の書き込み動作に関連付けられた第１の固有クロック速度で動作し、
前記第２のクロック信号は、前記メモリ装置の種類のうちの前記第１の種類の読み出し動作に関連付けられた第２の固有クロック速度で動作し、
前記少なくとも１つの他のクロック信号は、前記メモリ装置の種類のうちの第２の種類の読み書き動作に関連付けられた第３の固有クロック速度で動作する、請求項１に記載のメモリコントローラ。
【請求項５】
前記インタフェース回路は、
前記第１のクロック速度に基づく１クロックサイクルにわたり、前記第１の書き込みデータの各インスタンスを出力することにより、前記第１の書き込みデータを前記第１のクロック速度で前記共有信号バスに出力し、
前記第２のクロック速度に基づく１クロックサイクルにわたり、前記第１のクロック速度の複数の連続したクロックサイクルにわたって繰り返されるデータを出力することにより、前記第２の書き込みデータを前記第２のクロック速度で出力するようにさらに構成される、請求項１に記載のメモリコントローラ。
【請求項６】
前記インタフェース回路は、
前記第１の種類のメモリ装置により送信された第１のデータを前記第１のクロック速度で受信し、前記第２の種類のメモリ装置により送信された第２のデータを前記第２のクロック速度で受信するように構成された受信器と、
前記第１のデータを第１のクロック速度でサンプリングし、前記第２のデータを前記第１のクロック速度でサンプリングするように構成可能な少なくとも１つのラッチと、
をさらに備える、請求項１に記載のメモリコントローラ。
【請求項７】
前記インタフェース回路は、
前記第１の種類のメモリ装置からの読み出し動作中、第１の読み出しデータを前記第１のクロック速度でサンプリングし、前記第２の種類のメモリ装置からの読み出し動作中、第２の読み出しデータを前記第１のクロック速度でサンプリングするように構成可能な少なくとも１つのラッチであって、前記第２の読み出しデータは、前記第１のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第２のクロック速度で提供する、少なくとも１つのラッチと、
前記サンプリングされた第２の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供するように構成された速度適合回路と、
をさらに備える、請求項１に記載のメモリコントローラ。
【請求項８】
前記インタフェース回路は、
前記異なる種類のメモリ装置のうちの第１の種類のメモリ装置に向けられた書き込み動作に、前記クロック速度のうちの第１の速度で第１の書き込みデータを提供するようにさらに構成され、前記第１の種類のメモリ装置は、前記第１のクロック速度で前記共有信号バスを介して送受信するように構成され、前記インタフェース回路は、
前記異なる種類のメモリ装置のうちの第２の種類のメモリ装置に向けられた書き込み動作に、前記第１のクロック速度で第２の書き込みデータを提供するようにさらに構成され、前記第２の種類のメモリ装置は、前記第１のクロック速度よりも遅い前記クロック速度のうちの第２の速度で、前記共有信号バスを介して送受信するように構成され、前記第２の書き込みデータの部分はダミーデータを含む、請求項１に記載のメモリコントローラ。
【請求項９】
前記第２の書き込みデータを前記第１のクロック速度でバッファリングし、前記バッファリングされたデータを前記第２のクロック速度で読み出して、前記共有信号バスに前記第２のクロック速度で書き込みデータを提供するように構成された速度適合回路をさらに備え、前記第２のクロック速度での前記書き込みデータは、前記ダミーデータを含まない、請求項８に記載のメモリコントローラ。
【請求項１０】
前記インタフェース回路は、前記共有信号バスを介して前記異なる種類のメモリ装置を宛先とした制御情報を前記データに時分割多重化するようにさらに構成される、請求項１に記載のメモリコントローラ。
【請求項１１】
前記共有信号バスは共有データバスを含み、
前記インタフェース回路は、時分割多重化された様式で、共有制御バス上で制御情報を前記異なる種類のメモリ装置に送信するようにさらに構成される、請求項１に記載のメモリコントローラ。
【請求項１２】
前記インタフェース回路は、
制御情報を第１の速度で前記異なる種類のメモリ装置のうちの第１の種類のメモリ装置に送信し、
制御情報を、前記第１の速度とは異なる第２の速度で前記異なる種類のメモリ装置のうちの第２の種類のメモリ装置に送信する
ようにさらに構成される、請求項１１に記載のメモリコントローラ。
【請求項１３】
所与のデータ転送に対して、
ターゲットメモリ装置として前記異なる種類のメモリ装置のうちの１つと、
前記異なるクロック速度への前記異なる種類のメモリ装置のマッピングに基づいて、前記異なるクロック速度のうちの１つと、
を選択するように構成された装置選択論理をさらに備える、請求項１に記載のメモリコントローラ。
【請求項１４】
前記クロック回路は、前記装置選択論理からの信号に基づいて、それぞれが異なる周波数を有する複数の信号のうちの１つを選択することにより、前記クロック信号のうちの１つを前記所与のデータ転送に提供するように構成されたスイッチを備える、請求項１３に記載のメモリコントローラ。
【請求項１５】
前記インタフェース回路は、前記信号バスの信号路を使用して、
データを前記異なる種類のメモリ装置のうちの第１のメモリ種類の装置に送信し、
制御情報を前記異なる種類のメモリ装置のうちの第２のメモリ種類に送信するようにさらに構成される、請求項１に記載のメモリコントローラ。
【請求項１６】
信号バスと、
前記信号バスに並列に結合された異なる種類の複数のメモリ装置と、
前記信号バスに結合され、データが前記異なる種類のメモリ装置に異なるクロック速度で前記信号バスに出力されるように、前記異なる種類のメモリ装置のデータを前記信号バス上で時分割多重化するように構成された構成要素と、
を備え、
前記複数の異なる種類のメモリ装置のうちの第１の種類のメモリ装置は、前記クロック速度のうちの第１の速度で前記信号バスを介して送受信するように構成され、
前記複数の異なる種類のメモリ装置のうちの第２の種類のメモリ装置は、前記クロック速度のうちの第２の速度で前記信号バスを介して送受信するように構成され、
前記第１のクロック速度は、前記第２のクロック速度の整数倍であり、
前記構成要素は、
前記第１の種類のメモリ装置に向けられた書き込み動作に、前記第１のクロック速度で第１の書き込みデータを提供し、
前記第２の種類のメモリ装置に向けられた書き込み動作に、前記第１のクロック速度で第２の書き込みデータを提供する
ようにさらに構成され、前記第２の書き込みデータは、前記第１のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第２のクロック速度で提供する、メモリシステム。
【請求項１７】
前記異なる種類のメモリ装置は、異なる命令プロトコルを使用して、前記信号バスでのデータ転送を行うように構成され、
前記構成要素は、前記異なる種類のメモリ装置を前記異なる命令プロトコルにマッピングするマッピングに基づいて、前記異なる命令プロトコルのうちの１つを選択して、前記データ転送のうちの所与の１つに制御信号を提供するようにさらに構成される、請求項１６に記載のメモリシステム。
【請求項１８】
前記構成要素は、前記クロック速度のうちの第１の速度の第１のクロック信号を、前記異なる種類のメモリ装置のうちの第１の種類のメモリ装置に提供し、前記クロック速度のうちの第２の速度の第２のクロック信号を、前記異なる種類のメモリ装置のうちの第２の種類のメモリ装置に提供するようにさらに構成され、
前記第１のクロック速度は、前記第１の種類のメモリ装置に関連付けられた第１の固有クロック速度を含み、
前記第２のクロック速度は、前記第２の種類のメモリ装置に関連付けられた第２の固有クロック速度を含み、
前記第１の固有クロック速度は、前記第２の固有クロック速度とは異なる、請求項１６に記載のメモリシステム。
【請求項１９】
前記構成要素は、
前記第１の種類のメモリ装置からの読み出し動作中、第１の読み出しデータを前記第１のクロック速度でサンプリングし、
前記第２の種類のメモリ装置からの読み出し動作中、第２の読み出しデータを前記第１のクロック速度でサンプリングするようにさらに構成され、前記第２の読み出しデータは、前記第１のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第２のクロック速度で提供し、
前記サンプリングされた第２の読み出しデータを処理して、複数の連続したクロックサイクルにわたって繰り返されるデータを含まない読み出しデータを提供するようにさらに構成される、請求項１６に記載のメモリシステム。
【請求項２０】
前記構成要素はメモリコントローラである、請求項１６に記載のメモリシステム。
【請求項２１】
メモリコントローラであって、
第１のクロック速度への第１の種類のメモリ装置の第１のマッピングを提供するとともに、第２のクロック速度への第２の種類のメモリ装置の第２のマッピングを提供するように構成されたメモリ回路と、
前記第１の種類のメモリ装置を第１の組のデータの宛先として識別するように構成され、前記第１のマッピング及び前記第１の種類のメモリ装置の識別に基づいて、前記第１のクロック速度を選択するようにさらに構成される制御論理と、
前記第１のクロック速度を選択した結果、信号バスを介して前記第１のクロック速度で前記第１の組のデータを前記第１の種類のメモリ装置に送信するように構成されたインタフェース回路と、
を備え、
前記制御論理は、第２の組のデータの宛先として、前記第２の種類のメモリ装置を識別するようにさらに構成されるとともに、前記第２のマッピング及び前記第２の種類のメモリ装置の識別に基づいて、前記第２のクロック速度を選択するようにさらに構成され、
前記インタフェース回路は、前記第２のクロック速度を選択した結果、前記信号バスを介して前記第２のクロック速度で第２の組のデータを前記第２の種類のメモリ装置に送信するようにさらに構成され、前記第２の組のデータは、前記第１の組のデータと前記信号バス上で時分割多重化され、
前記第１のクロック速度は、前記第２のクロック速度の整数倍であり、
前記インタフェース回路は、
前記第１の種類のメモリ装置に向けられた書き込み動作に、第１の書き込みデータを前記第１のクロック速度で提供し、
前記第２の種類のメモリ装置に向けられた書き込み動作に、第２の書き込みデータを前記第１のクロック速度で提供する
ようにさらに構成され、前記第２の書き込みデータは、前記第１のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、データを前記第２のクロック速度で提供する、メモリコントローラ。
【請求項２２】
前記メモリ回路は、前記第１の種類のメモリ装置からの読み出し動作に、第３のクロック速度への前記第１の種類のメモリ装置の第３のマッピングを提供するようにさらに構成され、
前記制御論理は、第３の組のデータの送信元として前記第１の種類のメモリ装置を識別するようにさらに構成されるとともに、前記第３のマッピング及び前記第１の種類のメモリ装置の識別に基づいて、前記第３のクロック速度を選択するようにさらに構成され、
前記インタフェース回路は、前記第３のクロック速度を選択した結果、前記信号バスを介して前記第３のクロック速度で前記第３の組のデータを前記第１の種類のメモリ装置から受信するようにさらに構成され、前記第３の組のデータは、前記第１及び第２の組のデータと前記信号バス上で時分割多重化される、請求項２１に記載のメモリコントローラ。
【請求項２３】
前記メモリ回路は、第１の命令プロトコルへの前記第１の種類のメモリ装置の第３のマッピング及び第２の命令プロトコルへの前記第２の種類のメモリ装置の第４のマッピングを提供するようにさらに構成され、
前記制御論理は、前記第３のマッピング及び前記第１の種類のメモリ装置の識別に基づいて、前記第１の種類のメモリ装置への前記第１の組のデータの送信に前記第１の命令プロトコルを選択するようにさらに構成され、
前記制御論理は、前記第４のマッピング及び前記第２の種類のメモリ装置の識別に基づいて、前記第２の種類のメモリ装置への前記第２の組のデータの送信に前記第２の命令プロトコルを選択するようにさらに構成される、請求項２１に記載のメモリコントローラ。
【請求項２４】
前記インタフェース回路は少なくとも１つのラッチをさらに備え、前記少なくとも１つのラッチは、
前記第１のクロック速度で、前記第１の種類のメモリ装置により前記第１のクロック速度で送信されたデータをサンプリングし、
前記第１のクロック速度で、前記第２の種類のメモリ装置により前記第２のクロック速度で送信されたデータをサンプリングする
ように構成可能である、請求項２１に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、本願の所有者が所有する２０１０年２月２３日に出願された米国仮特許出願第６１／３０７，３３６号の利益及び優先権を主張するものであり、この仮特許出願を参照により本明細書に援用する。
【０００２】
技術分野
本願は、一般的にはメモリ技術に関し、排他的ではないがより詳細には、異なる種類のメモリへのアクセスに異なる速度の時間多重化を利用することに関する。
【背景技術】
【０００３】
異なる種類のメモリ技術をデータ処理システムで使用して、異なる種類のデータを記憶し、システムの性能、コスト、又は他の特徴を最適化し得る。例えば、システムの電源が落ちた場合に保持する必要があるデータは、フラッシュメモリ等の不揮発性メモリに記憶し得る。対照的に、メモリに比較的高速に読み書きする必要があるが、システムの電源が落ちた場合に保持する必要がないデータは、高速アクセス時間を提供するランダムアクセスメモリ（ＲＡＭ）等の揮発性メモリに記憶し得る。大量のデータも、高い記憶容量：コスト比を提供するメモリに記憶し得る。
【発明の概要】
【課題を解決するための手段】
【０００４】
システムによっては、２つ以上の種類のメモリを単一のシステム構成要素で使用し得る。例えば、モバイル装置（例えば、電話、個人情報端末、個人エンターテイメント装置）は、フラッシュメモリ（例えば、ＮＯＲ及び／又はＮＡＮＤフラッシュ）及びＲＡＭを利用し得る。これらの異なる種類のメモリは、最大入出力（Ｉ／Ｏ）転送速度、最適なインタフェースレイアウト、又は他の特徴の点で大きな違いを有し得るため、そのような装置のメモリコントローラは、各種のメモリにアクセスする別個の専用インタフェースを有し得る。その結果、そのようなメモリコントローラは、比較的多数のＩ／Ｏピンを有し得、メモリコントローラのコスト及びサイズを増大させる。
【０００５】
本開示の例としての特徴、態様、及び利点について以下の詳細な説明及び添付の特許請求の範囲並びに添付の図面で説明する。
【図面の簡単な説明】
【０００６】
【図１】異なる種類のメモリが時分割多重化信号バスを介して異なる速度でアクセスされるメモリシステムの実施形態の簡略ブロック図である。
【図２】異なる種類のメモリが時分割多重化信号バスを介して異なる速度でアクセスされるメモリシステムでの例としてのタイミングの簡略図である。
【図３】例としてのメモリ書き込み動作の実施形態のフローチャートである。
【図４】例としてのメモリ読み出す動作の実施形態のフローチャートである。
【図５】メモリシステムの実施形態の例としての機能構成要素を示す簡略ブロック図である。
【図６】メモリコントローラの実施形態の例としての機能構成要素を示す簡略ブロック図である。
【図７】メモリマップの実施形態の例としての態様を示す簡略ブロック図である。
【図８Ａ】異なる種類のメモリ装置のプロトコル構造の例としての態様を示す簡略図である。
【図８Ｂ】異なる種類のメモリ装置のプロトコル構造の例としての態様を示す簡略図である。
【図９Ａ】異なる種類のメモリ装置の例としての命令コードを示す簡略図である。
【図９Ｂ】異なる種類のメモリ装置の例としての命令コードを示す簡略図である。
【図１０】例としての命令処理の実施形態のフローチャートである。
【図１１】メモリシステムの実施形態での速度制御の例としての態様を示す概略ブロック図である。
【図１２】メモリコントローラのクロック回路の実施形態の例としての態様を示す簡略ブロック図である。
【図１３】所与の種類のメモリ装置に対して複数のクロック速度をサポートするクロック回路の実施形態の例としての態様を示す簡略ブロック図である。
【図１４】メモリ装置がクロックをメモリコントローラに提供するメモリシステムの実施形態の例としての態様を示す概略ブロック図である。
【図１５】外部クロック生成器がクロックをメモリコントローラ及びメモリ装置に提供するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図１６】外部クロック生成器が複数のクロックをメモリコントローラ及びメモリ装置に提供するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図１７】メモリ装置がクロック・データ復元を利用して、メモリコントローラから受信する埋め込みクロック及びデータ信号からクロック及びデータを復元するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図１８】メモリコントローラが、クロック・データ復元を利用して、メモリ装置から受信する埋め込みクロック及びデータ信号からクロック及びデータを復元する、メモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図１９】異なる種類のメモリ装置が異なる分周器を利用して、外部装置からのクロックを分周するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図２０】メモリ装置のイネーブル／ディセーブル方式の実施形態の例としての態様を示す簡略ブロック図である。
【図２１】メモリ装置のコマンドに基づくイネーブル／ディセーブル方式の実施形態の例としての態様を示す簡略ブロック図である。
【図２２】多重化クロックバスを利用するメモリシステムの実施形態の例としての態様を示す簡略ブロック図である。
【図２３】書き込み動作の速度適合方式の実施形態の簡略図である。
【図２４】読み出し動作の速度適合方式の実施形態の簡略図である。
【図２５】書き込み動作の速度適合方式の別の実施形態の簡略図である。
【図２６】読み出し動作の速度適合方式の別の実施形態の簡略図である。
【図２７】メモリコントローラの実施形態の簡略ブロック図である。
【図２８】選択論理の実施形態の簡略ブロック図である。
【図２９】バッファ回路を利用するメモリ装置の実施形態の簡略ブロック図である。
【発明を実施するための形態】
【０００７】
一般的な通例によれば、図面に示される様々な特徴は一定の縮尺で描かれていない場合がある。したがって、様々な特徴の寸法は、明確にするために任意に拡大又は縮小し得る。加えて、図面によっては明確にするために簡略化されているものがある。したがって、図面は、所与の装置又は方法のすべての構成要素を示している訳ではない。最後に、同様の番号を使用して、本明細書全体及び図全体を通して同様の特徴を示し得る。
【０００８】
詳細な説明
図１は、メモリコントローラ１０２が、共有バス１０４を介して異なる種類のメモリ装置に異なる速度でアクセスするメモリシステム１００の実施形態を示す。この例では、データは、共有バス１０４を介してある速度でメモリ装置１０６（例えば、ＤＲＡＭ）から読み書きされ、その一方で、データは、共有バス１０４を介して別の速度でメモリ装置１０８（例えば、フラッシュメモリ）に読み書きされる。いくつかの実施態様では、メモリ装置１０６が動作する速度は、メモリ装置１０８が動作する速度の整数倍（例えば、２倍、３倍、又は４倍）である。異なる相対比率（例えば、非整数倍を含む）、異なる数のメモリ種類、及び異なる数のメモリ装置を、本明細書における教示により他の実施形態で利用し得る。
【０００９】
メモリコントローラ又はメモリ装置１０６及び１０８による異なる速度で出力されたデータは、共有バス１０４上でメモリ装置１０６及び１０８を相互に排他的にイネーブルすることにより、共有バス１０４上で時分割多重化される。例えば、メモリ装置１０６への書き込み中、メモリコントローラ１０２は、装置選択０信号１１０をイネーブルし、クロック信号１１２（例えば、メモリ装置１０６の固有速度に対応する比較的高速のクロック速度を有する）を提供し、クロック信号１１２に対応する速度で制御情報及びデータを共有バス１０４に出力する。同様に、メモリ装置１０８への書き込み中、メモリコントローラ１０２は、装置選択１信号１１４をイネーブルし、クロック信号１１６（例えば、メモリ装置１０８の固有速度に対応する比較的遅いクロック速度を有する）を提供し、クロック信号１１６に対応する速度でデータを共有バス１０４に出力する。メモリ装置１０６からの読み出し中、メモリコントローラ１０２は、装置選択０信号１１０をイネーブルし、クロック信号１１２を提供し、制御情報を共有バス１０４に出力し、それを受けて、メモリ装置１０６は、クロック信号１１２に対応する速度でデータを共有バス１０４に出力する。メモリ装置１０８からの読み出し中、メモリコントローラ１０２は、装置選択１信号１１４をイネーブルし、クロック信号１１６を提供し、制御情報を共有バス１０４に出力し、それを受けて、メモリ装置１０８は、クロック信号１１６に対応する速度でデータを共有バス１０４に出力する。
【００１０】
本明細書において教示されるように、異なる速度での時分割多重化の使用を通して、メモリコントローラは、異なる種類のメモリに別個の専用インタフェースを含むメモリコントローラと比較してかなり少数のＩ／Ｏピンを用いて実施し得る。例えば、１６本のＩ／Ｏピンが、メモリコントローラと所与のメモリ装置との間でのデータ送信に使用される場合、対応する１６の信号路が、このメモリコントローラに結合された異なる種類のメモリ装置により共有されるため、メモリコントローラ上のＩ／Ｏピン数を少なくとも１６本、少なくし得る。さらに、制御信号がこれらの１６の信号路でも同様に時分割多重化される場合、Ｉ／Ｏピン計数の追加の低減を達成し得る。
【００１１】
さらに、時分割多重化の使用を通して、帯域幅を必要に応じて各種のメモリ装置に効率的に割り振り得る。例えば、フラッシュメモリは主に、システムが起動中である場合に使用し得る一方で、ＤＲＡＭは主に、システムが標準動作モードである場合に使用し得る。したがって、本明細書における教示により構築されるメモリコントローラは、より低コスト且つより小さなフットプリントで構築し得、システム内のメモリをより効率的に使用することが可能であり得る。
【００１２】
図２のタイミング図は、共有バス上での多速度時分割多重化の例を示す。この例では、メモリコントローラ（図示せず）は、２つの異なる種類のメモリ装置（図示せず）のそれぞれのクロック信号及び装置選択信号を生成する。特に、第１のメモリ装置（装置選択０によりイネーブルされる）に提供される高速クロック（２Ｘ）は、第２のメモリ装置（装置選択１によりイネーブルされる）に提供される低速クロック（１Ｘ）の速度の２倍で動作する。
【００１３】
上述したように、共有バスは多重化された制御情報及びデータを搬送し得る。例えば、所与のメモリ装置にアクセスする場合、メモリコントローラはまず、適切な制御情報（例えば、コマンド及びアドレス）をメモリ装置に送信し得、その後、そのアクセスのデータを共有バスに出力し得る。したがって、図２の例では、ブロックＡ０、Ｂ０等とＡ１、Ｂ１等とは、制御情報及び／又はデータに対応し得る。
【００１４】
第２のメモリ装置への読み出し又は書き込みの場合、装置選択１がアクティブ化され、それを受けて、制御情報及びデータが、低速クロックに対応する速度で共有バスに出力される。特に、ブロックＡ１で表される第１の組のコマンド情報及び／又はデータは、低速クロックの立ち上がりエッジ中に出力され、ブロックＢ１で表される第２の組のコマンド情報及び／又はデータは、低速クロックの次の立ち上がりエッジ中に出力され、以下同様である。
【００１５】
第１のメモリ装置への読み出し又は書き込みの場合、装置選択０がアクティブ化され、それを受けて、制御情報及びデータが、高速クロックに対応する速度で共有バスに出力される。特に、ブロックＡ０で表される第１の組のコマンド情報及び／又はデータは、高速クロックの立ち上がりエッジ中に出力され、ブロックＢ０で表される第２の組のコマンド情報及び／又はデータは、高速クロックの次の立ち上がりエッジ中に出力され、以下同様である。
【００１６】
メモリコントローラは、異なる速度を切り替える際に信頼性の高い動作を維持するために適切な機能を含み得る。例えば、２つのクロック信号が、メモリコントローラから同相で送信されない場合、異なる種類のメモリ装置へのシグナリングを切り替えるとき、タイミングシフトを利用し得る。
【００１７】
図２は、データをクロックの立ち上がりエッジでサンプリングし得る例を示すが、本明細書における技法は、他のクロック方式にも同様に適用可能である。例えば、２倍データ速度方式（すなわち、負及び正両方のクロックエッジでのサンプリング）、４倍データ速度方式、又はそのような方式と両立し得るクロック及びデータ速度を利用する他の何らかの適したクロック方式を他の実施形態で利用し得る。
【００１８】
多速度時分割多重化は、様々な方法で実施し得る。例としての実施態様の詳細について、図３及び図４のフローチャートと併せてこれより説明する。便宜上、図３及び図４の動作（又は本明細書において考察又は教示される他の任意の動作）は、特定の構成要素により実行されるものとして説明し得る。しかし、これらの動作を他の種類の構成要素で実行してもよく、異なる数の構成要素を使用して実行してもよいことを理解されたい。本明細書に説明される動作のうちの１つ又は複数を所与の実施態様において利用しなくてもよいことも理解されたい。
【００１９】
まず図３を参照すると、このフローチャートは、共有バスを介してデータを異なる種類のメモリ装置に書き込むことに併せて実行し得る例としての動作を説明する。ブロック３０２及び３０４で表されるように、時間のある時点で、メモリコントローラは、データを第１及び第２の種類のメモリ装置（例えば、メモリ装置１０６及び１０８）に書き込む要求を受信する（例えば、システムプロセッサから）。例えば、メモリコントローラは、第１のメモリ装置に対応するアドレスに書き込むべきデータを含む第１の書き込み要求を受信し得る（ブロック３０２）とともに、第２のメモリ装置に対応するアドレスに書き込むべきデータを含む第２の書き込み要求を受信し得る（ブロック３０４）。
【００２０】
ブロック３０６で表されるように、メモリコントローラは、書き込み動作に使用すべき適切なクロック速度及びプロトコルを選択し得る。例えば、書き込み要求の宛先アドレスが第１のメモリ装置に対応する場合、メモリコントローラは、そのメモリ装置に対応するクロック速度（例えば、メモリ装置の固有速度）と、そのメモリ装置へのアクセスに使用すべきプロトコルとを選択する。書き込み要求の宛先アドレスが第２のメモリ装置に対応する場合、同様の動作が実行される。
【００２１】
メモリコントローラがクロック信号をメモリ装置に出力する様式は、メモリコントローラからメモリ装置へのクロックバスの構成に依存する。いくつかの実施態様では、クロックバスは、各種のメモリ装置にルーティングされる別個のクロック信号路を備える（例えば、図１に示されるように）。この場合、メモリコントローラは、異なる速度（例えば、１Ｘ及び２Ｘ）を有するクロック信号を異なるクロックバス信号路に連続して出力し得る。
【００２２】
図２２においてより詳細に後述するように、他の実施態様は多重化クロックバスを使用し得、共有クロック信号路が異なる種類のメモリ装置にルーティングされる。この場合、メモリコントローラは、所与のクロック速度を有するクロック信号をある時間期間にわたり（例えば、第１の種類のメモリ装置が共有データバスでイネーブルされる時間）クロックバスに出力し得、次に、別のクロック速度を有する別のクロック信号を別の時間期間にわたり（例えば、第２の種類のメモリ装置が共有データバスでイネーブルされる時間）クロックバスに出力し得る。
【００２３】
所与の種類のメモリ装置により使用されるプロトコルは、メモリ装置へのアクセスに使用される制御情報（例えば、命令セット）を指定する。場合によっては、そのような命令プロトコルは、どの命令（例えば、コマンド）が所与の種類のメモリに使用されるかを指定する。例えば、ＤＲＡＭプロトコルは、フラッシュプロトコルに使用されないリフレッシュ命令を含み得、その一方で、フラッシュプロトコルは、ＤＲＡＭプロトコルに使用されないポーリング命令を含み得る。場合によっては、命令プロトコルは、特定の命令に関連付けられたコード値を指定する。例えば、図９Ａ及び図９Ｂにおいてより詳細に後述するように、一プロトコルでは、書き込み命令はコード値０×０２を有し得、その一方で、別のプロトコルでは、読み出し命令はコード値０×０２を有し得る。場合によっては、プロトコルは、所与の種類のメモリ装置のアクセスに関連付けられたタイミングパラメータを定義する。例えば、プロトコルは、メモリ装置が読み出し（又はポーリング）命令を受信した後、データがメモリ装置からの読み出しに利用可能な最小時間又は最大時間を定義し得る。プロトコルは、特定のメモリ装置にアクセスする場合にクロックに適用すべき１つ又は複数の位相シフトを定義し得る。場合によっては、命令プロトコルは、所与の種類のメモリにアクセスする場合に使用すべきパケットサイズを定義する。例えば、以下の図８Ａ及び図８Ｂにおいてより詳細に後述するように、あるプロトコルは、各パケットが６ビット幅であり（例えば、６ワイヤ制御バスの場合）、４ビット長である（例えば、パケットは４クロックサイクルで出される）ことを指定し得、その一方で、別のプロトコルは、各パケットが３ビット長であることを指定し得る。場合によっては、命令プロトコルは、制御情報（例えば、コマンド及びアドレス）がメモリ装置に提供される特定の信号線を定義する。より詳細に後述するように、場合によっては、異なる種類のメモリにアクセスする場合、共有バスの１つ又は複数の信号路のタスクを変更し得る（例えば、データから制御に）。
【００２４】
ブロック３０８で表されるように、メモリコントローラは、メモリ装置に送信すべき制御情報及び書き込みデータを提供する。例えば、メモリコントローラは、適切なコマンド及びアドレス（Ｃ／Ａ）情報とデータ（ＤＱ）とを、各メモリ装置に送られるパケットにフォーマットし得る。図２３〜図２６と併せてより詳細に後述するように、メモリコントローラは、有利なことには、共通のクロック速度でメモリ装置に送信すべき情報を処理し得る。例えば、コントローラは、共有バスを介して異なる速度で送信すべきフォーマットされたＣ／Ａ情報及びデータを、これらの速度のうちの最高速度で提供し得る。この場合、より低速の情報を続けて処理して、共有バスに適切な速度でデータを出力し得る。例えば、後述するように、複製データをより低速のデータストリームに追加し得、又はタイミングバブルをこのデータストリームに追加し得る。同様の動作を、より低速で送信される制御情報に対しても実行し得る。
【００２５】
ブロック３１０で表されるように、メモリコントローラは、異なるメモリ装置を宛先とする書き込みデータを共有バス上で時分割多重化する。したがって、本明細書で考察されるように（例えば、図２において）、メモリコントローラは、一種類のメモリ装置を宛先とした書き込みデータをあるクロック速度で送信し、別の種類のメモリ装置を宛先とした書き込みデータを別のクロック速度で送信する。
【００２６】
メモリコントローラは、異なる実施態様では異なる方法でメモリ装置を宛先とした制御情報を出力し得る。場合によっては、制御情報は、上述したように、共有バス上でデータと時分割多重化し得る。すなわち、メモリコントローラは、時分割多重化制御・データバスを利用し得る。例えば、図２では、ブロックＡ１はＣ／Ａ情報を含み得、ブロックＢ１〜Ｄ１は、メモリ装置のうちの１つを宛先としたデータを含み得る。
【００２７】
場合によっては、メモリシステムは、別個のデータバス及び制御バスを利用し得る。これらの場合、制御バスはメモリ装置で共有し得、又は専用の制御バスを各メモリ装置に提供し得る。例えば、共有制御バスを利用し得、それにより、メモリコントローラは、異なるメモリ装置を宛先とした制御情報を共有制御バスに時分割多重化する。あるいは、専用の制御バスを各種のメモリに提供し得る。例えば、メモリコントローラは、制御情報を一種類のメモリ装置にある制御バスを介して送信し、制御情報を別の種類のメモリ装置に異なる制御バスを介して送信し得る。
【００２８】
メモリコントローラが制御情報をメモリ装置に出力する速度は、この情報の搬送に使用される１つ又は複数のバスの構成に依存する。場合によっては、メモリコントローラは、制御情報を異なる速度で異なる種類のメモリ装置に出力する。例えば、多重化バス上で、メモリコントローラは、制御情報を一種類のメモリ装置にある速度で送信し（例えば、図２のブロックＡ１）、制御情報を別の種類のメモリ装置に異なる速度で送信し得る（例えば、図２のブロックＡ０）。同様に、専用の制御バスが利用される場合、メモリコントローラは、制御信号を異なる速度で異なる制御バスを介して送信し得る。
【００２９】
他の場合、メモリコントローラは、制御情報を異なる種類のメモリ装置に、データがこれらのメモリ装置で異なる速度で送信されるにも関わらず、同じ速度で送信し得る。例えば、制御情報が共有バスを介して送信される場合（制御のみ又はデータ／制御）、メモリコントローラは、最も遅いメモリ装置に関連付けられたクロック速度（例えば、データ転送に使用される最も遅いクロック速度）又はより低速のある速度で制御情報を連続又は定期的に送信し得る。このようにして、共有バス上のすべてのメモリ装置が、少なくともいくつかの時点で制御情報を取得することが可能である。そのような方式は、より高速のメモリ装置が、最も遅いメモリ装置が動作する速度の整数倍の速度で動作する（例えば、制御情報を受信する）メモリシステムで特に実用的であり得る。そのような整数倍速度のクロック信号は、様々な方法で生成し得る。いくつかの実施態様では、低速クロックは、高速クロックを分周することにより生成し得る。いくつかの実施態様では、低速クロック及び高速クロックは共通クロックから生成し得る（例えば、異なる分周器を使用して、共通タイミング源から高速クロック及び低速クロックを生成し得る）。
【００３０】
いくつかの態様では、共有バス上の時分割多重化は、どのメモリ装置が共有バス上でイネーブルされるかを制御することにより達成される。場合によっては、これは、図２に説明されるように、メモリ装置を相互に排他的にイネーブルする装置選択（例えば、チップ選択）信号の使用を通して達成される。
【００３１】
場合によっては、メモリ装置のアクセス制御は、どのメモリ装置が共有バス上で所与のデータ転送にイネーブルされるかを指定する制御情報の使用を通して達成される。例えば、バス上のすべてのメモリ装置は、どのメモリ装置が所与の時間期間にわたり共有バス上でデータ転送にイネーブルすべきかを示す制御情報を受信するように構成し得る。ここで、メモリ装置は、連続して、又は指定された時間（例えば、定期的）に制御情報を受信するように構成し得る。この情報に基づいて、各メモリ装置は、それ自体を共有バス上で指定された時間にデータ転送にイネーブルし得る。
【００３２】
したがって、ブロック３１２及び３１４で表されるように、メモリ装置は適切な時間にイネーブルされて、それぞれの書き込みデータをメモリコントローラから受信する。ここで、第１のメモリ装置がイネーブルされる場合、メモリ装置は、受信器回路をイネーブルし得、それにより、クロック信号（例えば、共有クロックバスの場合）、制御情報、及びデータをこの時間期間中に受信する。対照的に、共有バス上の他の任意のメモリ装置は、この時間期間中、共有バス上の信号を無視し得る。例えば、別のメモリ装置は受信器回路をディセーブルし得、それにより、クロック信号、制御情報、又はデータをこのときに受信しない。受信器回路のイネーブル及びディセーブルを行うためにメモリ装置に利用し得る例としての回路を図２０〜図２２において後述する。
【００３３】
イネーブルされる場合、各メモリ装置は、対応するクロック信号（例えば、メモリコントローラ、そのメモリ装置、又は他の何らかのエンティティにより提供される）を使用して、書き込みデータを共有バスから受信する。例えば、図２に示されるように、所与のメモリ装置（装置１）は、第１のクロック速度（１Ｘ）を有するクロック信号を使用して、書き込みデータ（Ａ１〜Ｄ１）を受信し得る一方で、別のメモリ装置（装置０）は、第２のクロック速度（２Ｘ）を有する別のクロック信号を使用して、書き込みデータ（Ａ０〜Ｄ０）を受信し得る。
【００３４】
図４を参照すると、このフローチャートは、共有バスを介する異なる種類のメモリ装置からのデータ読み出しと併せて実行し得る例としての動作を説明する。ブロック４０２及び４０４で表されるように、ある時点で、メモリコントローラは、第１の種類のメモリ装置に対応するアドレスからデータを読み出す要求を受信するとともに（例えば、システムプロセッサから）、第２の種類のメモリ装置に対応するアドレスからデータを読み出す要求も受信する。
【００３５】
ブロック４０６で表されるように、メモリコントローラは、読み出し動作に使用すべき適切なクロック速度及びプロトコルを選択し得る。したがって、これらの動作は、ブロック３０６において上述した動作と同様であり得る。
【００３６】
ブロック４０８で表されるように、メモリコントローラは、メモリ装置に送信すべき読み出し要求の制御情報を提供する。例えば、メモリコントローラは、適切なコマンド及びアドレス（Ｃ／Ａ）情報を、各メモリ装置に送られるパケットにフォーマットし得る。メモリコントローラは、適切なバスを介して（例えば、共有データ／制御バスを介して、共有制御バスを介して、又は専用制御バスを介して）制御情報をメモリ装置に送信する。したがって、これらの動作は、ブロック３０８及び３１０において上述した類似の動作と同様であり得る。例えば、制御情報は、同じ又は異なる速度で異なるメモリ装置に送信し得、制御情報は、共有バス上で時分割多重化し得、装置選択信号又は他のアクセス制御技法を使用して、共有バス上でのデータ転送にメモリ装置をイネーブルし得る等である。
【００３７】
ブロック４１０及び４１２で表されるように、メモリ装置は、読み出し要求の受信を受けて、適切な時間にイネーブルされ、各読み出しデータを共有バスに出力する。したがって、各メモリ装置は、メモリコントローラにより提供される対応するクロック信号を使用して、読み出しデータを出力し、それにより、データは共有バス上に異なる速度で時分割多重化される。したがって、これらの動作は、いくつかの側面において（例えば、アクセス制御、制御情報の受信、及びクロック信号の使用に関して）ブロック３１２及び３１４において上述した書き込み動作と同様であり得る。
【００３８】
ブロック４１４で表されるように、メモリコントローラは、共有バスから時分割多重化データを受信する。図２４及び図２６において後述するように、いくつかの実施態様では、メモリコントローラは、有利なことに、異なるメモリ装置からの読み出しデータが共有バス上に異なる速度で現れるにも関わらず、単一の速度で受信時分割多重化データをサンプリングし得る。例えば、受信データは、最高速メモリ装置（例えば、データの転送に使用される最高速クロック速度）に関連付けられたクロック速度又はより高速のある速度でサンプリングし得る。
【００３９】
ブロック４１６で表されるように、メモリコントローラは、妥当な場合、受信読み出しデータを処理して、読み出しデータを適切で効率的な速度で提供する。例えば、より高速のクロックが、より低速のデータのサンプリングに使用される場合、複製又はタイミングバブルを受信データストリームから除去し得る。逆に、サンプリングクロック速度がデータ速度と同じである場合、メモリコントローラは、データをさらに処理する必要がないことがある。読み出しデータがメモリ装置のうちの所与の１つから取得されると、メモリコントローラは、データを要求側（例えば、システムプロセッサ）に送信して、読み出し動作を完了する。
【００４０】
これより図５を参照して、メモリコントローラ及びメモリ装置に利用し得る例としての高レベル機能構成要素を説明する。ここでは、メモリシステム５００はメモリコントローラ５０２を含み、メモリコントローラ５０２は、共有信号バス５０８を介して異なる種類のメモリ装置５０４及び５０６にアクセスする。したがって、図５の構成要素は、図１において説明される同様の構成要素に対応し得る。いくつかの態様では、メモリコントローラ５０２と、メモリ装置５０４及び５０６とは、従来のメモリコントローラ及びメモリ装置と同様の機能を提供する。加えて、メモリコントローラ５０２と、メモリ装置５０４及び５０６は、本明細書において教示されるメモリ制御動作に役立つ機能を含む。図５は、この追加の機能を提供し得る例としての機能構成要素を簡略化して示す。
【００４１】
メモリコントローラ５０２は、メモリ制御論理５２４と、インタフェース回路５２６（例えば、一般にＰＨＹとして知られる物理的なインタフェース回路）とを含む。メモリ制御論理５２４は、例えば、プロセッサバス５２８（例えば、ＣＰＵバス）を介して処理エンティティ（例えば、ＣＰＵ）から受信した命令（例えば、コマンド、要求等）のキュー入れ及び解釈、システムバス５２８を介して受信した書き込みデータのメモリ装置５０４及び５０６への転送、システムバス５２８を介してメモリ装置５０４及び５０６から読み出した読み出しデータの転送、命令アービトレーションの実行、読み出し動作及び書き込み動作のタイミング制限の実行、並びにデータが正確な速度で、本明細書において教示される適切なプロトコルを使用してメモリ装置５０４又は５０６から読み書きされることの保証等の機能を実行する。加えて、メモリ制御論理５２４は、メモリ回路５３４に記憶された情報（例えば、メモリマップ）を使用して、異なる種類のメモリ装置にアクセスする場合に使用すべき動作パラメータ（例えば、クロック速度、プロトコル等）を決定し得る。インタフェース回路５２６は、例えば、チャネルの駆動、ビットの受信、データの直列化、データの非直列化、及びクロック領域交差機能の提供等の動作を実行し得る。これら及び他のメモリコントローラの動作については、図６〜図１１においてより詳細に後述する。
【００４２】
メモリ装置５０４及び５０６のそれぞれは、インタフェース回路５３０又は５３２と、装置制御論理５１２又は５１４と、メモリアレイ５１６又は５１８とを含む。便宜上、以下にメモリ装置５０４の構成要素の例としての動作について説明する。同様の動作をメモリ装置５０６の構成要素により実行し得ることを理解されたい。インタフェース回路５３０は、システムバス（例えば、共有信号バス５０８、クロックバス５２０、及び制御バス５２２）とインタフェースして、メモリアレイ５１６とのデータの読み書きに役立つ。いくつかの態様では、インタフェース回路５３０は、クロックバス５２０上に提供されるクロックに基づく速度で、システムバスのうちの１つ又は複数から制御情報及び／又はデータを受信するように構成される。加えて、インタフェース回路５３０は、クロックバス５２０上に提供されるクロックに基づく速度で、メモリアレイ５１６から読み出したデータを共有信号バス５０８に出力するように構成される。制御論理５１２は、メモリ装置５０４に関連付けられたプロトコルを使用して、メモリアレイ５１６の読み書きを制御する。特に、制御論理５１２は、インタフェース回路５３０が受信した書き込みデータをメモリアレイ５１６に転送し、メモリアレイ５１６からの読み出しデータを、共有信号バス５０８を介して送信するために、インタフェース回路５２８に転送する。これら及び他のメモリ装置動作については、図１１〜図２２においてより詳細に後述する。
【００４３】
図５の例では、メモリ装置５０４及び５０６はメモリ装置５１０内で実施される。いくつかの実施態様では、メモリ装置５１０は、メモリ装置５０４及び５０６が一緒にパッケージされた単一の集積回路パッケージを備える。例えば、メモリ装置５０４及び５０６のダイをパッケージ内の共通基板上に提供し、上下に重ね、又は他の何らかの様式で同じ場所に配置し得る。メモリ装置５１０は、例えば、メモリ装置５０４及び５０６が上に配置されたプリント回路基板等の他の形態を取ってもよい。メモリ装置５１０は、任意の適した数の異なる種類のメモリ装置及び／又は任意の適した数のメモリ装置も備え得る。
【００４４】
そのようなメモリ装置の使用を通して、メモリシステム５００は、異なる種類のメモリ装置に別個のインタフェースを使用する従来のシステムと比較して、少数の信号路を組み込み得る（例えば、メモリコントローラ５０２及びメモリ装置５１０が上に配置された回路基板上に）。したがって、メモリシステム５００の複雑性、ひいてはコストを、これらの従来のシステムと比較して下げることができる。
【００４５】
メモリ装置５１０は、メモリ装置５０４及び５０６にシステムバスをルーティングするのに適した信号路を含む。特に、共有信号バス５０８は、メモリ装置５０４及び５０６に並列してルーティングされる。例えば、共有信号５０８バスは、マルチドロップ結合方式を使用してメモリ装置５０４及び５０６にルーティングし得る。加えて、制御バス５２２及び／又はクロックバス５２０は、並列構成でメモリ装置５０４及び５０６にルーティングし得、又はこれらのバスの異なる部分を一方又は他方のメモリ装置にルーティングし得る。
【００４６】
場合によっては、クロックバス５２０は、異なるクロック速度を有する異なるクロック信号が多重化される単一の信号路又は複数の信号路（例えば、異なる信号又は分岐クロック毎に）を備え得る。あるいは、場合によっては、クロックバス５２０は、１組の専用クロック信号路を備え得、この場合、所与の信号路（又は一対の経路）がメモリ装置のうちの所与の１つにルーティングされる。
【００４７】
異なる実施態様では、制御信号をメモリコントローラと関連付けられたメモリ装置との間で異なる方法でルーティングしてもよい。したがって、図５の制御バス５２２は、異なる実施態様では異なる形態をとり得る。
【００４８】
いくつかの実施態様では、制御信号は共有信号バス５０８上でデータと多重化される。この場合、制御バス５２２は、アクセス制御信号（例えば、図１に示されるような装置選択信号）又は他の何らかの種類の信号を搬送する単一の信号路又は複数の信号路を備え得る。
【００４９】
いくつかの実施態様では、制御信号はデータとは異なる１つ又は複数のバス上に提供される。この場合、制御バス５２２は、共有制御バス又はいくつかの専用制御バス（すなわち、異なる組の制御信号路）を備え得る。
【００５０】
共有制御バスを使用する実施態様では、制御バス５２２は、メモリ装置５０４及び５０６に並列にルーティングされる多重化バスを備え得る。ここでも、異なる種類のメモリ装置を宛先とした制御信号は、この場合、同じ又は異なる速度で提供し得る。
【００５１】
制御バス５２２がいくつかの専用バス（例えば、異なる種類のメモリ装置毎に１組の専用制御信号路）を備える実施態様では、所与の専用バスをメモリ装置のうちの所与の１つにルーティングし得る。例えば、１組の信号路は、Ｃ／Ａ信号を一種類のメモリ装置に搬送するＣ／Ａバスを備え得る一方で、異なる組の信号路は、別の組のＣ／Ａ信号を別の種類のメモリ装置に搬送する別のＣ／Ａバスを備え得る。そのような場合、異なる組の制御信号路上の制御信号は通常、異なる速度で（例えば、メモリ装置の固有速度に基づいて）提供される。
【００５２】
図６は、本明細書において教示されるように、異なる種類のメモリ装置への異なる速度での読み書きに役立つために、メモリコントローラ５０２に利用し得る例としての構成要素を示す。メモリ制御論理５２４は装置選択論理６０２を含み、装置選択論理６０２は、異なる種類のメモリにアクセスする場合に使用すべき異なるパラメータ又は情報を、この情報にメモリ装置５３４のメモリマップ６０４からアクセスすることにより選択し得る。例えば、装置選択論理６０２は、読み出し命令又は書き込み命令と共に受信するターゲットアドレスをメモリマップへの参照入力として使用することにより、アクセスすべき特定の種類のメモリ（例えば、ターゲットメモリ装置）を選択（例えば、識別）し得る。加えて、装置選択論理６０２は、所与の種類のメモリにアクセスする場合に使用すべきクロック速度及び／又はプロトコルを選択し得る。例としてのメモリマップについては図７においてより詳細に後述する。
【００５３】
上述したように、メモリ制御論理５２４は、メモリコントローラ５０２により制御される任意の異なる種類のメモリにデータを書き込み、且つ／又はメモリからデータを読み出すシステム構成要素からプロセッサバス５２８を介して受信される命令を処理する機能を提供する。ここで、メモリ制御論理５２４は、入力された命令をキューに入れるための命令キュー６０６を利用し得る（例えば、新しい命令を受信した場合、メモリ装置のアクセスが保留されるとき）。装置０及び装置１の命令キュー６０８及び６１０のそれぞれで表されるように、メモリコントローラ５０２により制御されるメモリ装置毎に命令キューを提供し得る。
【００５４】
メモリ制御論理５２４は、入出力（Ｉ／Ｏ）回路６１２を介してプロセッサバス５２８とインタフェースする。Ｉ／Ｏ回路６１２は、異なる実施態様では異なる形態をとり得る。メモリコントローラ５０２が、メモリコントローラ５０２を使用してシステムメモリにアクセスするシステムエンティティ（例えば、ＣＰＵ）と同じ集積回路（例えば、同じダイ）上に存在する実施態様では、Ｉ／Ｏ回路６１２は単に、例えば、同じダイ内の他の論理への信号路を備え得る。メモリコントローラ５０２が、メモリコントローラ５０２を使用するシステムエンティティとは異なる集積回路（例えば、異なるダイ）上に存在する場合、Ｉ／Ｏ回路６１２は、例えば、信号を駆動し受信する送信器構成要素及び受信器構成要素も備え得る。
【００５５】
メモリ制御論理５２４は、インタフェース回路５２６を介してコマンドをメモリ装置に送信し、メモリ装置とデータを転送する。いくつかの態様では、インタフェース回路５２６は、プロセッサクロック領域とメモリクロック領域との変換を行うクロック領域交差回路（例えば、ＦＩＦＯ６１４として実施される）を備える。例えば、メモリ制御論理５２４は、プロセッサクロック回路６１６により提供されるプロセッサクロック（例えば、ＰＣＬＫ）に基づいて動作（例えば、クロックイン情報及びクロックアウト情報）を実行し得る。しかし、１つ又は複数のメモリバス（例えば、バス５０８と、場合によっては図５のバス５２２と）を介するメモリコントローラ５０２とメモリ装置との間での情報転送は、メモリクロック回路６１８により提供されるメモリクロック（例えば、ＭＣＬＫ）に基づいて異なるクロック速度で行われる。
【００５６】
クロック回路６１８により提供される現在のクロック速度は、装置選択論理６０２により提供される装置選択信号に基づく。これより図７を参照すると、メモリ制御論理５２４（例えば、装置選択論理６０２）が所与の種類のメモリ装置へのアクセスに適切なパラメータをいかに選択し得るかの例について説明する。
【００５７】
メモリマップ６０４は、メモリ装置の異なる種類毎に異なるエントリを含む。例えば、第１の組のエントリ７０２は第１の種類のメモリ装置（装置０として示される）に対応し得、第２の組のエントリ７０４は第２の種類のメモリ装置（装置１として示される）に対応し得る。ここで、メモリマップ６０４は、１組（例えば、ある範囲）のターゲットアドレスを各組のエントリにマッピングし得る。例えば、第１の種類のメモリ装置に割り当てられた物理アドレスに対応するアドレス範囲７０６（例えば、ある範囲の仮想アドレス）が、第１の組のエントリ７０２にマッピングされる。同様に、第２の種類のメモリ装置に割り当てられた物理アドレスに対応する異なるアドレス範囲７０８（例えば、ある範囲の仮想アドレス）が、第２の組のエントリ７０４にマッピングされる。したがって、メモリ制御論理５２４が、特定のターゲットアドレスを含む命令（例えば、読み出し要求又は書き込み要求）を受信する場合、メモリ制御論理５２４は、そのターゲットアドレスが入るのがどのアドレス範囲であるかを識別し、次に、メモリマップ６０４のマッピングに基づいて、どの組のエントリをそのメモリアクセスに使用すべきかを決定する。
【００５８】
所与の種類のメモリ装置のエントリは様々な形態をとり得る。例えば、図７に示されるように、エントリは、１）その種類のメモリ装置に関連付けられた１つ又は複数の装置、２）その種類のメモリ装置にアクセスする場合に使用すべきクロック速度、３）その種類のメモリ装置にアクセスする場合に使用すべきプロトコル、４）その種類のメモリ装置に対応するすべての仮想アドレスを対応するすべての物理アドレスにマッピングする物理アドレスマップ、並びに５）例えば、クロックを切り替える場合に利用すべき整定時間量及びその種類のメモリ装置にアクセスする場合にクロックに利用すべき位相調整等の装置タイミングパラメータを識別し得る。上記に鑑みて、いくつかの態様では、メモリマップ６０４が特定の種類のメモリ装置と、クロック速度、プロトコル等の様々な装置パラメータとのマッピングを提供することが分かり得る。
【００５９】
図１２においてより詳細に考察するように、いくつかの実施態様では、メモリ制御論理５２４は、特定の種類のメモリ装置にアクセスする場合、クロック速度情報を使用してクロック回路を構成し、所望のクロック信号を提供する。しかし、いくつかの実施態様では、メモリ制御論理５２４は単に、メモリマップからの特定のメモリ装置の識別情報に基づいて装置選択信号をアサートし得る。例えば、受信した命令がメモリ装置０をターゲットとするとの特定を受けて、メモリ制御論理（例えば、装置選択論理６０２）は単に、そのメモリ装置の装置選択信号をアサートし得る。次に、クロック回路６１８を、装置選択信号のアサートに基づいて適切なクロック速度でクロック信号を提供するように構成し得る。
【００６０】
上述したように、異なる種類のメモリ装置は異なるプロトコルを使用するように構成し得る。したがって、メモリ制御論理５２４は、メモリマップ６０４から得られる特定のプロトコル情報に基づいて、特定のメモリ装置を宛先としたコマンド（例えば、読み出し、書き込み等）をフォーマットし得る。図８Ａ及び図８Ｂは、異なる種類のメモリ装置が利用し得るプロトコルフォーマット（例えば、パケット構造）の２つの例を示す。図８Ａは、例えば、ＤＲＡＭの読み出し／書き込みコマンドに対応し得る。この場合、プロトコルは、命令コード（ＯＰ）、列アドレス（Ｃ）、及びバンクアドレス（ＢＡ）等の特定の情報がパケット内の特定の位置に現れることを指定する。図８Ｂは、例えば、フラッシュメモリのコマンドに対応し得る。この場合、プロトコルは、命令コード（ＯＰ）及びアドレス（Ａ）等の特定の情報がパケット内の特定の位置に現れることを指定する。図８Ａ及び図８Ｂは、異なるプロトコルが異なるパケットサイズ（例えば、４ビット長パケット及び３ビット長パケット）構造を指定し得ることを示す。図８Ａ及び図８Ｂでは、パケットの高さは時間中のビット数を表し（例えば、時間Ｔ（Ｎ）、Ｔ（Ｎ＋１）、Ｔ（Ｎ＋２）、及びＴ（Ｎ＋３））、その一方で、パケットの幅はパケットのビット幅（例えば、ビット０〜５）を表し、パケットの各ビット幅は、制御バスの別個のワイヤ（例えば、送信路０〜５及び／又はＩ／Ｏ路０〜５）に対応し得る。
【００６１】
加えて、図９Ａ及び図９Ｂは、異なるプロトコルが異なる制御シグナリングを使用し得ることを示す。例えば、図９Ａの命令コード（例えば、図８Ａの命令コード）は、３本のワイヤ（ビット０〜２）を介して送信し得る一方で、図９Ｂの命令コード（例えば、図８Ｂの命令コード）は、２本のワイヤ（ビット０〜１）を介して送信し得る。図９Ａ及び図９Ｂは、異なるプロトコルが、異なるコマンドの識別に同じ値を使用し得ることも示す。例えば、値０×２は、図９Ａでは読み出しに対応し、図９Ｂでは書き込みに対応する。
【００６２】
上記を念頭に置き、命令を処理するためにメモリ制御論理５２４により実行し得る例としての動作について、図１０を参照してこれより対処する。ここで、メモリ制御論理５２４が、入力された命令を上述したように適切な命令キューに配置すると仮定する。
【００６３】
ブロック１００２で表されるように、メモリ制御論理は、キューのうちの１つから次の命令を検索する。複数の命令が同時に保留中の場合、適切なアービトレーション技法をここで利用し得る。例えば、特定のメモリアクセス（例えば、特定のメモリ種類又はアドレスへの書き込み又はアクセス）を他よりも優先し得、所与のメモリ装置へのアクセスをキューに入れて、複数の連続アクセスを可能にし得る等である。
【００６４】
ブロック１００４で表されるように、メモリ制御論理は、命令により提供される仮想アドレスを使用して、適切なメモリ装置パラメータをメモリマップから得る。したがって、上述したように、メモリ制御論理は、ターゲットメモリ装置、クロック速度、クロック位相、整定時間、及び他の情報を識別し得る。
【００６５】
ブロック１００６で表されるように、メモリ制御論理は次に、メモリマップから検索されたパラメータに基づいて適切な１つ又は複数のメモリ装置をイネーブルし得る。例えば、適切な装置選択をこの時点でイネーブルし得、他の任意の前にイネーブルされた装置選択をディセーブルし得る。加えて、ブロック１００８で表されるように、いくつかの実施態様では、メモリ制御論理は、メモリマップから検索された情報に基づいてクロック速度及び位相情報を取得し得、この情報を使用して、要求されたアクセスに適切なクロックを提供し得る。
【００６６】
ブロック１０１０で表されるように、クロック速度が変更される場合、メモリ制御論理は、クロックが整定できるようにする定義された時間期間にわたって遅延し得る。ここで、メモリ制御論理は、メモリ装置の種類のメモリマップから得られる遅延（例えば、整定時間）情報に基づいて遅延量を決定し得る。
【００６７】
ブロック１０１２で表されるように、メモリ制御論理は、メモリマップから検索されるプロトコル情報に基づいて、メモリ装置に送信すべきコマンドをフォーマットする。例えば、メモリ制御論理は、図８Ａ〜図９Ｂに示されるように、使用に適切なパケット構造を決定し得る。
【００６８】
ブロック１０１４で表されるように、メモリ制御論理は、フォーマットされたコマンドをメモリ装置に送信する。図１１においてより詳細に後述するように、いくつかの実施態様では、これは、適切なメモリ装置に続けて送られるように、パケットをＦＩＦＯ６１４に送信することを含む。
【００６９】
ブロック１０１６で表されるように、次に、メモリ制御論理は、このコマンドの完了を待ってから、命令キューから次の命令を検索し得る。しかし、ここで、パイプライン処理又は他の技法を利用して、コントローラ性能を向上させ得ることを理解されたい。
【００７０】
図１１は、メモリコントローラのインタフェース回路及びクロック回路（例えば、１つ又は複数のクロック回路）に利用し得る例としての構成要素を示す。ここで、メモリコントローラ５０２は、第１の種類のメモリ装置１１０２と、第２の種類のメモリ装置１１０４とに接続されて示される。メモリ装置１１０２のアクセスは、あるクロック速度を有するクロック０に基づいて実行され、その一方で、メモリ装置１１０４のアクセスは、異なるクロック速度を有するクロック１に基づいて実行される。クロック信号は、メモリコントローラ５０２の内部で使用されるクロックと、メモリコントローラ５０２とメモリ装置１１０２及び１１０４との間の信号路に存在するクロックとの間に位相差があり得ることを示すために、クロック０及びクロック０’として、そしてクロック１及びクロック１’として示される。本明細書において考察するように、これらのクロックは、メモリコントローラ５０２、メモリ装置１１０２及び１１０４、又は他の何らかの構成要素で生成し得る。
【００７１】
図６のＦＩＦＯ６１４は、図１１では２つのＦＩＦＯとして表される。送信ＦＩＦＯ１１０６は、情報をメモリ装置１１０２及び１１０４に送信する場合に使用される。受信ＦＩＦＯ１１０８は、メモリ装置１１０２及び１１０４から情報を受信する場合に使用される。メモリクロック領域では、情報は、ＭＣＬＫにより駆動される１組のラッチ（便宜上、ラッチ１１０８で表される）の使用を通して、メモリ装置にクロックアウトされる。各ラッチ信号は、対応する送信器（便宜上、送信器１１１０で表される）により駆動され、適切なメモリバス信号路に提供される。逆に、メモリバス信号路上でメモリ装置により駆動される信号は、受信器（便宜上、受信器１１１２で表される）により受信され、次に、ＭＣＬＫにより駆動される１組のラッチ（便宜上、ラッチ１１１４で表される）を介してクロックインされる。
【００７２】
この例では、ＭＣＬＫのクロック速度は、マルチプレクサ１１１６の制御に使用される装置選択信号の現在値により決定される。例えば、選択元として２つのクロック信号しかない場合、装置選択信号は０又は１の値をとり得る。ここで、一方の値は、クロック回路１１１８により提供されるクロック０をＭＣＬＫとして提供させ、他方の値は、クロック回路１１１８により提供されるクロック１をＭＣＬＫとして提供させ得る。
【００７３】
メモリ装置１１０２は、インタフェース回路１１２０と、装置制御論理１１２２と、メモリアレイ１１２４とを含む。インタフェース回路１１２０は、例えば、受信器と、送信器と、信号を送受信するためのラッチとを含み得る。装置制御論理１１２２は、例えば、メモリコントローラ５０２からのコマンドを解釈し、メモリアレイ１１２４をアクティブ化し、データをメモリアレイ１１２４に送信し、メモリアレイ１２４からデータを検索する機能を含み得る。メモリ装置１１０４も、同様の名称のインタフェース回路１１２６と、装置制御論理１１２８と、メモリアレイ１１３０とを含む。しかし、これらの構成要素の機能は、メモリの種類がこの例では異なるため、いくつかの側面で異なる。
【００７４】
図１２は、クロック信号がメモリコントローラ５０２のクロック回路１２０２により生成されるメモリシステムの実施形態を示す。この例では、クロック回路１２０２は、指定された周波数で主クロック信号を生成する位相ロックループ（ＰＬＬ）回路１２０４を含む。クロック信号であるクロック０及びクロック１は、分周器１２０６及び１２０８のそれぞれの使用を通してこの主クロック信号から生成される。分周器１２０６及び１２０８により使用される除数は事前に定義することができ、より典型的には、レジスタ１２１０に記憶された対応する速度値（速度０及び速度１）により指定し得る。
【００７５】
したがって、この後者の場合、クロック０及びクロック１のクロック速度は、メモリ制御論理５２４が適切な値をレジスタ１２１０にプログラムすることにより指定し得る。上述したように、場合によっては、これらの値はメモリマップから得られる情報に基づき得る。場合によっては、これらの値は、システムに最初にメモリ装置が構成されるとき、又はメモリコントローラが初期化されるときに常に、ロードし得る（例えば、不揮発性メモリからロードされる値）。
【００７６】
図１２は、位相調整回路１２１２及び１２１４が、クロック信号であるクロック０及びクロック１の位相制御に使用される実施態様も示す。位相調整回路１２１２及び１２１４により付与される位相シフトは、事前に定義することができ、より典型的には、レジスタ１２１０に記憶された対応する位相値（位相０及び位相１）により指定し得る。
【００７７】
したがって、後者の場合、クロック０及びクロック１の位相調整は、メモリ制御論理５２４が適切な値をレジスタ１２１０にプログラムすることにより指定し得る。上述したように、場合によっては、これらの値はメモリマップから得られる情報に基づき得る。場合によっては、これらの値は、システムに最初にメモリ装置が構成されるとき、又はメモリコントローラが初期化されるときに常に、ロードし得る（例えば、不揮発性メモリからロードされる値）。
【００７８】
場合によっては、位相値は較正回路１２１６により決定し得る。例えば、較正回路は、既知のデータパターンをメモリ装置に送信させ、メモリ装置に返信させ得る。次に、異なる位相値がレジスタ１２１０にプログラムされる場合、返信データを収集し得る。次に、各位相の誤差率又は返信データに関連付けられた他の情報に基づいて、較正回路１２１６は最適な位相値を選択し得る。
【００７９】
図１２の例では、ＭＣＬＫが、装置選択信号に基づいてクロック０及びクロック１から選択される。次に、ＭＣＬＫは、上述したように、適切なインタフェース回路構成要素１２１８（例えば、ラッチ及びＦＩＦＯ）に提供される。
【００８０】
クロック信号であるクロック０及びクロック１は、対応するメモリ装置にも送信される。便宜上、メモリ装置１１０２のみが図１２に示される。ここで、クロック０はインタフェース回路１１２０により受信され（インタフェース回路１１２０は単にクロック信号の受信器を提供し得る）、インタフェース回路１１２０は、信号路１２２０を介して信号をメモリ装置１１０２のクロック回路１２２２にルーティングする。次に、クロック回路１２２２は、クロック０に基づいて、メモリ装置１１０２の構成要素（例えば、インタフェース回路１１２０内のラッチ）が使用する１つ又は複数のクロック信号を生成し得る。例えば、クロック回路１２２２は、位相遅延をクロックに付与する回路を組み込んでもよく、クロックをクリーンアップする回路（例えば、ＰＬＬ）を組み込んでもよく、又は他の種類の回路（例えば、クロックを受動的に渡す）を組み込んでもよい。
【００８１】
上述したように、場合によっては、２つ以上のクロックを所与の種類のメモリ装置に使用し得る。例えば、あるクロック速度をメモリ装置からの読み出しに使用し、別のクロック速度をメモリ装置への書き込みに使用し得る。
【００８２】
図１３は、３つ以上のクロック信号が２つのメモリ種類に提供されるクロック回路１３０２の例を示す。ここで、分周器１３０４は、クロック１３０６を第１のクロック速度で提供し、分周器１３０８は、クロック１３１０を第２のクロック速度で提供し、分周器１３１２は、クロック１３１４を第３のクロック速度で提供する。クロック１３０６は、例えば、第１のメモリ装置（例えば、装置０）から読み出す場合に使用し得る。クロック１３１０は、例えば、第１のメモリ装置（例えば、装置０）に書き込む場合に使用し得る。クロック１３１４は、例えば、第２のメモリ装置（例えば、装置１）から読み出すか、又は書き込む場合に使用し得る。
【００８３】
これらのクロックの選択に様々な技法を使用し得る。図１３の例では、読み出し／書き込み選択信号（例えば、メモリ制御論理により提供される）が、装置選択信号と併せて使用される。しかし、他の場合、他の種類の信号を利用し得る。例えば、特定の種類のアクセスポイントの特定のアクセス（例えば、読み出し又は書き込み）に特定のコードを提供する信号を使用し得る。
【００８４】
図１４は、クロック信号がメモリ装置により生成されるメモリシステムの実施形態を示す。例えば、メモリ装置１１０２のクロック回路１４０２は、指定された周波数でクロック信号を生成するＰＬＬ回路１４０４を含む。いくつかの態様では、このクロック信号は、メモリ装置１１０２の構成要素（例えば、インタフェース回路１１２０内のラッチ）により使用される１つ又は複数のクロック信号の生成に使用し得る。
【００８５】
クロック信号は、信号路１４０６及びインタフェース回路１１２０（単にクロック信号の送信器を提供し得る）を介してメモリコントローラ５０２にも送信される。したがって、クロック信号であるクロック０及び他の任意のクロック信号（例えば、クロック１）は、メモリコントローラ５０２の受信器により受信され、受信器はクロック信号をクロック回路１４０８にルーティングする。次に、クロック回路１４０８は、受信信号を処理して、メモリコントローラ５０２による使用にクロック（例えば、クロック０’及びクロック１’）を提供する。例えば、クロック回路１４０８は、位相遅延をクロックに付与する回路を組み込んでもよく、クロックをクリーンアップする回路（例えば、ＰＬＬ１４１０）を組み込んでもよく、又は他の種類の回路（例えば、クロックを受動的に渡す）を組み込んでもよい。
【００８６】
図１５は、クロック信号が、メモリコントローラ５０２及びメモリ装置から外部のクロック生成器１５０２により生成されるメモリシステムの実施形態を示す。このクロック信号は、メモリコントローラ５０２のクロック回路１５０４と、メモリ装置のクロック回路（例えば、メモリ装置１１０２のクロック回路１５０６）とに、データ転送動作に使用するために送信される。
【００８７】
クロック回路１５０４は、任意選択的に、受信クロック信号を処理し得る（例えば、クロックに位相遅延を付与するため、ＰＬＬ回路１５０８を使用してクロックをクリーンアップするため）。いずれの場合でも、受信クロック信号又は処理されたクロック信号のいずれかが分周器１５１０及び１５１２に提供され、異なるクロック（例えば、クロック０及びクロック１）を異なる種類のメモリ装置のアクセスに提供する。上述したように、クロック回路１５０４は、分周器１５１０及び１５１２を構成するレジスタ１５１４を利用し得る。
【００８８】
クロック回路１５０６は、任意選択的に、受信クロック信号を処理してもよい（例えば、クロックに位相遅延を付与し、ＰＬＬ回路１５１６を使用してクロックをクリーンアップし得る）。したがって、受信クロック信号又は処理されたクロック信号のいずれかが、分周が必要な場合には分周器１５１８に提供され、メモリ装置１１０２にアクセスするクロック（例えば、クロック０）を提供する。本明細書において考察するように、クロック回路１５０６は、分周器１５１８を構成するレジスタ（図１５に示されず）を利用してもよく、又は分周器１５１８は何らかの他の様式で構成してもよい（例えば、事前定義）。
【００８９】
いくつかの実施態様では、分周器を外部クロック生成器において利用し得る（例えば、メモリコントローラ及びメモリ装置で利用する代わりに）。図１６は、この種の実施態様の例を示す。ここでは、クロック生成器１６０２において生成されるクロックは、１つ又は複数の分周器１６０４に提供されて、複数のクロック信号（例えば、クロック０及びクロック１）が生成される。次に、これらのクロック信号はメモリコントローラ５０２と、メモリ装置１１０２及び１１０４とに提供され、上述したように使用される。例えば、メモリコントローラ５０２のクロック回路１６０６は、装置選択信号に基づいて、これらのクロック信号のうちの一方を、内部データ転送クロック動作に選択し得る。
【００９０】
いくつかの実施態様では、クロック信号は、埋め込みクロック・データ信号を介してメモリシステム内の構成要素間で渡し得る。図１７は、メモリコントローラ５０２が埋め込みクロック・データ信号をメモリ装置１１０２に送信する例を示し、その一方で、図１８は、メモリ装置１１０２が埋め込みクロック・データ信号をメモリコントローラ５０２に送信する例を示す。
【００９１】
図１７では、送信ＦＩＦＯ１１０６からのデータは埋め込みクロック回路１７０２に提供され、埋め込みクロック回路１７０２は、クロック（例えば、ＭＣＬＫ）をデータに埋め込み、埋め込みクロック・データ信号を提供する。次に、この信号はメモリ装置１１０２に送信され、メモリ装置１１０２において、クロック・データ復元回路１７０４がデータを抽出し、受信信号からクロックを復元する。次に、復元されたクロックはクロック回路１７０６に提供し得、クロック回路１７０６は、任意選択的に、復元されたクロックを処理し（例えば、位相調整又は信号のクリーンアップ）、復元されたクロックを使用してＩ／Ｏクロックを提供する。このＩ／Ｏクロックは、例えば、データをメモリコントローラ５０２に送信するために使用し得る。
【００９２】
図１８では、メモリ装置１１０２のメモリアレイから読み出されたデータは、埋め込みクロック回路１８０２に提供され、埋め込みクロック回路１８０２は、クロック（例えば、クロック回路１８０４により生成されたＩ／Ｏクロック）をデータに埋め込み、埋め込みクロック・データ信号を提供する。次に、この信号はメモリコントローラ５０２に送信され、メモリコントローラ５０２において、クロック・データ復元回路１８０６が、受信信号からデータを抽出し、クロックを復元する。次に、復元されたクロックはクロック回路１８０８に提供し得、クロック回路１８０８は、任意選択的に、復元されたクロックを処理し（例えば、位相調整又は信号のクリーンアップ）、復元されたクロックを使用してクロック（例えば、ＭＣＬＫ）を提供する。本明細書において考察するように、ＭＣＬＫは、例えば、データをメモリ装置１１０２に送信するために使用し得る。
【００９３】
上述したように、メモリ装置がクロック分周器を含む実施態様では、その分周器の除数はプログラム可能である。図１９は、そのような分周器をいかにプログラムし得るかの一例を示す。この場合、低速バスがメモリコントローラ５０２と、メモリ装置１１０２及び１１０４のクロック回路１９０２及び１９０４のそれぞれとの間に提供される。このようにして、除数情報又は他の適した情報を、分周器１９１０及び１９１２を制御する速度選択回路１９０６及び１９０８のそれぞれに提供し得る。いくつかの実施態様では、速度選択回路は、低速バスを介する通信を可能にする機能と、除数情報を記憶する機能（例えば、データレジスタ）とを備え得る。
【００９４】
この例では、分周器１９１０及び１９１２に入力を提供するクロックは、メモリコントローラ５０２により提供されるものとして示される。しかし、クロックが何らかの他のエンティティ（例えば、図１５のクロック生成器）で発生する場合もあることを理解されたい。
【００９５】
図２０〜図２２は、メモリ装置を時分割多重化バス上で選択的に動作できるようにするために利用し得る技法を示す。特に、図２０は、メモリ装置のイネーブルに装置選択信号を使用する実施形態を示し、図２１は、メモリ装置のコマンドに基づくイネーブルを使用する実施形態を示し、図２２は、時分割多重化クロック信号のイネーブル受信にクロック受信イネーブル信号を利用する実施形態を示す。
【００９６】
図２０では、状態機械２００２（例えば、装置制御論理１１２２の）が、制御バス上の入力コマンドを処理する。例えば、状態機械２００２は、制御バス上のコマンドを識別し、コマンドのフィールドを解釈するコマンドインタプリタ２００４を備え得る（例えば、図８Ａ〜図９Ｂに示されるように）。メモリ装置１１０２がそのメモリ装置に意図されたコマンドのみを解釈することを保証するために、メモリコントローラは、メモリコントローラがメモリ装置１１０２にアクセスしている場合のみメモリ装置１１０２をイネーブルする装置選択信号を提供し得る。例えば、装置選択信号のアクティブ化を受けて、状態機械２００２は、受信（ＲＸ）イネーブル信号及び／又は送信（ＴＸ）イネーブル信号をメモリ装置１１０２の受信器２００６及び送信器２００８（例えば、インタフェース回路１１２０内に提供される）に提供し得る。逆に、装置選択信号の非アクティブ化を受けて、状態機械２００２は、受信（ＲＸ）イネーブル信号及び／又は送信（ＴＸ）イネーブル信号を非アクティブ化し得る。このようにして、メモリ装置１１０２がメモリアレイ１１２４に対して意図しない書き込みを実行せず、又はＴＤＭデータバス上に誤った時間（例えば、別の装置がＴＤＭデータバスを使用している時間）にデータを出力しないことを保証し得る。
【００９７】
図２１では、メモリ装置１１０２は、制御バス上の入力コマンドを処理する状態機械２１０２（例えば、コマンドインタプリタ２１０４を備える）も含む。しかし、この場合、制御バス上のコマンドは、特定のメモリ装置種類がＴＤＭデータバス上でイネーブルされるか否かを示し得る。例えば、図８Ａ及び図８Ｂに示されるように、コマンドは、データバス上での続く（例えば、次の）動作にイネーブルされるメモリ装置の種類を識別するチップ選択（ＣＳ）フィールドを有し得る。したがって、状態機械２１０２は、チップ選択情報を、メモリ装置１１０２に関連付けられた識別子と比較することにより、メモリ装置がイネーブルされるか否かを判断し得る。いくつかの実施態様では、この識別子は装置識別子（装置ＩＤ）２１０６の形態をとり得る。そのような識別情報は、例えば、ハードワイヤードであってもよく（例えば、メモリ装置の指定されたピンに与えられる電力信号及び／又は接地信号を介して）、プログラムしてもよく（例えば、装置識別子２１０６がレジスタを備える実施形態において）、又は他の何らかの様式で構成してもよい。
【００９８】
メモリ装置１１０２を、ＴＤＭデータバス上での来るデータ転送にイネーブルすべきであるとの決定を受けて、状態機械２１０２は、受信（ＲＸ）イネーブル信号及び／又は送信（ＴＸ）イネーブル信号をメモリ装置１１０２の受信器２１０８及び／又は送信器２１１０（例えば、インタフェース回路１１２０内に提供される）に提供し得る。したがって、指定されたアクセスの終了時、状態機械２１０２は、受信（ＲＸ）イネーブル信号及び／又は送信（ＴＸ）イネーブル信号を非アクティブ化し得る。このようにして、メモリ装置１１０２が、メモリアレイ１１２４に対して意図しない書き込みを実行せず、又はＴＤＭデータバス上に誤った時間（例えば、別の装置がＴＤＭデータバスを使用している時間）にデータを出力しないことを保証し得る。
【００９９】
図２１は、制御バスを本明細書において考察するように時分割多重化し得ることも示す。すなわち、１つのメモリ装置のコマンドが、ある時間期間中に制御バス上に現れ、別のメモリ装置のコマンドが、別の時間期間中に制御バス上に現れ得る。本明細書において考察されるように、いくつかの実施態様では、共通の時分割多重化制御・データバスを利用することもできる。これらの場合のいずれでも、図２０の装置選択イネーブル又は図２１のコマンドに基づくイネーブルを利用して、適切な時間にメモリ装置をイネーブルし得る。しかし、コマンドに基づくイネーブルの場合、メモリ装置が多重化バスに誤った時間にアクセスしないことを保証する対策が必要であり得る。例えば、すべてのメモリ装置が制御情報をリッスンする特定の時間を指定し得る。別の例として、特定の時間にバスをリッスンするように特定のメモリ装置をスケジュールし得る。
【０１００】
これより図２２を参照すると、いくつかの実施態様では、異なるクロック信号（例えば、クロック０及びクロック１）を共通（すなわち、同じ）信号路（例えば、単一のトレース又はトレース対）を介して時分割多重化し得る。そのような場合、メモリコントローラ５０２（例えば、メモリ制御論理５２４）は、クロック受信イネーブル信号を提供して、所与のメモリ装置が多重化クロック路上でいつクロック信号をリッスンし得るかを知れるようにし得る。クロック受信イネーブル信号がアクティブ化されると、メモリ装置１１０２上のクロック回路２２０２は、多重化クロック路に存在する信号に基づいてクロック（例えば、Ｉ／Ｏクロック）を提供し得る。本明細書において考察されるように、クロック回路２２０２は、受信クロック信号をある程度処理し得る（例えば、遅延を提供し、又は信号をクリーンアップするために）。
【０１０１】
図２２は、多重化クロック信号を提供するために利用し得る例としてのクロック回路２２０４（例えば、クロック生成器）も簡略的に説明する。この例では、クロック回路２２０４はスイッチ２２０６（例えば、マルチプレクサ）を含み、スイッチ２２０６は、複数の異なる周波数信号のうちの１つを選択することで、所与の速度でクロック信号を提供する。ここで、スイッチ２２０６は速度制御信号（例えば、上述したように、装置選択論理６０２により提供される装置選択信号又は他の適した信号）により制御し得る。したがって、どの種類のメモリが現在アクセス中であるかに基づいて速度制御信号を変更することにより、クロック回路２２０４を制御して、時分割多重化クロック信号を提供し得る。図１０において上述したように、クロック周波数を切り替えた後に遅延を生じさせて、クロック信号に適切な整定時間を提供し得る。図２２の例では、異なる周波数信号が分周器２２０８によりスイッチに提供され、分周器２２０８は、ＰＬＬ２２１０等のマスタクロック源からのクロック信号に基づいて異なる分周クロック信号を提供する。
【０１０２】
上述したように、メモリコントローラは、異なる種類のメモリ装置を宛先とした書き込みデータを共通クロック速度で提供し、それと同じクロック速度で受信データを処理し得る。そのような場合、メモリコントローラは、この処理を駆動するクロックを繰り返し変更する必要なく、同じ信号処理路を使用して、任意の種類のメモリ装置を宛先としたデータ又は任意の種類のメモリ装置から受信したデータを処理し得るため、メモリコントローラの構築及び動作を簡略化し得る。図２３〜図２６は、データがメモリ装置に書き込まれる速度又はデータがメモリ装置から読み出される速度とは異なる速度で、メモリコントローラがデータを処理する実施態様において、速度適合をいかに達成し得るかの例を説明する。便宜上、以下の考察では、共有バスを介してルーティングされるデータに対して実行し得る速度適合を説明した。制御情報に速度適合を提供するためにも、これらの技法を使用し得ることを理解されたい。
【０１０３】
図２３及び図２４は、複製データを書き込みデータに追加し、複製データを読み出しデータストリームから除去することにより、速度適合が提供される例を説明する。そのような方式は、高速クロックのクロック速度が低速クロックのクロック速度の整数倍である実施態様で有利に利用し得る。
【０１０４】
図２３では、メモリコントローラ（例えば、図５のメモリ制御論理５２４及びインタフェース回路５２６の構成要素）は、高速データ（Ａ０〜Ｃ０）及び低速データ（Ａ１〜Ｃ１）を同時に処理する。例えば、高速データは、２Ｘクロックに対応する速度でデータを受信するメモリ装置を宛先とし得る。逆に、低速データは、１Ｘクロックに対応する速度でデータを受信するメモリ装置を宛先とし得る。この例では、メモリコントローラは、２つの装置を宛先とした書き込みデータを２Ｘ速度で提供する。このようにして、メモリコントローラのこの段階は、データがメモリ装置に最終的に送信される速度に関係なく、同じようにデータを処理し得る。
【０１０５】
この場合、高速データを同じ速度で共有バスに出力し得る。すなわち、高速データの場合、速度適合処理はない。
【０１０６】
他方、低速データの場合、速度適合回路２３０２は、複製データを２Ｘクロック速度でデータストリーム中に挿入する。その結果、図２３の右上の枠内のデータ対（例えば、Ａ１、Ａ１）で表されるように、メモリコントローラは低速データを１Ｘクロック速度で出力する。換言すれば、いくつかの態様では、複製データは、第１のクロック速度で複数の連続したクロックサイクルにわたって繰り返されるデータを含み、第２のより低速のクロック速度でデータを提供する。
【０１０７】
図２４は、読み出しデータの場合の相補的な動作を説明する。ここで、メモリコントローラ（例えば、図５のインタフェース回路５２６の構成要素）は、高速データを２Ｘクロック速度で受信し、低速データを１Ｘクロック速度で受信する。この場合、メモリコントローラは、高速データ及び低速データの両方を２Ｘクロック速度でサンプリングする。したがって、メモリコントローラのこの段階は、データをメモリ装置から受信した速度に関係なく、データを同じように（例えば、同じ速度で）処理し得る。
【０１０８】
この場合、高速データを同じ速度で渡し得る（例えば、システムプロセッサに送信し得る）。すなわち、高速データの場合、速度適合処理はない。
【０１０９】
低速データの場合、２Ｘクロックでサンプリングされると、結果として生成されるデータストリームは、２Ｘクロック速度で複製データ（例えば、追加のＡ１サンプル）を含む。したがって、速度適合回路２４０２は、データストリーム内の複製データを破棄（例えば、無視）して、２Ｘ速度で元のデータを提供する。
【０１１０】
図２３及び図２４の速度適合回路は、様々な方法で実施し得る。例えば、速度適合回路２３０２は、データをある速度でバッファリングし、それと同じ速度で二重読み出しを実行して、複製データを提供するバッファ（例えば、メモリ制御論理５２４により制御されるＦＩＦＯ）を備え得る。逆に、速度適合回路２４０２は、ある速度でデータをバッファリングし、それと同じ速度で１つ置きのメモリ位置を読み出して、複製データを除去するバッファ（例えば、メモリ制御論理５２４により制御されるＦＩＦＯ）を備え得る。
【０１１１】
速度適合回路も同様に、様々な方法で制御し得る。例えば、場合によっては、すべてのデータは、速度適合回路を通ってルーティングし得るが、速度適合回路を選択的にイネーブルして、処理中のデータが速度適合を必要とする（例えば、データが低速データである）か否かを示す制御信号に基づいて速度適合を実行し得る。そのような制御信号は、例えば、ターゲットメモリ装置に基づいて（例えば、メモリアドレスに基づいて）低速データを識別し得る図６の装置選択論理６０２により生成し得る。
【０１１２】
図２５及び図２６は、タイミングバブルデータを書き込みデータストリームに挿入し、読み出しデータストリームからタイミングバブルを除去することにより、それぞれの速度適合が提供される例を説明する。そのような方式は、高速クロックのクロック速度が、低速クロックのクロック速度の整数倍であるか、又は整数倍ではない実施態様で利用し得る。図２３及び図２４の例と同様に、高速データはこの方式では速度適合を受けない。したがって、高速データについてはここで詳述しない。
【０１１３】
図２５では、メモリコントローラ（例えば、メモリ制御論理５２４及びインタフェース回路５２６の構成要素）は、低速データ（Ａ１〜Ｃ１）を高速クロック速度（例えば、１．３３Ｘ）で処理する。低速データの場合、パディング回路２５０２がタイミングバブルを高速クロック速度で追加する。このタイミングバブルは、ダミー（例えば、「無関係」又は無効）データ２５０４を含み得る。したがって、上のように、この段階において、メモリコントローラは、データが最終的にメモリ装置に送信される速度に関係なく、同じように（例えば、同じ速度）でデータを処理し得る。
【０１１４】
次に、速度適合回路２５０６は、タイミングバブルを含むデータのタイミングを再びとり、低速クロック速度（例えば、１Ｘ）でデータを提供する。したがって、メモリコントローラは、低速クロック速度で低速データを出力する。
【０１１５】
図２６は、読み出しデータの場合の相補的な動作を説明する。ここで、メモリコントローラ（例えば、インタフェース回路５２６の構成要素）は、低速クロック速度で低速データを受信する。次に、速度適合回路２６０２は、データのタイミングを再びとり（任意選択的に、ダミーデータ２６０４を有するタイミングバブルを挿入し）、高速クロック速度でデータを提供する。したがって、メモリコントローラの続く段階において、メモリコントローラは、データをメモリ装置から受信した速度に関係なく、同じようにデータを処理し得る。ここで、ダミーデータとは、タイミングバブル中に存在するデータ値を指す。したがって、ダミーデータは、ダミーデータを受信するエンティティにより使用されるべきではない（例えば、無視又は破棄される）データを含む。換言すれば、ダミーデータの値は、メモリシステムの動作に影響しないため、「無関係」であると見なし得る。
【０１１６】
ダミーデータ２６０４が受信データストリームに挿入される場合、パディング除去回路２６０６を利用して、ダミーデータ２６０４を除去し得る。したがって、タイミングバブル又はダミーデータのないデータストリームが、高速で提供される（そして、例えば、データを要求したシステムプロセッサに送信される）。
【０１１７】
図２５及び図２６の回路は、様々な方法で実施し得る。例えば、パディング回路２５０２は、データをある速度でバッファリングし、それと同じ速度でデータを読み出し、定義された間隔でダミーデータを読み出す（又は多重化する）バッファ（例えば、メモリ制御論理５２４により制御されるＦＩＦＯ）を備え得る。速度適合回路２５０６も、データをある速度（例えば、１．３３Ｘ）でバッファリングし、定義されたデータ位置を飛ばして、ダミーデータの読み出しを回避しながら、異なる速度（例えば、１Ｘ）でデータを読み出すバッファ（例えば、メモリ制御論理５２４により制御されるＦＩＦＯ）を備え得る。速度適合回路２６０２は、データをある速度（例えば、１Ｘ）でバッファリングし、任意選択的に、定義された間隔にあるダミーデータを読み出し（又は多重化し）ながら、異なる速度（１．３３Ｘ）でデータを読み出すバッファ（例えば、メモリ制御論理５２４により制御されるＦＩＦＯ）を備え得る。最後に、パディング除去回路２６０６は、データをある速度でバッファリングし、任意選択的に、定義されたデータ位置を飛ばして、ダミーデータの読み取りを回避しながら、それと同じ速度でデータを読み出すバッファ（例えば、メモリ制御論理５２４により制御されるＦＩＦＯ）を備え得る。
【０１１８】
図２５及び図２６の回路も同様に、様々な方法で制御し得る。例えば、場合によっては、すべてのデータを速度適合回路及びパディング又はパディング除去回路を通ってルーティングし得るが、これらの回路は選択的にイネーブルされて、図２３及び図２４と併せて上述したのと同様に、処理中のデータが速度適合を必要とするか否かを示す制御信号に基づいて速度適合を実行し得る。
【０１１９】
上述した方式以外の方式の使用を通して速度適合を実施してもよいことを理解されたい。例えば、データが並列バスで送信される場合、一構成要素が、バス信号路の一部分でデータを送信して、より低速でデータを提供し得る。
【０１２０】
本明細書において説明される速度制御動作は、異なる実施形態では、メモリコントローラの異なる機能ブロックで実施し得る。例えば、図２７は、メモリコントローラ２７００がメモリ制御論理ブロック２７０２と、物理インタフェース（ＰＨＹ）ブロック２７０４とを備え得ることを示す。上述したように、いくつかの実施態様では、ＰＨＹブロック２７０４は単に、チャネル駆動、ビット受信、直列化、及び非直列化等の動作を実行し得る。しかし、他の実施態様では、ＰＨＹブロック２７０４は速度適合動作を実行し得る。例えば、制御情報及びデータを所与の速度で、メモリ制御論理ブロック２７０２とＰＨＹブロック２７０４との間で転送し得る。データを所与のメモリ装置に送信又は所与のメモリ装置から受信すべき場合、メモリ制御論理ブロック２７０２は、速度制御信号をＰＨＹブロック２７０４に送信し得る。ＰＨＹブロックは次に、速度適合動作を実行して、適切な速度でデータを出力又は受信し得る。
【０１２１】
図２８は、例としての選択論理回路２８００（例えば、図６の装置選択論理６０２に対応する）を簡略化して示す。この例では、速度・プロトコルセレクタ２８０２が、メモリアクセスに関連付けられたアドレス（例えば、読み出し要求又は書き込み要求内にシステムプロセッサにより提供されるような）に基づいて、所与のメモリアクセスに使用すべき速度及びプロトコルを選択する。ここで、選択論理回路２８００はアドレスマップを含み、アドレスマップは、異なるアドレス範囲を異なる種類のメモリ装置にマッピングするとともに、それらの種類のメモリ装置にアクセスする場合（すなわち、それらの範囲内のアドレスにアクセスする場合）に使用すべきデータ速度及びプロトコルにマッピングする。
【０１２２】
上述したように、いくつかの実施態様では、異なるプロトコルの使用は、Ｉ／Ｏピン、ひいては制御信号及び／又はデータ信号の搬送に使用される対応する共有バス信号路の再マッピングを含み得る。したがって、メモリコントローラ（例えば、メモリ制御論理５２４及びインタフェース回路５２６の構成要素）は、マッピング制御回路２８０６を含み得、マッピング制御回路２８０６は、選択されたプロトコルに基づいて（例えば、どの種類のメモリ装置が現在アクセス中であるかに基づいて）、制御信号と信号路とのマッピング及び／又はデータ信号と信号路とのマッピングを構成する。例えば、メモリコントローラは、第１の種類のメモリ装置にアクセスする場合、所与の信号路を介してデータを送信し、第２の種類のメモリ装置にアクセスする場合、同じ信号路を介して制御情報を送信し得る。別の例として、メモリコントローラは、第１の種類のメモリ装置にアクセスする場合、所与の信号路を介して第１の種類の制御情報を送信し、第２の種類のメモリ装置にアクセスする場合、同じ信号路を介して第２の種類（であるが、第１の種類ではない）制御情報を送信し得る。
【０１２３】
マッピング制御回路２８０６は様々な形態をとり得る。場合によっては、マッピング制御回路２８０６は１つ又は複数のマルチプレクサ回路を含み得、各マルチプレクサ回路は、メモリコントローラの１組の内部信号路の１つを、メモリコントローラの所与のＩ／Ｏピンに選択的に結合する。場合によっては、このマッピングは、単に異なる情報（例えば、制御又はデータ）を特定の出力レジスタに書き込むか、又は受信した情報を別様に解釈する（例えば、制御又はデータとして解釈する）ことにより達成し得る。
【０１２４】
図２９は、信号をシステムバス（例えば、クロックバス５２０、制御バス５２２、及び共有信号バス５０８）とメモリ装置２９０４及び２９０６との間でルーティングするバッファ回路２９０２を含むメモリ装置２９００（例えば、メモリモジュール）の実施形態を示す。いくつかの態様では、バッファ回路は、メモリ装置コネクタインタフェース（図示せず）と集積回路メモリ装置とのインタフェースとして動作する集積回路を備え得る。様々な実施態様では、バッファ回路２９０２は、メモリ装置の信号の分離、記憶、ルーティング、又は変換のうちの１つ又は複数を実行するように構成し得る。
【０１２５】
図２９に示されるように、バッファ回路２９０２は、バスの多重化及び逆多重化を提供し得る。例えば、バッファ回路２９０２は、クロックバス５２０を逆多重化し、専用クロック信号（クロック０及びクロック１）を各メモリ装置２９０４及び２９０６に提供し得る。加えて、バッファ回路２９０２は、制御バス５２２を逆多重化し、専用制御信号（例えば、装置選択０及び装置選択１）を各メモリ装置２９０４及び２９０６に提供し得る。バッファ回路２９０２は、共有信号バス５０８も逆多重化し、専用バス（例えば、制御／データバス０及び制御／データバス１）を各メモリ装置２９０４及び２９０６に提供し得る。
【０１２６】
本明細書の教示は多種多様な形態で具現し得、そのうちのいくつかは、開示される実施形態の形態とはかなり異なって見え得る。したがって、本明細書に開示される具体的な構造及び機能の詳細は、単に代表的なものであり、本開示の範囲を限定しない。例えば、本明細書の教示に基づいて、本明細書に開示された様々な構造及び機能の詳細を、他の任意の構造又は機能の詳細から独立して、実施形態で組み込み得ることを当業者は理解するはずである。したがって、開示される任意の実施形態に記載される任意の数の構造又は機能の詳細を使用して、装置又は方法を実施し得る。開示される任意の実施形態に記載される構造又は機能の詳細に加えて、又はそのような詳細以外の他の構造又は機能の詳細を使用して、装置又は方法を実施してもよい。
【０１２７】
本明細書において教示されるコントローラ装置（例えば、コントローラ機能を組み込んだ集積回路）及びメモリ装置（例えば、メモリコアを組み込んだ集積回路）は、様々な形態をとり得る。例えば、コントローラ装置は、メモリコントローラチップ、コントローラ機能を含むプロセッサチップ、又は他の何らかの適した装置を含み得る。いくつかの態様では、メモリ装置は、１組の記憶セルを含む半導体集積回路素子を含み得、記憶セルは集合的にメモリアレイ又はメモリアレイの部分を提供し得る。
【０１２８】
本明細書の教示に従って利用し得る異なるメモリ種類（すなわち、メモリ技術）の例としては、限定せずに、揮発性メモリ装置、不揮発性メモリ装置、フラッシュメモリ、ダイナミックＲＡＭ（ＤＲＡＭ）、抵抗ＲＡＭ（ＲＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、相変化メモリ（ＰＣＭ）、及びスタティックＲＡＭ（ＳＲＡＭ）が挙げられる。これらのメモリ種類の様々な特徴は、本明細書において教示されるように、共有バスを介してこれらのメモリ種類を一緒に使用するのに役立つように構成し得る。例えば、いくつかの実施態様では、異なる種類のメモリは同一のプロトコル、シグナリングレベル、及びピン出力を使用し得る。しかし、他の実施形態では、これらの特徴の１つ又は複数は、異なるメモリ種類間で異なり得る。
【０１２９】
本明細書において教示されるメモリシステムは、様々な用途で使用し得る。例えば、そのようなメモリシステムは、ポータブル装置、携帯電話、コンピュータグラフィックスカード、ビデオゲームコンソール、プリンタ、パーソナルコンピュータ、サーバ、処理システム（例えば、ＣＰＵ素子）、又はデータ記憶を利用する他の何らかの装置内に組み込み得る。
【０１３０】
本明細書に記載された様々な構造及び機能を、様々な方法で、様々な装置を使用して実施し得ることも理解されたい。例えば、装置（例えば、デバイス）は、様々なハードウェア構成要素により実施し得、そのようなプロセッサ、コントローラ、状態機械、論理、又はこれらの構成要素の１つ若しくは複数の何らかの組み合わせ。いくつかの態様では、装置又は装置の任意の構成要素は、例えば、本明細書において教示されるような機能を提供するように装置又は構成要素を製造する（例えば、組み立てる）ことにより、そのような機能を提供するように装置又は構成要素をプログラムすることにより、或いは他の何らかの適した手段の使用を通して、そのような機能を提供するように構成し得る。
【０１３１】
いくつかの実施形態では、命令（例えば、ソフトウェア、ファームウェア、ミドルウェア等）を含むコードは、１つ又は複数の処理装置上で実行して、記載された機能又は構成要素の１つ又は複数を実施し得る。コード及び関連する構成要素（例えば、データ構造及びコードによる構成要素又はコードを実行する構成要素）は、処理装置により可読な適切なデータメモリ（例えば、一般にコンピュータ可読媒体と呼ばれる）に記憶し得る。いくつかの実施形態では、本明細書の教示により構築される装置は、機械可読媒体に記憶された回路記述を備え得る。そのような回路記述は、例えば、本明細書において教示されるような１つ又は複数の機能又は構成要素を実施し得る。
【０１３２】
本明細書に開示されるプロセス内のブロックの記載順序は、単に適切な手法の例である。したがって、そのようなブロックに関連付けられた動作は、本開示の範囲内にありながら、再編成し得る。同様に、付随する方法クレームは、動作を例としての順序で提示し、必ずしも提示される特定の順序に限定されない。
【０１３３】
本明細書に記載の構成要素及び機能は、様々な方法で結び付け又は結合し得る。これが行われる様式は、部分的に、構成要素が他の構成要素から分離されているか否か、及びどのように分離されているかに依存し得る。いくつかの実施形態では、図面でリード線により表される接続又は結合のいくつかは、集積回路内にあってもよく、回路基板上にあってもよく、離散ワイヤとして実施されてもよく、又は他の何らかの方法であってもよい。
【０１３４】
本明細書において考察される信号は様々な形態をとり得る。例えば、いくつかの実施形態では、信号は、ワイヤを介して伝送される電気信号、光ファイバ若しくは空気等の光学媒体を通って伝送される光パルス、又は空気等の媒質を通って伝送されるＲＦ波等を含み得る。加えて、本明細書では、複数の信号をまとめて信号と呼び得る。上記信号は、データの形態をとることもできる。例えば、いくつかの実施形態では、アプリケーションプログラムは信号を別のアプリケーションプログラムに送信し得る。そのような信号は、データメモリに記憶し得る。
【０１３５】
本明細書での「第１の」、「第２の」等の表記を使用した要素のいかなる言及も、一般にこれらの要素の数量又は順序を限定しないことも理解されたい。むしろ、これらの表記は、本明細書において、２つ以上の要素又は要素のインスタンスを区別する都合のよい方法として使用し得る。したがって、第１及び第２の要素という言及は、２つのみの要素を利用し得ることを意味せず、又は第１の要素が何らかの様式で第２の要素に先行しなければならないことを意味しない。また、別記される場合を除き、１組の要素は１つ又は複数の要素を含み得る。
【０１３６】
特定の例としての実施形態について、詳細に上述し、添付図面に示したが、そのような実施形態が本明細書の教示の単なる例示であり、本明細書の教示を限定しないことを理解されたい。特に、本明細書の教示を多種多様な装置及び方法に適用可能なことを認識されたい。したがって、広義の本発明の範囲から逸脱せずに、示された実施形態及び本明細書に教示される補間お実施形態に様々な変更を行い得ることが認識される。上記に鑑みて、本明細書の教示が開示された特定の実施形態又は構成に限定されず、むしろ、添付の特許請求の範囲内にあるあらゆる変更、適合、又は修正の包含を意図されることが理解される。
【図１】
0005570619.tif 000002
【図２】
0005570619.tif 000003
【図３】
0005570619.tif 000004
【図４】
0005570619.tif 000005
【図５】
0005570619.tif 000006
【図６】
0005570619.tif 000007
【図７】
0005570619.tif 000008
【図８Ａ】
0005570619.tif 000009
【図８Ｂ】
0005570619.tif 000010
【図９Ａ】
0005570619.tif 000011
【図９Ｂ】
0005570619.tif 000012
【図１０】
0005570619.tif 000013
【図１１】
0005570619.tif 000014
【図１２】
0005570619.tif 000015
【図１３】
0005570619.tif 000016
【図１４】
0005570619.tif 000017
【図１５】
0005570619.tif 000018
【図１６】
0005570619.tif 000019
【図１７】
0005570619.tif 000020
【図１８】
0005570619.tif 000021
【図１９】
0005570619.tif 000022
【図２０】
0005570619.tif 000023
【図２１】
0005570619.tif 000024
【図２２】
0005570619.tif 000025
【図２３】
0005570619.tif 000026
【図２４】
0005570619.tif 000027
【図２５】
0005570619.tif 000028
【図２６】
0005570619.tif 000029
【図２７】
0005570619.tif 000030
【図２８】
0005570619.tif 000031
【図２９】
0005570619.tif 000032