JP2021196681A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2021196681A JP2021196681A JP2020100695A JP2020100695A JP2021196681A JP 2021196681 A JP2021196681 A JP 2021196681A JP 2020100695 A JP2020100695 A JP 2020100695A JP 2020100695 A JP2020100695 A JP 2020100695A JP 2021196681 A JP2021196681 A JP 2021196681A
- Authority
- JP
- Japan
- Prior art keywords
- semiconductor device
- priority
- master
- slave
- transfer
- 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
- 239000004065 semiconductor Substances 0.000 title claims abstract description 69
- 238000010586 diagram Methods 0.000 description 16
- 238000007616 round robin method Methods 0.000 description 6
- 239000003999 initiator Substances 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 1
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
-
- 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/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
-
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Abstract
【課題】マスタと特定のスレーブの転送を単位期間内に一定量行える半導体装置を提供することにある。【解決手段】半導体装置は二つ以上のマスタがバスを介してスレーブにアクセスする。半導体装置は、特定のマスタと特定のスレーブ間の転送量に基づいた優先度を生成する優先度生成回路と、アクセス競合が発生した際に前記優先度に基づいた調停を行う調停回路と、を備える。【選択図】図1
Description
本開示は半導体装置に関し、例えば、マスタ、スレーブおよび調停回路を備える半導体装置に適用可能である。
複数のバスマスタとバススレーブが接続される共通バスにおいて、バスマスタがバススレーブにデータ転送のアクセス要求を発行する場合、バスマスタ毎に、時分割でバススレーブへのアクセス許可が発行されることになる。このとき、複数バスマスタのアクセス要求が競合している場合には、バスマスタにアクセス許可を発行するための調停をする必要がある。例えば、特開2011−59915号公報(特許文献1)には、下記が開示されている。
「半導体装置は、調停のための処理単位の時間と前記処理単位の時間に許容される最大転送量とをレジスタに格納し、当該格納した値に基づき、前記処理単位の時間毎に、夫々のイニシエータの残り時間と残りデータ量を演算し、当該演算結果から優先度を繰り返し生成する。ターゲットに対するイニシエータのアクセス要求が競合した場合には、夫々のイニシエータの前記優先度を比較し、いずれかのイニシエータに対してアクセスの許可を発行する。」
特許文献1は、イニシエータ(マスタ)が発行する全ての転送に対して転送量をカウントし、転送の残り時間と残りデータ量を演算することで優先度を生成する。そのため、特定のターゲット(スレーブ)に転送するときだけ転送量に応じた優先度を生成するような制御はできない。つまり、マスタが特定のスレーブと一定量の転送が完了するまで当該経路に高い優先度を割り当てるような制御はできず、単位期間内に特定のスレーブとの転送を一定量行うシステムには適用できない。
本開示の一態様によれば、半導体装置は二つ以上のマスタがバスを介してスレーブにアクセスする。半導体装置は、マスタと特定スレーブ間の転送量に応じた優先度を生成する優先度生成回路と、アクセス競合が発生した際に優先度に応じた調停を行う調停回路と、を備える。
上記半導体装置によれば、マスタと特定のスレーブの転送量に応じた優先度を生成することができる。これにより、特定のスレーブとの転送が一定量を超えるまでは優先度を高くすることができ、単位期間内に一定量の転送を行う優先度制御ができる。
以下、実施形態および実施例について、図面を用いて説明する。ただし、以下の説明において、同一構成要素には同一符号を付し繰り返しの説明を省略することがある。なお、図面は説明をより明確にするため、実際の態様に比べ、各部の幅、厚さ、形状等について模式的に表される場合があるが、あくまで一例であって、本開示の解釈を限定するものではない。
まず、実施形態について図1及び図2を用いて説明する。図1は実施形態における半導体装置の構成の概念図である。図2は図1に示される半導体装置の転送量による優先度の切り替えのイメージを示す図である。
図1に示されるように、実施形態における半導体装置10は、バス100に接続される、第一マスタ(MSTR_1)101と、第二マスタ(MSTR_2)102と、第一スレーブ(SLV_1)103と、第二スレーブ(SLV_2)104と、を備える。第一マスタ(MSTR_1)101は、例えば、単位時間ごとにパケットの処理を行うことが求められる画像処理用のコントローラ等の装置である。第一スレーブ(SLV_1)103は第一マスタ101が単位時間ごとにパケット処理を行うためにアクセスする例えばSRAMなどのメモリ装置である。第二マスタ(MSTR_2)102はCPU、DMAC等の装置である。第二スレーブ(SLV_2)104は第一スレーブ103以外のスレーブである。半導体装置10は、さらに、調停回路(ARBT)105と、優先度生成回路(PRG)110と、を備える。優先度生成回路110は優先度を生成する。調停回路105は優先度に基づいてバス100の使用許可を発行する。
図2に示されるように、優先度生成回路110は、以下のように転送量によるバスアクセスの優先度を切り替える。
(1)一定量(TH)の転送が終わるまでは、第一マスタ101と第一スレーブ(SLV_1)103の転送を優先する。
(2)一定量(TH)の転送が終わった後は、第一マスタ101と第一スレーブ(SLV_1)103以外の経路の転送を優先する。
(1)一定量(TH)の転送が終わるまでは、第一マスタ101と第一スレーブ(SLV_1)103の転送を優先する。
(2)一定量(TH)の転送が終わった後は、第一マスタ101と第一スレーブ(SLV_1)103以外の経路の転送を優先する。
なお、図2に示されるように、単位時間内における上記(1)の転送の期間の後に上記(2)の転送の期間があるので、上記(1)の転送の期間が長くなると、上記(2)の転送の期間が短くなる。
実施形態の半導体装置における二つ以上のマスタがバスを介してスレーブにアクセスする。半導体装置はマスタと特定スレーブ間の転送量に応じた優先度を生成する優先度生成回路と、アクセス競合が発生した際に優先度に応じた調停を行う調停回路と、を備える。
ここで、特定スレーブは、例えば、アドレスまたはセキュリティ情報などアクセス属性情報に基づいて特定される。実施形態によれば、マスタが特定のスレーブと一定量の転送を確実に行えるようになる。
ここで、特定スレーブは、例えば、アドレスまたはセキュリティ情報などアクセス属性情報に基づいて特定される。実施形態によれば、マスタが特定のスレーブと一定量の転送を確実に行えるようになる。
(第一実施例)
第一実施例における半導体装置の構成について図3を用いて説明する。図3は第一実施例における半導体装置の構成を示すブロック図である。
第一実施例における半導体装置の構成について図3を用いて説明する。図3は第一実施例における半導体装置の構成を示すブロック図である。
半導体装置10は、第一マスタ(MSTR_1)101と、第二マスタ(MSTR_2)102と、第一スレーブ(SLV_1)103と、第二スレーブ(SLV_2)104と、を一つの半導体チップに備える。半導体装置10は、当該半導体チップに、さらに、バス100と、調停回路(ARBT)105と、優先度生成回路(PRG)110と、を備える。ここで、第一マスタ101と特定スレーブとしての第一スレーブ103との間に転送量による優先度制御が行われる。
第一マスタ101および第二マスタ102はアクセス要求信号(ARS)を出力して、調停回路105にアクセスを要求する。それに対して、調停回路105は第一マスタ101または第二マスタ102にアクセス許可信号(APS)を発行してバス100の使用許可を与える。使用許可が与えられた第一マスタ101または第二マスタ102はバス100を介して第一スレーブ103または第二スレーブ104にアクセスする。アクセスが許可された第一マスタ101は、バスプロトコル信号である、アドレス(ADR)、スレーブと転送していることを示す信号(TR)、転送サイズ情報(TS)を優先度生成回路110に入力する。優先度生成回路110は優先度を生成して調停回路105に入力する。
以下、優先度生成回路110内の回路構成とその動作、および調停回路105の動作について説明する。
優先度生成回路110は、領域判定回路(AJC)111と、サイクルカウンタ(C_CNTR)112と、転送量カウンタ(T_CNTR)113と、閾値判定回路(TJC)114と、優先度判定回路(PJC)115と、を備える。
領域判定回路111は、転送アドレス(ADR)および第一スレーブ103の開始アドレス(S_ADR)と終了アドレス(E_ADR)に基づいて、転送アドレス(ADR)が第一スレーブ103のアドレスを示しているかどうかを判定する。ここで、転送アドレス(ADR)は第一マスタ101がスレーブに対して転送を行う際のアドレス情報である。また、第一スレーブ103の開始アドレス(S_ADR)と終了アドレス(E_ADR)は固定値である。すなわち、領域判定回路111は、転送アドレス(ADR)を第一スレーブ103の開始アドレス(S_ADR)および終了アドレス(E_ADR)と比較し、下記の条件を満たすかどうかを判定する。
S_ADR≦ADR≦E_ADR
S_ADR≦ADR≦E_ADR
転送アドレス(ADR)が第一スレーブ103のアドレスを示しており、かつ、もう一つの入力である転送中信号(TR)がアサートされている場合に、領域判定回路111はイネーブル信号(EN)をアサートする。ただし、開始アドレス(S_ADR)と終了アドレス(E_ADR)の組は複数あってもよい。
なお、開始アドレス(S_ADR)のみを設定して、下記をイネーブル信号(EN)のアサート条件としてもよい。
S_ADR≦ADR
S_ADR≦ADR
また、終了アドレス(E_ADR)のみを設定して、下記をイネーブル信号(EN)のアサート条件としてもよい。
ADR≦E_ADR
ADR≦E_ADR
サイクルカウンタ(C_CNTR)112は、サイクル設定レジスタ(CSR)116から入力される単位ユニットサイクル数(UC)をカウンタの初期値としてプリセットする。その後、もう一つの入力信号であるイネーブル信号(EN)の1回目のアサートにより、サイクルカウンタ112はダウンカウントを開始する。サイクルカウンタ112は、カウント値が0になったら次のサイクルで単位ユニットサイクル数を再度プリセットし、ダウンカウントを繰り返し行う。サイクルカウンタ112はカウント値が0になる度にカウント終了フラグ(CEND)を繰り返しアサートする。これにより、単位時間が経過したことを把握することができる。
転送量カウンタ113は、イネーブル信号(EN)がアサートされるたびに、転送サイズ情報(TS)に基づいて、転送しているデータ容量をカウンタにインクリメントする。そして、転送量カウンタ113は、カウンタの値を転送量(TV)として出力する。もう一つの入力信号であるカウント終了フラグ(CEND)がアサートされると、転送量カウンタ113は、カウント値を0に初期化する。
閾値判定回路(TJC)114は、転送量(TV)と閾値設定レジスタ(TSR)117で設定される閾値(TH)とを比較し、転送量(TV)が閾値(TH)よりも小さい場合に閾値判定信号(TJS)をアサートする。
優先度判定回路115は、イネーブル信号(EN)と閾値判定信号(TJS)の2つの信号が共にアサートされている場合に、優先度(PRTY)として第一マスタ101の優先度が高いことを示す「1」を出力する。優先度判定回路115は、イネーブル信号(EN)および閾値判定信号(TJS)の一方または両方の信号がネゲートされている場合は、優先度(PRTY)として第一マスタ101の優先度が低いことを示す「0」を出力する。
調停回路105は第一マスタ101と第二マスタ102が同じスレーブに対して同時にアクセス要求を出した際に調停を行う。第一スレーブ(SLV_1)103に対するアクセスが競合した際に、入力信号である優先度(PRTY)が「1」である場合には、調停回路105は第一マスタ101にアクセス許可を優先的に発行する。優先度(PRTY)が「0」である場合には、調停回路105は第二マスタ102にアクセス許可を発行するまたはラウンドロビン方式でアクセス許可を発行する。ここで、ラウンドロビン方式では、第一マスタ101、第二マスタ102のうち、直近でバスを使用していないマスタにアクセス許可を発行する。第二スレーブ(SLV_2)104に対するアクセスが競合した際の調停は、ラウンドロビン方式や固定優先方式で調停を行う。
次に、半導体装置10の動作について図4および図5を用いて説明する。図4は第一実施例におけるアドレスマップを示す図である。図5は優先度生成回路の動作を説明するタイミングチャートである。
図4に示すように、0x0000_0000〜0x0FFF_FFFFを第一スレーブ(SLV_1)103のアドレス、0x1000_0000〜0x1FFF_FFFFを第二スレーブ(SLV_2)104のアドレスとしている。このアドレスマップを基に、以下、図5に示される時刻(t)ごとに動作の説明を行う。なお、半導体装置10の全体を制御するCPU等によって、予め、サイクル設定レジスタ116に単位ユニットサイクル数(UC)として「10」が設定されている。閾値設定レジスタ117に閾値(TH)として「20」が設定されている。
[時刻(t0)]
第一スレーブ(SLV_1)103の開始アドレス(S_ADR)と終了アドレス(E_ADR)が固定値で領域判定回路111に入力される。単位ユニットサイクル数(UC)がサイクル設定レジスタ116により「10」と設定され、サイクルカウンタ112に「10」がプリセットされる。また、閾値(TH)が閾値設定レジスタ117により「20」と転送量カウンタ114に設定される。転送量カウンタ113のカウント値は初期状態で「0」であり、閾値が「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。優先度判定回路115は、イネーブル信号(EN)がネゲートされているため優先度(PRTY)として「0」を設定する。
第一スレーブ(SLV_1)103の開始アドレス(S_ADR)と終了アドレス(E_ADR)が固定値で領域判定回路111に入力される。単位ユニットサイクル数(UC)がサイクル設定レジスタ116により「10」と設定され、サイクルカウンタ112に「10」がプリセットされる。また、閾値(TH)が閾値設定レジスタ117により「20」と転送量カウンタ114に設定される。転送量カウンタ113のカウント値は初期状態で「0」であり、閾値が「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。優先度判定回路115は、イネーブル信号(EN)がネゲートされているため優先度(PRTY)として「0」を設定する。
[時刻(t1−t2)]
第一マスタ101は転送を開始すると共に転送中信号(TR)をアサートする。開始アドレス(S_ADR)が0x0000_0000、終了アドレス(E_ADR)が0x0FFF_FFFF、転送アドレス(ADR)が0x000_1000、である。よって、転送アドレス(ADR)は第一スレーブ(SLV_1)103を示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。初回のイネーブル信号(EN)のアサートにより、サイクルカウンタ112が10回のダウンンカウントを開始する。また、イネーブル信号(EN)のアサート時の転送サイズ情報(TS)に従って、転送量カウンタ113は「4」をインクリメンする。転送量(TV)が「4」であり、閾値の「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。優先度判定回路115は、イネーブル信号(EN)がアサートされているので、優先度(PRTY)として「1」を設定する。
第一マスタ101は転送を開始すると共に転送中信号(TR)をアサートする。開始アドレス(S_ADR)が0x0000_0000、終了アドレス(E_ADR)が0x0FFF_FFFF、転送アドレス(ADR)が0x000_1000、である。よって、転送アドレス(ADR)は第一スレーブ(SLV_1)103を示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。初回のイネーブル信号(EN)のアサートにより、サイクルカウンタ112が10回のダウンンカウントを開始する。また、イネーブル信号(EN)のアサート時の転送サイズ情報(TS)に従って、転送量カウンタ113は「4」をインクリメンする。転送量(TV)が「4」であり、閾値の「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。優先度判定回路115は、イネーブル信号(EN)がアサートされているので、優先度(PRTY)として「1」を設定する。
[時刻(t2−t3)]
第一マスタ101は転送アドレス(ADR)を0x1000_FFFFに変える。この転送アドレス(ADR)は終了アドレス(E_ADR)の0x0FFF_FFFFよりも大きいので、領域判定回路111はイネーブル信号(EN)をネゲートする。これにより、転送量カウンタ113のカウントが止まる。また、優先度判定回路115は、優先度(PRTY)を「0」に切り替える。
第一マスタ101は転送アドレス(ADR)を0x1000_FFFFに変える。この転送アドレス(ADR)は終了アドレス(E_ADR)の0x0FFF_FFFFよりも大きいので、領域判定回路111はイネーブル信号(EN)をネゲートする。これにより、転送量カウンタ113のカウントが止まる。また、優先度判定回路115は、優先度(PRTY)を「0」に切り替える。
[時刻(t4−t5)]
第一マスタ101は、再度、転送アドレス(ADR)を0x0000_FFFFに変える。この転送アドレス(ADR)は第一スレーブ(SLV_1)103を示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。これにより、転送量カウンタ113はカウントを再開し、転送量カウンタ113は「4」をインクリメントする。転送量(TV)が「12」であり、閾値の「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。優先度判定回路115は、イネーブル信号(EN)がアサートされているので、優先度(PRTY)を「1」に切り替える。
第一マスタ101は、再度、転送アドレス(ADR)を0x0000_FFFFに変える。この転送アドレス(ADR)は第一スレーブ(SLV_1)103を示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。これにより、転送量カウンタ113はカウントを再開し、転送量カウンタ113は「4」をインクリメントする。転送量(TV)が「12」であり、閾値の「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。優先度判定回路115は、イネーブル信号(EN)がアサートされているので、優先度(PRTY)を「1」に切り替える。
[時刻(t5−t6)]
転送量(TV)が「24」であり、閾値の「20」より大きい値であるので、閾値判定回路114は閾値判定信号(TJS)として「0」を生成する。優先度判定回路115は、イネーブル信号(EN)の値によらず、優先度(PRTY)を「0」にする。
転送量(TV)が「24」であり、閾値の「20」より大きい値であるので、閾値判定回路114は閾値判定信号(TJS)として「0」を生成する。優先度判定回路115は、イネーブル信号(EN)の値によらず、優先度(PRTY)を「0」にする。
[時刻(t6−t7)]
サイクルカウンタ112のカウント値が「0」になったので、サイクルカウンタ112はカウント終了フラグ(CEND)をアサートする。
サイクルカウンタ112のカウント値が「0」になったので、サイクルカウンタ112はカウント終了フラグ(CEND)をアサートする。
[時刻(t7−t8)]
カウント終了フラグ(CEND)のアサートにより、転送量カウンタ113がリセットされる。転送量(TV)が「0」であり、閾値の「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。また、サイクルカウンタ112に単位サイクル数(UC)の「10」が再度プリセットされ、サイクルカウンタ112はダウンカウントを開始する。
カウント終了フラグ(CEND)のアサートにより、転送量カウンタ113がリセットされる。転送量(TV)が「0」であり、閾値の「20」以下の値であるため、閾値判定回路114は閾値判定信号(TJS)として「1」を生成する。また、サイクルカウンタ112に単位サイクル数(UC)の「10」が再度プリセットされ、サイクルカウンタ112はダウンカウントを開始する。
[時刻(t8−t9)]
第一マスタ101は、転送アドレス(ADR)を0x0200_0000に変える。この転送アドレス(ADR)は第一スレーブ(SLV_1)103を示しているので、イネーブル信号(EN)がアサートされる。転送量カウンタ113のカウントが再開し、イネーブル信号(EN)のアサート時の転送サイズ情報(TS)に従って、転送量カウンタ113は「1」をインクリメントする。
第一マスタ101は、転送アドレス(ADR)を0x0200_0000に変える。この転送アドレス(ADR)は第一スレーブ(SLV_1)103を示しているので、イネーブル信号(EN)がアサートされる。転送量カウンタ113のカウントが再開し、イネーブル信号(EN)のアサート時の転送サイズ情報(TS)に従って、転送量カウンタ113は「1」をインクリメントする。
[時刻(t10)]
サイクルカウンタ112は、カウンタの値が「0」になると、カウント終了フラグ(CEND)をアサートする。カウント終了フラグ(CEND)がアサートされると、転送量カウンタ113の値である転送量(TV)が閾値に到達していない場合でも、時刻(t7−t8)と同様に転送量カウンタ113がリセットされ、サイクルカウンタ112に初期値がプリセットされる。
サイクルカウンタ112は、カウンタの値が「0」になると、カウント終了フラグ(CEND)をアサートする。カウント終了フラグ(CEND)がアサートされると、転送量カウンタ113の値である転送量(TV)が閾値に到達していない場合でも、時刻(t7−t8)と同様に転送量カウンタ113がリセットされ、サイクルカウンタ112に初期値がプリセットされる。
半導体装置10は、以降も同様の動作を繰り返し行う。
第一実施例は、以下の一つまたは複数の効果を有する。
(1)マスタの転送先アドレスが、優先度制御を行いたいスレーブのアドレスと一致した場合に転送量のカウントを行い、カウント値に基づいた優先度を生成する。これにより、特定のスレーブとの転送量に基づいた優先度をマスタに割り当てることができる。
(2)特許文献1では、マスタの残りのデータ量と残り時間を使って演算を行うため、優先度生成部の回路規模が大きくなる。しかし、第一実施例では、マスタの転送量が閾値に達しているか否かを判定し、優先度制御を行いたいスレーブに転送するときにのみ判定結果を優先度として出力する構成のため、優先度生成回路の回路規模を特許文献1よりも小さくできる。
(第二実施例)
第二実施例における半導体装置の構成について図6を用いて説明する。図6は第二実施例における半導体装置の構成を示すブロック図である。
第二実施例における半導体装置の構成について図6を用いて説明する。図6は第二実施例における半導体装置の構成を示すブロック図である。
第二実施例の半導体装置10は、第一実施例の優先度生成回路に対してターゲット設定レジスタ(TASR)118が追加されている。領域判定回路(AJC)111に入力する開始アドレス(S_ADR)と終了アドレス(E_ADR)がターゲット設定レジスタ118で設定可能になっている。第二実施例の半導体装置10のその他の構成は第一実施例と同様である。
第二実施例の半導体装置10の動作について図7および図8を用いて説明する。図7は第二実施例におけるアドレスマップを示す図である。図8は第二実施例における優先度生成回路の動作を説明するタイミングチャートである。
図7に示すように、0x0000_0000〜0x1FFF_FFFFを第一スレーブ(SLV_1)103のアドレス、0x2000_0000〜0x3FFF_FFFFを第二スレーブ(SLV_2)104のアドレスとしている。さらに、第一スレーブ(SLV_1)103のアドレスは、0x0000_0000〜0x0FFF_FFFFを領域A、0x1000_0000〜0x1FFF_FFFFを領域Bに分割されている。このアドレスマップを基に、第一スレーブ(SLV_1)103の領域Bの優先度制御を行うケースについて、以下、図8に示される時刻(t)ごとに動作の説明を行う。第一実施例と同じ動作の箇所は説明を省略する。なお、半導体装置10の全体を制御するCPU等によって、予め、サイクル設定レジスタ116に単位ユニットサイクル数(UC)として「10」が設定されている。閾値設定レジスタ117に閾値(TH)として「20」が設定されている。ターゲット設定レジスタ118に開始アドレス(S_ADR)として0x1000_0000、終了アドレス(E_ADR)として0x1FFF_FFFFが設定されている。
[時刻(t0)]
領域設定レジスタ118から開始アドレス(S_ADR)の0x1000_0000、終了アドレス(E_ADR)の0x1FFF_FFFFが領域判定回路111に入力される。
領域設定レジスタ118から開始アドレス(S_ADR)の0x1000_0000、終了アドレス(E_ADR)の0x1FFF_FFFFが領域判定回路111に入力される。
[時刻(t1−t2)]
第一マスタ101は転送を開始すると共に、転送中信号(TR)をアサートする。開始アドレス(S_ADR)が0x1000_0000、終了アドレス(E_ADR)が0x1FFF_FFFF、転送アドレス(ADR)が0x1000_1000、である。よって、転送アドレス(ADR)は第一スレーブ(SLV_1)103の領域Bを示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。
第一マスタ101は転送を開始すると共に、転送中信号(TR)をアサートする。開始アドレス(S_ADR)が0x1000_0000、終了アドレス(E_ADR)が0x1FFF_FFFF、転送アドレス(ADR)が0x1000_1000、である。よって、転送アドレス(ADR)は第一スレーブ(SLV_1)103の領域Bを示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。
[時刻(t2−t3)]
第一マスタ101は転送アドレス(ADR)を0x0000_FFFFに変える。この転送アドレス(ADR)は開始アドレス(S_ADR)の0x1000_0000よりも小さいので、領域判定回路111はイネーブル信号(EN)をネゲートする。
第一マスタ101は転送アドレス(ADR)を0x0000_FFFFに変える。この転送アドレス(ADR)は開始アドレス(S_ADR)の0x1000_0000よりも小さいので、領域判定回路111はイネーブル信号(EN)をネゲートする。
[時刻(t4−t5)]
第一マスタ101は、再度、転送アドレス(ADR)を0x1000_FFFFに変える。この転送アドレス(ADR)は第一スレーブ(SLV_1)103の領域Bを示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。
第一マスタ101は、再度、転送アドレス(ADR)を0x1000_FFFFに変える。この転送アドレス(ADR)は第一スレーブ(SLV_1)103の領域Bを示しているので、領域判定回路111はイネーブル信号(EN)をアサートする。
第二実施例によれば、スレーブの任意の特定アドレス領域に限定して優先度の切り替えを行うことができる。これにより、例えば、アドレス空間をセキュリティ属性により分割している場合、セキュリティ領域のみ、または非セキュリティ領域のみ優先度の切り替え制御を行うことができる。
(第三実施例)
第三実施例における半導体装置の構成について図9を用いて説明する。図9は第三実施例における半導体装置の構成を示すブロック図である。
第三実施例における半導体装置の構成について図9を用いて説明する。図9は第三実施例における半導体装置の構成を示すブロック図である。
第三実施例の半導体装置10は、第二実施例の領域判定回路(AJC)111に代えて属性判定回路(ATJC)119を備える。属性判定回路119には第一マスタ101から転送アドレス(ADR)に代えてセキュリティ属性情報(SECI)が入力される。さらにターゲット設定レジスタ118から属性判定回路119にターゲット属性(TRGA)が入力される。第三実施例の半導体装置10のその他の構成は第二実施例と同様である。
第三実施例の半導体装置10の動作について図10を用いて説明する。図10は第三実施例における優先度生成回路の動作を説明するタイミングチャートである。
以下、図10に示される時刻(t)ごとに動作の説明を行う。第一実施例と同じ動作の箇所は説明を省略する。なお、半導体装置10の全体を制御するCPU等によって、予め、サイクル設定レジスタ116に単位ユニットサイクル数(UC)として「10」が設定されている。閾値設定レジスタ117に閾値(TH)として「20」が設定されている。ターゲット設定レジスタ118にターゲット属性(TRGA)としてセキュアを示す「1」が設定されている。
[時刻(t0)]
ターゲット設定レジスタ118からターゲット属性(TRGA)が属性判定回路119に入力される。
ターゲット設定レジスタ118からターゲット属性(TRGA)が属性判定回路119に入力される。
[時刻(t1−t2)]
第一マスタ101は転送を開始すると共に、転送のセキュリティ属性情報(SECI)がセキュア属性を示す「1」を出力する。セキュリティ属性情報(SECI)がターゲット設定レジスタ118のターゲット属性(TRGA)の設定値と等しいので、属性判定回路119はイネーブル信号(EN)をアサートする。
第一マスタ101は転送を開始すると共に、転送のセキュリティ属性情報(SECI)がセキュア属性を示す「1」を出力する。セキュリティ属性情報(SECI)がターゲット設定レジスタ118のターゲット属性(TRGA)の設定値と等しいので、属性判定回路119はイネーブル信号(EN)をアサートする。
[時刻(t2−t3)]
第一マスタ101は転送のセキュリティ属性情報(SECI)が非セキュア属性を示す「0」を出力する。セキュリティ属性情報(SECI)がターゲット設定レジスタ118のターゲット属性(TRGA)の設定値と等しくないので、属性判定回路119はイネーブル信号(EN)をネゲートする。
第一マスタ101は転送のセキュリティ属性情報(SECI)が非セキュア属性を示す「0」を出力する。セキュリティ属性情報(SECI)がターゲット設定レジスタ118のターゲット属性(TRGA)の設定値と等しくないので、属性判定回路119はイネーブル信号(EN)をネゲートする。
第三実施例は、以下の一つまたは複数の効果を有する。
(1)マスタが転送する際の転送のセキュリティ属性を限定して優先度の切り替えを行うことができる。これにより、セキュリティ属性の転送のみ、または非セキュリティ属性の転送のみに限定して優先度を上げることができる。
(2)一般的に、セキュリティ属性は1〜数ビットの信号であるので、デコード部の回路規模を第一実施例および第二実施例と同じかそれよりも小さくすることができる。
第三実施例ではセキュリティ属性の信号を例に説明したが、これに限定されるものではない。例えば、マスタが転送時に出力するバス制御用信号を属性判定回路に入力し、その入力値が属性設定レジスタにより設定されたターゲット値と一致するか否かを比較することで、セキュリティ属性以外の優先度制御が可能である。
(第四実施例)
第四実施例における半導体装置の構成について図11を用いて説明する。図11は第四実施例における半導体装置の構成を示すブロック図である。
第四実施例における半導体装置の構成について図11を用いて説明する。図11は第四実施例における半導体装置の構成を示すブロック図である。
第四実施例における半導体装置10は、第一実施例に対してマスタの数がn個に増え、バスが多段に構成され、第一実施例と同様に特定のスレーブに対する優先度制御を行う。すなわち、第四実施例における半導体装置10は、さらに、第二バス200と、第三マスタ(MSTR_3)203から第nマスタ(MSTR_n)204の(n−2)個のマスタと、第二調停回路(ARBT_2)205と、第二優先度生成回路(PRG_2)210と、を備える。ここで、nは4以上の整数である。図11ではバス100に接続された第一マスタ(MSTR_1)101と、第二バス200に接続された第三マスタ203の特定スレーブに対する優先度制御を行う例を示している。第一マスタ101はバス100および第二バス200を介して第一スレーブ(SLV_1)をアクセスする。なお、図11では各マスタと調停回路の入出力信号であるアクセス要求信号とアクセス許可信号を省略している。
第一マスタ101用の優先度生成回路110は、特定のスレーブにアクセスする際の優先度(PRTY)を第一実施例と同様に生成し、調停回路105と第二調停回路(ARBT_2)205に入力する。第三マスタ203用の第二優先度生成回路210は優先度生成回路110と同様の構成であり、第一実施例と同様に生成した優先度(PRTY)を第二調停回路205に入力する。
調停回路105は、優先度(PRTY)が「1」である場合、第一マスタ101にバス100のアクセス許可を優先的に発行する。また、調停回路105は、優先度(PRTY)が「0」である場合、第二マスタ(MASR_2)102にアクセス許可を発行する、または、ラウンドロビン方式でアクセス許可を発行する。
第二調停回路205は、優先度(PRTY)が「1」である、即ちバス100のアクセス許可が第一マスタ101に発行されている場合、第二バス200のアクセス許可を、第一マスタ101に優先的に発行する。また、第二調停回路205は、優先度(PRTY_2)が「1」である場合、第三マスタ203に第二バス200のアクセス許可を優先的に発行する。
ただし、優先度(PRTY)および優先度(PRTY_2)がいずれも「1」である場合は、第二調停回路205は、以下の何れかを行う。
(a)第二バス200のアクセス許可を第一マスタ101に優先的に発行する
(b)第二バス200のアクセス許可を第三マスタ203に優先的に発行する
(c)第二バス200のアクセス許可をラウンドロビン方式で第一マスタ101または第三マスタ203に発行する
(a)第二バス200のアクセス許可を第一マスタ101に優先的に発行する
(b)第二バス200のアクセス許可を第三マスタ203に優先的に発行する
(c)第二バス200のアクセス許可をラウンドロビン方式で第一マスタ101または第三マスタ203に発行する
優先度(PRTY)および優先度(PRTY_2)がいずれも「0」である場合は、第二調停回路205は、優先度(PRTY)が「1」である場合と同様に優先的にアクセス許可を発行するマスタを予め決めておくか、ラウンドロビン方式で調停する。
第四実施例では、第一マスタ101と第三マスタ203に優先度生成回路を接続したが、優先度生成回路を接続するマスタ数は限定されない。また、本実施例ではバスをバス100、第二バス200の二段構成としたが、バスの段数も限定されず、それぞれのバスに接続するマスタの数も限定されない。さらに、実施例では、第二バス200に第一スレーブ103および第二スレーブ104を接続する例を示したが、スレーブの個数も限定されない。本実施例では、第一実施例と同様の優先度生成回路を用いる例を説明したが、第二実施例または第三実施例と同様の優先度生成回路を用いてもよい。
以上、本開示者らによってなされた開示を実施形態および実施例に基づき具体的に説明したが、本開示は、上記実施形態および実施例に限定されるものではなく、種々変更可能であることはいうまでもない。
10:半導体装置
100:バス
101:第一マスタ101
102:第二マスタ102
103:第一スレーブ
105:調停回路
110:優先度生成回路
100:バス
101:第一マスタ101
102:第二マスタ102
103:第一スレーブ
105:調停回路
110:優先度生成回路
Claims (10)
- 二つ以上のマスタがバスを介してスレーブにアクセスする半導体装置において、特定のマスタと特定のスレーブ間の転送量に基づいた優先度を生成する優先度生成回路と、アクセス競合が発生した際に前記優先度に基づいた調停を行う調停回路と、を備える半導体装置。
- マスタと、
前記マスタがアクセスするスレーブと、
前記マスタと前記スレーブを接続するバスと、
前記マスタに接続される優先度生成回路と、
を備え、
前記優先度生成回路は、
前記マスタのアクセスが優先制御に該当するときにイネーブル信号をアサートするよう構成されるターゲット判定回路と、
前記イネーブル信号の初回アサートからサイクル設定レジスタで設定した単位ユニットサイクルを繰り返しカウントし、単位ユニットカウント終了時にカウント終了フラグをアサートするよう構成されるサイクルカウンタと、
前記イネーブル信号のアサート時に転送サイズをインクリメントする転送量カウンタと、
前記転送量カウンタの値が閾値設定レジスタで設定した値に達しているか否かを判定し閾値判定信号として出力するよう構成される閾値判定回路と、
前記イネーブル信号と前記閾値判定信号から優先度を生成するよう構成される優先度判定回路と、
前記優先度によって前記バスの使用許可を発行するよう構成される調停回路と、
を備える半導体装置。 - 請求項2の半導体装置において、
前記ターゲット判定回路は、前記マスタの転送アドレスが前記スレーブのアドレスと一致しているときに前記イネーブル信号をアサートするよう構成される半導体装置。 - 請求項3の半導体装置において、
さらに、前記ターゲット判定回路が比較するアドレス情報が設定されるレジスタを備える半導体装置。 - 請求項2の半導体装置において、
前記ターゲット判定回路は、前記マスタが転送する際の転送属性情報が所定情報と一致しているときに前記イネーブル信号をアサートするよう構成される半導体装置。 - 請求項5の半導体装置において、
さらに、前記ターゲット判定回路が比較する前記所定情報が設定されるレジスタを備える半導体装置。 - 請求項6の半導体装置において、
前記転送属性情報はセキュリティ属性である半導体装置。 - 請求項2の半導体装置において、
さらに、前記バスに接続される第二マスタおよび第二スレーブを備える半導体装置。 - 請求項2の半導体装置において、さらに、
第三マスタと、
前記第三マスタに接続される第二バスと、
前記第三マスタに接続される第二優先度生成回路と、
前記第二優先度生成回路が生成する優先度に基づいて前記第二バスの使用許可を発行するよう構成される第二調停回路と、
を備え、
前記マスタは前記バスおよび前記第二バスを介して前記スレーブに接続される半導体装置。 - 請求項9の半導体装置において、
第二調停回路は、前記優先度生成回路が生成する優先度および前記第二優先度生成回路が生成する優先度に基づいて前記第二バスの使用許可を発行するよう構成される半導体装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020100695A JP2021196681A (ja) | 2020-06-10 | 2020-06-10 | 半導体装置 |
US17/318,669 US11816050B2 (en) | 2020-06-10 | 2021-05-12 | Semiconductor device |
CN202110584977.2A CN113778922A (zh) | 2020-06-10 | 2021-05-27 | 半导体设备 |
EP21178351.9A EP3923152B1 (en) | 2020-06-10 | 2021-06-08 | Semiconductor device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020100695A JP2021196681A (ja) | 2020-06-10 | 2020-06-10 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021196681A true JP2021196681A (ja) | 2021-12-27 |
Family
ID=76355302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020100695A Pending JP2021196681A (ja) | 2020-06-10 | 2020-06-10 | 半導体装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11816050B2 (ja) |
EP (1) | EP3923152B1 (ja) |
JP (1) | JP2021196681A (ja) |
CN (1) | CN113778922A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7381603B2 (ja) * | 2019-12-05 | 2023-11-15 | オリンパス株式会社 | データ転送装置およびデータ転送方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020452A (ja) * | 1998-07-06 | 2000-01-21 | Canon Inc | メモリアクセス制御装置および印刷制御装置およびメモリアクセス制御装置のメモリアクセス方法および印刷制御装置のメモリアクセス方法 |
JP2007323473A (ja) * | 2006-06-02 | 2007-12-13 | Fujitsu Ltd | 情報処理装置 |
JP2007334693A (ja) * | 2006-06-15 | 2007-12-27 | Canon Inc | バス調停装置及び方法 |
JP2008158585A (ja) * | 2006-12-20 | 2008-07-10 | Canon Inc | バスシステム及びそのバス調停方法 |
JP2009116378A (ja) * | 2007-11-01 | 2009-05-28 | Renesas Technology Corp | 半導体装置 |
JP2011059915A (ja) * | 2009-09-09 | 2011-03-24 | Renesas Electronics Corp | 半導体装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001356961A (ja) * | 2000-06-13 | 2001-12-26 | Nec Corp | 調停装置 |
US6715042B1 (en) | 2001-10-04 | 2004-03-30 | Cirrus Logic, Inc. | Systems and methods for multiport memory access in a multimaster environment |
JP4222251B2 (ja) * | 2004-04-27 | 2009-02-12 | ソニー株式会社 | バス調停装置およびバス調停方法 |
JP2006079394A (ja) | 2004-09-10 | 2006-03-23 | Renesas Technology Corp | データ処理装置 |
US7444478B2 (en) * | 2005-11-18 | 2008-10-28 | International Business Machines Corporation | Priority scheme for transmitting blocks of data |
JP2007334641A (ja) * | 2006-06-15 | 2007-12-27 | Sony Corp | 情報処理装置および方法、並びにプログラム |
DE112013004110T5 (de) * | 2012-08-22 | 2015-05-28 | Mitsubishi Electric Corporation | Cache-speichersteuerung und cache-speichersteuerverfahren |
US8959266B1 (en) * | 2013-08-02 | 2015-02-17 | Intel Corporation | Dynamic priority control based on latency tolerance |
JP2015138451A (ja) * | 2014-01-23 | 2015-07-30 | 株式会社東芝 | データ転送制御装置 |
US9483282B1 (en) * | 2014-05-30 | 2016-11-01 | Altera Corporation | Methods and systems for run-time hardware configuration change management |
US11240157B1 (en) * | 2016-03-02 | 2022-02-01 | Amazon Technologies, Inc. | Adaptive quality of service marking |
-
2020
- 2020-06-10 JP JP2020100695A patent/JP2021196681A/ja active Pending
-
2021
- 2021-05-12 US US17/318,669 patent/US11816050B2/en active Active
- 2021-05-27 CN CN202110584977.2A patent/CN113778922A/zh active Pending
- 2021-06-08 EP EP21178351.9A patent/EP3923152B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000020452A (ja) * | 1998-07-06 | 2000-01-21 | Canon Inc | メモリアクセス制御装置および印刷制御装置およびメモリアクセス制御装置のメモリアクセス方法および印刷制御装置のメモリアクセス方法 |
JP2007323473A (ja) * | 2006-06-02 | 2007-12-13 | Fujitsu Ltd | 情報処理装置 |
JP2007334693A (ja) * | 2006-06-15 | 2007-12-27 | Canon Inc | バス調停装置及び方法 |
JP2008158585A (ja) * | 2006-12-20 | 2008-07-10 | Canon Inc | バスシステム及びそのバス調停方法 |
JP2009116378A (ja) * | 2007-11-01 | 2009-05-28 | Renesas Technology Corp | 半導体装置 |
JP2011059915A (ja) * | 2009-09-09 | 2011-03-24 | Renesas Electronics Corp | 半導体装置 |
Also Published As
Publication number | Publication date |
---|---|
US11816050B2 (en) | 2023-11-14 |
EP3923152A1 (en) | 2021-12-15 |
CN113778922A (zh) | 2021-12-10 |
EP3923152B1 (en) | 2023-09-06 |
US20210390067A1 (en) | 2021-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6704821B2 (en) | Arbitration method and circuit architecture therefore | |
JP2010286983A (ja) | バス調停回路及びバス調停方法 | |
US8145815B2 (en) | Data processing system | |
JP2000040061A (ja) | バス使用権調停システム | |
US5970234A (en) | PCI bus arbiter and a bus control system having the same | |
US8838862B2 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
JPH08339346A (ja) | バスアービタ | |
US20160275028A1 (en) | Semiconductor device | |
US5640519A (en) | Method and apparatus to improve latency experienced by an agent under a round robin arbitration scheme | |
JP2007058716A (ja) | データ転送バスシステム | |
JP2004334552A (ja) | バス接続回路及びバス接続システム | |
KR100456696B1 (ko) | 집적회로장치의 버스중재기 | |
JP2021196681A (ja) | 半導体装置 | |
JP2008040905A (ja) | 半導体装置、及び記憶装置へのアクセス方法 | |
KR20070053310A (ko) | 버스 액세스 취소 기능을 갖는 데이터 처리 시스템 | |
US6973520B2 (en) | System and method for providing improved bus utilization via target directed completion | |
US5627968A (en) | Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory | |
JP5677007B2 (ja) | バス調停装置、バス調停方法 | |
JP4054598B2 (ja) | メモリ制御回路、dma要求ブロック及びメモリアクセスシステム | |
JP2013105428A (ja) | 信号転送回路 | |
JP6036806B2 (ja) | バスアクセス調停回路およびバスアクセス調停方法 | |
JP2008059047A (ja) | 情報処理システム及びこの制御方法 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
JP4549458B2 (ja) | Dma転送装置 | |
JP2003006139A (ja) | Dma転送装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221031 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230814 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230822 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240305 |