(57)【特許請求の範囲】
【請求項１】
複数メモリチャネルそれぞれに接続される単位メモリに対するアクセスに対し、インタリーブ数が常に２の乗数になるインタリーブ制御を実施する回路を有し、
前記回路は、前記単位メモリの総数がＹであると、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１」個の前記単位メモリをＷＡＹ数Ｚ１でインタリーブし、「Ｙ−Ｚ１」個のうち、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ２」個の前記単位メモリを、ＷＡＹ数Ｚ２でインタリーブし、・・・、残りの「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚｉ」個の前記単位メモリをＷＡＹ数Ｚｉでインタリーブし、
前記回路は、「ＷＡＹ数Ｚ１、Ｚ２、・・・、Ｚｉのいずれかと、同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリのアドレスからの底上げ分である下限アドレス底上げセグメント数との対」であるセグメント情報を保持するセグメント情報保持回路と、
「同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリの上限アドレス＋セグメント情報の前記単位メモリの下限アドレス底上げセグメント数＝下限アドレス」を保持する下限アドレス回路と、「前記単位メモリの下限アドレス＋セグメント情報の前記単位メモリのＷＡＹ数＝上限アドレス」を保持する上限アドレス回路と、
下限アドレス≦アクセスアドレス＜上限アドレスであると、ヒット信号を出力し、アクセスアドレスに対しヒット信号の数のＷＡＹ数のインタリーブを行うアドレス変換回路と、を含む、
ことを特徴とする情報処理装置。
【請求項２】
前記セグメント情報保持回路を備え、アクセスアドレスを出力するデータ処理装置と、アクセスアドレスを入力し、前記下限アドレス回路、前記上限アドレス回路、および、前記アドレス変換回路を備えるメモリコントローラと、を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記メモリコントローラに接続され、前記単位メモリを備えるメモリ装置を有することを特徴とする請求項２記載の情報処理装置。
【請求項４】
アクセスアドレスを出力するデータ処理装置と、前記下限アドレス回路、前記上限アドレス回路、および、前記アドレス変換回路を備えるメモリコントローラと、を有することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記メモリコントローラに接続され、前記単位メモリを備えるメモリ装置を有することを特徴とする請求項４記載の情報処理装置。
【請求項６】
複数メモリチャネルそれぞれに接続される単位メモリに対するアクセスに対しインタリーブ数が常に２の乗数になるインタリーブ制御を実施し、
前記インターリーブ制御は、前記単位メモリの総数がＹであると、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１」個の前記単位メモリをＷＡＹ数Ｚ１でインタリーブし、「Ｙ−Ｚ１」個のうち、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ２」個の前記単位メモリを、ＷＡＹ数Ｚ２でインタリーブし、・・・、残りの「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚｉ」個の前記単位メモリをＷＡＹ数Ｚｉでインタリーブし、
前記インターリーブ制御は、「ＷＡＹ数Ｚ１、Ｚ２、・・・Ｚｉのいずれかと、同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリのアドレスからの底上げ分である下限アドレス底上げセグメント数との対」であるセグメント情報を保持し、
「同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリの上限アドレス＋セグメント情報の前記単位メモリの下限アドレス底上げセグメント数＝下限アドレス」を保持し、「前記単位メモリの下限アドレス＋セグメント情報の前記単位メモリのＷＡＹ数＝上限アドレス」を保持し、
下限アドレス≦アクセスアドレス＜上限アドレスであると、ヒット信号を出力し、アクセスアドレスに対しヒット信号の数のＷＡＹ数のインタリーブを行う、
ことを特徴とする情報処理方法。
【請求項７】
複数メモリチャネルそれぞれに接続される単位メモリに対するアクセスに対しインタリーブ数が常に２の乗数になるインタリーブ制御を情報処理装置に実施させ、
前記インタリーブ制御は、前記情報処理装置に、前記単位メモリの総数がＹであると、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１」個の前記単位メモリをＷＡＹ数Ｚ１でインタリーブし、「Ｙ−Ｚ１」個のうち、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ２」個の前記単位メモリを、ＷＡＹ数Ｚ２でインタリーブし、・・・、残りの「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚｉ」個の前記単位メモリをＷＡＹ数Ｚｉでインタリーブし、
前記インタリーブ制御は、「ＷＡＹ数Ｚ１、Ｚ２、・・・Ｚｉのいずれかと、同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリのアドレスからの底上げ分である下限アドレス底上げセグメント数との対」であるセグメント情報を保持し、
「同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリの上限アドレス＋セグメント情報の前記単位メモリの下限アドレス底上げセグメント数＝下限アドレス」を保持し、「前記単位メモリの下限アドレス＋セグメント情報の前記単位メモリのＷＡＹ数＝上限アドレス」を保持し、
下限アドレス≦アクセスアドレス＜上限アドレスであると、ヒット信号を出力し、アクセスアドレスに対しヒット信号の数のＷＡＹ数のインタリーブを行う、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、および、プログラムに関し、特に、メモリ構成に依存しないインタリーブを実施する情報処理装置、情報処理方法、および、プログラムに関する。
【背景技術】
【０００２】
従来、記憶装置のインタリーブ制御において常にインタリーブ数が常に２の乗数であることを実現するため、メモリチャネル配下のメモリの増設およびメモリ縮退に関して、インタリーブ数が２の乗数である条件を満たすメモリ数の単位で増設または縮退しなければならない制約があった。
【０００３】
また、２の乗数以外のインタリーブ数（３、５、６、７〜）をハードウエアで実現した場合、複雑なアドレス変換回路の追加が必要である。
【０００４】
特許文献１記載の従来技術は、異なるインタリーブグループを設定し、バンクを構成するサブバンク単位のメモリをインタリーブするものである。
【０００５】
【特許文献１】特開平１０−３０１８４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１記載の技術の問題点は、バンク内のサブバンクの数によっては、インタリーブが実施できないことである。
【０００７】
その理由は、特許文献１の図５バンク％４に、インタリーブグループ＃１のサブバンクが存在すると、インタリーブグループ＃１は、５ＷＡＹとなるからである。特許文献１の技術には、この場合の解決策が示されていない。
【０００８】
本発明の目的は、全メモリに対するアクセスのインタリーブ数を２の乗数にすることで、メモリチャネル（バンク）配下に実装されるメモリ構成に依存しないインタリーブを実施する情報処理装置、情報処理方法、および、プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の情報処理装置は、複数メモリチャネルを備え、前記メモリチャネルに接続される単位メモリをインタリーブ制御する情報処理装置であって、前記メモリチャネルに接続される単位メモリに対するアクセスに対しインタリーブ数が常に２の乗数になるインタリーブ制御を実施する回路を有する。
【００１０】
本発明の第２の情報処理装置は、前記第１の情報処理装置であって、前記単位メモリの総数がＹであると、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１」個の前記単位メモリをＷＡＹ数Ｚ１でインタリーブし、「Ｙ−Ｚ１」個のうち、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ２」個の前記単位メモリを、ＷＡＹ数Ｚ２でインタリーブし、・・・、残りの「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚｉ」個の前記単位メモリをＷＡＹ数Ｚｉでインタリーブする回路を有する。
【００１１】
本発明の第３の情報処理装置は、前記第２の情報処理装置であって、「ＷＡＹ数Ｚ１、Ｚ２、・・・、Ｚｉのいずれかと、同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリのアドレスからの底上げ分である下限アドレス底上げセグメント数との対」であるセグメント情報を保持するセグメント情報保持回路と、「同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリの上限アドレス＋セグメント情報の前記単位メモリの下限アドレス底上げセグメント数＝下限アドレス」を保持する下限アドレス回路と、「前記単位メモリの下限アドレス＋セグメント情報の前記単位メモリのＷＡＹ数＝上限アドレス」を保持する上限アドレス回路と、下限アドレス≦アクセスアドレス＜上限アドレスであると、ヒット信号を出力し、アクセスアドレスに対しヒット信号の数のＷＡＹ数のインタリーブを行うアドレス変換回路と、を有する。
【００１２】
本発明の第４の情報処理装置は、前記第３の情報処理装置であって、前記セグメント情報保持回路を備え、アクセスアドレスを出力するデータ処理装置と、アクセスアドレスを入力し、前記下限アドレス回路、前記上限アドレス回路、および、前記アドレス変換回路を備えるメモリコントローラと、を有する。
【００１３】
本発明の第５の情報処理装置は、前記第４の情報処理装置であって、前記メモリコントローラに接続され、前記単位メモリを備えるメモリ装置を有する。
【００１４】
本発明の第６の情報処理装置は、前記第３の情報処理装置であって、アクセスアドレスを出力するデータ処理装置と、前記下限アドレス回路、前記上限アドレス回路、および、前記アドレス変換回路を備えるメモリコントローラと、を有する。
【００１５】
本発明の第７の情報処理装置は、前記第６の情報処理装置であって、前記メモリコントローラに接続され、前記単位メモリを備えるメモリ装置を有する。
【００１６】
本発明の第１の情報処理方法は、複数メモリチャネルを備え、前記メモリチャネルに接続される単位メモリをインタリーブ制御する情報処理方法であって、前記メモリチャネルに接続される単位メモリに対するアクセスに対しインタリーブ数が常に２の乗数になるインタリーブ制御を実施する。
【００１７】
本発明の第２の情報処理方法は、前記第１の情報処理方法であって、前記単位メモリの総数がＹであると、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１」個の前記単位メモリをＷＡＹ数Ｚ１でインタリーブし、「Ｙ−Ｚ１」個のうち、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ２」個の前記単位メモリを、ＷＡＹ数Ｚ２でインタリーブし、・・・、残りの「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚｉ」個の前記単位メモリをＷＡＹ数Ｚｉでインタリーブする。
【００１８】
本発明の第３の情報処理方法は、前記第２の情報処理方法であって、「ＷＡＹ数Ｚ１、Ｚ２、・・・Ｚｉのいずれかと、同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリのアドレスからの底上げ分である下限アドレス底上げセグメント数との対」であるセグメント情報を保持し、「同一の前記メモリチャネル内の先にインタリーブが決定された前記単位メモリの上限アドレス＋セグメント情報の前記単位メモリの下限アドレス底上げセグメント数＝下限アドレス」を保持し、「前記単位メモリの下限アドレス＋セグメント情報の前記単位メモリのＷＡＹ数＝上限アドレス」を保持し、下限アドレス≦アクセスアドレス＜上限アドレスであると、ヒット信号を出力し、アクセスアドレスに対しヒット信号の数のＷＡＹ数のインタリーブを行う。
【００１９】
本発明の第１のプログラムは、情報処理装置に、複数メモリチャネルを備え、前記メモリチャネルに接続される単位メモリをインタリーブ制御するプログラムであって、前記メモリチャネルに接続される単位メモリに対するアクセスに対しインタリーブ数が常に２の乗数になるインタリーブ制御を実施させる。
【００２０】
本発明の第２のプログラムは、前記第１のプログラムであって、前記情報処理装置に、前記単位メモリの総数がＹであると、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１」個の前記単位メモリをＷＡＹ数Ｚ１でインタリーブし、「Ｙ−Ｚ１」個のうち、「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ２」個の前記単位メモリを、ＷＡＹ数Ｚ２でインタリーブし、・・・、残りの「２の乗数である最大ＷＡＹ数Ｘを超えない最大の２の乗数のＷＡＹ数Ｚｉ」個の前記単位メモリをＷＡＹ数Ｚｉでインタリーブする制御を実施させる。
【発明の効果】
【００２１】
本発明の効果は、メモリチャネル配下に実装されるメモリ構成に依存せず、全メモリに対するアクセスが簡素に実現できることである。
【００２２】
その理由は、メモリチャネルに接続される単位メモリに対するアクセスに対しインタリーブ数が常に２の乗数になるインタリーブ制御を実施するからである。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明を実施するための最良の形態の構成を示すブロック図である。
【００２４】
図１を参照すると、本発明の情報処理装置は、データ処理装置Ｌ１（たとえば、ＣＰＵ等）と、メモリコントローラＬ２と、メモリ装置Ｌ３とを含む。メモリ装置Ｌ３は、メモリチャネルＣＨ１〜ＣＨ８を含む。メモリチャネルＣＨ１〜ＣＨ８は、それぞれ、《第１単位記憶回路Ｍ１０、第２単位記憶回路Ｍ１１》〜《第１単位記憶回路Ｍ７０、第２単位記憶回路Ｍ７１》、《第１単位記憶回路Ｍ８０》（たとえば、メモリ）を含む。
【００２５】
単位記憶回路の総数Ｙは、２の乗数である最大ＷＡＹ数Ｘ（ここでは、８）×２を超えない。総数Ｙは、図１の数に限定されない。最大ＷＡＹ数Ｘは、事前に設定される。
【００２６】
Ｘを超えない最大の２の乗数のＷＡＹ数Ｚ１（ここでは、８）を定義し、順次、メモリチャネルＣＨ１〜ＣＨ８に単位記憶回路を１つずつ第１単位記憶回路Ｍ１０〜Ｍ８０として単位記憶回路を割り当てる。残りの単位記憶回路を、第２単位記憶回路Ｍ１１〜Ｍ７１としてメモリチャネルＣＨ１〜ＣＨ７に割り当てる。
【００２７】
第１単位記憶回路Ｍ１０〜Ｍ８０をＷＡＹ数Ｚ１（＝８）でインタリーブし、残りの単位記憶回路があるので、残りの《Ｙ（＝１５）−Ｚ１（＝８）》＝７個の内の４個の第２単位記憶回路Ｍ１１〜Ｍ４１を、Ｘを超えない最大の２の乗数であるＷＡＹ数Ｚ２（＝４）でインタリーブし、・・・、Ｚｉ（最後）で、順次、残りの単位記憶回路を２の乗数でインタリーブする。ここで、第１単位記憶回路Ｍ１０〜Ｍ８０は、第２単位記憶回路Ｍ１１〜Ｍ４１にとって、《先にインタリーブが決定された》単位記憶回路である。
【００２８】
また、メモリチャネルＣＨ１〜ＣＨ８の第１単位記憶回路Ｍ１０〜第２単位記憶回路Ｍ８１（第１単位記憶回路Ｍ８０、第２単位記憶回路Ｍ８１は、ダミー）ごとに、ＷＡＹ数Ｚ１、Ｚ２、・・・のいずれかと、下限アドレス底上げセグメント数との対を含むセグメント情報を格納するセグメント情報保持回路ＳＧ１をメモリチャネルごとにデータ処理装置Ｌ１、または、メモリコントローラＬ２に保持する。
【００２９】
ここで、下限アドレス底上げセグメント数は、第２単位記憶回路Ｍ１１〜Ｍ８１に対しては、第１単位記憶回路Ｍ１０〜Ｍ８０からの底上げ分である。たとえば、ＷＡＹ数Ｚ１、Ｚ２、Ｚ３、Ｚ４が割り当てられた場合、あるメモリチャネルの第１単位記憶回路が、ＷＡＹ数Ｚ１で、インタリーブされ、第２単位記憶回路が、ＷＡＹ数Ｚ２でインタリーブされる場合に、「《先にインタリーブが決定された》インタリーブ数の合計値×単位メモリ容量」を第２単位記憶回路に対する下限アドレス底上げセグメント数とすることが有効である。
【００３０】
正確には、メモリチャネルＣＨｋの第ｎ単位メモリの下限アドレス底上げセグメント数は、同一メモリチャネルＣＨｋで、かつ同一第ｎ単位メモリで＜先にインタリーブされている＞と、残りのメモリチャネルＣＨｋで第ｎ単位メモリの底上げセグメント数＝「同一第ｎ単位メモリで先にインタリーブされたＷＡＹ数の総和」×単位メモリ容量とすることが有効である。
【００３１】
たとえば、Ｘ＝８であり、単位記憶回路が１５個あると、メモリチャネルを《２の２乗＝４》とし、メモリチャネルＣＨ１〜メモリチャネルＣＨ８に、まず、８個の単位記憶回路を第１単位記憶回路としてそれぞれ割り当て、次に、残りの１５−８＝７個の単位記憶回路を第１〜第７メモリに第２単位記憶回路として割り当てる。そして、メモリチャネルＣＨ１〜メモリチャネルＣＨ８の第１単位記憶回路を８ＷＡＹでインタリーブする。次に、メモリチャネルＣＨ１〜メモリチャネルＣＨ４の第２単位記憶回路を４ＷＡＹでインタリーブする。次に、メモリチャネルＣＨ５〜メモリチャネルＣＨ６の第２単位記憶回路を２ＷＡＹでインタリーブする。次に、メモリチャネルＣＨ７の第２単位記憶回路を１ＷＡＹとする。
【００３２】
また、たとえば、メモリチャネルＣＨ１〜メモリチャネルＣＨ４のセグメント情報は、第１単位記憶回路Ｍ１０〜Ｍ４０の《ＷＡＹ数＝８、下限アドレス底上げセグメント数＝０》と、第２単位記憶回路Ｍ１１〜Ｍ４１の《ＷＡＹ数＝４、下限アドレス底上げセグメント数＝０》とである。メモリチャネルＣＨ５〜メモリチャネルＣＨ６のセグメント情報は、第１単位記憶回路Ｍ５０〜Ｍ６０の《ＷＡＹ数＝８、下限アドレス底上げセグメント数＝０》と、第２単位記憶回路Ｍ５１〜Ｍ６１の《ＷＡＹ数＝２、下限アドレス底上げセグメント数＝４》とである。ここで、下限アドレス底上げセグメント数４は、「《先にインタリーブが決定された》インタリーブ数の合計値×単位メモリ容量」＝４である。メモリチャネルＣＨ７のセグメント情報は、第１単位記憶回路Ｍ７０の《ＷＡＹ数＝８、下限アドレス底上げセグメント数＝０》と、第２単位記憶回路Ｍ７１の《ＷＡＹ数＝１、下限アドレス底上げセグメント数＝６》とである。ここで、下限アドレス底上げセグメント数６は、「《先にインタリーブが決定された》インタリーブ数の合計値×単位メモリ容量」＝４＋２＝６である。メモリチャネルＣＨ８のセグメント情報は、第１単位記憶回路Ｍ８０の《ＷＡＹ数＝８、下限アドレス底上げセグメント数＝０》と、第２単位記憶回路Ｍ８１の《ＷＡＹ数＝０、下限アドレス底上げセグメント数＝０》とである。
【００３３】
また、セグメント情報に基づいて、次のように定義する。第１単位記憶回路の下限アドレス＝第１単位記憶回路の下限アドレス底上げセグメント数。第１単位記憶回路の上限アドレス＝第１単位記憶回路の下限アドレス＋第１単位記憶回路のＷＡＹ数。第２単位記憶回路の下限アドレス＝第１単位記憶回路の上限アドレス＋第２単位記憶回路の下限アドレス底上げセグメント数。第２単位記憶回路の上限アドレス＝第２単位記憶回路の下限アドレス＋第２単位記憶回路のＷＡＹ数。ここで、第１単位記憶回路の下限アドレスにベースアドレスを加算することも可能である。
【００３４】
メモリをアクセスするメモリアドレスの所定の部分Ａ（最大ＷＡＹ数×２を表現するビット数以下）に対し、第１単位記憶回路の下限アドレス≦Ａ＜第１単位記憶回路の上限アドレス、第２単位記憶回路の下限アドレス≦Ａ＜第２単位記憶回路の上限アドレスを計算し、どちらかが成立する場合にヒットすると定義する。全てのメモリチャネルに対してヒットを調べる。ヒットが１つであれば、１ＷＡＹと見なす。ヒットが２つであれば、２ＷＡＹと見なす。ヒットが４つであれば、４ＷＡＹと見なす。ヒットが８つであれば、８ＷＡＹと見なす。・・・。次に、メモリアドレスの他の所定の部分Ｂに基づいて、メモリチャネルを選択し、メモリにアクセスを行う。
【００３５】
セグメント情報を格納するセグメント情報保持回路ＳＧ１、《第１単位記憶回路の下限アドレス、第１単位記憶回路の上限アドレス、第２単位記憶回路の下限アドレス、および、第２単位記憶回路の上限アドレスを保持する上限下限アドレス回路ＵＬＡ１は、メモリコントローラＬ２に設けることが可能である（図１（ａ））。また、セグメント情報保持回路ＳＧ１は、データ処理装置Ｌ１に設け、上限下限アドレス回路ＵＬＡ１は、メモリコントローラＬ２に設けることが可能である（図１（ｂ））。この場合、データ処理装置Ｌ１が、計算を実施し、メモリコントローラＬ２内の上限下限アドレス回路ＵＬＡ１に値を設定する。
【００３６】
以上は、単位記憶回路の総数Ｙが、２の乗数である最大ＷＡＹ数Ｘ×２を超えない場合について説明したが、単位記憶回路の総数Ｙ＞２の乗数である最大ＷＡＹ数Ｘ×２の場合にも本発明が適用可能である。この場合、Ｙ／Ｘの商（整数）の個数の単位記憶回路を最大ＷＡＹ数Ｘでインタリーブする。残りの、《Ｙ−Ｙ／Ｘの商（整数）》個の単位記憶回路を、第ｎ単位記憶回路、第ｎ＋１単位記憶回路のように構成する。第ｎ単位記憶回路、第ｎ＋１単位記憶回路をそれぞれ上述した第１単位記憶回路、第２単位記憶回路とみなしインタリーブする。
【００３７】
本発明の第１の効果は、メモリチャネル配下に実装されるメモリ構成に依存せず、全メモリに対するアクセスがインタリーブ数２の乗数で実現でき、簡素で高速なメモリコントローラＬ２を提供できることである。
【００３８】
第２の効果は、メモリコントローラＬ２配下に実装されるメモリの増設および縮退時のメモリ数に制限がなくなることである。すなわち、任意の数の単位でメモリ増設が可能となり、さらに、最小限のメモリ単位でメモリ縮退可能となる。
【００３９】
その理由は、メモリチャネル配下の各メモリに割り付けられたアドレス空間情報、具体的には下限アドレスと上限アドレスの情報を保持する回路を有し、かつ、このアドレス空間が任意に可変設定可能とするためである。
【００４０】
次に、本発明の実施例について図面を参照して詳細に説明する。
【００４１】
以下、第１単位記憶回路、第２単位記憶回路を、単位メモリと記述する。
【００４２】
図２は、本発明の第１、第２、第３、第４の実施例のメモリコントローラのアドレス変換回路の構成を示すブロック図である。図３、図４、図５は、図２のアドレス変換回路の動作を示すための説明図である。
【００４３】
図６は、本発明の第１の実施例の構成を示すブロック図である。図７、図８、図９は、本発明の第１の実施例の動作を示すための説明図である。
【００４４】
図１０は、本発明の第２の実施例の構成を示すブロック図である。図１１、図１２、図１３は、本発明の第２の実施例の動作を示すための説明図である。
【００４５】
図１４は、本発明の第３の実施例の構成を示すブロック図である。図１５、図１６、図１７は、本発明の第３の実施例の動作を示すための説明図である。
【００４６】
図１８は、本発明の第４の実施例の構成を示すブロック図である。図１９、図２０、図２１は、本発明の第４の実施例の動作を示すための説明図である。
【００４７】
第１〜第４の実施例において、差分は、実装される単位メモリ数のみであるため、ここでは、第１の実施例の図６について説明する。
【００４８】
図６を参照すると、本発明の第１の実施例は、メモリコントローラ９０１と、メモリチャネルＣＨ１〜ＣＨ８と、メモリチャネルＣＨ１に接続される単位メモリｍ１０、単位メモリｍ１１と、メモリチャネルＣＨ２に接続される単位メモリｍ２０、単位メモリｍ２１と、メモリチャネルＣＨ３に接続される単位メモリｍ３０、単位メモリｍ３１と、メモリチャネルＣＨ４に接続される単位メモリｍ４０、ｍ４１と、メモリチャネルＣＨ５に接続される単位メモリｍ５０、単位メモリｍ５１と、メモリチャネルＣＨ６に接続される単位メモリｍ６０、単位メモリｍ６１と、メモリチャネルＣＨ７に接続される単位メモリｍ７０、単位メモリｍ７１と、メモリチャネルＣＨ８に接続される単位メモリｍ８０、単位メモリｍ８１と、メモリコントローラ９０１に内蔵されるアドレス変換回路９１とを含む。
【００４９】
メモリコントローラ９０１はインタフェース９００を介してメモリアクセスを受け取りアドレス変換回路９１でのアドレス変換結果からアクセス発行対象の単位メモリを単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１の中から決定しインタフェース１００〜８００を介して該当する単位メモリにアクセスを発行する。
【００５０】
説明を簡素化するため、単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１は、全て８バイト単位アクセス×１２８ワード構成の容量１ＫＢの単位メモリとする。よって、単位メモリのワードアドレスは、７ビットで構成される。また、各メモリチャネルＣＨ１〜ＣＨ８に接続される単位メモリは最大２つまでとする。よって、メモリ最大構成時は、図６の示す通りとなり、メモリ容量は最大１ＫＢ×２×８＝１６ＫＢとする。
【００５１】
また、本実施例では、単位メモリの最小構成が１ＫＢであり、この１ＫＢをセグメント単位である。
【００５２】
図２を参照すると、セグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１は、それぞれ、図６の単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１と対応している。各セグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１は、それぞれ、ＷＡＹ数Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａと下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂとを格納する。
【００５３】
図２のセグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１は、図６の第１の実施例のメモリ最大構成時の設定値を格納する。単位メモリｍ１０、ｍ２０、ｍ３０〜ｍ８０で８ＷＡＹ制御するため、ＷＡＹ数Ｓ１０ａ、Ｓ２０ａ、Ｓ３０ａ〜Ｓ８０ａは、８を格納する。また、単位メモリｍ１１、ｍ２１、ｍ３１〜ｍ８１で８ＷＡＹ制御するため、ＷＡＹ数Ｓ１１ａ、Ｓ２１ａ、Ｓ３１ａ〜Ｓ８１ａは、８を格納する。下限アドレスの底上げは実施されないため、底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂは、全て０を格納する。
【００５４】
図２のＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１は、図６の単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１の下限アドレスを保持する回路である（以降、下限アドレスの値を指すこともある）。上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１は、単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１の上限アドレスを保持する回路である（以降、上限アドレスの値を指すこともある）。下限アドレス、上限アドレスは、初期設定時に、セグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１に保持されている情報から各々算出され保持される。
【００５５】
図２のベースアドレスＢ００は、メモリコントローラ９０１配下のメモリ空間のベースアドレスを示す。ベースアドレスＢ００を基に、単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１の下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１と、上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１とが算出される。
【００５６】
本実施例では、図４の示すとおりベースアドレスＢ００は、常時０とする。
【００５７】
図２のアクセスアドレスＣ００は、図６のインタフェース９００経由でメモリコントローラ９０１に発行されたアクセスアドレスを格納する。
【００５８】
図３に、アクセスアドレスＣ００の概要を示す。図３において、本実施例では、メモリ最大構成容量が１６ＫＢであるため、アドレスは、Ａ１３〜Ａ０までの１４ビットとする。また、メモリアクセス単位が８バイトであるため、アドレス変換には、８バイト境界アドレスより下位のＡ２〜Ａ０以外のＡ１３〜Ａ３を参照する。さらに、本実施例の単位メモリの最小構成容量が１ＫＢであるため、図２の各単位メモリの《下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１、および、上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１》とアクセスアドレスＣ００との比較は１ＫＢ境界より上位のＡ１３〜Ａ１０の４ビットで実施する。
【００５９】
ここで、単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１にそれぞれ対応する下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１、および、上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１の算出方法について説明する。
【００６０】
メモリチャネルＣＨ１に関しては、ベースアドレスＢ００を基に単位メモリｍ１０の下限アドレスＢ１０が算出され、次に、上限アドレスＴ１０が算出され、次に、単位メモリｍ１１の下限アドレスＢ１１が算出され、次に、上限アドレスＴ１１が算出される。
【００６１】
メモリチャネルＣＨ１の単位メモリｍ１０の下限アドレスＢ１０と上限アドレスＴ１０とは、下記の式で求められる。計算は、１ＫＢ境界より上位の４ビットのみで実施され、結果が保持される。
【００６２】
単位メモリｍ１０の下限アドレスＢ１０＝ベースアドレスＢ００＋下限アドレス底上げセグメント数Ｓ１０ｂ。単位メモリｍ１０の上限アドレスＴ１０＝単位メモリｍ１０の下限アドレスＢ１０＋ＷＡＹ数Ｓ１０ａ。
【００６３】
メモリチャネルＣＨ１の単位メモリｍ１１の下限アドレスＢ１１と上限アドレスＴ１１とは、下記の式で求められる。計算は１ＫＢ境界より上位の４ビットのみで行われる。
【００６４】
単位メモリｍ１１の下限アドレスＢ１１＝単位メモリｍ１０の上限アドレスＴ１０＋上限アドレス底上げセグメント数Ｓ１１ｂ。単位メモリｍ１１の上限アドレスＴ１１＝単位メモリｍ１１の下限アドレスＢ１１＋ＷＡＹ数Ｓ１１ａ。
【００６５】
他のチャネルＣＨ２〜ＣＨ８についても同様である。
【００６６】
図２のヒット信号Ｈ１０、Ｈ１１、Ｈ２０、Ｈ２１〜Ｈ８０、Ｈ８１は、図６の単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１と対応している。たとえば、アクセスアドレスＣ００が、単位メモリｍ１０の下限アドレスＢ１０以上、かつ、上限アドレスＴ１０未満であれば、Ｈ１０が有効になる。また、メモリチャネルＣＨ１のＨ１０とＨ１１、メモリチャネルＣＨ２のＨ２０とＨ２１、メモリチャネルＣＨ３のＨ３０とＨ３１、メモリチャネルＣＨ４のＨ４０とＨ４１、メモリチャネルＣＨ５のＨ５０とＨ５１、メモリチャネルＣＨ６のＨ６０とＨ６１、メモリチャネルＣＨ７のＨ７０とＨ７１、および、メモリチャネルＣＨ８のＨ８０とＨ８１は、各メモリチャネル内でそれぞれ排他的に有効になる。
【００６７】
図２のアクセス発行メモリ判定回路９３は、ヒット信号Ｈ１０、Ｈ１１、Ｈ２０、Ｈ２１〜Ｈ８０、Ｈ８１からアクセス発行対象を単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１から選択する。
【００６８】
アクセス発行メモリ判定回路９３は、ヒット信号Ｈ１０、Ｈ１１、Ｈ２０、Ｈ２１〜Ｈ８０、Ｈ８１が１つだけ有効になった場合は、アクセスアドレスを１ＷＡＹ領域とみなしヒット信号が有効になった該当単位メモリにアクセスを発行する。アクセス発行メモリ判定回路９３は、ヒット信号Ｈ１０、Ｈ１１、Ｈ２０、Ｈ２１〜Ｈ８０、Ｈ８１の内２つ有効になった場合は、図５に示されるとおりアクセスアドレスを２ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ３を参照し、ヒットした２つのメモリチャネルの内１つを選択し該当する単位メモリにアクセスを発行する。アクセス発行メモリ判定回路９３は、ヒット信号Ｈ１０、Ｈ１１、Ｈ２０、Ｈ２１〜Ｈ８０、Ｈ８１の内４つ有効になった場合は、図５に示されるとおりアクセスアドレスを４ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ４〜Ａ３を参照しヒットした４つのメモリチャネルの内１つを選択し該当する単位メモリにアクセスを発行する。アクセス発行メモリ判定回路９３は、ヒット信号Ｈ１０、Ｈ１１、Ｈ２０、Ｈ２１〜Ｈ８０、Ｈ８１の内８つ有効になった場合は、アクセスアドレスを図５に示されるとおり８ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ５〜Ａ３を参照しヒットした８つのメモリチャネルの内１つを選択し該当する単位メモリにアクセスを発行する。
【００６９】
次に、本発明の第１の実施例の動作について、図２と図６、図７、図８、図９とを参照して説明する。
【００７０】
第１の実施例は、従来からある８ＷＡＹインタリーブ（２の乗数）で制御する。
【００７１】
図６において、メモリコントローラ９０１配下のメモリチャネルＣＨ１〜ＣＨ８には単位メモリｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１が接続されている、第１の実施例での各単位メモリに対するアドレス割り付けの概要を図８に示す。
【００７２】
図８を参照すると、０ＫＢ以上〜８ＫＢ未満のアドレス領域では、単位メモリｍ１０、ｍ２０〜ｍ８０の８ＷＡＹにてインタリーブ制御が実施される。８ＫＢ以上〜１６ＫＢ未満のアドレス領域では、単位メモリｍ１１、ｍ２１〜ｍ８１の８ＷＡＹにてインタリーブ制御が実施される。
【００７３】
図８のアドレス割り付けを基に、セグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１のＷＡＹ数Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａと下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂが、図７に示すとおりに決定される。
【００７４】
図７を参照すると、第１の実施例では、全領域８ＷＡＹインタリーブであるため、ＷＡＹ数Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａには８が設定される。また、下限アドレスの底上げを実施していないため、下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂには０が設定される。
【００７５】
図９に、第１の実施例での各単位メモリに対する詳細なアドレス割り付けを示す。単位メモリへのアクセス単位が８バイトであるため、アドレスの下位３ビットはＸ（任意）で表記している。
【００７６】
次に、第１の実施例におけるアドレス変換回路９１の詳細動作を図２を参照して説明する。
【００７７】
下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１、および、上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１の値は、図７の設定値から下記のように算出される。メモリチャネルＣＨ１の単位メモリｍ１０の下限アドレスＢ１０、上限アドレスＴ１０は、下記の式で算出される。
【００７８】
単位メモリｍ１０の下限アドレスＢ１０＝（ベースアドレスＢ００）０ＫＢ＋（下限アドレス底上げセグメント数Ｓ１０ｂ）０ＫＢ＝０ＫＢ。単位メモリｍ１０の上限アドレスＴ１０＝（単位メモリｍ１０の下限アドレスＢ１０）０ＫＢ＋（ＷＡＹ数Ｓ１０ａ）８ＫＢ＝８ＫＢ。
【００７９】
よって、単位メモリｍ１０のアドレス領域は、０ＫＢ以上〜８ＫＢ未満となる。同様に、単位メモリｍ２０、ｍ３０〜ｍ８０の下限アドレスおよび上限アドレスについても同値となる。
【００８０】
メモリチャネルＣＨ１の単位メモリｍ１１の下限アドレスＢ１１、上限アドレスＴ１１は、下記の式で算出される。
【００８１】
単位メモリｍ１１の下限アドレスＢ１１＝（単位メモリｍ１０の上限アドレスＴ１０）８ＫＢ＋（下限アドレス底上げセグメント数Ｓ１１ｂ）０ＫＢ＝８ＫＢ。単位メモリｍ１１の上限アドレスＴ１１＝（単位メモリｍ１１の下限アドレスＢ１１）８ＫＢ＋（ＷＡＹ数Ｓ１１ａ）８ＫＢ＝１６ＫＢ。
【００８２】
よって、単位メモリｍ１１のアドレス領域は８ＫＢ以上〜１６ＫＢ未満となる。同様に単位メモリｍ２１、ｍ３１〜ｍ８１の下限アドレスおよび上限アドレスについても同値となる。
【００８３】
第１の実施例において、アクセスアドレスＣ００に０ＫＢ以上〜８ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値からヒット信号Ｈ１０、Ｈ２０〜Ｈ８０の８つの信号が有効になる。アクセス発行メモリ判定回路９３は、アクセスアドレスを８ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ５〜Ａ３でアクセス先のメモリチャネルを判定し、単位メモリｍ１０、ｍ２０〜ｍ８０の内のいずれかひとつにアクセスを発行する。同様に、アクセスアドレスＣ００に８ＫＢ以上〜１６ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値からヒット信号Ｈ１１、Ｈ２１〜Ｈ８１の８つの信号が有効になる。アクセス発行メモリ判定回路９３は、アクセスアドレスを８ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ５〜Ａ３でアクセス先のメモリチャネルを判定し、単位メモリｍ１１、単位メモリｍ２１〜ｍ８１の内のいずれかひとつにアクセスを発行する。
【００８４】
次に、本発明の第２の実施例について、図２と図１０、図１１、図１２、図１３とを参照して説明する。
【００８５】
第２の実施例は、従来からある４ＷＡＹと２ＷＡＹインタリーブ（２の乗数）との混在で制御する。
【００８６】
図１０を参照すると、メモリコントローラ９０１配下のメモリチャネルＣＨ１〜ＣＨ４には、単位メモリｍ１０、ｍ２０、ｍ３０、ｍ４０、ｍ１１、ｍ２１が接続されている。メモリチャネルＣＨ５〜ＣＨ８は未使用である。第２の実施例での各単位メモリに対するアドレス割り付けの概要を図１２に示す。
【００８７】
図１２を参照すると、０ＫＢ以上〜４ＫＢ未満のアドレス領域では単位メモリｍ１０、ｍ２０、ｍ３０、ｍ４０の４ＷＡＹにてインタリーブ制御が実施される。４ＫＢ以上〜６ＫＢ未満のアドレス領域では単位メモリｍ１１、ｍ２１の２ＷＡＹにてインタリーブ制御が実施される。
【００８８】
図１２のアドレス割り付けを基に、セグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１のＷＡＹ数Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａと下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１が、図１１に示すとおりに決定される。
【００８９】
図１１を参照すると、第２の実施例では、ＷＡＹ数Ｓ１０ａ、Ｓ２０ａ、Ｓ３０１ａ、Ｓ４０ａには４が設定され、ＷＡＹ数Ｓ１１ａ、Ｓ２１ａには２が設定され、未使用セグメントについては０が設定される。また、下限アドレスの底上げを実施していないため下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂには０が設定される。
【００９０】
図１３に第２の実施例での各単位メモリに対する詳細なアドレス割り付けを示す。単位メモリへのアクセス単位が８バイトであるため、アドレスの下位３ビットは、Ｘ（任意）で表記している。
【００９１】
第２の実施例におけるアドレス変換回路９１の詳細動作を図２を参照して説明する。
【００９２】
下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１、および、上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１の値は、図１１の設定値から下記のように算出される。
【００９３】
メモリチャネルＣＨ１の単位メモリｍ１０の下限アドレスＢ１０、および、上限アドレスＴ１０は下記の式で算出される。
単位メモリｍ１０の下限アドレスＢ１０＝（ベースアドレスＢ００）０ＫＢ＋（下限アドレス底上げセグメント数Ｓ１０ｂ）０ＫＢ＝０ＫＢ。単位メモリｍ１０の上限アドレスＴ１０＝（単位メモリｍ１０の下限アドレスＢ１０）０ＫＢ＋（ＷＡＹ数Ｓ１０ａ）４ＫＢ＝４ＫＢ。
【００９４】
よって、単位メモリｍ１０のアドレス領域は、０ＫＢ以上〜４ＫＢ未満となる。同様に単位メモリｍ２０、ｍ３０、ｍ４０の下限アドレス、および、上限アドレスについても同値となる。
【００９５】
メモリチャネルＣＨ１の単位メモリｍ１１の下限アドレスＢ１１、上限アドレスＴ１１は、下記の式で算出される。
【００９６】
単位メモリｍ１１の下限アドレスＢ１１＝（単位メモリｍ１０の上限アドレスＴ１０）４ＫＢ＋（下限アドレス底上げセグメント数Ｓ１１ｂ）０ＫＢ＝４ＫＢ。単位メモリｍ１１の上限アドレスＴ１１＝（単位メモリｍ１１の下限アドレスＢ１１）４ＫＢ＋（ＷＡＹ数Ｓ１１ａ）２ＫＢ＝６ＫＢ。
【００９７】
よって、単位メモリｍ１１のアドレス領域は、４ＫＢ以上〜６ＫＢ未満となる。同様に単位メモリｍ２１の下限アドレスおよび上限アドレスについても同値となる。
【００９８】
第２の実施例において、アクセスアドレスＣ００に０ＫＢ以上〜４ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値から、ヒット信号Ｈ１０、Ｈ２０、Ｈ３０、Ｈ４０の４つの信号が有効になる。アクセス発行メモリ判定回路９３は、アクセスアドレスを４ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ４〜Ａ３で、アクセス先のメモリチャネルを判定し、単位メモリｍ１０、ｍ２０、ｍ３０、ｍ４０の内のいずれかひとつにアクセスを発行する。同様に、アクセスアドレスＣ００に４ＫＢ以上〜６ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値からヒット信号Ｈ１１、Ｈ２１の２つの信号が有効になる。アクセス発行メモリ判定回路９３は、アクセスアドレスを２ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ３で、アクセス先のメモリチャネルを判定し、単位メモリｍ１１、ｍ２１の内のいずれかひとつにアクセスを発行する。
【００９９】
次に、本発明の第３の実施例について、図２と図１４、図１５、図１６、図１７とを参照して説明する。
【０１００】
第３の実施例は、従来であれば、８ＷＡＹと３ＷＡＹとのインタリーブ混在で制御するが、アドレス変換回路９１により３ＷＡＹ領域を２ＷＡＹと１ＷＡＹ領域とに置き換えて制御する。
【０１０１】
図１４を参照すると、メモリコントローラ９０１配下のメモリチャネルＣＨ１〜ＣＨ８には、単位メモリｍ１０、ｍ２０、ｍ３０〜ｍ８０、ｍ１１、ｍ２１、ｍ３１が接続されている。
【０１０２】
第３の実施例での各単位メモリに対するアドレス割り付けの概要を図１６に示す。
【０１０３】
図１６を参照すると、第３の実施例は、０ＫＢ以上〜８ＫＢ未満のアドレス領域では、第１の実施例と同様に、単位メモリｍ１０、ｍ２０〜ｍ８０の８ＷＡＹにてインタリーブ制御を実施する。８ＫＢ以上〜１１ＫＢ未満のアドレス領域では、従来は、単位メモリｍ１１、ｍ２１、ｍ３１の３ＷＡＹにてインタリーブ制御が実施されるが、本発明の第３の実施例では、３ＷＡＹを２ＷＡＹと１ＷＡＹに置き換えることで全アドレス空間にて２の乗数のインタリーブが実現される。具体的には、８ＫＢ以上〜１０ＫＢ未満のアドレス領域では単位メモリｍ１１、ｍ２１の２ＷＡＹにてインタリーブ制御が実施され、１０ＫＢ以上〜１１ＫＢ未満のアドレス領域では、単位メモリｍ３１の１ＷＡＹにてインタリーブ制御が実施される。３ＷＡＹから２ＷＡＹと１ＷＡＹへの置き換えは、単位メモリｍ３１の下限アドレスを２ＫＢ（２セグメント）底上げすることで実現される。
【０１０４】
図１６のアドレス割り付けを基に、図２のセグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１のＷＡＹ数Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａと下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂが図１５に示すとおりに決定される。
【０１０５】
図１５について、第３の実施例では、ＷＡＹ数Ｓ１０ａ、Ｓ２０ａ、Ｓ３０１ａ、Ｓ４０ａ〜Ｓ８０ａには８が設定され、ＷＡＹ数Ｓ１１ａ、Ｓ２１ａには２が設定され、ＷＡＹ数Ｓ３１ａには１が設定され、未使用セグメントについては０が設定される。また、単位メモリｍ３１の下限アドレスに２ＫＢ（２セグメント）の底上げを実施するため下限アドレス底上げセグメント数Ｓ３１ｂに２が設定される。
【０１０６】
図１７に、第３の実施例での各単位メモリに対する詳細なアドレス割り付けを示す。単位メモリへのアクセス単位が８バイトであるためアドレスの下位３ビットはＸで表記している。
【０１０７】
第３の実施例におけるアドレス変換回路９１の詳細動作を図２を用いて説明する。
【０１０８】
図２の下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１、および、上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１の値は図１５の設定値から下記のように算出される。メモリチャネルＣＨ１の単位メモリｍ１０の下限アドレスＢ１０、および、上限アドレスＴ１０は下記の式で算出される。
【０１０９】
単位メモリｍ１０の下限アドレスＢ１０＝（ベースアドレスＢ００）０ＫＢ＋（下限アドレス底上げセグメント数Ｓ１０ｂ）０ＫＢ＝０ＫＢ。単位メモリｍ１０の上限アドレスＴ１０＝（単位メモリｍ１０の下限アドレスＢ１０）０ＫＢ＋（ＷＡＹ数Ｓ１０ａ）８ＫＢ＝８ＫＢ。
【０１１０】
よって、単位メモリｍ１０のアドレス領域は０ＫＢ以上〜８ＫＢ未満となる。同様に、単位メモリｍ２０、ｍ３０〜ｍ８０の下限アドレスおよび上限アドレスについても同値となる。
【０１１１】
メモリチャネルＣＨ１の単位メモリｍ１１の下限アドレスＢ１１、および、上限アドレスＴ１１は下記の式で算出される。
【０１１２】
単位メモリｍ１１の下限アドレスＢ１１＝（単位メモリｍ１０の上限アドレスＴ１０）８ＫＢ＋（下限アドレス底上げセグメント数Ｓ１１ｂ）０ＫＢ＝８ＫＢ。単位メモリｍ１１の上限アドレスＴ１１＝（単位メモリｍ１１の下限アドレスＢ１１）８ＫＢ＋（ＷＡＹ数Ｓ１１ａ）２ＫＢ＝１０ＫＢ。
【０１１３】
よって、単位メモリｍ１１のアドレス領域は８ＫＢ以上〜１０ＫＢ未満となる。同様に、単位メモリｍ２１の下限アドレスおよび上限アドレスについても同値となる。
【０１１４】
底上げを実施するメモリチャネルＣＨ３の単位メモリｍ３１の下限アドレスＢ３１、および、上限アドレスＴ３１は下記の式で算出される。
【０１１５】
単位メモリｍ３１の下限アドレスＢ３１＝（単位メモリｍ３０の上限アドレスＴ３０）８ＫＢ＋（下限アドレス底上げセグメント数Ｓ３１ｂ）２ＫＢ＝１０ＫＢ。単位メモリｍ３１の上限アドレスＴ３１＝（単位メモリｍ３１の下限アドレスＢ３１）１０ＫＢ＋（ＷＡＹ数Ｓ３１ａ）１ＫＢ＝１１ＫＢ。
【０１１６】
よって、単位メモリｍ３１のアドレス領域は１０ＫＢ以上〜１１ＫＢ未満となる。
【０１１７】
第３の実施例において、アクセスアドレスＣ００に０ＫＢ以上〜８ＫＢ未満のアドレスが格納された場合は、第１の実施例と同じなので説明を省略する。アクセスアドレスＣ００に８ＫＢ以上〜１０ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値から、ヒット信号Ｈ１１、Ｈ２１の２つの信号が有効になる。アクセス発行メモリ判定回路９３は、アクセスアドレスを２ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ３でアクセス発行先のメモリチャネルを判定し、単位メモリｍ１１、ｍ２１の内のいずれかひとつにアクセスを発行する、同様に、アクセスアドレスＣ００に１０ＫＢ以上〜１１ＫＢ未満のアドレスが格納されると、下限アドレスと上限アドレスの設定値からヒット信号Ｈ３１のみが有効になる。アクセス発行メモリ判定回路９３は、アクセスアドレスを１ＷＡＹ領域とみなし単位メモリｍ３１に対してアクセスを発行する。
【０１１８】
次に、本発明の第４の実施例について、図２と図１８、図１９、図２０、図２１とを参照して説明する。
【０１１９】
第４の実施例は、従来であれば、８ＷＡＹと７ＷＡＹとのインタリーブ混在で制御するが、アドレス変換回路９１により７ＷＡＹ領域を４ＷＡＹと２ＷＡＹと１ＷＡＹ領域とに置き換えて制御する。
【０１２０】
図１８を参照すると、メモリコントローラ９０１配下のメモリチャネルＣＨ１〜ＣＨ８には、単位メモリｍ１０、ｍ２０、ｍ３０〜ｍ８０、ｍ１１、ｍ２１〜ｍ７１が接続されている。第４の実施例での各単位メモリに対するアドレス割り付けの概要を図２０に示す。
【０１２１】
図２０を参照すると、０ＫＢ以上〜８ＫＢ未満のアドレス領域では、第１の実施例と同様に単位メモリｍ１０、ｍ２０〜ｍ８０の８ＷＡＹにてインタリーブ制御が実施される。８ＫＢ以上〜１５ＫＢ未満のアドレス領域では、従来は、単位メモリｍ１１、ｍ２１〜ｍ７１の７ＷＡＹにてインタリーブ制御が実施されていた。本発明の第４の実施例では、７ＷＡＹを４ＷＡＹと２ＷＡＹと１ＷＡＹに置き換えることで、全アドレス空間にて２の乗数のインタリーブが実現される。
【０１２２】
具体的には、８ＫＢ以上〜１２ＫＢ未満のアドレス領域では、単位メモリｍ１１、ｍ２１、ｍ３１、ｍ４１の４ＷＡＹにてインタリーブ制御が実施される。１２ＫＢ以上〜１４ＫＢ未満のアドレス領域では、単位メモリｍ５１、ｍ６１の２ＷＡＹにてインタリーブ制御が実施される。１４ＫＢ以上〜１５ＫＢ未満のアドレス領域では、単位メモリｍ７１の１ＷＡＹにてインタリーブ制御が実施される。７ＷＡＹから４ＷＡＹ、２ＷＡＹ、および、１ＷＡＹへの置き換えは、単位メモリｍ５１、ｍ６１の下限アドレスを４ＫＢ（４セグメント）底上げすることと、単位メモリｍ７１の下限アドレスを６ＫＢ（６セグメント）底上げすることとで実現される。
【０１２３】
図２０のアドレス割り付けを基に、セグメント情報保持回路Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１のＷＡＹ数Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａ、および、下限アドレス底上げセグメント数Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂが図１９に示すとおりに決定される。
【０１２４】
図１９を参照すると、第４の実施例では、ＷＡＹ数Ｓ１０ａ、Ｓ２０ａ、Ｓ３０１ａ、Ｓ４０ａ〜Ｓ８０ａには８が設定される。ＷＡＹ数Ｓ１１ａ、Ｓ２１ａ、Ｓ３１ａ、Ｓ４１ａには４が設定される。ＷＡＹ数Ｓ５１ａ、Ｓ６１ａには２が設定される。ＷＡＹ数Ｓ７１ａには１が設定される。その他の未使用単位メモリに対応するセグメントには、０が設定される。また、単位メモリｍ５１、ｍ６１の下限アドレスに４ＫＢ（４セグメント）の底上げを実施するため、下限アドレス底上げセグメント数Ｓ５１ｂ、Ｓ６１ｂに４が設定される。また、単位メモリｍ７１の下限アドレスに６ＫＢ（６セグメント）の底上げを実施するため、下限アドレス底上げセグメント数Ｓ７１ｂに６が設定される。
【０１２５】
図２１に、第４の実施例での各単位メモリに対する詳細なアドレス割り付けを示す。単位メモリへのアクセス単位が８バイトであるため、アドレスの下位３ビットは、Ｘ（任意）で表記している。
【０１２６】
第４の実施例におけるアドレス変換回路９１の詳細動作を、図２を参照して説明する。
【０１２７】
図２の下限アドレスＢ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１と上限アドレスＴ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１の値は、図１９の設定値から下記のように算出される。
【０１２８】
メモリチャネルＣＨ１の単位メモリｍ１０の下限アドレスＢ１０、および、上限アドレスＴ１０は下記の式で算出される。
【０１２９】
単位メモリｍ１０の下限アドレスＢ１０＝（ベースアドレスＢ００）０ＫＢ＋（下限アドレス底上げセグメント数Ｓ１０ｂ）０ＫＢ＝０ＫＢ。単位メモリｍ１０の上限アドレスＴ１０＝（単位メモリｍ１０の下限アドレスＢ１０）０ＫＢ＋（ＷＡＹ数Ｓ１０ａ）８ＫＢ＝８ＫＢ。
【０１３０】
よって、単位メモリｍ１０のアドレス領域は、０ＫＢ以上〜８ＫＢ未満となる。同様に、単位メモリｍ２０、ｍ３０〜ｍ８０の下限アドレスおよび上限アドレスについても同値となる。
【０１３１】
メモリチャネルＣＨ１の単位メモリｍ１１の下限アドレスＢ１１、および、上限アドレスＴ１１は下記の式で算出される。
【０１３２】
単位メモリｍ１１の下限アドレスＢ１１＝（単位メモリｍ１０の上限アドレスＴ１０）８ＫＢ＋（下限アドレス底上げセグメント数Ｓ１１ｂ）０ＫＢ＝８ＫＢ。単位メモリｍ１１の上限アドレスＴ１１＝（単位メモリｍ１１の下限アドレスＢ１１）８ＫＢ＋（ＷＡＹ数Ｓ１１ａ）４ＫＢ＝１２ＫＢ。
【０１３３】
よって、単位メモリｍ１１のアドレス領域は、８ＫＢ以上〜１２ＫＢ未満となる。同様に、単位メモリｍ２１、単位メモリｍ３１、単位メモリｍ４１の下限アドレスおよび上限アドレスについても同値となる。
【０１３４】
底上げを実施するメモリチャネルＣＨ５、ＣＨ６の単位メモリｍ５１、ｍ６１の下限アドレスＢ５１、Ｂ６１、および、上限アドレスＴ５１、Ｔ６１は下記の式で算出される。
【０１３５】
単位メモリｍ５１の下限アドレスＢ５１＝（単位メモリｍ５０の上限アドレスＴ５０）８ＫＢ＋（下限アドレス底上げセグメント数Ｓ５１ｂ）４ＫＢ＝１２ＫＢ。ここで、（下限アドレス底上げセグメント数Ｓ５１ｂ）４ＫＢは、「《先にインタリーブが決定された》インタリーブ数の合計値×単位メモリ容量」＝４×１ＫＢである。単位メモリｍ５１の上限アドレスＴ５１＝（単位メモリｍ５１の下限アドレスＢ５１）１２ＫＢ＋（ＷＡＹ数Ｓ５１ａ）２ＫＢ＝１４ＫＢ。
【０１３６】
よって、単位メモリｍ１１のアドレス領域は、１２ＫＢ以上〜１４ＫＢ未満となる。同様に、単位メモリｍ６１の下限アドレス、および、上限アドレスについても同値となる。
【０１３７】
さらに、底上げを実施するメモリチャネルＣＨ７の単位メモリｍ７１の下限アドレスＢ７１と上限アドレスＴ７１は、下記の式で算出される。
【０１３８】
単位メモリｍ７１の下限アドレスＢ７１＝（単位メモリｍ７０の上限アドレスＴ７０）８ＫＢ＋（下限アドレス底上げセグメント数Ｓ７１ｂ）６ＫＢ＝１４ＫＢ。ここで、（下限アドレス底上げセグメント数Ｓ７１ｂ）６ＫＢは、「《先にインタリーブが決定された》インタリーブ数の合計値×単位メモリ容量」＝（４＋２）×１ＫＢである。単位メモリｍ７１の上限アドレスＴ７１＝（単位メモリｍ７１の下限アドレスＢ７１）１４ＫＢ＋（ＷＡＹ数Ｓ７１ａ）１ＫＢ＝１５ＫＢ。
【０１３９】
よって、単位メモリｍ７１のアドレス領域は、１４ＫＢ以上〜１５ＫＢ未満となる。
【０１４０】
第４の実施例において、アクセスアドレスＣ００に０ＫＢ以上〜８ＫＢ未満のアドレスが格納された場合は、第１の実施例と同じなので説明を省略する。アクセスアドレスＣ００に８ＫＢ以上〜１２ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値から、ヒット信号Ｈ１１、Ｈ２１、Ｈ３１、Ｈ４１の４つの信号が有効になる。アクセス発行メモリ判定回路９３は、４ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ４〜Ａ３でアクセス発行先のメモリチャネルを判定し、単位メモリｍ１１、ｍ２１、ｍ３１、ｍ４１の内のいずれかひとつにアクセスを発行する。同様に、アクセスアドレスＣ００に、１２ＫＢ以上〜１４ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値からヒット信号Ｈ５１、Ｈ６１の２つの信号が有効になる。アクセス発行メモリ判定回路９３は、２ＷＡＹ領域とみなし、アクセスアドレスＣ００のＡ３で、アクセス発行先のメモリチャネルを判定し、単位メモリｍ５１、ｍ６１の内のいずれかひとつにアクセスを発行する。同様に、アクセスアドレスＣ００に、１４ＫＢ以上〜１５ＫＢ未満のアドレスが格納されると、下限アドレス、および、上限アドレスの設定値からヒット信号Ｈ７１のみが有効になる。アクセス発行メモリ判定回路９３は、１ＷＡＹ領域とみなし単位メモリｍ７１に対してアクセスを発行する。
【０１４１】
以上説明した制御を、コントロールストアを設け、ファームウェアで実施することが可能である。
【図面の簡単な説明】
【０１４２】
【図１】本発明を実施するための最良の形態の構成を示すブロック図。
【図２】本発明のアドレス変換回路の構成を示すブロック図。
【図３】アドレス変換回路の動作を示すための説明図。
【図４】アドレス変換回路の動作を示すための説明図。
【図５】アドレス変換回路の動作を示すための説明図。
【図６】本発明の第１の実施例の構成を示すブロック図。
【図７】本発明の第１の実施例の動作を示すための説明図。
【図８】本発明の第１の実施例の動作を示すための説明図。
【図９】本発明の第１の実施例の動作を示すための説明図。
【図１０】本発明の第２の実施例の構成を示すブロック図。
【図１１】本発明の第２の実施例の動作を示すための説明図。
【図１２】本発明の第２の実施例の動作を示すための説明図。
【図１３】本発明の第２の実施例の動作を示すための説明図。
【図１４】本発明の第３の実施例の構成を示すブロック図。
【図１５】本発明の第３の実施例の動作を示すための説明図。
【図１６】本発明の第３の実施例の動作を示すための説明図。
【図１７】本発明の第３の実施例の動作を示すための説明図。
【図１８】本発明の第４の実施例の構成を示すブロック図。
【図１９】本発明の第４の実施例の動作を示すための説明図。
【図２０】本発明の第４の実施例の動作を示すための説明図。
【図２１】本発明の第４の実施例の動作を示すための説明図。
【符号の説明】
【０１４３】
Ｌ１    データ処理装置
Ｌ２    メモリコントローラ
Ｌ３    メモリ装置
ＣＨ１    メモリチャネル
ＣＨ２    メモリチャネル
ＣＨ３    メモリチャネル
ＣＨ４    メモリチャネル
ＣＨ５    メモリチャネル
ＣＨ６    メモリチャネル
ＣＨ７    メモリチャネル
ＣＨ８    メモリチャネル
Ｍ１０〜Ｍ８０    第１単位記憶回路
Ｍ１１〜Ｍ８１    第２単位記憶回路
ｍ１０、ｍ１１、ｍ２０、ｍ２１〜ｍ８０、ｍ８１    単位メモリ
ＳＧ１    セグメント情報保持回路
ＵＬＡ１    上限下限アドレス回路
Ｂ００    ベースアドレス
Ｃ００    アクセスアドレス
Ｓ１０、Ｓ１１、Ｓ２０、Ｓ２１〜Ｓ８０、Ｓ８１    セグメント情報保持回路
Ｓ１０ａ、Ｓ１１ａ、Ｓ２０ａ、Ｓ２１ａ〜Ｓ８０ａ、Ｓ８１ａ    ＷＡＹ数
Ｓ１０ｂ、Ｓ１１ｂ、Ｓ２０ｂ、Ｓ２１ｂ〜Ｓ８０ｂ、Ｓ８１ｂ    セグメント数
Ｂ１０、Ｂ１１、Ｂ２０、Ｂ２１〜Ｂ８０、Ｂ８１    下限アドレス
Ｔ１０、Ｔ１１、Ｔ２０、Ｔ２１〜Ｔ８０、Ｔ８１    上限アドレス
９１    アドレス変換回路
９３    アクセス発行メモリ判定回路
９００    インタフェース
９０１    メモリコントローラ
１００〜８００    インタフェース
【図１】
0004603481.tif 000002
【図２】
0004603481.tif 000003
【図３】
0004603481.tif 000004
【図４】
0004603481.tif 000005
【図５】
0004603481.tif 000006
【図６】
0004603481.tif 000007
【図７】
0004603481.tif 000008
【図８】
0004603481.tif 000009
【図９】
0004603481.tif 000010
【図１０】
0004603481.tif 000011
【図１１】
0004603481.tif 000012
【図１２】
0004603481.tif 000013
【図１３】
0004603481.tif 000014
【図１４】
0004603481.tif 000015
【図１５】
0004603481.tif 000016
【図１６】
0004603481.tif 000017
【図１７】
0004603481.tif 000018
【図１８】
0004603481.tif 000019
【図１９】
0004603481.tif 000020
【図２０】
0004603481.tif 000021
【図２１】
0004603481.tif 000022