JP2003186822A - モジュール間通信方法および装置 - Google Patents

モジュール間通信方法および装置

Info

Publication number
JP2003186822A
JP2003186822A JP2001386247A JP2001386247A JP2003186822A JP 2003186822 A JP2003186822 A JP 2003186822A JP 2001386247 A JP2001386247 A JP 2001386247A JP 2001386247 A JP2001386247 A JP 2001386247A JP 2003186822 A JP2003186822 A JP 2003186822A
Authority
JP
Japan
Prior art keywords
module
transaction
master
slave
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.)
Pending
Application number
JP2001386247A
Other languages
English (en)
Inventor
Toshiaki Minami
利秋 南
Takashi Fujiwara
隆史 藤原
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2001386247A priority Critical patent/JP2003186822A/ja
Publication of JP2003186822A publication Critical patent/JP2003186822A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 各モジュールをリング状に結合する構成にお
いても複数のリードトランザクションがリング内に同時
に存在し得るようにし、モジュールへのリードが多数存
在する場合にもプロセッサのストール時間を抑え性能を
向上させることを目的とする。 【解決手段】 プロセッサからの指令によりリング上に
トランザクションを起動する1つのマスタモジュールと
複数のスレーブモジュールがリング状に結合され、プロ
セッサはマスタモジュール内の複数のレジスタに読み出
しアドレスを書き込み、マスタモジュールはこのレジス
タライトを検知し、レジスタに書かれたアドレスに基づ
きリング上でリードトランザクションを起動し、その結
果読み出されたデータを該レジスタに書き込むと共に有
効な読み出しデータを保持することを示すフラグをセッ
トする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は情報処理装置のLS
I内部の各モジュール間の通信に関し、より詳細には、
各モジュールをリング上に接続して行う通信に関するも
のである。
【0002】
【従来の技術】従来、LSI内部の複数のモジュール間
において通信を行なうためには、図3に示すような構成
で、システムバスにより各モジュール間を接続する方法
が一般的であった。このシステムバスはバス型やスター
型のトポロジーとることが多い。この構成では、ひとつ
のシステムバスを用いて、プロセッサやDMA機能を持
つモジュールとシステムメモリとの間のデータ転送、な
らびにプロセッサからの各モジュールのレジスタ設定、
ステータスの取得等の両方を行なう。
【0003】また、高いデータ転送レートが要求される
システムでは、バスのデータ幅を、64bit、さらに
は128bitというように広くする、あるいは画像デ
ータ転送など特定の用途に特化したバスをシステムバス
とは別に設け関連モジュールをそのバスに接続する場合
がある。そのような場合、レジスタアクセスのためだけ
にシステムバスを全てのモジュールに接続することはハ
ードウェアリソースを無駄に消費することになる。
【0004】このため、図4に示すようなレジスタアク
セス用の専用バスをデータアクセス用のバスとは別に設
けるシステムもある。しかしながら、最近ではLSIの
高集積化に伴い、LSIに内蔵されるモジュールの数も
増加しているため、それら全てをバスにより接続すると
バスの配線長が長くなり負荷容量が増大し、それがレイ
アウト設計を困難にし、性能にも重大な影響を与えるこ
とがある。
【0005】LSI内部のモジュール間を接続するレジ
スタアクセス用配線のレイアウトを容易にするための手
段としてLSI内の複数のモジュールをリング状に接続
することが考えられる。そのような構成の一例として、
プロセッサからの指示を受けるマスタモジュールが唯一
存在し、それ以外の複数のスレーブモジュールがリング
で接続される以下のような形態のものが挙げられる。
【0006】すなわち、すべてのスレーブモジュールは
次に接続されるモジュールヘトランザクションを発行す
るマスタインターフェースと前に接続されているモジュ
ールからトランザクションを受け取るスレーブインター
フェースを持ち、マスタモジュールはリングに接続され
た他のモジュールに対してアクセスを行なうためにマス
タインターフェースからコマンドトランザクションを発
行する手段を持ち、スレーブとなる他のモジュールは、
スレーブインターフェースから受け取ったコマンドトラ
ンザクションを次に接続されたモジュールヘマスタイン
ターフェースからフォワードする手段と、そのコマンド
トランザクションが自分に対するアクセスであるかどう
かを判断するためにトランザクションに含まれるアドレ
スを、トランザクションをフォワードするのと平行して
デコードを行なう手段と、そのコマンドトランザクショ
ンが自分に対するアクセスであると判断したときにはリ
ターントランザクションをマスタインターフェースから
発行する手段を持ち、次に接続されたモジュールがトラ
ンザクションを受け取る準備ができていないときには受
信したトランザクションをフォワードせずに保持してお
くためのバッファを持ち、次に接続されたモジュールが
トランザクションを受け取る準備が出来次第送信する手
段を持ち、マスタモジュール関しては、マスタモジュー
ルのマスタインターフェースを始点とし、すべてのモジ
ュールを順に接続したリングの終点が最終的に接続され
るスレーブインターフェースを持ち、マスタインターフ
ェースから発行したコマンドトランザクションが最終的
に戻ってきて、その後にリターントランザクションを受
信できなかった場合にエラーと判断する機能を持ち、コ
マンドトランザクションを受信してから一定時間リター
ントランザクションが受信できなかった場合にもエラー
と判断する機能を持つ。
【0007】図5は、そのような構成の従来例を示すブ
ロック図である。図5では、LSI内の各モジュールが
システムバス110で接続されている。また、それに加
え、各モジュールをリング状に接続するレジスタアクセ
スリング111が存在する。
【0008】100はプロセッサ、101はシステムバ
スブリッジであり、リング内で唯一コマンドトランザク
ションを発行することができるマスタモジュールであ
る。102〜104はレジスタアクセスされる対象であ
るスレーブモジュール1〜nである。ここにnは3以上
の任意の正数である。マスタモジュールはリングに対し
てコマンドトランザクションを発行する役割と、最終的
に戻ってくるコマンドトランザクションおよびコマンド
トランザクションに対してスレーブモジュールが発行す
るリターントランザクションを受け取る役割を担ってい
る。スレーブモジュールは上位の経路から送られてくる
コマンドトランザクションを下位の経路にフォワードす
ると共に、自分に対するアクセスであればリターントラ
ンザクションを発行する。
【0009】プロセッサからシステムメモリ106にア
クセスする場合には、プロセッサはブリッジに対してメ
モリアクセス要求を出す。ブリッジはそれを受けてシス
テムバスに対してメモリアクセストランザクションを発
行する。メモリコントローラ105はそのトランザクシ
ョンを受け、システムメモリにアクセスを行なう。ま
た、DMA機能を持ったモジュール1〜nはシステムメ
モリにアクセスしたい場合はシステムバスを介してアク
セスを行なう。
【0010】それに対して、プロセッサが各モジュール
1〜nのレジスタに対してアクセスを行う場合は、ブリ
ッジはレジスタアクセスリングに対してレジスタアクセ
スのコマンドトランザクションを発行する。
【0011】図6には図5のシステムからレジスタアク
セスリングの部分を抽出した図を示す。以下にこの図を
用いて、レジスタアクセスリングに注目して、その通信
方法を詳細に説明する。
【0012】400は図5のブリッジのリングアクセス
のインターフェース部分と等価であり、本構成でのレジ
スタアクセスリングのマスクとなるマスタモジュールで
ある。401〜403は図5のModule1〜n、メモリコ
ントローラなどのリングアクセスインターフェース部分
と等価であり、レジスタアクセスリングのスレーブとな
るスレーブモジュールである。各モジュールはモジュー
ル間で通信するためのマスタインターフェースとスレー
ブインターフェースを持っている。
【0013】マスタモジュールのマスタインターフェー
スとスレーブモジュール1のスレーブインターフェース
は通信経路1で接続されている。また、スレーブモジュ
ール1のマスタインターフェースとスレーブモジュール
2のスレーブインターフェースは通信経路2で接続され
ており、スレーブモジュール2のマスタインターフェー
スとスレーブモジュール3のスレーブインターフェース
は通信経路3、スレーブモジュールnのマスタインター
フェースとマスタモジュールのスレーブインターフェー
スは通信経路nでそれぞれ接続されている。
【0014】このように構成されるリングでは、コマン
ド/リターントランザクションが転送される方向は決ま
っており、マスタモジュール→スレーブモジュール1→
スレーブモジュール2→・・・・・・→スレーブモジュールn
→マスタモジュールという方向にのみ転送が可能であ
る。
【0015】各通信経路は以下に示す信号によって構成
されている。 tsp Transaction Start Master I/F >Slave I/F rsp Return Start Master I/F >Slave l/F tbsyp Transaction Busy Master I/F >Slave I/F uaddr#midp[5:0] Upper Address/Master ID Master I/F >Slave I/F laddr#datap[15:0] Lower Address/Data Master I/F >Slave I/F rd#not#wr Read(H)/Write(L) Master I/F >Slave I/F errorp Error Master I/F >Slave I/F srdyp Slave Ready Slave I/F>Master I/F 以下に各信号について説明する。 tsp トランザクションStart Master I/F >Slave I/F マスタインターフェースは通信相手のスレーブインター
フェースからのsrdypがアサートされているのを確認し
て1サイクル間アサートを行ない、コマンドトランザク
ションをスタートする。マスタは次のトランザクション
をtbsypがHighの状態を検出後、開始することができ
る。すなわち、トランザクション聞け少なくとも必ず1
サイクル存在することになる。 rsp Return Start Master I/F >Slave I/F スレーブモジュールからのリターントランザクションを
開始する信号。スレーブモジュールはライトが終了する
か、リードデータの準備ができたら本信号をアサート
し、リターントランザクションを開始する。アサートの
条件はtspと同じ。
【0016】 tbsyp Transaction Busy Master I/F >Slave I/F コマンド/リターントランザクションが行われている間
アサートされる。トランザクションは3サイクルを要す
るので、常に3サイクル間アサートされる。本信号がデ
ィアサートされている時は通信経路はアイドル状態にあ
る。 uaddr#midp[5:0] Upper Address/Master ID Master I/F>Slave I/F Upper Address とMasterID(MID)のマルチプレックス信
号。
【0017】1beat目にUpper Address、2beat目にMaster
ID が入る。3beat目はDon't Care。
【0018】1beat目のUpper Address の際はAddress[2
3:18]が入る。
【0019】2beat目のMaster ID の際はuaddr#midp[3:
0]にMID[3:0]が入る。上位2bitはDon't Care。
【0020】MIDはシーケンスにはまったく影響がない。
各スレーブモジュールは単にマスタインターフェースか
ら受け取ったMIDを次ヘフォワードするだけである。
【0021】 1addr#datap[15:0] Lower Address / Data Master I/F>Slave I/F Lower Address とDataのマルチブレックス信号。
【0022】1beat目にLower Address、2beat目にDataの
MSB側の16bit、3beat目にDataのLSB側の16bitが入る。
【0023】1beat目のLower Address の際はAddress[1
7:2]が入る。
【0024】2beat目のDataの際はData[31:16]が入る。
【0025】3beat目のDataの際はData[15:0]が入る。
【0026】 rd#not#wr Read(H)/Write(L) Master I/F >Slave I/F 転送のリード/ライトを示す。
【0027】tbsypがアサートされている間アサートさ
れる。その期間は変更してはならない。 High : リード Low : ライト errorp Error Master I/F >Slave I/F エラーをマスタモジュールに通知する。エラーが発生し
た場合、スレーブモジュールはリターントランザクショ
ン時にtbsypがアサートされている間本信号をアサート
する。
【0028】 srdyp Slave Ready Slave I/F>Master I/F トランザクションを受け取る側のスレーブインターフェ
ースがトランザクションを送る側のマスタインターフェ
ースからのトランザクションを受け取る準備ができてい
ることを示す。本信号がアサートされていれば、マスタ
インターフェースはいつでもトランザクションを始める
ことができ、スレーブインターフェースは必ずそのトラ
ンザクションを受け取らなければならない。
【0029】srdypはトランザクションを受け取ると、
一旦ディアサートされる。スレーブモジュールはコマン
ドトランザクションをデコードし、自分の範囲のアドレ
スにヒットした場合には、srdypをそのままディアサー
トし続け、次のトランザクションの受信を防がなければ
ならない。
【0030】ヒットしなかった場合で、受け取ったトラ
ンザクションを次のモジュールヘフォワードできた場合
にはsrdypをアサートし、次のトランザクションを受け
取る準備をする。デコードはコマンドトランザクション
中に終えるのが望ましい。ヒットした場合はリターント
ランザクションを発行後、srdypを再びアサートする。
【0031】以上の信号は通信経路1〜n+1で共通で
あり、それぞれの通信経路での信号名は、信号名の最後
に0〜nの番号が追加され、以下のようになる。
【0032】通信経路1の信号 tsp0,rsp0,tbsyp0,uaddr#midp0[5:0],1addr-datap0[15:
01,rd-not-wr0,errorp0,srdypo 通信経路2の信号 tsp1,rsp1,tbsyp1,uaddr#midp1[5:0],Iaddr-datap1[15:
01,rd#not-wr1,errorp1,srdyp 1 通信経路3の信号 tsp2,rsp2,tbsyp2,uaddr-midp2[5:0],1addr#datap2[15:
01,rd#not#wr2,errorp2,srdyp2 通信経路4の信号 tsp3,rsp3,tbsyp3,uaddr-midp3[5:0],Iaddr-datap3[15:
0],rd-not-wr3,errorp3,srdyp3 ライト及びリードのコマンドトランザクションはマスタ
モジュールが発行し、各スレーブモジュールはそれを次
のスレーブモジュールにフォワードしていく。スレーブ
モジュールは受け取ったコマンドトランザクションは自
分に対するアクセスであるないに関わらず次のスレーブ
モジュールにフォワードするので、コマンドトランザク
ションは最終的にマスタモジュールに戻ってくる。
【0033】スレーブモジュールはコマンドトランザク
ションをフォワードするのと同時にアドレスをデコード
し、自分のアドレスにヒットしていればそれ以降のコマ
ンドトランザクションの受信を行わず、自分が管理する
レジスタに対してライトあるいはリード作業を行う。そ
れが終了すると、スレーブモジュールはリターントラン
ザクションを発行する。
【0034】このリターントランザクションもそれ以降
の各スレーブモジュールによりフォワードされ、最終的
にマスタモジュールに到達する。リターントランザクシ
ョンを発行したスレーブモジュールは一時ストップして
いたコマンドトランザクションの受信を再開する。
【0035】マスタモジュールはコマンドトランザクシ
ョンを発行すると、必ずそのコマンドトランザクション
と、そのコマンドトランザクションに対するリターント
ランザクションを受け取ることを期待している。複数の
コマンドトランザクションを発行した時にも、マスタモ
ジュールは必ずコマンドトランザクションとリターント
ランザクションを交互に受け取るはずである。
【0036】コマンドトランザクションのアドレスにエ
ラーがあり、どのスレーブモジュールも反応しなかった
ときには、マスタモジュールにリターントランザクショ
ンが戻ってこない。これにより、マスタモジュールはコ
マンドトランザクションにエラーがあったことを知るこ
とができる。
【0037】コマンドトランザクションは最初マスタモ
ジュールが発行する。スレーブモジュールはそれを受け
取り即座に後のスレーブモジュールにフォワードする。
コマンドトランザクションの発行はtbsyp=0、srdyp=
1の時にのみ可能である。コマンドトランザクションは
最終的にマスタモジュールに到達する。
【0038】スレーブモジュールはコマンドトランザク
ションをフォワードするのと同時にアドレスをデコード
する。ライト時にはライトデータがデータ信号に送られ
る。リード時には送られない。
【0039】ライト/リードに関わらず、トランザクシ
ョンは3beatで行われる。1beat目はアドレスの転送、
2beat目はマスタIDとデータの転送、3beat目はデー
タの転送である。リード時にはデータ部分はDon't Care
である。
【0040】スレーブモジュールはコマンドトランザク
ションを受け取り、自分のアドレスにヒットしていれば
それ以降のコマンドトランザクションの受信を一時スト
ップし、自分が管理するレジスタに対してライトあるい
はリード作業を行なう。それが終了すると、スレーブモ
ジュールはリターントランザクションを発行する。これ
はライト時にもリード時にも必ず発行される。
【0041】リターントランザクションはそれ以降の各
スレーブモジュールにより無条件にフォワードされ、最
終的にマスタモジュールに到達する。リターントランザ
クションのアドレスでコ−ドは行われない。マスタモジ
ュールはこのリターントランザクションを受信すること
によってコマンドが正常に終了したと判断する。
【0042】リード時のリターントランザクションには
リードデータが送られる。ライト時にはデータは送られ
ないマスタモジュールがエラーを検知しかつ直ちに処理
できない場合、errorpをtbsypと同じタイミングでアサ
ートしだコマンドトランザクションを発行する。errorp
がアサートされているコマンドトランザクションに対し
てはスレーブモジュールは反応してはならない。エラー
はコマンドトランザクションが叫びマスタモジュールに
戻ってきたタイミングで処理される。
【0043】スレーブモジュールがエラーを検知した場
合、リターントランザクション発行時にerrorpをtbsyp
と同じタイミングでアサートする。アドレスエラーが発
生した場合は、コマンドトランザクションに対してどの
スレーブモジュールも反応しないことになる。よってリ
ターントランザクションは発生しない。これはマスタモ
ジュールが検知をする必要がある。マスタモジュールは
トランザクションの受信において、コマンドトランザク
ションを続けて受信した場合にエラーと判断できる。
【0044】また、コマンドトランザクションを受信し
てからタイムアウトカウンタによりカウントを行ない、
ある一定時間の間にリターントランザクションを受信し
なかった場合にも同様にエラーと判断することができ
る。
【0045】次にトランザクションのシーケンスについ
て詳しく説明する。
【0046】図6にはコマンドトランザクションのシー
ケンスを示す。サイクル1で通信経路がアイドル状態
(tbsyp=Low)でスレーブインターフェースがレディ状
態(srdyp=High)なので、マスタインターフェースはサ
イクル2でtspをHighにアサートしてコマンドトランザ
クションを開始することができる。このコマンドはライ
トであるのでrd#not#wrをLowにアサートする。スレー
ブインターフェースはtspのアサートによりコマンドト
ランザクションの開始を検出し、サイクル3でsrdypをL
owにディアサートする。
【0047】srdypのディアサートのタイミングは、続
けてコマンドトランザクションが発行されるのを防ぐた
めなので、トランザクションが終了するまでであればい
つでもかまわない。
【0048】uaddr#midp[5:0]、laddr#datap[15:0]には
1ビート目から3ビート目までそれぞれ決められたアド
レス、マスタID、ライトデータが乗せられている。サ
イクル4でコマンドトランザクションは終了し、サイク
ル5でtbsypがLowにディアサートされ、通信経路はアイ
ドル状態に戻っている。
【0049】サイクル9ではsrdypがHighにアサートさ
れ、スレーブインターフェースが再度レディ状態に戻っ
ている。これを検出してマスタインターフェースはサイ
クル10でtspをHighにアサートし、リードコマンドト
ランザクションを開始している。ここではリードなの
で、rd#not#wrはHighにアサートされている。また、laddr#
datap[15:0]の2ビート目と3ビート目にはデータが乗
せられていない。
【0050】図7はマスタモジュールから発行されたラ
イトコマンドトランザクションを、通信経路1から受け
たスレーブモジュール1が、ライトコマンドトランザク
ションを通信経路2にフォワードし、リターントランザ
クションを通信経路2に発行する際のシーケンスを示し
ている。
【0051】前述した通信経路1でのライトコマンドト
ランザクションのシーケンスは前述したとおりである。
スレーブモジュール1は通信経路1から送られてくるト
ランザクションを通信経路2ヘフォワードする。通信経
路2のsrdyp1がHighにアサートされている場合、トラン
ザクションは1サイクルのディレイで通信経路2ヘフォ
ワードされる。
【0052】スレーブモジュール1は、srdyp0をディ
アサートして次のトランザクションの受信を防いでいる
間に、アドレスのデコードを行い、自分に対するアクセ
スでなければ、srdyp0をアサートして次のトランザク
ションを受け付ければよい。
【0053】スレーブモジュール1がトランザクション
を受信することができない場合は通信経路2のsrdyp1が
Lowにディアサートされている。この場合はスレーブモ
ジュール1は受信したトランザクションをフォワードす
ることができないため、内部のバッファにトランザクシ
ョンを格納し、srdyp1がアサートされた時点であらた
めてフォワードすることになる。
【0054】図8の場合は1サイクルのディレイでコマ
ンドトランザクションがフォワードされている。また、
デコードの結果、自分に対するアクセスであったので、
srdyp0をディアサートしたまま、リターントランザク
ションを通信経路1に発行している。
【0055】サイクル9で通信経路2がアイドル状態で
スレーブモジュール2がレディ状態なので、スレーブモ
ジュール1はサイクル10でrspをHighにアサートし、
リターントランザクションを開始する。シーケンスはコ
マンドトランザクションと同じで、tspをアサートする
ところをrspをアサートするというところが異なる。ま
た、ライトコマンドに対するリターントランザクション
ではデータを乗せる部分はDon't Careでよい。
【0056】このようにして発行されたリターントラン
ザクションはコマンドトランザクションと同様に通信経
路を次々にフォワードされてゆき、最終的にマスタモジ
ュールヘ戻る。各スレーブモジュールはリターントラン
ザクションを受信した場合はアドレスのデコードを行な
わず、ヒットしなかったコマンドトランザクションと同
様に次の通信経路にフォワードされ以上のようにマスタ
モジュールから発行されたコマンドトランザクション
は、ターゲツトとなるスレーブモジュールでリターント
ランザクションが発行され、マスタモジュールに戻って
くる時には必ずコマンドトランザクションの後にリター
ントランザクションも続けて送られてくる。
【0057】マスタモジュールはコマンドトランザクシ
ョンを発行した後、そのコマンドトランザクションとリ
ターントランザクションが戻ってくる前に、次のコマン
ドトランザクションを発行することが可能である。これ
により、リング内にパイプライン的にトランザクション
を発行することが可能になる。
【0058】図8はマスタモジュールから発行されたリ
ードコマンドトランザクションを、通信経路1から受け
たスレーブモジュール1が、リードコマンドトランザク
ションを通信経路2にフォワードし、リターントランザ
クションを通信経路2に発行する際のシーケンスを示し
ている。
【0059】シーケンス的にはライトコマンドトランザ
クションとほとんど同じである。rd#not#wrが反転する
ことと、リードコマンドトランザクションのデータ部が
Don'tCareとなり、リターントランザクションのデータ
部にはリードデータが乗せられるということが異なるだ
けである。
【0060】
【発明が解決しようとする課題】しかしながら、このよ
うに各モジュール間をリング状に結合する構成では、デ
ータの書き込みについてはマスタモジュールから連続し
て発行できパイプライン的に実行することができるが、
データの読み出しの場合は、一般にプロセッサが読み出
しデータを受け取るまでストールするため、リング内に
同時に存在するリードトランザクションは唯一つのみに
制限されてしまう。このリードトランザクションのレイ
テンシはトランザクションがリングを一周する時間で制
限されるため、LSIが大規模化し内蔵されるモジュー
ルが多くなる程長くなってしまう。このとき、モジュー
ルに対ずるリードが多数生じた場合、プロセッサがスト
ールする時間が増大レ吐能に影響を与えてしまうという
問題がある。
【0061】本発明はこのような状況に鑑みなされたも
ので、各モジュール間をリング状に結合する構成におい
ても、ライトトランザクションと同様、複数のリードト
ランザクションがリング内に同時に存在し得るように
し、モジュールヘのリードが多数生じる場合にもプロセ
ッサのストール時間を抑え性能を向上させることを目的
とする。
【0062】
【課題を解決するための手段】本出願に係る発明は、プ
ロセッサが各モジュール内のデータを読み出す際に、前
記マスタモジュールの書きこみによって読み出しアドレ
スを指示し、その後データを読み出すようにトランザク
ションを分割し、読み出し時のパイプライン動作を可能
にする。
【0063】
【発明の実施の形態】本発明の実施の形態について図面
を参照して説明する。
【0064】本発明においては図1に示すが如く前記マ
スタモジュール内に複数のレジスタを設け、プロセッサ
は該レジスタに対し読み出しアドレスを書きこみ、マス
タモジュールはこのレジスタヘの書きこみを検出し、レ
ジスタに格納されたアドレスに基づきデータを読み出す
ためのリードトランザクションをリング上で起動し、そ
の結果読み出されたデータを該レジスタに書きこむ。こ
のときこのレジスタが有効な読み出しデータを保持する
ことを示すフラグをセットする。
【0065】(実施例)上記した本発明の実施の形態に
ついて更に詳細に説明すべく、本発明の一実施例につい
て、図面を参照して詳細に説明する。
【0066】図1は本発明の一実施例の形態の構成を説
明する図である。図5との対比のため、同一の構成要素
には番号に'を付けて示している。図1が図5と異なる
点は、マスタモジュール200'内にレジスタ300を
備えることである。図10はレジスタ300の内容をよ
り詳しく説明するための図である。
【0067】レジスタ300は8本のレジスタ401〜
408から成りその各々に独立したアドレスが付与され
ている。本実施例においては16進1d00_0000
番地から16進1d00_001c番地である。同様に
モジュール1〜nはそれぞれ16連1d00_100
0,1d00_2000,‥‥,1d00_0000+
1000×n番地から始まるアドレス範囲が割り振られ
ている。
【0068】先ずライトの場合を示す。図11はプロセ
ッサがモジュール8内の16進1d00_8030番地
から16進1d00_803c番地まで連続して4ワー
ドのデータをライトする場合のタイミングチャートであ
る。
【0069】先ずプロセッサからアドレス1d00_8
030が出力される。マスタモジュールはこのアドレス
をデコードしリング内のモジュールに割り当てられたア
ドレス範囲であることを検知すると、リング上でライト
コマンドトランザクションを起動する。このライトコマ
ンドトランザクションはモジュール1〜7で中継された
後、7クロックサイクルの遅延でモジュール8に到達す
る。モジュール8はコマンドトランザクションのアドレ
スフィールドをデコードし自モジュールに対するコマン
ドであることを検知するとアドレス1d00_8030
番地が割り当てられた自モジュール内のレジスタにライ
トコマンドトランザクションのデータフィールドに格納
されていたデータを書きこむ。この間にもプロセッサは
次のアドレス1d00_8034番地に対するライトを
完了している。
【0070】マスタモジュールはこのアドレスをデコー
ドし再度リング内のモジュールに割り当てられたアドレ
ス範囲であることを検知すると、リング上でライトコマ
ンドトランザクションを再び起動する。このライトコマ
ンドトランザクションはモジュール1〜7で中継された
後、7クロックサイクルの遅延でモジュール8に到達す
る。
【0071】モジュール8はコマンドトランザクション
のアドレスフィールドをデコードし自モジュールに対す
るコマンドであることを検知するとアドレス1d00_
8034番地が割り当てられた自モジュール内のレジス
タにライトコマンドトランザクションのデータフィール
ドに格納されていたデータを書きこむ。このようにして
5クロック毎に1つのレジスタにデータを書きこむこと
ができ、かつプロセッサはそれ以上持たされることがな
いため、プロセッサから見ると合計20クロックサイク
ルで連続する4ワードの書きこみが終了する。
【0072】次にリードの場合を示す。図12はプロセ
ッサがモジュール8内の16連1d00_8030番地
から16連1d00_803c番地まで連続して4ワー
ドのデータをリードする場合のタイミングチャートであ
る。ライトの場合と異なり、プロセッサは先ずアドレス
1d00_0000番地に対しデータとして1d00_
8030を書きこむ。マスタモジュールはこのアドレス
をデコードし自モジュール内のレジスタ401に割り当
てられたアドレスであることを検知すると、当該レジス
タ401にこの値1d00_8030を格納する。
【0073】次いでこのレジスタの有効フラグ411を
クリアし、リング上でアドレス1d00_8030番地
に対するリードコマンドトランザクションを起動する。
このリードコマンドトランザクションはモジュール1〜
7で中継された後、7クロックサイクルの遅延でモジュ
ール8に到達する。モジュール8は該コマンドトランザ
クションのアドレスフィールドをデコードし自モジュー
ルに対するコマンドであることを検知するとアドレス1
d00_8030番地が割り当てられた自モジュール内
のレジスタに保持しているデータをリターントランザク
ションの所定のフィールドにセットしリング上に送出す
る。
【0074】このリターントランザクションはn−7ク
ロックサイクルの遅延後マスタモジュールに連する。マ
スタモジュールはこのリターントランザクションを受け
取ると1d00_0000番地に割り当てられたレジス
タ401にリターントランザクション中の読み出しデー
タを格納し、このレジスタの有効フラグ411をセット
する。この間にもプロセッサは続くアドレス1d00_
8034番地〜1d00_803c番地のデータを読み
出すため、それぞれ1d00_0004番地〜1d00
_000c番地にデータ1d00_8034〜1d00
_803cを連続してライトする。
【0075】マスタモジュールはプロセッサからのそれ
ぞれのライトに対し、自モジュール内の対応するレジス
タ402〜404に各読み出しアドレスを格納し、リン
グ上でそれぞれのリードコマンドトランザクションを起
動する。そして順次返ってくるリターントランザクショ
ンを受け取り、対応するレジスタにリターントランザク
ション中の読み出しデータを格納し、そのレジスタの有
効フラグをセットする。
【0076】その後、プロセッサはアドレス1d00_
0000番地〜1d00_000c番地を読み出すこと
により、所望のアドレス1d00_8030番地〜1d
00_803c番地のデータを得ることができる。
【0077】図12においては、プロセッサが1d00
_0000番地をリードしたタイミングではまだリター
ントランザクションは返っておらず従ってこのレジスタ
401の有効フラグ411はセットされていない。この
ためマスタモジュールはプロセッサに対しレディ信号を
アサートしない。
【0078】xxクロックサイクル後、リターントラン
ザクションがマスタモジュールに到達し、該レジスタの
有効フラグがセットされると、マスタモジュールはプロ
セッサに対しレディ信号をアサートすると共にリードデ
ータとしてリターントランザクション中の読み出しデー
タを渡す。
【0079】その後プロセッサが残りのアドレス1d0
0_0004番地〜1d00_000c番地を読み出す
タイミングの各々では対応するリターントランザクショ
ンがマスタモジュールに到連しており対応する有効フラ
グ412〜414がセットされているため、マスタモジ
ュールはプロセッサに対し直ちにレディ信号をアサート
するとともに対応するレジスタに格納されている読み出
しデータを渡す。
【0080】図2は本発明のもう一つの実施例の形態の
構成を説明する図である。図1と同様、図5との対比の
ため、同一の構成要素には番号に"を付けて示してい
る。
【0081】図2が図5と異なる点は、マスタモジュー
ル200"内にレジスタ300'を備えることである。更
に図1に比し有効フラグレジスタ310を持つ。図13
はレジスタ300'の内容および有効フラグレジスタ3
10の内容をより詳しく説明するための図である。レジ
スタ300'は8本のレジスタ501〜508から成り
その各々に独立したアドレスが付与されている。本実施
例においては16連1d00_0000番地から16連
1d00_001c番地である。また有効フラグレジス
タ520は有効フラグレジスタ310と同一であり本実
施例においてはアドレス1d00_0020番地が割り
当てられている。
【0082】同様にモジュール1〜nはそれぞれ16連
1d00_1000,1d00_2000,・・・・・・,1
d00_0000+1000×n番地から始まるアドレ
ス範囲が割り振られている。
【0083】ライトの場合は前述の実施例と同様であ
る。次にリードの場合を示す。
【0084】図14はプロセッサがモジュール8内の1
6進1d00_8030番地から16進1d00_80
3c番地まで連続して4ワードのデータをリードする場
合のタイミングチャートである。ライトの場合と異な
り、プロセッサは先ずアドレス1d00_0000番地
に対しデータとして1d00_8030を書きこむ。マ
スタモジュールはこのアドレスをデコードし自モジュー
ル内のレジスタ501に割り当てられたアドレスである
ことを検知すると、当該レジスタ501にこの値1d0
0_8030を格納する。
【0085】次いでこのレジスタの有効フラグ511を
クリアし、リング上でアドレス1d00_8030番地
に対するリードコマンドトランザクションを起動する。
このリードコマンドトランザクションはモジュール1〜
7で中継された後、7クロックサイクルの遅延でモジュ
ール8に到達する。モジュール8は該コマンドトランザ
クションのアドレスフィールドをデコードし自モジュー
ルに対するコマンドであることを検知するとアドレス1
d00_8030番地が割り当てられた自モジュール内
のレジスタに保持しているデータをリターントランザク
ションの所定のフィールドにセットしリング上に送出す
る。
【0086】このリターントランザクションはn−7ク
ロックサイクルの遅延後マスタモジュールに連する。マ
スタモジュールはこのリターントランザクションを受け
取ると1d00_000番地に割り当てられたレジスタ
501にリターントランザクション中の読み出しデータ
を格納し、このレジスタの有効フラグ511をセットす
る。この間にもプロセッサは続くアドレス1d00_8
034番地〜1d00_803c番地のデータを読み出
すため、それぞれ1d00_0004番地〜1d00_
000c番地にデータ1d00_8034〜1d00_
803cを連続してライトする。マスタモジュールはプ
ロセッサからのそれぞれのライトに対し、自モジュール
内の対応するレジスタ502〜504に各読み出しアド
レスを格納し、リング上でそれぞれのリードコマンドト
ランザクションを起動する。
【0087】そして順次返ってくるリターントランザク
ションを受け取り、対応するレジスタ502〜504に
リターントランザクション中の読み出しデータを格納
し、そのレジスタの有効フラグ512〜514をセット
する。
【0088】プロセッサはアドレス1d00_0020
番地を繰り返し読み出し、いづれかの有効フラグがセッ
トされていることが分かった時点で、そのフラグに対応
するレジスタの割り当てられたアドレスをリードするこ
とで、所望のアドレスのデータを得ることができる。
【0089】図14においては、プロセッサが1d00
_020番地をリードしたタイミングで既に4つのレジ
スタ501〜504の有効フラグ511〜514が全て
セットされている。よって、その後プロセッサはアドレ
ス1d00_0000番地〜1d00_000c番地を
連続して読み出すことでアドレス1d00_8030番
地〜1d00_803c番地のデータを得ることができ
る。
【0090】以上において、本発明が特定の実施例に関
して図示されかつ説明されたが、さらに他の修正および
改善が可能であることは言うまでも無い。例えば、ここ
に述べた通信経路の信号は、他の名称を持つが同じ基本
的な機能を果すものとすることができる。各信号のヒッ
ト幅、アドレス範囲、および他の値は設計に応じて変え
ることができる。任意の数のスレーブモジュールをリン
グに接続することができる。
【0091】本実施例においては、プロセッサが読み出
しアドレスを書きこむレジスタと読み出されたデータが
格納されるレジスタが同一のものである場合を説明した
が、もちろんこれらは物理的・論理的に別個のレジスタ
であってもよいし、論理的に記憶できる手段であれば何
でも良く物理的なレジスタである必要も無い。
【0092】本実施例においてはリング上でのリードト
ランザクションが完了しレジスタに有効な値が格納され
ている状態を有効フラグによって判別しているが、もち
ろんその他どのような手段によって有効・無効の2つの
状態の区別を行っても構わないし、複数のレジスタの状
態をまとめて判別してもよい。
【0093】本実施例ではコマンドトランザクションと
リターントランザクションが交互にマスタモジュールに
到達することを基本としているが、もちろんリード時の
みリターントランザクションが返るようにしても良い
し、またコマンドトランザクションは目的のモジュール
まで到達すればそれ以降リング上で転送されないような
通信手段を選択したとしても本発明が同様に適用できる
ことは言うまでもない。
【0094】本実施例では、システム中に1つのプロセ
ッサが存在する場合を説明したが、もちろん複数のプロ
セッサが存在しても本発明が適用できることは言うまで
もない。
【0095】各モジュールを接続するデータ転送用のシ
ステムバスは1つのバスで各モジュールを接続している
必要はなく、間にバスブリッジを介して階層化されてい
てもよく、また、個別のバスで分離されて接続されてい
てもよい。さらには、接続の形態として、マルチプレッ
クスバス、スター接続、クロスバスイッチ等どのような
形状で接続されていてもかまわない。また、システム内
にマスクが1つしか存在しないような場合、本発明のリ
ング接続をレジスタアクセス用に限らず、システムバス
の代わりとしてすべての通信に利用することも可能であ
る。
【0096】したがって、本発明は示された特宝の形式
に限定されるものではなく、かつ添付の特許請求の範囲
において本発明の精神および範囲から離れることのない
全ての修正をカバーすることを考えていることが理解さ
れるべきである。
【0097】
【発明の効果】以上説明したように、本発明によれば、
LSI内の複数のモジュールをリング状に接続して通信
を行なう場合において、ライトトランザクションと同様
にリードトランザクションもリング上に複数存在させる
ことができ、それによりリードトランザクションの平均
遅延時間を低減し、プロセッサがリードトランザクショ
ンが完了するまでストールする時間を減少させることに
より性能を向上することができる。
【図面の簡単な説明】
【図1】 本発明の実施の一形態の構成を示すブロック
【図2】 本発明の実施の別の一形態の構成を示すブロ
ック図
【図3】 システムバスにより各モジュール間を接続す
る従来例のブロック図
【図4】 データアクセス用のバスとは別にレジスタア
クセス用の専用バスを設ける従来のシステムのブロック
【図5】 データアクセス用のバスとは別にレジスタア
クセス用のリング接続を設ける従来のシステムのブロッ
ク図
【図6】 図5のシステムからレジスタアクセスリング
の部分を抽出した図
【図7】 コマンドトランザクションのシーケンス
【図8】 マスタモジュールから発行されたライトコマ
ンドトランザクションを、通信経路1から受けたスレー
ブモジュール1が、ライトコマンドトランザクションを
通信経路2にフォワードし、リターントランザクション
を通信経路2に発行する際のシーケンス
【図9】 マスタモジュールから発行されたリードコマ
ンドトランザクションを、通信経路1から受けたスレー
ブモジュール1が、リードコマンドトランザクションを
通信経路2にフォワードし、リターントランザクション
を通信経路2に発行する際のシーケンス
【図10】 図1においてマスタモジュール200'に
内蔵されたレジスタを説明する図
【図11】 本発明の一実施例におけるライト時のタイ
ミング例を示す図
【図12】 本発明の一実施例におけるリード時のタイ
ミング例を示す図
【図13】 図2においてマスタモジュール200"に
内蔵されたレジスタを説明する図
【図14】 本発明の別の一実施例におけるリード時の
タイミング例を示す図
【符号の説明】
100 プロセッサ 101 システムバスブリッジ 102 レジスタアクセスされる対象であるスレーブモ
ジュール1 103 レジスタアクセスされる対象であるスレーブモ
ジュール2 104 レジスタアクセスされる対象であるスレーブモ
ジュールn 105 メモリコントローラ 106 システムメモリ 110 LSI内の各モジュールを接続するシステムバ
ス 111 各モジュールをリング状に接続するレジスタア
クセスリング 200、200'、200" レジスタアクセスリングの
マスクとなるマスタモジュール 201、201'、201" レジスタアクセスリングの
スレーブとなるスレーブモジュール1 202、202'、202" レジスタアクセスリングの
スレーブとなるスレーブモジュール2 203、203'、202" レジスタアクセスリングの
スレーブとなるスレーブモジュール 300 マスタモジュール200'に内蔵されるレジス
タ 300' マスタモジュール200"に内蔵されるレジス
タ 310 マスタモジュール200"に内蔵される有効フ
ラグレジスタ 401〜408 マスタモジュール200'に内蔵され
るレジスタ 411〜418 マスタモジュール200'に内蔵され
るレジスタの有効フラグ 501〜508 マスタモジュール200"に内蔵され
るレジスタ 511〜518 マスタモジュール200"に内蔵され
るレジスタの有効フラグ 520 マスタモジュール200"に内蔵される有効フ
ラグレジスタ
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B060 MB04 5B061 FF01 QQ02 RR03 5K031 AA04 CB07 DA02 DB10

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 LSI内において複数のモジュールがリ
    ング状に接続され、 リングに接続するマスクインタフェースを持ちプロセッ
    サからの指令により前記リングにおけるトランザクショ
    ンを起動する1つのマスタモジュールと、 リング上で前に接続されているモジュールからトランザ
    クションを受け取るスレーブインターフェースと次に接
    続されるモジュールヘトランザクションを発行するマス
    タインターフェースとを持つ複数のスレーブモジュール
    とが存在し、 前記マスタモジュールは前記スレーブモジュールに対し
    アクセスを行なうため前記マスタインターフェースから
    コマンドトランザクションを発行する手段を持ち、 前記スレーブモジュールは、前記スレーブインターフェ
    ースから受け取った前記コマンドトランザクションに従
    って処理を行なぅモジュール間通信方法および装置にお
    いて、 前記マスタモジュールは前記プロセッサから前記スレー
    ブモジュールに対する読み出しアドレスの指示を受ける
    手段を備え、 前期読み出しアドレスを指示された結果、前記マスタイ
    ンターフェースより前記指示された読み出しアドレスか
    らデータを読み出すことを指示するコマンドトランザク
    ションを発行し、前記データ読み出しトランザクション
    の結果読み出されたデータを保持するレジスタを具備す
    るとともに、データの読み出しの完了を示すフラグを備
    え、 前記プロセッサは前記スレーブモジュールからデータを
    読み出す場合に、先ず前記マスタモジュールに対し読み
    出しアドレスを書き込みによって指示し、その後前記レ
    ジスタからデータを読み出すことを特徴とするモジュー
    ル間通信方法および装置。
  2. 【請求項2】 前記プロセッサは以前に前記マスタモジ
    ュールに対して指示したデータ読み出しが完了する前
    に、新たなデータ読み出し指示を出すことができること
    を特徴とする請求項1に記載のモジュール間通信方法お
    よび装置。
  3. 【請求項3】 前記プロセッサによる前記マスタモジュ
    ールに対する前記データ読み出し指示は、前記プロセッ
    サが前記マスタモジュールの具備するレジスタに前記読
    み出しアドレス情報を書きこむことによって行われるこ
    とを特徴とする請求項1または2に記載のモジュール間
    通信方法および装置。
  4. 【請求項4】 プロセッサが前記マスタモジュールの具
    備するレジスタからデータを読み出す際に、前記データ
    読み出しの完了を示すフラグがセットされていない場
    合、フラグがセットされるまでレジスタの読み出しを遅
    延させることを特徴とする請求項3に記載のモジュール
    間通信方法および装置。
  5. 【請求項5】 前記データ読み出しの完了を示すフラグ
    は、前記マスタモジュールの具備する前記アドレス情報
    を書きこむレジスタないし別のレジスタを読み出すこと
    によりプロセッサから参照できることを特徴とする請求
    項3に記載のモジュール間通信方法および装置。
  6. 【請求項6】 前記マスタモジュールの具備する前記レ
    ジスタが複数あることを特徴とする請求項1〜5のいず
    れかに記載のモジュール間通信方法および装置。
JP2001386247A 2001-12-19 2001-12-19 モジュール間通信方法および装置 Pending JP2003186822A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001386247A JP2003186822A (ja) 2001-12-19 2001-12-19 モジュール間通信方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001386247A JP2003186822A (ja) 2001-12-19 2001-12-19 モジュール間通信方法および装置

Publications (1)

Publication Number Publication Date
JP2003186822A true JP2003186822A (ja) 2003-07-04

Family

ID=27595446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001386247A Pending JP2003186822A (ja) 2001-12-19 2001-12-19 モジュール間通信方法および装置

Country Status (1)

Country Link
JP (1) JP2003186822A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346669A (ja) * 2004-06-07 2005-12-15 Canon Inc データ転送方法、データ転送装置、プログラム及び記憶媒体
JP2008509499A (ja) * 2004-08-09 2008-03-27 サンディスク コーポレイション リングバス構造とフラッシュメモリシステムにおけるその使用法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346669A (ja) * 2004-06-07 2005-12-15 Canon Inc データ転送方法、データ転送装置、プログラム及び記憶媒体
KR100769612B1 (ko) 2004-06-07 2007-10-23 캐논 가부시끼가이샤 데이터 전송방법 및 데이터 전송장치
JP4697924B2 (ja) * 2004-06-07 2011-06-08 キヤノン株式会社 データ転送方法
JP2008509499A (ja) * 2004-08-09 2008-03-27 サンディスク コーポレイション リングバス構造とフラッシュメモリシステムにおけるその使用法

Similar Documents

Publication Publication Date Title
KR100881049B1 (ko) 복수의 어드레스 2 채널 버스 구조
US6282598B1 (en) PCI bus system wherein target latency information are transmitted along with a retry request
JP2001142842A (ja) Dmaハンドシェークプロトコル
EP2804106A1 (en) Inter-processor communication system
CN114265872B (zh) 一种用于总线的互联装置
JP4313607B2 (ja) バス接続回路及びバス接続システム
JPH05197647A (ja) 入力/出力装置及びデータ転送方法
KR20220103931A (ko) 메모리와 분산된 계산 어레이 간의 데이터 전송
JP2003186822A (ja) モジュール間通信方法および装置
CN114641764A (zh) 总线系统及操作总线系统的方法
JP4603054B2 (ja) スケーラブルバス構造
CN101710310A (zh) 一种amba接口电路
JP2000082019A (ja) データ転送制御装置
JP2000029822A (ja) ブリッジ装置
JP2713204B2 (ja) 情報処理システム
JP2724797B2 (ja) ダイレクト・メモリ・アクセス・システム
JPH08180027A (ja) 調停回路
JP2006107023A (ja) モジュール間通信におけるコマンドシリアライズ方法および装置
JP2006109055A (ja) リング内の任意のモジュール間における通信方法および装置
JP2001282707A (ja) バス制御装置及びバス制御方法
JP2002244990A (ja) バスインタフェースとデータ転送方法
JPH07210498A (ja) バス調停回路
JP2003058489A (ja) 半導体集積回路
JPH01284959A (ja) 共通メモリアクセス方式
JP2005190320A (ja) インタフェース回路