IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ルネサスエレクトロニクス株式会社の特許一覧

特開2024-59024半導体装置、バス制御回路およびバス制御方法
<>
  • 特開-半導体装置、バス制御回路およびバス制御方法 図1
  • 特開-半導体装置、バス制御回路およびバス制御方法 図2
  • 特開-半導体装置、バス制御回路およびバス制御方法 図3
  • 特開-半導体装置、バス制御回路およびバス制御方法 図4
  • 特開-半導体装置、バス制御回路およびバス制御方法 図5
  • 特開-半導体装置、バス制御回路およびバス制御方法 図6
  • 特開-半導体装置、バス制御回路およびバス制御方法 図7
  • 特開-半導体装置、バス制御回路およびバス制御方法 図8
  • 特開-半導体装置、バス制御回路およびバス制御方法 図9
  • 特開-半導体装置、バス制御回路およびバス制御方法 図10
  • 特開-半導体装置、バス制御回路およびバス制御方法 図11
  • 特開-半導体装置、バス制御回路およびバス制御方法 図12
  • 特開-半導体装置、バス制御回路およびバス制御方法 図13
  • 特開-半導体装置、バス制御回路およびバス制御方法 図14
  • 特開-半導体装置、バス制御回路およびバス制御方法 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024059024
(43)【公開日】2024-04-30
(54)【発明の名称】半導体装置、バス制御回路およびバス制御方法
(51)【国際特許分類】
   G06F 13/362 20060101AFI20240422BHJP
