(57)【特許請求の範囲】
【請求項１】
複数のポートからメモリ装置へ向かうインバウンドトランザクションを調停し、前記メモリ装置からのアウトバウンドトランザクションを前記ポートへ分配する調停装置であって、
それぞれの前記ポートに所定の重みを持たせて前記インバウンドトランザクションを調停し、前記メモリ装置へ入力するインバウンド部と、
前記メモリ装置より前記アウトバウンドトランザクションを受信する緩衝バッファと、前記緩衝バッファより、対応する前記ポートへの前記アウトバウンドトランザクションを受信して該ポートに出力する、前記ポート毎のポートバッファを有し、前記メモリ装置からの前記アウトバウンドトランザクションを前記ポートへ分配するアウトバウンド部と、
前記メモリ装置へ入力された前記インバウンドトランザクションのうち、リプライを要するリクエストであり、かつ前記リプライである前記アウトバウンドトランザクションが前記ポートへ出力されていないものの数を前記ポート毎にカウントし、カウント値により、前記ポートにおけるビジーの発生を予測し、ビジーの発生を緩和するように、前記重みを変更する調停制御部を有するトランザクション調停装置。
【請求項２】
前記調停制御部は、
前記メモリ装置への前記インバウンドトランザクションより、前記ポート毎の前記リクエストを検出するデコーダと、
対応するポートの前記リクエストが前記デコーダで検出されるとカウントアップし、前記アウトバウンド部より該ポートへ前記アウトバウンドトランザクションが出力されるとカウントダウンする、前記ポート毎のカウンタと、
前記カウンタのカウント値により、前記重みを変更するように前記インバウンド部へ指示するアービタコントローラを有する、請求項１記載のトランザクション調停装置。
【請求項３】
前記アービタコントローラは、
前記カウント値が所定の閾値を超えたカウンタに対応するポートを、入力禁止ポートとして前記インバウンド部へ通知し、
前記インバウンド部は、前記アービタコントローラより通知された前記入力禁止ポートの前記インバウンドトランザクションの前記メモリ装置への入力を停止する、請求項２記載のトランザクション調停装置。
【請求項４】
前記カウンタは、対応する前記ポートバッファより前記アウトバウンドトランザクションが出力されるとカウントダウンする、請求項２記載のトランザクション調停装置。
【請求項５】
前記インバウンド部は、
対応する前記ポートより前記インバウンドトランザクションを受信する、前記ポート毎のポートバッファと、
前記ポートバッファ毎に所定の重みを持たせて、前記ポートバッファにより受信された前記インバウンドトランザクションを調停し、前記メモリ装置へ入力するアービタを有し、
前記デコーダは、前記アービタの出力より前記ポート毎の前記リクエストを検出し、
前記アービタコントローラは、前記重みを変更するように前記アービタへ指示する、請求項２記載のトランザクション調停装置。
【請求項６】
複数のポートからメモリ装置へ向かうインバウンドトランザクションを調停し、前記メモリ装置より前記アウトバウンドトランザクションを受信する緩衝バッファと、前記緩衝バッファより、対応する前記ポートへの前記アウトバウンドトランザクションを受信して該ポートに出力する、前記ポート毎のポートバッファを有し、前記メモリ装置からのアウトバウンドトランザクションを前記ポートへ分配する調停装置におけるトランザクション調停方法であって、
前記メモリ装置へ入力された前記インバウンドトランザクションのうち、リプライを要するリクエストであり、かつ前記リプライが前記ポートへ出力されていないものの数を前記ポート毎にカウントするステップと、
前記メモリ装置へ入力する前記インバウンドトランザクションの調停における、各ポートに与えられた重みを、前記ポート毎のカウント値により、前記ポートにおけるビジーの発生を予測し、ビジーの発生を緩和するように、変更するステップを有するトランザクション調停方法。
【請求項７】
複数のポートからメモリ装置へ向かうインバウンドトランザクションを調停し、前記メモリ装置より前記アウトバウンドトランザクションを受信する緩衝バッファと、前記緩衝バッファより、対応する前記ポートへの前記アウトバウンドトランザクションを受信して該ポートに出力する、前記ポート毎のポートバッファを有し、前記メモリ装置からのアウトバウンドトランザクションを前記ポートへ分配する調停装置におけるトランザクション調停方法であって、
前記メモリ装置へ入力された前記インバウンドトランザクションのうち、リプライを要するリクエストであり、かつ前記リプライが前記ポートへ出力されていないものの数を前記ポート毎にカウントするステップと、
前記ポート毎のカウント値を、前記ポートにおけるビジーの発生を予測するための所定の閾値と比較するステップと、
前記カウント値が前記閾値を超えたポートの前記トランザクションの前記メモリ装置への入力を停止するステップを有するトランザクション調停方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のポートからのメモリアクセスのトランザクションを調停する調停回路に関する。
【０００２】
【従来の技術】
図３は、従来の調停装置の構成を示すブロック図である。
【０００３】
調停装置３０は、複数のポートからのメモリ装置９０へのアクセスを調停するために、インバウンドポートバッファ３１1，３１2，３１3、インバウンドアービタ３２、アウトバウンド緩衝バッファ３３、アウトバウンドルータ３４、アウトバウンドポートバッファ３５1，３５2，２５3を有する。調停装置３０は、ポートＡ，Ｂ，Ｃのトランザクションの調停を行う。
【０００４】
インバウンドポートバッファ３１1，３１2，３１3は、ポートＡ，Ｂ，Ｃからのトランザクション（以下、インバウンドトランザクションと称す）をそれぞれキューイングする。
【０００５】
インバウンドアービタ３２は、調停により選択したトランザクションをインバウンドポートバッファ３１1，３１2，３１3より取り出してメモリ装置９０に入力する。
【０００６】
アウトバウンド緩衝バッファ３３は、メモリ装置９０からのリプライ（以下、アウトバウンドトランザクションと称す）を受信して一時的に蓄積する。
【０００７】
アウトバウンドルータ３４は、アウトバウンドポートバッファ３５1，３５2，２５3の空き容量を監視し、アウトバウンド緩衝バッファ３３からアウトバウンドポートバッファ３５1，３５2，２５3へのアウトバウンドトランザクションの入力を制御する。
【０００８】
アウトバウンドポートバッファ３５1，３５2，２５3は、ポートＡ，Ｂ，Ｃへのアウトバウンドトランザクションをそれぞれ蓄積し、出力先の各ポートの状況に応じてアウトバウンドトランザクションを出力する。例えば、アウトバウンドポートバッファ３５1は、ポートＡがビジー状態であれば出力を停止し、ビジー状態が解消されれば出力を開始する。
【０００９】
調停装置３０はポートＡ，Ｂ，Ｃからのインバウンドトランザクションを、インバウンドポートバッファ３１1，３１2，３１3に一時的に蓄積し、調停によって選択されたものをメモリ装置９０へ出力する。
【００１０】
また、調停装置３０は、メモリ装置９０よりのアウトバウンドトランザクションをアウトバウンド緩衝バッファ３３に蓄積した後にアウトバウンドポートバッファ３５1，３５2，３５3に移し、各ポートに出力する。
【００１１】
これにより、複数のポートからメモリ装置９０へアクセスすることが可能となる。
【００１２】
【発明が解決しようとする課題】
従来の調停装置３０では、インバウンドアービタ３２は、アウトバンドポートバッファ３５1，３５2，３５3のビジー状態と無関係にインバンドトランザクションをメモリ装置９０に送出する。また、従来の調停装置３０では、アウトバウンド緩衝バッファ３３は、先頭のアウトバウンドトランザクションが出力された後でないと、２段目以降にあるアウトバンドトランザクションを出力できない。
【００１３】
例えば、ポートＡへのアウトバウンドトランザクションがアウトバウンド緩衝バッファ３３の先頭にあり、アウトバウンドポートバッファ３５1がビジー状態であると、ビジー状態でない他のポートへのアウトバウンドトランザクションが２段目以降にあっても、アウトバウンド緩衝バッファ３３はそれを出力できない。
【００１４】
アウトバウンド緩衝バッファ３３が、ビジー状態のポートへのアウトバウンドトランザクションを追い越して、ビジー状態でないポートへのアウトバウンドトランザクションを出力することができれば、その問題は解決される。そのためには、例えばＦＩＦＯ構成のアウトバウンド緩衝バッファをポート毎に設けるなどして、アウトバウンド緩衝バッファからポート毎に読み出し可能とする必要がある。しかし、ポート毎のアウトバウンド緩衝バッファを設けたアウトバウンド緩衝バッファは、単純なＦＩＦＯ構成のものに比べてハードウェア量が大きい。
【００１５】
本発明の目的は、アウトバウンドの他ポートのビジー状態によって、ポート毎のインバウンドトランザクションをメモリに入力できない状態を緩和した調停装置を小さなハードウェアで提供することである。
【００１６】
【課題を解決するための手段】
上記目的を達成するために、本発明のトランザクション調停装置は、複数のポートからメモリ装置へ向かうインバウンドトランザクションを調停し、前記メモリ装置からのアウトバウンドトランザクションを前記ポートへ分配する調停装置であって、
それぞれの前記ポートに所定の重みを持たせて前記インバウンドトランザクションを調停し、前記メモリ装置へ入力するインバウンド部と、
前記メモリ装置より前記アウトバウンドトランザクションを受信する緩衝バッファと、前記緩衝バッファより、対応する前記ポートへの前記アウトバウンドトランザクションを受信して該ポートに出力する、前記ポート毎のポートバッファを有し、前記メモリ装置からの前記アウトバウンドトランザクションを前記ポートへ分配するアウトバウンド部と、
前記メモリ装置へ入力された前記インバウンドトランザクションのうち、リプライを要するリクエストであり、かつ前記リプライである前記アウトバウンドトランザクションが前記ポートへ出力されていないものの数を前記ポート毎にカウントし、カウント値により、前記ポートにおけるビジーの発生を予測し、ビジーの発生を緩和するように、前記重みを変更する調停制御部を有する。
【００１７】
したがって、メモリ装置へ入力したリクエストのうち、それに対応するリプライが出力されていないものの数がカウンタで各ポート毎にカウントされ、そのカウント値からのビジー状態の予測により、インバウンドトランザクションの調停における重みが制御されるので、各ポートにおけるビジー状態の発生が緩和される。
【００１８】
本発明の実施形態によれば、前記調停制御部は、
前記メモリ装置への前記インバウンドトランザクションより、前記ポート毎の前記リクエストを検出するデコーダと、
対応するポートの前記リクエストが前記デコーダで検出されるとカウントアップし、前記アウトバウンド部より該ポートへ前記アウトバウンドトランザクションが出力されるとカウントダウンする、前記ポート毎のカウンタと、
前記カウンタのカウント値により、前記重みを変更するように前記インバウンド部へ指示するアービタコントローラを有する。
【００１９】
本発明の実施形態によれば、前記アービタコントローラは、
前記カウント値が所定の閾値を超えたカウンタに対応するポートを、入力禁止ポートとして前記インバウンド部へ通知し、
前記インバウンド部は、前記アービタコントローラより通知された前記入力禁止ポートの前記インバウンドトランザクションの前記メモリ装置への入力を停止する。
【００２０】
本発明の実施形態によれば、前記カウンタは、対応する前記ポートバッファより前記アウトバウンドトランザクションが出力されるとカウントダウンする。
【００２１】
複数のポートに共通の緩衝バッファを有する構成において、メモリ装置へのインバウンドトランザクションの入力をポート毎に制御するので、ビジーとなった他のポートの影響で、各ポートのアウトバウンドトランザクションが出力できない状態の発生を緩和できる。
【００２２】
本発明の実施形態によれば、前記インバウンド部は、
対応する前記ポートより前記インバウンドトランザクションを受信する、前記ポート毎のポートバッファと、
前記ポートバッファ毎に所定の重みを持たせて、前記ポートバッファにより受信された前記インバウンドトランザクションを調停し、前記メモリ装置へ入力するアービタを有し、
前記デコーダは、前記アービタの出力より前記ポート毎の前記リクエストを検出し、
前記アービタコントローラは、前記重みを変更するように前記アービタへ指示する。
【００２３】
本発明のトランザクション調停方法は、複数のポートからメモリ装置へ向かうインバウンドトランザクションを調停し、前記メモリ装置より前記アウトバウンドトランザクションを受信する緩衝バッファと、前記緩衝バッファより、対応する前記ポートへの前記アウトバウンドトランザクションを受信して該ポートに出力する、前記ポート毎のポートバッファを有し、前記メモリ装置からのアウトバウンドトランザクションを前記ポートへ分配する調停装置におけるトランザクション調停方法であって、
前記メモリ装置へ入力された前記インバウンドトランザクションのうち、リプライを要するリクエストであり、かつ前記リプライが前記ポートへ出力されていないものの数を前記ポート毎にカウントするステップと、
前記メモリ装置へ入力する前記インバウンドトランザクションの調停における、各ポートに与えられた重みを、前記ポート毎のカウント値により、前記ポートにおけるビジーの発生を予測し、ビジーの発生を緩和するように、変更するステップを有する。
【００２４】
本発明の他のトランザクション調停方法は、複数のポートからメモリ装置へ向かうインバウンドトランザクションを調停し、前記メモリ装置より前記アウトバウンドトランザクションを受信する緩衝バッファと、前記緩衝バッファより、対応する前記ポートへの前記アウトバウンドトランザクションを受信して該ポートに出力する、前記ポート毎のポートバッファを有し、前記メモリ装置からのアウトバウンドトランザクションを前記ポートへ分配する調停装置におけるトランザクション調停方法であって、
前記メモリ装置へ入力された前記インバウンドトランザクションのうち、リプライを要するリクエストであり、かつ前記リプライが前記ポートへ出力されていないものの数を前記ポート毎にカウントするステップと、
前記ポート毎のカウント値を、前記ポートにおけるビジーの発生を予測するための所定の閾値と比較するステップと、
前記カウント値が前記閾値を超えたポートの前記トランザクションの前記メモリ装置への入力を停止するステップを有する。
【００２５】
【発明の実施の形態】
本発明の実施形態について図面を参照して詳細に説明する。
【００２６】
図１を参照すると、本実施形態の調停装置１０は、インバウンドポートバッファ１１1，１１2，１１3、インバウンドアービタ１２、アウトバウンド緩衝バッファ１３、アウトバウンドルータ１４、アウトバウンドポートバッファ１５1，１５2，１５3、デコーダ１６、ビジー予測カウンタ１７及びインバウンドアービタコントローラ１９を有する。ビジー予測カウンタ１７は、各ポートに対応するポートカウンタ１８1，１８2，１８3を有する。調停装置１０は、ポートＡ，Ｂ，Ｃのトランザクションの調停を行う。
【００２７】
インバウンドポートバッファ１１1，１１2，１１3は、ポートＡ，Ｂ，Ｃからのトランザクション（以下、インバウンドトランザクションと称す）をそれぞれキューイングする。
【００２８】
インバウンドアービタ１２は、調停により選択したトランザクションをインバウンドポートバッファ３１1，３１2，３１3より取り出してメモリ装置９０に入力する。代表的な調停方法として、インバウンドアービタ１２が各ポートに同一の重みを持たせ、ラウンドロビンで調停を行うものがある。また、インバウンドアービタ１２は各ポートに互いに異なる重みを与えて調停する方法も考えられる。インバウンドアービタ１２は、インバンドアービタコントローラ１９からの指示により、調停における各ポートの重みを変更する。即ち、重みを増したポートのトランザクションは、それ以前よりメモリ装置９０へ入力されやすくなり、重みが低下したポートのトランザクションは、それ以前よりメモリ装置９０へ入力され難くなる。例えば、インバウンドアービタ１２は、インバウンドアービタコントローラ１９より入力禁止ポートを指示されると（即ち、重みがゼロとされると）、調停において、そのポートのインバウンドトランザクションをメモリ装置９０に入力しない。
【００２９】
アウトバウンド緩衝バッファ１３は、メモリ装置９０からのリプライ（以下、アウトバウンドトランザクションと称す）を受信して一時的に蓄積する。
【００３０】
アウトバウンドルータ１４は、アウトバウンドポートバッファ１５1，１５2，１５3の空き容量を監視し、アウトバウンド緩衝バッファ１３からアウトバウンドポートバッファ１５1，１５2，１５3へのアウトバウンドトランザクションの入力を制御する。
【００３１】
アウトバウンドポートバッファ１５1，１５2，１５3は、ポートＡ，Ｂ，Ｃへのアウトバウンドトランザクションをそれぞれ蓄積し、出力先の各ポートの状況に応じてアウトバウンドトランザクションを出力する。例えば、アウトバウンドポートバッファ１５1は、ポートＡがビジー状態であれば出力を停止し、ビジー状態が解消されれば出力を開始する。
【００３２】
デコーダ１６は、インバウンドアービタ１２よりメモリ装置９０へ入力されたトランザクションのコマンド及びアドレスをデコードし、そのトランザクションがリプライ有りのもの（以下、リクエストと称す）であれば、対応するポートカウンタを１カウントアップする。デコーダ１６は、メモリ装置９０へ入力したインバウンドトランザクションがリプライ無しのものであれば、ポートカウンタ１８1，１８2，１８3をカウントアップしない。
【００３３】
ポートカウンタ１８1，１８2，１８3は、それぞれが対応するポートのリクエストがメモリ装置９０に入力されると１カウントアップする。また、ポートカウンタ１８1，１８2，１８3は、それぞれが対応するアウトバウンドポートバッファ１５1，１５2，１５3よりアウトバウンドトランザクションが出力されると１カウントダウンする。
【００３４】
インバウンドアービタコントローラ１９は各ポートカウンタ１８1，１８2，１８3のカウント値を監視しており、カウンタ値によって各ポートの調停の重みを変更する。単純な例では、インバウンドアービタコントローラ１９は、カウンタ値が所定の閾値を超えると、その対応するポートを入力禁止ポートとしてインバウンドアービタ１２へ通知する。この所定の閾値は、メモリ装置９０のレイテンシや、各バッファの深さ（段数）によって最適な値が定まる。
【００３５】
調停装置１０はポートＡ，Ｂ，Ｃからのインバウンドトランザクションを、インバウンドポートバッファ１１1，１１2，１１3に一時的に蓄積し、調停によって選択されたものをメモリ装置９０へ出力する。また、調停装置１０は、メモリ装置９０よりのアウトバウンドトランザクションをアウトバウンド緩衝バッファ１３に蓄積した後にアウトバウンドポートバッファ１５1，１５2，１５3に移し、各ポートに出力する。
【００３６】
調停装置１０は、メモリ装置９０にリクエストを入力すると、それに対応するポートカウンタ１８1，１８2，１８3をカウントアップし、アウトバウンドポートバッファ１５1，１５2，１５3より、アウトバウンドトランザクションを出力すると、それに対応するポートカウンタ１８1，１８2，１８3をカウントダウンする。そして、調停装置１０は、ポートカウンタ１８1，１８2，１８3のカウンタ値が閾値を超えると、そのポートからのインバウンドトランザクションのメモリ装置９０への入力を禁止する。
【００３７】
図２は、本実施形態の調停装置１０の動作を示すタイミングチャートである。
【００３８】
ここでは、ポートＡ及びポートＢにのみインバウンドトランザクションが入力する。リクエストＲＱａ０，ＲＱａ１，ＲＱａ３，ＲＱａ４，ＲＱａ５の順で、ポートＡより調停装置１０へリクエストが入力する。また、リクエストＲＱｂ０，ＲＱｂ１の順で、ポートＢより調停装置１０へリクエストが入力する。これらのリクエストに対するリプライはデータを有するものであり、リクエストよりもポート占有時間が長いものとする。リプライＲＰａ０，ＲＰａ１，ＲＰａ３，ＲＰａ４，ＲＰａ５，ＲＰｂ０，ＲＰｂ１は、それぞれリクエストＲＱａ０，ＲＱａ１，ＲＱａ３，ＲＱａ４，ＲＱａ５，ＲＱｂ０，ＲＱｂ１に対するリプライである。また、ポートカウンタの所定の閾値は“４”であるとする。
【００３９】
信号Ｉ／ＢｐｏｒｔＡ，Ｉ／ＢｐｏｒｔＢは、ポートＡ，Ｂよりの入力である。
【００４０】
信号ＭＥＭは、インバンドアービタ３２からメモリ装置９０への入力信号である。
【００４１】
信号ＯＢＱは、メモリ装置９０よりアウトバンド緩衝バッファ１３への入力信号である。
【００４２】
Ｑｏａ０，Ｑｏａ１，Ｑｏａ２，Ｑｏａ３は、アウトバンドポートバッファ１５1の先頭から４段目までに、蓄えられたトランザクションである。
【００４３】
Ｑｏｂ０，Ｑｏｂ１，Ｑｏｂ２，Ｑｏｂ３は、アウトバンドポートバッファ１５2の先頭から４段目までに、蓄えられたトランザクションである。
【００４４】
信号ａＢＵＳＹ，ｂＢＵＳＹは、それぞれアウトバウンドポートバッファ１５1，１５2のビジー状態を示す。
【００４５】
カウント値Ｃａ，Ｃｂは、ポートカウンタ１８1，１８2のカウンタ値である。
【００４６】
信号Ｏ／ＢｐｏｒｔＡ，Ｏ／ＢｐｏｒｔＢは、ポートＡ，Ｂへのアウトバウンドトランザクションの出力である。
【００４７】
まず、リクエストＲＱａ０，ＲＱａ１，ＲＱａ３，ＲＱａ４，ＲＱａ５がポートＡに入力し、メモリ装置９０へ入力される。リクエストＲＱａ４までメモリ装置９０へ入力されると、カウント値Ｃａ＝４となり、信号ａＢＵＳＹがオンとなる。インバウンドアービタコントローラ１９がポートＡを入力禁止ポートとするので、インバウンドアービタ１２はポートＡのリクエストをメモリ装置９０に入力できなくなる。ここで、リクエストＲＱｂ０がポートＢへ入力すると、ポートＡは入力が禁止されているので、リクエストＲＱｂ０が優先的に選択されメモリ装置９０に入力される。
【００４８】
信号Ｏ／ＢｐｏｒｔＡよりリプライＲＰａ０が出力されると、カウント値Ｃａが“３”になり、ビジー状態が解除される。即ち、信号ａＢＵＳＹがオフとなる。
【００４９】
ここで、インバウンドアービタ１２では、ポートＡ，Ｂの間の調停が行われるが、ラウンドロビンによりポートＡが選択される。したがって、まず、リクエストＲＱａ５がメモ装置９０へ入力された後、リクエストＲＱｂ１が入力される。
【００５０】
したがって、メモリ装置９０へ入力したリクエストのうち、それに対応するリプライが出力されていないものの数がビジー予測カウンタ１７で各ポート毎にカウントされ、そのカウント値からの予測により、インバウンドトランザクションの調停がインバウンドアービタコントローラ１９で制御されるので、各ポートにおけるビジー状態の発生が緩和され、効率良く各ポートのトランザクションが処理され、トータルのスループットが向上する。
【００５１】
【発明の効果】
本発明によれば、ビジー状態の予測により、インバウンドトランザクションの調停における重みが制御されるので、各ポートにおけるビジー状態の発生が緩和され、各ポートのトランザクションが効率良く処理され、トータルのスループットが向上する。
【図面の簡単な説明】
【図１】本発明の一実施形態の調停装置の構成を示すブロック図である。
【図２】本実施形態の調停装置の動作を示すタイミングチャートである。
【図３】従来の調停装置の構成を示すブロック図である。
【符号の説明】
１０    調停装置
１１1，１１2，１１3    インバウンドポートバッファ
１２    インバウンドアービタ
１３    アウトバウンド緩衝バッファ
１４    アウトバウンドルータ
１５1，１５2，１５3    アウトバウンドポートバッファ
１６    デコーダ
１７    ビジー予測カウンタ
１８1，１８2，１８3    ポートカウンタ
１９    インバウンドアービタコントローラ
９０    メモリ装置
【図１】
0003641435.tif 000002
【図２】
0003641435.tif 000003
【図３】
0003641435.tif 000004