(57)【要約】【課題】メモリバスにおけるアドレス／データ通信効率を向上する。【解決手段】メモリ制御装置は、プロセッサ３０とメモリランク４０ａ、４０ｂとの間に備えられ、メモリランク４０ａ、４０ｂへのアクセスを制御する。メモリマネジメントユニット１０は、プロセッサ３０からメモリランク４０ａ、４０ｂへのアクセス要求を受け取ってバッファリングし、メモリ管理におけるスケジューリングに基づいてアクセス要求をランクマネジメントユニット２０に発行する。ランクマネジメントユニット２０は、メモリランク４０ａ、４０ｂを接続し、メモリマネジメントユニット１０からのアクセス要求を受け取ってバッファリングし、ランク管理におけるスケジューリングに基づいてアクセス要求を所定のメモリランクに与える。【選択図】図１
2007183816.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと複数のメモリランクとの間に備えられ、メモリランクへのアクセスを制御するメモリ制御装置であって、
プロセッサからメモリランクへのアクセス要求を受け取ってバッファリングし、メモリ管理におけるスケジューリングに基づいてアクセス要求をランク管理部に発行するメモリ管理部と、
複数のメモリランクを接続し、前記メモリ管理部から前記アクセス要求を受け取ってバッファリングし、ランク管理におけるスケジューリングに基づいて前記アクセス要求を該当するメモリランクに与えるランク管理部と、
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記メモリ管理部は、
前記ランク管理部との間を接続するデータバスに関し、前記アクセス要求の実行に掛かる前記データバスの占有開始から終了までの時間をカウントする第１のカウンタと、
該第１のカウンタの内容にしたがって前記メモリ管理におけるスケジューリングを行う第１のコントローラとを備え、
前記ランク管理部は、
前記アクセス要求の実行に掛かる前記データバスの占有開始から終了までの時間をカウントする第２のカウンタと、
該第２のカウンタの内容にしたがって前記ランク管理におけるスケジューリングを行う第２のコントローラとを備えることを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記メモリ管理部は、前記複数のランクメモリのそれぞれに対応してコマンドデコーダをそれぞれ備え、該コマンドデコーダは、チップ選択信号によって、該当のメモリランクに対するアクセス要求であることを認識することで前記アクセス要求を実行し、
前記第２のコントローラは、該当のメモリランク以外に対する命令に関し、該命令の実行に掛かる前記データバスの占有開始時から終了時までの時間に対応するクロック数を、前記第２のカウンタでカウントすることで前記データバスが空くタイミングを把握して、該当のメモリランクに対するデータ入出力タイミングを確定することを特徴とする請求項２記載のメモリ制御装置。
【請求項４】
前記メモリ管理部は、前記複数のメモリランクにおけるそれぞれのメモリランクがビジーである時間をそれぞれカウントする第３のカウンタを備え、
前記第１のコントローラは、該第３のカウンタの内容にしたがって前記メモリ管理におけるスケジューリングを行うことを特徴とする請求項２記載のメモリ制御装置。
【請求項５】
前記ランク管理部は、前記ランク管理部に接続されているメモリランクがビジーである時間をカウントする第４のカウンタを備え、
前記第２のコントローラは、該第４のカウンタの内容にしたがって前記ランク管理におけるスケジューリングを行うことを特徴とする請求項２記載のメモリ制御装置。
【請求項６】
前記メモリ管理部は、前記プロセッサのアドレス空間における連続したアクセス順を、前記複数のメモリランクに対してインターリーブアクセスするように再配置するためのアドレス変換テーブルを備えることを特徴とする請求項１記載のメモリ制御装置。
【請求項７】
前記ランク管理部は、マルチワードバーストアクセス時のワード長に少なくとも１ワード長を加えたバーストデータを格納するデータバッファを備え、前記メモリ管理部からマルチワードバーストに対応する命令が来た場合に、１ワード分余計に前記データバッファにプリフェッチしておくことを特徴とする請求項１または２記載のメモリ制御装置。
【請求項８】
前記ランク管理部は、同一ＲＡＳ（Ｒｏｗ  Ａｄｄｒｅｓ  Ｓｔｒｏｂｅ）の最後のＣＡＳ（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓ  Ｓｔｒｏｂｅ）アドレスを読み込む命令が来た場合、連続する次のＲＡＳアドレスに続く先頭ＣＡＳアドレスから１ワード長のバーストデータをプリフェッチして前記データバッファに保持することを特徴とする請求項７記載のメモリ制御装置。
【請求項９】
前記ランク管理部は、前記データバッファにプリフェッチした先読みデータが次のリード命令のアドレスにヒットした場合にノーウェイトで該先読みデータをデータバスに出力し、次のコマンドの受け付けを実行し、コマンドバッファにプリフェッチした先読みデータが次のリード命令にミスヒットした場合に該先読みデータを破棄し、与えられた命令を実行する機能を有することを特徴とする請求項７記載のメモリ制御装置。
【請求項１０】
前記メモリ管理部は、
前記プロセッサからの命令がリード命令かライト命令かを分別するアクセス要求分別器と、
分別された前記リード命令をバッファリングする読み込み要求バッファと、
分別された前記ライト命令をバッファリングする書き込み要求バッファとを備え、
前記リード命令と前記ライト命令とがそれぞれ前記読み込み要求バッファと前記書き込み要求バッファとにバッファリングされている場合には、前記リード命令を優先して前記ランク管理部に発行することを特徴とする請求項１または２記載のメモリ制御装置。
【請求項１１】
前記ランク管理部は、前記リード命令の対象となるランクメモリが読み込み処理している間に、前記ランク管理部に接続されるランクメモリに対するライト命令及び該ライト命令に係るデータをそれぞれデコーダバッファおよびデータバッファに転送すると共に、該ライト命令の対象となるランクメモリが前記リード命令の対象となるランクメモリと異なる場合には該ライト命令を実行することを特徴とする請求項８〜１０のいずれか１に記載のメモリ制御装置。
【請求項１２】
前記メモリ管理部は、前記プロセッサからライト命令と該ライト命令に係るライトデータとを同時に受け取ることを特徴とする請求項１または２記載のメモリ制御装置。
【請求項１３】
前記ランク管理部は、該当以外のランクメモリによる通信で前記データバスがビジーであるタイミングにおいて、該当のランクメモリに対するリフレッシュ動作を行うことを特徴とする請求項２記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置に関し、特に同一のメモリバスに接続する複数のランクまたはメモリモジュールに対するアクセス技術に関する。
【背景技術】
【０００２】
メモリコントローラがプロセッサからのメモリアクセス要求を受けてＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリに対してデータの入出力を行う場合、ロウ（Ｒｏｗ）アドレスの指定とカラム（Ｃｏｌｕｍｎ）アドレスの指定とを行って該当するアドレスのデータ入出力を行う。この際、各命令間や実際にデータが入出力されるまでには、待機時間（命令を実行するのに要する最短の待機クロック）が必要となる。待機時間は、ＲＡＳ（Ｒｏｗ  Ａｄｄｒｅｓ  Ｓｔｒｏｂｅ）−ｔｏ−ＣＡＳ（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓ  Ｓｔｒｏｂｅ）遅延やＣＡＳレイテンシ（ＣＬ）を含み、トランジスタの動作速度や回路構成によって異なり、動作周波数が高まるほど、必要となる遅延は増える傾向にある。
【０００３】
図１０は、従来の代表的なＤＲＡＭメモリのアクセスタイミングを示す図である。ｔＲＣＤ（ＲＡＳ−ｔｏ−ＣＡＳ  Ｄｅｌａｙ）＝２、ＣＬ＝２または３、ｔＲＰ（ＲＡＳプリチャージタイム）＝３であるＳＤＲＡＭにおける４ビットバースト読み込みのタイミングを示す。タイミングＴ０でＡＣＴ命令を発行し、タイミングＴ２のＲＥＡＤ命令によってデータが出力され（Ｑ１〜Ｑ４）、プリチャージ（ＰＲＥ命令）して次の読み書き命令準備が出来る（タイミングＴ９のＡＣＴ命令）までに９クロック（ｔＲＣ）を必要とする。実際のデータ出力を除く５クロックは、待機のために使われておりメモリバスの実効転送速度を低下させる要因となる。
【０００４】
ここで、メモリモジュールの構成について説明する。メモリモジュールを構成するメモリチップは、そのメモリバス幅にあわせて、搭載できる個数が決まっており、６４ｂｉｔ幅の１６８ピンＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）の場合、ワード構成×８ｂｉｔのメモリチップを８個組んで１ランクを構成し、両面１６個２ランク構成が最も容量の点で大きく、一般的である。この２つのランクは、４ｂｉｔのチップセレクト信号によって切り替えがなされ、アクセスしたいランク（メモリチップ）を指定して読み書きすることができる。
【０００５】
従来のシングルチャネルメモリバスでは、複数のランクまたはメモリモジュールが接続されている場合、一度にアクセスできるランクは１つだけである。それ以外は全て待機しており、またプリチャージやリフレッシュ動作も一斉同一タイミングであるので非効率的である。
【０００６】
ところで、転送速度を向上させる方法として、連続するアドレスに格納されたデータを、予め決められた長さによるバースト転送することで、ＲＡＳ、ＣＡＳの指定を省略する方法や、同一ＲＡＳに続くデータに対して、ＲＡＳの指定を省略してＣＡＳのみ指示する方法がある。これらは連続するデータの入出力に対しては効果があるが、ＲＡＳを変える場合やランダムアクセスでは効果が無い。
【０００７】
さらに転送速度を向上させる別の方法として、メモリバスのチャネル数を２つ以上設けて、アドレスマップを交互に行うことで転送効率を高めるインターリーブアクセス方法が知られている（例えば特許文献１、２参照）。インターリーブアクセス方法は、最近のコンピュータシステムでも用いられている。
【０００８】
また、複数のプロセッサあるいは複数のスレッドから共通にアクセスされる複数のメモリバンクに対するアクセス制御を行うマルチバンクアクセス制御装置が知られている（例えば特許文献３参照）。
【０００９】
【特許文献１】特開昭６４−６４０４５号公報
【特許文献２】特開平３−２９４３号公報
【特許文献３】特開２００２−２６８９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、インターリーブアクセス方法は、アドレスおよびデータバスの配線が倍以上に増える為、パッケージ端子数や基板面積などの物理的な実装スペースとコストが増大する。また、チャネル数に応じた同じ容量のメモリモジュールを用意する必要がある。これらの実装上の制約は、特に省スペース性が要求されるノートＰＣや組み込み向けシステムにおいて好ましいものではなく、インターリーブアクセス方法の採用は難しい場合が多い。
【００１１】
一方、マルチバンクアクセス制御方法では、割り込み命令や、プロセッサとバンク毎のバス調停等によって入出力のレイテンシが増えること、および論理ＣＰＵ数を多く見せかけマルチスレッド化を行い、メモリアクセスディレイの隠蔽技術として使うことを前提にしている。したがって、高スループットで低レイテンシなメモリアクセスを実現するには、極めて複雑となってしまう。
【００１２】
また、ＤＲＡＭ固有の問題として、リフレッシュを定期的に行う必要性があり、リフレッシュを行っている最中にはデータ入出力が出来ない。これは、実効的なメモリアクセス速度に大きく影響を与える。
【００１３】
したがって、バス利用効率をより高めて、高スループットで低レイテンシなメモリアクセスを実現する簡易な構成のメモリ制御装置が求められていたが、従来の技術では達成することが困難であった。
【課題を解決するための手段】
【００１４】
上記のような課題に対して本発明者は、１つのバスでも高スループットで低レイテンシなメモリアクセスを指向する方が全体の効率がよいと考えた。そこで、１つのバスで、複数のランクまたはモジュールを搭載した場合における、アドレス／データ通信効率を向上するメモリ制御装置を創案した。
【００１５】
本発明の一つのアスペクトに係るメモリ制御装置は、プロセッサと複数のメモリランクとの間に備えられ、メモリランクへのアクセスを制御する。メモリ制御装置は、プロセッサからメモリランクへのアクセス要求を受け取ってバッファリングし、メモリ管理におけるスケジューリングに基づいてアクセス要求をランク管理部に発行するメモリ管理部と、複数のメモリランクを接続し、メモリ管理部からのアクセス要求を受け取ってバッファリングし、ランク管理におけるスケジューリングに基づいてアクセス要求を所定のメモリランクに与えるランク管理部と、を備える。
【００１６】
第１の展開形態のメモリ制御装置において、メモリ管理部は、ランク管理部との間を接続するデータバスに関し、アクセス要求の実行に掛かるデータバスの占有開始から終了までの時間をカウントする第１のカウンタと、該第１のカウンタの内容にしたがってメモリ管理におけるスケジューリングを行う第１のコントローラとを備え、ランク管理部は、アクセス要求の実行に掛かるデータバスの占有開始から終了までの時間をカウントする第２のカウンタと、該第２のカウンタの内容にしたがってランク管理におけるスケジューリングを行う第２のコントローラとを備えるようにしてもよい。
【００１７】
第２の展開形態のメモリ制御装置において、メモリ管理部は、複数のランクメモリのそれぞれに対応してコマンドデコーダをそれぞれ備え、該コマンドデコーダは、チップ選択信号によって、該当のメモリランクに対するアクセス要求であることを認識することでアクセス要求を実行し、第２のコントローラは、該当のメモリランク以外に対する命令に関し、該命令の実行に掛かるデータバスの占有開始時から終了時までの時間に対応するクロック数を、第２のカウンタでカウントすることでデータバスが空くタイミングを把握して、該当のメモリランクに対するデータ入出力タイミングを確定するようにしてもよい。
【００１８】
第３の展開形態のメモリ制御装置において、メモリ管理部は、複数のメモリランクにおけるそれぞれのメモリランクがビジーである時間をそれぞれカウントする第３のカウンタを備え、第１のコントローラは、該第３のカウンタの内容にしたがってメモリ管理におけるスケジューリングを行うようにしてもよい。
【００１９】
第４の展開形態のメモリ制御装置において、ランク管理部は、ランク管理部に接続されているメモリランクがビジーである時間をカウントする第４のカウンタを備え、第２のコントローラは、該第４のカウンタの内容にしたがってランク管理におけるスケジューリングを行うようにしてもよい。
【００２０】
第５の展開形態のメモリ制御装置において、メモリ管理部は、プロセッサのアドレス空間における連続したアクセス順を、複数のメモリランクに対してインターリーブアクセスするように再配置するためのアドレス変換テーブルを備えるようにしてもよい。
【００２１】
第６の展開形態のメモリ制御装置において、ランク管理部は、マルチワードバーストアクセス時のワード長に少なくとも１ワード長を加えたバーストデータを格納するデータバッファを備え、メモリ管理部からマルチワードバーストに対応する命令が来た場合に、１ワード分余計にデータバッファにプリフェッチしておくようにしてもよい。
【００２２】
第７の展開形態のメモリ制御装置において、ランク管理部は、同一ＲＡＳ（Ｒｏｗ  Ａｄｄｒｅｓ  Ｓｔｒｏｂｅ）の最後のＣＡＳ（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓ  Ｓｔｒｏｂｅ）アドレスを読み込む命令が来た場合、連続する次のＲＡＳアドレスに続く先頭ＣＡＳアドレスから１ワード長のバーストデータをプリフェッチしてデータバッファに保持するようにしてもよい。
【００２３】
第８の展開形態のメモリ制御装置において、ランク管理部は、データバッファにプリフェッチした先読みデータが次のリード命令のアドレスにヒットした場合にノーウェイトで該先読みデータをデータバスに出力し、次のコマンドの受け付けを実行し、コマンドバッファにプリフェッチした先読みデータが次のリード命令にミスヒットした場合に該先読みデータを破棄し、与えられた命令を実行するようにしてもよい。
【００２４】
第９の展開形態のメモリ制御装置において、メモリ管理部は、プロセッサからの命令がリード命令かライト命令かを分別するアクセス要求分別器と、分別されたリード命令をバッファリングする読み込み要求バッファと、分別されたライト命令をバッファリングする書き込み要求バッファとを備え、リード命令とライト命令とがそれぞれ読み込み要求バッファと書き込み要求バッファとにバッファリングされている場合には、リード命令を優先してランク管理部に発行するようにしてもよい。
【００２５】
第１０の展開形態のメモリ制御装置において、ランク管理部は、リード命令の対象となるランクメモリが読み込み処理している間に、ランク管理部に接続されるランクメモリに対するライト命令及び該ライト命令に係るデータをそれぞれデコーダバッファおよびデータバッファに転送すると共に、該ライト命令の対象となるランクメモリがリード命令の対象となるランクメモリと異なる場合には該ライト命令を実行するようにしてもよい。
【００２６】
第１１の展開形態のメモリ制御装置において、メモリ管理部は、プロセッサからライト命令と該ライト命令に係るライトデータとを同時に受け取るようにしてもよい。
【００２７】
第１２の展開形態のメモリ制御装置において、ランク管理部は、該当以外のランクメモリによる通信でデータバスがビジーであるタイミングにおいて、該当のランクメモリに対するリフレッシュ動作を行うようにしてもよい。
【発明の効果】
【００２８】
本発明によれば、主メモリバスを流れるコマンドとデータが連続的となって、バス利用効率を飛躍的に高めることができる。その第１の理由は、メモリマネジメントユニットで発行する命令が、実メモリのアクセスレイテンシを考慮する必要がないことによる。第２の理由は、リード命令とライト命令に掛かるデータバスの使用時間差を利用し、リード命令優先で命令の入れ替えを意図的に実施することによる。第３の理由は、ランクマネジメントユニットと各メモリランクとが独立しており、それぞれのメモリランクで異なる命令を並列に実行でき、且つ、アドレス変換テーブルに従ってランクインターリーブを実施しているので、アドレス指定のディレイやプリチャージ等に掛かるクロックを隠蔽し、高速なデータ入出力が行われることによる。
【００２９】
また、本発明によれば、リードプリフェッチ、及びデータ付きＡＣＴ命令によってリード／ライト時間を短縮することが出来る。その理由は、コマンドデコーダに与えられたリード命令の連続するアドレスの１ワード分をデータバッファでプリフェッチし、次のリード命令と一致した場合に、高速に出力できるためである。また、常にデータバッファにあるライト命令のデータをモニタし、ライト命令より１クロック早いＡＣＴ命令からデータ出力しても保持してメモリランクに書き込めるためである。
【発明を実施するための最良の形態】
【００３０】
図１は、本発明の実施形態に係るメモリ制御装置の構成を示すブロック図である。図１において、メモリ制御装置は、フロントサイドバス５１を介してプロセッサ３０と接続されるメモリマネジメントユニット１０と、副メモリバス５３ａ、５３ｂをそれぞれ介してメモリランク４０ａ、４０ｂとを接続するランクマネジメントユニット２０とを備える。メモリマネジメントユニット１０は、メモリランク４０ａ、４０ｂを直接接続せずに、主メモリバス５２ａ、５２ｂを介し、メモリモジュール単位またはランク単位でランクマネジメントユニット２０と接続する。ここで、主メモリバス５２ａは、データを伝送するバスであって、主メモリバス５２ｂは、命令（コマンド）とアドレスを伝送するバスである。なお、図１ではスタブ接続の例を示しているが、ツリー型、ディジーチェイン型等であってもよい。また、メモリランクが２個である例を示しているが、３個以上あってもよいことはいうまでも無い。さらに、メモリマネジメントユニットは、１個の例を示しているが、２個以上あってもよい。
【００３１】
メモリマネジメントユニット１０は、データバッファ１１、アクセス要求分別器１２、読み込み要求バッファ１３、書き込み要求バッファ１４、コマンドエンコーダ１５、アドレス変換テーブル１６、コマンド／クロックカウンタ１７、入出力コントローラ１８を備える。データバッファ１１は、フロントサイドバス５１を介してプロセッサ３０から出力されるライトデータをバッファリングし、入出力コントローラ１８の制御にしたがって主メモリバス５２ａに出力する。また、主メモリバス５２ａから入出力コントローラ１８の制御にしたがって受け取ったデータをバッファリングし、フロントサイドバス５１を介してプロセッサ３０に出力する。アクセス要求分別器１２は、フロントサイドバス５１を介してプロセッサ３０から出力される命令を受け取り、受け取った命令が読み込み命令であれば読み込み要求バッファ１３に出力し、受け取った命令が書き込み命令であれば書き込み要求バッファ１４に出力する。読み込み要求バッファ１３は、読み込み命令をバッファリングして入出力コントローラ１８に出力する。また、書き込み要求バッファ１４は、書き込み命令をバッファリングして入出力コントローラ１８に出力する。
【００３２】
入出力コントローラ１８は、入力した読み込み命令あるいは書き込み命令を、アドレス変換テーブル１６およびコマンド／クロックカウンタ１７の内容を参照して出力タイミングを調整してスケジューリングし、コマンドエンコーダ１５に出力する。また、書き込み命令の場合にはフロントサイドバス５１を介してプロセッサ３０にライトリクエスト５５を出力する。アドレス変換テーブル１６は、アドレスマップの再配置を行うためのデータを備える。コマンド／クロックカウンタ１７は、主メモリバス５２ａのバスビジーをカウントするカウンタやメモリランクにおけるリフレッシュ等のビジーをカウントするカウンタを備える。コマンドエンコーダ１５は、入出力コントローラ１８から出力される命令を主メモリバス５２ｂに出力する。なお、コマンドエンコーダ１５は、出力するに際に誤り訂正符号（ＥＣＣ、Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を付加するようにしてもよい。
【００３３】
一方、ランクマネジメントユニット２０は、コントローラ２１、データバッファ２２、デコーダバッファ２３ａ、２３ｂ、コマンドデコーダ２４ａ、２４ｂ、初期パラメータ記憶用ＥＥＰＲＯＭ２５、コマンド／クロックカウンタ２６を備える。コントローラ２１は、主メモリバス５２ｂを介して送られる命令を解読し、初期パラメータ記憶用ＥＥＰＲＯＭ２５およびコマンド／クロックカウンタ２６の内容を参照して出力タイミングをスケジューリングし、デコーダバッファ２３ａ（２３ｂ）に出力する。なお、コマンドエンコーダ１５が誤り訂正符号を付加する場合、コントローラ２１にも対応する誤り訂正符号を解読する機能を備えるようにする。データバッファ２２は、主メモリバス５２ａを介して送られるデータをバッファリングし、コマンドデコーダ２４ａ（２４ｂ）に出力する。また、コマンドデコーダ２４ａ（２４ｂ）から出力されるデータをバッファリングし、主メモリバス５２ａに出力する。コマンドデコーダ２４ａは、デコーダバッファ２３ａから出力される命令に基づき、データバッファ２２にバッファリングされているデータを副メモリバス５３ａを介してメモリランク４０ａに出力する。あるいは、メモリランク４０ａから副メモリバス５３ａを介して出力されるデータをデータバッファ２２に出力する。コマンドデコーダ２４ｂは、デコーダバッファ２３ｂから出力される命令に基づき、データバッファ２２にバッファリングされているデータを副メモリバス５３ｂを介してメモリランク４０ｂに出力する。あるいは、メモリランク４０ｂから副メモリバス５３ｂを介して出力されるデータをデータバッファ２２に出力する。
【００３４】
このようにランクメモリ（メモリモジュール）を２以上実装する事で、効果を発揮する。なお、主メモリバスを複数持たせるような多チャネル方式に適用しても良い。また、主メモリバス５２ａ、５２ｂは電気的・論理的に互換を持たせることが可能なため、対応するモジュールでない場合でも運用できることが利便上好ましい。
【００３５】
もし、従来型メモリを使うならば、外部にコマンドデコーダチップを搭載しても良いし、新規開発するならば、実装コストおよびレイテンシ低減など性能の点でメモリチップそのものに搭載してもよい。
【００３６】
メモリマネジメントユニット１０からコントローラ２１間の主メモリバスと、コマンドデコーダ２４ａ、２４ｂからメモリランク４０ａ、４０ｂまでの副メモリバスとは、クロックには同期するが、独立したバスとする。また、主メモリバスと副メモリバスとは、速度、バスプロトコル、電気的特性が同じであっても異なっていてもよい。
【００３７】
主メモリバスのコマンド及びアドレスの送出は、従来に比べて信号の検出に許される許容時間が短くなるために確実に伝達する必要がある。そこで、差動信号振幅（電位差）を小さくしてローレベル又はハイレベルへの信号切り替えを素早く完了させる事で、定常状態が安定している時間を確保することが好ましい。また、コマンド及びアドレス信号にのみ、パリティまたは誤り訂正符号（ＥＣＣ、Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を付加し、主メモリバスによる命令伝達を確実に行うようにしてもよい。
【００３８】
コントローラ２１、データバッファ２２、コマンドデコーダ２４ａ、２４ｂと、各ランク間のコマンド・データ通信において、クロックスキューや遅延によるデータ入出力のコンフリクトを避けるために、事前に主メモリバス５２ａ、５２ｂのクロックスキューや遅延を計測し、待機時間の調整を行うようにすることが好ましい。さらに、稼働中温度の影響による遅延変化を反映するため、適時計測と待機時間調整とを行うように構成するようにしてもよい。また、等長配線・微小差動信号・終端抵抗キャリブレーション等によって、出来る限り信号到達時間差を緩和するように構成されることが好ましい。
【００３９】
このように構成されるメモリ制御装置の主だった機能は、以下のとおりである。
１．メモリランク単位に独立して命令を受け付けるランクインディペンデント機能。
２．複数のランクがアドレスマップの配置により交互動作による高速化を行うランクインターリーブ機能。
３．同一ランクで連続アドレスを読む場合、命令が無くても次の列アドレス（ＣＡＳ）、または次の行アドレス（ＲＡＳ）の先頭を先読みしておくプリフェッチリード機能。
４．メモリ書き込み命令前のＡＣＴ命令と同時にデータも配信し、必要クロック数を削減して効率化するデータ付ＡＣＴ命令機能。
５．メモリ素子が実際に必要なウェイトを考慮せずに命令を発行し、メモリチップの直前で実アクセス手法に変換する連続命令機能。
６．メモリマネジメントユニットとランクマネジメントユニットとは、独立したコマンド／クロックカウンタを持ち、与える／与えられた命令から逆算して、リード／ライトで必要なデータバスのＢＵＳＹクロックをインクリメントし、割り込み等を用いずにバス調停を行う機能。
７．チップセレクト信号を用いて、各コマンドデコーダを特定して命令を与える機能。
８．高速な命令コマンド／アドレス情報を誤りなくコマンドデコーダに送信するＥＣＣ機能。これは、必要に応じて付加される。
【００４０】
まずランクインディペンデント機能について説明する。それぞれのメモリランク４０ａ、４０ｂは、独立した副メモリバス５３ａ、５３ｂを介して、ランクマネジメントユニット２０に接続される。したがって、メモリランク毎に異なる命令動作を同時に実行することができる。これにより、メモリマネジメントユニット１０とランクマネジメントユニット２０間の主メモリバス５２ａ、５２ｂは、メモリチップのアクセスレイテンシを加味せずに命令、アドレス、データを送り込むことができる。
【００４１】
主メモリバス５２ａから各コマンドデコーダ２４ａ、２４ｂに対する命令は、全てのランクがスタブ接続となっているので全てに同一に伝達される。なお、ランクの選択には、従来から存在するメモリチップのチップセレクト信号を用いる。命令は、すべてランクマネジメントユニット２０のデコーダバッファ２３ａ、２３ｂに取り込まれ、自コマンドデコーダに対する命令と自コマンドデコーダ以外の命令とに分別される。
【００４２】
自コマンドデコーダに対する命令は、実際のメモリチップのレイテンシを加算して順次、副メモリバス５３ａ（５３ｂ）へ命令を発行し、メモリランク４０ａ（４０ｂ）へのデータ入出力を行う。ライト命令の場合、ライトデータは、コントローラ２１からの命令と同時に与えられてコマンドデコーダ２４ａ（２４ｂ）に併設されるデータバッファ２２に蓄えられ、メモリチップ所定のレイテンシ等のアクセスタイミングにしたがってメモリランクに送出される。リード命令の場合、リードデータは、メモリランク４０ａ（４０ｂ）に命令を与えて所定のレイテンシ後にデータバッファ２２へ格納され、主メモリバス５２ａへの出力を待機する。
【００４３】
自コマンドデコーダに対する命令ではない場合、コマンドデコーダは、他ランクに対する命令そのものは無視するが、命令から逆算して、データバスがビジーであるタイミングを把握する。
【００４４】
与えられたリード命令で、データバッファ２２にリードデータの準備が出来た場合には、コマンド／クロックカウンタ２６に記録されているデータバスビジー予定記録に従い、最短な空きタイミングでデータを主メモリバス５２ａへ送出する。この場合、他のランクマネジメントユニットでは、データバスビジー予定記録に従ったスケジューリングがなされているため、主メモリバス５２ａにおけるコンフリクトは発生しない。
【００４５】
ランクインターリーブ機能において、各メモリランク４０ａ、４０ｂに対するデータの格納は、最もデータ出力効率の高いバースト長１ワード分のデータ、または、同一ＲＡＳで連続するＣＡＳにあるデータ長を最低単位としてインターリーブアクセスできるよう区画を切り分けてアドレス配置しアドレス変換テーブル１６に記録する。リード／ライト命令を与える場合、実際のメモリチップに必要なレイテンシを加味せず各ランクに命令を与えられるために分散していても、データバスへの入出力は連続となる。
【００４６】
アドレス変換テーブル１６は、図２に示すようなアドレスマップの再配置を行うためのテーブルである。このテーブルによって、プロセッサ３０上の論理アドレスマップであるメモリアドレス空間は、図２（ａ）に示すようにアクセス順（１−１、２−１、・・）に、例えばランク１−１〜ランク４−２のように再配置される。再配置されたメモリアドレスマップは、図２（ｂ）に示すようなランク単位に分かれた物理アドレスマップとなる。物理アドレスマップでは、空間的に分離されているために、１つのランクにアクセスが集中することがなく、読み込みや書き込みにおけるレイテンシを隠蔽することによってアクセスの高速化が可能となる。
【００４７】
次に、プリフェッチリード機能について説明する。各ランクマネジメントユニット２０に併設のデータバッファ２２には、１ワード分以上のキャッシュメモリ区画を持たせ、与えられたリード命令に対し、連続する次アドレスに対応する１ワード分のデータ（プリフェッチデータ）をプリフェッチする。
【００４８】
メモリマネジメントユニット１０側では、コマンド／クロックカウンタ１７を参照することであらかじめ連続アドレスであるとわかっている。したがって、キャッシュヒットすると判断される場合は、コマンドデコーダ２４ａ（２４ｂ）からメモリランク４０ａ（４０ｂ）へリード命令によってデータを読み出す迄の本来発生するレイテンシを加味せず、データバッファから主メモリバス５２ａへデータを出力することができる。
【００４９】
このプリフェッチ済みデータを読み出すためにリード命令を与える場合は、リードプリフェッチ命令を新たに定義し、ランクマネジメントユニット２０に発行する。これは、通常よりレイテンシの少ないリード命令であることを明示し、データバッファがビジーになるタイミングが早くなる事を他のランクにあるコマンドデコーダに伝える。これによって、ＲＡＳ−ｔｏ−ＣＡＳ遅延とＣＡＳレイテンシとの和に相当する待機時間を省略することができる。そして、空いたメモリバスの帯域分を次のアドレス読み込み命令のために前倒して実行することができる。
【００５０】
コントローラ２１からのリード命令が同じＲＡＳの最後のＣＡＳアドレスであった場合、自動的に連続する次のＲＡＳアドレスの先頭のＣＡＳにある１ワード分のデータをプリフェッチする。これによって、通常ではバースト転送できない、異なるＲＡＳ指定の場合であっても、レイテンシに左右されずにデータを高速に出力できることとなる。
【００５１】
もし、連続しないアドレスのリード／ライト命令がプリフェッチ動作完了前または動作中に来た場合には、プリフェッチ動作を実行せずに、リード／ライト動作を実行する。プリフェッチ動作中であれば、リード／ライト命令を与えることでプリフェッチのバースト動作を中止する。また、連続しないアドレスのリード命令がプリフェッチ動作完了後に来た場合は、ミスヒットと判断し、キャッシュに相当するデータバッファ２２の内容をクリアした上で、次のデータを通常に読み込むと同時に、後続の１ワード分をプリフェッチして新たに格納する。
【００５２】
メモリマネジメントユニット１０は、後に説明するコマンド／クロックカウンタ１７を備え、メモリランクのコントローラ２１は、後に説明するコマンド／クロックカウンタ２６を備える。そして、データバッファ２２又は他のランクが、データバスである主メモリバス５２ａを使っているクロック数、或いは使う予定のクロック数をカウントし、その間は自ランクによるアクセスを抑制するバス調停機構を設ける。
【００５３】
次に、メモリ制御装置の動作の詳細について説明する。まず、プロセッサ３０は、フロントサイドバス５１を介してメモリマネジメントユニット１０へ、メモリに対するリード・ライトコマンドを発行する。コマンドとアドレスは、アクセス要求分別器１２にかけられてリードコマンドかライトコマンドかで分別され、読み込み要求バッファ１３と書き込み要求バッファ１４とに格納される。書き込み命令の場合は、データバッファ１１に一時格納され、プロセッサに対し完了したことを伝達する（ライトバック動作）。
【００５４】
入出力コントローラ１８は、以下で説明するようなフローチャートに基づき、命令の発行順序を確定し、アドレス変換テーブル１６の内容に従って出力ランク先を確定する。そして、コマンドエンコーダ１５に命令し、コマンド／クロックカウンタ１７にデータバスのビジーとなる予定を記録する。
【００５５】
また、コマンド／クロックカウンタ１７は、図３に示すように、データバスビジーをカウントするカウンタＣ０、それぞれのランクにおけるリフレッシュ等のビジーをカウントするカウンタＣ１〜Ｃｎを備える。カウンタＣ０は、各ランクに発行したリード命令あるいはライト命令によってインクリメントされる。カウンタＣ１〜Ｃｎは、それぞれのランクにおけるリフレッシュ等によってインクリメントされる。そして、カウンタＣ０〜Ｃｎは、１クロック経過する毎にデクリメントされる。入出力コントローラ１８は、クロック毎にカウンタＣ０を調べることでデータバスがビジーであるか否かを確認することができる。また、入出力コントローラ１８は、クロック毎にカウンタＣ１〜Ｃｎを調べることでそれぞれのランクがビジーであるか否かを確認することができる。
【００５６】
次に、入出力コントローラ１８の動作について説明する。図４は、入出力コントローラ１８の動作を表すフローチャートである。
【００５７】
ステップＳ１において、書き込み要求バッファ１４にライトコマンドがあるか否かを判断し、ライトコマンドがあればステップＳ２に進み、なければステップＳ１０に進む。
【００５８】
ステップＳ２において、ライトのウェイトカウンタがｎ以上か否かを判断し、ｎ以上であればステップＳ４に進み、ｎ未満であればステップＳ３に進む。
【００５９】
ステップＳ３において、読み込み要求バッファ１３にリードコマンドがあるか否かを判断し、リードコマンドがあればステップＳ５に進み、なければステップＳ４に進む。
【００６０】
ステップＳ４において、ライトコマンドを実行し、ライトウェイトカウンタをリセットする。さらに、コマンドカウンタ１７におけるバスビジーカウント値（カウンタＣ０の値）をインクリメントし、ステップＳ１１に進む。
【００６１】
ステップＳ５において、ライトのウェイトカウンタをインクリメントし、ステップＳ６に進む。
【００６２】
ステップＳ６において、リードコマンドを実行し、ステップＳ７に進む。
【００６３】
ステップＳ７において、同じランクのリードコマンドが連続アドレスか否かを判断し、連続であればステップＳ８に進み、連続でなればステップＳ９に進む。
【００６４】
ステップＳ８において、カウンタＣ０の値をプリフェッチ分短縮してインクリメントし、ステップＳ１１に進む。
【００６５】
ステップＳ９において、カウンタＣ０の値をインクリメントし、ステップＳ１１に進む。
【００６６】
ステップＳ１０において、読み込み要求バッファ１３にリードコマンドがあるか否かを判断し、リードコマンドがあればステップＳ６に進み、なければステップＳ１１に進む。
【００６７】
ステップＳ１１において、データバッファ２２にリードコマンドが届いたか否かを判断し、届いたのであればステップＳ１２に進み、さもなければステップＳ１３に進む。
【００６８】
ステップＳ１２において、ライトリクエストフラブを立て、プロセッサ３０にリードデータ結果を送出し、終了後ライトリクエストフラグを落とし、ステップＳ１３に進む。
【００６９】
ステップＳ１３において、リフレッシュ時期か否かを判断し、リフレッシュ時期であればステップＳ１４に進み、さもなければステップＳ１８に進む。
【００７０】
ステップＳ１４において、リフレッシュウェイトカウンタ（カウンタＣ１〜Ｃｎのいずれか）がｎ以上か否かを判断し、ｎ以上であればステップＳ１６に進み、ｎ未満であればステップＳ１５に進む。
【００７１】
ステップＳ１５において、他のランクがリフレッシュ動作中か否かを判断し、動作中であればステップＳ１７に進み、さもなければステップＳ１６に進む。
【００７２】
ステップＳ１６において、リフレッシュを実行し、リフレッシュウェイトカウンタをクリアする。また、該当ランクのコマンド／クロックカウンタにビジーフラグを立て、ステップＳ１８に進む。
【００７３】
ステップＳ１７において、リフレッシュウェイトカウンタをインクリメントし、ステップＳ１８に進む。
【００７４】
ステップＳ１８において、経過時間分だけコマンド／クロックカウンタをデクリメントし、ステップＳ１に戻る。
【００７５】
命令とデータは、コマンド／クロックカウンタ１７の内容を参照して、主メモリバス５２ａ、５２ｂの空いているタイミングで送出され、主メモリバスに接続されている全てのランクマネジメントユニット２０へ届けられる。このうちアドレスとコマンドは、主メモリバス５２ｂを介してコントローラ２１へ届けられ、データは主メモリバス５２ａを介してデータバッファ２２へ届けられる。
【００７６】
コントローラ２１は、以下で説明するフローチャートに従って命令の内容を判断し、チップセレクト信号で自ランクへの命令であることが判明した場合、直ちにデコーダバッファ２３ａあるいは２３ｂに命令を送る。該当ランク以外の命令であれば、命令とデータとを破棄する。また、コントローラ２１は、他にも、ＥＣＣ照合によるエラー確認と、自ランクに対する命令についてコマンド／クロックカウンタ２６をインクリメントし、データバスと自ランクのビジー状況を把握する。
【００７７】
また、コマンド／クロックカウンタ２６は、図５に示すように、データバスビジーをカウントするカウンタＤ０、自ランクにおけるリフレッシュ等のビジーをカウントするカウンタＤ１を備える。カウンタＤ０は、自ランクおよび他のランクに発行したリード命令あるいはライト命令によってインクリメントされる。カウンタＤ１は、自ランクにおけるリフレッシュ等によってインクリメントされる。そして、カウンタＤ０〜Ｄ１は、１クロック経過する毎にデクリメントされる。コントローラ２１は、クロック毎にカウンタＤ０を調べることでデータバスがビジーであるか否かを確認できる。また、コントローラ２１は、クロック毎にカウンタＤ１を調べることで自ランクがビジーであるか否かを確認することができる。
【００７８】
次に、コントローラ２１の動作について説明する。図６は、コントローラ２１の動作を表すフローチャートである。
【００７９】
ステップＳ２１において、命令がＡＣＴコマンドか否かを判断し、ＡＣＴコマンドであればステップＳ２２に進み、ＡＣＴコマンドでなければステップＳ３２に進む。
【００８０】
ステップＳ２２において、データバッファ２２にデータを取り込み、ステップＳ２３に進む。
【００８１】
ステップＳ２３において、自ランクに対するライト命令か否かを判断し、自ランクに対するライト命令であればステップＳ２５に進み、さもなければステップＳ２４に進む。
【００８２】
ステップＳ２４において、データバッファ２２に取り込み中のデータを破棄し、ステップＳ２６に進む。
【００８３】
ステップＳ２５において、データバッファ２２に取り込み中のデータを保持し、デコーダバッファにライト命令を書き込み、カウンタＤ０をインクリメントし、ステップＳ２６に進む。
【００８４】
ステップＳ２６において、自ランクに対するリード命令か否かを判断し、自ランクに対するリード命令であればステップＳ２７に進み、さもなければステップＳ３２に進む。
【００８５】
ステップＳ２７において、リード命令が、前回の自ランクに対するリード命令と連続するアドレスに対するものであるか否かを判断し、連続するアドレスに対するものであればステップＳ２８に進み、さもなければステップＳ２９に進む。
【００８６】
ステップＳ２８において、データバッファ２２中のプリフェッチデータを主メモリバスへ送信する。また、カウンタＤ０をインクリメントし、ステップＳ３２に進む。
【００８７】
ステップＳ２９において、自ランクに他の命令が来ているか否かを判断し、来ていればステップＳ３０に進み、さもなければステップＳ３１に進む。
【００８８】
ステップＳ３０において、デコーダバッファ２３ａ（２３ｂ）に読み込みを命令する。また、カウンタＤ０をインクリメントし、ステップＳ３２に進む。
【００８９】
ステップＳ３１において、１ワード分のプリフェッチした読み込み命令を加算してデコーダバッファ２３ａ（２３ｂ）に命令する。また、カウンタＤ０をインクリメントし、ステップＳ３２に進む。
【００９０】
ステップＳ３２において、リード命令の結果がデータバッファに出力される時間以降であって、かつデータバスに対して予約したタイミングになったか否かを判断し、時間以降かつ予約したタイミングになったのであればステップＳ３３に進み、さもなければステップＳ３４に進む。
【００９１】
ステップＳ３３において、データバッファ２２上のデータを主メモリバスへ出力し、ステップＳ３４に進む。
【００９２】
ステップＳ３４において、自ランクに対するリフレッシュコマンドか否かを判断し、自ランクに対するリフレッシュコマンドであればステップＳ３５に進み、さもなければステップＳ３６に進む。
【００９３】
ステップＳ３５において、リフレッシュを実施し、自ランクがビジーである分、カウンタＤ１をインクリメントし、ステップＳ３６に進む。
【００９４】
ステップＳ３６において、経過時間分だけカウンタＤ０、Ｄ１をデクリメントし、ステップＳ２１に戻る。
【００９５】
なお、コントローラ２１は、メモリランクにどの速度グレードのメモリ素子が搭載されているかが記録された初期パラメータ記憶用ＥＥＰＲＯＭ２５の内容を起動時に読み出し、メモリマネジメントユニット１０へ通知するものとする。
【００９６】
デコーダバッファ２３ａ（２３ｂ）は、コマンドデコーダ２４ａ（２４ｂ）へ命令を送る。さらにコマンドデコーダ２４ａ（２４ｂ）は、実メモリが搭載されているメモリランク４０ａ（４０ｂ）のアクセスタイミングと必要ディレイとを加算して副メモリバス５３ａ（５３ｂ）に命令を発行する。この際、コマンドデコーダ２４ａ（２４ｂ）は、クロック毎には命令を処理できないため、命令の実行までデコーダバッファ２３ａ（２３ｂ）に留め置かれＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）で処理される。
【００９７】
読み出しの場合には、結果がデータバッファ２２に格納され、コマンド／クロックカウンタ２６にインクリメントしたデータバス予約に従い、主メモリバス５２ａを介しメモリマネジメントユニット１０へ送出される。データは、データバッファ１１に格納され、ライトリクエスト５５を出してから、プロセッサ３０へ送出される。
【００９８】
以上のようなメモリ制御装置では、１つのアクセス単体で見ると、余り効果が見えないが、主メモリバス５２ａ、５２ｂを流れるコマンドとデータの情報密度が高まるようになっている。この様子を、リード命令を例にタイミングチャートで説明する。
【００９９】
図７は、連続命令発行とランクインターリーブによる動作タイミングを示す図である。ここではバースト長が２である場合を示す。本実施例のメモリ制御装置によれば、ＡＣＴ命令とＲＥＡＤ命令とを、例えばタイミングＴ０〜Ｔ７にかけて４連続で発行することができる。ＲＥＡＤ命令に対するリードデータは、Ｑ１−１〜Ｑ４−２のように４クロック遅れで連続して出力される。一方、従来のメモリ制御装置によれば、ＡＣＴ命令後、４クロック遅れでＲＥＡＤ命令に対するリードデータが出力される。しかし、連続してＡＣＴ命令とＲＥＡＤ命令を発行することはできず、プリチャージやレイテンシによって遅れ、タイミングＴ６においてＡＣＴ命令を発行するために、次のリードデータが出力されるのは、タイミングＴ１０となってしまう。
【０１００】
また、図８は、プリフェッチリードによる動作タイミングを示す図である。ここでもバースト長が２である場合を示す。本実施例のメモリ制御装置によれば、１つ目のＲＥＡＤ命令に続くアドレスをプリフェッチしてデータバッファ２２に保持しておく。次のＲＥＡＤ命令がこのアドレスに引き続く場合、データバッファ２２からリードデータが出力されるので高速（２クロック遅れ）に読み出すことができる。一方、従来のメモリ制御装置によれば、ＡＣＴ命令後、４クロック遅れでＲＥＡＤ命令に対するリードデータが出力される。
【０１０１】
さらに、図９は、データ付ＡＣＴ命令による動作タイミングを示す図である。ここでもバースト長が２である場合を示す。本実施例のメモリ制御装置によれば、ＡＣＴ命令と同時にデータを出力する（データ付ＡＣＴ命令）ことができる（ＡＣＴ１に対しＱ１−１）。それぞれのデータバッファ２２に常にデータを流し、自ランクへのライト命令である場合にだけ保持し、書き込みを実行する。一方、従来のメモリ制御装置によれば、ライト命令の発行時に書き込みデータの出力を開始し、ＤＱ出力中は次の命令を受け付けないので、間隔が空いてしまう。
【０１０２】
以上説明した構成では、既存のＤＲＡＭチップを用いて、外部のランクマネジメントユニット２０をメモリモジュール上へ搭載した場合を想定している。もし、付加機能としてメモリチップへ機能を搭載する場合には、ランクマネジメントユニット２０をそのままメモリチップへ搭載し、スタブ接続されている全てのランクが独立して運用出来ることとなる。この場合、大きな回路変更は必要なく、副メモリバスが内蔵されるため、レイテンシ低減、高速化、コスト低減、消費電力低減、これに伴う発熱量の低下、そして故障率低下に寄与する。
【０１０３】
また、他のメモリアクセスにおける帯域向上技術（例えばメモリバスのマルチチャネル化）と組み合わせてもよい。
【０１０４】
さらに、ランクマネジメントユニット２０をメモリチップに搭載するなど、実装形態を変更しても効果がある。また、主メモリバス５２ａ、５２ｂ、或いは副メモリバス５３ａ、５３ｂのそれぞれについて、異なるバスアーキテクチャやプロトコル（速度・規格含む）に変えてもよい。特にポイントツーポイント接続する場合、従来に比べてより高速なアクセスタイミングを設定することができ好ましい。
【０１０５】
以上のように、本発明のメモリ制御装置によれば、アドレス選択やリフレッシュなど、レイテンシによるメモリバス転送速度の低下を抑制し、帯域を効率的に利用して実効速度を向上することができる。また、連続したアドレスにおける読み込みアクセスで、ＲＡＳが変わる場合におけるメモリアクセス速度の低下を抑制することができる。さらに、メモリバスの電気的・論理的互換性を維持して、汎用ＤＲＡＭチップを使用し、安価な速度改善手段を提供することができる。すなわち、一つのメモリバスで、複数ランク及びメモリモジュールに異なる命令を並列に実行させ、入出力データの衝突を簡単な調停で回避することが可能である。
【産業上の利用可能性】
【０１０６】
本発明によれば、高性能コンピュータ、特に省スペース性を要求されるノートパソコンや携帯端末、ブレードサーバー等のメモリバス帯域を必要とする用途に適用できる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の実施形態に係るメモリ制御装置の構成を示すブロック図である。
【図２】アドレス変換テーブルによるアドレスマップの再配置を説明する図である。
【図３】メモリマネジメントユニット側のコマンド／クロックカウンタの構成を示す図である。
【図４】メモリマネジメントユニット側のコントローラの動作を表すフローチャートである。
【図５】ランクマネジメントユニット側のコマンド／クロックカウンタの構成を示す図である。
【図６】ランクマネジメントユニット側のコントローラの動作を表すフローチャートである。
【図７】連続命令発行とランクインターリーブによる動作タイミングを示す図である。
【図８】プリフェッチリードによる動作タイミングを示す図である。
【図９】データ付ＡＣＴ命令による動作タイミングを示す図である。
【図１０】従来の代表的なＤＲＡＭメモリのアクセスタイミングを示す図である。
【符号の説明】
【０１０８】
１０  メモリマネジメントユニット
１１  データバッファ
１２  アクセス要求分別器
１３  読み込み要求バッファ
１４  書き込み要求バッファ
１５  コマンドエンコーダ
１６  アドレス変換テーブル
１７  コマンド／クロックカウンタ
１８  入出力コントローラ
２０  ランクマネジメントユニット
２１  コントローラ
２２  データバッファ
２３ａ、２３ｂ  デコーダバッファ
２４ａ、２４ｂ  コマンドデコーダ
２５  初期パラメータ記憶用ＥＥＰＲＯＭ
２６  コマンド／クロックカウンタ
３０  プロセッサ
４０ａ、４０ｂ  メモリランク
５１  フロントサイドバス
５２ａ、５２ｂ  主メモリバス
５３ａ、５３ｂ  副メモリバス
５５  ライトリクエスト
【図１】
2007183816.tif 000003
【図２】
2007183816.tif 000004
【図３】
2007183816.tif 000005
【図４】
2007183816.tif 000006
【図５】
2007183816.tif 000007
【図６】
2007183816.tif 000008
【図７】
2007183816.tif 000009
【図８】
2007183816.tif 000010
【図９】
2007183816.tif 000011
【図１０】
2007183816.tif 000012