(57)【特許請求の範囲】
【請求項１】
同期型メモリのコントローラであって、
第１コマンドを前記同期型メモリに対して発行し、その後、第２コマンドの発行要求を取得する発行回路と、
前記発行回路を制御する制御回路と、を備え、
前記第１コマンドの発行タイミングと前記発行要求の取得タイミングとの間隔をＮサイクルとし（Ｎは自然数）、前記第１コマンドの発行タイミングと前記第２コマンドの発行タイミングとの間隔をＭサイクルとし（Ｍは自然数）、前記第２コマンドに関連付けられたデータに関連するデータストローブ信号のプリアンブルの長さをＪサイクル（Ｊは自然数）とするとき、前記制御回路は、Ｊが２以上の場合には、Ｎがバースト長であるＫ（Ｋは自然数）以下の場合はＭがＫとなるように、ＮがＫより大きくかつＬ（Ｌは（Ｋ＋Ｊ）以上の自然数）より小さい場合はＭがＬ以上となるように、前記発行回路を制御することを特徴とするコントローラ。
【請求項２】
前記制御回路は制御信号を生成し、前記発行回路は前記発行要求の取得タイミングの後の前記制御信号がアサートされるタイミングで前記第２コマンドを発行し、
前記制御回路は、
前記第１コマンドの発行タイミングの（Ｋ−１）サイクル後のタイミングまでは前記制御信号のアサートを禁止する第１禁止回路と、
前記第１コマンドの発行タイミングの（Ｋ＋１）サイクル後のタイミングから（Ｌ−１）サイクル後のタイミングまでは前記制御信号のアサートを禁止する第２禁止回路と、を含み、前記第１禁止回路と前記第２禁止回路と何れにも前記制御信号のアサートを禁止されないときに前記制御信号をアサートすることを特徴とする請求項１に記載のコントローラ。
【請求項３】
前記第１コマンドおよび前記第２コマンドはいずれも前記同期型メモリにデータを書き込むためのライトコマンドであることを特徴とする請求項１または２に記載のコントローラ。
【請求項４】
前記第１コマンドおよび前記第２コマンドはいずれも前記同期型メモリからデータを読み出すためのリードコマンドであることを特徴とする請求項１または２に記載のコントローラ。
【請求項５】
前記制御回路は、Ｊが２以上の場合にはＫより大きくかつＫ＋Ｊより小さいＮについてＭがＫ＋Ｊとなるように、Ｊが１の場合にはＫより大きいＮについてＭがＮとなるように、前記発行回路を制御することを特徴とする請求項３または４に記載のコントローラ。
【請求項６】
Ｋは、ＭがＫである場合に、前記第１コマンドの発行に応じてデータ線に現れるデータと前記第２コマンドの発行に応じて前記データ線に現れるデータとが連続するように設定されることを特徴とする請求項５に記載のコントローラ。
【請求項７】
前記プリアンブルの長さを保持する設定回路をさらに備え、
前記設定回路に保持される前記プリアンブルの長さは、前記制御回路によって参照されると共に、前記データストローブ信号が入力される他の回路によって参照されることを特徴とする請求項５または６に記載のコントローラ。
【請求項８】
前記同期型メモリはＳＤＲＡＭのメモリデバイスであることを特徴とする請求項１から７のいずれか１項に記載のコントローラ。
【請求項９】
前記同期型メモリはＤＤＲ４またはＬＰＤＤＲ４に準拠するよう構成されることを特徴とする請求項８に記載のコントローラ。
【請求項１０】
取得手段と制御手段とを備えるコントローラによる同期型メモリの制御方法であって、
前記取得手段が、第１コマンドを前記同期型メモリに対して発行し、その後、第２コマンドの発行要求を取得することと、
前記制御手段が、前記第１コマンドの発行タイミングと前記発行要求の取得タイミングとの間隔をＮサイクルとし（Ｎは自然数）、前記第１コマンドの発行タイミングと前記第２コマンドの発行タイミングとの間隔をＭサイクルとし（Ｍは自然数）、前記第２コマンドに関連付けられたデータに関連するデータストローブ信号のプリアンブルの長さをＪサイクル（Ｊは自然数）とするとき、Ｊが２以上の場合には、Ｎがバースト長であるＫ（Ｋは自然数）以下の場合はＭがＫとなるように、ＮがＫより大きくかつＬ（Ｌは（Ｋ＋Ｊ）以上の自然数）より小さい場合はＭがＬ以上となるように、前記第２コマンドの発行を制御することと、を含むことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラおよび制御方法に関する。
【背景技術】
【０００２】
近年、ＤＤＲ３等の従来のＤＲＡＭよりも高速なＤＤＲ４が提案されている。ＤＤＲ４では、８００ＭＨｚから１．６ＧＨｚの高速なクロックに同期した処理が行われる。特に高速な１．３ＧＨｚから１．６ＧＨｚの周波数帯においては、リードやライトに関わるプリアンブル期間を２サイクルにする機能がサポートされる。モードレジスタを適切に設定することにより、１サイクルおよび２サイクルのなかから所望のプリアンブル期間が選択される（非特許文献１参照）。
また、ＬＰＤＤＲ４では、プリアンブル期間として２サイクルのみサポートされる。（非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ＪＥＤＥＣ ＳＴＡＮＤＡＲＤ ＤＤＲ４ ＳＤＲＡＭ ＪＥＳＤ７９-４
【非特許文献２】ＪＥＤＥＣ ＳＴＡＮＤＡＲＤ ＬＰＤＤＲ４ ＳＤＲＡＭ ＪＥＳＤ２０９-４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
１つのメモリコントローラにおいて、ＤＤＲ４の１．３ＧＨｚ未満の周波数帯と１．３ＧＨｚ以上の周波数帯の両方をサポートしようとした場合、プリアンブル期間が１サイクルの場合と２サイクルの場合のどちらにも対応可能なコマンド発行タイミング制御が必要となる。
【０００５】
あるいはまた、１つのメモリコントローラにおいて、ＤＤＲ３とＬＰＤＤＲ４といったプリアンブル期間が異なるメモリをサポートしようとした場合にも、プリアンブル期間が１サイクルの場合と２サイクルの場合のどちらにも対応可能なコマンド発行タイミング制御が必要となる。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、プリアンブル期間が１サイクルであっても、複数サイクルであっても、コマンドの発行タイミングを適切に制御できる技術の提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様はコントローラに関する。このコントローラは、同期型メモリのコントローラであって、第１コマンドを同期型メモリに対して発行し、その後、第２コマンドの発行要求を取得する発行回路と、発行回路を制御する制御回路と、を備える。第１コマンドの発行タイミングと発行要求の取得タイミングとの間隔をＮサイクルとし（Ｎは自然数）、第１コマンドの発行タイミングと第２コマンドの発行タイミングとの間隔をＭサイクルとし（Ｍは自然数）、第２コマンドに関連付けられたデータに関連するデータストローブ信号のプリアンブルの長さをＪサイクル（Ｊは自然数）とするとき、制御回路は、Ｊが２以上の場合には、Ｎがバースト長であるＫ（Ｋは自然数）以下の場合はＭがＫとなるように、ＮがＫより大きくかつＬ（Ｌは（Ｋ＋Ｊ）以上の自然数）より小さい場合はＭがＬ以上となるように、発行回路を制御する。
【発明の効果】
【０００８】
本発明によれば、プリアンブル期間が１サイクルであっても、複数サイクルであっても、コマンドの発行タイミングを適切に制御できる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態に係るメモリコントローラを備える印刷装置のハードウェア構成を示す図。
【図２】図１のメモリコントローラの機能および構成を示すブロック図。
【図３】図２のタイミング設定回路に保持されるパラメータの例を示す図。
【図４】図２のタイミング制御回路の構成を示す回路図。
【図５】図１のメモリコントローラの動作波形を示すタイミングチャート。
【図６】図１のメモリコントローラの動作波形を示すタイミングチャート。
【図７】図１のメモリコントローラの動作波形を示すタイミングチャート。
【図８】図１のメモリコントローラにおける一連の処理を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下に、図面を参照しながら本発明の実施の形態について説明する。各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、重複した説明は省略する。
【００１１】
実施の形態に係るＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のメモリコントローラでは、連続して発行されるリード／ライトコマンドの発行タイミングについて、ＴＣＣＤ（ｍｉｎｉｍｕｍ  Ｃｏｌｕｍｎ  ｔｏ  Ｃｏｌｕｍｎ  ｃｏｍｍａｎｄ  Ｄｅｌａｙ）に加えてプリアンブルの長さに基づく制限を課す。特に、先行するリード／ライトコマンドの発行タイミングと次のリード／ライトコマンドの発行要求の取得タイミングとの間隔がＴＣＣＤより大きいが、プリアンブルのサイクル数に満たない場合、メモリコントローラは次のリード／ライトコマンドの発行タイミングを遅らせる。これにより、連続して発行されるリード／ライトコマンドの発行タイミング同士の間隔を必要に応じて広げて、それらのコマンドの間に複数サイクルのプリアンブルを収容できるようになる。その結果、プリアンブルの長さが２サイクル以上に設定される場合にも対応可能なメモリコントローラが提供される。
【００１２】
図１は、実施の形態に係るメモリコントローラ２０２を備える印刷装置１００のハードウェア構成を示す図である。印刷装置１００は例えば複写機や複合機である。なお、以下では実施の形態に係るメモリコントローラ２０２が印刷装置１００に搭載される場合について説明する。しかしながら、当該メモリコントローラ２０２はデジタルカメラ等の撮像装置やスマートフォン等の携帯端末などの電子機器一般に広く搭載されうることは、本明細書に触れた当業者には明らかである。
【００１３】
印刷装置１００は、ＣＰＵ１０１と、ネットワークＩ／Ｆ１０２と、ＳＤＲＡＭ１０３と、ＨＤＤ１０４と、エンジンＩ／Ｆ１０５と、ＲＯＭ１０６と、プリンタエンジン１０７と、システムバス１０８と、操作部１０９と、メモリコントローラ２０２と、を備える。
【００１４】
ＣＰＵ１０１は、システムバス１０８を介して印刷装置１００の各部を制御する。ＣＰＵ１０１は、例えば、ＨＤＤ１０４に格納されたプログラムを実行することにより印刷装置１００の機能（ソフトウェア構成）および処理を実現する。
【００１５】
ＳＤＲＡＭ１０３は、印刷装置１００の印刷動作における一時記憶領域およびワークメモリとして利用される同期型メモリ、特に同期型揮発性メモリである。メモリコントローラ２０２は、ＳＤＲＡＭ１０３へのアクセスを制御するインタフェースである。メモリコントローラ２０２の構成や動作については後述する。ＨＤＤ１０４は、大容量の記憶装置であり、ＣＰＵ１０１により実行される各種制御プログラムを格納する。ＨＤＤ１０４は、処理されるデータの一時的な記憶領域や蓄積印刷データの保存領域等としても利用される。また、ＲＯＭ１０６は、印刷装置１００の起動処理プログラムが格納された記憶装置である。
【００１６】
ネットワークＩ／Ｆ１０２は、外部ネットワークを介してホスト端末（ホストコンピュータ）等の他の装置と通信を行うインターフェースである。また、エンジンＩ／Ｆ１０５は、プリンタエンジン１０７と通信を行うとともに、プリンタエンジン１０７を制御する。プリンタエンジン１０７は、例えば電子写真技術やインクジェット画像形成技術を用いて画像をシート等の記録媒体に印刷する処理を行う（印刷処理を行う）とともに、フィニッシング処理（例えばステイプル）を行う。
【００１７】
操作部１０９は、印刷装置１００の状態を表示したり、印刷装置１００に対するユーザからの指示に関する入力を受け付けたりすることができるユーザインターフェースである。操作部１０９は、印刷内容を事前に確認するためのプレビュー画面を有し、プレビュー画面には、例えば、印刷対象の各ページの画像、および部数やページ数などの印刷内容が表示されうる。また、プレビュー画面には、例えば、ユーザからの指示入力が行われるように、タッチパネルなどが設けられてもよい。
【００１８】
図２は、図１のメモリコントローラ２０２の機能および構成を示すブロック図である。メモリコントローラ２０２は、メモリ２０４と電気的に接続される。メモリ２０４はＳＤＲＡＭ１０３であってもよい。メモリコントローラ２０２およびメモリ２０４はそれぞれ別個の半導体チップに設けられてもよいし、ひとつの半導体チップに設けられてもよい。あるいはまた、メモリ２０４はそれぞれが別個の半導体チップに設けられた複数のメモリであってもよい。
【００１９】
メモリ２０４は複数のバンクと各種デコーダと入出力センスアンプとデータバスバッファとを含む。各バンクでは、記憶素子であるＤＲＡＭセルがマトリクス状に配置される。メモリ２０４は公知のＤＲＡＭメモリデバイスであってもよい。特に、メモリ２０４はＳＤＲＡＭのメモリデバイスであってもよい。メモリ２０４はＤＤＲ４またはＬＰＤＤＲ４に準拠するよう構成されてもよい。
【００２０】
メモリコントローラ２０２は、メモリ２０４にコマンドとアドレスとを提供することでメモリ２０４を制御する。メモリコントローラ２０２はメモリ２０４に書き込み用のデータを送信し、メモリ２０４から読み出されたデータを受信する。メモリコントローラ２０２およびメモリ２０４は、システムバス１０８から供給される共通のクロック信号に同期して動作する。メモリコントローラ２０２は、コマンド選択回路２０６と、タイミング制御回路２０８と、タイミング設定回路２１０と、出力アライン回路２１２と、ＤＱＳ（データストローブ）処理回路２１４と、ＤＱ（データ）処理回路２１６と、を有する。以下では、説明を簡略化するために、バンクアドレス以外のアドレス情報であるロウアドレスやカラムアドレスについての説明を省略する。
【００２１】
コマンド選択回路２０６は、ＣＰＵ１０１などの印刷装置１００の他の部材からコマンドの発行要求を取得する。コマンド選択回路２０６は、取得された発行要求が複数ある場合はそのなかから１つを選択し、取得された発行要求が１つの場合はその１つを選択する。コマンド選択回路２０６は、選択された発行要求に係るコマンドと該コマンドに関するバンクアドレスとを、タイミング制御回路２０８によって許可されるタイミングでメモリ２０４に対して発行する。したがって、コマンド選択回路２０６はコマンドの発行回路として機能する。特にコマンド選択回路２０６は、コマンドおよびバンクアドレスを出力アライン回路２１２に出力する。以下では、説明を簡略化するため、コマンドとしてアクティブコマンドとライトコマンド、リードコマンドを扱うものとする。
【００２２】
コマンド選択回路２０６は、ＣＰＵ１０１からシステムバス１０８を介してＡＣＴ＿ＲＥＱ信号とＡＣＴ＿ＢＡＮＫ信号とＲＷ＿ＲＥＱ信号とＲＷ＿ＤＩＲ信号とＲＷ＿ＢＡＮＫ信号とを受信する。コマンド選択回路２０６は、タイミング制御回路２０８から内部バス（不図示）を介してＡＣＴ＿ＯＫ＿Ｂ０信号とＡＣＴ＿ＯＫ＿Ｂ１信号とＷＲ＿ＯＫ＿Ｂ０信号とＷＲ＿ＯＫ＿Ｂ１信号とＲＤ＿ＯＫ＿Ｂ０信号とＲＤ＿ＯＫ＿Ｂ１信号とを受信する。コマンド選択回路２０６は、システムバス１０８を介してＡＣＴ＿ＡＣＫ信号とＲＷ＿ＡＣＫ信号とをＣＰＵ１０１に送信する。コマンド選択回路２０６は、内部バスを介してＳＥＬ＿ＣＭＤ信号とＳＥＬ＿ＢＡＮＫ信号とを出力アライン回路２１２、タイミング制御回路２０８に送信する。
【００２３】
ＡＣＴ＿ＲＥＱ信号はアクティブコマンドの発行要求を示す信号である。コマンド選択回路２０６は、ＡＣＴ＿ＲＥＱ信号によりアクティブコマンドの発行要求を取得する。アクティブコマンドの発行要求を取得したタイミングは、ＡＣＴ＿ＲＥＱ信号がアサートされたタイミングである。ＡＣＴ＿ＢＡＮＫ信号はアクティブ化する対象のバンクのバンクアドレスを示す信号である。ＡＣＴ＿ＡＣＫ信号はアクティブコマンドの発行要求がコマンド選択回路２０６で選択されたことを示す信号である。
【００２４】
ＲＷ＿ＲＥＱ信号はライトコマンドまたはリードコマンドの発行要求を示す信号である。ＲＷ＿ＤＩＲ信号は１（またはハイレベル）ならばリードコマンド、０（またはローレベル）ならばライトコマンドを示す信号である。コマンド選択回路２０６は、ＲＷ＿ＲＥＱ信号およびＲＷ＿ＤＩＲ信号によりライトコマンドまたはリードコマンドの発行要求を取得する。ライトコマンドまたはリードコマンドの発行要求を取得したタイミングは、ＲＷ＿ＲＥＱ信号がアサートされたタイミングである。ＲＷ＿ＢＡＮＫ信号はライトまたはリードする対象のバンクのバンクアドレスを示す信号である。ＲＷ＿ＡＣＫ信号はライトコマンドまたはリードコマンドの発行要求がコマンド選択回路２０６で選択されたことを示す信号である。
【００２５】
ＳＥＬ＿ＣＭＤ信号は選択された発行要求に係るコマンドを示す信号である。コマンド選択回路２０６は、ＳＥＬ＿ＣＭＤ信号によりコマンドをメモリ２０４に対して発行する。ＳＥＬ＿ＢＡＮＫ信号は、ＳＥＬ＿ＣＭＤ信号が示すコマンドに関するバンクアドレスを示す信号である。
【００２６】
タイミング制御回路２０８は、コマンド選択回路２０６におけるコマンド発行のタイミングを制御する。コマンド選択回路２０６における第１コマンドの発行タイミングＴａと第１コマンドの次の第２コマンドの発行要求の取得タイミングＴｂとの間隔をＮサイクルとする（Ｎは自然数）。第１コマンドの発行タイミングＴａと第２コマンドの発行タイミングＴｃとの間隔をＭサイクルとする（Ｍは自然数）。プリアンブルの長さをＪサイクルとする。Ｊが２以上の場合、タイミング制御回路２０８は、ＮがＫ（Ｋは自然数）以下の場合はＭがＫとなるように、ＮがＫより大きくかつＬ（Ｌは（Ｋ＋Ｊ）以上の自然数）より小さい場合はＭがＬ以上となるように、コマンド選択回路２０６を制御する。Ｊが１の場合、タイミング制御回路２０８はＫより大きいＮについてＭがＮとなるように、コマンド選択回路２０６を制御する。
【００２７】
タイミング制御回路２０８は、ＳＥＬ＿ＣＭＤ信号およびＳＥＬ＿ＢＡＮＫ信号とタイミング設定回路２１０の出力とに基づいて、どのバンクに対するどのコマンドが発行してよい状態にあるかを示す制御信号を生成する。すなわち、タイミング制御回路２０８は、バンクごと、コマンドごとに、そのバンクに対するそのコマンドの発行の許否を示す制御信号を生成する。コマンド選択回路２０６は、コマンドの発行要求を取得してもそのコマンドについての制御信号がネゲートされている（例えば、ローレベルとなっている、０となっている）間はそのコマンドを発行しない。コマンド選択回路２０６は、そのコマンドの発行要求の取得タイミングの後の制御信号がアサートされる（例えば、ハイレベルとなる、１となる）タイミングでそのコマンドを発行する。
【００２８】
ＡＣＴ＿ＯＫ＿Ｂ０信号、ＡＣＴ＿ＯＫ＿Ｂ１信号は、メモリ２０４のバンク０、バンク１に対するアクティブコマンドが発行可能であるか否かをそれぞれ示す信号である。ＷＲ＿ＯＫ＿Ｂ０信号、ＷＲ＿ＯＫ＿Ｂ１信号は、バンク０、バンク１に対するライトコマンドが発行可能であるか否かをそれぞれ示す信号である。ＲＤ＿ＯＫ＿Ｂ０信号、ＲＤ＿ＯＫ＿Ｂ１信号は、バンク０、バンク１に対するリードコマンドが発行可能であるか否かをそれぞれ示す信号である。なお、実施の形態では例示的にバンク０およびバンク１に対するコマンドを例として説明するが、バンクの数に制限はない。
【００２９】
タイミング設定回路２１０は、メモリ２０４のタイミングパラメータを保持する回路である。本明細書では、説明を簡略化するために７つのタイミングパラメータが保持されるものとする。ＣＬ（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ  Ｌａｔｅｎｃｙ、ＣＡＳ  Ｌａｔｅｎｃｙ）は、リードコマンドからデータが有効になるまでのサイクル数を示す。ＣＷＬ（ＣＡＳ  Ｗｒｉｔｅ  Ｌａｔｅｎｃｙ）は、ライトコマンドからデータが有効になるまでのサイクル数を示す。ＴＲＲＤ（Ｒｏｗ  ｔｏ  Ｒｏｗ  Ｄｅｌａｙ）は、アクティブコマンドからアクティブコマンドまで待たなければならないサイクル数を示す。ＴＲＣＤ（Ｒｏｗ  Ｃｏｍｍａｎｄ  Ｄｅｌａｙ）は、アクティブコマンドからライトまたはリードコマンドまで待たなければならないサイクル数を示す。ＴＣＣＤは、ライトまたはリードコマンドから次のライトまたはリードコマンドまで待たなければならないサイクル数を示す。ＴＣＣＤは上述のＫに対応する。ＴＷＰＲＥは、ライト動作において書き込まれるデータに関連するデータストローブ信号（以下、ＤＱＳ信号と称す）に現れるプリアンブルの長さすなわちサイクル数を示す。ＴＲＰＲＥは、リード動作においてＤＱＳ信号に現れるプリアンブルの長さすなわちサイクル数を示す。
【００３０】
図３（ａ）、（ｂ）は、図２のタイミング設定回路２１０に保持されるパラメータの例を示すデータ構造図である。図３（ａ）の例ではＴＷＰＲＥおよびＴＲＰＲＥはいずれも２サイクルに設定され、図３（ｂ）の例ではＴＷＰＲＥおよびＴＲＰＲＥはいずれも１サイクルに設定されている。
【００３１】
図２に戻り、タイミング設定回路２１０に保持されるＴＷＰＲＥ、ＴＲＰＲＥは、タイミング制御回路２０８によって参照されると共に、ＤＱＳ信号が入力されるＤＱＳ処理回路２１４によっても参照される。タイミング制御回路２０８やＤＱＳ処理回路２１４以外の回路がタイミング設定回路２１０に保持される各パラメータを参照してもよい。
【００３２】
出力アライン回路２１２は、コマンド選択回路２０６からＳＥＬ＿ＣＭＤ信号およびＳＥＬ＿ＢＡＮＫ信号を受信し、これらの信号をクロック信号の立ち上がりエッジに対してセンタリングし、それぞれＣＭＤ信号、ＢＡＮＫ信号としてメモリ２０４に出力する。
【００３３】
ＤＱ処理回路２１６はメモリ２０４と複数ビットのデータ線（以下、ＤＱ線と称す）で接続され、該ＤＱ線を介してメモリ２０４とデータをやりとりする。リード動作において、ＤＱ処理回路２１６は、ＤＱＳ処理回路２１４により指定されるタイミングでＤＱ線のデータを取り込み、取り込んだデータを複数ビットのシステムデータ線ＤＱＴに出力する。システムデータ線ＤＱＴはシステムバス１０８に含まれてもよい。システムデータ線ＤＱＴに出力されたデータはＣＰＵ１０１等の印刷装置１００の他の部材に入力される。ライト動作において、ＤＱ処理回路２１６は、システムデータ線ＤＱＴから書き込むべきデータを取得し、取得されたデータをＤＱＳ処理回路２１４により指定されるタイミングでＤＱ線に出力する。
【００３４】
ＤＱＳ処理回路２１４はメモリ２０４とＤＱＳ線で接続され、該ＤＱＳ線を介してメモリ２０４とＤＱＳ信号をやりとりする。ＤＱＳ処理回路２１４は、リード動作において、タイミング設定回路２１０に保持されるＴＲＰＲＥに基づいて、メモリ２０４から出力されたＤＱＳ信号を処理する。特にＤＱＳ処理回路２１４は、ＤＱ処理回路２１６にＤＱ線からのデータ取り込みを指示するための第１指示信号ＩＮＳ１を、ＴＲＰＲＥで指定される長さのプリアンブル期間が経過した後にＤＱＳ信号にエッジが現れるタイミングで生成する。ＤＱＳ処理回路２１４は、ライト動作において、タイミング設定回路２１０に保持されるＴＷＰＲＥで指定される長さのプリアンブル期間を有するＤＱＳ信号を生成しメモリ２０４に出力する。特にＤＱＳ処理回路２１４は、ＤＱ処理回路２１６にＤＱ線へのデータ出力を指示するための第２指示信号ＩＮＳ２を、生成されたＤＱＳ信号にエッジが現れるタイミングで生成する。
【００３５】
プリアンブル期間は、データの最初に同期して出力されるＤＱＳ信号の最初のエッジの１サイクル以上前からローまたはハイ出力を行う期間である。これにより、最初のエッジの前の電位が確定されるので、最初のエッジの振幅を確保することができる。ＤＱＳ処理回路２１４は、リード動作において、ＴＲＰＲＥにより指定される長さのプリアンブル期間の検出を行い、プリアンブル期間が検出されるとＤＱ処理回路２１６にデータの取り込みを開始させる。
【００３６】
図４（ａ）は、図２のタイミング制御回路２０８の構成を示す回路図である。タイミング制御回路２０８は、第１カウンタ回路４０２と、第２カウンタ回路４０４と、第３カウンタ回路４０６と、第４カウンタ回路４０８と、第１遅延回路４１０と、第５カウンタ回路４１２と、第２遅延回路４１４と、第６カウンタ回路４１６と、比較回路群と、ＡＮＤゲート群と、を含む。
【００３７】
第１カウンタ回路４０２は、アクティブコマンドを起点としてＴＲＲＤをカウントし、カウント値ＴＲＲＤ＿ＣＮＴを第１比較回路４１８および第２比較回路４２０に出力する。第１カウンタ回路４０２は同期２進ダウンカウンタである。第１カウンタ回路４０２は、第１５比較回路４５６と、第１減算回路４５８と、減算・ホールド回路４６０と、第１セレクタ４６２と、第１レジスタ４６４と、を有する。第１５比較回路４５６はＳＥＬ＿ＣＭＤ信号を受信し、該信号がアクティブコマンドを表す場合は「１」、そうでない場合は「０」となる信号を第１セレクタ４６２の制御端子に出力する。第１減算回路４５８はタイミング設定回路２１０からデジタル値であるＴＲＲＤを取得し、取得されたＴＲＲＤから１を減じたデジタル値を第１セレクタ４６２に出力する。減算・ホールド回路４６０は第１レジスタ４６４が出力するカウント値ＴＲＲＤ＿ＣＮＴを取得し、取得されたＴＲＲＤ＿ＣＮＴが０より大きい場合は、ＴＲＲＤ＿ＣＮＴから１を減じたデジタル値を第１セレクタ４６２に出力する。減算・ホールド回路４６０は、ＴＲＲＤ＿ＣＮＴが０の場合は０を第１セレクタ４６２に出力する。第１セレクタ４６２は、制御端子に入力される第１５比較回路４５６からの信号が「１」の場合は第１減算回路４５８から出力されたデジタル値を、「０」の場合は減算・ホールド回路４６０から出力されたデジタル値を、選択する。第１セレクタ４６２は、選択されたデジタル値を第１レジスタ４６４に出力する。第１レジスタ４６４はクロック信号に同期して動作し、クロック信号に立ち上がりエッジが現れるタイミングで第１セレクタ４６２から出力されるデジタル値を取り込み、取り込まれたデジタル値をカウント値ＴＲＲＤ＿ＣＮＴとして出力する。
【００３８】
図４（ｂ）は、減算・ホールド回路４６０の構成を示す回路図である。減算・ホールド回路４６０は、第２１比較回路４５５と、第３セレクタ４５７と、第２減算回路４５９と、を有する。第２１比較回路４５５は、ＴＲＲＤ＿ＣＮＴが「０」の場合は「１」、そうでない場合は「０」となる信号を第３セレクタ４５７の制御端子に出力する。第２減算回路４５９は、ＴＲＲＤ＿ＣＮＴから１を減じたデジタル値を第３セレクタ４５７に出力する。第３セレクタ４５７は、制御端子に入力される第２１比較回路４５５からの信号が「１」の場合はＴＲＲＤ＿ＣＮＴを、「０」の場合は第２減算回路４５９から出力されたデジタル値を、選択する。第３セレクタ４５７は、選択されたデジタル値を第１セレクタ４６２に出力する。
【００３９】
第２カウンタ回路４０４の減算・ホールド回路４６１、第３カウンタ回路４０６の減算・ホールド回路４６３、第４カウンタ回路４０８の減算・ホールド回路４６５、第５カウンタ回路４１２の減算・ホールド回路４６７、第６カウンタ回路４１６の減算・ホールド回路４６９、はそれぞれ図４（ｂ）に相当する。減算・ホールド回路４６１の入力はＴＲＣＤ＿ＣＮＴ＿Ｂ０、減算・ホールド回路４６３の入力はＴＲＣＤ＿ＣＮＴ＿Ｂ１、減算・ホールド回路４６５の入力はＴＣＣＤ＿ＣＮＴ、減算・ホールド回路４６７の入力はＴＷＰＲＥ＿ＣＮＴ、減算・ホールド回路４６９の入力はＴＲＰＲＥ＿ＣＮＴである。
【００４０】
図４（ａ）に戻り、第１比較回路４１８は、入力されたカウント値ＴＲＲＤ＿ＣＮＴに基づいてＡＣＴ＿ＯＫ＿Ｂ０信号を生成し、コマンド選択回路２０６に出力する。第１比較回路４１８は、カウント値ＴＲＲＤ＿ＣＮＴが「０」の場合はＡＣＴ＿ＯＫ＿Ｂ０信号のレベルを「１」とし、そうでない場合はＡＣＴ＿ＯＫ＿Ｂ０信号のレベルを「０」とする。第２比較回路４２０は第１比較回路４１８と同様に構成され、ＡＣＴ＿ＯＫ＿Ｂ０信号と同様に変化するＡＣＴ＿ＯＫ＿Ｂ１信号を生成する。各バンクに対してアクティブコマンドを発行するためには、ＴＲＲＤを満たす必要がある。したがって、ＡＣＴ＿ＯＫ＿Ｂ０信号はＴＲＲＤ＿ＣＮＴが「０」であるときにアサートされる。同様に、ＡＣＴ＿ＯＫ＿Ｂ１信号は、ＴＲＲＤ＿ＣＮＴが「０」であるときにアサートされる。これにより、第１カウンタ回路４０２は、ＴＲＲＤに基づくアクティブコマンドの発行の許否を決定する回路を構成する。
【００４１】
第２カウンタ回路４０４は、バンク０に対するアクティブコマンドを起点としてＴＲＣＤをカウントし、カウント値ＴＲＣＤ＿ＣＮＴ＿Ｂ０を第３比較回路４２２および第６比較回路４２８に出力する。第２カウンタ回路４０４は、セレクタの制御端子に入力される信号およびＴＲＲＤの代わりにＴＲＣＤを取得する点を除いて、第１カウンタ回路４０２と同様の構成を有する。第２カウンタ回路４０４は第１６比較回路４６６と第１７比較回路４６８と第５ＡＮＤゲート４７０とを有する。第１６比較回路４６６はＳＥＬ＿ＣＭＤ信号を受信し、該信号がアクティブコマンドを表す場合は「１」、そうでない場合は「０」となる信号を第５ＡＮＤゲート４７０に出力する。第１７比較回路４６８はＳＥＬ＿ＢＡＮＫ信号を受信し、該信号が「０」の場合は「１」、そうでない場合は「０」となる信号を第５ＡＮＤゲート４７０に出力する。第５ＡＮＤゲート４７０は第１６比較回路４６６の出力と第１７比較回路４６８の出力との論理積をセレクタの制御端子に出力する。第５ＡＮＤゲート４７０の出力信号は、ＳＥＬ＿ＣＭＤ信号がアクティブコマンドを表し、かつ、ＳＥＬ＿ＢＡＮＫ信号が「０」の場合に「１」となり、それ以外の場合は「０」となる。第３比較回路４２２および第６比較回路４２８はいずれも第１比較回路４１８と同様に構成される。
【００４２】
第３カウンタ回路４０６は、バンク１に対するアクティブコマンドを起点としてＴＲＣＤをカウントし、カウント値ＴＲＣＤ＿ＣＮＴ＿Ｂ１を第９比較回路４３４および第１２比較回路４４２に出力する。第３カウンタ回路４０６は、第１７比較回路４６８の代わりにＳＥＬ＿ＢＡＮＫ信号が「１」の場合に「１」となる信号を生成する比較回路を用いる点を除いて、第２カウンタ回路４０４と同様の構成を有する。第９比較回路４３４および第１２比較回路４４２はいずれも第１比較回路４１８と同様に構成される。
【００４３】
第４カウンタ回路４０８は、ライトコマンドまたはリードコマンドを起点としてＴＣＣＤをカウントし、カウント値ＴＣＣＤ＿ＣＮＴを第４比較回路４２４、第７比較回路４３０、第１０比較回路４３６および第１３比較回路４４４に出力する。第４カウンタ回路４０８は、セレクタの制御端子に入力される信号およびＴＲＲＤの代わりにＴＣＣＤを取得する点を除いて、第１カウンタ回路４０２と同様の構成を有する。第４カウンタ回路４０８は第１８比較回路４７２と第１９比較回路４７４と第１ＯＲゲート４７６とを有する。第１８比較回路４７２はＳＥＬ＿ＣＭＤ信号を受信し、該信号がリードコマンドを表す場合は「１」、そうでない場合は「０」となる信号を第１ＯＲゲート４７６に出力する。第１９比較回路４７４はＳＥＬ＿ＣＭＤ信号を受信し、該信号がライトコマンドを表す場合は「１」、そうでない場合は「０」となる信号を第１ＯＲゲート４７６に出力する。第１ＯＲゲート４７６は第１８比較回路４７２の出力と第１９比較回路４７４の出力との論理和をセレクタの制御端子に出力する。第１ＯＲゲート４７６の出力信号は、ＳＥＬ＿ＣＭＤ信号がリードコマンドまたはライトコマンドを表す場合に「１」となり、それ以外の場合は「０」となる。第４比較回路４２４、第７比較回路４３０、第１０比較回路４３６および第１３比較回路４４４はいずれも第１比較回路４１８と同様に構成される。
【００４４】
第１遅延回路４１０はライトコマンドをＴＣＣＤ分遅延させるための回路である。第１遅延回路４１０は第２０比較回路４７８とＤフリップフロップ（以下、ＤＦＦと称す）群４８０と第２セレクタ４９０とを有する。ＤＦＦ群４８０のＤＦＦの数Ｗは設定可能なＴＣＣＤの最大値以上の自然数である。第２０比較回路４７８はＳＥＬ＿ＣＭＤ信号を受信し、該信号がライトコマンドを表す場合は「１」、そうでない場合は「０」となる信号をＤＦＦ群４８０に出力する。ＤＦＦ群４８０は直列に接続されたＷ個のＤＦＦを有する。最初のＤＦＦはクロック信号の立ち上がりエッジに同期して第２０比較回路４７８の出力信号を取り込み、取り込まれた信号を次のＤＦＦおよび第２セレクタ４９０に出力する。次以降のＤＦＦについても同様に構成される。第２セレクタ４９０の制御端子にはＴＣＣＤが入力される。第２セレクタ４９０は、ＤＦＦ群４８０に含まれるＤＦＦのうちＴＣＣＤ番目のＤＦＦの出力信号を選択し、選択された出力信号をＳＥＬ＿ＷＲ＿ＤＥＬＡＹ信号として第５カウンタ回路４１２に出力する。
【００４５】
第５カウンタ回路４１２は、ライトコマンドをＴＣＣＤ遅延させたものを起点としてＴＷＰＲＥをカウントし、カウント値ＴＷＰＲＥ＿ＣＮＴを第５比較回路４２６および第１１比較回路４４０に出力する。第５カウンタ回路４１２は、セレクタの制御端子に入力される信号およびＴＲＲＤの代わりにＴＷＰＲＥを取得する点を除いて、第１カウンタ回路４０２と同様の構成を有する。第５カウンタ回路４１２のセレクタの制御端子には、第１遅延回路４１０の第２セレクタ４９０から出力されるＳＥＬ＿ＷＲ＿ＤＥＬＡＹ信号が入力される。第５比較回路４２６および第１１比較回路４４０はいずれも第１比較回路４１８と同様に構成される。
【００４６】
第２遅延回路４１４はリードコマンドをＴＣＣＤ分遅延させるための回路である。第２遅延回路４１４は、第２０比較回路４７８の代わりにＳＥＬ＿ＣＭＤ信号がリードコマンドを表す場合に「１」となる信号を生成する比較回路を用いる点を除いて、第１遅延回路４１０と同様の構成を有する。第２遅延回路４１４はＳＥＬ＿ＲＤ＿ＤＥＬＡＹ信号を出力する。
【００４７】
第６カウンタ回路４１６は、リードコマンドをＴＣＣＤ遅延させたものを起点としてＴＲＰＲＥをカウントし、カウント値ＴＲＰＲＥ＿ＣＮＴを第８比較回路４３２および第１４比較回路４４６に出力する。第６カウンタ回路４１６は、セレクタの制御端子に入力される信号およびＴＲＲＤの代わりにＴＲＰＲＥを取得する点を除いて、第１カウンタ回路４０２と同様の構成を有する。第６カウンタ回路４１６のセレクタの制御端子には、第２遅延回路４１４から出力されるＳＥＬ＿ＲＤ＿ＤＥＬＡＹ信号が入力される。第８比較回路４３２および第１４比較回路４４６はいずれも第１比較回路４１８と同様に構成される。
【００４８】
第１ＡＮＤゲート４４８は、第３比較回路４２２、第４比較回路４２４、第５比較回路４２６のそれぞれから出力される信号の論理積をＷＲ＿ＯＫ＿Ｂ０信号としてコマンド選択回路２０６に出力する。第２ＡＮＤゲート４５０は、第６比較回路４２８、第７比較回路４３０、第８比較回路４３２のそれぞれから出力される信号の論理積をＲＤ＿ＯＫ＿Ｂ０信号としてコマンド選択回路２０６に出力する。第３ＡＮＤゲート４５２は、第９比較回路４３４、第１０比較回路４３６、第１１比較回路４４０のそれぞれから出力される信号の論理積をＷＲ＿ＯＫ＿Ｂ１信号としてコマンド選択回路２０６に出力する。第４ＡＮＤゲート４５４は、第１２比較回路４４２、第１３比較回路４４４、第１４比較回路４４６のそれぞれから出力される信号の論理積をＲＤ＿ＯＫ＿Ｂ１信号としてコマンド選択回路２０６に出力する。
【００４９】
各バンクに対してライトコマンドを発行するためには、ＴＲＣＤ、ＴＣＣＤ、ＴＷＰＲＥを満たす必要がある。したがって、ＷＲ＿ＯＫ＿Ｂ０信号は、ＴＲＣＤ＿ＣＮＴ＿Ｂ０、ＴＣＣＤ＿ＣＮＴ、ＴＷＰＲＥ＿ＣＮＴがいずれも「０」であるときにアサートされる。同様に、ＷＲ＿ＯＫ＿Ｂ１信号は、ＴＲＣＤ＿ＣＮＴ＿Ｂ１、ＴＣＣＤ＿ＣＮＴ、ＴＷＰＲＥ＿ＣＮＴがいずれも「０」であるときにアサートされる。これにより、第２カウンタ回路４０４、第３カウンタ回路４０６、第４カウンタ回路４０８、第１遅延回路４１０および第５カウンタ回路４１２は、ＴＲＣＤ、ＴＣＣＤ、ＴＷＰＲＥに基づくライトコマンドの発行の許否を決定する回路を構成する。
【００５０】
特に第４カウンタ回路４０８は先行するライトコマンドの発行タイミングの（ＴＣＣＤ−１）サイクル後のタイミングまではＷＲ＿ＯＫ＿Ｂ０信号およびＷＲ＿ＯＫ＿Ｂ１信号のアサートを禁止する禁止回路である。第１遅延回路４１０および第５カウンタ回路４１２は、先行するライトコマンドの発行タイミングの（ＴＣＣＤ＋１）サイクル後のタイミングから（ＴＣＣＤ＋ＴＷＰＲＥ−１）サイクル後のタイミングまではＷＲ＿ＯＫ＿Ｂ０信号およびＷＲ＿ＯＫ＿Ｂ１信号のアサートを禁止する禁止回路である。ここで、先行するライトコマンドの発行タイミングのＴＣＣＤサイクル後のタイミングにおいてはＷＲ＿ＯＫ＿Ｂ０信号およびＷＲ＿ＯＫ＿Ｂ１信号はアサートされうる。例えば、ＴＷＰＲＥが２サイクルの場合、ＴＣＣＤサイクル後のタイミングはアサートが許可され、（ＴＣＣＤ＋１）サイクル後のタイミングはアサートが禁止され、（ＴＣＣＤ＋２）サイクル後のタイミング以降はアサートが許可される。
【００５１】
各バンクに対してリードコマンドを発行するためには、ＴＲＣＤ、ＴＣＣＤ、ＴＲＰＲＥを満たす必要がある。したがって、ＲＤ＿ＯＫ＿Ｂ０信号は、ＴＲＣＤ＿ＣＮＴ＿Ｂ０、ＴＣＣＤ＿ＣＮＴ、ＴＲＰＲＥ＿ＣＮＴがいずれも「０」であるときにアサートされる。同様に、ＲＤ＿ＯＫ＿Ｂ１信号は、ＴＲＣＤ＿ＣＮＴ＿Ｂ１、ＴＣＣＤ＿ＣＮＴ、ＴＲＰＲＥ＿ＣＮＴがいずれも「０」であるときにアサートされる。これにより、第２カウンタ回路４０４、第３カウンタ回路４０６、第４カウンタ回路４０８、第２遅延回路４１４および第６カウンタ回路４１６は、ＴＲＣＤ、ＴＣＣＤ、ＴＲＰＲＥに基づくリードコマンドの発行の許否を決定する回路を構成する。
【００５２】
特に第４カウンタ回路４０８はリードコマンドの発行タイミングの（ＴＣＣＤ−１）サイクル後のタイミングまではＲＤ＿ＯＫ＿Ｂ０信号およびＲＤ＿ＯＫ＿Ｂ１信号のアサートを禁止する禁止回路である。第２遅延回路４１４および第６カウンタ回路４１６は、リードコマンドの発行タイミングの（ＴＣＣＤ＋１）サイクル後のタイミングから（ＴＣＣＤ＋ＴＲＰＲＥ−１）サイクル後のタイミングまではＲＤ＿ＯＫ＿Ｂ０信号およびＲＤ＿ＯＫ＿Ｂ１信号のアサートを禁止する禁止回路である。
【００５３】
以上の構成によるメモリコントローラ２０２の動作を説明する。
図５は、図１のメモリコントローラ２０２の動作波形を示すタイミングチャートである。ここでは、タイミング設定回路２１０に保持されるパラメータの値として図３（ａ）に示される値が使用され、（Ｋ＝）ＴＣＣＤ＝バースト長＝４サイクルである場合が説明される。特にＴＷＰＲＥ、ＴＲＰＲＥはいずれも２サイクルに設定される。ＣＬＫはクロック信号を示す。ＷＲ＿ＯＫ＿ＴＲＣＤ＿Ｂ０は第３比較回路４２２の出力信号を示す。ＷＲ＿ＯＫ＿ＴＣＣＤ＿Ｂ０は第４比較回路４２４の出力信号を示す。ＷＲ＿ＯＫ＿ＴＷＰＲＥ＿Ｂ０は第５比較回路４２６の出力信号を示す。ＷＲ＿ＯＫ＿ＴＲＣＤ＿Ｂ１は第９比較回路４３４の出力信号を示す。ＷＲ＿ＯＫ＿ＴＣＣＤ＿Ｂ１は第１０比較回路４３６の出力信号を示す。ＷＲ＿ＯＫ＿ＴＷＰＲＥ＿Ｂ１は第１１比較回路４４０の出力信号を示す。
【００５４】
時刻Ｔ１において、コマンド選択回路２０６はバンク０に対するアクティブコマンドの発行要求を取得し、取得された発行要求に応じてバンク０に対するアクティブコマンドを発行する。バンク０に対するアクティブコマンドの発行に応じて、時刻Ｔ２においてＴＲＲＤおよびバンク０についてのＴＲＣＤのカウントが開始される。バンク０およびバンク１に対するアクティブコマンドの発行が禁止され、バンク０に対するライトコマンドの発行も禁止される。また、時刻Ｔ２において、コマンド選択回路２０６はバンク０に対するライトコマンドの発行要求を取得する。また、時刻Ｔ２において、バンク０に対するアクティブコマンドが、ＣＬＫのエッジにセンタリングされた状態で出力アライン回路２１２からメモリ２０４に出力される。
【００５５】
時刻Ｔ５において、ＴＲＲＤのカウントが終了し、バンク０およびバンク１に対するアクティブコマンドの発行が許可される。合わせてコマンド選択回路２０６はバンク１に対するアクティブコマンドの発行要求を取得し、取得された発行要求に応じてバンク１に対するアクティブコマンドを発行する。バンク１に対するアクティブコマンドの発行に応じて、時刻Ｔ６においてＴＲＲＤおよびバンク１についてのＴＲＣＤのカウントが開始される。バンク０およびバンク１に対するアクティブコマンドの発行が禁止され、バンク１に対するライトコマンドの発行も禁止される。また、時刻Ｔ６（＝Ｔａ）においてバンク０についてのＴＲＣＤのカウントが終了し、バンク０に対するライトコマンドの発行が許可される。合わせてコマンド選択回路２０６は時刻Ｔ２において取得した発行要求に応じてバンク０に対するライトコマンドを選択し、発行する。また、時刻Ｔ６において、バンク１に対するアクティブコマンドが、ＣＬＫのエッジにセンタリングされた状態で出力アライン回路２１２からメモリ２０４に出力される。
【００５６】
バンク０に対するライトコマンドの発行に応じて、時刻Ｔ７においてＴＣＣＤのカウントが開始される。バンク０およびバンク１に対するライトコマンドの発行が禁止される。また、時刻Ｔ７（＝Ｔｂ）においてコマンド選択回路２０６はバンク１に対するライトコマンドの発行要求を取得する。また、時刻Ｔ７において、バンク０に対するライトコマンドが、ＣＬＫのエッジにセンタリングされた状態で出力アライン回路２１２からメモリ２０４に出力される。
【００５７】
時刻Ｔ１０（＝Ｔｃ）において、ＴＣＣＤのカウントが終了し、かつバンク１についてのＴＲＣＤのカウントが終了し、バンク０およびバンク１に対するライトコマンドの発行が許可される。合わせてコマンド選択回路２０６は時刻Ｔ７において取得した発行要求に応じてバンク１に対するライトコマンドを選択し、発行する。
【００５８】
時刻Ｔ１１において、バンク１に対するライトコマンドが、ＣＬＫのエッジにセンタリングされた状態で出力アライン回路２１２からメモリ２０４に出力される。また、時刻Ｔ１０においてＴＣＣＤのカウントが終了したことを受けてＴＷＰＲＥのカウントが開始されるが、バンク１に対するライトコマンドは既に発行されているので、ＴＷＰＲＥによる影響はない。また、時刻Ｔ１１において、バンク０に対するライトコマンドに対応するＤＱＳ信号のプリアンブル期間が始まる。
【００５９】
メモリ２０４にバンク０に対するライトコマンドが入力された時刻Ｔ７からＣＷＬ＝６サイクル後の時刻Ｔ１３において、ＤＱＳ信号のプリアンブル期間が終了する。以後、ＤＱＳ信号のエッジに同期する形でＤＱ線に、メモリ２０４のバンク０に書き込まれるべきデータが現れる。メモリ２０４にバンク１に対するライトコマンドが入力された時刻Ｔ１１からＣＷＬ＝６サイクル後の時刻Ｔ１７は、バースト長＝４サイクルであることから、バンク０に書き込まれるべきデータの出力が終わるタイミングと一致する。したがって、データ間にアイドルサイクルは生じない。時刻Ｔ１７以降、ＤＱＳ信号のエッジに同期する形でＤＱ線に、バンク１に書き込まれるべきデータが現れる。このように、時刻Ｔ１７の前後でＤＱ線上のデータは途切れること無く連続的に出力される。この場合、ＤＱＳ処理回路２１４はバンク１に対するライトコマンドに対応するプリアンブル期間の作成をスキップする。ＴＣＣＤ＝バースト長に設定されていると、ＭがＴＣＣＤである場合に、始めのライトコマンドの発行に応じてＤＱ線に現れるデータと次のライトコマンドの発行に応じてＤＱ線に現れるデータとが連続する。
【００６０】
図５において、２つのライドコマンドがＴＣＣＤの間隔でメモリ２０４に発行されている。また、Ｎ＝Ｔｂ−Ｔａ＝１、Ｍ＝Ｔｃ−Ｔａ＝４であり、Ｎ＜Ｋ（＝ＴＣＣＤ＝４）、Ｍ＝Ｋ＝４となっている。
【００６１】
図６は、図１のメモリコントローラ２０２の動作波形を示すタイミングチャートである。パラメータの値等の前提条件は図５のものと同じである。図５では、バンク０に対するライトコマンドの発行に続けてバンク１に対するライトコマンドの発行要求が取得される。これに対し図６では、バンク０に対するライトコマンドの発行タイミング（Ｔ６）から（ＴＣＣＤ＋１）サイクル後のタイミング（Ｔ１１）でバンク１に対するライトコマンドの発行要求が取得される。
【００６２】
時刻Ｔ１０において、ＴＣＣＤのカウントが終了し、かつバンク１についてのＴＲＣＤのカウントが終了し、バンク０およびバンク１に対するライトコマンドの発行が許可される。
【００６３】
ＴＣＣＤのカウントが終了したことを受けて、時刻Ｔ１１においてＴＷＰＲＥのカウントが開始される。バンク０およびバンク１に対するライトコマンドの発行が再び禁止される。また、時刻Ｔ１１（＝Ｔｂ）において、コマンド選択回路２０６はバンク１に対するライトコマンドの発行要求を取得するが、該コマンドの選択はＴＷＰＲＥにより禁止されているので、該コマンドは発行されない。具体的には、時刻Ｔ１１において、ＷＲ＿ＯＫ＿ＴＷＰＲＥ＿Ｂ１は「０」なので、ＷＲ＿ＯＫ＿Ｂ１は「０」となっておりライトコマンドの選択・発行は許可されない。
【００６４】
時刻Ｔ１２（＝Ｔｃ）において、ＴＷＰＲＥのカウントが終了し、バンク０およびバンク１に対するライトコマンドの発行が許可される。合わせてコマンド選択回路２０６は時刻Ｔ１１において取得した発行要求に応じてバンク１に対するライトコマンドを選択し、発行する。時刻Ｔ１３において、バンク１に対するライトコマンドが、ＣＬＫのエッジにセンタリングされた状態で出力アライン回路２１２からメモリ２０４に出力される。その結果、２つのライトコマンドが（ＴＣＣＤ＋２）の間隔でメモリ２０４に発行される。
【００６５】
メモリ２０４にバンク０に対するライトコマンドが入力された時刻Ｔ７からＣＷＬ＝６サイクル後の時刻Ｔ１３において、ＤＱＳ信号のプリアンブル期間が終了する。以後、ＤＱＳ信号のエッジに同期する形でＤＱ線に、メモリ２０４のバンク０に書き込まれるべきデータが４サイクル分現れる。メモリ２０４にバンク１に対するライトコマンドが入力された時刻Ｔ１３からＣＷＬ＝６サイクル後の時刻Ｔ１９において、ＤＱ線にバンク１に書き込まれるべきデータが現れ始める。バンク０に書き込まれるべきデータの出力が終わる時刻Ｔ１７とバンク１に書き込まれるべきデータの出力が始まる時刻Ｔ１９との間隔は２サイクルである。この期間はバンク１に対するライトコマンドに対応するプリアンブル期間（ＴＷＰＲＥ＝２）として使用される。ＤＱＳ信号は、時刻Ｔ１７から時刻Ｔ１９までのプリアンブル期間においてローレベルとなり、このプリアンブル期間はアイドルサイクルとして機能する。
【００６６】
図６において、Ｎ＝Ｔｂ−Ｔａ＝５、Ｍ＝Ｔｃ−Ｔａ＝６であり、Ｋ（＝４）＜Ｎ＜Ｋ＋２、Ｍ＝Ｋ＋２となっている。
【００６７】
図７は、図１のメモリコントローラ２０２の動作波形を示すタイミングチャートである。ここでは、タイミング設定回路２１０に保持されるパラメータの値として図３（ｂ）に示される値が使用され、（Ｋ＝）ＴＣＣＤ＝バースト長＝４サイクルである場合が説明される。特にＴＷＰＲＥ、ＴＲＰＲＥはいずれも１サイクルに設定される。図７では図６の場合と同様に、バンク０に対するライトコマンドの発行タイミング（Ｔ６）から（ＴＣＣＤ＋１）サイクル後のタイミング（Ｔ１１）でバンク１に対するライトコマンドの発行要求が取得される。
【００６８】
時刻Ｔ１０において、ＴＣＣＤのカウントが終了し、かつバンク１についてのＴＲＣＤのカウントが終了し、バンク０およびバンク１に対するライトコマンドの発行が許可される。ＴＷＰＲＥは１なので、ＴＷＰＲＥのカウントは不活性化される。ＴＷＰＲＥ＿ＣＮＴは「０」に固定され、ＴＷＰＲＥはコマンド発行の許否の決定に影響を与えない。
【００６９】
時刻Ｔ１１（＝Ｔｂ＝Ｔｃ）において、コマンド選択回路２０６はバンク１に対するライトコマンドの発行要求を取得し、取得された発行要求に応じてバンク１に対するライトコマンドを発行する。時刻Ｔ１２において、バンク１に対するライトコマンドが、ＣＬＫのエッジにセンタリングされた状態で出力アライン回路２１２からメモリ２０４に出力される。その結果、２つのライトコマンドが（ＴＣＣＤ＋１）の間隔でメモリ２０４に発行される。
【００７０】
メモリ２０４にバンク０に対するライトコマンドが入力された時刻Ｔ７からＣＷＬ＝６サイクル後の時刻Ｔ１３において、ＤＱＳ信号のプリアンブル期間（ＴＷＰＲＥ＝１）が終了する。以後、ＤＱＳ信号のエッジに同期する形でＤＱ線に、メモリ２０４のバンク０に書き込まれるべきデータが４サイクル分現れる。メモリ２０４にバンク１に対するライトコマンドが入力された時刻Ｔ１２からＣＷＬ＝６サイクル後の時刻Ｔ１８において、ＤＱ線にバンク１に書き込まれるべきデータが現れ始める。バンク０に書き込まれるべきデータの出力が終わる時刻Ｔ１７とバンク１に書き込まれるべきデータの出力が始まる時刻Ｔ１８との間隔は１サイクルである。この期間はバンク１に対するライトコマンドに対応するプリアンブル期間（ＴＷＰＲＥ＝１）として使用される。ＤＱＳ信号は、時刻Ｔ１７から時刻Ｔ１８までのプリアンブル期間においてローレベルとなり、このプリアンブル期間はアイドルサイクルとして機能する。
【００７１】
図７において、Ｎ＝Ｔｂ−Ｔａ＝５、Ｍ＝Ｔｃ−Ｔａ＝５であり、Ｎ＞Ｋ（＝４）、Ｍ＝Ｎとなっている。
【００７２】
図８は、図１のメモリコントローラ２０２における一連の処理を示すフローチャートである。Ｓ８０２では、コマンド選択回路２０６は第１コマンドを発行する。Ｓ８０４では、コマンド選択回路２０６は第２コマンドの発行要求を取得する。第１コマンドおよび第２コマンドは、リードコマンドまたはライトコマンドである。Ｓ８０６では、タイミング制御回路２０８は第１コマンドの発行タイミングと第２コマンドの発行要求の取得タイミングとの間隔（＝Ｎ）をＴＣＣＤと比較する。ＮがＴＣＣＤ以下の場合、Ｓ８１６でコマンド選択回路２０６は第１コマンドの発行タイミングからＴＣＣＤ後のタイミングで第２コマンドを発行する。ＮがＴＣＣＤより大きい場合、Ｓ８０８でタイミング制御回路２０８は設定されたプリアンブルの長さ（＝Ｊ）が２以上であるか否かを判定する。Ｊが１の場合、Ｓ８１２でコマンド選択回路２０６は、第２コマンドの発行要求の取得に合わせて第２コマンドを発行する。Ｊが２以上の場合、Ｓ８１０でタイミング制御回路２０８はＮを（ＴＣＣＤ＋Ｊ）と比較する。Ｎが（ＴＣＣＤ＋Ｊ）以上の場合、処理はＳ８１２に進む。Ｎが（ＴＣＣＤ＋Ｊ）より小さい場合、Ｓ８１４でコマンド選択回路２０６は第１コマンドの発行タイミングから（ＴＣＣＤ＋Ｊ）後のタイミングで第２コマンドを発行する。
【００７３】
本実施の形態に係るメモリコントローラ２０２によると、プリアンブル期間が複数サイクルに設定されている場合でもコマンド発行のタイミングを適切に制御することができる。特に近年のＳＤＲＡＭの高速化の流れからプリアンブル期間が長くなる傾向にあるなか、そのような長いプリアンブル期間にも従来の１サイクルのプリアンブル期間にも対応可能なＳＤＲＡＭ１０３のメモリコントローラ２０２が提供される。
【００７４】
また、本実施の形態に係るメモリコントローラ２０２では、コマンドの発行が連続して要求される場合はデータが連続して入出力されるよう、かつ、コマンドの発行要求の間にある程度の間隔がある場合は複数サイクルのプリアンブル期間が確保されるように、コマンドの発行が制御される。したがって、データの連続入出力機能と複数サイクルのプリアンブル期間との両立が可能となる。
【００７５】
また、本実施の形態に係るメモリコントローラ２０２によると、第１遅延回路４１０、第５カウンタ回路４１２、第２遅延回路４１４、第６カウンタ回路４１６の作用により、ＴＣＣＤ満了の後からさらにプリアンブル期間が経過するまでは次のコマンドの発行が禁止される。これにより、複数サイクルのプリアンブル期間を確保することができる。
【００７６】
また、本実施の形態に係るメモリコントローラ２０２によると、プリアンブル期間が複数サイクルである場合に、一時的にコマンド発行を禁止するための信号を追加することで、プリアンブル期間を考慮したコマンドの発行タイミングを容易に制御できる。
【００７７】
以上、実施の形態に係るメモリコントローラ２０２の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７８】
実施の形態では、主に図５、図６、図７を通じてライトコマンドの発行が連続して要求される場合について説明したが、これに限られない。例えば、リードコマンドの発行が連続して要求される場合や、リードコマンドの次にライトコマンドが要求される場合や、ライトコマンドの次にリードコマンドが要求される場合や、より一般的に同期型メモリの動作に係るコマンドの発行と次のコマンドの要求との関係に、本実施の形態の技術的思想を適用できる。
【００７９】
実施の形態では、コマンド選択回路２０６がシステムバス１０８を介して各種信号を送受信する場合について説明したが、これに限られない。例えばシステムバスから受信した信号からメモリコントローラ内部で生成した各種信号をコマンド選択回路が受信してもよい。送信についても同様である。
【００８０】
実施の形態では、システムデータ線ＤＱＴをリードとライトとで共有にする場合について説明したが、これに限られず、リードとライトとでそれぞれ別のシステムデータ線を設けてもよい。
【符号の説明】
【００８１】
１００  印刷装置、  １０３  ＳＤＲＡＭ、  ２０２  メモリコントローラ、  ２０４  メモリ。
【図１】
0006700739.tif 000002
【図２】
0006700739.tif 000003
【図３】
0006700739.tif 000004
【図４】
0006700739.tif 000005
【図５】
0006700739.tif 000006
【図６】
0006700739.tif 000007
【図７】
0006700739.tif 000008
【図８】
0006700739.tif 000009