(57)【要約】【課題】システム全体の最適化を図れ、他マスタからのアクセスリクエストをマスクする機関を適切に設定することができ、同一バンクでかつ同一ページのアクセスに対しての連続アクセスの効率化を図れ、しかも特定のバスへの接続時における修正が必ずしも必要としないメモリシステムおよびそのアクセス制御方法、並びにプログラムを提供する。【解決手段】メモリシステム１０は、メモリコントローラ１３がメモリ１１の各バンクのページオープン情報を含むバンク情報、リクエストキュー１５内のリクエスト情報であるバンク、ロウ、リードライト等の情報をバス上のアービタ１７に通知する。そして、アービタ１７は、マスタ群１４の各マスタから並列に発行されるリクエストをアービトレーションしメモリコントローラ１３に送信する。【選択図】図１
2010003067.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクを有するメモリと、
リクエストキューおよびバンクモニタを含み、上記メモリへのアクセスを制御するメモリコントローラと、
上記メモリへのアクセスをリクエストし得る複数のマスタを含むマスタ群と、
上記メモリコントローラと上記マスタ群との間に接続され、アービタが配置されるシステムバスと、を有し、
上記リクエストキューは、
上記システムバスを経由して上記マスタ群から発行されたアクセスリクエストを受け取り、受け取ったアクセスリクエストを適宜並び替えるスケジューリング機能を含み、キュー情報を上記アービタに提供し、
上記バンクモニタは、
上記メモリの各バンク情報をモニタリングし、各バンク情報を上記アービタに提供し、
上記アービタは、
上記提供されるキー情報および上記バンク情報に基づいて上記マスタ群の各マスタから並列に発行されるリクエストをアービトレーションし、当該情報をアクセス制御情報として上記メモリコントローラに送信する
メモリシステム。
【請求項２】
上記アービタはペナルティサイクルが少なくなるよう上記メモリコントローラへリクエストを送信する
請求項１記載のメモリシステム。
【請求項３】
上記リクエストはデータ自体に加えて、バンクアドレス、ロウアドレス、カラムアドレスと、または、およびリクエスト発行マスタＩＤやプライオリティ情報が付加されて形成される
請求項２記載のメモリシステム。
【請求項４】
上記各バンク情報は、各バンクが現在オープンしているページ情報を含む
請求項１から３のいずれか一に記載のメモリシステム。
【請求項５】
キュー情報は、上記リクエストキュー内に待機しているリクエストがアクセスする先のバンク、ページ情報並びに、リードとライトどちらであるか、リクエスト発行マスタＩＤ、プライオリティの情報を含む
請求項１から３のいずれか一に記載のメモリシステム。
【請求項６】
上記各バンク情報は、各バンクが現在オープンしているページ情報を含み、
キュー情報は、上記リクエストキュー内に待機しているリクエストがアクセスする先のバンク、ページ情報並びに、リードとライトどちらであるか、リクエスト発行マスタＩＤ、プライオリティの情報を含む
請求項１から３のいずれか一に記載のメモリシステム。
【請求項７】
システムバスを経由してマスタ群から発行された、複数のバンクを含むメモリへのアクセスリクエストを受け取り、受け取ったアクセスリクエストを適宜並び替えるスケジューリングを行うステップと、
上記スケジューリングによりリクエストキュー内に待機させたキュー情報を上記システムのアービタに提供するステップと、
上記メモリの各バンク情報をモニタリングするステップと、
モニタリングして得られた各バンク情報を上記アービタに提供するステップと、
上記アービタにおいて、上記提供されるキー情報および上記バンク情報に基づいて上記マスタ群の各マスタから並列に発行されるリクエストをアービトレーションするステップと、
上記アービトレーションで得られた情報により上記メモリへのアクセスを管理するステップと
を有するメモリシステムのアクセス制御方法。
【請求項８】
システムバスを経由してマスタ群から発行された、複数のバンクを含むメモリへのアクセスリクエストを受け取り、受け取ったアクセスリクエストを適宜並び替えるスケジューリングを行う処理と、
上記スケジューリングによりリクエストキュー内に待機させたキュー情報を上記システムのアービタに提供する処理と、
上記メモリの各バンク情報をモニタリングする処理と、
モニタリングして得られた各バンク情報を上記アービタに提供する処理と、
上記アービタにおいて、上記提供されるキー情報および上記バンク情報に基づいて上記マスタ群の各マスタから並列に発行されるリクエストをアービトレーションする処理と、
上記アービトレーションで得られた情報により上記メモリへのアクセスを管理する処理と
を含むメモリシステムのアクセス制御をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ等がメモリへのアクセスを管理するメモリシステムおよびそのアクセス制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
一般的に、メモリコントローラ単体で受信したマスタ群からのアクセスリクエストを、メモリアクセスが最適化するように並び替える、いわゆるスケジューリングを行うことでメモリアクセスの効率化が行われている。
【０００３】
また、メモリコントローラに接続するバスアービタのアービトレーション技術に関して、たとえば特許文献１に開示されている。
この技術では、特定のマスタからのアクセスリクエストに対してアクセスリクエストのバンク情報を管理し、アクセス中でビジー状態にあるメモリバンクに対する他のマスタからのアクセスリクエストを一定期間マスクすることでメモリアクセスの効率化を図る。
【０００４】
また、メモリアクセス高速化のためにメモリコントローラが接続されたメモリのバンク状態をメモリコントローラ外に送信する技術に関して、たとえば特許文献２に開示さている。
この技術では、マスタにバンク状態を通知、アクセス中でビジー状態にあるバンクに対するアクセスリクエストの発行自体を制御する。
【特許文献１】特開平１１-１６７５４６号公報
【特許文献２】特許第３０９２５６６号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、スケジューリングを行うことでメモリアクセスの効率化を行う技術では、並び替えによる最適化の範囲がリクエストキューにて受信したリクエストに限られてしまう。
このため、メモリアクセスが局所的に最適化されてしまい、システム全体としての最適化はなされていなかった。
【０００６】
また、特許文献１に開示された技術では、一定期間他マスタからのアクセスリクエストをマスクするためには、メモリコントローラがアクセスリクエストを受け付けてから実際にアクセスするまでのサイクルが明確でなければならない。
【０００７】
実際にアクセスするまでのサイクルは、メモリコントローラがスケジューリングをしなおす場合には、スケジューリング結果で初めて判明する。
このため、他マスタからのアクセスリクエストをマスクする機関を適切に設定することが困難である。
マスク期間が長すぎた場合、他マスタからのアクセスが待たされてしまうこととなる。
また、他マスタからの同一バンクでかつ同一ページのアクセスに対しては連続アクセスができずに効率が落ちるという問題が存在する。
【０００８】
また、特許文献２に開示された技術では、各マスタがメモリのバンク状態を考慮したアクセス発行が可能となるよう対応する必要があるため、オープンプロトコルバスへの接続を前提としたマスタＩＰ等では修正が必須であるという問題が存在する。
【０００９】
本発明は、システム全体の最適化を図れ、他マスタからのアクセスリクエストをマスクする機関を適切に設定することができ、同一バンクでかつ同一ページのアクセスに対しての連続アクセスの効率化を図れ、しかも特定のバスへの接続時における修正が必ずしも必要としないメモリシステムおよびそのアクセス制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の観点のメモリシステムは、複数のバンクを有するメモリと、リクエストキューおよびバンクモニタを含み、上記メモリへのアクセスを制御するメモリコントローラと、上記メモリへのアクセスをリクエストし得る複数のマスタを含むマスタ群と、上記メモリコントローラと上記マスタ群との間に接続され、アービタが配置されるシステムバスと、を有し、上記リクエストキューは、上記システムバスを経由して上記マスタ群から発行されたアクセスリクエストを受け取り、受け取ったアクセスリクエストを適宜並び替えるスケジューリング機能を含み、キュー情報を上記アービタに提供し、上記バンクモニタは、上記メモリの各バンク情報をモニタリングし、各バンク情報を上記アービタに提供し、上記アービタは、上記提供されるキー情報および上記バンク情報に基づいて上記マスタ群の各マスタから並列に発行されるリクエストをアービトレーションし、当該情報をアクセス制御情報として上記メモリコントローラに送信する。
【００１１】
好適には、上記アービタはペナルティサイクルが少なくなるよう上記メモリコントローラへリクエストを送信する。
【００１２】
好適には、上記リクエストはデータ自体に加えて、バンクアドレス、ロウアドレス、カラムアドレスと、または、およびリクエスト発行マスタＩＤやプライオリティ情報が付加されて形成される。
【００１３】
好適には、上記各バンク情報は、各バンクが現在オープンしているページ情報を含む。
【００１４】
好適には、キュー情報は、上記リクエストキュー内に待機しているリクエストがアクセスする先のバンク、ページ情報並びに、リードとライトどちらであるか、リクエスト発行マスタＩＤ、プライオリティの情報を含む。
【００１５】
本発明の第２の観点のメモリシステムのアクセス制御方法は、システムバスを経由してマスタ群から発行された、複数のバンクを含むメモリへのアクセスリクエストを受け取り、受け取ったアクセスリクエストを適宜並び替えるスケジューリングを行うステップと、上記スケジューリングによりリクエストキュー内に待機させたキュー情報を上記システムのアービタに提供するステップと、上記メモリの各バンク情報をモニタリングするステップと、モニタリングして得られた各バンク情報を上記アービタに提供するステップと、上記アービタにおいて、上記提供されるキー情報および上記バンク情報に基づいて上記マスタ群の各マスタから並列に発行されるリクエストをアービトレーションするステップと、上記アービトレーションで得られた情報により上記メモリへのアクセスを管理するステップとを有する。
【００１６】
本発明の第３の観点は、システムバスを経由してマスタ群から発行された、複数のバンクを含むメモリへのアクセスリクエストを受け取り、受け取ったアクセスリクエストを適宜並び替えるスケジューリングを行う処理と、上記スケジューリングによりリクエストキュー内に待機させたキュー情報を上記システムのアービタに提供する処理と、上記メモリの各バンク情報をモニタリングする処理と、モニタリングして得られた各バンク情報を上記アービタに提供する処理と、上記アービタにおいて、上記提供されるキー情報および上記バンク情報に基づいて上記マスタ群の各マスタから並列に発行されるリクエストをアービトレーションする処理と、上記アービトレーションで得られた情報により上記メモリへのアクセスを管理する処理とを含むメモリシステムのアクセス制御をコンピュータに実行させるプログラムである。
【００１７】
本発明によれば、メモリコントローラのリクエストキューは、システムバスを経由してマスタ群から発行された、複数のバンクを含むメモリへのアクセスリクエストを受け取る。
リクエストキューでは、受け取ったアクセスリクエストを適宜並び替えるスケジューリングが行われ、そのキュー情報がシステムバス上のアービタに提供される。
また、バンクモニタでは、メモリの各バンク情報がモニタリングされ、各バンク情報がアービタに提供される。
そして、アービタでは、提供されるキー情報およびバンク情報に基づいてマスタ群の各マスタから並列に発行されるリクエストがアービトレーションされて、この情報がアクセス制御情報としてメモリコントローラに送信される。
【発明の効果】
【００１８】
本発明によれば、システム全体の最適化を図れ、他マスタからのアクセスリクエストをマスクする機関を適切に設定することができる。また、同一バンクでかつ同一ページのアクセスに対しての連続アクセスの効率化を図れ、しかも特定のバスへの接続時における修正が必ずしも必要としないという利点がある。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を添付図面に関連付けて説明する。
【００２０】
図１は、本発明の実施形態に係るメモリシステムの構成例を示す図である。
【００２１】
本メモリシステム１０は、図１に示すように、メモリ１１、システムバス１２、メモリコントローラ１３、マスタ群１４、リクエストキュー１５、バンクモニタ１６、およびアービタ１７を有する。
【００２２】
メモリ１１は、たとえばＳｏＣ外に存在するダイナミックメモリ(SDR/DDR-SDRAM)により構成される。
メモリ１１は、複数（図１の例では４）のバンク１１−０〜１１−３を有し、メモリアクセスの際はバンク内の１ページをオープンしアクセスが行われる。
【００２３】
システムバス１２は、メモリコントローラ１３とマスタ群１４との間のデータの授受を行う。
システムバス１２には、アービタ１７が配置されている。
【００２４】
メモリコントローラ１３は、ＳｏＣ内に存在し、メモリ１１へのアクセスを制御する。
【００２５】
マスタ群１４は、ＳｏＣ内に存在し、複数のマスタ１４−０，１４−１，１４−２、・・・を含み、システムバス１２とメモリコントローラ１３を経由し、メモリ１１へのアクセスをリクエストしうる。
マスタ群１４の各要素であるマスタ１４−０，１４−１，・・はメモリ１１へのライトリクエストおよびリードリクエストを発行する。
１リクエストはデータ自体に加えて、バンクアドレス、ロウアドレス、カラムアドレスと、その他情報であるリクエスト発行マスタＩＤやプライオリティ情報が付加されて形成される。
【００２６】
リクエストキュー１５は、メモリコントローラ１３内に配置され、システムバス１２を経由してマスタ群１４から発行されたアクセスリクエストを受け取る。
リクエストキュー１５は、受け取ったアクセスリクエストを適宜並び替えるスケジューリング機能を有している。
リクエストキュー１５は、キュー情報をシステムバス１２上のアービタ１７に提供する。
【００２７】
バンクモニタ１６は、メモリコントローラ１３内に配置され、メモリ１１の各バンク情報をモニタリングする。
バンクモニタ１６は、各バンク情報をシステムバス１２上のアービタ１７に提供する。
【００２８】
アービタ１７は、システムバス１２に付随し、マスタ群１４の各マスタから並列に発行されるリクエストをアービトレーションしメモリコントローラ１３に送信する機能を有する。
本メモリシステム１０においては、リクエストキュー１５とバンクモニタ１６が出力するキュー情報や各バンク情報を元に、後述するメモリアクセスのスループットを最適化する。
【００２９】
各バンク情報とは、各バンク１１−０〜１１−３が現在オープンしているページ情報を有している。
キュー情報とは、リクエストキュー内に待機しているリクエストがアクセスする先のバンク、ページ情報および、リードとライトどちらであるか、リクエスト発行マスタＩＤ、プライオリティの情報を有している。
【００３０】
本メモリシステム１０は、メモリ状態およびメモリコントローラ１３内のスケジューラ状態からアクセスの優先順位を決定および変更するダイナミックメモリシステムとして構成されている。
すなわち、本メモリシステム１０は、メモリコントローラ１３が管理するメモリのバンク状態や、リクエストキュー１５内に格納されたアクセスリクエスト情報をシステムバス１２上のアービタ１７に通知する。
メモリシステム１０は、メモリアクセスのスループットが向上するようリクエストのアービトレーションを行う機能を有している。
【００３１】
より具体的には、メモリシステム１０は、メモリコントローラ１３がメモリ１１の各バンクのページオープン情報を含むバンク情報、リクエストキュー１５内のリクエスト情報であるバンク、ロウ、リードライト等の情報をバス上のアービタ１７に伝える。
これにより、メモリシステム１０は、リクエストキュー１５内のスケジューリングをシステムとして最適化可能である。
また、本メモリシスステム１０は、リクエストキュー１５内のリクエスト情報であるバンク、ロウ、リードライトに加えて、さらにリクエスト発行マスタＩＤ、リクエストのプライオリティ情報をアービタ１７に伝える。
これにより、メモリシステム１０は、リクエストキュー１５内のスケジューリングをシステムとして最適化可能である。
【００３２】
次に、本実施形態のメモリシステム１０のように、バンク情報等をアービタに通知しない場合のリード時およびライト時のタイミングサイクルについて、図２〜図９に関連付けて説明する。
その後、本実施形態のメモリシステム１０の優位性等について説明する。
【００３３】
図２にＤＤＲ２-ＳＤＲＡＭ(DDR667 5-5-5)を接続した場合のリード時タイミングサイクルを説明する。
例としてバースト長４の場合について言及する。
【００３４】
ＳＤＲＡＭのアドレスはバンクアドレス、ロウアドレス、カラムアドレスの３種類に分かれている。
ＳＤＲＡＭからデータをリードする際、制御線およびアドレス線を駆動してアクティブコマンドＡＣＴを送信する。
アクティブコマンドＡＣＴにはバンクアドレスおよびロウアドレスが含まれており、ＳＤＲＡＭは指定されたバンクのページをアクティブ状態にする。
アクティブコマンドＡＣＴから５サイクル後(Ｔ６)にリードコマンドＲを送信する。リードコマンドＲにはバンクアドレスおよびカラムアドレスが含まれており、アクティブコマンドＡＣＴと合わせてＳＤＲＡＭのアドレスが全て指定されることとなる。
リードコマンドＲから５サイクル後(Ｔ１１)にリードデータ(バースト長４であるため、0,1,2,3)がメモリから返ってくる。
【００３５】
次にリードアクセスが連続した場合に関して説明する。
図３にバンクアドレスが同一、ロウアドレスが異なる場合、図４にバンクアドレスが異異なる同一の場合、図５にバンクアドレスとロウアドレスが同一の場合を示す。
【００３６】
バンクアドレスが同一、ロウアドレスが異なる場合、すなわちページミスヒットの場合、現在アクティブとなっているページを閉じ、異なるページをアクティブにしなおす必要がある。
そのため、図３に示すように、プリチャージコマンドＰＲＥにより最初にアクセスしたページをインアクティブにする。このコマンドは前アクティブコマンドＡＣＴの１５サイクル後(Ｔ１６)に発行される。
プリチャージコマンドＰＲＥから５サイクル後(Ｔ２１)に再度アクティブコマンドが発行され、前述したものと同一の手順により３２サイクル(Ｔ３３)でアクセスが完了する。
【００３７】
バンクアドレスが異なる場合、ＳＤＲＡＭの性質上、バンク毎に１つのページをアクティブにできるため、ページミスヒットのようにインアクティブにする必要がない。
しかし、ＤＤＲ６６７で規定されたアクセスパラメータのため、図４に示すように、連続するリードデータ間に２サイクルの空きが生じる。
これにより、１６サイクル(Ｔ１７)でアクセスが完了する。
【００３８】
バンクアドレスとロウアドレスが同一の場合、アクセスするページは最初のリードアクセスにて既にアクティブになっているため、アクティブコマンドを発行する必要がない。そのため、リードコマンドＲのみでアクセスでき、図５に示すように、リードデータ間にサイクル空きは生じない。
これにより、１４サイクル(Ｔ１５)でアクセスが完了する。
【００３９】
このように、連続したリードアクセスでは同一バンク同一ロウアドレスアクセス、別バンクアドレスアクセス、同一バンク別ロウアドレスアクセスの順に複数アクセス間に必要なオーバヘッド(ペナルティサイクル)が増大する。
【００４０】
同様にライト時のタイミングサイクルを説明する。
図６に単発ライトアクセス、図７に同一バンク別ロウアドレスへの連続ライトアクセス、図８に別バンクアドレスへの連続ライトアクセス、図９に同一バンク同一ロウアドレスへの連続ライトアクセスのタイミングを示す。
【００４１】
図７、図８、および図９から上記連続リードアクセスにおける同様のことが、連続ライトアクセス時にも言えることが分かる。
【００４２】
図２〜図９に示したように、連続するリクエストはバンク/ロウ(ページ)アドレスが同一か異なるかによりペナルティサイクルが大きく変化する。
【００４３】
ここで、本実施形態のメモリシステム１０の優位性を示すため、例として図１０に示す一般的なメモリシステムにおけるアクセスリクエストのアービトレーションと、図１１に示す本メモリシステムにおけるアクセスリクエストのアービトレーションを比較する。
【００４４】
図１０は、一般的なメモリシステムにおけるアクセスリクエストのアービトレーションを概念的に示す図である。
図１１は、本実施形態に係るメモリシステムにおけるアクセスリクエストのアービトレーションを概念的に示す図である。
【００４５】
図１２は、図１０のメモリシステムにおけるアクセス例を示す図である。
図１３は、図１０のメモリシステムにおけるアービトレーション処理のフローチャートである。
【００４６】
図１４は、図１１のメモリシステムにおけるアクセス例を示す図である。
図１５は、図１１のメモリシステムにおけるアービトレーション処理のフローチャートである。
【００４７】
なお、図１０においては、理解を容易にするために、図１および図１１の構成と同様の機能部には、図１および図１１と同一の符号を付している。
【００４８】
ここで、アービタ１７は、マスタ群１４のマスタ１４−０から順にＩＤをカウントアップする単純ラウンドロビン方式を取るものとする。
また、リクエストを発行する６マスタのうちマスタ１４−０、マスタ１４−２、マスタ１４−４はメモリ１１のバンク１１−０へのリードアクセスリクエストを発行するものとする。マスタ１４−１、マスタ１４−３、マスタ１４−５はバンク１１−１へのリードアクセスリクエストを発行するものとする。
【００４９】
バンク１１−０へのアクセスリクエストのロウアドレスは互いに重複せず、バンク１１−１へのアクセスリクエストのロウアドレスは全て同一のものが発生するものとする。
また、メモリコントローラ１３内のリクエストキュー１５はバンク１１−０へのリードアクセスリクエスト(ロウアドレス重複なし)で１キュー以外埋まっている状態とする。メモリ１１の各バンク１１−０〜１１−３はプリチャージ済み状態からスタートするものとする。
【００５０】
アービタ１７が単純ラウンドロビン方式を取るため、図１０のシステム構成ではマスタ１４−０のアクセスリクエストから順にメモリコントローラ１３内のリクエストキュー１５に格納される（ＳＴ１，ＳＴ２）。
この場合、バンク１１−０へのリードアクセスリクエストがメモリ１１に対して発行される(キュー内のどれか1つ)。
次に、アービタ１７は、マスタ１４−１のアクセスリクエストをメモリコントローラ１３に渡す。
リクエストキュー１５内のリクエストはバンク１１−０の別ページへのリードアクセスとバンク１１−１へのリードアクセスとなるため、ペナルティサイクルの少ないバンク１１−１へのアクセスリクエストがメモリ１１に発行される（ＳＴ３）。
次に、アービタ１７はマスタ１４−２のアクセスリクエストをメモリコントローラ１３に渡す。
この場合、リクエストキュー１５内のリクエストはバンク１１−０の別ページへのリードアクセスのみとなるため、バンク１１−０へのリードアクセスリクエストがメモリ１１に対して発行される。
以降、この繰り返しが行われる。
【００５１】
図１１のシステム構成では、マスタ１４−０のアクセスリクエストから順にメモリコントローラ１３内のリクエストキュー１５に格納される（ＳＴ１１）。
この場合、バンク１１−０へのリードアクセスリクエストがメモリ１１に対して発行される(キュー内のどれか１つ)。このときバンクモニタ１６はバンク１１−０のページ３がオープン状態にあることをアービタ１７に通知する（ＳＴ１２〜ＳＴ１４）。
次に、アービタ１７はバンク１１−０の同一ページのアクセスリクエストがマスタ群１４から発行されていないことを確認し、マスタ１４−１からのアクセスリクエストをメモリコントローラ１３に渡す。
リクエストキュー１５内のリクエストはバンク１１−０の別ページへのリードアクセスとバンク１１−１へのリードアクセスとなるため、ペナルティサイクルの少ないバンク１１−１へのアクセスリクエストがメモリに発行される（ＳＴ１５）。
このとき、メモリコントローラ１３内バンクモニタ１６はバンク１１−１のページ０がオープン状態にあることをアービタ１７に通知する。
単純ラウンドロビン方式では、アービタ１７は次にマスタ１４−２からのアクセスリクエストをメモリコントローラ１７に渡す。
この場合、バンクモニタ１６からバンク１１−１のページ０がオープン状態であることを通知されている。このため、よりペナルティサイクルが０となるマスタ１４−３またはマスタ１４−５のアクセスリクエストがメモリコントローラ１３に渡され、そのままメモリ１１に発行される。
【００５２】
図１６は、図１２および図１４における差異が明確になるよう、メモリが受け付けるアクセスリクエスト順序と、リクエストのバンクアドレスおよびページが一致(プリチャージコマンドの必要有無)する際に発生するペナルティサイクルの一例を示す図である。
【００５３】
図１６からも分かる通り、本実施形態に係るメモリシステムでは既存システムと比較して上記動作時にペナルティサイクルが削減される。
【００５４】
本実施形態によれば、メモリシステム１０は、メモリコントローラ１３がメモリ１１の各バンクのページオープン情報を含むバンク情報、リクエストキュー１５内のリクエスト情報であるバンク、ロウ、リードライト等の情報をバス上のアービタ１７に通知する。そして、アービタ１７は、マスタ群１４の各マスタから並列に発行されるリクエストをアービトレーションしメモリコントローラ１３に送信する。
すなわち、アービタ１７は、メモリコントローラ内のリクエストキュー内におけるスケジューリングによる局所最適化のみならず、バンクモニタ１６が提供する各バンク情報とリクエストキュー１５が提供するキュー情報を加味したアービトレーションを一元的に行う。
したがって、本実施形態によれば、以下の効果を得ることができる。
【００５５】
すなわち、システムバス内アービタ１７が、バンクモニタ１６が提供する各バンク情報とリクエストキュー１５が提供するキュー情報を加味したアービトレーションを一元的に行うことで、より広い範囲でのアクセスリクエスト最適化を行うことができる。
システムバス１２内のアービタ１７はペナルティサイクルが少なくなるようメモリコントローラへリクエストを送信することから、チップ−メモリ間のスループットを改善することが可能となる。
【００５６】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態に係るメモリシステムの構成例を示す図である。
【図２】ＤＤＲ２-ＳＤＲＡＭ(DDR667 5-5-5)を接続した場合のリード時タイミングサイクルを説明するための図である。
【図３】リードアクセスが連続した場合であって、バンクアドレスが同一で、ロウアドレスが異なる場合のリード時タイミングサイクルを示す図である。
【図４】リードアクセスが連続した場合であって、バンクアドレスが異なる場合のリード時タイミングサイクルを示す図である。
【図５】リードアクセスが連続した場合であって、バンクアドレスとロウアドレスが同一の場合のリード時タイミングサイクルを示す図である。
【図６】ＤＤＲ２-ＳＤＲＡＭ(DDR667 5-5-5)を接続した場合の単発ライトアクセスのタイミングアクセスを示す図である。
【図７】ライトアクセスが連続した場合であって、バンクアドレスが同一で、ロウアドレスが異なる場合のライト時タイミングサイクルを示す図である。
【図８】ライトアクセスが連続した場合であって、バンクアドレスが異なる場合のライト時タイミングサイクルを示す図である。
【図９】ライトアクセスが連続した場合であって、バンクアドレスとロウアドレスが同一の場合のライト時タイミングサイクルを示す図である。
【図１０】一般的なメモリシステムにおけるアクセスリクエストのアービトレーションを概念的に示す図である。
【図１１】本実施形態に係るメモリシステムにおけるアクセスリクエストのアービトレーションを概念的に示す図である。
【図１２】図１０のメモリシステムにおけるアクセス例を示す図である。
【図１３】図１０のメモリシステムにおけるアービトレーション処理のフローチャートである。
【図１４】図１１のメモリシステムにおけるアクセス例を示す図である。
【図１５】図１１のメモリシステムにおけるアービトレーション処理のフローチャートである。
【図１６】図１２および図１４における差異が明確になるよう、メモリが受け付けるアクセスリクエスト順序と、リクエストのバンクアドレスおよびページが一致(プリチャージコマンドの必要有無)する際に発生するペナルティサイクルの一例を示す図である。
【符号の説明】
【００５８】
１０・・・メモリシステム、１１・・・メモリ、１１−０〜１１−３・・・バンク、１２・・・システムバス、１３・・・メモリコントローラ、１４・・・マスタ群、１４−０〜１４−６・・・マスタ、１５・・・リクエストキュー、１６・・・バンクモニタ、１７・・・アービタ。
【図１】
2010003067.tif 000003
【図２】
2010003067.tif 000004
【図３】
2010003067.tif 000005
【図４】
2010003067.tif 000006
【図５】
2010003067.tif 000007
【図６】
2010003067.tif 000008
【図７】
2010003067.tif 000009
【図８】
2010003067.tif 000010
【図９】
2010003067.tif 000011
【図１０】
2010003067.tif 000012
【図１１】
2010003067.tif 000013
【図１２】
2010003067.tif 000014
【図１３】
2010003067.tif 000015
【図１４】
2010003067.tif 000016
【図１５】
2010003067.tif 000017
【図１６】
2010003067.tif 000018