(57)【特許請求の範囲】
【請求項１】
内部クロック信号を外部のメモリに供給し、前記メモリとデータ転送を行うメモリコントローラであって、
前記メモリから読み出されたリードデータを、前記メモリに入力される前記内部クロック信号を帰還した帰還クロック信号に同期して格納するレジスタ群と、
前記レジスタ群に前記リードデータを取り込む際に、前記リードデータの格納位置を、前記帰還クロック信号に同期して指定するライトポインタと、
前記レジスタ群から前記リードデータを取り出す際に、前記リードデータの取出位置を、前記内部クロック信号に同期して指定するリードポインタと、
を含むＦＩＦＯメモリを備え、
前記メモリに供給する前記内部クロック信号の一部をマスクし、前記リードポインタに対する前記ライトポインタの動作タイミングを調整する
ことを特徴とするメモリコントローラ。
【請求項２】
前記メモリに供給する前記内部クロック信号のマスク期間中に、前記リードポインタ及び前記ライトポインタを起動する起動信号を出力する
ことを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記マスク期間及び前記起動信号の出力タイミングを設定するモード設定レジスタ
を備えることを特徴とする請求項２に記載のメモリコントローラ。
【請求項４】
前記内部クロック信号の整数倍の周波数を有する高速クロック信号を動作クロックとして、前記帰還クロック信号を観測する観測モジュールを備え、
前記メモリに供給する前記内部クロック信号のマスク部分の検出に応じて前記ライトポインタを起動する
ことを特徴とする請求項１に記載のメモリコントローラ。
【請求項５】
前記高速クロック信号は、前記内部クロック信号の４倍の周波数を有する４逓倍クロック信号である
ことを特徴とする請求項４に記載のメモリコントローラ。
【請求項６】
入力されたクロック信号に同期してデータを出力するメモリと、
内部クロック信号を前記メモリに供給し、前記メモリとデータ転送を行うメモリコントローラと、
を備える情報処理装置であって、
前記メモリコントローラは、
前記メモリから読み出されたリードデータを、前記メモリに入力される前記内部クロック信号を帰還した帰還クロック信号に同期して格納するレジスタ群と、
前記レジスタ群に前記リードデータを取り込む際に、前記リードデータの格納位置を、前記帰還クロック信号に同期して指定するライトポインタと、
前記レジスタ群から前記リードデータを取り出す際に、前記リードデータの取出位置を、前記内部クロック信号に同期して指定するリードポインタと、
を含むＦＩＦＯメモリを備え、
前記メモリに供給する前記内部クロック信号の一部をマスクし、前記リードポインタに対する前記ライトポインタの動作タイミングを調整する
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、チップ外部のメモリとデータ転送を行うメモリコントローラ、及び情報処理装置に関する。
【背景技術】
【０００２】
入力されたクロック信号に同期してデータを出力するＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等の外部メモリとデータ転送を行うメモリコントローラがある。メモリコントローラは、クロック信号をチップ外部のメモリに供給し、データを受け取る。このようなメモリコントローラに関して、メモリに入力されるクロック信号を引き戻したフィードバッククロック信号を利用してメモリからのデータを取り込む構成が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２９０６９８号公報
【０００４】
メモリコントローラでは、メモリから読み出されたリードデータは、内部ロジック回路での処理が可能なように、メモリコントローラ内部で使用する内部クロック信号に乗せ換えられる。ここで、リードデータの取り込みに使用されるフィードバッククロック信号は内部クロック信号に対して遅延を有するため、内部クロック信号とは非同期となる。そのため、ＦＩＦＯ（First In, First Out）メモリを用いてリードデータを一時的に保持することでフィードバッククロック信号から内部クロック信号へのデータ乗せ換えを実現することが従来行われている。
【０００５】
図１に一例を示す。メモリコントローラ１００は、チップ外部のメモリと内部ロジック回路との間でデータの入出力を制御する。不図示のクロック生成部で生成されてメモリコントローラ１００の内部で使用される内部クロック信号ＡＣＬＫは、メモリに供給されるとともに、フィードバッククロック信号ＦＢＣＬＫとしてメモリコントローラ１００に引き戻される。フィードバッククロック信号ＦＢＣＬＫは、チップ外部を経由するため、内部クロック信号ＡＣＬＫに対して遅延１１２を有する。カウンタスタート信号生成回路１０１は、内部クロック信号ＡＣＬＫに同期してカウンタスタート信号ＰＳＰを出力する。カウンタスタート信号ＰＳＰは、３段のレジスタ１０６に入力される。また、カウンタスタート信号ＰＳＰは、フィードバッククロック信号ＦＢＣＬＫと同様にチップ外部を経由して、フィードバックカウンタスタート信号ＦＢＰＳＰとしてメモリコントローラ１００に帰還される。そのため、カウンタスタート信号ＰＳＰに対するフィードバックカウンタスタート信号ＦＢＰＳＰの遅延１１１は、内部クロック信号ＡＣＬＫに対するフィードバッククロック信号ＦＢＣＬＫの遅延１１２と相関性を有する。
【０００６】
カウンタ回路１０７は、フィードバックカウンタスタート信号ＦＢＰＳＰによってイネーブルされ、フィードバッククロック信号ＦＢＣＬＫに同期してカウント動作するフリーランカウンタである。また、カウンタスタート信号ＰＳＰが入力される３段のレジスタ１０６は、例えば、内部クロック信号ＡＣＬＫに同期してデータをラッチする３つのフリップフロップである。カウンタ回路１０８は、３段のレジスタ１０６を介して入力されるカウンタスタート信号ＰＳＰによってイネーブルされ、内部クロック信号ＡＣＬＫに同期してカウント動作するフリーランカウンタである。
【０００７】
レジスタ群１０４は３つのフリップフロップＦＦ０、ＦＦ１、ＦＦ２を含み、メモリから読み出されたリードデータＭＲＤを、フィードバッククロック信号ＦＢＣＬＫに同期して格納する。レジスタ群１０４の前段のセレクタ１０３は、リードデータＭＲＤの格納位置を、カウンタ回路１０７のカウント値に応じて、レジスタ群１０４が有するフリップフロップＦＦ０、ＦＦ１、ＦＦ２の中から指定する。また、レジスタ群１０４の後段のセレクタ１０５は、レジスタ群１０４からリードデータＭＲＤを取り出す際に、リードデータＭＲＤの取出位置を、カウンタ回路１０８のカウント値に応じて、フリップフロップＦＦ０、ＦＦ１、ＦＦ２の中から指定する。すなわち、カウンタ回路１０７、セレクタ１０３、レジスタ群１０４、カウンタ回路１０８、セレクタ１０５を含む構成は、カウンタ回路１０７、セレクタ１０３をライトポインタ、カウンタ回路１０８、セレクタ１０５をリードポインタ、とするＦＩＦＯメモリとして機能する。
【０００８】
データ取込コントロール回路１０２は、内部クロック信号ＡＣＬＫを動作クロックとして、リードイネーブル信号ＲＤＥＮを出力する。レジスタ群１０４からセレクタ１０５を介して取り出されたリードデータＭＲＤは、リードイネーブル信号ＲＤＥＮとともにＡＮＤゲート１０９に入力される。フリップフロップ１１０は、内部クロック信号ＡＣＬＫに同期してＡＮＤゲート１０９の出力をラッチする。フリップフロップ１１０の出力は、リードデータ出力ＱＲＤとして内部ロジック回路で処理される。
【０００９】
上記の構成を有する従来例の動作を、図２を参照して説明する。図２は、内部クロック信号ＡＣＬＫの周期が７．４ｎｓ、内部クロック信号ＡＣＬＫに対するフィードバッククロック信号ＦＢＣＬＫの遅延１１２が約４．６ｎｓ程度である場合のタイミングチャートの一例である。図２において、ＲＰは、レジスタ群１０４が有するフリップフロップＦＦ０、ＦＦ１、ＦＦ２のうち、カウンタ回路１０８、セレクタ１０５によって指定されるフリップフロップの番号、すなわち、リードポインタの値である。同様に、ＷＰは、レジスタ群１０４が有するフリップフロップＦＦ０、ＦＦ１、ＦＦ２のうち、カウンタ回路１０７、セレクタ１０３によって指定されるフリップフロップの番号、すなわち、ライトポインタの値である。
【００１０】
カウンタスタート信号生成回路１０１からカウンタスタート信号ＰＳＰが出力されると、３段のレジスタ１０６を介してカウンタ回路１０８がイネーブルされる。これにより、カウンタスタート信号ＰＳＰを起点として一定サイクル（ここでは３サイクル）後にリードポインタの値ＲＰが変化し始める。また、前述のように、カウンタスタート信号ＰＳＰに対するフィードバックカウンタスタート信号ＦＢＰＳＰの遅延１１１は、内部クロック信号ＡＣＬＫに対するフィードバッククロック信号ＦＢＣＬＫの遅延１１２と相関性を有する。そのため、フィードバックカウンタスタート信号ＦＢＰＳＰは、フィードバッククロック信号ＦＢＣＬＫが内部クロック信号ＡＣＬＫから遅れるのと同様に、カウンタスタート信号ＰＳＰから遅れる。フィードバックカウンタスタート信号ＦＢＰＳＰがフィードバッククロック信号ＦＢＣＬＫの立上りでカウンタ回路１０７に取り込まれると、ライトポインタの値ＷＰが変化し始める。
【００１１】
内部ロジック回路から発行されるリードコマンド（ａ）に基づいて、メモリからリードデータＭＲＤとしてＤａ１、Ｄａ２、Ｄａ３、Ｄａ４が読み出されるとともに、所定タイミングでデータ取込コントロール回路１０２からリードイネーブル信号ＲＤＥＮが出力される。フィードバッククロック信号ＦＢＣＬＫに同期して、ライトポインタの値ＷＰに応じたレジスタ群１０４へのリードデータＭＲＤの取り込みが行われる。これにより、データＤａ１はフリップフロップＦＦ２に、データＤａ２はフリップフロップＦＦ０に、データＤａ３はフリップフロップＦＦ１に、データＤａ４はフリップフロップＦＦ２に、それぞれ格納される。
【００１２】
リードイネーブル信号ＲＤＥＮが出力されている間、リードポインタの値ＲＰに応じてレジスタ群１０４から取り出されたリードデータＭＲＤがフリップフロップ１１０によって内部クロック信号ＡＣＬＫに同期してラッチされる。これにより、データＤａ１、Ｄａ２、Ｄａ３、Ｄａ４が内部クロック信号ＡＣＬＫに同期したリードデータ出力ＱＲＤとなる。このようにして、リードコマンド（ａ）の発行から４サイクル後に内部クロック信号ＡＣＬＫへのリードデータＭＲＤの乗せ換えが開始され、以降も同様にして、動作が継続される。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ＦＩＦＯメモリを用いてフィードバッククロック信号ＦＢＣＬＫから内部クロック信号ＡＣＬＫへのデータ乗せ換えを行う場合、リードポインタに対するライトポインタの動作タイミングを確定させるためにチップ外部の遅延１１２の値をある程度把握できることが必要となる。これに対して、図１に示した従来例では、カウンタスタート信号ＰＳＰを、フィードバッククロック信号ＦＢＣＬＫと同様にチップ外部を経由させてフィードバックカウンタスタート信号ＦＢＰＳＰとして取り込む。これにより、遅延１１２と相関の取れた遅延１１１から遅延１１２の値を見積もり、リードポインタとライトポインタとの時間的関係を決定する。したがって、設計段階でチップ外部の遅延が把握できない場合にも開発を進められる利点がある。
【００１４】
しかしながら、図１の従来例では、カウンタスタート信号ＰＳＰを外部に出力するための端子やフィードバックカウンタスタート信号ＦＢＰＳＰを内部に帰還するための端子が必要となり、端子数が増加するという欠点がある。そのため、端子数に制限のあるチップにおいては、採用することができない場合がある。
【００１５】
本願は、端子を追加することなく確実にデータ転送を行うことが可能なメモリコントローラ、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本願に開示されているメモリコントローラは、内部クロック信号を外部のメモリに供給し、前記メモリとデータ転送を行うメモリコントローラであって、前記メモリから読み出されたリードデータを、前記メモリに入力される前記内部クロック信号を帰還した帰還クロック信号に同期して格納するレジスタ群と、前記レジスタ群に前記リードデータを取り込む際に、前記リードデータの格納位置を、前記帰還クロック信号に同期して指定するライトポインタと、前記レジスタ群から前記リードデータを取り出す際に、前記リードデータの取出位置を、前記内部クロック信号に同期して指定するリードポインタと、を含むＦＩＦＯメモリを備え、前記メモリに供給する前記内部クロック信号の一部をマスクし、前記リードポインタに対する前記ライトポインタの動作タイミングを調整する。
【発明の効果】
【００１７】
開示のメモリコントローラ、情報処理装置によれば、端子を追加することなく確実にデータ転送を行うことができる。
【図面の簡単な説明】
【００１８】
【図１】従来例を示す回路ブロック図である。
【図２】従来例の動作を示すタイミングチャートである。
【図３】第１実施形態の回路ブロック図である。
【図４】カウンタスタート信号＆マスク信号生成回路の具体例を示す回路ブロック図である。
【図５】制御ステートマシンの動作を示す状態遷移図である。
【図６】第１実施形態の動作を示すタイミングチャートである。
【図７】第２実施形態の回路ブロック図である。
【図８】カウンタスタート信号＆マスク信号生成回路の動作を示すタイミングチャートである。
【図９】外部クロック観測モジュールの動作を示す状態遷移図である。
【図１０】第２実施形態の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１９】
図３は、第１実施形態の回路ブロック図である。図３では、主としてメモリコントローラ２００Ａの読み出し制御に関連する部分が示され、見易さを考慮して一部が省略されている。不図示のクロック生成部で生成された内部クロック信号ＡＣＬＫは、メモリコントローラ２００Ａ内の各部に動作クロックとして供給される。コマンドバッファ２０１は、ロジック側からのコマンドを受け取るバッファであり、内部ロジック回路から制御信号を受信する。アドレスバッファ２０２は、ロジック側からのアドレスを受け取るバッファであり、内部ロジック回路からアドレスＡＤＤを受信する。メモリコントロールモジュール２０３は、コマンドバッファ２０１、アドレスバッファ２０２の情報に基づいてメモリ側へのコマンド情報を生成する。また、メモリコントロールモジュール２０３は、メモリコントローラ２００Ａの動作開始直後にスタート信号ＳＴＡＲＴを発行して転送用ＦＩＦＯ２０８の動作を開始し、リード動作時に原信号ＲＥ＿ＳＯＵＲＣＥを発行して転送用ＦＩＦＯ２０８からのデータ取り込み動作を行うよう制御する。メモリコマンド生成回路２０４は、メモリ制御信号、メモリアドレスＭＡＤＤを出力し、メモリコントロールモジュール２０３のコマンド情報をメモリに伝える。
【００２０】
モード設定レジスタ２０５は、モード設定情報ＭＯＤＥに基づいてカウンタスタート信号ＰＳＰ、リードイネーブル信号ＲＤＥＮ、マスク信号ＣＬＫＭＡＳＫの発行タイミングを設定するためのレジスタである。カウンタスタート信号＆マスク信号生成回路２０６は、メモリコントロールモジュール２０３から発行されるスタート信号ＳＴＡＲＴに応じて、カウンタスタート信号ＰＳＰ、マスク信号ＣＬＫＭＡＳＫを、モード設定レジスタ２０５の値を基に設定されるタイミングで発行する。データ取込コントロール回路２０７は、メモリコントロールモジュール２０３から発行される原信号ＲＥ＿ＳＯＵＲＣＥに対してモード設定レジスタ２０５の値に基づく遅延を付加し、リードイネーブル信号ＲＤＥＮを生成する。
【００２１】
転送用ＦＩＦＯ２０８において、カウンタスタート信号ＰＳＰは、カウンタ回路２１０のイネーブル端子に入力されるとともに、３段のレジスタ２０９を介してカウンタ回路２１２のイネーブル端子に入力される。３段のレジスタ２０９は、例えば、図１の従来例における３段のレジスタ１０６と同様に、内部クロック信号ＡＣＬＫに同期してデータをラッチする３つのフリップフロップである。カウンタ回路２１０は、カウンタスタート信号ＰＳＰによってイネーブルされ、フィードバッククロック信号ＦＢＣＬＫに同期してカウント動作するフリーランカウンタである。カウンタ回路２１２は、３段のレジスタ２０９を介して入力されるカウンタスタート信号ＰＳＰによってイネーブルされ、内部クロック信号ＡＣＬＫに同期してカウント動作するフリーランカウンタである。外部データ同期用レジスタ群２１１は、例えば、図１の従来例におけるレジスタ群１０４と同様に３つのフリップフロップを含み、メモリから読み出されたリードデータＭＲＤを、フィードバッククロック信号ＦＢＣＬＫに同期して格納する。
【００２２】
また、図３では図示が省略されているが、転送用ＦＩＦＯ２０８は、レジスタ群２１１の前段、後段にそれぞれセレクタを有する。前段のセレクタは、リードデータＭＲＤの格納位置を、カウンタ回路２１０のカウント値に応じて、レジスタ群２１１が有するフリップフロップの中から指定する。また、後段のセレクタは、レジスタ群２１１からリードデータＭＲＤを取り出す際に、リードデータＭＲＤの取出位置を、カウンタ回路２１２のカウント値に応じて、レジスタ群２１１が有するフリップフロップの中から指定する。すなわち、転送用ＦＩＦＯ２０８は、カウンタ回路２１０のカウント値をライトポインタの値、カウンタ回路２１２のカウント値をリードポインタの値、とするＦＩＦＯメモリとして機能する。
【００２３】
リードデータバッファ２１３は、リードイネーブル信号ＲＤＥＮによってイネーブルされ、転送用ＦＩＦＯ２０８から取得したリードデータＭＲＤを内部クロック信号ＡＣＬＫに同期させ、リードデータ出力ＲＤＡＴＡとして内部ロジック回路へ転送する。リードデータバッファ２１３は、例えば、図１の従来例におけるＡＮＤゲート１０９とフリップフロップ１１０とを含む構成により実現することができる。
【００２４】
メモリコントローラ２００Ａの内部で使用される内部クロック信号ＡＣＬＫは、ＡＮＤゲート２１４を介してメモリに供給されるとともに、フィードバッククロック信号ＦＢＣＬＫとしてメモリコントローラ２００Ａに引き戻される。フィードバッククロック信号ＦＢＣＬＫは、チップ外部を経由するため、内部クロック信号ＡＣＬＫに対して遅延２１５を有する。また、内部クロック信号ＡＣＬＫは、マスク信号ＣＬＫＭＡＳＫとともにＡＮＤゲート２１４に入力されるため、マスク信号ＣＬＫＭＡＳＫのＬレベル出力に応じてマスクされ、フィードバッククロック信号ＦＢＣＬＫとして帰還される。
【００２５】
図４は、カウンタスタート信号＆マスク信号生成回路２０６の具体例を示す回路ブロック図である。メモリコントロールモジュール２０３（図３参照）から発行されるスタート信号ＳＴＡＲＴは、一方の入力がＨレベルに固定されたＡＮＤゲート１１を介して、フリップフロップ１２に入力される。フリップフロップ１２は、ＡＮＤゲート１１を介して入力されるスタート信号ＳＴＡＲＴを内部クロック信号ＡＣＬＫに同期してラッチし、カウンタスタートイネーブル信号ＰＳＰ＿ＥＮを出力する。制御ステートマシン１３は、カウンタスタートイネーブル信号ＰＳＰ＿ＥＮ、モード設定レジスタ２０５（図３参照）の値ＤＬ、内部クロック信号ＡＣＬＫを入力として、カウンタスタート信号ＰＳＰ、マスクイネーブル信号ＣＬＫＭＳＫ＿ＥＮを出力する。ＡＮＤゲート１５は、マスクイネーブル信号ＣＬＫＭＳＫ＿ＥＮとインバータ１４で反転されたカウンタスタートイネーブル信号ＰＳＰ＿ＥＮとの論理積信号を、マスク信号ＣＬＫＭＡＳＫとして出力する。
【００２６】
図５は、制御ステートマシン１３の動作を示す状態遷移図であり、ハードウェア記述言語（Hardware Description Language）で記述された具体例である。ＲＥＳＥＴ状態において、モード設定レジスタ２０５の値ＤＬに１を加算した値が、所定値ＤＬ＿ＮＵＭとして与えられる。
【００２７】
ＳＴＡＮＤＢＹ状態において、３ビットのレジスタＭＡＳＫ＿ＣＮＴに“０００”が代入される。カウンタスタート信号ＰＳＰに対応する１ビットのレジスタに“０”が代入される。マスクイネーブル信号ＣＬＫＭＳＫ＿ＥＮに対応する１ビットのレジスタに“１”が代入される。そして、スタート信号ＳＴＡＲＴが発行され、カウンタスタートイネーブル信号ＰＳＰ＿ＥＮに対応する１ビットのレジスタの値が“１”になると、制御ステートマシン１３はＭＡＳＫ状態に遷移する。
【００２８】
ＭＡＳＫ状態において、３ビットのレジスタＭＡＳＫ＿ＣＮＴの値が１ビットずつ加算される。カウンタスタート信号ＰＳＰに対応する１ビットのレジスタに“０”が代入される。マスクイネーブル信号ＣＬＫＭＳＫ＿ＥＮに対応する１ビットのレジスタに“０”が代入される。１ビットずつ加算される３ビットのレジスタＭＡＳＫ＿ＣＮＴの値が所定値ＤＬ＿ＮＵＭになると、制御ステートマシン１３はＬＡＳＴＭＡＳＫ状態を経てＦＩＮＡＬ状態に遷移する。
【００２９】
ＬＡＳＴＭＡＳＫ状態において、３ビットのレジスタＭＡＳＫ＿ＣＮＴの値は保持される。カウンタスタート信号ＰＳＰに対応する１ビットのレジスタに“１”が代入される。マスクイネーブル信号ＣＬＫＭＳＫ＿ＥＮに対応する１ビットのレジスタに“０”が代入される。
【００３０】
ＦＩＮＡＬ状態において、３ビットのレジスタＭＡＳＫ＿ＣＮＴの値は保持される。カウンタスタート信号ＰＳＰに対応する１ビットのレジスタに“１”が代入される。マスクイネーブル信号ＣＬＫＭＳＫ＿ＥＮに対応する１ビットのレジスタに“１”が代入される。
【００３１】
上記の構成を有する第１実施形態の動作を、図６を参照して説明する。図６は、内部クロック信号ＡＣＬＫの周期が７．４ｎｓ、内部クロック信号ＡＣＬＫに対するフィードバッククロック信号ＦＢＣＬＫの遅延２１５が３．７ｎｓである場合のタイミングチャートの一例である。図６において、ＲＰ、ＷＰはそれぞれ図２と同様にリードポインタの値、ライトポインタの値を示す。
【００３２】
ＳＴＡＮＤＢＹ状態では、カウンタスタート信号ＰＳＰはＬレベルとなるため、転送用ＦＩＦＯ２０８は動作を待機する。また、マスク信号ＣＬＫＭＡＳＫはＨレベルとなるため、内部クロック信号ＡＣＬＫはマスクされることなくフィードバッククロック信号ＦＢＣＬＫとして帰還される。
【００３３】
メモリコントローラ２００Ａの動作開始直後にメモリコントロールモジュール２０３から発行されるスタート信号ＳＴＡＲＴが内部クロック信号ＡＣＬＫに同期してフリップフロップ１２（図４参照）に取り込まれると、カウンタスタートイネーブル信号ＰＳＰ＿ＥＮが出力される。制御ステートマシン１３は、カウンタスタートイネーブル信号ＰＳＰ＿ＥＮに対応する１ビットのレジスタの値が“１”になると、前述のように、ＭＡＳＫ状態に遷移する（図５参照）。
【００３４】
ＭＡＳＫ状態では、カウンタスタート信号ＰＳＰはＬレベルとなるため、転送用ＦＩＦＯ２０８は引き続き動作を待機する。また、マスク信号ＣＬＫＭＡＳＫはＬレベルとなるため、内部クロック信号ＡＣＬＫはマスクされてフィードバッククロック信号ＦＢＣＬＫとして帰還される。制御ステートマシン１３は、１ビットずつ加算される３ビットのレジスタＭＡＳＫ＿ＣＮＴの値が所定値ＤＬ＿ＮＵＭになると、前述のように、ＬＡＳＴＭＡＳＫ状態に遷移する（図５参照）。
【００３５】
ＬＡＳＴＭＡＳＫ状態では、カウンタスタート信号ＰＳＰはＨレベルとなるため、転送用ＦＩＦＯ２０８において、カウンタ回路２１０がイネーブルされ、カウンタ回路２１２も３段のレジスタ２０９を介してイネーブルされる。また、マスク信号ＣＬＫＭＡＳＫはＬレベルとなるため、内部クロック信号ＡＣＬＫはマスクされてフィードバッククロック信号ＦＢＣＬＫとして帰還される。そして、ＦＩＮＡＬ状態では、カウンタスタート信号ＰＳＰはＨレベルとなるため、転送用ＦＩＦＯ２０８は動作を継続する。また、マスク信号ＣＬＫＭＡＳＫはＨレベルとなるため、内部クロック信号ＡＣＬＫはマスクされることなくフィードバッククロック信号ＦＢＣＬＫとして帰還される。
【００３６】
したがって、カウンタ回路２１０のカウント値であるライトポインタの値ＷＰは、フィードバッククロック信号ＦＢＣＬＫとして帰還される内部クロック信号ＡＣＬＫのマスク期間が終了するのに応じて変化し始める。また、カウンタ回路２１２のカウント値であるリードポインタの値ＲＰは、カウンタスタート信号ＰＳＰがＨレベルとなってから一定サイクル（ここでは３サイクル）後に変化し始める。
【００３７】
このように、第１実施形態では、カウンタスタート信号＆マスク信号生成回路２０６は、メモリに供給する内部クロック信号ＡＣＬＫに十分に長いマスク期間を設け、そのマスク期間中にカウンタスタート信号ＰＳＰを発行する。これにより、内部クロック信号ＡＣＬＫとフィードバッククロック信号ＦＢＣＬＫとの非同期性を吸収し、転送用ＦＩＦＯ２０８においてリードポインタに対するライトポインタの動作タイミングを調整することができる。また、マスク期間とカウンタスタート信号ＰＳＰの発行タイミングとはモード設定レジスタ２０５の値によって変更可能であるため、内部クロック信号ＡＣＬＫに対するフィードバッククロック信号ＦＢＣＬＫの遅延２１５に応じた調整を行うことができる。
【００３８】
図７は、第２実施形態の回路ブロック図である。第２実施形態では、第１実施形態と対応する部分には同じ符号を付して説明を省略し、第１実施形態と異なる点を中心に説明する。メモリコントローラ２００Ｂは、外部クロック観測モジュール２１６を備える。外部クロック観測モジュール２１６は、内部クロック信号ＡＣＬＫの４倍の周波数を有する４逓倍クロック信号Ｘ４ＡＣＬＫを動作クロックとして、フィードバッククロック信号ＦＢＣＬＫを観測し、ライトポインタイネーブル信号ＷＰ＿ＥＮを出力する。カウンタ回路２１０は、ライトポインタイネーブル信号ＷＰ＿ＥＮによってイネーブルされる。
【００３９】
図８は、第２実施形態におけるカウンタスタート信号＆マスク信号生成回路２０６の動作を示すタイミングチャートの一例である。カウンタスタート信号＆マスク信号生成回路２０６の基本的な構成は、第１実施形態における構成と同様である。図８に示されるように、第２実施形態では、カウンタスタート信号＆マスク信号生成回路２０６は、内部クロック信号ＡＣＬＫのマスク期間を常に１サイクルとする。
【００４０】
図９は、外部クロック観測モジュール２１６の動作を示す状態遷移図であり、ハードウェア記述言語で記述された具体例である。前述のように、外部クロック観測モジュール２１６は、４逓倍クロック信号Ｘ４ＡＣＬＫを動作クロックとする。ＲＥＳＥＴ状態から復帰すると、外部クロック観測モジュール２１６は、４逓倍クロック信号Ｘ４ＡＣＬＫに同期してＦＢＣＨＥＣＫ１状態に移行する。そして、外部クロック観測モジュール２１６は、フィードバッククロック信号ＦＢＣＬＫに対応する１ビットのレジスタの値が“１”にならない限り、ＦＢＣＨＥＣＫ１→ＦＢＣＨＥＣＫ２→ＦＢＣＨＥＣＫ３→ＦＢＣＨＥＣＫ４と順に移行する。
【００４１】
ＦＢＣＨＥＣＫ４状態においてもフィードバッククロック信号ＦＢＣＬＫに対応する１ビットのレジスタの値が“１”にならない場合、外部クロック観測モジュール２１６は、ＷＰ＿ＥＮ＿ＡＣＴ状態に移行する。ＷＰ＿ＥＮ＿ＡＣＴ状態において、外部クロック観測モジュール２１６は、ライトポインタイネーブル信号ＷＰ＿ＥＮを出力する。このようにして、外部クロック観測モジュール２１６は、フィードバッククロック信号ＦＢＣＬＫが４逓倍クロック信号Ｘ４ＡＣＬＫの４サイクルの間Ｈレベルにならない場合に、ライトポインタイネーブル信号ＷＰ＿ＥＮを出力する。
【００４２】
上記の構成を有する第２実施形態の動作を、図１０を参照して説明する。カウンタスタート信号＆マスク信号生成回路２０６によって内部クロック信号ＡＣＬＫが１サイクル分マスクされると、マスク情報がフィードバッククロック信号ＦＢＣＬＫに伝わり、フィードバッククロック信号ＦＢＣＬＫが１サイクル分欠ける。フィードバッククロック信号ＦＢＣＬＫが４逓倍クロック信号Ｘ４ＡＣＬＫの４サイクルの間Ｈレベルにならないため、前述のように、外部クロック観測モジュール２１６は、ライトポインタイネーブル信号ＷＰ＿ＥＮを出力する。これにより、カウンタ回路２１０がイネーブルされ、フィードバッククロック信号ＦＢＣＬＫに同期してライトポインタの値ＷＰが変化し始める。
【００４３】
このように、第２実施形態では、カウンタスタート信号＆マスク信号生成回路２０６は、メモリに供給する内部クロック信号ＡＣＬＫを１サイクル分マスクする。そして、外部クロック観測モジュール２１６は、４逓倍クロック信号Ｘ４ＡＣＬＫを動作クロックとしてフィードバッククロック信号ＦＢＣＬＫを観測し、マスク情報を検出するとライトポインタイネーブル信号ＷＰ＿ＥＮを出力する。これにより、第２実施形態においても、内部クロック信号ＡＣＬＫとフィードバッククロック信号ＦＢＣＬＫとの非同期性を吸収し、転送用ＦＩＦＯ２０８においてリードポインタに対するライトポインタの動作タイミングを調整することができる。また、カウンタスタート信号ＰＳＰの発行タイミングはモード設定レジスタ２０５の値によって変更可能であるため、内部クロック信号ＡＣＬＫに対するフィードバッククロック信号ＦＢＣＬＫの遅延２１５に応じた調整を行うことができる。また、外部クロック観測モジュール２１６は、４逓倍クロック信号Ｘ４ＡＣＬＫを用いることで、確実にマスク情報を検出することができる。
【００４４】
以上、詳細に説明したように、前記第１、第２を含む実施形態によれば、メモリに供給する内部クロック信号ＡＣＬＫをマスクすることで、内部クロック信号ＡＣＬＫとフィードバッククロック信号ＦＢＣＬＫとの非同期性を吸収し、安定したデータの取り込みが可能になる。前記第１、第２を含む実施形態によれば、端子を追加することなく確実にデータ転送を行うことができる。
【００４５】
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内での種々の改良、変更が可能であることは言うまでもない。
【００４６】
例えば、第２実施形態では、外部クロック観測モジュール２１６が４逓倍クロック信号Ｘ４ＡＣＬＫを用いる場合を説明したが、これに限定されない。外部クロック観測モジュール２１６は、４逓倍もしくはそれ以上の高速クロック信号を用いてもよい。
【００４７】
また、前記実施形態において転送用ＦＩＦＯ２０８のレジスタ群２１１は例えば３つのフリップフロップを含むとしたが、これに限定されないことは言うまでもない。
【００４８】
また、上述したメモリコントローラとメモリとを備える情報処理装置としても本発明は実現可能である。
【００４９】
尚、内部クロック信号ＡＣＬＫ、フィードバッククロック信号ＦＢＣＬＫは、それぞれ内部クロック信号、帰還クロック信号の一例である。レジスタ群２１１は、レジスタ群の一例である。カウンタ回路２１０及びセレクタは、ライトポインタの一例である。カウンタ回路２１２及びセレクタは、リードポインタの一例である。転送用ＦＩＦＯ２０８は、ＦＩＦＯメモリの一例である。カウンタスタート信号ＰＳＰは、起動信号の一例である。４逓倍クロック信号Ｘ４ＡＣＬＫは、高速クロック信号の一例である。外部クロック観測モジュール２１６は、観測モジュールの一例である。
【符号の説明】
【００５０】
２００Ａ、２００Ｂ  メモリコントローラ
２０５  モード設定レジスタ
２０６  カウンタスタート信号＆マスク信号生成回路
２０７  データ取込コントロール回路
２０８  転送用ＦＩＦＯ
２１０、２１２  カウンタ回路
２１１  レジスタ群
２１３  リードデータバッファ
２１６  外部クロック観測モジュール
ＡＣＬＫ  内部クロック信号
ＦＢＣＬＫ  フィードバッククロック信号
ＭＲＤ  リードデータ
ＰＳＰ  カウンタスタート信号
Ｘ４ＡＣＬＫ  ４逓倍クロック信号
【図１】
0005418291.tif 000002
【図２】
0005418291.tif 000003
【図３】
0005418291.tif 000004
【図４】
0005418291.tif 000005
【図５】
0005418291.tif 000006
【図６】
0005418291.tif 000007
【図７】
0005418291.tif 000008
【図８】
0005418291.tif 000009
【図９】
0005418291.tif 000010
【図１０】
0005418291.tif 000011