(57)【要約】【課題】  従来のバンクチェック及び追い越し制御によるメモリアクセス方式では複数のバンクグループを同時アクセスできるメモリモジュールの性能を引き出せなかった。【解決手段】  メモリモジュールを複数バンク構成とし、複数のバンクを偶数バンク、奇数バンクの２グループに分けて制御するメモリアクセス制御方式で、各バンクグループ毎のメモリ制御手段２−１，２−２と、バンク追い越し回路１を含み、バンク追い越し回路１は、バンク毎のバンクビジーカウンタと、アクセス先バンクがビジーか、定められた選択条件に合致しないメモリリクエストを格納するリクエストバッファと、これに格納された或いは新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、チェックし、バンクがビジー状態でなくなったメモリリクエストの一つを、奇数／偶数のバンクグループ毎に選択しそれぞれ対応のメモリ制御手段に発行する手段とを具備する。【選択図】      図１
2006099295.tif 000002
【特許請求の範囲】
【請求項１】
メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方式であって、
前記バンクグループ毎のメモリ制御手段と、
アクセス先のバンクがビジー状態であったメモリリクエストを格納するリクエストバッファと、
前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とするメモリアクセス制御方式。
【請求項２】
メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方式であって、
前記バンクグループ毎のメモリ制御手段と、
各バンクのビジー状態を管理するバンク毎のバンクビジーカウンタと、
アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを格納するリクエストバッファと、
前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記バンクビジーカウンタを参照することによってチェックするバンクチェック手段と、
前記バンクチェック手段によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とするメモリアクセス制御方式。
【請求項３】
前記バンクビジーカウンタは、対応するバンクにアクセスするメモリリクエストが各メモリ制御手段に発行されるとカウントを開始してビジー状態とし、リクエストの種類に対応した所定の値になると該カウンタのビジー状態を解除することを特徴とする請求項２記載のメモリアクセス制御方式。
【請求項４】
前記選択条件は、前記リクエストバッファ手段に格納された前記メモリリクエスト及び新たに受信したメモリリクエストを、アクセス先のバンクの前記グループで分け、それぞれのグループでメモリリクエストに優先順位を持たせ、最も優先度の高い前記メモリリクエストを選択することを特徴とする請求項２記載のメモリアクセス制御方式。
【請求項５】
前記リクエストバッファが、
それぞれに、一つのリクエスト情報を格納し、その番号がリクエスト発行上の優先順位となる複数のワード記憶部と、
新たに受信し、その時に発行対象とならないメモリリクエストを、空いている或いは次サイクルで空きが見込まれるワード記憶の内の最も若番のワード記憶部に格納する手段と、
格納中のリクエストを発行する際に、リクエスト情報が格納された各ワード記憶部について、そのワード記憶部及びそれより若番側のワード記憶部に含まれる発行されるリクエスト情報個数が１以上であれば、そのワード記憶部より老い番側のワード記憶部に格納され且つ発行対象でないリクエスト情報列の、前記個数で指定される位置にあるリクエスト情報をそのワード記憶部に移す手段とを含むことを特徴とする請求項２記載のメモリアクセス制御方式。
【請求項６】
前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする請求項１乃至５の何れかに記載のメモリアクセス制御方式。
【請求項７】
メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方法であって、
前記バンクグループ毎のメモリ制御手順と、
アクセス先のバンクがビジー状態であったメモリリクエストを一時格納する手順と、
前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とするメモリアクセス制御方法。
【請求項８】
メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方法であって、
前記バンクグループ毎のメモリ制御手順と、
各バンクへのアクセス開始から、アクセス種類に応じた期間までの経過サイクルを計数し各バンクのビジー状態を管理する手順と、
アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを一時格納する手順と、
前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記管理する手順の結果を参照することによってチェックするバンクチェック手順と、
前記バンクチェック手順によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とするメモリアクセス制御方法。
【請求項９】
前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする請求項７、又は８に記載のメモリアクセス制御方法。
【請求項１０】
複数のプロセッサにアクセスされる共有メモリでメモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方式であって、
前記バンクグループ毎のメモリ制御手段と、
アクセス先のバンクがビジー状態であったメモリリクエストを格納するリクエストバッファと、
前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とする共有メモリアクセス制御方式。
【請求項１１】
複数のプロセッサにアクセスされる共有メモリでメモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方式であって、
前記バンクグループ毎のメモリ制御手段と、
各バンクのビジー状態を管理するバンク毎のバンクビジーカウンタと、
アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを格納するリクエストバッファと、
前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記バンクビジーカウンタを参照することによってチェックするバンクチェック手段と、
前記バンクチェック手段によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とする共有メモリアクセス制御方式。
【請求項１２】
前記バンクビジーカウンタは、対応するバンクにアクセスするメモリリクエストが各メモリ制御手段に発行されるとカウントを開始してビジー状態とし、リクエストの種類に対応した所定の値になると該カウンタのビジー状態を解除することを特徴とする請求項１１記載の共有メモリアクセス制御方式。
【請求項１３】
前記選択条件は、前記リクエストバッファに格納された前記メモリリクエスト及び新たに受信したメモリリクエストを、アクセス先のバンクの前記グループで分け、それぞれのグループでメモリリクエストに優先順位を持たせ、最も優先度の高い前記メモリリクエストを選択することを特徴とする請求項１１記載の共有メモリアクセス制御方式。
【請求項１４】
前記リクエストバッファが、
それぞれに、一つのリクエスト情報を格納でき、その番号がリクエスト発行上の優先順位となる複数のワード記憶と、
新たに受信し、その時に発行対象とならないメモリリクエストを、空いている或いは次サイクルで空きが見込まれるワード記憶の内の最も若番のワード記憶に格納する手段と、
格納中のリクエストを発行する際に、リクエスト情報が格納された各ワード記憶部について、そのワード記憶部及びそれより若番側のワード記憶部に含まれる発行されるリクエスト情報個数が１以上であれば、そのワード記憶部より老い番側のワード記憶部に格納され且つ発行対象でないリクエスト情報列の、前記個数で指定される位置にあるリクエスト情報をそのワード記憶部に移す手段とを含むことを特徴とする請求項１１記載の共有メモリアクセス制御方式。
【請求項１５】
前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする請求項１０乃至１４の何れかに記載の共有メモリアクセス制御方式。
【請求項１６】
複数のプロセッサにアクセスされる共有メモリで、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方法であって、
前記バンクグループ毎のメモリ制御手順と、
アクセス先のバンクがビジー状態であったメモリリクエストを一時格納する手順と、
前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とする共有メモリアクセス制御方法。
【請求項１７】
複数のプロセッサにアクセスされる共有メモリで、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方法であって、
前記バンクグループ毎のメモリ制御手順と、
各バンクへのアクセス開始から、アクセス種類に応じた期間までの経過サイクルを計数し各バンクのビジー状態を管理する手順と、
アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを一時格納する手順と、
前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記管理する手順の結果を参照することによってチェックするバンクチェック手順と、
前記バンクチェック手順によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とする共有メモリアクセス制御方法。
【請求項１８】
前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする請求項１６、又は１７に記載の共有メモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法に関し、特に、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方式と方法、及び共有メモリアクセス制御方式と方法に関する。
【背景技術】
【０００２】
共有メモリ型マルチプロセッサシステムにおける共有主記憶メモリにおいて、共有メモリに使用する記憶素子は、大容量かつ安価であるＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ
Ｄｙｎａｍｉｃ  ＲＡＭ）が主流である。
【０００３】
しかし、プロセッサの共有メモリアクセス命令発行レートと前記記憶素子とのスピード差は大きい。
【０００４】
特に、プロセッサ数が多くなると、前記差は大きくなりシステム上の性能のネックとなる。
【０００５】
そのため、メモリシステム側でメモリリクエストをバッファリングし、選択したリクエストがアクセスするバンクのビジーをチェックし、ビジーであれば、これとは排他的なメモリアクセス命令によるリクエストについて、前記リクエストを追い越してアクセスするメモリアクセス制御方式がある（特許文献１参照。）。
【０００６】
一方近年、ＲＡＭ素子単体内部において、複数のバンクグループを同時にアクセス可能な構成を持つタイプのＲＡＭ素子がある。
【０００７】
【特許文献１】特開平１０−３３３９７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
複数ＣＰＵと共有主記憶メモリ（以下共有ＭＭＵ）を含むコンピュータシステムにおいて、上記のバンクチェック及び追い越し制御を含むメモリアクセス方式と、前記タイプのＲＡＭ素子で構成したメモリモジュールとを結合した場合、前記アクセス上の差は多少改善される。
【０００９】
しかしながら共有ＭＭＵスループットを更に改善する余地がある。
【００１０】
即ち、上記のバンクチェック及び排他的な命令追い越しによるメモリアクセス方式では、メモリ制御部へのリクエスト出力ラインを１リクエスト分しか持たない。
【００１１】
図８に示す通り、メモリ制御部において、物理的に制御ＬＳＩとＲＡＭを複数信号ラインで接続（以下、この物理単位をチャネルと呼ぶ）するバンク構成の場合、リクエストバッファ内に複数のバンクアクセス待ちリクエストが滞留する。
【００１２】
言い換えれば、複数チャネルのそれぞれに並行して出力可能な複数のリクエストがあるケースにおいて、別メモリチャネルに対するアクセスを同時並行して行うことができないという課題がある。
【００１３】
即ち、メモリへのアクセス頻度を向上させメモリアクセス効率を改善する余地があるといえる。
【００１４】
ここで、別チャネルに同時アクセスを実現する手段として、単純にメモリ制御ポートを分割することによりチャネル単位に、前記、バンクチェック、排他的な命令追い越し制御回路を備え、且つ、ＣＰＵからＭＭＵにデータ転送するクロスバスイッチの構成を、ＣＰＵ台数＊メモリポート数分にする構成が考えられる。
【００１５】
しかしながらこの様な構成では、ハードウエア量増加によるコスト増に繋がる。
【００１６】
また、共有主記憶装置に限らず、高頻度のアクセス要求を受ける主記憶装置にも同様の課題がある。
【課題を解決するための手段】
【００１７】
本発明の第１のメモリアクセス制御方式は、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方式であって、前記バンクグループ毎のメモリ制御手段と、アクセス先のバンクがビジー状態であったメモリリクエストを格納するリクエストバッファと、前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とする。
【００１８】
本発明の第２のメモリアクセス制御方式は、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方式であって、前記バンクグループ毎のメモリ制御手段と、各バンクのビジー状態を管理するバンク毎のバンクビジーカウンタと、アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを格納するリクエストバッファと、前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記バンクビジーカウンタを参照することによってチェックするバンクチェック手段と、前記バンクチェック手段によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とする。
【００１９】
本発明の第３のメモリアクセス制御方式は、前記第２のメモリアクセス制御方式に於いて、前記バンクビジーカウンタは、対応するバンクにアクセスするメモリリクエストが各メモリ制御手段に発行されるとカウントを開始してビジー状態とし、リクエストの種類に対応した所定の値になると該カウンタのビジー状態を解除することを特徴とする。
【００２０】
本発明の第４のメモリアクセス制御方式は、前記第２のメモリアクセス制御方式に於いて、前記選択条件は、前記リクエストバッファ手段に格納された前記メモリリクエスト及び新たに受信したメモリリクエストを、アクセス先のバンクの前記グループで分け、それぞれのグループでメモリリクエストに優先順位を持たせ、最も優先度の高い前記メモリリクエストを選択することを特徴とする。
【００２１】
本発明の第５のメモリアクセス制御方式は、前記第２のメモリアクセス制御方式に於いて、前記リクエストバッファが、それぞれに、一つのリクエスト情報を格納し、その番号がリクエスト発行上の優先順位となる複数のワード記憶部と、新たに受信し、その時に発行対象とならないメモリリクエストを、空いている或いは次サイクルで空きが見込まれるワード記憶の内の最も若番のワード記憶部に格納する手段と、格納中のリクエストを発行する際に、リクエスト情報が格納された各ワード記憶部について、そのワード記憶部及びそれより若番側のワード記憶部に含まれる発行されるリクエスト情報個数が１以上であれば、そのワード記憶部より老い番側のワード記憶部に格納され且つ発行対象でないリクエスト情報列の、前記個数で指定される位置にあるリクエスト情報をそのワード記憶部に移す手段とを含むことを特徴とする。
【００２２】
本発明の第６のメモリアクセス制御方式は、前記第１乃至第５の何れかのメモリアクセス制御方式に於いて、前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする。
【００２３】
本発明の第１のメモリアクセス制御方法は、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方法であって、前記バンクグループ毎のメモリ制御手順と、アクセス先のバンクがビジー状態であったメモリリクエストを一時格納する手順と、前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とする。
【００２４】
本発明の第２のメモリアクセス制御方法は、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御するメモリアクセス制御方法であって、前記バンクグループ毎のメモリ制御手順と、各バンクへのアクセス開始から、アクセス種類に応じた期間までの経過サイクルを計数し各バンクのビジー状態を管理する手順と、アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを一時格納する手順と、前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記管理する手順の結果を参照することによってチェックするバンクチェック手順と、前記バンクチェック手順によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とする。
【００２５】
本発明の第３のメモリアクセス制御方法は、前記第１、又は第２のメモリアクセス制御方法に於いて、前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする。
【００２６】
本発明の第１の共有メモリアクセス制御方式は、複数のプロセッサにアクセスされる共有メモリでメモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方式であって、前記バンクグループ毎のメモリ制御手段と、アクセス先のバンクがビジー状態であったメモリリクエストを格納するリクエストバッファと、前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とする。
【００２７】
本発明の第２の共有メモリアクセス制御方式は、複数のプロセッサにアクセスされる共有メモリでメモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方式であって、前記バンクグループ毎のメモリ制御手段と、各バンクのビジー状態を管理するバンク毎のバンクビジーカウンタと、アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを格納するリクエストバッファと、前記リクエストバッファに格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記バンクビジーカウンタを参照することによってチェックするバンクチェック手段と、前記バンクチェック手段によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手段に発行する手段とを具備したことを特徴とする。
【００２８】
本発明の第３の共有メモリアクセス制御方式は、前記第２の共有メモリアクセス制御方式に於いて、前記バンクビジーカウンタは、対応するバンクにアクセスするメモリリクエストが各メモリ制御手段に発行されるとカウントを開始してビジー状態とし、リクエストの種類に対応した所定の値になると該カウンタのビジー状態を解除することを特徴とする。
【００２９】
本発明の第４の共有メモリアクセス制御方式は、前記第２の共有メモリアクセス制御方式に於いて、前記選択条件は、前記リクエストバッファに格納された前記メモリリクエスト及び新たに受信したメモリリクエストを、アクセス先のバンクの前記グループで分け、それぞれのグループでメモリリクエストに優先順位を持たせ、最も優先度の高い前記メモリリクエストを選択することを特徴とする。
【００３０】
本発明の第５の共有メモリアクセス制御方式は、前記第２の共有メモリアクセス制御方式に於いて、前記リクエストバッファが、それぞれに、一つのリクエスト情報を格納でき、その番号がリクエスト発行上の優先順位となる複数のワード記憶と、新たに受信し、その時に発行対象とならないメモリリクエストを、空いている或いは次サイクルで空きが見込まれるワード記憶の内の最も若番のワード記憶に格納する手段と、格納中のリクエストを発行する際に、リクエスト情報が格納された各ワード記憶部について、そのワード記憶部及びそれより若番側のワード記憶部に含まれる発行されるリクエスト情報個数が１以上であれば、そのワード記憶部より老い番側のワード記憶部に格納され且つ発行対象でないリクエスト情報列の、前記個数で指定される位置にあるリクエスト情報をそのワード記憶部に移す手段とを含むことを特徴とする。
【００３１】
本発明の第６の共有メモリアクセス制御方式は、前記第１乃至第５の何れかの共有メモリアクセス制御方式に於いて、前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする。
【００３２】
本発明の第１の共有メモリアクセス制御方法は、複数のプロセッサにアクセスされる共有メモリで、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方法であって、前記バンクグループ毎のメモリ制御手順と、アクセス先のバンクがビジー状態であったメモリリクエストを一時格納する手順と、前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、前記バンクグループ毎に、アクセスするバンクがビジー状態でなくなったメモリリクエストを選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とする。
【００３３】
本発明の第２の共有メモリアクセス制御方法は、複数のプロセッサにアクセスされる共有メモリで、メモリモジュールを複数バンク構成とし、その複数のバンクを幾つかのグループに分けて制御する共有メモリアクセス制御方法であって、前記バンクグループ毎のメモリ制御手順と、各バンクへのアクセス開始から、アクセス種類に応じた期間までの経過サイクルを計数し各バンクのビジー状態を管理する手順と、アクセス先のバンクがビジー状態であるか、或いは予め定められた選択条件に合致しないメモリリクエストを一時格納する手順と、前記一時格納されたメモリリクエスト及び新たに受信したメモリリクエストについて、アクセス先バンクのビジー状態を、前記管理する手順の結果を参照することによってチェックするバンクチェック手順と、前記バンクチェック手順によってチェックされたアクセス先バンクがビジー状態でなくなったメモリリクエストの一つを、前記バンクグループ毎に選択し、それぞれ対応するメモリ制御手順に渡す手順とを有することを特徴とする。
【００３４】
本発明の第３の共有メモリアクセス制御方法は、前記第１、又は第２の共有メモリアクセス制御方法に於いて、前記バンクグループを奇数バンクのグループと偶数バンクのグループの２つとすることを特徴とする。
【発明の効果】
【００３５】
本発明によれば、リクエストバッファに滞留した複数チャネルにアクセス可能なリクエストを同時にメモリモジュール（記憶素子）にアクセスすることにより、バンク追い越し回路を完全に多重化することなく、即ちハードウエア量の増加を抑えつつ、メモリモジュールに対するアクセス効率を高めシステム性能を向上させることが出来る。
【発明を実施するための最良の形態】
【００３６】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００３７】
図１は、本発明のメモリアクセス制御方式を含む主記憶装置のブロック図である。
【００３８】
主記憶装置は複数メモリバンク構成からなるメモリモジュール３を含む。
【００３９】
メモリモジュール３は複数のメモリチャネルを有し、それぞれのメモリチャネルは、ＳＤＲＡＭ等の記憶素子自体が複数バンク構成の記憶素子で構成する。
【００４０】
図１ではバンク００〜バンクｉの（ｉ＋１）個のバンクを、偶数バンクのグループと奇数バンクのグループに分け、それぞれメモリモジュール（ＣＨ０）３−１、メモリモジュール（ＣＨ１）３−２とする。
【００４１】
図１のバンク追い越し回路１は、各メモリバンクのバンクビジー制御を行うと共にバンク間の排他的メモリアクセス命令追い越し制御を実現するためのバンク追い越し制御回路である。
【００４２】
バンク追い越し回路１は、同時に複数（図では２つ）のリクエストをメモリ制御部２−１、２−２へ出力可能である。
【００４３】
メモリ制御部２−１、２−２は、それぞれ複数バンクにより構成するメモリモジュールにＣＨ０、ＣＨ１として接続し、記憶素子制御のためのコマンド信号、アドレス信号を生成する。
【００４４】
一方、ライトデータおよびリードデータは、データ制御部４−１、４−２を介して記憶素子と接続する。
【００４５】
図２にバンク追い越し回路１の詳細ブロック図を示す。
【００４６】
上位装置からメモリアクセスリクエストを受信リクエストとして入力する。あるメモリアクセスリクエストにより、メモリアクセスが行われると、アクセスしたメモリバンクに対応するバンクビジーカウンタ１４２に、ライト、リード等のアクセス命令毎のバンクビジー時間（アクセス禁止時間）を設定する。
【００４７】
バンクビジー期間中のメモリバンクへのリクエストを受信した場合には、（ｍ＋１）個のリクエストを保持可能なリクエストバッファ１１へリクエストを格納する。
【００４８】
リクエスト格納の順番はワード（ワード記憶）００、０１、・・、ｍの順番で行い、リクエストバッファ１１に格納されたアクセス待ちリクエストは、バッファの各ワード毎にバンクチェック回路１５によりメモリアクセス可能となるタイミングまでリクエストバッファ内に滞留する。
【００４９】
リクエストバッファ１１のリクエスト格納制御方式は、全ワードにリクエストが格納されているケースにおいて、例えば、ワード０３のメモリリクエストが解除され出力された場合、ワード００〜０２のリクエストはホールド状態とし、ワード０４〜ワードｍのリクエストが、それぞれワード０３〜ワードｍ−１にシフトして格納される。
【００５０】
ここで、各メモリチャネルに同時に２つのリクエストがバンクビジー解除により、出力された場合も同様に、リクエスト出力により空きとなったバッファへリクエストをシフトする。
【００５１】
例えば、ワード０３のメモリリクエスト、ワード０４のメモリリクエストが同時に解除され出力された場合、ワード００〜０２のリクエストはホールド状態とし、ワード０５〜ワードｍのリクエストが、それぞれワード０３〜ワードｍ−２にシフトして格納される。
【００５２】
即ち、ワード００〜ｍの各ワードにおいて、そのワード及びそれより若番側のワードに含まれる発行されるリクエスト個数が１以上であれば、そのワードより老い番側のワードに格納され且つ発行対象でないリクエスト列の、前記個数で指定される位置にあるリクエスト情報をそのワードに移す。
【００５３】
メモリモジュールへのアクセスビジー時間は、メモリモジュール内のバンク間やリード、ライト、リフレッシュアクセスにより、予めシステム側で決められた異なるビジー時間が設定されるため、リクエストバッファ１１に滞留するリクエスト間で同時に、ＣＨ０，ＣＨ１へのアクセスが可能となるタイミングが発生する。
【００５４】
リクエストバッファ１１に滞留しているリクエストを、図１のＣＨ０メモリ制御部２−１，ＣＨ１メモリ制御部２−２に出力するためのリクエストセレクタを２個備えることにより、ＣＨ０，ＣＨ１のバンクビジーが同時に解除となった場合に対し、同時にＲＡＭアクセスリクエスト発行が可能となる。
【００５５】
バンクビジー回路１４は、各バンクがビジーであることを示す（ｉ＋１）個のカウンターと、バンクアドレス信号１２−３、１２−４を同時に並行してデコードし、デコード結果の対応するビット同士がＯＲされたデコーダ１４１とを含む。
【００５６】
バンクアドレス信号１２−３はリクエストセレクタ１２−１の出力の内、バンクアドレス部分であり、例えばｉ＝１５であれば４ビットである。
【００５７】
同様に、バンクアドレス信号１２−４はリクエストセレクタ１２−２の出力の内のバンクアドレス部分であり、４ビットの信号である。
【００５８】
上記バンクアドレス信号がデコードされ、対応するバンクビジーカウンタにアクセス種類（リード、ライト、リフレッシュ等）に応じたタイマ値がセットされる。
【００５９】
バンクビジーカウンタは数ビットのカウンタで、値が０でなければビジーを表すものとする。
【００６０】
バンクチェック回路１５は、受信リクエスト及びバッファ滞留中リクエスト各ワードのアクセスバンクがビジー状態であるかどうかの判定を行うための回路である。
【００６１】
バンクチェック回路１５の詳細ブロック図を図４に示す。
【００６２】
バンクチェック回路１５には、リクエストバッファ１１のバッファ各ワード及び受信リクエストのアクセス先のバンクアドレス信号１１−０（Ｂ）〜１１−ｍ（Ｂ）、１１−ｒ（Ｂ）が供給され、セレクタ１５１−０〜１５１−ｍ、１５１−ｒにおいて、指定されるバンクビジー回路１４の値を参照し、各リクエストがメモリモジュールへ出力可能であるかどうかの判定を行なう。
【００６３】
バンクビジーでなく、リクエスト有り（各ワードのバリディティビットや受信リクエスト要求信号）であれば、バンクパス信号をアクティブにし、リクエスト選択回路１６に送出する。
【００６４】
リクエスト選択回路１６の詳細ブロック図を図３に示す。
【００６５】
リクエスト選択回路１６は、バンクチェック回路１５の出力結果より、アクセス可能なリクエストが複数存在するケースにおいて、アクセス排他制御を前提とした、アクセス優先順位決定を行うための選択回路である。
【００６６】
ＣＨ番号デコーダ１６１の各回路は受信リクエスト及びリクエストバッファ各ワードのリクエストの行き先チャネルを決定する。例えば、受信リクエスト及び前記各ワードにおけるバンクアドレスの最下位１ビットが「０」であればＣＨ０、「１」であればＣＨ１と決定する。
【００６７】
ＣＨセレクト回路１６２は、各リクエストがアクセス可能であることを示す各ワードのバンクパス信号をＣＨ０用、ＣＨ１用に展開し、前記決定されたチャネル対応の信号をアクティブにし、ワードセレクト回路１６３に供給する。
【００６８】
ワードセレクト回路１６３は、前記ＣＨセレクト回路１６２で各ＣＨ毎に出力可能なリクエストを分離し、実際にメモリアクセスするリクエストの優先順位付けを行う。
【００６９】
即ち、同一メモリアドレス（バンク）に対する排他制御を実現するための回路である。
【００７０】
具体的な優先順位付けはワード００、０１、０２、・・、ｍ、受信リクエストの順とすることにより、異なるバンク間のリクエスト追い越しを行う一方で同一バンクへのアクセス順序は保証される。
【００７１】
ワードセレクト回路１６３で生成したＣＨ０ワードセレクト信号１６−１はＣＨ０へのアクセスリクエストをセレクトするためのリクエストセレクタ１２−１、ＣＨ１ワードセレクト信号１６−２はＣＨ１へのアクセスリクエストをセレクトするためのリクエストセレクタ１２−２における選択指示となる。
【００７２】
リクエストバッファ１１に示す各ワード及び受信リクエストよりアクセスリクエストをリクエスト出力ＣＨ０、リクエスト出力ＣＨ１として、それぞれ図１に示すＣＨ０メモリ制御部２−１、ＣＨ１メモリ制御部２−２に対しリクエストを発行する。
【００７３】
次に、本発明を実施するための最良の形態の動作について図面を参照して説明する。
【００７４】
本発明のメモリアクセス制御方式の動作を、図５及び図６のタイムチャートに基づき、又図１、２、３も参照しながら説明する。
【００７５】
受信リクエストはマシンサイクル（以下Ｔと記す）毎に、バンク追い越し回路１に入力されるものとする。
【００７６】
簡潔に説明するため、各メモリバンクに対するライトアクセス時の同一バンクビジー時間を５Ｔ、リードアクセス時の同一バンクビジー時間を４Ｔとし、バンク００とバンク０１にアクセスが集中したケースを想定して説明する。
【００７７】
また、バンク追い越し回路１にリクエストを入力（受信リクエスト）してから、出力にかかる時間を１Ｔとする。
【００７８】
図５の時刻Ｔ１において、リクエストＲ００−０（バンク００ライト）へのライトアクセス、Ｔ２において、リクエストＲ０１−０（バンク０１リード）、Ｔ３においてリクエストＲ００−１（バンク００ライト）、Ｔ４においてＲ０１−１（バンク０１リード）、Ｔ５においてリクエストＲ００−２（バンク００ライト）、Ｔ６においてＲ０１−２（バンク０１リード）の順でリクエストを受信したとする。
【００７９】
先ず、リクエストＲ００−０とＲ０１−０は、図２のバンクチェック回路１５、リクエスト選択回路１６により出力が許可され、リクエスト出力ＣＨ０及びリクエスト出力ＣＨ１から対応するメモリ制御部へ出力される。
【００８０】
一方、図２のバンクビジー回路１４には、バンク００ビジー情報およびバンク０１ビジー情報がセットされる。
【００８１】
後続のメモリアクセスリクエストは、バンクビジーのため、バンク追い越し回路１内のリクエストバッファ１１に格納される。
【００８２】
タイムチャートのＴ６において、バンク０、バンク１のビジーが解除となり、バンクチェック回路１５では、リクエストＲ００−１、リクエストＲ０１−１、リクエストＲ００−２、リクエストＲ０１−２の全リクエストについて、アクセス可能であることを示すワードバンクパス信号がイネーブルになる。
【００８３】
リクエスト選択回路１６にて若番ワードに格納されているリクエストを優先的に通過させる制御を行うので、ワード００に格納されたリクエストＲ００−１とワード０１に格納されたリクエストＲ０１−１が、レジスタを介し、Ｔ７でリクエスト出力ＣＨ０及びリクエスト出力ＣＨ１より出力されることになる。
【００８４】
Ｔ７において出力されたリクエストＲ００−１とリクエストＲ０１−１により、再び図２のバンクビジー回路１４には、バンク００ビジー情報およびバンク０１ビジー情報が共にセットされる。
【００８５】
図６に移り、Ｔ１０では、バンク０１のビジーが解除され、ワード０１に格納されているリクエストＲ０１−２がワード００に格納されているリクエストＲ００−２を追い越して出力可能となり、レジスタを介してＴ１１でリクエストＲ０１−２が出力され、以下、同様にメモリアクセス動作を繰り返す。
【００８６】
図５及び図６のタイムチャートには、参考のため従来のバンクアクセス制御方式による、動作も併記している。
【００８７】
従来方式では、リクエストＲ０１−１がＴ８、リクエストＲ０１−２がＴ１３で出力されているのに対し、本発明では、リクエストＲ０１−１がＴ７、リクエストＲ０１−２がＴ１１で出力されることにより、記憶素子に対するアクセス効率を高めることを実現していることが解る。
【００８８】
尚、本発明のメモリアクセス制御方式の他の実施例では、リクエストバッファ１１の例えば、ワード０３のメモリリクエスト、ワード０４のメモリリクエストが同時に解除され出力された場合、ワード００〜０２のリクエストはホールド状態とし、最初のサイクルでワード３は空き（歯抜け）ワードとなり、ワード０５〜ワードｍのリクエストが、それぞれワード０４〜ワードｍ−１にシフトして格納される。
【００８９】
次のサイクルで、ワード０４〜ワードｍ−１の各リクエストがワード０３〜ワードｍ−２にシフトして格納される。
【００９０】
この様な実施例では、図２のリクエストバッファ１１のワード００、０１の入力は、受信リクエストとワード０１のリクエスト、受信リクエストとワード０２のリクエストという様に最大２入力で済む。
【００９１】
次に、本発明の共有メモリアクセス制御方式について図面を参照して詳細に説明する。
【００９２】
図７は、本発明の共有メモリアクセス制御方式を含む共有メモリ型マルチプロセッサシステムのブロック図である。
【００９３】
共有メモリ型マルチプロセッサシステムは、複数のプロセッサ１０−１〜１０−ｎと、これらが共有する共有記憶装置８とこれらを接続する接続装置９を含む。
【００９４】
接続装置９はプロセッサが共有記憶装置８にメモリリクエスト情報（リクエストコマンド、アドレス）やライトデータを転送するための上り方向バス９１と、共有記憶装置８がプロセッサにリードデータを返送するための下り方向バス９２と制御部９３を含む。
【００９５】
共有記憶装置８は共有メモリ制御部７と、メモリモジュール３から構成される。
【００９６】
共有メモリ制御部７は、バンク追い越し回路１とＣＨ０メモリ制御部２−１とＣＨ１メモリ制御部２−２とＣＨ０データ制御部４−１とＣＨ１データ制御部４−２と選択回路５と接続装置Ｉ／Ｆ部（接続装置インタフェース部）６を含む。
【００９７】
接続装置Ｉ／Ｆ部６は、接続装置９からメモリリクエスト情報等を受信するためのレジスタ６１と、接続装置９へのリードデータ等の返送データを保持するためのレジスタ６２と、メモリリクエストの要求元識別を一時格納する制御データバッファ６３を含む。
【００９８】
他の制御部や回路及びメモリモジュール３については、前記メモリアクセス制御方式と同様である。
【００９９】
次に、共有メモリ型マルチプロセッサシステムの動作について図面を参照して説明する。
【０１００】
プロセッサは上り方向バスの使用許可を受け、メモリリクエスト情報（リクエストコマンド、アドレス）やライトデータを上り方向バス９１に送出する。
【０１０１】
一つのプロセッサがメモリリクエストのリプライを待たずに次ぎのリクエストを送出する場合はプロセッサ内識別情報も送出する。
【０１０２】
接続装置Ｉ／Ｆ部６では、要求元プロセッサ番号、或いはこれとプロセッサ内識別情報を制御データバッファの１エントリに書込み、メモリリクエスト情報をレジスタ６１に受信する。
【０１０３】
メモリリクエスト情報をバンク追い越し回路１に送信する。この際、制御データバッファに前記書込みを行ったアドレス（エントリ番号）もリクエスト情報に含めて送る。
【０１０４】
以降メモリリクエストのバンクビジーチェックと追い越しの制御やメモリアクセスを、前記と同様に行う。
【０１０５】
ＣＨ０データ制御部４−１、ＣＨ１データ制御部４−２からのリードデータ等をデータが確定した順で、選択回路５で選択し、リードデータはレジスタ６２に保持し、持ち回られた前記エントリー番号で、制御データバッファ６３より、要求元プロセッサ番号、或いはこれとプロセッサ内識別情報を読み出す。
【０１０６】
要求元プロセッサ番号は接続装置９への制御信号とし、プロセッサ内識別情報はリードデータに付加し下り方向バスに載せる。
【図面の簡単な説明】
【０１０７】
【図１】本発明のメモリアクセス制御方式を含む主記憶装置のブロック図。
【図２】図１のバンク追い越し回路１の詳細ブロック図。
【図３】図２のリクエスト選択回路１６の詳細ブロック図。
【図４】図２のバンクチェック回路１５の詳細ブロック図。
【図５】本発明のメモリアクセス制御方式の動作を説明するためのタイムチャート。
【図６】本発明のメモリアクセス制御方式の動作を説明するためのタイムチャート。
【図７】本発明の共有メモリアクセス制御方式を含む共有メモリ型マルチプロセッサシステムのブロック図。
【図８】複数のバンクグループを同時にアクセス可能な構成を持つタイプのＲＡＭ素子と、従来のバンクチェック及び排他的な命令追い越し制御を含むメモリアクセス方式を結合した主記憶装置を示す図。
【符号の説明】
【０１０８】
１    バンク追い越し回路
１０−１〜１０−ｎ    プロセッサ
１１    リクエストバッファ
１１−０（Ｂ）〜１１−ｍ（Ｂ）    アクセスバンクアドレス信号
１２−１、１２−２    リクエストセレクタ
１２−３、１２−４    バンクアドレス信号
１４    バンクビジー回路
１４１    デコーダ
１４２    バンクビジーカウンタ
１５    バンクチェック回路
１５１−０〜１５１−ｍ、１５１−ｒ    セレクタ
１６    リクエスト選択回路
１６−１    ＣＨ０ワードセレクト信号
１６−２    ＣＨ１ワードセレクト信号
１６１    ＣＨ番号デコーダ
１６２    ＣＨセレクト回路
１６３    ワードセレクト回路
２−１    ＣＨ０メモリ制御部
２−２    ＣＨ１メモリ制御部
３    メモリモジュール
３−１    メモリモジュール（ＣＨ０）
３−２    メモリモジュール（ＣＨ１）
４−１    ＣＨ０データ制御部
４−２    ＣＨ１データ制御部
５    選択回路
６    接続装置Ｉ／Ｆ部
６１    レジスタ
６２    レジスタ
６３    制御データバッファ
７    共有メモリ制御部
８    共有記憶装置
９    接続装置
９１    上り方向バス
９２    下り方向バス
９３    制御部
【図１】
2006099295.tif 000003
【図２】
2006099295.tif 000004
【図３】
2006099295.tif 000005
【図４】
2006099295.tif 000006
【図５】
2006099295.tif 000007
【図６】
2006099295.tif 000008
【図７】
2006099295.tif 000009
【図８】
2006099295.tif 000010