(57)【特許請求の範囲】
【請求項１】
複数の記憶装置に共通の通信経路を介して前記複数の記憶装置をそれぞれ制御する記憶制御装置であって、
前記複数の記憶装置それぞれのデータ書き込み時及びデータ読み出し時のレイテンシを示すレイテンシ情報を保持する保持部と、
演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対して発行されたリクエストを記憶する記憶部と、
前記記憶部から前記リクエストを出力する出力部と、
前記出力部から受信した前記リクエストがデータ書き込みのリクエストであるかデータ読み出しのリクエストであるかを判別し、
データ書き込みのリクエストであると判別した場合には、前記送信先の記憶装置のデータ書き込み時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ書き込み時のレイテンシとに基づいた遅延時間だけ前記データ書き込みのリクエストを遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信し、
データ読み出しのリクエストであると判別した場合には、前記送信先の記憶装置のデータ読み出し時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ読み出し時のレイテンシとに基づいた遅延時間だけ前記データ読み出しのリクエストを遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信する
送信部と、
前記出力部が前記リクエストを出力してから所定時間経過後、前記共通の通信経路を介して、前記出力部が出力した前記リクエストに対応するデータの送信または受信を行うデータ送受信部と、を備えることを特徴とする記憶制御装置。
【請求項２】
前記送信部は、
前記出力部から受信した前記リクエストがデータ書き込みのリクエストであると判別した場合には、前記複数の記憶装置のデータ書き込み時のレイテンシのうちの最大レイテンシと前記送信先の記憶装置のデータ書き込み時のレイテンシとの差分に基づいて、前記データ書き込みのリクエストについての前記遅延時間を算出し、
前記出力部から受信した前記リクエストがデータ読み出しのリクエストであると判別した場合には、前記複数の記憶装置のデータ読み出し時のレイテンシのうちの最大レイテンシと前記送信先の記憶装置のデータ読み出し時のレイテンシとの差分に基づいて、前記データ読み出しのリクエストについての前記遅延時間を算出する
ことを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記所定時間は、前記出力部から受信した前記リクエストがデータ書き込みのリクエストであると前記送信部が判別した場合には、前記複数の記憶装置のデータ書き込み時のレイテンシのうちの最大レイテンシに基づいて算出され、前記出力部から受信した前記リクエストがデータ読み出しのリクエストであると前記送信部が判別した場合には、前記複数の記憶装置のデータ読み出し時のレイテンシのうちの最大レイテンシに基づいて算出されることを特徴とする請求項２記載の記憶制御装置。
【請求項４】
共通の通信経路に接続された複数の記憶装置と、
演算処理装置と、
前記共通の通信経路を介して前記複数の記憶装置をそれぞれ制御する記憶制御装置と、
を備え、
前記記憶制御装置は、
前記複数の記憶装置それぞれのデータ書き込み時及びデータ読み出し時のレイテンシを示すレイテンシ情報を保持する保持部と、
前記演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対して発行されたリクエストを記憶する記憶部と、
前記記憶部から前記リクエストを出力する出力部と、
前記出力部から受信した前記リクエストがデータ書き込みのリクエストであるかデータ読み出しのリクエストであるかを判別し、
データ書き込みのリクエストであると判別した場合には、前記送信先の記憶装置のデータ書き込み時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ書き込み時のレイテンシとに基づいた遅延時間だけ前記データ書き込みのリクエストを遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信し、
データ読み出しのリクエストであると判別した場合には、前記送信先の記憶装置のデータ読み出し時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ読み出し時のレイテンシとに基づいた遅延時間だけ前記データ読み出しのリクエストを遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信する
送信部と、
前記出力部が前記リクエストを出力してから所定時間経過後、前記共通の通信経路を介して、前記出力部が出力した前記リクエストに対応するデータの送信または受信を行うデータ送受信部と、を備えることを特徴とする情報処理装置。
【請求項５】
演算処理装置と記憶制御装置と複数の記憶装置とを有する情報処理装置の制御方法であって、
前記演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対してリクエストを発行し、
前記リクエストを前記記憶制御装置内の記憶部に記憶し、
前記記憶部から前記リクエストを出力し、
出力された前記リクエストがデータ書き込みのリクエストであるかデータ読み出しのリクエストであるかを判別し、
データ書き込みのリクエストであると判別した場合には、前記送信先の記憶装置のデータ書き込み時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ書き込み時のレイテンシとに基づいた遅延時間だけ前記データ書き込みのリクエストを遅延させ、前記複数の記憶装置に共通の通信経路を介して前記記憶制御装置から前記送信先の記憶装置に送信し、
データ読み出しのリクエストであると判別した場合には、前記送信先の記憶装置のデータ読み出し時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ読み出し時のレイテンシとに基づいた遅延時間だけ前記データ読み出しのリクエストを遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信し、
前記リクエストを出力してから所定の時間が経過した後に、前記共通の通信経路を介して、出力した前記リクエストに対応するデータの送信または受信を行う、
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶制御装置、情報処理装置、および制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）やサーバ等のコンピュータにおいて、メモリモジュールとしてDynamic Random Access Memory（ＤＲＡＭ）等が実装されたDual-Inline Memory Module（ＤＩＭＭ）が使用されている。ＤＩＭＭの種類として、例えば、Ｕ−ＤＩＭＭ（Unbuffered DIMM）、Ｒ−ＤＩＭＭ（Registered DIMM）、およびＬＲ−ＤＩＭＭ（Load-Reduced DIMM）がある。また、ＤＲＡＭの種類として、Monolithic DeviceおよびThree Dimensional Stack（3DS） Deviceがある。
【０００３】
Ｕ−ＤＩＭＭには、Monolithic DeviceのＤＲＡＭが搭載され、Ｒ−ＤＩＭＭおよびＬＲ−ＤＩＭＭには、Monolithic Deviceまたは3DS DeviceのいずれかのＤＲＡＭが搭載される。このように、ＤＩＭＭの種類と搭載されるＤＲＡＭの種類の組み合わせにより、複数の種類のメモリが存在する。
【０００４】
メモリの読み出し時にはリードレイテンシ（ＲＬ）、書き込み時にはライトレイテンシ（ＷＬ）に基づくタイミングでメモリの読み書きの処理は行われる。尚、ＲＬは、メモリコントローラがメモリにコマンドを送信してからメモリがデータを出力するまでの時間であり、ＷＬは、メモリコントローラがメモリにコマンドを送信してからメモリ上のＤＲＡＭにデータを書き込み可能になるまでの時間である。上述のようにメモリには複数の種類があり、メモリの種類毎にＷＬおよびＲＬは異なる。
【０００５】
また、ＤＩＭＭの種類に応じて、データの読み出し時又は書き込み時のデータ遅延量を設定するメモリコントローラが知られている（例えば、特許文献１参照）。メモリ回路の命令スケジューリングにおける制約を減少させるインタフェース回路が知られている（例えば、特許文献２参照）。アドレス、コマンド信号の出力タイミングを速める機能と、コントロール信号の出力タイミングを遅くする機能とを備えるメモリモジュールが知られている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１２／０９５９８０号パンフレット
【特許文献２】特表２００９−５２６３２３号公報
【特許文献３】特開２０１１−４８６８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで同一の通信経路としてのメモリチャネルに異なる種類のメモリＡ，Ｂが接続される場合を考える。そして、同一のメモリチャネルに接続されたメモリＡ，Ｂのうち、メモリＡのＷＬとＲＬに基づいて、メモリＡ，Ｂの読み書きを行うとする。その場合、メモリＡに対しては正常の読み書きがされる。しかし、メモリＢに対しては、メモリＢのＷＬとＲＬはメモリＡのＷＬとＲＬとは異なるため、例えばメモリＢが書き込み可能になる前にデータを送信してしまう等により正常な読み書きが行われない。このように、同一のメモリチャネルに異なる種類のメモリを接続すると、正常な動作が行われないという問題がある。
【０００８】
本発明の課題は、同一の通信経路に異なる種類のメモリを接続した場合に、正常な動作を可能とすることである。
【課題を解決するための手段】
【０００９】
実施の形態の記憶制御装置は、複数の記憶装置に共通の通信経路を介して前記複数の記憶装置をそれぞれ制御する。前記記憶装置は、保持部と、記憶部と、出力部と、送信部と、データ送受信部と、を備える。
【００１０】
前記保持部は、前記複数の記憶装置それぞれのデータ書き込み時及びデータ読み出し時のレイテンシを示すレイテンシ情報を保持する。
【００１１】
前記記憶部は、演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対して発行されたリクエストを記憶する。
前記出力部は、前記記憶部から前記リクエストを出力する。
【００１２】
前記送信部は、前記出力部から受信した前記リクエストがデータ書き込みのリクエストであるかデータ読み出しのリクエストであるかを判別する。前記送信部は、データ書き込みのリクエストであると判別した場合には、前記送信先の記憶装置のデータ書き込み時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ書き込み時のレイテンシとに基づいた遅延時間だけ前記データ書き込みのリクエストを遅延させる。そして、前記送信部は、前記データ書き込みのリクエストを前記共通の通信経路を介して前記送信先の記憶装置に送信する。また、前記送信部は、データ読み出しのリクエストであると判別した場合には、前記送信先の記憶装置のデータ読み出し時のレイテンシと前記複数の記憶装置のうち他の記憶装置のデータ読み出し時のレイテンシとに基づいた遅延時間だけ前記データ読み出しのリクエストを遅延させる。そして、前記送信部は、前記データ読み出しのリクエストを前記共通の通信経路を介して前記送信先の記憶装置に送信する。
【００１３】
前記データ送受信部は、前記出力部が前記リクエストを出力してから所定時間経過後に、前記共通の通信経路を介して、前記出力部が出力した前記リクエストに対応するデータの送信または受信を行う。
【発明の効果】
【００１４】
実施の形態の記憶制御装置によれば、同一の通信経路に異なる種類のメモリを接続しても正常な動作を行うことができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態に係る情報処理装置の構成図である。
【図２】実施の形態に係るＭＡＣの構成図である。
【図３】実施の形態に係るコマンド・アドレス生成回路の構成図である。
【図４】レイテンシテーブルの例である。
【図５】実施の形態に係るコマンド・アドレス変換部の処理のフローチャートである。
【図６】コマンドアドレスレイテンシ取得処理の詳細なフローチャートである。
【図７】実施の形態に係るコマンド・アドレス変換部の構成図である。
【図８】実施の形態に係る情報処理装置のライト動作を示すタイミングチャートである。
【図９】実施の形態に係る情報処理装置のリード動作を示すタイミングチャートである。
【図１０】別方法のライト動作と実施の形態のライト動作を示すタイミングチャートである。
【図１１】実施の形態に係る情報処理装置のライト動作を示すタイミングチャートである。
【図１２】実施の形態に係る情報処理装置のリード動作を示すタイミングチャートである。
【図１３】実施の形態に係るコマンド・アドレス生成回路の変形例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら実施の形態について説明する。
図１は、実施の形態に係る情報処理装置の構成図である。
【００１７】
情報処理装置１０１は、Central Processing Unit（ＣＰＵ）２０１、メモリスロット３０１−ｉ（ｉ＝１〜３）、およびＤＩＭＭ４０１−ｉを備える。情報処理装置１０１は、例えば、ＰＣやサーバ等のコンピュータである。
【００１８】
ＣＰＵ２０１は、コア２１１およびMemory Access Controller（ＭＡＣ）２２１を含む。
【００１９】
コア２１１は、ＤＩＭＭ４０１−ｉに対するリクエスト（メモリアクセスリクエスト）を発行し、リクエストをＭＡＣ２２１に送信する。コア２１１は、ＤＩＭＭ４０１−ｉへ書き込むデータ（ライトデータ）をＭＡＣ２２１へ送信し、ＤＩＭＭ４０１−ｉから読み出したデータ（リードデータ）をＭＡＣ２２１から受信する。コア２１１は、演算処理装置の一例である。
【００２０】
ＭＡＣ２２１は、コア２１１から受信したリクエストに基づいて、ＤＩＭＭ４０１−ｉへコマンドおよびアドレス（ＤＩＭＭコマンド・アドレス２）を送信し、ＤＩＭＭ４０１−ｉの制御を行う。ＭＡＣ２２１は、クロック信号およびライトデータをＤＩＭＭ４０１−ｉに送信し、ＤＩＭＭ４０１−ｉからリードデータを受信する。ＭＡＣ２２１は、記憶制御装置の一例である。尚、ＭＡＣ２２１は、ＣＰＵ２０１内部でなく、ＣＰＵ２０１の外部にあってもよい。
【００２１】
メモリスロット３０１−ｉは、ＤＩＭＭ１３１−ｉが取り付けられる差込口である。メモリスロット３０１−ｉには、それぞれＤＩＭＭ４０１−ｉが取り付けられている。以下、メモリスロット３０１−１〜３０１−３をそれぞれメモリスロットＡ〜Ｃと表記する場合がある。
【００２２】
ＤＩＭＭ４０１−ｉは、情報処理装置１０１が使用するデータを記憶する記憶装置である。ＤＩＭＭ４０１−ｉは、ＭＡＣ２２１から受信したコマンドおよびアドレスに基づいて、データの読み出しまたは書き込みを行う。また、ＤＩＭＭ４０１−ｉは、同一の通信経路としてのメモリチャネルに接続されている。すなわち、ＭＡＣ２２１とＤＩＭＭ４０１−ｉ間の通信は、ＤＩＭＭ４０１−１〜ＤＩＭＭ４０１−３に共通のメモリチャネルを介して行われる。よって、ＭＡＣ２２１から送信されたコマンド、アドレス、およびデータは、同一のメモリチャネルを介して３つのＤＩＭＭ４０１−ｉに送信され、ＤＩＭＭ４０１−ｉから送信されたデータは同一のメモリチャンネルを介してＭＡＣ２２１に送信される。また、ＤＩＭＭ４０１−ｉは、それぞれ異なる種類のメモリである。ＤＩＭＭ４０１−１〜ＤＩＭＭ４０１−３は、それぞれＤＩＭＭ  Ａ〜ＤＩＭＭ  ＣまたはメモリＡ〜メモリＣと表記する場合がある。以下、ＭＡＣ２２１からＤＩＭＭ３０１−ｉへ送信されるライトデータまたはＤＩＭＭ３０１−ｉからＭＡＣ２２１へ送信されるリードデータはＤＩＭＭデータと表記する場合がある。
【００２３】
図２は、実施の形態に係るＭＡＣの構成図である。
ＭＡＣ２１１は、リクエストキュー２２２、リクエスト選択回路２２３、ビジー管理部２２４、コマンド・アドレス生成回路２２４、片方向Input/Output（Ｉ／Ｏ）２２６、ＤＩＭＭ構成情報レジスタ２２７、パイプライン制御回路２２８、ライトデータ制御回路２２９、リードデータ制御回路２３０、双方向Ｉ／Ｏ２３１、およびクロック生成回路２３２を備える。
【００２４】
リクエストキュー２２２は、コア２１１から受信したメモリアクセスリクエストを格納する。リクエストキュー２２２は、例えば、バッファやレジスタ等である。リクエストキューは、記憶部の一例である。
【００２５】
リクエスト選択回路２２３は、ビジーチェック完了信号がアサートされると、ビジー管理部２２４からのビジー情報に基づいて、リクエストキュー２２２からメモリアクセスリクエストを１つ選択し、選択したメモリアクセスリクエストを取得する。尚、選択されたメモリアクセスリクエストは、リクエストキュー２２２から削除される。リクエスト選択回路２２３は、選択したメモリアクセスリクエストからリクエストを生成し、ビジー管理部２２４、コマンド・アドレス生成回路２２５、およびパイプライン制御回路２２８に出力する。リクエストは、Ｖａｌｉｄフラグ、コマンド、アドレスを含む。Ｖａｌｉｄフラグは、リクエストが有効であるか否かを示すフラグである。ここでは、Ｖａｌｉｄフラグは有効（＝１）とする。リクエスト選択回路２２３は、出力部の一例である。
【００２６】
ビジー管理部２２４は、リクエスト選択回路２２３からリクエストを受信する。ビジー管理部２２４は、リクエストに基づいてビジー情報を生成し、リクエスト選択回路２２３に送信する。ビジー管理部２２４は、ビジー情報が新たに生成されるとビジーチェック完了信号を１サイクルアサートする。ビジーチェック完了信号は、リクエスト選択回路２２３がメモリアクセスリクエストを選択可能であることを示し、リクエスト選択回路２２３に入力される。尚、ビジー情報を生成する処理は、数サイクルかかる。ビジー情報には、例えば、直近の受信したリクエストに含まれるアドレスが含まれる。リクエスト選択回路２２３は、ビジーチェック完了信号がアサートされると、ビジー情報に含まれるアドレス以外のアドレスを含むメモリアクセスリクエストを１つ選択し、コマンド・アドレス生成回路２２５に出力する。
【００２７】
コマンド・アドレス生成回路２２５は、受信したリクエストからＤＩＭＭ３０１−ｉに送信するアドレスとコマンド（ＤＩＭＭコマンド・アドレス１）を生成し、片方向Ｉ／Ｏ２２６に送信する。コマンド・アドレス生成回路２２５は、送信部の一例である。以下、コマンド・アドレス生成回路２２５から出力されるコマンドをＤＩＭＭコマンド１、コマンド・アドレス生成回路２２５から出力されるアドレスをＤＩＭＭアドレス１と表記する場合がある。
【００２８】
片方向Ｉ／Ｏ２２６は、コマンド・アドレス生成回路２２５からＤＩＭＭコマンド・アドレス１を受信し、ＤＩＭＭ４０１−ｉにＤＩＭＭコマンド・アドレス２を送信する。尚、ＤＩＭＭコマンド・アドレス１とＤＩＭＭコマンド・アドレス２は同一のデータである。また、片方向Ｉ／Ｏ２２６がＤＩＭＭコマンド・アドレス１を受信して送信するのに1サイクルかかるとする。以下、片方向Ｉ／Ｏ２２６から出力されるコマンドをＤＩＭＭコマンド２、片方向Ｉ／Ｏ２２６から出力されるアドレスをＤＩＭＭアドレス２と表記する場合がある。
【００２９】
ＤＩＭＭ構成情報レジスタ２２７は、ＤＩＭＭ４０１−ｉそれぞれのライトレイテンシとリードレイテンシを示す情報（レイテンシ情報）を保持（記憶）する。レイテンシ情報はＤＩＭＭ４０１−ｉに実装されたRead Only Memory（ＲＯＭ）に格納されており、ＤＩＭＭ構成情報レジスタ２２７は、当該ＲＯＭからレイテンシ情報を取得する。また、各ＤＩＭＭ４０１−ｉがどのメモリスロット３０１−ｉに取り付けられているかを示すスロット情報を保持（記憶）する。ＤＩＭＭ構成情報レジスタ２２７は、保持部の一例である。
【００３０】
パイプライン制御回路２２８は、リクエスト選択回路２２３からリクエストを受信し、リクエストを受信してから所定の時間経過したら、ライト制御信号をライトデータ制御回路２２９に、またはリード制御信号をリードデータ制御回路２３０に出力する。所定の時間は、リクエストがライトコマンドを含む場合にはＤＩＭＭ４０１−ｉのうちの最大のライトレイテンシに基づいて算出される。また、所定の時間は、リクエストがリードコマンドを含む場合にはＤＩＭＭ４０１−ｉのうちの最大のリードレイテンシに基づいて算出される。例えば、所定の時間は、最大のライトレイテンシにｊサイクル（例えば、ｊ＝１）の時間を加算した時間、または最大のリードレイテンシにｋサイクル（例えば、ｋ＝３）の時間を加算した時間である。
【００３１】
ライトデータ制御回路２２９は、コア２１１から転送されたライトデータを格納し、ライト制御信号に応じて、双方向Ｉ／Ｏ２３１に出力する。また、パイプライン制御回路２２８から出力されたライトデータはＤＩＭＭライトデータと表記する。
【００３２】
リードデータ制御回路２３０は、リード制御信号に応じて、ＤＩＭＭ４０１−ｉから読み出されたデータ（ＤＩＭＭリードデータ）の受信を行い、格納する。リードデータ制御回路２３０に格納されたＤＩＭＭリードデータは、一定期間後、コア２２１に送信される。また、双方向Ｉ／Ｏ２３１から出力されたリードデータはＤＩＭＭリードデータ、リードデータ制御回路２３０からコア２２１に出力されるデータはリードデータと表記する。パイプライン制御回路２２８、ライト回路制御回路２２９、およびリードデータ制御回路２３０は、データ送受信部の一例である。
【００３３】
双方向Ｉ／Ｏ２３１は、ライトデータ制御回路から受信したライトデータ（ＤＩＭＭ  ライトデータ）をＤＩＭＭ４０１−ｉに送信する。また、ＤＩＭＭ４０１−ｉから受信したリードデータ（ＤＩＭＭ  リードデータ）をリードデータ制御回路２３０に送信する。尚、双方向Ｉ／Ｏ２３１とＤＩＭＭ４０１−ｉ間で送受信されるＤＩＭＭ  ライトデータおよびＤＩＭＭ  リードデータはＤＩＭＭデータと表記する。双方向Ｉ／Ｏ２３１がＤＩＭＭ  ライトデータを受信して送信するのに1サイクルかかるとする。また双方向Ｉ／Ｏ２３１がＤＩＭＭ  リードデータを受信して送信するのに1サイクルかかるとする。すなわち、データが双方向Ｉ／Ｏ２３１を通過するのに1サイクルかかるとする。
【００３４】
クロック生成回路２３２は、クロック（信号）を生成し、ＤＩＭＭ４０１−ｉに送信する。ＤＩＭＭ４０１−ｉは受信したクロックと同期して動作する。また、リクエストキュー２２２、リクエスト選択回路２２３、ビジー管理部２２４、コマンド・アドレス生成回路２２５、片方向Ｉ／Ｏ２２６、ＤＩＭＭ構成情報レジスタ２２７、パイプライン制御回路２２８、ライトデータ制御回路２２９、リードデータ制御回路２３０、および双方向Ｉ／Ｏ２３１も生成されたクロックと同期して動作する。
【００３５】
図３は、実施の形態に係るコマンド・アドレス生成回路の構成図である。
コマンド・アドレス生成回路２２５は、ラッチ２４１−ｉ、２４２−ｉ、２４３−ｉ、２４４、コマンド・アドレス変換部２４５−ｍ（ｍ＝０〜３）、ＡＮＤ回路２４６−ｍ、および出力部２４７を備える。
【００３６】
ラッチ２４１−ｉ、２４２−ｉ、２４３−ｉ、２４４は、入力されたデータを１サイクル遅延させて出力する。ラッチ２４１−１〜２４１−３には、それぞれＶａｌｉｄフラグ、コマンド、およびアドレスが入力される。ラッチ２４１−１〜２４１−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、それぞれラッチ２４２−１〜２４２−３に入力される。また、ラッチ２４１−１〜２４１−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、コマンド・アドレス変換部２４５−１に入力される。ラッチ２４２−１〜２４２−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、それぞれラッチ２４３−１〜２４３−３に入力される。また、ラッチ２４２−１〜２４２−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、コマンド・アドレス変換部２４５−２に入力される。ラッチ２４３−１〜２４３−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、コマンド・アドレス変換部２４５−３に入力される。
【００３７】
コマンド・アドレス変換部２４５−ｍには、ｍサイクル遅延したＶａｌｉｄフラグ、コマンド、およびアドレスが入力される。コマンド・アドレス変換部２４５−ｍは、入力されたＶａｌｉｄフラグ、コマンド、およびアドレスから、ＤＩＭＭ４０１−ｉに対するコマンドとアドレス（ＤＩＭＭコマンド・アドレス０’）を生成し、ＡＮＤ回路２４６−ｍに出力する。また、コマンド・アドレス変換部２４５−ｍには、レイテンシ情報およびスロット情報が入力される。コマンド・アドレス変換部２４５−ｍは、入力されたレイテンシ情報およびスロット情報から図４示すようなコマンドレイテンシテーブルを生成する。
【００３８】
図４は、レイテンシテーブルの例である。
レイテンシテーブルには、メモリスロット、コマンド、およびコマンドアドレスレイテンシが対応付けられて記載されている。
【００３９】
メモリスロットは、ＤＩＭＭ４０１−ｉが搭載されているメモリスロット３０１−ｉを示す。メモリスロットには、例えば、Ａ、Ｂ、またはＣが記載され、それぞれメモリスロット３０１−１〜３０１−３を示す。
【００４０】
コマンドは、コマンドの種類を示し、ライトまたはリードが記載される。
コマンドアドレスレイテンシは、コマンド・アドレス生成回路２２５でＤＩＭＭコマンド・アドレス１の出力を何サイクル待たせるかを示す。
【００４１】
コマンドアドレスレイテンシに記載されるＬｘｙは、メモリスロットに搭載されたＤＩＭＭおよびコマンドに対応するＤＩＭＭコマンド・アドレス１の出力を待たせるサイクル数を示す。ｘはコマンドの種類を示し、ｘ＝Ｗ（ライト）またはＲ（リード）である。ｙはメモリスロットを示し、ｙ＝Ａ、Ｂ、またはＣである。ＬＷｙは、スロット情報に含まれる各ＤＩＭＭ４０１−ｉのＷＬのうちの最大値ＷＬｍａｘと各ＤＩＭＭ４０１−ｉのＷＬとの差分である。例えば、ＤＩＭＭ４０１−１のＷＬ（ＷＬ＿Ａ）＝ａ、ＤＩＭＭ４０１−２のＷＬ（ＷＬ＿Ｂ）＝ｂ、ＤＩＭＭ４０１−３のＷＬ（ＷＬ＿Ｃ）＝ｃとし、ａ≧ｂ、ａ≧ｃであるとする。この時、ＬＷＡ＝ａ−ａ＝０、 ＬＷＢ＝ａ−ｂ、ＬＷＣ＝ａ−ｃとなる。また、ＬＲｙは、各ＤＩＭＭ４０１−ｉのＲＬのうちの最大値ＲＬｍａｘと各ＤＩＭＭ４０１−ｉのＲＬとの差分である。このコマンド・アドレス生成回路２２５内でＤＩＭＭコマンド・アドレス１の出力を待たせるサイクルをコマンドアドレスレイテンシと呼ぶ。
【００４２】
図３に戻り説明を続ける。
コマンド・アドレス変換部２４５−ｍは、それぞれステージ番号ｍを有し、入力されたリクエスト対応するコマンドアドレスレイテンシと自身のステージ番号ｍからＣＡ  Ｖａｌｉｄを生成し、ＡＮＤ回路２４６−ｍに出力する。ＣＡ  Ｖａｌｉｄは、ＤＩＭＭコマンド・アドレス０’が有効であるか否かを示す制御信号（フラグ）である。例えば、ＤＩＭＭコマンド・アドレス０’が有効の場合、ＣＡ  Ｖａｌｉｄは１となる。
【００４３】
ＡＮＤ回路２４６−ｍは、入力されたＣＡ  Ｖａｌｉｄが有効（＝１）の場合、入力されたＤＩＭＭコマンド・アドレス０’を出力部２４７に出力する。ＡＮＤ回路２４６−ｍは、ＣＡ  Ｖａｌｉｄが無効の場合、入力されたＤＩＭＭコマンド・アドレス０’を出力しない（すなわち、出力は０となる）。
【００４４】
出力部２４７は、入力されたＤＩＭＭコマンド・アドレス０’をラッチ２４４に出力する。すなわち、出力部２４７からは、有効なＣＡ  Ｖａｌｉｄが入力されたＡＮＤ回路２４６−ｍに入力されたＤＩＭＭコマンド・アドレス０’が出力される。尚、出力部２４７から出力されたＤＩＭＭコマンド・アドレス０’は、ＤＩＭＭコマンド・アドレス０と表記する。
【００４５】
ラッチ２４４は、入力されたＤＩＭＭコマンド・アドレス０を１サイクル遅延させて出力する。尚、ラッチ２４４から出力されるＤＩＭＭコマンド・アドレス０は、ＤＩＭＭコマンド・アドレス１と表記する。
【００４６】
図５は、実施の形態に係るコマンド・アドレス変換部の処理のフローチャートである。
ステップＳ５０１において、コマンド・アドレス変換部２４５−ｍは、自身に割り当てられたステージ番号を取得する。ステージ番号は、例えば、コマンド・アドレス変換部２４５−ｍ内のレジスタ（不図示）等に予め保持（記憶）されている。
【００４７】
ステップＳ５０２において、コマンド・アドレス変換部２４５−ｍは、入力されたＶａｌｉｄフラグが有効か否か判定する。Ｖａｌｉｄフラグが有効な場合、制御はステップＳ５０３ｎｉに進み、Ｖａｌｉｄフラグが無効な場合、制御はステップＳ５０７に進む。
【００４８】
ステップＳ５０３において、コマンド・アドレス変換部２４５−ｍは、入力されたコマンドおよびアドレスをＤＩＭＭ４０１−ｍに送信するコマンドとアドレスに変換、すなわちＤＩＭＭコマンド・アドレス０’生成する。例えば、リクエストに含まれるシステム上のアドレスをＤＩＭＭ４０１−ｍのアドレスに変換することにより、ＤＩＭＭコマンド・アドレス０’を生成する。
【００４９】
ステップＳ５０４において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルを参照し、入力されたコマンドとアドレス（送信先のＤＩＭＭ４０１−ｉ）に対応するコマンドアドレスレイテンシを取得する（コマンドアドレスレイテンシ取得処理）。尚、コマンドアドレスレイテンシ取得処理の詳細な処理については後述する。
【００５０】
ステップＳ５０５において、コマンド・アドレス変換部２４５−ｍは、取得したコマンドアドレスレイテンシと自身のステージ番号を比較する。コマンドアドレスレイテンシとステージ番号とが一致する場合、制御はステップＳ５０６に進み、一致しない場合、制御はステップＳ５０７に進む。
【００５１】
ステップＳ５０６において、コマンド・アドレス変換部２４５−ｍは、ＣＡ  Ｖａｌｉｄを有効（＝１）とし、ＤＩＭＭコマンド・アドレス０’とＣＡ  ＶａｌｉｄをＡＮＤ回路２４６−ｍに出力する。
【００５２】
ステップＳ５０７において、コマンド・アドレス変換部２４５−ｍは、ＣＡ  Ｖａｌｉｄを無効（＝０）とし、ＤＩＭＭコマンド・アドレス０’とＣＡ  ＶａｌｉｄをＡＮＤ回路２４６−ｍに出力する。
【００５３】
図６は、コマンドアドレスレイテンシ取得処理の詳細なフローチャートである。
図６は、図５のステップＳ５０４に相当する。
【００５４】
ステップＳ５１１において、コマンド・アドレス変換部２４５−ｍは、入力されたアドレスから、リクエストの送信先のＤＩＭＭ４０１−ｉが搭載されているメモリスロット３０１−ｉを算出する。尚、コマンド・アドレス変換部２４５−ｍは、どのアドレスがどのメモリスロットに対応するか判っているものとする。
【００５５】
ステップＳ５１２において、コマンド・アドレス変換部２４５−ｍは、算出されたメモリスロットがどのメモリスロットであるか判定する。算出されたメモリスロットがスロットＡ、Ｂ、およびＣの場合、制御はそれぞれステップＳ５１３、Ｓ５１６、およびＳ５１９に進む。
【００５６】
ステップＳ５１３において、コマンド・アドレス変換部２４５−ｍは、入力されたコマンドの種類を判定する。入力されたコマンドがライトの場合、制御はステップＳ５１４に進み、入力されたコマンドがリードの場合、制御はステップＳ５１５に進む。
【００５７】
ステップＳ５１４において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルのメモリスロットＡとライトに対応するコマンドアドレスレイテンシＬＷＡを取得する。
【００５８】
ステップＳ５１５において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルのメモリスロットＡとリードに対応するコマンドアドレスレイテンシＬＲＡを取得する。
【００５９】
ステップＳ５１６において、コマンド・アドレス変換部２４５−ｍは、入力されたコマンドの種類を判定する。入力されたコマンドがライトの場合、制御はステップＳ５１７に進み、入力されたコマンドがリードの場合、制御はステップＳ５１８に進む。
【００６０】
ステップＳ５１７において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルのメモリスロットＢとライトに対応するコマンドアドレスレイテンシＬＷＢを取得する。
【００６１】
ステップＳ５１８において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルのメモリスロットＢとリードに対応するコマンドアドレスレイテンシＬＲＢを取得する。
【００６２】
ステップＳ５１９において、コマンド・アドレス変換部２４５−ｍは、入力されたコマンドの種類を判定する。入力されたコマンドがライトの場合、制御はステップＳ５２０に進み、入力されたコマンドがリードの場合、制御はステップＳ５２１に進む。
【００６３】
ステップＳ５２０において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルのメモリスロットＣとライトに対応するコマンドアドレスレイテンシＬＷＣを取得する。
【００６４】
ステップＳ５２１において、コマンド・アドレス変換部２４５−ｍは、レイテンシテーブルのメモリスロットＣとリードに対応するコマンドアドレスレイテンシＬＲＣを取得する。
【００６５】
上述の処理を行うコマンド・アドレス変換部２４５−ｍは、例えば、図７に示すような構成により実現できる。
【００６６】
図７は、実施の形態に係るコマンド・アドレス変換部の構成図である。
コマンド・アドレス変換部２４５−ｍは、レジスタ２５１−ｍ、２５２−ｍ、セレクタ２５３−ｍ、比較部２５４−ｍ、ＡＮＤ回路２５５−ｍ、およびコマンド・アドレス変換回路２５６−ｍを備える。
【００６７】
レジスタ２５１−ｍは、図４に示すレイテンシテーブルを格納する。レジスタ２５１は、レイテンシテーブルに記載のコマンドアドレスレイテンシＬｘｙ (ｘ＝ＷまたはＲ, ｙ＝Ａ、Ｂ、またはＣ)をセレクタ２５３に出力する。尚、コマンド・アドレス変換部２４５−ｍは、入力されたレイテンシ情報とスロット情報に基づいて、レイテンシテーブルを作成する。
【００６８】
レジスタ２５２−ｍは、コマンド・アドレス変換部２４５−ｍに割り当てられたステージ番号ｍを格納する。
【００６９】
セレクタ２５３−ｍは、コマンドアドレスレイテンシＬｘｙから、入力されたコマンドとアドレスに対応するコマンドアドレスレイテンシＬｘｙを選択し、選択したコマンドアドレスレイテンシＬｘｙを比較部２５４−ｍに出力する。
【００７０】
比較部２５４−ｍは、セレクタ２５３−ｍから出力されたコマンドアドレスレイテンシＬｘｙとレジスタ２５２−ｍに記憶されたステージ番号とを比較し、コマンドアドレスレイテンシＬｘｙとステージ番号とが一致した場合、有効信号（＝１）をＡＮＤ回路２５５−ｍに出力する。比較部２５４−ｍは、コマンドアドレスレイテンシＬｘｙとステージ番号とが一致しない場合、無効信号（＝０）をＡＮＤ回路２５５−ｍに出力する。
【００７１】
ＡＮＤ回路２５５−ｍは、比較部２５４−ｍの出力信号（１または０）とＶａｌｉｄフラグの論理積（ＣＡ  Ｖａｌｉｄ）をＡＮＤ回路２４６−ｍに出力する。
【００７２】
コマンド・アドレス変換回路２５６−ｍは、入力されたコマンドおよびアドレスをＤＩＭＭ４０１−ｍに送信するコマンドとアドレスに変換、すなわちＤＩＭＭコマンド・アドレス０’生成し、ＡＮＤ回路２４６−ｍに出力する。
【００７３】
次に、異なる種類のＤＩＭＭが同一のメモリチャネルに接続された場合における、実施の形態のＭＡＣのライト動作を説明する。
【００７４】
図８は、実施の形態に係る情報処理装置のライト動作を示すタイミングチャートである。
【００７５】
ここでは、ＤＩＭＭ４０１−１（ＤＩＭＭ  Ａ）とＤＩＭＭ４０１−２（ＤＩＭＭ  Ｂ）に対するライト動作を示す。図８の上段はＤＩＭＭ４０１−１に対するライト動作、下段はＤＩＭＭ４０１−２に対するライト動作を示すタイミングチャートである。
【００７６】
ここで、ＤＩＭＭ  ＡのライトレイテンシＷＬ＿ＡとＤＩＭＭ  ＢのライトレイテンシＷＬ＿Ｂの差ＤＷＬは、ＤＷＬ ＝ ＷＬ＿Ｂ−ＷＬ＿Ａ＝２サイクルである。この時，図４に示されるレイテンシテーブルのＬＷＡは‘２’になる。ＤＩＭＭ Ａ向けのＤＩＭＭコマンド１とＤＩＭＭアドレス１（ＤＩＭＭコマンド・アドレス１）は、従来の出力タイミング（リクエスト（ＲＥＱ）の出力から１サイクル後）に対して、ＬＷＡ (＝２サイクル)遅らせられる。それにより、ＤＩＭＭコマンド２とＤＩＭＭアドレス２（ＤＩＭＭコマンド・アドレス２）も、従来の出力タイミング（リクエスト（ＲＥＱ）の出力から２サイクル後）に対して、ＬＷＡ (＝２サイクル)遅らせられ、ＤＩＭＭ４０１−ｉへ向かって転送される。
【００７７】
また、ＤＩＭＭ４０１−ｉのライトレイテンシのうちの最大値がＷＬ＿Ｂとすると、ＬＷＢは‘０’である。よって、ＤＩＭＭ Ｂ向けのＤＩＭＭコマンド１とＤＩＭＭアドレス１（ＤＩＭＭコマンド・アドレス１）は、従来のＤＩＭＭコマンド・アドレス生成回路と同様のタイミング（リクエスト（ＲＥＱ）の出力から１サイクル後）に出力される。それにより、ＤＩＭＭ Ｂ向けのＤＩＭＭコマンド２とＤＩＭＭアドレス２（ＤＩＭＭコマンド・アドレス２）も、従来のＤＩＭＭコマンド・アドレス生成回路と同様のタイミング（リクエスト（ＲＥＱ）の出力から２サイクル後）にＤＩＭＭ４０１−ｉへ送信される。
【００７８】
上述のように、ＤＩＭＭ  Ｂ向けのＤＩＭＭコマンド・アドレス２は、コマンド・アドレス生成回路２２５および片方向Ｉ／Ｏ２２６を通過するため、リクエスト選択回路２２３からのリクエストの出力から２サイクル後に送信される。また、ＤＩＭＭ  Ａ向けのＤＩＭＭコマンド・アドレス２は、コマンド・アドレス生成回路２２５で遅延させられることにより、リクエスト選択回路２２３からのリクエストの出力から４（２＋ＲＷＡ（＝２））サイクル後に送信される。すなわち、ＤＩＭＭ  Ａ向けのＤＩＭＭコマンド・アドレス２は、ＤＩＭＭ  Ｂ向けのＤＩＭＭコマンド・アドレス２に比べて、ＬＷＡ遅れて出力される。
【００７９】
また、ＤＩＭＭ  Ａ、Ｂに対するライト制御は、両方ともリクエスト選択回路２２３からのリクエストの出力からＷＬ＿Ｂ＋１サイクル後に出力される。
【００８０】
以上の処理により，リクエスト選択回路２２３からリクエストが発行されてから、ＤＩＭＭデータ、ライト制御を出力するまでの時間は，ＤＩＭＭ Ａ、Ｂで共通となり，かつＤＩＭＭ  Ａ、Ｂに対するライトレイテンシＷＬ＿Ａ，ＷＬ＿Ｂどちらも満たされることになる。つまり、異なる種類のＤＩＭＭＡ，Ｂを同一のメモリチャネル上に実装しても、ＤＩＭＭ  Ａ，Ｂに正常にライトすることが可能になる。
【００８１】
次に、異なる種類のＤＩＭＭが同一のメモリチャネル上に実装された場合における、実施の形態のＭＡＣのリード動作を説明する。
【００８２】
図９は、実施の形態に係る情報処理装置のリード動作を示すタイミングチャートである。
【００８３】
ここでは、ＤＩＭＭ４０１−１（ＤＩＭＭ  Ａ）とＤＩＭＭ４０１−２（ＤＩＭＭ  Ｂ）に対するリード動作を示す。図９の上段はＤＩＭＭ４０１−１に対するリード動作、下段はＤＩＭＭ４０１−２に対するリード動作を示すタイミングチャートである。
【００８４】
ここで、ＤＩＭＭ  ＡのリードレイテンシＲＬ＿ＡとＤＩＭＭ  ＢのリードレイテンシＲＬ＿Ｂの差ＤＲＬは、ＤＲＬ＝ＲＬ＿Ｂ−ＲＬ＿Ａ＝３サイクルである。この時，図４に示されるレイテンシテーブルのＬＲＡは‘３’になる。ＤＩＭＭ Ａ向けのＤＩＭＭコマンド１とＤＩＭＭアドレス１（ＤＩＭＭコマンド・アドレス１）は、従来の出力タイミング（リクエスト（ＲＥＱ）の出力から１サイクル後）に対して、ＬＲＡ (＝３サイクル)遅らせられる。それにより、ＤＩＭＭコマンド２とＤＩＭＭアドレス２（ＤＩＭＭコマンド・アドレス２）も、従来の出力タイミング（リクエスト（ＲＥＱ）の出力から２サイクル後）に対して、ＬＲＡ (＝３サイクル)遅らせられ、ＤＩＭＭ４０１−ｉへ向かって転送される。
【００８５】
また、ＤＩＭＭ４０１−ｉのリードレイテンシのうちの最大値がＲＬ＿Ｂとすると、ＬＲＢは‘０’である。よって、ＤＩＭＭ Ｂ向けのＤＩＭＭコマンド１とＤＩＭＭアドレス１（ＤＩＭＭコマンド・アドレス１）は、従来のＤＩＭＭコマンド・アドレス生成回路と同様のタイミング（リクエスト（ＲＥＱ）の出力から１サイクル後）に出力される。それにより、ＤＩＭＭ Ｂ向けのＤＩＭＭコマンド２とＤＩＭＭアドレス２（ＤＩＭＭコマンド・アドレス２）も、従来のＤＩＭＭコマンド・アドレス生成回路と同様のタイミング（リクエスト（ＲＥＱ）の出力から２サイクル後）にＤＩＭＭ４０１−ｉへ送信される。
【００８６】
上述のように、ＤＩＭＭ  Ｂ向けのＤＩＭＭコマンド・アドレス２は、コマンド・アドレス生成回路２２５および片方向Ｉ／Ｏ２２６を通過するため、リクエスト選択回路２２３からのリクエストの出力から２サイクル後に送信される。また、ＤＩＭＭ  Ａ向けのＤＩＭＭコマンド・アドレス２は、コマンド・アドレス生成回路２２５で遅延させられることにより、リクエスト選択回路２２３からのリクエストの出力から５（２＋ＬＲＡ（＝３））サイクル後に送信される。すなわち、ＤＩＭＭ  Ａ向けのＤＩＭＭコマンド・アドレス２は、ＤＩＭＭ  Ｂ向けのＤＩＭＭコマンド・アドレス２に比べて、ＬＷＡ遅れて出力される。
【００８７】
また、ＤＩＭＭ  Ａ、Ｂに対するリード制御は、両方ともリクエスト選択回路２２３からのリクエストの出力からＲＬ＿Ｂ＋３サイクル後に出力される。
【００８８】
以上の処理により、リクエスト選択回路２２３からリクエストが発行されてから、ＤＩＭＭデータを受信するまでの時間は、ＤＩＭＭ Ａ、Ｂで共通となり、かつＲＬ＿Ａ、ＲＬ＿Ｂどちらも満たされることになる。つまり、異なる種類のＤＩＭＭ  Ａ，Ｂを同一のメモリチャネルに接続しても、ＤＩＭＭ  Ａ，Ｂを正常にリードすることが可能になる。
【００８９】
上述のように、実施の形態のＭＡＣによれば、異なる種類のＤＩＭＭを同一のメモリチャネルに接続しても、正常に読み書きを行うことができる。
【００９０】
一方、実施の形態の制御方法である、ＤＩＭＭコマンド・アドレス２の出力を遅らせる方法に対して、ライト制御信号またはリード制御信号の通知タイミングを変化させることにより、ＤＩＭＭデータの出力を遅らせ、ＤＩＭＭコマンド・アドレス２の出力を遅らせることなく、実装されたＤＩＭＭ４０１−ｉのＷＬとＲＬを満たす方法も考えられる。以下、ライト制御信号またはリード制御信号の通知タイミングを変化させる方法を単に別方法と呼ぶ。以下、別方法と実施の形態の制御方法とを比較する。
【００９１】
図１０は、別方法のライト動作と実施の形態のライト動作を示すタイミングチャートである。図１０の上段は、別方法のライト動作のタイミングチャート、下段は実施の形態のライト動作を示すタイミングチャートである。
【００９２】
ここで、ビジーチェック完了信号の最短アサート間隔は４サイクルであるとする。ＤＩＭＭ Ａ、ＢのアドレスをそれぞれＡＤＲＳ＿Ａ，ＡＤＲＳ＿Ｂと表記する。ＤＩＭＭ Ａ、ＢのＤＩＭＭデータも同様にそれぞれＤＡ、ＤＢと表記する。また、ＤＩＭＭ  ＡのライトレイテンシＷＬ＿Ａは‘３’、ＤＩＭＭ  ＢのライトレイテンシＷＬ＿Ｂは‘５’とする。
【００９３】
別方法では、図１０の上段に示すように、ＤＩＭＭ Ａへのライトの場合は，ＤＩＭＭコマンド・アドレス２の送信から、ＷＬ＿Ａ−１サイクル後にライト制御信号をライトデータ制御回路に通知し、同様にＤＩＭＭ Ｂへのライトの場合は、ＤＩＭＭコマンド・アドレス２の送信から、ＷＬ＿Ｂ−１サイクル後にライト制御をライトデータ制御回路に通知する。したがって、ＷＬ＿Ａ、ＷＬ＿Ｂどちらも満たすことができるので、実施の形態の制御方法と同様に、異なる種類のＤＩＭＭを同一のメモリチャネルに混在させることは可能になる。ところで、データスループットの点で２つの方法を比較する。別方法では、ＤＩＭＭ  ＡとＤＩＭＭ ＢのＤＩＭＭデータ転送の間に、必ず２サイクルの意味のないデータであるバブルが生まれる。この時、ライト動作をＤＩＭＭ Ａ，ＤＩＭＭ Ｂ，ＤＩＭＭ Ａ，ＤＩＭＭ Ｂ，…のパターンで行うと、データスループットは８０％になる。ＤＩＭＭ Ｂに対するＤＩＭＭコマンド・アドレス２の出力を２サイクル、すなわちバブル分早めればバブルは発生し得ないが、ビジーチェック完了信号のアサート間隔はこれ以上縮まることは無いため、バブルの発生は防げない。一方、実施の形態の制御方法では，別方法と同じパターンでライト動作を行ったとしても、２サイクルのバブルは発生しない。したがって、データスループットは１００％になる。
【００９４】
以上のように、実施の形態の制御方法の方が、別方法よりデータスループットの点で優れている。
【００９５】
さらに、回路規模の点から両者を比較する。パイプライン制御回路２２８は、コマンド・アドレス生成回路２２５と比較すると長大なパイプラインから構成される。別方法を実装する場合、長いパイプラインの各段に、追加回路（ステージ番号取得，レイテンシテーブル参照、データに対するレイテンシとステージ番号の比較、データ出力に対するＶａｌｉｄフラグの生成）が必要となる。したがって、別方法では、実施の形態のコマンド・アドレス生成回路２２５より多くの追加回路が必要となり、回路規模から見ても実施の形態の制御方法の方が優れている。
【００９６】
図１１は、実施の形態に係る情報処理装置のライト動作を示すタイミングチャートである。
【００９７】
ＤＩＭＭ  Ａ，Ｂ，Ｃの異なる種類のＤＩＭＭを実装した情報処理装置１０１におけるライト動作を図１１に示す。ここで、ＤＩＭＭ  ＡのライトレイテンシＷＬ＿ＡとＤＩＭＭ  ＢのライトレイテンシＷＬ＿Ｂは、ＷＬ＿Ａ＝ＷＬ＿Ｂ＝１２とする。また、ＤＩＭＭ  ＣのライトレイテンシＷＬ＿Ｃは、ＷＬ＿Ｃ＝９とする。この時、ＤＩＭＭ  Ａ，Ｂのライトに対するコマンドアドレスレイテンシＬＷＡ、ＬＷＢは、ＬＷＡ＝ＬＷＢ＝０である。また、ＤＩＭＭ  Ｃのライトに対するコマンドアドレスレイテンシＬＷＣは、ＬＷＣ＝３である。そして、情報処理装置１０１は、ＤＩＭＭ Ａ、ＤＩＭＭ Ｂ、ＤＩＭＭＣ、ＤＩＭＭ Ｂ、ＤＩＭＭ Ｃ、ＤＩＭＭ Ａの順に書き込みを行うとする。また、ビジーチェック完了信号は、最短で４サイクルに１回だけアサートされるものとする。
【００９８】
この条件の時、ＤＩＭＭ Ａ、Ｂ向けＤＩＭＭコマンド２とＤＩＭＭアドレス２は、ビジーチェック完了信号がアサートされた２サイクル後にＤＩＭＭ Ａ、Ｂへ送信される。また、ＤＩＭＭ Ｃ向けＤＩＭＭコマンド２とＤＩＭＭアドレス２は、コマンド・アドレス生成回路２２５でＬＷＣ（＝３）待たされるため、ビジーチェック完了信号がアサートされた５サイクル後にＤＩＭＭ Ｃへ送信される。 
【００９９】
図１２は、実施の形態に係る情報処理装置のリード動作を示すタイミングチャートである。
【０１００】
ＤＩＭＭ  Ａ，Ｂ，Ｃの異なる種類のＤＩＭＭを実装した情報処理装置１０１におけるリード動作を図１２に示す。ここで、ＤＩＭＭ  ＡのリードレイテンシＲＬ＿Ａは、ＲＬ＿Ａ＝７、ＤＩＭＭ  ＢのリードレイテンシＲＬ＿Ｂは、ＲＬ＿Ｂ＝５、ＤＩＭＭ  ＣのリードレイテンシＲＬ＿Ｃは、ＲＬ＿Ｃ＝８とする。この時、ＤＩＭＭ  Ａ、Ｂ、Ｃのリードに対するコマンドアドレスレイテンシＬＲＡ、ＬＲＢ、ＬＷＣは、ＬＲＡ＝１、ＬＲＢ＝３、ＬＲＣ＝０である。そして、情報処理装置１０１は、ＤＩＭＭ Ａ、ＤＩＭＭ Ｂ、ＤＩＭＭＣ、ＤＩＭＭ Ｂ、ＤＩＭＭ Ｃ、ＤＩＭＭ Ａの順に読み出しを行うとする。また、ビジーチェック完了信号は、最短で４サイクルに１回だけアサートされるものとする。
【０１０１】
この条件の時、ＤＩＭＭ Ｃ向けのＤＩＭＭコマンド２とＤＩＭＭアドレス２は、ビジーチェック完了信号がアサートされた２サイクル後にＤＩＭＭ  Ｃへ送信される。ＤＩＭＭ Ａ，Ｂ向けＤＩＭＭコマンド２とＤＩＭＭアドレス２は，コマンド・アドレス生成回路２２５でそれぞれＬＲＡ（＝１）、ＬＲＢ（＝３）待たされるため、ビジーチェック完了信号がアサートされた３、５サイクル後にＤＩＭＭ Ａ，Ｂへ送信される。
【０１０２】
図１３は、実施の形態に係るコマンド・アドレス生成回路の変形例を示す図である。
コマンド・アドレス生成回路２２５は、図１３に示すようなコマンド・アドレス生成回路１２２５のような構成でも良い。
【０１０３】
コマンド・アドレス生成回路１２２５は、ラッチ１２４１−ｉ、１２４２−ｉ、１２４３−ｉ、１２４４、コマンド・アドレス変換部１２４５−ｍ（ｍ＝０〜３）、ＡＮＤ回路１２４６−ｍ、出力部１２４７、およびコマンドアドレスレイテンシ計算部１２４８を備える。
【０１０４】
ラッチ１２４１−ｉ１、２４２−ｉ、１２４３−ｉ、１２４４は、入力されたデータを１サイクル遅延させて出力する。ラッチ１２４１−１〜１２４１−３には、それぞれＶａｌｉｄフラグ、コマンド、およびアドレスが入力される。ラッチ１２４１−１〜１２４１−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、それぞれラッチ１２４２−１〜１２４２−３に入力される。また、ラッチ１２４１−１〜１２４１−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、コマンド・アドレス変換部１２４５−１に入力される。ラッチ１２４２−１〜１２４２−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、それぞれラッチ１２４３−１〜２４３−３に入力される。また、ラッチ１２４２−１〜１２４２−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、コマンド・アドレス変換部１２４５−２に入力される。ラッチ１２４３−１〜１２４３−３から出力されたＶａｌｉｄフラグ、コマンド、およびアドレスは、コマンド・アドレス変換部１２４５−３に入力される。
【０１０５】
コマンド・アドレス変換部１２４５−ｍには、ｍサイクル遅延したＶａｌｉｄフラグ、コマンド、およびアドレスが入力される。コマンド・アドレス変換部１２４５−ｍは、入力されたＶａｌｉｄフラグ、コマンド、およびアドレスから、ＤＩＭＭ１４０１−ｉに対するコマンドとアドレス（ＤＩＭＭコマンド・アドレス０’）を生成し、ＡＮＤ回路１２４６−ｍに出力する。
【０１０６】
コマンドアドレスレイテンシ計算部１２４８には、レイテンシ情報およびスロット情報が入力される。コマンドアドレスレイテンシ計算部１２４８は、入力されたレイテンシ情報およびスロット情報から図４示すようなコマンドレイテンシテーブルを生成する。コマンドアドレスレイテンシ計算部１２４８は、ＣＡ  Ｖａｌｉｄを算出し、ＡＮＤ回路１２４６−ｍに出力する。コマンドアドレスレイテンシ計算部１２４８が各ＡＮＤ回路１２４６−ｍに出力するＣＡ  Ｖａｌｉｄは、図３のコマンド・アドレス変換部２４５−ｍが出力するＣＡ  Ｖａｌｉｄと同様であり、上述のコマンド・アドレス変換部２４５−ｍの処理と同様の方法で算出される。
【０１０７】
ＡＮＤ回路１２４６−ｍは、入力されたＣＡ  Ｖａｌｉｄが有効（＝１）の場合、入力されたＤＩＭＭコマンド・アドレス０’を出力部１２４７に出力する。ＡＮＤ回路１２４６−ｍは、ＣＡ  Ｖａｌｉｄが無効の場合、入力されたＤＩＭＭコマンド・アドレス０’を出力しない（すなわち、出力は０となる）。
【０１０８】
出力部１２４７は、入力されたＤＩＭＭコマンド・アドレス０’をラッチ１２４４に出力する。すなわち、出力部２４７からは、有効なＣＡ  Ｖａｌｉｄが入力されたＡＮＤ回路１２４６−ｍに入力されたＤＩＭＭコマンド・アドレス０’が出力される。尚、出力部１２４７から出力されたＤＩＭＭコマンド・アドレス０’は、ＤＩＭＭコマンド・アドレス０と表記する。
【０１０９】
ラッチ１２４４は、入力されたＤＩＭＭコマンド・アドレス０を１サイクル遅延させて出力する。尚、ラッチ１２４４から出力されるＤＩＭＭコマンド・アドレス０は、ＤＩＭＭコマンド・アドレス１と表記する。
【０１１０】
実施の形態の情報処理装置によれば、送信先のＤＩＭＭのレイテンシに応じて、コマンドとアドレスを遅延させて送信するので、同一のメモリチャネルに異なる種類のメモリを接続しても正常な動作を行うことができる。
【０１１１】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
複数の記憶装置に共通の通信経路を介して前記複数の記憶装置をそれぞれ制御する記憶制御装置であって、
前記複数の記憶装置それぞれのレイテンシを示すレイテンシ情報を保持する保持部と、
演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対して発行されたリクエストを記憶する記憶部と、
前記記憶部から前記リクエストを出力する出力部と、
前記出力部から受信した前記リクエストを、前記送信先の記憶装置のレイテンシと前記複数の記憶装置のうち他の記憶装置のレイテンシとに基づいた遅延時間だけ遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信する送信部と、
前記出力部が前記リクエストを出力してから所定時間経過後、前記共通の通信経路を介して前記リクエストに対応するデータの送信または受信を行うデータ送受信部と、を備えることを特徴とする記憶制御装置。
（付記２）
前記送信部は、前記複数の記憶装置のレイテンシのうちの最大レイテンシと前記送信先の記憶装置のレイテンシとの差分に基づいて、前記遅延時間を算出することを特徴とする付記１記載の記憶制御装置。
（付記３）
前記所定の時間は、前記最大レイテンシに基づいて算出されることを特徴とする付記２記載の記憶制御装置。
（付記４）
共通の通信経路に接続された複数の記憶装置と、
演算処理装置と、
前記共通の通信経路を介して前記複数の記憶装置をそれぞれ制御する記憶制御装置と、
を備え、
前記記憶制御装置は、
前記複数の記憶装置それぞれのレイテンシを示すレイテンシ情報を保持する保持部と、
前記演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対して発行されたリクエストを記憶する記憶部と、
前記記憶部から前記リクエストを出力する出力部と、
前記出力部から受信した前記リクエスト、前記送信先の記憶装置のレイテンシと前記複数の記憶装置のうち他の記憶装置のレイテンシとに基づいた遅延時間だけ遅延させ、前記共通の通信経路を介して前記送信先の記憶装置に送信する送信部と、
前記出力部が前記リクエストを出力してから所定時間経過後、前記共通の通信経路を介して前記リクエストに対応するデータの送信または受信を行うデータ送受信部と、を備えることを特徴とする情報処理装置。
（付記５）
前記送信部は、前記複数の記憶装置のレイテンシのうちの最大レイテンシと前記送信先の記憶装置のレイテンシとの差分に基づいて、前記遅延時間を算出することを特徴とする付記４記載の情報処理装置。
（付記６）
前記所定の時間は、前記最大レイテンシに基づいて算出されることを特徴とする付記５記載の情報処理装置。
（付記７）
演算処理装置と記憶制御装置と複数の記憶装置とを有する情報処理装置の制御方法であって、
前記演算処理装置から前記複数の記憶装置のうち送信先の記憶装置に対してリクエストを発行し、
前記リクエストを前記記憶制御装置内の記憶部に記憶し、
前記記憶部から前記リクエストを出力し、
出力された前記リクエストを、前記送信先の記憶装置のレイテンシと前記複数の記憶装置のうち他の記憶装置のレイテンシとに基づいた遅延時間だけ遅延させ、前記複数の記憶装置に共通の通信経路を介して前記記憶制御装置から前記送信先の記憶装置に送信し、
前記リクエストを出力してから所定時間経過後、前記共通の通信経路を介して前記リクエストに対応するデータの送信または受信を行う、
ことを特徴とする制御方法。
（付記８）
前記複数の記憶装置のレイテンシのうちの最大レイテンシと前記送信先の記憶装置のレイテンシとの差分に基づいて、前記遅延時間を算出することを特徴とする付記７記載の制御方法。
（付記９）
前記所定の時間は、前記最大レイテンシに基づいて算出されることを特徴とする付記８記載の制御方法。
【符号の説明】
【０１１２】
１０１    情報処理装置
２０１    ＣＰＵ
２１１    コア
２２１    ＭＡＣ
２２２    リクエストキュー
２２３    リクエスト選択回路
２２４    ビジー管理部
２２４    コマンド・アドレス生成回路
２２６    片方向Ｉ／Ｏ
２２７    ＤＩＭＭ構成情報レジスタ
２２８    パイプライン制御回路
２２９    ライトデータ制御回路
２３０    リードデータ制御回路
２３１    双方向Ｉ／Ｏ
２３２    クロック生成回路
３０１    メモリスロット
４０１    ＤＩＭＭ
【図１】
0006459820.tif 000002
【図２】
0006459820.tif 000003
【図３】
0006459820.tif 000004
【図４】
0006459820.tif 000005
【図５】
0006459820.tif 000006
【図６】
0006459820.tif 000007
【図７】
0006459820.tif 000008
【図８】
0006459820.tif 000009
【図９】
0006459820.tif 000010
【図１０】
0006459820.tif 000011
【図１１】
0006459820.tif 000012
【図１２】
0006459820.tif 000013
【図１３】
0006459820.tif 000014