JP2005316608A - バス調停装置およびバス調停方法 - Google Patents

バス調停装置およびバス調停方法 Download PDF

Info

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
Application number
JP2004131860A
Other languages
English (en)
Other versions
JP4222251B2 (ja
Inventor
Atsushi Hayashi
篤史 林
Mitsuaki Shiragami
光章 白神
Katsuhiko Yamanaka
克彦 山中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004131860A priority Critical patent/JP4222251B2/ja
Priority to US11/113,970 priority patent/US7149828B2/en
Publication of JP2005316608A publication Critical patent/JP2005316608A/ja
Application granted granted Critical
Publication of JP4222251B2 publication Critical patent/JP4222251B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling 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(First In First Out)バッファにより吸収し、各バスマスタのデータ転送量の違いやデータ転送に係る情報の違い等を調停に反映させながら、FIFOバッファがオーバーフロ/アンダーフロを起こさないように構成したバス調停装置に関する技術が知られている。
たとえば、各バスマスタの処理を破綻させないために、バス使用の要求(データ転送要求)を送出した順に、バス使用の優先順位を決定するバス調停装置が知られている。
たとえば、下記特許文献1では、FIFOバッファのオーバーフロー/アンダーフローを抑制するバス調停装置として、一のバスマスタがデータ転送を行っている最中に、別のバスマスタがデータ転送を要求する場合には、所定の時間的制限を超えたときに緊急バス獲得信号を出すように構成する、または、バスマスタが要求を出したサイクル数をカウントして、要求を出した順に優先順位を決定するように構成する競合回路が提案されている。
これにより、後発的にデータ転送を要求するバスマスタにデータ転送許可が与えられ、当該バスマスタのFIFOバッファがオーバーフロー/アンダーフローに陥らないことにしている。
一方、下記特許文献2では、複数のバスマスタからの要求を調停する際に、バスマスタの数が増大しても、処理速度の低下を防止するために、ツリー構造のラウンドロビンアービタに関する技術が提案されている。
特開平6−60017号公報 特開2002−304367号公報
ところで、特許文献1に提案されている技術によれば、バス調停装置の処理性能を向上させることや、各バスマスタに用意すべきFIFOバッファ容量を削減することは可能となる一方で、システムが破綻するか否かを判断することはできない。
たとえば、上記特許文献1に提案されている競合回路によれば、所定の時間的制限を超えたときには緊急バス獲得信号を出すようにし、これに応じてデータ転送許可が与えられるという構成にしているが、かかる緊急のパスを設けた場合でも、複数のバスマスタが同時にかかる時間的制限を越えてしまう時には、FIFOバッファがオーバーフロー/アンダーフローを起こさないことを保障できなくなる場合が起こりうる。
また、かかる時間的制限を緩和し、より早く緊急バス獲得信号を発することで、2〜3のバスマスタのFIFOバッファが同時にオーバーフロー等を起こさないようにしても、近年の1チップにおけるシステムの巨大化、1チップにおけるシステムモードの多様化に起因するバスマスタ数の増加を鑑みれば、当該2〜3のバスマスタより多くのバスマスタのFIFOバッファが同時にオーバーフロー等を起こさないとも限らない。
さらに時間的制限を緩和した場合には、より緊急バス獲得信号が発生しやすくなり、結局は、全てのバスマスタ間で、緊急バス獲得信号に基づいた調停が行われるようなことになりかねない。かかる場合には、緊急バス獲得信号を設ける意味がないことにもなる。
本発明はかかる事情に鑑みてなされたものであり、その目的は、全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止するバス調停装置およびバス調停方法を提供することにある。
上記目的を達成するために本発明の第1の観点は、複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停する第1の調停手段と、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停する第2の調停手段と、前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停する第3の調停手段と、を有し、前記第1第3の調停手段による調停を、前記第1の調停手段から順に優先的に実行する。
好適には、前記バス調停装置は、所定のデータ処理サイクルのうち、前記第1の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、前記バス使用比率制御手段により決定される比率に基づいて、前記第1および第2の調停手段による調停を実行する。
好適には、前記バス調停装置は、前記バス使用比率制御手段が前記第2の調停手段による調停を優先せたことによりデータ転送要求が許可されない第1のバスマスタを調停する。
上記目的を達成するために本発明の第2の観点は、複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停するステップと、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停するステップと、前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停するステップとを有する。
本発明の第1の観点によれば、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停する第1の調停手段と、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停する第2の調停手段と、前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停する第3の調停手段と、の調停を順に第1の調停手段から優先的に実行するので、第1のバスマスタが優先して調停され、遅延時間が保障される。
また、本発明の第1の観点によれば、バス使用比率制御手段は、所定のデータ処理サイクルのうち、前記第1の調停手段が前記メモリバスを優先的に使用する比率を制限可能とするので、第2のバスマスタが破綻しない。
本発明に係るバス調停装置によれば、各バスマスタの調停を一律に行うのではなく、バスマスタの性質に応じて階層型の調停を行うので、全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止することが可能となる。
以下の各実施形態の説明において、第1の実施形態は第1および第10の発明に、第2の実施形態は第2および第3の発明に、第3の実施形態は第4の発明に、第4および第5の実施形態は第5の発明に、第6の実施形態は第6の発明に、第7の実施形態は第7の発明に、第8の実施形態は第8の発明に、第9の実施形態は第9の発明に、それぞれ対応する。
第1の実施形態
一般に、バスマスタの性質は、クライアントの機能に応じてそれぞれ大きく異なる場合が多いことが通常である。
たとえば、あるバスマスタは、CPU等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要する、または極力早く処理されることによって、システム全体としての処理能力が向上するという性質を持つ。
あるバスマスタは、たとえば、ディジタルTV等のクライアントを有し、データ転送時間が予め予測でき、FIFOバッファによって転送データの損失を防ぐ必要があるという性質を持つ。たとえば、ディジタルTVでは、リアルタイムで表示を行うために水平1ラインの画像データ所定の垂直走査時間単位で必要となり、その画像データ分のデータ転送が予め予測できる時間内になされる必要がある。
また、あるバスマスタは、比較的長い時間において、データ転送を行えば足りるなど緊急性が低いという性質を持つ。
かかる場合に、各バスマスタの性質に関わりなく、一律に同一の転送データの保障を行うことは、バス全体のパフォーマンスを大きく下げることになる。特に、予測できないアクセスをし、しかも極めて緊急性を要するデータ転送を行うという性質を持つバスマスタと、予め転送時間が予測でき、FIFOバッファによって転送データの損失を防ぐという性質を持つバスマスタとの間を最適に調停し、システム全体のパフォーマンスを下げずに転送データの損失を回避できるようにすることが本発明に係るバス調停装置の目的である。
図1は、本発明に係るバス調停装置が適用される全体的なシステム構成を示す。
図1において、CPUやTV(特に、ディジタルTV)は、クライアント(それぞれ、クライアントCLT1,CLT2)であり、対応するバスマスタに対してデータ転送を要求する。
データ処理装置1は、複数のクライアントからのデータ転送要求を満足するように処理するためのデータ処理装置であり、1チップのLSIにより構成される。
メモリMEMは、たとえば、ダブルデータモードによる高速なデータ転送機能を有するSDRAMであるDDRメモリにより構成される。メモリMEMは、各クライアントに対応するデータを格納し、データ処理装置1により調停されたバスマスタの要求に係るデータのリード/ライト処理がなされる。
データ処理装置1は、図に示すように、各クライアントからのデータ転送要求を受ける複数のバスマスタを有する。各バスマスタは、対応するクライアントからのデータ転送要求に基づいて、メモリコントローラ(MEM_C)10に対して、データ転送要求(メモリバスに対するアクセス権の要求)を行う。
また、各バスマスタに用意されるFIFOバッファは、リード/ライト処理に係るデータを一時的に格納する。
メモリコントローラ(MEM_C)10に含まれるアービタ(ARB)は、本発明に係るバス調停装置に対応する。
アービタ(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は、たとえば図1に示すように、リアルタイムで表示処理を行うディジタルTV(クライアントCLT2)等のように、データ転送時間が予め予測できるクライアントを有する。
すなわち、第2階層のバスマスタBMG_2のクライアントは、上述したディジタルTVのように、リアルタイムで表示処理を行っており、いつまでに画像データをリード/ライト処理しなければならないかが事前に明確になっているというクライアントである。第2階層のバスマスタBMG_2は、データ転送に要する時間を予め予期できるので、たとえば、早い段階でリード要求を行うということが可能である。
また、第2階層のバスマスタBMG_2では、FIFOバッファによって転送データの損失を防ぐことを前提としている。たとえば、アービタによる調停が遅れるような場合には、FIFOバッファに一時的にデータを格納することで、その調停の遅れをしのぐことにしている。
以下、第2階層のバスマスタBMG_2に対応するクライアントを、第2階層のクライアントと称する。
第3階層のバスマスタBMG_3は、第1階層のバスマスタBMG_1および第2階層のバスマスタBMG_2のいずれにも属さない複数のバスマスタからなり、比較的長い時間においてデータ転送を行えば足りるという比較的緊急性が低いという性質を持つ。
以下、第3階層のバスマスタBMG_3に対応するクライアントを、第3階層のクライアントと称する。また、第3階層のバスマスタBMG_3は、FIFOバッファを有しない場合がある。
アービタは、これらのバスマスタの間の調停を行うが、その際に、原則として、第1階層のバスマスタBMG_1を調停することを最優先に行う。
そして、第1階層のバスマスタBMG_1においてバス使用権の要求(REQ)がない場合等、第1階層のバスマスタBMG_1の調停が行われていない場合には、第2階層のバスマスタBMG_2を調停する。さらに、第1階層および第2階層のバスマスタBMG_1,BMG_2の調停が行われていない場合には、第3階層のバスマスタBMG_3の調停を行う。
図2は、本実施形態に係るアービタ20の実際の構成を示す。
本実施形態に係るアービタは、データ転送要求(REQ)に係る第1階層のバスマスタBMG_1を調停するための第1階層の調停回路ARB_1と、データ転送要求(REQ)に係る第2階層のバスマスタBMG_2を調停するための第2階層の調停回路ARB_2と、データ転送要求(REQ)に係る第3階層のバスマスタBMG_を調停するための第3階層の調停回路ARB_3と、から構成される。
図2に示すように、全体として、本実施形態に係るアービタ20は、ツリー構造のバス調停装置となっている。
なお、第1階層の調停回路ARB_1は、本発明の第1の調停手段に相当し、第2階層の調停回路ARB_2は、本発明の第2の調停手段に相当し、第3階層の調停回路ARB_3は、本発明の第3の調停手段に相当する。
本実施形態に係るアービタ20は、図2に示すように、さらに2つの調停回路21,22を含んで構成される。
図2に示す調停回路21,22は、ツリー構造の調停回路であり、入力する2つのデータ転送要求の調停を行う。その際、どちらか一方のデータ転送要求があった場合には、そのデータ転送要求に許可を与え、両方のデータ転送要求があった場合には、図に示す「P」と記載された方のデータ転送要求に対して優先的に許可を与える。
したがって、たとえば、調停回路21は、調停回路ARB_2および調停回路ARB_3からのデータ転送要求がともに存在する場合には、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_2からのデータ転送要求が存在しない場合には、調停回路ARB_3からのデータ転送要求に対して許可を与える。
以下、調停回路21,22のように、ツリー構造を有し、一方のデータ転送要求に対して優先的に許可を与える調停回路を、優先権付調停回路と称する。
かかる構成を有することにより、本実施形態に係るアービタ20は、以下に述べるように調停を行う。
すなわち、本実施形態に係るアービタ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)を与える。
以上述べたように、本実施形態に係るアービタ20によれば、バスマスタの性質に応じて、調停を3つの階層に分類し、緊急性が高い第1階層のバスマスタを最優先に調停し、第1階層のバスマスタについて調停が行われていない場合には、リアルタイムにデータ処理を行う必要がある第2の階層のバスマスタを優先的に調停し、第1階層および第2階層のバスマスタのいずれに対しても調停が行われていない場合には、第3階層のバスマスタの調停を行うように構成したので、バスマスタの増加やシステムモードの多様化に対応した効率的な調停を行うことが可能である。
第2の実施形態
次に、第2の実施形態に係るアービタについて述べる。
第1の実施形態の説明において述べたアービタ20は、基本的には緊急性が高い第1階層のバスマスタを優先させるため、第2階層のバスマスタが破綻してしまう可能性がある。すなわち、第1階層のバスマスタの要求を全て優先してしまうと、第2階層のバスマスタから見ると、メモリコントローラ(MEM_C)10の処理能力が低下することを意味し、各バスマスタの要求が密集した場合には、未処理データが増大し、転送データの損失を防ぐことができない状況に陥るおそれがある。
また、データ処理装置1は、第2階層のバスマスタからのデータ転送要求(REQ)が短時間に集中した結果、第2階層の調停回路ARB_2の処理能力を一時的に上回ることが起こった場合には、一時的に上回った間の未処理の要求分に係るデータ転送をFIFOバッファで補うことにより、転送データの損失を回避する構成をとっているが、第1階層のバスマスタからのバス使用要求に制限がない場合には、第2階層の調停回路ARB_2の処理能力が定まらず、転送データの損失を防ぐことができなくなる。
そこで、本実施形態に係るアービタでは、第1階層のバスマスタからのデータ転送要求(REQ)に対して制限を加え、第1階層の調停回路ARB_1からのデータ転送要求が、第2階層の調停回路ARB_2からのデータ転送要求に対して常に優先的調停されることがないように、第1の実施形態に係るアービタ20を変更する。
図3に、本実施形態に係るアービタ20aの構成を示す。
図3に示すように、本実施形態に係るアービタ20aは、第1の実施形態に係るアービタ20と比較して、調停回路22をバス使用比率制御回路(URC)23に変更した点で相違する。
すなわち、本実施形態に係るアービタ20aでは、第1階層の調停回路ARB_1からのデータ転送要求を、第2階層の調停回路ARB_2からのデータ転送要求に対して、常に優先させるのではなく、状況に応じて、第1階層のバスマスタによるバス占有比率を制限するためのバス使用比率制御回路23を有している。
なお、バス使用比率制御回路23は、本発明のバス占有比率制御手段に対応する。
図4および図5は、図3に示したアービタの変形例である。各図において、R/Rは、ラウンドロビン回路を示す。
図4に示すように、図3で示したアービタ20aに対して、第2階層のバスマスタに対し、FIFOバッファが破綻寸前の場合などの緊急性が高い場合のためのラウンドロビン回路をさらに設けることもできる。これは、FIFOバッファの見積もりミスの場合の保険的階層として機能する。
また、図5に示すように、図4で示したアービタに対して、さらに、第2階層のバスマスタがFIFOバッファの状態に応じてデータ転送要求先を変更するような構成とすることもできる。
図6に、バス使用比率制御回路23の一構成例であるバス使用比率制御回路23aを示す。図に示すように、バス使用比率制御回路23aは、カウンタ23a_1と調停回路23a_2とを含んで構成される。
カウンタ23a_1は、所定のデータ転送サイクルをカウントする。すなわち、カウンタ23a_1は、実質的にタイマとして機能する。
調停回路23a_2は、図2に示した調停回路21,22と同様の優先権付調停回路である。
カウンタ23a_1のカウント値CNTが所定の閾値Aに満たない場合には、調停回路23a_2は、調停回路ARB_1および調停回路ARB_2からのデータ転送要求がともに存在する場合には、調停回路ARB_1からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_1からのデータ転送要求が存在しない場合には、調停回路ARB_2からのデータ転送要求に対して許可を与える。
カウント値CNTが所定の閾値Aに達した場合には、調停回路23a_2は、逆に、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。
上述したようにアービタ20aを構成することにより、第1階層のバスマスタによるバスの占有比率に制限を加えたので、第2階層のバスマスタは、メモリコントローラ(MEM_C)10のデータ転送に対する処理能力を判断することが可能となり、転送データの損失を防ぐことができるようになる。
第3の実施形態
以下、第3の実施形態に係るデータ処理装置について述べる。
前述した第2の実施形態に係るアービタ20aによっても、第1階層のバスマスタによるバスの占有比率を適切に制御できない場合がある。たとえば、第1階層のバスマスタが一定のデータ処理サイクルで動作する等、所定のデータ処理サイクルの最大転送量が決まっているが、その所定のデータ処理サイクルの間では不規則にデータ転送要求(REQ)を行いたいような場合である。
かかる場合に、第2の実施形態で述べたバス使用比率制御回路23aによれば、カウンタ23a_1のカウント値CNTが所定の閾値Aに満たない範囲内であるその所定のデータ処理サイクルの前半の要求は満足できても、カウント値CNTが所定の閾値Aに達し、第1階層がバス使用の優先権を喪失した後であるその所定のデータ処理サイクルの後半の要求が満足できない可能性がある。
一方、所定の閾値Aを増加させることにより、第1階層のバスマスタの占有比率を増加させると、場合によっては、第1階層のバスマスタがその間バスを完全に占有する可能性もある。
すなわち、第2階層のデータ転送について、最良の場合と最悪の場合のばらつき幅が大きくなることを意味する。かかる場合に、最悪の場合を考慮すると、第1および第2階層の全体の処理能力を低下させることになる。
そこで、本実施形態に係るアービタでは、所定データ転送サイクル内における第1階層のバスマスタによるデータ転送数をカウントし、そのカウント結果によって、第1階層のバスマスタのデータ転送要求(REQ)を制限する。
図7に、本実施形態に係るアービタのバス使用比率制御回路23bの一構成例を示す。図に示すように、本実施形態に係るアービタは、第2の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路23bは、カウンタ23b_1および23b_2、調停回路23b_3を含んで構成される。
カウンタ23b_1は、所定の初期値からカウントダウンを行い、「0」に達した場合には、カウンタ23b_2にリセットをかける。すなわち、カウンタ23b_1は、タイマとして機能する。
カウンタ23b_2は、第1階層のバスマスタBMG_1に許可されたバスの使用に係るデータ転送回数GNT_NUMをカウントする。カウンタ23b_1にリセット(reset)をかけられるまでデータ転送回数GNT_NUMをカウントするので、所定期間内の第1階層のデータ転送回数が算出される。
調停回路23b_3は、すでに述べた優先権付調停回路である。
そして、カウンタ23b_2のカウント値CNTが所定の閾値A(本発明の第1閾値)に満たない場合、調停回路23b_3は、調停回路ARB_1および調停回路ARB_2からのデータ転送要求がともに存在する場合には、調停回路ARB_1からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_1からのデータ転送要求が存在しない場合には、調停回路ARB_2からのデータ転送要求に対して許可を与える。
カウント値CNTが所定の閾値Aに達した場合には、調停回路23b_3は、逆に、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。
上述したようにアービタを構成することにより、第2階層から見た場合のメモリコントローラの処理能力を判断できるような調停を可能とし、さらに、所定サイクルのの中で、第1階層のバスマスタが不定期に要求(REQ)を出す場合であっても、所定の数の要求までは調停を受けることが可能となる。
もっとも、その所定サイクルを第2階層のFIFOバッファの破綻が起こりうるほど長く設定した場合であって、そのサイクル内のごく短時間に第1階層のバスマスタの要求(REQ)が集中するような場合には、第2階層のバスマスタの転送データの損失を防ぐことができなくなるが、所定サイクルの値を適切に設定すれば、第1階層のバスマスタの動作を抑制させることができ、第2階層のバスマスタの処理に対するばらつきを抑制することが可能である。
第4の実施形態
以下、第4の実施形態に係るデータ処理装置について述べる。
前述した第3の実施形態に係るアービタのように、単にデータ転送回数GNT_NUMをカウントするだけでは、第1階層のバスマスタによる1つのデータ転送に要するサイクル数に差がある場合には、第2階層のバスマスタの処理能力に対するばらつきが大きくなる可能性がある。
たとえば、第1階層のバスマスタが行うデータ転送のサイクル数が8サイクル、16サイクル、20サイクル等と変化するときに、そのデータ転送の回数をカウントするだけでは、すべてのデータ転送が8サイクルで行われる場合と、すべてのデータ転送が20サイクルで行われる場合とでは、第1階層のバスマスタがバスを占有する時間が大きく異なり、結果として、第2階層のバスマスタに対する処理のばらつきが大きくなるのである。
そこで、本実施形態に係るアービタは、データ転送毎にそのデータ転送に要するサイクル数を求め、そのサイクル数を所定時間カウントし、それが所定数に達するまで第1階層のバスマスタを優先し、第2階層から見た場合のメモリコントローラMEM_Cの処理能力を判断できるような調停を可能とする。
図8に、本実施形態に係るバス使用比率制御回路23cの一構成例を示す。
本実施形態に係るアービタは、第3の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路23cは、カウンタ23c_1と、積算器23c_2と、調停回路23c_3およびセレクタ23c_4を含んで構成される。
カウンタ23c_1は、所定の初期値からカウントダウンを行い、「0」に達した場合には、積算器23c_2にリセットをかける。すなわち、カウンタ23c_1は、タイマとして機能する。
セレクタ23c_4は、各データ転送種類(たとえば、リード/ライト処理)に要するサイクル数についての情報CYC_DATAが予め与えられており、第1階層のバスマスタに許可(GNT)されたデータ転送種類に要するサイクル数CYC_NUMを、予め与えられたCYC_DATAの中から選択して、順次出力する。
積算器23c_2は、セレクタ23c_4から順次出力されるサイクル数CYC_NUMを積算する。その際、カウンタ23c_1にリセット(reset)をかけられるまでサイクル数CYC_NUMを積算するので、所定期間内に第1階層のバスマスタに許可されたデータ転送のサイクル数の総和(総サイクル数)が算出される。
調停回路23c_3は、すでに述べた優先権付調停回路である。
そして、積算器23c_2により算出された総サイクル数が所定の閾値A(本発明の第2閾値)に満たない場合、調停回路23c_3は、調停回路ARB_1および調停回路ARB_2からのデータ転送要求がともに存在する場合には、調停回路ARB_1からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_1からのデータ転送要求が存在しない場合には、調停回路ARB_2からのデータ転送要求に対して許可を与える。
積算器23c_2により算出された総サイクル数が所定の閾値Aに達した場合には、調停回路23c_3は、逆に、調停回路ARB_2からのデータ転送要求に対して優先的に許可を与える。
上述したようにアービタを構成することにより、第1階層のバスマスタによる1つのデータ転送に要するサイクル数に差がある場合であっても、第2階層から見た場合のメモリコントローラMEM_Cの処理能力を判断できる調停が可能となる。
第5の実施形態
以下、第5の実施形態に係るデータ処理装置について述べる。
第4の実施形態に係るデータ処理装置において、セレクタ23c_4に予め与えられる各データ転送種類(たとえば、リード/ライト処理)に要するサイクル数は、通常、前回のデータ転送にも依存する。たとえば、転送するデータ量が等しい場合であっても、前回のコマンドがリードである場合とライトである場合とでは、ライトのためのデータ転送に要するサイクル数が異なるのが通常である。
かかる場合に、あるコマンドAに係るデータ転送には、前後の組み合わせに応じて8〜10サイクルの幅を持ち、あるコマンドBに係るデータ転送には、前後の組み合わせに応じて16〜22サイクルの幅を持つ場合に、各コマンドに対してサイクル数を標準サイクルに固定して(たとえば、コマンドA:9サイクル,コマンドB:20サイクルというように固定して)セレクタ23c_4の処理を行うとすると、あるデータ処理サイクルにおいて、コマンドBによるデータ転送の最悪ケース(22サイクル)が連続する場合には、第2階層のバスマスタに対する処理能力に影響を及ぼす。
そこで、本実施形態に係るデータ処理装置では、その各データ転送種類毎に最悪ケースのデータ転送サイクル(上述した例では、コマンドA:10サイクル,コマンドB:22サイクル)を予め算出してアービタに与え、アービタは、各データ転送は、最悪ケースのデータ転送サイクルがかかるものと擬制して処理する。
具体的には、本実施形態に係るバス使用比率制御回路は、図8を参照して述べた第4の実施形態に係るバス使用比率制御回路23cの構成と同一であり、図8のセレクタ23c_4が、各データ転送種類(たとえば、リード/ライト処理)に要する最悪ケースのサイクル数についての情報が予め与えられており、第1階層のバスマスタに許可(GNT)されたデータ転送種類に要する最悪ケースのサイクル数を、選択して順次出力する点で異なる。
これにより、第1階層のバスマスタによるデータ転送のサイクル数がばらついた場合であっても、第1階層のデータ転送が安定的に処理され、第2階層のバスマスタから見た場合のメモリコントローラMEM_Cの処理能力を判断できる調停が可能となる。
その際、本実施形態に係るバス使用比率制御回路23cは、最悪ケースのデータ転送サイクルに基づいて処理を行うので、実際のデータ転送で最悪ケースのデータ転送サイクルにならなかった場合には、第1階層のバスマスタに対する処理がより多くできたにも関わらず、第2/第3階層のバスマスタにバス使用権を譲ることになる。しかし、第1階層のバスマスタに対しては、最悪ケースのデータ転送サイクルであっても保障できる分の割合のバス使用権を与えているので、問題にはならない。
なお、前述したように、図8のセレクタ23c_4に予め与えられる各データ転送種類に要するサイクル数は、通常、前回のデータ転送にも依存するので、より精確に第1階層のバスマスタに対するバス占有比率を制御するためには、上述したような最悪ケースのデータ転送サイクルに基づいて処理を行うのではなく、前回のデータ転送を考慮した組み合わせ結果に応じてサイクル数CYC_NUMを出力するように、セレクタ23c_4を構成することもできる。
しかしながら、データ転送の種類が多いために組み合わせに応じたデータ転送に要するサイクル数を算出することが困難な場合や、当該算出のための回路を付加することが困難な場合には、本実施形態で述べた処理を行うことが望ましい。
第6の実施形態
以下、第6の実施形態に係るデータ処理装置について述べる。
第4および第5の実施形態に係るバス使用比率制御回路によれば、積算器23c_2により算出された総サイクル数が所定の閾値Aに満たない場合には、調停回路23c_3は、第1階層の調停回路ARB_1からのデータ転送要求を優先して調停するが、この所定の閾値Aを少し越えるようなデータ転送となった場合に、どのように調停すべきか問題となる。
すなわち、積算器23c_2により算出された総サイクル数が所定の閾値Aを超える場合に、固定的にデータ転送を制限すると、第1階層のバスマスタは、データ処理サイクル毎に、常にある程度のデータ転送サイクルを損することになる。これは、所定の閾値Aを少し大きく設定すれば、まとまったデータ転送処理を完了できることになるので、所定の閾値Aの設定次第で、第2階層のバスマスタに対する処理能力のばらつきが変化することを意味する。
一方、積算器23c_2により算出された総サイクル数が所定の閾値Aを超える場合に、その越えた分のデータ転送を制限しないときにも、同様に、所定の閾値Aの設定次第で、第2階層のバスマスタに対する処理能力のばらつきが変化する。
したがって、本実施形態に係るバス使用比率制御回路23dでは、所定の閾値Aに依存せずに、第2階層から見た場合のメモリコントローラMEM_Cの処理能力をより安定的に判断できるような調停を可能とする。
具体的には、あるデータ処理サイクルにおいて、データ転送の総サイクル数が所定の閾値Aを少し超える場合には、その越える部分のデータ転送を許可するが、当該許可によって第1階層のデータ転送が所定の閾値Aオーバーしたサイクル数については、次のデータ処理サイクルの際に所定の閾値Aから減ずることにより、次のデータ処理サイクルにおける第1階層のデータ転送を所定の閾値Aよりさらに制限する。
所定の閾値Aを越えて許可するサイクル数については、予め設定しておく。
図9に、本実施形態に係るバス使用比率制御回路23dの一構成例を示す。
本実施形態に係るバス使用比率制御回路23dは、図に示すように、カウンタ23d_1と、積算器23d_2と、調停回路23d_3およびセレクタ23d_4を含んで構成される。
カウンタ23d_1は、所定の初期値からカウントダウンを行い、「0」に達した場合には、積算器23d_2にリセットをかける。すなわち、カウンタ23d_1は、タイマとして機能する。
セレクタ23d_4は、各データ転送種類(たとえば、リード/ライト処理)に要するサイクル数についての情報CYC_DATAが予め与えられており、第1階層のバスマスタに許可(GNT)されたデータ転送種類に要するサイクル数CYC_NUMを、予め与えられたCYC_DATAの中から選択して、順次出力する。
積算器23d_2は、セレクタ23d_4から順次出力されるサイクル数CYC_NUMを積算する。その際、カウンタ23d_1にリセット(reset)をかけられるまでサイクル数CYC_NUMを積算するので、所定期間内に第1階層のバスマスタに許可されたデータ転送のサイクル数の総和(総サイクル数)が算出される。
調停回路23d_3は、すでに述べた優先権付調停回路である。
そして、総サイクル数から所定の閾値Aを減算し、減算結果が負である場合には、調停回路23d_3は、調停回路ARB_1および調停回路ARB_2からのデータ転送要求がともに存在する場合には、調停回路ARB_1からのデータ転送要求に対して優先的に許可を与える。調停回路ARB_1からのデータ転送要求が存在しない場合には、調停回路ARB_2からのデータ転送要求に対して許可を与える。
一方、総サイクル数から所定の閾値Aを減算し、減算結果が正であって予め許容された値以下である場合、すなわち、データ転送の総サイクル数が所定の閾値Aを少しだけ超える場合には、その越える部分のデータ転送を許可する。
そして、積算器23d_2は、所定の閾値Aを越えた分のサイクル数(超過サイクル数value)を次の処理のデータ処理サイクルまで保持し、次のデータ処理サイクルでは、算出した総サイクル数前回の超過サイクル数valueを足し算して処理する。これにより、次の処理のデータ処理サイクルにおいては、前回の超過サイクル数value分だけ、第1階層のデータ転送がさらに制限される。
データ転送の総サイクル数が所定の閾値Aを少しだけ超え、その越える部分のデータ転送を許可された後は、第2階層のバスマスタに対してバス使用権を与えるべく、調停回路23b_3は、第2階層のバスマスタを選択する。
上述したようにバス使用比率制御回路23dを構成することにより、第1階層のバスマスタに対するデータ転送を、あるデータ処理サイクルにおいて少し多く実行した場合でも、次回のデータ処理サイクルにおいて、その分第1階層のバスマスタに対するデータ転送が制限されるので、全体で見れば、第1階層のバスマスタに対するバス占有比率が平均化される結果、第2階層のバスマスタに対する処理能力のばらつきがほとんど無くなることになる。
図10は、上述した第1階層のバスマスタに対する処理を模式的に表した図であり、(a)は、N番目およびN+1番目の処理を、(b)は、N+1番目およびN+2番目の処理を、それぞれ示す。
図10(a)に示すように、N番目の処理において、第1階層のデータ転送のために許容されたサイクル数である所定の閾値Aを越えた超過サイクル分の処理については、N+1番目の処理のために許容された所定の閾値Aを減らすことによって行う。図9を参照した説明では、N+1番目の処理において、算出した総サイクル数超過サイクル数を足し算し、所定の閾値Aと比較することとしたが、これは、図10(a)に示すように、N+1番目の処理において、閾値を超過サイクル数だけ減ずることと実質的に同一の処理である。
また、図10(b)に示すように、N+1番目の処理において、超過サイクル分が発生した場合には、同様に、N+2番目の処理のために許容された閾値を減らすことによって、処理を行う。
なお、上述した方法とは逆に、総サイクル数が所定の閾値Aを超える場合には、越える分のデータ転送を許可せずに、次のデータ処理サイクルの際に、超過サイクル数valueを総サイクル数から減らすことで、次のデータ処理サイクルの処理における第1階層の処理の比率を増加させる方法も考えられる。
しかし、かかる方法では、次のデータ処理サイクルにおいて、前回のデータ処理サイクルで制限を受けてデータ転送を許可されなかったサイクル分と、実際にデータ転送の要求がないために余ったサイクル分との区別が困難になる可能性がある。すなわち、データ転送要求(REQ)がないために余ったサイクル数を蓄積していくと、あるデータ処理サイクルで第1階層のバスマスタが蓄えたサイクル分を一度に使用し、第1階層のバスマスタに対する処理がバスを完全に占有するおそれがある。したがって、上述した方法のように、先のデータ処理サイクルにおいて超過分のデータ転送を許可し、後のデータ処理サイクルにおいて、超過分のサイクル数だけ制限を加える方がよい。
第7の実施形態
以下、第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の実施形態
以下、第8の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタにおいて、図3に示すように、第1階層の調停回路ARB_1は、第1階層のバスマスタBMG_1の調停結果に対して、バス使用比率制御回路により第1階層に対するデータ転送を制限する構成としたが、本実施形態では、かかる構成を拡張し、第1階層のバスマスタBMG_1に含まれる各バスマスタ毎にバス使用比率制御回路を設け、各バスマスタ毎にバス使用比率を制御するように構成する。
これにより、各バスマスタの性質に応じた、より精度の高い調停を行うことが可能となる。
第9の実施形態
以下、第9の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタでは、クライアントに応じたバスマスタの性質に応じて、第1階層第3階層のバスマスタに分類し、各バスマスタに対する調停を第1階層第3階層の調停回路を行う構成としたが、バスマスタ毎に調停を行うのではなく、データ転送要求毎にいずれの階層の調停回路にデータ転送要求を行うがを決定してもよい。
たとえば、バスマスタによっては、あるデータ転送は早期に処理を行う必要があり、ある転送は比較的長い時間で処理されれば足りるなどの状況があり得るため、上述したようにデータ転送毎にバス使用要求に係る調停回路の選択を変更する構成とすれば、全体としての処理能力が向上する。すなわち、各バスマスタに与えられたデータ転送要求に対応する保障すべき遅延時間に応じて、第1乃至第3のバス調停回路のいずれで調停を実行するかを決定するのである。
なお、第2階層のバスマスタのFIFOバッファの破綻の見積もりに失敗した場合を考慮して、第1階層より優先順位を上げた緊急の処理を行う別の階層を設けてもよい。
第10の実施形態
以下、第10の実施形態に係るデータ処理装置について述べる。
上述した第1階層のクライアントの中には、所定の処理サイクル(たとえば、V単位)毎に出力結果を送出すればよいが、回路上の内部の処理の制約上、バス使用要求(REQ)を送出してから極めて短時間でバス使用許可(GNT)を受けなければならないクライアントが存在する。たとえば、過去に設計されたIPを流用する場合などに、データ転送要求を出してから実際にデータをもらうまでの時間の最大値が決まっていて、かつ、その値が小さく設計されているクライアントがある場合である。
かかるクライアントは、所定の処理サイクルの中で、バス使用要求(REQ)を送出するタイミングは比較的平均化されているが、レイテンシに対する要求が極めて高い。
以下、このようなクライアントに対応するバスマスタをバスマスタ1Aと称する。
その一方で、同じ第1階層のクライアントであっても、CPUなどは、同様にレイテンシに対する要求が同様に極めて高いものの、処理サイクルの中でバス使用要求(REQ)を送出するタイミングが平均化されておらず、散発的である。
以下、このようなクライアントに対応するバスマスタをバスマスタ1Bと称する。
本実施形態に係るアービタは、上述したような性質の異なる第1階層のクライアントに対して、効率良く調停を行うための第1階層の調停回路を有する。
以下、本実施形態に係る第1階層の調停回路の動作を、図12に関連付けて述べる。
先ず、比較的平均的にバス使用要求(REQ)を送出するバスマスタ1Aの処理のためのクロック周波数を増加させる回路を設ける。これにより、仮にバスマスタ1Aの処理のみを1V単位の処理サイクル行ったとすれば、バスの占有バンド幅は増加するものの、1Vより早くその処理が終了する(図12(a))。
バス使用要求(REQ)を送出するタイミング散発的であるバスマスタ1Bから、バス使用要求(REQ)がある場合には、第1階層の調停回路では、バスマスタ1Aに対するクロックを停止し、バスマスタ1Bに対するデータ転送処理のみを行う。これにより、この間、CPU等に対応するバスマスタ1Bは、広いバス幅を完全に占有できる。
クロックを停止させるために、第1階層の調停回路は、クロック停止用の制御信号をバスマスタ1Aに対応するクライアントに対して送出する。
バスマスタ1Bによるデータ転送が終了すると、停止したクロックの作動を再開するために、クロック始動用の制御信号をバスマスタ1Aに対応するクライアントに対して送出する。
以上説明したように、本実施形態に係る第1階層の調停回路では、バスマスタ1Bからのバス使用要求(REQ)に基づいて、バスマスタ1Aに係るクライアントの処理を行うクロックを完全に停止して、その間は、広いバンド幅をバスマスタ1Bに占有させる。そして、平均化されたデータ転送を行うバスマスタ1Aは、所定の処理サイクル中の多くの時間では、高いクロック周波数により広いバンド幅を占有してデータ転送を行う。
これにより、所定の処理サイクルの中で、バス使用に係る性質の異なるバスマスタ1Aおよびバスマスタ1Bによるデータ転送を、効率よく行うことが可能となる。
なお、バスマスタ1Aに係るクライアントの処理を保証するために、クロックを止めた数をカウントし、その数をもってバスマスタ1Bに占有させる制御を行うとよい。
第11の実施形態
以下、本発明の第11の実施形態について、述べる。
一般に、各バスマスタは、対応するクライアントの性質に応じて、データ転送に対する要求が異なる。たとえば、あるバスマスタは、対応するFIFOバッファのデータ量に制限があり、あるバスマスタは保証時間に制限があり、また、あるバスマスタは、保証時間等の制限はないが極力早くデータを処理する必要がある。
かかるデータ転送に対する様々な要求を、一律に調停することは元より困難であるため、本実施形態に係るアービタは、対応するクライアントに応じて、バスマスタ側がバス使用要求(REQ)の優先順位を決定し、その優先順位に基づいて調停を行うことを特徴とする。
その際、各バスマスタ毎に決定する優先順位は、バスマスタ個々が独自の規則に基づいて定義されたデータ転送に対する緊急度であり、各バスマスタは、各データ転送に対し、定義された規則に従って、緊急度を決定する。
図13は、FIFOバッファのデータ量に応じて、優先順位をもったデータ転送要求を行うバスマスタを例示する図であり、(a)は、ライト処理の際のデータ転送要求を、(b)は、リード処理の際のデータ転送要求を、それぞれ示す。
(a)に示すように、ライト要求時、予め設定された制限LIM_A〜LIM_Cに基づいて、FIFOバッファに格納されたデータ量に対応するデータ転送要求REQ0〜REQ3を出力する。その際、各制限LIM_A〜LIM_Cと比較するFIFOバッファのデータ量は、要求が許可されたと想定した時のFIFOバッファのデータ量(予測値)をいう。
(a)に示すライト処理の際には、FIFOバッファにすでに格納されているデータ量が多いほどオーバーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、REQ0,REQ1,REQ2,REQ3の順に優先順位が高い要求となる。
一方、(b)に示すように、リード要求時、予め設定された制限LIM_D〜LIM_Fに基づいて、FIFOバッファに格納されたデータ量に対応するデータ転送要求REQ0〜REQ3を出力する。その際、各制限LIM_D〜LIM_Fと比較するFIFOバッファのデータ量は、要求が許可されたと想定した時のFIFOバッファのデータ量(予測値)をいう。
(b)に示すリード処理の際には、FIFOバッファにすでに格納されているデータ量が少ないほどアンダーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、REQ0,REQ1,REQ2,REQ3の順に優先順位が高い要求となる。
図13に示したように、FIFOバッファのデータ量に応じた優先順位を伴うデータ転送要求は一例であって、FIFOバッファのデータ量以外の様々なファクタに応じて、優先順位を決定し、データ転送要求を行うことが可能である。
たとえば、データの転送時間が所定の間隔で決まっているバスマスタ(ディジタルTVの表示処理など)は、要求を出す時間に応じて、データ転送時間に対してどれだけ時間的余裕があるか(あと何サイクルあるか)によって、データ転送要求の優先順位を変更する。その際、バスマスタ間で、クロックの周波数に差がある場合には、データ転送時間に対するサイクル数を、クロックの周波数に応じて変更してもよい。
さらに、各バスマスタごとに要求信号の範囲に差を設けることもできる。たとえば、あるバスマスタは、データ転送時間に余裕があるので、優先順位が高い要求を出さない(たとえば、REQ0〜REQ1を出力)とか、あるバスマスタは、常に優先順位が高い要求を出す(たとえば、常にREQ3を出力)等とすることもできる。
上述のように、本実施形態に係るデータ処理装置では、各バスマスタは、優先順位に応じたデータ転送要求を行うが、その際のアービタの構成を図14に示す。
図14に示すアービタでは、優先順位に応じた4つの調停回路ARB_00〜ARB_03と、調停回路24,25,26とを含んで構成される。図に示すように、本実施形態に係るアービタは、ツリー構造の調停装置となっている。
各調停回路ARB_00〜ARB_03は、それぞれデータ転送要求REQ0〜REQ3に係るバスマスタの調停を行う。
調停回路24,25,26は、優先権付調停回路であり、ツリー構造の調停回路を構成する。
すなわち、調停回路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の実施形態
以下、本発明の第12の実施形態について、述べる。
一般に、メモリバスの調停は、各バスマスタのバス使用要求(REQ)が集中すると、その集中した時点からバス使用要求が十分平均化されるまでの間、かかる要求がメモリコントローラの処理能力を完全に上回ってしまうことが起こる。すなわち、図15に示すように、極めて短期間tpの間にバス使用要求が集中する結果、要求に係るバス幅BWは、時刻tに達するまでの間、メモリコントローラの処理能力(M_CAP:処理可能なデータ量)を上回ることになる。
特に、かかる局所的なバンド幅BWの増加は、各バスマスタのバス使用要求が一定ではなく、ある程度ばらつきがある場合に顕著となる。
この全バスマスタの要求密度のばらつき、及びに各バスマスタの要求密度のばらつきに対して、FIFOバッファにより対応した場合に、たとえ適切なFIFOバッファ容量を設けても、適切な調停を行わなければ、FIFOバッファのオーバーフロー/アンダーフローが起こってしまう。
例えば、単に全てのバスマスタに対して、トークンリング方式のような回転式調停を同一比率で行った場合には、各バスマスタのバス使用要求間隔と回転式調停等の割合が合っていないと、全バスマスタの合計のFIFOバッファ容量が全バスマスタの要求密度のばらつきに対して十分であったとしても、占有比率が高いバスマスタが必要以上に早く調停される一方で、占有比率が低いバスマスタが破綻する場合がある。
したがって、本実施形態に係るデータ処理装置では、複数の要求信号とツリー構造の調停回路を持つことで、各バスマスタのバンド幅の割合に応じた適切な調停を行うものである。
そのために、本実施形態に係るデータ処理装置では、各バスマスタがFIFOバッファのデータ量に応じた多数の要求信号を有する。なお、要求信号に対応するものは、FIFOバッファのデータ量に限らず、たとえば、データ転送の要求時間でもよい。
本実施形態に係るデータ処理装置の回路構成としては、図14に示した複数階層の調停回路により実現する。そして、要求信号に基づいて優先度を決定し、優先度が高い要求を、より上位の階層の調停回路により調停する。
したがって、1階層での調停におけるバンド幅の割合が適切でない場合であっても、オーバーフロー/アンダーフローが近づいたバスマスタは上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
また、1階層を超えるバスマスタが複数になり2階層での調停が行われるようになり、適切な調停ができなくなっても、さらにオーバーフロー/アンダーフローが近づいたバスマスタは、上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
すなわち、最上位階層までの調停の割合に留意する必要がなく、最上位階層の調停回路には同時に2以上のバスマスタがアクセスしないように、十分に各バスマスタの要求信号と調停に階層を設ければ、常に適切な調停の割合を実現できる。
さらにFIFOバッファ内のデータ量ではなく、実際にFIFOバッファからデータを読み出す時間が予測できる場合には、その時間があと何サイクルであるかに応じて要求信号の優先度を変更すれば、より好適な構成となる。
第13の実施形態
以下、本発明の第13の実施形態について、述べる。
一般に、メモリのローアドレスやバンクをまたぐデータの転送要求、リード処理とライト処理などの切り替わるデータ転送要求などでは、転送間に隙間時間が生じ、非効率な転送になる場合がある。したがって、たとえば、リードのためのデータ転送のみをまとめて要求する、または、ライトのためのデータ転送のみをまとめて要求することが転送効率の観点から望ましい。
しかし、転送効率を重視し過ぎると、FIFOバッファが破綻するおそれがあるので、FIFOバッファが破綻を起こさない範囲内で、極力転送効率を重視してアービタを構成することが望ましい。
そこで、本実施形態に係るアービタは、下位の階層においては、転送効率を重視して、データ転送の種類毎に要求信号を変更し、前のデータ転送に基づいて転送効率の観点から優先すべきデータ転送の優先順位を上げて調停する。すなわち、FIFOバッファの破綻の恐れが小さい下位の階層では、転送効率に依存した調停を行い、FIFOバッファに破綻の恐れが生じた場合には、上位階層において、FIFOバッファのデータ量の割合に応じて、優先的な調停がなされる。
図16は、本実施形態に係るアービタの構成を示す一例である。
図16は、図14を参照して述べたアービタと比較して、最下位の階層の調停回路のみが相違する。そして、最下位の階層の調停回路では、バスマスタにより決定された優先度ではなく、転送モードによって調停を行うことを特徴とする。
図16において、最下位の階層の調停回路ARB_00aは、異なる転送モードであるTF_A,TF_B,TF_C,TF_Dに対して、接続切替え回路EXにより、調停の優先順位を任意に調整可能とする構成を有する。
すなわち、図に示すように、調停回路ARB_00aは、ツリー構造の3つの優先権付調停回路から構成される調停回路群27を含み、優先権に応じた調停を行う。したがって、接続切替え回路EXにより接続状態を切り替えることで、転送モードに応じて調停の優先順位を可変とすることができる。
なお、転送モードは、たとえば、リードによるデータ転送やライトによるデータ転送などに代表されるデータ転送の種類をいうが、これに拘泥せず、メモリ回路の状態など転送効率に影響があるデータ転送の種類であれば、何でも構わない。
エンコーダENCは、前回のデータ転送情報PR_TRをエンコードした信号を接続切替え回路EXに供給する。これにより、調停の優先順位を調整する。
図17は、接続切替え回路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レベル)として出力する。
実際には、図17に示す接続切替え回路EXが、調停回路群27のツリー構成の末端に接続される結線の数(図16に示す例では、4個)だけ設けられ、調停回路群27に対して、エンコーダENCからの信号に基づいて、転送要求信号REQ_A,REQ_B,REQ_C,REQ_Dの中から任意の転送要求信号を出力できるように構成される。
転送許可信号についても、同様に、調停回路群27からの転送許可信号(GNT)を、エンコーダENCからの信号に基づいて、転送許可信号GNT_A,GNT_B,GNT_C,GNT_Dの中から選択して出力できるように構成される。
なお、図16では、異なる転送モードの数が4つであるので、調停回路群27を3つの優先権付調停回路からなる構成としたが、転送モードの数が増える場合には、調停回路群27のツリー構造を構成する優先権付調停回路の数を増やしていけば、対応可能である。その際には、図17に示す接続切替え回路EXのAND回路を転送モードの数に応じて、並列に増加させる必要がある。
第14の実施形態
以下、本発明の第14の実施形態について、述べる。
調停の際に、各バスマスタからデータ転送要求に対する優先順位の決定として最も適切な方法は、対応するFIFOバッファについて、オーバーフロー/アンダーフローが発生する時間を比較し、最も早くオーバーフロー/アンダーフローが発生するFIFOバッファに対応するバスマスタからのデータ転送要求(バス使用要求)を優先させる方法である。
一般には、各バスマスタの各要求についてオーバーフロー/アンダーフローが発生する時間を予測することが困難な場合もあるが、本実施形態に係るアービタでは、各バスマスタの各要求についてオーバーフロー/アンダーフローが起こる時間を予測できる場合について、かかる時間そのものを比較する際の煩雑さを解決するものである。
ところで、調停に要するサイクル数は、1単位のメモリアクセスにかかるサイクル(データ転送サイクル)の数以下でなければ、調停に要するサイクルがクリティカルになる可能性があり、転送効率が調停待ちのために低下する。
これに対し、たとえば、調停に要するサイクル数の平均値がデータ転送サイクル数より小さい場合には、必要に応じて、バス使用要求をキュー(QUE) に貯めることで、調停にかかるサイクルがクリティカルになることを防止する方法も考えられるが、その場合には、バスマスタからデータ転送そのものを却下するような命令が与えられる場合や、不意に早急にデータ転送をすべき旨のバス使用要求が与えられる場合に対応が困難になるという問題がある。
一方、並列のデータ処理を行い、一定サイクルで調停を行うように比較回路を大量に設けることは、特に多数のバスマスタがいる場合には、回路規模が膨大となる。
そこで、本実施形態に係るアービタは、バスマスタのFIFOバッファに対するデータの読み込み/書き込みが単純な動作をする等予測通りの動作を行い、メモリバスへのアクセスがその効率を高めるためにデータ転送サイクルを一定長とする場合において、その書き込み/読み込みのバス使用要求を処理しないとオーバーフロー/アンダーフローが発生する時間そのものを転送単位にかかるサイクル内に比較し、各バスマスタからのバス使用要求の優先順位を決定する。
図18は、本実施形態に係るアービタに含まれる時間調停回路31の構成を示す一回路例である。
図18に示す時間調停回路31では、アクセスの1単位(データ転送サイクル)を8サイクル以上とし、アクセスに要するサイクル数以下である8サイクルで調停を行う場合を例示する。また、オーバーフロー/アンダーフローの発生は、2047サイクル以内であると仮定し、タイマを11ビット構成としている。
図18に示すように、本実施形態に係る時間調停回路31は、外部からイネーブル信号enと、複数のバスマスタ(1〜x)からの要求信号Cx_REQおよびオーバーフロー/アンダーフローが発生するまでの時間Cx_TIM(〔10:4〕は、上位7ビット分のデータであることを示す)を入力し、データ転送を許可するバスマスタのIDである許可ID(GNT_ID)を出力する。
図19は、図18に示す時間調停回路31の動作を示すタイミングチャートであり、(a)は、クロック信号CLOCKのタイミングを、(b)は、スタートパルスSTARTの出力を、(c)は、カウンタ51のカウント値STATE_CNTを、(d)は、バスマスタC1〜C6の要求時間を、(e)は、バスマスタ毎のS/Rラッチ群53の出力を、(f)は、AND回路55の出力であるall_res_maskを、それぞれ示す。
以下、本実施形態に係る時間調停回路31の動作を、図18および図19に関連付けて述べる。
外部からのイネーブル信号enにより、クロック信号CLOCKの立ち上がりのタイミングに同期して、図19(b)に示すように、スタートパルスSTARTが立ち上がると、カウンタ51によりカウントが開始し、カウント値STATE_CNTを出力する(図19(c))。
カウンタ51は、たとえば、3ビットのタイマで構成され、カウント値STATE_CNTは、「1」から「7」まで出力した後に「0」になると、時間調停回路31は、各バスマスタの要求時間の比較が終了したことを示すVALID信号を出力する。
なお、カウンタ51は、調停に有してもよいサイクル数に基づき、カウントの最大値が設定される。
カウンタ群52には、バスマスタC1〜C6毎の要求時間、すなわち、FIFOバッファのオーバーフロー/アンダーフローが発生する時間を示す上位7ビットである時間情報C1_TIM〔10:4〕〜C6_TIM〔10:4〕が、図19(d)に示すように、入力される。
入力された各バスマスタ毎の要求時間は、順次、上位ビットから1ビットずつS/Rラッチ群53の各S/Rラッチに供給される
S/Rラッチ群53では、バスマスタの数に応じた複数のS/Rラッチを有し、各S/Rラッチは、初期の時刻t1においては、スタートパルスSTARTと要求信号Cx_REQ(x:1〜6)により、すべてセット(「1」)されている。
カウンタ群52のあるカウンタから出力されるビットが「1」であって、ビット「0」を出力する他のカウンタ存在する場合には、ビット「1」を出力するカウンタに対応するS/Rラッチがリセット(「0」)される。これは、当該カウンタに対応するバスマスタの要求時間が、他のバスマスタの要求時間より時間が長く、バス使用要求の優先順位が低いためである。
たとえば、図19(e)に示す時刻t2においては、バスマスタC1の最上位ビットが「1」であり、他のすべてのバスマスタの最上位ビットが「0」であるので、ビット「0」を出力する他のカウンタが存在することになり、バスマスタC1に対応するS/Rラッチはリセット(「0」)される。同様に、図19(e)に示す時刻t3においては、バスマスタC2の最上位から2番目のビットが「1」であり、他のバスマスタ(バスマスタC3〜C6)の最上位から2番目のビットが「0」であるので、ビット「0」を出力する他のカウンタが存在することになり、バスマスタC2に対応するS/Rラッチはリセット(「0」)される。
図19に示す時間調停回路31では、時間調停中に一旦リセットされると、その後にセットされない。
なお、上述したように、S/Rラッチ群53を動作させる際に、出力ビットの比較の対象となるすべてのバスマスタのS/Rラッチがセット(「1」)された場合には、AND回路55により、all_res_maskがセット(「1」)される。
たとえば、図19に示す時刻t4では、(d)に示すように、出力ビットの比較対象であるバスマスタC3〜C6の最上位から4番目のビットがすべて「1」であるため、AND回路55により、all_res_maskがセット(「1」)される。これにより、上記各バスマスタに対応したS/Rラッチが全てリセット(「0」)されることを回避する。
すなわち、出力ビットがすべてのバスマスタで同一の場合には、要求時間による優劣を付けることができないので、当該出力ビットでは処理をせず、次の出力ビットに基づいて処理を行う。
上述したようにS/Rラッチ群53が動作し、時刻t8になって時間調停が終了すると、調停回路(ARB)54は、S/Rラッチ群53のうち、セット(「1」)されているS/Rラッチに対応するバスマスタを対象として調停し、図18に示すように、調停結果として許可ID(GNT_ID)を出力する。
すなわち、時刻t8においてS/Rラッチがセット(「1」)されているS/Rラッチに対応するバスマスタは、最も早くオーバーフロー/アンダーフローが発生するバスマスタであり、そのうちの1つのバスマスタを選択してバスに対するアクセスを許可するのである。
以上説明したように、本実施形態に係るアービタによれば、バスマスタのFIFOバッファに対するデータの読み込み/書き込みが単純な動作をする等予測通りの動作を行い、メモリバスへのアクセスがその効率を高めるためにデータ転送サイクルを一定長とする場合において、簡単な構成により、その書き込み/読み込みのバス使用要求を処理しないとオーバーフロー/アンダーフローが発生する時間そのものを転送単位にかかるサイクル内に比較し、各バスマスタからのバス使用要求の優先順位を決定することができる。
また、本実施形態に係るアービタによれば、データ転送サイクル内に時間調停が終了するように構成したので、調停にかかる時間がデータ転送サイクルを越えてクリティカルになることがない。
第15の実施形態
以下、本発明の第15の実施形態について、述べる。
本実施形態に係るデータ処理装置は、中央に共通のバッファを設け、従来各バスマスタ毎に有していたFIFOバッファの容量を低減し、チップ全体のモード毎に不使用/不要となるFIFOバッファ容量を低減することで、チップ面積を減少させるバスシステムである。
図20は、従来のアービタ(ARB)が適用される周辺回路の構成を示す一例である。図において、リード処理を行うバスマスタRD_C1,RD_C2と、ライト処理を行うバスマスタWR_C1,WR_C2からのデータ転送要求がアービタ(ARB)により調停され、メモリコントローラ(MEM_C)を介して、外部のメモリとの間でデータ転送がなされる。その際、各バスマスタは、データ転送が許可されて実際にデータ転送がなされるまでの間に破綻することがないように、FIFOバッファを有している。
一般に、このFIFOバッファの容量は、バス使用要求すべき時間(たとえば、ライト処理の場合、そのデータ転送要求が許可されるとFIFOバッファがちょうど空になる時間)から、データがFIFOバッファに読み書きされるまでのレイテンシ(遅延時間)のワースト値を考慮して見積もられる。
一方、近年のバスマスタの数の増加に伴って、調停の待ち時間が大幅に増加している。また、DDR_SDRAMのスペックを鑑みると、効果的なメモリアクセスの1単位のバーストレングスが増加し、これにより、上述したレイテンシが一層大きくなる。更には、メモリバスのバス幅も大きくなる傾向にある。これらの事情から、レイテンシのワースト値を考慮すると、各バスマスタが持つべきFIFOバッファの容量は、格段に増加している。
さらに、かかるバスマスタが増加や、1チップにおける動作システムモードの多様化などにより、動作するバスマスタの数、種類、及びバンド幅が各システムモード毎に著しく異なる傾向にある。したがって、あるモードにおいては、FIFOバッファが動作せず無駄になるということが発生する。
また、あるバスマスタに対して、その最大のバンド幅に基づいてFIFOバッファ容量を決定しても、ほとんどのモードでは、決定した容量まで使用しないことがあり、FIFOバッファ容量が無駄になる場合もある。
これに対し、ソフトウエアにより、システムモード毎に各バスマスタに与えるFIFOバッファ容量を取り替えるように構成すれば、あるシステムモードでFIFOバッファが無駄になることを解決できるが、通常、システム動作が変化した場合にそのFIFOバッファを取り替える時期を定めるのが困難であり、また、システムモード毎にソフトウエアでFIFOバッファ容量の変更をすると、著しく構成が煩雑になってしまうおそれがあるという問題がある。
そこで、本実施形態に係るアービタでは、中央に大きな共用バッファ(中央バッファ)を持ち柔軟性のある調停を行うことで、従来各バスマスタが有していた不要なFIFOバッファ容量を低減させることを特徴とする。すなわち、本実施形態に係るアービタは、システムモードの変化等に応じて、各バスマスタが中央バッファを使用する比率を自動的に調節可能とし、システム全体でのFIFOバッファ容量を縮小させて、チップ面積の縮小を実現する。
図21は、本実施形態に係るアービタ(ARB)の構成を示す一例である。
本実施形態に係るアービタは、中央バッファとして、リード用中央バッファ(CTL_BUF)64、およびライト用中央バッファ(CTL_BUF)65の2つのバッファを有し、各中央バッファは、キーによりデータ格納領域が管理されている。
そして、リード処理を行うバスマスタRD_C1,RD_C2、およびライト処理を行うバスマスタWR_C1,WR_C2は、それぞれ、リード用バッファキー調停回路61(RD_BUFKEY)、およびライト用バッファキー調停回路(WR_BUFKEY)62に対して、データ要求時間の情報とともに、中央バッファの空き領域に対応するキーを取得するための要求を行う。
各バッファキー調停回路では、各バスマスタより与えられたデータ要求時間の情報に基づいて、たとえば、図18を参照して述べた時間調停回路31による時間調停を行い、最も早く処理すべきデータ転送に係るバスマスタの要求を選択する。
さらに、たとえばリード用バッファキー調停回路61では、リード用中央バッファ64に空き領域があれば、選択されたデータ転送要求に係るメモリアドレス等の情報とリード用中央バッファ64の空き領域のキーとともに、リード/ライト調停回路63に対して、データ転送要求を行う。
リード/ライト調停回路63(RD/WR_ARB)は、リード用バッファキー調停回路61からのデータ転送要求とライト用バッファキー調停回路62からのデータ転送要求とを調停し、いずれかの要求を選択する。
その際、メモリアクセスでは、リードとライトの切り替え時に転送効率を損うため、たとえば、ライト用中央バッファ65にある程度蓄積された場合や、リード用バッファキー調停回路61からの要求がなくなった(リード用中央バッファ64がフルになった)場合に、まとめてライト用バッファキー調停回路62に対する要求を許可するなどの調停を行う。これにより、リード処理およびライト処理を交互に行う等の非効率な動作を回避できる。
リード用中央バッファ64およびライト用中央バッファ65は、キーに対応する複数のデータ格納領域毎に管理される。
たとえば、リード用バッファキー調停回路61による調停の結果、キーが与えられたバスマスタは、リード用中央バッファ64内の与えられたキーに対応するデータ格納領域から、所定の時刻にデータを取り出す。
その際、複数のバスマスタがデータを取り出すため、図21に示すように、かかる複数のバスマスタを調停するため、リード用中央バッファ64は、データ調停回路(DATA_ARB)を有している。同様の観点から、ライト用中央バッファ65も、データ調停回路(DATA_ARB)を有している。
図22および図23に、それぞれ、リード用中央バッファ64およびライト用中央バッファ65の構成例を示す。
図22に示すように、リード用中央バッファ64は、上述したデータ調停回路641と、キーに対応するVALID(VAL)とVALに対応するデータ格納領域(ROOM)を含むデータ格納部642と有する。
一方、図23に示すように、ライト用中央バッファ65は、上述したデータ調停回路651と、キーに対応するVALID(VAL),アドレス情報(ADR),データ個数の情報(NUM)とデータ格納領域(ROOM)を含むデータ格納部652と有する。
リード処理では、リード用バッファキー調停回路61の調停が終了した時点で、メモリコントローラ(MEM_C)から、アドレス情報(ADR)およびデータ個数の情報(NUM)が各バスマスタに直接与えられるので、リード用中央バッファ64のデータ格納部642では、図22に示すように、アドレス情報(ADR)およびデータ個数の情報(NUM)を保持する必要はない。
ライト処理では、書込み要求から実際にメモリに書込みが行われるまでに遅れがあるために、バスマスタ側が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を適用することができる。
空き領域管理部(ROOM_ADM)612は、リード用中央バッファ64のどの領域が空き領域であるかを管理しており、空き領域があれば、時間調停回路611により調停されたバスマスタに対して、空き領域に対応するキーを与える(RD_KEY_ARB_KEY)。これにより、キーを与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを取り出すことが可能となる。
一方、リード用中央バッファ64からのデータの読み出しが終了し、キーが返却されたときには(RD_Cx_KEY,RD_C1_END)、当該キーを他のバスマスタに与えることを可能とする。
図25は、空き領域管理部612の具体的な回路構成の一例である。
図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)される。これにより、他のバスマスタに同じキーが渡されることはない。
一方、バスマスタからキーが返却されると(Cx_KEY,Cx_END)、デコーダ群71およびOR回路群73により、該当するS/Rラッチがセット(set)される。これにより、他のバスマスタに当該キーを渡すことが可能な状態となる。
図24に戻ると、選択回路(sel)613は、各バスマスタからデータ転送に係るアドレス情報(ADR)およびデータ個数の情報(NUM)を入力し、時間調停回路611により調停されたバスマスタのアドレス情報(RD_KEY_ARB_ADR)およびデータ個数の情報(RD_KEY_ARB_NUM)を選択して、リード/ライト調停回路63へ送出する。
AND回路614は、時間調停回路611および612からのVALIDがともにHレベルの場合に限り、空き領域に対する要求信号(RD_KEY_ARB_REQ)を送出する。
次いで、以上述べた構成を有する本実施形態に係るアービタのリード処理の動作について、図26に示す処理フローを参照しながら述べる。
先ず、図26のステップST1において、各バスマスタRD_Cxは、リード用バッファキー調停回路(RD_BUFKEY)61に対して、要求信号Cx_REQおよび要求時間RD_Cx_TIMを供給し、ライト処理によるデータ転送を要求する。
また、各バスマスタRD_Cxは、選択回路613に対して、アドレス情報(ADR)およびデータ個数の情報(NUM)を供給する。
次に、ステップST2において、データ転送の要求を受けたリード用バッファキー調停回路61は、要求時間RD_Cx_TIMに基づいて調停を行い、最も早くデータ転送を必要とするバスマスタを選択すると同時に、リード用中央バッファ64に空き領域がある場合には、その空き領域に対する要求信号(RD_KEY_ARB_REQ)、キー番号(RD_KEY_ARB_KEY)、アドレス情報(ADR)、およびデータ個数の情報(NUM)を、リード/ライト調停回路(RD/WR_ARB)63に渡す。
選択回路613は、時間調停回路611により調停されたバスマスタのアドレス情報(RD_KEY_ARB_ADR)およびデータ個数の情報(RD_KEY_ARB_NUM)を、リード/ライト調停回路63へ送出する。
リード/ライト調停回路63は、上記リード側からの要求(RD_KEY_ARB_REQ)と、ライト側からの要求とに基づいて調停を行う。これにより、リード処理とライト処理が交錯する非効率なデータ転送が回避される。
当該調停の後、リード/ライト調停回路63は、リード用バッファキー調停回路61より渡されたキー、アドレス情報(ADR)、およびデータ個数の情報(NUM)を、メモリコントローラ(MEM_C)、およびリード用バッファキー調停回路61で調停されたバスマスタに渡す(ステップST3a,ST3b)。バッファキーを受けたバスマスタは、次のデータ転送要求があれば、次の要求信号Cx_REQおよび要求時間RD_Cx_TIMを供給する。なお、各バスマスタは、キーを必要な分蓄積できるような構成とする。
さらに、リード/ライト調停回路63は、リード用中央バッファ64の当該キーに対応するVALIDをリセットする。
ステップST4では、メモリコントローラ(MEM_C)は、リード/ライト調停回路63より渡されたアドレス情報(ADR)およびデータ個数の情報(NUM)に応じたデータを、リード用中央バッファ64内のキー番号に対応する空き領域に格納すると同時に、VALIDをセット(Hレベル)する。
ステップST5では、リード用中央バッファ64では、処理サイクル毎に、複数の要求に係るデータ格納領域からのデータ転送を調停する。調停は、たとえば、トークンリング方式のような回転式調停等により行われる。
なお、かかる調停では、読み込みデータがリード用中央バッファ64に格納されるまでの間、キーに対応するVALIDがセットされている場合には、キーを持たない他のバスマスタからの要求をマスクする。
ステップST5において、バスマスタは、個々に割り当てられたFIFOバッファに空きができると、キーとともにデータ転送をリード用中央バッファ64に対して要求する。 リード用中央バッファ64のデータ調停回路641からデータの取り出しを許可されたバスマスタは、キー番号に対応するデータ格納領域からデータを取り出した後、キーを返却する(ステップST6)。すなわち、バスマスタからのキー返却情報(RD_Cx_KEY,RD_Cx_END)に基づいて、リード用バッファキー調停回路61の空き領域管理部612は、返却されたキーに対応するS/Rラッチをセットして、次のリード処理のバスマスタのためにキーを使用可能とする。
次いで、本実施形態に係るアービタのライト処理について述べる。
図27は、ライト用バッファキー調停回路62の回路構成の一例である。
図27において、時間調停回路621は、複数のライト用バスマスタから要求信号WR_Cx_REQおよび要求時間WR_Cx_TIM(FIFOバッファがオーバーフローするまでの時間)に基づいて調停を行う。すなわち、時間調停回路621は、要求時間WR_Cx_TIMが最も短いバスマスタを選択するように調停し、その調停結果であるGNT_ID、および調停が正しく終了したことを示すVALID(Hレベル)を出力する。
時間調停回路621としては、具体的に、たとえば、図18に示した時間調停回路31を適用することができる。
空き領域管理部(ROOM_ADM)622は、ライト用中央バッファ65の各データ格納領域(ROOM)が空き領域(使用可能)であるか否かを管理しており、空き領域が存在すれば、時間調停回路621により調停されたバスマスタに対して、空き領域に対応するキーを与える(WR_KEY_ARB_KEY)。具体的には、空き領域管理部622は、図25で示した回路と同様に構成し、空き領域があれば、時間調停回路621により調停されたバスマスタにキーを与えるとともに、対応するS/Rラッチがリセットされる。
キーが与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを書き込むことが可能となる。書込み終了後は、当該キーに対応するデータ格納領域が有効であることを示す信号をセットする。
一方、ライト用中央バッファ65からメモリへの実際のデータの書込みが終了したとき、メモリコントローラ(MEM_C)はキーを返却し(BUF_END_KEY,BUF_END)、空き領域管理部の対応するS/Rラッチをセットして、当該キーを他のバスマスタに与えることを可能とする。また、当該キーに対応するデータ格納領域が有効であることを示す信号をリセットする。
選択回路(sel)623は、各バスマスタからデータ転送に係るアドレス情報(ADR)およびデータ個数の情報(NUM)を入力し、時間調停回路621により調停されたバスマスタのアドレス情報(WR_ADR)およびデータ個数の情報(WR_NUM)を選択して、リード/ライト調停回路63へ送出する。
AND回路624は、時間調停回路621および空き領域管理部622からのVALIDがともにHレベルの場合に限り、空き領域に対する要求信号(WR_KEY_ARB_EN)を送出する。
以上述べた構成を有する本実施形態に係るアービタのライト処理の動作について、図28に示す処理フローを参照しながら、説明する。
先ず、図28のステップST10において、各バスマスタWR_Cxは、ライト用バッファキー調停回路(WR_BUFKEY)62に対して、要求信号Cx_REQおよび要求時間WR_Cx_TIMを供給し、ライトのためのデータ転送を要求する。
また、各バスマスタWR_Cxは、選択回路623に対して、アドレス情報(ADR)およびデータ個数の情報(NUM)を供給する。
次に、データ転送の要求を受けたライト用バッファキー調停回路62は、時間調停回路621により、要求時間WR_Cx_TIMに基づいて調停を行い、最も早くデータ転送を必要とするバスマスタを選択する。
そして、選択したバスマスタに対して許可ID(WR_C_GN_ID)を送出すると同時に、ライト用中央バッファ65に空き領域がある場合には、その空き領域に対する要求信号(WR_KEY_ARB_REQ)、キー(WR_C_KEY)を、当該バスマスタに対して送出する(ステップST20a)。
選択回路(sel)623は、時間調停回路621により調停されたバスマスタのアドレス情報(WR_ADR)およびデータ個数の情報(WR_NUM)を選択して、ライト用中央バッファ65へ送出する(ステップST20b)。
バスマスタは、自己が有するFIFOバッファに所定のデータ量、たとえば、1ワード分のデータが蓄積されると、キー情報(WR_KEY_ARB_KEY,WR_KEY_ARB_EN)に基づいて、ライト用中央バッファ65に対してデータ書込み要求を行う。
ライト用中央バッファ65は、データ調停回路651により、かかるデータ書込み要求を調停し、書込み許可がなされると(WR_C_GNT)、バスマスタは、キーに対応するデータ格納領域に対してデータの書込みを行う(ステップST30)。
バスマスタからのデータの書込みが終了すると、ライト用中央バッファ65のキーに対応するVALID(VAL)がセットされる。
複数のキーに対応するVALIDのうち、少なくとも1つのVALIDがセットされている場合、ライト用中央バッファ65は、リード/ライト調停回路63に対し、ライトのためのデータ転送要求を行う(ステップST40)。
リード/ライト調停回路63による調停の結果、書込み要求が許可されると、ライト用中央バッファ65からメモリコントローラ(MEM_C)に対して、データ転送がなされる(ステップST50)。
データの書込みがすべて終了すると、メモリコントローラ(MEM_C)は、ライト用バッファキー調停回路62に対して、BUF_END_KEY,BUF_ENDによりキーを返却する(ステップST60)。
以上説明したように、本実施形態に係るアービタによれば、すべてのバスマスタが共用する中央バッファを有し、各バスマスタからのデータ転送要求を、中央バッファを細分化したデータ格納領域に対応するキーをもって調停する構成としたので、動作モード等に応じてバスマスタからのデータ転送要求が著しく変動する場合でも、その変動するデータ転送動作を中央バッファが吸収することが可能となり、個々のバスマスタは、最悪ケースでのFIFOバッファ容量を見積もる必要がない。
したがって、システム全体でのFIFOバッファ容量が縮小し、チップ面積を低減させることが可能となるとともに、コスト低減に資する。
また、本実施形態に係るアービタによれば、中央バッファにはDDR_SDRAMのようにバーストレングスを大きくとる必要がないため、1サイクル分のデータ毎に各バスマスタにデータを配ることができ、レイテンシが著しく減少する。これにより、各バスマスタのFIFOバッファ容量はさらに小さくなることが期待され、多様なシステムのモードに合わせた無駄なFIFOバッファ容量を削減することができる。
なお、本発明の内容は、上記した実施形態に拘泥せず、本発明の要旨を変更しない範囲で様々な改変が可能である。
たとえば、図29に示すデータ処理装置は、第15の実施形態で述べた中央バッファを有するアービタ(ARB)を、たとえば、第2の実施形態において、第2階層のバスマスタを調停するためのアービタとして適用した一例である。これにより、第2階層の各バスマスタが有するFIFOバッファの容量が格段に削減される。
本発明に係るバス調停装置が適用されるシステム構成である。 実施形態に係る階層型のアービタの一構成例である。 実施形態に係る階層型のアービタの一構成例である。 実施形態に係る階層型のアービタの一構成例である。 実施形態に係る階層型のアービタの一構成例である。 バス使用比率制御回路の一構成例を示す。 バス使用比率制御回路の一構成例を示す。 バス使用比率制御回路の一構成例を示す。 バス使用比率制御回路の一構成例を示す。 第1階層のバスマスタに対する処理を模式的に表した図であり、(a)は、N番目およびN+1番目の処理を、(b)は、N+1番目およびN+2番目の処理を、それぞれ示す。 実施形態に係る階層型のアービタの一構成例である。 第10の実施形態に係るアービタを説明するための図である。 FIFOバッファのデータ量に応じて、優先順位をもったデータ転送要求を行うバスマスタを例示する図であり、(a)は、ライト処理の際のデータ転送要求を、(b)は、リード処理の際のデータ転送要求を、それぞれ示す。 各バスマスタが優先順位に応じたデータ転送要求を行う場合のアービタの構成である。 各バスマスタのバス使用要求が集中した場合のバス幅とメモリコントローラの処理能力の関係を示す。 最下位の階層の調停回路で、転送モードによって調停を行うアービタの構成を示す。 接続切替え回路EXの構成例を示す回路図である。 時間調停回路の構成を示す一回路例である。 時間調停回路の動作を示すタイミングチャートであり、(a)は、クロック信号CLOCKのタイミングを、(b)は、スタートパルスSTARTの出力を、(c)は、カウンタの値であるSTATE_CNTを、(d)は、バスマスタC1〜C6の要求時間を、(e)は、バスマスタ毎のS/Rラッチ群の出力を、(f)は、AND回路の出力であるall_res_maskを、それぞれ示す。 従来のアービタが適用される周辺回路の構成を示す一例である。 中央バッファを有するアービタの構成例である。 リード用中央バッファの構成例である。 ライト用中央バッファの構成例である。 リード用バッファキー調停回路の回路構成の一例である。 空き領域管理部の具体的な回路構成の一例である。 実施形態に係るアービタのリード処理の動作フローである。 ライト用バッファキー調停回路の回路構成の一例である。 実施形態に係るアービタのライト処理の動作フローである。 実施形態に係るデータ処理装置の一例である。
符号の説明
10…メモリコントローラ(MEM_C)、21,22,20a,20b,24,25,26…調停回路、27…調停回路群、23,23a,23b,23c,23d…バス使用比率制御回路、31…時間調停回路、61…リード用バッファキー調停回路、62…ライト用バッファキー調停回路、63…リード/ライト調停回路、64…リード用中央バッファ、65…ライト用中央バッファ。

Claims (10)

  1. 複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、
    前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停する第1の調停手段と、
    前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停する第2の調停手段と、
    前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停する第3の調停手段と、を有し、
    前記第1乃至第3の調停手段による調停を、前記第1の調停手段から順に優先的に実行する
    バス調停装置。
  2. 所定のデータ処理サイクルのうち、前記第1の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、
    前記バス使用比率制御手段により決定される比率に基づいて、前記第1および第2の調停手段による調停を実行する
    請求項1記載のバス調停装置。
  3. 前記バス使用比率制御手段は、
    前記第1のバスマスタによる前記メモリバスへのデータ転送回数を計数するカウンタを有し、
    前記カウンタの値に応じて、前記第1の調停手段が前記メモリバスを使用する比率を制御する
    請求項2記載のバス調停装置。
  4. 前記バス使用比率制御手段は、
    前記第1のバスマスタによる前記メモリバスへの各データ転送に要するデータ転送回数の総和が、所定の閾値を越えたか否かに応じて、前記第1の調停手段が前記メモリバスを使用する比率を制御する
    請求項2記載のバス調停装置。
  5. 前記バス使用比率制御手段は、
    データ転送の種類毎に要する最大のデータ転送サイクル数である最大データ転送サイクル数に関する情報が与えられ、
    前記第1のバスマスタによる前記メモリバスへの各データ転送に対応する最大データ転送サイクル数を計数する第2のカウンタを有し、
    前記第2のカウンタの計数結果を所定の閾値と比較し、前記所定の閾値を越えたか否かに応じて、前記第1の調停手段が前記メモリバスを使用する比率を制御する
    請求項4記載のバス調停装置。
  6. 前記バス使用比率制御手段は、
    N番目(N:自然数)のサイクルにおいて、計数結果に対する所定の閾値を越えた場合には、越えた分をN+1番目のサイクルにおける計数結果に加え、前記所定の閾値と比較する
    請求項5記載のバス調停装置。
  7. 前記第3の調停手段は、
    前記バス使用比率制御手段が前記第2の調停手段に優先的に実行させたことにより、データ転送要求が許可されない第1のバスマスタを調停する
    請求項2記載のバス調停装置。
  8. 前記第1の調停手段は、前記バス使用比率制御手段を前記第1のバスマスタの各バスマスタ毎に有する
    請求項2記載のバス調停装置。
  9. 前記データ転送要求毎に保証すべき遅延時間が与えられ、
    前記複数のバスマスタに与えられたデータ転送要求に対応する前記保証すべき遅延時間に応じて、前記第1乃至第3の調停手段のいずれかで調停を実行するかを決定する
    請求項1記載のバス調停装置。
  10. 複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、
    前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第1のバスマスタのデータ転送要求を調停するステップと、
    前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第2のバスマスタのデータ転送要求を調停するステップと、
    前記複数のバスマスタのうち、前記第1のバスマスタおよび第2のバスマスタのいずれにも該当しない第3のバスマスタのデータ転送要求を調停するステップと
    を有するバス調停方法。
JP2004131860A 2004-04-27 2004-04-27 バス調停装置およびバス調停方法 Expired - Fee Related JP4222251B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템

Cited By (10)

* Cited by examiner, † Cited by third party
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