JP4266619B2 - 調停回路 - Google Patents
調停回路 Download PDFInfo
- Publication number
- JP4266619B2 JP4266619B2 JP2002340732A JP2002340732A JP4266619B2 JP 4266619 B2 JP4266619 B2 JP 4266619B2 JP 2002340732 A JP2002340732 A JP 2002340732A JP 2002340732 A JP2002340732 A JP 2002340732A JP 4266619 B2 JP4266619 B2 JP 4266619B2
- Authority
- JP
- Japan
- Prior art keywords
- priority
- processor
- value
- data
- check result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System (AREA)
Description
【発明の属する技術分野】
本発明は複数のバスマスタが共有バスで接続されたデータ処理装置において、バスアクセス要求を調停する調停回路に関し、特に、複数のプロセッサが共有バスで接続されるマルチプロセッサにおける調停回路に関する。
【0002】
【従来の技術】
複数のI/Oモジュールがバスを共有する場合に、各I/Oモジュールからのバスアクセスを調停するために、ラウンドロビン制御と呼称される方式が採用されている。
【0003】
ラウンドロビン制御は、各I/Oモジュールのバスアクセスの割合を均等にするため、バスアクセスが許可されたI/Oモジュールに対しては、アクセスの優先度を最も低くする制御方式である。
【0004】
ラウンドロビン制御を用いた従来技術としては、例えば、特許文献1に、優先度制御とラウンドロビン制御とを組み合わせることで、I/Oモジュールの重要度に対応してアクセスを許可する方式が開示されている。
【0005】
また、特許文献2においても、優先度制御とラウンドロビン制御とを組み合わせて使用し、プロセッサごとに2種類の優先度を持たせ、2種類の優先度の組み合わせによって、最優先のプロセッサを決める技術が開示されている。
【0006】
また、特許文献3においては、優先順位が低いモジュールが、バスアクセスを拒否された時間を計測し、予め設定された時間以上バスアクセスができなかった場合には、当該モジュールに優先的にバスアクセスさせる技術が開示されている。
【0007】
【特許文献1】
特開平10-91577号公報(第3欄〜第11欄、図1〜図3)
【特許文献2】
特開平4-328665号公報(第4頁〜第6頁、図1〜図3)
【特許文献3】
特開平1-197865号公報(第3頁〜第5頁、図1〜図6)
【0008】
【発明が解決しようとする課題】
一般的なラウンドロビン制御では、各I/Oモジュールの要求内容にかかわらず、要求があれば順番に受け付けるので、システム動作上の重要な要求も、命令のプリフェッチ(データの事前読み込み)のような無効になるかもしれない要求も区別していなかった。これに対し、特許文献1〜3では、優先度を考慮した制御を併せて行う例が開示されているが、優先度の低いI/Oモジュールが、全くバスアクセスできない可能性を含んでおり、バスアクセスの公平性を欠くことになる可能性があった。
【0009】
本発明は上記のような問題点を解消するためになされたもので、バスアクセスの公平性を確保した調停回路およびデータ処理装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
本発明に係る請求項1記載の調停回路は、共有バスによって接続された複数のバスマスタからのバスアクセス要求を調停する調停回路であって、前記複数のバスマスタのそれぞれから出力される複数のプライオリティ情報を受け、前記複数のプライオリティ情報を比較し、最もプライオリティの高いマスタを特定してチェック結果を出力するプライオリティチェックブロックと、ラウンドロビンブロックとを備え、前記ラウンドロビンブロックは、ラウンドロビン制御により、前記複数のバスマスタのバスアクセス要求に対する優先順位を決定するラウンドロビン制御部と、前記優先順位に基づいて作成され、少なくとも最優先のマスタのデータについてはマスキング対象としないマスクデータを用いて、前記チェック結果のデータをマスキングしてマスク済みチェック結果として出力するラウンドロビンマスク部と、マスク済みチェック結果および前記チェック結果に基づいて、バスアクセス要求を受け付けるべきバスマスタを選択する最終選択部とを有し、前記チェック結果のデータおよび前記マスクデータは、前記複数のバスマスタのそれぞれに所定の1ビットが対応する多ビットデータであり、前記マスクデータは、前記最優先のマスタに対応するビットより上位のビットがマスキング対象とされ、前記ラウンドロビンマスク部は、前記チェック結果のデータと前記マスクデータとの論理演算を行うことで、前記マスク済みチェック結果を得るものであり、前記マスク済みチェック結果および前記チェック結果のデータは、前記マスク済みチェック結果のデータが上位側、前記チェック結果のデータが下位側となる連続データとして前記最終選択部に与えられ、前記最終選択部は、前記連続データの最上位側からサーチして、一番最初に所定の論理値がセットされたビット位置を見つけ、当該ビット位置に割り付けられたバスマスタを、前記要求を受け付けるべきバスマスタとする。
【0014】
【発明の実施の形態】
<システムの全体構成>
コンピュータシステムにおいては、バスマスタとなるCPUの他にも、バスマスタを備え、これら複数のバスマスタが共有バスで接続されている。特に最近では、複数のバスマスタとして、複数のプロセッサが共有バスで接続されたマルチプロセッサも開発されている。このように、複数のバスマスタを有するシステムでは、バスアクセス要求を調停する調停回路の機能が重要となる。
【0015】
まず、本発明に係る調停回路を適用したデータ処理装置の1例について、全体構成を示す図1を用いて説明する。
【0016】
図1に示すデータ処理装置100は、バスマスタとしてプロセッサP0、P1、P2およびP3の4つのプロセッサを有し、各プロセッサは1本の共有バスSBを介してメモリなどのアクセス対象物(以後、ターゲットと呼称)TGに接続されている。
【0017】
また、プロセッサP0〜P3からは、それぞれ要求RQ0、RQ1、RQ2およびRQ3(この要求を満たすには、バスへのアクセスを必要とするのでバスアクセス要求と呼称する場合もある)が出力され、当該バスアクセス要求RQ0〜RQ3は、調停回路1に与えられる。
【0018】
ここで、プロセッサP0〜P3からは、プライオリティ情報PR0、PR1、PR2およびPR3も出力され、調停回路1に与えられる。調停回路1では、各プロセッサのバスアクセス要求が輻輳した場合には、ラウンドロビン制御による優先順位と各プロセッサのプライオリティ情報PR0からPR3による優先順位とを組み合わせて調停動作が実行され、プロセッサ選択信号SEを出力してバスの使用権を何れかのプロセッサに与える。
【0019】
バスの使用権を得たプロセッサの要求は、ターゲットアクセス要求TACとして調停回路1からターゲットTGに与えられ、ターゲットで処理された後、処理結果がプロセッサに返される。
【0020】
この調停回路1に本発明に係る調停回路を適用することで、バスアクセスの公平性を確保することができる。
【0021】
<A.実施の形態1>
本発明に係る実施の形態1として、上述した調停回路1の構成および動作について説明する。
【0022】
<A−1.装置構成>
<A−1−1.プロセッサの構成>
まず、図1に示したプロセッサP0〜P3の構成例について、図2を用いて説明する。なお、プロセッサP0〜P3の構成は同一であり、図2においてはプロセッサP0を例にとって説明する。
【0023】
図2に示すように、プロセッサP0はCPU(Central Processing Unit)11、MMU(Memory Management Unit)12、命令キャッシュ13およびデータキャッシュ14を備え、命令キャッシュ13およびデータキャッシュ14からの要求RQAおよびRQBは、セレクタ15でどちらか一方が選択され、要求RQ0として出力される。
【0024】
また、プライオリティ生成回路16を備え、バスアクセス要求の出力時にはプライオリティ生成回路16で生成されたプライオリティ値をプライオリティ情報PR0として同時に出力する。なお、プライオリティ生成回路16は、予め定めたソフトウェア等に基づいて、それぞれのプロセッサの優先順位に見合うプライオリティ値を生成する。
【0025】
なお、図2に示すプロセッサP0においては、プライオリティ生成回路16を1つ有する構成であったが、図3に示すプロセッサP0Xのように、命令キャッシュ13およびデータキャッシュ14のそれぞれにプライオリティ生成回路16が付属する構成としても良い。
【0026】
すなわち、命令キャッシュ13からの要求(例えば命令フェッチ)RQAとデータキャッシュ14からの要求(例えばデータアクセス)RQBに対して、個別にプライオリティ情報PRAおよびPRBを設定できるように構成しても良い。この場合、セレクタ151においては、それぞれの要求を選択する際にプライオリティ情報PRAおよびPRBを比較し、プライオリティが高い方の要求を選択し、要求RQ0およびプライオリティ情報PR0として出力する。
【0027】
<A−1−2.調停回路の構成>
次に、図4〜図6を用いて調停回路1の構成について説明する。
図4は、調停回路1の構成を示すブロック図である。図4に示すように調停回路1は、プライオリティチェックブロック21とラウンドロビンブロック22とを備えている。
【0028】
プライオリティチェックブロック21では各プロセッサから与えられるプライオリティ情報をチェックし、優先順位の一番高いプライオリティ情報を出力しているプロセッサ、すなわち優先順位の一番高いプロセッサを見つけ、そのチェック結果CHKをラウンドロビンブロック22に向けて出力する。
【0029】
ラウンドロビンブロック22では、前回の調停動作の結果を保持しており、プライオリティチェック結果CHKと、前回の結果とから生成したラウンドロビン順位に基づいて、プロセッサ選択信号SEを生成して出力する。
【0030】
<A−1−2−1.プライオリティチェックブロック>
次に、図5を用いてプライオリティチェックブロック21の構成について説明する。
【0031】
図5に示すようにプライオリティチェックブロック21は、プライオリティの高低をトーナメント方式で比較することで最終チェック結果を出力する構成を有し、初段チェック回路211および212と、初段チェック回路211および212の出力を受けて、さらに比較を行う、最終段チェック回路213を備えている。
【0032】
初段チェック回路211は、それぞれ4ビットのプライオリティ情報PR0およびPR1を受け、プライオリティのチェック結果を、2ビットの選択ビットSB1および4ビットの出力プライオリティOP1として出力し、初段チェック回路212は、それぞれ4ビットのプライオリティ情報PR2およびPR3を受け、比較結果を、2ビットの選択ビットSB2および4ビットの出力プライオリティOP2として出力する。
【0033】
選択ビットSB1およびSB2、出力プライオリティOP1およびOP2は、次段のチェック回路でもある最終段チェック回路213に与えられ、最終段チェック回路213において比較し4ビットのプライオリティチェック結果CHKを出力する。
【0034】
図5に示すプライオリティチェックブロック21の回路構成では、プロセッサ数の変動に対して、単純にチェック回路を追加あるいは削減すること対応することができる。例えば、プロセッサ数が2倍の8個になった場合、初段チェック回路を2個増設し、初段チェック回路と最終段チェック回路との間に、初段チェック回路の出力をチェックする新たなチェック回路を設けることで対処できる。
【0035】
また、この場合、プロセッサ数の2倍増に対して、チェック回路の段数は、新たに加えた1段分が増加になるだけであるので、プライオリティチェックブロックにおける遅延時間がプロセッサ数の増加分に比例して増えるということがない。
【0036】
プライオリティチェックブロック21の動作を、さらに具体的に説明する。プロセッサP0のプライオリティ情報(数値で表されるので、以下プライオリティ値と呼称する)をプライオリティ(0)、プロセッサP1のプライオリティ値をプライオリティ(1)とする。プライオリティ値は、値が小さい方が優先順位は高いものと規定すると、初段チェック回路211からの出力は以下の表1に示すようになる。なお、初段チェック回路212から出力される、プロセッサP2およびP3の比較結果も同様である。
【0037】
【表1】
【0038】
以下、表1の記載に基づいて初段チェック回路211の動作について説明する。要求0および要求1とは、それぞれプロセッサP0およびP1からのバスアクセス要求の有無を1ビットで表したものであり、バスアクセス要求がない場合を0、バスアクセス要求がある場合を1としている。
【0039】
プライオリティ値比較の項目において、任意とあるのは、何れのプロセッサからもバスアクセス要求がない場合、および何れか一方のプロセッサのみからバスアクセス要求があった場合には、初段チェック回路ではプライオリティ値の比較動作をしてもしなくても良いことを表している。
【0040】
すなわち、何れのプロセッサからもバスアクセス要求がない場合には、比較することに意味はなく、何れか一方のプロセッサのみからバスアクセス要求があった場合には、バスアクセス要求があったプロセッサを無条件に選択すれば良いからである。
【0041】
なお、両方のプロセッサからバスアクセス要求があった場合にはプライオリティ値の比較動作が必須であり、それぞれのプライオリティ値を比較する。
【0042】
ここで、比較結果には3つのパターンがある。すなわち、プライオリティ(0)がプライオリティ(1)より大きい場合、プライオリティ(0)とプライオリティ(1)とが等しい場合、プライオリティ(0)がプライオリティ(1)より小さい場合の3通りである。
【0043】
そして、プライオリティ値の比較結果に基づいて、2ビットの選択ビットが決定される。
【0044】
すなわち、どちらか片方のプロセッサのみが要求を出している場合は対応するプロセッサのビットを1とし、他方のプロセッサのビットを0にする。両方のプロセッサが要求を出している場合はプライオリティ値の比較結果によって選択ビットが異なる。
【0045】
より具体的には、両方のプロセッサがバスアクセス要求を出さない場合は、選択ビットとして「00」を出力する。ここで、表1において「2b00」としているのは、2ビットの信号であることを明示するためである。
【0046】
プロセッサP0のみがバスアクセス要求を出している場合は、選択ビットとして「10」を出力し、プロセッサP1のみがバスアクセス要求を出している場合は、選択ビットとして「01」を出力する。
【0047】
また、両方のプロセッサがバスアクセス要求を出し、プライオリティ(0)がプライオリティ(1)より大きい場合は、選択ビットとして「01」を出力し、プライオリティ(0)とプライオリティ(1)とが等しい場合は、選択ビットとして「11」を出力し、プライオリティ(0)がプライオリティ(1)より小さい場合は、選択ビットとして「10」を出力する。
【0048】
選択ビットと共に、選択されたプロセッサのプライオリティ値が、4ビットの出力プライオリティとして出力されるが、選択ビットが「00」の場合は、出力プライオリティはどのような値でも構わない。また、どちらか片方のプロセッサのみが要求を出している場合は、当該プロセッサのプライオリティ値が出力される。両方のプロセッサが要求を出している場合は、プライオリティ値の比較結果に基づいて、優先順位の高い方、ここではプライオリティ値の小さい方のプロセッサのプライオリティ値が出力されるが、両方のプライオリティ値が等しい場合は、何れかが出力される。
【0049】
最終段チェック回路213は、初段チェック回路211および212から出力される選択ビットSB1およびSB2を受けて、4つのプロセッサの優先順位の最終比較結果を、プライオリティチェック結果CHKとして出力する。
【0050】
ここで、初段チェック回路211および212から出力される出力プライオリティを、それぞれプライオリティ(01)および(23)とし、初段チェック回路211および212から出力される選択ビットを、それぞれSelb(01)およびSelb(23)とすると、最終段チェック回路213からの出力は以下の表2に示すようになる。
【0051】
【表2】
【0052】
以下、表2の記載に基づいて最終段チェック回路213の動作について説明する。最終段チェック回路213は、初段チェック回路211および212におけるバスアクセス要求の代わりに、まず、初段チェック回路211および212から出力される選択ビットを比較する。
【0053】
そして、選択ビットSelb(01)およびSelb(23)が、共に「00」の場合は、プライオリティ値の比較動作は任意であり、最終チェック結果として「0000」を出力する。ここで、表2において「4b0000」としているのは、4ビットの信号であることを明示するためである。
【0054】
また、選択ビットSelb(01)およびSelb(23)の一方のみが「00」である場合もプライオリティ値の比較動作は任意であるが、この場合は、最終チェック結果として選択ビットSelb(01)およびSelb(23)の値を、Selb(01)、Selb(23)の順に並べて4ビットの値として出力する。
【0055】
例えば、選択ビットSelb(01)のみが「00」である場合は、「2b00,Selb(23)」として出力する。ここで、「2b00,Selb(23)」は上位2ビットが「00」、下位2ビットが「Selb(23)」の値となった4ビットの値であることを示す。
【0056】
また、選択ビットSelb(01)およびSelb(23)の両方が「00」でない場合には比較動作が必須であり、それぞれのプライオリティ値を比較する。
【0057】
ここで、比較結果には3つのパターンがある。すなわち、プライオリティ(01)がプライオリティ(23)より大きい場合、プライオリティ(01)とプライオリティ(23)とが等しい場合、プライオリティ(01)がプライオリティ(23)より小さい場合の3通りである。
【0058】
そして、最終チェック結果は、プライオリティ値の比較結果に基づいて、選択ビットSelb(01)およびSelb(23)の値を、Selb(01)およびSelb(23)の順に並べて4ビットの値として出力される。この場合、優先順位の高い方、ここではプライオリティ値の小さい方選択ビットについてはそのまま出力されるが、プライオリティ値の大きい方の選択ビットは、「00」に置き換えられて出力される。
【0059】
より具体的には、プライオリティ(01)がプライオリティ(23)より大きい場合は、最終チェック結果として「2b00,Selb(23)」を出力し、プライオリティ(01)がプライオリティ(23)より小さい場合は、最終チェック結果として「Selb(01),2b00)」を出力する。
【0060】
また、プライオリティ(01)とプライオリティ(23)とが等しい場合は、「Selb(01),Selb(23)」のように、両方の選択ビットを出力する。
【0061】
<A−1−2−2.ラウンドロビンブロック>
次に、図6を用いてラウンドロビンブロック22の構成について説明する。
図6に示すように、ラウンドロビンブロック22は、ラウンドロビン制御部221、ラウンドロビンマスク部222、最終選択部223を備えている。
【0062】
ラウンドロビン制御部221は、最優先プロセッサ番号生成回路2211と、ラウンドロビン順位保持レジスタ2212とを備えている。最優先プロセッサ番号生成回路2211では、前回の調停動作の結果に基づいて、新たな最優先プロセッサ番号PNを含むラウンドロビン順位RRを生成し、当該ラウンドロビン順位RRをラウンドロビン順位保持レジスタ2212に保持する。ラウンドロビン順位保持レジスタ2212は、調停動作のタイミングに応じて、最優先プロセッサ番号PNを出力する。
【0063】
なお、最優先プロセッサ番号生成回路2211は、前回の調停動作によってバスアクセスが許可されたプロセッサに対しては、アクセスの優先度を最も低くするように動作する。
【0064】
ラウンドロビンマスク部222は、ラウンドロビン制御部221から出力される最優先プロセッサ番号PNを受けて、所定のデータをマスキングするためのマスクデータMDを生成するマスク生成回路2221と、マスク生成回路2221から出力されるマスクデータMDと、プライオリティチェックブロック21から出力されるプライオリティチェック結果CHKとを受け、AND演算を行って、プライオリティチェック結果をマスクし、4ビットのマスク済みチェック結果MCHを出力するマスク回路2222とを備えている。
【0065】
ここで、マスクデータMDは4ビットのデータであり、その最上位ビットは、プロセッサP0に割り付けられ、残る3ビットは、プロセッサP1、P2、P3の順に割り付けられている。そして、マスクデータMDの生成にあたっては、最優先プロセッサの番号に対応したビット位置以下のビットを全て「1」とし、最優先プロセッサ以下のプロセッサのプライオリティデータについてはマスキング対象とせず、最優先プロセッサの番号に対応したビット位置より上位のビットを全て「0」とし、最優先プロセッサより上位のプライオリティデータについてはマスキング対象とするように生成される。
【0066】
以下の表3に、最優先プロセッサ番号に対応するマスクデータMDの一覧を示す。
【0067】
【表3】
【0068】
表3に示すように、最優先プロセッサがプロセッサP0である場合、最上位ビットがプロセッサP0に対応するので、最上位ビット以下、全てのビットに「1」が設定され(すなわち全てのプロセッサのプライオリティデータがマスキング対象とされない)、マスクデータMDは「1111」となる。同様に、最優先プロセッサがプロセッサP1である場合は、マスクデータMDは「0111」(すなわちプロセッサP0のプライオリティデータのみがマスキング対象とされる)となり、最優先プロセッサがプロセッサP2である場合は、マスクデータMDは「0011」(すなわちプロセッサP0およびP1のプライオリティデータのみがマスキング対象とされる)に、最優先プロセッサがプロセッサP3である場合は、マスクデータMDは「0001」(すなわちプロセッサP0〜P2のプライオリティデータがマスキング対象とされる)になる。
【0069】
ここで、ラウンドロビン制御部221で設定された最優先プロセッサがプロセッサP2であり、一方、プライオリティチェックブロック21で判定された優先度は、プロセッサP0およびP3が同じプライオリティ値で、共に最優先の場合を仮定すると、マスク回路2222では、マスクデータMDとして「0011」を受け、プライオリティチェック結果CHKとして「1001」を受ける。
【0070】
従って、マスク回路2222でAND演算を行うと、マスク済みチェック結果MCHは「0001」となる。
【0071】
マスク回路2222から出力されるマスク済みチェック結果MCHおよび、プライオリティチェックブロック21から出力されるプライオリティチェック結果CHKは、最終選択部223に与えられる。
【0072】
ここで、マスク済みチェック結果MCHを、最終選択部223の上位4ビットとして入力とし、下位4ビットにはプライオリティチェック結果CHKを入力する。
【0073】
最終選択部223は、例えばプライオリティエンコーダで構成され、入力データを上位からサーチして、一番最初に「1」がセットされた位置を見つけ出し、当該位置から要求を受け付けるべきプロセッサの番号を知得する。
【0074】
すなわち、4ビットのマスク済みチェック結果MCHと、4ビットのプライオリティチェック結果とを並べ、最上位ビットをプロセッサP0に割り付け、以下、各ビットに、プロセッサP1、P2、P3を順に割り付け、5ビット目には再びプロセッサP0を割り付け、以下、各ビットに、プロセッサP1、P2、P3を順に割り付けるようにすると、一番最初に「1」がセットされたビット位置に対応する番号のプロセッサが、要求を受け付けるべきプロセッサ、すなわちバスアクセス権を与えるべきプロセッサということになる。
【0075】
例えば、プロセッサP1が最優先で、プライオリティチェック結果CHKが「0100」であり、ラウンドロビン順位が、P2,P3,P0,P1の場合、マスクデータMDは「0011」(プロセッサP2に対応する3ビット目以下が全て「1」)となる。そして、マスク回路2222により、マスクデータMDとプライオリティチェック結果CHKとのAND演算を行うことで、マスク済みチェック結果MCHとして「0000」を得る。
【0076】
従って、最終選択部223への入力は、0000_0100となる(上位4ビットはマスク済みチェック結果、下位4ビットはプライオリティチェック結果CHKに対応)。
【0077】
最終選択部223でのエンコード結果は、最上位から6ビット目において一番最初に「1」を検知し、プロセッサP1が要求を受け付けるべきプロセッサとなる。
【0078】
調停回路1では要求を受け付けると、ターゲットTGへのターゲットアクセス要求TACを出力する。また、プロセッサ選択信号SEで選択されたプロセッサは、要求内容を共有バスSBに出力する。ターゲットTGは、ターゲットアクセス要求TACがアサートされているときの共有バスSBの通信内容を受けて処理を行い、処理結果を共有バスSBを介してプロセッサに送る。
【0079】
<A−2.装置動作>
図7に、以上説明した調停動作をとりまとめてタイミングチャートとして示す。以下、図4〜図6を参照しつつ、幾つかの代表例を用いてタイミングチャートの読み方の一例を示す。
【0080】
図7において、要求RQ0〜RQ3は、信号パルスが立ち上がった状態で、バスアクセス要求を出していることを示している。また、最高順位プロセッサ番号は、プロセッサP0〜P3のうち、最高順位にあるものの番号を示しており、簡単化のため0〜3の数値で示している。なお、最高順位がプロセッサP0である場合、以下プロセッサP1、P2、P3の順番となり、最高順位がプロセッサP3である場合、以下プロセッサP0、P1、P2の順番となり、いわゆるラウンドロビン制御に従うので、ラウンドロビン順位と呼称する。
【0081】
また、プライオリティ情報PR0、PR1、PR2およびPR3としてのプライオリティ値は、0〜15の16段階の値を採れるが、ここでは1〜4の値を各プロセッサが使用するものとする。
【0082】
また、受け付けプロセッサ番号は、調停回路1による調停動作の最終結果として、バスアクセス要求を受け付けるべきプロセッサの番号を示しており、簡単化のため0〜3の数値で示している。
【0083】
図7に示す期間T1においては、プロセッサP0およびP2のみがバスアクセス要求を出しており、ラウンドロビン順位は0、1、2、3であり、図6に示すマスク生成回路2221が出力するマスクデータは「1111」である。
【0084】
また、プロセッサP0のプライオリティ値は2(プライオリティ(0)=2)であり、プロセッサP2のプライオリティ値は4(プライオリティ(2)=4)である。
【0085】
このとき、図5に示すプライオリティチェックブロック21の初段チェック回路211におけるプロセッサP0とP1との比較結果として得られる選択ビットSelb(01)は「10」となり、初段チェック回路212におけるプロセッサP2とP3との比較結果として得られる選択ビットSelb(23)は「10」となる。
【0086】
また、初段チェック回路211から出力される出力プライオリティは2(プライオリティ(01)=2)、初段チェック回路212から出力される出力プライオリティは4(プライオリティ(23)=4)となる。
【0087】
従って、最終段チェック回路213におけるプライオリティチェック結果は「1000」、ラウンドロビンマスク部2222においてマスクデータ「1111」とプライオリティチェック結果「1000」とのAND演算を行うことで、マスク済みチェック結果は「1000」となる。
【0088】
そして、図6に示すマスク回路2222から出力されるマスク済みチェック結果「1000」および、プライオリティチェックブロック21から出力されるプライオリティチェック結果「1000」は、最終選択部223に、それぞれ上位4ビット、下位4ビットの8ビットデータ(1000_1000)として与えられる。
【0089】
そして、最終選択部223でのエンコードの結果、プロセッサP0の要求を受けることになる。
【0090】
また、期間T2においては、プロセッサP0、P2およびP3がバスアクセス要求を出しており、ラウンドロビン順位は、期間T1においてプロセッサP0のバスアクセスが受け付けられたので、図6に示す最優先プロセッサ番号生成回路2211では、ラウンドロビン制御に基づいて、ラウンドロビン順位を1、2、3、0とし、マスク生成回路2221が出力するマスクデータは「0111」となる。
【0091】
また、プロセッサP0のプライオリティ値は4(プライオリティ(0)=4)、プロセッサP2のプライオリティ値は4(プライオリティ(2)=4)、プロセッサP3のプライオリティ値は4(プライオリティ(3)=4)である。このように、同じプライオリティを有するマスタが複数存在し、その他のマスタはバスアクセス要求出していないような場合は、最もプライオリティの高いマスタが複数存在すると言うことができる。
【0092】
このとき、プライオリティチェックブロック21の初段チェック回路211におけるプロセッサP0とP1との比較結果として得られる選択ビットSelb(01)は「10」となり、初段チェック回路212におけるプロセッサP2とP3との比較結果として得られる選択ビットSelb(23)はプロセッサP2およびP3のプライオリティ値が等しいため、「11」となる。
【0093】
また、初段チェック回路211から出力される出力プライオリティは4(プライオリティ(01)=4)、初段チェック回路212から出力される出力プライオリティは4(プライオリティ(23)=4)となる。
【0094】
従って、最終段チェック回路213におけるプライオリティチェック結果は「1011」、ラウンドロビンマスク部2222においてマスクデータ「0111」とプライオリティチェック結果「1011」とのAND演算を行うことで、マスク済みチェック結果は「0011」となる。
【0095】
そして、マスク回路2222から出力されるマスク済みチェック結果「0011」および、プライオリティチェックブロック21から出力されるプライオリティチェック結果「1011」は、最終選択部223に、それぞれ上位4ビット、下位4ビットの8ビットデータ(0011_1011)として与えられる。
【0096】
そして、最終選択部223でのエンコードの結果、プロセッサP2の要求を受けることになる。
【0097】
また、期間T6においては、プロセッサP1およびP2のみがバスアクセス要求を出しており、ラウンドロビン順位は3、0、1、2であり、図6に示すマスク生成回路2221が出力するマスクデータは「0001」である。
【0098】
また、プロセッサP1のプライオリティ値は4(プライオリティ(1)=4)であり、プロセッサP2のプライオリティ値は4(プライオリティ(2)=4)である。
【0099】
このとき、図5に示すプライオリティチェックブロック21の初段チェック回路211におけるプロセッサP0とP1との比較結果として得られる選択ビットSelb(01)は「01」となり、初段チェック回路212におけるプロセッサP2とP3との比較結果として得られる選択ビットSelb(23)は「10」となる。
【0100】
また、初段チェック回路211から出力される出力プライオリティは4(プライオリティ(01)=4)、初段チェック回路212から出力される出力プライオリティは4(プライオリティ(23)=4)となる。
【0101】
従って、最終段チェック回路213におけるプライオリティチェック結果は「0110」、ラウンドロビンマスク部2222においてマスクデータ「0001」とプライオリティチェック結果「0110」とのAND演算を行うことで、マスク済みチェック結果は「0000」となる。
【0102】
そして、図6に示すマスク回路2222から出力されるマスク済みチェック結果「0000」および、プライオリティチェックブロック21から出力されるプライオリティチェック結果「0110」は、最終選択部223に、それぞれ上位4ビット、下位4ビットの8ビットデータ(0000_0110)として与えられる。
【0103】
そして、最終選択部223でのエンコードの結果、プロセッサP1の要求を受けることになる。
【0104】
<A−3.効果>
以上説明したように、本発明に係る調停回路の実施の形態1においては、プライオリティによる調停とラウンドロビンによる調停を組み合わせることで、優先度の高いバスアクセス要求を有するプロセッサに、優先的にバスアクセス権を与えることができるだけでなく、ラウンドロビン順位に基づいて、少なくとも最優先のプロセッサのデータについてはマスキング対象とされていないマスクデータを用いて、プライオリティ値のチェック結果のデータをマスキングすることで、幾つかのプライオリティ情報が無効になる状態を得ることができ、プライオリティ情報の影響が減殺されて、少ない回路規模でバスアクセスの公平性を確保した調停を行うことができる。
【0105】
<B.実施の形態2>
以上説明した実施の形態1においては、図1に示す調停回路1の構成および動作について説明し、バスアクセスの公平性を確保できるという効果を奏する旨を説明したが、本発明に係る実施の形態2として、バスアクセスのさらなる公平性を確保する構成について説明する。
【0106】
<B−1.装置構成>
図2において、プロセッサP0〜P3内には、それぞれプライオリティ生成回路16を備えており、バスアクセス要求の出力時にはプライオリティ生成回路16で生成されたプライオリティ値をプライオリティ情報として同時に出力することを説明したが、この機能に加えて、バスアクセスが受け付けられなかった場合にはプライオリティ値をランクアップする機能を有するプライオリティ生成回路16Aの構成について図8を用いて説明する。
【0107】
図8に示すように、プライオリティ生成回路16Aは、予め定めたソフトウェアに基づいて、それぞれのプロセッサの優先順位に見合うプライオリティ値を生成するプライオリティ設定レジスタ161と、プライオリティ設定レジスタ161で生成したプライオリティ値と、後に説明する新たなプライオリティ値とを比較して選択するセレクタ162と、セレクタ162で選択されたプライオリティ値を一旦保持し、所定のタイミングで外部に出力するプライオリティ出力レジスタ163とを備えている。図2に示したプライオリティ生成回路16は、このプライオリティ設定レジスタ161およびプライオリティ出力レジスタ163を備えて構成されるが、プライオリティ生成回路16Aについては、さらに以下の構成を備えている。
【0108】
すなわち、図1に示す調停回路1による調停の結果、出力したプライオリティ値ではバスアクセス権を取得できなかった場合、すなわち、プロセッサの要求が受け付けられなかった場合、当該情報を取得して、現在設定しているプライオリティ値から、所定数、例えば1を減じて、新たなプライオリティ値を設定するプライオリティ向上回路165と、プライオリティ向上回路165が設定したプライオリティ値に制限をかける制限マスク回路164とを備えている。
【0109】
そして、制限マスク回路164を介して、新たなプライオリティ値がセレクタ162に与えられ、セレクタ162において、新たなプライオリティ値が選択されて、プライオリティ出力レジスタ163に与えられる。なお、プロセッサの要求が受け付けられ、新たに次の要求を出力する場合は、プライオリティ設定レジスタ161の値が選択されてプライオリティ出力レジスタ163に与えられる。
【0110】
また、プライオリティ向上回路165には、プライオリティ値の変更幅を設定するプライオリティ変更幅設定レジスタ167が付属している。これは、現在設定しているプライオリティ値から減じる数値の大きさを設定するもので、上記においては、その値を1としたが、他の値、例えば2や3に変更する場合に使用する。なお、プライオリティ変更幅設定レジスタ167の設定値を0にするとプライオリティのランクアップは行われず、実施の形態1において説明したプライオリティ生成回路16と同じ動作となる。
【0111】
なお、これまでの説明においては、プライオリティ値が小さい方が、プライオリティが高いとしたが、プライオリティ値が大きい方が、プライオリティが高いとする場合には、プライオリティ向上回路165では、現在設定しているプライオリティ値に所定数を加算することになり、プライオリティ変更幅設定レジスタ167は、当該、加算すべき所定値を設定するものとなる。
【0112】
また、制限マスク回路164には、制限値設定レジスタ166が接続され、制限マスク回路164でのマスク値を設定する構成となっている。例えば、プライオリティ向上回路165においては、他のプロセッサのバスアクセス要求が受け付けられるたびに、プライオリティ出力レジスタ163の値を1ずつ減じるように動作するが、制限マスク回路164でのマスク値、すなわち制限値設定レジスタ166で設定されたマスク値(この場合、最小マスク値)を超えてデクリメントされた場合には、最小マスク値に変更する構成となっている。
【0113】
この制限値設定レジスタ166は、図2に示すプロセッサ内のCPU11において、このプロセッサがどこまで優先順位を上げることができるかを示す値として設定される。
【0114】
例えば、当初のプライオリティ設定レジスタで設定したプライオリティ値が5で、制限値設定レジスタ166で設定された最小マスク値が2である場合、要求スタート時にはプライオリティ値は5であるが、バスアクセス要求が受け入れられない状態が続くと、そのたびにプライオリティ値が4、3と減っていく。しかし、最小マスク値が2であるので、プライオリティ値はこれ以上下がらない、換言すればプライオリティはこれ以上向上しないということになる。
【0115】
例えば、プロセッサP0は最小マスク値を0に、その他のプロセッサは最小マスク値を2に設定しておくと、プロセッサP0以外はプライオリティ値が2までしか達しないので、プロセッサP0のバスアクセス要求の順位は最優先となる。
【0116】
<B−2.装置動作>
図9に、以上説明したプライオリティ値のステップアップを含めて、図1に示す調停回路1による調停動作をとりまとめてタイミングチャートとして示す。
【0117】
図9においては、基本的に図7と同じであり、同様の条件、呼称については重複する説明は省略する。また、具体的な調停動作は実施の形態1で説明したものと同じであるので、各チェック結果等の記載は省略している。
【0118】
図9に示す期間T1においては、プロセッサP0およびP2のみがバスアクセス要求を出しており、ラウンドロビン順位は0、1、2、3である。また、プロセッサP0のプライオリティ値は2(プライオリティ(0)=2)であり、プロセッサP2のプライオリティ値は5(プライオリティ(2)=5)である。
【0119】
この場合、調停回路1による調停動作の結果、受け付けプロセッサはプロセッサP0となる。
【0120】
そして、期間T2においては、プロセッサP0、P2およびP3がバスアクセス要求を出しており、ラウンドロビン順位は1、2、3、0である。また、プロセッサP0のプライオリティ値は4(プライオリティ(0)=4)、プロセッサP3のプライオリティ値は4(プライオリティ(3)=4)であり、前回バスアクセス要求が受け付けられなかったプロセッサP2のプライオリティ値は4(プライオリティ(2)=4)にランクアップしている。
【0121】
この場合、調停回路1による調停動作の結果、受け付けプロセッサはプロセッサP2となる。
【0122】
また、期間T3においては、プロセッサP0、P1およびP3がバスアクセス要求を出しており、ラウンドロビン順位は3、0、1、2である。また、プロセッサP1のプライオリティ値は3(プライオリティ(1)=3)であり、前回バスアクセス要求が受け付けられなかったプロセッサP0およびP3のプライオリティ値は3(プライオリティ(0)=3、プライオリティ(3)=3)にランクアップしている。
【0123】
この場合、調停回路1による調停動作の結果、受け付けプロセッサはプロセッサP3となる。
【0124】
また、期間T4においては、プロセッサP0およびP1のみがバスアクセス要求を出しており、ラウンドロビン順位は0、1、2、3である。また、前回バスアクセス要求が受け付けられなかったプロセッサP0およびP1のプライオリティ値は2(プライオリティ(0)=2、プライオリティ(1)=2)にランクアップしている。
【0125】
この場合、調停回路1による調停動作の結果、受け付けプロセッサはプロセッサP0となる。
【0126】
<B−3.効果>
以上説明したように、プロセッサP0〜P3内に含まれるプライオリティ生成回路16Aが、バスアクセスが受け付けられなかった場合にはプライオリティ値を段階的にランクアップする機能を有するので、受け付けられなかったプロセッサのプライオリティを上げていくことで、優先順位の低いプロセッサの要求が受け付けられなくなることを防ぎ、より公平な調停動作が可能となって、バスアクセスのさらなる公平性を確保することができる。
【0127】
<B−4.変形例>
以上説明した実施の形態2においては、プロセッサP0〜P3内に含まれるプライオリティ生成回路が、バスアクセスが受け付けられなかった場合にプライオリティ値を段階的にランクアップする機能を有する構成について説明したが、プライオリティ値を変化させる構成としては、以下に変形例1〜3として説明する構成を採るようにしても良い。
【0128】
<B−4−1.変形例1>
図10にプライオリティ生成回路16Bの構成を示す。図10に示すプライオリティ生成回路16Bにおいては、複数のプライオリティ設定レジスタ161Bと、複数のプライオリティ設定レジスタ161Bがそれぞれ出力するプライオリティ値から、何れか1つを選択するセレクタ162Bと、セレクタ162Bで選択されたプライオリティ値を一旦保持し、所定のタイミングで外部に出力するプライオリティ出力レジスタ163とを備えている。
【0129】
ここで、複数のプライオリティ設定レジスタ161Bのそれぞれには、プロセッサの動作周波数を変更した場合に対応するように、異なるプライオリティ値が設定されている。
【0130】
すなわち、プロセッサの動作周波数を規定するCPUの動作周波数は、プロセッサに与えられるクロック信号の周波数を変更することで変更が可能であり、例えば、基準クロックの2逓倍、3逓倍、4逓倍、あるいは基準クロックの2分周、3分周、4分周のように段階的に変更することができる。
【0131】
従って、予め、種々の動作周波数に応じたプライオリティ値を、複数のプライオリティ設定レジスタ161Bのそれぞれに設定しておき、プロセッサの動作周波数を変更した場合には、それに応じたプライオリティ値が出力されるように、プロセッサに与えられるクロック信号の周波数に基づいてセレクタ162Bの選択動作が行われるように構成することで、動作周波数に応じた適切なプライオリティ値を出力することができる。
【0132】
例えば、プロセッサの動作周波数を低く設定した場合、プロセッサの動作は遅くなるが、これは当該プロセッサの処理に迅速さを求めず、消費電力を低減することを目的とするような場合に施される措置である。このような場合、当該プロセッサのバスアクセス要求の優先順位はそれほど高い必要はないので、プライオリティ値は大きくて良い。
【0133】
逆に、プロセッサの動作周波数を高く設定した場合には、当該プロセッサのバスアクセス要求の優先順位は高い方が望ましいので、プライオリティ値は小さい方が良い。
【0134】
プライオリティ生成回路16Bを採用することで、プロセッサの動作周波数に応じて、より適切なプライオリティ値を得ることができる。
【0135】
すなわち、動作速度が遅く設定されているプロセッサに高いプライオリティを与えると、高速動作が要求されるプロセッサとの間で意味のない競合が発生し、高速動作が要求されるプロセッサのバスアクセスが阻害される可能性もあるが、上述した構成においてはこのような問題は発生しない。
【0136】
<B−4−2.変形例2>
図11にプライオリティ生成回路16Cの構成を示す。図11に示すプライオリティ生成回路16Cにおいては、プロセッサの動作周波数の設定値に合わせてプライオリティ値を増減可能な構成を有している。
【0137】
すなわち、プライオリティ生成回路16Cにおいては、予め定めたソフトウェアに基づいて、それぞれのプロセッサの優先順位に見合うプライオリティ値を生成するプライオリティ設定レジスタ161と、プライオリティ設定レジスタ161が出力するプライオリティ値に対して、所定の値を増減してプライオリティ出力値とする増減処理回路1621と、増減処理回路1621が出力するプライオリティ出力値を一旦保持し、所定のタイミングで外部に出力するプライオリティ出力レジスタ1626とを備えている。
【0138】
増減処理回路1621には、プロセッサに与えられるクロック信号の周波数に合わせてプライオリティ値の増減値を設定する増減値生成回路1622が付属し、増減処理回路1621は増減値生成回路1622が設定した増減値の分だけプライオリティ設定レジスタ161が出力するプライオリティ値を増減する機能を有している。
【0139】
例えば、プロセッサの動作周波数が、予め定めたデフォルト値より速くなるように設定された場合、増減処理回路1621では、プライオリティ設定レジスタ161が出力するプライオリティ値をデクリメントしてプライオリティを向上させ、逆に、プロセッサの動作周波数が、予め定めたデフォルト値より遅くなるように設定された場合、増減処理回路1621では、プライオリティ設定レジスタ161が出力するプライオリティ値をインクリメントして、プライオリティを低下させる。増減値生成回路1622では、プロセッサの動作周波数がデフォルト値から離れるほど増減幅を大きくすることができる。
【0140】
なお、増減値生成回路1622には増減幅設定レジスタ1620が付属しており、プライオリティ値を増減する増減幅の大きさは増減幅設定レジスタ1620に予め設定されている。
【0141】
また、増減処理回路1621とプライオリティ出力レジスタ1626との間には、制限マスク回路1623が介挿されており、増減処理回路1621から出力されるプライオリティ出力値が、制限マスク回路1623でのマスク値、すなわち制限値設定レジスタ1624で設定されたマスク値(この場合、最小マスク値および最大マスク値)を超えて増減されている場合には、最小マスク値あるいは最大マスク値に変更する構成となっている。
【0142】
例えば、クロック周波数が基準クロックを中心に2逓倍、3逓倍、4逓倍に増加する場合と、逆に2分周、3分周、4分周に低減する場合を想定する。この場合、デフォルト値が基準クロックに相当するものとし、このときのプライオリティ設定レジスタ161の設定値を4、増減幅設定レジスタ1620で設定した設定値を2、制限値設定レジスタ1624で設定された最小マスク値を0、最大マスク値を15とすると、プライオリティ生成回路16Cのプライオリティ出力値は、以下の表4のようになる。
【0143】
【表4】
【0144】
表4においては、クロック周波数が基準クロックの2倍、3倍、4倍になった場合、基準値の場合のプライオリティ設定レジスタ161の設定値(すなわち4)から、それぞれ2、4、8を減じることになるが、最小マスク値が0であるので、基準クロックの4倍の場合でもプライオリティ出力値は0である。
【0145】
また、クロック周波数が基準クロックの2分周、3分周、4分周になった場合、基準値の場合のプライオリティ設定レジスタ161の設定値(すなわち4)に、それぞれ2、4、8を加えることになるが、最大マスク値は15であるので、基準クロックの4分周の場合には、プライオリティ出力値は12となる。
【0146】
なお、増減値生成回路1622により、プロセッサの動作周波数が、デフォルト値から離れるほど、増減幅が大きくなっている。
【0147】
このように、プロセッサの動作周波数の変化に応じて、プライオリティ値を動的に変化させることで、プロセッサの動作周波数に応じて、より適切なプライオリティ値を得ることができる。
【0148】
<B−4−3.変形例3>
図12にプライオリティ生成回路16Dの構成を示す。図12に示すプライオリティ生成回路16Dにおいては、複数のプライオリティ設定レジスタ161Bと、複数のプライオリティ設定レジスタ161Bがそれぞれ出力するプライオリティ値から、何れか1つを選択するセレクタ162Cと、セレクタ162Cで選択されたプライオリティ値を一旦保持し、所定のタイミングで外部に出力するプライオリティ出力レジスタ163とを備えている。
【0149】
ここで、複数のプライオリティ設定レジスタ161Bのそれぞれには、CPU11(図2)の状態が変わった場合に対応するように、異なるプライオリティ値が設定されている。
【0150】
ここで、対応すべきCPU11の状態には、CPU11が分岐命令を検出して分岐先の命令フェッチ要求を出している状態、CPUの命令キューが空の状態、CPU11のストアバッファがフルで次のストアが待っている状態がある。
【0151】
CPU11が分岐先の命令フェッチ要求を出している状態においては、分岐先の命令、すなわち図1に示すターゲットTGからの命令をなるべく早く必要とするためプライオリティは高いことが望ましく、命令キューが空の状態においては、CPU11がターゲットTGからの次の命令を待っている状態であり、やはりプライオリティは高いことが望ましい。また、ストアバッファがフルで次のストアが待っている状態では、ストアの処理をしないとパイプライン処理が先に進まないのでプライオリティは高いことが望ましい。
【0152】
従って、CPU11が上記各状態にある場合を想定して、複数のプライオリティ設定レジスタ161Bに、各状態に対応するように予めプライオリティ値を設定しておく。そして、CPUの状態が変化した場合には、変化後の状態に応じたプライオリティ値が出力されるように、セレクタ162Cには、CPU11の状態に関する情報が与えられるようにセレクタ162CをCPU11に接続し、CPU11の状態に基づいてセレクタ162Cの選択動作が行われるように構成することで、CPU11の状態に応じた適切なプライオリティ値を出力することができる。
【0153】
プライオリティ生成回路16Dを採用することで、CPU11の状態に対応してより適切なプライオリティ値を得ることができる。
【0154】
なお、対応すべきCPU11の状態には、上述した3状態以外に、CPU11がすぐに使用するデータをリードする状態などもあり、このような場合にもプライオリティは高いことが望ましく、プライオリティ設定レジスタ161Bにはこの状態に対応したプライオリティ値を設定しておく。
【0155】
なお、上記においては、CPU11の状態に応じて、より適切なプライオリティ値を選択する構成を説明したが、プロセッサ内のキャッシュの状態に合わせてプライオリティ値を設定するようにしても良い。
【0156】
例えば、データキャッシュ14(図2)においてはライトスルーという状態がある。ライトスルーは、CPU11がキャッシュ14にデータの書き込みをする際に、データの整合性を保つために、書き換えたキャッシュ14の内容を常に、メインメモリ(図示せず)にも書き込む動作の1つであり、CPU11はキャッシュにデータ14を書き込み、次に、キャッシュ14が、メインメモリにデータを書き込むという2段階の動作を行う。
【0157】
ライトスルーにおいて、キャッシュ14が、メインメモリ(すなわち図1に示すターゲットTG)にデータを書き込むのは、バスが空いている時間に行えば良く、プライオリティはそれほど高く設定しなくても良い。しかし、完全なデータの書き込みができず、ライトスルーが失敗した場合には、再度のデータの書き込みを至急に行うことが要求される。従って、ライトスルーにおける再度のデータの書き込み状態ではプライオリティは高いことが望ましく、プライオリティ設定レジスタ161Bには、この状態に対応したプライオリティ値を設定しておくことで、再度のデータの書き込みを優先的に行うことができる。
【0158】
なお、以上の説明においては、調停回路1による調停動作を前提としたが、調停回路1の代わりに、ラウンドロビン制御のみを行う従来的な調停回路を有するデータ処理装置に上述した、プライオリティ生成回路16A〜16Dを適用することによってもバスアクセスの公平性を確保することができる。さらにプライオリティ生成回路16A〜16Dを組み合わせたプライオリティ生成回路を使用することも可能である。
【0159】
【発明の効果】
本発明に係る請求項1記載の調停回路によれば、プライオリティチェックブロックとラウンドロビンブロックとを備え、プライオリティによる調停とラウンドロビンによる調停を組み合わせることで、優先度の高いバスアクセス要求を有するバスマスタに、優先的にバスアクセス権を与えることができるだけでなく、ラウンドロビン順位に基づいて、少なくとも最優先のバスマスタのデータについてはマスキング対象とされていないマスクデータを用いて、チェック結果のデータをマスキングしてマスク済みチェック結果とするので、幾つかのプライオリティ情報が無効になる状態を得ることができ、プライオリティ情報の影響が減殺されて、バスアクセスの公平性を確保した調停を行うことができる。
【図面の簡単な説明】
【図1】 本発明に係るデータ処理装置の全体構成を示すブロック図である。
【図2】 プロセッサ内の構成を示すブロック図である。
【図3】 プロセッサ内の構成を示すブロック図である。
【図4】 本発明に係る調停回路の構成を示すブロック図である。
【図5】 本発明に係る調停回路内のプライオリティチェックブロックの構成を示す図である。
【図6】 本発明に係る調停回路内のラウンドロビンブロックの構成を示す図である。
【図7】 本発明に係る調停回路の動作を説明するタイミングチャートである。
【図8】 本発明に係るデータ処理装置内のプライオリティ生成回路の構成を示すブロック図である。
【図9】 本発明に係るデータ処理装置内のプライオリティ生成回路の動作を説明するタイミングチャートである。
【図10】 本発明に係るデータ処理装置内のプライオリティ生成回路の変形例の構成を示すブロック図である。
【図11】 本発明に係るデータ処理装置内のプライオリティ生成回路の変形例の構成を示すブロック図である。
【図12】 本発明に係るデータ処理装置内のプライオリティ生成回路の変形例の構成を示すブロック図である。
Claims (1)
- 共有バスによって接続された複数のバスマスタからのバスアクセス要求を調停する調停回路であって、
前記複数のバスマスタのそれぞれから出力される複数のプライオリティ情報を受け、前記複数のプライオリティ情報を比較し、最もプライオリティの高いマスタを特定してチェック結果を出力するプライオリティチェックブロックと、
ラウンドロビンブロックと、を備え、
前記ラウンドロビンブロックは、
ラウンドロビン制御により、前記複数のバスマスタのバスアクセス要求に対する優先順位を決定するラウンドロビン制御部と、
前記優先順位に基づいて作成され、少なくとも最優先のマスタのデータについてはマスキング対象としないマスクデータを用いて、前記チェック結果のデータをマスキングしてマスク済みチェック結果として出力するラウンドロビンマスク部と、
前記マスク済みチェック結果および前記チェック結果に基づいて、バスアクセス要求を受け付けるべきバスマスタを選択する最終選択部と、を有し、
前記チェック結果のデータおよび前記マスクデータは、前記複数のバスマスタのそれぞれに所定の1ビットが対応する多ビットデータであり、
前記マスクデータは、
前記最優先のマスタに対応するビットより上位のビットがマスキング対象とされ、
前記ラウンドロビンマスク部は、
前記チェック結果のデータと前記マスクデータとの論理演算を行うことで、前記マスク済みチェック結果を得るものであり、
前記マスク済みチェック結果および前記チェック結果のデータは、前記マスク済みチェック結果のデータが上位側、前記チェック結果のデータが下位側となる連続データとして前記最終選択部に与えられ、
前記最終選択部は、前記連続データの最上位側からサーチして、一番最初に所定の論理値がセットされたビット位置を見つけ、当該ビット位置に割り付けられたバスマスタを、前記要求を受け付けるべきバスマスタとすることを特徴とする調停回路。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002340732A JP4266619B2 (ja) | 2002-11-25 | 2002-11-25 | 調停回路 |
US10/603,809 US7051133B2 (en) | 2002-11-25 | 2003-06-26 | Arbitration circuit and data processing system |
CN03154808.3A CN1253806C (zh) | 2002-11-25 | 2003-08-19 | 仲裁电路和数据处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002340732A JP4266619B2 (ja) | 2002-11-25 | 2002-11-25 | 調停回路 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004178056A JP2004178056A (ja) | 2004-06-24 |
JP2004178056A5 JP2004178056A5 (ja) | 2006-01-05 |
JP4266619B2 true JP4266619B2 (ja) | 2009-05-20 |
Family
ID=32500716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002340732A Expired - Fee Related JP4266619B2 (ja) | 2002-11-25 | 2002-11-25 | 調停回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7051133B2 (ja) |
JP (1) | JP4266619B2 (ja) |
CN (1) | CN1253806C (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7699151B2 (en) | 2006-04-18 | 2010-04-20 | Yamaha Hatsudoki Kabushiki Kaisha | Clutch actuator, engine unit, and saddle type vehicle |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092780A (ja) * | 2003-09-19 | 2005-04-07 | Matsushita Electric Ind Co Ltd | リアルタイムプロセッサシステム及び制御方法 |
FR2860896A1 (fr) * | 2003-10-14 | 2005-04-15 | St Microelectronics Sa | Procede d'arbitrage de l'acces a une ressource partagee |
US20050144401A1 (en) * | 2003-12-30 | 2005-06-30 | Pantalone Brett A. | Multiprocessor mobile terminal with shared memory arbitration |
US7979615B1 (en) * | 2004-03-08 | 2011-07-12 | Pmc-Sierra Us, Inc. | Apparatus for masked arbitration between masters and requestors and method for operating the same |
DE102004013635B4 (de) * | 2004-03-19 | 2006-04-20 | Infineon Technologies Ag | Verfahren zur Vergabe von Buszugriffsrechten in Multimaster-Bussystemen, sowie Multimaster-Bussystem zur Durchführung des Verfahrens |
US7380038B2 (en) * | 2005-02-04 | 2008-05-27 | Microsoft Corporation | Priority registers for biasing access to shared resources |
US7779287B2 (en) * | 2005-08-22 | 2010-08-17 | Intel Corporation | Reducing power consumption in multiprocessor systems |
US7890686B2 (en) * | 2005-10-17 | 2011-02-15 | Src Computers, Inc. | Dynamic priority conflict resolution in a multi-processor computer system having shared resources |
DE102006009034B3 (de) * | 2006-02-27 | 2007-08-02 | Infineon Technologies Ag | Verfahren zum Betreiben eines Bussystems sowie Halbleiter-Bauelement, insbesondere Mikroprozessor- bzw. Mikrocontroller |
JP4835259B2 (ja) * | 2006-05-23 | 2011-12-14 | 富士ゼロックス株式会社 | データ転送制御装置 |
JP2009059022A (ja) * | 2007-08-30 | 2009-03-19 | Mitsubishi Electric Corp | 蓄積共有システム用の装置 |
US9081901B2 (en) * | 2007-10-31 | 2015-07-14 | Raytheon Company | Means of control for reconfigurable computers |
JP2010286983A (ja) * | 2009-06-10 | 2010-12-24 | Renesas Electronics Corp | バス調停回路及びバス調停方法 |
JP5591022B2 (ja) | 2010-08-16 | 2014-09-17 | オリンパス株式会社 | バス帯域モニタ装置およびバス帯域モニタ方法 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
JP5625766B2 (ja) * | 2010-11-08 | 2014-11-19 | ソニー株式会社 | アービトレーション回路、および、その制御方法 |
US9208109B2 (en) * | 2011-06-01 | 2015-12-08 | Altera Corporation | Memory controllers with dynamic port priority assignment capabilities |
US8918558B2 (en) * | 2011-09-28 | 2014-12-23 | International Business Machines Corporation | Round robin priority selector |
US8892801B2 (en) * | 2012-05-23 | 2014-11-18 | Arm Limited | Arbitration circuity and method for arbitrating between a plurality of requests for access to a shared resource |
JP2014016730A (ja) * | 2012-07-06 | 2014-01-30 | Canon Inc | バス調停装置、バス調停方法、及びコンピュータプログラム |
JP5571826B1 (ja) | 2013-06-24 | 2014-08-13 | 日本電信電話株式会社 | パケット転送処理装置および方法 |
US9934043B2 (en) * | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
CN104199790B (zh) * | 2014-08-21 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 数据处理方法及装置 |
JP6586759B2 (ja) | 2015-04-01 | 2019-10-09 | 富士通株式会社 | 設計装置、プログラム、及びfpga設計方法 |
JP6536441B2 (ja) * | 2016-03-16 | 2019-07-03 | 株式会社デンソー | 制御装置 |
CN106776423B (zh) * | 2016-11-25 | 2019-08-20 | 天津大学 | 采用优先级自动切换仲裁单元的异步仲裁树电路 |
JP7018833B2 (ja) * | 2018-06-22 | 2022-02-14 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
CN112963251A (zh) * | 2020-12-18 | 2021-06-15 | 南岳电控(衡阳)工业技术股份有限公司 | 一种发动机转矩与转速的协调控制方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0197865A (ja) | 1987-10-09 | 1989-04-17 | Seiko Instr & Electron Ltd | 自動ピペッタ |
JPH01200439A (ja) * | 1988-02-05 | 1989-08-11 | Nec Corp | 未受付要求優先回路 |
US5274822A (en) * | 1990-07-02 | 1993-12-28 | Ncr Corporation | Fast centralized arbitrator |
JP2625589B2 (ja) | 1991-04-22 | 1997-07-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システム |
US5463624A (en) * | 1994-04-15 | 1995-10-31 | Dsc Communications Corporation | Bus arbitration method for telecommunications switching |
US5784590A (en) * | 1994-06-29 | 1998-07-21 | Exponential Technology, Inc. | Slave cache having sub-line valid bits updated by a master cache |
US5913045A (en) * | 1995-12-20 | 1999-06-15 | Intel Corporation | Programmable PCI interrupt routing mechanism |
DE69525949T2 (de) * | 1995-12-29 | 2002-07-25 | Bull S.A., Louveciennes | Arbitrierungseinheit mit kreisförmiger Priorität, insbesondere für Multiprozessorsysteme mit synchronen symmetrischen Prozessoren |
JPH1091577A (ja) | 1996-09-17 | 1998-04-10 | Toshiba Corp | バスアクセス権制御方式 |
US5862353A (en) * | 1997-03-25 | 1999-01-19 | International Business Machines Corporation | Systems and methods for dynamically controlling a bus |
US5884051A (en) * | 1997-06-13 | 1999-03-16 | International Business Machines Corporation | System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities |
US6393506B1 (en) * | 1999-06-15 | 2002-05-21 | National Semiconductor Corporation | Virtual channel bus and system architecture |
EP1164493B1 (en) * | 2000-06-16 | 2005-11-30 | STMicroelectronics S.r.l. | Variable priority arbitration method, for instance for interconnect buses, and respective system |
DE60026908D1 (de) * | 2000-07-05 | 2006-05-18 | St Microelectronics Srl | Arbitrierungsverfahren und Schaltungsarchitektur dazu |
US6647449B1 (en) * | 2000-10-05 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | System, method and circuit for performing round robin arbitration |
US6880028B2 (en) * | 2002-03-18 | 2005-04-12 | Sun Microsystems, Inc | Dynamic request priority arbitration |
-
2002
- 2002-11-25 JP JP2002340732A patent/JP4266619B2/ja not_active Expired - Fee Related
-
2003
- 2003-06-26 US US10/603,809 patent/US7051133B2/en not_active Expired - Fee Related
- 2003-08-19 CN CN03154808.3A patent/CN1253806C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7699151B2 (en) | 2006-04-18 | 2010-04-20 | Yamaha Hatsudoki Kabushiki Kaisha | Clutch actuator, engine unit, and saddle type vehicle |
Also Published As
Publication number | Publication date |
---|---|
CN1253806C (zh) | 2006-04-26 |
JP2004178056A (ja) | 2004-06-24 |
US7051133B2 (en) | 2006-05-23 |
US20040117527A1 (en) | 2004-06-17 |
CN1508709A (zh) | 2004-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4266619B2 (ja) | 調停回路 | |
EP1403773B1 (en) | Resource management device | |
JP3699833B2 (ja) | メモリアーキテクチャーのための優先符号化及び復号化 | |
EP2430554B1 (en) | Hierarchical memory arbitration technique for disparate sources | |
US8145815B2 (en) | Data processing system | |
US7472213B2 (en) | Resource management device | |
JP4007483B2 (ja) | 高位合成装置および高位合成方法 | |
CN110297782B (zh) | 仲裁系统和方法 | |
KR100296718B1 (ko) | 다중프로세서 시스템에서 가변폭 버스를 동시에 액세스하기 위한 방법 및 시스템 | |
WO2005073864A1 (en) | A method and apparatus to manage memory access requests | |
KR20040012964A (ko) | 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법 | |
US11537538B2 (en) | Inter cluster snoop latency reduction | |
KR100555501B1 (ko) | 동적으로 버스 점유 우선 순위를 정하는 버스 중재기 및그 버스 중재 방법 | |
CN110059035B (zh) | 半导体装置和总线发生器 | |
JP2000047994A (ja) | 情報処理装置 | |
US6615295B2 (en) | Relaxed read completion ordering in a system using transaction order queue | |
US7395360B1 (en) | Programmable chip bus arbitration logic | |
US7073003B2 (en) | Programmable fixed priority and round robin arbiter for providing high-speed arbitration and bus control method therein | |
US7028116B2 (en) | Enhancement of transaction order queue | |
CN110633232A (zh) | 半导体器件和总线生成器 | |
US6249855B1 (en) | Arbiter system for central processing unit having dual dominoed encoders for four instruction issue per machine cycle | |
JP5058116B2 (ja) | ストリーミングidメソッドによるdmac発行メカニズム | |
JPWO2004025478A1 (ja) | メモリブロック間のレイテンシ差を活用するデータ処理装置および方法 | |
JPH1125035A (ja) | バス調停装置 | |
JP2731743B2 (ja) | 通信レジスタ付並列計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051108 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081112 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20081112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090120 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090217 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090217 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130227 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140227 Year of fee payment: 5 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |