(57)【要約】      （修正有）【課題】メタステーブル状態の伝播を低減できるメモリシステムを提供する。【解決手段】バスマスタ20-nはバス10を介してデータを送信し、バススレーブ31-nはバス10を介してデータを受信する。メモリ装置60は、バススレーブ31-nで受信されたデータが転送される。バスマスタ20-nは、第１クロックΦCLK1に同期してデータを送信し、メモリ装置60は、第２クロックΦCLK2に同期して動作する。第２クロックΦCLK2は、第１クロックΦCLK1より速く非同期である。バススレーブ31-nは、同期化手段と高速化手段とを有し、同期化手段はバスに接続され第３クロックΦCLK3に同期してデータを受信する。第３クロックΦCLK3は、第２クロックΦCLK2より遅く、第２クロックΦCLK2と同期している。高速化手段は、同期化手段で受信されたデータを第２クロックΦCLK2に同期してメモリ装置60へ転送する。【選択図】図１
2012205100.tif 000002
【特許請求の範囲】
【請求項１】
バスを介してデータを送信するバスマスタと、
前記バスを介してデータを受信するバススレーブと、
前記バススレーブで受信されたデータが転送されるメモリ装置と、
を備え、
前記バスマスタは、第１のクロックに同期してデータを送信し、
前記メモリ装置は、前記第１のクロックと非同期の関係にあるとともに前記第１のクロックより速い第２のクロックに同期して動作し、
前記バススレーブは、
前記バスに接続され、前記第２のクロックと同期の関係にあるとともに前記第２のクロックより遅い第３のクロックに同期してデータを受信する同期化手段と、
前記同期化手段で受信されたデータを前記第２のクロックに同期して前記メモリ装置へ転送することにより、前記第３のクロックに対応した速度から前記第２のクロックに対応した速度へデータの転送速度を高速化する高速化手段と、
を有する
ことを特徴とするメモリシステム。
【請求項２】
前記同期化手段は、
前記バスに接続され、前記第３のクロックに同期してデータを受信して保持する第１のフリップフロップと、
前記第３のクロックに同期して、前記第１のフリップフロップから出力されたデータを保持する第２のフリップフロップと、
を有し、
前記高速化手段は、
前記第２のクロックに同期して、前記第２のフリップフロップから出力されたデータを保持する第３のフリップフロップを有する
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記第３のクロックの周期は、前記第１のフリップフロップがメタステーブル状態となる期間より長い
ことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
バスを介してデータを送信するバスマスタと、
前記バスを介してデータを受信するバススレーブと、
前記バススレーブで受信されたデータが転送されるメモリ装置と、
を備え、
前記バスマスタは、第１のクロックに同期してデータを送信し、
前記メモリ装置は、前記第１のクロックと非同期の関係にあるとともに前記第１のクロックより速い第２のクロックに同期して動作し、
前記バススレーブは、前記第２のクロックに同期してデータを受信する同期化手段を有し、
前記同期化手段は、
前記第２のクロックにおける異なる複数の位相に同期してデータを受信して複数のデータとして保持する保持手段と、
前記保持手段により保持された複数のデータから安定した１つのデータを選択する選択手段と、
を有する
ことを特徴とするメモリシステム。
【請求項５】
前記保持手段は、
前記バスに接続され、前記第２のクロックに同期してデータを受信して保持する第４のフリップフロップと、
前記第２のクロックを論理的に反転した反転クロックを生成する反転手段と、
前記バスに接続され、前記反転クロックに同期してデータを受信して保持する第５のフリップフロップと、
を有する
ことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記選択手段は、
前記第４のフリップフロップの出力と前記第５のフリップフロップの出力との論理和を演算する第１の演算手段と、
前記第４のフリップフロップの出力と前記第５のフリップフロップの出力との論理積を演算する第２の演算手段と、
前記第４のフリップフロップ又は前記第５のフリップフロップで受信されるデータのレベルに応じて、前記第１の演算手段の演算結果及び前記第２の演算手段の演算結果の一方を選択する演算結果選択手段と、
を有する
ことを特徴とする請求項５に記載のメモリシステム。
【請求項７】
メモリ装置を制御するとともに、バスを介してバスマスタから送信されたデータを前記メモリ装置へ転送するメモリコントローラであって、
前記バスマスタは、第１のクロックに同期してデータを送信し、
前記メモリ装置は、前記第１のクロックと非同期の関係にあるとともに前記第１のクロックより速い第２のクロックに同期して動作し、
前記メモリコントローラは、
前記バスに接続され、前記第２のクロックと同期の関係にあるとともに前記第２のクロックより遅い第３のクロックに同期してデータを受信する同期化手段と、
前記同期化手段で受信されたデータを前記第２のクロックに同期して前記メモリ装置へ転送することにより、前記第３のクロックに対応した速度から前記第２のクロックに対応した速度へデータの転送速度を高速化する高速化手段と、
を備えたことを特徴とするメモリコントローラ。
【請求項８】
前記同期化手段は、
前記バスに接続され、前記第３のクロックに同期してデータを受信して保持する第１のフリップフロップと、
前記第３のクロックに同期して、前記第１のフリップフロップから出力されたデータを保持する第２のフリップフロップと、
を有し、
前記高速化手段は、
前記第２のクロックに同期して、前記第２のフリップフロップから出力されたデータを保持する第３のフリップフロップを有する
ことを特徴とする請求項７に記載のメモリコントローラ。
【請求項９】
前記第３のクロックの周期は、前記第１のフリップフロップがメタステーブル状態となる期間より長い
ことを特徴とする請求項８に記載のメモリコントローラ。
【請求項１０】
メモリ装置を制御するとともに、バスを介してバスマスタから送信されたデータを前記メモリ装置へ転送するメモリコントローラであって、
前記バスマスタは、第１のクロックに同期してデータを送信し、
前記メモリ装置は、前記第１のクロックと非同期の関係にあるとともに前記第１のクロックより速い第２のクロックに同期して動作し、
前記メモリコントローラは、前記第２のクロックに同期してデータを受信する同期化手段を有し、
前記同期化手段は、
前記第２のクロックにおける異なる複数の位相に同期してデータを受信して複数のデータとして保持する保持手段と、
前記保持手段により保持された複数のデータから安定した１つのデータを選択する選択手段と、
を有する
ことを特徴とするメモリコントローラ。
【請求項１１】
前記保持手段は、
前記バスに接続され、前記第２のクロックに同期してデータを受信して保持する第４のフリップフロップと、
前記第２のクロックを論理的に反転した反転クロックを生成する反転手段と、
前記バスに接続され、前記反転クロックに同期してデータを受信して保持する第５のフリップフロップと、
を有する
ことを特徴とする請求項１０に記載のメモリコントローラ。
【請求項１２】
前記選択手段は、
前記第４のフリップフロップの出力と前記第５のフリップフロップの出力との論理和を演算する第１の演算手段と、
前記第４のフリップフロップの出力と前記第５のフリップフロップの出力との論理積を演算する第２の演算手段と、
前記第４のフリップフロップ又は前記第５のフリップフロップで受信されるデータのレベルに応じて、前記第１の演算手段の演算結果及び前記第２の演算手段の演算結果の一方を選択する演算結果選択手段と、
を有する
ことを特徴とする請求項１１に記載のメモリコントローラ。
【請求項１３】
バスを介してバスマスタから送信されたデータを受信するとともに、受信したデータを所定の装置へ転送する同期化装置であって、
前記バスマスタは、第１のクロックに同期してデータを送信し、
前記所定の装置は、前記第１のクロックと非同期の関係にあるとともに前記第１のクロックより速い第２のクロックに同期して動作し、
前記同期化装置は、
前記バスに接続され、前記第２のクロックと同期の関係にあるとともに前記第２のクロックより遅い第３のクロックに同期してデータを受信する同期化手段と、
前記同期化手段で受信されたデータを前記第２のクロックに同期して前記所定の装置へ転送することにより、前記第３のクロックに対応した速度から前記第２のクロックに対応した速度へデータの転送速度を高速化する高速化手段と、
を有する
ことを特徴とする同期化装置。
【請求項１４】
前記同期化手段は、
前記バスに接続され、前記第３のクロックに同期してデータを受信して保持する第１のフリップフロップと、
前記第３のクロックに同期して、前記第１のフリップフロップから出力されたデータを保持する第２のフリップフロップと、
を有し、
前記高速化手段は、
前記第２のクロックに同期して、前記第２のフリップフロップから出力されたデータを保持する第３のフリップフロップを有する
ことを特徴とする請求項１３に記載の同期化装置。
【請求項１５】
前記第３のクロックの周期は、前記第１のフリップフロップがメタステーブル状態となる期間より長い
ことを特徴とする請求項１４に記載の同期化装置。
【請求項１６】
バスを介してバスマスタから送信されたデータを受信するとともに、受信したデータを所定の装置へ転送する同期化装置であって、
前記バスマスタは、第１のクロックに同期してデータを送信し、
前記所定の装置は、前記第１のクロックと非同期の関係にあるとともに前記第１のクロックより速い第２のクロックに同期して動作し、
前記同期化装置は、前記第２のクロックに同期してデータを受信する同期化手段を有し、
前記同期化手段は、
前記第２のクロックにおける異なる複数の位相に同期してデータを受信して複数のデータとして保持する保持手段と、
前記保持手段により保持された複数のデータから安定した１つのデータを選択する選択手段と、
を有する
ことを特徴とする同期化装置。
【請求項１７】
前記保持手段は、
前記バスに接続され、前記第２のクロックに同期してデータを受信して保持する第４のフリップフロップと、
前記第２のクロックを論理的に反転した反転クロックを生成する反転手段と、
前記バスに接続され、前記反転クロックに同期してデータを受信して保持する第５のフリップフロップと、
を有する
ことを特徴とする請求項１６に記載の同期化装置。
【請求項１８】
前記選択手段は、
前記第４のフリップフロップの出力と前記第５のフリップフロップの出力との論理和を演算する第１の演算手段と、
前記第４のフリップフロップの出力と前記第５のフリップフロップの出力との論理積を演算する第２の演算手段と、
前記第４のフリップフロップ又は前記第５のフリップフロップで受信されるデータのレベルに応じて、前記第１の演算手段の演算結果と前記第２の演算手段の演算結果とを選択する演算結果選択手段と、
を有する
ことを特徴とする請求項１７に記載の同期化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステム、メモリコントローラ、及び同期化装置に関する。
【背景技術】
【０００２】
非同期転送されたデータをあるクロックに同期化する一般的な手法として、そのクロックで駆動する２段以上のフリップフロップで構成された回路でデータを受けるという技術がある。通常、メタステーブル状態となる期間よりも長い周期のクロックで同期化するので、フリップフロップの段数は２段として実使用上問題は発生しない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−３００００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つの実施形態は、例えば、メタステーブル状態の伝播を低減できるメモリシステム、メモリコントローラ、及び同期化装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
１つの実施形態によれば、バスマスタとバススレーブとメモリ装置とを備えメモリシステムが提供される。バスマスタは、バスを介してデータを送信する。バススレーブは、バスを介してデータを受信する。メモリ装置は、バススレーブで受信されたデータが転送される。バスマスタは、第１のクロックに同期してデータを送信する。メモリ装置は、第２のクロックに同期して動作する。第２のクロックは、第１のクロックと非同期の関係にあるとともに、第１のクロックより速い。バススレーブは、同期化手段と高速化手段とを有する。同期化手段は、バスに接続され、第３のクロックに同期してデータを受信する。第３のクロックは、第２のクロックと同期の関係にあるとともに、第２のクロックより遅い。高速化手段は、同期化手段で受信されたデータを第２のクロックに同期してメモリ装置へ転送する。これにより、高速化手段は、第３のクロックに対応した速度から第２のクロックに対応した速度へデータの転送速度を高速化する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態にかかるメモリシステムの構成を示す図。
【図２】第１の実施形態におけるバススレーブＩ／Ｆの構成を示す図。
【図３】第１の実施形態におけるバススレーブＩ／Ｆの構成を示す図。
【図４】第１の実施形態におけるバススレーブＩ／Ｆの動作を示す図。
【図５】第２の実施形態にかかるメモリシステムの構成を示す図。
【図６】第２の実施形態におけるバススレーブＩ／Ｆの構成を示す図。
【図７】第２の実施形態におけるバススレーブＩ／Ｆの構成を示す図。
【図８】第２の実施形態におけるバススレーブＩ／Ｆの動作を示す図。
【図９】第２の実施形態におけるバススレーブＩ／Ｆの動作を示す図。
【図１０】第２の実施形態におけるバススレーブＩ／Ｆの動作を示す図。
【図１１】第２の実施形態におけるバススレーブＩ／Ｆの動作を示す図。
【図１２】比較例におけるバススレーブＩ／Ｆの構成を示す図。
【図１３】比較例におけるバススレーブＩ／Ｆの動作を示す図。
【発明を実施するための形態】
【０００７】
バスマスタがバス及びメモリコントローラを介して高速メモリに接続されたメモリシステムでは、高速メモリに接続されたメモリコントローラ内のメモリＩ／Ｆに対して、高速メモリに対応した高速な動作速度で（効率よく）動作することが求められている。このとき、メモリシステムにおいて、バスに接続されたメモリコントローラ内のバススレーブＩ／ＦもメモリＩ／Ｆと同じ動作速度で動作させると、そのバススレーブＩ／Ｆは、メタステーブル状態となる期間より短い周期のクロックでデータを受ける可能性がある。メタステーブル状態となる期間より短い周期のクロックでデータを受けると、メモリコントローラ内をメタステーブル状態の不安定なデータが次々に伝播され、メモリコントローラ内の素子の誤動作が発生する可能性がある。
【０００８】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００９】
（第１の実施形態）
第１の実施形態にかかるメモリシステム１について図１を用いて説明する。図１は、メモリシステム１の構成を示す図である。
【００１０】
メモリシステム１は、ホスト装置ＨＡに対する外部記憶媒体として機能するものであり、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）又はメモリカードである。ホスト装置ＨＡは、例えば、パーソナルコンピュータ又はＣＰＵコアを含む。
【００１１】
近年の低消費電力化指向により、メモリシステム１内部の消費電力は抑えなければならないが、同時に性能の向上も図らねばならず、高速メモリ装置６０を使わなければならない。メモリシステム１のシステムクロック周波数が低い場合であっても、高速メモリ装置６０に対応したブロック（例えば、高速メモリコントローラ５０）はより高い周波数で動作させなければならない。
【００１２】
そこで、メモリシステム１は、低速バス１０、複数のバスマスタ２０−１〜２０−ｎ、高速メモリ装置６０、高速バス４０、高速メモリコントローラ（バススレーブ）３０、及びクロック生成部７０を備える。なお、低速バス１０、複数のバスマスタ２０−１〜２０−ｎ、高速メモリコントローラ（バススレーブ）３０、及びクロック生成部７０は、システムコントローラ５０を構成している。
【００１３】
低速バス１０は、複数のバスマスタ２０−１〜２０−ｎと高速メモリコントローラ（バススレーブ）３０とを接続しており、複数のバスマスタ２０−１〜２０−ｎと高速メモリコントローラ３０との間の通信を媒介している。低速バス１０は、クロックφＣＬＫ１に対応した速度でデータをそれぞれ転送する複数のライン１１−１〜１１−４を有する。低速バス１０は、例えば、ＡＨＢ（Ａｄｖａｎｃｅｄ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｂｕｓ）規格に従ったバスであり、クロックφＣＬＫ１に対応した速度は、例えば、１００ＭＨｚである。すなわち、低速バス１０に供給されるバスクロックの周波数は、例えば、１００ＭＨｚである。
【００１４】
複数のバスマスタ２０−１〜２０−ｎは、低速バス１０に接続されている。各バスマスタ２０−１〜２０−ｎは、バススレーブとしての高速メモリコントローラ３０に対して、低速バス１０を介したデータ転送を能動的に行う主体として機能する。すなわち、各バスマスタ２０−１〜２０−ｎは、低速バス１０を介してデータを高速メモリコントローラ３０へ送信する。各バスマスタ２０−１〜２０−ｎは、クロックφＣＬＫ１に同期してデータを送信する。すなわち、各バスマスタ２０−１〜２０−ｎによるデータの送信速度は、例えば、１００ＭＨｚである。
【００１５】
バスマスタ２０−１は、例えば、ＳＡＴＡＩ／Ｆである。例えば、バスマスタ２０−１は、ホスト装置ＨＡから外部バス（ＳＡＴＡ）経由で受信した命令やデータなどに対応したデータ列を、低速バス１０、高速メモリコントローラ３０、及び高速バス４０経由で高速メモリ装置６０に送信する。
【００１６】
バスマスタ２０−２は、例えば、ＣＰＵである。すなわち、バスマスタ２０−２は、メモリシステム１の各構成要素を統括的に制御する。例えば、バスマスタ２０−２は、ホスト装置ＨＡからバスマスタ（ＳＡＴＡＩ／Ｆ）２０−１及び低速バス１０経由で命令を受けた場合に、受けた命令に従った所定のコマンドを生成して、そのコマンドを示すデータ列を低速バス１０、高速メモリコントローラ３０、及び高速バス４０経由で高速メモリ装置６０に送信する。
【００１７】
バスマスタ２０−ｎは、例えば、ＤＭＡコントローラである。すなわち、バスマスタ２０−ｎは、ＣＰＵを介さずにメモリ間のデータ転送を行う。例えば、バスマスタ２０−ｎは、他のメモリ装置（図示せず）から読み出したデータを、低速バス１０、高速メモリコントローラ３０、及び高速バス４０経由で高速メモリ装置６０に送信する。
【００１８】
なお、各バスマスタ２０−１〜２０−ｎは、ＮＡＮＤコントローラ、ＥＣＣモジュール、暗号化モジュールなどを含んでいても良い。ＮＡＮＤコントローラは、図示しないＮＡＮＤ型フラッシュメモリ（ＮＡＮＤメモリ）へのデータの書き込みやＮＡＮＤメモリからのデータの読み出しを制御する。ＥＣＣモジュールは、ＮＡＮＤメモリから読み出されたデータやＮＡＮＤメモリに書き込むべきデータに対してＥＣＣ処理（誤り訂正処理）を行う。
【００１９】
高速メモリ装置６０は、例えば、ホスト装置ＨＡとＮＡＮＤメモリとの間でのデータ転送用のキャッシュ領域として、並びに、バスマスタ（ＣＰＵ）２０−２が使用する作業領域として機能する。高速メモリ装置６０は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、又はＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＲＡＭなど（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含む。特に、高速メモリ装置６０は、例えば、ＤＤＲ３−ＳＤＲＡＭであってもよい。
【００２０】
高速メモリ装置６０は、例えば、ＤＤＲ３−ＳＤＲＡＭである場合、最低動作周波数が３３３ＭＨｚである。すなわち、高速メモリ装置６０に供給されるクロックφＣＬＫ２の周波数は、例えば、３３３ＭＨｚである。
【００２１】
ここで、クロックφＣＬＫ２は、上記のクロックφＣＬＫ１を逓倍したものでなくクロックφＣＬＫ１と非同期の関係にある。また、クロックφＣＬＫ２は、クロックφＣＬＫ１より速い。
【００２２】
ＮＡＮＤメモリ（図示せず）は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。ＮＡＮＤメモリでは、データの消去がブロック単位で行われるのに対して、データの書き込み及び読み出しがページ単位で行われる。ブロックは、複数のページをひとまとめにした単位である。また、ＮＡＮＤメモリでは、バスマスタ（ＣＰＵ）２０−２による内部的なデータ管理がクラスタ単位で行われ、データの更新がセクタ単位で行われる。この実施の形態では、ページは、複数のクラスタをひとまとめにした単位であるとし、クラスタは、複数のセクタをひとまとめにした単位であるとする。セクタは、ホスト装置ＨＡからのデータの最小アクセス単位であり、例えば、５１２Ｂのサイズを有する。ホスト装置ＨＡは、セクタ単位のＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）によってアクセスするデータを指定する。
【００２３】
高速バス４０は、高速メモリコントローラ３０と高速メモリ装置６０とを接続しており、高速メモリコントローラ３０と高速メモリ装置６０との間の通信を媒介している。高速バス４０は、クロックφＣＬＫ２に対応した速度でデータをそれぞれ転送する複数のラインを有する。高速バス４０は、例えば、ＡＨＢ（Ａｄｖａｎｃｅｄ  Ｈｉｇｈ−Ｐｅｒｆｏｒｍａｎｃｅ  Ｂｕｓ）規格に従ったバスであり、クロックφＣＬＫ２に対応した速度は、例えば、３３３ＭＨｚである。すなわち、高速バス４０に供給されるバスクロックの周波数は、例えば、３３３ＭＨｚである。
【００２４】
高速メモリコントローラ３０は、低速バス１０を介して複数のバスマスタ２０−１〜２０−ｎに接続されているとともに、高速バス４０を介して高速メモリ装置６０に接続されている。高速メモリコントローラ３０は、バススレーブとして、バスマスタ２０−１〜２０−ｎから送信されるデータを受動的に待ち、バスマスタ２０−１〜２０−ｎによるデータ転送のサービスを受ける。すなわち、高速メモリコントローラ３０は、クロックφＣＬＫ２及びクロックφＣＬＫ３を受け、それらのクロックを用いて、各バスマスタ２０−１〜２０−ｎからデータを受信して高速メモリ装置６０へ転送する。
【００２５】
ここで、クロックφＣＬＫ３は、クロックφＣＬＫ２を所定の整数分の１に分周したものになっておりクロックφＣＬＫ２と同期の関係にある（図４参照）。また、クロックφＣＬＫ３は、クロックφＣＬＫ２より遅い。なお、クロックφＣＬＫ３は、クロックφＣＬＫ１より遅くても良い。
【００２６】
クロック生成部７０は、クロックφＣＬＫ２及びクロックφＣＬＫ３を生成して高速メモリコントローラ３０へ供給する。また、クロック生成部７０は、クロックφＣＬＫ２を高速メモリ装置６０へ供給する。
【００２７】
クロック生成部７０では、例えば、外部から基準クロックを受けて、基準クロックをＫ１（整数）倍で逓倍してクロックφＣＬＫ２を生成するとともに、基準クロックをＫ２（整数、Ｋ２＞Ｋ１）倍で逓倍してクロックφＣＬＫ３を生成する。あるいは、例えば、外部からクロックφＣＬＫ２を受けて、クロックφＣＬＫ２を所定の整数倍で逓倍してクロックφＣＬＫ３を生成する。あるいは、例えば、外部からクロックφＣＬＫ３を受けて、クロックφＣＬＫ３を所定の整数分の１に分周してクロックφＣＬＫ２を生成する。
【００２８】
次に、高速メモリコントローラ３０内の構成について図１を用いて説明する。
【００２９】
高速メモリコントローラ３０は、複数のバススレーブインターフェース（複数の同期化装置）３１−１〜３１−ｎ、及びメモリインターフェース３２を有する。
【００３０】
複数のバススレーブインターフェース３１−１〜３１−ｎは、それぞれ、低速バス１０に接続されている。すなわち、各バススレーブインターフェース３１は、例えば、低速バス１０の各ライン１１に接続されたＩ／Ｆ回路をライン１１の本数分有している。
【００３１】
メモリインターフェース３２は、高速バス４０に接続されている。例えば、メモリインターフェース３２は、高速バス４０の各ラインに接続されたＩ／Ｆ回路をラインの本数分有している。
【００３２】
高速メモリコントローラ３０では、図１に示すように、各バススレーブインターフェース３１が高速のクロックφＣＬＫ２とそれより遅いクロックφＣＬＫ３との２つを用いて動作するのに対して、他の構成要素がクロックφＣＬＫ３を用いずに高速のクロックφＣＬＫ２を用いて動作する。例えば、メモリインターフェース３２は、高速のクロックφＣＬＫ２に同期して、各バススレーブインターフェース３１から所定の構成要素経由でデータを受ける。また、メモリインターフェース３２は、高速のクロックφＣＬＫ２に同期して、データを高速バス４０へ送信する。
【００３３】
次に、各バススレーブインターフェース３１内の構成について図２及び図３を用いて説明する。図２及び図３は、それぞれ、バススレーブインターフェース３１内における１つのライン１１に接続されたＩ／Ｆ回路の構成を例示的に示しているものである。なお、バススレーブインターフェース３１内における他のライン１１に接続されたＩ／Ｆ回路についても図２及び図３に示すものと同様である。
【００３４】
バススレーブインターフェース３１は、同期化部３３及び高速化部３４を有する。
【００３５】
同期化部３３は、図２に示すように、ライン１１を介してバスマスタ２０におけるバスマスタインターフェース２１に接続されている。バスマスタインターフェース２１は、クロックφＣＬＫ１に同期して、前段から受けたデータを保持するとともに、クロックφＣＬＫ１に同期して、保持しているデータをライン１１へ送信する。ライン１１も、クロックφＣＬＫ１に同期してデータを同期化部３３へ送信する。同期化部３３は、クロック生成部７０（図１参照）からクロックφＣＬＫ３を受ける。そして、同期化部３３は、クロックφＣＬＫ３に同期して、ライン１１上のデータを受信する。また、同期化部３３は、クロックφＣＬＫ３に同期して、データを高速化部３４へ転送する。クロックφＣＬＫ３は、高速のクロックφＣＬＫ２より遅いが、高速のクロックφＣＬＫ２に対して同期した関係にある。これにより、同期化部３３は、高速のクロックφＣＬＫ２に対して非同期の速度で転送されてきたデータの転送速度を、高速のクロックφＣＬＫ２に対して同期したものにする（同期化する）。
【００３６】
具体的には、同期化部３３は、図３に示すように、フリップフロップ（第１のフリップフロップ）３３１及びフリップフロップ（第２のフリップフロップ）３３２を有する。フリップフロップ３３１は、入力端子Ｄがライン１１（ラインＬＡ）に接続され、クロック端子ＣＫがクロック生成部７０（図１参照）に接続され、出力端子Ｑがフリップフロップ３３２に接続されている。フリップフロップ３３２は、入力端子Ｄがフリップフロップ３３１に接続され、クロック端子ＣＫがクロック生成部７０（図１参照）に接続され、出力端子Ｑが高速化部３４に接続されている。
【００３７】
なお、バスマスタインターフェース２１は、フリップフロップ２１１を有する。フリップフロップ２１１は、入力端子Ｄがバスマスタ２０における前段に接続され、クロック端子ＣＫが第２のクロック生成部（図示せず）に接続され、出力端子Ｑがライン１１に接続されている。
【００３８】
高速化部３４は、図２に示すように、同期化部３３に接続されている。高速化部３４は、同期化部３３により転送されたデータを、高速のクロックφＣＬＫ２に同期して保持するとともに、高速のクロックφＣＬＫ２に同期して、保持しているデータを後段へ転送する。すなわち、高速化部３４は、同期化部３３で受信されたデータを高速のクロックφＣＬＫ２に同期して高速メモリ装置６０側へ転送する。これにより、高速化部３４は、データの転送速度を、クロックφＣＬＫ３に対応した速度から高速のクロックφＣＬＫ２に対応した速度へ高速化する。
【００３９】
具体的には、高速化部３４は、図３に示すように、フリップフロップ（第３のフリップフロップ）３４１を有する。フリップフロップ３４１は、入力端子Ｄがフリップフロップ３３２に接続され、クロック端子ＣＫがクロック生成部７０（図１参照）に接続され、出力端子Ｑが後段に接続されている。
【００４０】
次に、各バススレーブインターフェース３１の動作について図４を用いて説明する。図４は、バススレーブインターフェース３１内における１つのライン１１に接続されたＩ／Ｆ回路の動作を例示的に示しているものである。なお、バススレーブインターフェース３１内における他のライン１１に接続されたＩ／Ｆ回路の動作についても図４に示すものと同様である。
【００４１】
以下では、バスマスタインターフェース２１とフリップフロップ３３１との間のライン１１をラインＬＡとし、フリップフロップ３３１とフリップフロップ３３２との間のラインをＬＢとし、フリップフロップ３３２とフリップフロップ３４１との間のラインをＬＣとし、フリップフロップ３４１と後段との間のラインをＬＤとする。
【００４２】
タイミングｔ１において、フリップフロップ３３１は、クロックφＣＬＫ３の立ち上がりに同期して、ラインＬＡ上のデータを保持する。このとき、データφＬＡの送信に用いられたクロックφＣＬＫ１と、フリップフロップ３３１の用いるクロックφＣＬＫ３とが、互いに非同期の関係にある。クロックφＣＬＫ１は、例えば、１００ＭＨｚの周波数を有する。クロックφＣＬＫ３は、例えば、１６６ＭＨｚの周波数を有し、クロックφＣＬＫ１を逓倍した関係にない。
【００４３】
そのため、ラインＬＡ上のデータφＬＡは、ＬレベルからＨレベルへ遷移するセットアップ時間の途中にある。すなわち、フリップフロップ３３１は、レベルの確定していないデータを保持するため、メタステーブル状態になり、その出力端子ＧからラインＬＢへ振動したレベルのデータφＬＢを出力する。
【００４４】
タイミングｔ２において、フリップフロップ３３１は、メタステーブル状態が治まり、安定したＨレベルのデータφＬＢをラインＬＢ上へ出力するようになる。
【００４５】
タイミングｔ３において、フリップフロップ３３２は、クロックφＣＬＫ３の立ち上がりに同期して、ラインＬＢ上のデータφＬＢを保持する。その直後、フリップフロップ３３２は、保持しているデータφＬＢと同じレベルであるＨレベルの信号φＬＣをラインＬＣへ出力する。
【００４６】
タイミングｔ４において、フリップフロップ３４１は、クロックφＣＬＫ２の立ち上がりに同期して、ラインＬＣ上のデータφＬＣを保持する。その直後、フリップフロップ３４１は、保持しているデータφＬＣと同じレベルであるＨレベルの信号φＬＤをラインＬＤへ出力する。これにより、データの転送速度が、クロックφＣＬＫ３に対応した速度から高速のクロックφＣＬＫ２に対応した速度へ高速化される。クロックφＣＬＫ２は、例えば、３３３ＭＨｚの周波数を有する。
【００４７】
図４に示すように、クロックφＣＬＫ３の周期は、フリップフロップ３３１がメタステーブル状態となる期間Ｔｍｓよりも十分に長い。すなわち、フリップフロップ３３１がメタステーブル状態となる期間Ｔｍｓは、フリップフロップ３３１の製造に用いられたプロセス値から計算により統計的に予測して決めておく。そして、クロックφＣＬＫ３の周期がその予測したメタステーブル状態となる期間Ｔｍｓより長くなるように、高速のクロックφＣＬＫ２を分周したものとしてクロックφＣＬＫ３を決定する。これにより、フリップフロップ３３１のメタステーブル状態がフリップフロップ３３２へ伝播することが防止されている。
【００４８】
ここで、仮に、図１２に示すように、各バススレーブインターフェース９３１の同期化部９３３において、３段のフリップフロップ９３３１〜９３３３がいずれも高速のクロックφＣＬＫ２に同期して動作する場合について考える。すなわち、複数の非同期関係にあるクロックを使用する半導体回路において、非同期間転送に伴うメタステーブル状態は避けることができない。すなわち、図１３に示すタイミングｔ９０１において、フリップフロップ９３３１は、ラインＬＡ上のレベルの確定していないデータφＬＡを保持するため、メタステーブル状態になり、その出力端子ＧからラインＬＢへ振動したレベルのデータφＬＢ９００を出力する。さらに、半導体回路の高速化に伴い、メタステーブル状態となる期間より短い周期のクロックで非同期信号を受ける場面も生じてきている。この場合の解決方法として、３段以上のフリップフロップで受けるという方法がある。これは、メタステーブル状態の発生確率が設計段階で求められるため、段数を増やすことでその確率を下げ、次段の回路へメタステーブル状態の伝播を防ぐことができる、という考えの下に成り立っている。
【００４９】
しかし、メタステーブル状態の期間Ｔｍｓよりも短い周期で同期化しているため、１段目のフリップフロップ９３３１からメタステーブル状態の不安定なデータφＬＢ９００が収まるタイミングｔ９０２より前のタイミングｔ９０３において、２段目のフリップフロップ９３３２がラインＬＢ９００上のデータを保持してしまう。これにより、２段目のフリップフロップ９３３２でも再びメタステーブル状態が発生し、そのメタステーブル状態がタイミングｔ９０４において３段目フリップフロップ９３３３へ伝播される。このように、高速メモリコントローラ３０内でメタステーブル状態の信号を次々に後段へ伝播させてしまう傾向にあり、高速メモリコントローラ内の素子の誤動作が発生する可能性がある。
【００５０】
それに対して、第１の実施形態では、各バススレーブインターフェース３１において、同期化部３３が、クロックφＣＬＫ２と同期の関係にあるとともにクロックφＣＬＫ２より遅いクロックφＣＬＫ３に同期してデータを受信するとともに、クロックφＣＬＫ３に同期してデータを高速化部３４へ転送する。そして、高速化部３４は、同期化部３３で受信されたデータを高速のクロックφＣＬＫ２に同期して高速メモリ装置６０へ転送することにより、クロックφＣＬＫ３に対応した速度からクロックφＣＬＫ２に対応した速度へデータの転送速度を高速化する。これにより、最終的なデータの転送速度をクロックφＣＬＫ２に対応した高速なものとしながら、非同期転送されたデータを受信して転送する際のクロックφＣＬＫ３の周期をメタステーブル状態の期間Ｔｍｓよりも十分に長いものとすることができる。この結果、高速メモリコントローラ３０内におけるメタステーブル状態の伝播を低減できるので、高速メモリコントローラ３０内の素子の誤動作も抑制できる。
【００５１】
また、第１の実施形態では、例えば高速メモリ装置６０の動作周波数が上がったとしても、高速化部３４の再設計で済みバススレーブインターフェース３１の全体を再設計する必要がないため、メモリシステム１の高性能化・高速化が容易である。また、再設計に伴う設計コスト及び製造コストの増大を抑制できる。
【００５２】
また、第１の実施形態では、同期化部３３が、低速バス１０に接続されクロックφＣＬＫ３に同期してデータを受信して保持するフリップフロップ３３１と、フリップフロップ３３１から出力されたデータをクロックφＣＬＫ３に同期して保持するフリップフロップ３３２とを有する。また、高速化部３４は、フリップフロップ３３２から出力されたデータを高速のクロックφＣＬＫ２に同期して保持するフリップフロップ３４１を有する。これにより、同期化部３３及び高速化部３４を簡易な構成で実現することができる。
【００５３】
また、第１の実施形態では、同期化部３３が同期化を行う際に用いるクロックφＣＬＫ３の周期は、フリップフロップ３３１がメタステーブル状態となる期間Ｔｍｓよりも十分に長い。すなわち、クロックφＣＬＫ３の周期が予め統計的な予測により決定されたメタステーブル状態となる期間Ｔｍｓより長くなるように、高速のクロックφＣＬＫ２を分周したものとしてクロックφＣＬＫ３を決定されている。これにより、フリップフロップ３３１のメタステーブル状態がフリップフロップ３３２へ伝播することを確実に低減できる。
【００５４】
なお、第１の実施形態では、メタステーブル状態となる期間より短い周期のクロックで非同期信号を受ける場面の具体的な例として、高速メモリ装置とそれを制御する高速メモリコントローラとを搭載したメモリシステムについて例示的に説明したが、第１の実施形態の考え方は他のシステムに適用されても良い。すなわち、バスマスタ２０−１〜２０−ｎからバススレーブへ非同期のデータ転送が行われるとともに、バススレーブが複数のバススレーブインターフェース３１−１〜３１−ｎを有するような他のシステムに適用されても良い。
【００５５】
（第２の実施形態）
次に、第２の実施形態にかかるメモリシステム１００について図５〜図７を用いて説明する。図５は、メモリシステム１００の構成を示す図である。図６及び図７は、それぞれ、バススレーブインターフェース１３１内における１つのライン１１に接続されたＩ／Ｆ回路の構成を例示的に示す図である。以下では、第１の実施形態と異なる点を中心に説明する。
【００５６】
メモリシステム１００は、高速メモリコントローラ（バススレーブ）１３０における各バススレーブインターフェース１３１−１〜１３１−ｎ内の構成が第１の実施形態と異なる。
【００５７】
すなわち、クロック生成部１７０は、クロックφＣＬＫ３を生成せずにクロックφＣＬＫ２を生成する。高速メモリコントローラ１３０は、クロックφＣＬＫ３（図１参照）を受けずにクロックφＣＬＫ２をクロック生成部１７０から受ける。
【００５８】
各バススレーブインターフェース１３１は、図６に示すように、高速化部３４（図２参照）を有さず、同期化部１３３を有する。同期化部１３３は、保持部１３３ａ及び選択部１３３ｂを有する。
【００５９】
保持部１３３ａは、クロックφＣＬＫ２における異なる複数の位相に同期してデータを受信して複数のデータとして保持する。例えば、保持部１３３ａは、クロックφＣＬＫ２の立ち上がりに同期してデータを受信して保持し、その後、クロックφＣＬＫ２の立ち下がりに同期してデータを受信して保持する。
【００６０】
具体的には、保持部１３３ａは、図７に示すように、フリップフロップ（第４のフリップフロップ）１３３ａ１、インバータ（反転手段）１３３ａ２、及びフリップフロップ（第５のフリップフロップ）１３３ａ３を有する。フリップフロップ１３３ａ１は、入力端子Ｄがライン１１（ラインＬＥ）に接続され、クロック端子ＣＫがクロック生成部１７０（図５参照）に接続され、出力端子Ｑが選択部１３３ｂに接続されている。インバータ１３３ａ２は、入力端子がクロック生成部１７０（図５参照）に接続され、出力端子がフリップフロップ１３３ａ３に接続されている。フリップフロップ１３３ａ３は、入力端子Ｄがライン１１（ラインＬＥ）に接続され、クロック端子ＣＫがインバータ１３３ａ２に接続され、出力端子Ｑが選択部１３３ｂに接続されている。
【００６１】
インバータ１３３ａ２は、クロックφＣＬＫ２を反転して反転クロックφ／ＣＬＫ２を生成し、反転クロックφ／ＣＬＫ２をフリップフロップ１３３ａ３へ供給する（以下、／は反転を意味する）。フリップフロップ１３３ａ３は、反転クロックφ／ＣＬＫ２の立ち上がりに同期してデータを受信して保持するので、クロックφＣＬＫ２の立ち下がりに同期してデータを受信して保持することと等価な動作を行う。
【００６２】
選択部１３３ｂは、保持部１３３ａにより保持された複数のデータから、安定した１つのデータを選択する。
【００６３】
具体的には、選択部１３３ｂは、ＯＲゲート（第１の演算手段）１３３ｂ１、ＡＮＤゲート（第２の演算手段）１３３ｂ２、及びセレクタ（演算結果選択手段）１３３ｂ３を有する。ＯＲゲート１３３ｂ１は、第１の入力端子がフリップフロップ１３３ａ１の出力端子に接続され、第２の入力端子がフリップフロップ１３３ａ３の出力端子に接続され、出力端子がセレクタ１３３ｂ３に接続されている。ＡＮＤゲート１３３ｂ２は、第１の入力端子がフリップフロップ１３３ａ１の出力端子に接続され、第２の入力端子がフリップフロップ１３３ａ３の出力端子に接続され、出力端子がセレクタ１３３ｂ３に接続されている。セレクタ１３３ｂ３は、「１」側の入力端子がＯＲゲート１３３ｂ１に接続され、「０」側の入力端子がＡＮＤゲート１３３ｂ２に接続され、制御端子がライン１１（ラインＬＥ）に接続されている。
【００６４】
セレクタ１３３ｂ３は、フリップフロップ１３３ａ１又はフリップフロップ１３３ａ３で受信されるデータのレベルに応じて、ＯＲゲート１３３ｂ１の演算結果及びＡＮＤゲート１３３ｂ２の演算結果の一方を選択する。セレクタ１３３ｂ３は、遷移後のデータのレベルがＨレベルである場合、安定した方のＨレベルのデータを選択する機能を有するＯＲゲート１３３ｂ１の演算結果を選択し、遷移後のデータのレベルがＬレベルである場合、安定した方のＬレベルのデータを選択する機能を有するＡＮＤゲート１３３ｂ２の演算結果を選択する。
【００６５】
また、各バススレーブインターフェース１３１の動作が、図８〜図１１に示すように、第１の実施形態と異なる。図８〜図１１は、各バススレーブインターフェース１３１の動作を示す波形図である。
【００６６】
以下では、バスマスタインターフェース２１とフリップフロップ１３３ａ１及びフリップフロップ１３３ａ３との間のライン１１をラインＬＥとし、フリップフロップ１３３ａ１とＯＲゲート１３３ｂ１及びＡＮＤゲート１３３ｂ２との間のラインをＬＦとし、フリップフロップ１３３ａ３とＯＲゲート１３３ｂ１及びＡＮＤゲート１３３ｂ２との間のラインをＬＧとし、セレクタ１３３ｂ３と後段との間のラインをＬＨとする。
【００６７】
図８に示すタイミングｔ１１において、フリップフロップ１３３ａ１は、クロックφＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定していないデータを保持するため、メタステーブル状態になり、その出力端子ＧからラインＬＦへ振動したレベルのデータφＬＦを出力する。
【００６８】
タイミングｔ１５において、フリップフロップ１３３ａ３は、反転クロックφ／ＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定したデータを保持するため、メタステーブル状態にならず、その出力端子ＧからラインＬＧへ安定したレベルのデータφＬＧを出力する。
【００６９】
その後、セレクタ１３３ｂ３は、受信されるデータφＬＥのレベルがＨレベルであることに応じて、ＯＲゲート１３３ｂ１の演算結果すなわちデータφＬＦとデータφＬＧとの論理和を選択する。
【００７０】
タイミングｔ１６において、セレクタ１３３ｂ３は、クロックφＣＬＫ２の立ち上がりに同期して、選択したデータを後段へデータφＬＨとして転送する。
【００７１】
図９に示すタイミングｔ２５において、フリップフロップ１３３ａ３は、反転クロックφ／ＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定していないデータを保持するため、メタステーブル状態になり、その出力端子ＧからラインＬＧへ振動したレベルのデータφＬＧを出力する。
【００７２】
タイミングｔ２１において、フリップフロップ１３３ａ１は、クロックφＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定したデータを保持するため、メタステーブル状態にならず、その出力端子ＧからラインＬＦへ安定したレベルのデータφＬＦを出力する。
【００７３】
その後、セレクタ１３３ｂ３は、受信されるデータφＬＥのレベルがＨレベルであることに応じて、ＯＲゲート１３３ｂ１の演算結果すなわちデータφＬＦとデータφＬＧとの論理和を選択する。
【００７４】
タイミングｔ２６において、セレクタ１３３ｂ３は、クロックφＣＬＫ２の立ち上がりに同期して、選択したデータを後段へデータφＬＨとして転送する。
【００７５】
図１０に示すタイミングｔ３１において、フリップフロップ１３３ａ１は、クロックφＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定していないデータを保持するため、メタステーブル状態になり、その出力端子ＧからラインＬＦへ振動したレベルのデータφＬＦを出力する。
【００７６】
タイミングｔ３５において、フリップフロップ１３３ａ３は、反転クロックφ／ＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定したデータを保持するため、メタステーブル状態にならず、その出力端子ＧからラインＬＧへ安定したレベルのデータφＬＧを出力する。
【００７７】
その後、セレクタ１３３ｂ３は、受信されるデータφＬＥのレベルがＬレベルであることに応じて、ＡＮＤゲート１３３ｂ２の演算結果すなわちデータφＬＦとデータφＬＧとの論理積を選択する。
【００７８】
タイミングｔ３６において、セレクタ１３３ｂ３は、クロックφＣＬＫ２の立ち上がりに同期して、選択したデータを後段へデータφＬＨとして転送する。
【００７９】
図１１に示すタイミングｔ４５において、フリップフロップ１３３ａ３は、反転クロックφ／ＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定していないデータを保持するため、メタステーブル状態になり、その出力端子ＧからラインＬＧへ振動したレベルのデータφＬＧを出力する。
【００８０】
タイミングｔ４１において、フリップフロップ１３３ａ１は、クロックφＣＬＫ２の立ち上がりに同期して、ラインＬＥ上のデータを保持する。このとき、フリップフロップ１３３ａ１は、レベルの確定したデータを保持するため、メタステーブル状態にならず、その出力端子ＧからラインＬＦへ安定したレベルのデータφＬＦを出力する。
【００８１】
その後、セレクタ１３３ｂ３は、受信されるデータφＬＥのレベルがＬレベルであることに応じて、ＡＮＤゲート１３３ｂ２の演算結果すなわちデータφＬＦとデータφＬＧとの論理積を選択する。
【００８２】
タイミングｔ４６において、セレクタ１３３ｂ３は、クロックφＣＬＫ２の立ち上がりに同期して、選択したデータを後段へデータφＬＨとして転送する。
【００８３】
以上のように、第２の実施形態では、保持部１３３ａが、クロックφＣＬＫ２における異なる複数の位相に同期してデータを受信して複数のデータとして保持する。これにより、クロックφＣＬＫ２における複数の位相のうち１つの位相に同期したタイミングにおいて、受信されるべきデータのレベルが確定していなくても、それとずれたタイミングである他の位相に同期したタイミングであれば、受信されるべきデータのレベルが確定している可能性が高い。すなわち、クロックφＣＬＫ２における複数の位相のうちのいずれかの位相に同期してレベルの確定されたデータを保持できる。そして、選択部１３３ｂは、保持部１３３ａにより保持された複数のデータのうち、安定した１つのデータを選択して後段へ転送する。これにより、フリップフロップ１３３ａ１又はフリップフロップ１３３ａ３のメタステーブル状態が後段へ伝播されないようにすることができる。この結果、高速メモリコントローラ１３０内におけるメタステーブル状態の伝播を低減できるので、高速メモリコントローラ１３０内の素子の誤動作も抑制できる。
【００８４】
また、第２の実施形態では、保持部１３３ａが、低速バス１０に接続されクロックφＣＬＫ２に同期してデータを受信して保持するフリップフロップ１３３ａ１と、クロックφＣＬＫ２を論理的に反転した反転クロックφ／ＣＬＫ２を生成するインバータ１３３ａ２と、低速バス１０に接続され反転クロックφ／ＣＬＫ２に同期してデータを受信して保持するフリップフロップ１３３ａ３とを有する。これにより、クロックφＣＬＫ２の立ち上がり及び立ち下がりに同期してデータを受信して保持する保持部１３３ａを、簡易な構成で実現できる。
【００８５】
また、クロックφＣＬＫ２及び反転クロックφ／ＣＬＫ２でデータを受けるので、仮にタイミングによって一方がメタステーブル状態となった場合、もう一方は位相が半周期ずれるため、安定した信号を次段へ渡すことができる。
【００８６】
また、第２の実施形態では、選択部１３３ｂが、フリップフロップ１３３ａ１の出力とフリップフロップ１３３ａ３の出力との論理和を演算するＯＲゲート１３３ｂ１と、フリップフロップ１３３ａ１の出力とフリップフロップ１３３ａ３の出力との論理積を演算するＡＮＤゲート１３３ｂ２と、フリップフロップ１３３ａ１又はフリップフロップ１３３ａ３で受信されるデータのレベルに応じて、ＯＲゲート１３３ｂ１の演算結果及びＡＮＤゲート１３３ｂ２の演算結果の一方を選択するセレクタ１３３ｂ３とを有する。これにより、保持部１３３ａにより保持された複数のデータのうち安定した１つのデータを選択して後段へ転送する選択部１３３ｂを、簡易な構成で実現できる。
【００８７】
なお、図７に示す構成は、ＯＲゲート１３３ｂ１とＡＮＤゲート１３３ｂ２とが入れ替えられ、かつ、ラインＬＥとセレクタ１３３ｂ３の制御端子との間にインバータが挿入された構成であってもよい。この場合も、上記の第２の実施形態と同様の動作を実現できる。
【００８８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８９】
１、１００  メモリシステム、１０  低速バス、１１−１〜１１−４、１１  ライン、２０−１〜２０−ｎ、２０  バスマスタ、２１  バスマスタインターフェース、３０、１３０  高速メモリコントローラ、３１−１〜３１−ｎ、３１、１３１−１〜１３１−ｎ、１３１、９３１  バススレーブインターフェース、３２  メモリインターフェース、３３、１３３  同期化部、３４  高速化部、４０  高速バス、６０  高速メモリ装置、７０、１７０  クロック生成部、２１１、３３１、３３２、３４１、１３３ａ１、１３３ａ３、９３３１〜９３３３  フリップフロップ、１３３ａ  保持部、１３３ａ２  インバータ、１３３ｂ  選択部、１３３ｂ１  ＯＲゲート、１３３ｂ２  ＡＮＤゲート、１３３ｂ３  セレクタ。
【図１】
2012205100.tif 000003
【図２】
2012205100.tif 000004
【図３】
2012205100.tif 000005
【図４】
2012205100.tif 000006
【図５】
2012205100.tif 000007
【図６】
2012205100.tif 000008
【図７】
2012205100.tif 000009
【図８】
2012205100.tif 000010
【図９】
2012205100.tif 000011
【図１０】
2012205100.tif 000012
【図１１】
2012205100.tif 000013
【図１２】
2012205100.tif 000014
【図１３】
2012205100.tif 000015