(57)【特許請求の範囲】
【請求項１】
複数のアクセス要求源と、
複数バンクにインタリーブされた主記憶と、
該アクセス要求源から該主記憶に対するアクセス要求を受け付ける複数のポートと、
該複数のポートに保持されているアクセス要求の優先順位を決定するプライオリティ決定回路と、
該プライオリティ決定回路により決定した優先順位に従って、該複数のポートに保持されているアクセス要求を該主記憶へ発信するアクセス処理部と、
該複数のポートのそれぞれに対応して設けられ、対応するポートにアクセス要求が基準時間以上保持されている場合に当該アクセス要求をハングアップとして検出するハングアップ検出回路と、
該ハングアップ検出回路による検出結果をアクセス要求の優先順位の決定要素として用いたハングアップ処理を行なうハングアップ処理回路とをそなえてなるデータ処理装置において、
該ハングアップ検出回路によるハングアップ検出に伴い該ハングアップ処理回路によるハングアップ処理を行なった後も継続的に当該アクセス要求が該ポートに保持されている場合、前記基準時間を短縮設定する基準時間設定部がそなえられたことを特徴とする、データ処理装置。
【請求項２】
該ハングアップ処理回路が、前記ハングアップ処理として、該ハングアップ検出回路によるハングアップ検出に応じたアクセス要求の優先順位の反転制御を行なうように構成されるとともに、
該基準時間設定部が、該ハングアップ処理回路により優先順位の反転制御を行なった回数を計数する優先順位反転回数カウンタと、該優先順位反転回数カウンタによる計数値に応じて前記基準時間をより短い基準時間に切り換える基準時間切換回路とから構成されていることを特徴とする、請求項１記載のデータ処理装置。
【請求項３】
該優先順位反転回数カウンタが、当該アクセス要求を保持しているポートのバリッドオフに応じてリセットされることを特徴とする、請求項２記載のデータ処理装置。
【請求項４】
該複数のポートのそれぞれに対応して設けられた該ハングアップ検出回路が、共通のカウンタの計数出力を用いて、前記ハングアップの検出を行なうことを特徴とする、請求項１〜請求項３のいずれかに記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
（目次）
発明の属する技術分野
従来の技術（図５〜図８）
発明が解決しようとする課題
課題を解決するための手段（図１）
発明の実施の形態（図２〜図４）
発明の効果
【０００２】
【発明の属する技術分野】
本発明は、主記憶に対する複数のアクセスポイント（アクセス要求源；例えばベクトル処理部やスカラ処理部）を有するデータ処理装置に関し、特に、ハングアップ発生時の処理の改善をはかり主記憶に対するアクセス要求を効率良く処理できるようにしたデータ処理装置に関する。
【０００３】
【従来の技術】
一般的なデータ処理装置においては、主記憶に対するアクセスポイント（アクセス要求源）となるポート間に優先順位が予め決められているため、高い優先順位をもつポートに対してアクセス要求があった場合は、必ずそのポートのアクセス要求が優先して処理される。従って、高い優先順位をもつポートのアクセス要求が連続して発生した場合、他の優先順位の低いポートのアクセス要求は、高い要求順位をもつポートのアクセス要求が途切れるまで長期間に亘ってポートに保持されるということが起こる。
【０００４】
図５は一般的なデータ処理装置の構成例を示すブロック図で、この図５に示すデータ処理装置は、アクセス要求源としてベクトル処理部１１およびスカラ処理部１２を有するとともに、プライオリティ決定回路３，アクセス処理部４および主記憶６を有して構成されている。
ベクトル処理部１１は、ポート２１〜２４を介してプライオリティ決定回路３に、主記憶６に対するアクセス要求を出力する一方、スカラ処理部１２は、ポート２５を介してプライオリティ決定回路３に、主記憶６に対するアクセス要求を出力するようになっている。なお、ポート２１〜２５間の優先順位は、スカラ処理部１２に接続されたポート２５がベクトル処理部１１に接続されたポート２１〜２４よりも優先されるように設定されている。
【０００５】
また、主記憶６は、バンク０〜３１の３２バンクにインタリーブされており、図５に示す横方向の４バンクを１組としてアクセス処理部４から主記憶６に対する８本のアクセスバス５１〜５８を張ることにより、主記憶６の８バンクに対して同時にアクセスできる構成になっている。
プライオリティ決定回路３は、各ポート２１〜２５のアクセス要求の内容，ポート２１〜２５間の優先順位，ポート２１〜２５間のアクセスバス５１〜５８の競合，主記憶６のバンク毎のビジー状況等に基づいて、アクセス処理すべきアクセス要求（どのポートからのアクセス要求を処理すべきか）を決定するものである。
【０００６】
ここで、ポート２１〜２５間のアクセスバス５１〜５８の競合とは、各ポート２１〜２５からのアクセス要求が使用するアクセスバス５１〜５８の競合のことであり、競合があった場合には、ポート間優先順位の高いポートのアクセス要求が、プライオリティ決定回路３により選択され、アクセス処理部４で優先的に処理される。また、主記憶６のビジー状況はインタリーブされたバンク毎に監視されており、あるバンクに対してアクセスがあるとバンクが一定期間だけビジーとなり、そのバンクに対する他のアクセス要求を処理することは禁止される。
【０００７】
ベクトル処理部１１またはスカラ処理部１２から発信されるアクセス要求としては、以下のようなブロックアクセス，シングルアクセス，ランダムアクセスがある。また、ベクトル処理部１１からのアクセス要求は１バンクへのアクセスを１単位とし、一連のアクセスとして常に１以上の単位（例えば２５６単位）が連続して発信される。
【０００８】
▲１▼ブロックアクセス（読出／書込）：ベクトル処理部１１またはスカラ処理部１２から、それぞれ対応する１つのポート２１〜２４または２５へ発信され、主記憶６の縦１列８バンク（例えばバンク０〜７）に対して同時に読出または書込を行なう。従って、１回のブロックアクセスで８本のアクセスバス５１〜５８を同時に使用するので、８本のアクセスバス５１〜５８のうち１本でもビジーであったり他のバスと競合していて８本同時に使用できない場合には、ブロックアクセスを実行することはできない。このブロックアクセスによるアクセス要求は、ベクトル処理部１１からはプライオリティ決定回路３のポート２１〜２４のうちの一つ（例えばポート２１）に、スカラ処理部１２からはポート２５に発信される。ベクトル処理部１１からの一連のアクセスは、アクセス処理部４により８単位同時に処理されることになる。
【０００９】
▲２▼シングルアクセス（読出／書込）：ベクトル処理部１１またはスカラ処理部１２から発信される。主記憶６の任意の１バンクに対して読出または書込を行なう。１回のシングルアクセスでは、８本のアクセスバス５１〜５８のうちの１本のみが使用される。このシングルアクセスによるアクセス要求も、ベクトル処理部１１からはプライオリティ決定回路３のポート２１〜２４のうちの一つ（例えばポート２１）に、スカラ処理部１２からはポート２５に発信される。
【００１０】
▲３▼ランダムアクセス（読出／書込）：ベクトル処理部１１からのみ発信される。プライオリティ決定回路３のポート２１〜２４に対してシングルアクセスが同時に発信される。１回のランダムアクセスで、最大４バンクに対して同時に書込または読出が行なわれ、８本のアクセスバス５１〜５８のうち最大で４本が使用される。このランダムアクセスは、一連の連続しない主記憶領域へのアクセスであって、最初はポート２１〜２４に対し同時にアクセス要求があり、以後、空いたポートに次々とアクセス要求が発信されることになる。そして、プライオリティ決定回路３は、ポート２１→ポート２２→ポート２３→ポート２４→ポート２１→…の順序を保ちながらアクセス要求を処理してゆく。つまり、そのポート間の競合やビジー等で発信できないアクセス要求がある場合は、前述した順序を保証するためにそのアクセス要求よりも後方に位置するポートへのアクセス要求の発信は禁止される。
【００１１】
上述のようなデータ処理装置において、例えば、優先順位の高いポート２５に発信されるアクセス要求が同一バンクに対する連続するシングルアクセスである場合、そのバンクは常にポート２５のアクセス要求のみに使用されることになり、他ポートからそのバンクへのアクセスは、ポート２５のアクセス要求が他バンクに移るかアクセス要求が途切れるかするまで、事実上不可能になる。このような状況をハングアップと称する。
【００１２】
また、高い優先順位をもつポートへのアクセス要求の中止の条件が、低い優先順位をもつポートへのアクセス要求の処理終了であるようなプログラムが記述可能である場合、低い優先順位をもつポートのアクセス要求が全く処理されず、高い優先順位をもつポートへのアクセスが途切れることなく処理されてしまい、結果的に低い優先順位をもつポートへのアクセスはハングアップしてしまう。
【００１３】
そこで、ハングアップを検出してハングアップが実際に生じるのを防止するために、図６に示すようなデータ処理装置も提案されている（特開平６−１６１８７３号公報参照）。なお、図６中、既述の符号と同一の符号は同一部分を示しているので、その説明は省略する。
図６に示すデータ処理装置は、図５に示したデータ処理装置に、ハングアップ検出回路７１〜７５，カウンタ７６およびハングアップ処理回路９を新たに付加した構成となっている。
【００１４】
ハングアップ検出回路７１〜７５は、それぞれ、ポート２１〜２５に対応してそなえられ、ポート２１〜２５に保持されているアクセス要求が一定時間以上保持された場合にそのアクセス要求がハングアップ状態であるとして、“０”から“１”に立ち上がるハングアップ検出信号（ハングアップ検出フラグ）８１〜８５をハングアップ処理回路９へ出力するものである。各ハングアップ検出回路７１〜７５は、図７を参照して後述するごとく、カウンタ７６の出力をトリガ信号として用いながらハングアップの検出を行なっている。
【００１５】
ハングアップ処理回路９は、ハングアップ検出回路７１〜７５からの検出信号８１〜８５を受け、ハングアップを検出されたポートが１つの場合は、そのポートのアクセス要求にのみプライオリティを与え（プライオリティ反転制御）、これが発信されるまで他ポートのアクセス要求の発信を抑止する一方、ハングアップを検出されたポートが２以上であった場合は、予め決められた優先順位に従い１ポートずつ同様の処理を行なうものである。このように、ハングアップ処理回路９により、ハングアップ検出回路７１〜７５からの検出信号８１〜８５に応じて優先順位（プライオリティ）の反転制御が行なわれ、プライオリティ決定回路３におけるハングアップが回避される。
【００１６】
ところで、ハングアップ検出回路７１は、例えば図７に示すごとく、インバータ２０１，ＡＮＤゲート２０２，２０４，ラッチ回路２０３，２０５から構成されている。なお、他のハングアップ検出回路７２〜７５も図７に示す回路７１と同様の構成になっている。
図７において、カウンタ７６の出力は、ポート２１に保持されている時間を直接的に計測するためのものではなく、カウンタ７６のキャリーアップ信号が、後述のごとく、ハングアップ予測フラグ用のラッチ回路２０３およびハングアップ検出フラグ用のラッチ回路２０５をセットするためのトリガ信号として用いられている。
【００１７】
図７における各信号の意味は次の通りである。
▲１▼ポートバリッド信号：ポート２１（〜２５）にアクセス要求があることを示す信号
▲２▼ポートリリース信号：ポート２１（〜２５）に保持されているアクセス要求が次タイミングで主記憶６に発信されることを示す信号
▲３▼トリガ信号：カウンタ７６のキャリーアップ信号（最上位キャリー信号）
次に、図７に示すハングアップ検出回路７１（〜７５）の動作について説明する。
【００１８】
最初、ハングアップ予測フラグ用ラッチ回路２０３およびハングアップ検出フラグ用ラッチ回路２０５の出力は、ともに“０”にリセットされているものとする。
今、カウンタ７６からのトリガ信号（キャリーアップ信号）が“１”になったタイミングで対応するポート２１にアクセス要求があってポートバリッド信号が“１”になり、且つ、それが次タイミングで発信されない即ちポートリリース信号が“０”であれば、ポートリリース信号は、インバータ２０１で“１”に反転され、ＡＮＤゲート２０２の３つの入力（トリガ信号，ポートバリッド信号，ポートリリース信号）が全て“１”になって、ハングアップ予測フラグ用ラッチ回路２０３の出力が“１”にセットされる。
【００１９】
カウンタ７６からのトリガ信号が次に“１”になるまでの間（カウンタ７６の計時数Ｎτとする）にアクセス要求が発信されれば（即ちポートリリース信号が“１”になれば）、ハングアップ予測フラグ用ラッチ回路２０３はリセットされる。ハングアップ予測フラグ用ラッチ回路２０３がリセットされないまま、トリガ信号が“１”になると、今度は、ＡＮＤゲート２０４の２つの入力（ラッチ回路２０３の出力およびトリガ信号）が“１”になって、ハングアップ検出フラグ用ラッチ回路２０５の出力が“１”にセットされる。
【００２０】
この後、ハングアップ処理回路９の機能により、ポート２１に保持されていたアクセス要求が主記憶６に発信されると（即ちポートリリース信号が“１”になると）、ハングアップ予測フラグ用ラッチ回路２０３およびハングアップ検出フラグ用ラッチ回路２０５の出力はともに“０”にリセットされる。
このようなハングアップ検出回路７１（〜７５）により、ポート２１にアクセス要求が保持されている時間がＮτを超えるとハングアップが検出されることがあり、２Ｎτ以上であれば必ずハングアップが検出される。また、このハングアップ検出回路７１（〜７５）では、ハングアップの検出が短時間で連続して起こることはなく、最小Ｎτ間隔で起こるのでアクセス処理全体に占めるハングアップ処理の割合を比較的低く抑えることができる。
【００２１】
なお、図８（ａ）〜（ｆ）は、ハングアップ検出回路７１（〜７５）によりハングアップが検出される際の具体的なタイムチャートである。この図８（ａ）〜（ｆ）に示す例では、カウンタ７６の計時数Ｎが２５６で、図８（ａ），（ｂ）に示すごとく、カウンタ７６が“０”から計数を開始し“２５５”を計数するタイミングでトリガ信号が“１”に立ち上がっている。
【００２２】
図８（ｂ）〜（ｆ）に示すように、ポート２１にアクセス要求が保持されてから（ポートバリッド信号が“１”になってから）最初のトリガ信号の立ち上がりタイミングで、ハングアップ予測フラグ用ラッチ回路２０３の出力（ハングアップ予測フラグ）が“１”にセットされる。
そして、２５６τ後の次のトリガ信号の立ち上がり時点にポート２１に未だ同一のアクセス要求が保持されていると、そのトリガ信号の立ち上がりタイミングでハングアップ検出フラグ用ラッチ回路２０５の出力（ハングアップ検出フラグ）が“１”にセットされ、ハングアップが検出される（ハングアップ検出信号８１が“０”から“１”に立ち上がる）。
【００２３】
つまり、ポート２１にアクセス要求が保持されている時間が２５６τを超えると、その保持時間が５１２τになるまでに、ハングアップが検出されることになる。そして、そのアクセス要求についてのポートリリース信号が“１”になるタイミングで、ハングアップ予測フラグ用ラッチ回路２０３およびハングアップ検出フラグ用ラッチ回路２０５の出力がともに“０”にリセットされる。
【００２４】
このように、上述したデータ処理装置では、各ポート２１〜２５にアクセス要求が保持されている時間が予め決められた時間Ｔ（例えばＮτまたは２５６τ）を超えたことを検出する手段（ハングアップ検出回路７１〜７５）を設け、その手段によりアクセス要求の保持時間が時間Ｔを超えたことを検出すると“１”になりそのアクセス要求が主記憶６に対し発信されると“０”になるフラグ（ハングアップ検出信号８１〜８５）を用いてハングアップ処理の制御が行なわれている。
【００２５】
【発明が解決しようとする課題】
ところで、上述のごとく構成されハングアップ検出／ハングアップ処理を行なうデータ処理装置において、例えば、Ｉ／Ｏアクセスがディスタンス付きアクセスであり同一バンクに長大なレングスでアクセスを行なっている最中に、ベクトルストアアクセスの最大レングスでアクセス要求があった場合を考えてみる。
【００２６】
そのベクトル命令は、アクセス競合が無ければ主記憶６の縦１列８バンクを全て使用できるので、２０４８／８＝２５６τで終了するが、上述のような長大なレングスのディスタンス付きアクセスが優先的に実行されておりそのアクセスと競合する場合には、そのベクトル命令を保持しているポートについてハングアップが検出されるタイミングで１度しか実行されない。従って、アクセス要求保持カウンタの値が５１２（ハングアップ検出にかかる最大時間；図８に示す例ではカウンタ７６の計時数２５６サイクル×２）であるとすると、そのベクトル命令を処理するのに（２０４８／８）＊５１２＝１３１０７２τかかることになり、データ処理装置の処理性能が著しく低下するという課題があった。
【００２７】
本発明は、このような課題に鑑み創案されたもので、ハングアップ状態が長時間に亘って継続するアクセス要求を効率良く処理できるようにして、処理性能の改善をはかったデータ処理装置を提供することを目的とする。
【００２８】
【課題を解決するための手段】
図１は本発明の原理ブロック図で、この図１に示すように、本発明のデータ処理装置は、複数のアクセス要求源１と、複数バンクにインタリーブされた主記憶６と、アクセス要求源１から主記憶６に対するアクセス要求を受け付ける複数のポート２と、これらのポート２に保持されているアクセス要求の優先順位を決定するプライオリティ決定回路３と、このプライオリティ決定回路３により決定した優先順位に従って複数のポート２に保持されているアクセス要求を主記憶６へ発信するアクセス処理部４とを有するとともに、ハングアップ検出回路７，ハングアップ処理回路９および基準時間設定部１０を有して構成されている。
【００２９】
ここで、ハングアップ検出回路７は、複数のポート２のそれぞれに対応して設けられ、対応するポート２にアクセス要求が基準時間以上保持されている場合に当該アクセス要求をハングアップとして検出するものであり、ハングアップ処理回路９は、ハングアップ検出回路７による検出結果をアクセス要求の優先順位の決定要素として用いたハングアップ処理を行なうものであり、基準時間設定部１０は、ハングアップ検出回路７によるハングアップ検出に伴いハングアップ処理回路９によるハングアップ処理を行なった後も継続的に当該アクセス要求がポート２に保持されている場合、前記基準時間を短縮設定するものである（請求項１）。
【００３０】
上述のごとく構成された本発明のデータ処理装置では、ハングアップ検出回路７によるハングアップ検出に伴いハングアップ処理回路９によるハングアップ処理を行なった後も継続的に同一のアクセス要求がポート２に保持され続けている場合には、基準時間設定部１０により、ハングアップ検出回路７によるハングアップ検出基準となる前記基準時間がより短い時間に設定される。従って、ハングアップ検出回路７によるハングアップ検出の間隔が短くなり、ハングアップ状態が長時間に亘って継続するアクセス要求を効率良く処理することが可能になる。
【００３１】
なお、ハングアップ処理回路９が、前記ハングアップ処理として、ハングアップ検出回路７によるハングアップ検出に応じたアクセス要求の優先順位の反転制御を行なうように構成するとともに、基準時間設定部１０を、ハングアップ処理回路９により優先順位の反転制御を行なった回数を計数する優先順位反転回数カウンタと、この優先順位反転回数カウンタによる計数値に応じて前記基準時間をより短い基準時間に切り換える基準時間切換回路とから構成してもよい（請求項２）。このとき、優先順位反転回数カウンタのリセットを、当該アクセス要求を保持しているポート２のバリッドオフに応じて行なうように構成する（請求項３）。
【００３２】
つまり、ハングアップ処理回路９による優先順位の反転制御の回数が増加する程、同一のアクセス要求がポート２に継続的に保持されているものと判断することができるので、優先順位反転回数カウンタによる計数値に応じて、基準時間切換回路により、ハングアップ検出回路７によるハングアップ検出基準となる前記基準時間をより短い時間に切り換えることで、前述の通り、長時間に亘ってハングアップ状態のアクセス要求を効率良く処理することができる。
【００３３】
また、複数のポート２のそれぞれに対応して設けられたハングアップ検出回路７が、共通のカウンタの計数出力を用いて、ハングアップの検出を行なうように構成してもよい（請求項４）。この場合、ハングアップ検出用のカウンタ（アクセス要求のポート保持期間を計測するために用いるカウンタ）を、複数のポート２毎にそなえることなく、ハングアップの検出を行なうことができる。
【００３４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図２は本発明の一実施形態としてのデータ処理装置の構成を示すブロック図である。なお、この図２においては、図５や図６に示した５つのポート２１〜２５，８つのアクセスバス５１〜５８，５つのハングアップ検出回路７１〜７５および５つのハングアップ検出信号８１〜８５を、それぞれ、１つの符号に統一、つまり、ポート２，アクセスバス５，ハングアップ検出回路７およびハングアップ検出信号８に統一して表記している。また、図２中、既述の符号と同一の符号は同一部分を示しているので、その詳細な説明は省略する。
【００３５】
図２に示すように、本実施形態のデータ処理装置も、図６に示した装置とほぼ同様、アクセス要求源としてベクトル処理部１１およびスカラ処理部１２を有するとともに、プライオリティ決定回路３，アクセス処理部４，主記憶６，ハングアップ処理回路９のほか、ポート２毎のハングアップ検出回路７を有して構成されているが、本実施形態では、ポート２毎のハングアップ検出回路７に、基準時間設定部１０が新たに付設されている。
【００３６】
ここで、ベクトル処理部１１は、４つのポート２を介してプライオリティ決定回路３に、主記憶６に対するアクセス要求を出力する一方、スカラ処理部１２は、１つのポート２を介してプライオリティ決定回路３に、主記憶６に対するアクセス要求を出力するようになっている。
また、主記憶６は、バンク０〜３１の３２バンクにインタリーブされており、図２に示す横方向の４バンクを１組としてアクセス処理部４から主記憶６に対する８本のアクセスバス５を張ることにより、主記憶６の８バンクに対して同時にアクセスできる構成になっている。
【００３７】
プライオリティ決定回路３は、各ポート２のアクセス要求の内容，ポート２間の優先順位，ポート２間のアクセスバス５の競合，主記憶６のバンク毎のビジー状況等に基づいて、アクセス処理すべきアクセス要求（どのポートからのアクセス要求を処理すべきか；アクセス要求の優先順位）を決定するものである。
ハングアップ検出回路７は、ポート２毎にそなえられ、図３を参照しながら後述するごとく図７にて説明したものと全く同様に構成されており、各ポート２に保持されているアクセス要求が基準時間以上保持されている場合にそのアクセス要求がハングアップ状態であるとして、“０”から“１”に立ち上がるハングアップ検出信号（ハングアップ検出フラグ）８をハングアップ処理回路９へ出力するものである。
【００３８】
なお、本実施形態の各ハングアップ検出回路７も、図３を参照して後述するごとく、共通のカウンタ７６の計数出力を、ハングアップ予測フラグ用のラッチ回路２０３およびハングアップ検出フラグ用のラッチ回路２０５をセットするためのトリガ信号として用いながらハングアップの検出を行なっている。
また、ハングアップ処理回路９は、各ハングアップ検出回路７による検出結果をアクセス要求の優先順位の決定要素として用いたハングアップ処理（ハングアップ検出回路７によるハングアップ検出に応じたアクセス要求の優先順位の反転制御）を行なうものである。
【００３９】
そして、基準時間設定部１０は、各ハングアップ検出回路７によるハングアップ検出に伴いハングアップ処理回路９によるハングアップ処理を行なった後も継続的に同一のアクセス要求がポート２に保持されている場合、そのポート２に付設されたハングアップ検出回路７における前記基準時間を強制的に短縮設定するものである。
【００４０】
この基準時間設定部１０は、例えば図３に示すごとく、優先順位反転回数カウンタ１０１，切換信号作成回路１０２，セレクタ１０３，ＡＮＤゲート１０４，インバータ１０５，１０６から構成されている。なお、図３には、本実施形態におけるハングアップ検出回路７の詳細構成も図示されているが、そのハングアップ検出回路７の詳細構成は、図７に示したハングアップ検出回路７１（〜７５）と全く同様であるので、その説明は省略する。
【００４１】
ここで、優先順位反転回数カウンタ１０１は、ハングアップ処理回路９により優先順位の反転制御を行なった回数を計数するためのものである。本実施形態では、ハングアップ検出回路７におけるハングアップ検出フラグ用ラッチ回路２０５の入出力に基づいて、ハングアップ検出に伴って優先順位の反転制御を行なうタイミングを検出し、そのタイミングでカウンタ１０１のカウントアップを行なっている。
【００４２】
つまり、ラッチ回路２０５の出力（ハングアップ検出信号８）が“０”の時にラッチ回路２０５へのセット入力（ＡＮＤゲート２０４の出力）が“１”になるタイミング（即ち、ハングアップ検出信号８が“０”から“１”に切り換わるタイミング）が、優先順位の反転制御タイミングであるので、ラッチ回路２０５の出力を反転するインバータ１０５と、このインバータ１０５の出力とラッチ回路２０５へのセット入力との論理積を出力するＡＮＤゲート１０４とを用いることにより、上記反転タイミングがＡＮＤゲート１０４の出力の立ち上がりとして検出することができる。そして、そのＡＮＤゲート１０４の出力をカウンタ１０１のカウントアップ信号として用いることにより、ハングアップ処理回路９により優先順位の反転制御を行なった回数がカウンタ１０１で計数される。
【００４３】
なお、本実施形態の優先順位反転回数カウンタ１０１には、ハングアップ検出対象のポート２のポートバリッド信号をインバータ１０６により反転した信号がリセット信号として入力される。これにより、カウンタ１０１は、ハングアップ検出対象のポート２のバリッドオフ（アクセス要求の処理完了）に応じてリセットされるように構成されている。
【００４４】
切換信号作成回路１０２は、優先順位反転回数カウンタ１０１による計数値に応じて切換信号を作成してセレクタ１０３に与えらるものである。
そして、セレクタ（基準時間切換回路）１０３は、切換信号作成回路１０２からの切換信号に応じて、カウンタ７６の計数出力であるビットライン７６−１〜７６−ｎ（ｎビットカウンタのビット毎の出力ライン）の信号のうちの一つを選択し、ラッチ回路２０３，３０５用のトリガ信号としてハングアップ検出回路７のＡＮＤゲート２０２および２０４へ切換出力するものである。
【００４５】
つまり、本実施形態のセレクタ１０３では、優先順位反転回数カウンタ１０１による計数値が増加するのに伴い、ハングアップ検出回路７における前記基準時間がより短い基準時間に切り換えるようになっている。例えば、優先順位反転回数カウンタ１０１による計数値が０，１，２，３，４，…に対応して基準時間が２５６τ，６４τ，１６τ，４τ，４τ，…となるように、セレクタ１０３の切換制御〔トリガ信号（カウンタ７６のビットライン７６−１〜７６−ｎからのキャリーアップ信号）の選択・切換制御〕が行なわれる。より具体的かつ詳細な動作については図８（ａ）〜（ｉ）にて後述する。
【００４６】
なお、図３における各信号の意味は次の通りである。
▲１▼ポートバリッド信号：ハングアップ検出対象のポート２にアクセス要求があることを示す信号
▲２▼ポートリリース信号：ハングアップ検出対象のポート２に保持されているアセスス要求が次タイミングで主記憶６に発信されることを示す信号
▲３▼トリガ信号：カウンタ７６のビットライン７６−１〜７６−ｎの中からセレクタ１０３により選択されたキャリーアップ信号
次に、図３に示すハングアップ検出回路７および基準時間設定部１０の動作について、図４（ａ）〜（ｉ）を参照しながら説明する。
【００４７】
なお、図４（ａ）〜（ｉ）は、本実施形態のハングアップ検出回路７によるハングアップ検出動作および基準時間設定部１０による基準時間切換動作を説明するための具体的なタイムチャートである。ただし、ハングアップ検出回路７の動作については、ハングアップ検出回路７１の動作として図７および図８により前述しているので、その詳細な説明は省略する。
【００４８】
最初、ハングアップ予測フラグ用ラッチ回路２０３およびハングアップ検出フラグ用ラッチ回路２０５の出力はともに“０”にリセットされ、優先順位反転回数カウンタ１０１による計数値も“０”にリセットされているものとする。
また、優先順位反転回数カウンタ１０１の計数値が“０”の時には、カウンタ７６が“０”から計数を開始し“２５５”を計数するタイミング〔計数値２５６（＝２8 ）〕で“１”に立ち上がるキャリーアップ信号が、セレクタ１０３によりトリガ信号として選択され、ＡＮＤゲート２０２および２０４に入力されているものとする。
【００４９】
図４（ａ）〜（ｆ）に示すように、本実施形態でも、タイミングｔ０にハングアップ検出対象のポート２にアクセス要求が保持されてから（ポートバリッド信号が“１”になってから）最初のトリガ信号の立ち上がりタイミング（２５６計数タイミング）ｔ１で、ハングアップ予測フラグ用ラッチ回路２０３の出力（ハングアップ予測フラグ）が“１”にセットされる。
【００５０】
そして、２５６τ後の次のトリガ信号の立ち上がり時点ｔ２にポート２に未だ同一のアクセス要求が保持されていると、そのトリガ信号の立ち上がりタイミングｔ２でハングアップ検出フラグ用ラッチ回路２０５の出力（ハングアップ検出フラグ）が“１”にセットされ、ハングアップが検出される（ハングアップ検出信号８が“０”から“１”に立ち上がる）。つまり、ポート２にアクセス要求が保持されている時間が２５６τを超えると、その保持時間が５１２τになるまでに、ハングアップが検出されることになる。
【００５１】
このようにハングアップが検出されると、図８によっても説明した通り、ハングアップ処理回路９により優先順位の反転制御が行なわれ、そのアクセス要求が処理され、そのアクセス要求についてのポートリリース信号が“１”になるタイミングｔ３で、ハングアップ予測フラグ用ラッチ回路２０３およびハングアップ検出フラグ用ラッチ回路２０５の出力がともに“０”にリセットされる。
【００５２】
一方、本実施形態における基準時間設定部１０では、図３にて前述した通り、ハングアップ検出信号８が“０”から“１”に立ち上がるタイミングｔ２でＡＮＤゲート１０４の出力も“１”に立ち上がり、図４（ｇ）に示すように、優先順位反転回数カウンタ１０１による計数値は“０”から“１”になる。
このカウンタ１０１の計数値“１”は、ハングアップ検出に応じたハングアップ処理回路９による優先順位の反転制御に伴いポート２が解放されポートバリッド信号が“０”になれば、“０”にリセットされるが、ここでは、図４（ｄ）に示すようにタイミングｔ３でポートリリース信号が立ち上がった後も、図４（ｃ）に示すように、ハングアップ検出対象のポート２にアクセス要求が保持され続け、ポートバリッド信号が“１”のままであるものとする。
【００５３】
このような場合、本実施形態の基準時間設定部１０では、図４（ｈ）に示すように、優先順位反転回数カウンタ１０１による計数値が“１”になるのに応じ、切換信号作成回路１０２からセレクタ１０３に対して切換信号が出力される。この切換信号により、カウンタ１０１の計数値が“１”の時には、カウンタ７６が“０”から計数を開始し“６３”を計数するタイミング〔計数値６４（＝２6 ）〕で“１”に立ち上がるキャリーアップ信号が、トリガ信号として選択され、セレクタ１０３からＡＮＤゲート２０２および２０４に入力される。
【００５４】
従って、図４（ａ）〜（ｆ）に示すように、優先順位反転回数カウンタ１０１の計数値が“１”になると、カウンタ７６の６４計数タイミングｔ４で、ハングアップ予測フラグ用ラッチ回路２０３の出力（ハングアップ予測フラグ）が“１”にセットされる。
さらに６４τ後のトリガ信号の立ち上がり時点ｔ５にポート２に未だ同一のアクセス要求が保持されていると、そのトリガ信号の立ち上がりタイミングｔ５でハングアップ検出フラグ用ラッチ回路２０５の出力（ハングアップ検出フラグ）が“１”にセットされ、ハングアップが検出される（ハングアップ検出信号８が“０”から“１”に立ち上がる）。つまり、優先順位反転回数カウンタ１０１の計数値が“１”の時には、ポート２にアクセス要求が保持されている時間が６４τを超えると、その保持時間が１２８τになるまでに、再びハングアップが検出されることになる。
【００５５】
このようにしてハングアップが検出されると、やはりハングアップ処理回路９により優先順位の反転制御が行なわれ、そのアクセス要求が処理され、そのアクセス要求についてのポートリリース信号が“１”になるタイミングｔ６で、ハングアップ予測フラグ用ラッチ回路２０３およびハングアップ検出フラグ用ラッチ回路２０５の出力がともに“０”にリセットされる。
【００５６】
また、ハングアップ検出信号８が“０”から“１”に立ち上がるタイミングｔ５でＡＮＤゲート１０４の出力も“１”に立ち上がり、図４（ｇ）に示すように優先順位反転回数カウンタ１０１による計数値は“１”から“２”になる。これに伴い、図４（ｉ）に示すように、切換信号作成回路１０２からセレクタ１０３に対して切換信号が出力され、カウンタ１０１の計数値が“２”の時には、カウンタ７６が“０”から計数を開始し“１５”を計数するタイミング〔計数値１６（＝２4 ）〕で“１”に立ち上がるキャリーアップ信号が、トリガ信号として選択され、セレクタ１０３からＡＮＤゲート２０２および２０４に入力される。
【００５７】
そして、図４（ａ）〜（ｉ）に示す例では、タイミングｔ５でのハングアップ検出に伴う優先順位反転制御によってポート２が解放され、タイミングｔ７でポートバリッド信号が“０”になっている。これに伴い、優先順位反転回数カウンタ１０１の計数値は“０”にリセットされるとともに、切換信号作成回路１０２およびセレクタ１０３もリセットされて、基準時間設定部１０は初期状態（ハングアップ検出回路７に、カウンタ７６からの信号のうち２５６計数タイミングで立ち上がるキャリーアップ信号をトリガ信号として選択入力する状態）に戻る。
【００５８】
なお、タイミングｔ７以降もポート２に同一のアクセス要求が保持され続ける場合には、優先順位反転回数カウンタ１０１による計数値は、“２”，“３”，“４”，…と増加し、それに伴い、前述したように、切換信号作成回路１０２およびセレクタ１０３により、カウンタ７６からの信号のうち１６，４，４，…計数タイミングで立ち上がるキャリーアップ信号が、トリガ信号として選択され、ハングアップ検出回路７に入力される。
【００５９】
このように、本実施形態のデータ処理装置では、ハングアップ処理回路９による優先順位の反転制御の回数が増加する程、同一のアクセス要求がポート２に継続的に保持されているものと判断できることから、優先順位反転回数カウンタ１０１による計数値に応じて、切換信号作成回路１０２およびセレクタ１０３により、カウンタ７６からの信号の中からより短い間隔で立ち上がる信号を選択してハングアップ検出回路７（ＡＮＤゲート２０２，２０４）にトリガ信号として入力している。
【００６０】
これにより、ハングアップ検出回路７によるハングアップ検出基準となる基準時間がより短い時間に切り換えられ、ハングアップ検出回路７によるハングアップ検出の間隔が短くなり、ハングアップ状態が長時間に亘って継続するアクセス要求を効率良く処理することができ、データ処理性能が大幅に改善される。
例えば、Ｉ／Ｏアクセスがディスタンス付きアクセスであり同一バンクに長大なレングスでアクセスを行なっている最中に、ベクトルストアアクセスの最大レングスでアクセス要求があった場合、前述したように、そのベクトル命令は、アクセス競合が無ければ２０４８／８＝２５６τで終了するが、アクセス競合が有れば（２０４８／８）＊５１２＝１３１０７２τかかっていた。
【００６１】
しかし、本実施形態のデータ処理装置によれば、優先順位反転回数カウンタ１０１の計数値０，１，２，３，４，…に対応して基準時間が２５６τ，６４τ，１６τ，４τ，４τ，…（ハングアップ検出にかかる最大時間としては、５１２τ，１２８τ，３２τ，８τ，８τ，…）となるように、セレクタ１０３の切換制御を行なうことにより、１３１０７２τかかっていた処理時間を２６９６τとすることができ、処理を５０倍程度も高速化できることになる。
【００６２】
また、本実施形態のデータ処理装置では、ポート２毎にそなえたハングアップ検出回路７が、共通のカウンタ７６の計数出力を用いてハングアップの検出を行なっているので、アクセス要求のポート保持期間を計測するために用いるカウンタをポート２毎にそなえる必要がなく、ハードウエアを削減できるほか、ポート２が増大してもカウンタの増大によるハードウエアの増大を招くことがない。
【００６３】
なお、上述した実施形態では、優先順位反転回数カウンタ１０１の計数値に応じて、ハングアップ検出回路７における基準時間の切換を行なっているが、アクセス要求源の種類（ベクトル処理部１１，スカラ処理部１２等）に応じてハングアップ検出回路７における基準時間を短縮設定するように構成してもよい。
また、上述した実施形態では、カウンタ７６からの信号の中からより短い間隔で立ち上がる信号を選択することで、基準時間の短縮設定を行なっているが、タイマ等による計時時間を減算設定するなどの手法を用いて基準時間の短縮設定を行なうように構成してもよい。
【００６４】
さらに、上述した実施形態では、ポート２の数を５とするとともに、優先順位反転回数カウンタ１０１の計数値に応じて設定される基準時間として具体的な数値を示しているが、本発明は、これらの数値に限定されるものではない。
【００６５】
【発明の効果】
以上詳述したように、本発明のデータ処理装置によれば、ハングアップ検出に伴いハングアップ処理を行なった後も継続的に同一のアクセス要求がポートに保持され続けている場合には、ハングアップ検出の間隔（基準時間）が短くなるので、ハングアップ状態が長時間に亘って継続するアクセス要求を効率良く処理することができ、データ処理性能が大幅に改善される（請求項１〜３）。
【００６６】
また、複数のポートのそれぞれに対応するハングアップ検出回路が、共通のカウンタの計数出力を用いてハングアップの検出を行なうように構成することにより、アクセス要求のポート保持期間を計測するために用いるカウンタを、ポート毎にそなえる必要がなく、ハードウエアを削減できるほか、ポートが増大してもカウンタの増大によるハードウエアの増大を招くことがない（請求項４）。
【図面の簡単な説明】
【図１】本発明の原理ブロック図である。
【図２】本発明の一実施形態としてのデータ処理装置の構成を示すブロック図である。
【図３】本実施形態のデータ処理装置におけるハングアップ検出回路および基準時間設定部の詳細構成を示すブロック図である。
【図４】（ａ）〜（ｉ）は本実施形態におけるハングアップ検出回路および基準時間設定部の動作を説明するためのタイムチャートである。
【図５】一般的なデータ処理装置の構成例を示すブロック図である。
【図６】ハングアップ検出を行なう従来のデータ処理装置の構成例を示すブロック図である。
【図７】ハングアップ検出回路の構成例を示すブロック図である。
【図８】（ａ）〜（ｆ）は図７に示すハングアップ検出回路の動作を説明するためのタイムチャートである。
【符号の説明】
１  アクセス要求源
１１  ベクトル処理部（アクセス要求源）
１２  スカラ処理部（アクセス要求源）
２，２１〜２５  ポート
３  プライオリティ決定回路
４  アクセス処理部
５，５１〜５８  アクセスバス
６  主記憶
７，７１〜７５  ハングアップ検出回路
７６  カウンタ
７６−１〜７６−ｎ  ビットライン
８，８１〜８５  ハングアップ検出信号（ハングアップ検出フラグ）
９  ハングアップ処理回路
１０  基準時間設定部
１０１  優先順位反転回数カウンタ
１０２  切換信号作成回路
１０３  セレクタ（基準時間切換回路）
１０４  ＡＮＤゲート
１０５，１０６  インバータ
２０１  インバータ
２０２，２０４  ＡＮＤゲート
２０３  ハングアップ予測フラグ用ラッチ回路
２０５  ハングアップ検出フラグ用ラッチ回路
【図１】
0003754765.tif 000002
【図２】
0003754765.tif 000003
【図３】
0003754765.tif 000004
【図４】
0003754765.tif 000005
【図５】
0003754765.tif 000006
【図６】
0003754765.tif 000007
【図７】
0003754765.tif 000008
【図８】
0003754765.tif 000009