JP2005316608A - バス調停装置およびバス調停方法 - Google Patents
バス調停装置およびバス調停方法 Download PDFInfo
- Publication number
- JP2005316608A JP2005316608A JP2004131860A JP2004131860A JP2005316608A JP 2005316608 A JP2005316608 A JP 2005316608A JP 2004131860 A JP2004131860 A JP 2004131860A JP 2004131860 A JP2004131860 A JP 2004131860A JP 2005316608 A JP2005316608 A JP 2005316608A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- data transfer
- arbitration
- bus master
- data
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
【解決手段】バスマスタの性質に応じて、緊急性が高い第1階層のバスマスタBMG_1と、リアルタイムにデータ処理を行う必要がある第2の階層のバスマスタBMG_2と、第1階層および第2階層のバスマスタのいずれでもない第3階層のバスマスタBMG_3と、に対して、順に優先して調停を行う。
【選択図】図2
Description
たとえば、各バスマスタの処理を破綻させないために、バス使用の要求(データ転送要求)を送出した順に、バス使用の優先順位を決定するバス調停装置が知られている。
これにより、後発的にデータ転送を要求するバスマスタにデータ転送許可が与えられ、当該バスマスタのFIFOバッファがオーバーフロー/アンダーフローに陥らないことにしている。
たとえば、上記特許文献1に提案されている競合回路によれば、所定の時間的制限を超えたときには緊急バス獲得信号を出すようにし、これに応じてデータ転送許可が与えられるという構成にしているが、かかる緊急のパスを設けた場合でも、複数のバスマスタが同時にかかる時間的制限を越えてしまう時には、FIFOバッファがオーバーフロー/アンダーフローを起こさないことを保障できなくなる場合が起こりうる。
さらに時間的制限を緩和した場合には、より緊急バス獲得信号が発生しやすくなり、結局は、全てのバスマスタ間で、緊急バス獲得信号に基づいた調停が行われるようなことになりかねない。かかる場合には、緊急バス獲得信号を設ける意味がないことにもなる。
一般に、バスマスタの性質は、クライアントの機能に応じてそれぞれ大きく異なる場合が多いことが通常である。
たとえば、あるバスマスタは、CPU等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要する、または極力早く処理されることによって、システム全体としての処理能力が向上するという性質を持つ。
あるバスマスタは、たとえば、ディジタルTV等のクライアントを有し、データ転送時間が予め予測でき、FIFOバッファによって転送データの損失を防ぐ必要があるという性質を持つ。たとえば、ディジタルTVでは、リアルタイムで表示を行うために水平1ラインの画像データが所定の垂直走査時間単位で必要となり、その画像データ分のデータ転送が予め予測できる時間内になされる必要がある。
また、あるバスマスタは、比較的長い時間において、データ転送を行えば足りるなど緊急性が低いという性質を持つ。
図1において、CPUやTV(特に、ディジタルTV)は、クライアント(それぞれ、クライアントCLT1,CLT2)であり、対応するバスマスタに対してデータ転送を要求する。
データ処理装置1は、複数のクライアントからのデータ転送要求を満足するように処理するためのデータ処理装置であり、1チップのLSIにより構成される。
メモリMEMは、たとえば、ダブルデータモードによる高速なデータ転送機能を有するSDRAMであるDDRメモリにより構成される。メモリMEMは、各クライアントに対応するデータを格納し、データ処理装置1により調停されたバスマスタの要求に係るデータのリード/ライト処理がなされる。
また、各バスマスタに用意されるFIFOバッファは、リード/ライト処理に係るデータを一時的に格納する。
アービタ(ARB)は、データ転送が追いつかずにFIFOバッファが破綻しないように、各FIFOバッファのデータ量を監視し、各バスマスタからのデータ転送要求(REQ)を調停し、データ転送許可(GNT)を与える。
アービタが分類する第1階層のバスマスタBMG_1は、たとえば図1に示すように、CPU(クライアントCLT1)等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要するという性質を持つ複数のバスマスタからなる。すなわち、第1階層のバスマスタBMG_1のクライアントは、データ転送要求(REQ)を受けてから極めて早いタイミングでデータ転送許可(GNT)を与えなければならないというレイテンシ(遅延時間)を保障する必要があるクライアントである。
以下、第1階層のバスマスタBMG_1に対応するクライアントを、第1階層のクライアントと称する。また、第1階層のバスマスタBMG_1は、FIFOバッファを有しない場合がある。
すなわち、第2階層のバスマスタBMG_2のクライアントは、上述したディジタルTVのように、リアルタイムで表示処理を行っており、いつまでに画像データをリード/ライト処理しなければならないかが事前に明確になっているというクライアントである。第2階層のバスマスタBMG_2は、データ転送に要する時間を予め予期できるので、たとえば、早い段階でリード要求を行うということが可能である。
また、第2階層のバスマスタBMG_2では、FIFOバッファによって転送データの損失を防ぐことを前提としている。たとえば、アービタによる調停が遅れるような場合には、FIFOバッファに一時的にデータを格納することで、その調停の遅れをしのぐことにしている。
以下、第2階層のバスマスタBMG_2に対応するクライアントを、第2階層のクライアントと称する。
以下、第3階層のバスマスタBMG_3に対応するクライアントを、第3階層のクライアントと称する。また、第3階層のバスマスタBMG_3は、FIFOバッファを有しない場合がある。
そして、第1階層のバスマスタBMG_1においてバス使用権の要求(REQ)がない場合等、第1階層のバスマスタBMG_1の調停が行われていない場合には、第2階層のバスマスタBMG_2を調停する。さらに、第1階層および第2階層のバスマスタBMG_1,BMG_2の調停が行われていない場合には、第3階層のバスマスタBMG_3の調停を行う。
本実施形態に係るアービタは、データ転送要求(REQ)に係る第1階層のバスマスタBMG_1を調停するための第1階層の調停回路ARB_1と、データ転送要求(REQ)に係る第2階層のバスマスタBMG_2を調停するための第2階層の調停回路ARB_2と、データ転送要求(REQ)に係る第3階層のバスマスタBMG_3を調停するための第3階層の調停回路ARB_3と、から構成される。
図2に示すように、全体として、本実施形態に係るアービタ20は、ツリー構造のバス調停装置となっている。
図2に示す調停回路21,22は、ツリー構造の調停回路であり、入力する2つのデータ転送要求の調停を行う。その際、どちらか一方のデータ転送要求があった場合には、そのデータ転送要求に許可を与え、両方のデータ転送要求があった場合には、図に示す「P」と記載された方のデータ転送要求に対して優先的に許可を与える。
したがって、たとえば、調停回路21は、調停回路ARB_2および調停回路ARB_3からのデータ転送要求がともに存在する場合には、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_2からのデータ転送要求が存在しない場合には、調停回路ARB_3からのデータ転送要求に対して許可を与える。
以下、調停回路21,22のように、ツリー構造を有し、一方のデータ転送要求に対して優先的に許可を与える調停回路を、優先権付調停回路と称する。
すなわち、本実施形態に係るアービタ20は、第1階層の調停回路ARB_1により調停されたバスマスタに対して、最優先にバスの使用許可(GNT)を与える。
そして、第1階層のバスマスタBMG_1においてデータ転送要求(REQ)がない場合等、第1階層の調停回路ARB_1により調停が行われていない場合には、第2階層の調停回路ARB_2により調停されたバスマスタに対して、次に優先的にデータ転送許可(GNT)を与える。
さらに、第1階層および第2階層の調停回路ARB_1,ARB_2により調停が行われていない場合には、第3階層の調停回路ARB_3により調停されたバスマスタに対して、データ転送許可(GNT)を与える。
次に、第2の実施形態に係るアービタについて述べる。
第1の実施形態の説明において述べたアービタ20は、基本的には緊急性が高い第1階層のバスマスタを優先させるため、第2階層のバスマスタが破綻してしまう可能性がある。すなわち、第1階層のバスマスタの要求を全て優先してしまうと、第2階層のバスマスタから見ると、メモリコントローラ(MEM_C)10の処理能力が低下することを意味し、各バスマスタの要求が密集した場合には、未処理データが増大し、転送データの損失を防ぐことができない状況に陥るおそれがある。
また、データ処理装置1は、第2階層のバスマスタからのデータ転送要求(REQ)が短時間に集中した結果、第2階層の調停回路ARB_2の処理能力を一時的に上回ることが起こった場合には、一時的に上回った間の未処理の要求分に係るデータ転送をFIFOバッファで補うことにより、転送データの損失を回避する構成をとっているが、第1階層のバスマスタからのバス使用要求に制限がない場合には、第2階層の調停回路ARB_2の処理能力が定まらず、転送データの損失を防ぐことができなくなる。
図3に示すように、本実施形態に係るアービタ20aは、第1の実施形態に係るアービタ20と比較して、調停回路22をバス使用比率制御回路(URC)23に変更した点で相違する。
すなわち、本実施形態に係るアービタ20aでは、第1階層の調停回路ARB_1からのデータ転送要求を、第2階層の調停回路ARB_2からのデータ転送要求に対して、常に優先させるのではなく、状況に応じて、第1階層のバスマスタによるバス占有比率を制限するためのバス使用比率制御回路23を有している。
なお、バス使用比率制御回路23は、本発明のバス占有比率制御手段に対応する。
図4に示すように、図3で示したアービタ20aに対して、第2階層のバスマスタに対し、FIFOバッファが破綻寸前の場合などの緊急性が高い場合のためのラウンドロビン回路をさらに設けることもできる。これは、FIFOバッファの見積もりミスの場合の保険的階層として機能する。
また、図5に示すように、図4で示したアービタに対して、さらに、第2階層のバスマスタがFIFOバッファの状態に応じてデータ転送要求先を変更するような構成とすることもできる。
カウンタ23a_1は、所定のデータ転送サイクルをカウントする。すなわち、カウンタ23a_1は、実質的にタイマとして機能する。
調停回路23a_2は、図2に示した調停回路21,22と同様の優先権付調停回路である。
カウント値CNTが所定の閾値Aに達した場合には、調停回路23a_2は、逆に、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。
以下、第3の実施形態に係るデータ処理装置について述べる。
前述した第2の実施形態に係るアービタ20aによっても、第1階層のバスマスタによるバスの占有比率を適切に制御できない場合がある。たとえば、第1階層のバスマスタが一定のデータ処理サイクルで動作する等、所定のデータ処理サイクルの最大転送量が決まっているが、その所定のデータ処理サイクルの間では不規則にデータ転送要求(REQ)を行いたいような場合である。
一方、所定の閾値Aを増加させることにより、第1階層のバスマスタの占有比率を増加させると、場合によっては、第1階層のバスマスタがその間バスを完全に占有する可能性もある。
すなわち、第2階層のデータ転送について、最良の場合と最悪の場合のばらつき幅が大きくなることを意味する。かかる場合に、最悪の場合を考慮すると、第1および第2階層の全体の処理能力を低下させることになる。
調停回路23b_3は、すでに述べた優先権付調停回路である。
カウント値CNTが所定の閾値Aに達した場合には、調停回路23b_3は、逆に、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。
もっとも、その所定サイクルを第2階層のFIFOバッファの破綻が起こりうるほど長く設定した場合であって、そのサイクル内のごく短時間に第1階層のバスマスタの要求(REQ)が集中するような場合には、第2階層のバスマスタの転送データの損失を防ぐことができなくなるが、所定サイクルの値を適切に設定すれば、第1階層のバスマスタの動作を抑制させることができ、第2階層のバスマスタの処理に対するばらつきを抑制することが可能である。
以下、第4の実施形態に係るデータ処理装置について述べる。
前述した第3の実施形態に係るアービタのように、単にデータ転送回数GNT_NUMをカウントするだけでは、第1階層のバスマスタによる1つのデータ転送に要するサイクル数に差がある場合には、第2階層のバスマスタの処理能力に対するばらつきが大きくなる可能性がある。
たとえば、第1階層のバスマスタが行うデータ転送のサイクル数が8サイクル、16サイクル、20サイクル等と変化するときに、そのデータ転送の回数をカウントするだけでは、すべてのデータ転送が8サイクルで行われる場合と、すべてのデータ転送が20サイクルで行われる場合とでは、第1階層のバスマスタがバスを占有する時間が大きく異なり、結果として、第2階層のバスマスタに対する処理のばらつきが大きくなるのである。
本実施形態に係るアービタは、第3の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路23cは、カウンタ23c_1と、積算器23c_2と、調停回路23c_3およびセレクタ23c_4を含んで構成される。
調停回路23c_3は、すでに述べた優先権付調停回路である。
積算器23c_2により算出された総サイクル数が所定の閾値Aに達した場合には、調停回路23c_3は、逆に、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。
以下、第5の実施形態に係るデータ処理装置について述べる。
第4の実施形態に係るデータ処理装置において、セレクタ23c_4に予め与えられる各データ転送種類(たとえば、リード/ライト処理)に要するサイクル数は、通常、前回のデータ転送にも依存する。たとえば、転送するデータ量が等しい場合であっても、前回のコマンドがリードである場合とライトである場合とでは、ライトのためのデータ転送に要するサイクル数が異なるのが通常である。
かかる場合に、あるコマンドAに係るデータ転送には、前後の組み合わせに応じて8〜10サイクルの幅を持ち、あるコマンドBに係るデータ転送には、前後の組み合わせに応じて16〜22サイクルの幅を持つ場合に、各コマンドに対してサイクル数を標準サイクルに固定して(たとえば、コマンドA:9サイクル,コマンドB:20サイクルというように固定して)セレクタ23c_4の処理を行うとすると、あるデータ処理サイクルにおいて、コマンドBによるデータ転送の最悪ケース(22サイクル)が連続する場合には、第2階層のバスマスタに対する処理能力に影響を及ぼす。
これにより、第1階層のバスマスタによるデータ転送のサイクル数がばらついた場合であっても、第1階層のデータ転送が安定的に処理され、第2階層のバスマスタから見た場合のメモリコントローラMEM_Cの処理能力を判断できる調停が可能となる。
しかしながら、データ転送の種類が多いために組み合わせに応じたデータ転送に要するサイクル数を算出することが困難な場合や、当該算出のための回路を付加することが困難な場合には、本実施形態で述べた処理を行うことが望ましい。
以下、第6の実施形態に係るデータ処理装置について述べる。
第4および第5の実施形態に係るバス使用比率制御回路によれば、積算器23c_2により算出された総サイクル数が所定の閾値Aに満たない場合には、調停回路23c_3は、第1階層の調停回路ARB_1からのデータ転送要求を優先して調停するが、この所定の閾値Aを少し越えるようなデータ転送となった場合に、どのように調停すべきか問題となる。
一方、積算器23c_2により算出された総サイクル数が所定の閾値Aを超える場合に、その越えた分のデータ転送を制限しないときにも、同様に、所定の閾値Aの設定次第で、第2階層のバスマスタに対する処理能力のばらつきが変化する。
具体的には、あるデータ処理サイクルにおいて、データ転送の総サイクル数が所定の閾値Aを少し超える場合には、その越える部分のデータ転送を許可するが、当該許可によって第1階層のデータ転送が所定の閾値Aオーバーしたサイクル数については、次のデータ処理サイクルの際に所定の閾値Aから減ずることにより、次のデータ処理サイクルにおける第1階層のデータ転送を所定の閾値Aよりさらに制限する。
所定の閾値Aを越えて許可するサイクル数については、予め設定しておく。
本実施形態に係るバス使用比率制御回路23dは、図に示すように、カウンタ23d_1と、積算器23d_2と、調停回路23d_3およびセレクタ23d_4を含んで構成される。
調停回路23d_3は、すでに述べた優先権付調停回路である。
そして、積算器23d_2は、所定の閾値Aを越えた分のサイクル数(超過サイクル数value)を次の処理のデータ処理サイクルまで保持し、次のデータ処理サイクルでは、算出した総サイクル数に前回の超過サイクル数valueを足し算して処理する。これにより、次の処理のデータ処理サイクルにおいては、前回の超過サイクル数value分だけ、第1階層のデータ転送がさらに制限される。
図10(a)に示すように、N番目の処理において、第1階層のデータ転送のために許容されたサイクル数である所定の閾値Aを越えた超過サイクル分の処理については、N+1番目の処理のために許容された所定の閾値Aを減らすことによって行う。図9を参照した説明では、N+1番目の処理において、算出した総サイクル数と超過サイクル数を足し算し、所定の閾値Aと比較することとしたが、これは、図10(a)に示すように、N+1番目の処理において、閾値を超過サイクル数だけ減ずることと実質的に同一の処理である。
また、図10(b)に示すように、N+1番目の処理において、超過サイクル分が発生した場合には、同様に、N+2番目の処理のために許容された閾値を減らすことによって、処理を行う。
しかし、かかる方法では、次のデータ処理サイクルにおいて、前回のデータ処理サイクルで制限を受けてデータ転送を許可されなかったサイクル分と、実際にデータ転送の要求がないために余ったサイクル分との区別が困難になる可能性がある。すなわち、データ転送要求(REQ)がないために余ったサイクル数を蓄積していくと、あるデータ処理サイクルで第1階層のバスマスタが蓄えたサイクル分を一度に使用し、第1階層のバスマスタに対する処理がバスを完全に占有するおそれがある。したがって、上述した方法のように、先のデータ処理サイクルにおいて超過分のデータ転送を許可し、後のデータ処理サイクルにおいて、超過分のサイクル数だけ制限を加える方がよい。
以下、第7の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置では、第1階層のバスマスタに対する処理を制限することによって、第2階層のバスマスタから見たメモリコントローラMEM_Cの処理能力を判断可能とする調停を行うものである。
したがって、本実施形態に係るアービタでは、第1階層のバスマスタに対する制限により、データ転送要求(REQ)が許可されない第1階層のバスマスタが存在する場合には、図11に示すように、第1階層のバスマスタBMG_1は、第3階層の調停回路ARB_3に対して、データ転送要求を行う。
なお、上述した第1階層のバスマスタに対する制限は、第2階層のバスマスタの転送データの損失を防ぐためにあるので、第3階層の調停回路ARB_3が第1階層のバスマスタBMG_1からのデータ転送要求を調停しても、第2階層のバスマスタの転送データの損失に対して影響を与えない。
以下、第8の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタにおいて、図3に示すように、第1階層の調停回路ARB_1は、第1階層のバスマスタBMG_1の調停結果に対して、バス使用比率制御回路により第1階層に対するデータ転送を制限する構成としたが、本実施形態では、かかる構成を拡張し、第1階層のバスマスタBMG_1に含まれる各バスマスタ毎にバス使用比率制御回路を設け、各バスマスタ毎にバス使用比率を制御するように構成する。
これにより、各バスマスタの性質に応じた、より精度の高い調停を行うことが可能となる。
以下、第9の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタでは、クライアントに応じたバスマスタの性質に応じて、第1階層〜第3階層のバスマスタに分類し、各バスマスタに対する調停を第1階層〜第3階層の調停回路を行う構成としたが、バスマスタ毎に調停を行うのではなく、データ転送要求毎にいずれの階層の調停回路にデータ転送要求を行うがを決定してもよい。
たとえば、バスマスタによっては、あるデータ転送は早期に処理を行う必要があり、ある転送は比較的長い時間で処理されれば足りるなどの状況があり得るため、上述したようにデータ転送毎にバス使用要求に係る調停回路の選択を変更する構成とすれば、全体としての処理能力が向上する。すなわち、各バスマスタに与えられたデータ転送要求に対応する保障すべき遅延時間に応じて、第1乃至第3のバス調停回路のいずれで調停を実行するかを決定するのである。
なお、第2階層のバスマスタのFIFOバッファの破綻の見積もりに失敗した場合を考慮して、第1階層より優先順位を上げた緊急の処理を行う別の階層を設けてもよい。
以下、第10の実施形態に係るデータ処理装置について述べる。
上述した第1階層のクライアントの中には、所定の処理サイクル(たとえば、V単位)毎に出力結果を送出すればよいが、回路上の内部の処理の制約上、バス使用要求(REQ)を送出してから極めて短時間でバス使用許可(GNT)を受けなければならないクライアントが存在する。たとえば、過去に設計されたIPを流用する場合などに、データ転送要求を出してから実際にデータをもらうまでの時間の最大値が決まっていて、かつ、その値が小さく設計されているクライアントがある場合である。
かかるクライアントは、所定の処理サイクルの中で、バス使用要求(REQ)を送出するタイミングは比較的平均化されているが、レイテンシに対する要求が極めて高い。
以下、このようなクライアントに対応するバスマスタをバスマスタ1Aと称する。
以下、このようなクライアントに対応するバスマスタをバスマスタ1Bと称する。
以下、本実施形態に係る第1階層の調停回路の動作を、図12に関連付けて述べる。
クロックを停止させるために、第1階層の調停回路は、クロック停止用の制御信号をバスマスタ1Aに対応するクライアントに対して送出する。
バスマスタ1Bによるデータ転送が終了すると、停止したクロックの作動を再開するために、クロック始動用の制御信号をバスマスタ1Aに対応するクライアントに対して送出する。
これにより、所定の処理サイクルの中で、バス使用に係る性質の異なるバスマスタ1Aおよびバスマスタ1Bによるデータ転送を、効率よく行うことが可能となる。
なお、バスマスタ1Aに係るクライアントの処理を保証するために、クロックを止めた数をカウントし、その数をもってバスマスタ1Bに占有させる制御を行うとよい。
以下、本発明の第11の実施形態について、述べる。
一般に、各バスマスタは、対応するクライアントの性質に応じて、データ転送に対する要求が異なる。たとえば、あるバスマスタは、対応するFIFOバッファのデータ量に制限があり、あるバスマスタは保証時間に制限があり、また、あるバスマスタは、保証時間等の制限はないが極力早くデータを処理する必要がある。
その際、各バスマスタ毎に決定する優先順位は、バスマスタ個々が独自の規則に基づいて定義されたデータ転送に対する緊急度であり、各バスマスタは、各データ転送に対し、定義された規則に従って、緊急度を決定する。
(a)に示すように、ライト要求時、予め設定された制限LIM_A〜LIM_Cに基づいて、FIFOバッファに格納されたデータ量に対応するデータ転送要求REQ0〜REQ3を出力する。その際、各制限LIM_A〜LIM_Cと比較するFIFOバッファのデータ量は、要求が許可されたと想定した時のFIFOバッファのデータ量(予測値)をいう。
(a)に示すライト処理の際には、FIFOバッファにすでに格納されているデータ量が多いほどオーバーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、REQ0,REQ1,REQ2,REQ3の順に優先順位が高い要求となる。
(b)に示すリード処理の際には、FIFOバッファにすでに格納されているデータ量が少ないほどアンダーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、REQ0,REQ1,REQ2,REQ3の順に優先順位が高い要求となる。
たとえば、データの転送時間が所定の間隔で決まっているバスマスタ(ディジタルTVの表示処理など)は、要求を出す時間に応じて、データ転送時間に対してどれだけ時間的余裕があるか(あと何サイクルあるか)によって、データ転送要求の優先順位を変更する。その際、バスマスタ間で、クロックの周波数に差がある場合には、データ転送時間に対するサイクル数を、クロックの周波数に応じて変更してもよい。
図14に示すアービタでは、優先順位に応じた4つの調停回路ARB_00〜ARB_03と、調停回路24,25,26とを含んで構成される。図に示すように、本実施形態に係るアービタは、ツリー構造の調停装置となっている。
各調停回路ARB_00〜ARB_03は、それぞれデータ転送要求REQ0〜REQ3に係るバスマスタの調停を行う。
すなわち、調停回路24は、調停回路ARB_02および調停回路ARB_03からのデータ転送要求がともに存在する場合には、調停回路ARB_03からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_03からのデータ転送要求が存在しない場合には、調停回路ARB_02からのデータ転送要求に対して許可を与える。
調停回路25は、調停回路ARB_00および調停回路ARB_01からのデータ転送要求がともに存在する場合には、調停回路ARB_01からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_01からのデータ転送要求が存在しない場合には、調停回路ARB_00からのデータ転送要求に対して許可を与える。
調停回路26は、調停回路24からのデータ転送要求を優先して調停する。
以下、本発明の第12の実施形態について、述べる。
一般に、メモリバスの調停は、各バスマスタのバス使用要求(REQ)が集中すると、その集中した時点からバス使用要求が十分平均化されるまでの間、かかる要求がメモリコントローラの処理能力を完全に上回ってしまうことが起こる。すなわち、図15に示すように、極めて短期間tpの間にバス使用要求が集中する結果、要求に係るバス幅BWは、時刻tに達するまでの間、メモリコントローラの処理能力(M_CAP:処理可能なデータ量)を上回ることになる。
この全バスマスタの要求密度のばらつき、及びに各バスマスタの要求密度のばらつきに対して、FIFOバッファにより対応した場合に、たとえ適切なFIFOバッファ容量を設けても、適切な調停を行わなければ、FIFOバッファのオーバーフロー/アンダーフローが起こってしまう。
例えば、単に全てのバスマスタに対して、トークンリング方式のような回転式調停を同一比率で行った場合には、各バスマスタのバス使用要求間隔と回転式調停等の割合が合っていないと、全バスマスタの合計のFIFOバッファ容量が全バスマスタの要求密度のばらつきに対して十分であったとしても、占有比率が高いバスマスタが必要以上に早く調停される一方で、占有比率が低いバスマスタが破綻する場合がある。
そのために、本実施形態に係るデータ処理装置では、各バスマスタがFIFOバッファのデータ量に応じた多数の要求信号を有する。なお、要求信号に対応するものは、FIFOバッファのデータ量に限らず、たとえば、データ転送の要求時間でもよい。
本実施形態に係るデータ処理装置の回路構成としては、図14に示した複数階層の調停回路により実現する。そして、要求信号に基づいて優先度を決定し、優先度が高い要求を、より上位の階層の調停回路により調停する。
また、1階層を超えるバスマスタが複数になり2階層での調停が行われるようになり、適切な調停ができなくなっても、さらにオーバーフロー/アンダーフローが近づいたバスマスタは、上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
さらにFIFOバッファ内のデータ量ではなく、実際にFIFOバッファからデータを読み出す時間が予測できる場合には、その時間があと何サイクルであるかに応じて要求信号の優先度を変更すれば、より好適な構成となる。
以下、本発明の第13の実施形態について、述べる。
一般に、メモリのローアドレスやバンクをまたぐデータの転送要求、リード処理とライト処理などの切り替わるデータ転送要求などでは、転送間に隙間時間が生じ、非効率な転送になる場合がある。したがって、たとえば、リードのためのデータ転送のみをまとめて要求する、または、ライトのためのデータ転送のみをまとめて要求することが転送効率の観点から望ましい。
しかし、転送効率を重視し過ぎると、FIFOバッファが破綻するおそれがあるので、FIFOバッファが破綻を起こさない範囲内で、極力転送効率を重視してアービタを構成することが望ましい。
図16は、図14を参照して述べたアービタと比較して、最下位の階層の調停回路のみが相違する。そして、最下位の階層の調停回路では、バスマスタにより決定された優先度ではなく、転送モードによって調停を行うことを特徴とする。
すなわち、図に示すように、調停回路ARB_00aは、ツリー構造の3つの優先権付調停回路から構成される調停回路群27を含み、優先権に応じた調停を行う。したがって、接続切替え回路EXにより接続状態を切り替えることで、転送モードに応じて調停の優先順位を可変とすることができる。
図17において、REQ_A,REQ_B,REQ_C,REQ_Dは、転送TF_A,TF_B,TF_C,TF_Dからの転送要求信号であり、GNT_A,GNT_B,GNT_C,GNT_Dは、転送TF_A,TF_B,TF_C,TF_Dに対する転送許可信号である。
たとえば、入力した転送要求信号REQ_A,REQ_B,REQ_C,REQ_Dに対して、接続切替え回路EXは、エンコーダENCからの信号に基づいて、1つの転送要求信号のみをREQ(Hレベル)として出力する。
転送許可信号についても、同様に、調停回路群27からの転送許可信号(GNT)を、エンコーダENCからの信号に基づいて、転送許可信号GNT_A,GNT_B,GNT_C,GNT_Dの中から選択して出力できるように構成される。
以下、本発明の第14の実施形態について、述べる。
調停の際に、各バスマスタからデータ転送要求に対する優先順位の決定として最も適切な方法は、対応するFIFOバッファについて、オーバーフロー/アンダーフローが発生する時間を比較し、最も早くオーバーフロー/アンダーフローが発生するFIFOバッファに対応するバスマスタからのデータ転送要求(バス使用要求)を優先させる方法である。
これに対し、たとえば、調停に要するサイクル数の平均値がデータ転送サイクル数より小さい場合には、必要に応じて、バス使用要求をキュー(QUE) に貯めることで、調停にかかるサイクルがクリティカルになることを防止する方法も考えられるが、その場合には、バスマスタからデータ転送そのものを却下するような命令が与えられる場合や、不意に早急にデータ転送をすべき旨のバス使用要求が与えられる場合に対応が困難になるという問題がある。
一方、並列のデータ処理を行い、一定サイクルで調停を行うように比較回路を大量に設けることは、特に多数のバスマスタがいる場合には、回路規模が膨大となる。
図18に示す時間調停回路31では、アクセスの1単位(データ転送サイクル)を8サイクル以上とし、アクセスに要するサイクル数以下である8サイクルで調停を行う場合を例示する。また、オーバーフロー/アンダーフローの発生は、2047サイクル以内であると仮定し、タイマを11ビット構成としている。
図18に示すように、本実施形態に係る時間調停回路31は、外部からイネーブル信号enと、複数のバスマスタ(1〜x)からの要求信号Cx_REQおよびオーバーフロー/アンダーフローが発生するまでの時間Cx_TIM(〔10:4〕は、上位7ビット分のデータであることを示す)を入力し、データ転送を許可するバスマスタのIDである許可ID(GNT_ID)を出力する。
以下、本実施形態に係る時間調停回路31の動作を、図18および図19に関連付けて述べる。
カウンタ51は、たとえば、3ビットのタイマで構成され、カウント値STATE_CNTは、「1」から「7」まで出力した後に「0」になると、時間調停回路31は、各バスマスタの要求時間の比較が終了したことを示すVALID信号を出力する。
なお、カウンタ51は、調停に有してもよいサイクル数に基づき、カウントの最大値が設定される。
入力された各バスマスタ毎の要求時間は、順次、上位ビットから1ビットずつS/Rラッチ群53の各S/Rラッチに供給される。
カウンタ群52のあるカウンタから出力されるビットが「1」であって、ビット「0」を出力する他のカウンタが存在する場合には、ビット「1」を出力するカウンタに対応するS/Rラッチがリセット(「0」)される。これは、当該カウンタに対応するバスマスタの要求時間が、他のバスマスタの要求時間より時間が長く、バス使用要求の優先順位が低いためである。
図19に示す時間調停回路31では、時間調停中に一旦リセットされると、その後にセットされない。
たとえば、図19に示す時刻t4では、(d)に示すように、出力ビットの比較対象であるバスマスタC3〜C6の最上位から4番目のビットがすべて「1」であるため、AND回路55により、all_res_maskがセット(「1」)される。これにより、上記各バスマスタに対応したS/Rラッチが全てリセット(「0」)されることを回避する。
すなわち、出力ビットがすべてのバスマスタで同一の場合には、要求時間による優劣を付けることができないので、当該出力ビットでは処理をせず、次の出力ビットに基づいて処理を行う。
すなわち、時刻t8においてS/Rラッチがセット(「1」)されているS/Rラッチに対応するバスマスタは、最も早くオーバーフロー/アンダーフローが発生するバスマスタであり、そのうちの1つのバスマスタを選択してバスに対するアクセスを許可するのである。
また、本実施形態に係るアービタによれば、データ転送サイクル内に時間調停が終了するように構成したので、調停にかかる時間がデータ転送サイクルを越えてクリティカルになることがない。
以下、本発明の第15の実施形態について、述べる。
本実施形態に係るデータ処理装置は、中央に共通のバッファを設け、従来各バスマスタ毎に有していたFIFOバッファの容量を低減し、チップ全体のモード毎に不使用/不要となるFIFOバッファ容量を低減することで、チップ面積を減少させるバスシステムである。
一般に、このFIFOバッファの容量は、バス使用要求すべき時間(たとえば、ライト処理の場合、そのデータ転送要求が許可されるとFIFOバッファがちょうど空になる時間)から、データがFIFOバッファに読み書きされるまでのレイテンシ(遅延時間)のワースト値を考慮して見積もられる。
また、あるバスマスタに対して、その最大のバンド幅に基づいてFIFOバッファ容量を決定しても、ほとんどのモードでは、決定した容量まで使用しないことがあり、FIFOバッファ容量が無駄になる場合もある。
本実施形態に係るアービタは、中央バッファとして、リード用中央バッファ(CTL_BUF)64、およびライト用中央バッファ(CTL_BUF)65の2つのバッファを有し、各中央バッファは、キーによりデータ格納領域が管理されている。
そして、リード処理を行うバスマスタRD_C1,RD_C2、およびライト処理を行うバスマスタWR_C1,WR_C2は、それぞれ、リード用バッファキー調停回路61(RD_BUFKEY)、およびライト用バッファキー調停回路(WR_BUFKEY)62に対して、データ要求時間の情報とともに、中央バッファの空き領域に対応するキーを取得するための要求を行う。
さらに、たとえばリード用バッファキー調停回路61では、リード用中央バッファ64に空き領域があれば、選択されたデータ転送要求に係るメモリアドレス等の情報とリード用中央バッファ64の空き領域のキーとともに、リード/ライト調停回路63に対して、データ転送要求を行う。
その際、メモリアクセスでは、リードとライトの切り替え時に転送効率を損うため、たとえば、ライト用中央バッファ65にある程度蓄積された場合や、リード用バッファキー調停回路61からの要求がなくなった(リード用中央バッファ64がフルになった)場合に、まとめてライト用バッファキー調停回路62に対する要求を許可するなどの調停を行う。これにより、リード処理およびライト処理を交互に行う等の非効率な動作を回避できる。
たとえば、リード用バッファキー調停回路61による調停の結果、キーが与えられたバスマスタは、リード用中央バッファ64内の与えられたキーに対応するデータ格納領域から、所定の時刻にデータを取り出す。
その際、複数のバスマスタがデータを取り出すため、図21に示すように、かかる複数のバスマスタを調停するため、リード用中央バッファ64は、データ調停回路(DATA_ARB)を有している。同様の観点から、ライト用中央バッファ65も、データ調停回路(DATA_ARB)を有している。
図22に示すように、リード用中央バッファ64は、上述したデータ調停回路641と、キーに対応するVALID(VAL)とVALに対応するデータ格納領域(ROOM)を含むデータ格納部642と有する。
一方、図23に示すように、ライト用中央バッファ65は、上述したデータ調停回路651と、キーに対応するVALID(VAL),アドレス情報(ADR),データ個数の情報(NUM)とデータ格納領域(ROOM)を含むデータ格納部652と有する。
ライト処理では、書込み要求から実際にメモリに書込みが行われるまでに遅れがあるために、バスマスタ側が2つ以上のバッファキーを与えられた場合など、アドレス情報(ADR)およびデータ個数の情報(NUM)をバッファキーに対応して保持する必要があることから、図23に示すように、これらの情報をライト用中央バッファ65が保持する構成としている。
図24は、リード用バッファキー調停回路61の回路構成の一例である。
図24において、時間調停回路(TIM_ARB)611は、複数のリード用バスマスタからの要求信号RD_Cx_REQおよび要求時間RD_Cx_TIM(FIFOバッファがアンダーフローするまでの時間)に基づいて調停を行う。すなわち、時間調停回路611は、要求時間RD_Cx_TIMが最も短いバスマスタを選択するように調停し、その調停結果であるGNT_ID、および調停が正しく終了したことを示すVALID(Hレベル)を出力する。
時間調停回路611としては、具体的に、たとえば、図18に示した時間調停回路31を適用することができる。
図25に示す回路例では、S/Rラッチ群72の各S/Rラッチがキーに対応し、キーを与えることが可能なS/Rラッチがセット(set)される。S/Rラッチ群72のうち、いずれか1つのS/Rラッチがセットされていれば、OR回路74によりVALIDはHレベルとなり、対応するキー番号がエンコーダ75により出力され、時間調停回路611により許可されたバスマスタに渡される。
データ転送要求が許可された場合には、リード/ライト調停回路63からのGNTにより、デコーダ76を介して、バスマスタに渡されたキーに対応するS/Rラッチがリセット(res)される。これにより、他のバスマスタに同じキーが渡されることはない。
先ず、図26のステップST1において、各バスマスタRD_Cxは、リード用バッファキー調停回路(RD_BUFKEY)61に対して、要求信号Cx_REQおよび要求時間RD_Cx_TIMを供給し、ライト処理によるデータ転送を要求する。
また、各バスマスタRD_Cxは、選択回路613に対して、アドレス情報(ADR)およびデータ個数の情報(NUM)を供給する。
選択回路613は、時間調停回路611により調停されたバスマスタのアドレス情報(RD_KEY_ARB_ADR)およびデータ個数の情報(RD_KEY_ARB_NUM)を、リード/ライト調停回路63へ送出する。
当該調停の後、リード/ライト調停回路63は、リード用バッファキー調停回路61より渡されたキー、アドレス情報(ADR)、およびデータ個数の情報(NUM)を、メモリコントローラ(MEM_C)、およびリード用バッファキー調停回路61で調停されたバスマスタに渡す(ステップST3a,ST3b)。バッファキーを受けたバスマスタは、次のデータ転送要求があれば、次の要求信号Cx_REQおよび要求時間RD_Cx_TIMを供給する。なお、各バスマスタは、キーを必要な分蓄積できるような構成とする。
さらに、リード/ライト調停回路63は、リード用中央バッファ64の当該キーに対応するVALIDをリセットする。
ステップST5では、リード用中央バッファ64では、処理サイクル毎に、複数の要求に係るデータ格納領域からのデータ転送を調停する。調停は、たとえば、トークンリング方式のような回転式調停等により行われる。
なお、かかる調停では、読み込みデータがリード用中央バッファ64に格納されるまでの間、キーに対応するVALIDがセットされている場合には、キーを持たない他のバスマスタからの要求をマスクする。
図27は、ライト用バッファキー調停回路62の回路構成の一例である。
図27において、時間調停回路621は、複数のライト用バスマスタからの要求信号WR_Cx_REQおよび要求時間WR_Cx_TIM(FIFOバッファがオーバーフローするまでの時間)に基づいて調停を行う。すなわち、時間調停回路621は、要求時間WR_Cx_TIMが最も短いバスマスタを選択するように調停し、その調停結果であるGNT_ID、および調停が正しく終了したことを示すVALID(Hレベル)を出力する。
時間調停回路621としては、具体的に、たとえば、図18に示した時間調停回路31を適用することができる。
キーが与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを書き込むことが可能となる。書込み終了後は、当該キーに対応するデータ格納領域が有効であることを示す信号をセットする。
先ず、図28のステップST10において、各バスマスタWR_Cxは、ライト用バッファキー調停回路(WR_BUFKEY)62に対して、要求信号Cx_REQおよび要求時間WR_Cx_TIMを供給し、ライトのためのデータ転送を要求する。
また、各バスマスタWR_Cxは、選択回路623に対して、アドレス情報(ADR)およびデータ個数の情報(NUM)を供給する。
そして、選択したバスマスタに対して許可ID(WR_C_GNT_ID)を送出すると同時に、ライト用中央バッファ65に空き領域がある場合には、その空き領域に対する要求信号(WR_KEY_ARB_REQ)、キー(WR_C_KEY)を、当該バスマスタに対して送出する(ステップST20a)。
選択回路(sel)623は、時間調停回路621により調停されたバスマスタのアドレス情報(WR_ADR)およびデータ個数の情報(WR_NUM)を選択して、ライト用中央バッファ65へ送出する(ステップST20b)。
ライト用中央バッファ65は、データ調停回路651により、かかるデータ書込み要求を調停し、書込み許可がなされると(WR_C_GNT)、バスマスタは、キーに対応するデータ格納領域に対してデータの書込みを行う(ステップST30)。
複数のキーに対応するVALIDのうち、少なくとも1つのVALIDがセットされている場合、ライト用中央バッファ65は、リード/ライト調停回路63に対し、ライトのためのデータ転送要求を行う(ステップST40)。
データの書込みがすべて終了すると、メモリコントローラ(MEM_C)は、ライト用バッファキー調停回路62に対して、BUF_END_KEY,BUF_ENDによりキーを返却する(ステップST60)。
したがって、システム全体でのFIFOバッファ容量が縮小し、チップ面積を低減させることが可能となるとともに、コスト低減に資する。
たとえば、図29に示すデータ処理装置は、第15の実施形態で述べた中央バッファを有するアービタ(ARB)を、たとえば、第2の実施形態において、第2階層のバスマスタを調停するためのアービタとして適用した一例である。これにより、第2階層の各バスマスタが有するFIFOバッファの容量が格段に削減される。
Claims (10)
- 複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、
前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停する第1の調停手段と、
前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停する第2の調停手段と、
前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停する第3の調停手段と、を有し、
前記第1乃至第3の調停手段による調停を、前記第1の調停手段から順に優先的に実行する
バス調停装置。 - 所定のデータ処理サイクルのうち、前記第1の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、
前記バス使用比率制御手段により決定される比率に基づいて、前記第1および第2の調停手段による調停を実行する
請求項1記載のバス調停装置。 - 前記バス使用比率制御手段は、
前記第1のバスマスタによる前記メモリバスへのデータ転送回数を計数するカウンタを有し、
前記カウンタの値に応じて、前記第1の調停手段が前記メモリバスを使用する比率を制御する
請求項2記載のバス調停装置。 - 前記バス使用比率制御手段は、
前記第1のバスマスタによる前記メモリバスへの各データ転送に要するデータ転送回数の総和が、所定の閾値を越えたか否かに応じて、前記第1の調停手段が前記メモリバスを使用する比率を制御する
請求項2記載のバス調停装置。 - 前記バス使用比率制御手段は、
データ転送の種類毎に要する最大のデータ転送サイクル数である最大データ転送サイクル数に関する情報が与えられ、
前記第1のバスマスタによる前記メモリバスへの各データ転送に対応する最大データ転送サイクル数を計数する第2のカウンタを有し、
前記第2のカウンタの計数結果を所定の閾値と比較し、前記所定の閾値を越えたか否かに応じて、前記第1の調停手段が前記メモリバスを使用する比率を制御する
請求項4記載のバス調停装置。 - 前記バス使用比率制御手段は、
N番目(N:自然数)のサイクルにおいて、計数結果に対する所定の閾値を越えた場合には、越えた分をN+1番目のサイクルにおける計数結果に加え、前記所定の閾値と比較する
請求項5記載のバス調停装置。 - 前記第3の調停手段は、
前記バス使用比率制御手段が前記第2の調停手段に優先的に実行させたことにより、データ転送要求が許可されない第1のバスマスタを調停する
請求項2記載のバス調停装置。 - 前記第1の調停手段は、前記バス使用比率制御手段を前記第1のバスマスタの各バスマスタ毎に有する
請求項2記載のバス調停装置。 - 前記データ転送要求毎に保証すべき遅延時間が与えられ、
前記複数のバスマスタに与えられたデータ転送要求に対応する前記保証すべき遅延時間に応じて、前記第1乃至第3の調停手段のいずれかで調停を実行するかを決定する
請求項1記載のバス調停装置。 - 複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、
前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停するステップと、
前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停するステップと、
前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停するステップと
を有するバス調停方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004131860A JP4222251B2 (ja) | 2004-04-27 | 2004-04-27 | バス調停装置およびバス調停方法 |
US11/113,970 US7149828B2 (en) | 2004-04-27 | 2005-04-26 | Bus arbitration apparatus and bus arbitration method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004131860A JP4222251B2 (ja) | 2004-04-27 | 2004-04-27 | バス調停装置およびバス調停方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005316608A true JP2005316608A (ja) | 2005-11-10 |
JP4222251B2 JP4222251B2 (ja) | 2009-02-12 |
Family
ID=35137791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004131860A Expired - Fee Related JP4222251B2 (ja) | 2004-04-27 | 2004-04-27 | バス調停装置およびバス調停方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7149828B2 (ja) |
JP (1) | JP4222251B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014035549A (ja) * | 2012-08-07 | 2014-02-24 | Ricoh Co Ltd | バス制御装置、画像処理装置及びバス制御方法 |
JP2014081673A (ja) * | 2012-10-12 | 2014-05-08 | Fujitsu Semiconductor Ltd | 処理装置及び処理装置の制御方法 |
JP2014514662A (ja) * | 2011-04-20 | 2014-06-19 | マーベル ワールド トレード リミテッド | 可変長アービトレーション |
JP2015176380A (ja) * | 2014-03-14 | 2015-10-05 | 株式会社リコー | 画像処理装置および画像形成装置 |
JP2018120490A (ja) * | 2017-01-26 | 2018-08-02 | キヤノン株式会社 | メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 |
JP2019020766A (ja) * | 2017-07-11 | 2019-02-07 | 富士ゼロックス株式会社 | 電子装置 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4748641B2 (ja) * | 2004-12-06 | 2011-08-17 | ルネサスエレクトロニクス株式会社 | 情報処理システム |
US20070174529A1 (en) * | 2005-12-29 | 2007-07-26 | Intel Corporation | Queue manager having a multi-level arbitrator |
JP2007241918A (ja) * | 2006-03-13 | 2007-09-20 | Fujitsu Ltd | プロセッサ装置 |
US20090037635A1 (en) * | 2006-03-17 | 2009-02-05 | Shanghai Magima Digital Information Co., Ltd. | Bus arbitration device |
US7930456B1 (en) * | 2006-12-23 | 2011-04-19 | Emc Corporation | Data packet arbitration system |
JP2009003633A (ja) * | 2007-06-20 | 2009-01-08 | Panasonic Corp | 情報処理装置 |
JP2009025866A (ja) * | 2007-07-17 | 2009-02-05 | Nec Electronics Corp | メモリコントローラ、バスシステム、集積回路、及び、集積回路の制御方法。 |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
EP2192496B1 (en) * | 2008-11-28 | 2013-01-23 | Telefonaktiebolaget LM Ericsson (publ) | Arbitration in multiprocessor device |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US8667197B2 (en) | 2010-09-08 | 2014-03-04 | Intel Corporation | Providing a fine-grained arbitration system |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
KR101949382B1 (ko) | 2012-04-04 | 2019-02-18 | 삼성전자주식회사 | 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법 |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
KR101993258B1 (ko) | 2012-11-22 | 2019-09-27 | 삼성전자주식회사 | 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩 |
JP6056453B2 (ja) * | 2012-12-20 | 2017-01-11 | 富士通株式会社 | プログラム、データ管理方法および情報処理装置 |
JP6175794B2 (ja) * | 2013-02-19 | 2017-08-09 | 株式会社リコー | データ処理装置およびデータ処理方法 |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9146864B2 (en) | 2013-03-15 | 2015-09-29 | International Business Machines Corporation | Address mapping including generic bits for universal addressing independent of memory type |
US9142272B2 (en) | 2013-03-15 | 2015-09-22 | International Business Machines Corporation | Dual asynchronous and synchronous memory system |
US9535778B2 (en) | 2013-03-15 | 2017-01-03 | International Business Machines Corporation | Reestablishing synchronization in a memory system |
US9092330B2 (en) | 2013-03-15 | 2015-07-28 | International Business Machines Corporation | Early data delivery prior to error detection completion |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US8832324B1 (en) * | 2013-03-15 | 2014-09-09 | International Business Machines Corporation | First-in-first-out queue-based command spreading |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9037811B2 (en) | 2013-03-15 | 2015-05-19 | International Business Machines Corporation | Tagging in memory control unit (MCU) |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9136987B2 (en) | 2013-03-15 | 2015-09-15 | International Business Machines Corporation | Replay suspension in a memory system |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9430418B2 (en) | 2013-03-15 | 2016-08-30 | International Business Machines Corporation | Synchronization and order detection in a memory system |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
KR101513398B1 (ko) * | 2014-07-02 | 2015-04-17 | 연세대학교 산학협력단 | 소모전력을 감소시킬 수 있는 단말장치 및 이의 제어방법 |
US10303631B2 (en) | 2016-03-17 | 2019-05-28 | International Business Machines Corporation | Self-moderating bus arbitration architecture |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
JP2021196681A (ja) * | 2020-06-10 | 2021-12-27 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US11354172B2 (en) * | 2020-09-01 | 2022-06-07 | Nxp Usa, Inc. | Centralized access control circuit for controlling access to peripherals |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4257095A (en) * | 1978-06-30 | 1981-03-17 | Intel Corporation | System bus arbitration, circuitry and methodology |
US4760515A (en) * | 1985-10-28 | 1988-07-26 | International Business Machines Corporation | Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis |
JPH0594409A (ja) * | 1991-10-02 | 1993-04-16 | Nec Eng Ltd | バス調停システム |
JPH0660017A (ja) | 1992-08-06 | 1994-03-04 | Nec Eng Ltd | 競合回路 |
WO2002069157A1 (en) * | 2001-02-28 | 2002-09-06 | Brecis Communications Corporation | A subsystem boot and peripheral data transfer architecture for a subsystem of a system-on-chip |
JP2002304367A (ja) | 2001-04-03 | 2002-10-18 | Sony Corp | アービター装置及び方法 |
JP3791005B2 (ja) * | 2001-11-20 | 2006-06-28 | 日本電気株式会社 | バスアクセス調停装置及びバスアクセス調停方法 |
KR101089324B1 (ko) * | 2004-02-20 | 2011-12-02 | 삼성전자주식회사 | 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템 |
-
2004
- 2004-04-27 JP JP2004131860A patent/JP4222251B2/ja not_active Expired - Fee Related
-
2005
- 2005-04-26 US US11/113,970 patent/US7149828B2/en not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014514662A (ja) * | 2011-04-20 | 2014-06-19 | マーベル ワールド トレード リミテッド | 可変長アービトレーション |
US9507742B2 (en) | 2011-04-20 | 2016-11-29 | Marvell World Trade Ltd. | Variable length arbitration |
JP2014035549A (ja) * | 2012-08-07 | 2014-02-24 | Ricoh Co Ltd | バス制御装置、画像処理装置及びバス制御方法 |
US9600426B2 (en) | 2012-08-07 | 2017-03-21 | Ricoh Company, Ltd. | Bus control device, image processing apparatus, and bus control method |
JP2014081673A (ja) * | 2012-10-12 | 2014-05-08 | Fujitsu Semiconductor Ltd | 処理装置及び処理装置の制御方法 |
JP2015176380A (ja) * | 2014-03-14 | 2015-10-05 | 株式会社リコー | 画像処理装置および画像形成装置 |
JP2018120490A (ja) * | 2017-01-26 | 2018-08-02 | キヤノン株式会社 | メモリアクセスシステム、その制御方法、プログラム、及び画像形成装置 |
US11163711B2 (en) | 2017-01-26 | 2021-11-02 | Canon Kabushiki Kaisha | Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus |
JP2019020766A (ja) * | 2017-07-11 | 2019-02-07 | 富士ゼロックス株式会社 | 電子装置 |
JP6992295B2 (ja) | 2017-07-11 | 2022-01-13 | 富士フイルムビジネスイノベーション株式会社 | 電子装置 |
Also Published As
Publication number | Publication date |
---|---|
US7149828B2 (en) | 2006-12-12 |
US20050240707A1 (en) | 2005-10-27 |
JP4222251B2 (ja) | 2009-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4222251B2 (ja) | バス調停装置およびバス調停方法 | |
JP3699833B2 (ja) | メモリアーキテクチャーのための優先符号化及び復号化 | |
KR100839494B1 (ko) | 버스 중재 시스템 및 버스 중재 방법 | |
KR101949382B1 (ko) | 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법 | |
US6519666B1 (en) | Arbitration scheme for optimal performance | |
JP4907166B2 (ja) | リソース管理装置 | |
KR101270848B1 (ko) | 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기 | |
US9684633B2 (en) | Adaptive service controller, system on chip and method of controlling the same | |
US7725633B2 (en) | Arbitration device for arbitrating among a plurality of master devices, arbitration method, and video processing device including the arbitration device | |
US6820152B2 (en) | Memory control device and LSI | |
KR20050043426A (ko) | 파이프라인 버스 시스템에서 커맨드 전송 방법 및 장치 | |
US20080077720A1 (en) | Isochronous memory access with variable channel priorities and timers | |
CN103543954A (zh) | 一种数据存储管理方法和装置 | |
JP2010282405A (ja) | データ処理システム | |
US8505016B2 (en) | Enhanced shortest-job-first memory request scheduling | |
US11055243B1 (en) | Hierarchical bandwidth allocation bus arbiter | |
US5907688A (en) | Smart arbitration for non-symmetric data streams | |
JP2005316609A (ja) | バス調停装置およびバス調停方法 | |
Jang et al. | An SDRAM-aware router for networks-on-chip | |
KR20160112305A (ko) | 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템 | |
US6317813B1 (en) | Method for arbitrating multiple memory access requests in a unified memory architecture via a non unified memory controller | |
US7613856B2 (en) | Arbitrating access for a plurality of data channel inputs with different characteristics | |
TW200400438A (en) | Bus arbiter for integrated circuit systems | |
WO2006024193A1 (fr) | Procede et systeme pour transfert de donnees | |
US7099972B2 (en) | Preemptive round robin arbiter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080401 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080523 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081028 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081110 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111128 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |