(58)【調査した分野】(Int.Cl.,DB名)
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
メモリ制御方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ここで、近年では、DDR4規格のSDRAMが開発されている。このDDR4では、同じIO(Input Output)バッファを共有する複数のバンクであるバンクグループという機能が導入されている。このため、異なるバンクグループに属するバンク間にはリクエストを連続して発行することができるが、同じバンクグループに属するバンク間は、同じIOバッファを使用することから、リクエストを連続して発行することができない。
【0007】
すると、上記DDR4を採用したメモリでは、上記特許文献1に開示の方式を用いたとしても、バンクグループが考慮されていないため、同一バンクグループに所属するバンクのリクエストを連続して発行してしまい、メモリ制御部で発行待ちが発生して性能低下が起こる、という問題が生じる。
【0008】
さらに、上記特許文献2の方式では、主記憶を2つのグループに分けているだけであり、一方のグループに空きがある場合にかかるグループ内のバンクにリクエストを発行しているだけである。このため、バンクグループ間の状況を考慮してリクエストを発行しているわけではなく、単に各バンクの空き状況に応じてリクエストを発行しているだけである。その結果、上記DDR4を採用したメモリでは、同一バンクグループ内のバンクのリクエストを連続して発行することとなってしまい、リクエスト発行待ちが発生して性能低下が起こる、という問題が生じる。
【0009】
このため、本発明の目的は、上述した課題である、リクエスト発行待ちが発生して性能低下が生じる、ということを解決することができるメモリ制御装置を提供することにある。
【課題を解決するための手段】
【0010】
本発明の一形態であるメモリ制御装置は、
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えた、
という構成をとる。
【0011】
また、本発明の一形態であるプログラムは、
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させる、
という構成をとる。
【0012】
また、本発明の一形態であるメモリ制御方法は、
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
という構成をとる。
【発明の効果】
【0013】
本発明は、以上のように構成されることにより、リクエスト発行待ちを抑制して性能低下を抑制することができる。
【発明を実施するための形態】
【0015】
<実施形態1>
本発明の第1の実施形態を、
図2乃至
図7を参照して説明する。
図2乃至
図5は、実施形態1におけるメモリ制御装置の構成を説明するための図である。
図6乃至
図7は、メモリ制御装置の動作を説明するための図である。
【0016】
[構成]
本発明におけるメモリ制御装置は、複数のバンクを有し、当該複数のバンクでバンクグループが形成されており、さらに、バンクグループを複数有するメモリ(主記憶)へのアクセスを制御する装置である。
【0017】
図2に示すように、本実施形態におけるメモリ制御装置は、リクエストバッファ1と、リクエストセレクタ2と、バンクビジーカウンタ3と、バンクグループチェック・バンクチェック回路4と、リクエスト選択回路5と、を備えている。なお、これらの構成は、電子回路で構成されていてもよく、あるいは、演算装置にプログラムが組み込まれることで構成されてもよい。
【0018】
上記リクエストバッファ1は、バンクに対するメモリリクエスト(以下、単に「リクエスト」とも言う)を記憶する。具体的に、リクエストバッファ1は、「ワード00」〜「ワードn」までの(n+1)個のメモリリクエストを、受信した順番で格納する。なお、メモリリクエストは、リクエストの宛先となるバンクを指定している。
【0019】
例えば、受信リクエストも含めて(n+2)個のリクエストのうち、条件がそろって発行できるリクエストが複数個ある場合には、ワード00、ワード01、ワード02、・・・、ワードn、受信リクエスト、の優先順位で、最も優先順位が高いリクエストが発行される。このとき、リクエスト選択回路5からのリクエストセレクト6に従って、リクエストセレクタ2でリクエストが選択され、メモリ制御部に発行される。ここで、「ワードi」のリクエストが選択されて発行されたとすると、「ワードi+1」〜「ワードn」が、「ワードi」〜「ワードn-1」にシフトされ、受信リクエストが「ワードn」に格納される。
【0020】
そして、メモリ制御部に発行されたリクエストの宛先となるバンクを示すバンクアドレス7が、バンクビジーカウンタ3に伝えられ、該当バンクのカウンタが初期化される。バンクビジーカウンタ3は、バンクのビジー状態を管理するバンクビジー管理部として機能する。具体的に、バンクビジーカウンタ3には、バンクごとにカウンタが備えられており、毎クロック、カウンタが減算される。カウンタの値が非ゼロの場合には、そのバンクのバンクビジー情報8が「1」となり、バンクビジーであることを示す。カウンタの値がゼロの場合には、そのバンクのバンクビジー情報8が「0」となり、バンクビジーでないことを示す。
【0021】
また、全バンクのバンクビジー情報8は、バンクグループチェック・バンクチェック回路4に送られる。バンクグループチェック・バンクチェック回路4には、リクエストバッファ1から各リクエストの宛先であるバンクアドレス9も入力される。バンクグループチェック・バンクチェック回路4では、どのリクエストが次に発行できるかを示すバンクパス情報10を作成する。バンクパス情報10は、リクエスト選択回路5に入力され、次に発行するリクエストが決定され、リクエストセレクト信号6が作られる。
【0022】
次に、
図3を参照して、バンクグループチェック・バンクチェック回路4が有するバンクグループチェック機能(バンクグループチェック部、バンクグループ決定部)に関する構成を説明する。ここでは、全バンク数を「16」としてバンク0〜バンク15があり、それぞれ、4バンクずつで各バンクグループを形成していることとする。つまり、バンク0〜バンク3がバンクグループ0、バンク4〜バンク7がバンクグループ1、バンク8〜バンク11がバンクグループ2、バンク12〜バンク15がバンクグループ3、を形成している。なお、バンク数やバンクグループ数は、この例以外でもよい。
【0023】
図3に示すバンク0ビジー〜バンク15ビジー信号は、
図2のバンクビジーカウンタ3からのバンクビジー情報8により、バンク0〜バンク15がそれぞれバンクビジーであるかどうかを示す信号である。バンクiビジー信号が「1」の場合は「バンクビジー状態」を示し、「0」の場合は「バンクビジーでない」ことを示す。ワード00バンクアドレス〜ワードnバンクアドレス信号及び受信リクエストバンクアドレス信号は、
図3のリクエストバッファ1のワード00〜ワードn内のリクエスト及び受信リクエストの宛先を示すバンクアドレス(バンク0〜バンク15)である。
【0024】
例えば、
図3に示すバンクグループチェック機能では、バンク0ビジーについて、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレスから、バンク0へのリクエストがあり、かつ、バンク0がバンクビジーでない場合には「1」の信号が、それ以外は「0」の信号が作られ、加算器11に入力される。バンク1ビジー〜バンク15ビジーについても、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレスから、バンク1〜15へのリクエストがあり、バンク1〜15がバンクビジーでない場合には「1」の信号が、それ以外は「0」の信号が作られ、加算器11に入力される。
【0025】
加算器11は、各バンクグループに対応して設けられており、上述したように入力された信号から、対応するバンクグループのビジーではないバンクの情報を合計する。従って、加算器11の出力は「0〜4」の値となる。このように、加算器11(バンクグループチェック部)は、対応するバンクグループに属するバンクのうち、ビジーではないバンクの数を管理する機能を有する。
【0026】
4個のバンクグループの各加算器11からの出力は、バンクグループ選択回路12に入力される。また、バンクグループ選択回路12には、直前に選択したリクエストの宛先となるバンクが属するバンクグループの番号も入力される。そして、バンクグループ選択回路12(バンクグループ決定部)は、直前に選択したバンクが属するバンクグループ以外のバンクグループのうち、リクエストのあるバンクビジーでないバンク数(加算器の出力)が最も大きいバンクグループを選択し、選択したバンクグループをバンクグループマスクとして出力する。
【0027】
このように、バンクグループ選択回路12は、バンクグループのうち、ビジーではないバンクの数に基づいて、リクエストを発行するバンクグループを決定している。このとき、バンクグループ選択回路12は、必ずしもビジーではないバンクの数が最も多いバンクグループを決定することに限定されない。例えば、ビジーではないバンクが少なくとも1つあるバンクグループを決定してもよい。
【0028】
また、上述した
図3に示すバンクグループチェック機能では、ワードnバンクアドレス及び受信リクエストバンクアドレスから、各バンクのビジー状態を検出しており、つまり、メモリリクエストの宛先となっているバンクのビジー状態を検出している。但し、バンクグループチェック機能は、必ずしもメモリリクエストの宛先となっているバンクのビジー状態を検出することに限定されない。これにより、バンクグループ選択回路12は、各バンクグループのバンクのビジーではない数に応じて、バンクグループを決定してもよい。
【0029】
次に、
図4を参照して、バンクグループチェック・バンクチェック回路4のバンクチェック機能に関する構成を説明する。バンクチェック機能の回路は、バンク0ビジー〜バンク15ビジーと、ワード00バンクアドレス〜ワードnバンクアドレス及び受信リクエストバンクアドレス(バンクアドレス9)と、バンクグループマスクとから、ワード00バンクパス〜ワードnバンクパス及び受信リクエストバンクパスを生成する。
【0030】
具体的に、バンクチェック機能の回路は、バンクグループマスクで示された上記バンクグループ選択回路12で選択されたバンクグループの中のバンクのうち、バンクビジーではないバンクのワード00バンクパス〜ワードnバンクパス、受信リクエストバンクパスを「1」とし、それ以外は「0」とする。つまり、バンクチェック機能の回路は、選択されたバンクグループ内のバンクのうち、バンクビジーではないバンクのパスを「1」に設定して、バンクパス情報10としてリクエスト選択回路5に出力する。
【0031】
次に、
図5を参照して、リクエスト選択回路5について説明する。リクエスト選択回路5は、ワード00バンクパス〜ワードnバンクパス及び受信リクエストバンクパスのうち、上述したバンクチェック機能の回路で「1」の値が設定されたバンクに対するリクエスト(ワード00〜ワードn及び受信リクエスト)の中で、最も優先度の高いリクエストを選択する。そして、その出力であるワード00セレクト〜ワードnセレクト及び受信リクエストセレクトは、選択されたものだけが「1」となり、それ以外は「0」となる。つまり、「1」となった選択されたリクエストが発行されるリクエストとなり、この信号が
図2に示すリクエストセレクト6として出力される。
【0032】
そして、リクエストセレクタ2は、リクエストセレクト6で示されたリクエストをメモリ制御部に出力する。これにより、上記バンクグループ選択回路12で選択されたバンクグループ内のビジーではないバンクに、リクエストが発行されることとなる。
【0033】
このように、上述したバンクチェック機能とリクエスト選択回路5、さらに、リクエストセレクタ2とは、リクエストバッファ1の中から、決定したバンクグループ内のバンクにリクエストを発行するリクエスト発行部として機能する。なお、上述したリクエスト選択回路5では、最も優先度の高いリクエストを選択しているが、例えば、リクエストバッファ内の格納された順番が古いリクエストほど、優先度が高く設定されていてもよい。つまり、リクエスト選択回路5は、リクエストバッファ内のリクエストのうち、当該リクエストバッファに最も古く格納されたリクエストを、発行するリクエストとして選択してもよい。但し、優先度の設定方法は、リクエストバッファに格納された順番で設定することに限定されず、いかなる方法で優先度を設定してもよい。
【0034】
[動作]
次に、上述した構成のメモリ制御装置の動作を、
図6及び
図7を参照して説明する。なお、以下では、簡単な例をあげて説明するが、比較例を例示して、バンクグループ間でバンクビジーでないバンク数に偏りがある場合でも、本発明の方法では、同一バンクグループ間の待ちがなくなることを示す。
【0035】
図6は、比較例として、単純なラウンドロビンでバンクグループを選択した場合を示している。また、
図7は、本発明の方法でバンクグループの選択を行った場合を示している。そして、時刻T0の初期状態は、
図6、
図7とも同じである。バンクグループ0は、バンク0だけがバンクビジーではなく、バンクグループ1は、バンク4、バンク6、バンク7の3つのバンクがバンクビジーではない。また、バンクグループ2は、バンク9だけがバンクビジーではなく、バンクグループ3は、バンク14だけがバンクビジーではない。
【0036】
以下、説明を簡単にするため、新たにリクエストも受信しないし、新たにバンクビジーでなくなるバンクもないとする。
【0037】
まず、
図6の比較例の動作を説明する。時刻T0では、直前のリクエストがバンクグループ1であったため、バンクグループ1以外のバンクグループからリクエストを選択することとなる。つまり、バンクグループ1からリクエストを選択しないため、
図6では、時刻T0におけるバンクグループ1のセルが斜線となっている。かかる状況で、時刻T0では、バンクグループ2のバンク9のリクエストが選択される。
【0038】
続いて、時刻T1では、バンクグループ2以外のバンクグループからリクエストを選択する。ラウンドロビンでバンクグループを選択するとしているので、バンクグループ3のバンク14のリクエストが選択される。
【0039】
続いて、時刻T2では、バンクグループ3以外のバンクグループからリクエストを選択する。ここでは、バンクグループ0のバンク0のリクエストが選択される。
【0040】
続いて、時刻T3では、バンクグループ0以外のバンクグループからリクエストを選択する。ここでは、バンクグループ1のバンク4のリクエストが選択される。
【0041】
続いて、時刻T4では、バンクグループ1以外のバンクグループからリクエストを選択しなければならない。しかしながら、バンクグル―プ1にしかリクエストがないので、リクエストは選択されない。
【0042】
続いて、時刻T5では、バンクグループ1のバンク6のリクエストが選択される。
【0043】
続いて、時刻T6では、バンクグループ1以外のバンクグループからリクエストを選択しなければならない。しかしながら、バンクグル―プ1にしかリクエストがないので、リクエストは選択されない。
【0044】
続いて、時刻T7では、バンクグループ1のバンク7のリクエストが選択される。
【0045】
以上のように、
図6の例では、時刻T4とT6でリクエストが選択できない、という事態が生じることとなる。
【0046】
次に、本発明の方法による動作を、
図7を参照して説明する。まず、時刻T0では、直前のリクエストがバンクグループ1であったため、バンクグループ1以外のバンクグループからリクエストを選択することとなる。このとき、上述したバンクグループチェック機能回路により、バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーではないバンク数は、(1、1、1)で同数であるが、このうちバンクグループ2が選ばれ、バンク9のリクエストが選択される。
【0047】
なお、上記のように、バンクビジーではないバンク数が同数の場合には、例えば、直前のリクエストが発行されたバンクグループの次のバンクグループを選択してもよく、あるいは、他の方法で他のバンクグループを選択してもよい。
【0048】
続いて、時刻T1では、バンクグループ2以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ1、バンクグループ3のバンクビジーでないバンク数は、(1、3、1)となり、そのうち最大のバンク数(3)であるバンクグループ1が選ばれ、バンク4のリクエストが選択される。
【0049】
続いて、時刻T2では、バンクグループ1以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、(1、0、1)となり、このうちバンクグループ3が選ばれ、バンク14のリクエストが選択される。
【0050】
続いて、時刻T3では、バンクグループ3以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ1、バンクグループ2のバンクビジーでないバンク数は、(1、2、0)となり、そのうち最大のバンク数(2)であるバンクグループ1が選ばれ、バンク6のリクエストが選択される。
【0051】
続いて、時刻T4では、バンクグループ1以外のバンクグループからリクエストを選択する。バンクグループ0、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、(1、0、0)となり、そのうち最大のバンク数(1)のバンクグループ0が選択され、バンク0のリクエストが選択される。
【0052】
続いて、時刻T5では、バンクグループ0以外のバンクグループからリクエストを選択する。バンクグループ1、バンクグループ2、バンクグループ3のバンクビジーでないバンク数は、(1、0、0)なので、そのうち最大のバンク数(1)のバンクグループ1が選ばれ、バンク7のリクエストが選択される。
【0053】
このように、
図7で説明した本発明の方法では、
図6に示した選択可能なバンクグループの中から単純にラウンドロビンでバンクグループを選択する方法に比べて、2クロック早くリクエストを処理できる。つまり、
図6の例では同一バンクグループのリクエストが連続するために2回分の待ちが発生するが、
図7の例ではかかる2回分の待ちをなくすことができ、性能を向上を図ることができる。
【0054】
以上のように、本発明によると、バンクビジーではないバンクの数に基づいてバンクグループを選択し、かかるバンクグループ内のバンクに対してリクエストを発行している。特に、直前に発行したリクエストが属するバンクグループとは異なるバンクグループであったり、バンクビジーではないバンク数が最も多いバンクグループを選択している。このため、同一バンクグループ間のリクエスト発行の待ちをなくすことができ、また、各バンクグループ間に偏りがあっても異なるバンクグループのリクエストを選択できるようになり、性能低下を抑制することができる。
【0055】
<実施形態2>
次に、本発明の第2の実施形態を、
図8を参照して説明する。
図8は、実施形態2におけるメモリ制御装置の構成を示すブロック図である。なお、本実施形態におけるメモリ制御装置は、実施形態1で説明したメモリ制御装置の構成の概略を示している。
【0056】
図8に示すように、本実施形態おけるメモリ制御装置50は、
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置50であって、
バンクに対するメモリリクエストを記憶するリクエストバッファ51と、
バンクのビジー状態を管理するバンクビジー管理部52と、
バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部53と、
バンクグループ毎のビジーではない前記バンクの数に基づいて、メモリリクエストを発行するバンクグループを決定するバンクグループ決定部54と、
リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行するリクエスト発行部55と、
を備える。
【0057】
なお、上述したバンクビジー管理部52、バンクグループチェック部53、バンクグループ決定部54、リクエスト発行部55は、メモリ制御装置50に装備された演算装置がプログラムを実行することで、構築されてもよい。
【0058】
上記構成のメモリ制御装置50は、まず、バンクのビジー状態を管理すると共に、バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理する。そして、バンクグループ毎のビジーではないバンクの数に基づいて、メモリリクエストを発行するバンクグループを決定し、リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行する。
【0059】
このように、本発明によると、バンクビジーではないバンクの数に基づいてバンクグループを選択し、かかるバンクグループ内のバンクに対して、次にリクエストを発行している。このため、リクエストを発行するバンクグループが随時選択されるため、同一バンクグループ間のリクエスト発行の待ちをなくすことができ、性能低下を抑制することができる。
【0060】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるメモリ制御須知、プログラム、メモリ制御方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【0061】
(付記1)
複数のバンクからなるバンクグループを複数有するメモリを制御するメモリ制御装置であって、
前記バンクに対するメモリリクエストを記憶するリクエストバッファと、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を備えたメモリ制御装置。
【0062】
(付記2)
付記1に記載のメモリ制御装置であって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【0063】
(付記3)
付記1又は2に記載のメモリ制御装置であって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【0064】
(付記4)
付記1乃至3のいずれかに記載のメモリ制御装置であって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御装置。
【0065】
(付記5)
付記1乃至4のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御装置。
【0066】
(付記6)
付記1乃至5のいずれかに記載のメモリ制御装置であって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御装置。
【0067】
(付記7)
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置に、
前記バンクのビジー状態を管理するバンクビジー管理部と、
前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行するリクエスト発行部と、
を実現させるためのプログラム。
【0068】
(付記7.1)
付記7に記載のプログラムであって、
前記バンクグループ決定部は、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
【0069】
(付記7.2)
付記7又は7.1に記載のプログラムであって、
前記バンクグループ決定部は、前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
【0070】
(付記7.3)
付記7乃至7.2のいずれかに記載のプログラムであって、
前記バンクグループ決定部は、直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
プログラム。
【0071】
(付記7.4)
付記7乃至7.3のいずれかに記載のプログラムであって、
前記リクエスト発行部は、決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
プログラム。
【0072】
(付記7.5)
付記7乃至7.4のいずれかに記載のプログラムであって、
前記リクエスト発行部は、前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
プログラム。
【0073】
(付記8)
複数のバンクからなるバンクグループを複数有すると共に、前記バンクに対するメモリリクエストを記憶するリクエストバッファを備えたメモリ制御装置によるメモリ制御方法であって、
前記バンクのビジー状態を管理すると共に、前記バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理し、
前記バンクグループ毎のビジーではない前記バンクの数に基づいて、前記メモリリクエストを発行する前記バンクグループを決定し、
前記リクエストバッファの中から、決定した前記バンクグループ内の前記バンクに前記メモリリクエストを発行する、
メモリ制御方法。
【0074】
(付記9)
付記8に記載のメモリ制御方法であって、
ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【0075】
(付記10)
付記8又は9に記載のメモリ制御方法であって、
直前に前記メモリリクエストを発行した前記バンクグループとは異なる当該バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【0076】
(付記11)
付記8乃至10のいずれかに記載のメモリ制御方法であって、
前記メモリリクエストの宛先となっている前記バンクのうち、ビジーではない前記バンクの数が最も多い前記バンクグループを、前記メモリリクエストを発行する前記バンクグループとして決定する、
メモリ制御方法。
【0077】
(付記12)
付記8乃至11のいずれかに記載のメモリ制御方法であって、
決定した前記バンクグループ内のビジーではない前記バンクに、前記リクエストバッファ内の前記メモリリクエストを発行する、
メモリ制御方法。
【0078】
(付記13)
付記8乃至12のいずれかに記載のメモリ制御方法であって、
前記リクエストバッファ内の前記メモリリクエストのうち、当該リクエストバッファにもっとも古く格納された前記メモリリクエストを発行する、
メモリ制御方法。
【0079】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【0080】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【解決手段】本発明であるメモリ制御装置は、複数のバンクからなるバンクグループを複数有するメモリを制御し、バンクに対するメモリリクエストを記憶するリクエストバッファと、バンクのビジー状態を管理するバンクビジー管理部と、バンクグループ毎に、当該バンクグループに属する前記バンクのうち、ビジーではない当該バンクの数を管理するバンクグループチェック部と、バンクグループ毎のビジーではないバンクの数に基づいて、メモリリクエストを発行する前記バンクグループを決定するバンクグループ決定部と、リクエストバッファの中から、決定したバンクグループ内のバンクにメモリリクエストを発行するリクエスト発行部と、を備える。