JP2004038767A - バス調停装置 - Google Patents
バス調停装置 Download PDFInfo
- Publication number
- JP2004038767A JP2004038767A JP2002197504A JP2002197504A JP2004038767A JP 2004038767 A JP2004038767 A JP 2004038767A JP 2002197504 A JP2002197504 A JP 2002197504A JP 2002197504 A JP2002197504 A JP 2002197504A JP 2004038767 A JP2004038767 A JP 2004038767A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- input
- priority
- selectors
- request
- 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.)
- Pending
Links
Images
Landscapes
- Multi Processors (AREA)
- Bus Control (AREA)
Abstract
【課題】LSIに実装されたマルチプロセッサシステムにおいて、優先的に処理したいタスクが割り振られたプロセッサのバスの使用権を、実行時にLSI外部から変更することを可能にするバス調停装置を提供する。
【解決手段】バス調停装置2は、優先順位設定レジスタ9の値に基づいてセレクタ5〜8を制御することにより、プライオリティエンコーダ3により各バスマスタに与えられるバスの使用権の優先順位を変更することが可能となり、時々刻々とバスマスタ毎の負荷が変動する場合であっても、各バスマスタの負荷の変動に応じてバスの使用権の優先度を変更することができるものである。
【選択図】 図1
【解決手段】バス調停装置2は、優先順位設定レジスタ9の値に基づいてセレクタ5〜8を制御することにより、プライオリティエンコーダ3により各バスマスタに与えられるバスの使用権の優先順位を変更することが可能となり、時々刻々とバスマスタ毎の負荷が変動する場合であっても、各バスマスタの負荷の変動に応じてバスの使用権の優先度を変更することができるものである。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、同一LSI内部において、複数のバスマスタを有するバスを含んで構成するマルチプロセッサ・システムなどのバス調停装置に関する。
【0002】
【従来の技術】
一般に、バス調停装置には、各バスマスタのバス要求に対して、バスマスタ毎に予め定めた優先順位に従ってバスの使用権を与えるように動作するもの(固定優先順位方式)や、均等にバスの使用権を与えるように動作するものが多く存在する。
【0003】
ここで、後者を実現する方法の一例として、特開昭56−96313号公報に記載の「マルチプロセッサシステムのバス制御装置」がある。
図5は、この従来のマルチプロセッサシステムのバス制御装置を示すブロックである。図5において、従来のマルチプロセッサシステムのバス調停装置101は、複数のプロセッサ110〜113が共有するバス115を介してメモリ114にアクセスする際の、各プロセッサ110〜113のバス要求を均等に受け付ける働きをする。
【0004】
即ち、バス調停装置101は、各プロセッサ110〜113からのバス要求(BR1〜BR4のうち一つ)のうち、バスの使用権を与えられたバス要求BRをFF105を用いてマスクし、引き続き他のプロセッサ110〜113からのバス要求BRを受け付けるものである。そして、例えばプロセッサ110のバス要求BR1に対してバス調停装置101によりバスの使用権が与えられた場合、次にプロセッサ110のバス要求BR1にバスの使用権が与えられるのは、他の全てのプロセッサ111〜113からのバス要求BR2〜BR4に対してバス使用権が与えられ、FF105によりそのバス要求BR1〜BR4に対してマスク102がなされて、該マスク102がリセットされた後か、または、他のプロセッサ111〜113のバス要求BR2〜BR4が無い場合の、いずれかとなる。
【0005】
また、前述以外の方法しては、特開平6−309274号公報に記載の「プライオリティエンコーダ型優先順位決定回路」があり、ここでは、ランダムコード発生器を用いて、複数のプロセッサが共有するバスの使用権を各プロセッサにランダムに与えることにより、優先順位の低い装置の要求がまったく受け入れられない事態を防止し、装置全体のスループットを下げることなく、正常動作を行う技術が開示されている。
【0006】
【発明が解決しようとする課題】
しかし、前述したような、バスの使用権を均等に与えるバス調停装置において、プロセッサなどである各々のバスマスタが処理する負荷の大きさが異なる場合には、負荷が小さいバスマスタの処理の進捗に比べて、負荷が大きいバスマスタの処理が滞る結果を招き、結果としてLSI全体のスループットを低下させる問題がある。
【0007】
そこで、このような問題点を解決する手段として、固定優先順位方式によりバスの使用権を与える方法がある。この固定優先順位方式は、処理量の大きい負荷を優先順位の高いバスマスタに割り当てる方法を採るものであり、負荷が大きいバスマスタの処理効率を高めることができ、LSI全体の処理のスループットを落さずに済む。
【0008】
しかしながら、実際には各バスマスタに割り当てられる処理の負荷の大きさは時間とともに変動するものであり、負荷の大きさが、大きいものから小さいものまで均等に存在する状況になるのは稀である。そして、従来のバス調停装置では、上述のような各バスマスタの負荷の時間による変動に応じ、バスの使用権の優先度を変更することができなかったため、結果としてLSI全体での処理のスループットが低下するという問題点を有していた。
【0009】
本発明は、前記問題点に鑑みてなされたものであり、各バスマスタに割り当てられた負荷が不均等で、かつ、時々刻々とバスマスタ毎の負荷が変動する場合であっても、各バスマスタの負荷の変動に応じてバスの使用権の優先度を変更することができ、LSI全体のスループットを落すことなく、与えられたタスクの処理を行うことができるバス調停装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
前記課題を解決するために本発明にかかるバス調停装置は、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法として固定優先順位方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記複数のバスマスタからの各バス要求を、前記プライオリティエンコーダのどの入力位置に入力するかを、前記複数のセレクタにおいて変更するようにしたことを特徴とするものである。
【0011】
また、本発明にかかるバス調停装置は、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法としてラウンドロビン方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記複数のセレクタから入力されたバス要求を順次シフトして出力するシフタと、前記シフタから出力されるバス要求にそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記プライオリティエンコーダで前記複数のバスマスタからの各バス要求に対して与えられるバスの使用権の順序を、前記複数のセレクタにおいて変更するようにしたことを特徴とするものである。
【0012】
【発明の実施の形態】
(実施の形態1)
以下に、本発明の実施の形態1によるバス調停装置について図1、図2を用いて説明する。
図1は、本発明の実施の形態1によるバス調停装置の一例を示すブロック図である。本発明の実施の形態1で示すLSI1には、バス15にバスマスタである第1〜第4のプロセッサ10〜13が接続され、各プロセッサ10〜13がバス15を介してメモリ14にアクセスするマルチプロセッサシステムが実装されている。そして、前記複数のプロセッサ10〜13のバスの使用権を調停するのがバス調停装置2であり、このバス調停装置2によりバスの使用権を許可されたプロセッサがバス15を介してメモリ14にアクセスできる構成をとる。
【0013】
本発明の実施の形態1によるバス調停装置2は、図1に示すように、プライオリティエンコーダ3と、デコーダ4と、第1〜第4のセレクタ5〜8と、優先順位設定レジスタ9と、からなり、調停方法として固定優先順位方式をとるバス調停装置である。
【0014】
プライオリティエンコーダ3は、前記第1〜第4のセレクタ5〜8に対応する複数の入力位置IN1〜IN4を有し、予め設定された優先順位(例えば、入力位置IN1〜IN4全てに入力があった場合は入力位置IN3に入力された信号を優先的に処理する等)に従って最も優先順位が高い入力に対応した出力を行い、その出力により選択されたプロセッサに対してバス15の使用権を与える。なお、この各プロセッサ10〜13に対するバスの使用権の付与は、プライオリティエンコーダ3より各プロセッサ10〜13に対して使用権BGを出力することで行われるものであり、例えば、第1のプロセッサ10にバス15の使用権を与える場合には使用権BG1が、第2のプロセッサ11にバス15の使用権を与える場合には使用権BG2が、第3のプロセッサ12にバス15の使用権を与える場合には使用権BG3が、第4のプロセッサ13にバス15の使用権を与える場合には使用権BG4が出力される。
【0015】
第1〜第4のセレクタ5〜8は、各プロセッサ10〜13からのバス要求BR1〜BR4が入力され、その入力されたバス要求BRのうちの一つを優先順位設定レジスタ9のレジスタ値に基づいて選択し、該各セレクタ5〜8に対応するプライオリティエンコーダ3の入力位置INに対して、その選択したバス要求BRを出力する。
【0016】
デコーダ4は、プライオリティエンコーダ3から出力される符号化データをデコードする。
優先順位設定レジスタ9は、LSI1外部からの入力された信号に基づいて、該優先順位設定レジスタ9が有するレジスタ値を変更することで、前記各セレクタ5〜8から出力されるバス要求BRのプライオリティエンコーダ3に対する入力位置を変更する。
【0017】
以下、図2を用いて、優先順位設定レジスタの構成について説明する。図2は、本発明の実施の形態1による優先順位設定レジスタの一例を示したものである。
図2に示すように、優先順位設定レジスタ9は、各セレクタ5〜8に対応するフィールドを有しており、その各フィールドに設定されたレジスタ値に応じて、各セレクタ5〜8から出力するバス要求BRを選択する。
【0018】
ここで、例えば、前記優先順位設定レジスタ9の各セレクタ5〜8に対応するフィールドにレジスタ値「00」が設定された場合は第1のプロセッサ10のバス要求BR1が選択され、レジスタ値「01」が設定された場合は第2のプロセッサ11のバス要求BR2が選択され、レジスタ値「10」が設定された場合は第3のプロセッサ12のバス要求BR3が選択され、また、レジスタ値「11」が設定された場合は第4のプロセッサ14のバス要求BR4が選択されるものとする。このような場合に、図2に示されるように、LSI1外部から、優先順位設定レジスタ9の各セレクタ5〜8に対応するフィールドに対して「11」、「01」、「00」、「10」が設定されたとすると、第1のセレクタ5では第4のプロセッサ13からのバス要求B4が、第2のセレクタ6では第2のプロセッサ11からのバス要求BR2が、第3のセレクタ7では第1のプロセッサ10からのバス要求BR1が、第4のセレクタ8では第3のプロセッサ12からのバス要求BR3が選択されることとなる。
【0019】
これにより、優先順位設定レジスタ9に設定された値に基づいて、各セレクタ5〜8から出力されるバス要求BRをプライオリティエンコーダ3の所定の入力位置に入力できるので、各プロセッサ間でのバス15の使用権の優先順位を任意に変更できるようになる。
【0020】
次に、本発明の実施の形態1によるバス調停装置1の動作について説明する。各プロセッサ10〜13から出されたバス要求(BR1、BR2、BR3、BR4)は、各セレクタ5〜8を介して、プライオリティエンコーダ3の入力位置IN1〜IN4に入力される。例えば、優先順位設定レジスタ9に、図2に示されるレジスタ値が設定されているとすると、第1のセレクタ5ではバス要求BR4が、第2のセレクタ6ではバス要求BR2が、第3のセレクタ7ではバス要求BR1が、第4のセレクタ8ではバス要求BR3が選択され、プライオリティエンコーダ3の各セレクタに対応する入力位置IN1〜IN4に入力される。
【0021】
そして、プライオリティエンコーダ3では、該プライオリティエンコーダ3に入力されるバス要求が競合した場合に、予め設定されている各入力位置INに対応する優先順位に従って、最も優先順位の高いものにバスの使用権BGが与えられる。例えば、プライオリティエンコーダ3において、プライオリティエンコーダ3の入力位置IN3、入力位置IN2、入力位置IN1、入力位置IN4の順で、入力される信号に高い優先順位を与えていたとすると、仮に、第1のプロセッサ10のバス要求BR1と、第2のプロセッサ11からのバス要求BR2が競合した場合には、第3のセレクタ7を介して入力位置IN3にバス要求BR1が入力される第1のプロセッサ10にバスの使用権BG1を与えた後、第2のセレクタ6を介して入力位置IN2にバス要求BR2が入力される第2のプロセッサ11にバスの使用権BG2を与えることとなる。
【0022】
次に、各プロセッサの処理量が変化して、プライオリティエンコーダ3で予め設定されている優先順位の低いプロセッサの負荷が、優先順位の高いプロセッサの負荷よりも大きくなった場合について説明する。なお、プライオリティエンコーダ3において、予め設定されている優先順位は、前述したものと同様に、プライオリティエンコーダ3の入力位置IN3、入力位置IN2、入力位置IN1、入力位置IN4に入力される信号の順で、高い優先順位が与えられているものとする。
【0023】
例えば、プロセッサの処理量が変化して、第1のプロセッサ10からのバス要求BR1と、当該第1のプロセッサ10の負荷よりも大きい負荷を有する第2のプロセッサ11からのバス要求BR2とが競合した場合には、本発明にかかるバス調停装置は、外部入力に基づいて、図2に示す優先順位設定レジスタ9のレジスタ値を変更して、プライオリティエンコーダ3に対する、第1のプロセッサ10と第2のプロセッサ11のバス要求の入力位置を変更し、第2のプロセッサ11のバスの使用権の優先順位が第1のプロセッサ10のバスの使用権の優先順位より高くなるように制御を行なう。
【0024】
具体的には、優先順位設定レジスタ9の第3のセレクタ7に対応するフィールドに設定されているレジスタ値「00」を「01」に変更し、優先順位設定レジスタ9の第2のセレクタ6に対応するフィールドに設定されているレジスタ値「01」を「00」に変更する。
【0025】
これにより、プライオリティエンコーダ3の入力位置IN3に入力するバス要求をBR1からBR2に、また入力位置IN2に入力するバス要求をBR2からBR1に変更することができるため、プロセッサの処理量が増加した第2のプロセッサ11の処理を第1のプロセッサ10の処理よりも優先的に行うことができることとなる。
【0026】
以上のように本実施の形態1によれば、優先順位設定レジスタ9のレジスタ値を変更して各セレクタ5〜8から出力するバス要求BRのプライオリティエンコーダ3に対する入力位置INを変更することにより、プライオリティエンコーダ3によりバスの使用権BGが与えられるバス要求BRを任意に変更することができ、時々刻々と変化する各プロセッサ10〜13における処理内容の負荷に応じて、プライオリティエンコーダ3で決定されたバス15の使用権が与えられるバス要求BRの優先順位を変更することができ、LSI1全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【0027】
なお、本実施の形態1においては、LSI1の動作開始時に、優先順位設定レジスタ9にレジスタ値が予め設定されている場合を例に挙げて説明したが、その動作開始時に、LSI1を制御する図示していない制御回路において各プロセッサ10〜13における処理量の大きさを判断し、それに基づいてプライオリティエンコーダ3の優先順位の高い入力位置INに処理の大きいプロセッサからのバス要求BRを入力するようにしてもよく、動作開始時において各セレクタ5〜8で選択されるバス要求BRは、任意に設定可能である。
【0028】
また、本実施の形態1においては、優先順位設定レジスタ9に、第1のプロセッサ〜第4のプロセッサを示すレジスタ値「11」、「01」、「00」、「10」を設定するようにしたが、優先順位設定レジスタ9の各セレクタに対応する複数のフィールドに同一のプロセッサを示すレジスタ値を設定してもよく、このようにすれば、複数設定されたプロセッサのバス15の使用を許可する機会を増やすことができ、一方、優先順位設定レジスタ9の各セレクタに対応するすべてのフィールドに、任意のプロセッサを示すレジスタ値を設定しないことで、該当するプロセッサのバス15の使用を禁止することができる。
【0029】
また、このマルチプロセッサシステムのバス調停装置2がLSI1に実装され、LSI1の外部から当該LSI1で処理するタスクが複数個与えられる場合には、各プロセッサ10〜13で処理するタスクの性質によって、各プロセッサ10〜13の優先順位を優先順位設定レジスタ9により任意に変更することにより、各タスク毎に所望の時間内に処理を完了させることが可能となる。そして、このようなLSI1を1個以上で構成するシステムにおいては、各LSIに設けられた優先順位設定レジスタ9をLSI1外部から設定可能とすることで、各LSIのタスクの処理速度を管理することが容易となる効果が得られる。
【0030】
(実施の形態2)
以下に、本発明の実施の形態2によるバス調停装置について図3を用いて説明する。なお、本発明の実施の形態2によるバス調停装置16は、バスの調停方法としてラウンドロビン方式をとるものである。
【0031】
図3は、本発明の実施の形態2によるバス調停装置の一例を示すブロック図であり、本実施の形態2のバス調停装置16は、前記実施の形態1によるバス調停装置2の各セレクタ5〜8とプライオリティエンコーダ3との間にシフタ17を設けたものである。そのため、前記実施の形態1によるバス調停装置2と同じ構成要素については同一の符号を付し、ここでは説明を省略する。
【0032】
シフタ17は、各セレクタ5〜8に対応する複数の入力位置IN1〜4を有し、該各セレクタ5〜8から出力されたバス要求BRを所定の時間間隔毎に順次シフトしてプライオリティエンコーダ3に出力する。
【0033】
図4は、本発明の実施の形態2によるバス調停装置のシフタの説明をするための説明図であり、図4(a)は右に1ビットシフトした例を、図4(b)は右に2ビットシフトした例を、図4(c)は右に3ビットシフトした例を、図4(d)はシフトしない例を、それぞれ示している。そして、シフタ17は、図4(a)〜図4(d)に示すように、各セレクタ5〜8より出力されたバス要求BRを所定の時間間隔で順次シフトし、プライオリティエンコーダ3により与えられるバスの使用権BGを各プロセッサ10〜13に均等に割り当てるラウンドロビン方式のバス調停装置16を実現する。
【0034】
そして、このようなラウンドロビン方式のバス調停装置16において、シフタ17に入力される各バス要求BRは、前述した実施の形態1と同様、優先順位設定セレクタ9により制御された各セレクタ5〜8から出力されたものである。
【0035】
そのため、例えば、プライオリティエンコーダ3において、該プライオリティエンコーダ3の入力位置IN1に入力されたバス要求に優先的にバスの使用権が与えられるよう設定されている場合には、各プロセッサ10〜13の負荷の大きさに基づいて、優先順位設定レジスタのレジスタ値を変更し、セレクタ5〜8からシフタ17を介してプライオリティエンコーダの入力位置IN1に入力されるバス要求の順番を変更することにより、負荷の大きいプロセッサ10〜13順に、バスの使用権を与えることが可能となる。
【0036】
例えば、すべてのプロセッサからバス要求が出力され、第3のプロセッサ12、第1のプロセッサ10、第2のプロセッサ11、第4のプロセッサ13の順で、左からその負荷が大きいものであったとすると、優先順位設定レジスタのレジスタ値を、図2に示したように11、01、00、10として、第1のセレクタ5からバス要求BR4が、第2のセレクタ6からバス要求BR2が、第3のセレクタ7からバス要求BR1が、第4のセレクタ8からバス要求BR3がそれぞれ出力されるようにする。そして、このように各セレクタ5〜8より出力されたバス要求BR1〜BR4は、シフタ17において、図4に示すように、図4(a)から、図4(b)、(c)、(d)、(a)・・・・の順に所定の時間間隔で、シフトされるため、結果として、プライオリティエンコーダ3の優先的にバスの使用権が与えられる入力位置IN1には、バス要求BR3、バス要求BR1、バス要求BR2、バス要求BR4の順でバス要求が入力され、負荷の大きいプロセッサの処理を優先的に行なうことが可能となる。なお、シフタ17をシフトする所定の時間間隔は、最も重い負荷がかかるプロセッサが変わるタイミングでシフタ17がシフトを行なうように設定すれば、より好適なものとなる。
【0037】
また、同様に、各プロセッサ10〜13の負荷が途中で変化して、各プロセッサ10〜13の負荷の大きさの順序が変更した場合であっても、優先順位設定レジスタ9のレジスタ値を変更することにより、バスの使用権BGが与えられるバス要求BRの順番を任意に変更することができる。
【0038】
以上のように本実施の形態2によれば、優先順位設定レジスタ9のレジスタ値を変更して、プライオリティエンコーダ3の所定の入力位置に、シフタ17により順次シフトされて入力されるバス要求BRの順序を変更することにより、プライオリティエンコーダ3においてバスの使用権BGが与えられる順番を任意に変更することができ、予め想定した、プロセッサ10〜13の負荷が変動する順序・時間間隔に合わせて、バスの使用権BGを与える順序を変更できるとともに、負荷の変化を観測しながら、必要に応じてバスの使用権BGを優先的に与える順序を変更できるため、LSI1全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【0039】
なお、本実施の形態1、及び2によるバス調停装置は、プロセッサ数を4として説明したが、プロセッサ数については特に限定はなく、プロセッサ数が幾つであっても本発明を適用することができる。
【0040】
また、本実施の形態1、及び2によるバス調停装置は、プロセッサをバスマスタとして用いるものについて説明したが、自らバスにアクセスする機能を持つ機能ブロックであれば、本発明のプロセッサと同様のものとして適用することができる。
【0041】
【発明の効果】
このように、本発明のバス調停装置によれば、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法として固定優先順位方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記複数のバスマスタからの各バス要求を、前記プライオリティエンコーダのどの入力位置に入力するかを、前記複数のセレクタにおいて変更するようにしたので、前記プライオリティエンコーダで決定された優先順位を任意に変更でき、各バスマスタ(プロセッサ)に割り当てられた負荷が不均等で、かつ、時々刻々とバスマスタ毎の負荷が変動する場合であっても、各バスマスタの負荷の変動に応じてバスの使用権の優先度を変更することができ、LSI全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【0042】
また、本発明のバス調停装置によれば、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法としてラウンドロビン方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記複数のセレクタから入力されたバス要求を順次シフトして出力するシフタと、前記シフタから出力されるバス要求にそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記プライオリティエンコーダで前記複数のバスマスタからの各バス要求に対して与えられるバスの使用権の順序を、前記複数のセレクタにおいて変更するようにしたので、予め想定した、プロセッサの負荷が変動する順序・時間間隔に合わせて、バスの使用権BGを与える順序を変更できるとともに、負荷の変化を観測しながら、必要に応じてバスの使用権BGを優先的に与える順序を変更でき、LSI全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1によるバス調停装置の一例を示すブロック図である。
【図2】本発明の実施の形態1によるバス調停装置の優先順位設定レジスタの一例を示す図である。
【図3】本発明の実施の形態2によるバス調停装置の一例を示すブロック図である。
【図4】本発明の実施の形態2によるバス調停装置のシフタの説明をするための図であり、プライオリティエンコーダに入力するプロセッサからのバス要求の入力位置を右に1ビットシフトした例(図(a))、右に2ビットシフトした例(図(b))、右に3ビットシフトした例(図(c))シフトしない例(図(d))を示す図である。
【図5】従来のバス調停装置の一例を示すブロック図である。
【符号の説明】
1 LSI
2,16,101 バス調停装置
3,103 プライオリティエンコーダ
4,104 デコーダ
5 第1のセレクタ
6 第2のセレクタ
7 第3のセレクタ
8 第4のセレクタ
9 優先順位設定レジスタ
10,110 第1のプロセッサ
11、111 第2のプロセッサ
12、112 第3のプロセッサ
13、113 第4のプロセッサ
14、114 メモリ
15、115 バス
17 シフタ
102 マスク
105 FF
【発明の属する技術分野】
本発明は、同一LSI内部において、複数のバスマスタを有するバスを含んで構成するマルチプロセッサ・システムなどのバス調停装置に関する。
【0002】
【従来の技術】
一般に、バス調停装置には、各バスマスタのバス要求に対して、バスマスタ毎に予め定めた優先順位に従ってバスの使用権を与えるように動作するもの(固定優先順位方式)や、均等にバスの使用権を与えるように動作するものが多く存在する。
【0003】
ここで、後者を実現する方法の一例として、特開昭56−96313号公報に記載の「マルチプロセッサシステムのバス制御装置」がある。
図5は、この従来のマルチプロセッサシステムのバス制御装置を示すブロックである。図5において、従来のマルチプロセッサシステムのバス調停装置101は、複数のプロセッサ110〜113が共有するバス115を介してメモリ114にアクセスする際の、各プロセッサ110〜113のバス要求を均等に受け付ける働きをする。
【0004】
即ち、バス調停装置101は、各プロセッサ110〜113からのバス要求(BR1〜BR4のうち一つ)のうち、バスの使用権を与えられたバス要求BRをFF105を用いてマスクし、引き続き他のプロセッサ110〜113からのバス要求BRを受け付けるものである。そして、例えばプロセッサ110のバス要求BR1に対してバス調停装置101によりバスの使用権が与えられた場合、次にプロセッサ110のバス要求BR1にバスの使用権が与えられるのは、他の全てのプロセッサ111〜113からのバス要求BR2〜BR4に対してバス使用権が与えられ、FF105によりそのバス要求BR1〜BR4に対してマスク102がなされて、該マスク102がリセットされた後か、または、他のプロセッサ111〜113のバス要求BR2〜BR4が無い場合の、いずれかとなる。
【0005】
また、前述以外の方法しては、特開平6−309274号公報に記載の「プライオリティエンコーダ型優先順位決定回路」があり、ここでは、ランダムコード発生器を用いて、複数のプロセッサが共有するバスの使用権を各プロセッサにランダムに与えることにより、優先順位の低い装置の要求がまったく受け入れられない事態を防止し、装置全体のスループットを下げることなく、正常動作を行う技術が開示されている。
【0006】
【発明が解決しようとする課題】
しかし、前述したような、バスの使用権を均等に与えるバス調停装置において、プロセッサなどである各々のバスマスタが処理する負荷の大きさが異なる場合には、負荷が小さいバスマスタの処理の進捗に比べて、負荷が大きいバスマスタの処理が滞る結果を招き、結果としてLSI全体のスループットを低下させる問題がある。
【0007】
そこで、このような問題点を解決する手段として、固定優先順位方式によりバスの使用権を与える方法がある。この固定優先順位方式は、処理量の大きい負荷を優先順位の高いバスマスタに割り当てる方法を採るものであり、負荷が大きいバスマスタの処理効率を高めることができ、LSI全体の処理のスループットを落さずに済む。
【0008】
しかしながら、実際には各バスマスタに割り当てられる処理の負荷の大きさは時間とともに変動するものであり、負荷の大きさが、大きいものから小さいものまで均等に存在する状況になるのは稀である。そして、従来のバス調停装置では、上述のような各バスマスタの負荷の時間による変動に応じ、バスの使用権の優先度を変更することができなかったため、結果としてLSI全体での処理のスループットが低下するという問題点を有していた。
【0009】
本発明は、前記問題点に鑑みてなされたものであり、各バスマスタに割り当てられた負荷が不均等で、かつ、時々刻々とバスマスタ毎の負荷が変動する場合であっても、各バスマスタの負荷の変動に応じてバスの使用権の優先度を変更することができ、LSI全体のスループットを落すことなく、与えられたタスクの処理を行うことができるバス調停装置を提供することを目的とする。
【0010】
【課題を解決するための手段】
前記課題を解決するために本発明にかかるバス調停装置は、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法として固定優先順位方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記複数のバスマスタからの各バス要求を、前記プライオリティエンコーダのどの入力位置に入力するかを、前記複数のセレクタにおいて変更するようにしたことを特徴とするものである。
【0011】
また、本発明にかかるバス調停装置は、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法としてラウンドロビン方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記複数のセレクタから入力されたバス要求を順次シフトして出力するシフタと、前記シフタから出力されるバス要求にそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記プライオリティエンコーダで前記複数のバスマスタからの各バス要求に対して与えられるバスの使用権の順序を、前記複数のセレクタにおいて変更するようにしたことを特徴とするものである。
【0012】
【発明の実施の形態】
(実施の形態1)
以下に、本発明の実施の形態1によるバス調停装置について図1、図2を用いて説明する。
図1は、本発明の実施の形態1によるバス調停装置の一例を示すブロック図である。本発明の実施の形態1で示すLSI1には、バス15にバスマスタである第1〜第4のプロセッサ10〜13が接続され、各プロセッサ10〜13がバス15を介してメモリ14にアクセスするマルチプロセッサシステムが実装されている。そして、前記複数のプロセッサ10〜13のバスの使用権を調停するのがバス調停装置2であり、このバス調停装置2によりバスの使用権を許可されたプロセッサがバス15を介してメモリ14にアクセスできる構成をとる。
【0013】
本発明の実施の形態1によるバス調停装置2は、図1に示すように、プライオリティエンコーダ3と、デコーダ4と、第1〜第4のセレクタ5〜8と、優先順位設定レジスタ9と、からなり、調停方法として固定優先順位方式をとるバス調停装置である。
【0014】
プライオリティエンコーダ3は、前記第1〜第4のセレクタ5〜8に対応する複数の入力位置IN1〜IN4を有し、予め設定された優先順位(例えば、入力位置IN1〜IN4全てに入力があった場合は入力位置IN3に入力された信号を優先的に処理する等)に従って最も優先順位が高い入力に対応した出力を行い、その出力により選択されたプロセッサに対してバス15の使用権を与える。なお、この各プロセッサ10〜13に対するバスの使用権の付与は、プライオリティエンコーダ3より各プロセッサ10〜13に対して使用権BGを出力することで行われるものであり、例えば、第1のプロセッサ10にバス15の使用権を与える場合には使用権BG1が、第2のプロセッサ11にバス15の使用権を与える場合には使用権BG2が、第3のプロセッサ12にバス15の使用権を与える場合には使用権BG3が、第4のプロセッサ13にバス15の使用権を与える場合には使用権BG4が出力される。
【0015】
第1〜第4のセレクタ5〜8は、各プロセッサ10〜13からのバス要求BR1〜BR4が入力され、その入力されたバス要求BRのうちの一つを優先順位設定レジスタ9のレジスタ値に基づいて選択し、該各セレクタ5〜8に対応するプライオリティエンコーダ3の入力位置INに対して、その選択したバス要求BRを出力する。
【0016】
デコーダ4は、プライオリティエンコーダ3から出力される符号化データをデコードする。
優先順位設定レジスタ9は、LSI1外部からの入力された信号に基づいて、該優先順位設定レジスタ9が有するレジスタ値を変更することで、前記各セレクタ5〜8から出力されるバス要求BRのプライオリティエンコーダ3に対する入力位置を変更する。
【0017】
以下、図2を用いて、優先順位設定レジスタの構成について説明する。図2は、本発明の実施の形態1による優先順位設定レジスタの一例を示したものである。
図2に示すように、優先順位設定レジスタ9は、各セレクタ5〜8に対応するフィールドを有しており、その各フィールドに設定されたレジスタ値に応じて、各セレクタ5〜8から出力するバス要求BRを選択する。
【0018】
ここで、例えば、前記優先順位設定レジスタ9の各セレクタ5〜8に対応するフィールドにレジスタ値「00」が設定された場合は第1のプロセッサ10のバス要求BR1が選択され、レジスタ値「01」が設定された場合は第2のプロセッサ11のバス要求BR2が選択され、レジスタ値「10」が設定された場合は第3のプロセッサ12のバス要求BR3が選択され、また、レジスタ値「11」が設定された場合は第4のプロセッサ14のバス要求BR4が選択されるものとする。このような場合に、図2に示されるように、LSI1外部から、優先順位設定レジスタ9の各セレクタ5〜8に対応するフィールドに対して「11」、「01」、「00」、「10」が設定されたとすると、第1のセレクタ5では第4のプロセッサ13からのバス要求B4が、第2のセレクタ6では第2のプロセッサ11からのバス要求BR2が、第3のセレクタ7では第1のプロセッサ10からのバス要求BR1が、第4のセレクタ8では第3のプロセッサ12からのバス要求BR3が選択されることとなる。
【0019】
これにより、優先順位設定レジスタ9に設定された値に基づいて、各セレクタ5〜8から出力されるバス要求BRをプライオリティエンコーダ3の所定の入力位置に入力できるので、各プロセッサ間でのバス15の使用権の優先順位を任意に変更できるようになる。
【0020】
次に、本発明の実施の形態1によるバス調停装置1の動作について説明する。各プロセッサ10〜13から出されたバス要求(BR1、BR2、BR3、BR4)は、各セレクタ5〜8を介して、プライオリティエンコーダ3の入力位置IN1〜IN4に入力される。例えば、優先順位設定レジスタ9に、図2に示されるレジスタ値が設定されているとすると、第1のセレクタ5ではバス要求BR4が、第2のセレクタ6ではバス要求BR2が、第3のセレクタ7ではバス要求BR1が、第4のセレクタ8ではバス要求BR3が選択され、プライオリティエンコーダ3の各セレクタに対応する入力位置IN1〜IN4に入力される。
【0021】
そして、プライオリティエンコーダ3では、該プライオリティエンコーダ3に入力されるバス要求が競合した場合に、予め設定されている各入力位置INに対応する優先順位に従って、最も優先順位の高いものにバスの使用権BGが与えられる。例えば、プライオリティエンコーダ3において、プライオリティエンコーダ3の入力位置IN3、入力位置IN2、入力位置IN1、入力位置IN4の順で、入力される信号に高い優先順位を与えていたとすると、仮に、第1のプロセッサ10のバス要求BR1と、第2のプロセッサ11からのバス要求BR2が競合した場合には、第3のセレクタ7を介して入力位置IN3にバス要求BR1が入力される第1のプロセッサ10にバスの使用権BG1を与えた後、第2のセレクタ6を介して入力位置IN2にバス要求BR2が入力される第2のプロセッサ11にバスの使用権BG2を与えることとなる。
【0022】
次に、各プロセッサの処理量が変化して、プライオリティエンコーダ3で予め設定されている優先順位の低いプロセッサの負荷が、優先順位の高いプロセッサの負荷よりも大きくなった場合について説明する。なお、プライオリティエンコーダ3において、予め設定されている優先順位は、前述したものと同様に、プライオリティエンコーダ3の入力位置IN3、入力位置IN2、入力位置IN1、入力位置IN4に入力される信号の順で、高い優先順位が与えられているものとする。
【0023】
例えば、プロセッサの処理量が変化して、第1のプロセッサ10からのバス要求BR1と、当該第1のプロセッサ10の負荷よりも大きい負荷を有する第2のプロセッサ11からのバス要求BR2とが競合した場合には、本発明にかかるバス調停装置は、外部入力に基づいて、図2に示す優先順位設定レジスタ9のレジスタ値を変更して、プライオリティエンコーダ3に対する、第1のプロセッサ10と第2のプロセッサ11のバス要求の入力位置を変更し、第2のプロセッサ11のバスの使用権の優先順位が第1のプロセッサ10のバスの使用権の優先順位より高くなるように制御を行なう。
【0024】
具体的には、優先順位設定レジスタ9の第3のセレクタ7に対応するフィールドに設定されているレジスタ値「00」を「01」に変更し、優先順位設定レジスタ9の第2のセレクタ6に対応するフィールドに設定されているレジスタ値「01」を「00」に変更する。
【0025】
これにより、プライオリティエンコーダ3の入力位置IN3に入力するバス要求をBR1からBR2に、また入力位置IN2に入力するバス要求をBR2からBR1に変更することができるため、プロセッサの処理量が増加した第2のプロセッサ11の処理を第1のプロセッサ10の処理よりも優先的に行うことができることとなる。
【0026】
以上のように本実施の形態1によれば、優先順位設定レジスタ9のレジスタ値を変更して各セレクタ5〜8から出力するバス要求BRのプライオリティエンコーダ3に対する入力位置INを変更することにより、プライオリティエンコーダ3によりバスの使用権BGが与えられるバス要求BRを任意に変更することができ、時々刻々と変化する各プロセッサ10〜13における処理内容の負荷に応じて、プライオリティエンコーダ3で決定されたバス15の使用権が与えられるバス要求BRの優先順位を変更することができ、LSI1全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【0027】
なお、本実施の形態1においては、LSI1の動作開始時に、優先順位設定レジスタ9にレジスタ値が予め設定されている場合を例に挙げて説明したが、その動作開始時に、LSI1を制御する図示していない制御回路において各プロセッサ10〜13における処理量の大きさを判断し、それに基づいてプライオリティエンコーダ3の優先順位の高い入力位置INに処理の大きいプロセッサからのバス要求BRを入力するようにしてもよく、動作開始時において各セレクタ5〜8で選択されるバス要求BRは、任意に設定可能である。
【0028】
また、本実施の形態1においては、優先順位設定レジスタ9に、第1のプロセッサ〜第4のプロセッサを示すレジスタ値「11」、「01」、「00」、「10」を設定するようにしたが、優先順位設定レジスタ9の各セレクタに対応する複数のフィールドに同一のプロセッサを示すレジスタ値を設定してもよく、このようにすれば、複数設定されたプロセッサのバス15の使用を許可する機会を増やすことができ、一方、優先順位設定レジスタ9の各セレクタに対応するすべてのフィールドに、任意のプロセッサを示すレジスタ値を設定しないことで、該当するプロセッサのバス15の使用を禁止することができる。
【0029】
また、このマルチプロセッサシステムのバス調停装置2がLSI1に実装され、LSI1の外部から当該LSI1で処理するタスクが複数個与えられる場合には、各プロセッサ10〜13で処理するタスクの性質によって、各プロセッサ10〜13の優先順位を優先順位設定レジスタ9により任意に変更することにより、各タスク毎に所望の時間内に処理を完了させることが可能となる。そして、このようなLSI1を1個以上で構成するシステムにおいては、各LSIに設けられた優先順位設定レジスタ9をLSI1外部から設定可能とすることで、各LSIのタスクの処理速度を管理することが容易となる効果が得られる。
【0030】
(実施の形態2)
以下に、本発明の実施の形態2によるバス調停装置について図3を用いて説明する。なお、本発明の実施の形態2によるバス調停装置16は、バスの調停方法としてラウンドロビン方式をとるものである。
【0031】
図3は、本発明の実施の形態2によるバス調停装置の一例を示すブロック図であり、本実施の形態2のバス調停装置16は、前記実施の形態1によるバス調停装置2の各セレクタ5〜8とプライオリティエンコーダ3との間にシフタ17を設けたものである。そのため、前記実施の形態1によるバス調停装置2と同じ構成要素については同一の符号を付し、ここでは説明を省略する。
【0032】
シフタ17は、各セレクタ5〜8に対応する複数の入力位置IN1〜4を有し、該各セレクタ5〜8から出力されたバス要求BRを所定の時間間隔毎に順次シフトしてプライオリティエンコーダ3に出力する。
【0033】
図4は、本発明の実施の形態2によるバス調停装置のシフタの説明をするための説明図であり、図4(a)は右に1ビットシフトした例を、図4(b)は右に2ビットシフトした例を、図4(c)は右に3ビットシフトした例を、図4(d)はシフトしない例を、それぞれ示している。そして、シフタ17は、図4(a)〜図4(d)に示すように、各セレクタ5〜8より出力されたバス要求BRを所定の時間間隔で順次シフトし、プライオリティエンコーダ3により与えられるバスの使用権BGを各プロセッサ10〜13に均等に割り当てるラウンドロビン方式のバス調停装置16を実現する。
【0034】
そして、このようなラウンドロビン方式のバス調停装置16において、シフタ17に入力される各バス要求BRは、前述した実施の形態1と同様、優先順位設定セレクタ9により制御された各セレクタ5〜8から出力されたものである。
【0035】
そのため、例えば、プライオリティエンコーダ3において、該プライオリティエンコーダ3の入力位置IN1に入力されたバス要求に優先的にバスの使用権が与えられるよう設定されている場合には、各プロセッサ10〜13の負荷の大きさに基づいて、優先順位設定レジスタのレジスタ値を変更し、セレクタ5〜8からシフタ17を介してプライオリティエンコーダの入力位置IN1に入力されるバス要求の順番を変更することにより、負荷の大きいプロセッサ10〜13順に、バスの使用権を与えることが可能となる。
【0036】
例えば、すべてのプロセッサからバス要求が出力され、第3のプロセッサ12、第1のプロセッサ10、第2のプロセッサ11、第4のプロセッサ13の順で、左からその負荷が大きいものであったとすると、優先順位設定レジスタのレジスタ値を、図2に示したように11、01、00、10として、第1のセレクタ5からバス要求BR4が、第2のセレクタ6からバス要求BR2が、第3のセレクタ7からバス要求BR1が、第4のセレクタ8からバス要求BR3がそれぞれ出力されるようにする。そして、このように各セレクタ5〜8より出力されたバス要求BR1〜BR4は、シフタ17において、図4に示すように、図4(a)から、図4(b)、(c)、(d)、(a)・・・・の順に所定の時間間隔で、シフトされるため、結果として、プライオリティエンコーダ3の優先的にバスの使用権が与えられる入力位置IN1には、バス要求BR3、バス要求BR1、バス要求BR2、バス要求BR4の順でバス要求が入力され、負荷の大きいプロセッサの処理を優先的に行なうことが可能となる。なお、シフタ17をシフトする所定の時間間隔は、最も重い負荷がかかるプロセッサが変わるタイミングでシフタ17がシフトを行なうように設定すれば、より好適なものとなる。
【0037】
また、同様に、各プロセッサ10〜13の負荷が途中で変化して、各プロセッサ10〜13の負荷の大きさの順序が変更した場合であっても、優先順位設定レジスタ9のレジスタ値を変更することにより、バスの使用権BGが与えられるバス要求BRの順番を任意に変更することができる。
【0038】
以上のように本実施の形態2によれば、優先順位設定レジスタ9のレジスタ値を変更して、プライオリティエンコーダ3の所定の入力位置に、シフタ17により順次シフトされて入力されるバス要求BRの順序を変更することにより、プライオリティエンコーダ3においてバスの使用権BGが与えられる順番を任意に変更することができ、予め想定した、プロセッサ10〜13の負荷が変動する順序・時間間隔に合わせて、バスの使用権BGを与える順序を変更できるとともに、負荷の変化を観測しながら、必要に応じてバスの使用権BGを優先的に与える順序を変更できるため、LSI1全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【0039】
なお、本実施の形態1、及び2によるバス調停装置は、プロセッサ数を4として説明したが、プロセッサ数については特に限定はなく、プロセッサ数が幾つであっても本発明を適用することができる。
【0040】
また、本実施の形態1、及び2によるバス調停装置は、プロセッサをバスマスタとして用いるものについて説明したが、自らバスにアクセスする機能を持つ機能ブロックであれば、本発明のプロセッサと同様のものとして適用することができる。
【0041】
【発明の効果】
このように、本発明のバス調停装置によれば、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法として固定優先順位方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記複数のバスマスタからの各バス要求を、前記プライオリティエンコーダのどの入力位置に入力するかを、前記複数のセレクタにおいて変更するようにしたので、前記プライオリティエンコーダで決定された優先順位を任意に変更でき、各バスマスタ(プロセッサ)に割り当てられた負荷が不均等で、かつ、時々刻々とバスマスタ毎の負荷が変動する場合であっても、各バスマスタの負荷の変動に応じてバスの使用権の優先度を変更することができ、LSI全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【0042】
また、本発明のバス調停装置によれば、バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法としてラウンドロビン方式を採るバス調停装置において、前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記複数のセレクタから入力されたバス要求を順次シフトして出力するシフタと、前記シフタから出力されるバス要求にそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタとを備え、前記優先順位設定レジスタへの外部入力により、前記プライオリティエンコーダで前記複数のバスマスタからの各バス要求に対して与えられるバスの使用権の順序を、前記複数のセレクタにおいて変更するようにしたので、予め想定した、プロセッサの負荷が変動する順序・時間間隔に合わせて、バスの使用権BGを与える順序を変更できるとともに、負荷の変化を観測しながら、必要に応じてバスの使用権BGを優先的に与える順序を変更でき、LSI全体のスループットを落すことなく、与えられたタスクの処理を効率良く行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1によるバス調停装置の一例を示すブロック図である。
【図2】本発明の実施の形態1によるバス調停装置の優先順位設定レジスタの一例を示す図である。
【図3】本発明の実施の形態2によるバス調停装置の一例を示すブロック図である。
【図4】本発明の実施の形態2によるバス調停装置のシフタの説明をするための図であり、プライオリティエンコーダに入力するプロセッサからのバス要求の入力位置を右に1ビットシフトした例(図(a))、右に2ビットシフトした例(図(b))、右に3ビットシフトした例(図(c))シフトしない例(図(d))を示す図である。
【図5】従来のバス調停装置の一例を示すブロック図である。
【符号の説明】
1 LSI
2,16,101 バス調停装置
3,103 プライオリティエンコーダ
4,104 デコーダ
5 第1のセレクタ
6 第2のセレクタ
7 第3のセレクタ
8 第4のセレクタ
9 優先順位設定レジスタ
10,110 第1のプロセッサ
11、111 第2のプロセッサ
12、112 第3のプロセッサ
13、113 第4のプロセッサ
14、114 メモリ
15、115 バス
17 シフタ
102 マスク
105 FF
Claims (2)
- バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法として固定優先順位方式を採るバス調停装置において、
前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、
前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、
外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタと、を備え、
前記優先順位設定レジスタへの外部入力により、前記複数のバスマスタからの各バス要求を、前記プライオリティエンコーダのどの入力位置に入力するかを、前記複数のセレクタにおいて変更するようにした、
ことを特徴とするバス調停装置。 - バスと、前記バスに接続する複数のバスマスタとを備えるLSIに実装された、調停方法としてラウンドロビン方式を採るバス調停装置において、
前記複数のバスマスタから出力されたバス要求を入力とし、入力されたバス要求のうちの1つを選択して出力する,前記複数のバスマスタと同数のセレクタと、
前記複数のセレクタにそれぞれ対応する複数の入力位置を有し、前記複数のセレクタから入力されたバス要求を順次シフトして出力するシフタと、
前記シフタから出力されるバス要求にそれぞれ対応する複数の入力位置を有し、前記各入力位置のうち最も優先順位の高い入力位置に入力されたバス要求に対してバスの使用権を与えるプライオリティエンコーダと、
外部入力に基づいて前記複数のセレクタを制御する優先順位設定レジスタと、を備え、
前記優先順位設定レジスタへの外部入力により、前記プライオリティエンコーダで前記複数のバスマスタからの各バス要求に対して与えられるバスの使用権の順序を、前記複数のセレクタにおいて変更するようにした、
ことを特徴とするバス調停装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002197504A JP2004038767A (ja) | 2002-07-05 | 2002-07-05 | バス調停装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002197504A JP2004038767A (ja) | 2002-07-05 | 2002-07-05 | バス調停装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004038767A true JP2004038767A (ja) | 2004-02-05 |
Family
ID=31705261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002197504A Pending JP2004038767A (ja) | 2002-07-05 | 2002-07-05 | バス調停装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004038767A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345128C (zh) * | 2004-02-25 | 2007-10-24 | 中国科学院计算技术研究所 | 基于动态优先级的总线仲裁器和动态改变优先级的方法 |
WO2007141849A1 (ja) * | 2006-06-07 | 2007-12-13 | Hitachi, Ltd. | 半導体集積回路 |
JP2014021774A (ja) * | 2012-07-19 | 2014-02-03 | Fujitsu Ltd | 演算処理装置及び演算処理方法 |
CN118631759A (zh) * | 2024-08-15 | 2024-09-10 | 北京超摩科技有限公司 | 一种数据管理方法、装置、存储介质及电子设备 |
-
2002
- 2002-07-05 JP JP2002197504A patent/JP2004038767A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100345128C (zh) * | 2004-02-25 | 2007-10-24 | 中国科学院计算技术研究所 | 基于动态优先级的总线仲裁器和动态改变优先级的方法 |
WO2007141849A1 (ja) * | 2006-06-07 | 2007-12-13 | Hitachi, Ltd. | 半導体集積回路 |
KR100985966B1 (ko) * | 2006-06-07 | 2010-10-06 | 가부시키가이샤 히타치세이사쿠쇼 | 반도체 집적 회로 |
JP2014021774A (ja) * | 2012-07-19 | 2014-02-03 | Fujitsu Ltd | 演算処理装置及び演算処理方法 |
CN118631759A (zh) * | 2024-08-15 | 2024-09-10 | 北京超摩科技有限公司 | 一种数据管理方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1403773B1 (en) | Resource management device | |
KR100899951B1 (ko) | 캐시 메모리 버스트 싸이클 동안 버스 중재를 제어하는시스템 및 방법 | |
US6389449B1 (en) | Interstream control and communications for multi-streaming digital processors | |
JP4485599B2 (ja) | アクセス制御装置、アクセス制御集積回路、及びアクセス制御方法 | |
JP4625836B2 (ja) | アクセス調停装置 | |
JP4999925B2 (ja) | 調停を実行する方法及び装置 | |
US8706940B2 (en) | High fairness variable priority arbitration method | |
JP2010165175A (ja) | バスの使用権を制御する装置および方法 | |
JP2004038967A (ja) | バスの使用頻度を制御できる方法及び装置 | |
JP2004246862A (ja) | リソース管理装置 | |
US7930456B1 (en) | Data packet arbitration system | |
JP2004038767A (ja) | バス調停装置 | |
JPWO2005124566A1 (ja) | バス調停装置及びバス調停方法 | |
US7130947B2 (en) | Method of arbitration which allows requestors from multiple frequency domains | |
JP2005173859A (ja) | メモリアクセス制御回路 | |
JP2007164713A (ja) | リソース管理装置及びリソース管理方法 | |
JP2006195598A (ja) | リアルタイム処理システム | |
JP2002055944A (ja) | アービトレーション装置および方法 | |
JP4170506B2 (ja) | 調停回路および方法 | |
KR100583455B1 (ko) | 프로그램 가능한 간단한 하드웨어 구조를 갖는 버스 중재기 | |
JPH0353338A (ja) | 可変優先順位調停回路 | |
JPH01226062A (ja) | バス・リクエスト制御方式 | |
JP2000076183A (ja) | バス調停回路 | |
JP2002175270A (ja) | バスの排他制御方式 | |
JPS58217071A (ja) | 情報処理システム |