JP2019113917A - データ処理装置、及びデータ処理装置の制御方法 - Google Patents
データ処理装置、及びデータ処理装置の制御方法 Download PDFInfo
- Publication number
- JP2019113917A JP2019113917A JP2017244905A JP2017244905A JP2019113917A JP 2019113917 A JP2019113917 A JP 2019113917A JP 2017244905 A JP2017244905 A JP 2017244905A JP 2017244905 A JP2017244905 A JP 2017244905A JP 2019113917 A JP2019113917 A JP 2019113917A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- request packet
- priority
- bus
- packet
- 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
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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- 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
- G06F13/372—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
-
- 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/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
- G06F13/374—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
-
- 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
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4247—Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
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)
- Communication Control (AREA)
- Memory System (AREA)
- Small-Scale Networks (AREA)
Abstract
【課題】バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置を提供することである。【解決手段】一実施の形態にかかるデータ処理装置1は、複数のバスマスタ11_0〜11_9と複数のスレーブ13_0〜13_9とに接続された複数の中継回路12_0〜12_9がリング状に接続されたリングバス15を備える。中継回路12_0〜12_9は、隣接する中継回路の隣接リクエストパケットと、直近のバスマスタのバスリクエストパケットとを、これらのリクエストパケットの優先度を用いて調停して、調停後のリクエストパケットを次の中継回路に出力する調停回路71と、バスリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じてバスリクエストパケットの優先度を調整する優先度調整回路73と、を備える。【選択図】図1
Description
本発明はデータ処理装置、及びデータ処理装置の制御方法に関し、例えばリングバスを備えたデータ処理装置、及びデータ処理装置の制御方法に関する。
近年、データ処理装置の性能が向上するにつれて、データ処理装置が備えるバスマスタ、及びスレーブの数が増加している。このため、各々のバスマスタ、及び各々のスレーブを接続する配線数も増加しており、この配線集中を緩和することが重要な課題となってきている。例えば、複数のバスマスタと複数のスレーブとを接続するバストポロジにリング型を用いた場合は、スター型を用いた場合よりも配線集中を緩和することができる。
特許文献1には、リングバスに接続された複数の中継装置と、中継装置とノードとのインタフェースを制御するアダプタと、を有するデータ伝送システムに関する技術が開示されている。
上述したように、複数のバスマスタと複数のスレーブとを接続するバストポロジにリング型を用いた場合は、スター型を用いた場合よりも配線集中を緩和することができる。
しかしながら、複数のバスマスタと複数のスレーブとを接続するバストポロジとしてリング型を用いた場合は、スター型を用いた場合よりもバスアクセスのレイテンシにばらつきが生じる。つまり、リングバスを用いた場合は、各々のバスマスタが各々のスレーブにアクセスする際に通過するリングバスの距離にばらつきが生じるため、バスアクセスのレイテンシにばらつきが生じるという問題がある。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態にかかるデータ処理装置は、複数の中継回路がリング状に接続されたリングバスを備える。中継回路は、隣接する中継回路のリクエストパケットである隣接リクエストパケットと、直近のバスマスタのリクエストパケットであるバスリクエストパケットとを、隣接リクエストパケットの優先度とバスリクエストパケットの優先度とを用いて調停する際に、バスリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じてバスリクエストパケットの優先度を調整する。
前記一実施の形態によれば、バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置、及びデータ処理装置の制御方法を提供することができる。
<実施の形態1>
以下、図面を参照して実施の形態1について説明する。
図1は、実施の形態1にかかるデータ処理装置の構成例を示すブロック図である。図1に示すように、データ処理装置1は、複数のバスマスタ11_0〜11_9、複数の中継回路12_0〜12_9、及び複数のスレーブ13_0〜13_9を備える。
以下、図面を参照して実施の形態1について説明する。
図1は、実施の形態1にかかるデータ処理装置の構成例を示すブロック図である。図1に示すように、データ処理装置1は、複数のバスマスタ11_0〜11_9、複数の中継回路12_0〜12_9、及び複数のスレーブ13_0〜13_9を備える。
各々の中継回路12_0〜12_9は、各々のバスマスタ11_0〜11_9および各々のスレーブ13_0〜13_9と接続されている。各々の中継回路12_0〜12_9は、リングバス15を介してリング状に接続されている。よって、各々のバスマスタ11_0〜11_9は、各々の中継回路12_0〜12_9およびリングバス15を経由して各々のスレーブ13_0〜13_9にアクセスすることができる。
例えば、各々のバスマスタ11_0〜11_9は、CPU(Central Processing Unit)等の処理回路であり、所定のリクエストパケットを各々のスレーブ13_0〜13_9に送信することができる。各々のスレーブ13_0〜13_9は、例えばフラッシュメモリやSRAM(Static Random Access Memory)等のメモリ回路であり、各々のバスマスタ11_0〜11_9からの要求に応じて、バスマスタから送信されたデータを格納したり、各々のスレーブ13_0〜13_9に格納されているデータをバスマスタに送信したりすることができる。なお、バスマスタ11_0〜11_9およびスレーブ13_0〜13_9の構成はこのような構成に限定されることはなく、データ処理装置1の用途に応じてユーザが任意に設計することができる。
リングバス15は、一方向(図1では時計回り)にデータを転送可能に構成されている。例えば、バスマスタ11_1は、各々のスレーブ13_0〜13_9にアクセスする際、所定のバスプロトコルで記述されたリクエストパケット41_1(以下、単にリクエスト41_1と記載する場合もある)を、バスマスタ11_1が直接接続されている中継回路12_1に送信する。中継回路12_1は、リクエストパケット41_1に含まれている送信先のアドレスを用いて、リクエストパケットをスレーブ13_1または次の中継回路12_2に送信する。
例えば、リクエストパケット41_1に含まれている送信先のアドレスがスレーブ13_1を示す場合、中継回路12_1は、スレーブ13_1にリクエストパケット42_1を送信する。一方、リクエストパケット41_1に含まれている送信先のアドレスがスレーブ13_0、13_2〜13_9のいずれかを示す場合、中継回路12_1は、次の中継回路12_2にリクエストパケット51_1を送信する。
例えば、バスマスタ11_1がスレーブ13_8にアクセスする場合、つまり、リクエストパケット41_1に含まれている送信先のアドレスがスレーブ13_8を示す場合、バスマスタ11_1から出力されたリクエストパケット41_1は、リングバス15に接続されている中継回路12_1〜12_8を順番に経由してスレーブ13_8に送信される。
スレーブ13_8は、バスマスタ11_1からのリクエストパケットを受信すると、別途設けられたリングバス及び中継回路(図1では不図示)を経由してバスマスタ11_1にレスポンスパケット(データ等)を送信する。
なお、本実施の形態では、各々のバスマスタ11_0〜11_9が各々のスレーブ13_0〜13_9にリクエストパケットを送信する場合について説明する。各々のスレーブ13_0〜13_9が各々のバスマスタ11_0〜11_9にレスポンスパケットを返す場合については、実施の形態5(図11参照)で説明する。
また、図1に示すデータ処理装置1では、一例としてバスマスタ11_0〜11_9、中継回路12_0〜12_9、及びスレーブ13_0〜13_9をそれぞれ10個備える構成を示しているが、本実施の形態では、データ処理装置1が備えるバスマスタ、中継回路、及びスレーブの数は任意に決定することができる。
本実施の形態にかかるデータ処理装置1において、中継回路12_1には、バスマスタ11_1からのリクエストパケット41_1の他に、隣接する中継回路12_0(つまり、一つ手前の中継回路)からのリクエストパケット51_0が供給される。中継回路12_1は、隣接する中継回路12_0のリクエストパケットである隣接リクエストパケット51_0と、直近のバスマスタ11_1のリクエストパケットであるバスリクエストパケット41_1とが競合する場合、隣接リクエストパケット51_0およびバスリクエストパケット41_1を調停して、調停後のリクエストパケットをスレーブ13_1または次の中継回路12_2に送信する。このとき、中継回路12_1は、隣接リクエストパケット51_0の優先度とバスリクエストパケット41_1の優先度とを用いて、隣接リクエストパケット51_0およびバスリクエストパケット41_1を調停する。
図6は、本実施の形態にかかるデータ処理装置1で用いられるリクエストパケットの構成例を示す図である。図6に示すように、リクエストパケット80には、アドレス81、優先度82、マスタID(83)、パケットID(84)、及びデータ85が含まれている。アドレス81は、パケット80の送信先のアドレスである。優先度82は、リクエストパケット80の優先度、つまり、リングバス15内においてリクエストパケット80を転送する際の優先度を示しており、中継回路12_0〜12_9は、優先度の値が高いリクエストパケットを優先して転送する。マスタID(83)は、リクエストパケット80の送信元であるバスマスタ11_0〜11_9を特定するためのIDである。パケットID(84)は、リクエストパケット80自身を特定するためのIDである。データ85は、画像データや音声データなど任意のデータである。なお、リクエストパケット80の中にはデータ85が含まれていないリクエストパケットも存在する。
例えば、バスマスタ11_1がスレーブ13_8(例えば、フラッシュメモリ)に格納されているデータを読み出す場合は、バスマスタ11_1は、スレーブ13_8にリクエストパケット80を送信する。このとき送信されるリクエストパケット80にはデータ85が含まれていない。一方、バスマスタ11_1がスレーブ13_8(例えば、フラッシュメモリ)にデータを格納する場合は、バスマスタ11_1は、スレーブ13_8にデータ85を含むリクエストパケット80を送信する。
次に、中継回路12_0〜12_9の構成例について説明する。図2は、本実施の形態にかかるデータ処理装置1が備える中継回路12_1の構成例を示すブロック図である。図2では、一例として中継回路12_1の構成例を示しているが、他の中継回路12_0、12_2〜12_9についても同様の構成を備える。
図2に示すように、中継回路12_1は、アドレスデコーダ21、調停部22、バッファ回路23、アドレスデコーダ31、調停部32、及びバッファ回路33を備える。
アドレスデコーダ21は、バスマスタ11_1から送信されたリクエストパケット41_1に含まれている有効信号(Mst.valid)とアドレス(Mst.address)とを受信可能に構成されている。アドレスデコーダ21は、有効信号が有効である場合(Mst.valid=1)、受信したアドレス(Mst.address)をデコードし、デコードしたアドレスに応じて、調停部22または調停部32にリクエストパケット41_1の有効信号(Mst.valid)および優先度(Mst.priority)を送信する。例えば、アドレスデコーダ21は、デコードしたアドレスがスレーブ13_1を示す場合、調停部22にリクエストパケット41_1の有効信号(Mst.valid)および優先度(Mst.priority)を送信する。一方、デコードしたアドレスがスレーブ13_0、13_2〜13_9のいずれかを示す場合、アドレスデコーダ21は、調停部32にリクエストパケット41_1の有効信号(Mst.valid)および優先度(Mst.priority)を送信する。なお、バスマスタ11_1から中継回路12_1へのアクセスを、便宜上、縦のアクセスと表現する場合もある。
アドレスデコーダ31は、隣接する中継回路12_0(つまり、一つ手前の中継回路)から送信されたリクエストパケット51_0に含まれている有効信号(Adj.valid)とアドレス(Adj.address)とを受信可能に構成されている。アドレスデコーダ31は、有効信号が有効である場合(Adj.valid=1)、受信したアドレス(Adj.address)をデコードし、デコードしたアドレスに応じて、調停部22または調停部32にリクエストパケット51_0の有効信号(Adj.valid)および優先度(Adj.priority)を送信する。例えば、アドレスデコーダ31は、デコードしたアドレスがスレーブ13_1を示す場合、調停部22にリクエストパケット51_0の有効信号(Adj.valid)および優先度(Adj.priority)を送信する。一方、デコードしたアドレスがスレーブ13_2〜13_9のいずれかを示す場合、アドレスデコーダ31は、調停部32にリクエストパケット51_0の有効信号(Adj.valid)および優先度(Adj.priority)を送信する。なお、隣接する中継回路12_0から中継回路12_1へのアクセスを、便宜上、横のアクセスと表現する場合もある。
調停部22は、スレーブ13_1へのリクエストパケットが競合する場合、これらのリクエストパケットを調停する。具体的には、調停部22は、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0と、が競合する場合、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停後のリクエストパケットをバッファ回路23に送信する。すなわち、調停部22は、アドレスデコーダ21から供給された有効信号(Mst.valid)とアドレスデコーダ31から供給された有効信号(Adj.valid)とが同一タイミングで有効となった場合(Mst.valid=1かつAdj.valid=1)、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停後のリクエストパケットをバッファ回路23に送信する。このとき、調停部22は、リクエストパケット41_1の優先度とリクエストパケット51_0の優先度とを用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。
バッファ回路23は、調停部22から出力されたリクエストパケットを一時的に保持した後、スレーブ13_1にリクエストパケット42_1を出力する。例えば、バッファ回路23は、FIFO(First In, First Out)方式のバッファ回路であり、複数のフリップフロップ回路を用いて構成することができる。複数のフリップフロップ回路はクロック信号に同期して動作する。このような構成により、バッファ回路23は、複数のリクエストパケットを一時的に保持することができる。
バッファ回路23は、バッファ回路23に空きがあり、調停部22から出力されたリクエストパケットを受け付けることが可能な場合、調停後のリクエストパケットに対して受け入れ可能であることを示す信号(ready若しくはgrantと称する)を調停部22に送信する。一方、バッファ回路23に空きがない場合は、後続のリクエストパケットを受け付けることを拒否するハンドシェイク信号を調停部22に送信する。この場合は、ハンドシェイクが不成立となるため、リクエストパケットの受け入れは拒否される。
また、バッファ回路23は、スレーブ13_1から受け入れ可能であることを示す信号(ready若しくはgrant)を受信すると、バッファ回路23に保持されているリクエストパケットをスレーブ13_1に送信する。
図3は、図2に示す調停部22の構成例を示すブロック図である。図3に示すように、調停部22は、調停回路61と選択回路62とを備える。調停回路61は、バスマスタ11_1のリクエストパケット41_1に含まれている有効信号(Mst.valid)と優先度(Mst.priority)をアドレスデコーダ21から受信可能に構成されている。また、調停回路61は、隣接する中継回路12_0のリクエストパケット51_0に含まれている有効信号(Adj.valid)と優先度(Adj.priority)をアドレスデコーダ31から受信可能に構成されている。
調停回路61は、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0と、が競合する場合、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停結果を選択回路62に出力する。すなわち、調停回路61は、アドレスデコーダ21から供給された有効信号(Mst.valid)とアドレスデコーダ31から供給された有効信号(Adj.valid)とが同一タイミングで有効となった場合(Mst.valid=1かつAdj.valid=1)、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停結果を選択回路62に出力する。
このとき、調停回路61は、リクエストパケット41_1の優先度(Mst.priority)とリクエストパケット51_0の優先度(Adj.priority)とを用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。例えば、各々の優先度(Mst.priority/Adj.priority)は数値で表されており、優先度の値が大きいほど優先度が高くなるように設定されている。例えば、優先度は0〜15の値を用いて設定することができる。この場合は、優先度=15が最も優先度が高いリクエストパケットとなる。
調停回路61は、リクエストパケット41_1の優先度(Mst.priority)とリクエストパケット51_0の優先度(Adj.priority)とを比較し、優先度の値が大きい方のリクエストパケットを選択する。選択されたリクエストパケットに関する情報は、調停結果として選択回路62に出力される。なお、リクエストパケット41_1の優先度(Mst.priority)とリクエストパケット51_0の優先度(Adj.priority)とが同じ値である場合は、LRU(Least Recently Used)方式等を用いて、どちらか一方のアクセスを選択する。
選択回路62は、バスマスタ11_1のリクエストパケット(Mst.packet)41_1と、隣接する中継回路12_0のリクエストパケット(Adj.packet)51_0と、を受信し、調停回路61の調停結果に応じて、リクエストパケット(Mst.packet)41_1およびリクエストパケット(Adj.packet)51_0のいずれか一方を、選択されたパケット(selected packet)として出力する。選択されたリクエストパケットは、図2に示すバッファ回路23に出力される。
図2に示す調停部32は、次の中継回路12_2へのリクエストパケットが競合する場合、これらのリクエストパケットを調停する。具体的には、調停部32は、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0と、が競合する場合、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停後のリクエストパケットをバッファ回路33に送信する。すなわち、調停部32は、アドレスデコーダ21から供給された有効信号(Mst.valid)とアドレスデコーダ31から供給された有効信号(Adj.valid)とが同一タイミングで有効となった場合(Mst.valid=1かつAdj.valid=1)、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停後のリクエストパケットをバッファ回路23に送信する。このとき、調停部22は、リクエストパケット41_1の優先度とリクエストパケット51_0の優先度とを用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。
また、調停部32は、バスマスタ11_1のリクエストパケット41_1の送信先に応じてリクエストパケット41_1の優先度を調整する優先度調整回路を備える。具体的には、優先度調整回路は、バスマスタ11_1のリクエストパケット41_1が送信先に到達するまでに通過する中継回路12_0〜12_9の数に応じてリクエストパケット41_1の優先度を調整する。優先度調整回路の詳細については後述する。
バッファ回路33は、調停部32から出力されたリクエストパケットを一時的に保持した後、次の中継回路12_2にリクエストパケット51_1を出力する。例えば、バッファ回路33は、複数のフリップフロップ回路を用いて構成されており、複数のフリップフロップ回路はクロック信号に同期して動作する。このような構成により、バッファ回路33は、複数のリクエストパケットを一時的に保持することができる。
バッファ回路33は、バッファ回路33に空きがあり、調停部32から出力されたリクエストパケットを受け付けることが可能な場合、調停後のリクエストパケットに対して受け入れ可能であることを示す信号(ready若しくはgrantと称する)を調停部32に送信する。一方、バッファ回路33に空きがない場合は、後続のリクエストパケットを受け付けることを拒否するハンドシェイク信号を調停部32に送信する。この場合は、ハンドシェイクが不成立となるため、リクエストパケットの受け入れは拒否される。
また、バッファ回路33は、次の中継回路12_2から受け入れ可能であることを示す信号(ready若しくはgrant)を受信すると、バッファ回路33に保持されているリクエストパケットを次の中継回路12_2に送信する。
図4は、図2に示す調停部32の構成例を示すブロック図である。図4に示すように、調停部32は、調停回路71、選択回路72、及び優先度調整回路73を備える。調停回路71は、バスマスタ11_1のリクエストパケット41_1に含まれている有効信号(Mst.valid)をアドレスデコーダ21から受信可能に構成されている。また、調停回路71は、優先度調整回路73で調整されたリクエストパケット41_1の優先度(Mod.priority)を優先度調整回路73から受信可能に構成されている。なお、優先度調整回路73は、リクエストパケット41_1の優先度(Mst.priority)を調整していない場合は、優先度(Mod.priority)として優先度(Mst.priority)をそのまま出力する。また、調停回路71は、隣接する中継回路12_0のリクエストパケット51_0に含まれている有効信号(Adj.valid)と優先度(Adj.priority)をアドレスデコーダ31から受信可能に構成されている。
調停回路71は、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0と、が競合する場合、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停結果を選択回路72に出力する。すなわち、調停回路71は、アドレスデコーダ21から供給された有効信号(Mst.valid)とアドレスデコーダ31から供給された有効信号(Adj.valid)とが同一タイミングで有効となった場合(Mst.valid=1かつAdj.valid=1)、リクエストパケット41_1およびリクエストパケット51_0を調停して、調停結果を選択回路72に出力する。
このとき、調停回路71は、優先度調整回路73で調整されたリクエストパケット41_1の優先度(Mod.priority)(調整されていない場合は、優先度(Mst.priority))と、リクエストパケット51_0の優先度(Adj.priority)と、を用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。
調停回路71は、優先度調整回路73から供給されたリクエストパケット41_1の優先度(Mod.priority)とリクエストパケット51_0の優先度(Adj.priority)とを比較し、優先度の値が大きい方のリクエストパケットを選択する。選択されたリクエストパケットに関する情報は、調停結果として選択回路72に出力される。
選択回路72は、バスマスタ11_1のリクエストパケット(Mst.packet)41_1と、隣接する中継回路12_0のリクエストパケット(Adj.packet)と、を受信し、調停回路71の調停結果に応じて、リクエストパケット(Mst.packet)41_1およびリクエストパケット(Adj.packet)のいずれか一方を、選択されたリクエストパケット(selected packet)として出力する。選択されたリクエストパケットは、図2に示すバッファ回路33に出力される。
次に、優先度調整回路73について詳細に説明する。優先度調整回路73は、バスマスタ11_1のリクエストパケット41_1が送信先に到達するまでに通過する中継回路12_0〜12_9の数に応じてリクエストパケット41_1の優先度を調整する。具体的には、優先度調整回路73は、調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された回数が所定の閾値を超えた場合に、バスマスタ11_1のリクエストパケット41_1の優先度(Mst.priority)が高くなるように調整する。このとき、所定の閾値は、バスマスタ11_1のリクエストパケット41_1が送信先に到達するまでに通過する中継回路12_0〜12_9の数が多くなるほど小さくなるように設定される。なお、優先度調整回路73においてリクエストパケット41_1の優先度(Mst.priority)が調整されていない場合、優先度調整回路73は、優先度(Mod.priority)として優先度(Mst.priority)を調停回路71に出力する。
図4に示すように、優先度調整回路73は、テーブル75、比較回路76、加算回路77、及びカウンタ78を備える。
テーブル75は、所定の閾値を格納している。図5は、優先度調整回路が備えるテーブル75の一例を示す表であり、所定の閾値の設定例を示している。図5は、中継回路12_1が備えるテーブル75(ルックアップテーブル)の一例を示しており、バスマスタ11_1のリクエストパケット41_1の優先度を調整する際に用いられる所定の閾値の一例を示している。
図5に示すように、所定の閾値は、バスマスタ11_1のリクエストパケット41_1が送信先に到達するまでに通過する中継回路の数が多いほど(つまり、送信先が遠くなるほど)小さくなるように設定される。例えば、バスマスタ11_1のアクセス先がバスマスタ11_1から最も近いスレーブ13_1である場合、所定の閾値は最も大きな値「9」となる。また、バスマスタ11_1のアクセス先がバスマスタ11_1から最も遠いスレーブ13_0である場合(つまり、リングバス15は時計回りであるのでスレーブ13_0が最も遠くなる)、所定の閾値は最も小さな値「0」となる。また、バスマスタ11_1のアクセス先がスレーブ13_2〜13_9である場合は、バスマスタ11_1のアクセス先が遠くなるにつれて(つまり、通過する中継回路の数が多くなるにつれて)、所定の閾値が8、7、・・・、1と順番に小さくなる。
所定の閾値は、図4の調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された回数(以下、「負け回数」とも記載する)の許容回数に対応している。従って、バスマスタ11_1のアクセス先がバスマスタ11_1から最も近いスレーブ13_1である場合は、アクセス先が最も近いためバスマスタ11_1のリクエストパケット41_1が最も多く拒否されることが許容される。一方、バスマスタ11_1のアクセス先がバスマスタ11_1から最も遠いスレーブ13_0である場合は、アクセス先が最も遠いのでバスマスタ11_1のリクエストパケット41_1の負け回数の許容回数が最も小さくなる。すなわち、所定の閾値をこのように設定することで、アクセス先が遠いリクエストパケットを優先的にリングバス15内に入れることができる。
テーブル75は、バスマスタ11_1のリクエストパケット41_1のアクセス先を示すアドレス(Mst.address)(アクセス先のスレーブのアドレスに対応)が供給されると、アドレス(Mst.address)に対応した所定の閾値を比較回路76に出力する。なお、テーブルに格納される所定の閾値は、任意に設定することができる。例えば、テーブル75をレジスタで構成し、CPU等を用いてレジスタに格納されている所定の閾値を書き換え可能に構成してもよい。
カウンタ78には調停回路71の調停結果が供給される。カウンタ78は、調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された回数(負け回数)をカウントし、このカウント値を比較回路76に出力する。
比較回路76は、カウンタ78から供給されたカウント値(つまりバスマスタ11_1のリクエストパケット41_1が拒否された回数(負け回数))と、テーブル75から供給された所定の閾値とを比較し、比較結果を加算回路77に出力する。
比較回路76は、バスマスタ11_1のリクエストパケット41_1が拒否された回数(負け回数)が所定の閾値を超えている場合、比較結果として加算回路77に加算イネーブル信号を出力する。加算回路77は、加算イネーブル信号が供給されると、リクエストパケット41_1の優先度(Mst.priority)に所定の値を加算して優先度を調整し、調整された優先度(Mod.priority)を調停回路71に出力する。
一方、加算回路77は、バスマスタ11_1のリクエストパケット41_1が拒否された回数(負け回数)が所定の閾値以下である場合、比較結果として加算回路77に加算ディスイネーブル信号を出力する。加算回路77は、加算ディスイネーブル信号が供給されると、リクエストパケット41_1の優先度(Mst.priority)に所定の値を加算することなく、優先度(Mst.priority)を優先度(Mod.priority)として調停回路71に出力する。
ここで、本実施の形態にかかるデータ処理装置1では、優先度の値は所定の範囲の数値で設定されている。加算回路77で加算される所定の値は、ユーザが任意に決定することができる。例えば、加算回路77で加算される所定の値は、加算回路77が備えるレジスタ(不図示)に格納されており、ユーザがこのレジスタに格納されている値を書き換えることで、加算する所定の値を変更することができる。
また、加算回路77は、優先度に所定の値を加算する際、優先度の設定範囲の上限値を超えないように加算する。例えば、データ処理装置1の優先度を0〜15の値で設定した場合、加算回路77は、調整された優先度(Mod.priority)の値が15を超えないように調整する。つまり、加算回路77は、飽和処理付きの加算回路を用いて構成することができる。
調停回路71は、優先度調整回路73で調整されたリクエストパケット41_1の優先度(Mod.priority)とリクエストパケット51_0の優先度(Adj.priority)とを比較し、調停結果を選択回路72およびカウンタ78に出力する。カウンタ78は、調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された場合、現在の負け回数に1を加算する。加算された負け回数、つまり、カウンタ78のカウント値は比較回路76に出力される。
次に、優先度調整回路73の動作について、図7に示すフローチャートを用いて説明する。以下で説明する優先度調整回路73の動作では、バスマスタ11_1がスレーブ13_3にリクエストパケット41_1を送信する場合を例として説明する。ここで、各々のリクエストパケットに設定される優先度の範囲は0〜15であるものとする。また、バスマスタ11_1のリクエストパケット41_1の優先度(Mst.priority)は、「10」とする。また、加算回路77が1度に加算する値は、「2」に設定されているものとする。また、隣接する中継回路12_0のリクエストパケット51_0の優先度(Adj.priority)は、「11」とする。なお、隣接する中継回路12_0のリクエストパケット51_0の優先度(Adj.priority)は、調停回路71が受信するリクエストパケット51_0に応じて変化するが、以下の説明では説明を簡略化するために、リクエストパケット51_0の優先度(Adj.priority)を「11」に固定している。
まず、図4に示す優先度調整回路73が初期化される(ステップS1)。このとき、カウンタ78のカウント値(つまり負け回数)は0に設定されている。
その後、バスマスタ11_1から中継回路12_1にリクエストパケット41_1が送信されると、リクエストパケット41_1に含まれている有効信号(Mst.valid)が有効「1」になる(ステップS2)。テーブル75は、リクエストパケット41_1に含まれているアドレス(Mst.address)に対応した閾値を比較回路76に出力する(ステップS3)。この場合は、リクエストパケット41_1の送信先がスレーブ13_3であるので、アドレス(Mst.address)は「7」となる(図5参照)。
その後、比較回路76は、テーブル75から供給された閾値とカウンタ78のカウント値(負け回数)とを比較する(ステップS4)。この場合は、テーブル75から供給された閾値が「7」、負け回数が「0」であるので、「閾値<負け回数」を満たさない(ステップS4:No)。よって、比較回路76は、比較結果として加算回路77に加算ディスイネーブル信号を出力する。加算回路77は、加算ディスイネーブル信号が供給されると、リクエストパケット41_1の優先度(Mst.priority)に所定の値を加算することなく、優先度(Mst.priority)を優先度(Mod.priority)として調停回路71に出力する(ステップS6)。
次に、調停回路71は、リクエストパケット41_1の調停を開始する(ステップS7)。調停回路71が受信しているリクエストパケットがリクエストパケット41_1のみである場合、リクエストパケット41_1の有効信号(Mst.valid)のみが有効となり、隣接する中継回路12_0のリクエストパケット51_0の有効信号(Adj.valid)は無効「0」となる(ステップS8:Yes)。
この場合、調停回路71は、競合するリクエストがないので、リクエストパケット41_1を選択する。選択されたリクエストパケットに関する情報は、調停結果として選択回路72に出力される。選択回路72は、バスマスタ11_1のリクエストパケット(Mst.packet)41_1を、選択されたリクエストパケット(selected packet)として出力する。
また、優先度調整回路73は、カウンタ78のカウント値(負け回数)を0にリセットする(ステップS9)。
一方、調停回路71が受信しているリクエストパケットが、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0である場合、リクエストパケット41_1の有効信号(Mst.valid)に加えて、隣接する中継回路12_0のリクエストパケット51_0の有効信号(Adj.valid)も有効になる(ステップS8:No)。この場合は、リクエストパケット41_1およびリクエストパケット51_0が競合するので、調停回路71は、優先度調整回路73から出力されたリクエストパケット41_1の優先度(Mod.priority)と、リクエストパケット51_0の優先度(Adj.priority)と、を用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。
このとき、リクエストパケット41_1の優先度(Mod.priority)は「10」(優先度(Mst.priority)と同じ)であり、リクエストパケット51_0の優先度(Adj.priority)は「11」であるので、調停回路71は、隣接する中継回路12_0のリクエストパケット51_0を選択する(ステップS10:Yes)。この調停結果は、選択回路72およびカウンタ78に出力される。
カウンタ78は、調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された場合、現在の負け回数に1を加算する(ステップS11)。この場合は、カウンタのカウント値(負け回数)は「1」となる。
その後、比較回路76は、ステップS4へと戻り、再び、テーブル75から供給された閾値とカウンタ78のカウント値(負け回数)とを比較する。この場合は、テーブル75から供給された閾値が「7」、負け回数が「1」であるので、「閾値<負け回数」を満たさない(ステップS4:No)。よって、比較回路76は、比較結果として加算回路77に加算ディスイネーブル信号を出力する。加算回路77は、加算ディスイネーブル信号が供給されると、リクエストパケット41_1の優先度(Mst.priority)に所定の値を加算することなく、優先度(Mst.priority)を優先度(Mod.priority)として調停回路71に出力する(ステップS6)。
次に、調停回路71は、リクエストパケット41_1の調停を開始する(ステップS7)。調停回路71が受信しているリクエストパケットが、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0である場合、リクエストパケット41_1の有効信号(Mst.valid)に加えて、隣接する中継回路12_0のリクエストパケット51_0の有効信号(Adj.valid)も有効になる(ステップS8:No)。この場合は、リクエストパケット41_1およびリクエストパケット51_0が競合するので、調停回路71は、優先度調整回路73から出力されたリクエストパケット41_1の優先度(Mod.priority)と、リクエストパケット51_0の優先度(Adj.priority)と、を用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。
このとき、リクエストパケット41_1の優先度(Mod.priority)は「10」(優先度(Mst.priority)と同じ)であり、リクエストパケット51_0の優先度(Adj.priority)は「11」であるので、調停回路71は、隣接する中継回路12_0のリクエストパケット51_0を選択する(ステップS10:Yes)。この調停結果は、選択回路72およびカウンタ78に出力される。
カウンタ78は、調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された場合、現在の負け回数に1を加算する(ステップS11)。この場合は、カウンタのカウント値(負け回数)は「2」となる。
このような動作は、ステップS11において、カウンタ78のカウント値(負け回数)が「8」になるまで継続される。すなわち、ステップS11において、カウンタ78のカウント値(負け回数)が「8」になると、テーブル75から供給された閾値「7」よりもカウンタ78のカウント値(負け回数)「8」が大きくなる。この場合は、ステップS4において、「閾値<負け回数」を満たすので(ステップS4:Yes)、比較回路76は、比較結果として加算回路77に加算イネーブル信号を出力する。
加算回路77は、加算イネーブル信号が供給されると、リクエストパケット41_1の優先度(Mst.priority)に所定の値「2」を加算し、加算した後の優先度を優先度(Mod.priority)として調停回路71に出力する(ステップS5)。
次に、調停回路71は、リクエストパケット41_1の調停を開始する(ステップS7)。調停回路71が受信しているリクエストパケットが、バスマスタ11_1のリクエストパケット41_1と、隣接する中継回路12_0のリクエストパケット51_0である場合、リクエストパケット41_1の有効信号(Mst.valid)に加えて、隣接する中継回路12_0のリクエストパケット51_0の有効信号(Adj.valid)も有効になる(ステップS8:No)。この場合は、リクエストパケット41_1およびリクエストパケット51_0が競合するので、調停回路71は、優先度調整回路73から出力されたリクエストパケット41_1の優先度(Mod.priority)と、リクエストパケット51_0の優先度(Adj.priority)と、を用いて、リクエストパケット41_1およびリクエストパケット51_0を調停する。
このとき、リクエストパケット41_1の優先度(Mod.priority)は「12」であり、リクエストパケット51_0の優先度(Adj.priority)は「11」であるので、調停回路71は、バスマスタ11_1のリクエストパケット41_1を選択する(ステップS10:No)。この調停結果は、選択回路72およびカウンタ78に出力される。選択回路72は、バスマスタ11_1のリクエストパケット(Mst.packet)41_1を、選択されたリクエストパケット(selected packet)として出力する。
また、優先度調整回路73は、カウンタ78のカウント値(負け回数)を0にリセットする(ステップS9)。
以上で説明した動作により、優先度調整回路73は、バスマスタ11_1のリクエストパケット41_1が送信先に到達するまでに通過する中継回路12_0〜12_9の数に応じてリクエストパケット41_1の優先度を調整することができる。具体的には、優先度調整回路73は、調停回路71においてバスマスタ11_1のリクエストパケット41_1が拒否された回数が所定の閾値を超えた場合に、バスマスタ11_1のリクエストパケット41_1の優先度(Mst.priority)が高くなるように調整することができる。上述したように、所定の閾値は、バスマスタ11_1のリクエストパケット41_1が送信先に到達するまでに通過する中継回路12_0〜12_9の数が多くなるほど小さくなるように設定される。
なお、上述した例では、ステップS5において、加算回路77がリクエストパケット41_1の優先度(Mst.priority)に所定の値を加算した直後に、調停回路71においてリクエストパケット41_1の優先度(Mod.priority)が選択される場合について説明した。しかしながら、リクエストパケット41_1と競合するリクエストパケット51_0の優先度(Adj.priority)によっては、リクエストパケット41_1の優先度(Mst.priority)に所定の値を加算したとしても、リクエストパケット41_1が選択されない(負ける)場合がある。
このような場合は、加算回路77において更に所定の値を加算してもよい。例えば、加算回路77において2度加算した場合は、リクエストパケット41_1の調整後の優先度(Mod.priority)は、「14(=10+2+2)」となる。
また、加算回路77において更に所定の値を加算するのではなく、競合するリクエストパケット51_0の優先度(Adj.priority)が低くなるまで、調停回路71における調停を繰り返してもよい。
また、リクエストパケット41_1の優先度(Mst.priority)に所定の値を加算した後、リクエストパケット41_1が選択されない場合には、次のようにリクエストパケット41_1を調停してもよい。すなわち、リクエストパケット41_1の優先度が高く、リクエストパケット41_1を停滞させたくない場合(すなわち、リクエストパケット41_1を優先的にリングバス15内に入れたい場合)には、次の調停において加算後の優先度が最大値(15)になるようにしてもよい。
背景技術で説明したように、複数のバスマスタと複数のスレーブとを接続するバストポロジにリング型を用いた場合は、スター型を用いた場合よりも配線集中を緩和することができる。
しかしながら、複数のバスマスタと複数のスレーブとを接続するバストポロジとしてリング型を用いた場合は、スター型を用いた場合よりもバスアクセスのレイテンシにばらつきが生じる。つまり、リングバスを用いた場合は、各々のバスマスタが各々のスレーブにアクセスする際に通過するリングバスの距離にばらつきが生じるため、バスアクセスのレイテンシにばらつきが生じるという問題があった。
これに対して本実施の形態にかかるデータ処理装置1では、バスマスタのリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じて、バスマスタのリクエストパケットの優先度を調整する優先度調整回路を設けている。よって、バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置、及びデータ処理装置の制御方法を提供することができる。
すなわち、本実施の形態にかかるデータ処理装置1では、調停回路においてバスマスタのリクエストパケットが拒否された回数が所定の閾値を超えた場合に、バスマスタのリクエストパケットの優先度が高くなるように調整している。ここで、所定の閾値は、バスマスタのリクエストパケットが送信先に到達するまでに通過する中継回路の数が多くなるほど小さくなるように設定されている。換言すると、所定の閾値は、バスマスタのリクエストパケットの送信先が遠くなるほど小さくなるように設定されている。
この所定の閾値は、バスマスタのリクエストパケットが拒否された回数(負け回数)の許容回数に対応している。従って、バスマスタのアクセス先がバスマスタから近い(通過する中継回路の数が少ない)スレーブである場合は、アクセス先が近いためバスマスタのリクエストパケットが多く拒否されることが許容される。一方、バスマスタのアクセス先がバスマスタから遠い(通過する中継回路の数が多い)スレーブである場合は、アクセス先が遠いのでバスマスタのリクエストパケットの負け回数の許容回数が小さくなる。すなわち、所定の閾値をこのように設定することで、アクセス先が遠い(通過する中継回路の数が多い)リクエストパケットを優先的にリングバス内に入れることができ、アクセス先が遠いリクエストパケットがリングバス内の帯域を占有し得る可能性を高めることが可能になる。従って、バスアクセスのレイテンシにばらつきが生じることを抑制することが可能なデータ処理装置、及びデータ処理装置の制御方法を提供することができる。
例えば、バスマスタを備える回路が、スレーブに保持されているデータをリードすることによって処理を開始するように構成されている場合は、バスマスタを備える回路はリードデータを受信するまで待機状態となる。例えば、リングバス内でステップ数(通過する中継回路の数に対応)の小さいバスマスタのリクエストが優先されたり、全てのバスマスタのリクエストの優先度が同等である場合は、ステップ数の大きいバスマスタのリクエストの待機時間の割合がステップ数の小さいバスマスタのリクエストよりも高くなる。この場合、ステップ数の小さいバスマスタが処理を終えた時点で、処理開始が遅れたステップ数の大きいバスマスタの処理は未完了であり、ステップ数の大きいバスマスタは動作を継続しなければならない。
複数のバスマスタの処理が全て完了することで最終結果が得られるシステムでは、個々のバスマスタの性能ばらつきが最終的な性能劣化を引き起こす場合がある。本実施の形態にかかるデータ処理装置では、各々のバスマスタの性能のバランスを平滑化することが可能になり、データ処理装置全体の処理性能の劣化を抑止することが可能となる。また、ユーザが意図的に早期完了させたい処理がある場合、バスマスタの設定を変更することで調整することができる。
なお、上記の説明では、図4に示した調停部32を図2に示した調停部32に適用した場合について説明したが、本実施の形態にかかるデータ処理装置では、図2に示す調停部22に図4に示した調停部を適用してもよい。つまり、バスマスタが直近のスレーブにアクセスする場合にも、本実施の形態にかかる技術を用いてもよい。
<実施の形態2>
次に、実施の形態2について説明する。図8は、実施の形態2にかかるデータ処理装置の構成例を示すブロック図である。図8に示すデータ処理装置2では、実施の形態1で説明したデータ処理装置(図1参照)と比べて、データ処理装置2が監視回路90及び制限回路91_0〜91_9を備える点が異なる。これ以外の構成および動作については、実施の形態1で説明したデータ処理装置1と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
次に、実施の形態2について説明する。図8は、実施の形態2にかかるデータ処理装置の構成例を示すブロック図である。図8に示すデータ処理装置2では、実施の形態1で説明したデータ処理装置(図1参照)と比べて、データ処理装置2が監視回路90及び制限回路91_0〜91_9を備える点が異なる。これ以外の構成および動作については、実施の形態1で説明したデータ処理装置1と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
図8に示すように、データ処理装置2は、複数のバスマスタ11_0〜11_9、複数の中継回路12_0〜12_9、複数のスレーブ13_0〜13_9、監視回路90、及び複数の制限回路91_0〜91_9を備える。
監視回路90は、リングバス15に存在するリクエストパケットの量を監視する。具体的には、各々の中継回路12_0〜12_9は、各々の中継回路12_0〜12_9が保持しているリクエストパケットの量に関する情報93を、監視回路90に供給する。監視回路90は、各々の中継回路12_0〜12_9から供給された情報93に基づいて、各々の中継回路12_0〜12_9が保持しているリクエストパケットの量を把握し、リングバス15に存在するリクエストパケットの量を監視する。
例えば、監視回路90は、図2に示したバッファ回路33に保持されているリクエストパケットの量を監視することで、リングバス15に存在するリクエストパケットの量を監視することができる。例えば、中継回路12_1から次の中継回路12_2にリクエストパケットを受け渡す場合は、受け入れ先の中継回路12_2が受け入れ可能でなければ、リクエストパケットは中継回路12_1のバッファ回路33に保持された状態(待機状態)となる。よって、監視回路90は、各々の中継回路12_0〜12_9のバッファ回路33において待機状態となっているリクエストパケットの量を把握することで、リングバス15全体のリクエストパケットの量を監視することができる。
各々の制限回路91_0〜91_9は、各々のバスマスタ11_0〜11_9と各々の中継回路12_0〜12_9との間に設けられている。各々の制限回路91_0〜91_9は、各々のバスマスタ11_0〜11_9の各々の中継回路12_0〜12_9へのアクセスを制限する機能を備える。具体的には、各々の制限回路91_0〜91_9は、各々のバスマスタ11_0〜11_9のリクエストパケットが各々の中継回路12_0〜12_9に送信されることを拒絶する機能を備える。例えば、各々の制限回路91_0〜91_9は、各々のバスマスタ11_0〜11_9のリクエストパケットの有効信号を無効(Mst.valid=0)にすることで、リクエストパケットが各々の中継回路12_0〜12_9に送信されることを拒絶することができる。
各々の制限回路91_0〜91_9には、監視回路90から制御信号94が供給されている。各々の制限回路91_0〜91_9は、制御信号94に応じて、各々のバスマスタ11_0〜11_9の各々の中継回路12_0〜12_9へのアクセスを制限する。具体的には、監視回路90は、リングバス15に存在するリクエストパケットの量に応じて各々の制限回路91_0〜91_9を制御し、バスマスタ11_0〜11_9から中継回路12_0〜12_9に供給されるリクエストパケットを制限する。
例えば、監視回路90は、各々の中継回路12_0〜12_9が備える各々のバッファ回路33の少なくとも一つに空きがない場合に、各々のバスマスタ11_0〜11_9から各々の中継回路12_0〜12_9に供給されるリクエストパケットを制限してもよい。なお、監視回路90がバスマスタのリクエストを制限する基準は、ユーザが任意に決定することができる。
また、各々の制限回路91_0〜91_9は、アクセス制限をする際に、全てのバスマスタ11_0〜11_9のアクセスを制限してもよく、また特定のバスマスタのアクセスを制限するようにしてもよい。例えば、各々の制限回路91_0〜91_9は、中継回路12_0〜12_9のうちバッファ回路33に空きがない中継回路へのバスマスタのアクセスを制限するようにしてもよい。
このように、本実施の形態にかかるデータ処理装置2では、監視回路90を用いてリングバス15内のリクエストパケットの量を監視し、この監視結果に応じて、各々のバスマスタ11_0〜11_9から各々の中継回路12_0〜12_9に新たにリクエストパケットが送信されることを制限している。よって、リングバス15内に存在するリクエストパケットの量を制限することができるので、リングバス15の流動性が失われることを抑制することができる。換言すると、リングバス15においてリクエストパケットが停滞することを抑制することができる。したがって、真に優先度の高いリクエストパケットをリングバス15内において優先的に通すことができる。
実施の形態1にかかるデータ処理装置では、リクエストパケットが通過する中継回路の数(つまり、バスマスタがアクセスするスレーブまでの距離)を考慮してリクエストパケットの優先度を調整することで、優先度の高いリクエストパケットを優先的にリングバス内に入れることができる。しかしながら、優先度の高いリクエストパケットを優先的にリングバス内に入れることができたとしても、その先の中継回路においてリクエストパケットが停滞していると、優先度を調整してリクエストパケットをリングバス内に入れたことによる効果が薄れてしまう。本実施の形態にかかるデータ処理装置2では、リングバス内のバッファ回路においてリクエストパケットの停滞が発生することを事前に抑制することで、実施の形態1にかかるデータ処理装置で得られる効果、すなわち、優先度を調整してリクエストパケットを優先的にリングバス内に入れることにより得られる効果が薄れてしまうことを抑制することができる。
<実施の形態3>
次に、実施の形態3について説明する。実施の形態3では、実施の形態1、2で説明したデータ処理装置1、2と比べて、中継回路が備えるバッファ回路の構成が異なる。これ以外の構成および動作については、実施の形態1、2で説明したデータ処理装置1、2と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
次に、実施の形態3について説明する。実施の形態3では、実施の形態1、2で説明したデータ処理装置1、2と比べて、中継回路が備えるバッファ回路の構成が異なる。これ以外の構成および動作については、実施の形態1、2で説明したデータ処理装置1、2と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
図9は、本実施の形態にかかるデータ処理装置が備えるバッファ回路の構成例を示すブロック図である。図9に示すバッファ回路110は、図2に示したバッファ回路23、33に対応している。なお、図2に示す2つのバッファ回路23、33のうち、一方のみを図9に示すバッファ回路110で構成してもよい。リングバス15の流動性を考慮すると、少なくとも図2に示すバッファ回路33を図9に示すバッファ回路110で構成することが好ましい。
図9に示すバッファ回路110は、複数のリクエストパケットの優先度に応じて、次の送信先(中継回路またはスレーブ)に出力するリクエストパケットの順番を入れ替え可能に構成されている。図9に示すように、バッファ回路110は、保持回路111、112、比較回路113、及び選択回路114を備える。
保持回路111は、リクエストパケット(Selected packet)を一時的に保持可能に構成されている。保持回路112は、保持回路111の次段に設けられており、保持回路111から送られたリクエストパケットを一時的に保持可能に構成されている。保持回路111、112はそれぞれ、クロック信号に同期して動作するフリップフロップ回路を用いて構成することができる。
比較回路113は、保持回路111に保持されているリクエストパケットの優先度と保持回路112に保持されているリクエストパケットの優先度とを比較し、比較結果を選択回路114に出力する。
選択回路114は、比較回路113から供給された比較結果に応じて、保持回路111に保持されているリクエストパケットおよび保持回路112に保持されているリクエストパケットのいずれか一方を選択して出力する。このとき、選択回路114は、保持回路111に保持されているリクエストパケットおよび保持回路112に保持されているリクエストパケットのうち優先度が高いほうのリクエストパケットを選択して出力する。
次に、バッファ回路110の具体的な動作について説明する。
保持回路111のみにリクエストパケットが保持されている場合は、保持回路111から比較回路113に供給される有効信号(Rtb1.valid)のみが有効になる。この場合、比較回路113は、保持回路111に保持されているリクエストパケットが選択されるような選択信号を選択回路114に出力する。そして選択回路114は、保持回路111に保持されているリクエストパケットを出力する。
保持回路111のみにリクエストパケットが保持されている場合は、保持回路111から比較回路113に供給される有効信号(Rtb1.valid)のみが有効になる。この場合、比較回路113は、保持回路111に保持されているリクエストパケットが選択されるような選択信号を選択回路114に出力する。そして選択回路114は、保持回路111に保持されているリクエストパケットを出力する。
また、保持回路111のみにリクエストパケットが保持されている状態において、バッファ回路110の次の送信先がリクエストパケットを受け入れることができず、バッファ回路110に新たにリクエストパケットが供給された場合は、保持回路111に保持されているリクエストパケットが保持回路112に移動し、保持回路111に新たにリクエストパケットが保持される。
また、保持回路111、112にリクエストパケットが保持されている場合は、保持回路111、112から比較回路113に供給される有効信号(Rtb1.valid、Rtb2.valid)が有効になる。この場合、比較回路113は、保持回路111に保持されているリクエストパケットの優先度(Rtb1.priority)と保持回路112に保持されているリクエストパケットの優先度(Rtb2.priority)とを比較し、優先度が高い方のリクエストパケットが選択されるような選択信号を選択回路114に出力する。
選択回路114は、保持回路111に保持されているリクエストパケットおよび保持回路112に保持されているリクエストパケットのうち優先度が高いほうのリクエストパケットを選択して出力する。例えば、保持回路111に保持されているリクエストパケットの優先度(Rtb1.priority)が、保持回路112に保持されているリクエストパケットの優先度(Rtb2.priority)よりも高い場合、選択回路114は、保持回路111に保持されているリクエストパケットを選択して出力する。これにより、保持回路111に保持されているリクエストパケットは、保持回路112に保持されているリクエストパケットを追い越すことができる。
本実施の形態にかかるデータ処理装置が備えるバッファ回路110は、複数のリクエストパケットの優先度に応じて、次の送信先(中継回路またはスレーブ)に出力するリクエストパケットの順番を入れ替え可能に構成されている。よって、優先度の高いバスパケットを優先的に転送することができる。なお、このような機能はリングバス15の内部の帯域が増えた場合や、特定のスレーブがアクセスを一時的に受け付けられず、局所的に停滞する箇所が発生した場合等に特に有効である。
例えば、実施の形態1にかかるデータ処理装置のように、リクエストパケットが通過する中継回路の数に応じて閾値(図5参照)を定めて優先度を調整したとしても、バッファ回路においてリクエストパケットが停滞してしまう場合がある。このような場合に、バッファ回路において優先度に従って順番を入れ替える(リオーダー)ことで、バスアクセスのレイテンシにばらつきが生じることをより効果的に抑制することができる。
<実施の形態4>
次に、実施の形態4について説明する。図10は、実施の形態4にかかるデータ処理装置の構成例を示すブロック図である。実施の形態4にかかるデータ処理装置では、実施の形態1〜3で説明したデータ処理装置と比べて、データ処理装置が両方向にデータを転送可能なリングバス、すなわち、時計回りにデータを転送可能なリングバスに加えて、反時計回りにデータを転送可能なリングバスを備える点が異なる。これ以外の構成および動作については、実施の形態1〜3で説明したデータ処理装置と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
次に、実施の形態4について説明する。図10は、実施の形態4にかかるデータ処理装置の構成例を示すブロック図である。実施の形態4にかかるデータ処理装置では、実施の形態1〜3で説明したデータ処理装置と比べて、データ処理装置が両方向にデータを転送可能なリングバス、すなわち、時計回りにデータを転送可能なリングバスに加えて、反時計回りにデータを転送可能なリングバスを備える点が異なる。これ以外の構成および動作については、実施の形態1〜3で説明したデータ処理装置と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
図10に示すように、データ処理装置3は、複数のバスマスタ11_0〜11_9、複数の中継回路121_0〜121_9、122_0〜122_9、及び複数のスレーブ13_0〜13_9を備える。
各々の中継回路121_0〜121_9は、各々のバスマスタ11_0〜11_9および各々の中継回路122_0〜122_9と接続されている。各々の中継回路121_0〜121_9は、時計回りにデータを転送可能なリングバス125を介してリング状に接続されている。
各々の中継回路122_0〜122_9は、各々のスレーブ13_0〜13_9および各々の中継回路121_0〜121_9と接続されている。各々の中継回路122_0〜122_9は、反時計回りにデータを転送可能なリングバス126を介してリング状に接続されている。
各々のバスマスタ11_0〜11_9は、各々の中継回路121_0〜121_9、122_0〜122_9およびリングバス125、126を経由して各々のスレーブ13_0〜13_9にアクセスすることができる。
例えば、バスマスタ11_1がスレーブ13_4にバスパケットを送信する場合は、中継回路121_1、121_2、121_3、121_4の順に経由し、更に中継回路122_4を経由してスレーブ13_4にバスパケットを送信する。
各々の中継回路121_0〜121_9、122_0〜122_9は、図2に示した中継回路12_1と同様の構成を備える。したがって、各々の中継回路121_0〜121_9、122_0〜122_9は、競合するリクエストパケットを、各々のリクエストパケットの優先度に応じて調停することができる。
例えば、中継回路121_1には、バスマスタ11_1からのリクエストパケットの他に、隣接する中継回路121_0(つまり、一つ手前の中継回路)からのリクエストパケットが供給される。中継回路121_1は、隣接する中継回路121_0のリクエストパケットと、直近のバスマスタ11_1のリクエストパケットとが競合する場合、これらのリクエストパケットを調停して、調停後のリクエストパケットをリングバス126の中継回路122_1または次の中継回路121_2に送信する。このとき、中継回路121_1は、各々のリクエストパケットの優先度を用いて、各々のリクエストパケットを調停する。
また、例えば、中継回路122_1には、リングバス125の中継回路121_1からのリクエストパケットと、隣接する中継回路122_2(つまり、一つ手前の中継回路)からのリクエストパケットが供給される。中継回路122_1は、中継回路121_1からのリクエストパケットと中継回路122_2からのリクエストパケットとが競合する場合、これらのリクエストパケットを調停して、調停後のリクエストパケットを次の中継回路122_0またはスレーブ13_1に送信する。このとき、中継回路122_1は、各々のリクエストパケットの優先度を用いて、各々のリクエストパケットを調停する。
また、各々の中継回路121_0〜121_9は、各々のバスマスタ11_0〜11_9のリクエストパケットが送信先に到達するまでに通過する中継回路の数に応じてリクエストパケットの優先度を調整する優先度調整回路を備える。優先度調整回路については、図4に示した優先度調整回路73と同様であるので重複した説明は省略する。
なお、本実施の形態では、優先度調整回路73が備えるテーブル75に格納する所定の閾値は、時計回りのリングバス125および反時計回りのリングバス126の両方を考慮したルートに基づいて決定される。例えば、バスマスタ11_1を基準とすると、スレーブ13_6がバスマスタ11_1から最も遠い(つまり、通過する中継回路の数が最も多い)アクセス先となる。また、例えばスレーブ13_5とスレーブ13_7は、バスマスタ11_1から同一距離のアクセス先となる。また、スレーブ13_1がバスマスタ11_1から最も近い(つまり、通過する中継回路の数が最も少ない)アクセス先となる。
本実施の形態にかかるデータ処理装置3では、時計回りにデータを転送可能なリングバス125と反時計回りにデータを転送可能なリングバス126とを備えるので、各々のバスマスタ11_0〜11_9が各々のスレーブ13_0〜13_9にリクエストパケットを送信する際の経路を短くすることができる。
また、時計回りのリングバスを経由する場合はテーブルに定義する閾値(図5参照)を小さく設定しなければならない場合でも、反時計回りのリングバスを使用できる場合には、テーブルに定義する閾値を大きく設定できる(つまり、閾値を無駄に小さくする必要はない)。これにより、真に優先度が高いリクエストを送信しやすくできる。
<実施の形態5>
次に、実施の形態5について説明する。図11は、実施の形態5にかかるデータ処理装置の構成例を示すブロック図である。実施の形態5にかかるデータ処理装置4では、実施の形態1〜4で説明したデータ処理装置と比べて、各々のスレーブ13_0〜13_9が各々のバスマスタ11_0〜11_9にレスポンスパケットを返している点が異なる。これ以外の構成および動作については、実施の形態1〜4で説明したデータ処理装置と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
次に、実施の形態5について説明する。図11は、実施の形態5にかかるデータ処理装置の構成例を示すブロック図である。実施の形態5にかかるデータ処理装置4では、実施の形態1〜4で説明したデータ処理装置と比べて、各々のスレーブ13_0〜13_9が各々のバスマスタ11_0〜11_9にレスポンスパケットを返している点が異なる。これ以外の構成および動作については、実施の形態1〜4で説明したデータ処理装置と同様であるので、同一の構成要件には同一の符号を付し、重複した説明は省略する。
図11に示すように、データ処理装置4は、複数のバスマスタ11_0〜11_9、複数の中継回路131_0〜131_9、及び複数のスレーブ13_0〜13_9を備える。
各々の中継回路131_0〜131_9はレスポンス用の中継回路であり、各々のバスマスタ11_0〜11_9および各々のスレーブ13_0〜13_9と接続されている。各々の中継回路131_0〜131_9は、レスポンス用のリングバス135を介してリング状に接続されている。よって、各々のスレーブ13_0〜13_9は、各々の中継回路131_0〜131_9およびリングバス135を経由して各々のバスマスタ11_0〜11_9にレスポンスパケットを返すことができる。リングバス135は、一方向(図11では時計回り)にデータを転送可能に構成されている。なお、レスポンスパケットは、図6に示したリクエストパケット80と基本的には同様の構成を備える。ただし、「マスタID」は「スレーブID」となる。
例えば、スレーブ13_1がバスマスタ11_8にレスポンスパケットを返す場合、つまり、レスポンスパケットに含まれている送信先のアドレスがバスマスタ11_8を示す場合、スレーブ13_1から出力されたレスポンスパケットは、リングバス135に接続されている中継回路131_1〜131_8を順番に経由してバスマスタ11_8に送信される。
なお、図11に示すデータ処理装置4では、一例としてバスマスタ11_0〜11_9、中継回路131_0〜131_9、及びスレーブ13_0〜13_9をそれぞれ10個備える構成を示しているが、本実施の形態では、データ処理装置1が備えるバスマスタ、中継回路、及びスレーブの数は任意に決定することができる。
本実施の形態にかかるデータ処理装置1では、中継回路131_1には、スレーブ13_1からのレスポンスパケットの他に、隣接する中継回路131_0(つまり、一つ手前の中継回路)からのレスポンスパケットが供給される。中継回路131_1は、隣接する中継回路131_0のレスポンスパケットと、直近のスレーブ13_1のレスポンスパケットとが競合する場合、これらのレスポンスパケットを調停して、調停後のレスポンスパケットをバスマスタ11_1または次の中継回路131_2に送信する。このとき、中継回路131_1は、各々のレスポンスパケットの優先度を用いて、各々のレスポンスパケットを調停する。
本実施の形態にかかるデータ処理装置4が備える中継回路131_0〜131_9の構成は、基本的には図2〜図3に示した中継回路12_1の構成と同様である。ただし、図2〜図4におけるバスマスタのリクエストパケットは、スレーブのレスポンスパケットに置き換わる。つまり、バスマスタのアドレス(Mst.address)、有効信号(Mst.valid)、優先度(Mst.priority)、パケット(Mst.packet)はそれぞれ、スレーブのアドレス(Slv.address)、有効信号(Slv.valid)、優先度(Slv.priority)、パケット(Slv.packet)に置き換わる。
本実施の形態にかかるデータ処理装置4においても、中継回路131_0〜131_9は、スレーブのレスポンスパケットが送信先に到達するまでに通過する中継回路の数に応じてレスポンスパケットの優先度を調整する優先度調整回路(図4の優先度調整回路73参照)を備える。例えば、優先度調整回路73は、スレーブ13_1のレスポンスパケットの送信先に応じてレスポンスパケットの優先度を調整する。具体的には、優先度調整回路73は、調停回路71においてスレーブ13_1のレスポンスパケットが拒否された回数が所定の閾値を超えた場合に、スレーブ11_1のレスポンスパケットの優先度(Slv.priority)が高くなるように調整する。このとき、所定の閾値は、スレーブ13_1のレスポンスパケットが送信先に到達するまでに通過する中継回路131_0〜131_9の数が多くなるほど小さくなるように設定される。なお、優先度調整回路73においてレスポンスパケットの優先度(Slv.priority)が調整されていない場合、優先度調整回路73は、優先度(Mod.priority)として優先度(Slv.priority)を調停回路71に出力する。
優先度調整回路がスレーブのレスポンスパケットの送信先に応じてレスポンスパケットの優先度を調整する動作については、実施の形態1で説明した場合と同様であるので、重複した説明は省略する。本実施の形態にかかるデータ処理装置においても、スレーブがバスマスタへアクセスする際のレイテンシにばらつきが生じることを抑制することができる。
例えば、実施の形態1で説明したリクエストパケットの調停において、カウンタ78(図4参照)の値からテーブル75で定義した閾値を差し引いた値が正のときは、この値(カウンタ値−閾値)が負け回数の許容値を超えた回数を意味している。この値が大きい場合は、リクエスト側で負け回数が多く、アクセスに時間がかかったことを意味しており、レスポンス側においてレスポンスパケットの優先度を上げる必要がある。よって、この値をリクエストパケットに付加するようにすれば、この値に応じてレスポンスパケットの優先度や閾値を設定することができ、リクエスト側のアクセス状況をレスポンス側に反映することができる。これにより、往復のアクセス時間を総合的に考慮したアクセスレイテンシの調整を実現できる。
なお、データ処理装置では、バスマスタがスレーブにリクエストパケットを送信し、スレーブがバスマスタにレスポンスパケットを返すという動作を繰り返している。よって、データ処理装置は、実施の形態1で説明したデータ処理装置の構成(リクエスト側の構成)と、実施の形態5で説明したデータ処理装置の構成(レスポンス側の構成)とを併せ持つことが好ましい。
ただし、データ処理装置のリクエスト側のみに優先度調整回路を設けてもよく(実施の形態1の構成)、またデータ処理装置のレスポンス側のみに優先度調整回路を設けてもよい(実施の形態5の構成)。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
1、2、3、4 データ処理装置
11_0〜11_9 バスマスタ
12_0〜12_9 中継回路
13_0〜13_9 スレーブ
15 リングバス
21、31 アドレスデコーダ
22、32 調停部
23、33 バッファ回路
41_1、51_0 リクエストパケット
61、71 調停回路
62、72 選択回路
73 優先度調整回路
75 テーブル
76 比較回路
77 加算回路
78 カウンタ
11_0〜11_9 バスマスタ
12_0〜12_9 中継回路
13_0〜13_9 スレーブ
15 リングバス
21、31 アドレスデコーダ
22、32 調停部
23、33 バッファ回路
41_1、51_0 リクエストパケット
61、71 調停回路
62、72 選択回路
73 優先度調整回路
75 テーブル
76 比較回路
77 加算回路
78 カウンタ
Claims (13)
- 複数のバスマスタと、
前記複数のバスマスタがアクセス可能な複数のスレーブと、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続された複数の中継回路と、
前記複数の中継回路がリング状に接続されたリングバスと、を備え、
前記中継回路は、
隣接する中継回路のリクエストパケットである隣接リクエストパケットと、直近のバスマスタのリクエストパケットであるバスリクエストパケットとを、前記隣接リクエストパケットの優先度と前記バスリクエストパケットの優先度とを用いて調停して、調停後のリクエストパケットを次の中継回路に出力する調停回路と、
前記バスリクエストパケットが送信先に到達するまでに通過する前記中継回路の数に応じて前記バスリクエストパケットの優先度を調整する優先度調整回路と、を備える、
データ処理装置。 - 前記優先度調整回路は、
前記調停回路において前記バスリクエストパケットが拒否された回数が所定の閾値を超えた場合に前記バスリクエストパケットの優先度が高くなるように調整するように構成されており、
前記所定の閾値は、前記バスリクエストパケットが送信先に到達するまでに通過する前記中継回路の数が多いほど小さくなるように設定されている、
請求項1に記載のデータ処理装置。 - 前記優先度調整回路は、
前記所定の閾値を格納しているテーブルと、
前記調停回路において前記バスリクエストパケットが拒否された回数をカウントするカウンタと、
前記調停回路において前記バスリクエストパケットが拒否された回数と前記所定の閾値とを比較する比較回路と、
前記バスリクエストパケットが拒否された回数が前記所定の閾値を超えている場合、前記バスリクエストパケットの優先度に所定の値を加算する加算回路と、を備える、
請求項2に記載のデータ処理装置。 - 前記加算回路は、前記バスリクエストパケットの優先度に前記所定の値を加算した後、再度、前記調停回路において前記バスリクエストパケットが拒否された場合、前記バスリクエストパケットの優先度に更に所定の値を加算する、
請求項3に記載のデータ処理装置。 - 前記リングバスに存在するリクエストパケットの量を監視する監視回路を更に備え、
前記監視回路は、前記リングバスに存在するリクエストパケットの量に応じて、前記バスマスタから前記中継回路に送信されるリクエストパケットを制限する、
請求項1に記載のデータ処理装置。 - 前記中継回路は、前記調停回路から出力されたリクエストパケットを一時的に保持するバッファ回路を備え、
前記監視回路は、前記バッファ回路に保持されているリクエストパケットの量を監視することで、前記リングバスに存在するリクエストパケットの量を監視する、
請求項5に記載のデータ処理装置。 - 前記監視回路は、前記各々の中継回路が備える各々のバッファ回路の少なくとも一つに空きがない場合に、前記各々のバスマスタから前記各々の中継回路に供給されるリクエストパケットを制限する、請求項6に記載のデータ処理装置。
- 前記中継回路は、前記調停回路から出力された複数のリクエストパケットを一時的に保持するバッファ回路を備え、
前記バッファ回路は、前記複数のリクエストパケットの優先度に応じて、次の送信先に出力するリクエストパケットの順番を入れ替え可能に構成されている、
請求項1に記載のデータ処理装置。 - 前記バッファ回路は、
第1のリクエストパケットを保持可能な第1の保持回路と、
前記第1の保持回路の次の段に設けられ、第2のリクエストパケットを保持可能な第2の保持回路と、
前記第1の保持回路に保持されている前記第1のリクエストパケットおよび前記第2の保持回路に保持されている前記第2のリクエストパケットのいずれか一方を選択する選択回路と、を備え、
前記選択回路は、前記第1及び第2のリクエストパケットのうち優先度が高いほうのリクエストパケットを選択して出力する、
請求項8に記載のデータ処理装置。 - 前記リングバスは、第1の方向にリクエストパケットを転送する第1のリングバスと、前記第1の方向と逆方向である第2の方向にリクエストパケットを転送する第2のリングバスと、を備え、
前記中継回路は、前記第1及び第2のリングバスの各々に設けられている、
請求項1に記載のデータ処理装置。 - 前記データ処理装置は更に、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続されたレスポンス用の中継回路と、
前記レスポンス用の中継回路がリング状に接続されたレスポンス用のリングバスと、を備え、
前記レスポンス用の中継回路は、
隣接する中継回路のレスポンスパケットである隣接レスポンスパケットと、直近のスレーブのレスポンスパケットであるスレーブレスポンスパケットとを、前記隣接レスポンスパケットの優先度と前記スレーブレスポンスパケットの優先度とを用いて調停して、調停後のレスポンスパケットを次の中継回路に出力するレスポンス用の調停回路と、
前記スレーブレスポンスパケットが送信先に到達するまでに通過する前記レスポンス用の中継回路の数に応じて前記スレーブレスポンスパケットの優先度を調整するレスポンス用の優先度調整回路と、を備える、
請求項1に記載のデータ処理装置。 - 複数のバスマスタと、
前記複数のバスマスタがアクセス可能な複数のスレーブと、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続された複数の中継回路と、
前記複数の中継回路がリング状に接続されたリングバスと、を備え、
前記中継回路は、
隣接する中継回路のレスポンスパケットである隣接レスポンスパケットと、直近のスレーブのレスポンスパケットであるスレーブレスポンスパケットとを、前記隣接レスポンスパケットの優先度と前記スレーブレスポンスパケットの優先度とを用いて調停して、調停後のレスポンスパケットを次の中継回路に出力する調停回路と、
前記スレーブレスポンスパケットが送信先に到達するまでに通過する前記中継回路の数に応じて前記スレーブレスポンスパケットの優先度を調整する優先度調整回路と、を備える、
データ処理装置。 - 複数のバスマスタと、
前記複数のバスマスタがアクセス可能な複数のスレーブと、
前記複数のバスマスタの各々と前記複数のスレーブの各々と接続された複数の中継回路と、
前記複数の中継回路がリング状に接続されたリングバスと、を備えるデータ処理装置の制御方法であって、
前記中継回路は、隣接する中継回路のリクエストパケットである隣接リクエストパケットと、直近のバスマスタのリクエストパケットであるバスリクエストパケットとを、前記隣接リクエストパケットの優先度と前記バスリクエストパケットの優先度とを用いて調停する際に、前記バスリクエストパケットが送信先に到達するまでに通過する前記中継回路の数に応じて前記バスリクエストパケットの優先度を調整する、
データ処理装置の制御方法。
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017244905A JP2019113917A (ja) | 2017-12-21 | 2017-12-21 | データ処理装置、及びデータ処理装置の制御方法 |
US16/178,302 US10628360B2 (en) | 2017-12-21 | 2018-11-01 | Data processor using a ring bus and method for controlling the same |
TW107139420A TWI791066B (zh) | 2017-12-21 | 2018-11-07 | 資料處理裝置、及資料處理裝置之控制方法 |
EP21177883.2A EP3910486B1 (en) | 2017-12-21 | 2018-12-03 | Data processor and method for controlling the same |
EP18209708.9A EP3502910B1 (en) | 2017-12-21 | 2018-12-03 | Data processor and method for controlling the same |
CN201811512155.8A CN110059043B (zh) | 2017-12-21 | 2018-12-11 | 数据处理器及用于控制数据处理器的方法 |
US16/846,979 US10949369B2 (en) | 2017-12-21 | 2020-04-13 | Data processor using a ring bus and method for controlling the same |
US17/169,708 US11494327B2 (en) | 2017-12-21 | 2021-02-08 | Data processor including relay circuits coupled through a ring bus and method for controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017244905A JP2019113917A (ja) | 2017-12-21 | 2017-12-21 | データ処理装置、及びデータ処理装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019113917A true JP2019113917A (ja) | 2019-07-11 |
Family
ID=64661059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017244905A Pending JP2019113917A (ja) | 2017-12-21 | 2017-12-21 | データ処理装置、及びデータ処理装置の制御方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10628360B2 (ja) |
EP (2) | EP3910486B1 (ja) |
JP (1) | JP2019113917A (ja) |
TW (1) | TWI791066B (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019113917A (ja) * | 2017-12-21 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | データ処理装置、及びデータ処理装置の制御方法 |
DE102018105007B4 (de) * | 2018-03-05 | 2019-10-17 | Volkswagen Aktiengesellschaft | Verfahren zur Übertragung von Daten über einen Kommunikationskanal, entsprechend ausgelegte Vorrichtung und Kommunikationsschnittstelle sowie entsprechend ausgelegtes Computerprogramm |
JP2022129555A (ja) * | 2021-02-25 | 2022-09-06 | セイコーエプソン株式会社 | 回路装置及び電子機器 |
US20230222081A1 (en) * | 2022-01-13 | 2023-07-13 | Infineon Technologies Ag | Daisy chain configuration using priority values |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59107664A (ja) | 1982-12-10 | 1984-06-21 | Fujitsu Ltd | リングバスにおけるプライオリテイ制御方式 |
US4646232A (en) * | 1984-01-03 | 1987-02-24 | Texas Instruments Incorporated | Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system |
JP2642332B2 (ja) * | 1985-04-15 | 1997-08-20 | 株式会社日立製作所 | 優先レベル更新制御方法 |
US4726018A (en) * | 1986-08-25 | 1988-02-16 | International Business Machines Corporation | Method of providing priority access to a transmission communication ring |
AU1061892A (en) * | 1991-02-06 | 1992-08-13 | Fmc Corporation | Access to transmit on a message priority basis |
US7174374B2 (en) * | 2002-05-13 | 2007-02-06 | Industrial Technology Research Institute | Multi-priority media access control method for multi-channel slotted ring networks |
US7849256B2 (en) | 2006-07-11 | 2010-12-07 | Advanced Micro Devices, Inc. | Memory controller with ring bus for interconnecting memory clients to memory devices |
US20080091866A1 (en) * | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Maintaining forward progress in a shared L2 by detecting and breaking up requestor starvation |
US7574547B1 (en) * | 2007-07-17 | 2009-08-11 | Sun Microsystems, Inc. | Ring counter based starvation free weighted priority encoded arbiter |
US9265665B2 (en) * | 2010-07-19 | 2016-02-23 | Kci Licensing, Inc. | Inflatable off-loading wound dressing assemblies, systems, and methods |
JP5702255B2 (ja) * | 2011-09-27 | 2015-04-15 | 株式会社日立製作所 | アドホックネットワーク通信端末およびアドホックネットワーク通信端末の制御方法 |
US9213660B2 (en) * | 2013-06-14 | 2015-12-15 | Arm Limited | Receiver based communication permission token allocation |
US20170075838A1 (en) | 2015-09-14 | 2017-03-16 | Qualcomm Incorporated | Quality of service in interconnects with multi-stage arbitration |
JP2019113917A (ja) * | 2017-12-21 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | データ処理装置、及びデータ処理装置の制御方法 |
-
2017
- 2017-12-21 JP JP2017244905A patent/JP2019113917A/ja active Pending
-
2018
- 2018-11-01 US US16/178,302 patent/US10628360B2/en active Active
- 2018-11-07 TW TW107139420A patent/TWI791066B/zh active
- 2018-12-03 EP EP21177883.2A patent/EP3910486B1/en active Active
- 2018-12-03 EP EP18209708.9A patent/EP3502910B1/en active Active
-
2020
- 2020-04-13 US US16/846,979 patent/US10949369B2/en active Active
-
2021
- 2021-02-08 US US17/169,708 patent/US11494327B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TWI791066B (zh) | 2023-02-01 |
CN110059043A (zh) | 2019-07-26 |
EP3502910B1 (en) | 2021-06-23 |
EP3910486A1 (en) | 2021-11-17 |
US20210165754A1 (en) | 2021-06-03 |
EP3502910A3 (en) | 2019-09-11 |
US20190196998A1 (en) | 2019-06-27 |
EP3910486B1 (en) | 2023-09-06 |
EP3502910A2 (en) | 2019-06-26 |
US10949369B2 (en) | 2021-03-16 |
US10628360B2 (en) | 2020-04-21 |
US20200242060A1 (en) | 2020-07-30 |
TW201929501A (zh) | 2019-07-16 |
US11494327B2 (en) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11494327B2 (en) | Data processor including relay circuits coupled through a ring bus and method for controlling the same | |
US9473415B2 (en) | QoS in a system with end-to-end flow control and QoS aware buffer allocation | |
WO2011089660A1 (ja) | バス調停装置 | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
US9703732B2 (en) | Interface apparatus and memory bus system | |
CN111666239A (zh) | 一种主从设备互联系统和主从设备访问请求处理方法 | |
JP2012064021A (ja) | 通信システム、マスター装置、及びスレーブ装置、並びに通信方法 | |
US8838862B2 (en) | Data transfer device, method of transferring data, and image forming apparatus | |
US20140281099A1 (en) | METHOD, SYSTEM, AND COMPUTER PROGRAM PRODUCT FOR CONTROLLING FLOW OF PCIe TRANSPORT LAYER PACKETS | |
CN105988968B (zh) | 半导体装置 | |
KR100480605B1 (ko) | 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 | |
US9213660B2 (en) | Receiver based communication permission token allocation | |
JP2007094649A (ja) | アクセス調停回路 | |
CN107517167B (zh) | 一种数据传输控制方法、装置及SoC芯片 | |
KR102549085B1 (ko) | 버스 제어회로 | |
JP5815085B1 (ja) | 通信システム、通信装置、接続状態判定方法及び制御プログラム | |
CN110059043B (zh) | 数据处理器及用于控制数据处理器的方法 | |
JP2004078508A (ja) | バス調停回路、バス調停方法およびそのプログラム | |
JP3747020B2 (ja) | クロスバー調停システム | |
JP4898527B2 (ja) | リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法 | |
US7747806B2 (en) | Resource use management device, resource use management system, and control method for a resource use management device | |
JP2021141536A (ja) | 通信制御機器および通信制御機器の制御方法 | |
JP2006201832A (ja) | データ転送処理装置 | |
JP2013077043A (ja) | 電子機器 | |
JP2009288932A (ja) | 処理回路およびそれを用いる画像形成装置 |