説明

調停優位性の切り替え方法、調停装置、及びプロセッサ

【課題】リクエストの種別に応じて、流動的かつ動的に調停の優先度を細かく切替え可能な調停優位性の切り替え方法、調停装置、及びプロセッサを提供する。
【解決手段】本発明に係る調停優位性の切り替え方法は、入力されるリクエストの種別と、同一の種別のリクエストが連続した連続回数と、連続回数が規定連続回数を超えた発生回数と、を監視する。発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別を指示する。リクエスト緩衝バッファから読み出すリクエストが、指示されたリクエストの種別と一致した場合には、重み付けテーブルを索引して、該当リクエストの種別毎に定めた重み付け値を決定する。リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、決定した重み付けの値と、に応じて、入力されるリクエスト間の調停を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、調停優位性の切り替え方法、調停装置、及びプロセッサに関する。
【背景技術】
【0002】
従来、リクエストの調停手法として、ラウンドロビン・固定優先・重み付け等の制御を調停論理において行うことで、リクエスト調停の優位性(優劣)を調整する手法が知られている。稼動状況に応じて調停の優劣を流動的に切り替えることは課題となっており、実現が望まれている。
【0003】
図7を参照して、本発明に関連する技術である、リクエストの調停優位性を切り替える従来技術について説明する。図7に例示するように、プロセッサ101は、リモートリクエスト用のリクエスト緩衝バッファ103と、ローカルリクエスト用のリクエスト緩衝バッファ104と、各系統からのリクエストを調停するリクエスト調停部105と、を備えている。リクエスト調停部105は、調停優位性ポインタ106を備えている。
【0004】
調停論理においては、ラウンドロビン・固定優先・重み付け等の制御を行うことで、リクエスト調停の優位性(優劣)を調整している。調停優位性ポインタ106が指すリクエストが調停に勝利する。
【0005】
また、本発明に関連する他の技術として、特許文献1乃至3に記載された調停技術がある。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開昭63−303453号公報
【特許文献2】特開2008−071019号公報
【特許文献3】特開平3−081856号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、図7で例示した従来技術では、次のような課題がある。
第1の課題は、調停の優位性について、稼動状況に応じて流動的かつ柔軟に切り替えができないという問題がある。例えば、ハードウェアモードにより初期設定を調整する方法では、固定的な切り替えにしかならない。
第2の課題は、調停の優位性について、細かい精度で切り替えることができないという問題がある。調停で勝利した回数をカウントする方法や、特定のリクエストを検出した場合に優位性を切り替える方法では、精度が粗くなってしまう。
第3の課題は、調停の優位性を切り替える操作が、性能に影響するという問題がある。仮に、優位性を切り替えるためのリクエストを専用に発行した場合には、スループットが低下して性能に影響してしまう。
【0008】
また、特許文献2に記載された技術では、「リクエスト」ではなく「パス」自体が使用された連続回数をカウントするものであり、調停回路におけるパス自体の重み付けを制御しているに過ぎない。連続パス使用回数記憶部22に与える値が、固定又は任意の値であるために、期待する精度を満足していない。すなわち、パス使用権は該当パスの使用回数によって管理されている。そして、リクエストの種別を監視していないものであるため、調停優位性の切り替え精度が粗いという問題がある。
【0009】
また、特許文献3に記載された技術では、あるブロック転送が終了するまでの間は、他のリクエストにより調停を妨げられることはない。リクエストの「連続回数」は「特定量」という表現を用いて監視されているものの、リクエストの「種別」と連携して、調停優位性を切替える構成を有してはいない。このため、リクエストの種別に応じて、流動的かつ動的に調停の優先度を細かく切替えることができないという問題がある。
【0010】
従って、本発明の目的は、リクエストの種別に応じて、流動的かつ動的に調停の優先度を細かく切替えることが可能な調停優位性の切り替え方法、調停装置、及びプロセッサを提供することである。
【課題を解決するための手段】
【0011】
本発明に係る調停優位性の切り替え方法は、複数のユニットから入力されるリクエスト間の調停における調停優位性の切り替え方法であって、入力されるリクエストの種別を監視するステップと、前記監視するリクエストの種別と同一の種別のリクエストが連続した連続回数を監視するステップと、前記監視する連続回数が規定連続回数を超えた発生回数を監視するステップと、前記監視する発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別として前記リクエストの種別を指示するステップと、前記入力されるリクエストをリクエスト緩衝バッファに格納するステップと、前記リクエスト緩衝バッファから読み出すリクエストが、前記指示されたリクエストの種別と一致するか判定するステップと、前記判定の結果、一致した場合には、前記リクエストの種別毎に定めた値であって、前記リクエスト調停において優先的に連続して選択される回数を示す重み付け値を定めた重み付けテーブルを索引して、該当リクエストの重み付け値を決定するステップと、前記リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、前記決定した重み付けの値と、に応じて、入力されるリクエスト間の調停を行うステップと、を備えるものである。
【0012】
また、本発明に係る調停装置は、入力されるリクエストについて、前記リクエストの種別と、前記リクエストと同一の種別のリクエストが連続した連続回数と、前記連続回数が規定連続回数を超えた発生回数と、を監視し、前記発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別として前記リクエストの種別を指示するリクエスト監視部と、前記入力されるリクエストを格納するリクエスト緩衝バッファと、前記リクエスト調停において優先的に連続して選択される回数を示す重み付け値を、前記リクエストの種別毎に定めた重み付けテーブルと、前記リクエスト緩衝バッファから読み出したリクエストが、前記リクエスト監視部から指示されたリクエストの種別と一致した場合に、前記重み付けテーブルを索引して該当リクエストの重み付け値を決定するリクエスト読み出し部と、前記リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、前記決定した重み付けの値と、に応じて、複数のユニットから入力されるリクエスト間の調停を行うリクエスト調停部と、を備えるものである。
【0013】
また、本発明に係るプロセッサは、入力されるリクエストの種別を保持する種別レジスタと、前記リクエストと同一の種別のリクエストが連続した連続回数を保持する連続回数レジスタと、前記連続回数が規定連続回数を超えた発生回数を保持する発生回数レジスタと、を有し、前記発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別として前記リクエストの種別を指示するリクエスト監視部と、前記入力されるリクエストを格納するリクエスト緩衝バッファと、前記リクエスト調停において優先的に連続して選択される回数を示す重み付け値を、前記リクエストの種別毎に定めた重み付けテーブルと、前記リクエスト緩衝バッファから読み出したリクエストが、前記リクエスト監視部から指示されたリクエストの種別と一致した場合に、前記重み付けテーブルを索引して該当リクエストの重み付け値を決定するリクエスト読み出し部と、前記リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、前記決定した重み付けの値と、に応じて、複数のユニットから入力されるリクエスト間の調停を行うリクエスト調停部と、を備えるものである。
【発明の効果】
【0014】
本発明によれば、リクエストの種別に応じて、流動的かつ動的に調停の優先度を細かく切替えることが可能な調停優位性の切り替え方法、調停装置、及びプロセッサを提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の実施の形態1に係るプロセッサの論理構成を示すブロック図である。
【図2】本発明の実施の形態1に係るリクエスト監視部の構成を示すブロック図である。
【図3】本発明の実施の形態1に係るリクエスト読み出し部の構成を示すブロック図である。
【図4】本発明の実施の形態1に係るリクエスト調停部の構成を示すブロック図である。
【図5】本発明の実施の形態1に係る重み付けテーブルの構成を示す表である。
【図6】本発明の実施の形態1に係る調停方法の一連の動作を示すフローチャートである。
【図7】本発明に関連する技術を説明するための図である。
【発明を実施するための形態】
【0016】
まず、本発明の実施の形態について説明する前に、本発明の原理について説明する。
本発明に係る調停方法、調停装置、及びプロセッサは、各論理ユニットから発行されるリクエストを調停する調停技術に関する。そして、リクエストの調停を経由する論理構成において、リクエストの種別に応じて、所望のリクエスト群を優先的かつ流動的に通過させることを可能とする。
【0017】
後述するように、プロセッサ1は、リクエスト監視部2とリクエスト読み出し部4とを備えている。リクエスト監視部2は、所望のリクエストに関して、リクエスト群の種別と、そのリクエストの連続回数と、そのリクエストの発生履歴と、を監視する。そして、リクエスト監視部2は、優先すべきリクエストが規定回数連続したことに加えて、その連続が発生したことを検出する都度、そのリクエスト種別を、リクエスト読み出し部4へと通知する。
【0018】
リクエスト読み出し部4は、優先すべきリクエストが読み出された場合に、そのリクエスト種別に対応する調停優位性を決定する。このため、リクエスト読み出し部4は、重み付けテーブルを索引する。重み付けテーブルから索引された重み付けの値はリクエスト調停部5へと送出され、リクエストの調停優位性を切り替える旨の指示が行われる。この切り替え指示は、優先すべきリクエストが調停へと参加するタイミングに合わせて実行される。
【0019】
このようにして、本発明に係る調停方法、調停装置、及びプロセッサは、所望のリクエスト毎に、リクエストの種別に応じてリクエストの連続性を監視して、調停の重み付けを決定している。このため、アプリケーション特性や負荷バランスに応じた、柔軟かつ流動的な調停優位性の切り替えを行うことができる。
【0020】
実施の形態1.
以下、図面を参照して本発明の実施の形態1について説明する。まず、図1乃至図5を参照して、本実施の形態1に係る調停方法、調停装置、及びプロセッサの構成について説明する。
【0021】
図1は、本実施の形態1に係るプロセッサの論理構成を示す図である。図1を参照すると、プロセッサ1は、リクエスト監視部2、7と、リクエスト緩衝バッファ3、8と、リクエスト読み出し部4、9と、リクエスト調停部5と、を備えている。尚、リクエスト監視部7はリクエスト監視部2と、リクエスト緩衝バッファ8はリクエスト緩衝バッファ3と、リクエスト読み出し部9はリクエスト読み出し部4と、それぞれ同一の構成を有している。このため、以下では、リクエスト監視部2と、リクエスト緩衝バッファ3と、リクエスト読み出し部4と、の構成を代表して説明する。
【0022】
リクエスト監視部2は、各系の入力部(ローカルリクエストの入力を受ける入力部や、リモートリクエストの入力を受ける入力部)にそれぞれ位置しており、入力されるリクエストの種別と、連続回数と、発生履歴(発生回数)と、を監視する。リクエスト監視部2は、入力されたリクエストが調停で優先させるべき条件を満たした場合には、そのリクエスト種別を、リクエスト読み出し部4へと通知する。すなわち、リクエスト監視部2は、優先リクエストの種別とその連続性を監視し、リクエスト読み出し部4へと優位性の切り替の発生を通知(予告)する。
【0023】
リクエスト緩衝バッファ3は、各々の系に入力されるリクエストを順次格納する。リクエスト監視部2は、リクエストをリクエスト緩衝バッファ3にライトする。リクエスト読み出し部4は、リクエスト緩衝バッファ3から格納されたリクエストをリードする。
【0024】
リクエスト読み出し部4は、リクエスト緩衝バッファ3に格納されたリクエストを、順次読み出していく。リクエスト読み出し部4は、読み出したリクエストが、リクエスト監視部2から通知された優先すべきリクエストと一致した場合には、該当リクエストの調停優位性を決定するため、後述する図5に例示する重み付けテーブルを索引する。そして、リクエスト読み出し部4は、その索引した重み付け値を、リクエスト調停部5へと送出する。すなわち、リクエスト読み出し部4は、優先リクエストの読み出しを契機として優位性の重み付けテーブルを索引し、優位性の重みの切り替えをリクエスト調停部5へと指示する。
【0025】
リクエスト調停部5は、リクエスト調停において勝利させるリクエストを示す調停優位性ポインタ6と、決定される調停の重み付けの値と、に応じて、入力されたリクエスト間の調停を行う。
【0026】
図2は、リクエスト監視部2の構成を示す図である。図2に示すように、レジスタ21は、リクエスト監視部2に入力されたリクエストを一旦格納する。レジスタ22は、デコードされたリクエスト種別を、今回のリクエスト種別として保持する。レジスタ23は、前回のリクエストの種別を保持している。レジスタ24は、該当リクエストの連続回数を保持する。レジスタ25は、該当リクエストの発生履歴(発生回数)を保持する。
【0027】
リクエスト情報は、リクエストのデータやアドレスなどを含んでいる。レジスタ21に格納されたリクエスト情報は、リクエスト単位で、リクエスト緩衝バッファ3に格納される。また、レジスタ21に格納されたリクエスト情報のうち、リクエスト種別を示す部分が、リクエスト監視部2のデコード部201により、デコードされる。
【0028】
リクエスト監視部2のデコード部201は、レジスタ21に格納されたリクエストについて、リクエスト種別のデコードを行う。ここで、リクエスト種別のデコードは、リクエスト情報に一般的に付随するスタートビットを契機に行えばよい。すなわち、デコード部201は、スタートビット(Start Bit)の検出を契機として、リクエスト種別を認識する。尚、スタートビットの検出を契機としてリクエスト種別を認識することで、分割されて送信されてくるリクエストを、リクエスト単位で扱うことができる。
【0029】
リクエスト監視部2の比較部202は、レジスタ22に保持されている今回のリクエスト種別と、レジスタ23に保持されている前回のリクエスト種別と、を比較する。比較の結果、これらリクエスト種別が一致した場合には、リクエスト監視部2のインクリメント部203は、レジスタ24に保持されている該当リクエストの連続回数の値を1値インクリメントする。尚、比較結果が不一致の場合には何もしないか、或いは、レジスタ24に保持された連続回数の値をリセットする制御としても良い。
【0030】
リクエスト監視部2の判定部204は、レジスタ24に保持された連続回数が、そのリクエストとして任意に設定した値Mを超過したか否かを判定する。判定の結果、連続回数Mを超過した場合には、リクエスト監視部2のインクリメント部205は、レジスタ25に保持されている該当リクエストの発生履歴(発生回数)の値を1値インクリメントする。尚、連続回数の規定回数Mは、図示しないレジスタに格納されている。
【0031】
リクエスト監視部2の判定部206は、レジスタ25に保持された発生履歴(発生回数)が、そのリクエストとして任意に設定した値Nを超過したか否かを判定する。判定の結果、発生回数Nを超過した場合には、リクエスト監視部2の判定部206は、リクエスト監視部2の論理積部207に対して発生回数Nを超過したことを示す信号(例えば、1値と0値を用いて超過したか否かを示す場合には、1値の信号)を出力する。リクエスト監視部2の論理積部207は、該当リクエストの連続回数がMを超過し、かつ、発生履歴(発生回数)がNを超過する場合には、リクエスト読み出し部4に対して、デコードした該当リクエストの種別を通知する。すなわち、リクエスト監視部2は、該当リクエストが、リクエスト調停部5で優先的に通過させるべきリクエストであるものと判定し、そのリクエスト種別を、リクエスト読み出し部4に対して通知する。尚、発生回数の規定回数Nは、図示しないレジスタに格納されている。
【0032】
図3は、リクエスト読み出し部4の構成を示す図である。図3に示すように、レジスタ41は、リクエスト緩衝バッファ3から読み出したリクエストを格納する。レジスタ42は、リクエスト監視部2から通知されるリクエスト種別(すなわち、今回優先すべきリクエスト種別)を格納する。
【0033】
リクエスト読み出し部4の比較部401は、レジスタ41に格納されたリクエストと、レジスタ42に格納された優先すべきリクエスト種別と、を比較する。比較の結果、一致した場合には、リクエスト読み出し部4の重み付けテーブル索引部402は、後述する重み付けテーブル(図5を参照。)を索引して、その優先すべきリクエストに対応する調停優位性の重み付け値を決定する。尚、比較結果が不一致の場合には、重み付けテーブル索引部402は、何もしない。
【0034】
図4は、リクエスト調停部5の構成を示す図である。図4に示すように、リクエスト調停部5は、ローカルリクエスト用とリモートリクエスト用のカウンタ(レジスタ51、52)をそれぞれ備えている。カウンタ(レジスタ51、52)は調停の重み付け値を格納し、リクエスト読み出し部4、9から送出される重み付け値をそれぞれ格納する。
【0035】
調停優位性ポインタ6は、ローカル側又はリモート側のいずれかを指している。例えば、初期状態において、調停優位性ポインタ6がローカル側を指しており、ローカル側のカウンタ値が4(P=4)であり、リモート側のカウンタ値が6(Q=6)である状況を想定する。この状況で、ローカル側及びリモート側の双方から、連続してリクエストを受信した場合には、まずは、ローカル側が調停に4回勝利する。そして、ローカル側の4回の勝利を契機として、調停優位性6は、リモート側へと向けられる。調停優位性ポインタ6がリモート側へと向けられた後、リモート側が調停に6回勝利する。リモート側の6回の勝利を契機として、調停優位性ポインタ6はローカル側へ向けられる。
【0036】
従って、重み付けカウンタ(レジスタ51、52)の値が大きいほど、調停において連続して勝利する回数が多くなる。尚、重み付けカウンタ(レジスタ51、52)のデフォルトの値は、例えば、双方とも1にするなど(すなわち、初期値としてP=Q=1とする)、任意に決定すればよい。
【0037】
また、ローカル側又はリモート側の一方のみからしかリクエストを受信していない状態においては、調停優位性ポインタ6の向きと重み付けカウンタの値とは意味をなさず、無効となる。このため、リクエストの発生した系が調停に勝利する。
【0038】
図5は、調停優位性を決定するために用いる重み付けテーブルの構成を示す表である。図5に示すように、監視すべきリクエスト種別毎に、項番を付与している。図においては、リクエスト種別として、メモリアクセス、その他命令、プロセッサ通信を示しているが、命令(ベクトルロードなど)及びベクトル長(〜256など)をも含めて、リクエスト種別として扱うものとしてもよい。すなわち、例えば、項番3のリクエストの種別が、「メモリアクセスのベクトルロード・ベクトル長64」であるものとして扱ってもよい。
【0039】
重み付けを切り替える契機となる条件ABCと、条件ABCが成立した場合に設定する重み付けテーブルの値は、リクエスト種別毎に任意に設定する。例えば、リクエストの種別が、メモリアクセスのベクトルロード・ベクトル長64であるとし、リクエストの連続回数が32回を越えた発生履歴が2回発生した場合には、重み付けを切り替える条件が成立する。この場合の重み付けテーブル値は32となり、この重み付けテーブルの値を、リクエスト調停部5の内部の重み付けカウンタ(レジスタ51、52)に設定する。尚、図に示す例では、項番1〜13のリクエスト種別のリクエストについては、ローカル側において発行される。項番14〜17のリクエスト種別のリクエストについては、リモート側において発行される。
【0040】
尚、条件ABCの値をそれぞれ格納したレジスタ(不図示)について、その格納した値をリセットするタイミングは任意とし、例えば、内蔵タイマーによって定期的にリセットすれば良い。或いは、特定のリクエストの通過を契機として、リセットしても良い。条件Bについては、命令の切り替わりタイミングでリセットしても良い。条件Aは、各リクエストの制御情報に含まれており、分割されたリクエスト受信した場合に、その先頭パケットの開始時に1値となる。また、片方の系において、連続して受信したリクエストについて切り替え条件が成立した場合には、予め決定した優先度の高い重み付けテーブルの値を選択するようにしても良い。例えば、前後に連続して受信したリクエストのうち、後続のリクエスト(最新のリクエスト)を優先させるものとして、後続リクエストの重み付けテーブルの値を設定しても良い。
【0041】
以上に本実施の形態1に係る各部の構成を説明したが、リクエスト緩衝バッファ3自体は、フリップフロップ回路(FF)やハードマクロ(SRAM)を用いて構成することが一般的であり、当業者にとって良く知られている。また、リクエスト調停部5の調停回路自体と重み付けの値によって優劣を切り替える制御方法についても当業者にとって良く知られているため、これら構成の詳細な説明については省略する。
【0042】
次に、図6に示すフローチャートを参照して、本実施の形態1に係る調停方法の一連の動作について説明する。尚、ローカル側の系統の各部(リクエスト監視部7と、リクエスト緩衝バッファ8、リクエスト読み出し部9)はリモート側の各部と同様の動作を行うため、以下では、リモート側の系統の各部の動作を代表して説明する。
【0043】
リモート側のリクエスト監視部2は、入力されたリクエストの付属情報を常時監視しており、スタートビットの検出を契機として、リクエスト種別のデコードを行う(S101)。そして、リクエスト監視部2は、リクエスト種別の判定において、前回のリクエスト種別との比較を行う(S102)。判定の結果、前回と同じリクエスト種別であった場合には、リクエスト監視部2は、リクエストの連続回数カウンタを1値インクリメントし(S103)、同じリクエスト種別でなかった場合には、何もしないか、或いは、連続回数カウンタをリセットする(S104)ようにしても良い。
【0044】
連続回数カウンタが1値インクリメントされた後に、リクエスト監視部2は、リクエストの連続性判定において、連続回数が、そのリクエストについて任意に設定した規定連続回数Mを超過したか否かの判定を行う(S105)。判定の結果、連続回数が規定連続回数Mを超過した場合には、リクエスト監視部2は、そのリクエストの発生履歴カウンタを1値インクリメントする(S106)。
【0045】
発生履歴カウンタが1値インクリメントされた後に、リクエスト監視部2は、リクエストの発生履歴判定において、発生履歴(発生回数)が、そのリクエストについて任意に設定した規定発生回数Nを超過したか否かの判定を行う(S107)。判定の結果、発生履歴(発生回数)が規定発生回数Nを超過した場合には、リクエスト監視部2は、そのリクエストは調停優位性を切り替える対象であるものと判定し、そのリクエスト種別をリクエスト読み出し部4へと通知する(S108)。
【0046】
リクエスト緩衝バッファ3には、リクエストの書き込みが行われる(S201)。尚、リクエスト緩衝バッファ3には、リクエストの種別を含む、該当リクエストの全てのリクエスト情報が格納される。そして、リクエスト緩衝バッファ3に格納されたリクエストが、順次読み出される(S202)。リクエスト緩衝バッファ3は、一般に、調停論理などの手前に設けられる。リクエスト緩衝バッファ3は、リクエスト調停部5においてリクエスト停止が発生した場合に、後続のリクエストを格納する。
【0047】
リクエスト読み出し部4は、リクエスト監視部2から通知された優位性の切り替えを契機として、リクエスト緩衝バッファ3から読み出したリクエストが優先リクエストであるか否かの判定を行う(S301)。判定の結果、リクエスト緩衝バッファ3から優先すべきリクエストを読み出した場合には、リクエスト読み出し部4は、調停優位性の重み付けテーブルを索引して(S302)、重み付けカウンタに設定すべき値を決定する(S303)。決定された重み付けカウンタの設定値は、リクエスト調停部5へと送出される。
【0048】
リクエスト調停部5は、リクエスト調停部5から重み付けカウンタの設定値を受信する都度、流動的に調停時の重み付けカウンタに設定する(S401)。そして、リクエスト調停部5は、重み付けカウンタの値を用いて示されるリクエストの優位性に従って、調停を実行する(S402)。
【0049】
以上説明したように、本実施の形態1に係る調停方法、調停装置、及びプロセッサは、リクエスト監視部2が、リクエストの連続性とその発生履歴を監視するレジスタを有している。そして、リクエスト読み出し部4が、リクエストの連続性とその発生履歴に関して、所望のリクエスト群を優先させるべき条件が成立した場合には、調停の優位性を決定するための重み付けの値を、重み付けテーブルから索引して決定する。重み付けテーブルから索引する重み付けの値は、リクエストの種別毎に任意に決定する。さらに、リクエスト読み出し部4は、決定した重み付けの値を、リクエストの調停参加に先駆けて、リクエスト調停部5へと設定する。このように、リクエストの種別毎に監視する連続回数や、重み付けのテーブル値を可変としていることで、リクエストの種別に応じて、柔軟で流動的かつ高い精度で、調停優位性を切り替えることが可能となる。
【0050】
そして、本実施の形態1に係る調停方法、調停装置、及びプロセッサによれば、以下に説明するような効果を奏する。
まず、所望のリクエストに与える調停優位性を、リクエストの種別に応じて、柔軟に切り替えることができる点である。その理由は、リクエストの種別・連続性・発生履歴を入力情報として、調停の重み付けを決定するためである。
また、所望のリクエストに与える調停優位性を、流動的に切り替えることができる点である。その理由は、調停の重み付けを切り替える制御を、装置自身(ハードウェア自身)が動的に行うからである。
また、所望のリクエストに与える調停優位性を、細かい精度で切り替えることができる点である。その理由は、リクエスト単位で調停の重み付け値を可変としているからである。
また、調停優位性を切り替える操作において、性能の低下をもたらさない点である。その理由は、調停優位性を切り替えるための専用のリクエストを必要としないからである。
従って、本発明に係る調停方法、調停装置、及びプロセッサによれば、リクエストの種別に応じて、流動的かつ動的に調停の優先度を細かく切替えることができる。
【0051】
さらに、本実施の形態1に係る調停方法、調停装置、及びプロセッサは、パスを通過した「リクエスト」の種別・連続回数・発生履歴を監視するレジスタを備えており、リクエストの連続性の監視をリクエスト種別毎に行っている。特許文献2に開示された技術はこのような構成を有していない。従って、本実施の形態1に係る調停方法、調停装置、及びプロセッサは、特許文献2に開示された技術と比較して、高い精度で調停優位性を切り替えることができる。
【0052】
また、特許文献2に開示された技術と比較して、本実施の形態1に係る調停方法、調停装置、及びプロセッサは、リクエストの特性に応じて、流動的かつ動的にリクエストを通過させることができる。例えば、優先度の低いリクエストについては、監視対象外とする(図5に示した重み付けテーブルにおいて、重み付け値を設定する対象外とする)。この場合に、優先度の低いリクエストについては、該当パスの連続履歴がカウントアップされないために、調停優位性ポインタが自パスを向いている状態の比率が増加する。
【0053】
さらに、本実施の形態1に係る調停方法、調停装置、及びプロセッサは、リクエストの種別・連続回数・発生履歴を監視するレジスタを備えており、かつ、これら監視する情報の相関に基づいて、調停優位性の動的な切り替えを行っている。特許文献3に開示された技術はこのような構成を有していない。従って、本実施の形態1に係る調停方法、調停装置、及びプロセッサは、特許文献3に開示された技術と比較して、調停において競合が発生した場合に、リクエストの連続回数だけでなく、リクエストの種別にも応じて、細かく重み付けを調停することができる。例えば、リクエストの連続回数が少なくても、リクエスト自体の優先度が高く設定されている場合には、調停に勝利させることができる。上述したように、リクエストの種別に応じて、流動的かつ動的に調停の優先度を細かく切り替えることができるという効果は大きな意義を有する。
【0054】
その他の実施の形態.
上述した実施の形態においては、調停に参加する系が2つである場合を例に説明したが、本発明はこれに限定されない。すなわち、その基本的構成は上述した実施の形態と同様であるが、リクエスト調停部5に対して、3つ以上の系から入力される構成としてもよい。
【0055】
また、上述した実施の形態においては、リクエスト監視部2とリクエスト読み出し部4との間にリクエスト緩衝バッファ3を備える構成を例に説明したが、リクエスト監視部2は、リクエスト緩衝バッファ3とリクエスト読み出し部4との間に位置する構成としてもよい。
【0056】
尚、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0057】
1 プロセッサ、
2、7 リクエスト監視部、
3、8 リクエスト緩衝バッファ、
4、9 リクエスト読み出し部、
5 リクエスト調停部、
6 調停優位性ポインタ、
21、22、23、24、25 レジスタ、
201 デコード部、
202 比較部、
203 インクリメント部、
204 判定部、
205 インクリメント部、
206 判定部、
207 論理積部、
41、42 レジスタ、
401 比較部、
402 重み付けテーブル索引部、
51、52 レジスタ、
101 プロセッサ、
103、104 リクエスト緩衝バッファ、
105 リクエスト調停部、
106 調停優位性ポインタ、

【特許請求の範囲】
【請求項1】
複数のユニットから入力されるリクエスト間の調停における調停優位性の切り替え方法であって、
入力されるリクエストの種別を監視するステップと、
前記監視するリクエストの種別と同一の種別のリクエストが連続した連続回数を監視するステップと、
前記監視する連続回数が規定連続回数を超えた発生回数を監視するステップと、
前記監視する発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別として前記リクエストの種別を指示するステップと、
前記入力されるリクエストをリクエスト緩衝バッファに格納するステップと、
前記リクエスト緩衝バッファから読み出すリクエストが、前記指示されたリクエストの種別と一致するか判定するステップと、
前記判定の結果、一致した場合には、前記リクエストの種別毎に定めた値であって、前記リクエスト調停において優先的に連続して選択される回数を示す重み付け値を定めた重み付けテーブルを索引して、該当リクエストの重み付け値を決定するステップと、
前記リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、前記決定した重み付けの値と、に応じて、入力されるリクエスト間の調停を行うステップと、
を備える調停優位性の切り替え方法。
【請求項2】
前記連続回数をカウントして、連続回数保持レジスタに保持するステップと、
前記発生回数をカウントして、発生回数保持レジスタに保持するステップと、
と、を更に備える
ことを特徴とする請求項1に記載の調停優位性の切り替え方法。
【請求項3】
前記重み付けテーブルは、
前記リクエストの種別毎に定めた重み付け値についての優先度が定められており、
前記重み付け値を連続して決定する場合に、前記定められた重み付け値の優先度に応じて、決定する重み付け値を選択する
ことを特徴とする請求項1又は2に記載の調停優位性の切り替え方法。
【請求項4】
入力されるリクエストについて、前記リクエストの種別と、前記リクエストと同一の種別のリクエストが連続した連続回数と、前記連続回数が規定連続回数を超えた発生回数と、を監視し、前記発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別として前記リクエストの種別を指示するリクエスト監視部と、
前記入力されるリクエストを格納するリクエスト緩衝バッファと、
前記リクエスト調停において優先的に連続して選択される回数を示す重み付け値を、前記リクエストの種別毎に定めた重み付けテーブルと、
前記リクエスト緩衝バッファから読み出したリクエストが、前記リクエスト監視部から指示されたリクエストの種別と一致した場合に、前記重み付けテーブルを索引して該当リクエストの重み付け値を決定するリクエスト読み出し部と、
前記リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、前記決定した重み付けの値と、に応じて、複数のユニットから入力されるリクエスト間の調停を行うリクエスト調停部と、
を備える調停装置。
【請求項5】
前記リクエスト監視部は、
前記連続回数を保持する連続回数保持レジスタと、
前記発生回数を保持する発生回数保持レジスタと、を備える
ことを特徴とする請求項4に記載の調停装置。
【請求項6】
前記重み付けテーブルは、
前記リクエストの種別毎に定めた重み付け値についての優先度が定められており、
前記リクエスト読み出し部は、
前記重み付け値を連続して決定する場合には、前記定められた重み付け値の優先度に応じて、決定する重み付け値を選択する
ことを特徴とする請求項4又は5に記載の調停装置。
【請求項7】
入力されるリクエストの種別を保持する種別レジスタと、
前記リクエストと同一の種別のリクエストが連続した連続回数を保持する連続回数レジスタと、
前記連続回数が規定連続回数を超えた発生回数を保持する発生回数レジスタと、を有し、
前記発生回数が規定発生回数を超えた場合に、リクエスト調停において優先して選択させるリクエストの種別として前記リクエストの種別を指示するリクエスト監視部と、
前記入力されるリクエストを格納するリクエスト緩衝バッファと、
前記リクエスト調停において優先的に連続して選択される回数を示す重み付け値を、前記リクエストの種別毎に定めた重み付けテーブルと、
前記リクエスト緩衝バッファから読み出したリクエストが、前記リクエスト監視部から指示されたリクエストの種別と一致した場合に、前記重み付けテーブルを索引して該当リクエストの重み付け値を決定するリクエスト読み出し部と、
前記リクエスト調停において勝利させるリクエストを示す調停優位性ポインタと、前記決定した重み付けの値と、に応じて、複数のユニットから入力されるリクエスト間の調停を行うリクエスト調停部と、
を備えるプロセッサ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate