JP4737438B2 - 複数の処理ユニットでリソースを共有する情報処理装置 - Google Patents

複数の処理ユニットでリソースを共有する情報処理装置 Download PDF

Info

Publication number
JP4737438B2
JP4737438B2 JP2006535714A JP2006535714A JP4737438B2 JP 4737438 B2 JP4737438 B2 JP 4737438B2 JP 2006535714 A JP2006535714 A JP 2006535714A JP 2006535714 A JP2006535714 A JP 2006535714A JP 4737438 B2 JP4737438 B2 JP 4737438B2
Authority
JP
Japan
Prior art keywords
information processing
shared resource
access
processing unit
read
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.)
Expired - Fee Related
Application number
JP2006535714A
Other languages
English (en)
Other versions
JPWO2006030650A1 (ja
Inventor
淳 鳥居
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006535714A priority Critical patent/JP4737438B2/ja
Publication of JPWO2006030650A1 publication Critical patent/JPWO2006030650A1/ja
Application granted granted Critical
Publication of JP4737438B2 publication Critical patent/JP4737438B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、複数の汎用または特定用途用のプロセッサを搭載したアプリケーションプロセッサ、あるいは専用LSI、ASIC(Application Specific Integrated Circuit)、SOC(System On Chip)等から成る情報処理装置に関する。
複数の汎用または特定用途のプロセッサを搭載した従来の情報処理装置の一例を図1に示す。図1は携帯電話機や携帯端末装置に搭載されるアプリケーションプロセッサの一例を示している。
図1に示すように、情報処理装置301は、複数の情報処理ユニットと、各情報処理ユニットで共通に利用される複数の共有リソースとを有し、それらが内部バス312を介して互いに情報の送受信が可能に接続された構成である。
図1に示すアプリケーションプロセッサの場合、情報処理ユニットは、CPU302やDSP303等の汎用プロセッサ、あるいはDMAコントローラ(DMAC)304、カメラコントローラ305、LCDコントローラ306等の周辺コントローラである。
また、共有リソースは、内蔵メモリであるSRAM308、外部メモリであるSDRAM(Synchronous Dynamic Random Access Memory)に対するデータの読み出し/書き込みを制御するSDRAMコントローラ307、外部メモリ(例えばフラッシュメモリ)が接続される外部バスとのインタフェースである外部バスブリッジ309、各種周辺デバイス310、311等である。
このような複数の情報処理ユニットを備えた情報処理装置では、装置設計や性能検証を容易にするため、内部バス312に標準バスを用い、それに対応して各情報処理ユニットのバスインタフェースを設計する手法が一般的である。標準バスとしては、例えばARM社(英国ケンブリッジ)が提唱しているAMBA(Advanced Microcontroller Bus Architecture)を実現するAHB(Advanced High-performance Bus)が知られている。なお、AHBについては、例えば米国特許第5,740,461号明細書に詳しく説明されている。
しかしながら、図1に示したような従来の情報処理装置では、動画再生のように負荷が重い処理を行う場合、内部バス312のトラフィックの多くが画像データであるため、CPU301等の処理で十分なバス帯域を確保することができず、処理性能が劣化するという問題が生じる。
このような問題を解決するには、例えば画像データ専用のバスを設ける等、複数の独立したバスを備えた構成が考えられる。しかしながら、このような構成では、各バスにメモリ等の複数の共有リソースをそれぞれ接続しなければならないため、情報処理装置のコストが上昇する問題がある。さらに、複数のバスを跨ってメモリに対してデータの書き込みや読み出しを行う際にはアクセス制限や遅延が生じるなど、ソフトウェアの開発に制約が課されることが多いという問題も生じる。
なお、バス帯域を確保するための他の手法として、データバスのビット幅を拡げることが考えられる。例えば32ビット幅のデータバスを64ビット幅に拡げればデータの転送時間が半減することが期待できる。しかしながら、汎用プロセッサでは32ビット幅以下のデータの読み出し処理や書き込み処理も実行するため、バスのビット幅を拡大しても十分な効果が得られない。
そのため、複数のバスを並列に備えるMulti-Layer AHBと呼ばれるバス構造が上記ARM社から提案されている。このMulti-Layer AHBの構成を図2に示す。
図2に示すように、Multi-Layer AHBは、複数の情報処理ユニット401〜403(図2では3台)と複数の共有リソース(図2では4台)408〜411とがマルチレイヤーバス407を介して接続される構成である。情報処理ユニット401〜403は、それぞれが備えるバスインタフェース404〜406によってマルチレイヤーバス407と接続され、共有リソース408〜411は、それぞれが備えるバスインタフェース412〜415によってマルチレイヤーバス407と接続される。
マルチレイヤーバス407は、情報処理ユニット401〜403に対応して設けられた入出力インタフェースである入力ステージ427〜429と、共有リソース408〜411に対応して設けられた、各情報処理ユニット401〜403から共有リソース408〜411宛に発行された各種リクエスト(アクセス要求)を調停するマルチプレクサ420〜423と、情報処理ユニット401〜403から発行されたアクセス要求を送信先の共有リソース408〜411へ転送するための制御を行うデコーダ424〜426とを有する構成である。
このような構成において、情報処理ユニット401〜403から発行されたアクセス要求は、それぞれが備えるバスインタフェース(BUS I/F)404〜406を介してマルチレイヤーバス407の入力ステージ(Input Stage)416〜418へ送信される。
デコーダ(Decode)419〜421は、入力ステージ(Input Stage)416〜418で受信したアクセス要求を解読し、その送信先の共有リソースに対応するマルチプレクサ(MUX)420〜423へ転送する。マルチプレクサ420〜423は、情報処理ユニット401〜403から発行されたアクセス要求を調停し、許可したアクセス要求から順にバスインタフェース(BUS I/F)412〜415を介して共有リソース(Slave)408〜411へ送信する。
このような構成では、複数の情報処理ユニット401〜403から共有リソース408〜411へ同時にアクセスする場合でも、競合が生じることなく同時にデータの送受信が可能であり、バス帯域の実質的な拡大が実現できる。
ところで、近年、大容量メモリとして代表的に用いられるSDRAMは、データの書き込みや読み出し制御がSRAM(Static Random Access Memory)等に比べて複雑であり、アクセス要求を受け付けてから実際にデータが書き込まれるまで、あるいはデータを取得できるまでに遅延が生じる。但し、SDRAMは複数ワード単位でデータの読み出しや書き込みが可能であり、連続してコマンドを与えることで、高いデータの読み出し/書き込み速度が実現できる。さらに、DDR(Double Data Rate)−SDRAMは、動作クロックの立ち上がり及び立下りのタイミングでそれぞれデータの書き込み/読み出しが行われるため、通常のSDRAMの2倍の速度で読み出し処理や書き込み処理が可能になる。
このDDR−SDRAMを情報処理装置の外部メモリとして使用する場合、DDR−SDRAMに接続するバスやブリッジの伝送速度やビット幅をDDR−SDRAMのそれと同一にすると、DDR−SDRAMの処理速度がバスの伝送速度を上回る。したがって、バスの伝送速度を2倍にするか、ビット幅を2倍にしてバスの伝送能力をDDR−SDRAMのデータ処理速度に一致させる必要がある。
しかしながら、バスの伝送速度を2倍にすると配線による遅延や消費電力が増大する問題が生じる。また、バスのビット幅を2倍にすると、情報処理ユニットのビット幅と一致しなくなるため、ビット幅を変換するデバイス等が必要になる。
DDR−SDRAMによる応答遅延の影響を緩和する手法として、上記AHB等の高性能バスでは、Split Transactionと呼ばれるプロトコルを用意している。Split
Transactionでは、例えば情報処理ユニットからメモリに対するデータ読み出し要求をメモリコントローラ(バスインタフェース)で受け付けると、該メモリコントローラは一旦バスを解放して読み出し処理を実行し、要求されたデータの読み出し処理が全て完了した時点で、要求元の情報処理ユニットに対するバス接続を再び確立し、読み出したデータを返送する。このようなプロトコルを利用することで、バスを解放している間に他の情報処理ユニットからのメモリアクセス要求を受け付けることが可能になる。すなわち連続したコマンドの受け付けが可能になる。
しかしながら、このような手法ではDDR−SDRAM自体の応答遅延は隠蔽できるが、上述したDDR−SDRAMの処理速度とバスの伝送能力の不均衡は解消しない。また、Split Transactionを採用しても、任意の情報処理ユニットからのリクエストを受け付けている間はデータ転送が実行できないため、DDR−SDRAMを十分に高い効率で利用しているとは言い難い。
さらに、Split Transactionをサポートするハードウェアでは、情報処理ユニットのバスインタフェース、バスのアービタ、共有リソースのバスインタフェース等の論理複雑度が増加する。そのため、ARM社はリクエストとデータ転送を論理的に分離したAXI(Advanced eXtensible Interface)を提案しているが、論理的な複雑さが十分に改善されているとは言い難い。また、従来のバス規約で作成されたモジュール等を接続するためには、バス規約変換用のモジュールを用いるかバスインタフェースを再設計する必要があった。
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、バスの伝送速度やビット幅を拡大することなく、共有リソースの利用効率を向上させ、かつ処理能力を向上させることができる情報処理装置を提供することを目的とする。
上記目的を達成するため本発明の情報処理装置は、少なくとも1つの共有リソースに複数のバスインタフェースを接続し、このバスインタフェースをマルチレイヤーバスにそれぞれ接続する。さらにバスインタフェース毎に各々リードデータ及びライトデータを保持するデータバッファを備える。各バスインタフェースからのアクセス要求はアービタにより調停し、共有リソースへのアクセス権を得たアクセス要求に応じてデータの読み書き等を行う。
このような構成では、共有リソースに対応して複数のバスインタフェースがあるため、Split Transactionを用いることなく、複数のアクセス要求を共有リソース内で連続してスケジューリングすることが可能であり、SDRAM等の応答遅延による影響を低減できる。また、バスの伝送速度やビット幅を拡大することなく、処理速度が異なる共有リソースに対するアクセスも可能になる。
また、共有リソースからリードバッファへのデータの読み出し処理あるいはライトバッファから共有リソースへのデータの書き込み処理を実行中でも、次のアクセス要求を受け付けることができるため、共有リソースへ連続してアクセス要求を与えることが可能であり、共有リソースの利用効率が向上する。
携帯電話機や携帯端末装置に搭載されるアプリケーションプロセッサの構成を示すブロック図である。 Multi-Layer AHBの構成を示すブロック図である。 本発明の情報処理装置の第1の実施の形態の構成を示すブロック図である。 図3に示した情報処理装置のデータ読み出し時の動作を示すタイミングチャートである。 図3に示した情報処理装置のデータ書き込み時の動作を示すタイミングチャートである。 第2の実施の形態の情報処理装置が備えるリードバッファの構成を示すブロック図である。 図6に示したリードバッファの動作を示すタイミングチャートである。 本発明の情報処理装置の第3の実施の形態の構成を示すブロック図である。 本発明の情報処理装置の第4の実施の形態の構成を示すブロック図である。 SDRAM調停のための優先度決定アルゴリズムの一例を示すフローチャートである。 排他的なアクセスがあったときのアービタ動作を示すフローチャートである。 排他的でないアクセスがあったときのアービタ動作を示すフローチャートである。 リードバッファにバッファスルーパスを備えた構成を示す図である。 図12に示した構成とした場合のデータ読み出し時の動作を示すタイミングチャートである。
本発明の実施形態について図面を参照して詳細に説明する。
(第1の実施の形態)
図3は本発明の情報処理装置の第1の実施の形態の構成を示すブロック図である。
図3に示すように、第1の実施の形態の情報処理装置は、複数の情報処理ユニット1〜3(図3では3台)と複数の共有リソース(図3では3台)8〜10とを備え、それらがマルチレイヤーバス7を介して接続された構成である。情報処理ユニット1〜3は、それぞれが備えるバスインタフェース4〜6によってマルチレイヤーバス7と接続され、共有リソース9、10はバスインタフェース18、19によってマルチレイヤーバス7と接続される。
本実施形態では、複数の共有リソースのうち、任意の1台の共有リソース(ここでは共有リソース8)に、マルチレイヤーバス7と接続される2つのバスインタフェース(BUS I/F)11,12を備えた構成である。バスインタフェース11,12は、共有リソース8から読み出されたデータを保持するリードバッファ13,14と、共有リソース8へ格納するデータを保持するライトバッファ15、16とを備えた構成である。バスインタフェース11,12と共有リソース8とは、共有リソース8に対するアクセス要求を調停するアービタ17を介して接続される。
マルチレイヤーバス7は、情報処理ユニット1〜3に対応して設けられた入出力インタフェースである入力ステージ26〜28と、各情報処理ユニット1〜3から共有リソース8〜10宛に発行された各種リクエスト(アクセス要求)を調停するマルチプレクサ20〜22と、情報処理ユニット1〜3から発行されたアクセス要求を送信先の共有リソース8〜10へ転送するためのデコーダ23〜25とを有する構成である。なお、図3では情報処理ユニット及び共有リソースをそれぞれ3台有する構成例を示しているが、情報処理ユニット及び共有リソースの数は3台に限定されるものではなく、それぞれ幾つであってもよい。
このような構成において、情報処理ユニット1〜3から発行されたアクセス要求は、それぞれが備えるバスインタフェース4〜6を介してマルチレイヤーバス7の入力ステージ(Input Stage)26〜28へ送信される。
デコーダ(Decode)23〜25は、入力ステージ(Input Stage)26〜28で受信したアクセス要求を解読し、送信先の共有リソースに対応するマルチプレクサ(MUX)20〜22へ転送する。マルチプレクサ20〜22は、情報処理ユニット1〜3から発行されたアクセス要求を調停し、許可を与えたアクセス要求から順にバスインタフェース(BUS I/F)11、12、18,19を介して共有リソース(Slave)8〜11へ送信する。
図3に示す情報処理装置では、共有リソース8に対応して2つのバスインタフェース11,12を備え、情報処理ユニット1から共有リソース8へ発行されたアクセス要求はバスインタフェース11へ直接送信され、情報処理ユニット2または情報処理ユニット3から共有リソース8へ発行されたアクセス要求はマルチプレクサ20を介してバスインタフェース12へ送信される。また、情報処理ユニット2及び情報処理ユニット3から共有リソース8へ発行されたアクセス要求はマルチプレクサ20によって調停される。
共有リソース9、10は、従来と同様に1つのバスインタフェースを備えた構成であるため、マルチプレクサ21、22により情報処理ユニット1〜3からのアクセス要求が調停される。
このように、1つの共有リソース8に対応してバスインタフェースを複数備え、アービタ17により共有リソース8に対するアクセス要求を調停することで、Split Transactionを用いることなく、複数の情報処理ユニットからのアクセス要求を連続してスケジューリングすることが可能になる。
一般にSDRAMでは、その特性上、同一バンクの異なるページに対して連続してアクセスするとき、一旦プリチャージを行って必要な時間が経過するまで、次のアクセスのためにROWをオープンすることができない。また、リードとライトの切り替えには一定の間隔が必要となる。本実施形態において、アービタ17は、過去に実行したアクセス要求と、その実行からの経過時間とからバンク毎のSDRAMの状態を把握しており、複数のリードバッファ13,14またはライトバッファ15,16からのアクセス要求について、SDRAMの特性および状態を考慮してアクセスするための時間が短く済むアクセス要求を選択するように調停を行う。アービタ17は、例えば、アクセス要求があると、その優先度を決定し、その優先度に従って調停を行えばよい。これにより、システム全体として、SDRAMのデータ帯域を有効に拡大することが可能になる。
図10は、SDRAM調停のための優先度決定アルゴリズムの一例を示すフローチャートである。ここでは、優先度1〜9の9段階の優先度があり、優先度1が最も優先度が高く、優先度9が最も優先度が低いものとする。
図10を参照すると、アクセス要求があると、アービタ17は、まず、そのアクセス要求の実行にリードライトの切り替えが有るか否か判定する(ステップ501)。リードライトの切り替えがなければ、アービタ17は、それがリード要求であるか否か判定する(ステップ504)。
ステップ501にてリードライトの切り替えが無いと判定された場合、アービタ17は、同一ROWに対するアクセスか否かを判定する(ステップ502)。同一ROWへのアクセスであれば、そのアクセス要求は優先度1とされる。ステップ502にて同一ROWへのアクセスでなければ、アービタ17は、バンク競合が有るか否か判定する(ステップ503)。バンク競合がなければ、そのアクセス要求は優先度2とされ、バンク競合があれば、そのアクセス要求は優先度7とされる。
また、ステップ504にてリード要求と判定された場合、アービタ17は、同一ROWに対するアクセスか否かを判定する(ステップ505)。同一ROWへのアクセスであれば、そのアクセス要求は優先度3とされる。ステップ505にて同一ROWへのアクセスでなければ、アービタ17は、バンク競合が有るか否か判定する(ステップ506)。バンク競合がなければ、そのアクセス要求は優先度4とされ、バンク競合があれば、そのアクセス要求は優先度8とされる。
また、ステップ504にてリード要求でないと判定された場合、アービタ17は、同一ROWに対するアクセスか否かを判定する(ステップ507)。同一ROWへのアクセスであれば、そのアクセス要求は優先度5とされる。ステップ507にて同一ROWへのアクセスでなければ、アービタ17は、バンク競合が有るか否か判定する(ステップ508)。バンク競合がなければ、そのアクセス要求は優先度6とされ、バンク競合があれば、そのアクセス要求は優先度9とされる。
このようにしてアービタ17は、共有リソース9へのアクセス要求の優先度を決定し、優先度の高いアクセス要求から優先的に選択するように調停を行う。その際、複数のアクセス要求が同一の優先度となった場合、任意の方法でいずれかのアクセス要求を先に選択すればよい。例えば、同一優先度のアクセス要求の中からランダムに選択してもよく、またラウンドロビンと呼ばれるポリシーで公平に選択してもよい。
また、一般に、SDRAMへのアクセスでは、同一バンク、同一ROWに対するアクセスについては、ROWのオープンおよびプリチャージを1回で済ますことができる。そこで、本実施形態のアービタ17は、同一バンク、同一ROWへのアクセスを連続して選択するように調停を行うこととしてもよい。
例えば、情報処理ユニット1からSDRAMのBANK=1、ROW=10、COLUMN=20のデータライトアクセス要求と、情報処理ユニット2から、同じくBANK=1、ROW=10、COLUMN=12のデータライトアクセス要求が生じたとする。それらの書き込みデータはライトバッファ15、16の各々に格納される。その場合、アービタ17がそれらの要求を連続して共有リソース8のSDRAMに発行することにより、システムは、BANK=1、ROW=10のページをオープンしたまま2つのアクセス要求を連続して処理し、情報処理ユニット1,2の書き込みを連続して行ったのちにプリチャージによってページを閉じるという操作が可能となる。これにより、性能向上とページオープンクローズ回数削減による省電力化を図ることが可能になる。
しかしながら、このようにデータ帯域だけを重視した調停では、調停に負け続けて実際のアクセスがなかなかできないという事態が想定され、アクセス要求によってはデータ転送効率を落とす可能性がある。これに対して、アービタ17は、各アクセス要求について何回目の調停かをカウントしておくためのカウンタを備え、所定回数以上になったアクセス要求については、SDRAMの状態に関わらず優先的に選択することととしてもよい。
また、情報処理ユニット1〜3の各々にデータ遅延の許容量に差がある場合がある。その場合、SDRAMの状態からデータ転送効率だけを重視して調停する方法ではシステムとして十分な調停とならない。それに対して、アービタ17は、情報処理ユニット1〜3についてアクセス元としての優先度を予め定めておき、共有リソース8へのアクセス要求があると、それがいずれの情報処理ユニットからのものかを特定し、アクセス元としての優先度とデータ転送効率の双方を考慮して調停を行うこととしてもよい。
一方、情報処理ユニット1,2の処理によっては、共有リソース8のメモリに排他制御により複数のメモリアクセスを不可分に行う必要がある。その一連のメモリアクセスの間、他の情報処理ユニットがそのメモリ領域にアクセスしないことをハードウェアによって保証する。これは、例えばARM社から供給されるARM926プロセッサの命令セットでは、SWAPという命令によって定義されている。このSWAP命令では、同一アドレスに対してリード要求とライト要求を連続して不可分に行うため、このリード要求とライト要求の間に他のアクセスを許可せずAHBバスをロックし、結果的にメモリをロックする。
図3に示した情報処理装置では、共有リソース8は複数のバスインタフェース11,12によってマルチレイヤーバス7に接続されている。そのため、1つのバスインタフェースでバスをロックするだけでは、共有リソース8は完全にはロックされない。例えば、情報処理ユニット2が共有リソース8に対してロックを行うと、バスインタフェース12に接続されるバスはロックされ、情報処理ユニット3からのアクセスは行えなくなる。しかし、情報処理ユニット1は他のバスインタフェース11を介しているため共有リソース8にアクセスすることができてしまう。その結果、情報処理ユニット2による共有リソース8への不可分なアクセスが保証できなくなる。
これに対して、一例として、バスインタフェース12にてロックによる共有リソース8へのアクセス要求があると、複数のアクセスが不可分に行われることを保証するために、共有リソース8に関する全てのリードバッファ13,14の内容をクリアし、またライトバッファ15,16の内容を共有リソース8へ反映させる。そして、その処理の後にバスインタフェース11を介した共有リソース8へのアクセスの受け付けを一時的に保留とする処理を行って情報処理ユニット2からの複数のアクセス要求を不可分に処理することとしてもよい。これにより、共有リソース8への排他的なアクセスが可能となる。バスアービタ17は、この間、他のアクセスを調停に参加させないようにする。
しかし、この方法では、共有リソース8への排他アクセス中は、共有リソース8の排他領域に関係しないアドレスへのアクセスも全て待たされることとなる。この制御が性能に与えるインパクトは大きい。
そこで、他の例として、排他アクセスを行うアドレスを一定の範囲に絞ることとしてもよい。これによれば、共有リソース8の利用効率の低下を抑制しつつ、排他アクセスを実現することができる。図11は、排他アクセスを可能にするアービタ動作を示すフローチャートである。
図11Aにおいて、排他的なアクセス要求があると、アービタ17は、まず、排他アクセス中の情報処理ユニットが他に存在するか否か確認する(ステップ601)。他に排他アクセス中の情報処理ユニットがあれば、その排他アクセスが終了するまで待ち合わせる(ステップ606)。
排他アクセス中の他の情報処理ユニットがない状態で、アービタ17は、アクセス要求のアドレスと、リードバッファおよびライトバッファに格納されているアドレスとを比較し(ステップ602)、アクセス要求のアドレスと同一のアドレスがリードバッファまたはライトバッファに存在するか否か判定する(ステップ603)。
同一アドレスがリードバッファまたはライトバッファにあれば、アービタ17は、リードバッファの無効化、またはライトバッファの内容の共有リソース8への書き戻しを行う(ステップ604)。
ステップ603の判定において同一アドレスがリードバッファおよびライトバッファに存在しないとき、またはステップ604の処理の後、アービタ17は、通常のアービトレーションとして、共有リソース8に対して一連の排他アクセスを許可する(ステップ605)。
一方、図11Bにおいて、排他的でないアクセス要求があると、アービタ17は、他に排他アクセスが存在するか否か確認する(ステップ607)。他に排他アクセスが存在しなければ、アービタ17は、通常のアービトレーションとして、共有リソース8に対するアクセスを許可する(ステップ610)。
ステップ607の判定において他に排他アクセスが存在すれば、アービタ17は、その排他アクセスと同一アドレスへのアクセス要求か否か判定する(ステップ608)。同一アドレスでなければ、アービタ17は、排他アクセスと無関係に、通常のアービトレーションとして、共有リソース8に対するアクセスを許可する(ステップ610)。
ステップ608の判定において、他の排他アクセスと同一アドレスに対するアクセス要求であれば、アービタ17は、その排他アクセスが終了するまで待ち合わせ(ステップ609)、ステップ607の処理に戻る。
なお、ここで同一アドレスとは同一のアドレス範囲のことを指しており、リードバッファあるいはライトバッファに格納されるデータ領域に相応する。
また、本実施形態のおいて、このような排他アクセスを行えるバスを1つに制限することとしてもよい。それにより、他に排他アクセス中の情報処理ユニットがあるか否か判定するステップ601の処理が不要となり、また、同時に複数の情報処理ユニットが排他アクセスを行う場合の競合による論理的複雑性も解消される。
また、1つの共有リソース8に対応して2つのバスインタフェース11,12を備えることで、情報処理ユニット1〜3が備えるバスインタフェース4〜6、あるいは他の共有リソース9,10が備えるバスインタフェース18,19等を、仕様を変更することなく接続することができる。
さらに、共有リソース8からリードバッファへのデータの読み出し処理あるいはライトバッファから共有リソースへのデータの書き込み処理を実行中でも、次のアクセス要求を受け付けることができるため、共有リソース8へ連続してアクセス要求を与えることが可能であり、共有リソース8の利用効率が向上する。
次に、本実施形態の情報処理装置の動作について、マルチレイヤーバス7の伝送速度に対して共有リソース8の処理速度が2倍である場合(例えば共有リソース8がDDR−SDRAMの場合)を例にして説明する。
まず、情報処理ユニット1により共有リソース8からデータを読み出す場合の動作について図4を用いて説明する。図4は図3に示した情報処理装置のデータ読み出し時の動作を示すタイミングチャートである。
図4に示すように、情報処理ユニット1から共有リソース8にデータの読み出し要求(以下、リード要求と称す)が発行されると、該リード要求はバスインタフェース4を介してT1のタイミングでマルチレイヤーバス7へ送信される。デコーダ23は、マルチレイヤーバス7の入力ステージ26が情報処理ユニット1からのリード要求を受信すると、該リード要求に含まれるアクセス先のアドレスを基に共有リソース8へのアクセス要求であると判断し、該リード要求をバスインタフェース11へ転送する。
バスインタフェース11は、T2のタイミングでこのアクセス要求を受理し、リード要求であると判断すると、リードバッファ13を介してアービタ17に該リード要求を転送する。
アービタ17による調停で共有リソース8へのアクセス要求が許可されると、リードバッファ13はT3のタイミングで共有リソース8からのデータの読み出し処理を開始する(Read 起動)。ここでは、共有リソース8がマルチレイヤーバス7の2倍の伝送能力を備え、4ワード単位でデータが読み出されるとする。その場合、リードバッファ13へは、図4に示すT3の後半からT5のタイミングで読み出されたデータ(以下、リードデータと称す)が格納される。
また、リードバッファ13は、T4のタイミングから情報処理ユニット1へのデータ返送を開始する。情報処理ユニット1に対するリードデータの転送は、共有リソース8からリードバッファ13へのデータ転送よりも時間を要するため、図4に示すT7のタイミングでデータ転送が完了する。
共有リソース8は、図4に示すT5の後半のタイミングから待機状態となるため、T6のタイミングからリードバッファ14またはライトバッファ15,16を介したアクセス要求の処理が可能となる。
一方、図3に示したリードバッファ13、14について、バスインタフェース11とアービタ17をバッファを通らずに結ぶパス(以下「バッファスルーパス」という)を設けることとしてもよい。図12は、リードバッファにバッファスルーパスを備えた構成を示す図である。図12を参照すると、リードバッファ702を通らないバッファスルーパス701が設けられ、リードバッファ702をスルーすることができるような構成となっている。この構成によれば、リードアクセスについて、データ応答サイクルを短縮することができる。
図13は、図12に示した構成とした場合のデータ読み出し時の動作を示すタイミングチャートである。図13を参照すると、情報処理ユニットへのデータ応答のタイミングだけが図4に示したタイミングチャートと異なっている。
図13の例では、最初のデータ転送R1では、バッファスルーパス701によりT3サイクルにてデータ応答が行われている。その後のデータ転送R2〜R4では、データ応答が通常のリードバッファ702を介してT4〜T6サイクルで行われる。その結果、図4に示した例よりも1サイクル分だけ早くデータ転送が完了している。
次に、情報処理ユニット1から共有リソース8へデータを格納する場合の動作について図5を用いて説明する。
図5は図3に示した情報処理装置のデータ格納時の動作を示すタイミングチャートである。
図5に示すように、情報処理ユニット1から共有リソース8にデータの書き込み要求(以下、ライト要求と称す)が発行されると、該ライト要求は、リード要求時と同様にバスインタフェース4を介してT1のタイミングでマルチレイヤーバス7へ送信される。デコーダ23は、マルチレイヤーバス7の入力ステージ26が情報処理ユニット1からライト要求を受信すると、該ライト要求に含まれるアクセス先のアドレスを基に共有リソース8へのアクセス要求であると判断し、該ライト要求をバスインタフェース11へ転送する。
バスインタフェース11は、T2のタイミングでこのアクセス要求を受理し、ライト要求であると判断すると、ここではT2からT5のタイミングで4ワード分の書き込み用のデータ(以下、ライトデータと称す)を受信する。
ライトバッファ15は、T5のタイミングでライトデータの受信を完了すると、T6の前半のタイミングでアービタ17に対してライト要求を送信する。
アービタ17による調停で共有リソース8へのアクセス要求が許可されると、ライトバッファ15はT7のタイミングから共有リソース8への書き込み処理を開始(Write 起動)し、T7〜T8のタイミングで4ワード分のライトデータを共有リソース8へ格納する。
したがって、ライトバッファ15による共有リソース8への書き込み処理を実行している間、リードバッファ13,14あるいはライトバッファ16を介したアクセス要求の処理が可能となる。
また、共有リソースの処理速度がバスの伝送速度を上回る場合にも、情報処理ユニットから共有リソースへの書き込み時には、一旦バッファに一定量のデータを格納した後、共有リソースに共有リソースの処理速度でデータを書き込み、データを読み出す場合は、共有リソースからバッファにデータを書きこみつつ、バスの転送速度で情報処理ユニットに応答できる。逆にバスの伝送速度が速い場合も、リードバッファあるいはライトバッファによってデータを一時的に蓄えることにより、バスに不必要な待ち受け処理を実行しなくても済むためバスの利用効率が向上する。
これは、本実施形態においてバスインタフェース11に対してリードバッファ13およびライトバッファ15を備え、バスインタフェース12に対してリードバッファ14およりライトバッファ16を備えるというように、リードバッファおよびライトバッファの双方を備えたバスインタフェースにより実現されている。
ところで、図3に示した構成では、バスインタフェース11、12が備えるリードバッファ13,14及びライトバッファ15,16を介して受信したアクセス要求をアービタ17により調停し、共有リソース8に対するアクセス順序を決定している。ここで、アクセスするアドレスが異なる場合は、上述したようにリード要求を優先して処理することで情報処理装置としての処理速度の向上が期待できる。これは、リード要求に対するリードバッファへのデータ転送待ちの時間を短縮することで、情報処理ユニットによる共有リソース8からの応答待ち時間が短縮されるためである。
しかしながら、異なる情報処理ユニットあるいは同一の情報処理ユニットから同一のアドレスに対して複数のアクセス要求が発行された場合はアクセス要求の受け付け順序を維持する必要がある。
例えば、ライトバッファに格納されたデータの書き込みアドレスと同一のアドレスから引き続きデータを読み出す場合、ライトバッファのデータをメモリ(共有リソース)へ格納した後に読み出し処理を実行しないと、更新前のデータを読み出すことになる。また、異なる情報処理ユニットから同一のアドレスへデータを書き込む場合、2つのアクセス要求の順序を維持しなければ、メモリ内のデータは正しく更新されない。
そこで、本実施形態の情報処理装置では、バスインタフェース11,12にそれぞれ不図示のアドレス比較器を備えていてもよい。アドレス比較器は、例えば共有リソース8に対する新たなライト要求をライトバッファ15で受信すると、ライトバッファ16内に格納されたライトデータとその書き込みアドレスをそれぞれ比較する。そして、同一アドレスへ格納するライトデータがある場合は、そのデータが共有リソース8へ格納されるまで受信した新たなライト要求をアービタ17へ転送しないように制御する。また、同時にリードバッファ13,14内に読み出し処理が完了していないリードデータがある場合は、それらの読み出しアドレスとそれぞれ比較する。そして、新たに受信したライト要求のアドレスと同一アドレスからデータが読み出されている場合は、その読み出し処理が完了するまで受信した新たなライト要求をアービタ17へ転送しないように制御する。
このような処理を行うことで、アービタ17はバスインタフェース11、12にアクセス要求が到着する順序に関係なく調停を行うことが可能になり、リード要求の処理をライト要求の処理よりも優先することで、情報処理装置としての性能を向上させることができる。
なお、情報処理ユニット1〜3、リードバッファ13,14、並びにライトバッファ15,16には予め処理の優先度を設定しておいてもよい。その場合、アービタ17は、共有リソース8に対する複数のアクセス要求を受信すると、予め設定された優先度にしたがって、より優先度の高い情報処理ユニットまたはバッファからのアクセス要求を優先的に許可する。
このような処理を行うことで、例えば、より速い応答を要望する情報処理ユニットがある場合は、その情報処理ユニットからのリード要求に対する応答時間を短縮できる。特に優先度の設定を、ソフトウェア等によって書換え可能なレジスタに格納すれば、より柔軟なシステムが構築できる。
但し、情報処理ユニットや各バッファに優先度を設定する場合も、リードバッファあるいはライトバッファ内のデータと同一のアドレスに対するアクセス要求が発行された場合は、それらのアクセス要求の受け付け順序を維持する必要がある。
例えば、ライト要求に続いて同一アドレスに対するリード要求が発行された場合、ライトバッファ中のデータの共有リソースへの格納が完了しなければ、続いて発行されたリード要求を処理することはできない。その場合、ライトバッファ内のデータの書き込み処理を優先する必要がある。上述したバスインタフェース11,12では、ライト要求の優先度がリード要求の優先度よりも低く設定されてしまう。
そこで、同一のアドレスに対するアクセス要求が発行された場合、ライトバッファ15,16はライト要求の優先度をリード要求と同等またはそれよりも高く設定してアービタ17に調停を要求する。アービタ17は、優先度の高いライト要求を優先的に許可するため、ライトバッファ内のデータが共有リソース8へ優先的に格納される。
なお、バスインタフェース11,12は、優先度が低いことでアクセス権を得ることができない状態が続いた場合は、そのアクセス要求を発行した情報処理ユニットやバッファの優先度を上げてもよく、共有リソース8に対応する複数のバスインタフェースのうち、一方のバスインタフェースからのアクセス要求の優先度を上げる等の処理も可能である。
(第2の実施の形態)
次に本発明の情報処理装置の第2の実施の形態について図面を用いて説明する。
第2の実施の形態の情報処理装置は、共有リソースからリードバッファに読み出したデータを、読み出し応答終了後も可能な限り保持しておき、後続するアクセス要求が同一のアドレスに対するリード要求だった場合は、共有リソース8へアクセスすることなくリードバッファから情報処理ユニットへリードデータを送信する構成である。
図6は第2の実施の形態の情報処理装置が備えるリードバッファの構成を示すブロック図である。なお、図6に示すリードバッファは4つのエントリによって構成される例を示している。
図6に示すように、各エントリには、複数ワード(図6では4ワード)のリードデータが格納されるデータ領域53と、データ領域53に格納されたリードデータが有効であるか無効であるかを示す状態ビット52と、リードデータのアドレス(例えば先頭アドレス)を示すアドレスタグ51と、アドレスタグ51とアクセス要求から抽出されたアクセス先のアドレスとを比較するアドレス比較器54とをそれぞれ備えている。
状態コントローラ55は、アドレス比較器54による比較結果を収集し、該比較結果に基づき各状態ビット52をそれぞれ更新する。データ領域53には共有リソース8から読み出されたリードデータが格納され、データ領域53内のリードデータはバスインタフェース11または12へ送出される。
図7は図6に示したリードバッファの動作を示すタイミングチャートである。
図7に示すように、第2の実施の形態の情報処理装置では、例えば情報処理ユニット1から共有リソース8へリード要求が発行されると、第1の実施の形態と同様に該リード要求はバスインタフェース4を介してマルチレイヤーバス7へ送信され、デコーダ23による解読結果にしたがってバスインタフェース11へ転送される。
バスインタフェース11は、T2のタイミングでこのアクセス要求を受理し、リード要求であると判断すると、アドレス比較器54により各エントリのアドレスタグ51と該リード要求に含まれるアクセス先のアドレスとを比較する。そして、アクセス先のアドレスとアドレスタグ51の値が同一であり、かつ状態ビット52が有効を示すエントリがある場合、バスインタフェース11は、共有リソース8へのアクセスは不要と判断し、T3のタイミングからリードバッファ内の当該エントリのデータ領域53で保持するリードデータを情報処理ユニット1へ返送する。
状態コントローラ55は、共有リソース8からデータを読み出しデータ領域53に格納したとき当該エントリの状態ビット52を有効に設定し、アドレス比較器54により同じアドレスに対するデータの書き込みを検出したとき、当該エントリの状態ビット52を無効に設定する。また、新たなリード要求を受信したとき、全てのエントリに有効なデータが格納され、かつそれらのアドレスが当該リード要求によるアクセス先のアドレスと異なる場合は、予め設定した手順にしたがって新たなリードデータに置き換えるエントリを決定する。
本実施形態の情報処理装置によれば、情報処理ユニットによるデータ読み出し時の応答速度が改善されるとともに、各バッファと共有リソース間のデータの整合性を保つことが可能となり、共有リソースへのアクセス頻度を低減できる。特に共有リソースから複数ワード単位でデータを読み出し、それらのデータをリードバッファで保持しておけば、主として1ワード単位でデータを読み出す情報処理ユニットによるリソースの利用効率を向上させることができる。また、データをバッファ内に長期に保持することが可能となり、共有リソースへのアクセス頻度を分散させることも可能である。
なお、ライトバッファにおいても、図6に示したリードバッファと同様に、数ワードのライトデータ単位で1つのエントリを構成すれば、1ワード単位の連続したアドレスに対する書き込み処理時に、それらのライトデータをライトバッファで統合することで共有リソースへの書き込み処理を1度にまとめることが可能であり、共有リソースへのアクセス回数を効率的に減らすことができる。
また、情報処理ユニットからのライトデータをライトバッファに保持しておき、共有リソースへの他のアクセス要求が生じないとき、同一のアドレスに対するリード要求が生じたとき、共有リソースが特定の状態でない時まで、実際の共有リソースへの書き込みを遅らせる等、ライト要求の順序にこだわることなく共有リソースへの書き込みを行うことで、共有リソースのアクセス効率をさらに向上させるとともに、データの読み出し応答速度を向上させることも可能である。
(第3の実施の形態)
図8は本発明の情報処理装置の第3の実施の形態の構成を示すブロック図である。
図8に示すように、第3の実施の形態の情報処理装置は、情報処理ユニット101〜103と共有リソース108〜110とがマルチレイヤ−バス107を介して接続され、共有リソース108及び共有リソース109に対応して2つのバスインタフェース111、112を備えた構成である。バスインタフェース111、112は、リードバッファ113,114及びライトバッファ115,116を備え、バスインタフェース111、112と共有リソース108とは第1のアービタ117を介して接続され、バスインタフェース111、112と共有リソース109とは第2のアービタ118を介して接続される。
マルチレイヤーバス107は、情報処理ユニット101〜103に対応して設けられた入出力インタフェースである入力ステージ126〜128と、各情報処理ユニット101〜103から共有リソース108〜110宛に発行された各種リクエスト(アクセス要求)を調停するマルチプレクサ120、122と、情報処理ユニット101〜103から発行されたアクセス要求を送信先の共有リソース108〜110へ転送するためのデコーダ123〜125とを有する構成である。
共有リソース110は、従来と同様に1つのバスインタフェースを備えた構成であるため、マルチプレクサ120、122により情報処理ユニット101〜103からのアクセス要求が調停される。
なお、2つのバスインタフェース111、112を共有する共有リソース108と共有リソース109とは、同じ性質の装置である必要はなく、レイテンシやデータ転送速度が異なっていてもよい。その他の構成及び処理は第1及び第2の実施の形態の情報処理装置と同様であるため、その説明は省略する。
本実施形態の情報処理装置によれば、リードバッファ113、114及びライトバッファ115、116を増やすことなく、転送速度が異なる複数の共有リソース108、109についても第1及び第2の実施の形態と同様の効果を得ることができる。
例えばSOC等の外部に接続するメモリコントローラと内蔵メモリを統合的に扱い、データ転送速度の差を吸収すれば、本発明の効果を複数のメモリリソースに対して得ることができる。
(第4の実施の形態)
図9は本発明の情報処理装置の第4の実施の形態の構成を示すブロック図である。
図9に示すように、第4の実施の形態の情報処理装置は、情報処理ユニット201〜203と共有リソース208、209とを備え、情報処理ユニット202,203と共有リソース208、209とがマルチレイヤ−バス207を介して接続された構成である。
共有リソース108は、対応する2つのバスインタフェース211、212を備え、情報処理ユニット201とバスインタフェース211とが専用のバス230で接続された構成である。
バスインタフェース212はマルチレイヤーバス207を介して情報処理ユニット202、203とそれぞれ接続され、共有リソース209に対応するバスインタフェース218はマルチレイヤーバス207を介して情報処理ユニット202、203とそれぞれ接続される。
マルチレイヤーバス207は、情報処理ユニット202、203に対応して設けられた入出力インタフェースである入力ステージ227、228と、各情報処理ユニット202、203から共有リソース208、209宛に発行された各種リクエスト(アクセス要求)を調停するマルチプレクサ220、221と、情報処理ユニット202、203から発行されたアクセス要求を送信先の共有リソース208、209へ転送するためのデコーダ224、225とを有する構成である。
情報処理ユニット201とバスインタフェース211とを接続するバス230は、マルチレイヤーバス207に準拠するものではなく、異なるバス規約に基づくものが用いられる。すなわち、共有リソース208には、異なる規約の2つのバスが接続された構成となる。その他の構成及び処理は第1及び第2の実施の形態の情報処理装置と同様であるため、その説明は省略する。
本実施形態の情報処理装置では、リードバッファ213及び214、ライトバッファ215及び216、並びにアービタ217を第1及び第2の実施の形態と同様の構成とし、さらに同様の処理を実行すれば、異なる規約の2つのバスから共有リソース208へのアクセスを可能にしつつ、第1及び第2の実施の形態と同様の効果を得ることができる。これにより既存の2種類以上のASICなどを1チップに集積するような場合に、効率的にリソースの共有化が実現できる。
また、このような構成では、例えば読み出し専用インタフェースや書き込み専用インタフェース、排他処理アクセスをサポートしないインタフェース等、機能を削ったインタフェースを用意できるため、情報処理装置のコストを低減できる。


Claims (17)

  1. 複数の情報処理ユニットと、
    前記情報処理ユニットからのアクセス要求に応じて返送するためのリードデータを一時的に保持するリードバッファ、および前記情報処理ユニットから受信したライトデータを一時的に保持するライトバッファをそれぞれ有する複数のバスインタフェースと、前記情報処理ユニットから発行された複数のアクセス要求を調停するアービタとを有し、前記情報処理ユニットからアクセスされる共有リソースと、
    複数のバスインタフェースに対して個々に独立してデータの入出力が可能な、前記情報処理ユニットのバスインタフェースと前記共有リソースのバスインタフェース複数対複数で相互に接続するマルチレイヤーバスと、
    を有する情報処理装置。
  2. 前記リードバッファは、
    前記共有リソースの処理速度で前記共有リソースから前記リードデータを格納し、前記マルチレイヤーバスの伝送速度で前記情報処理ユニットへ該リードデータを送信し、
    前記ライトバッファは、
    前記マルチレイヤーバスの伝送速度で前記情報処理ユニットから受信した前記ライトデータを格納し、前記共有リソースの処理速度で該ライトデータを前記共有リソースへ書き込む、請求項1記載の情報処理装置。
  3. 前記共有リソースのバスインタフェースは、
    前記情報処理ユニットからのアクセス要求を受信すると、該アクセス要求によるアクセス先のアドレスと前記リードバッファ及び前記ライトバッファで既に保持されたデータに対応するアクセス先のアドレスを比較し、
    前記リードバッファ及び前記ライトバッファで保持されたデータに対応するアクセス先のアドレスと同じアドレスに対するアクセス要求である場合は、前記共有リソースから該リードバッファへの前記リードデータの格納が完了した後、または該ライトバッファで保持されたライトデータの前記共有リソースへの書き込みが完了した後に前記アービタに該アクセス要求を送信するアドレス比較器をさらに有する、請求項1記載の情報処理装置。
  4. 前記情報処理ユニット、前記リードバッファ、または前記ライトバッファに予め所定の優先度が付与され、
    前記アービタは、
    前記共有リソースに対する複数のアクセス要求を受信すると、該優先度にしたがった順に該アクセス要求を許可する、請求項1記載の情報処理装置。
  5. 前記共有リソースのバスインタフェースは、
    前記リードバッファ及び前記ライトバッファで保持されたデータに対応するアクセス先のアドレスと同じアドレスに対するアクセス要求を受信した場合、該リードバッファへの前記共有リソースからの前記リードデータの読み出し処理または該ライトバッファから前記共有リソースへの前記ライトデータの書き込み処理の優先度を上げる、請求項4記載の情報処理装置。
  6. 前記リードバッファは、
    前記情報処理ユニットからのアクセス要求を受信すると、該アクセス要求によるアクセス先のアドレスと前記リードバッファで既に保持されたリードデータに対応するアクセス先のアドレスを比較し、
    前記リードバッファで保持されたリードデータに対応するアクセス先のアドレスと同じアドレスに対するアクセス要求である場合は、前記共有リソースから該リードデータを読み出すことなく、前記リードバッファで保持されたリードデータを該情報処理ユニットへ返送する、請求項1記載の情報処理装置。
  7. 前記ライトバッファは、
    前記情報処理ユニットからのアクセス要求を受信すると、該アクセス要求によるアクセス先のアドレスと前記ライトバッファで既に保持されたライトデータに対応するアクセス先のアドレスを比較し、
    前記ライトバッファで保持されたライトデータに対応するアクセス先のアドレスと連続するアドレスに対するアクセス要求である場合は、前記ライトバッファで保持されたライトデータと該情報処理ユニットから受信したライトデータをまとめて共有リソースへ格納する、請求項1記載の情報処理装置。
  8. 前記共有リソースの複数のバスインタフェースが、
    複数の共有リソースに対応して共通に設けられた、請求項1記載の情報処理装置。
  9. 前記共有リソースの複数のバスインタフェースは、
    それぞれが異なるバス規約である、請求項1記載の情報処理装置。
  10. 前記共有リソースがSDRAMによる主記憶であり、
    前記アービタは、前記SDRAMの状態を把握しており、該状態に基づいて、優先的に選択するアクセス要求を決定する、請求項1記載の情報処理装置。
  11. 前記アービタは、発行されてからの調停回数が所定回数を経過したアクセス要求については前記SDRAMの状態に関わらず優先的に選択する、請求項10記載の情報処理装置。
  12. 単一の共有リソースに備えられた複数の前記バスインタフェースは、アクセス要求があると、該アクセス要求を発行した情報処理ユニットを特定し、
    前記単一の共有リソースに備えられた前記アービタは、前記情報処理ユニットの各々に対して優先度を予め定めており、前記バスインタフェースで特定された情報処理ユニットの前記優先度にしたがって調停を行う、請求項1記載の情報処理装置。
  13. 前記共有リソースにアクセスを行う情報処理ユニットが、他の情報処理ユニットによる該共有リソースに対するアクセスの禁止をすると、
    禁止をした前記情報処理ユニットからのアクセスに用いられるバスインタフェースに加えて、該バスインタフェースと同じ前記共有リソースに備えられた他のバスインタフェースによる前記共有リソースへのアクセスが禁止される、請求項1記載の情報処理装置。
  14. 他の情報処理ユニットによる該共有リソースに対するアクセスを禁止するための機能を、単一の共有リソースに備えられた複数の前記バスインタフェースのうちいずれか1つだけに持たせた、請求項13記載の情報処理装置。
  15. 前記共有リソースにアクセスを行う情報処理ユニットが他の情報処理ユニットによる該共有リソースの特定アドレス領域に対するアクセスの禁止をすると、
    禁止をした前記情報処理ユニットからのアクセスに用いられるバスインタフェースに加えて、該バスインタフェースと同じ前記共有リソースに備えられた他のバスインタフェースによる前記共有リソースの前記特定アドレス領域に対するアクセスが禁止される、請求項1記載の情報処理装置。
  16. 他の情報処理ユニットによる該共有リソースに対するアクセスを禁止するための機能を、単一の共有リソースに備えられた複数の前記バスインタフェースのうちいずれか1つだけに持たせた、請求項15記載の情報処理装置。
  17. 前記リードバッファは、該リードバッファを介さずにデータを転送するスルーパスを備え、所定のサイクルにおいて、前記共有リソースからのデータを前記スルーパスによって前記情報処理ユニットに応答する、請求項1記載の情報処理装置。
JP2006535714A 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置 Expired - Fee Related JP4737438B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006535714A JP4737438B2 (ja) 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2004269884 2004-09-16
JP2004269884 2004-09-16
JP2005225389 2005-08-03
JP2005225389 2005-08-03
JP2006535714A JP4737438B2 (ja) 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置
PCT/JP2005/016087 WO2006030650A1 (ja) 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2006030650A1 JPWO2006030650A1 (ja) 2008-05-15
JP4737438B2 true JP4737438B2 (ja) 2011-08-03

Family

ID=36059905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006535714A Expired - Fee Related JP4737438B2 (ja) 2004-09-16 2005-09-02 複数の処理ユニットでリソースを共有する情報処理装置

Country Status (3)

Country Link
US (1) US7650453B2 (ja)
JP (1) JP4737438B2 (ja)
WO (1) WO2006030650A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4874165B2 (ja) * 2006-07-07 2012-02-15 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
US7596647B1 (en) 2006-09-18 2009-09-29 Nvidia Corporation Urgency based arbiter
US8122078B2 (en) * 2006-10-06 2012-02-21 Calos Fund, LLC Processor with enhanced combined-arithmetic capability
KR101490327B1 (ko) 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
US7836226B2 (en) * 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7743191B1 (en) * 2007-12-20 2010-06-22 Pmc-Sierra, Inc. On-chip shared memory based device architecture
US8321869B1 (en) * 2008-08-01 2012-11-27 Marvell International Ltd. Synchronization using agent-based semaphores
JP5487587B2 (ja) * 2008-09-29 2014-05-07 富士通株式会社 アクセス制御方法及び計算機システム
CN101847043B (zh) * 2009-03-25 2012-11-21 联想(北京)有限公司 共用存储设备的方法及移动终端
JP2010252090A (ja) * 2009-04-16 2010-11-04 Rohm Co Ltd 半導体装置
US8949500B2 (en) * 2011-08-08 2015-02-03 Lsi Corporation Non-blocking processor bus bridge for network processors or the like
US9444757B2 (en) 2009-04-27 2016-09-13 Intel Corporation Dynamic configuration of processing modules in a network communications processor architecture
US9461930B2 (en) 2009-04-27 2016-10-04 Intel Corporation Modifying data streams without reordering in a multi-thread, multi-flow network processor
US8489794B2 (en) * 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge for network processors or the like
US8356054B2 (en) * 2009-11-10 2013-01-15 International Business Machines Corporation Management of resources in a host system
TWI526828B (zh) * 2011-02-15 2016-03-21 群聯電子股份有限公司 資料存取方法及使用此方法的記憶體控制器與儲存裝置
KR20150019268A (ko) * 2013-08-13 2015-02-25 에스케이하이닉스 주식회사 데이터 입출력 장치 및 이를 포함하는 시스템
US10073629B2 (en) * 2016-12-13 2018-09-11 International Business Machines Corporation Memory transaction prioritization
US10228869B1 (en) * 2017-09-26 2019-03-12 Amazon Technologies, Inc. Controlling shared resources and context data
US10298496B1 (en) 2017-09-26 2019-05-21 Amazon Technologies, Inc. Packet processing cache
CN113032299B (zh) * 2019-12-24 2023-09-26 中科寒武纪科技股份有限公司 用于处理请求的总线***、集成电路装置、板卡及保序方法
CN113032298B (zh) * 2019-12-24 2023-09-29 中科寒武纪科技股份有限公司 用于保序的计算装置、集成电路装置、板卡及保序方法
CN113190496B (zh) * 2021-04-23 2023-12-26 深圳市汇顶科技股份有限公司 内核通讯方法、装置、芯片、电子设备及存储介质
FR3124284B1 (fr) * 2021-06-21 2024-04-19 St Microelectronics Srl Système sur puce comprenant une interface de connexion entre des dispositifs maîtres et des dispositifs esclaves

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992005489A1 (en) * 1990-09-18 1992-04-02 Fujitsu Limited Method of nonsynchronous access to shared memory
JPH04205534A (ja) * 1990-11-30 1992-07-27 Fujitsu Ltd メモリ制御方式
JPH05210620A (ja) * 1991-07-05 1993-08-20 Fujitsu Ltd 共用メモリの排他制御処理方式
JPH06131244A (ja) * 1992-10-20 1994-05-13 Fujitsu Ltd 共有メモリの非同期アクセス方式
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JPH1173366A (ja) * 1997-08-28 1999-03-16 Nec Niigata Ltd ユニファイドメモリアーキテクチャにおけるメモリ制御方法およびメモリ制御装置
JP2000003302A (ja) * 1998-06-15 2000-01-07 Hitachi Ltd 共有メモリ排他アクセス制御方法
JP2000132503A (ja) * 1998-10-23 2000-05-12 Victor Co Of Japan Ltd データ転送装置
JP2001005718A (ja) * 1999-06-24 2001-01-12 Seiko Instruments Inc プロトコルハンドラ及びその信号処理方法
JP2001282612A (ja) * 2000-03-30 2001-10-12 Yamaha Corp メモリコントローラ
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
JP2004199608A (ja) * 2002-12-20 2004-07-15 Digital Electronics Corp メモリ制御回路

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01173366A (ja) * 1987-12-26 1989-07-10 Sony Corp 音声及び静止画録再装置
GB2289353B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Data processing with multiple instruction sets
JPH0844636A (ja) 1994-07-29 1996-02-16 Toshiba Corp バスインタフェース装置及び同バスインタフェース装置を複数備えた情報処理システム
JP2591502B2 (ja) 1994-12-09 1997-03-19 日本電気株式会社 情報処理システムおよびそのバス調停方式
JP3934710B2 (ja) 1996-09-13 2007-06-20 株式会社ルネサステクノロジ マイクロプロセッサ
JPH11120074A (ja) 1997-10-16 1999-04-30 Sharp Corp データ転送制御方法
JP2000047930A (ja) 1998-07-28 2000-02-18 Mitsubishi Electric Corp データ処理装置
JP2001067305A (ja) 1999-08-26 2001-03-16 Hitachi Ltd 半導体集積回路及びマイクロコンピュータ
JP2001209609A (ja) 2000-01-25 2001-08-03 Hitachi Ltd マイクロコンピュータシステム
JP2001135083A (ja) 1999-11-04 2001-05-18 Matsushita Electric Ind Co Ltd マルチポートメモリ
US6651148B2 (en) * 2000-05-23 2003-11-18 Canon Kabushiki Kaisha High-speed memory controller for pipelining memory read transactions
WO2002069158A1 (en) * 2001-02-28 2002-09-06 Brecis Communications A multi-service system-on-chip
JP2002288120A (ja) 2001-03-27 2002-10-04 Nec Corp 調停装置およびバスシステム
JP2002312309A (ja) 2001-04-09 2002-10-25 Nec Eng Ltd 調停回路及び調停方法
JP3830438B2 (ja) 2002-09-03 2006-10-04 株式会社リコー メモリアクセスアービタ、メモリ制御装置
DE10302287A1 (de) * 2003-01-22 2004-08-12 Micronas Gmbh Speichervorrichtung für eine Multibus-Architektur

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3141948B2 (ja) * 1990-09-18 2001-03-07 富士通株式会社 計算機システム
WO1992005489A1 (en) * 1990-09-18 1992-04-02 Fujitsu Limited Method of nonsynchronous access to shared memory
JPH04205534A (ja) * 1990-11-30 1992-07-27 Fujitsu Ltd メモリ制御方式
JPH05210620A (ja) * 1991-07-05 1993-08-20 Fujitsu Ltd 共用メモリの排他制御処理方式
JPH06131244A (ja) * 1992-10-20 1994-05-13 Fujitsu Ltd 共有メモリの非同期アクセス方式
JPH06266616A (ja) * 1993-03-12 1994-09-22 Toshiba Corp メモリアクセス制御装置
JPH1173366A (ja) * 1997-08-28 1999-03-16 Nec Niigata Ltd ユニファイドメモリアーキテクチャにおけるメモリ制御方法およびメモリ制御装置
JP2000003302A (ja) * 1998-06-15 2000-01-07 Hitachi Ltd 共有メモリ排他アクセス制御方法
JP2000132503A (ja) * 1998-10-23 2000-05-12 Victor Co Of Japan Ltd データ転送装置
JP2001005718A (ja) * 1999-06-24 2001-01-12 Seiko Instruments Inc プロトコルハンドラ及びその信号処理方法
JP2001282612A (ja) * 2000-03-30 2001-10-12 Yamaha Corp メモリコントローラ
JP2001356961A (ja) * 2000-06-13 2001-12-26 Nec Corp 調停装置
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
JP2004199608A (ja) * 2002-12-20 2004-07-15 Digital Electronics Corp メモリ制御回路

Also Published As

Publication number Publication date
US7650453B2 (en) 2010-01-19
JPWO2006030650A1 (ja) 2008-05-15
WO2006030650A1 (ja) 2006-03-23
US20070266196A1 (en) 2007-11-15

Similar Documents

Publication Publication Date Title
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
US7793008B2 (en) AMBA modular memory controller
TWI443675B (zh) 記憶體系統以及存取記憶體之方法
US8060721B1 (en) Apparatus and method for a synchronous multi-port memory
US7966431B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US8078781B2 (en) Device having priority upgrade mechanism capabilities and a method for updating priorities
US20030217244A1 (en) Memory controller configurable to allow bandwidth/latency tradeoff
US7581054B2 (en) Data processing system
CN112416851B (zh) 一种可扩展的多核片上共享存储器
JPH06231075A (ja) ゼロ潜伏性ループアービトレーションの方法及び装置
US7418535B2 (en) Bus system and method of arbitrating the same
US6202112B1 (en) Arbitration methods to avoid deadlock and livelock when performing transactions across a bridge
JP2023530642A (ja) Dramコマンドストリーク管理
US5627968A (en) Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory
US11995008B2 (en) Memory controller with hybrid DRAM/persistent memory channel arbitration
JP4684577B2 (ja) 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法
TWI764139B (zh) 訪問資料匯流排的裝置、方法及系統
US20230111351A1 (en) Topology of accelerators
KR100579419B1 (ko) Ddr sdram 데이터 전송을 위한 amba인터페이스 장치
JP2000020453A (ja) バスコントローラ
JP2001188749A (ja) バスコントローラ
KR20050077520A (ko) 메모리 중재 방법 및 데이터 처리 시스템
JP2004005108A (ja) データ転送制御方法およびデータ転送制御装置
JP2003271573A (ja) マルチプロセッサ、マルチプロセッサコア及びその制御方法
JP2005332125A (ja) メモリコントローラ及び共有メモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101004

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110406

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110419

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees