(57)【特許請求の範囲】
【請求項１】
複数のプロセッサとこれらに共有される共有メモリを含むシステムにおけるメモリアクセス制御方式であって、
各プロセッサが、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、
新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、
共有メモリアクセス要求のアクセス時間を監視する手段と、
監視結果の状態値毎の共有メモリの負荷予測値が格納された予測テーブル格納部と、
前記共有メモリアクセス要求についての監視結果の状態値をキーとし前記予測テーブルを参照し該当する負荷予測値を得てこれに基づき前記許容発行数の増減を指示する第１の負荷予測手段と、
前記増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブルの前記予測値を更新する予測結果監視手段とを有することを特徴とするメモリアクセス制御方式。
【請求項２】
前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、
前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記予測テーブルの負荷予測値を、アクセス時間が前記閾値を越える負荷状態か否かを示すフラグ値とし、
前記予測結果監視手段が、予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに予測テーブルの前記予測値を更新することを特徴とする請求項１に記載のメモリアクセス制御方式。
【請求項３】
複数のプロセッサとこれらに共有される共有メモリを含むシステムにおけるメモリアクセス制御方式であって、
各プロセッサが、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、
新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、
共有メモリアクセス要求のアクセス時間を監視する手段と、
前記監視結果の状態値毎の共有メモリの負荷を予測する初期予測回路と、この出力である初期予測値に対する変更情報を保持する手段とによって共有メモリのアクセス負荷を予測し、予測結果に基づき前記許容発行数を増減する第２の負荷予測手段と、
前記許容発行数の増減後の共有メモリアクセス時間の監視結果から前記予測の正当性を判定し、判定結果に応じて前記変更情報を更新する予測結果監視手段とを有することを特徴とするメモリアクセス制御方式。
【請求項４】
前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、
前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記初期予測値をアクセス時間が前記閾値を越える負荷状態か否かを示す初期予測フラグ値とし、前記変更情報を前記初期予測のフラグ値を反転して参照するか否かを示す反転指示フラグ値とし、
前記予測結果監視手段が、初期予測フラグ値と反転指示フラグ値とで決まる予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに反転指示フラグ値を反転する様にしたことを特徴とする請求項３に記載のメモリアクセス制御方式。
【請求項５】
前記プロセッサには、前記許容発行数及び変更情報の初期化指示を含む命令語であることを解読する命令語解読手段と、
前記命令語である旨の解読結果を受け、先行する命令によるメモリアクセスが仕掛かり中でないことを条件として前記許容発行数の所定初期値への設定及び変更情報のクリアを行う手段を有することを特徴とする請求項３記載のメモリアクセス制御方式。
【請求項６】
前記発行数制御手段が、予め設定された下限値と上限値を保持し、この範囲内に収まる様に許容発行数の増減を行うことを特徴とする請求項１、又は３に記載のメモリアクセス制御方式。
【請求項７】
共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、
新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、
共有メモリアクセス要求のアクセス時間を監視する手段と、
監視結果の状態値毎の共有メモリの負荷予測値が格納された予測テーブル格納部と、
前記共有メモリアクセス要求についての監視結果の状態値をキーとし前記予測テーブルを参照し該当する負荷予測値を得てこれに基づき前記許容発行数の増減を指示する第１の負荷予測手段と、
前記増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブルの前記予測値を更新する予測結果監視手段とを有することを特徴とするプロセッサ装置。
【請求項８】
前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、
前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記予測テーブルの負荷予測値を、アクセス時間が前記閾値を越える負荷状態か否かを示すフラグ値とし、
前記予測結果監視手段が、予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに予測テーブルの前記予測値を更新することを特徴とする請求項７に記載のプロセッサ装置。
【請求項９】
共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、
新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、
共有メモリアクセス要求のアクセス時間を監視する手段と、
前記監視結果の状態値毎の共有メモリの負荷を予測する初期予測回路と、この出力である初期予測値に対する変更情報を保持する手段とによって共有メモリのアクセス負荷を予測し、予測結果に基づき前記許容発行数を増減する第２の負荷予測手段と、
前記許容発行数の増減後の共有メモリアクセス時間の監視結果から前記予測の正当性を判定し、判定結果に応じて前記変更情報を更新する予測結果監視手段とを有することを特徴とするプロセッサ装置。
【請求項１０】
前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、
前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記初期予測値をアクセス時間が前記閾値を越える負荷状態か否かを示す初期予測フラグ値とし、前記変更情報を前記初期予測のフラグ値を反転して参照するか否かを示す反転指示フラグ値とし、
前記予測結果監視手段が、初期予測フラグ値と反転指示フラグ値とで決まる予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに反転指示フラグ値を反転する様にしたことを特徴とする請求項９に記載のプロセッサ装置。
【請求項１１】
前記許容発行数及び変更情報の初期化指示を含む命令語であることを解読する命令語解読手段と、
前記命令語である旨の解読結果を受け、先行する命令によるメモリアクセスが仕掛かり中でないことを条件として前記許容発行数の所定初期値への設定及び変更情報のクリアを行う手段を有することを特徴とする請求項９記載のプロセッサ装置。
【請求項１２】
前記発行数制御手段が、予め設定された下限値と上限値を保持し、この範囲内に収まる様に許容発行数の増減を行うことを特徴とする請求項７、又は９に記載のプロセッサ装置。
【請求項１３】
複数のプロセッサとこれらに共有される共有メモリを含むシステムのプロセッサにおけるメモリアクセス制御方法であって、
共有メモリアクセス要求の許容発行数を保持し、指示に基づき更新する発行数制御ステップと、
アクセス監視結果の状態値毎の共有メモリの負荷予測値を予測テーブル情報として記憶装置に保持するステップと、
共有メモリアクセス要求のアクセス時間を監視するステップと、
新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行ステップと、
前記共有メモリアクセス要求についての監視結果の状態値をキーとし前記予測テーブル情報を参照し該当する負荷予測値を得てこれに基づき共有メモリアクセス要求の許容発行数を増減を指示する第１の負荷予測ステップと、
前記増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブル情報の前記予測値を更新する予測結果監視ステップとを有することを特徴とするメモリアクセス制御方法。
【請求項１４】
前記アクセス監視結果の状態値を、連続する所定個数の共有メモリアクセス要求の各アクセス時間が、予め設定された閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記予測テーブル情報の負荷予測値を、アクセス時間が前記閾値を越える負荷状態か否かを示すフラグ値とし、
前記アクセス時間を監視するステップを、前記連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視するステップとし、
前記予測結果監視ステップで、予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに予測テーブルの前記予測値を更新することを特徴とする請求項１３に記載のメモリアクセス制御方法。
【請求項１５】
複数のプロセッサとこれらに共有される共有メモリを含むシステムのプロセッサにおけるメモリアクセス制御方法であって、
共有メモリアクセス要求の許容発行数を保持し、指示に基づき更新する発行数制御ステップと、
アクセス監視結果の状態値に対応して共有メモリの負荷予測の初期値情報を予め設定しておき、初期値に対する動的変更情報をクリアしておくステップと、
共有メモリアクセス要求のアクセス時間を監視するステップと、
新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行ステップと、
前記監視するステップより、監視結果を受けこの状態値に対応する初期値情報と変更情報から共有メモリ負荷を予測し、予測結果に基づき前記許容発行数の増減を指示する第２の負荷予測ステップと、
前記許容発行数の増減後の共有メモリアクセス時間の監視結果から前記予測の正当性を判定し、判定結果に応じて前記変更情報を更新する予測結果監視ステップとを有することを特徴とするメモリアクセス制御方法。
【請求項１６】
前記アクセス監視結果の状態値を、連続する所定個数の共有メモリアクセス要求の各アクセス時間が、予め設定された閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記初期予測値をアクセス時間が前記閾値を越える負荷状態か否かを示す初期予測フラグ値とし、前記変更情報を前記初期予測のフラグ値を反転して参照するか否かを示す反転指示フラグ値とし、
前記アクセス時間を監視するステップを、前記連続する所定数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視するステップとし、
前記予測結果監視ステップが、初期予測フラグ値と反転指示フラグ値とで決まる予測がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに反転指示フラグ値を反転する様にしたことを特徴とする請求項１５に記載のメモリアクセス制御方法。
【請求項１７】
前記許容発行数及び変更情報の初期化指示を含む命令語であることも解読する命令語解読ステップと、
前記命令語である旨の解読結果を受け、先行する命令によるメモリアクセスが仕掛かり中でないことを条件として前記許容発行数の所定初期値への設定、変更情報のクリアを行うステップを有することを特徴とする請求項１５記載のメモリアクセス制御方法。
【請求項１８】
前記発行数制御ステップが、予め決められた下限値と上限値を保持するステップを有し、指示を受けるとこの範囲内に収まる様に許容発行数の増減を行うことを特徴とする請求項１３、又は１５に記載のメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリアクセス制御方式と方法、及びプロセッサ装置に関し、特に、複数のプロセッサとこれらに共有される共有メモリを含むシステムにおけるメモリアクセス制御方式と、前記システムのプロセッサにおけるメモリアクセス制御方法、及びプロセッサ装置に関する。
【背景技術】
【０００２】
従来より、共有メモリ型のマルチプロセッサシステムにおいては、一つのメモリに対して複数のプロセッサが同時にアクセスするために、メモリからプロセッサへのリプライが遅くなり、プロセッサの処理性能を低下させ、この影響がシステム全体にも波及し、システム性能の低下を引き起こす。
【０００３】
この解決策として、プロセッサ毎にメモリアクセス命令の発行数に上限を定め、前記発行数が上限に達してしまった際にはビジー信号で新たな処理を抑止するという第１の方式がある。
【０００４】
また、第２の方式として複数のＣＰＵユニットがバスを通じて共通の主記憶モジュールと入出力制御モジュールにアクセスする様にしたマルチプロセッサ型の情報処理装置において、バスの繁忙状態を測定し、これが閾値に達するとその旨をＣＰＵに割込み要求を発行し通知し、ディスパッチャが、繁忙状態を軽減させるようなジョブスケジューリングを行う様にした高負荷ジョブ負荷分散方式がある（特許文献１参照。）。
【０００５】
【特許文献１】特開平１０−２４０６９８号公報（第１〜２ページ）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の第１の方式においては、一度ビジー信号で処理を抑止してしまったならば、発行を再開するには、共有メモリの負荷緩和を待つ必要があるために時間が掛かってしまい、また、メモリアクセスに関与しない演算系命令まで停止してしまう恐れもあるという第１の課題がある。
【０００７】
また、従来の第２の方式においては、ソフトウェアによるジョブスケジューリングを必要とするため、高いスキルと開発コストが掛かってしまうという第２の課題がある。
【０００８】
ここで、解決策として、共有メモリ側でアクセス状態ないし負荷状態を監視し、監視結果を各プロセッサに通知して、プロセッサに負荷を調整させる（新たなアクセス要求の発行をウェイトさせる）方式も考えられるが、この方式では共有メモリと各プロセッサ間に余分にインタフェース（信号ラインや送受信のドライバやレシーバ及びバッファレジスタ等）を追加する必要があるという第３の課題がある。
【０００９】
本発明の目的は、共有メモリ型のマルチプロセッサシステムにおいて、各プロセッサが自律的にメモリ負荷を予測することで極力ビジー信号による処理の停止を抑えたメモリアクセス制御方式と方法、及びプロセッサ装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１のメモリアクセス制御方式は、複数のプロセッサとこれらに共有される共有メモリを含むシステムにおけるメモリアクセス制御方式であって、各プロセッサが、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、共有メモリアクセス要求のアクセス時間を監視する手段と、監視結果の状態値毎の共有メモリの負荷予測値が格納された予測テーブル格納部と、前記共有メモリアクセス要求についての監視結果の状態値をキーとし前記予測テーブルを参照し該当する負荷予測値を得てこれに基づき前記許容発行数の増減を指示する第１の負荷予測手段と、前記増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブルの前記予測値を更新する予測結果監視手段とを有する。
【００１１】
本発明の第２のメモリアクセス制御方式は、前記第１のメモリアクセス制御方式であって、前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記予測テーブルの負荷予測値を、アクセス時間が前記閾値を越える負荷状態か否かを示すフラグ値とし、前記予測結果監視手段が、予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに予測テーブルの前記予測値を更新する。
【００１２】
本発明の第３のメモリアクセス制御方式は、複数のプロセッサとこれらに共有される共有メモリを含むシステムにおけるメモリアクセス制御方式であって、各プロセッサが、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、共有メモリアクセス要求のアクセス時間を監視する手段と、前記監視結果の状態値毎の共有メモリの負荷を予測する初期予測回路と、この出力である初期予測値に対する変更情報を保持する手段とによって共有メモリのアクセス負荷を予測し、予測結果に基づき前記許容発行数を増減する第２の負荷予測手段と、前記許容発行数の増減後の共有メモリアクセス時間の監視結果から前記予測の正当性を判定し、判定結果に応じて前記変更情報を更新する予測結果監視手段とを有する。
【００１３】
本発明の第４のメモリアクセス制御方式は、前記第３のメモリアクセス制御方式であって、前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記初期予測値をアクセス時間が前記閾値を越える負荷状態か否かを示す初期予測フラグ値とし、前記変更情報を前記初期予測のフラグ値を反転して参照するか否かを示す反転指示フラグ値とし、前記予測結果監視手段が、初期予測フラグ値と反転指示フラグ値とで決まる予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに反転指示フラグ値を反転する様にした。
【００１４】
本発明の第５のメモリアクセス制御方式は、前記第３のメモリアクセス制御方式であって、前記プロセッサには、前記許容発行数及び変更情報の初期化指示を含む命令語であることを解読する命令語解読手段と、前記命令語である旨の解読結果を受け、先行する命令によるメモリアクセスが仕掛かり中でないことを条件として前記許容発行数の所定初期値への設定及び変更情報のクリアを行う手段を有する。
【００１５】
本発明の第６のメモリアクセス制御方式は、前記第１、又は第３のメモリアクセス制御方式であって、前記発行数制御手段が、予め設定された下限値と上限値を保持し、この範囲内に収まる様に許容発行数の増減を行う。
【００１６】
本発明の第１のプロセッサ装置は、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、共有メモリアクセス要求のアクセス時間を監視する手段と、監視結果の状態値毎の共有メモリの負荷予測値が格納された予測テーブル格納部と、前記共有メモリアクセス要求についての監視結果の状態値をキーとし前記予測テーブルを参照し該当する負荷予測値を得てこれに基づき前記許容発行数の増減を指示する第１の負荷予測手段と、前記増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブルの前記予測値を更新する予測結果監視手段とを有する。
【００１７】
本発明の第２のプロセッサ装置は、前記第１のプロセッサ装置であって、前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記予測テーブルの負荷予測値を、アクセス時間が前記閾値を越える負荷状態か否かを示すフラグ値とし、前記予測結果監視手段が、予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに予測テーブルの前記予測値を更新する。
【００１８】
本発明の第３のプロセッサ装置は、共有メモリアクセス要求の許容発行数を保持し指示に基づき更新する発行数制御手段と、新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行手段と、共有メモリアクセス要求のアクセス時間を監視する手段と、前記監視結果の状態値毎の共有メモリの負荷を予測する初期予測回路と、この出力である初期予測値に対する変更情報を保持する手段とによって共有メモリのアクセス負荷を予測し、予測結果に基づき前記許容発行数を増減する第２の負荷予測手段と、前記許容発行数の増減後の共有メモリアクセス時間の監視結果から前記予測の正当性を判定し、判定結果に応じて前記変更情報を更新する予測結果監視手段とを有する。
【００１９】
本発明の第４のプロセッサ装置は、前記第３のプロセッサ装置であって、前記アクセス時間を監視する手段を、連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視する手段とし、前記監視結果の状態値を前記閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記初期予測値をアクセス時間が前記閾値を越える負荷状態か否かを示す初期予測フラグ値とし、前記変更情報を前記初期予測のフラグ値を反転して参照するか否かを示す反転指示フラグ値とし、前記予測結果監視手段が、初期予測フラグ値と反転指示フラグ値とで決まる予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに反転指示フラグ値を反転する様にした。
【００２０】
本発明の第５のプロセッサ装置は、前記第３のプロセッサ装置であって、前記許容発行数及び変更情報の初期化指示を含む命令語であることを解読する命令語解読手段と、前記命令語である旨の解読結果を受け、先行する命令によるメモリアクセスが仕掛かり中でないことを条件として前記許容発行数の所定初期値への設定及び変更情報のクリアを行う手段を有する。
【００２１】
本発明の第６のプロセッサ装置は、前記第１、又は第３のプロセッサ装置であって、前記発行数制御手段が、予め設定された下限値と上限値を保持し、この範囲内に収まる様に許容発行数の増減を行う。
【００２２】
本発明の第１のメモリアクセス制御方法は、複数のプロセッサとこれらに共有される共有メモリを含むシステムのプロセッサにおけるメモリアクセス制御方法であって、共有メモリアクセス要求の許容発行数を保持し、指示に基づき更新する発行数制御ステップと、アクセス監視結果の状態値毎の共有メモリの負荷予測値を予測テーブル情報として記憶装置に保持するステップと、共有メモリアクセス要求のアクセス時間を監視するステップと、新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行ステップと、前記共有メモリアクセス要求についての監視結果の状態値をキーとし前記予測テーブル情報を参照し該当する負荷予測値を得てこれに基づき共有メモリアクセス要求の許容発行数を増減を指示する第１の負荷予測ステップと、前記増減を行った後の共有メモリアクセス時間の監視結果から予測値の正当性を判定し、判定結果に応じて予測テーブル情報の前記予測値を更新する予測結果監視ステップとを有する。
【００２３】
本発明の第２のメモリアクセス制御方法は、前記第１のメモリアクセス制御方法であって、前記アクセス監視結果の状態値を、連続する所定個数の共有メモリアクセス要求の各アクセス時間が、予め設定された閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記予測テーブル情報の負荷予測値を、アクセス時間が前記閾値を越える負荷状態か否かを示すフラグ値とし、前記アクセス時間を監視するステップを、前記連続する所定個数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視するステップとし、前記予測結果監視ステップで、予測値がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測値がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに予測テーブルの前記予測値を更新する。
【００２４】
本発明の第３のメモリアクセス制御方法は、複数のプロセッサとこれらに共有される共有メモリを含むシステムのプロセッサにおけるメモリアクセス制御方法であって、共有メモリアクセス要求の許容発行数を保持し、指示に基づき更新する発行数制御ステップと、アクセス監視結果の状態値に対応して共有メモリの負荷予測の初期値情報を予め設定しておき、初期値に対する動的変更情報をクリアしておくステップと、共有メモリアクセス要求のアクセス時間を監視するステップと、新たなアクセス要求がリプライ待ちの要求数と合わせて前記許容発行数を越える場合、新たなアクセス要求の発行を抑止する共有メモリアクセス要求発行ステップと、前記監視するステップより、監視結果を受けこの状態値に対応する初期値情報と変更情報から共有メモリ負荷を予測し、予測結果に基づき前記許容発行数の増減を指示する第２の負荷予測ステップと、前記許容発行数の増減後の共有メモリアクセス時間の監視結果から前記予測の正当性を判定し、判定結果に応じて前記変更情報を更新する予測結果監視ステップとを有する。
【００２５】
本発明の第４のメモリアクセス制御方法は、前記第３のメモリアクセス制御方法であって、前記アクセス監視結果の状態値を、連続する所定個数の共有メモリアクセス要求の各アクセス時間が、予め設定された閾値を越える／否を示したフラグを前記所定個数分並べたデータ値とし、前記初期予測値をアクセス時間が前記閾値を越える負荷状態か否かを示す初期予測フラグ値とし、前記変更情報を前記初期予測のフラグ値を反転して参照するか否かを示す反転指示フラグ値とし、前記アクセス時間を監視するステップを、前記連続する所定数の共有メモリアクセス要求について、各要求のアクセス時間が予め設定された閾値を越えるかを監視するステップとし、前記予測結果監視ステップが、初期予測フラグ値と反転指示フラグ値とで決まる予測がアクセス時間が閾値を越えない負荷状態で、許容発行数の増加を行った後の共有メモリアクセス時間の監視結果が閾値を越えるという予測ミスが所定回数に達したとき、及び、予測がアクセス時間が閾値を越える負荷状態で、許容発行数の減少を行った後の共有メモリアクセス時間の監視結果が所定個数分連続して閾値を越えなかったときに反転指示フラグ値を反転する様にした。
【００２６】
本発明の第５のメモリアクセス制御方法は、前記第３のメモリアクセス制御方法であって、前記許容発行数及び変更情報の初期化指示を含む命令語であることも解読する命令語解読ステップと、前記命令語である旨の解読結果を受け、先行する命令によるメモリアクセスが仕掛かり中でないことを条件として前記許容発行数の所定初期値への設定、変更情報のクリアを行うステップを有する。
【００２７】
本発明の第６のメモリアクセス制御方法は、前記第１、又は第３のメモリアクセス制御方法であって、前記発行数制御ステップが、予め決められた下限値と上限値を保持するステップを有し、指示を受けるとこの範囲内に収まる様に許容発行数の増減を行う。
【発明の効果】
【００２８】
本発明においては、各プロセッサが自律的に共有メモリへのメモリアクセス要求発行数を制御しているので、共有メモリ側からの共通のビジー信号で新たなアクセス要求を抑止する方式等に生ずる、発行再開する際の遅れ（共有メモリがビジー解除する際の遅れや解除指示の転送による遅れ等）が無くなる、或いは低減されるので、プロセッサの性能が低下せずに済むという効果がある。
【００２９】
また負荷予測により増減される許容発行数でメモリアクセス要求発行数を制御しているので、許容発行数が固定されている方式に生ずる特定の幾つかのプロセッサのみアクセス要求が多くなる場合の不要な抑止がなくなるという効果もある。
【発明を実施するための最良の形態】
【００３０】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００３１】
図１を参照すると、本発明の実施形態としての共有メモリシステムの構成図が示されている。図１において、ｎ個のプロセッサ１−１〜１−ｎが共有メモリ２と各々接続されている、共有メモリシステムを示している。
【００３２】
図１において、各プロセッサのメモリアクセス要求監視部３−１〜３−ｎはメモリアクセス時間を観測する要求（リクエスト）を決定し、予め定めた閾値ｔを超えるか超えないかを監視する。また、図１において各プロセッサのメモリ負荷予測部４−１〜４−ｎはメモリアクセス要求の許容発行数を制御する際の予測を司るブロックであり、発行数制御部５−１〜５−ｎは前記メモリ負荷予測部４−１〜４−ｎを参照してメモリアクセス要求の許容発行数の増減を制御する。
【００３３】
予測結果観測部６−１〜６−ｎは前記予測に基づいた制御後のメモリアクセス時間から予測の正当性を判断し、必要に応じて前記メモリ負荷予測部４−１〜４−ｎの予測を変更する。
【００３４】
先ず、本発明の第１の実施例について説明する。図２、図３は、図１に示す各プロセッサ内の各部の詳細な構成を示したブロック図の分割図（１／２）、分割図（２／２）である。図中の（１）〜（Ａ）は相手の図との繋ぎを示すタグである。
【００３５】
図２及び図３を参照し、プロセッサは、共有メモリからのレシーバＲＸ７と、共有メモリへのトランスミッタＴＸ８を有し、許容発行数レジスタ２５を参照してメモリアクセス要求発行部２６はメモリアクセス要求の発行数を制御する。
【００３６】
即ち、メモリアクセス要求発行部２６は、発行済みリプライ待ちの要求数をアップ・ダウンカウンタ等（図示せず）に保持しており、これと発行しようとする新たなメモリアクセス要求とを合わせて許容発行数を越える場合、新たなメモリアクセス要求の発行を抑止する。
【００３７】
そして、レシーバＲＸ７を通じリプライを受信し前記アップ・ダウンカウンタ等がデクリメントされるか、許容発行数が増加されると前記新たなメモリアクセス要求を発行し、前記アップ・ダウンカウンタをインクリメントする。
【００３８】
本実施例では３つの連続したメモリアクセス要求のメモリアクセス時間からメモリ負荷を予測するので、図２の識別子格納部９はメモリアクセス要求発行部２６（図３）で発行した要求の中から、メモリアクセス時間を監視すると定めた要求の識別子を格納しておく。
【００３９】
実際には監視するメモリアクセス要求毎に有するメモリアクセス要求監視部１０−１〜１０−３の有効ビット（メモリアクセス要求監視Ｖ１〜Ｖ３）が無効になっていれば、メモリアクセス要求の監視を開始し、前記有効ビットを有効に変更する。
メモリアクセス要求監視部１０−１〜１０−３のメモリアクセス時間カウンタ＃１〜＃３は、各々のメモリアクセス時間をカウントしている。
【００４０】
図２において、メモリアクセス要求監視番号カウンタ１１は、本実施例では３つの連続したメモリアクセス要求を一単位としてメモリアクセス時間の遷移状況を観測しているため、何番目の要求かをカウントしているカウンタである。メモリアクセス要求監視番号保持レジスタ１２は、３番目のメモリアクセス要求受信のタイミングを知るために設けたレジスタである。
【００４１】
また、観測レジスタ１３−１〜１３−５は閾値ｔ以内でメモリアクセスが完了したかどうかの観測結果を保持しているレジスタであり、監視している要求へのリプライを受け取る、或いは閾値ｔを超えてしまうたびに観測レジスタ１３−１〜１３−４の値は観測レジスタ１３−２〜１３−５へシフトされていく。
【００４２】
ここで観測レジスタ１３−１には最新の観測結果が格納され、具体的な観測方法は、メモリアクセス要求監視部１０−１〜１０−３のいずれかのメモリアクセス時間カウンタが閾値ｔと等しくなれば‘１’、前記メモリアクセス時間カウンタが閾値ｔと等しくなる以前に識別子格納部９に格納されているいずれかの識別子と同じ識別子の要求を受信すれば‘０’を格納する。
【００４３】
現状態レジスタ１４は観測した３要求分のメモリアクセス時間のパターン（０００〜１１１の８種）を示し、予測テーブル２３（図３）から前記現状態レジスタ１４の状態パターンに対応する予測を読み出す。
【００４４】
図３に移り説明すると、ＷＤ１９、ＷＥ２０、ＷＡ２１、ＲＡ２２はＲＡＭである予測テーブル２３のライトデータ、ライトイネーブル、ライトアドレス、リードアドレスに相当する。
【００４５】
前記予測テーブル２３から読み出した予測に基づいて制御レジスタ２４の制御Ｉが決まる。制御Ｉは増加制御時には‘０’、減少制御時には‘１’となる。
制御レジスタ２４の有効ビットＶは、予測テーブル２３の読み出しタイミングと合わせるために、２段の有効ビット持ち回りレジスタ１６−１〜１６−２を用意してタイミング調整をしている。
【００４６】
同様に前状態レジスタ１５（図２）は予測後の観測結果から該当予測を変更させるパターンを示す。
【００４７】
ここで本実施例の予測方法について述べておく。簡単に予測すれば、３番目のメモリアクセス時間が長ければメモリ負荷が高いため、次のアクセスも長くなる可能性が高い。故に「超える」と予測し、許容発行数減少制御（Ｉ＝‘１’）を行う。
【００４８】
ところが３番目のメモリアクセス時間が閾値ｔより短い場合に、メモリ負荷がないとは容易に予測はできない。当予測はジョブ依存などのような突発的な要因が大きく関係するためである。
【００４９】
そこで「超えない」の予測時はパターン毎の予測ミスカウンタ１７でパターン毎に予測ミス回数をカウントしておき、前記予測ミスカウンタ１７が閾値ｃと等しくなってしまった場合に該当パターン（前状態レジスタ１５）の予測を「超える」に切り替える。
【００５０】
補足として、カウントアップ指示レジスタ２７はカウントアップのタイミングを予測テーブル２３の読み出しと合わせるために設けてある。
【００５１】
逆に「超える」の予測直後も結果を観測しておき、５回連続でメモリアクセス時間が閾値ｔより短ければ予測ミスと判断し、該当パターン（前状態レジスタ１５）の予測を「超えない」に変更して性能向上を図る。以上説明した予測テーブル２３に書き込む予測値を予測変更部１８で作成する。
【００５２】
前記予測方法に基づく図３のメモリアクセス要求の許容発行数の増加、減少制御は２ずつ行っている。しかし、前記制御において限りなく増加、減少を続けてしまうわけにはいかないため、上限値Ｕと下限値Ｌを予め指定しておく。
【００５３】
以上詳細に実施例の構成を述べたが、図３の予測テーブル２３に相当するＲＡＭは、当業者にとってよく知られており、また本発明とは直接関係しないので、その詳細な構成は省略する。
【００５４】
また、図３の予測ミスカウンタ１７はレジスタ部が８個あり、これを前状態レジスタ値（７）で選択し、閾値ｃと比較する。インクリメント信号とクリア指示信号のＯＲ信号と前状態レジスタ値の３ＴＯ８デコード出力のＡＮＤで各レジスタ部に入力がストローブされ、それ以外では自己値をホールドする。
【００５５】
次に、本発明の第１の実施例の動作について図面を参照して説明する。図２及び図３の各プロセッサの予測によるメモリアクセス要求発行数の制御動作を図４及び図５のフローチャートを使用して説明する。
【００５６】
図４において、メモリアクセス要求監視部１０−１〜１０−３の有効ビット（メモリアクセス要求監視Ｖ１〜３）が有効になると、メモリアクセス時間カウンタ１〜３がカウントアップを開始する（図４のステップＡ１）。
【００５７】
そして、いずれかの前記メモリアクセス時間カウンタ１〜３が閾値ｔを超えてしまうと（ステップＡ２）、観測レジスタ１３−１〜１３−４の値を観測レジスタ１３−２〜１３−５にシフトし、観測レジスタ１３−１に‘１’を格納する（ステップＡ３）。
【００５８】
但し、前記メモリアクセス時間カウンタ１〜３が閾値ｔを超える前にリプライが返ってきたケースでも同様に観測レジスタ１３−１〜１３−４の値を観測レジスタ１３−２〜１３−５にシフトするが、観測レジスタ１３−１には‘０’を格納する（ステップＡ４）。
【００５９】
それからメモリアクセス要求監視番号カウンタ１１が「２」であるかを判定し（ステップＡ５）、「２」でなければまだ３つのメモリアクセス要求のメモリアクセス時間を観測していないため、メモリアクセス要求監視番号カウンタ１１をカウントアップする（ステップＡ６）。
【００６０】
「２」の場合には、まず観測レジスタ１３−１〜１３−５が全て‘０’かチェックする（ステップＡ７）。これは予測「超える」の制御後、実際に越えたかどうかを判定しているステージで、全て‘０’、つまり制御後５回連続で「超えない」結果だったため、予測テーブル２３の前状態レジスタ１５に該当するパターンの予測を「超えない」に変更する（ステップＡ８）。
【００６１】
また、３つのメモリアクセス時間の観測パターンが得られた時点でメモリアクセス要求監視番号カウンタ１１をリセットし、前状態レジスタ１５に現状態レジスタ１４の値をコピーし、現状態レジスタ１４に観測レジスタ１３−１〜１３−３の値を格納する（ステップＡ９）。
【００６２】
次に予測を行う前に観測レジスタ１３−１の値が‘１’かどうかのチェックをする（ステップＡ１０）。このタイミングは前状態レジスタ１５に該当するパターンの予測制御から３番目のメモリアクセス要求のメモリアクセス時間監視に対応する。
【００６３】
従って、前記チェックで‘１’の場合、予測テーブル２３の前状態レジスタ１５に該当するパターンの予測値を読み出し（ステップＡ１１）、前記読み出し予測値が「超えない」のケース（ステップＡ１２）では予測がミスしてしまったこととなり、予測ミスカウンタ１７の該当パターンをカウントアップさせる（ステップＡ１３）。
【００６４】
そして、カウントアップした予測ミスカウンタ１７が閾値ｃ以上になったら（ステップＡ１４）、予測テーブル２３の該当するパターンの予測を「超える」に変更し、該当予測ミスカウンタ１７をリセットする（ステップＡ１５）。
【００６５】
図５に移り、予測に基づくメモリアクセス要求の許容発行数制御のフローの説明をする。予測テーブル２３の現状態レジスタ１４に該当するパターンの予測値を読み出し（図５のステップＡ１６）、「０：超えない」ならば現許容発行数を２増加させ、「１：超える」ならば現許容発行数を２減少させる（ステップＡ１７）。
【００６６】
ここで、変更後の許容発行数が上限値Ｕを超えてしまえば、許容発行数を上限値Ｕにセットする（ステップＡ１８、Ａ１９）。同様に変更後の許容発行数が下限値Ｌ以下になってしまえば、許容発行数を下限値Ｌにセットする（ステップＡ２０、Ａ２１）。
以上で予測に基づく制御が完了し、後続のメモリアクセス要求の監視に移る。
【００６７】
また、図３において予測ミスカウンタ１７が閾値ｃ以上になったケースの動作を図６及び図７のタイムチャートを参照し説明する。
本ケースでは閾値ｃを１０、上限値Ｕを３０、下限値Ｌを１０とし、メモリアクセス要求（７）はメモリアクセス要求監視部１０−１〜１０−３の有効ビット（メモリアクセス要求監視Ｖ１〜Ｖ３）が全て‘１’のために監視不可能とする。
【００６８】
図６を参照し、先ずは、メモリアクセス要求（１）（２）（３）を監視している。メモリアクセス要求監視番号カウンタ１１が「２」の状態でメモリアクセス要求（３）を受け取ると、前状態レジスタ１５に現状態レジスタ１４の値が移り、観測レジスタ１３−１〜１３−３の値が現状態レジスタ１４に保持される。
【００６９】
ここでメモリアクセス要求（２）は閾値ｔを超えてリプライが返ってきたために、現状態レジスタ１４は０１０に更新され、有効ビット持ち回りレジスタ１６−１も‘１’となる（図６のＴ１）。
【００７０】
それから１Ｔ（１マシンサイクル）後の有効ビット持ち回りレジスタ１６−２が‘１’になったタイミングで予測テーブル２３のリードアドレスが０１０となる。図７に移り、更に１Ｔ後の制御Ｖが‘１’になった時点で予測テーブル２３のパターン０１０に対応する予測（ここでは「０：超えない」）を読み出し、制御Ｉも‘０’になる。
前記制御Ｖ、Ｉにしたがって許容発行数は２増加し、「１４」となる。
【００７１】
図６に戻り、メモリアクセス要求（４）（５）（６）も同様に監視され、この３要求のパターンは、メモリアクセス要求（５）、（６）が閾値ｔを超えてしまったために０１１となり、再度有効ビット持ち回りレジスタ１（１６−１）も‘１’となる（図６のＴ２）。
【００７２】
今回は観測レジスタ１３−１の値が‘１’なので、状態レジスタ更新指示直後にカウントアップ指示レジスタ２７は‘１’になる（図６のＴ３）。前記カウントアップ指示レジスタ２７が‘１’の時のリードデータは前状態レジスタ１５の予測に該当し、予測が「０：超えない」なので次Ｔ（次マシンサイクル）でパターン０１０に該当する予測ミスカウンタ１７がカウントアップし「１０」になる。
【００７３】
そして前記予測ミスカウンタ１７は閾値ｃと一致してしまうため、ライトイネーブルは書き込みにセットされ（図６のＴ４）、ライトデータ（予測）は「１：超える」になり（図６のＴ５）、次のタイミングでアドレス０１０に書き込まれる。
これにより、予測テーブル２３のパターン０１０に該当する予測値が変更される。
【００７４】
以上説明した様に、第１の実施例においては、以下に記載するような効果を奏する。第１の効果は各プロセッサが自律的に共有メモリへのメモリアクセス要求発行数を制御しているので、ソフトウェアによるメモリ負荷軽減処理が必要ないことである。
【００７５】
第２の効果は各プロセッサが自律的に共有メモリへのメモリアクセス要求発行数を制御しているので、共有メモリ側における制御が必要なく、またプロセッサ−共有メモリ間のインタフェースの増加がないということである。
【００７６】
第３の効果は、メモリアクセス要求発行数の制御を、負荷予測に基づいて増減される許容発行数で制御しているので、共有メモリシステムにおいて、ある特定のプロセッサのみが共有メモリにアクセスしている場合、該当プロセッサの許容発行数を徐々に増やすことができるために、メモリアクセス系命令だけでなく演算系命令のホールドも抑止でき、性能向上が見込めることである。
【００７７】
第４の効果は各プロセッサのポート毎に閾値ｔを設定し、ポート毎にメモリアクセス要求発行数を制御可能なので、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒ−Ｍｅｍｏｒｙ−Ａｃｃｅｓｓ）構成においてもメモリアクセス時間が長いポートを優先してアクセスさせるような制御が可能となることである。
【００７８】
次に図８及び図９を参照し、本発明の第２の実施例の構成を示す。図８、図９は、図１に示す各プロセッサ内の各部の詳細な構成を示したブロック図の分割図（１／２）、分割図（２／２）である。図中の（１）〜（Ｂ）は相手の図との繋ぎを示すタグである。
【００７９】
その基本的構成は上記第１の実施例の通りであるが、予測テーブル２３についてさらに工夫している。図９の予測切替判定部２８と切替ビット２９が図３の予測変更部１８と予測テーブル２３の代わりとなる。
【００８０】
尚、図８のレシーバＲＸ７、識別子格納部９、メモリアクセス要求監視部１０−１〜１０−３、メモリアクセス要求監視番号カウンタ１１、メモリアクセス要求監視番号保持レジスタ１２、観測レジスタ１３−１〜１３−５、現状態レジスタ１４、前状態レジスタ１５、有効ビット持ち回りレジスタ１６は図２と同じ構成である。
【００８１】
そして図９の予測ミスカウンタ１７、制御レジスタ２４、許容発行数レジスタ２５、メモリアクセス要求発行部２６、レシーバＲＸ７も図３と同じ構成である。
【００８２】
本実施例では、初期予測をＨＷ（ハードウェア）のデコード回路で予め作りこんでおき、予測切替判定部２８が各パターンの切替ビット２９を操作することで各パターンの予測を切り替える。具体的には図１０の真理値表のように制御レジスタ２４の制御Ｉを決定し、図１１の真理値表のように切替ビット２９を更新している。図１１中のＸはありえない状態を示している。
【００８３】
図９の切替ビット２９は８ビットあり、ＳＥＬａでは現状態レジスタ１４の値で、選択し、ＳＥＬｂでは前状態レジスタ１５の値で選択する。各ビットＦＦの反転入力ストローブ条件は、予測切替判定部２８の指示と前状態レジスタ１５の値を３−ＴＯ−８にデコードした出力のＡＮＤである。
【００８４】
次に本発明の第２の実施例の各プロセッサの予測によるメモリアクセス要求発行数の制御動作を図１２及び図１３のフローチャートを使用して説明する。
【００８５】
図１２において、メモリアクセス要求監視部１０−１〜１０−３の有効ビット（メモリアクセス要求監視Ｖ１〜Ｖ３）が有効になると、メモリアクセス時間カウンタ＃１〜＃３がカウントアップを開始する（図１２のステップＢ１）。
【００８６】
そして、いずれかの前記メモリアクセス時間カウンタ＃１〜＃３が閾値ｔを超えてしまうと（ステップＢ２）、観測レジスタ１３−１〜１３−４の値を観測レジスタ１３−２〜１３−５にシフトし、観測レジスタ１３−１に‘１’を格納する（ステップＢ３）。
【００８７】
但し、前記メモリアクセス時間カウンタ１〜３が閾値ｔを超える前にリプライが返ってきたケースでも同様に観測レジスタ１３−１〜１３−４の値を観測レジスタ１３−２〜１３−５にシフトするが、観測レジスタ１３−１には‘０’を格納する（ステップＢ４）。
【００８８】
それからメモリアクセス要求監視番号カウンタ１１の値が「２」であるかを判定し（ステップＢ５）、「２」でなければまだ３つのメモリアクセス要求のメモリアクセス時間を観測していないため、メモリアクセス要求監視番号カウンタ１１をカウントアップする（ステップＢ６）。
【００８９】
「２」の場合には、まず観測レジスタ１３−１〜１３−５が全て‘０’かチェックする（ステップＢ７）。これは予測「超える」の制御後、実際に越えたかどうかを判定しているステージで、全て‘０’、つまり制御後５回連続で「超えない」結果だったため、前状態レジスタ１５に該当するパターンの制御が許容発行数を２増加させる制御に変わるように切替ビット２９を更新する（ステップＢ８）。
【００９０】
また、３つのメモリアクセス時間の観測パターンが得られた時点でメモリアクセス要求監視番号カウンタ１１をリセットし、前状態レジスタ１５に現状態レジスタ１４の値をコピーし、現状態レジスタ１４に観測レジスタ１３−１〜１３−３の値を格納する（ステップＢ９）。
【００９１】
次に予測を行う前に観測レジスタ１３−１の値が‘１’かどうかのチェックをする（ステップＢ１０）。このタイミングは前状態レジスタ１５に該当するパターンの予測制御から３番目のメモリアクセス要求のメモリアクセス時間監視に対応する。
【００９２】
従って、前記チェックで‘１’の場合、前状態レジスタ１５に該当するパターンをデコードし、初期予測を決定するが（ステップＢ１１）、ここで該当切替ビット２９が‘１’ならば（ステップＢ１２）、制御Ｉを初期予測と逆の制御に切り替える（ステップＢ１３）。
【００９３】
前記制御Ｉが「超えない」のケースに対応する許容発行数を２増加させる制御ならば（ステップＢ１４）、予測がミスしてしまったこととなり、予測ミスカウンタ１７の該当パターンをカウントアップさせる（ステップＢ１５）。
【００９４】
そして、カウントアップした予測ミスカウンタ１７が閾値ｃ以上になったら（ステップＢ１６）、前状態レジスタ１５に該当するパターンの制御が許容発行数を２減少させる制御に変わるように切替ビット２９を更新し、該当予測ミスカウンタ１７をリセットする（ステップＢ１７）。
【００９５】
最後に予測に基づくメモリアクセス要求の許容発行数制御のフローの説明をする。現状態レジスタ１４に該当するパターンをデコードし、初期予測を決定するが（図１３のステップＢ１８）、ここで該当切替ビット２９が１ならば（ステップＢ１９）、制御Ｉを初期予測と逆の制御に切り替える（ステップＢ２０）。
【００９６】
前記制御Ｉが「０：超えない」ならば現許容発行数を２増加させ、「１：超える」ならば現許容発行数を２減少させる（ステップＢ２１）。ここで、変更後の許容発行数が上限値Ｕを超えてしまえば、許容発行数を上限値Ｕにセットする（ステップＢ２２、Ｂ２３）。
【００９７】
同様に変更後の許容発行数が下限値Ｌ以下になってしまえば、許容発行数を下限値Ｌにセットする（ステップＢ２４、Ｂ２５）。以上で予測に基づく制御が完了し、後続のメモリアクセス要求の監視に移る。
【００９８】
次に、図８及び図９において、５回連続でメモリアクセス時間が閾値ｔより短かった際に、切替ビットを変更する動作を図１４のタイムチャートを参照し説明する。本ケースでは閾値ｃを１０、上限値Ｕを３０、下限値Ｌを１０、メモリアクセス要求（４）はメモリアクセス要求監視部１０−１〜１０−３の有効ビット（メモリアクセス要求監視Ｖ１〜Ｖ３）が全て‘１’のために監視不可能とする。
【００９９】
先ずはメモリアクセス要求（１）（２）（３）を監視している。メモリアクセス要求監視番号カウンタ１１が「２」の状態でメモリアクセス要求（３）を受け取ると、前状態レジスタ１５に現状態レジスタ１４の値が移り、観測レジスタ１３−１〜１３−３の値が現状態レジスタ１４に保持される。
【０１００】
ここでメモリアクセス要求（２）は閾値ｔを超えてリプライが帰ってきたために、現状態レジスタ１４は０１０に更新され、有効ビット持ち回りレジスタ１６も‘１’となる（図１４のＴ６）。
【０１０１】
また、前記タイミングの現状態レジスタ１４は０１０なのでこのデコード結果（初期予測）を＋、０１０に該当する切替ビット２９を‘１’とすると図１０の真理値表に従い制御Ｉは「１：超える」になり、許容発行数は２減少し、「２８」となる。
【０１０２】
次にメモリアクセス要求（５）（６）（７）も同様に監視され、この３要求のパターンは、いずれも閾値ｔを超えなかったために０００となり、前状態レジスタ１５は０１０に、現状態レジスタ１４は０００に更新され、有効ビット持ち回りレジスタ１６も‘１’となる（図１４のＴ７）。
【０１０３】
また、前記タイミングの現状態レジスタ１４は０００なのでこのデコード結果（初期予測）を＋、０００に該当する切替ビット２９を‘０’とすると図１０の真理値表に従い制御Ｉは「０：超えない」になり、許容発行数は２増加し、「３０」となる。
【０１０４】
最後にメモリアクセス要求（８）（９）も監視され、メモリアクセス要求監視番号カウンタ１１が２の状態になった時点で、メモリアクセス要求（５）（６）（７）（８）（９）のメモリアクセス時間が５回連続で閾値ｔより短かったために、前状態レジスタ１５のパターン０１０に該当する切替ビット２９を図１１の真理値表に従い‘０’に変更し、次回から制御Ｉを「０：超えない」に切り替える（図１４のＴ８）。
【０１０５】
このように、本実施例では、初期予測をＨＷ（ハードウェア）で予め用意し切替ビットで予測を変更しているため、切替ビットをリセットすることで初期予測に容易に復帰できる。従って、ジョブ毎に初期予測をリセットすることにより、前回のジョブに依存した予測のために予測ミスが頻発するということを防げる。
【０１０６】
ここで切替ビットのリセットと許容発行数の所定の初期値への設定は、ジョブが切り替わる度にＳＷ（ソフトウェア）による指示で可能な構成とする。
【０１０７】
即ち、これらの指示を含む命令語が定義され、ジョブ切り替を行うソフトウェアが切り替え先を呼び出すＣＡＬＬ命令等の前に前記初期化指示を含む命令による初期化を行う。この命令語として、例えば、オペレーションコードで指定されたメモリ負荷予測初期化命令が定義されている。
【０１０８】
図１５を参照し、各命令のオペランド等を準備する命令先行処理部５２には命令語解読部５２１を含む。命令語解読部５２１は命令フェッチ・命令抽出部５１がこれの内部の命令バッファから抽出した命令語を命令レジスタに受取り、オペレーションコードを解読し、メモリ負荷予測初期化命令であることを検出する。
【０１０９】
そしてメモリアクセスを伴う命令（ロード、ストア、分岐、メモリオペランドを使う命令等）と同様にアドレス生成ステージを通過させ、メモリ負荷予測初期化要求をアドレス変換部５３に渡し、次にバッファメモリ部５４に発行する。
【０１１０】
アドレス変換部５３、バッファメモリ部５４はメモリ負荷予測初期化要求を内部の各処理ステージに単に持ち回る等で要求の受付順と処理順を保証し、メモリアクセス要求発行部２６に渡す。
【０１１１】
メモリアクセス要求発行部２６は、この要求より先行して受けた要求が処理し終わると切替ビットをリセットし、許容発行数レジスタに初期値を設定する。
【０１１２】
別の例として、ＰＯＰ命令語のオペレーションコード以外のフィールドでメモリアクセス予測制御初期化を指定するようにしてもよい。さらに別の例としてＰＵＳＨ、ＰＯＰ命令でスタックエリアにセーブし、これからロードするレジスタ類として、許容発行数レジスタ、切替ビット列を追加するようにしてもよい。
【０１１３】
以上説明したように、第２の実施例においては、前記第２の効果、前記第３の効果、前記第４の効果の他に、ジョブの切替時にも、プロセッサの許容発行数が短時間で最適化され（共有メモリ要求の発生数に見合った値に設定され）発行待ちが極力抑止される効果を奏する。これは、ジョブの切替時に、負荷予測値、許容発行数が初期化されるためである。
【図面の簡単な説明】
【０１１４】
【図１】本発明の実施形態の共有メモリシステムの全体構成図。
【図２】第１の実施例のプロセッサの各部の詳細構成を示したブロック図の分割図（１／２）。
【図３】第１の実施例のプロセッサの各部の詳細構成を示したブロック図の分割図（２／２）。
【図４】第１の実施例の動作を示したフローチャート（１／２）。
【図５】第１の実施例の動作を示したフローチャート（２／２）。
【図６】第１の実施例の動作タイミングを示したタイムチャートの分割図（１／２）。
【図７】第１の実施例の動作タイミングを示したタイムチャートの分割図（２／２）。
【図８】第２の実施例のプロセッサの各部の詳細構成を示したブロック図の分割図（１／２）。
【図９】第２の実施例のプロセッサの各部の詳細構成を示したブロック図の分割図（２／２）。
【図１０】初期予測値及び切替ビット値から、制御レジスタ２４の制御Ｉ（増減指示）を決める際の論理を示した真理値表。
【図１１】切替ビットの更新に関する真理値表。
【図１２】第２の実施例の動作を示したフローチャート（１／２）。
【図１３】第２の実施例の動作を示したフローチャート（２／２）。
【図１４】第２の実施例の動作タイミングを示したタイムチャート。
【図１５】第２の実施例のソフトウェアによるメモリ負荷予測初期化の処理を示した図。
【符号の説明】
【０１１５】
１−１〜１−ｎ    プロセッサ
２    共有メモリ
３−１〜３−ｎ    メモリアクセス要求監視部
４−１〜４−ｎ    メモリ負荷予測部
５−１〜５−ｎ    発行数制御部
６−１〜６−ｎ    予測結果観測部
７    レシーバＲＸ
８    トランスミッタＴＸ
９    識別子格納部
１０−１〜１０−３    メモリアクセス要求監視部
１１    メモリアクセス要求監視番号カウンタ
１２    メモリアクセス要求監視番号保持レジスタ
１３−１〜１３−５    観測レジスタ
１４    現状態レジスタ
１５    前状態レジスタ
１６、１６−１、１６−２    持ち回りレジスタ
１７    予測ミスカウンタ
１８    予測変更部
２３    予測テーブル
２４    制御レジスタ
２５    許容発行数レジスタ
２６    メモリアクセス要求発行部
２７    カウントアップ指示レジスタ
２８    予測切替判定部
２９    切替ビット
５１    命令フェッチ・命令抽出部
５２    命令先行処理部
５２１    命令語解読部
５３    アドレス変換部
５４    バッファメモリ部
【図１】
0004839759.tif 000002
【図２】
0004839759.tif 000003
【図３】
0004839759.tif 000004
【図４】
0004839759.tif 000005
【図５】
0004839759.tif 000006
【図６】
0004839759.tif 000007
【図７】
0004839759.tif 000008
【図８】
0004839759.tif 000009
【図９】
0004839759.tif 000010
【図１０】
0004839759.tif 000011
【図１１】
0004839759.tif 000012
【図１２】
0004839759.tif 000013
【図１３】
0004839759.tif 000014
【図１４】
0004839759.tif 000015
【図１５】
0004839759.tif 000016