(57)【要約】      （修正有）【課題】メモリシステムにおけるデータの転送効率を改善する。【解決手段】アービタ３１０の前段に設けられたアダプタ２１１は、アドレス変換部およびリクエスト分割部を備える。アドレス変換部は、リクエスト線１２１を介してクライアント１１１から発行されるリクエストの論理アドレスをメモリシステム５００の物理アドレスに変換する。リクエスト分割部は、アドレス変換部により変換された変換リクエストを、メモリシステム５００に対するコマンド単位により分割する。このリクエスト分割部は、その分割された分割リクエストを、分割リクエスト線３１１を介してアービタ３１０に出力する。アービタ３１０は、リクエスト分割部からの分割リクエストに示される物理アドレスに基づいて調停を行う。【選択図】図１
2010262429.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアントから発行されたリクエストに含まれる論理アドレスをメモリの物理アドレスに変換するアドレス変換部と、
前記アドレス変換部により変換された変換リクエストの物理アドレスに基づいて前記メモリに対するコマンド単位により前記変換リクエストを分割するリクエスト分割部と、
前記リクエスト分割部から出力された分割リクエストに示された前記物理アドレスに基づいて調停を行う調停部と
を具備するメモリ制御装置。
【請求項２】
前記リクエスト分割部は、前記アドレス変換部により変換された変換リクエストが前記メモリの同一バンクにおける複数のロウに対するアクセスを指定する場合には前記同一バンクのロウ単位により前記変換リクエストを分割し、
前記調停部は、前記複数のクライアントに対応する前記リクエスト分割部から複数の分割リクエストを受け付けた場合には直前に出力した出力リクエストと同一のバンクアドレスを示し、かつ、前記出力リクエストと異なるロウアドレスを示す分割リクエスト以外の分割リクエストのうち１つの分割リクエストを出力するように調停する
請求項１記載のメモリ制御装置。
【請求項３】
前記アドレス変換部は、前記物理アドレスによる開始アドレスと前記メモリに対するアクセスすべきデータの長さである転送長とが示された前記変換リクエストを前記リクエスト分割部に出力し、
前記リクエスト分割部は、
前記変換リクエストの開始アドレスと前記変換リクエストを分割するための分割長の累計値に前記変換リクエストの開始アドレスが加算された次開始アドレスとのうちいずれか一方を前記分割リクエストの開始アドレスとして出力する開始アドレス出力部と、
前記開始アドレス出力部から出力された分割リクエストの開始アドレスに含まれる開始カラムアドレスから前記分割リクエストの開始アドレスに示されるロウの終端カラムアドレスまでの前記分割長を生成する分割長生成部と、
前記分割長生成部により生成された分割長と前記変換リクエストの転送長から前記分割長の累計値が減算された差分転送長とのうち小さい方を前記分割リクエストの転送長として出力する転送長出力部とを備える
請求項２記載のメモリ制御装置。
【請求項４】
前記リクエスト分割部は、前記アドレス変換部により変換された変換リクエストの前記物理アドレスに基づいて前記メモリのバースト長単位により前記変換リクエストを分割する請求項１記載のメモリ制御装置。
【請求項５】
前記リクエスト分割部は、１つのアドレスを指定する複数の第１の変換リクエストが前記アドレス変換部から順次出力された場合には前記物理アドレスによる開始アドレスと前記メモリに対するアクセスすべきデータの長さである転送長とを示す第２の変換リクエストを前記複数の第１の変換リクエストに基づいて生成して前記生成された第２の変換リクエストを前記メモリにおけるロウ単位により分割する請求項１記載のメモリ制御装置。
【請求項６】
前記リクエスト分割部から順次出力された分割リクエストを保持して前記保持された複数の分割リクエストに基づいて当該複数の分割リクエスト同士を連続して出力する連続出力部をさらに具備する請求項５記載のメモリ制御装置。
【請求項７】
前記連続出力部は、前記複数の分割リクエストの数に関する所定の閾値に基づいて前記複数の分割リクエスト同士を連続して出力する請求項６記載のメモリ制御装置。
【請求項８】
前記連続出力部は、前記複数の分割リクエストに示された前記転送長の累計に関する所定の閾値に基づいて前記複数の分割リクエスト同士を連続して出力する請求項６記載のメモリ制御装置。
【請求項９】
複数のクライアントから発行されたリクエストに含まれる論理アドレスをメモリの物理アドレスに変換するアドレス変換手順と、
前記アドレス変換手順により変換された変換リクエストの物理アドレスに基づいて前記メモリに対するコマンド単位により前記変換リクエストを分割するリクエスト分割手順と、
前記リクエスト分割手順により生成された分割リクエストに示された前記物理アドレスに基づいて調停を行う調停手順と
を具備するメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置に関し、特に複数のバンクを備えるメモリに対するアクセスを制御するメモリ制御装置、および、その処理方法に関する。
【背景技術】
【０００２】
従来、メモリシステムとして、価格、バス帯域および容量の点において有利である同期ＤＲＡＭ（ＳＤＲＡＭ：Synchronous Dynamic Random Access Memory）が広く用いられている。このＳＤＲＡＭは、クロック信号に同期して動作するＤＲＡＭであり、多くの場合、複数のバンクにより構成される。
【０００３】
このような構成のＳＤＲＡＭにおいては、同一バンクにおいて互いに異なるロウに連続してアクセスする場合には、ＳＤＲＡＭにおけるデータ転送の効率が著しく低下する。これに対して、データ転送の効率低下を抑制するための手法が数多く考案されている。例えば、２つのバッファに対してメモリにアクセスするためのアクセス要求をそれぞれ保持させて、その保持されたアクセス要求のうち、前回アクセスしたバンクアドレスと異なるバンクアドレスのアクセス要求を出力する手法が提案されている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１８６７４０号公報（図１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、２つのバッファを設けて、それぞれのバッファに保持されたアクセス要求を比較することによって、同一バンクの異なるロウに連続してアクセスすることを低減させることができる。しかしながら、この場合、アービトレーション後において、アドレス変換手段によりアクセス要求の論理アドレスがＳＤＲＡＭの物理アドレスに変換されるため、アービトレーション手段の他にアクセス要求の順序を入れ替えるための回路を設けなければならない。このため、メモリ制御装置においてアクセス要求の順序の制御を２回行うこととなり、アクセス要求の順序を効率良く制御することができないという問題がある。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、メモリシステムにおけるデータの転送効率を改善することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、複数のクライアントから発行されたリクエストに含まれる論理アドレスをメモリの物理アドレスに変換するアドレス変換部と、上記アドレス変換部により変換された変換リクエストの物理アドレスに基づいて上記メモリに対するコマンド単位により上記変換リクエストを分割するリクエスト分割部と、上記リクエスト分割部から出力された分割リクエストに示された上記物理アドレスに基づいて調停を行う調停部とを具備するメモリ制御装置およびその処理方法である。これにより、調停部により分割リクエストに示されたメモリの物理アドレスに基づいて調停させるという作用をもたらす。
【０００８】
また、この第１の側面において、上記リクエスト分割部は、上記アドレス変換部により変換された変換リクエストが上記メモリの同一バンクにおける複数のロウに対するアクセスを指定する場合には上記同一バンクのロウ単位により上記変換リクエストを分割し、上記調停部は、上記複数のクライアントに対応する上記リクエスト分割部から複数の分割リクエストを受け付けた場合には直前に出力した出力リクエストと同一のバンクアドレスを示し、かつ、上記出力リクエストと異なるロウアドレスを示す分割リクエスト以外の分割リクエストのうち１つの分割リクエストを出力するようにしてもよい。これにより、メモリの同一バンクにおける複数のロウに対するアクセスを要求する変換リクエストを同一バンクのロウ単位により分割し、上記複数のクライアントごとのリクエスト分割部からそれぞれ出力された複数の分割リクエストを受け付けた場合には、調停部により、同一バンクの異なるロウアドレスを指定する分割リクエストを連続して出力することを抑制させるという作用をもたらす。この場合において、上記アドレス変換部は、上記物理アドレスによる開始アドレスと上記メモリに対するアクセスすべきデータの長さである転送長とが示された上記変換リクエストを上記リクエスト分割部に出力し、上記リクエスト分割部は、上記変換リクエストの開始アドレスと上記変換リクエストを分割するための分割長の累計値に上記変換リクエストの開始アドレスが加算された次開始アドレスとのうちいずれか一方を上記分割リクエストの開始アドレスとして出力する開始アドレス出力部と、上記開始アドレス出力部から出力された分割リクエストの開始アドレスに含まれる開始カラムアドレスから上記分割リクエストの開始アドレスに示されるロウの終端カラムアドレスまでの上記分割長を生成する分割長生成部と、上記分割長生成部により生成された分割長と上記変換リクエストの転送長から上記分割長の累計値が減算された差分転送長とのうち小さい方を上記分割リクエストの転送長として出力する転送長出力部とを備えるようにしてもよい。これにより、開始アドレス出力部により、変換リクエストの開始アドレスと、変換リクエストを分割するための分割長とに基づいて生成された分割リクエストの開始アドレスを出力させ、それとともに、転送長出力部により、分割リクエストの開始アドレスに含まれる開始カラムアドレスからその終端カラムアドレスまでの分割長と、変換リクエストの転送長とに基づいて生成された分割リクエストの転送長を出力させるという作用をもたらす。
【０００９】
また、この第１の側面において、上記リクエスト分割部は、上記アドレス変換部により変換された変換リクエストの上記物理アドレスに基づいて上記メモリのバースト長単位により上記変換リクエストを分割するようにしてもよい。これにより、リクエスト分割部により、アドレス変換部により変換された変換リクエストの物理アドレスに基づいてメモリのバースト長単位により変換リクエストを分割させるという作用をもたらす。
【００１０】
また、この第１の側面において、上記リクエスト分割部は、１つのアドレスを指定する複数の第１の変換リクエストが上記アドレス変換部から順次出力された場合には上記物理アドレスによる開始アドレスと上記メモリに対するアクセスすべきデータの長さである転送長とを示す第２の変換リクエストを上記複数の第１の変換リクエストに基づいて生成して上記生成された第２の変換リクエストを上記メモリにおけるロウ単位により分割するようにしてもよい。これにより、リクエスト分割部により、アドレス変換部から連続して出力された複数の第１の変換リクエストに基づいて、物理アドレスによる開始アドレスおよび転送長を示す第２の変換リクエストを生成して、その生成された第２の変換リクエストをメモリにおけるロウ単位により分割させるという作用をもたらす。
【００１１】
また、この第１の側面において、上記リクエスト分割部から順次出力された分割リクエストを保持して上記保持された複数の分割リクエストに基づいて当該複数の分割リクエスト同士を連続して出力する連続出力部をさらに具備するようにしてもよい。これにより、連続出力部により、リクエスト分割部から順次出力された分割リクエストを順次保持していき、所定の条件を超えた場合にはその保持された複数の分割リクエスト同士を連続して出力させるという作用をもたらす。この場合において、上記連続出力部は、上記複数の分割リクエストの数に関する所定の閾値に基づいて上記複数の分割リクエスト同士を連続して出力するようにしてもよい。これにより、連続出力部により、複数の分割リクエストの数に関する所定の閾値を超えた場合には複数の分割リクエスト同士を連続して出力させるという作用をもたらす。
【００１２】
また、上記リクエスト分割部から順次出力された分割リクエストを保持して上記保持された複数の分割リクエストに基づいて当該複数の分割リクエスト同士を連続して出力する連続出力部をさらに具備する場合において、上記連続出力部は、上記複数の分割リクエストに示された上記転送長の累計に関する所定の閾値に基づいて上記複数の分割リクエスト同士を連続して出力するようにしてもよい。これにより、連続出力部により、複数の分割リクエストに示された転送長の累計に関する所定の閾値を超えた場合には複数の分割リクエスト同士を連続して出力させるという作用をもたらす。
【発明の効果】
【００１３】
本発明によれば、メモリシステムにおけるデータの転送効率を改善することができるという優れた効果を奏し得る。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施の形態におけるメモリ制御装置の一構成例を示すブロック図である。
【図２】本発明の第１の実施の形態におけるアダプタ２１１の一構成例を示すブロック図である。
【図３】本発明の第１の実施の形態におけるアドレス変換部２２０による物理アドレスの割当てに関する例を示す図である。
【図４】本発明の第１の実施の形態におけるリクエスト分割部２４０の一構成例を示すブロック図である。
【図５】本発明の第１の実施の形態におけるリクエスト分割部２４０による変換リクエストの分割例を示すタイミングチャートである。
【図６】アダプタ２１１においてリクエストがメモリシステム５００のロウ単位により分割されない場合におけるメモリシステム５００に対する書込み動作を例示するタイミングチャートである。
【図７】本発明の第１の実施の形態におけるメモリ制御装置２００によるメモリシステム５００に対する書込み動作を例示するタイミングチャートである。
【図８】本発明の第１の実施の形態におけるメモリ制御装置２００のメモリ制御方法の処理手順例を示すフローチャートである。
【図９】本発明の第２の実施の形態におけるアダプタ２１１の一構成例を示すブロック図である。
【図１０】本発明の第２の実施の形態におけるリクエスト分割部６４０の一構成例を示すブロック図である。
【図１１】本発明の第２の実施の形態におけるリクエスト分割部６４０による変換リクエストの分割例を示すタイミングチャートである。
【図１２】図１１において示された第１および第２の範囲指定リクエストが分割リクエスト線６７０から出力される例を示すタイミングチャートである。
【図１３】本発明の第２の実施の形態における連続出力部６８０の一構成例を示すブロック図である。
【図１４】本発明の第２の実施の形態における連続出力部６８０による分割リクエストの出力例を示すタイミングチャートである。
【図１５】本発明の第２の実施の形態におけるアダプタ２１１の構成の変形例を示すブロック図である。
【図１６】リクエスト入替部６３０による連続リクエストの入れ替えによって生成される分割リクエストの生成例を示すタイミングチャートである。
【図１７】本発明の第３の実施の形態におけるゲート機能を備えるアダプタ２１１の構成例を示すブロック図である。
【図１８】本発明の第３の実施の形態における周波数変換機能を備えるアダプタ２１１の構成例を示すブロック図である。
【図１９】本発明の第３の実施の形態におけるデータ幅変換機能を備えるアダプタ２１１の構成例を示すブロック図である。
【図２０】本発明の第３の実施の形態におけるアダプタ８５０の構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（リクエスト分割手法：開始アドレスおよび転送長が指定されるリクエストを分割する例）
２．第２の実施の形態（リクエスト分割手法：１つのアドレスが指定されるリクエストを分割する例）
３．第３の実施の形態（アダプタ追加機能：アダプタに付加的機能を追加した例）
【００１６】
＜１．第１の実施の形態＞
［メモリ制御装置の構成例］
図１は、本発明の第１の実施の形態におけるメモリ制御装置の一構成例を示すブロック図である。ここでは、クライアント１１１乃至１１４と、メモリ制御装置２００と、メモリインタフェース４００と、メモリシステム５００とを備える集積回路の基本構成が例示されている。ここでは、便宜上、クライアント１１１乃至１１４により、メモリシステム５００に対してデータの書込みを行う場合のみを想定する。
【００１７】
この集積回路を構成するメモリ制御装置２００は、アダプタ２１１乃至２１４と、アービタ３１０と、メモリコントローラ３２０と、データバスコントローラ３３０とを備える。さらに、メモリ制御装置２００は、ライトセレクタ３４０と、ライトデータバッファ３５０と、リードデータバッファ３６０と、リードセレクタ３７０とを備える。
【００１８】
クライアント１１１乃至１１４は、メモリシステム５００に対するデータの書込みをそれぞれ行うものである。このクライアント１１１乃至１１４は、例えば、中央演算処理装置（ＣＰＵ：Central Processing Unit）または機能ブロックなどである。このクライアント１１１乃至１１４は、メモリ制御装置２００およびメモリインタフェース４００を介して、メモリシステム５００に対するデータの書込みを行う。
【００１９】
この例では、クライアント１１１乃至１１４は、それぞれのリクエスト線１２１乃至１２４を介して、メモリシステム５００に対して書込みを行うためのリクエストをメモリ制御装置２００に発行する。このリクエストには、例えば、クライアント１１１乃至１１４ごとに与えられた仮想的な記憶領域における論理アドレス、アクセスすべきデータの長さである転送長、クライアントを識別するためのクライアント識別情報および転送方向が含まれる。ここにいう転送方向とは、データを書き込むための書込み要求、または、データを読み出すための読出し要求のいずれであるかを指し示すものである。なお、ここでは、クライアント１１１乃至１１４から発行されるリクエストには、転送方向として書込み要求が指定される。
【００２０】
また、このクライアント１１１乃至１１４は、アダプタ２１１乃至２１４からのデータの出力指示に従って、データ線１３１乃至１３４を介して、メモリシステム５００に書込むべき書込みデータをライトセレクタ３４０に出力する。なお、クライアント１１１乃至１１４は、特許請求の範囲に記載の複数のクライアントの一例である。
【００２１】
メモリ制御装置２００は、クライアント１１１乃至１１４から発行されたリクエストに基づいて、メモリシステム５００に対するデータの書込み、および、メモリシステム５００に記憶されているデータの読出しを制御するメモリバスシステムである。なお、メモリ制御装置２００は、特許請求の範囲に記載のメモリ制御装置の一例である。
【００２２】
アダプタ２１１乃至２１４は、メモリシステム５００に対して発行されるコマンド単位により、クライアント１１１乃至１１４からのリクエストを分割するものである。すなわち、アダプタ２１１は、クライアント１１１から発行されたリクエストをコマンド単位により分割する。アダプタ２１２は、クライアント１１２から発行されたリクエストをコマンド単位により分割する。アダプタ２１３は、クライアント１１３から発行されたリクエストをコマンド単位により分割する。アダプタ２１４は、クライアント１１４から発行されたリクエストをコマンド単位により分割する。
【００２３】
また、このアダプタ２１１乃至２１４は、クライアント１１１乃至１１４から発行されたリクエストをコマンド単位により分割するために、そのリクエストに含まれる論理アドレスをメモリシステム５００に対応する物理アドレスに変換する。ここにいう物理アドレスとは、メモリシステム５００を構成するバンク、ロウおよびカラムを指し示すアドレスであり、バンクアドレス、ロウアドレスおよびカラムアドレスのことをいう。このように、論理アドレスから物理アドレスに変換することによって、その変換されたリクエストには、メモリシステム５００におけるバンクアドレス、ロウアドレスおよびカラムアドレスが示される。また、アダプタ２１１乃至２１４は、分割されたリクエストを分割リクエストとして、分割リクエスト線３１１乃至３１４を介して、アービタ３１０にそれぞれ出力する。
【００２４】
また、アダプタ２１１乃至２１４は、クライアント１１１乃至１１４からリクエストの発行要求を受け付けた場合には、リクエスト線１２１乃至１２４を介して、クライアント１１１乃至１１４に対しリクエストの発行を許可する許可信号を出力する。また、アダプタ２１１乃至２１４は、アービタ３１０からの分割リクエストに対する調停結果（アクセス許可）に基づいて、クライアント１１１乃至１１４に書込みデータの出力を指示する。なお、ここでは、アダプタ２１１乃至２１４からクライアント１１１乃至１１４に対して書込みデータの出力を指示する例について説明したが、これに限られるものではない。例えば、アダプタ２１１乃至２１４において、クライアント１１１乃至１１４からの書込みデータを保持して、その保持された書込みデータのうち、アービタ３１０からの調停結果に対応するデータをライトセレクタ３４０に出力するようにしてもよい。
【００２５】
アービタ３１０は、アダプタ２１１乃至２１４から出力された分割リクエストに示される物理アドレスに基づいて調停（アービトレーション）を行う調停部である。このアービタ３１０は、例えば、アダプタ２１１乃至２１４から同時に複数の分割リクエストを受け付けた場合には、直前に出力した出力リクエストとバンクアドレスが同一であり、かつ、出力リクエストとロウアドレスが異なる分割リクエストの出力を抑制する。すなわち、アービタ３１０は、複数の分割リクエストを受け付けた場合には、出力リクエストと同一のバンクアドレスであり、かつ、出力リクエストと異なるロウアドレスを示す分割リクエスト以外の分割リクエストのうち１つの分割リクエストを選択する。
【００２６】
また、アービタ３１０は、その選択された分割リクエストをメモリコントローラ３２０に出力するとともに、その選択された分割リクエストに含まれるクライアント識別情報および転送情報をデータバスコントローラ３３０に供給する。また、アービタ３１０は、その選択された分割リクエストに示されるクライアント識別情報によって識別されるクライアント１１１乃至１１４に対応するアダプタ２１１乃至２１４に対して、その分割リクエストに対応する書込みデータの出力を指示する。なお、アービタ３１０は、特許請求の範囲に記載の調停部の一例である。
【００２７】
メモリコントローラ３２０は、アービタ３１０から出力された分割リクエストに基づいて、メモリインタフェース４００を介して、メモリシステム５００に対するコマンドを発行するものである。このメモリコントローラ３２０は、例えば、メモリシステム５００における複数のバンクに対して並列的にアクセスさせるためのバンクインタリーブ手法によりコマンドを発行する。
【００２８】
データバスコントローラ３３０は、アービタ３１０により選択されたクライアントと、ライトデータバッファ３５０またはリードデータバッファ３６０との間を接続するために、ライトセレクタ３４０またはリードセレクタ３７０を制御するものである。このデータバスコントローラ３３０は、アービタ３１０から供給されたクライアント情報および転送情報に基づいて、ライトセレクタ３４０およびリードセレクタ３７０を制御する。
【００２９】
この例では、データバスコントローラ３３０は、クライアント１１１乃至１１４からの書込みデータをライトデータバッファ３５０に出力させるようにライトセレクタ３４０を制御する。すなわち、データバスコントローラ３３０は、クライアント情報に示されたクライアント１１１乃至１１４と、ライトデータバッファ３５０との間でデータ転送が行えるようにライトセレクタ３４０の接続を切り替える。一方、読出し要求を示す分割リクエストがアービタ３１０から出力されたときは、データバスコントローラ３３０は、読出し要求を発行したクライアントに対し、リードデータバッファ３６０に保持されたデータを出力させるようにリードセレクタ３７０を制御する。
【００３０】
ライトセレクタ３４０は、データバスコントローラ３３０からの制御に従って、いずれか１つのクライアント１１１乃至１１４とライトデータバッファ３５０との間を接続するセレクタである。リードセレクタ３７０は、データバスコントローラ３３０からの制御に従って、いずれか１つのクライアントとリードデータバッファ３６０との間を接続するセレクタである。
【００３１】
ライトデータバッファ３５０は、クライアント１１１乃至１１４から供給される書込みデータの転送遅延による影響を吸収するためのバッファである。このライトデータバッファ３５０は、１つの分割リクエストに対してライトセレクタ３４０から供給されるデータを一時的に保持する。このライトデータバッファ３５０は、その保持されたデータをメモリインタフェース４００に供給する。
【００３２】
リードデータバッファ３６０は、メモリインタフェース４００から供給されるデータの転送遅延による影響を吸収するためのバッファである。このリードデータバッファ３６０は、１つの分割リクエストに対してメモリインタフェース４００から供給されるデータを一時的に保持する。このリードデータバッファ３６０は、その保持されたデータをリードセレクタ３７０に供給する。
【００３３】
メモリインタフェース４００は、メモリ制御装置２００とメモリシステム５００との間を接続するものである。このメモリインタフェース４００は、メモリ制御装置２００の動作クロックと同期して供給されるコマンドと、ライトデータバッファ３５０からの書込みデータとを、メモリシステム５００のメモリクロックに基づいて出力する。また、このメモリインタフェース４００は、メモリシステム５００におけるメモリクロックに同期して読み出されたデータを、メモリ制御装置２００の動作クロックに同期させてリードデータバッファ３６０に出力する。このメモリインタフェース４００は、例えば、１６６ＭＨｚの動作クロックにより動作するメモリ制御装置２００と、３３３ＭＨｚのメモリクロックにより動作するメモリシステム５００との間を接続する。
【００３４】
また、メモリインタフェース４００は、メモリ制御装置２００のデータ幅によってライトデータバッファ３５０から出力されたデータを、メモリシステム５００のデータ幅によりメモリシステム５００に出力する。一方、メモリインタフェース４００は、メモリシステム５００のデータ幅によって読み出されたデータを、メモリ制御装置２００のデータ幅によりリードデータバッファ３６０に出力する。メモリインタフェース４００は、例えば、６４ビットのデータ幅のメモリ制御装置２００と、３２ビットのデータ幅のメモリシステム５００との間を接続する。
【００３５】
また、メモリインタフェース４００は、メモリコントローラ３２０から発行されたコマンドを、コマンド線４０１を介してメモリシステム５００に出力する。また、メモリインタフェース４００は、ライトデータバッファ３５０から出力された書込みデータを、データ線４１１を介して、メモリシステム５００に出力する。また、メモリインタフェース４００は、データ線４１１を介して、メモリシステム５００から読み出された読出しデータをリードデータバッファ３６０に出力する。
【００３６】
メモリシステム５００は、クライアント１１１乃至１１４からのデータを記憶するものである。このメモリシステム５００は、ＳＤＲＡＭにより実現され、Ｘ（Ｘは２以上の整数）個のバンクにより構成される。このバンクの各々は、Ｙ（Ｙは２以上の整数）個のロウにより構成され、さらに、そのロウの各々は、Ｚ（Ｚは２以上の整数）個のカラムにより構成される。すなわち、Ｘ個のバンクの各々は、Ｙ×Ｚ個の２次元マトリックス状に配列された記憶素子により構成される。このメモリシステム５００は、例えば、一般的なパーソナルコンピュータに関しては、ＤＤＲ２＿ＳＤＲＡＭ（Double Data Rate 2 SDRAM）やＤＤＲ３＿ＳＤＲＡＭなどが考えられる。
【００３７】
このメモリシステム５００は、メモリコントローラ３２０から発行されたコマンドに従って、クライアント１１１乃至１１４からのデータの書込み、および、各バンクに記憶されたデータの読出しを行う。ここでは、データの書込み、および、読出しのことをアクセスという。このメモリシステム５００は、コマンドに指定されたカラムアドレスに基づいて、一定のバースト長単位により、連続してデータの転送を行う。このメモリシステム５００は、例えば、４ワードまたは８ワードのデータを１つのバースト長単位として、データ転送を行う。
【００３８】
このメモリシステム５００は、例えば、データを書き込むための書込みコマンドをメモリコントローラ３２０から受け付けた場合には、メモリコントローラ３２０から供給されたデータを書き込む。一方、このメモリシステム５００は、データを読み出すための読出しコマンドをメモリコントローラ３２０から受け付けた場合には、記憶しているデータをメモリインタフェース４００に出力する。なお、メモリシステム５００は、特許請求の範囲に記載のメモリの一例である。
【００３９】
このように、アダプタ２１１乃至２１４を設けることによって、アービタ３１０においてリクエストの物理アドレスに基づいて調停を行うことができる。なお、ここでは、アダプタ２１１乃至２１４において、クライアント１１１乃至１１４からの書込みを行うための書込みリクエストを分割する例について説明したが、メモリシステム５００から記憶データを読み出すための読出しリクエストに対しても同様に分割する。次に、アダプタ２１１乃至２１４の基本構成について図面を参照して詳細に説明する。
【００４０】
［アダプタ２１１の構成例］
図２は、本発明の第１の実施の形態におけるアダプタ２１１乃至２１４の一構成例を示すブロック図である。ここでは、アダプタ２１１乃至２１４のそれぞれは同一構成であるため、アダプタ２１１の構成例についてのみ説明する。
【００４１】
アダプタ２１１は、アドレス変換部２２０およびリクエスト分割部２４０を備える。アドレス変換部２２０は、リクエスト線１２１を介してクライアント１１１から発行されたリクエストに含まれる論理アドレスを、メモリシステム５００における物理アドレスに変換するものである。このアドレス変換部２２０は、変換リクエスト線２３０を介して、論理アドレスから物理アドレスに変換されたリクエストを変換リクエストとしてリクエスト分割部２４０に出力する。なお、アドレス変換部２２０は、特許請求の範囲に記載のアドレス変換部の一例である。
【００４２】
リクエスト分割部２４０は、変換リクエスト線２３０から出力された変換リクエストの物理アドレスに基づいて、メモリシステム５００に対するコマンド単位によりその変換リクエストを分割するものである。すなわち、リクエスト分割部２４０は、メモリシステム５００における同一バンクの複数のロウに対するアクセスを指定する１つの変換リクエストを受け付けた場合には、同一バンクのロウ単位により変換リクエストを分割する。このリクエスト分割部２４０は、例えば、メモリシステム５００におけるバースト長単位により変換リクエストを分割する。また、リクエスト分割部２４０は、その分割された変換リクエストを分割リクエストとして分割リクエスト線３１１に供給する。なお、リクエスト分割部２４０は、特許請求の範囲に記載のリクエスト分割部の一例である。
【００４３】
このように、アドレス変換部２２０によりリクエストに含まれる論理アドレスを物理アドレスに変換することによって、リクエスト分割部２４０においてメモリシステム５００のコマンド単位により変換リクエストを分割することができる。また、リクエスト分割部２４０によって、変換リクエストをバースト長単位により分割することによって、１つのクライアント１１１乃至１１４によるメモリシステム５００に対する長期間のアクセスを防止することができる。次に、アドレス変換部２２０によるアドレス変換に関して、以下に図面を参照して簡単に説明する。
【００４４】
［アドレス変換部２２０による物理アドレス割当の例］
図３は、本発明の第１の実施の形態におけるアドレス変換部２２０による物理アドレスの割当てに関する例を示す図である。図３（ａ）は、０乃至２４ビットの論理アドレスをメモリシステム５００に対応する物理アドレスに変換するためのアドレス変換表を示す図である。図３（ｂ）は、０乃至２３ビットの論理アドレスをメモリシステム５００に対応する物理アドレスにアドレス変換するための変換表を示す図である。
【００４５】
図３（ａ）には、０乃至９ビットをカラムアドレス（Ｃ［９：０］）２２１に、１０乃至２１ビットをロウアドレス（Ｒ［１１：０］）２２２に、２２乃至２４ビットをバンクアドレス（Ｂ［２：０］）に割り当てるアドレス変換表が示されている。このアドレス変換表に基づいて、アドレス変換部２２０は、０乃至２４ビットの論理アドレスを、バンクアドレス、ロウアドレスおよびカラムアドレスを示す物理アドレスに変換する。
【００４６】
図３（ｂ）には、０乃至１ビットをカラムアドレス（Ｃ［１：０］）２２４に、２乃至３ビットをバンクアドレス（Ｂ［１：０］）２２５に割り当てる。さらに、４乃至１１ビットをカラムアドレス（Ｃ［９：２］）２２６に、１２乃至２３ビットをロウアドレス（Ｒ［１１：０］）２２７に割り当てるアドレス変換表が示されている。このアドレス変換表においては、論理アドレスを４つ進めるたびに物理アドレスのバンクアドレスが変わる。このため、このアドレス変換表に基づいてアドレス変換を行うことによって、メモリシステム５００に対する４ワードごとのバンクインタリーブを実現することができる。
【００４７】
このように、アドレス変換部２２０は、アドレス変換表を用いることによって、クライアント１１１乃至１１４からのリクエストに指定された論理アドレスをメモリシステム５００に対応する物理アドレスに変換することができる。
【００４８】
［リクエスト分割部２４０の構成例］
図４は、本発明の第１の実施の形態におけるリクエスト分割部２４０の一構成例を示すブロック図である。ここでは、クライアント１１１から発行されるリクエストの論理アドレスには、アクセスすべきアドレス範囲の先頭位置を示す開始アドレスおよび転送長が示されていることを想定している。
【００４９】
この例では、アドレス変換部２２０とリクエスト分割部２４０との間を接続する変換リクエスト線２３０には、開始アドレス線２３１、転送長線２３２および初期化信号線２３９が含まる。この開始アドレス線２３１には、アドレス変換部２２０により変換された物理アドレスの開始アドレスが供給される。また、転送長線２３２には、クライアント１１１から発行されたリクエストに含まれる転送長がアドレス変換部２２０を介して供給される。さらに、初期化信号線２３９には、変換リクエストが供給されたタイミングを示す初期化信号が供給される。
【００５０】
リクエスト分割部２４０は、開始アドレス出力部２４１と、次開始アドレス算出部２４２と、次開始アドレスレジスタ２４３とを備える。また、リクエスト分割部２４０は、転送長選択部２４４と、分割長生成部２４５と、転送長出力部２４６と、差分転送長算出部２４７と差分転送長レジスタ２４８とを備える。
【００５１】
開始アドレス出力部２４１は、初期化信号線２３９からの初期化信号に基づいて、開始アドレス線２３１からの開始アドレスと、次開始アドレスレジスタ２４３から出力される次開始アドレスとのうち、いずれか一方を選択するセレクタである。ここにいう次開始アドレスとは、直前に開始アドレス出力部２４１から出力された分割リクエストの次の分割リクエストに示される開始アドレスのことである。
【００５２】
この開始アドレス出力部２４１は、初期化信号線２３９から初期化信号が供給された場合には、開始アドレス線２３１から供給される開始アドレスを選択する。これに対し、開始アドレス出力部２４１は、初期化信号線２３９から初期化信号が供給されない場合には、次開始アドレスレジスタ２４３に保持された次開始アドレスを選択する。また、開始アドレス出力部２４１は、その選択された開始アドレスまたは次開始アドレスのうちいずれか一方を、分割リクエスト線３１１に含まれる開始アドレス線２５１を介して、アービタ３１０および次開始アドレス算出部２４２に出力する。
【００５３】
開始アドレス出力部２４１は、さらに、開始アドレス線２５１に含まれるカラムアドレス線２５５を介して、選択されたアドレスに含まれる開始カラムアドレスを分割長生成部２４５に出力する。なお、開始アドレス出力部２４１は、特許請求の範囲に記載の開始アドレス出力部の一例である。
【００５４】
次開始アドレス算出部２４２は、開始アドレス出力部２４１から出力された開始アドレスと、転送長出力部２４６から出力された転送長とを加算するものである。すなわち、次開始アドレス算出部２４２は、メモリシステム５００における物理アドレスの順序に従うように、開始アドレス出力部２４１から出力された開始アドレスに、転送長出力部２４６からの転送長を加える。このように、次開始アドレス算出部２４２は、次の分割リクエストの開始アドレスである次開始アドレスを算出する。また、次開始アドレス算出部２４２は、開始アドレス出力部２４１からの開始アドレスと、転送長出力部２４６からの転送長に基づいて算出された次開始アドレスを、次開始アドレスレジスタ２４３に出力する。
【００５５】
次開始アドレスレジスタ２４３は、次開始アドレス算出部２４２から出力された次開始アドレスを保持するものである。この次開始アドレスレジスタ２４３は、その保持された次開始アドレスを開始アドレス出力部２４１に出力する。
【００５６】
転送長選択部２４４は、初期化信号線２３９からの初期化信号に基づいて、転送長線２３２からの転送長と、差分転送長レジスタ２４８から出力される差分転送長とのうち、いずれか一方を選択するセレクタである。ここにいう差分転送長とは、変換リクエストに示された転送長から、その変換リクエストにおける過去に出力された分割リクエストの転送長の累計値を減算した転送長である。
【００５７】
この転送長選択部２４４は、初期化信号線２３９から初期化信号が供給された場合には、転送長線２３２から供給される転送長を選択する。これに対し、転送長選択部２４４は、初期化信号線２３９から初期化信号が供給されない場合には、差分転送長レジスタ２４８から出力された差分転送長を選択する。また、転送長選択部２４４は、その選択された転送長または差分転送長のうちいずれか一方を、転送長出力部２４６および差分転送長算出部２４７に出力する。
【００５８】
分割長生成部２４５は、カラムアドレス線２５５を介して、開始アドレス出力部２４１から出力される開始アドレスに含まれる開始カラムアドレスに基づいて、変換リクエストを分割するための分割長を生成するものである。この分割長生成部２４５は、例えば、開始アドレス出力部２４１からの開始アドレスに含まれる開始カラムアドレスから、開始アドレスに示されるロウの終端カラムアドレスまでの長さを分割長として算出する。この場合、分割長生成部２４５には、各ロウの終端カラムアドレスが予め保持されている。
【００５９】
ここでは、分割長生成部２４５は、開始アドレス出力部２４１からの開始アドレスに含まれる開始カラムアドレスに基づいて、メモリシステム５００におけるバースト長単位により分割長を生成する。この場合において、分割長生成部２４５は、例えば、開始アドレス出力部２４１からの開始カラムアドレスの下位２ビットに基づいて、バースト長単位により分割長を生成する。すなわち、分割長生成部２４５は、開始カラムアドレスの下位２ビットにより定まるバースト単位におけるアクセスの開始位置からバースト長単位における終端位置までの長さを分割長とする。例えば、分割長生成部２４５は、開始カラムアドレスの下位２ビットの値が「３」を示す場合には、バースト長単位の終端であるため、分割長を「１」に設定する。
【００６０】
この例において、分割長生成部２４５は、開始カラムアドレスの下位２ビットの値と分割長との関係を示す分割長対応表を予め保持している。この分割長対応表は、ＤＤＲの規格に基づいて生成される。この分割長対応表は、例えば、開始カラムアドレスの下位２ビットが「０」のとき分割長「４」、下位２ビットが「１」のとき分割長「１」、下位２ビットが「２」のとき分割長「２」、下位２ビットが「３」のとき分割長「１」が示されている。なお、メモリシステム５００におけるロウの単位とバースト長の単位とが一致することから、分割長生成部２４５は、分割長対応表に基づいてバースト長単位により分割長を生成することによって、変換リクエストをロウ単位により分割することができる。
【００６１】
また、分割長生成部２４５は、カラムアドレス線２５５からの開始カラムアドレスに基づいて生成された分割長を転送長出力部２４６に出力する。なお、分割長生成部２４５は、特許請求の範囲に記載の分割長生成部の一例である。
【００６２】
転送長出力部２４６は、分割長生成部２４５からの分割長と、転送長選択部２４４からの変換リクエストの転送長または差分転送長レジスタ２４８からの差分転送長とのうち小さい方を、分割リクエストの転送長として出力するものである。なお、転送長出力部２４６は、特許請求の範囲に記載の転送長出力部の一例である。
【００６３】
差分転送長算出部２４７は、転送長選択部２４４から出力された転送長または差分転送長と、転送長出力部２４６から出力された転送長とを減算するものである。この差分転送長算出部２４７は、転送長選択部２４４から出力された転送長または差分転送長から、転送長出力部２４６から出力された転送長を減算する。すなわち、差分転送長算出部２４７は、変換リクエストに示された転送長から、その変換リクエストにおける過去に出力された分割リクエストの転送長の累計値を減算することによって差分転送長を算出する。また、差分転送長算出部２４７は、その算出された差分転送長を差分転送長レジスタ２４８に供給する。
【００６４】
差分転送長レジスタ２４８は、差分転送長算出部２４７から出力された差分転送長を保持するものである。この差分転送長レジスタ２４８は、その保持された差分転送長を転送長選択部２４４に出力する。
【００６５】
このように、分割長生成部２４５を設けることによって、メモリシステム５００におけるロウ単位により、および、バースト長単位により、変換リクエストを分割するための分割長を生成することができる。また、開始アドレス出力部２４１を設けることによって、変換リクエストの開始アドレスと、変換リクエストの開始アドレスが分割長の累計値に加算された次開始アドレスとのうち、いずれか一方を分割リクエストの開始アドレスとして出力することができる。
【００６６】
また、転送長出力部２４６を設けることによって、分割長生成部２４５において生成された分割長と、変換リクエストの転送長から分割長の累計値が減算された差分転送長とのうち、小さい方を分割リクエストの転送長として出力することができる。ここで、リクエスト分割部２４０による変換リクエストの分割例について以下に図面を参照して説明する。
【００６７】
［リクエスト分割部２４０による変換リクエストの分割例］
図５は、本発明の第１の実施の形態におけるリクエスト分割部２４０による変換リクエストの分割例を示すタイミングチャートである。ここでは、変換リクエストとして、開始アドレスにバンク「０番」、ロウ「０番」およびカラム「ｆｃ番」（０／０／ｆｃ）が示され、転送長に「８」が示された変換リクエストを想定する。この例では、ロウ０番における終端カラムアドレスをｆｆ番とする。すなわち、メモリシステム５００に対するアクセスすべき範囲がロウ０番および１番に跨るリクエストを受け付けた場合を想定している。また、分割長生成部２４５は、図４で述べたＤＤＲの規定による分割長対応表の例に基づいて分割長を生成することとする。なお、バンクアドレス（Ｂ）、ロウアドレス（Ｒ）およびカラムアドレス（Ｃ）を、ここではＢ／Ｒ／Ｃとして表わす。
【００６８】
ここでは、変換リクエスト線２３０に含まれる初期化信号線２３９と、開始アドレス線２３１と、転送長線２３２とが示されている。また、開始アドレス出力部２４１と、転送長選択部２４４と、カラムアドレス線２５５と、分割長生成部２４５と、次開始アドレスレジスタ２４３と、差分転送長レジスタ２４８とが示されている。さらに、分割リクエスト線３１１に含まれる開始アドレス線２５１および転送長線２５２が示されている。また、左から右に時間（時刻ｔ０乃至ｔ２）が経過することとする。
【００６９】
時刻ｔ０において、初期化信号線２３９を介して初期化信号が供給されるとともに、開始アドレス線２３１および転送長線２３２から変換リクエストの開始アドレス「０／０／ｆｃ」および転送長「８」がそれぞれ供給される。
【００７０】
この場合において、開始アドレス出力部２４１には初期化信号が供給されるため、開始アドレス出力部２４１から、変換リクエストの開始アドレス「０／０／ｆｃ」が分割リクエスト線３１１の開始アドレス線２５１に出力される。それとともに、転送長選択部２４４にも初期化信号が供給されるため、転送長選択部２４４により、転送長線２３２からの変換リクエストの転送長「８」が出力される。
【００７１】
このとき、カラムアドレス線２５５からの開始カラムアドレス（ｆｃ）の下位２ビットは「０」を示すため、分割長生成部２４５から分割長「４」が出力される。そして、転送長出力部２４６により、転送長線２３２からの転送長「８」と、分割長生成部２４５からの分割長「４」とのうち、小さい値を示す分割長生成部２４５からの分割長「４」が分割リクエスト線３１１の転送長線２５２に出力される。
【００７２】
これとともに、次開始アドレスレジスタ２４３には、次開始アドレス算出部２４２において、変換リクエストの開始アドレス「０／０／ｆｃ」に分割長「４」が加算された次開始アドレス「０／１／０」が保持される。また、差分転送長レジスタ２４８には、差分転送長算出部２４７において、転送長選択部２４４の出力「８」から転送長出力部２４６の出力「４」が減算された差分転送長「４」が保持される。
【００７３】
時刻ｔ１において、開始アドレス出力部２４１には、初期化信号が供給されないため、次開始アドレスレジスタ２４３に保持された次開始アドレス「０／１／０」が分割リクエスト線３１１の開始アドレス線２５１に出力される。それとともに、転送長選択部２４４にも初期化信号が供給されないため、転送長選択部２４４から、差分転送長レジスタ２４８に保持された差分転送長「４」が出力される。
【００７４】
このとき、カラムアドレス線２５５からの開始カラムアドレス（０）の下位２ビットは「０」を示すため、分割長生成部２４５から分割長「４」が出力される。そして、転送長出力部２４６により、転送長選択部２４４からの差分転送長「４」と、分割長生成部２４５からの分割長「４」とが同一であるため、分割リクエスト線３１１の転送長線２５２に「４」が出力される。
【００７５】
これとともに、次開始アドレスレジスタ２４３には、次開始アドレス算出部２４２において、変換リクエストの開始アドレス「０／１／０」に「４」が加算された次開始アドレス「０／１／４」が保持される。また、差分転送長レジスタ２４８には、差分転送長算出部２４７において、転送長選択部２４４の出力「４」から転送長出力部２４６の出力「４」が減算された差分転送長「０」が保持される。
【００７６】
このように、分割長生成部２４５により、変換リクエストの物理アドレスに含まれる開始カラムアドレスに基づいてバースト単位により分割長を生成することによって、メモリシステム５００におけるロウ単位により変換リクエストを分割することができる。ここで、変換リクエストの物理アドレスに基づいて、その変換リクエストをロウ単位により分割することによって、メモリシステム５００に対するアクセス期間を改善させる例について図面を参照して以下に説明する。
【００７７】
［アダプタ２１１によりリクエストが分割されない例］
図６は、アダプタ２１１においてリクエストがメモリシステム５００のロウ単位により分割されない場合におけるメモリシステム５００に対する書込み動作を例示するタイミングチャートである。ここでは、クライアント１１１および１１２と、アービタ３１０との出力信号が示されている。また、コマンド線４０１およびデータ線に供給される信号が示されている。
【００７８】
この例では、図５と同様に、クライアント１１１から、開始アドレス「０／０／ｆｃ」に対応する論理アドレスおよび転送長「８」を指定するリクエスト（Ｘ）６０１が発行される。そして、クライアント１１２から、リクエスト（Ｘ）６０１のバンクアドレス（０
）とは異なる開始アドレス「１／０／０」および転送長「４」を指定するリクエスト（Ｙ）６０２が発行されることを想定する。
【００７９】
また、この例では、クライアント１１１および１１２と、メモリ制御装置２００との動作クロックを１６６ＭＨｚとし、メモリシステム５００におけるメモリクロックを３３３ＭＨｚとしている。このため、メモリクロックのクロック周波数が動作クロックの２倍となることから、分割リクエストの転送長が「４」を示す場合には、転送長を２倍した「８」ワードのデータが連続してメモリシステム５００に転送されることになる。
【００８０】
まず、時刻ｔ０において、クライアント１１１からリクエスト（Ｘ）６０１が発行される。時刻ｔ１において、クライアント１１２からリクエスト（Ｙ）６０２が発行されるとともに、アービタ３１０により、クライアント１１１から発行されたリクエスト（Ｘ）６１０がメモリコントローラ３２０に出力される。
【００８１】
その後、時刻ｔ２において、アービタ３１０により、クライアント１１２から発行されたリクエスト（Ｙ）６２０がメモリコントローラ３２０に出力される。そして、時刻ｔ３の直前において、コマンド線４０１を介して、リクエスト（Ｘ）６１０に基づいて発行された、カラム「ｆｃ番」および転送長「４」を指定する書込みコマンド（Ｗ）６１１が、メモリインタフェース４００からメモリシステム５００に出力される。これにより、時刻ｔ５の直前において、データ線４１１を介して、クライアント１１１からの書込みデータ６１２がメモリシステム５００に転送される。なお、ここでは、時刻ｔ０よりも前に、バンク「０番」、ロウ「０」番を指定するアクティブコマンドが既に発行されていることを想定している。
【００８２】
時刻ｔ９後において、バンク「０番」を指定するプリチャージコマンド（Ｐ）６１３がメモリインタフェース４００から出力される。そして、時刻ｔ１２直前において、コマンド線４０１を介して、リクエスト（Ｘ）６１０に基づいて発行された、バンク「０番」、ロウ「１番」を指定するアクティブコマンド（Ａ）６１４がメモリインタフェース４００から出力される。
【００８３】
そして、時刻ｔ１４の後に、コマンド線４０１を介して、カラム「０番」および転送長「４」を指定する書込みコマンド（Ｗ）６１５がメモリインタフェース４００から出力される。これにより、時刻ｔ１６の後に、データ線４１１を介して、クライアント１１１からの書込みデータ６１６がメモリシステム５００に転送される。
【００８４】
この後、時刻ｔ２１の直前において、バンク「０番」を指定するプリチャージコマンド（Ｐ）６１７がメモリインタフェース４００から出力される。そして、時刻ｔ２３の直後において、コマンド線４０１を介して、リクエスト（Ｙ）６２０に基づいて発行された、バンク「１番」、ロウ「０番」を指定するアクティブコマンド（Ａ）６２１がメモリインタフェース４００から出力される。
【００８５】
そして、時刻ｔ２６の直前において、コマンド線４０１を介して、カラム「０番」および転送長「４」を指定する書込みコマンド（Ｗ）６２２がメモリインタフェース４００から出力される。これにより、時刻ｔ２８の直前において、データ線４１１を介して、クライアント１１１からの書込みデータ６２３がメモリシステム５００に転送される。
【００８６】
このように、同一バンクにおける複数のロウに対するアクセスを指定する１つのリクエストを従来のメモリ制御装置が受け付けた場合には、同一バンクの異なるロウに連続してアクセスするコマンドが発行されてしまう。これにより、メモリシステム５００に対するデータの転送効率が低下して、アクセス期間Ａが長くなってしまう。次に、本発明の第１の実施の形態におけるメモリ制御装置２００の場合について、図面を参照して以下に説明する。
【００８７】
［アダプタ２１１によりリクエストが分割される例］
図７は、本発明の第１の実施の形態におけるメモリ制御装置２００によるメモリシステム５００に対する書込み動作を例示するタイミングチャートである。ここでは、クライアント１１１および１１２と、アダプタ２１１および２１２と、アービタ３１０との出力信号が示されている。また、コマンド線４０１およびデータ線に供給される信号が示されている。この例では、クライアント１１１および１１２から発行されるリクエスト（Ｘ）６０１およびリクエスト（Ｙ）６０２については、図６に示したものと同様であるため、ここでの説明を省略する。
【００８８】
時刻ｔ１において、アダプタ２１１により、クライアント１１１からのリクエスト（Ｘ）６０１の論理アドレスが物理アドレスに変換されて、その変換された物理アドレスに基づいて、分割リクエスト（Ｘ１）７１１がアービタ３１０に出力される。そして、時刻ｔ２において、アダプタ２１１および２１２の両者から分割リクエスト（Ｘ２）７１２および分割リクエスト（Ｙ）７２０がそれぞれアービタ３１０に出力される。
【００８９】
この場合おいて、リクエスト（Ｘ）６０１は、図５に示したとおり、開始アドレス「０／０／ｆｃ」および転送長「４」を指定する分割リクエスト（Ｘ１）７１１に分割される。そして、開始アドレス「０／１／０」および転送長「４」を指定する分割リクエスト（Ｘ２）７１２に分割される。また、クライアント１１２からのリクエスト（Ｙ）６０２は、開始アドレスが物理アドレスに変換されて、開始アドレス「１／０／０」および転送長「４」を指定するリクエストが分割リクエスト（Ｙ）７２０としてアダプタ２１２から出力される。また、時刻ｔ２において、アービタ３１０により、アダプタ２１１からの分割リクエスト（Ｘ１）７３０が出力される。
【００９０】
その後、時刻ｔ３において、アービタ３１０により、分割リクエスト（Ｘ２）７１２および分割リクエスト（Ｙ）７２０のうち、分割リクエスト（Ｙ）７２０が出力される。これは、分割リクエスト（Ｘ２）７１２が、直前に出力した分割リクエスト（Ｘ１）７３０と同一バンクであり、かつ、異なるロウアドレスを示す分割リクエストだからである。このため、アービタ３１０により、異なるバンク（１）を指定する分割リクエスト（Ｙ）７２０が選択されて、その選択された分割リクエスト（Ｙ）７４０がメモリコントローラ３２０に出力される。その後、時刻ｔ４において、分割リクエスト（Ｘ２）７５０がアービタ３１０から出力される。
【００９１】
また、時刻ｔ４の直前において、コマンド線４０１を介して、分割リクエスト（Ｘ）７３０に基づいて発行された、カラム「ｆｃ番」および転送長「４」を指定する書込みコマンド（Ｗ）７３１がメモリインタフェース４００から出力される。これにより、データ線４１１を介して、クライアント１１１からの書込みデータ７３２がメモリシステム５００に転送される。なお、ここでは、時刻ｔ０よりも前に、バンク「０番」、ロウ「０」番を指定するアクティブコマンドが既に発行されていることを想定している。
【００９２】
そして、時刻ｔ６の直前において、分割リクエスト（Ｙ）７４０に基づいて発行された、カラム「０番」および転送長「４」を指定する書込みコマンド（Ｗ）７４１がメモリインタフェース４００から出力される。これにより、データ転送７３２に続いて、データ線４１１を介して、クライアント１１２からの書込みデータ７４２がメモリシステム５００に転送される。なお、ここでも、時刻ｔ０よりも前に、バンク「１番」、ロウ「０」番を指定するアクティブコマンドが既に発行されていることを想定している。
【００９３】
次に、時刻ｔ１２の後に、コマンド線４０１を介して、バンク「０番」を指定するプリチャージコマンド（Ｐ）７３３が発行され、連続して、バンク「１番」を指定するプリチャージコマンド（Ｐ）７４３が発行される。そして、時刻ｔ１５の直前において、コマンド線４０１を介して、分割リクエスト（Ｘ２）７５０に基づいて発行された、バンク「０番」、ロウ「１番」を指定するアクティブコマンド（Ａ）７５１がメモリインタフェース４００から出力される。
【００９４】
次に、時刻ｔ１７の直後に、コマンド線４０１を介して、カラム「０番」および転送長「４」を指定する書込みコマンド（Ｗ）７５２がメモリインタフェース４００から出力される。これにより、データ線４１１を介して、クライアント１１１からの書込みデータ７５３がメモリシステム５００に転送される。
【００９５】
このように、アダプタ２１１によりリクエスト（Ｘ）６０１の論理アドレスを物理アドレスに変換して、その変換リクエストをロウ単位により分割することによって、アクセス期間Ｂを短縮させることができる。すなわち、アービタ３１０において、複数の分割リクエスト（Ｘ２およびＹ）７１２および７２０を受け付けた場合には、直前に出力した分割アドレス（Ｘ１）７３０の物理アドレスに基づいて、出力する分割リクエストを選択することができる。これにより、同一バンクの異なるロウアドレスを指定する分割アドレスを連続して出力することを抑制することができるため、メモリシステム５００におけるアクセス期間が短縮され、データ転送効率を改善することができる。
【００９６】
［メモリ制御装置２００の動作例］
次に本発明の実施の形態におけるメモリ制御装置２００の動作について図面を参照して説明する。
【００９７】
図８は、本発明の第１の実施の形態におけるメモリ制御装置２００のメモリ制御方法の処理手順例を示すフローチャートである。
【００９８】
まず、アドレス変換部２２０により、クライアント１１１乃至１１４から発行されたリクエストの論理アドレスが、メモリシステム５００の物理アドレスに変換される（ステップＳ９１１）。なお、ステップＳ９１１は、特許請求の範囲に記載のアドレス変換手順の一例である。続いて、リクエスト分割部２４０により、アドレス変換部２２０から出力された変換リクエストの物理アドレスに基づいて、メモリシステム５００に対するコマンド単位により、変換リクエストが分割される（ステップＳ９１２）。例えば、このリクエスト分割部２４０により、メモリシステム５００におけるロウ単位またはバースト長単位により変換リクエストが分割される。なお、ステップＳ９１２は、特許請求の範囲に記載のリクエスト分割手順の一例である。
【００９９】
その後、アービタ３１０により、各クライアント１１１乃至１１４に対応するリクエスト分割部２４０から出力された分割リクエストの物理アドレスに基づいて、その分割リクエストの出力順番に関する調停が行われる（ステップＳ９１３）。アービタ３１０により、例えば、直前に出力した分割リクエストと同一のバンクアドレスであり、かつ、異なるロウアドレスを指定する分割リクエスト以外の分割リクエストが選択される。なお、ステップＳ９１３は、特許請求の範囲に記載の調停手順の一例である。続いて、メモリコントローラ３２０により、選択された分割リクエストに基づいて、メモリシステム５００に対してコマンドが発行される（ステップＳ９１４）。
【０１００】
その後、データバスコントローラ３３０により、アービタ３１０により選択された分割リクエストが、書込み要求か読出し要求かが判断される（ステップＳ９１５）。そして、分割リクエストが書込み要求である場合には、データバスコントローラ３３０により、分割リクエストに示されたクライアント識別情報に基づいて、ライトセレクタ３４０の接続が切り替えられる。これにより、分割リクエストに示されたクライアント１１１乃至１１４からの書込みデータが、メモリインタフェース４００を介してメモリシステム５００に出力される（ステップＳ９１６）。
【０１０１】
一方、分割リクエストが読出し要求である場合には、メモリバスコントローラ３３０により、分割リクエストに示されたクライアント識別情報に基づいて、リードセレクタ３６０の接続が切り替えられる。これにより、分割リクエストに示されたクライアントに対して、メモリシステム５００に記憶されたデータのうち、その分割リクエストに指定された物理アドレスのデータが出力され（ステップＳ９１７）。そして、分割リクエストに対するメモリ制御処理が終了する。
【０１０２】
このように、本発明の第１の実施の形態では、アダプタ２１１乃至２１４を設けることによって、アービタ３１０においてメモリシステム５００におけるデータ転送の効率を低下させる分割リクエストの出力を抑制させることができる。
【０１０３】
なお、本発明の第１の実施の形態では、開始アドレスおよび転送長を指定するリクエストがクライアント１１１乃至１１４から発行される場合について説明したが、１つのアドレスを指定するリクエストが連続して発行される場合にも適用することができる。そこで、１つのアドレスを指定するリクエストが連続して発行される場合におけるアダプタ２１１乃至２１４について第２の実施の形態として以下に説明する。
【０１０４】
＜２．第２の実施の形態＞
［アダプタ２１１の構成例］
図９は、本発明の第２の実施の形態におけるアダプタ２１１の一構成例を示すブロック図である。アダプタ２１１は、アドレス変換部２２０と、リクエスト分割部６４０と、連続出力部６８０とを備える。アドレス変換部２２０は、図２に示したものと同様であるため、図２と同一符号を付してここでの詳細な説明を省略する。
【０１０５】
アドレス変換部２２０は、クライアント１１１から１つの論理アドレスが指定されたリクエストを連続して発行された複数の連続リクエストに対して、その複数の連続リクエストに示される論理アドレスを物理アドレスに変換するものである。そして、アドレス変換部２２０は、その変換された複数の連続リクエストをリクエスト分割部６４０に出力する。
【０１０６】
リクエスト分割部６４０は、アドレス変換部２２０からの複数の連続リクエストを開始アドレスおよび転送長を示すリクエストに生成して、その生成されたリクエストをメモリシステム５００におけるロウ単位またはバースト長単位により分割するものである。リクエスト分割部６４０は、その分割されたリクエストを分割リクエストとして、分割リクエスト線６７０を介して連続出力部６８０に順次出力する。なお、リクエスト分割部６４０は、特許請求の範囲に記載のリクエスト分割部の一例である。
【０１０７】
連続出力部６８０は、分割リクエスト線６７０を介してリクエスト分割部６４０から順次出力された分割リクエストを連続して出力するものである。この連続出力部６８０は、リクエスト分割部６４０から順次出力される分割リクエストを保持して、その保持された複数の分割リクエストに基づいて、その保持された複数の分割リクエスト同士を連続して、分割リクエスト線３１１を介してアービタ３１０に出力する。なお、連続出力部６８０は、特許請求の範囲に記載の連続出力部の一例である。
【０１０８】
次に、リクエスト分割部６４０および連続出力部６８０の具体的な構成について、図面を参照して以下に説明する。
【０１０９】
［リクエスト分割部６４０の構成例］
図１０は、本発明の第２の実施の形態におけるリクエスト分割部６４０の一構成例を示すブロック図である。リクエスト分割部６４０は、アドレスレジスタ６４１と、イネーブルレジスタ６４２と、ラスト信号レジスタ６４３と、開始アドレス選択部６４４と、開始アドレス決定部６４５と、開始アドレスレジスタ６４６とを備える。さらに、リクエスト分割部６４０は、アドレス比較部６４７と、リクエスト取得信号生成部６４８と、転送長生成カウンタ６４９と、リクエスト出力部６５０とを備える。
【０１１０】
また、リクエスト分割部６４０は、開始アドレス出力部６６１と、次開始アドレス算出部６６２と、次開始アドレスレジスタ６６３とを備える。また、リクエスト分割部６４０は、転送長選択部６６４と、分割長生成部６６５と、転送長出力部６６６と、差分転送長算出部６６７と差分転送長レジスタ６６８とを備える。なお、これらの構成は、図４に示したものと同様であるため、ここでの説明を省略する。
【０１１１】
また、ここでは、変換リクエスト線２３０に含まれるアドレス線２３３、アドレスイネーブル線２３４およびラスト信号線２３５が示されている。このアドレス線２３３には、アドレス変換部２２０により変換された連続リクエストの物理アドレスが供給される。また、アドレスイネーブル線２３４には、アドレス線２３３に供給された物理アドレスが有効である否かを示すイネーブル信号が供給される。さらに、ラスト信号線２３５には、アドレス変換部により変換された複数の連続リクエストのうち終端を示すラスト信号が供給される。
【０１１２】
アドレスレジスタ６４１は、アドレス線２３３から供給される物理アドレスを保持するものである。このアドレスレジスタ６４１は、その保持された物理アドレスを開始アドレス選択部６４４およびアドレス比較部６４７に出力する。
【０１１３】
イネーブルレジスタ６４２は、アドレスイネーブル線２３４から供給されるイネーブル信号を保持するものである。このイネーブルレジスタ６４２は、その保持されたイネーブル信号を開始アドレス決定部６４５および転送長生成カウンタ６４９に出力する。
【０１１４】
ラスト信号レジスタ６４３は、ラスト信号線２３５から供給されるラスト信号を保持するものである。このラスト信号レジスタ６４３は、その保持されたラスト信号をアドレス比較部６４７に出力する。
【０１１５】
開始アドレス選択部６４４は、転送長生成カウンタ６４９のカウント値が初期値である場合に転送長生成カウンタ６４９から出力される初期化信号に基づいて、アドレスレジスタ６４１または開始アドレスレジスタ６４６のうち一方を選択するセレクタである。この開始アドレス選択部６４４は、転送長生成カウンタ６４９から初期値信号が出力された場合には、アドレスレジスタ６４１に保持されているアドレスを選択する。
【０１１６】
一方、開始アドレス選択部６４４は、転送長生成カウンタ６４９から初期値信号が出力されていない場合には、開始アドレスレジスタ６４６に保持されている開始アドレスを選択する。また、開始アドレス選択部６４４は、その選択されたアドレスまたは開始アドレスをリクエスト出力部６５０および開始アドレスレジスタに出力する。
【０１１７】
開始アドレス決定部６４５は、イネーブルレジスタ６４２からのイネーブル信号と、転送長生成カウンタ６４９からの初期値信号とに基づいて、開始アドレス選択部６４４からの出力を開始アドレスレジスタ６４６に保持させるか否かを決定するものである。この開始アドレス決定部６４５は、イネーブル信号および初期値信号を同時に受け付けた場合には、開始アドレス選択部６４４からのアドレスを、開始アドレスとして、開始アドレスレジスタ６４６に保持させる。これ以外の場合には、開始アドレス決定部６４５は、開始アドレス選択部６４４から出力されるアドレスを開始アドレスレジスタ６４６に保持させない。
【０１１８】
また、開始アドレス決定部６４５は、開始アドレス選択部６４４からの出力を開始アドレスレジスタ６４６に保持させるための保持信号を開始アドレスレジスタ６４６に出力する。この開始アドレス決定部６４５は、例えば、論理積回路により実現される。この例において、転送長生成カウンタ６４９から初期値信号として「Ｈ（Ｈｉｇｈ）」が出力され、かつ、イネーブルレジスタ６４２からイネーブル信号として「Ｈ」が出力された場合には、開始アドレス決定部６４５は、保持信号として「Ｈ」を出力する。これ以外の場合には、開始アドレス決定部６４５は、「Ｌ（Ｌｏｗ）」を出力する。
【０１１９】
開始アドレスレジスタ６４６は、開始アドレス決定部６４５からの保持信号に基づいて、開始アドレス選択部６４４により選択されたアドレスを開始アドレスとして保持するものある。この開始アドレスレジスタ６４６は、その保持された開始アドレスを開始アドレス選択部６４４に出力する。
【０１２０】
アドレス比較部６４７は、アドレスレジスタ６４１に保持されたアドレスと、次にアドレスレジスタ６４１に保持されるアドレスとを比較することによって、２つのアドレスが連続しているか否かを判断するものである。このアドレス比較部６４７は、アドレスイネーブル線２３４からのイネーブル信号と、ラスト信号レジスタ６４３からのラスト信号とに基づいて、アドレス線２３３から供給されるアドレスと、アドレスレジスタ６４１に保持されたアドレスとを比較する。
【０１２１】
このアドレス比較部６４７は、アドレスイネーブル線２３４からイネーブル信号が供給されている場合において、アドレス線２３３から供給されるアドレスと、アドレス線２３３から供給された１つ前のアドレスとが連続するか否かを比較する。すなわち、アドレス比較部６４７は、アドレスレジスタ６４１に保持されたアドレスと比較して、アドレス線２３３からのバンクアドレスが同一であり、ロウアドレスが同一であり、かつ、カラムアドレスが１だけ大きい場合には連続であると判断する。これ以外の場合には、アドレス比較部６４７は、アドレス線２３３からのアドレスと、アドレスレジスタ６４１からのアドレスとが不連続であると判断する。
【０１２２】
また、アドレス比較部６４７は、不連続と判断した場合には、不連続信号をリクエスト取得信号生成部６４８および転送長生成カウンタ６４９に出力する。また、アドレス比較部６４７は、ラスト信号レジスタ６４３からラスト信号が供給された場合には、アドレス比較を行うことなく、不連続信号をリクエスト取得信号生成部６４８および転送長生成カウンタ６４９に出力する。
【０１２３】
転送長生成カウンタ６４９は、アドレス比較部６４７により連続であると判断されている場合には、イネーブルレジスタ６４２からのイネーブル信号に基づいて、カウント値を１ずつ増加させるカウンタである。この転送長生成カウンタ６４９は、その増加されたカウント値を転送長としてリクエスト出力部６５０に出力する。
【０１２４】
また、転送長生成カウンタ６４９は、アドレス比較部６４７から不連続信号が供給された場合には、カウント値を初期値である「１」に設定して、初期値信号線６５５を介して初期値信号を開始アドレス選択部６４４および開始アドレス決定部６４５に供給する。また、転送長生成カウンタ６４９は、カウント値が一定の転送長閾値と一致した場合には、一致信号をリクエスト取得信号生成部６４８に供給した後にカウント値を初期値に設定する。
【０１２５】
リクエスト取得信号生成部６４８は、開始アドレス選択部６４４から出力される開始アドレスと、転送長生成カウンタ６４９から出力される転送長とをリクエスト出力部６５０に取得させるためのリクエスト取得信号を生成するものである。このリクエスト取得信号生成部６４８は、アドレス比較部６４７からの不連続信号、または、転送長生成カウンタ６４９からの一致信号に基づいてリクエスト取得信号を生成する。また、リクエスト取得信号生成部６４８は、その生成されたリクエスト取得信号をリクエスト出力部６５０に供給する。
【０１２６】
このリクエスト取得信号生成部６４８は、例えば、論理和回路により実現される。この例において、アドレス比較部６４７から不連続信号として「Ｈ」、または、転送長生成カウンタ６４９からの一致信号として「Ｈ」が供給された場合には、リクエスト取得信号生成部６４８は、リクエスト取得信号として「Ｈ」を出力する。
【０１２７】
リクエスト出力部６５０は、リクエスト取得信号生成部６４８からのリクエスト取得信号に基づいて、開始アドレス選択部６４４から出力された開始アドレスと、転送長生成カウンタ６４９から出力された転送長とを取得するものである。これにより、複数の連続リクエストから、開始アドレスおよび転送長を示すリクエストが生成される。そして、このリクエスト出力部６５０は、その生成されたリクエストを供給するタイミングを示す初期化信号線６５９に初期化信号を供給するとともに、開始アドレス線６５１および転送長線６５２にそれぞれ開始アドレスおよび転送長を出力する。
【０１２８】
［リクエスト分割部６４０による連続リクエストの分割例］
図１１は、本発明の第２の実施の形態におけるリクエスト分割部６４０による連続リクエストの分割例を示すタイミングチャートである。このタイミングチャートには、リクエスト出力部６５０から出力されるリクエストである範囲指定リクエストの生成例が示されている。
【０１２９】
ここでは、バンク０番、ロウ０番およびカラムｆｃ番のアドレス（０／０／ｆｃ）から、バンク０番、ロウ１番およびカラム３番のアドレス（０／１／３）までの８つの連続リクエストがアドレス変換部２２０から供給されたことを想定する。この例では、ロウ０番の終端カラムアドレスがｆｆ番とする。すなわち、メモリシステム５００に対するアクセスすべき範囲がロウ０番および１番に跨る場合を想定している。また、左から右に時間（時刻ｔ０乃至ｔ１１）が経過することとする。
【０１３０】
ここでは、変換リクエスト線２３０に含まれるアドレス線２３３、アドレスイネーブル線２３４およびラスト信号線２３５からの出力信号が示されている。また、アドレスレジスタ６４１、イネーブルレジスタ６４２、ラスト信号レジスタ６４３、転送長生成カウンタ６４９と、初期値信号線６５５、開始アドレス決定部６４５からの出力信号が示されている。さらに、開始アドレスレジスタ６４６、アドレス比較部６４７およびリクエスト取得信号生成部６４８からの出力信号が示されている。また、開始アドレス線６５１および転送長線６５２からの出力信号が示されている。また、ここでは、時刻ｔ０の直前における転送長生成カウンタ６４９のカウンタ値は、初期値である「１」を示している。
【０１３１】
まず、時刻ｔ０から時刻ｔ７において、第１の連続リクエストのアドレス「０／０／ｆｃ」から第８の連続リクエストのアドレス「０／１／３」までがアドレス線２３３から連続して出力される。これとともに、アドレスイネーブル線２３４からイネーブル信号が出力される。また、時刻ｔ７において、ラスト信号線２３５からラスト信号が出力される。
【０１３２】
この場合において、時刻ｔ１では、アドレスレジスタ６４１には第１の連続リクエストのアドレス「０／０／ｆｃ」が、イネーブルレジスタ６４２にはイネーブル信号が保持される。これとともに、転送長生成カウンタ６４９のカウント値は「１」のままであるため、初期値信号線６５５から初期化信号が出力され、開始アドレス選択部６４４においてアドレスレジスタ６４１からの第１の連続リクエストのアドレス「０／０／ｆｃ」が出力される。
【０１３３】
このとき、初期化信号が出力され、かつ、イネーブルレジスタ６４２からイネーブル信号が出力されるため、開始アドレス決定部６４５から保持信号が出力される。また、アドレスレジスタ６４１に保持された第１の連続リクエストのアドレス「０／０／ｆｃ」と、アドレス線２３３から出力された第２の連続リクエストのアドレス「０／０／ｆｄ」とが連続するため、アドレス比較部６４７から不連続信号は出力されない。
【０１３４】
時刻ｔ２では、アドレスレジスタ６４１には第２の連続リクエストのアドレス「０／０／ｆｄ」が、イネーブルレジスタ６４２にはイネーブル信号が保持される。これとともに、開始アドレスレジスタ６４６において、時刻ｔ１における開始アドレス決定部６４５からの保持信号に基づいて、開始アドレス選択部６４４から出力された第１の連続リクエストのアドレス「０／０／ｆｃ」が保持される。
【０１３５】
このとき、時刻ｔ１においてアドレス比較部６４７から不連続信号が出力されず、かつ、イネーブルレジスタ６４２からイネーブル信号が出力されたことから、転送長生成カウンタ６４９のカウンタ値が「２」に設定される。また、アドレスレジスタ６４１に保持された第２の連続リクエストのアドレス「０／０／ｆｄ」と、アドレス線２３３から出力された第３の連続リクエストのアドレス「０／０／ｆｅ」とが連続であるため、アドレス比較部６４７により不連続信号は出力されない。
【０１３６】
時刻ｔ３では、アドレスレジスタ６４１には第３の連続リクエストのアドレス「０／０／ｆｅ」が、イネーブルレジスタ６４２にはイネーブル信号が保持される。時刻ｔ２においてアドレス比較部６４７から不連続信号が出力されず、かつ、イネーブルレジスタ６４２からイネーブル信号が出力されるため、転送長生成カウンタ６４９のカウンタ値が「３」に設定される。このとき、アドレスレジスタ６４１に保持された第３の連続リクエストのアドレス「０／０／ｆｅ」と、アドレス線２３３から出力された第４の連続リクエストのアドレス「０／０／ｆｆ」とが連続であるため、アドレス比較部６４７から不連続信号は出力されない。
【０１３７】
時刻ｔ４では、アドレスレジスタ６４１には第４の連続リクエストのアドレス「０／０／ｆｆ」が、イネーブルレジスタ６４２にはイネーブル信号が保持される。時刻ｔ３においてアドレス比較部６４７から不連続信号が出力されず、かつ、イネーブルレジスタ６４２からイネーブル信号が出力されることから、転送長生成カウンタ６４９のカウンタ値が「４」に設定される。
【０１３８】
このとき、アドレスレジスタ６４１に保持された第４の連続リクエストのアドレス「０／０／ｆｆ」と、アドレス線２３３から出力された第５の連続リクエストのアドレス「０／１／０」とが連続でないため、アドレス比較部６４７から不連続信号が出力される。これにより、リクエスト取得信号生成部６４８からリクエスト取得信号が出力され、開始アドレスレジスタ６４６に保持された開始アドレス「０／０／ｆｃ」と、転送長生成カウンタ６４９のカウント値である転送長「４」がリクエスト出力部６５０に取得される。
【０１３９】
時刻ｔ５では、アドレスレジスタ６４１には第５の連続リクエスト（０／１／０）が、イネーブルレジスタ６４２にはイネーブル信号が保持される。時刻ｔ４においてアドレス比較部６４７から不連続信号が出力されたため、転送長生成カウンタ６４９のカウンタ値が初期値の「１」に設定される。これにより、転送長生成カウンタ６４９から初期値信号が出力されることから、開始アドレス決定部６４５には、初期値信号が供給され、かつ、イネーブルレジスタ６４２からイネーブル信号が供給されるため、開始アドレス決定部６４５から保持信号が出力される。また、初期値信号に基づいて開始アドレス選択部６４４から、アドレスレジスタ６４１に保持された第５の連続リクエストのアドレス（０／１／０）が出力される。
【０１４０】
このとき、アドレスレジスタ６４１に保持された第５の連続リクエストのアドレス「０／１／０」と、アドレス線２３３から出力された第６の連続リクエストのアドレス「０／１／１」とが連続であるため、アドレス比較部６４７から不連続信号は出力されない。また、リクエスト出力部６５０により、時刻ｔ４において取得された開始アドレス「０／０／ｆｃ」および転送長「４」が、第１の範囲指定リクエストとして開始アドレス線６５１および転送長線６５２にそれぞれ供給される。
【０１４１】
時刻ｔ６では、アドレスレジスタ６４１には第６の連続リクエストのアドレス「０／１／１」が、イネーブルレジスタ６４２にはイネーブル信号が保持される。これとともに、開始アドレスレジスタ６４６において、時刻ｔ５における開始アドレス決定部６４５からの保持信号に基づいて、開始アドレス選択部６４４から出力された第５の連続リクエストのアドレス「０／１／０」が保持される。また、時刻ｔ５においてアドレス比較部６４７から不連続信号が出力されず、かつ、イネーブルレジスタ６４２からイネーブル信号が供給されるため、転送長生成カウンタ６４９のカウンタ値が「２」に設定される。
【０１４２】
このとき、アドレスレジスタ６４１に保持された第６の連続リクエストのアドレス「０／１／１」と、アドレス線２３３から出力された第７の連続アリクエストのアドレス「０／１／２」とが連続するため、アドレス比較部６４７から不連続信号は出力されない。
【０１４３】
時刻ｔ７では、アドレスレジスタ６４１には第７の連続リクエストのアドレス「０／１／２」が、イネーブルレジスタ６４２にはイネーブル信号が保持される。時刻ｔ６においてアドレス比較部６４７から不連続信号が出力されず、かつ、イネーブルレジスタ６４２からイネーブル信号が供給されたため、転送長生成カウンタ６４９のカウンタ値が「３」に設定される。このとき、アドレスレジスタ６４１に保持された第７の連続リクエストのアドレス「０／１／２」と、アドレス線２３３から出力された第８の連続リクエストのアドレス「０／１／３」とが連続するため、アドレス比較部６４７から不連続信号は出力されない。
【０１４４】
時刻ｔ８では、アドレスレジスタ６４１には第８の連続リクエストのアドレス「０／１／３」が、イネーブルレジスタ６４２にはイネーブル信号が、ラスト信号レジスタ６４３にラスト信号が保持される。また、時刻ｔ７においてアドレス比較部６４７から不連続信号が出力されず、かつ、イネーブルレジスタ６４２からイネーブル信号が供給されるため、転送長生成カウンタ６４９のカウンタ値が「４」に設定される。
【０１４５】
このとき、ラスト信号レジスタ６４３からラスト信号が出力されるため、アドレス比較部６４７から不連続信号が出力される。これにより、リクエスト取得信号生成部６４８からリクエスト取得信号が出力され、開始アドレスレジスタ６４６に保持された開始アドレス「０／１／０」と、転送長生成カウンタ６４９のカウント値である転送長「４」がリクエスト出力部６５０に取得される。
【０１４６】
時刻ｔ９では、リクエスト出力部６５０により、時刻ｔ８において取得された開始アドレス「０／１／０」および転送長「４」が、第２の範囲指定リクエストとして開始アドレス線６５１および転送長線６５２にそれぞれ供給される。
【０１４７】
このように、第１乃至８の連続リクエストは、開始アドレス「０／０／ｆｃ」および転送長「４」を示す第１の範囲指定リクエストと、開始アドレス「０／１／０」および転送長「４」を示す第２の範囲指定リクエストとに変換される。すなわち、リクエスト分割部６４０は、１つのアドレスを指定する複数の連続リクエストがアドレス変換部２２０から順次出力された場合には、複数の連続リクエストに基づいて、物理アドレスによる開始アドレスおよび転送長を示す範囲指定リクエストを生成する。なお、連続リクエストおよび範囲指定リクエストは、特許請求の範囲に記載の第１および第２のリクエストの一例である。
【０１４８】
なお、このように、複数の連続リクエストを範囲指定リクエストに変換することによって、その変換された２つの範囲指定リクエスト間に空き時間（時刻ｔ６乃至ｔ８）が生じてしまう。次に、リクエスト出力部６５０により生成された２つの範囲指定リクエストが分割リクエスト線６７０から出力される例について図面を参照して説明する。
【０１４９】
図１２は、図１１において示された第１および第２の範囲指定リクエストが分割リクエスト線６７０から出力される例を示すタイミングチャートである。ここでは、図１１で示した開始アドレス「０／０／ｆｃ」および転送長「４」を示す第１の範囲指定リクエストと、開始アドレス「０／１／０」および転送長「４」を示す第２の範囲指定リクエストとがリクエスト出力部６５０から出力されることを想定している。また、分割長生成部６６５は、図４で述べたＤＤＲの規定による分割長対応表の例に基づいて分割長を生成することとする。
【０１５０】
ここでは、初期化信号線６５９と、開始アドレス線６５１と、転送長線６５２とが示されている。また、開始アドレス出力部６６１と、転送長選択部６６４と、カラムアドレス線６７５と、分割長生成部６６５と、次開始アドレスレジスタ６６３と、差分転送長レジスタ６６８とが示されている。さらに、分割リクエスト線６７０に含まれる開始アドレス線６７１および転送長線６７２が示されている。また、左から右に時間（時刻ｔ０乃至ｔ５）が経過することとする。
【０１５１】
時刻ｔ０において、初期化信号線６５９を介して初期化信号が供給されるとともに、開始アドレス線６５１および転送長線６５２から第１の範囲指定リクエストの開始アドレス「０／０／ｆｃ」および転送長「４」がそれぞれ供給される。
【０１５２】
この場合において、開始アドレス出力部６６１には初期化信号が供給されるため、開始アドレス出力部６６１から、第１の範囲指定リクエストの開始アドレス「０／０／ｆｃ」が分割リクエスト線６７０の開始アドレス線６７１に出力される。それとともに、転送長選択部６６４にも初期化信号が供給されるため、転送長選択部２４４から、転送長線６５２からの第１の範囲指定リクエストの転送長「４」が出力される。
【０１５３】
このとき、カラムアドレス線６７５からの開始カラムアドレス（ｆｃ）の下位２ビットは「０」を示すため、分割長生成部６６５から分割長「４」が出力される。そして、転送長出力部６６６により、転送長線６５２からの転送長「４」と、分割長生成部６６５からの分割長「４」とが等しいため、分割長として「４」が分割リクエスト線６７０の転送長線６７２に出力される。なお、転送長出力部６６６により、転送長線６７２に対する出力タイミングに合わせてイネーブル信号がリクエストイネーブル線６７３に出力される。
【０１５４】
これにより、第１の分割リクエストとして、開始アドレス「０／０／ｆｃ」および転送長「４」が分割リクエスト線６７０に出力され、第１の指定範囲リクエストに対する分割処理が終了する。
【０１５５】
それとともに、次開始アドレスレジスタ６６３には、次開始アドレス算出部６６２において、変換リクエストの開始アドレス「０／０／ｆｃ」に分割長「４」が加算された次開始アドレス「０／１／０」が保持される。また、差分転送長レジスタ６６８には、差分転送長算出部６６７において、転送長選択部６６４の出力「４」から転送長出力部６６６の出力「４」が減算された差分転送長「０」が保持される。
【０１５６】
次に、時刻ｔ４において、初期化信号線６５９を介して初期化信号が供給されるとともに、開始アドレス線６５１および転送長線６５２から第２の範囲指定リクエストの開始アドレス「０／１／０」および転送長「４」がそれぞれ供給される。
【０１５７】
この場合において、開始アドレス出力部６６１には初期化信号が供給されるため、開始アドレス出力部６６１から、第１の範囲指定リクエストの開始アドレス「０／１／０」が分割リクエスト線６７０の開始アドレス線６７１に出力される。それとともに、転送長選択部６６４にも初期化信号が供給されるため、転送長選択部２４４から、転送長線６５２からの第２の範囲指定リクエストの転送長「４」が出力される。
【０１５８】
このとき、カラムアドレス線６７５からの開始カラムアドレス（０）の下位２ビットは「０」を示すため、分割長生成部６６５から分割長「４」が出力される。そして、転送長出力部６６６により、転送長線６５２からの転送長「４」と、分割長生成部２４５からの分割長「４」とが等しいため、分割長として「４」が分割リクエスト線６７０の転送長線６７２に出力される。
【０１５９】
これにより、第２の分割リクエストとして、開始アドレス「０／１／０」および転送長「４」が分割リクエスト線６７０に出力され、第２の指定範囲リクエストに対する分割処理が終了する。
【０１６０】
このように、リクエスト出力部６５０から出力された第１および第２の指定範囲リクエストの出力間隔（時刻ｔ１乃至ｔ３）は、分割リクエスト線６７０に出力されるときにおいても維持される。ここでは、リクエスト出力部６５０から出力される指定範囲リクエストの出力間隔は、メモリシステム５００におけるロウの切り目により生じたものであるが、転送長生成カウンタ６４９に設定されるカウント値が転送長閾値となったときにおいても生じる。このときには、同一バンクの同一ロウアドレスを指定する複数の分割リクエスト間に空き時間が生じることになり、この空き時間によってメモリシステム５００のデータ転送効率が低下してしまう場合がある。
【０１６１】
例えば、空き時間が生じた同一バンクの同一ロウアドレスを指定する複数の分割リクエストの間に、これらの分割リクエストと同一のバンクアドレスであり、かつ、異なるロウアドレスを指定する他の分割リクエストがアービタ３１０に供給される場合である。この場合には、同一バンクの異なるロウアドレスを指定する分割リクエストがアービタ３１０から連続して出力されることになるため、著しくメモリシステム５００のデータ転送効率が低下する。
【０１６２】
このため、アダプタ２１１に連続出力部６８０を設けて、リクエスト分割部６４０から出力される分割リクエストを連続して出力させることによって、メモリシステム５００におけるデータ転送効率の低下を抑制させることができる。ここで、連続出力部６８０の構成例について図面を参照して以下に説明する。
【０１６３】
［連続出力部６８０の一構成例］
図１３は、本発明の第２の実施の形態における連続出力部６８０の一構成例を示すブロック図である。
【０１６４】
連続出力部６８０は、リクエスト出力部６８１と、転送長加算部６８２と、転送長累計比較部６８３と、転送長累計値レジスタ６８４と、リクエストカウンタ６８５と、出力信号生成部６８６とを備える。
【０１６５】
リクエスト出力部６８１は、リクエスト分割部６４０により分割された複数の分割リクエスト同士を連続して出力するものである。このリクエスト出力部６８１は、開始アドレス線６７１および転送長線６７２から供給される開始アドレスおよび転送長を示す分割リクエストを順次保持する。そして、リクエスト出力部６８１は、出力信号生成部６８６により生成された出力信号に基づいて、その保持された複数の分割リクエスト同士を連続して出力する。すなわち、リクエスト出力部６８１は、リクエスト分割部６４０から順次出力された分割リクエストを保持して、その保持された複数の分割リクエストに基づいて、複数の分割リクエスト同士を連続して出力する。
【０１６６】
また、リクエスト出力部６８１は、その保持された複数の分割リクエストの開始アドレスと、その開始アドレスに対応する転送長とを、分割リクエスト線３１１に含まれる開始アドレス線６９１および転送長線６９２に順次出力する。なお、リクエスト出力部６８１は、特許請求の範囲に記載の連続出力部の一例である。
【０１６７】
転送長加算部６８２は、転送長線６７２を介してリクエスト分割部６４０から供給された転送長と、転送長累計値レジスタ６８４に保持された転送長累計値とを加算するものである。この転送長加算部６８２は、その加算結果を転送長累計値として転送長累計比較部６８３および転送長累計値レジスタに出力する。
【０１６８】
転送長累計比較部６８３は、転送長加算部６８２により算出された転送長累計値と、一定の累計閾値とを比較するものである。この転送長累計比較部６８３は、転送長加算部６８２により算出された転送長累計値が累計閾値以上になった場合には、転送長信号を出力信号生成部６８６に出力する。
【０１６９】
転送長累計値レジスタ６８４は、転送長加算部６８２により算出された転送長累計値を保持するものである。この転送長累計値レジスタ６８４は、リクエスト出力部６８１に保持された複数の分割リクエストを出力させるための出力信号に基づいて、転送長累計値レジスタに保持された値を初期値である「０」に設定する。
【０１７０】
リクエストカウンタ６８５は、リクエストイネーブル線６７３を介してリクエスト分割部６４０から出力された分割リクエストを示すイネーブル信号に基づいて、リクエストカウンタ６８５のカウント値を１ずつ増加させるカウンタである。このリクエストカウンタ６８５は、カウント値が一定のカウント閾値になった場合には、信号線６８７を介して、カウント信号を出力信号生成部６８６に出力する。このリクエストカウンタ６８５は、出力信号生成部６８６からの出力信号に基づいてカウント値を初期値である「０」に設定する。
【０１７１】
出力信号生成部６８６は、転送長累計比較部６８３からの転送長信号、または、リクエストカウンタ６８５からのカウント信号を受け付けた場合には、出力信号を生成するものである。この出力信号生成部６８６は、その生成された出力信号をリクエスト出力部６８１、転送長累計値レジスタ６８４およびリクエストカウンタ６８５に出力する。
【０１７２】
この出力信号生成部６８６は、例えば、論理和回路により実現される。この例において、転送長累計比較部６８３から転送長信号として「Ｈ」、または、リクエストカウンタ６８５からのカウント信号として「Ｈ」が供給された場合には、出力信号生成部６８６は、出力信号として「Ｈ」を出力する。
【０１７３】
このように、連続出力部６８０は、転送長累計比較部６８３を設けることによって、複数の分割リクエストに示された転送長の累計に関する累計閾値に基づいて、複数の分割リクエスト同士を連続して出力することができる。これにより、分割リクエストを保持することによって生じるアクセス遅延を軽減することができる。
【０１７４】
また、連続出力部６８０は、リクエストカウンタ６８５を設けることによって、複数の分割リクエストの数に関するカウンタ閾値に基づいて、複数の分割リクエスト同士を連続して出力することができる。これにより、転送長累計比較部６８３と同様に、分割リクエストを保持することによって生じるアクセス遅延を軽減することができる。次に、連続出力部６８０により出力される分割リクエストの出力例について、図面を参照して以下に説明する。
【０１７５】
［連続出力部６８０による分割リクエストの出力例］
図１４は、本発明の第２の実施の形態における連続出力部６８０による分割リクエストの出力例を示すタイミングチャートである。ここでは、分割リクエスト線６７０に含まれる開始アドレス線６７１、転送長線６７２およびリクエストイネーブル線６７３の出力信号が示されている。また、転送長加算部６８２、転送長累計値レジスタ６８４、転送長累計比較部６８３、リクエストカウンタ６８５および出力信号生成部６８６の出力信号が示されている。さらに、分割リクエスト線３１１に含まれる開始アドレス線６９１および転送長線６９２の出力信号が示されている。
【０１７６】
ここでは、開始アドレス「０／０／ｆｃ」および転送長「４」を指定する第１の分割リクエストと、開始アドレス「０／１／０」および転送長「４」を指定する第２の分割リクエストとがリクエスト分割部６４０から供給されることを想定する。また、時刻ｔ０の直前では、転送長累計値レジスタ６８４およびリクエストカウンタ６８５は、初期値である「０」にそれぞれ設定されていることとする。また、転送長累計比較部６８３に設定された累計閾値を「８」とする。ここでは、左から右に時間（時刻ｔ０乃至ｔ７）が経過することとする。
【０１７７】
まず、時刻ｔ０では、開始アドレス線６７１および転送長線６７２から第１の分割リクエストの開始アドレス「０／０／ｆｃ」および転送長「４」が供給されるとともに、リクエストイネーブル線６７３からイネーブル信号が供給される。このとき、転送長加算部６８２により、転送長線６７２からの転送長「４」と、転送長累計値レジスタ６８４の初期値である「０」とが加算された転送長累計値「４」が転送長累計比較部６８３および転送長累計値レジスタ６８４に出力される。
【０１７８】
時刻ｔ１では、転送長累計値レジスタ６８４に、転送長加算部６８２からの転送長累積値「４」が保持される。そして、リクエストカウンタ６８５のカウント値が、リクエストイネーブル線６７３からのイネーブル信号に基づいて「１」に設定される。
【０１７９】
次に、時刻ｔ４では、開始アドレス線６７１および転送長線６７２から第２の分割リクエストの開始アドレス「０／１／０」および転送長「４」が供給されるとともに、リクエストイネーブル線６７３からイネーブル信号が供給される。このとき、転送長加算部６８２により、転送長線６７２からの転送長「４」と、転送長累計値レジスタ６８４に保持された転送長累計値「４」とが加算されて、新たな転送長累計値として「８」が出力される。そして、転送長加算部６８２から出力された転送長累積値「８」が累計閾値「８」と等しいため、転送長累計比較部６８３から転送長信号が出力信号生成部６８６に出力される。
【０１８０】
これにより、出力信号生成部６８６からの出力信号に基づいて、リクエスト出力部６８１に保持された第１の分割リクエストの開始アドレス「０／０／ｆｃ」および転送長「４」が開始アドレス線６９１および転送長線６９２にそれぞれ出力される。続いて、時刻ｔ５において、リクエスト出力部６８１に保持された第２の分割リクエストの開始アドレス「０／１／０」および転送長「４」が開始アドレス線６９１および転送長線６９２にそれぞれ出力される。また、出力信号生成部６８６からの出力信号に基づいて転送長累計値レジスタ６８４およびリクエストカウンタ６８５が初期値「０」にそれぞれ設定される。
【０１８１】
このように、連続出力部６８０を設けることによって、リクエスト分割部６４０から出力された第１および第２の分割リクエストを連続してアービタ３１０に出力することができる。このため、アービタ３１０において、第１および第２の分割リクエストの間に、他のクライアントからの分割リクエストが選択されることによって生じるメモリシステム５００における転送効率の低下を抑制することができる。
【０１８２】
次に、複数の連続リクエストの順番を入れ替えることによって、分割リクエストを１つに結合できる場合があることから、本発明の第２の実施の形態におけるアダプタ２１１の変形例として以下に図面を参照して説明する。
【０１８３】
［アダプタ２１１の構成の変形例］
図１５は、本発明の第２の実施の形態におけるアダプタ２１１の構成の変形例を示すブロック図である。このアダプタ２１１は、図９に示した構成に加えてリクエスト入替部６３０およびデータ管理部６３５を備えている。ここでは、リクエスト入替部６３０およびデータ管理部６３５以外の構成は、図９と同様のものであるため、図９と同一符号を付してここでの説明を省略する。
【０１８４】
リクエスト入替部６３０は、アドレス変換部２２０により物理アドレスに変換された複数の連続リクエストの順番を入れ替えるものである。このリクエスト入替部６３０は、例えば、アドレスが不連続である複数の連続リクエストを受け付けた場合には、リクエストに示されるアドレスが連続になるように、リクエストを並び替える。また、このリクエスト入替部６３０は、例えば、メモリシステム５００におけるカラムに対する一定のアクセス順序に従って、連続リクエストを入れ替える。また、リクエスト入替部６３０は、その入れ替えた連続リクエストの順序に関するリクエスト入替情報をデータ管理部６３５に供給する。また、リクエスト入替部６３０は、その入れ替えた連続リクエストをリクエスト分割部６４０に供給する。
【０１８５】
データ管理部６３５は、リクエスト入替部６３０から供給されたリクエスト入替情報に基づいて、データ線１３１を介してクライアント１１１からの書込みデータを入れ替えるものである。このデータ管理部６３５は、クライアント１１１から出力された書込みデータを保持して、その保持された書込みデータのうち、入れ替えられた連続リクエストに対応する書込みデータをリクエスト入替情報に基づいて入れ替える。また、データ管理部６３５は、信号線３１９を介してアービタ３１０から通知された調停結果に基づいて、メモリシステム５００に対するアクセスが許可された分割リクエストに対応する書込みデータを、データ線３４１を介してライトセレクタ３４０に出力する。
【０１８６】
次に、このリクエスト入替部６３０による複数の連続リクエストを入れ替える例について図面を参照して以下に説明する。
【０１８７】
［リクエスト入替部６３０によるリクエスト順の入れ替え例］
図１６は、リクエスト入替部６３０による連続リクエストの入れ替えによって生成される分割リクエストの生成例を示すタイミングチャートである。図１６（ａ）は、リクエスト入替部６３０により連続リクエストの入替を行わない場合における分割リクエストの例を示すタイミングチャートである。図１６（ｂ）は、リクエスト入替部６３０により連続リクエストの入替を行った場合における分割リクエストの例を示すタイミングチャートである。
【０１８８】
図１６（ａ）および（ｂ）では、クライアント１１１から、物理アドレス「０／０／３」に対応する論理アドレス「３」を示す第１の連続リクエストと、物理アドレス「０／０／０」に対応する論理アドレス「０」を示す第２の連続リクエストとが出力される。続いて、物理アドレス「０／０／１」に対応する論理アドレス「１」を示す第３の連続リクエストと、物理アドレス「０／０／２」に対応する論理アドレス「２」を示す第４の連続リクエストとが出力されることを想定する。
【０１８９】
図１６（ａ）には、リクエスト線１２１に含まれるリクエスト信号線１２５、許可信号線１２６、アドレスイネーブル線１２７および論理アドレス線１２８からの出力信号が示されている。また、分割リクエスト線６７０に含まれるリクエストイネーブル線６７３、開始アドレス線６７１および転送長線６７２の出力信号が示されている。
【０１９０】
時刻ｔ０において、クライアント１１１からリクエスト信号線１２５を介してメモリシステム５００に対するリクエストの発行を要求するリクエスト信号が出力される。時刻ｔ１において、許可信号線１２６を介して、アダプタ２１１から許可信号がクライアント１１１に出力される。これにより、リクエスト信号および許可信号が解除され、時刻ｔ２において、アドレスイネーブル線１２７および論理アドレス線１２８を介して、イネーブル信号および論理アドレス「３」が、第１の連続リクエストとしてクライアント１１１から出力される。
【０１９１】
続いて、時刻ｔ３において、アドレスイネーブル線１２７および論理アドレス線１２８を介してイネーブル信号および論理アドレス「０」が、第２の連続リクエストとしてクライアント１１１から出力される。次に、時刻ｔ４において、アドレスイネーブル線１２７および論理アドレス線１２８を介して、イネーブル信号および論理アドレス「１」が、第３の連続リクエストとしてクライアント１１１から出力される。時刻ｔ５において、アドレスイネーブル線１２７および論理アドレス線１２８を介して、イネーブル信号および論理アドレス「２」が、第４の連続リクエストとしてクライアント１１１から出力される。
【０１９２】
次に、時刻ｔ７において、リクエストイネーブル線６７３、開始アドレス線６７１および転送長線６７２を介して、イネーブル信号、開始アドレス「０／０／３」および転送長「１」が、第１の分割リクエストとしてリクエスト分割部６４０から出力される。その後、時刻ｔ９において、リクエストイネーブル線６７３、開始アドレス線６７１および転送長線６７２を介して、イネーブル信号、開始アドレス「０／０／０」および転送長「３」が、第２の分割リクエストとしてリクエスト分割部６４０から出力される。
【０１９３】
このように、４つの第１乃至４の連続リクエストがクライアント１１１から発行された場合には、リクエスト分割部６４０から第１および第２の分割リクエストが出力される。
【０１９４】
図１６（ｂ）には、物理アドレスを出力するための物理アドレス線６３１を介してリクエスト入替部６３０から出力される物理アドレス信号が示されている。ここでは、便宜上、カラムアドレスのみを示している。また、分割リクエスト線６７０に含まれるリクエストイネーブル線６７３、開始アドレス線６７１および転送長線６７２の出力信号が示されている。
【０１９５】
時刻ｔ０乃至ｔ４において、物理アドレス線６３１を介して、第１の物理アドレス「０／０／０」、第２の物理アドレス「０／０／１」、第３の物理アドレス「０／０／２」、第４の物理アドレス「０／０／３」がリクエスト入替部６３０から順次出力される。
【０１９６】
そして、時刻ｔ５において、リクエストイネーブル線６７３、開始アドレス線６７１および転送長線６７２を介して、イネーブル信号、開始アドレス「０／０／０」および転送長「４」が、第３の分割リクエストとしてリクエスト分割部６４０から出力される。
【０１９７】
このように、リクエスト入替部６３０を設けることによって、第１乃至第４の連続リクエストを１つの分割リクエストに生成することができるため、メモリシステム５００に対するコマンドの発行を低減することができる。
【０１９８】
このように、本発明の第２の実施の形態では、１つのアドレスを指定する複数の連続リクエストがクライアント１１１乃至１１４から発行される場合であっても、コマンド単位により分割リクエストを生成することができる。これにより、メモリシステム５００に対するアクセス効率を改善することができる。
【０１９９】
このように、本発明の実施の形態によれば、アダプタ２１１乃至２１４を設けることによって、アービタ３１０においてメモリシステム５００におけるデータ転送効率の良い調停を行うことができる。これにより、データ転送効率を考慮したリクエストの順序制御をアービタ３１０のみによって行うことができる。
【０２００】
なお、本発明の第１および第２実施の形態では、アダプタ２１１および２１４における基本的な機能について説明したが、アダプタ２１１乃至２１４に対して付加的機能を追加することができる。そこで、アダプタ２１１乃至２１４に対する付加的機能を追加した場合における構成例について第３の実施の形態として以下に図面を参照して簡単に説明する。
【０２０１】
＜３．第３の実施の形態＞
［アダプタ２１１にゲート機能を設けた例］
図１７は、本発明の第３の実施の形態におけるゲート機能を備えるアダプタ２１１の構成例を示すブロック図である。このアダプタ２１１は、図２に示した構成に加えてゲート部８１０を備えている。ここでは、ゲート部８１０以外の構成は、図２に示したものと同様であるため、図２と同一符号を付してここでの説明を省略する。
【０２０２】
ゲート部８１０は、アダプタ２１１に対して、メモリ制御装置２００からのリクエスト発行の許可なく発行されたリクエストを遮断するものである。このゲート部８１０は、例えば、メモリ制御装置２００の起動時において、クライアント１１１から発行されたリクエストを破棄する。これは、メモリ制御装置２００において初期動作が完了する前にクライアント１１１からリクエストを受け付けると、クライアント１１１との正常な通信を行えない場合があるため、そのための誤動作防止機能である。
【０２０３】
このように、ゲート部８１０を設けることによって、メモリ制御装置２００の起動時において許可なく発行されたリクエストが遮断されるため、クライアント１１１との通信時における誤動作を防止することができる。また、アダプタ２１１にゲート部８１０を設けることによって、クライアント１１１側にゲート部を設ける必要がなくなる。
【０２０４】
［アダプタ２１１に周波数変換機能を設けた例］
図１８は、本発明の第３の実施の形態における周波数変換機能を備えるアダプタ２１１の構成例を示すブロック図である。このアダプタ２１１は、図２に示した構成に加えて周波数変換部８２０を備えている。ここでは、周波数変換部８２０以外の構成は、図２に示したものと同様であるため、図２と同一符号を付してここでの説明を省略する。
【０２０５】
周波数変換部８２０は、互いに異なるクロック周波数により動作するクライアント１１１およびメモリ制御装置２００の間を接続するものである。この周波数変換部８２０は、クライアント１１１におけるクロック周波数（ｆａ）に同期して生成された信号を、メモリ制御装置２００におけるクロック周波数（ｆｂ）に同期する信号に変換する。また、周波数変換部８２０は、その変換された信号であるリクエストをアドレス変換部２２０に出力する。
【０２０６】
このように、アダプタ２１１に周波数変換部８２０を設けることによって、メモリ制御装置２００は、クロック周波数が互いに異なるクライアント１１１との間でメモリシステム５００に対するアクセス制御を行うことができる。また、アダプタ２１１に周波数変換部８２０を設けることによって、メモリ制御装置２００のクロック周波数をクライアント１１１のクロック周波数に合わせる必要がなくなるため、メモリ制御装置２００を設計上の制約が緩和される。
【０２０７】
［アダプタ２１１にデータ幅変換機能を設けた例］
図１９は、本発明の第３の実施の形態におけるデータ幅変換機能を備えるアダプタ２１１の構成例を示すブロック図である。このアダプタ２１１は、図２に示した構成に加えてデータ幅変換部を備えている。図１９（ａ）は、アドレス変換部２２０の前段にデータ幅変換部８３０を設けた例を示すブロック図である。図１９（ｂ）は、リクエスト分割部２４０の後段にデータ幅変換部８４０を設けた例を示すブロック図である。また、図１９（ａ）および（ｂ）に示されたデータ幅変換部８３０および８４０以外の構成は、図２と同様のものであるため、図２と同一の符号を付してここでの説明を省略する。
【０２０８】
図１９（ａ）に示されたデータ幅変換部８３０は、互いに異なるデータ幅により転送を行なうクライアント１１１およびメモリ制御装置２００の間を接続するものである。このデータ幅変換部８３０は、例えば、クライアント１１１から３２ビットのデータ幅により供給されたデータを保持する。そして、データ幅変換部８３０は、メモリ制御装置２００の６４ビットのデータ幅により、データ線３４１を介して、その保持されたデータをライトセレクタ３４０に転送することによってデータ幅を変換する。また、データ幅変換部８３０は、データ線１３１を介してクライアント１１１から発行されるリクエストをアドレス変換部２２０に出力する。
【０２０９】
図１９（ｂ）に示されたデータ幅変換部８４０は、互いに異なるデータ幅により転送を行なうクライアント１１１およびメモリ制御装置２００の間を接続するものである。このデータ幅変換部８４０は、例えば、クライアント１１１から３２ビットのデータ幅により供給されたデータを保持する。そして、データ幅変換部８４０は、メモリ制御装置２００の６４ビットのデータ幅により、データ線３４１を介してその保持されたデータをライトセレクタ３４０に転送することによって、データ幅を変換する。また、データ幅変換部８４０は、リクエスト分割部２４０からの分割リクエストを、分割リクエスト線３１１を介してアービタ３１０に出力する。
【０２１０】
このように、データ幅変換部８３０または８４０を設けることによって、メモリ制御装置２００は、データ幅が互いに異なるクライアント１１１との間でメモリシステム５００に対するデータ転送を行うことができる。また、アダプタ２１１にデータ幅変換部８３０または８４０を設けることによって、クライアント１１１からのデータ転送におけるデータ幅を考慮することなく、メモリ制御装置２００の設計を行うことができる。
【０２１１】
［アダプタ２１１にコヒーレント機能を設けた例］
図２０は、本発明の第３の実施の形態におけるアダプタ８５０の構成例を示すブロック図である。このアダプタ８５０は、図２に示したアダプタ２１１に対応し、コヒーレント管理機能を備えている。ここでは、アービタ３１０から書込みまたは読出し動作が完了した場合には完了信号が出力されることを想定する。また、ここでは、分割リクエスト線３１１および３１３と、完了信号線３１２および３１４とがアービタ３１０に接続され、データ線３４１および３７１がライトセレクタ３４０およびリードセレクタ３７０に接続される。また、読出しリクエスト線１４１から読出しリクエストが供給され、読出しリクエストの発行元のクライアントに対してメモリシステム５００に記憶されたデータがデータ線１５１から供給される。
【０２１２】
アダプタ８５０は、コヒーレント管理部８６０と、書込みアダプタ８７０と、読出しアダプタ８８０とを備える。書込みアダプタ８７０は、図２に示したアダプタ２１１に対応する。読出しアダプタ８８０は、図２に示したアダプタ２１１を読出し用に対応させたものである。このため、書込みアダプタ８７０および読出しアダプタ８８０についての説明をここでは省略する。
【０２１３】
コヒーレント管理部８６０は、書込みリクエストおよび読出しリクエストの発行順番を維持するためのものである。このコヒーレント管理部８６０は、完了信号線３１２および３１４を介して、アービタ３１０から供給される完了信号に基づいて、メモリシステム５００に対するコヒーレント管理を行う。
【０２１４】
このように、コヒーレント管理部８６０を設けることによって、書込みリクエストと読出しリクエストとの発行順番を維持しつつ、メモリシステム５００に対して分割リクエストによる効率の良いアクセスを行うことができる。
【０２１５】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０２１６】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【符号の説明】
【０２１７】
１１１〜１１４  クライアント
２００  メモリ制御装置
２１１〜２１４、８５０  アダプタ
２２０  アドレス変換部
２４０、６４０  リクエスト分割部
２４１、６６１  開始アドレス出力部
２４２、６６２  次開始アドレス算出部
２４３、６６３  次開始アドレスレジスタ
２４４、６６４  転送長選択部
２４５、６６５  分割長生成部
２４６、６６６  転送長出力部
２４７、６６７  差分転送長算出部
２４８、６６８  差分転送長レジスタ
３１０  アービタ
３２０  メモリコントローラ
３３０  データバスコントローラ
３４０  ライトセレクタ
３５０  ライトデータバッファ
３６０  リードデータバッファ
３７０  リードセレクタ
４００  メモリインタフェース
５００  メモリシステム
６３０  リクエスト入替部
６３５  データ管理部
６４０  リクエスト分割部
６４１  アドレスレジスタ
６４２  イネーブルレジスタ
６４３  ラスト信号レジスタ
６４４  開始アドレス選択部
６４５  開始アドレス決定部
６４６  開始アドレスレジスタ
６４７  アドレス比較部
６４８  リクエスト取得信号生成部
６４９  転送長生成カウンタ
６５０  リクエスト出力部
６８０  連続出力部
６８１  リクエスト出力部
６８２  転送長加算部
６８３  転送長累計比較部
６８４  転送長累計値レジスタ
６８６  出力信号生成部
８１０  ゲート部
８２０  周波数変換部
８３０、８４０  データ幅変換部
８６０  コヒーレント管理部
８７０  書込みアダプタ
８８０  読出しアダプタ
【図１】
2010262429.tif 000003
【図２】
2010262429.tif 000004
【図３】
2010262429.tif 000005
【図４】
2010262429.tif 000006
【図５】
2010262429.tif 000007
【図６】
2010262429.tif 000008
【図７】
2010262429.tif 000009
【図８】
2010262429.tif 000010
【図９】
2010262429.tif 000011
【図１０】
2010262429.tif 000012
【図１１】
2010262429.tif 000013
【図１２】
2010262429.tif 000014
【図１３】
2010262429.tif 000015
【図１４】
2010262429.tif 000016
【図１５】
2010262429.tif 000017
【図１６】
2010262429.tif 000018
【図１７】
2010262429.tif 000019
【図１８】
2010262429.tif 000020
【図１９】
2010262429.tif 000021
【図２０】
2010262429.tif 000022