(57)【要約】【課題】イニシエータが破綻しない待ち時間である許容時間を考慮し、かつ、効率的なリクエスト調停が行えるリクエスト調停装置及び制御対象のメモリの性能向上を図ったメモリコントローラを得る。【解決手段】バスアービタ１は、イニシエータのリクエストＲＱ０〜ＲＱｎを受け、内部に許容時間判定機能付きページヒットミス判定部２、許容時間判定機能付きバンクオープンクローズ判定部３、及び許容時間判定機能付きＬＲＵ部４を有している。そして、リクエストＲＱ０〜ＲＱｎに対するリクエスト調停の優先順位はページヒット、バンクオープン、ＬＲＵの順で、ＳＤＲＡＭに対するバンク優先順位が決定する。さらに、各判定部２〜４は内部に許容時間判定部２２，３２，４２を有しており、判定部２〜４の優先処理の際においても、許容時間がカウント閾値ＬＶｔｈを下回ったイニシエータのリクエストＲＱを最優先処理する。【選択図】図１
2008287528.tif 000002
【特許請求の範囲】
【請求項１】
複数のイニシエータから得られる、所定のメモリに対するアクセス要求である複数のリクエストから、優先的に処理すべき優先リクエストを決定するリクエスト調停装置であって、前記所定のメモリは複数のバンクが割り当てられており、前記複数のバンクはそれぞれ複数のページが割り当てられ、
許容時間判定機能付きページヒットミス判定部を備え、
前記許容時間判定機能付きページヒットミス判定部は、
直前に決定した前記優先リクエストにおける前記所定のメモリへのアクセスアドレスである前回アクセスアドレスを保持する前回アクセスアドレス情報保持部を有し、前記複数のリクエストそれぞれの前記所定のメモリへのアクセスアドレスと前記前回アクセスアドレスとを比較して互いのアドレスが指定するバンク及びページが一致するページヒットの有無を前記複数のリクエストそれぞれについて判定し、前記複数のリクエストのうち、ページヒットしたリクエストの中から優先的に前記優先リクエストを決定するページヒットミス判定部と、
前記ページヒットミス判定部と連動して動作し、前記複数のイニシエータに対応して設定され、前記所定のメモリに対するアクセス待ち時間である複数の許容時間の残存時間を計数し、前記複数の許容時間の残存時間が所定時間以下に達したイニシエータである要メモリアクセスイニシエータが存在した場合、前記複数のリクエストのうち、前記要メモリアクセスイニシエータのリクエストを、前記ページヒットミス判定部の決定より優先させて前記優先リクエストとして決定可能なページヒットミス判定用許容時間判定部とを含む、
リクエスト調停装置。
【請求項２】
請求項１記載のリクエスト調停装置であって、
許容時間判定機能付きバンクオープンクローズ判定部をさらに備え、
前記許容時間判定機能付きバンクオープンクローズ判定部は、
前記ページヒットミス判定部によってページヒットしたリクエストが存在しなかった場合に起動し、過去の前記所定のメモリに対するアクセスアドレスの履歴に基づき前記複数のリクエストそれぞれの前記所定のメモリへのアクセスバンクのオープンクローズ状態を判定し、前記複数のリクエストのうち、バンクオープンと判定したリクエストの中から優先的に前記優先リクエストを決定するバンクオープンクローズ判定部と、
バンクオープンクローズ判定部と連動して動作し、前記複数のイニシエータに対応する前記複数の許容時間の残存時間を計数し、前記複数のイニシエータ中に前記要メモリアクセスイニシエータが存在した場合、前記複数のリクエストのうち、前記要メモリアクセスイニシエータのリクエストを、前記バンクオープンクローズ判定部の決定より優先して前記優先リクエストとして決定可能なバンクオープンクローズ判定用許容時間判定部とを含む、
リクエスト調停装置。
【請求項３】
請求項２記載のリクエスト調停装置であって、
許容時間判定機能付きＬＲＵ部をさらに備え、
前記許容時間判定機能付きＬＲＵ部は、
前記バンクオープンクローズ判定部によってバンクオープンと判定したリクエストが存在しなかった場合に起動し、過去の前記所定のメモリに対するアクセスアドレスの履歴に基づき、前記複数のリクエストそれぞれの前記所定のメモリへのアクセスバンクが最新アクセス時間が最も古いＬＲＵバンクであるか否かを判定し、前記複数のリクエストのうち、前記ＬＲＵバンクをアクセスバンクとするリクエストの中から優先的に前記優先リクエストを決定するＬＲＵ判定部と、
前記ＬＲＵ判定部と連動して動作し、前記複数のイニシエータに対応して前記複数の許容時間の残存時間を計数し、前記複数のイニシエータ中に前記要メモリアクセスイニシエータが存在した場合、前記複数のリクエストのうち、前記要メモリアクセスイニシエータのリクエストを、前記ＬＲＵ判定部の決定より優先して前記優先リクエストして決定可能なＬＲＵ判定用許容時間判定部とを含む、
リクエスト調停装置。
【請求項４】
請求項１ないし請求項３のうち、いずれか１項に記載のリクエスト調停装置であって、
前記許容時間判定機能付きページヒットミス判定部は、
前記ページヒットしたリクエストが複数存在した場合、前記許容時間の残存時間がより小さいリクエストを優先的に前記優先リクエストとして決定するページヒット優先処理機能を有する、
リクエスト調停装置。
【請求項５】
請求項２あるいは請求項３に記載のリクエスト調停装置であって、
前記許容時間判定機能付きバンクオープンクローズ判定部は、前記バンクオープンと判定したリクエストが複数存在した場合、前記許容時間の残存時間がより小さいリクエストを優先的に前記優先リクエストとして決定するバンクオープン優先処理機能を有する、
リクエスト調停装置。
【請求項６】
請求項３記載のリクエスト調停装置であって、
前記許容時間判定機能付きＬＲＵ部は、前記ＬＲＵバンクにアクセスするリクエストが複数存在した場合、前記許容時間の残存時間がより小さいリクエストを優先的に前記優先リクエストとして決定するＬＲＵ優先処理機能を有する、
リクエスト調停装置。
【請求項７】
所定のメモリに対するアクセス要求であるリクエストに基づき前記所定のメモリにアクセスするメモリコントローラであって、前記所定のメモリは複数のバンクが割り当てられており、前記複数のバンクの一部である所定数のバンクがオープン可能であり、
前記所定のメモリに対する過去のアクセス履歴に基づき、前記複数のバンクそれぞれの最新アクセス時間を示す情報をＬＲＵバンク情報として記憶するＬＲＵ状態保持部と、
前記所定数のバンクのいずれかをクローズする際、前記ＬＲＵバンク情報に基づき、前記所定数のバンクの最新アクセス時間が最も古いＬＲＵバンクを優先的にクローズするバンク切替を行うバンク切替部と、
を備えるメモリコントローラ。
【請求項８】
請求項７記載のメモリコントローラであって、
前記バンク切替部は、前記所定数のバンクのうち一部をオープン固定バンクとして常時オープン状態にする常時オープン制御を実行する、
メモリコントローラ。
【請求項９】
請求項８記載のメモリコントローラであって、
前記バンク切替部は、前記常時オープン制御を行うか否かを切り替える機能を有する、
メモリコントローラ。
【請求項１０】
複数のイニシエータから要求される、複数のバンクにそれぞれ複数のページが割り当てられたメモリに対する複数のリクエストの中から、優先的に処理すべき優先リクエストを決定するリクエスト調停装置であって、
前記優先リクエストにおける前記メモリへの前回アクセスアドレスを保持する前回アクセスアドレス情報保持部と、
前記複数のリクエストそれぞれの前記メモリへのアクセスアドレスと前記前回アクセスアドレスとを比較して互いのアドレスが指定するバンク及びページが一致するページヒットの有無を前記複数のリクエストそれぞれについて判定し、前記複数のリクエストのうち、ページヒットしたリクエストの中から優先的に前記優先リクエストを決定するページヒットミス判定部と、
前記複数のイニシエータに対応して設定され、前記メモリに対する複数のアクセス許容時間の残存時間を計数し、前記複数のアクセス許容時間の残存時間が所定時間以下に達したイニシエータである要メモリアクセスイニシエータが存在した場合、前記複数のリクエストのうち、前記要メモリアクセスイニシエータのリクエストを、前記ページヒットミス判定部の決定より優先させて前記優先リクエストとして決定するページヒットミス判定用許容時間判定部と、
を備えるリクエスト調停装置。
【請求項１１】
請求項１０記載のリクエスト調停装置であって、
前記ページヒットミス判定部によってページヒットしたリクエストが存在しなかった場合に、前記メモリに対するアクセスアドレスの履歴に基づき前記複数のリクエストそれぞれの前記メモリへのアクセスバンクのオープンクローズ状態を判定し、前記複数のリクエストのうち、バンクオープンと判定したリクエストの中から優先的に前記優先リクエストを決定するバンクオープンクローズ判定部をさらに備える、
リクエスト調停装置。
【請求項１２】
請求項１１記載のリクエスト調停装置であって、
前記バンクオープンクローズ判定部によってバンクオープンと判定したリクエストが存在しなかった場合に、前記メモリに対するアクセスアドレスの履歴に基づき、前記複数のリクエストそれぞれの前記メモリへのアクセスバンクが最新アクセスが最も古いＬＲＵバンクであるか否かを判定し、前記複数のリクエストのうち、前記ＬＲＵバンクをアクセスバンクとするリクエストの中から優先的に前記優先リクエストを決定するＬＲＵ判定部をさらに備える、
リクエスト調停装置。
【請求項１３】
請求項１０ないし請求項１２のうち、いずれか１項に記載のリクエスト調停装置であって、
前記ページヒットミス判定部は、前記ページヒットしたリクエストが複数存在した場合、前記許容時間の残存時間がより小さいリクエストを優先的に前記優先リクエストとして決定するページヒット優先処理機能を有する、
リクエスト調停装置。
【請求項１４】
請求項１１あるいは請求項１２記載のリクエスト調停装置であって、
前記バンクオープンクローズ判定部は、前記バンクオープンと判定したリクエストが複数存在した場合、前記許容時間の残存時間がより小さいリクエストを優先的に前記優先リクエストとして決定するバンクオープン優先処理機能を有する、
リクエスト調停装置。
【請求項１５】
請求項１２記載のリクエスト調停装置であって、
前記ＬＲＵ判定部は、前記ＬＲＵバンクにアクセスするリクエストが複数存在した場合、前記許容時間の残存時間がより小さいリクエストを優先的に前記優先リクエストとして決定するＬＲＵ優先処理機能を有する、
リクエスト調停装置。
【請求項１６】
複数のバンクが割り当てられ、前記複数のバンクの所定数のバンクがオープン可能なメモリに対するリクエスト要求に基づいて、前記メモリにアクセスするメモリコントローラであって、
前記メモリに対するアクセス履歴に基づき、前記複数のバンクそれぞれのアクセス情報を記憶するＬＲＵ状態保持部と、
前記所定数のバンクのいずれかをクローズする際、前記情報に基づき、前記所定数のバンクのうち、アクセスが最も古いＬＲＵバンクを優先的にクローズするバンク切替部と、
を備えるメモリコントローラ。
【請求項１７】
請求項１６記載のメモリコントローラであって、
前記バンク切替部は、前記所定数のバンクのうち一部をオープン固定バンクとして常時オープン状態にする常時オープン制御を実行する、
メモリコントローラ。
【請求項１８】
請求項１６記載のメモリコントローラであって、
前記バンク切替部は、前記常時オープン制御を行うか否かを切り替え機能を有する、
メモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数のイニシエータからの所定のメモリに対するアクセス等のリクエストを調停するバスアービタ等のリクエスト調停装置及びメモリコントローラに関する。
【背景技術】
【０００２】
図１５は従来のバスアービタとその周辺部とのシステム構成を示すブロック図である。同図に示すように、バスアービタ６４はＣＰＵ６０及びイニシエータ６１〜６３とＳＤＲＡＭメモリコントローラ６５との間に設けられる。
【０００３】
バスアービタ６４はＣＰＵ６０及びイニシエータ６１〜６３からのリクエストを調停し、ＳＤＲＡＭメモリコントローラ６５へリクエストを発行する。イニシエータ６１〜６３それぞれは画像系（2D,３D）や画像圧縮、音声などの多量のデータ転送を必要としている。このため、バスアービタ６４ではイニシエータ６１〜６３それぞれからの要求を満たせるようにアービトレーション（調停）を行う必要がある。
【０００４】
イニシエータ６１〜６３それぞれからバスアービタ６４へは、ＳＤＲＡＭ(Synchronous Dynamic Random Access Memory)６６に関し異なるアドレスに対するリクエストが発行される。そこで、バスアービタ６４にてＳＤＲＡＭ６６のアクセス時におけるページミス、バンクミスや他のイニシエータによる割り込みによるペナルティが少なくなるようにアービトレーションを行うことにより、ＳＤＲＡＭ６６に対するコマンド発行効率を向上させることが必要となる。なお、上述したペナルティとして、例えば、バンクミスペナルティ、ページミスペナルティ等が挙げられる。
【０００５】
ＳＤＲＡＭ６６に対するコマンド発行の効率を上げるため、バスアービタ６４にてＳＤＲＡＭ６６のバンクヒット/ミス、ＳＤＲＡＭ６６への先行PRE,ACTコマンド発行などを考慮に入れたアービトレーションを行う。
【０００６】
なお、ＳＤＲＡＭ６６に対するコマンド発行の効率を上げたメモリアクセス要求の調停技術として例えば特許文献１に開示された技術がある。特許文献１では最終アクセスページと同一のページにアクセス要求するメモリマスタに優先的にアクセス許可を与えている調停技術が開示されている。
【０００７】
図１６はＳＤＲＡＭメモリコントローラ６５及びその周辺を示すブロック図である。一般にＳＤＲＡＭメモリコントローラ６５では８バンクＳＤＲＡＭのアクセス効率向上方式を採用している。
【０００８】
ＳＤＲＡＭメモリコントローラ６５はバスアービタ６４からのリクエストを受けてＳＤＲＡＭ６６に対してコマンドを発行する。
【０００９】
また、ＤＤＲ２(Double-Data-Rate2)-ＳＤＲＡＭ等を含むＳＤＲＡＭでは４，８バンク品のＳＤＲＡＭが存在する。８バンク品を用いた場合にＳＤＲＡＭメモリコントローラでは、８バンク品の制御方式は４バンクまでをオープンするようにしているが、５個目のバンクをオープンするときにクローズするバンクは、対となる決められたバンクである。
【００１０】
【特許文献１】特開２００６−９９１９９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
バスアービタでは各イニシエータの処理データが破綻しない待ち時間を考慮する必要がある。イニシエータが破綻しない待ち時間を「許容時間」とする。イニシエータのデータ破綻とは、グラフィックス系のイニシエータでは画像が乱れること、音声系のイニシエータでは音声が途切れたりすることを指す。
【００１２】
しかしながら、従来のバスアービタや特許文献１で開示されたメモリアクセス要求の調停技術では、上記許容時間を考慮したリクエスト調停を行っていないという問題点があった。
【００１３】
また、上記した８バンク品の制御方式では、上記許容時間を全く考慮していない点は勿論、５個目のバンクをオープンするときにクローズするバンクは、対となる決められたバンクであるため、アクセスされやすいバンクをクローズしてしまう可能性があった。このため、ＳＤＲＡＭアクセス性能低下が起こるといった問題点があった。
【００１４】
この発明は上記問題点を解決するためになされたもので、イニシエータが破綻しない待ち時間である許容時間を考慮し、かつ、効率的なリクエスト調停が行えるリクエスト調停装置及び制御対象のメモリの性能向上を図ったメモリコントローラ得ることを目的とする。
【課題を解決するための手段】
【００１５】
この発明の一実施の形態によれば、許容時間判定機能付きページヒットミス判定部は、互いに連動して動作するページミスヒット判定部及び許容時間判定部を有している。
【００１６】
ページミスヒット判定部は、複数のリクエストそれぞれのＳＤＲＡＭへのアクセスアドレスと前回アクセスアドレスとを比較する。そして、互いのアドレスが指定するバンク及びページが一致するページヒットの有無を前記複数のリクエストそれぞれについて判定し、複数のリクエストのうち、ページヒットしたリクエストの中から優先的に優先リクエストとして決定する。
【００１７】
許容時間判定部は、複数のイニシエータに対応して設定された複数の許容時間の残存時間が所定時間以下に達したイニシエータである要メモリアクセスイニシエータが存在した場合、複数のリクエストのうち、要メモリアクセスイニシエータのリクエストを、ページヒットミス判定部の決定より優先させて優先リクエストして決定可能な構成を呈している。
【発明の効果】
【００１８】
この実施の形態によれば、ページヒット判定部及び許容時間判定部の連携により、ページヒットしたリクエストを優先することによりＳＤＲＡＭに対するリクエストの発行効率が向上する効果を得ながら、許容時間判定部によって各イニシエータの許容時間を優先考慮したリクエスト調整を行うことができる。
【発明を実施するための最良の形態】
【００１９】
＜前提技術＞
（バスアービトレーション方式）
図１２はこの発明の前提技術となるバスアービトレーション方式を示すブロック図である。同図に示すように、バスアービタ５０は（ｎ＋１）個（ｎ≧１）のイニシエータＩＮＩ０〜ＩＮＩｎからのＳＤＲＡＭに対するリクエストＲＱ０〜ＲＱｎのアービトレーション（調停）を行う。なお、以下ではリクエストＲＱ０〜ＲＱｎのいずれかを指す場合、単にリクエストＲＱと称する場合がある。
【００２０】
まず、リクエストＲＱ０〜ＲＱｎはバンクヒットミス判定部５１にてアービトレーションが行われる。バンクヒットミス判定部５１では前回にＳＤＲＡＭメモリコントローラ５５に送られたリクエストの前回転送アドレスＡＤｐとイニシエータＩＮＩ０〜ＩＮＩｎの現在のアドレス情報ＡＤ０〜ＡＤｎを保持している。
【００２１】
そして、バンクヒットミス判定部５１は前回転送アドレスＡＤｐとアドレス情報ＡＤ０〜ＡＤｎとを比較して、前回送られたリクエストと異なるバンクアドレス（バンクミス）のアドレスを指定したリクエストを認識し、リクエストＲＱ０〜ＲＱｎのうち、前回転送アドレスＡＤｐと異なるバンクアドレス（バンク）のリクエストを優先し、許容時間アービタ５２の処理対象とする。一方、リクエストＲＱ０〜ＲＱｎのうち、前回転送アドレスＡＤｐと同じバンクアドレス（バンク）のリクエストは優先度が下げられて、許容時間アービタ５３の処理対象とする。
【００２２】
以下、リクエストＲＱ０〜ＲＱｎのうち、バンクヒットミス判定部５１でバンクミスと判定されたリクエストをバンクミスリクエストＭＲＱとし、バンクヒットリクエストＨＲＱとして説明する。
【００２３】
許容時間アービタ５２，５３では、イニシエータＩＮＩ０〜ＩＮＩｎそれぞれの処理データが破綻しない待ち時間である許容時間をレジスタ（図示せず）にて設定する。具体的には、各イニシエータがリクエストを発行してからイニシエータにレスポンスが帰って来るまでのサイクル数を満たせることが可能な時間が許容時間となる。
【００２４】
この許容時間を上記レジスタにて設定することによりシステムごとにアービトレーションを変更でき、イニシエータごとの使用可能な時間の割り振りを細かく設定することが可能となる。すなわち、許容時間アービタ５２，５３では、イニシエータＩＮＩ０〜ＩＮＩｎそれぞれの許容時間を設定してアービトレーションを行う。
【００２５】
許容時間アービタ５２，５３は許容時間を用いたアービトレーションを行うために、イニシエータごと許容時間をカウントするための許容時間カウンタＰＣＡ０〜ＰＣＡｎ，許容時間カウンタＰＣＢ０〜ＰＣＢｎをそれぞれ有する。これら許容時間カウンタＰＣＡ０〜ＰＣＡｎ及び許容時間カウンタＰＣＢ０〜ＰＣＢｎはイニシエータＩＮＩ０〜ＩＮＩｎに対応して設けられる。なお、許容時間カウンタＰＣＡ０〜ＰＣＡｎ及び許容時間カウンタＰＣＢ０〜ＰＣＢｎのいずれかを示す場合、単に許容時間カウンタＰＣＡ及び許容時間カウンタＰＣＢと称す場合がある。
【００２６】
許容時間カウンタＰＣＡ０〜ＰＣＡｎ及び許容時間カウンタＰＣＢ０〜ＰＣＢｎはそれぞれ、対応するイニシエータのリクエストをメモリコントローラ５５へ送っていない場合に許容時間カウント値をダウンカウントし、対応するイニシエータのリクエストをメモリコントローラ５５に送った場合には対応する上記レジスタに設定した時間だけ許容時間をプラスする。
【００２７】
許容時間カウンタＰＣＡ０〜ＰＣＡｎ及び許容時間カウンタＰＣＢ０〜ＰＣＢｎそれぞれの上記レジスタに設定する値は任意であるため、イニシエータＩＮＩ０〜ＩＮＩｎに対するアービトレーションのチューニングが可能となる。カウント値ＣＴのレベル閾値（カウント閾値ＬＶｔｈ）を定め、許容時間カウンタのカウント値ＣＴがカウント閾値ＬＶｔｈより小さくなったイニシエータのリクエストＲＱを最優先する。この場合、当該リクエストＲＱがバンクミスリクエストＭＲＱであるかバンクヒットリクエストＨＲＱであるかに関係なく、緊急処理として優先リクエストＰＲＱ１０（優先リクエストＰＲＱ１１，ＰＲＱ１２）がＳＤＲＡＭメモリコントローラ５５に送られる。
【００２８】
例えば、バンクミスリクエストＭＲＱが少なくとも一つが存在する場合、許容時間アービタ５２による処理が実行される。しかし、許容時間カウンタＰＣＡ０〜ＰＣＡｎのカウント値ＣＴのうち、一つでもカウント閾値ＬＶｔｈを下回るが存在すれば、カウント値判定部５８によって、当該カウント値ＣＴに対応するイニシエータのリクエストＲＱである許容時間低下リクエストＥＲＱが最優先に優先リクエストＰＲＱ１０とされる。この場合、許容時間低下リクエストＥＲＱがバンクミスリクエストＭＲＱであるか否かは関係なく優先される。
【００２９】
一方、許容時間カウンタＰＣＡ０〜ＰＣＡｎ（許容時間カウンタＰＣＢ０〜ＰＣＢｎ）のカウント値ＣＴが全てカウント閾値ＬＶｔｈより大きい場合は通常のアービトレーションが許容時間アービタ５２，５３によって実行される。以下、許容時間アービタ５２，５３の通常処理について説明する。
【００３０】
許容時間アービタ５２の対象となるバンクミスリクエストＭＲＱが複数存在する場合、カウント値判定部５８は、複数のバンクミスリクエストＭＲＱに対応する複数の許容時間カウンタＰＣＡのカウント値ＣＴのうち、最も小さいカウント値ＣＴに対応するバンクミスリクエストＭＲＱを優先リクエストＰＲＱ１１として選択する。
【００３１】
一方、許容時間アービタ５２の対象となるバンクミスリクエストＭＲＱが存在しない場合、バンクヒットリクエストＨＲＱの中から許容時間アービタ５３が優先リクエストＰＲＱ１２を選択する。許容時間アービタ５３内のカウント値判定部５９は、対象となるバンクヒットリクエストＨＲＱのうち最も小さいカウント値ＣＴに対応するバンクヒットリクエストＨＲＱを優先リクエストＰＲＱ１２として選択する。
【００３２】
なお、許容時間アービタ５３によるアービトレーション実行時に、許容時間カウンタＰＣＢ０〜ＰＣＢｎのカウント値ＣＴのうち、一つでもカウント閾値ＬＶｔｈを下回るがカウント値ＣＴが存在すれば、カウント値判定部５９によって、当該カウント値ＣＴに対応するリクエストＲＱである許容時間低下リクエストＥＲＱが最優先に優先リクエストＰＲＱ１２とされる。
【００３３】
図１３はある許容時間カウンタＰＣＡ（ＰＣＢ）のカウント動作例を示す説明図である。同図に示すように、カウント値ＣＴは対応するリクエスト実発行の際、予め設定された許容時間分プラスされる。なお、リクエスト実発行とはカウント値ＣＴに対応するイニシエータから出力されたリクエストがバスアービタ５０によって優先リクエストＰＲＱ１１（ＰＲＱ１２）として決定され、ＳＤＲＡＭメモリコントローラ５５からＳＤＲＡＭに実際に出力されたことを意味する。一方、リクエスト無発行時はクロックサイクル（サイクル数ＣＣＬ）の経過と伴にカウントダウンされる。図１３に示すように、タイミングｔ１，ｔ２時にはカウント閾値ＬＶｔｈを下回ったため、最優先処理され必ずリクエストが発行される。
【００３４】
（ＳＤＲＡＭメモリコントローラ）
図１４はＳＤＲＡＭメモリコントローラ５５の詳細を示す説明図である。ＳＤＲＡＭメモリコントローラ５５は対象となるＳＤＲＡＭ５７が８バンク品（バンクＢＫ０〜ＢＫ７）の場合の構成を示している。
【００３５】
同図に示すように、ＳＤＲＡＭメモリコントローラ５５は４つのバンクグループＢＧ０〜ＢＧ３によって、ＳＤＲＡＭ５７における８バンクのオープン／クローズ制御を行っている。すなわち、バンクグループＢＧ０はバンクＢＫ０及びバンクＢＫ４をペアとし、バンク選択部７０によって一方をオープン，他方をクローズしている。同様にして、バンクグループＢＧ１はバンクＢＫ１及びバンクＢＫ５をペアとし、バンク選択部７１によって一方をオープン，他方をクローズしている。バンクグループＢＧ２はバンクＢＫ２及びバンクＢＫ６をペアとし、バンク選択部７２によって一方をオープン，他方をクローズしている。バンクグループＢＧ３はバンクＢＫ３及びバンクＢＫ７をペアとし、バンク選択部７３によって一方をオープン，他方をクローズしている。
【００３６】
このように、前提技術となるＳＤＲＡＭメモリコントローラ５５は、バンクグループＢＧ０〜ＢＧ３で規定されるバンクの組合せを一対としてバンクグループＢＧ０〜ＢＧ３それぞれにおいて一方のバンクのみバンクオープンする仕様としていた。したがって、５バンク目のバンクアクセス要求がバスアービタ５０により行われた場合は、バンクグループＢＧ０〜ＢＧ３のうち、５バンク目にオープンするバンクと対となる他方のバンクが強制的にクローズされていた。
【００３７】
（前提技術の問題点）
図１２及び図１３で示した前提技術となるバスアービトレーション方式では、通常処理においては、バンクミスしたリクエストを優先してメモリコントローラへ送っていた。アドレスに関するアービトレーションがバンクアドレスのヒットミス判定のみである。
【００３８】
しかしながら、バンクミス及びページミスした場合は、ＳＤＲＡＭ５７に対するアクセス時に必ず信号PRE,ACTを発行するため、ＳＤＲＡＭ５７に十分な性能を発揮させることができないという問題点があった。
【００３９】
図１４で示したＳＤＲＡＭメモリコントローラのバンク切替方式の場合、８バンク品の５バンク目をオープンにするときにクローズするバンクアドレスは性能に依存してクローズするわけではない。このため、本来はバンクヒットするため信号PRE,ACTを発行しなくても良い場合にでも、バンクがクローズされてしまっている場合は信号PRE,ACTを発行しなければならないため、ＳＤＲＡＭへのコマンド発行効率が低下する。
【００４０】
上述した問題点の解消を図り、本願発明のリクエスト調停装置であるバスアービタは、ＳＤＲＡＭのコマンド発行順を最適にする事で転送効率を向上させ、かつ許容時間を考慮することを可能にしている。また、本願発明のメモリコントローラは、ＳＤＲＡＭの性能向上を図ることができる。
【００４１】
＜実施の形態１＞
図１はこの発明の実施の形態１であるリクエスト調停装置であるバスアービタの構成を示すブロック図である。同図に示すように、実施の形態１のバスアービタ１は、イニシエータＩＮＩ０〜ＩＮＩｎ（図示せず）のリクエストＲＱ０〜ＲＱｎを受ける。バスアービタ１は、内部に許容時間判定機能付きページヒットミス判定部２、許容時間判定機能付きバンクオープンクローズ判定部３、及び許容時間判定機能付きＬＲＵ部４を有している。
【００４２】
同図に示すように、リクエスト調停の優先順位はページヒット、バンクオープン、ＬＲＵ(Least Recently Used（最も遅く使用されていたバンク）)の順で、ＳＤＲＡＭに対するバンク優先順位が決定する。さらに、各判定部２〜４は内部に許容時間判定部２２，３２，４２を有しており、後に詳述するように、判定部２〜４の優先処理においても、許容時間がカウント閾値ＬＶｔｈを下回ったイニシエータのリクエストＲＱを最優先処理する。
【００４３】
なお、実施の形態１のバスアービタ１は、アクセス対象となる所定のメモリであるＳＤＲＡＭは、複数のバンクが割り当てられており、複数のバンクはそれぞれ複数のページ（通常、行アドレスによって割当）が割り当てられていることを前提としている。
【００４４】
図２はバスアービタ１における許容時間判定機能付きページヒットミス判定部２の内部構成を示すブロック図である。同図に示すように、許容時間判定機能付きページヒットミス判定部２はページミスヒット判定部２１及び許容時間判定部２２を有している。
【００４５】
ページミスヒット判定部２１は前回転送アドレス情報保持部ＰＡＩＳ、アドレス情報保持部ＡＩＳ０〜ＡＩＳｎを有している。前回転送アドレス情報保持部ＰＡＩＳは、直前にメモリコントローラ１０に与えた優先リクエストＰＲＱにおける前回転送アドレスＡＤｐ（前回アクセスアドレス）を保持している。アドレス情報保持部ＡＩＳ０〜ＡＩＳｎはイニシエータＩＮＩ０〜ＩＮＩｎから現在発行されているリクエストＲＱ０〜ＲＱｎにおけるＳＤＲＡＭへのアクセスアドレスをアドレス情報ＡＤ０〜ＡＤｎとして保持している。
【００４６】
図３はページミスヒット判定部２１の内部構成の内部構成を示す説明図である。なお、図２と図３とを合わせた構成がページミスヒット判定部２１の内部構成となる。
【００４７】
比較回路２３は前回転送アドレス情報保持部ＰＡＩＳから得られる前回転送アドレスＡＤｐと、アドレス情報保持部ＡＩＳ０〜ＡＩＳｎから得られるアドレス情報ＡＤ０〜ＡＤｎと、許容時間判定部２２の許容時間カウンタＰＣ０〜ＰＣｎから得られるカウント値ＣＴ０〜ＣＴｎとを受ける。そして、比較回路２３は前回転送アドレスＡＤｐとアドレス情報ＡＤ０〜ＡＤｎとのバンクアドレス及びページアドレスを比較して、アドレス情報ＡＤ０〜ＡＤｎそれぞれのページヒットの有無を判定する。その結果、比較回路２３はアドレス情報ＡＤ０〜ＡＤｎのうちページヒットしたアドレスであるページヒットアドレスＨＡＤを認識する。
【００４８】
さらに、比較回路２３は、ページヒットアドレスＨＡＤが複数存在する場合は、カウント値ＣＴ０〜ＣＴｎからページヒットアドレスＨＡＤそれぞれに対応するカウント値ＣＴを比較し、カウント値ＣＴが最も小さいページヒットアドレスＨＡＤを優先ページヒットアドレスＰＨＡＤとする。そして、比較回路２３は、イニシエータＩＮＩ０〜ＩＮＩｎのうち、優先ページヒットアドレスＰＨＡＤを含むリクエストＲＱを発行したイニシエータを優先イニシエータとして指示する優先イニシエータ情報ＰＩＪ１を出力する。
【００４９】
セレクタ２４は、後述する優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータ無しを指示する場合、リクエストＲＱ０〜ＲＱｎのうち優先イニシエータ情報ＰＩＪ１の指示するイニシエータに対応するリクエストＲＱを優先リクエストＰＲＱ２として選択する。
【００５０】
図４は許容時間判定部２２の内部構成の詳細を示すブロック図である。同図に示すように、許容時間判定部２２は許容時間カウンタＰＣ０〜ＰＣｎ及びカウント値判定部２５から構成される。許容時間カウンタＰＣ０〜ＰＣｎはイニシエータＩＮＩ０〜ＩＮＩｎに対応して設けられる。
【００５１】
許容時間カウンタＰＣ０はリクエスト実発行情報ＯＲＱ０、許容時間情報ＰＴ０、及びクロックＣＬＫを受け、カウント値ＣＴ０を出力する。なお、リクエスト実発行情報ＯＲＱ０とは対応のリクエストＲＱ０が優先リクエストＰＲＱとして実際にメモリコントローラ１０に発行された場合に活性状態となる情報である。許容時間情報ＰＴは図示しないレジスタ等の記憶部にイニシエータＩＮＩ０〜ＩＮＩｎそれぞれに対応して格納されている許容時間を指示する情報である。
【００５２】
許容時間カウンタＰＣ０はクロックＣＬＫに同期してカウント値ＣＴ０をカウントダウンする。この際、リクエスト実発行情報ＯＲＱ０が活性状態になると、許容時間情報ＰＴ０で指示された許容時間をカウント値ＣＴ０にプラスする。
【００５３】
なお、許容時間カウンタＰＣ１〜ＰＣｎも許容時間カウンタＰＣ０と同様、対応するリクエスト実発行情報ＯＲＱ、許容時間情報ＰＴと共に、クロックＣＬＫを受け、カウント値ＣＴ１〜ＣＴｎを出力している。
【００５４】
このように、許容時間カウンタＰＣ０〜ＰＣｎでカウントされるカウント値ＣＴ０〜ＣＴｎは、イニシエータＩＮＩ０〜ＩＮＩｎの許容時間の残存時間を意味する。したがって、許容時間を考慮した場合、カウント値ＣＴｉ（ｉ＝１〜ｎのいずれか）の小さいイニシエータＩＮＩｉのリクエストＲＱｉを優先的に処理する方が望ましい。
【００５５】
カウント値判定部２５はカウント値ＣＴ０〜ＣＴｎを受け、カウント値ＣＴ０〜ＣＴｎとカウント閾値ＬＶｔｈとを比較して、カウント閾値ＬＶｔｈを下回るカウント値ＣＴが存在する場合、当該カウント値ＣＴに対応するイニシエータである要メモリアクセスイニシエータを指示する優先イニシエータ情報ＰＩＪ２を出力する。
【００５６】
一方、カウント値判定部２５は、カウント閾値ＬＶｔｈを下回るカウント値ＣＴが存在しない場合は、要メモリアクセスイニシエータ無しを指示する優先イニシエータ情報ＰＩＪ２を出力する。
【００５７】
図３に戻って、セレクタ２４は優先イニシエータ情報ＰＩＪ２をさらに受け、優先イニシエータ情報ＰＩＪ２が指示する要メモリアクセスイニシエータが存在する場合は、優先イニシエータ情報ＰＩＪ１の指示内容に関係なく、優先イニシエータ情報ＰＩＪ２の指示する要メモリアクセスイニシエータのリクエストＲＱを最優先して優先リクエストＰＲＱ２として選択する。
【００５８】
このように、実施の形態１のバスアービタ１の許容時間判定機能付きページヒットミス判定部２は、互いに連動して動作するページミスヒット判定部２１及び許容時間判定部２２を有している。
【００５９】
ページミスヒット判定部２１は、リクエストＲＱ０〜ＲＱｎのうちページヒットしたリクエストの中から優先的に優先リクエストＰＲＱ２を決定する。許容時間判定部２２は、イニシエータＩＮＩ０〜ＩＮＩｎの許容時間の残存時間であるカウント値ＣＴ０〜ＣＴｎがカウント閾値ＬＶｔｈ以下に達した要メモリアクセスイニシエータのリクエストを、ページミスヒット判定部２１の決定（優先イニシエータ情報ＰＩＪ１の指示内容）より優先して優先リクエストＰＲＱ２として決定させることができる。
【００６０】
したがって、実施の形態１のバスアービタ１は、ページヒットしたリクエストを優先することによりＳＤＲＡＭに対するコマンド（優先リクエスト）の発行効率が向上する効果を得ながら、イニシエータＩＮＩ０〜ＩＮＩｎそれぞれの許容時間を優先考慮したリクエスト調停を行うことができる。
【００６１】
また、実施の形態１のバスアービタ１のページミスヒット判定部２１における比較回路２３は、ページヒットしたリクエストが複数存在した場合、ページヒットしたリクエストに対応するイニシエータのうち、カウント値ＣＴ０〜ＣＴｎに基づき許容時間の残存時間がより小さいイニシエータを指示する優先イニシエータ情報ＰＩＪ１をセレクタ２４に出力している。すなわち、ページミスヒット判定部２１の比較回路２３及びセレクタ２４によって、ページヒットしたリクエストが複数存在した場合、許容時間の残存時間がより小さいリクエストを優先的に優先リクエストＰＲＱ２として決定するページヒット優先処理機能を実現している。
【００６２】
したがって、優先イニシエータ情報ＰＩＪ２による要メモリアクセスイニシエータの指示がない場合に実行されるページヒット優先処理時においてもイニシエータＩＮＩ０〜ＩＮＩｎの許容時間を考慮したリクエスト調停が行える。
【００６３】
図５はバスアービタ１における許容時間判定機能付きバンクオープンクローズ判定部３の内部構成を示すブロック図である。同図に示すように、許容時間判定機能付きバンクオープンクローズ判定部３はバンクオープンクローズ判定部３１及び許容時間判定部３２を有している。許容時間判定機能付きバンクオープンクローズ判定部３は、許容時間判定機能付きページヒットミス判定部２によってページヒットしたリクエストが存在しなかった場合に起動する。
【００６４】
バンクオープンクローズ判定部３１はイニシエータＩＮＩ０〜ＩＮＩｎに対応してバンクオープンクローズ判定部ＢＯＣ０〜ＢＯＣｎを有している。バンクオープンクローズ判定部ＢＯＣ０〜ＢＯＣｎはリクエストＲＱ０〜ＲＱｎのアクセス対象のバンクが現在オープンしているか否かのオープン／クローズ判定を行う。
【００６５】
図６はバンクオープンクローズ判定部３１の内部構成の詳細を示す説明図である。同図に示すように、バンクオープンクローズ判定部ＢＯＣ０〜ＢＯＣｎはリクエストＲＱ０〜ＲＱｎを受け、共通にＳＤＲＡＭアドレスＳＤＡＤを受ける。なお、ＳＤＲＡＭアドレスＳＤＡＤはＳＤＲＡＭにアクセスした際のアドレスを意味する。なお、バンクオープンクローズ判定部ＢＯＣ０〜ＢＯＣｎに取り込まれたＳＤＲＡＭアドレスＳＤＡＤはフリップフロップＦＦ０〜ＦＦｎを介して過去履歴格納部ＡＳ０〜ＡＳｎ内に過去履歴情報として所定量蓄積される。すなわち、過去履歴格納部ＡＳ０〜ＡＳｎにはそれぞれ過去のＳＤＲＡＭアドレスＳＤＡＤの履歴が過去履歴情報として格納される。
【００６６】
バンクオープンクローズ判定部ＢＯＣｉ（ｉ＝０〜ｎのいずれか）はリクエストＲＱｉと過去履歴格納部ＡＳｉの過去履歴情報を参照して、リクエストＲＱｉの指示するＳＤＲＡＭへのアクセスバンクがオープン状態であるかクローズ状態であるを判定し、オープン・クローズ判定結果ＲＯＣｉを出力する。
【００６７】
なお、許容時間判定部３２の構成及び動作は許容時間判定機能付きページヒットミス判定部２内の許容時間判定部２２と同様であるため説明を省略する。なお、許容時間判定部３２の許容時間カウンタＰＣＸ０〜ＰＣＸｎが許容時間カウンタＰＣ０〜ＰＣｎに対応すし、許容時間カウンタＰＣＸ０〜ＰＣＸｎのカウント値ＣＴ０〜ＣＴｎ及び優先イニシエータ情報ＰＩＪ２をセレクタ３３に出力する。なお、カウント値ＣＴ０〜ＣＴｎ及び優先イニシエータ情報ＰＩＪ２の内容は許容時間判定部２２と同様である。
【００６８】
セレクタ３３はオープン・クローズ判定結果ＲＯＣ０〜ＲＯＣｎと共に、許容時間判定部３２から得られるカウント値ＣＴ０〜ＣＴｎ及び優先イニシエータ情報ＰＩＪ２を受ける。
【００６９】
そして、セレクタ３３は、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示しない場合、オープン・クローズ判定結果ＲＯＣ０〜ＲＯＣｎ及びカウント値ＣＴ０〜ＣＴｎに基づき、バンクオープン状態を指示するリクエストＲＱのうちカウント値ＣＴが最も小さいものをリクエストＲＱ０〜ＲＱｎから抽出して、優先リクエストＰＲＱ３として選択する。
【００７０】
一方、セレクタ３３は、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示する場合、リクエストＲＱ０〜ＲＱｎのうち、優先イニシエータ情報ＰＩＪ２の指示するリクエストＲＱを最優先に優先リクエストＰＲＱ３として選択する。
【００７１】
このように、実施の形態１のバスアービタ１における許容時間判定機能付きバンクオープンクローズ判定部３は、互いに連動して動作するバンクオープンクローズ判定部３１及び許容時間判定部３２を有している。
【００７２】
バンクオープンクローズ判定部３１は、各リクエストについてバンクオープンの有無を判定した情報をオープン・クローズ判定結果ＲＯＣ０〜ＲＯＣｎとして出力する。許容時間判定部２２は、要メモリアクセスイニシエータを指示する優先イニシエータ情報ＰＩＪ２をセレクタ３３に与える。
【００７３】
セレクタ３３は、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示する場合、バンクオープンクローズ判定部３１の決定（オープン・クローズ判定結果ＲＯＣｉ）より優先イニシエータ情報ＰＩＪ２の指示する要メモリアクセスイニシエータのリクエストを優先して優先リクエストＰＲＱ３して決定する。
【００７４】
一方、セレクタ３３は、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示しない場合、バンクオープンクローズ判定部３１の決定（オープン・クローズ判定結果ＲＯＣｉ）に基づき優先リクエストＰＲＱ３を決定する。
【００７５】
したがって、ＳＤＲＡＭにおけるバンクのオープンクローズ状態を考慮することによりＳＤＲＡＭに対するコマンド発行効率の向上を図りながら、イニシエータＩＮＩ０〜ＩＮＩｎそれぞれの許容時間を優先的に考慮したリクエスト調停を行うことができる。
【００７６】
また、実施の形態１のバスアービタ１のセレクタ３３は、バンクオープンと判定したリクエストが複数存在した場合、カウント値ＣＴ０〜ＣＴｎに基づき許容時間の残存時間がより小さいイニシエータのリクエストを優先的に優先リクエストＰＲＱ３として決定する。すなわち、許容時間判定機能付きバンクオープンクローズ判定部３は、バンクオープンクローズ判定部３１及びセレクタ３３によって、ページヒットしたリクエストが複数存在した場合、許容時間の残存時間がより小さいリクエストを優先的に優先リクエストＰＲＱ３として決定するバンクオープン優先処理機能を有している。
【００７７】
このため、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示しない場合に実行されるバンクオープン優先処理時においても複数のイニシエータの許容時間を優先考慮したリクエスト調停が行える。
【００７８】
図７はバスアービタ１における許容時間判定機能付きＬＲＵ部４の内部構成を示すブロック図である。同図に示すように、許容時間判定機能付きＬＲＵ部４はＬＲＵ判定部４１及び許容時間判定部４２を有している。許容時間判定機能付きＬＲＵ部４は許容時間判定機能付きバンクオープンクローズ判定部３によってバンクオープンと判定したリクエストが存在しなかった場合に起動する。
【００７９】
図８はＬＲＵ判定部４１の内部構成の詳細を示す説明図である。同図において、過去履歴情報格納部４５は過去のＳＤＲＡＭアドレスＳＤＡＤに基づき、ＳＤＲＡＭに対するバンクアクセス履歴情報を格納している。ＬＲＵステートマシン４３はリクエストＲＱ０〜ＲＱｎ及び過去履歴情報格納部４５からのバンクアクセス履歴情報Ｉ４５を受ける。そして、ＬＲＵステートマシン４３は、バンクアクセス履歴情報Ｉ４５によって最新アクセス時間が最も古いＬＲＵバンク、すなわち、最も以前にアクセスされたＬＲＵバンクを認識し、当該ＬＲＵバンクにバンクアクセスするリクエストＲＱを指示する情報をＬＲＵリクエスト情報ＲＱＬとしてセレクタ４４に出力する。
【００８０】
なお、許容時間判定部４２の構成及び動作は許容時間判定機能付きページヒットミス判定部２内の許容時間判定部２２と同様であるため説明を省略する。また、許容時間判定部４２の許容時間カウンタＰＣＹ０〜ＰＣＹｎが許容時間カウンタＰＣ０〜ＰＣｎに対応すし、許容時間カウンタＰＣＹ０〜ＰＣＹｎのカウント値ＣＴ０〜ＣＴｎ及び優先イニシエータ情報ＰＩＪ２をセレクタ４４に出力する。なお、カウント値ＣＴ０〜ＣＴｎ及び優先イニシエータ情報ＰＩＪ２の内容は許容時間判定部２２の場合と同様である。
【００８１】
セレクタ４４はリクエストＲＱ０〜ＲＱｎ及びＬＲＵリクエスト情報ＲＱＬと共に、許容時間判定部４２から得られるカウント値ＣＴ０〜ＣＴｎ及び優先イニシエータ情報ＰＩＪ２を受ける。
【００８２】
そして、セレクタ４４は、優先イニシエータ情報ＰＩＪ２が優先イニシエータを指示しない場合、ＬＲＵリクエスト情報ＲＱＬに基づき、ＬＲＵバンクにアクセスするリクエストのうち、カウント値ＣＴが最も小さいリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出して、優先リクエストＰＲＱ４として選択する。
【００８３】
一方、セレクタ４４は、優先イニシエータ情報ＰＩＪ２が優先イニシエータを指示する場合、ＬＲＵリクエスト情報ＲＱＬの内容に関係なく、リクエストＲＱ０〜ＲＱｎのうち、優先イニシエータ情報ＰＩＪ２の指示するリクエストＲＱを最優先に優先リクエストＰＲＱ４として選択する。
【００８４】
また、セレクタ４４は、優先イニシエータ情報ＰＩＪ２が優先イニシエータを指示せず、ＬＲＵバンクにアクセスするリクエストが存在しない場合、単純にカウント値ＣＴ０〜ＣＴｎの最小のリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出して、優先リクエストＰＲＱ４として選択する（単純許容時間低下優先処理）。
【００８５】
このように、実施の形態１のバスアービタ１における許容時間判定機能付きＬＲＵ部４は、互いに連動するＬＲＵ判定部４１及び許容時間判定部４２を有している。
【００８６】
ＬＲＵ判定部４１は最新アクセス時間が最も古いＬＲＵバンクをアクセスバンクとするリクエストを指示するＬＲＵリクエスト情報ＲＱＬを出力する。許容時間判定部４２は要メモリアクセスイニシエータを指示する優先イニシエータ情報ＰＩＪ２を出力する。ＬＲＵ判定部４１内のセレクタ４４は、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示する場合、ＬＲＵ判定部４１の決定（ＬＲＵリクエスト情報ＲＱＬの指示内容）より優先して要メモリアクセスイニシエータのリクエストを優先リクエストＰＲＱ４として出力する。
【００８７】
一方、優先イニシエータ情報ＰＩＪ２が要メモリアクセスイニシエータを指示しない場合、ＬＲＵ判定部４１の決定（ＬＲＵリクエスト情報ＲＱＬ）に従い、ＬＲＵバンクにアクセスするリクエストを優先的に選択して優先リクエストＰＲＱ４を出力する。
【００８８】
したがって、実施の形態１のバスアービタ１の許容時間判定機能付きＬＲＵ部４は、ＳＤＲＡＭのＬＲＵバンクをオープンさせてアクセスすることにより、ＳＤＲＡＭに対するコマンド発行効率の向上を図りながら、イニシエータＩＮＩ０〜ＩＮＩｎそれぞれの許容時間を優先的に考慮したリクエスト調停を行うことができる。
【００８９】
バスアービタ１の許容時間判定機能付きＬＲＵ部４のＬＲＵ判定部４１内のセレクタ４４は、ＬＲＵリクエスト情報ＲＱＬが複数のＬＲＵバンクを指示する場合、カウント値ＣＴ０〜ＣＴｎに基づき許容時間の残存時間がより小さいリクエストを優先的に優先リクエストＰＲＱ４と決定している。すなわち、ＬＲＵ判定部４１はＬＲＵステートマシン４３及びセレクタ４４によって、ＬＲＵバンクへのバンクアクセスするリクエストが複数存在した場合、許容時間の残存時間がより小さいリクエストを優先的に優先リクエストＰＲＱ４として決定するＬＲＵバンク優先処理機能を有している。
【００９０】
したがって、実施の形態１のバスアービタ１は、カウント値ＣＴ０〜ＣＴｎを考慮したＬＲＵバンク優先処理機能によって、ＬＲＵバンク優先処理時においても複数のイニシエータの許容時間を考慮したリクエスト調停が行える。
【００９１】
図９は図１〜図８で示した実施の形態１のバスアービタ１のバスアービトレーション方式の処理手順を示すフローチャートである。以下、同図を参照して、実施の形態１のバスアービタ１によるバスアービトレーション方式の処理手順を説明する。
【００９２】
まず、ステップＳ１によって、許容時間判定機能付きページヒットミス判定部２により、全ての許容時間判定用のカウント値ＣＴ０〜ＣＴｎがカウント閾値ＬＶｔｈ以上であるか否かを判定する。
【００９３】
ステップＳ１において、カウント閾値ＬＶｔｈ以上と判定するとステップＳ２に移行し、カウント値ＣＴ０〜ＣＴｎのうち少なくとも一つにおいてカウント閾値ＬＶｔｈ以下と判定するとステップＳ１５の許容時間低下最優先処理を行う。
【００９４】
ステップＳ１からステップＳ１５に至る処理が、図４で示した許容時間判定部２２から優先イニシエータを指示する優先イニシエータ情報ＰＩＪ２が出力された場合、ページミスヒット判定部２１のセレクタ２４によって、優先イニシエータ情報ＰＩＪ２の指示するイニシエータのリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出し、優先リクエストＰＲＱ２として選択する処理に相当する。
【００９５】
ステップＳ２において、リクエストＲＱ０〜ＲＱｎすべてについてページヒットの有無を判定する。すなわち、リクエストＲＱ０〜ＲＱｎのうち少なくとも一つのリクエストＲＱでページヒットであると判定すると、ステップＳ１１のページヒット優先処理を行い、全リクエストＲＱ０〜ＲＱｎがページミスであると判定するとステップＳ３に移行する。
【００９６】
ステップＳ２からステップＳ１１に至る処理が、図３で示したページミスヒット判定部２１内のセレクタ２４によって、優先イニシエータ情報ＰＩＪ１及びカウント値ＣＴ０〜ＣＴｎに基づき、優先リクエストＰＲＱ２として選択するページヒット優先処理に相当する。
【００９７】
ステップＳ３において、許容時間判定機能付きバンクオープンクローズ判定部３により、全ての許容時間判定用のカウント値ＣＴ０〜ＣＴｎがカウント閾値ＬＶｔｈ以上であるか否かを判定する。
【００９８】
ステップＳ３において、全てのカウント値ＣＴ０〜ＣＴｎがカウント閾値ＬＶｔｈ以上と判定するとステップＳ４に移行し、少なくとも一つのカウント値ＣＴｉがカウント閾値ＬＶｔｈ以下であると判定するとステップＳ１５の許容時間低下最優先処理を行う。
【００９９】
ステップＳ３からステップＳ１５に至る処理が、図５で示した許容時間判定部３２から優先イニシエータを指示する優先イニシエータ情報ＰＩＪ２が出力された場合、セレクタ３３によって、優先イニシエータ情報ＰＩＪ２の指示するイニシエータのリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出し、優先リクエストＰＲＱ３として選択する処理に相当する。
【０１００】
ステップＳ４において、全てのリクエストＲＱ０〜ＲＱｎに対しバンクオープンの有無を判定し、リクエストＲＱ０〜ＲＱｎのうち少なくとも一つのリクエストＲＱでアクセス対象のバンクがオープン状態であると判定すると、ステップＳ１２のバンクオープン優先処理を行い、全リクエストＲＱ０〜ＲＱｎでアクセス対象のバンクがクローズである判定するとステップＳ５に移行する。
【０１０１】
ステップＳ４からステップＳ１２に至る処理が、図５，図６で示したバンクオープンクローズ判定部３１内のセレクタ３３によって、オープン・クローズ判定結果ＲＯＣ０〜ＲＯＣｎ及びカウント値ＣＴ０〜ＣＴｎに基づき、リクエストＲＱ０〜ＲＱｎから優先リクエストＰＲＱ３を選択するバンクオープン優先処理に相当する。
【０１０２】
ステップＳ５において、許容時間判定機能付きＬＲＵ部４により、全ての許容時間判定用のカウント値ＣＴ０〜ＣＴｎがカウント閾値ＬＶｔｈ以上であるか否かを判定する。
【０１０３】
ステップＳ５において、カウント値ＣＴ０〜ＣＴｎが全てカウント閾値ＬＶｔｈ以上と判定するとステップＳ６に移行し、少なくとも一つがカウント閾値ＬＶｔｈ以下と判定するとステップＳ１５の許容時間低下最優先処理を行う。
【０１０４】
ステップＳ５からステップＳ１５に至る処理が、図７で示した許容時間判定部４２から優先イニシエータを指示する優先イニシエータ情報ＰＩＪ２が出力された場合、セレクタ４４によって、優先イニシエータ情報ＰＩＪ２の指示するイニシエータのリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出し、優先リクエストＰＲＱ４として選択する処理に相当する。
【０１０５】
ステップ６において、ＬＲＵ判定を行う。すなわち、リクエストＲＱ０〜ＲＱｎのうち少なくとも一つのリクエストＲＱが最も使用されていないバンク（最新アクセス時間が最も古いバンク）にアクセスするリクエストであるか否かを判定する。そして、ＬＲＵ判定を満足した（ＬＲＵバンクである）と判定すると、ステップＳ１３のＬＲＵバンク優先処理を行い、全リクエストＲＱ０〜ＲＱｎでＬＲＵ判定を満足しないと判定するとステップＳ１４の単純許容時間低下優先処理を実行する。
【０１０６】
ステップＳ６からステップＳ１３に至る処理が、図８で示したＬＲＵ判定部４１内のセレクタ４４が、優先イニシエータ情報ＰＩＪ２が優先イニシエータを指示しない場合、ＬＲＵリクエスト情報ＲＱＬに基づき、ＬＲＵバンクにアクセスするリクエストのうち、カウント値ＣＴが最も小さいリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出して、優先リクエストＰＲＱ４として選択する処理に相当する。
【０１０７】
一方、ステップＳ６からステップＳ１４に至る処理が、図８で示したＬＲＵ判定部４１内のセレクタ４４によって、優先イニシエータ情報ＰＩＪ２が優先イニシエータを指示せず、ＬＲＵバンクにアクセスするリクエストが存在しない場合、単純にカウント値ＣＴ０〜ＣＴｎの最小のリクエストＲＱをリクエストＲＱ０〜ＲＱｎから抽出して、優先リクエストＰＲＱ４として選択する処理に相当する。
【０１０８】
図１７は実施の形態１のバスアービタの他の態様のバスアービトレーション方式の処理手順を示すフローチャートである。同図に示すように、ステップＳ３及びステップＳ５の処理を省略している。ステップＳ３およびステップＳ５は、ステップＳ１と同内容の処理の繰り返しであるため、図１７に示すフローのように、ステップＳ３及びステップＳ５の処理を省略することができる。すなわち、ステップＳ２でミス判定した後にステップＳ４の判定を実行し、ステップＳ４でクローズ判定した後にステップＳ６を判定するフローでも良い。
【０１０９】
図１８は図１７のフローに対応する実施の形態１の他の態様であるバスアービタ１ｓのハードウェア構成を示すブロック図である。同図に示すように、図１で示したバスアービタ１に対し、図１８で示したバスアービタ１ｓは、許容時間判定機能付きバンクオープンクローズ判定部３を単純バンクオープンクローズ判定部３ｓに、許容時間判定機能付きＬＲＵ部４を単純ＬＲＵ部４ｓに置き換えている点が異なる。単純バンクオープンクローズ判定部３ｓはバンクオープンクローズ判定部３１を内部に有し、許容時間判定部３２に相当する構成部を省略している。同様にして、単純ＬＲＵ部４ｓはＬＲＵ判定部４１を内部に有し許容時間判定部４２に相当する構成部を省略している。
【０１１０】
さらに、図１８に示すバスアービタ１ｓは、許容時間判定部２２の許容時間カウンタＰＣ０〜ＰＣｎから出力されるカウント値ＣＴ０〜ＣＴｎを、単純バンクオープンクローズ判定部３ｓ及び単純ＬＲＵ部４ｓに入力する構成を呈している。なお、単純ＬＲＵ部４ｓは単純バンクオープンクローズ判定部３ｓ経由でカウント値ＣＴ０〜ＣＴｎを入力している。
【０１１１】
すなわち、許容時間判定部２２で得られたカウント値ＣＴ０〜ＣＴｎをバンクオープンクローズ判定部３１およびＬＲＵ部４１においても活用している。その結果、図１８で示したバスアービタ１ｓにおいても、ステップＳ１２のバンクオープン優先処理、ステップＳ１３のＬＲＵバンク優先処理、及びステップＳ１４の許容時間低下優先処理を支障無く行うことができる。
【０１１２】
＜実施の形態２＞
図１０はこの発明の実施の形態２であるメモリコントローラ１０の構成を示す説明図である。実施の形態２のメモリコントローラ１０は実施の形態１のバスアービタ１に対応し、バスアービタ１より得られる優先リクエストＰＲＱ（ＰＲＱ２〜ＰＲＱ４のいずれか）に基づき制御対象となるＳＤＲＡＭに対しアクセスする。
【０１１３】
なお、メモリコントローラ１０は制御対象となるＳＤＲＡＭが８バンク構成の場合を前提としている。すなわち、制御対象なるＳＤＲＡＭは８バンクを有し、うち４バンク（所定数＝４）をオープンできる構成を前提としている。
【０１１４】
図１０に示すように、メモリコントローラ１０は内部に８バンク制御部１１を有し、８バンク制御部１１はＬＲＵモジュール１２及びバンク切替部１３を備えている。８バンク制御部１１は優先リクエストＰＲＱがクローズしているバンクにアクセスするリクエストである場合に、オープン状態の所定数のバンクのいずかをクローズするバンククローズ制御を行う。
【０１１５】
図１１は８バンク制御部１１の詳細を示す説明図である。同図に示すように、優先リクエストＰＲＱはＬＲＵモジュール１２及びバンク切替部１３に入力される。
【０１１６】
ＬＲＵモジュール１２はＬＲＵ状態保持部１５内に制御対象のＳＤＲＡＭにおける各バンクの最新アクセス時間を指示するＬＲＵバンク情報Ｉ１５を格納している。そして、ＬＲＵモジュール１２は、ＬＲＵ状態保持部１５に格納したＬＲＵバンク情報Ｉ１５をバンク切替部１３に出力する。ＬＲＵモジュール１２はメモリコントローラ１０からＳＤＲＡＭに発行されるＳＤＲＡＭアドレスＳＤＡＤ（図示せず）に基づき、制御対象のＳＤＲＡＭにおける各バンクの最新アクセス時間を常時更新し、ＬＲＵバンク情報Ｉ１５としてＬＲＵ状態保持部１５内に保持している。
【０１１７】
バンク切替部１３はＬＲＵバンク情報Ｉ１５、現在、オープンしているバンクのうち、最新アクセス時間が最も古いＬＲＵオープンバンクを認識し、当該ＬＲＵオープンバンクをクローズし、優先リクエストＰＲＱの指示するバンクをオープンするバンク切替制御を制御対象のＳＤＲＡＭに対して行う。
【０１１８】
実施の形態２のメモリコントローラ１０は、オープン許容数を超える５バンク目のバンクをオープンにするためにはいずれかのバンクをクローズする際、ＳＤＲＡＭへのアクセスを向上させるため、ＬＲＵバンク情報Ｉ１５に基づきＬＲＵオープンバンクをクローズさせている。すなわち、メモリコントローラ１０は、アクセス時間の古い順にクローズするというクローズバンクの優先順位を決めてバンク切替制御をＳＤＲＡＭに対して行っている。
【０１１９】
このように、実施の形態２のメモリコントローラ１０におけるバンク切替部１３は、４個のバンクのいずれかをクローズする際、ＬＲＵ状態保持部１５からのＬＲＵバンク情報Ｉ１５に基づき、４個のバンクのうち最新アクセス時間が最も古いＬＲＵオープンバンクを優先的にクローズするバンク切替を行っている。
【０１２０】
ＬＲＵオープンバンクは使用頻度が低いと推測されるバンクであるため、実施の形態２のメモリコントローラ１０は、ＬＲＵオープンバンクを優先的にクローズすることにより、使用頻度が高いバンクがオープン状態となる確率が高くなるため、ＳＤＲＡＭの性能向上を図ることができる効果を奏する。
【０１２１】
また、図１４で示したＳＤＲＡＭメモリコントローラ５５と比較した場合、バンクグループＢＧ０〜ＢＧ３によるオープンバンクとクローズバンクとが対となる制約がないマルチ制御が行うことができる。その結果、オープンすべきバンクに制約がない分、先行コマンド処理が実行できるため、ＳＤＲＡＭの転送効率を考慮したコマンドをＳＤＲＡＭに発行することができる。
【０１２２】
なお、実施の形態２の第１の変形例として、イニシエータからのアクセスを予め考慮し、常時オープンにするバンクを決める態様も考えられる。この場合、予め決定された常時オープンバンクに対し、バンク切替部１３はクローズせず常時オープン状態となるように制御する。
【０１２３】
その結果、予め使用頻度が高いことが認識されている常時オープンバンクへのアクセス効率が向上し、全体としてのアクセス効率が向上する効果が得られる。
【０１２４】
なお、常時オープンバンクをハードウェア固定にする態様も考えられる。例えば、図１１に示すように、バンク切替部１３はオープン固定バンク設定情報１４を有し、オープン固定バンク設定情報１４で指定されたバンクは常にオープンするように制御するようにしても良い。この場合、オープン固定バンク設定情報１４の指示するバンクを常時オープンにしながら、他のオープンバンク内においてＬＲＵオープンバンクをクローズ制御する常時バンクオープン制御を行うことになる。
【０１２５】
このように、実施の形態２の第１の変形例では、バンク切替部１３は、オープン固定バンク設定情報１４に従い４個のバンクのうち一部をオープン固定バンクとして常時オープン状態にする常時オープン制御を実行する。したがって、常時オープンするバンクを使用頻度の高いバンクに設定することにより、バンクミスペナルティを少なくして所定のメモリに対するリクエストの発行効率を向上させることができる効果を奏する。
【０１２６】
さらに、実施の形態２の第２の変形例として、常時オープンバンクを設定するか否かを指示する指示レジスタ１６を８バンク制御部１１内に設け、指示レジスタ１６内の指示内容に基づき、オープンバンク固定の採用の有無を決定しても良い。すなわち、バンク切替部１３は、指示レジスタ１６の指示内容に基づき、全バンクに対してＬＲＵバンクをクローズ制御する全ＬＲＵ制御を行うか、上記常時バンクオープン制御を行うかを切り替えることができる。
【０１２７】
このように、実施の形態２の第２の変形例では、バンク切替部１３は、指示レジスタ１６の指示内容に基づき、上記常時オープン制御を行うか否かを切り換える機能を有することにより、状況に応じて常時オープン制御の利用の有無を使い分けることができる。
【０１２８】
＜その他＞
実施の形態１のバスアービタ１及び実施の形態２のメモリコントローラ１０は、ＳＤＲＡＭを使用するシステムすべてについて適用可能であり、特にＳＤＲＡＭに対して複数のイニシエータからのリクエストが重なる場合に有効である。
【図面の簡単な説明】
【０１２９】
【図１】この発明の実施の形態１であるバスアービタの構成を示すブロック図である。
【図２】図１で示したバスアービタにおける許容時間判定機能付きページヒットミス判定部の内部構成を示すブロック図である。
【図３】図２で示したページミスヒット判定部の内部構成の内部構成を示す説明図である。
【図４】図２で示した許容時間判定部の内部構成の詳細を示すブロック図である。
【図５】実施の形態１のバスアービタにおける許容時間判定機能付きバンクオープンクローズ判定部の内部構成を示すブロック図である。
【図６】図５で示したバンクオープンクローズ判定部の内部構成の詳細を示す説明図である。
【図７】実施の形態１のバスアービタにおける許容時間判定機能付きＬＲＵ部の内部構成を示すブロック図である。
【図８】図７で示したＬＲＵ判定部の内部構成の詳細を示す説明図である。
【図９】実施の形態１のバスアービタのバスアービトレーション方式の処理手順を示すフローチャートである。
【図１０】この発明の実施の形態２であるメモリコントローラの構成を示す説明図である。
【図１１】図１０で示した８バンク制御部の詳細を示す説明図である。
【図１２】この発明の前提技術となるバスアービトレーション方式を示すブロック図である。
【図１３】許容時間カウンタのカウント動作例を示す説明図である。
【図１４】ＳＤＲＡＭメモリコントローラの詳細を示す説明図である。
【図１５】従来のバスアービタとその周辺部とのシステム構成を示すブロック図である。
【図１６】従来のＳＤＲＡＭメモリコントローラ及びその周辺を示すブロック図である。
【図１７】実施の形態１のバスアービタの他の態様のバスアービトレーション方式の処理手順を示すフローチャートである。
【図１８】図１７のフローに対応する実施の形態１の他の態様であるバスアービタのハードウェア構成を示すブロック図である。
【符号の説明】
【０１３０】
１，１ｓ  バスアービタ、２  許容時間判定機能付きページヒットミス判定部、３  許容時間判定機能付きバンクオープンクローズ判定部、３ｓ  単純バンクオープンクローズ判定部、４  許容時間判定機能付きＬＲＵ部、４ｓ  単純ＬＲＵ部、１０  メモリコントローラ、１１  ８バンク制御部、１２  ＬＲＵモジュール、１３  バンク切替部、２１  ページミスヒット判定部、２２，３２，４２  許容時間判定部、３１  バンクオープンクローズ判定部、４１  ＬＲＵ判定部、ＩＮ０〜ＩＮｎ  イニシエータ。
【図１】
2008287528.tif 000003
【図２】
2008287528.tif 000004
【図３】
2008287528.tif 000005
【図４】
2008287528.tif 000006
【図５】
2008287528.tif 000007
【図６】
2008287528.tif 000008
【図７】
2008287528.tif 000009
【図８】
2008287528.tif 000010
【図９】
2008287528.tif 000011
【図１０】
2008287528.tif 000012
【図１１】
2008287528.tif 000013
【図１２】
2008287528.tif 000014
【図１３】
2008287528.tif 000015
【図１４】
2008287528.tif 000016
【図１５】
2008287528.tif 000017
【図１６】
2008287528.tif 000018
【図１７】
2008287528.tif 000019
【図１８】
2008287528.tif 000020