【FI】
G06F13/362 510E
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022166499
(22)【出願日】2022-10-17
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】城 圭祐
(57)【要約】
【課題】緊急性の高い処理の応答性を向上させることが可能な技術を提供することにある。
【解決手段】半導体装置は複数のマスタから共有されるスレーブに対するアクセスを制御するバス制御回路を備える。前記バス制御回路は、前記複数のマスタに対応する複数の優先度判定回路を備える。前記優先度判定回路は、対応するマスタから緊急性の高いアクセスを受ける場合、前記対応するマスタからのアクセス要求に含まれる優先レベル信号を変更して緊急時用の高い優先レベルを割り当てると共に、前記対応するマスタ以外のマスタに対して低い優先レベルを割り当てるよう構成される。
【選択図】図1
【特許請求の範囲】
【請求項1】
複数のマスタと、
スレーブと、
前記複数のマスタから共有される前記スレーブに対するアクセスを制御するバス制御回路と、
を備え、
前記バス制御回路は、前記複数のマスタに対応する複数の優先度判定回路を備え、
前記優先度判定回路は、対応するマスタから緊急性の高いアクセスを受ける場合、
前記対応するマスタからのアクセス要求に含まれる優先レベル信号を変更して緊急時用の高い優先レベルを割り当てると共に、
前記対応するマスタ以外のマスタに対して低い優先レベルを割り当てるよう構成される、半導体装置。
【請求項2】
請求項1の半導体装置において、
前記緊急性の高いアクセスは、開始アドレスと終了アドレスで指定されるアドレス領域へのアクセスによって定義される、半導体装置。
【請求項3】
請求項2の半導体装置において、
前記優先度判定回路は、複数のマスタの内の一つのマスタのアクセスが入力される場合、前記アクセス要求に含まれる、どのマスタからのアクセスであるかを識別するための識別信号を受け付け、複数のマスタの内の特定のマスタのアクセスを識別するように構成される、半導体装置。
【請求項4】
請求項1の半導体装置において、
前記緊急性の高いアクセスは、特定のアドレスへのアクセスを検知し、その時点から指定した時間によって定義される、半導体装置。
【請求項5】
請求項1の半導体装置において、
前記緊急性の高いアクセスは、アクセス要求に含まれる特殊なマスタからの要求であることを示す信号によって定義される、半導体装置。
【請求項6】
請求項5の半導体装置において、
前記特殊なマスタとは、レジスタ設定により特殊な権限を持つモードへ移行したするマスタまたは固有の属性を持つマスタである、半導体装置。
【請求項7】
請求項1の半導体装置において、
前記バス制御回路は、さらに、
前記複数のマスタに対応する複数の帯域調整回路と、
前記スレーブに対応するバス調停回路と、
を備え、
前記帯域調整回路は、前記複数の優先度判定回路から入力される優先レベル信号に基づいて、対応するマスタからのアクセスに割り当てるバス帯域を制御するよう構成され、
前記バス調停回路は、前記複数の優先度判定回路から入力される優先レベル信号に基づいて、それぞれのアクセスの優先順位を調停するよう構成される、半導体装置。
【請求項8】
請求項7の半導体装置において、
前記帯域調整回路は、
リクエストを受けるマスタ(自マスタ)に対応する優先度判定回路からの第一の優先レベル信号および前記自マスタ以外のマスタ(他マスタ)に対応する優先度判定回路からの第二の優先レベル信号を受け付け、
前記第一の優先レベル信号が示す優先レベル(自マスタの優先レベル)と前記第二の優先レベル信号が示す優先レベル(他マスタの優先レベル)を比較していずれかの優先レベルを選択し、選択した優先レベルに基づいて帯域制御を行うよう構成される、半導体装置。
【請求項9】
請求項8の半導体装置において、
前記帯域調整回路は、
前記自マスタから前記緊急性の高いアクセスを受けていない場合、
前記他マスタの優先レベルが1以上のとき、
前記自マスタの優先レベルと前記他マスタの優先レベルを比較して最も低い優先レベルを選択し、
前記他マスタの優先レベルが0のとき、
前記自マスタの優先レベルを選択し、
前記自マスタから前記緊急性の高いアクセスを受けている場合、
前記自マスタの優先レベルを選択するよう構成される、半導体装置。
【請求項10】
複数のマスタから共有されるスレーブに対するアクセスを制御するバス制御回路であって、
前記バス制御回路は、前記複数のマスタに対応する複数の優先度判定回路を備え、
前記優先度判定回路は、対応するマスタから緊急性の高いアクセスを受ける場合、
前記対応するマスタからのアクセス要求に含まれる優先レベル信号を変更して緊急時用の高い優先レベルを割り当てると共に、
前記対応するマスタ以外のマスタに対して低い優先レベルを割り当てるよう構成される、バス制御回路。
【請求項11】
複数のマスタから共有されるスレーブに対するアクセスを制御するバス制御方法であって、
対応するマスタから緊急性の高いアクセスを受ける場合、
前記対応するマスタからのアクセス要求に含まれる優先レベル信号を変更して緊急時用の高い優先レベルを割り当てると共に、
前記対応するマスタ以外のマスタに対して低い優先レベルを割り当てるよう構成される、バス制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は半導体装置に関し、例えば複数のバスマスタを備える半導体装置に適用可能である。
【背景技術】
【0002】
マイクロコントローラユニット(Micro Controller Unit:MCU)等の半導体装置では、複数のバスマスタが共通バスに接続するバスシステムが用いられている。バスマスタは例えば中央処理装置(Central Processing Unit:CPU)およびダイレクト・メモリ・アクセス制御装置(Direct Memory Access Controller:DMAC)等である。このようなバスシステムでは、複数のバスマスタからの共通バスへのリクエストに対して調停を行うことが必要である。優先度に関するQoS(Quality of Service)情報に基づいて調停を行う技術の例が特許文献1に開示されている。以下、バスマスタを単にマスタという。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】ARM(登録商標) CoreLink QoS-400 Network Interconnect Advanced Quality of Service
【発明の概要】
【発明が解決しようとする課題】
【0004】
マスタ数の増加等の要因により、緊急性の高い処理(例えばエラー処理など)においても帯域制限されたり、優先度を下げられたりする場合があり得る。そのため、緊急性の高い処理が所定の時間内に完了しない可能性がある。
【0005】
本開示のその他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0006】
本開示のうち代表的なものの概要を簡単に説明すれば次の通りである。すなわち、半導体装置は複数のマスタから共有されるスレーブに対するアクセスを制御するバス制御回路を備える。前記バス制御回路は、前記複数のマスタに対応する複数の優先度判定回路を備える。前記優先度判定回路は、対応するマスタから緊急性の高いアクセスを受ける場合、前記対応するマスタからのアクセス要求に含まれる優先レベル信号を変更して緊急時用の高い優先レベルを割り当てると共に、前記対応するマスタ以外のマスタに対して低い優先レベルを割り当てるよう構成される。
【発明の効果】
【0007】
上記半導体装置によれば、緊急性の高い処理の応答性を高めることが可能である。
【図面の簡単な説明】
【0008】
図1図1は実施形態における半導体装置の構成を示す概略ブロック図である。
図2図2は多段接続されるバス制御回路を示すブロックである。
図3図3図1に示す優先度判定回路およびその周辺の第一の構成例を示すブロック図である。
図4図4図1に示す優先度制御レジスタの第一の構成例を示す図である。
図5図5図1に示す帯域調整回路およびその周辺の構成を示すブロック図である。
図6図6図1に示す帯域制御レジスタの構成例を示す図である。
図7図7は高優先レベル領域において帯域制御がない場合の動作例を示すタイミングチャートである。
図8図8は高優先レベル領域において自マスタの帯域制御がある場合の動作例を示すタイミングチャートである。
図9図9は高優先レベル領域において他マスタの帯域制御がある場合の動作例を示すタイミングチャートである。
図10図10図1に示すバス調停回路の構成を示すブロック図である。
図11図11は実施形態および比較例におけるバス構成を示す図である。
図12図12はマスタのメモリマップを示す図である。
図13図13は実施形態および比較例におけるエラー処理の時間を示す図である。
図14図14図1に示す優先度判定回路およびその周辺の構成の変形例を示すブロック図である。
図15図15図1に示す優先度制御レジスタの構成の変形例を示す図である。
【発明を実施するための形態】
【0009】
以下、実施形態および変形例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。
【0010】
実施形態における半導体装置について図1を用いて説明する。図1は実施形態における半導体装置の構成を示す概略ブロック図である。
【0011】
実施形態における半導体装置10は、複数個のマスタ(MST)100a,100b,100cと、バス制御回路(BCNT)200と、スレーブ(SLV)300a,300bと、バス400a,400b,400cと、バス500a,500bと、を備える。
【0012】
ここで、マスタ100a,100b,100cはマスタ100と総称される場合があり、スレーブ300a,300bはスレーブ300と総称される場合がある。バス400a,400b,400cはバス400と総称される場合があり、バス500a,500bはバス500と総称される場合がある。なお、図1に示す例では、マスタ100の数を三つとしているが、マスタ100の数は、二つ以上であればいくつでもよい。また、スレーブ300の数を二つとしているが、スレーブ300の数は一つ以上であればいくつでもよい。
【0013】
マスタ100は、例えば、CPU、DMAC、グラフィック処理装置(Graphics Processing Unit:GPU)等である。スレーブ300は、例えば、フラッシュメモリ、SRAM、メモリコントローラ、周辺回路等である。半導体装置10は、例えば、MCUである。半導体装置10は、一つまたは複数の半導体基板の上に形成される。半導体基板は例えばシリコン基板である。半導体装置10がメモリコントローラを含む場合は、例えば、半導体装置10の外部にDDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等のメモリが接続されて電子装置が構成される。
【0014】
複数のマスタ100a,100b,100cは、それぞれバス400a,400b,400cを介してバス制御回路200に接続されている。複数のマスタ100a,100b,100cは、スレーブ300a,300bに対するリクエスト(アクセス要求)を、それぞれバス400a,400b,400cを介してバス制御回路200へ出力する。
【0015】
バス制御回路200はインターコネクトとも呼ばれ、複数のマスタ100a,100b,100cから共有されるスレーブ300a,300bに対するアクセスを制御する。
【0016】
スレーブ300a,300bへのレスポンス(アクセス結果:読み出しデータ、サイドバンド信号など)は、バス500a,500b、バス制御回路200およびバス400a,400b,400cを経由して、マスタ100a,100b,100cに送信される。
【0017】
バス制御回路200は、優先度判定回路(QLJ)210a,210b,210c、帯域調整回路(BR)220a,220b,220c、バス調停回路(ARB)230a,230b、優先度制御レジスタ(QL_R)240a,240b,240cおよび帯域制御レジスタ(BR_R)250a,250b,250cを備える。
【0018】
優先度判定回路210a,210b,210cはそれぞれバス400a,400b,400cに接続される。優先度判定回路210a,210b,210cはそれぞれ優先度制御レジスタ240a,240b,240cによりその動作が制御される。優先度判定回路210a,210b,210cの各構成はそれぞれ同様の構成となっているので、優先度判定回路210a,210b,210cは優先度判定回路210と総称される場合がある。
【0019】
帯域調整回路220a,220b,220cは優先度判定回路210a,210b,210cに接続される。帯域調整回路220a,220b,220cはそれぞれ帯域制御レジスタ250a,250b,250cによりその動作が制御される。帯域調整回路220a,220b,220cの各構成はそれぞれ同様の構成となっているので、帯域調整回路220a,220b,220cは帯域調整回路220と総称される場合がある。
【0020】
バス調停回路230a,230bは優先度判定回路210a,210b,210cに接続される。バス調停回路230a,230bはそれぞれバス500a,500bに接続される。バス調停回路230a,230bの各構成はそれぞれ同様の構成となっているので、バス調停回路230a,230bはバス調停回路230と総称される場合がある。
【0021】
優先度制御レジスタ240a,240b,240cの各構成はそれぞれ同様の構成となっているので、優先度制御レジスタ240a,240b,240cは優先度制御レジスタ240と総称される場合がある。優先度制御レジスタ240はマスタ100によって設定される。
【0022】
帯域制御レジスタ250a,250b,250cの各構成はそれぞれ同様の構成となっているので、帯域制御レジスタ250a,250b,250cは帯域制御レジスタ250と総称される場合がある。帯域制御レジスタ250はマスタ100によって設定される。
【0023】
優先度判定回路210は、バス400からアクセス要求を受け取る。アクセス要求には、アドレス信号(AD)および優先レベル信号(PL)が含まれる。優先レベル信号(PL)とは、マスタ100のQoS情報等に基づく優先レベルを示す信号である。優先レベル値が大きいほど優先度が高く、優先レベル値=0は優先制御の対象外である。
【0024】
優先度判定回路210aは、マスタ100aから緊急性の高いアクセス要求を受ける場合に、バス400aに接続されるマスタ100aからの優先レベル信号(PLa)を変更する。優先度判定回路210aは、自マスタとしてのマスタ100aに対して緊急時用の高い優先レベルを割り当てるために、変更した優先レベル信号(PLWa)を帯域調整回路220aおよびバス調停回路230aに出力する。この場合において、優先度判定回路210aは、他マスタとしてのマスタ100b,100cに対してマスタ100aよりも低い優先レベルを割り当てるために優先レベル信号(PLTa)を帯域調整回路220b,220cに出力する。
【0025】
優先度判定回路210bは、マスタ100bから緊急性の高いアクセス要求を受けた場合に、バス400bに接続されたマスタ100bからの優先レベル信号(PLb)を変更する。優先度判定回路210bは、自マスタとしてのマスタ100bに対して緊急時用の高い優先レベルを割り当てるために、変更した優先レベル信号(PLWb)を帯域調整回路220bおよびバス調停回路230bに出力する。この場合において、先度判定回路210b、他マスタとしてのマスタ100a,100cに対してマスタ100bよりも低い優先レベルを割り当てるために優先レベル信号(PLTb)を帯域調整回路220a,220cに出力する。
【0026】
優先度判定回路210cは、マスタ100cから緊急性の高いアクセス要求を受けた場合に、バス400cに接続されたマスタ100cからの優先レベル信号(PLc)を変更する。優先度判定回路210cは、自マスタとしてのマスタ100aに対して緊急時用の高い優先レベルを割り当てるために、変更した優先レベル信号(PLWc)を帯域調整回路220cおよびバス調停回路230cに出力する。この場合において、優先度判定回路210cは、他マスタとしてのマスタ100a,100bに対してマスタ100cよりも低い優先レベルを割り当てるために優先レベル信号(PLTc)を帯域調整回路220a,220bに出力する。
【0027】
帯域調整回路220は、複数の優先度判定回路210から入力される優先レベル信号に基づいて、マスタ100からのアクセス要求に割り当てるバス帯域を制御する。
【0028】
帯域調整回路220aは、優先レベル信号(PLWa)、優先レベル信号(PLTb)および優先レベル信号(PLTc)に基づいて、マスタ100aからのアクセス要求に割り当てるバス帯域を制御する。帯域調整回路220bは、優先レベル信号(PLWb)、優先レベル信号(PLTa)および優先レベル信号(PLTc)に基づいて、マスタ100bからのアクセス要求に割り当てるバス帯域を制御する。帯域調整回路220cは、優先レベル信号(PLWc)、優先レベル信号(PLTa)および優先レベル信号(PLTb)基づいて、マスタ100cからのアクセス要求に割り当てるバス帯域を制御する。
【0029】
複数のマスタ100からスレーブ300へのアクセス要求に付与された優先レベル信号が優先度判定回路210により変更され、バス調停回路230は、その変更された優先レベル信号に基づいて、それぞれのアクセス要求の優先順位を調停する。
【0030】
バス調停回路230aは、マスタ100a,100b,100cからスレーブ300aへのアクセス要求に対して、優先レベル信号(PLWa)、優先レベル信号(PLWb)および優先レベル信号(PLWc)に基づいて、それぞれのアクセス要求の優先順位を調停する。バス調停回路230bは、マスタ100a,100b,100cからスレーブ300bへのアクセス要求に対して、優先レベル信号(PLWa)、優先レベル信号(PLWb)および優先レベル信号(PLWc)に基づいて、それぞれのアクセス要求の優先順位を調停する。
【0031】
優先度制御レジスタ240は、優先度判定回路210に対する制御情報を格納する。帯域制御レジスタ250は、帯域調整回路220に対する制御情報を格納する。
【0032】
なお、バス構成によっては、サイドバンド信号(SB)が必要な場合がある。このバス構成について図2を用いて説明する。図2は多段接続されるバス制御回路を示すブロックである。
【0033】
マスタ100a,100b,100cは、それぞれバス400a,400b,400cを介してバス制御回路200aに接続されている。バス制御回路200a、マスタ100d,100eは、それぞれバス500a,400d,400eを介してバス制御回路200bに接続されている。マスタ100a,100b,100cは、スレーブ300に対するアクセス要求を、バス400a,400b,400c、バス制御回路200a、バス500aを介してバス制御回路200bへ出力する。
【0034】
このようなバス構成においては、バス500aを介してアクセスする複数のマスタ100a,100b,100cの内の特定のマスタを識別する必要がある場合がある。そのため、複数のマスタの中から特定のマスタを識別するためのマスタの識別情報(BMID)をサイドバンド信号(SB)に含める。言い換えると、多段に接続されたバス制御回路において、複数のマスタからのアクセス要求が入力されるとき、複数のマスタの中から特定のマスタを識別するのにサイドバンド信号(SB)の識別情報(BMID)が使用される。図2に示す例では、マスタ100a~100eには、BMIDとして、それぞれ0~4が割り当てられている。ここで、サイドバンド信号(SB)はリクエストに付随して送信される信号である。
【0035】
図1に戻って説明する。バス制御回路200は、優先度判定回路210および帯域調整回路220により帯域制御を行ったり、優先度判定回路210およびバス調停回路230により優先制御を行ったり、帯域制御および優先制御の両方を行ったりすることが可能である。帯域制御は帯域を占有するマスタが存在するバスシステムに向く制御方式である。優先制御は多数のマスタからのアクセス要求が特定のスレーブに集中するバスシステムに向く制御方式である。
【0036】
優先度判定回路210は、マスタ100からスレーブ300へのアクセス要求のアドレス信号(AD)、サイドバンド信号(SB)に含まれる識別情報(BMID)等に基づいて優先レベル値を決定する。優先度判定回路210は、決定した優先レベル値でアクセス要求に含まれる優先レベル信号(PL)の優先レベル値を上書きする。これにより、優先レベルを一時的に上げたり、優先レベルを下げたりする。
【0037】
帯域調整回路220は、優先度判定回路210からの優先レベルに基づいて、そのマスタ100のアクセス中に、自マスタの帯域を広げる帯域制御(緩和)したり、他マスタの帯域を狭める帯域制御(強化)したりする。バス調停回路230は、優先度判定回路210からの優先レベルに基づいて調停する。
【0038】
このようにして、バス制御回路200は、相対的に自マスタの帯域を広げたり優先レベルを上げたりすることで、緊急時の優先レベル(E-QoS)に素早く移行させることが可能である。
【0039】
次に、優先度判定回路210の構成例について図3および図4を用いて説明する。図3図1に示す優先度判定回路およびその周辺の構成例を示すブロック図である。図4図1に示す優先度制御レジスタの構成例を示す図である。
【0040】
本構成例の優先度判定回路210において、緊急性の高いアクセス要求は、開始アドレスと終了アドレスで指定されたアドレス領域へのアクセスによって決定される。また、本構成例の優先度判定回路210は、図2に示すように、複数のマスタのアクセス要求が入力されるインターフェイス(バス500a)がある場合、アクセス要求に含まれる識別情報(BMID)を受け付け、複数のマスタの内の特定のマスタのアクセス要求を識別するように構成される。
【0041】
優先度判定回路210はアドレス信号(AD)とサイドバンド信号(SB)から優先レベルが高い領域(高優先レベル領域(HQLA))を判定し、その高優先レベル領域(HQLA)ごとに優先レベルを設定(更新)する。ここで、優先レベル信号(PL[N:0])は、(N+1)ビットの信号である。Nは1以上の整数である。すなわち、優先レベルは0から(2N+1-1)である。優先レベル信号(PL[N:0])は、図1における優先レベル信号(PLa,PLb,PLc)である。
【0042】
図3に示すように、優先度判定回路210は、(M+1)個の比較回路(ACM)211と、比較回路(SCM)212と、(M+1)個の論理積回路213と、セレクタ(PSLW)215と、論理和回路214と、セレクタ(PSLT)216と、比較回路(QLCM)217と、を備える。ここで、Mは1以上の整数である。
【0043】
図4に示すように、優先度制御レジスタ240は、(M+1)組の開始アドレスレジスタ(SA)241および終了アドレスレジスタ(EA)242と、サイドバンドレジスタ(PS)243と、(M+1)個の自マスタ用の優先レベルレジスタ(QLW)244と、(M+1)個の他マスタ用の優先レベルレジスタ(QLT)245と、を備える。
【0044】
マスタ100がアクセスする領域の内、高優先レベル領域(HQLA)を(M+1)個設定可能であり、それらの高優先レベル領域(HQLA)を領域(A0~AM)とする。例えば、開始アドレスレジスタ(SA(A0))241は領域(A0)用の開始アドレスレジスタであり、領域(A0)の先頭を示すアドレスが格納される。終了アドレスレジスタ(EA(A0))242は領域(A0)用の終了アドレスレジスタであり、領域(A0)の末尾を示すアドレスが格納される。領域(A0)用の開始アドレスレジスタ241および終了アドレスレジスタ242により領域(A0)のアドレス範囲が設定される。同様に、領域(AM)用の開始アドレスレジスタ241および終了アドレスレジスタ242により領域(AM)のアドレス範囲が設定される。
【0045】
サイドバンドレジスタ243は特定のマスタを設定するレジスタであり、識別情報(BMID)が設定される。
【0046】
自マスタ用の優先レベルレジスタ(QLW(A0))244は領域(A0)用の優先レベルレジスタであり、領域(A0)の優先レベルが設定される。自マスタ用の優先レベルレジスタ(QLW(AM))244は領域(AM)用の優先レベルレジスタであり、領域(AM)の優先レベルが設定される。
【0047】
他マスタ用の優先レベルレジスタ(QLT(A0))245は領域(A0)用の優先レベルレジスタであり、領域(A0)の優先レベルが設定される。他マスタ用の優先レベルレジスタ(QLT(AM))245は領域(AM)用の優先レベルレジスタであり、領域(AM)の優先レベルが設定される。
【0048】
(M+1)個の比較回路211はアドレス信号(AD)が高優先レベル領域(HQLA)に含まれるかどうかを判定する。領域(A0)用の比較回路(ACM(A0))211はアドレス信号(AD)が領域(A0)に含まれるかどうかを判定する。領域(AM)用の比較回路(ACM(AM))211はアドレス信号(AD)が領域(AM)に含まれるかどうかを判定する。
【0049】
領域(A0)用の比較回路211はアドレス信号(AD)と領域(A0)用の開始アドレスレジスタ241および終了アドレスレジスタ242に格納されたアドレスとを比較する。アドレス信号(AD)が領域(A0)に含まれる場合は、領域(A0)用の比較回路211は領域選択信号(ASL[0])をハイレベルにする。
【0050】
領域(AM)用の比較回路211はアドレス信号(AD)と領域(AM)用の開始アドレスレジスタ241および終了アドレスレジスタ242に格納されたアドレスとを比較する。アドレス信号(AD)が領域(AM)に含まれる場合は、領域(AM)用の比較回路211は域選択信号(ASL[M])をハイレベルにする。
【0051】
領域選択信号(ASL[0])から領域選択信号(ASL[M])はまとめて領域選択信号(ASL[M:0])と表記する。すなわち、領域選択信号(ASL[M:0])は(M+1)ビットの信号である。
【0052】
比較回路212はマスタ100が特定のマスタかどうかを判定する。比較回路212はサイドバンド信号(SB)に含まれる識別情報(BMID)とサイドバンドレジスタ243に格納された識別情報(BMID)とを比較して、一致する場合は、例えば、一致信号(SBMT)をハイレベルにする。
【0053】
論理積回路213は領域選択信号(ASL[M:0])のそれぞれと一致信号(SBMT)との論理積を行って、(M+1)ビットの領域選択有効信号(ASLV[M:0])を出力する。一致信号(SBMT)がハイレベルの場合、領域選択信号(ASL[M:0])の何れかがハイレベルのとき、領域選択有効信号(ASLV[M:0])の何れかがハイレベルになる。
【0054】
論理和回路214は(M+1)ビットの領域選択有効信号(ASLV[M:0])の論理和を行う。論理和回路214は領域選択有効信号(ASLV[M:0])の何れかがハイレベルである場合、ハイレベルを出力する。特定のマスタが高優先レベル領域(HQLA)をアクセスする場合、緊急信号(EMG)がハイレベルになる。緊急信号(EMG)は、アドレス信号(AD)が高優先レベル領域(HQLA)内にある場合、ハイレベルになり、優先レベル信号(PL[N:0])が緊急時の優先レベル(E-QoS)であることを示す。緊急信号(EMG)がロウレベルの場合、優先レベル信号(PL[N:0])は通常時の優先レベル(N-QoS)であることを示す。
【0055】
セレクタ215は領域選択有効信号(ASLV[M:0])により自マスタ用の優先レベルレジスタ(QLW(AM)~QLW(A0))244に格納されている優先レベルを選択する。領域選択有効信号(ASLV[M:0])がすべてロウレベルの場合、「0」が選択される。
【0056】
セレクタ216は領域選択有効信号(ASLV[M:0])により他マスタ用の優先レベルレジスタ(QLT(AM)~QLT(A0))245に格納されている優先レベルを選択して、他マスタ用の優先レベル信号(PLT[N:0])として出力する。領域選択有効信号(ASLV[M:0])がすべてロウレベルの場合、「0」が選択される。すなわち、アドレス信号(AD)が高優先レベル領域(HQLA)内にない場合、PLT[N:0]は0になる。ここで、優先レベル信号(PLT[N:0])は、図1における優先レベル信号(PLTa,PLTb,PLTc)である。
【0057】
比較回路217は優先レベル信号(PL[N:0])が示す優先レベルとセレクタ215の出力である優先レベルとを比較し、高い方の優先レベルを自マスタ用の優先レベル信号(PLW[N:0])として出力する。ここで、優先レベル信号(PLW[N:0])は、図1における優先レベル信号(PLWa,PLWb,PLWc)である。
【0058】
優先度判定回路210はアクセス要求に含まれるアドレス信号(AD)に基づいてアクセス要求に含まれる優先レベル信号(PL[N:0])を変更して優先レベル信号(PLW[N:0])を出力する。また、優先度判定回路210はアクセス要求に含まれるアドレス信号(AD)に基づいて他マスタの帯域を制御する優先レベル信号(PLT[N:0])を出力する。
【0059】
次に、帯域調整回路220の構成例について図5および図6を用いて説明する。図5は帯域調整回路およびその周辺の構成を示すブロック図である。図6は帯域制御レジスタの構成例を示す図である。
【0060】
帯域調整回路220はアクセス要求を受けるマスタ(自マスタ)に対応する優先度判定回路210からの優先レベル(PLW[N:0])とその他のマスタ(他マスタ)に対応する優先度判定回路210からの優先レベル(PLT[N:0])を受け付ける。そして、帯域調整回路220は、それらの優先レベルを比較していずれかの優先レベルを選択し、その優先レベルに基づいて帯域制御を行う。
【0061】
より具体的には、帯域調整回路220は、自マスタからの緊急信号(EMG)がロウレベルである場合、他マスタからの優先レベル(PLT[N:0])が1以上のとき、入力された自マスタの優先レベル(PLW[N:0])と他マスタの優先レベル(PLT[N:0])を比較して最も低い優先レベルを選択する。他マスタからの優先レベル(PLT[N:0])が0のとき、自マスタの優先レベル(PLW[N:0])を選択する。帯域調整回路220は、選択された優先レベルに基づいて帯域制御を行う。
【0062】
帯域調整回路220は、自マスタからの緊急信号(EMG)がハイレベルである場合、自マスタの優先レベル(PLW[N:0])を選択する。帯域調整回路220は、選択された優先レベル(自マスタの優先レベル(PLW[N:0]))に基づいて帯域制御を行う。
【0063】
帯域調整回路220は、選択された自マスタ用の優先レベル信号(PLW[N:0])または他マスタ用の優先レベル信号(PLT[N:0])に基づいて単位時間当たりのリクエスト転送数をバリッド信号(VLD)およびレディ信号(RDY)をマスクすることで帯域制御する。
【0064】
ここで、半導体装置10におけるバスプロトコルではデータ転送要求をするのは常にマスタ100であるが、実際のデータはマスタ100からスレーブ300へ送られることも、スレーブ300からマスタ100へも送られることもある。このバスプロトコルにおけるデータ転送の基本となるのは、データ信号、バリッド信号(VLD)およびレディ信号(RDY)を用いた以下のようなプロトコルになる。
【0065】
バリッド信号(VLD)は送信側がデータ信号に有効なデータを提示していることを示す。レディ信号(RDY)は受信側がデータ信号のデータを受け取れることを示す。バリッド信号(VLD)およびレディ信号(RDY)が同時にハイレベルになった時点で送受信が成立する。なお、図5においては、データがマスタ100からスレーブ300へ送られる場合について説明する。
【0066】
図5に示すように、帯域調整回路220は、選択回路(MUX)221と、周期カウンタ(PCNT)222と、マスク生成回路(MGNR)223と、論理積回路224と、論理積回路225と、を備える。
【0067】
図6に示すように、帯域制御レジスタ250は、(n+1)個の周期レジスタ(PQL0~PQLn)251を備える。ここで、n=1~(2N+1-1)である。周期レジスタ(PQL0)は通常優先レベル(優先レベル値が0)の周期を格納するレジスタである。周期レジスタ(PQL1)は優先レベル値が1の周期を格納するレジスタである。周期レジスタ(PQLn)は優先レベル値がnの周期を格納するレジスタである。
【0068】
選択回路221は、緊急信号(EMG)、自マスタ用の優先レベル信号(Mx)、第一の他マスタ用の優先レベル信号(My)、第二の他マスタ用の優先レベル信号(Mz)に基づいて(n+1)個の周期レジスタ251の何れかを一つを選択する。ここで、自マスタ用の優先レベル信号(Mx)、第一の他マスタ用の優先レベル信号(My)および第二の他マスタ用の優先レベル信号(Mz)について説明する。
【0069】
帯域調整回路220aにおいて、優先度判定回路210aからの優先レベル信号(PLW[N:0])は自マスタ用の優先レベル信号(Mx)である。優先度判定回路210bからの優先レベル信号(PLT[N:0])は第一の他マスタ用の優先レベル信号(My)ある。優先度判定回路210cからの優先レベル信号(PLT[N:0])は第二の他マスタ用の優先レベル信号(Mz)ある。
【0070】
帯域調整回路220bにおいて、優先度判定回路210bからの優先レベル信号(PLW[N:0])は自マスタ用の優先レベル信号(Mx)である。優先度判定回路210aからの優先レベル信号(PLT[N:0])は第一の他マスタ用の優先レベル信号(My)ある。優先度判定回路210cからの優先レベル信号(PLT[N:0])は第二の他マスタ用の優先レベル信号(Mz)ある。
【0071】
帯域調整回路220cにおいて、優先度判定回路210cからの優先レベル信号(PLW[N:0])は自マスタ用の優先レベル信号(Mx)である。優先度判定回路210aからの優先レベル信号(PLT[N:0])は第一の他マスタ用の優先レベル信号(My)ある。優先度判定回路210bからの優先レベル信号(PLT[N:0])は第二の他マスタ用の優先レベル信号(Mz)ある。
【0072】
選択回路221は、緊急信号(EMG)がハイレベルの場合(緊急時の優先レベル(E-QoS)の場合)、優先レベル信号(Mx)が示す優先レベル値に対応する周期レジスタ251を選択する。自マスタが緊急時の優先レベルの場合、他マスタからの干渉は受け付けない。
【0073】
選択回路221は、緊急信号(EMG)がロウレベルの場合(通常時の優先レベル(N-QoS)の場合)、優先レベル信号(Mx)と優先レベル信号(MyMz)とを比較して下記(a)から(c)に示すように周期レジスタが選択する。ここで、優先レベル信号(MyMz)は、優先レベル信号(My)と優先レベル信号(Mz)が示す優先レベルのうち小さい方の優先レベルであって、「1」以上である。すなわち、他マスタの優先レベル信号(MyMz)が示す優先レベル以下になるように選択される。
【0074】
(a)優先レベル信号(Mx)が示す優先レベルが、優先レベル信号(MyMz)が示す優先レベルより大きいとき、優先レベル信号(MyMz)が示す優先レベル値に対応する周期レジスタ251が選択される。
【0075】
(b)優先レベル信号(Mx)が示す優先レベルと優先レベル信号(MyMz)が示す優先レベルとが同じとき、優先レベル信号(Mx)または優先レベル信号(MyMz)が示す優先レベル値に対応する周期レジスタ251が選択される。
【0076】
(c)優先レベル信号(Mx)が示す優先レベルが、優先レベル信号(MyMz)が示す優先レベルより小さいとき、優先レベル信号(Mx)が示す優先レベル値に対応する周期レジスタ251が選択される。
【0077】
なお、他マスタからの優先レベル信号(MyMz)が1以上のとき、他マスタは緊急時の優先レベル(E-QoS)である。優先レベル信号(MyMz)が0のとき、他マスタは通常時の優先レベル(N-QoS)である。選択回路221は他マスタからの緊急信号(EMG)がなくても判別可能である。
【0078】
優先レベル信号(My)および優先レベル信号(Mz)が示す優先レベルの両方が「0」のときは、優先レベル信号(MyMz)は「0」とされる。この場合は、優先レベル信号(Mx)が示す優先レベルに対応する周期レジスタ(PQL0~PQLn)が選択される。他マスタも通常時の優先レベル(N-QoS)であり、干渉してこない。
【0079】
周期カウンタ222は、例えば、プリセットされた数をクロックのパルス数を計数するごとにダウン(-1)するダウンカウンタで構成される。周期カウンタ222には選択回路221により選択された周期レジスタに格納されている値(マスク期間)がバリッド出力信号(VLD_OUT)およびレディ出力信号(RDY_OUT)がハイレベルになるタイミングでプリセット(設定)される。周期カウンタ222は計数値が1以上の場合、バス停止要求信号(BSR)をハイレベルにし、計数値が0の場合はバス停止要求信号(BSR)をロウレベルにする。周期カウンタ222は、バリッド入力信号(VLD_IN)およびレディ入力信号(RDY_IN)をマスクする期間を計数する。
【0080】
マスク生成回路(MGNR)223はバス停止要求信号(BSR)、バリッド入力信号(VLD_IN)およびレディ入力信号(RDY_IN)がハイレベルの場合、次のサイクルでマスク信号(MSK)をハイレベルにする。マスク信号(MSK)がハイレベルのとき、論理積回路224はバリッド入力信号(VLD_IN)をマスクして、その出力信号であるバリッド出力信号(VLD_OUT)をロウレベルにする。マスク信号(MSK)がロウレベルのとき、論理積回路224はバリッド入力信号(VLD_IN)を出力する。マスク信号(MSK)がハイレベルのとき、論理積回路225はレディ入力信号(RDY_IN)をマスクして、その出力信号であるレディ出力信号(RDY_OUT)をロウレベルにする。マスク信号(MSK)がロウレベルのとき、論理積回路225はレディ入力信号(RDY_IN)を出力する。
【0081】
帯域制御動作について図7から図9を用いて説明する。図7は高優先レベル領域において帯域制限の緩和がされない場合の動作例を示すタイミングチャートである。図8は高優先レベル領域において自マスタの帯域制限の緩和がされる場合の動作例を示すタイミングチャートである。図9は低優先レベル領域において他マスタの帯域制限の強化がされる場合の動作例を示すタイミングチャートである。
【0082】
図7から図9において、AD=0x1010~0x1020は通常の優先レベル領域(NQLA)である。また、AD=0x3010~0x301cは高優先レベル領域(HQLA)である。
【0083】
図7においては、通常の優先レベル領域(NQLA)と同様に高優先レベル領域(HQLA)において帯域制限は緩和されない。すなわち、アクセス要求に含まれる優先レベルは「0」であり、優先度制御レジスタ240の優先レベルレジスタ(QLW)=0である。これにより、自マスタの優先レベル(PLW)は「0」であり、帯域制御レジスタ250の周期レジスタ(PQL0)が選択される。また、図7に示すように、PQL0=3であり、マスク期間(インターバル期間)は4サイクル(CYC)である。
【0084】
これにより、高優先レベル領域(HQLA)へのアクセスであっても、アクセス間に一律のインターバル期間(PERIOD)が挿入される。その結果、高優先レベル領域(HQLA)における四つのアクセスは18サイクル(18CYC)かかる。
【0085】
図8においては、高優先レベル領域(HQLA)において自マスタの帯域制限が緩和される。すなわち、アクセス要求に含まれる優先レベルが「i」または優先度制御レジスタ240の優先レベルレジスタ(QLW)=iであり、自マスタの優先レベル(PLW)は「i」である。ここで、i>0である。これにより、Mx=iとなり、帯域制御レジスタ250の周期レジスタ(PQLi)が選択される。図8に示すように、PQLi=0であり、マスク期間(インターバル期間)は0サイクル(0CYC)である。なお、通常の優先レベル領域(NQLA)では、図7と同様に、PQL0=3であり、マスク期間(インターバル期間)は4サイクル(4CYC)である。なお、AD=0x1010へのアクセスにおいては、その後のアクセスが高優先レベル領域(HQLA)であり、そのアクセスを早く始めるため、マスク期間は2サイクルで終了する。
【0086】
これにより、自マスタが高優先レベル領域(HQLA)にアクセス中、インターバル無しの設定がされる。その結果、高優先レベル領域(HQLA)における四つのアクセスは7サイクル(7CYC)かかる。
【0087】
図9においては、自マスタが高優先レベル領域(HQLA)にアクセスする間は、他マスタの帯域制限が強化される。すなわち、優先度制御レジスタ240の優先レベルレジスタ(QLT)=kであり、自マスタの優先レベル(PLW)は「i」である。ここで、i>k>0である。これにより、Mx=i、My=kとなり、帯域制御レジスタ250の周期レジスタ(PQLk)が選択される。図9に示すように、PQLk=6であり、マスク期間(インターバル期間)は7サイクル(7CYC)である。また、通常の優先レベル領域(NQLA)では、図7と同様に、PQL0=3であり、マスク期間(インターバル期間)は4サイクル(CYC)である。なお、他マスタにおけるAD=0x1010へのアクセスにおいては、その後の自マスタのアクセスが高優先レベル領域(HQLA)であり、そのアクセスを早く始めるため、マスク期間は2サイクルで終了する。
【0088】
これにより、他マスタにおけるAD=0x1014へのアクセスは、自マスタが高優先レベル領域(HQLA)にアクセス中のアクセスであり、インターバル期間が延びる。その結果、他マスタにおけるAD=0x1014へのアクセスは、8サイクル(8CYC)かかる。なお、図9における「7CYC」はマスク期間である。
【0089】
バス調停回路230の構成について図10を用いて説明する。図10は調停回路の構成を示すブロック図である。
【0090】
バス調停回路230は、優先度判定回路210a,210b,210cから優先レベル信号(PLW[N:0])を受け取る。また、バス調停回路230は、受け取った優先レベル信号(PLW[N:0])を用いてアクセス要求の調停を行う。優先レベル値が大きいアクセス要求が優先的に調停される。
【0091】
そのため、バス調停回路230は、デコード回路(MUX)231a,231b.231cと、(n+1)個の調停回路(RRA)232と、調停回路(FRA)233と、を備える。調停回路(RRA)232は、通常優先レベル(NPL0)、高優先レベル1(HPL1)、・・・、高優先レベルn(HPLn)用のラウンドロビン方式の調停回路を有する。調停回路(FRA)233は固定優先方式の調停回路である。
【0092】
デコード回路(MUX)231a,231b.231cは優先レベル信号(PL[N:0])をデコードし、優先レベルに対応する調停回路(RRA)232を選択する。すなわち、調停回路(RRA)232は同じ優先レベル間をラウンドロビンで調停する。調停回路(FRA)233は(n+1)個の調停回路(RRA)232の出力を固定優先で優先付けする。
【0093】
実施形態をより明確にするため、実施形態とは異なる構成(比較例)のバス制御回路における問題点について図11から図13を用いて説明する。図11は実施形態および比較例におけるバス構成を示す図である。図12はマスタのメモリマップを示す図である。図13は実施形態および比較例におけるエラー処理の時間を示す図である。
【0094】
図11に示すように、マスタ100a~100hごとに制御タスク(TSKa~TSKh)がそれぞれ割り当てられる。制御タスク(TSKa~TSKh)ごとに優先レベルが異なる。エラー発生時はマスタ100a~100hごとにエラー処理を行う。
【0095】
優先レベルの管理を適切に行わないと、緊急性の高い処理(例えばエラー処理など)においても帯域制限されたり、優先度を下げられたりする。すなわち、バス制御回路200において優先レベルの管理が適切に行われないと、エラー処理が所定の時間内に完了しない可能性がある。
【0096】
例えば、図12に示すように、あるマスタが通常状態においてメインルーチン(MR)により処理を行っているときに、エラー(ERR)が発生すると、ハンドラアドレス(HAD)に格納されているエラー処理ルーチン(EHR)によりエラー処理が行われる。
【0097】
図13に示すように、マスタの優先レベルの設定変更を行わず、通常時の優先レベル(N-QoS)のまま、ハードウエア制御(HWC)に任せる場合、マスタの優先レベルが低いと、ワーストケースでは、他のマスタとのアクセス競合時に待ち合わせが発生する。これは、非特許文献1における制御の場合、エラー処理であっても過去から現在のアクセス状況に応じて優先レベルが変更されるので、優先レベルは急峻な変化はしないためである。よって、期待した時間(tE)内でエラー処理ルーチン(EHR)の処理を完了できないことがある(tb>tE)。ここで、tbはエラー処理ルーチン(EHR)の処理時間である。
【0098】
図13に示すように、ソフトウエア制御(SWC)で優先レベルレジスタの設定変更を行う処理ルーチン(QLSR)により通常時の優先レベル(N-QoS)を緊急時の優先レベル(E-QoS)に変更する場合でも、処理ルーチン(QLSR)自体が通常時の優先レベル(N-QoS)下で実行されるので、処理ルーチン(QLSR)に所定の処理時間(tc)が費やされる。よって、期待した時間(tE)内でエラー処理ルーチン(EHR)の処理を完了できないことがある((tc+td)>tE)。ここで、tdはエラー処理ルーチン(EHR)の処理時間である。
【0099】
実施形態におけるバス制御回路を利用するエラー処理について図12および図13を用いて説明する。
【0100】
本実施形態の制御(EC)では、図12に示すように、エラー処理ルーチン(EHR)など緊急性の高いコードが格納されるアドレス範囲を高優先レベル領域(HQLA)とされる。エラー(ERR)が発生すると、ハンドラアドレス(HAD)へのアクセスが発生し、高優先レベル領域(HQLA)へのアクセスが検知される。そうすると自動的に通常時の優先レベル(N-QoS)が緊急時の優先レベル(E-QoS)に変更される。また、高優先レベル領域(HQLA)へアクセスするマスタ以外のマスタの優先レベルを下げる。続いて、自マスタのバス帯域制限が緩和され、他マスタのバス帯域制限が強化される。これにより、期待した時間(tE)内でエラー処理ルーチン(EHR)の処理を完了することが可能である(ta<tE)。ここで、taはエラー処理ルーチン(EHR)の処理時間である。
【0101】
実施形態によれば、下記の一つまたは複数の効果を有する。
【0102】
(1)緊急時に通常時とは異なるQoS(帯域制御、優先制御)へ切り替わることが可能である。
【0103】
(2)システムエラー等の異常が発生した際のハンドラアドレスに格納されているデータへのトランザクションを検知し、当該異常の処理(エラー処理)を実行するマスタ(CPU等)のアクセスの帯域制限を解除し、他マスタの帯域を制限することが可能である。
【0104】
(3)レイテンシを優先させたい緊急のデータアクセスを低レイテンシで行うことが可能である。
【0105】
(4)エラーが発生した場合、素早いエラー処理が可能である。
【0106】
<変形例>
以下、実施形態の代表的な変形例について、例示する。以下の変形例の説明において、上述の実施形態にて説明されているものと同様の構成および機能を有する部分に対しては、上述の実施形態と同様の符号が用いられ得るものとする。そして、かかる部分の説明については、技術的に矛盾しない範囲内において、上述の実施形態における説明が適宜援用され得るものとする。また、上述の実施形態の一部、および、変形例の全部または一部が、技術的に矛盾しない範囲内において、適宜、複合的に適用され得る。
【0107】
優先度判定回路210の変形例について図14および図15を用いて説明する。図14図1に示す優先度判定回路およびその周辺の構成の変形例を示すブロック図である。図15図1に示す優先度制御レジスタの構成の変形例を示す図である。
【0108】
本構成例の優先度判定回路210において、緊急性の高いアクセス要求は、特定のアドレスへのアクセスを検知し、その時点から指定した期間によって決定される。特定のアドレスとは、例えば、図12に示すエラー処理のためのハンドラアドレス(HAD)であり、当該期間とは、例えば、エラー処理時間である。
【0109】
優先度判定回路210はアドレス信号(AD)とサイドバンド信号(SB)から優先レベルが高いアドレス(高優先レベルアドレス(HQAD))を判定し、その高優先レベルアドレス(HQAD)ごとに優先レベルを設定(更新)する。
【0110】
図14に示すように、優先度判定回路210は、(M+1)個の比較回路(ACM)211と、比較回路(SCM)212と、(M+1)個の論理積回路213と、セレクタ(PSLW)215と、論理和回路214と、セレクタ(PSLT)216と、比較回路(QLCM)217と、タイマ(TMRW)218と、タイマ(TMRT)219と、を備える。
【0111】
図15に示すように、優先度制御レジスタ240は、(M+1)個のアドレスレジスタ(ADD(AD0)~ADD(ADM))246と、サイドバンドレジスタ(PS)243と、(M+1)個の自マスタ用の優先レベルレジスタ(QLW)247と、(M+1)個の他マスタ用の優先レベルレジスタ(QLT)248と、(M+1)個のタイマ閾値レジスタ(TMRth)249と、を備える。
【0112】
実施形態では優先レベルが高いアドレス領域を設定するが、本変形例では特定のアドレスを設定する。実施形態では自マスタおよび他マスタ用の優先レベルレジスタはアドレス領域に紐づくが、本変形例では自マスタおよび他マスタ用の優先レベルレジスタは特定のアドレスに紐づく。
【0113】
マスタ100がアクセスする領域の内、高優先レベルアドレス(HQAD)を(M+1)個設定可能であり、それらの高優先レベルアドレス(HQAD)をアドレス(AD0~ADM)とする。
【0114】
サイドバンドレジスタ243は特定のマスタを設定するレジスタであり、識別情報(BMID)が設定される。
【0115】
自マスタ用の優先レベルレジスタ(QLW(AD0))247はアドレス(AD0)用の優先レベルレジスタであり、アドレス(AD0)の優先レベルが設定される。自マスタ用の優先レベルレジスタ(QLW(ADM))247はアドレス(ADM)用の優先レベルレジスタであり、アドレス(ADM)の優先レベルが設定される。
【0116】
他マスタ用の優先レベルレジスタ(QLT(AD0))248はアドレス(AD0)用の優先レベルレジスタであり、アドレス(AD0)の優先レベルが設定される。他マスタ用の優先レベルレジスタ(QLT(ADM))248はアドレス(ADM)用の優先レベルレジスタであり、アドレス(ADM)の優先レベルが設定される。
【0117】
(M+1)個の比較回路211はアドレス信号(AD)が高優先レベルアドレス(HQAD)であるかどうかを判定する。アドレス(AD0)用の比較回路(ACM(AD0))211はアドレス信号(AD)がアドレス(AD0)であるかどうかを判定する。アドレス(ADM)用の比較回路(ACM(ADM))211はアドレス信号(AD)がアドレス(ADM)であるかどうかを判定する。
【0118】
アドレス(AD0)用の比較回路211はアドレス信号(AD)とアドレス(AD0)用のアドレスレジスタ246に格納されたアドレスとを比較する。アドレス信号(AD)がアドレス(AD0)用のアドレスレジスタ246のアドレスと一致する場合は、アドレス(AD0)用の比較回路211はアドレス選択信号(ADSL[0])をハイレベルにする。
【0119】
アドレス(ADM)用の比較回路211はアドレス信号(AD)とアドレス(ADM)用のアドレスレジスタ246に格納されたアドレスとを比較する。アドレス信号(AD)がアドレス(ADM)用のアドレスレジスタ246のアドレスと一致する場合は、アドレス(ADM)用の比較回路211は、例えば、アドレス選択信号(ADSL[M])をハイレベルにする。
【0120】
アドレス選択信号(ADSL[0])からアドレス選択信号(ADSL[M])はまとめてアドレス選択信号(ADSL[M:0])と表記する。すなわち、アドレス選択信号(ADSL[M:0])は(M+1)ビットの信号である。
【0121】
比較回路212はマスタ100が特定のマスタかどうかを判定する。比較回路212はサイドバンド信号(SB)に含まれる識別情報(BMID)とサイドバンドレジスタ(PS)に格納された識別情報(BMID)とを比較して、一致する場合は、例えば、一致信号(SBMT)をハイレベルにする。
【0122】
論理積回路213はアドレス選択信号(ADSL[M:0])のそれぞれと一致信号(SBMT)との論理積を行って、(M+1)ビットのアドレス選択有効信号(ADSLV[M:0])を出力する。一致信号(SBMT)がハイレベルの場合、アドレス選択信号(ADSL[M:0])の何れかがハイレベルのとき、アドレス選択有効信号(ADSLV[M:0])の何れかがハイレベルになる。
【0123】
論理和回路214は(M+1)ビットのアドレス選択有効信号(ADSLV[M:0])の論理和を行う。論理和回路214はアドレス選択有効信号(ASLV[M:0])の何れかがハイレベルである場合、ハイレベルを出力する。特定のマスタが高優先レベルアドレス(HQAD)をアクセスする場合、緊急信号(EMG)がハイレベルになる。緊急信号(EMG)は、アドレス信号(AD)が高優先レベルアドレス(HQAD)である場合、ハイレベルになり、優先レベル信号(PL[N:0])が緊急時の優先レベル(E-QoS)であることを示す。緊急信号(EMG)がロウレベルの場合、優先レベル信号(PL[N:0])は通常時の優先レベル(N-QoS)であることを示す。
【0124】
セレクタ215はアドレス選択有効信号(ADSLV[M:0])により自マスタ用の優先レベルレジスタ(QLW(AD0)~QLW(ADM))247に格納されている優先レベルを選択する。アドレス選択有効信号(ADSLV[M:0])がすべてロウレベルの場合、「0」が選択される。
【0125】
また、セレクタ215はアドレス選択有効信号(ADSLV[M:0])によりタイマ閾値レジスタ(TMRth(AD0)~TMRth(ADM))249に格納されているタイマ閾値を選択する。
【0126】
セレクタ216はアドレス選択有効信号(ADSLV[M:0])により他マスタ用の優先レベルレジスタ(QLT(AD0)~QLT(ADM))248に格納されている優先レベルを選択して、他マスタ用の優先レベル信号(PLT[N:0])として出力する。アドレス選択有効信号(ASLV[M:0])がすべてロウレベルの場合、「0」が選択される。すなわち、アドレス信号(AD)が高優先レベルアドレス(HQAD)でない場合、PLT[N:0]は0になる。
【0127】
また、セレクタ216はアドレス選択有効信号(ADSLV[M:0])によりタイマ閾値レジスタ(TMRth(AD0)~TMRth(ADM))249に格納されているタイマ閾値を選択する。
【0128】
タイマ218は、セレクタ215が選択した閾値の期間、セレクタ215が選択した優先レベルおよび論理和回路214の出力である緊急信号を出力する。
【0129】
タイマ219は、セレクタ216が選択した閾値の期間、セレクタ216が選択した優先レベルを出力する。
【0130】
比較回路217は優先レベル信号(PL[N:0])が示す優先レベルとタイマ218の出力である優先レベルとを比較し、高い方の優先レベルが自マスタ用の優先レベル信号(PLW[N:0])として出力する。
【0131】
優先度判定回路210はアクセス要求に含まれるアドレス信号(AD)に基づいてアクセス要求に含まれる優先レベル信号(PL[N:0])を変更して優先レベル信号(PLW[N:0])を出力すると共に、他マスタの帯域を制御する優先レベル信号(PLT[N:0])を出力する。
【0132】
優先度の高い処理が複数のアドレス領域に渡る場合、実施形態では各アドレス領域とそれぞれの領域の優先度を設定する必要がある。本変形例では優先度の高い処理の最初のアドレスを設定して、当該アドレスへのアクセスを検知すると指定した期間をタイマで計測し、その期間優先レベルを高くする。当該アドレスは、例えば、エラー発生時のハンドラアドレスなどである。本変形例によれば、実施形態における複数のアドレス領域とそれぞれの優先度を設定するより簡単に設定が行える。
【0133】
以上、本件開示者によってなされた開示を実施の形態に基づき具体的に説明したが、本開示は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【0134】
例えば、実施形態では、アドレス信号およびサイドバンド信号に基づいて緊急性の高いアクセス要求を決定する例を説明したが、サイドバンド信号を用いなくてアドレス信号に基づいて緊急性の高いアクセス要求を決定するようにしてもよい。
【0135】
また、実施形態では、サイドバンド信号(SB)に含まれる識別情報(BMID)に基づいて優先レベル値を決定する例を説明したが、特殊なモードを示す情報をサイドバンド信号(SB)に含めて、この情報に基づいて優先レベル値を決定するようにしてもよい。ここで、特殊なモードとは、例えば、スーパーバイザーモードやデバッグモード、セキュアモードである。
【符号の説明】
【0136】
10・・・半導体装置
100,100a,100b,100c・・・マスタ
200・・・バス制御回路
210,210a,210b,210c・・・優先度判定回路
300,300a,300b・・・スレーブ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15