(57)【要約】【課題】リクエスト発行待ちが発生して性能低下が生じる、ということを解決すること。【解決手段】本発明であるメモリ制御装置は、複数のバンクからなるバンクグループを複数有するメモリを制御し、バンクに対するメモリリクエストを記憶するリクエストバッファと、バンクのビジー状態を管理するバンクビジー管理部と、バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、バンクグループ毎のビジーではないバンクの数に基づいて、メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行するリクエスト発行部と、を備える。【選択図】図８
2018136592.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えたメモリ制御装置。
【請求項２】
請求項１に記載のメモリ制御装置であって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【請求項３】
請求項１又は２に記載のメモリ制御装置であって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【請求項４】
請求項１乃至３のいずれかに記載のメモリ制御装置であって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【請求項５】
請求項１乃至４のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御装置。
【請求項６】
請求項１乃至５のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御装置。
【請求項７】
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させるためのプログラム。
【請求項８】
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
メモリ制御方法。
【請求項９】
請求項８に記載のメモリ制御方法であって、
ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【請求項１０】
請求項８又は９に記載のメモリ制御方法であって、
直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置にかかり、特に、複数のバンクを有するメモリを制御するメモリ制御装置に関する。
【背景技術】
【０００２】
複数のバンクを有するメモリであるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）のバンクアクセス制御方法が、特許文献１に開示されている。特許文献１に記載されているバンクアクセス制御方式を、図１のブロック図を参照して説明する。
【０００３】
図１に示すバンクアクセス制御方式では、まず、受信したメモリリクエストについてバンクチェック回路１０４でバンクチェックを行う。リクエストのバンクがバンクビジーカウンタ１０３で調べてバンクビジーでない場合は、そのまま受信したリクエストをメモリ制御部に出力する。リクエストのバンクがバンクビジーの場合には、リクエストをリクエストバッファ１０１に格納する。リクエストバッファ１０１内のリクエストのうち、バンクビジーでなくなったリクエストが複数あった場合には、リクエスト選択回路１０５にてあらかじめ定められた優先順位に従って、リクエストセレクタ１０２を介して、順次、メモリ制御部に送られる。
【０００４】
また、特許文献２には、複数のバンクをグループに分けて制御するメモリアクセス制御方式が開示されている。このメモリアクセス制御方式では、複数のバンクを２つのメモリモジュールに分けており、各バンクのビジー状態を調べ、一方のモジュール内のバンクのビジー状態が解除されると、他方のモジュール内のバンクへのリクエストを追い越して、一方のモジュール内のバンクにリクエストを発行している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３２６５２２６号公報
【特許文献２】特開２００６−９９２９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、近年では、ＤＤＲ４規格のＳＤＲＡＭが開発されている。このＤＤＲ４では、同じＩＯ（Input Output）バッファを共有する複数のバンクであるバンクグループという機能が導入されている。このため、異なるバンクグループに属するバンク間にはリクエストを連続して発行することができるが、同じバンクグループに属するバンク間は、同じＩＯバッファを使用することから、リクエストを連続して発行することができない。
【０００７】
すると、上記ＤＤＲ４を採用したメモリでは、上記特許文献１に開示の方式を用いたとしても、バンクグループが考慮されていないため、同一バンクグループに所属するバンクのリクエストを連続して発行してしまい、メモリ制御部で発行待ちが発生して性能低下が起こる、という問題が生じる。
【０００８】
さらに、上記特許文献２の方式では、主記憶を２つのグループに分けているだけであり、一方のグループに空きがある場合にかかるグループ内のバンクにリクエストを発行しているだけである。このため、バンクグループ間の状況を考慮してリクエストを発行しているわけではなく、単に各バンクの空き状況に応じてリクエストを発行しているだけである。その結果、上記ＤＤＲ４を採用したメモリでは、同一バンクグループ内のバンクのリクエストを連続して発行することとなってしまい、リクエスト発行待ちが発生して性能低下が起こる、という問題が生じる。
【０００９】
このため、本発明の目的は、上述した課題である、リクエスト発行待ちが発生して性能低下が生じる、ということを解決することができるメモリ制御装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一形態であるメモリ制御装置は、
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えた、
という構成をとる。
【００１１】
また、本発明の一形態であるプログラムは、
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させる、
という構成をとる。
【００１２】
また、本発明の一形態であるメモリ制御方法は、
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
という構成をとる。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、リクエスト発行待ちを抑制して性能低下を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】背景技術におけるバンクアクセス制御方式の構成を示す図である。
【図２】本発明の第１の実施形態におけるメモリ制御装置の構成を示す図である。
【図３】図２に開示したバンクグループチェック・バンクチェック回路によるバンクグループチェック機能部分の構成を示す図である。
【図４】図２に開示したバンクグループチェック・バンクチェック回路によるバンクチェック機能部分の構成を示す図である。
【図５】図２に開示したリクエスト選択回路の構成を示す図である。
【図６】本発明のバンクグループチェック機能の効果を示すために、単純なラウンドロビンによりバンクグループの選択をした場合におけるメモリリクエスト発行の様子を示す図である。
【図７】本発明のバンクグループチェック機能の効果を示すために、本発明によりバンクグループの選択をした場合におけるメモリリクエスト発行の様子を示す図である。
【図８】本発明の実施形態２におけるメモリ制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１５】
＜実施形態１＞
本発明の第１の実施形態を、図２乃至図７を参照して説明する。図２乃至図５は、実施形態１におけるメモリ制御装置の構成を説明するための図である。図６乃至図７は、メモリ制御装置の動作を説明するための図である。
【００１６】
［構成］
本発明におけるメモリ制御装置は、複数のバンクを有し、当該複数のバンクでバンクグループが形成されており、さらに、バンクグループを複数有するメモリ（主記憶）へのアクセスを制御する装置である。
【００１７】
図２に示すように、本実施形態におけるメモリ制御装置は、リクエストバッファ１と、リクエストセレクタ２と、バンクビジーカウンタ３と、バンクグループチェック・バンクチェック回路４と、リクエスト選択回路５と、を備えている。なお、これらの構成は、電子回路で構成されていてもよく、あるいは、演算装置にプログラムが組み込まれることで構成されてもよい。
【００１８】
上記リクエストバッファ１は、バンクに対するメモリリクエスト（以下、単に「リクエスト」とも言う）を記憶する。具体的に、リクエストバッファ１は、「ワード00」〜「ワードn」までの（ｎ＋１）個のメモリリクエストを、受信した順番で格納する。なお、メモリリクエストは、リクエストの宛先となるバンクを指定している。
【００１９】
例えば、受信リクエストも含めて（ｎ＋２）個のリクエストのうち、条件がそろって発行できるリクエストが複数個ある場合には、ワード00、ワード01、ワード02、・・・、ワードn、受信リクエスト、の優先順位で、最も優先順位が高いリクエストが発行される。このとき、リクエスト選択回路５からのリクエストセレクト６に従って、リクエストセレクタ２でリクエストが選択され、メモリ制御部に発行される。ここで、「ワードi」のリクエストが選択されて発行されたとすると、「ワードi+1」〜「ワードn」が、「ワードi」〜「ワードn-1」にシフトされ、受信リクエストが「ワードn」に格納される。
【００２０】
そして、メモリ制御部に発行されたリクエストの宛先となるバンクを示すバンクアドレス７が、バンクビジーカウンタ３に伝えられ、該当バンクのカウンタが初期化される。バンクビジーカウンタ３は、バンクのビジー状態を管理するバンクビジー管理部として機能する。具体的に、バンクビジーカウンタ３には、バンクごとにカウンタが備えられており、毎クロック、カウンタが減算される。カウンタの値が非ゼロの場合には、そのバンクのバンクビジー情報８が「１」となり、バンクビジーであることを示す。カウンタの値がゼロの場合には、そのバンクのバンクビジー情報８が「０」となり、バンクビジーでないことを示す。
【００２１】
また、全バンクのバンクビジー情報８は、バンクグループチェック・バンクチェック回路４に送られる。バンクグループチェック・バンクチェック回路４には、リクエストバッファ１から各リクエストの宛先であるバンクアドレス９も入力される。バンクグループチェック・バンクチェック回路４では、どのリクエストが次に発行できるかを示すバンクパス情報１０を作成する。バンクパス情報１０は、リクエスト選択回路５に入力され、次に発行するリクエストが決定され、リクエストセレクト信号６が作られる。
【００２２】
次に、図３を参照して、バンクグループチェック・バンクチェック回路４が有するバンクグループチェック機能（バンクグループチェック部、バンクグループ決定部）に関する構成を説明する。ここでは、全バンク数を「16」としてバンク0〜バンク15があり、それぞれ、４バンクずつで各バンクグループを形成していることとする。つまり、バンク0〜バンク3がバンクグループ0、バンク4〜バンク7がバンクグループ1、バンク8〜バンク11がバンクグループ2、バンク12〜バンク15がバンクグループ3、を形成している。なお、バンク数やバンクグループ数は、この例以外でもよい。
【００２３】
図３に示すバンク0ビジー〜バンク15ビジー信号は、図２のバンクビジーカウンタ３からのバンクビジー情報８により、バンク0〜バンク15がそれぞれバンクビジーであるかどうかを示す信号である。バンクiビジー信号が「１」の場合は「バンクビジー状態」を示し、「０」の場合は「バンクビジーでない」ことを示す。ワード00バンクアドレス〜ワードnバンクアドレス信号及び受信リクエストバンクアドレス信号は、図３のリクエストバッファ１のワード00〜ワードn内のリクエスト及び受信リクエストの宛先を示すバンクアドレス（バンク0〜バンク15）である。
【００２４】
例えば、図３に示すバンクグループチェック機能では、バンク0ビジーについて、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレスから、バンク0へのリクエストがあり、かつ、バンク0がバンクビジーでない場合には「１」の信号が、それ以外は「０」の信号が作られ、加算器１１に入力される。バンク1ビジー〜バンク15ビジーについても、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレスから、バンク1〜15へのリクエストがあり、バンク1〜15がバンクビジーでない場合には「１」の信号が、それ以外は「０」の信号が作られ、加算器１１に入力される。
【００２５】
加算器１１は、各バンクグループに対応して設けられており、上述したように入力された信号から、対応するバンクグループのビジーではないバンクの情報を合計する。従って、加算器１１の出力は「０〜４」の値となる。このように、加算器１１（バンクグループチェック部）は、対応するバンクグループに属するバンクのうち、ビジーではないバンクの数を管理する機能を有する。
【００２６】
４個のバンクグループの各加算器１１からの出力は、バンクグループ選択回路１２に入力される。また、バンクグループ選択回路１２には、直前に選択したリクエストの宛先となるバンクが属するバンクグループの番号も入力される。そして、バンクグループ選択回路１２（バンクグループ決定部）は、直前に選択したバンクが属するバンクグループ以外のバンクグループのうち、リクエストのあるバンクビジーでないバンク数（加算器の出力）が最も大きいバンクグループを選択し、選択したバンクグループをバンクグループマスクとして出力する。
【００２７】
このように、バンクグループ選択回路１２は、バンクグループのうち、ビジーではないバンクの数に基づいて、リクエストを発行するバンクグループを決定している。このとき、バンクグループ選択回路１２は、必ずしもビジーではないバンクの数が最も多いバンクグループを決定することに限定されない。例えば、ビジーではないバンクが少なくとも１つあるバンクグループを決定してもよい。
【００２８】
また、上述した図３に示すバンクグループチェック機能では、ワードnバンクアドレス及び受信リクエストバンクアドレスから、各バンクのビジー状態を検出しており、つまり、メモリリクエストの宛先となっているバンクのビジー状態を検出している。但し、バンクグループチェック機能は、必ずしもメモリリクエストの宛先となっているバンクのビジー状態を検出することに限定されない。これにより、バンクグループ選択回路１２は、各バンクグループのバンクのビジーではない数に応じて、バンクグループを決定してもよい。
【００２９】
次に、図４を参照して、バンクグループチェック・バンクチェック回路４のバンクチェック機能に関する構成を説明する。バンクチェック機能の回路は、バンク0ビジー〜バンク15ビジーと、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレス（バンクアドレス９）と、バンクグループマスクとから、ワード00バンクパス〜ワードnバンクパス及び受信リクエストバンクパスを生成する。
【００３０】
具体的に、バンクチェック機能の回路は、バンクグループマスクで示された上記バンクグループ選択回路１２で選択されたバンクグループの中のバンクのうち、バンクビジーではないバンクのワード00バンクパス〜ワードnバンクパス、受信リクエストバンクパスを「１」とし、それ以外は「０」とする。つまり、バンクチェック機能の回路は、選択されたバンクグループ内のバンクのうち、バンクビジーではないバンクのパスを「１」に設定して、バンクパス情報１０としてリクエスト選択回路５に出力する。
【００３１】
次に、図５を参照して、リクエスト選択回路５について説明する。リクエスト選択回路５は、ワード00バンクパス〜ワードnバンクパス及び受信リクエストバンクパスのうち、上述したバンクチェック機能の回路で「１」の値が設定されたバンクに対するリクエスト（ワード00〜ワードn及び受信リクエスト）の中で、最も優先度の高いリクエストを選択する。そして、その出力であるワード00セレクト〜ワードnセレクト及び受信リクエストセレクトは、選択されたものだけが「１」となり、それ以外は「０」となる。つまり、「１」となった選択されたリクエストが発行されるリクエストとなり、この信号が図２に示すリクエストセレクト６として出力される。
【００３２】
そして、リクエストセレクタ２は、リクエストセレクト６で示されたリクエストをメモリ制御部に出力する。これにより、上記バンクグループ選択回路１２で選択されたバンクグループ内のビジーではないバンクに、リクエストが発行されることとなる。
【００３３】
このように、上述したバンクチェック機能とリクエスト選択回路５、さらに、リクエストセレクタ２とは、リクエストバッファ１の中から、決定したバンクグループ内のバンクにリクエストを発行するリクエスト発行部として機能する。なお、上述したリクエスト選択回路５では、最も優先度の高いリクエストを選択しているが、例えば、リクエストバッファ内の格納された順番が古いリクエストほど、優先度が高く設定されていてもよい。つまり、リクエスト選択回路５は、リクエストバッファ内のリクエストのうち、当該リクエストバッファに最も古く格納されたリクエストを、発行するリクエストとして選択してもよい。但し、優先度の設定方法は、リクエストバッファに格納された順番で設定することに限定されず、いかなる方法で優先度を設定してもよい。
【００３４】
［動作］
次に、上述した構成のメモリ制御装置の動作を、図６及び図７を参照して説明する。なお、以下では、簡単な例をあげて説明するが、比較例を例示して、バンクグループ間でバンクビジーでないバンク数に偏りがある場合でも、本発明の方法では、同一バンクグループ間の待ちがなくなることを示す。
【００３５】
図６は、比較例として、単純なラウンドロビンでバンクグループを選択した場合を示している。また、図７は、本発明の方法でバンクグループの選択を行った場合を示している。そして、時刻T0の初期状態は、図６、図７とも同じである。バンクグループ0は、バンク0だけがバンクビジーではなく、バンクグループ1は、バンク4、バンク6、バンク7の3つのバンクがバンクビジーではない。また、バンクグループ2は、バンク9だけがバンクビジーではなく、バンクグループ3は、バンク14だけがバンクビジーではない。
【００３６】
以下、説明を簡単にするため、新たにリクエストも受信しないし、新たにバンクビジーでなくなるバンクもないとする。
【００３７】
まず、図６の比較例の動作を説明する。時刻T0では、直前のリクエストがバンクグループ1であったため、バンクグループ1以外のバンクグループからリクエストを選択することとなる。つまり、バンクグループ1からリクエストを選択しないため、図６では、時刻T0におけるバンクグループ1のセルが斜線となっている。かかる状況で、時刻T0では、バンクグループ2のバンク9のリクエストが選択される。
【００３８】
続いて、時刻T1では、バンクグループ2以外のバンクグループからリクエストを選択する。ラウンドロビンでバンクグループを選択するとしているので、バンクグループ3のバンク14のリクエストが選択される。
【００３９】
続いて、時刻T2では、バンクグループ3以外のバンクグループからリクエストを選択する。ここでは、バンクグループ0のバンク0のリクエストが選択される。
【００４０】
続いて、時刻T3では、バンクグループ0以外のバンクグループからリクエストを選択する。ここでは、バンクグループ1のバンク4のリクエストが選択される。
【００４１】
続いて、時刻T4では、バンクグループ1以外のバンクグループからリクエストを選択しなければならない。しかしながら、バンクグル―プ1にしかリクエストがないので、リクエストは選択されない。
【００４２】
続いて、時刻T5では、バンクグループ1のバンク6のリクエストが選択される。
【００４３】
続いて、時刻T6では、バンクグループ1以外のバンクグループからリクエストを選択しなければならない。しかしながら、バンクグル―プ1にしかリクエストがないので、リクエストは選択されない。
【００４４】
続いて、時刻T7では、バンクグループ1のバンク7のリクエストが選択される。
【００４５】
以上のように、図６の例では、時刻T4とT6でリクエストが選択できない、という事態が生じることとなる。
【００４６】
次に、本発明の方法による動作を、図７を参照して説明する。まず、時刻T0では、直前のリクエストがバンクグループ1であったため、バンクグループ1以外のバンクグループからリクエストを選択することとなる。このとき、上述したバンクグループチェック機能回路により、バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーではないバンク数は、（1、1、1）で同数であるが、このうちバンクグループ2が選ばれ、バンク9のリクエストが選択される。
【００４７】
なお、上記のように、バンクビジーではないバンク数が同数の場合には、例えば、直前のリクエストが発行されたバンクグループの次のバンクグループを選択してもよく、あるいは、他の方法で他のバンクグループを選択してもよい。
【００４８】
続いて、時刻T1では、バンクグループ2以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ1、バンクグループ3のバンクビジーでないバンク数は、（1、3、1）となり、そのうち最大のバンク数（3）であるバンクグループ1が選ばれ、バンク4のリクエストが選択される。
【００４９】
続いて、時刻T2では、バンクグループ1以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、（1、0、1）となり、このうちバンクグループ3が選ばれ、バンク14のリクエストが選択される。
【００５０】
続いて、時刻T3では、バンクグループ3以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ1、バンクグループ2のバンクビジーでないバンク数は、（1、2、0）となり、そのうち最大のバンク数（2）であるバンクグループ1が選ばれ、バンク6のリクエストが選択される。
【００５１】
続いて、時刻T4では、バンクグループ1以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、（1、0、0）となり、そのうち最大のバンク数（1）のバンクグループ0が選択され、バンク0のリクエストが選択される。
【００５２】
続いて、時刻T5では、バンクグループ0以外のバンクグループからリクエストを選択する。バンクグループ1、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、（1、0、0）なので、そのうち最大のバンク数（1）のバンクグループ1が選ばれ、バンク7のリクエストが選択される。
【００５３】
このように、図７で説明した本発明の方法では、図６に示した選択可能なバンクグループの中から単純にラウンドロビンでバンクグループを選択する方法に比べて、2クロック早くリクエストを処理できる。つまり、図６の例では同一バンクグループのリクエストが連続するために２回分の待ちが発生するが、図７の例ではかかる2回分の待ちをなくすことができ、性能を向上を図ることができる。
【００５４】
以上のように、本発明によると、バンクビジーではないバンクの数に基づいてバンクグループを選択し、かかるバンクグループ内のバンクに対してリクエストを発行している。特に、直前に発行したリクエストが属するバンクグループとは異なるバンクグループであったり、バンクビジーではないバンク数が最も多いバンクグループを選択している。このため、同一バンクグループ間のリクエスト発行の待ちをなくすことができ、また、各バンクグループ間に偏りがあっても異なるバンクグループのリクエストを選択できるようになり、性能低下を抑制することができる。
【００５５】
＜実施形態２＞
次に、本発明の第２の実施形態を、図８を参照して説明する。図８は、実施形態２におけるメモリ制御装置の構成を示すブロック図である。なお、本実施形態におけるメモリ制御装置は、実施形態１で説明したメモリ制御装置の構成の概略を示している。
【００５６】
図８に示すように、本実施形態おけるメモリ制御装置５０は、
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置５０であって、
バンクに対するメモリリクエストを記憶するリクエストバッファ５１と、
バンクのビジー状態を管理するバンクビジー管理部５２と、
バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部５３と、
バンクグループ毎のビジーではない前記バンクの数に基づいて、メモリリクエストを発行するバンクグループを決定するバンクグループ決定部５４と、
リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行するリクエスト発行部５５と、
を備える。
【００５７】
なお、上述したバンクビジー管理部５２、バンクグループチェック部５３、バンクグループ決定部５４、リクエスト発行部５５は、メモリ制御装置５０に装備された演算装置がプログラムを実行することで、構築されてもよい。
【００５８】
上記構成のメモリ制御装置５０は、まず、バンクのビジー状態を管理すると共に、バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理する。そして、バンクグループ毎のビジーではないバンクの数に基づいて、メモリリクエストを発行するバンクグループを決定し、リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行する。
【００５９】
このように、本発明によると、バンクビジーではないバンクの数に基づいてバンクグループを選択し、かかるバンクグループ内のバンクに対して、次にリクエストを発行している。このため、リクエストを発行するバンクグループが随時選択されるため、同一バンクグループ間のリクエスト発行の待ちをなくすことができ、性能低下を抑制することができる。
【００６０】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリ制御須知、プログラム、メモリ制御方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００６１】
（付記１）
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えたメモリ制御装置。
【００６２】
（付記２）
付記１に記載のメモリ制御装置であって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【００６３】
（付記３）
付記１又は２に記載のメモリ制御装置であって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【００６４】
（付記４）
付記１乃至３のいずれかに記載のメモリ制御装置であって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【００６５】
（付記５）
付記１乃至４のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御装置。
【００６６】
（付記６）
付記１乃至５のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御装置。
【００６７】
（付記７）
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させるためのプログラム。
【００６８】
（付記７．１）
付記７に記載のプログラムであって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
【００６９】
（付記７．２）
付記７又は７．１に記載のプログラムであって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
【００７０】
（付記７．３）
付記７乃至７．２のいずれかに記載のプログラムであって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
【００７１】
（付記７．４）
付記７乃至７．３のいずれかに記載のプログラムであって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
プログラム。
【００７２】
（付記７．５）
付記７乃至７．４のいずれかに記載のプログラムであって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
プログラム。
【００７３】
（付記８）
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
メモリ制御方法。
【００７４】
（付記９）
付記８に記載のメモリ制御方法であって、
ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【００７５】
（付記１０）
付記８又は９に記載のメモリ制御方法であって、
直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【００７６】
（付記１１）
付記８乃至１０のいずれかに記載のメモリ制御方法であって、
前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【００７７】
（付記１２）
付記８乃至１１のいずれかに記載のメモリ制御方法であって、
決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御方法。
【００７８】
（付記１３）
付記８乃至１２のいずれかに記載のメモリ制御方法であって、
前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御方法。
【００７９】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００８０】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００８１】
１  リクエストバッファ
２  リクエストセレクタ
３  バンクビジーカウンタ
４  バンクグループチェック・バンクチェック回路
５  リクエスト選択回路
１１  加算器
１２  バンクグループ選択回路
５０  メモリ制御装置
５１  リクエストバッファ
５２  バンクビジー管理部
５３  バンクグループチェック部
５４  バンクグループ決定部
５５  リクエスト発行部
【図１】
2018136592.tif 000003
【図２】
2018136592.tif 000004
【図３】
2018136592.tif 000005
【図４】
2018136592.tif 000006
【図５】
2018136592.tif 000007
【図６】
2018136592.tif 000008
【図７】
2018136592.tif 000009
【図８】
2018136592.tif 000010