JP2016189096A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2016189096A
JP2016189096A JP2015068587A JP2015068587A JP2016189096A JP 2016189096 A JP2016189096 A JP 2016189096A JP 2015068587 A JP2015068587 A JP 2015068587A JP 2015068587 A JP2015068587 A JP 2015068587A JP 2016189096 A JP2016189096 A JP 2016189096A
Authority
JP
Japan
Prior art keywords
data
bus
read
write
slave
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
JP2015068587A
Other languages
English (en)
Other versions
JP6449702B2 (ja
Inventor
樋口 崇
Takashi Higuchi
崇 樋口
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2015068587A priority Critical patent/JP6449702B2/ja
Priority to US15/008,350 priority patent/US10282343B2/en
Priority to CN201610147495.XA priority patent/CN106021141B/zh
Priority to EP16162723.7A priority patent/EP3076305A1/en
Publication of JP2016189096A publication Critical patent/JP2016189096A/ja
Application granted granted Critical
Publication of JP6449702B2 publication Critical patent/JP6449702B2/ja
Active 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Memory System (AREA)

Abstract

【課題】バス転送装置の転送効率を向上させる。
【解決手段】半導体装置は、最大でnビット幅のリードデータを転送可能なリードデータ転送経路44を含むバス転送装置30を備える。バス転送装置30は、第1および第2のトランザクションにそれぞれ対応する第1および第2のリードデータのビット幅の合計値がnビット以下の場合に、両リードデータを統合したデータRDATAと第1および第2のトランザクション識別情報RID1,RID2とを同時に、リードデータ転送経路44を介して転送可能である。
【選択図】図2

Description

この発明は、半導体装置に関し、たとえば、半導体装置の論理ユニット間でのバス転送に好適に用いられるものである。
英国ARM(登録商標)社が策定しているシステムLSI(Large Scale Integration)向けのオンチップ・バス規格としてAMBA(登録商標)(Advanced Microcontroller Bus Architecture)が知られている。AMBA(登録商標)3.0では、高性能なシステムLSI向けのAXI(Advance eXtensible Interface)プロトコルが追加されている。AXIプロトコルでは、アドレスとデータとを互いに独立して転送可能なスプリットトランザクションが採用されている。
特開2006−331426号公報(特許文献1)は、スプリットトランザクションプロトコルを使用するとともにアウト・オブ・オーダでデータ転送が可能なバス転送装置を開示する。
特開2006−331426号公報
本件の発明者は、従来のバス転送装置の機能検証を行うことによって以下の問題点があることに気付いた。すなわち、従来のバス転送装置の場合、メモリなどに(または、メモリなどから)データをバースト転送する場合には、バス幅全部が使用されてバスの占有率が高い。これに対して、ビット幅の小さなデータは、バス幅全部を使用しない。このようなビット幅の小さな転送データは、バス幅を広げてもデータ転送使用するバス幅は変化しないので、転送効率が上がらない。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施形態による半導体装置は、最大でnビット幅のリードデータを転送可能なリードデータ転送経路を含むバス転送装置を備える。バス転送装置は、第1および第2のトランザクションにそれぞれ対応する第1および第2のリードデータのビット幅の合計値がnビット以下の場合に、両リードデータを統合したデータと第1および第2のトランザクション識別情報とを同時に、リードデータ転送経路を介して転送可能である。
上記の実施形態によれば、バス転送装置の転送効率を向上させることができる。
半導体装置の全体構成を示すブロック図である。 図1のバス転送装置のうちリードアドレス転送およびリードデータ転送に関係する部分の詳細な構成を示すブロック図である。 図2のバス転送装置によるリードデータ転送の具体例を示すタイミング図である。 第2の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。 図4のバス転送装置によるリードデータ転送の具体例を示すタイミング図である。 第3の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。 図6のバス転送装置によるリードデータ転送の具体例を示すタイミング図である。 図1のバス転送装置のうちライトアドレス転送およびライトデータ転送に関係する部分の詳細な構成を示すブロック図である。 図8のバス転送装置によるライトデータ転送の具体例を示すタイミング図である。 第5の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。 図10のバス転送装置によるライトデータ転送の具体例を示すタイミング図である。 第6の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。 図12のバス転送装置によるライトデータ転送の具体例を示すタイミング図である。
以下、各実施形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
<半導体装置の全体構成>
図1は、半導体装置の全体構成を示すブロック図である。図1を参照して、半導体装置は、バスマスタ(M1,M2)10,12と、バススレーブ(S1,S2)20,22と、バスマスタ10,12とバススレーブ20,22とを接続するバス転送装置30とを含む。
たとえば、バスマスタ(M1,M2)10,12の例として、CPU(Central Processing Unit)およびDMA(Direct Memory Access)コントローラなどを挙げることができる。バススレーブ(S1,S2)20,22の例として、周辺I/O(Input/ Output)装置およびメモリ装置などを挙げることができる。周辺I/O装置には、DMAコントローラを内蔵することにより、バスマスタとして機能するものが含まれている場合もある。
バス転送装置30は、アドレスを転送するためのアドレス転送経路40と、リードデータを転送するためのリードデータ転送経路44と、ライトデータを転送するためのライトデータ転送経路46とを含む。リードアドレスRADDRおよびライトアドレスWADDR(各々をアドレスADDRと略記する場合もある)は、バスマスタM1,M2からバススレーブS1,S2の方向へアドレス転送経路40を転送する。リードデータRDATAは、バススレーブS1,S2からバスマスタM1,M2の方向へリードデータ転送経路44を転送する。ライトデータWDATAは、バスマスタM1,M2からバススレーブS1,S2の方向へライトデータ転送経路46を転送する。
バス転送装置30では、1つのトランザクションでのアドレス転送とデータ転送とは独立して実行可能である(すなわち、バス転送装置30は、スプリットトランザクションを採用している)。詳しくは後述するように、スプリットトランザクションを実現するために、リードアドレスRADDR、ライトアドレスWADDR、リードデータRDATA、およびライトデータWDATAには、どのバスマスタが発行したどのトランザクションに対応するものであるかを区別するためにID(識別情報:identification data)が付される。
この明細書では、アドレス転送経路40、リードデータ転送経路44、およびライトデータ転送経路46を、それぞれアドレスバス、リードデータバス、ライトデータバスとも称する。AXIプロトコルでは、従来のAHB(Advanced High-performance Bus)プロトコルに従うアドレスバス、リードデータバス、ライトデータバスと区別するために、アドレスチャネル、リードデータチャネル、ライトデータチャネルという呼び名を用いている。しかしながら、簡単のために、この明細書ではAXIプロトコルに従う場合も「チャネル」ではなく「バス」という用語を用いる。
バス転送装置30は、さらに、リードアドレスRADDR、ライトアドレスWADDR、リードデータRDATA、およびライトデータWDATAの転送を制御するバス制御部32(32A,32B)を含む。図1のようにマスタ側とスレーブ側とを区別する場合は、バス制御部32Aおよびバス制御部32Bのように記載する。以下、各実施形態のバス制御部32の構成および動作について詳しく説明する。
<第1の実施形態>
図2は、図1のバス転送装置のうちリードアドレス転送およびリードデータ転送に関係する部分の詳細な構成を示すブロック図である。図2を参照して、バス制御部32は、アドレスアービタ215と、アドレスデコーダ225と、状態論理回路235と、データアービタ240と、IDデコーダ260と、データバッファ246と、マルチプレクサ210,250,254と、デマルチプレクサ220,230,266とを含む。
[リードアドレスの転送]
まず、リードアドレスの転送について説明する。図2に示すように、バスマスタM1はリードアドレス200を発行し、バスマスタM2はリードアドレス205を発行するものとする。アドレス選択回路(マルチプレクサ)210は、2つの異なるバスマスタM1,M2からそれぞれリードアドレス200,205を受信する。アドレスアービタ215はマルチプレクサ210を制御してアドレスバスの使用を求める複数のリードアドレス間の調停を行う。
さらに、アドレス選択回路210は、受信したリードアドレスごとに、リードアドレスのソース(すなわち、どのバスマスタがどのリードトランザクションを発行したか)を識別するためのID値(ARID)を生成する。アドレス選択回路210は、生成したID値(ARID)をそのID値に対応するリードアドレス(RADDR)に付加し、リードアドレスと共にID値をアドレス転送経路40に出力する。
各リードアドレス(RADDR)およびID値(ARID)は、アドレス転送経路40を通ってアドレス分配回路(デマルチプレクサ)220へ送られる。図2において、リードアドレスに付随したID値であることを強調するために、「ARID」と記載している。同じバスマスタが発行した同じトランザクションであれば、リードアドレスに付随するID値(ARID)とそのリードアドレスに対応するリードデータに付随するID値(RID)とは同じ値である。
アドレス分配回路220は、アドレスデコーダ225からの出力によって制御される。具体的に、アドレスデコーダ225は、リードアドレスRADDRをデコードすることによって、どのバススレーブがリードアドレスに対応する目標バススレーブであるかを決定する。続いて、アドレスデコーダ225はデマルチプレクサ220にスレーブ番号S#を出力する。デマルチプレクサ220は、スレーブ番号S#に従って、リードアドレスおよび対応するID値を、スレーブS1用リードアドレス222またはスレーブS2用リードアドレス224として要求された目標バススレーブへ出力する。
スレーブ番号S#の情報は、対応するID値(ARID)の情報とともにスレーブ番号分配回路(デマルチプレクサ)230にも入力される。スレーブ番号分配回路230は、ID値(ARID)毎に、入力されたスレーブ番号S#を分配する。
状態論理回路235は、概念的には、スレーブ番号S#の情報を格納する先入れ先出し(FIFO)バッファが、ソースID毎に設けられていると考えることができる。デマルチプレクサ230は、受信したID値(ARID)に基づいて、アドレスデコーダ225から受信したスレーブ番号S#を状態論理回路235の適切なFIFOバッファに送る。このスレーブ番号S#の情報は、データアービタ240によって調停結果として選択されるまで、状態論理回路235内に保持される。
実際上は、状態論理回路235は、ID値毎に個別に設けられた複数のFIFOバッファとして構成される必要はない。状態論理回路235は、複数のリードデータの入力が同じID値を有する場合に、リードアドレス出力の順番に対応付けられるように(すなわち、同じID値を有するアドレスに対応するリードデータはアドレスが発行されたのと同じ順序で戻すことができるように)構成されていればよい。
[データアービタによる調停について]
データアービタ240は、状態論理回路235を参照することによってリードデータバス44を介して転送すべきリードデータを順次選択する。データアービタ240による正当な調停対象となるのは、各FIFOバッファの先頭のスレーブ番号S#である。すなわち、各ID値に対して1つのスレーブ番号S#のみが正当な調停対象となる。同じID値を有するリードデータは対応するアドレスが発行されたのと同じ順序で戻さなければならないという制約があるからである。
したがって、状態論理回路235内に1つの正当な調停対象しかない場合、データアービタ240は、その正当な調停対象に対応するスレーブ番号S#をFIFOバッファから取り出して、対応するID値(ARID)とともにデータ選択回路(マルチプレクサ)250,254およびデータバッファ246に通知する。複数の正当な調停対象がある場合、データアービタ240は、予め定められた調停指針(優先順位)に従って次にデータ転送すべきリードデータの出力元となるスレーブの番号S#を決定し、決定したスレーブ番号S#をFIFOバッファから取り出して、対応するID値(ARID)とともにデータ選択回路(マルチプレクサ)250,254およびデータバッファ246に通知する。データアービタ240はマスタ、スレーブ、ID値、またはそれらの任意の組合せに基づいて複数の正当な調停対象の間の優先順位付けを行うことができる。
[リードデータの転送]
次に、リードデータの転送について説明する。図2に示すリードデータ転送経路44は、最大ビット幅nビットのデータを転送可能である。さらに、リードデータ転送経路44は、リードデータと同時に、リードデータRDATAを識別するためのID値を複数転送可能である(図2では2個のID値(RID1,RID2)を転送可能である)。たとえば、mビットのビットサイズのID値を2個転送可能な場合、リードデータ転送経路44に必要な信号線の本数は、n+2×mとなる。
以下では、バススレーブS1から読み出されたリードデータ242は、n/2ビット以下のデータ幅を有するとする(リードデータ242のデータ幅が可変の場合には、データ幅がnビットに等しくなる場合もあり得る)。バススレーブS2から読み出されたリードデータ244は、nビットのデータ幅であるとする。バーストモードの場合には、バススレーブS2からデータ幅nビットのデータが複数回繰り返して出力される。さらに、バススレーブS1,S2は、リードデータ以外にID値などの付随情報も出力する。
具体的に、バススレーブS1は、リードデータ242と、リードデータ242に対応するID値(RID)と、リードデータ転送経路44を構成するnビットのデータ線の中でリードデータが占める位置情報とを出力する。たとえば、データ線のビット数nを128ビットとし、バススレーブS1が出力するデータのビット幅を32ビット(固定)とすると、位置情報は、第1〜32ビット、第33〜64ビット、第65〜96ビット、第97〜第128ビットの4通りある。バススレーブS1は、リードデータが格納されているリードアドレスに対応付けて、リードデータが使用する位置情報を自動的に決定することができる。バススレーブS1が出力するリードデータ242のデータ幅が可変の場合には、バススレーブS1からデータサイズの情報がさらに出力される。
バススレーブS2は、リードデータ244と、リードデータ244に対応するID値(RID)とを出力する。バススレーブS2が出力するデータ幅はnビットであり、リードデータ転送経路44のデータ線のビット数に一致しているので、位置情報は必要でない。
データアービタ240は、データ選択回路(マルチプレクサ)250,254およびデータバッファ246に、調停結果としてのスレーブ番号S#および対応するID値(ARID)を通知する。
データバッファ246は、スレーブS1から出力されたリードデータ242および関連する付随情報(ID値、リードデータバス幅内でのデータの位置情報)を一時的に保持するために用いられる。具体的に、データバッファ246は、スレーブS1から出力されたリードデータ242をリードデータ転送経路44に転送できない場合(すなわち、リードデータ転送経路44が他のスレーブによって使用中のとき)であり、かつ、リードデータ242のデータ幅がnビットよりも小さいときに用いられる。
データ選択回路(マルチプレクサ)250は、データアービタ240の調停結果に従って、スレーブS1から出力されたリードデータ242と、データバッファ246に保持されたリードデータとのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。2つのリードデータを同時出力する条件については後述する。マルチプレクサ(データ選択回路250)は、リードデータを出力する場合は対応するID値(RID)とともに出力する。したがって、スレーブS1から出力されたリードデータ244とデータバッファ246に保持されたリードデータとの両方同時に出力する場合には、それぞれに対応する2個のID値(RID1,RID2)も出力される。
データ選択回路(マルチプレクサ)254は、データアービタ240から通知された調停結果(スレーブ番号S#、ID値(ARID))に従って、マルチプレクサ(データ選択回路)250の出力結果と(スレーブS1の番号が通知された場合)、バススレーブS2のリードデータ264とのいずれか一方を選択する。マルチプレクサ(データ選択回路)254は、選択したリードデータとそのリードデータに対応するID値とをリードデータ転送経路44に出力する。
リードデータ転送経路44を介して転送されたID値(RID1,RID2)は、IDデコーダ260に入力され、リードデータ転送経路44を介して転送されたリードデータRDATAはデータ分配回路(デマルチプレクサ)266に入力される。
IDデコーダ260は、リードデータ転送経路44を介して転送されたID値(RID1,RID2)をデコードすることによって、ID値が示しているマスタ番号M#の情報を取り出す。図2の場合には、IDデコーダ260は、ID値(ARID)とマスタ番号M#との対応関係を予め取得することによって、ID値のデコードを容易に行うことができる。IDデコーダ260は、ID値によって示されているマスタ番号M#の情報をデータ分配回路(デマルチプレクサ)266に通知する。
データ分配回路(デマルチプレクサ)266は、IDデコーダ260から通知されたマスタ番号M#に従って、リードデータ転送経路44を介して受信したリードデータRDATAを、バスマスタM1のリードデータ262またはバスマスタM2のリードデータ264として分配する。ここで、スレーブS1から出力されたリードデータ244とデータバッファ246に保持されたリードデータとが両方同時に出力された場合には、デマルチプレクサ266は、ID値(RID1,RID2)に対応するマスタ番号M#に従って、各リードデータをID値の発行元であるマスタに出力する。
[2つのリードデータを同時出力可能な条件]
以下、データ選択回路250から2つのリードデータを同時出力可能な条件について説明する。データ選択回路250は、スレーブS1から出力されたリードデータ242のID値およびデータ位置情報に基づいて(データサイズが可変の場合は、さらに、データサイズ情報にも基づく)、以下の条件が全て満たされた場合に、データバッファ246に保持されているリードデータと、スレーブS1から出力されたリードデータとが242とが同時に出力可能と判定する。
(条件R1) データバッファ246に保持されているリードデータのID値は、データアービタ240が調停結果として示した第1の優先順位のID値に一致し、スレーブS1から出力されたリードデータ242のID値は第2の優先順位のID値に一致している。すなわち、前回の調停結果としてデータアービタ240は現在データバッファ246に保持されているリードデータの出力を指示し、今回の調停結果としてデータアービタ240は、スレーブS1からリードデータ242の出力を指示している場合である。
(条件R2) データバッファ246に保持されているリードデータの転送先のマスタと、スレーブ1から出力されるリードデータ242の転送先のマスタとが異なる。転送先のマスタ(すなわち、トランザクションの発行元のマスタ)の情報は、ID値(RID)が保持している。
(条件R3) スレーブS1から出力されたリードデータ242が使用する転送経路44上でのデータ位置と、データバッファ246に保持されたリードデータが使用する転送経路44上でのデータ位置とが重ならない。
[リードデータ転送の具体例]
図3は、図2のバス転送装置30によるリードデータ転送の具体例を示すタイミング図である。図3では上から順に、アドレスバスを転送中のリードアドレス、スレーブS1から出力されるリードデータ、データバッファ246の出力データ、リードデータバスを転送中のリードデータ、マスタM1の入力データ、およびマスタM2の入力データを示す。図3の横軸は時間を表し、クロック信号の第1周期CYC1から第6周期CYC6までの6つの区間に区分されている。実際には、各周期の最初のほうでは信号は変化しており確定していないが、図3では煩雑さを避けるために信号は確定しているかのように記載している。この明細書の他のタイミング図においても同様である。
図2および図3を参照して、第1周期CYC1において、マスタM1はスレーブS2に対して、先頭アドレスADDR Aから始まるデータ群のバースト転送命令を発行する。アドレス選択回路210は、マスタM1およびトランザクションを識別するためのID値(ARID=“1”)を生成する。先頭アドレスADDR Aの情報はID値とともにアドレス転送経路40を介してスレーブS2に転送される。アドレスADDR Aをデコードすることによって得られたスレーブ番号“2”と、ID値“1”の情報とは、データアービタ240に通知される。続く周期CYC2,CYC3において、データアービタ240の制御に従って、データ幅128ビットのデータがスレーブS2からリードデータ転送経路44を通ってマスタM1に転送される。
第2周期CYC2において、マスタM1はスレーブS1に対して、アドレスADDR Bに格納されたデータの転送命令(シングルアクセス)を発行する。アドレス選択回路210は、マスタM1およびトランザクションを識別するためのID値(ARID=“2”)を生成する。アドレスADDR Bの情報はID値とともにアドレス転送経路40を介してスレーブS1に転送される。アドレスADDR Bをデコードすることによって得られたスレーブ番号“1”と、ID値“2”の情報とは、データアービタ240に通知される。次の周期CYC3では、データ選択回路254によってスレーブS2のリードデータ244が選択中である。さらに、データバッファ246にはリードデータは保持されておらず、スレーブS1から出力されたリードデータRDATA Bのデータ幅(32ビット)は、リードデータ転送経路44のデータ幅であるn=128ビットよりも小さい。この結果、次の第3周期CYC3において、スレーブS1から出力されたリードデータRDATA Bと関連する付随情報(ID値“2”など)は、データバッファ246に保持される。
さらに、第3周期CYC3において、マスタM2はスレーブS1に対して、アドレスADDR Cに格納されたデータの転送命令(シングルアクセス)を発行する。アドレス選択回路210は、マスタM2およびトランザクションを識別するためのID値(ARID=“3”)を生成する。アドレスADDR Cの情報はID値とともにアドレス転送経路40を介してスレーブS1に転送される。アドレスADDR Cをデコードすることによって得られたスレーブ番号“1”と、ID値“3”の情報とは、データアービタ240に通知される。
次の周期CYC4では、スレーブS1からリードデータRDATA Cおよび関連する付随情報(ID値“3”など)が出力される。さらに、データバッファ246からリードデータRDATA Bおよび関連する付随情報(ID値“2”など)が出力される。ここで、リードデータRDATA Bのビット位置は第1〜第32ビットとし、リードデータRDATA Cのビット位置は第33〜第64ビットとし、両者は重なっていないとする。したがって、データ選択回路250は、スレーブS1から出力されたリードデータRDATA Cと、データバッファ246から出力されたリードデータRDATA Bとを統合して出力可能と判断し、データ選択回路254に通知する。データ選択回路254は、統合された64ビットのデータ幅のリードデータ(RDATA B,RDATA C)と、リードデータRDATA Bに対応するID値“2”と、リードデータRDATA Cに対応するID値“3”とを、リードデータ転送経路44に出力する。ID値“2”およびID値“3”は、IDデコーダ260に転送される。IDデコーダ260は、ID値“2”およびID値“3”にそれぞれ対応するマスタ番号M#をデータ分配回路266に通知する。データ分配回路266は、通知されたマスタ番号M#に従って、マスタM1にリードデータ(RDATA B)262を入力するとともに、マスタM2にリードデータ(RDATA C)264を入力する。
さらに、第4周期CYC4において、マスタM1はスレーブS2に対して、先頭アドレスADDR Dから始まるデータ群のバースト転送命令を発行する。アドレス選択回路210は、マスタM1およびトランザクションを識別するためのID値(ARID=“1”)を生成する。先頭アドレスADDR Dの情報はID値とともにアドレス転送経路40を介してスレーブS2に転送される。アドレスADDR Dをデコードすることによって得られたスレーブ番号“2”と、ID値“1”の情報とは、データアービタ240に通知される。次の周期CYC5,CYC6において、データアービタ240の制御に従って、データ幅128ビットのデータがスレーブS2からリードデータ転送経路44を通ってマスタM1に転送される。
[第1の実施形態の効果]
上述したバス転送装置30によれば、バス幅nビットのリードデータバス上に、バス幅よりもデータ幅の合計が小さい2つのリードデータを載せて転送することが可能である。この場合、2つのリードデータにそれぞれ対応する2個のトランザクションID値も同時に転送される。この結果、最大バス幅未満のデータの転送速度を向上させることができ、これにより、バスマスタからバススレーブへのリードアクセス時の応答速度を上げることができる。
[変形例]
図2では、2つのバスマスタ、2つのバススレーブ、および状態論理回路235内の3つの可能なID値があるように描かれている。しかしながら、このような構成に限定されることなく、さらに多数のバスマスタ、多数のバススレーブ、および多数のID値についても上記の技術を適用することができる。
さらに、上記の例では、2個のリードデータを統合して転送する場合を示したが、リードデータ転送経路のバス幅nを超えない限り、さらに多くの個数のリードデータを統合して転送することも原理的には可能である。この場合、統合するデータ数に応じたデータバッファが必要になるとともに、統合するリードデータにそれぞれ対応するID値を同時に転送する必要がある。
<第2の実施形態>
第1の実施形態では、異なるバスマスタがそれぞれ転送先となっている複数のリードデータを統合してバス転送する場合について説明した。第2の実施形態では、同一のバスマスタが転送先となっている複数のリードデータを統合してバス転送する場合について説明する。この場合、前述の条件R2は不要になり、データ選択回路250は、条件R1と条件R3とが満たされている場合に、データバッファ246に保持されているリードデータと、スレーブS1から出力されたリードデータとが242とを同時に出力可能と判定する。以下、図面を参照して詳しく説明する。
[バス転送装置の構成]
図4は、第2の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。図4では、図2のバス転送装置のうちリードデータバスに関係する部分のみを示している。アドレスバスに関係する部分の構成は図2の場合と同じである。図4に示すように、バス転送装置30のバス制御部32Aは、データバッファ268,270と、マルチプレクサ(データ選択回路)272,274とをさらに含む点で図2の場合と異なる。図4のその他の点は図2の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。
第2の実施形態で特徴的な点は、同一のバスマスタが転送先となっている2つのリードデータを統合可能になっている点である(前述の条件R2が不要)。この場合、優先順位の高いほうのリードデータは転送先のバスマスタにすぐに入力されるが、優先順位の低いほうのリードデータはデータバッファ268または270に一旦保持される。優先順位の低いほうのリードデータは、優先順位の高いほうのリードデータの入力後に、データバッファから転送先のバスマスタに入力される。このように、2個のリードデータは、データアービタ240によって決定された優先順位の順番で同一のバスマスタに入力される。
具体的に、データ選択回路250は、前述の条件R1と条件R3との両方が満たされている場合に(条件R2は不要)、データバッファ246に保持されているリードデータとスレーブS1から出力されたリードデータ242とを統合する。リードデータ転送経路44には、統合されたリードデータRDATAと、対応する2個のID値(RID1,RID2)とが同時に出力される。ここで、2個のID値(RID2,RID2)は、同一のバスマスタを示しているとする。
IDデコーダ260は、リードデータ転送経路44を介して転送された2個のID値(RID1,RID2)が示している転送先のバスマスタが同一の場合には、データバッファ268,270のうち該当するマスタに対応するデータバッファに対して、データが同時転送されていることを通知する。データ分配回路266は、IDデコーダ260の制御に従って、転送された統合リードデータのうちデータバッファ246に保持されていたリードデータに対応する部分を該当するマスタに入力するとともに、残りの部分を対応するデータバッファ268または270に格納させる。すなわち、先にスレーブS1から出力されたリードデータが該当するマスタに入力され、後からスレーブS1から出力されたリードデータが対応するデータバッファに入力される。次の周期において、データバッファ268または270に格納されたリードデータは、該当するマスタに取り込まれる。
[リードデータ転送の具体例]
図5は、図4のバス転送装置30によるリードデータ転送の具体例を示すタイミング図である。図5では上から順に、アドレスバスを転送中のリードアドレス、スレーブS1から出力されるリードデータ、データバッファ246の出力データ、リードデータバスを転送中のリードデータ、データバッファ268の出力データ、およびマスタM1の入力データを示す。図5の横軸は時間を表し、クロック信号の第1周期CYC1から第6周期CYC6までの6つの区間に区分されている。
図4および図5を参照して、図5の第1周期CYC1〜第3周期CYC2までは、第1の実施形態の図3の場合とほぼ同じである。異なる点は、第3周期においてスレーブS1に対してアドレスADDR Cに格納されたデータの転送命令(シングルアクセス)を発行するマスタの番号である。
具体的に、図3では、マスタM2がスレーブS1に対してアドレスADDR Cに格納されたデータの転送命令を発行するのに対して、図5では、マスタM1がスレーブS1に対してアドレスADDR Cに格納されたデータの転送命令を発行する。すなわち、第2周期CYC2において発行されたリードアドレスADDR Bと第3周期CYC3で発行されたリードアドレスADDR Cとは、同一のマスタM1から発行された異なるトランザクションB(それぞれID値“2”とID値“3”)に対応する。
次の周期CYC4では、スレーブS1からリードデータRDATA Cおよび関連する付随情報(ID値“3”など)が出力される。さらに、データバッファ246からリードデータRDATA Bおよび関連する付随情報(ID値“2”など)が出力される。ここで、リードデータRDATA Bのビット位置は第1〜第32ビットとし、リードデータRDATA Cのビット位置は第33〜第64ビットとし、両者は重なっていないとする。したがって、データ選択回路250は、スレーブS1から出力されたリードデータRDATA Cと、データバッファ246から出力されたリードデータRDATA Bとを統合して出力可能と判断し、データ選択回路254に通知する。データ選択回路254は、統合された64ビットのデータ幅のリードデータ(RDATA B,RDATA C)と、リードデータRDATA Bに対応するID値“2”と、リードデータRDATA Cに対応するID値“3”とを、リードデータ転送経路44に出力する。
2個のID値“2”および“3”は、IDデコーダ260に転送される。IDデコーダ260は、転送された2個のID値をデコードすることによって、ID値“2”に対応するマスタ番号“1”とID値“3”に対応するマスタ番号“1”とが同一であることを検知する。IDデコーダ260は、マスタM1を宛先とする2個のリードデータが同時転送されているという情報を、データ分配回路266およびデータバッファ268に通知する。データ分配回路266は、IDデコーダ260の制御に従って、転送されたリードデータの一部であるデータバッファ246に保持されていたリードデータRDATA Bを該当するマスタM1に入力するとともに、残りの部分であるリードデータRDATA Cをデータバッファ268に格納させる。次の周期CYC5において、データバッファ268に格納されていたリードデータRDATA Cは、マスタM1に取り込まれる。
第4周期CYC4では、さらに、マスタM2はスレーブS2に対して、先頭アドレスADDR Dから始まるデータ群のバースト転送命令を発行する。アドレス選択回路210は、マスタM2およびトランザクションを識別するためのID値(ARID=“4”)を生成する。先頭アドレスADDR Dの情報はID値とともにアドレス転送経路40を介してスレーブS2に転送される。アドレスADDR Dをデコードすることによって得られたスレーブ番号“2”と、ID値“4”の情報とは、データアービタ240に通知される。次の周期CYC5,CYC6において、データアービタ240の制御に従って、データ幅128ビットのデータがスレーブS2からリードデータ転送経路44を通ってマスタM2に転送される。
[第2の実施形態の効果]
上記の構成のバス転送装置によれば、同一のバスマスタが宛先となっている複数のリードデータが同時転送可能になるので、最大バス幅未満のリードデータの転送速度をさらに向上させることができる。これにより、バスマスタからバススレーブへのリードアクセス時の応答速度を上げることができる。
<第3の実施形態>
第1の実施形態では、同一スレーブから出力されたバス幅未満の合計データサイズの複数のリードデータを同時転送するためのバス転送装置について説明した。第3の実施形態では、異なるスレーブから出力されたバス幅未満の合計データサイズの複数のリードデータを同時転送するためのバス転送装置の構成を開示する。
[バス転送装置の構成]
図6は、第3の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。図6では、図2のバス転送装置のうちリードデータバスに関係する部分のみを示している。アドレスバスに関係する部分の構成は図2の場合と同じである。
第3の実施形態の場合、バススレーブS2から読み出されたリードデータ244は、n/2ビット以下のデータ幅を有する(データサイズを可変としているので、nビットに等しい場合もある)。バススレーブS2は、リードデータ244と、データサイズと、リードデータ244に対応するID値(RID)と、リードデータ転送経路44を構成するnビットのデータ線の中でリードデータが占める位置情報とを出力する。バススレーブS2は、リードデータが格納されているリードアドレスに対応付けて、リードデータが使用する位置情報を自動的に決定する。
さらに、図6のバス転送装置30のバス制御部32Bは、データバッファ248と、マルチプレクサ(データ選択回路)252とをさらに含む点で図2のバス転送装置と異なる。データアービタ240の調停結果は、データバッファ246,248およびマルチプレクサ(データ選択回路)250,252,254に通知される。
データバッファ248は、スレーブS2から出力されたリードデータ244および関連する付随情報(ID値、データサイズ、リードデータバス幅内でのデータの位置情報)を一時的に保持するために用いられる。具体的に、データバッファ248は、スレーブS2から出力されたリードデータ244をリードデータ転送経路44に転送できないとき(リードデータ転送経路44が他のスレーブによって使用中のとき)であり、かつ、リードデータ244のデータ幅がnビットよりも小さいときに用いられる。
データ選択回路250は、データアービタ240から通知された調停結果に基づいて、スレーブS1から出力されたリードデータ242と、データバッファ246に保持されたリードデータとのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。さらに、データ選択回路250は、データバッファ246に格納されたリードデータと、スレーブS1から出力されたリードデータ242とが統合できない場合に、データ選択回路254に対してデータバッファ246に格納されたリードデータのID値、データサイズ、データ位置の情報を通知する。
データ選択回路252は、データアービタ240から通知された調停結果に基づいて、スレーブS2から出力されたリードデータ244と、データバッファ248に保持されたリードデータとのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。さらに、データ選択回路252は、データバッファ248に格納されたリードデータと、スレーブS2から出力されたリードデータ244とが統合できない場合に、データ選択回路254に対してデータバッファ248に格納されたリードデータのID値、データサイズ、データ位置の情報を通知する。
データ選択回路254は、データアービタ240から通知された調停結果に基づいて、データ選択回路250の出力結果とデータ選択回路252の出力結果とのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。データ選択回路254は、データバッファ246,248に格納されたリードデータの情報をデータ選択回路250,252からそれぞれ受けた場合において、これらのリードデータが統合可能な場合にはこれらのリードデータを統合して出力する。データ選択回路254は、以下の条件R4および条件R5が満たされた場合に、データ選択回路250,252の両方の出力結果を同時に出力可能と判定する。
(条件R4) データ選択回路250によって選択されたリードデータのID値とデータ選択回路252によって選択されたリードデータのID値とは、一方がデータアービタ240によって調停結果として示された第1の優先順位のID値に一致し、他方が第2の優先順位のID値に一致している。すなわち、前回の調停結果としてデータアービタ240が一方のID値を指示し、今回の調停結果としてデータアービタ240が他方のID値を指示している。
(条件R5)データ選択回路250によって選択されたリードデータの転送先のマスタと、データ選択回路252によって選択されたリードデータの転送先のマスタとが異なる。
(条件R6) データ選択回路250によって選択されたリードデータが使用する転送経路44上でのデータ位置と、データ選択回路252によって選択されたリードデータが使用する転送経路44上でのデータ位置とが重ならない。
図6のその他の点は図2の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。
[リードデータ転送の具体例]
図7は、図6のバス転送装置30によるリードデータ転送の具体例を示すタイミング図である。図7では上から順に、アドレスバスを転送中のリードアドレス、スレーブS1から出力されるリードデータ、スレーブS2から出力されるリードデータ、リードデータバスを転送中のリードデータ、マスタM1の入力データ、およびマスタM2の入力データを示す。図7の横軸は時間を表し、クロック信号の第1周期CYC1から第6周期CYC6までの6つの区間に区分されている。
図6および図7を参照して、第1周期CYC1において、マスタM1はスレーブS2に対して、先頭アドレスADDR Aから始まるデータ群のバースト転送命令を発行する。アドレス選択回路210は、マスタM1およびトランザクションを識別するためのID値(ARID=“1”)を生成する。先頭アドレスADDR Aの情報はID値とともにアドレス転送経路40を介してスレーブS2に転送される。アドレスADDR Aをデコードすることによって得られたスレーブ番号“2”と、ID値“1”の情報とは、データアービタ240に通知される。続く周期CYC2,CYC3において、データアービタ240の制御に従って、データ幅128ビットのデータがスレーブS2からリードデータ転送経路44を通ってマスタM1に転送される。
第2周期CYC2において、マスタM1はスレーブS2に対して、アドレスADDR Bに格納されたデータの転送命令(シングルアクセス)を発行する。アドレス選択回路210は、マスタM1およびトランザクションを識別するためのID値(ARID=“2”)を生成する。アドレスADDR Bの情報はID値とともにアドレス転送経路40を介してスレーブS2に転送される。アドレスADDR Bをデコードすることによって得られたスレーブ番号“2”と、ID値“2”の情報とは、データアービタ240に通知される。次の周期CYC3では、まだスレーブS2のリードデータ244が転送中である。したがって、アドレスADDR Bに対応するリードデータRDATA Bおよび関連する付随情報(ID値“2”など)は第4周期CYC4において、スレーブS2から出力される。
第3周期CYC3において、マスタM2はスレーブS1に対して、アドレスADDR Cに格納されたデータの転送命令(シングルアクセス)を発行する。アドレス選択回路210は、マスタM2およびトランザクションを識別するためのID値(ARID=“3”)を生成する。アドレスADDR Cの情報はID値とともにアドレス転送経路40を介してスレーブS1に転送される。アドレスADDR Cをデコードすることによって得られたスレーブ番号“1”と、ID値“3”の情報とは、データアービタ240に通知される。
次の周期CYC4において、スレーブS1からリードデータRDATA Cおよび関連する付随情報(ID値“3”など)が出力される。これらのデータは、データ選択回路250によって選択された結果、データ選択回路254に入力される。さらに、スレーブS2からリードデータRDATA Bおよび関連する付随情報(ID値“2”など)が出力される。これらのデータは、データ選択回路252によって選択された結果、データ選択回路254に入力される。ここで、リードデータ転送経路44上でのリードデータRDATA Bのビット位置とリードデータRDATA Cのビット位置とは重なっていないとする。
データ選択回路254は、データ選択回路250によって選択されたリードデータRDATA Cと、データ選択回路252によって選択されたリードデータRDATA Bとは統合して同時に出力可能と判断する。そしてデータ選択回路254は、統合したリードデータと、それに対応するID値“2”およびID値“3”とを、リードデータ転送経路44に出力する。ID値“2”およびID値“3”は、IDデコーダ260に転送される。IDデコーダ260は、ID値“2”およびID値“3”にそれぞれ対応するマスタ番号M#をデータ分配回路266に通知する。データ分配回路266は、通知されたマスタ番号M#に従って、マスタM1にリードデータ(RDATA B)262を入力するとともに、マスタM2にリードデータ(RDATA C)264を入力する。
第4周期CYC4では、さらに、マスタM1はスレーブS2に対して、先頭アドレスADDR Dから始まるデータ群のバースト転送命令を発行する。アドレス選択回路210は、マスタM1およびトランザクションを識別するためのID値(ARID=“1”)を生成する。先頭アドレスADDR Dの情報はID値とともにアドレス転送経路40を介してスレーブS2に転送される。アドレスADDR Dをデコードすることによって得られたスレーブ番号“2”と、ID値“1”の情報とは、データアービタ240に通知される。次の周期CYC5,CYC6において、データアービタ240の制御に従って、データ幅128ビットのデータがスレーブS2からリードデータ転送経路44を通ってマスタM1に転送される。
[第3の実施形態の効果]
上記の構成のバス転送装置によれば、異なるバススレーブから出力されたリードデータを異なるバスマスタに同時転送可能になるので、最大バス幅未満のデータサイズを有するリードデータの転送能力をさらに向上させることができる。これにより、バスマスタからバススレーブへのリードアクセス時の応答速度を上げることができる。さらに、第3の実施形態は第2の実施形態と組み合わせることができる。この場合、異なるバススレーブから出力された同一のバスマスタを宛先する2個のリードデータは、同時にリードデータバスを転送することができる。
<第4の実施形態>
図8は、図1のバス転送装置のうちライトアドレス転送およびライトデータ転送に関係する部分の詳細な構成を示すブロック図である。図8を参照して、バス制御部32は、アドレスアービタ315と、アドレスデコーダ325と、状態論理回路335と、データアービタ340と、IDデコーダ360と、データバッファ346と、マルチプレクサ310,350,354と、デマルチプレクサ320,330,366とを含む。
[ライトアドレスの転送]
まず、ライトアドレスの転送について説明する。図8に示すように、バスマスタM1は、ライトアドレス300とID値(AWID)とをアドレス転送経路40に対して出力するとともに、ライトデータ342とID値(WID)とをライトデータ転送経路46に対して出力する。同様に、バスマスタM2は、ライトアドレス305とID値(AWID)とをアドレス転送経路40に対して出力するとともに、ライトデータ344とID値(WID)とをライトデータ転送経路46に対して出力する。ID値は、どのバスマスタがどのライトトランザクションを発行したかを識別するための識別情報である。図8において、ライトアドレスに付随したID値であることを強調するために、「AWID」と記載している。同じトランザクションであれば、ライトアドレスに付随するID値(AWID)とライトデータに付随するID値(WID)とは同じ値である。
なお、バスマスタM1,M2でなく、バス転送装置30の制御部32AがID値を生成し、生成したID値とともにライトアドレスおよびライトデータをバスレーブに転送するように構成してもよい。たとえば、図8においてアドレス選択回路(マルチプレクサ)310が各バスマスタM1,M2からの出力順に従ってライトアドレスにID値(AWID)を付加し、データ選択回路(マルチプレクサ)354が各バスマスタM1,M2からの出力順に従ってライトデータにID値(WID)を付加するようにしてもよい。このように出力順にID値を付加することによって、ライトアドレスとそれに対応するライトデータとに同一のID値を付加することができる。
アドレス選択回路(マルチプレクサ)310は、2つの異なるバスマスタM1,M2からそれぞれライトアドレス300,305を受信する。アドレスアービタ315はマルチプレクサ310を制御してアドレスバスの使用を求める複数のライトアドレス間の調停を行う。このとき、アドレスアービタ315は、アドレス転送経路40へのアクセスを許可しているバスマスタを表わすマスタ番号M#を発行する。発行したマスタ番号M#は、マスタ番号分配回路(デマルチプレクサ)330に出力される。
各ライトアドレス(WADDR)およびID値(AWID)は、アドレス転送経路40を介して、アドレス選択回路(マルチプレクサ)310からアドレス分配回路(デマルチプレクサ)320へ送られる。アドレス分配回路320は、アドレスデコーダ325からの出力によって制御される。具体的に、アドレスデコーダ325は、ライトアドレスWADDRをデコードすることによって、目標のバススレーブであることを表すスレーブ番号S#を決定し、決定したスレーブ番号S#をデマルチプレクサ320に出力する。アドレス分配回路320は、スレーブ番号S#に従って、ライトアドレスおよび対応するID値を、スレーブS1用ライトアドレス322またはスレーブS2用ライトアドレス324として要求された目標バススレーブへ出力する。スレーブ番号S#は、さらに、マスタ番号分配回路(デマルチプレクサ)330に通知される。
状態論理回路335は、概念的には、マスタ番号M#の情報を格納するFIFOバッファが、スレーブ番号ごとに設けられていると考えることができる。デマルチプレクサ330は、アドレスデコーダ325から通知されたスレーブ番号S#に基づいて、アドレスアービタ315から受信したマスタ番号M#を状態論理回路335の適切なFIFOバッファに送る。状態論理回路335内のマスタ番号M#の情報は、データアービタ340によって調停結果として選択されるまで、状態論理回路335内に保持される。
[データアービタによる調停について]
データアービタ340は、状態論理回路335を参照することによってライトデータバス46を介して転送すべきライトデータを順次選択する各FIFOバッファに最も先に入力されたマスタ番号M#が調停の対象になるので、同じスレーブ番号S#(転送先のバススレーブ)に対しては、1つの正当な調停対象しかない。複数のFIFOバッファの各々がその中にマスタ番号M#を格納しておれば、データアービタ340に複数の正当な調停対象(複数のマスタ番号M#)が提示される。
したがって、状態論理回路335内に1つの正当な調停対象しかない場合、データアービタ340は、その正当な調停対象のマスタ番号M#を、FIFOバッファから取り出して、対応するスレーブ番号S#とともにデータ選択回路(マルチプレクサ)350,354およびデータバッファ346に通知する。複数の正当な調停対象がある場合、データアービタ340は、予め定められた調停指針(所定の優先順位)に従って次にデータ転送すべきライトデータの出力元となるマスタ番号M#を決定する。データアービタ340は、決定したマスタ番号M#を対応のFIFOバッファから取り出して、対応するスレーブ番号S#とともにデータ選択回路(マルチプレクサ)350,354およびデータバッファ346に通知する。データアービタ340はマスタ、スレーブ、ID値、またはそれらの任意の組合せに基づいて複数の正当な調停対象の間の優先順位付けを行うことができる。
[ライトデータの転送]
次に、ライトデータの転送について説明する。図8に示すライトデータ転送経路46は、最大ビット幅nビットのデータを転送可能である。さらに、ライトデータ転送経路46は、ライトデータと同時に、ライトデータWDATAを識別するためのID値を複数転送可能である(図8では2個のID値(WID1,WID2)を転送可能である)。たとえば、mビットのビットサイズのID値を2個転送可能な場合、ライトデータ転送経路46に必要な信号線の本数は、n+2×mとなる。
以下では、バスマスタM1から出力されたライトデータ342は、n/2ビット以下のデータ幅を有するとする(ライトデータ342のデータ幅が可変の場合には、データ幅がnビットに等しくなる場合もあり得る)。バスマスタM2から出力されたライトデータ344は、nビットのデータ幅であるとする。バーストモードの場合には、バスマスタM2からデータ幅nビットのデータが複数回繰り返して出力される。さらに、バスマスタM1,M2は、ライトデータ以外にID値などの付随情報も出力する。
具体的に、バスマスタM1は、ライトデータ342と、ライトデータ342に対応するID値(WID)と、ライトデータ転送経路46を構成するnビットのデータ線幅の中でライトデータが占める位置情報とを出力する。バスマスタM1は、ライトデータに対応するライトアドレスに基づいて、ライトデータが使用する位置情報を自動的に決定することができる。バスマスタM1が出力するライトデータ342のデータ幅が可変の場合には、バスマスタM1からデータサイズの情報がさらに出力される。
バスマスタM2は、ライトデータ344と、ライトデータ344に対応するID値(WID)とを出力する。データアービタ340は、マルチプレクサ(データ選択回路)350,354およびデータバッファ346に、調停結果としてのマスタ番号M#および対応するスレーブ番号S#を通知する。
データバッファ346は、マスタM1から出力されたライトデータ342をライトデータ転送経路46に転送できないときで、ライトデータ342のデータ幅がnビットよりも小さいときに、ライトデータ342および関連する付随情報(ID値、ライトデータバス幅内でのデータの位置情報)を一時的に保持するために用いられる。
データ選択回路(マルチプレクサ)350は、データアービタ340の調停結果に従って、スレーブS1から出力されたライトデータ342と、データバッファ346に保持されたライトデータとのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。2つのライトデータを同時出力可能な条件については後述する。データ選択回路350は、ライトデータを出力する場合は対応するID値(WID)とともに出力する。したがって、スレーブS1から出力されたライトデータ344とデータバッファ346に保持されたライトデータとをの両方同時に出力する場合には、それぞれに対応する2個のID値(WID1,WID2)が出力される。
データ選択回路(マルチプレクサ)354は、データアービタ340から通知された調停結果(マスタ番号M#)に従って、マルチプレクサ(データ選択回路)350の出力結果と(マスタM1の番号が通知された場合)、バスマスタM2のライトデータ364とのいずれか一方を選択する。マルチプレクサ(データ選択回路)354は、選択したライトデータと対応するID値とをライトデータ転送経路46に出力する。
ライトデータ転送経路46を介して転送されたID値(WID1,WID2)は、IDデコーダ360に入力され、ライトデータ転送経路46を介して転送されたライトデータWDATAはデマルチプレクサ(データ分配回路)366に入力される。
IDデコーダ360は、各バスマスタから発行されたライトアドレスに付随されているID値(AWID)と、当該ライトアドレスをデコードすることによって得られたスレーブ番号S#とを受信するように構成されている。IDデコーダ360は、受信したこれらの情報に基づいてID値(AWID)とスレーブ番号S#との対応関係を示す情報を、たとえば、ルックアップテーブルの形で保持する。IDデコーダ360は、ライトデータ転送経路46を介して受信したID値(WID1,WID2)に対応するスレーブ番号S#を、このルークアップテーブルを参照することによって決定する。
デマルチプレクサ(データ分配回路)366は、IDデコーダ360から通知されたスレーブ番号S#に従って、ライトデータ転送経路46を介して受信したライトデータWDATAを、バススレーブS1のライトデータ362またはバススレーブS2のライトデータ364として分配する。ここで、スレーブS1から出力されたライトデータ344とデータバッファ346に保持されたライトデータとが両方同時に出力された場合には、デマルチプレクサ366は、ID値(WID1,WID2)に対応する2つのスレーブ番号S#に従って、これらのライトデータをスレーブS1,M2にそれぞれ出力する。
[2つのライトデータを同時出力可能な条件]
以下、データ選択回路350から2つのライトデータを同時出力可能な条件について説明する。データ選択回路350は、以下の全ての条件が満たされた場合に、データバッファ346に保持されているライトデータと、マスタM1から出力されたライトデータとが242とが同時に出力可能と判定する。
(条件W1) 前回の調停結果に従ってマスタM1のライトデータがデータバッファ346に格納され、今回さらにマスタM1が調停結果として通知されている。
(条件W2) データバッファ346に格納されているライトデータの転送先のバススレーブと、マスタM1のライトデータ342の転送先のバススレーブとは異なる。転送先のバススレーブの情報(スレーブ番号S#)は、データアービタ340から調停結果としてマスタ番号M#とともに通知される。
(条件W3) マスタM1から出力されるライトデータ342が使用する転送経路46上でのデータ位置と、データバッファ346に保持されたライトデータが使用する転送経路46上でのデータ位置とが重ならない。
[ライトデータ転送の具体例]
図9は、図8のバス転送装置30によるライトデータ転送の具体例を示すタイミング図である。図9では上から順に、アドレスバスを転送中のライトアドレス、マスタM1から出力されるライトデータ、データバッファ346の出力データ、ライトデータバスを転送中のライトデータ、スレーブS1の入力データ、およびスレーブS2の入力データを示す。図9の横軸は時間を表し、クロック信号の第1周期CYC1から第5周期CYC5までの5つの区間に区分されている。
図8および図9を参照して、第1周期CYC1において、マスタM2はスレーブS2へのバースト書込み命令を発行する(トランザクションのID値=“1”)。これに伴い、マスタM2は、第1周期CYC1において先頭アドレスADDR AおよびID値“1”をアドレス転送経路40に向けて出力するとともに、第1周期CYC1および第2周期CYC2においてライトデータWDATA A(128ビット×2)および関連する付随情報(ID値“1”)を出力する。転送元であるマスタM2を表すマスタ番号“2”がデータアービタ340に通知され、データアービタ340の制御に従って、マスタM2から出力された書込みデータWDATA Aが、データ選択回路350,354を通過してライトデータ転送経路46に出力される。さらに、IDデコーダ360の制御に従って、ライトデータWDATA Aはデータ分配回路366を介してスレーブS2に入力される。
第2周期CYC2において、マスタM1はスレーブS1へのシングル書込み命令を発行する(トランザクションのID値=“2”)。これに伴い、マスタM1は、第2周期CYC2においてアドレスADDR_BおよびID値“2”をアドレス転送経路40に向けて出力するとともに、ライトデータWDATA_Bおよび関連する付随情報(ID値“2”など)を出力する。さらに、転送元のマスタM1を表すマスタ番号“1”がデータアービタ340を介してデータ選択回路350に通知される。データ選択回路350は、ライトデータWDATA Bのデータ幅(32ビット)がライトデータ転送経路46のデータ幅であるn=128ビットよりも小さく、かつ、ライトデータ転送経路46が他のライトデータWDATA Aによって使用中であるので、ライトデータWDATA Bと付随情報をデータバッファ346に一旦保持させる。
第3周期CYC3において、マスタM1はスレーブS2へのシングル書込み命令を発行する(トランザクションのID値=“3”)。これに伴い、マスタM1は、第3周期CYC3においてアドレスADDR_CおよびID値“3”をアドレス転送経路40に向けて出力するとともに、ライトデータWDATA_Cおよび関連する付随情報(ID値“3”など)を出力する。さらに、転送元のマスタM1を表すマスタ番号“1”がデータアービタ340を介してデータ選択回路350に通知される。ここで、ライトデータWDATA_C(データ幅32ビット)のデータ転送経路46上でのデータ位置は、データバッファ346の保持されているライトデータWDATA Bと重ならないとする。
データ選択回路350は、データバッファ346に保持されているライトデータWDATA BとマスタM1から出力されたライトデータWDATA Cとを統合して出力可能と判断し、データ選択回路354に通知する。データ選択回路354は、統合された64ビットのデータ幅のライトデータ(WDATA B,WDATA C)と、ライトデータWDATA Bに対応するID値“2”と、ライトデータWDATA Cに対応するID値“3”とを、ライトデータ転送経路46に出力する。ID値“2”およびID値“3”は、IDデコーダ360に転送される。IDデコーダ360は、ID値“2”およびID値“3”にそれぞれ対応するスレーブ番号S#をデータ分配回路366に通知する。データ分配回路366は、通知されたスレーブ番号S#に従って、スレーブS1にライトデータ(WDATA B)362を入力するとともに、スレーブS2にライトデータ(WDATA C)364を入力する。
第4周期CYC4において、マスタM2はスレーブS2へのバースト書込み命令を発行する(トランザクションのID値=“1”)。これに伴い、マスタM2は、第4周期CYC1において先頭アドレスADDR DおよびID値“1”をアドレス転送経路40に向けて出力するとともに、第4周期CYC4および第5周期CYC5においてライトデータWDATA D(128ビット×2)および関連する付随情報(ID値“1”)を出力する。転送元であるマスタM2を表すマスタ番号“2”がデータアービタ340に通知され、データアービタ340の制御に従って、マスタM2から出力された書込みデータWDATA Dが、データ選択回路350,354を通過してライトデータ転送経路46に出力される。さらに、IDデコーダ360の制御に従って、ライトデータWDATA Aはデータ分配回路366を介してスレーブS2に入力される。
[第4の実施形態の効果]
上述したバス転送装置30によれば、バス幅nビットのライトデータバス上に、バス幅よりもデータ幅の合計が小さい2つのライトデータを載せて転送することが可能である。この場合、2つのライトデータにそれぞれ対応する2個のトランザクションID値も同時に転送される。この結果、最大バス幅未満のライトデータの転送速度を向上させることができ、これにより、バスマスタからバススレーブへのライトアクセス時の応答速度を上げることができる。
[変形例]
図8の例では、2つのバスマスタおよび2つのバススレーブがあるように描かれている。しかしながら、このような構成に限定されることなく、さらに多数のバスマスタおよび多数のバススレーブについても上記の技術を適用することができる。
さらに、上記の例では、2個のライトデータを統合して転送する場合を示したが、ライトデータ転送経路のバス幅nを超えない限り、さらに多くの個数のライトデータを統合して転送することも原理的には可能である。この場合、統合するデータ数に応じたデータバッファが必要になるとともに、統合するライトデータにそれぞれ対応するID値を同時に転送する必要がある。
<第5の実施形態>
第4の実施形態では、異なるバススレーブがそれぞれ転送先となっている複数のライトデータを統合してバス転送する場合について説明した。第5の実施形態では、同一のバススレーブが転送先となっている複数のライトデータを統合してバス転送する場合について説明する。この場合、前述の条件W2は不要になり、データ選択回路350は、条件W1と条件W3とが満たされている場合に、データバッファ346に保持されているライトデータと、マスタM1から出力されたライトデータとが242とを同時に出力可能と判定する。以下、図面を参照して詳しく説明する。
[バス転送装置の構成]
図10は、第5の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。図10では、図8のバス転送装置のうちライトデータバスに関係する部分のみを示している。アドレスバスに関係する部分の構成は図8の場合と同じである。ただし、第5の実施形態の場合、データアービタ340は、調停結果としてマスタ番号M#を通知し、マスタ番号M#に対応するスレーブ番号S#まで通知する必要はない(条件W2の判定が不要なため)。
図10に示すように、バス転送装置30のバス制御部32Bは、データバッファ368,370と、マルチプレクサ(データ選択回路)372,374とをさらに含む点で図8の場合と異なる。図10のその他の点は図8の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。
第5の実施形態で特徴的な点は、同一のバススレーブが転送先となっている2つのライトデータを統合可能になっている点である(前述の条件W2が不要)。この場合、優先順位の高いほうのライトデータは転送先のバススレーブにすぐに入力されるが、優先順位の低いほうのライトデータはデータバッファ368または370に一旦保持される。優先順位の低いほうのライトデータは、優先順位の高いほうのライトデータの入力後に、データバッファから転送先のバススレーブに入力される。このように、2個のライトデータは、データアービタ340によって決定された優先順位の順番で同一のバススレーブに入力される。
具体的に、データ選択回路350は、前述の条件W1と条件W3との両方が満たされている場合に(条件W2が不要)、データバッファ346に保持されているライトデータとスレーブS1から出力されたライトデータ342とを統合する。ライトデータ転送経路46には、統合されたライトデータWDATAと、統合前のライトデータにそれぞれ対応する2個のID値(WID1,WID2)とが同時に出力される。ここで、2個のID値(WID1,WID2)には、同一のバスレーブ(スレーブ番号S#)が対応するとする。
IDデコーダ360は、ライトデータ転送経路46を介して転送された2個のID値(WID1,WID2)に対応するスレーブ番号S#が同一の場合には、データバッファ368,370のうち該当するスレーブに対応するデータバッファに対して、データが同時転送されていることを通知する。データ分配回路366は、IDデコーダ360の制御に従って、転送されたライトデータうちデータバッファ346に保持されていたライトデータに対応する部分を該当するスレーブに入力するとともに、残りの部分を対応するデータバッファ368または370に格納させる。すなわち、先にマスタM1から出力されたライトデータが該当するスレーブに入力され、後からマスタM1から出力されたライトデータが対応するデータバッファに入力される。次の周期において、対応するデータバッファ368または370に格納されたライトデータは、該当するスレーブに取り込まれる。
[ライトデータ転送の具体例]
図11は、図10のバス転送装置30によるライトデータ転送の具体例を示すタイミング図である。図11では上から順に、アドレスバスを転送中のライトアドレス、マスタM1から出力されるライトデータ、データバッファ346の出力データ、ライトデータバスを転送中のライトデータ、データバッファ368の入力データ、およびスレーブS1の入力データを示す。図11の横軸は時間を表し、クロック信号の第1周期CYC1から第5周期CYC6までの5つの区間に区分されている。
図10および図11を参照して、図11の第1周期CYC1および第2周期CYC2における動作は、図9の場合と同様であるので説明を繰り返さない。
第3周期CYC3において、マスタM1はスレーブS1へのシングル書込み命令を発行する(トランザクションのID値=“3”)。図9の場合は、マスタM1はスレーブS2へシングル書込み命令を発行していた点で異なる。このシングル書込み命令の発行に伴い、マスタM1は、第3周期CYC3においてアドレスADDR_CおよびID値“3”をアドレス転送経路40に向けて出力するとともに、ライトデータWDATA_C(32ビット)および関連する付随情報(ID値“3”など)を出力する。ここで、ライトデータWDATA_Cのデータ転送経路46上でのデータ位置は、データバッファ346に保持されているライトデータWDATA Bと重ならないとする。さらに、データアービタ340は、第2周期CYC2および第3周期CYC3のいずれにおいてマスタ番号“1”(マスタM1に対応する)を調停結果としてデータ選択回路350に通知している。
この結果、データ選択回路350は、データバッファ346の保持されているライトデータWDATA BとマスタM1から出力されたライトデータWDATA Cとを統合して出力可能と判断し、データ選択回路354に通知する。データ選択回路354は、統合された64ビットのデータ幅のライトデータ(WDATA B,WDATA C)と、ライトデータWDATA Bに対応するID値“2”と、ライトデータWDATA Cに対応するID値“3”とを、ライトデータ転送経路46に出力する。ID値“2”およびID値“3”は、IDデコーダ360に転送される。
IDデコーダ360は、ID値“2”およびID値“3”にそれぞれ対応するスレーブ番号S#が“1”(スレーブS1に対応)で同一であると判定すると、データ分配回路366およびスレーブS1に対応するデータバッファ368に対してライトデータが同時転送されていることを通知する。データ分配回路366は、IDデコーダ360の制御に従って、転送されたライトデータうちデータバッファ346に保持されていたライトデータWDATA Bに対応する部分を該当するスレーブS1に入力するとともに、残りの部分のライトデータWDATA Cをデータバッファ368に保持させる。次の周期CYC5において、データバッファ368に格納されていたライトデータWDATA Cは、スレーブS1に取り込まれる。
第4周期CYC4において、マスタM2はスレーブS2へのバースト書込み命令を発行する(トランザクションのID値=“1”)。これに伴い、マスタM2は、第4周期CYC1において先頭アドレスADDR DおよびID値“1”をアドレス転送経路40に向けて出力するとともに、第4周期CYC4および第5周期CYC5においてライトデータWDATA D(128ビット×2)および関連する付随情報(ID値“1”)を出力する。出力されたライトデータWDATA Dは、データアービタ340の制御に従ってライトデータ転送経路46に出力され、さらに、IDデコーダ360の制御に従ってスレーブS2に入力される。
[第5の実施形態の効果]
上記の構成のバス転送装置によれば、同一のスレーブを転送先とする複数のライトデータが同時転送可能になるので、最大バス幅未満のライトデータの転送速度を向上させることができる。これにより、バスマスタからバススレーブへのライトアクセス時の応答速度を上げることができる。
<第6の実施形態>
第4の実施形態では、同一マスタから出力されたバス幅未満の合計データサイズの複数のライトデータを同時転送するためのバス転送装置について説明した。第6の実施形態では、異なるマスタから出力されたバス幅未満の合計データサイズの複数のライトデータを同時転送するためのバス転送装置の構成を開示する。
[バス転送装置の構成]
図12は、第6の実施形態に関係するバス転送装置の一部の構成を示すブロック図である。図12では、図8のバス転送装置のうちライトデータバスに関係する部分のみを示している。アドレスバスに関係する部分の構成は図8の場合と同じである。
第6の実施形態の場合、バスマスタM2から出力されたライトデータ344は、n/2ビット以下のデータ幅を有する(データサイズを可変としているので、nビットに等しい場合もある)。バスマスタM2は、ライトデータ344と、データサイズと、ライトデータ344に対応するID値(WID)と、ライトデータ転送経路46を構成するnビットのデータ線の中でライトデータが占める位置情報とを出力する。バスマスタM2は、ライトデータが格納されているライトアドレスに対応付けて、ライトデータが使用する位置情報を自動的に決定する。
さらに、図12のバス転送装置30のバス制御部32Aは、データバッファ348と、マルチプレクサ(データ選択回路)352とをさらに含む点で図8のバス転送装置と異なる。データアービタ340の調停結果は、データバッファ346,348およびマルチプレクサ(データ選択回路)350,352,354に通知される。
データバッファ348は、マスタM2から出力されたライトデータ344をライトデータ転送経路46に転送できないときで、ライトデータ344のデータ幅がnビットよりも小さいときに、ライトデータ344および関連する付随情報(ID値、データサイズ、ライトデータバス幅内でのデータの位置情報)を一時的に保持するために用いられる。
データ選択回路350は、データアービタ340から通知された調停結果に基づいて、マスタM1から出力されたライトデータ342と、データバッファ346に保持されたライトデータとのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。さらに、データ選択回路350は、データバッファ346に格納されたライトデータと、マスタM1から出力されたライトデータ342とが統合できない場合に、データ選択回路354に対してデータバッファ346に格納されたライトデータのID値、データサイズ、データ位置の情報を通知する。
データ選択回路352は、データアービタ340から通知された調停結果に基づいて、マスタM2から出力されたライトデータ344と、データバッファ348に保持されたライトデータとのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。さらに、データ選択回路352は、データバッファ348に格納されたライトデータと、マスタM2から出力されたライトデータ344とが統合できない場合に、データ選択回路354に対してデータバッファ348に格納されたライトデータのID値、データサイズ、データ位置の情報を通知する。
データ選択回路354は、データアービタ340から通知された調停結果に基づいて、データ選択回路350の出力結果とデータ選択回路352の出力結果とのうち、いずれか一方を出力するか、または両方を選択して両方同時に出力する。データ選択回路354は、データバッファ346,348に格納されたライトデータの情報をデータ選択回路350,352からそれぞれ受けた場合において、これらのライトデータが統合可能な場合にはこれらのライトデータを統合して出力する。データ選択回路350は、以下の条件W4および条件W5が満たされた場合に、データ選択回路350,352の両方の出力結果を同時に出力可能と判定する。
(条件W4) データ選択回路350によって選択されたライトデータの転送元のマスタ番号とデータ選択回路352によって選択されたライトデータの転送元のマスタ番号とは、一方がデータアービタ340によって調停結果として示された第1の優先順位のマスタ番号に一致し、他方が第2の優先順位のマスタ番号に一致している。すなわち、前回の調停結果としてデータアービタ340が一方のマスタ番号を指示し、今回の調停結果としてデータアービタ340が他方のマスタ番号を指示している。
(条件W5) データ選択回路350によって選択されたライトデータの転送先のスレーブと、データ選択回路352によって選択されたライトデータの転送先のスレーブとは異なっている。転送先のバススレーブの情報(スレーブ番号S#)は、データアービタ340から調停結果としてマスタ番号M#とともに通知される。
(条件W6) データ選択回路350によって選択されたライトデータが使用する転送経路44上でのデータ位置と、データ選択回路352によって選択されたライトデータが使用する転送経路46上でのデータ位置とが重ならない。
図12のその他の点は図8の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰り返さない。
[ライトデータ転送の具体例]
図13は、図12のバス転送装置30によるライトデータ転送の具体例を示すタイミング図である。図13では上から順に、アドレスバスを転送中のライトアドレス、マスタM1から出力されるライトデータ、マスタM2から出力されるライトデータ、ライトデータバスを転送中のライトデータ、スレーブS1の入力データ、およびスレーブS2の入力データを示す。図13の横軸は時間を表し、クロック信号の第1周期CYC1から第5周期CYC6までの5つの区間に区分されている。
図12および図13を参照して、第1周期CYC1において、マスタM2はスレーブS2へのバースト書込み命令を発行する(トランザクションのID値=“1”)。これに伴い、マスタM2は、第1周期CYC1において先頭アドレスADDR AおよびID値“1”をアドレス転送経路40に向けて出力するとともに、第1周期CYC1および第2周期CYC2においてライトデータWDATA A(128ビット×2)および関連する付随情報(ID値“1”)をライトデータ転送経路46に向けて出力する。
第2周期CYC2において、マスタM2はスレーブS2へのシングル書込み命令を発行する(トランザクションのID値=“2”)。これに伴い、マスタM2は、第2周期CYC2においてアドレスADDR_BおよびID値“2”をアドレス転送経路40に向けて出力する。第2周期CYC2では、まだマスタM2からライトデータWDATA Aが転送中である。したがって、マスタM2は、第3周期CYC3においてライトデータWDATA_B(32ビット)および関連する付随情報(ID値“2”など)を出力する。
第3周期CYC3では、さらに、マスタM1がスレーブS1へのシングル書込み命令を発行する(トランザクションのID値=“3”)。これに伴い、マスタM1は、第3周期CYC3においてアドレスADDR_CおよびID値“3”をアドレス転送経路40に向けて出力するとともに、ライトデータWDATA_C(32ビット)および関連する付随情報(ID値“3”など)を出力する。ここで、ライトデータWDATA_Cのデータ転送経路46上でのデータ位置は、マスタM2から出力されているライトデータWDATA Bと重ならないとする。さらに、データアービタ340は、第2周期CYC2においてマスタM2に対応するマスタ番号“2”をデータ選択回路350に通知し、第3周期にCYC3においてマスタM1に対応するマスタ番号“1”をデータ選択回路350に通知している。さらに、ライトデータWDATA_Bの転送先(スレーブS2)とライトデータWDATA_Cの転送先(スレーブS1)とは異なる。
この結果、データ選択回路350は、マスタM2から出力されたライトデータWDATA BとマスタM1から出力されたライトデータWDATA Cとを統合して出力可能と判断し、データ選択回路354に通知する。データ選択回路354は、統合された64ビットのデータ幅のライトデータ(WDATA B,WDATA C)と、ライトデータWDATA Bに対応するID値“2”と、ライトデータWDATA Cに対応するID値“3”とを、ライトデータ転送経路46に出力する。ID値“2”およびID値“3”は、IDデコーダ360に転送される。IDデコーダ360は、ID値“2”およびID値“3”にそれぞれ対応するスレーブ番号“2”および“1”をデータ分配回路366に通知する。データ分配回路366は、通知されたスレーブ番号“2”および“1”に従って、スレーブS2にライトデータ(WDATA B)364を入力するとともに、スレーブS1にライトデータ(WDATA C)362を入力する。
第4周期CYC4において、マスタM2はスレーブS2へのバースト書込み命令を発行する(トランザクションのID値=“1”)。これに伴い、マスタM2は、第4周期CYC1において先頭アドレスADDR DおよびID値“1”をアドレス転送経路40に向けて出力するとともに、第4周期CYC4および第5周期CYC5においてライトデータWDATA D(128ビット×2)および関連する付随情報(ID値“1”)を出力する。出力されたライトデータWDATA Dは、データアービタ340の制御に従ってライトデータ転送経路46に出力され、さらに、IDデコーダ360の制御に従ってスレーブS2に入力される。
[第6の実施形態の効果]
上記の構成のバス転送装置によれば、異なるバスマスタから出力された転送先のスレーブが異なるライトデータを同時転送可能になるので、最大バス幅未満のデータサイズを有するライトデータの転送能力をさらに向上させることができる。これにより、バスマスタからバスマスタへのライトアクセス時の応答速度を上げることができる。さらに、第3の実施形態は第2の実施形態と組み合わせることができる。この場合、異なるバスマスタから出力された転送先のスレーブが同一のライトデータを同時に転送することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
S1,S2,20,22 バススレーブ、M1,M2,10,12 バスマスタ、30 バス転送装置、32 バス制御部、40 アドレス転送経路、44 リードデータ転送経路、46 ライトデータ転送経路、215,315 アドレスアービタ、225,325 アドレスデコーダ、235,335 状態論理回路、240,340 データアービタ、246,248,268,270,346,348,368,370 データバッファ、250,252,254,350,352,354 データ選択回路、260,360 IDデコーダ、266,366 データ分配回路。

Claims (14)

  1. 複数のバスマスタと、
    複数のバススレーブと、
    最大でnビット幅のリードデータを転送可能なリードデータ転送経路を含むバス転送装置とを備え、
    データ読出し時に、各前記バスマスタから出力されたリードアドレスは、出力元のバスマスタを識別しかつトランザクションを識別するための識別情報とともに前記リードアドレスを有するバススレーブに転送され、前記リードアドレスを有するバススレーブは、前記リードアドレスに対応するリードデータを前記識別情報とともに前記バス転送装置に出力し、
    前記バス転送装置は、合計してnビット以下のデータ幅を有する第1および第2のリードデータを転送する場合に、前記第1および第2のリードデータを統合し、統合されたリードデータと前記第1および第2のリードデータにそれぞれ対応する第1および第2の識別情報とを同時に、前記リードデータ転送経路を介して転送可能なように構成される、半導体装置。
  2. 前記複数のバススレーブは、n/2ビット以下のデータ幅のリードデータを出力する第1のバススレーブを含み、
    前記バス転送装置は、さらに、
    前記第1のバススレーブに接続され、前記リードデータ転送経路が他のバススレーブによって使用中の場合に、前記第1のバススレーブが出力するリードデータを保持する第1のデータバッファと、
    前記第1のバススレーブおよび前記第1のデータバッファと前記リードデータ転送経路との間に接続され、前記第1のバススレーブが出力するリードデータ、または前記第1のデータバッファに保持されたリードデータ、またはこれらのリードデータが統合されたデータのいずれかを出力可能な第1のデータ選択回路とを含む、請求項1に記載の半導体装置。
  3. 前記バス転送装置は、さらに、前記リードデータ転送経路と前記複数のバスマスタとの間に接続されたデータ分配回路を含み、
    前記データ分配回路は、前記第1および第2のリードデータが統合されたリードデータを受けた場合において、同時転送された前記第1の識別情報が示している第1のバスマスタが、前記第2の識別情報が示している第2のバスマスタと異なる場合には、前記第1のバスマスタに前記第1のリードデータを入力し、前記第2のバスマスタに前記第2のリードデータを入力する、請求項2に記載の半導体装置。
  4. 前記バス転送装置は、さらに、
    前記リードデータ転送経路と前記複数のバスマスタとの間に接続されたデータ分配回路と、
    前記複数のバスマスタにそれぞれ対応して設けられ、各々が、前記データ分配回路と対応するバスマスタとの間に接続された複数の入力用データバッファとを含み、
    前記データ分配回路は、前記第1および第2のリードデータが統合されたリードデータを受けた場合において、同時転送された前記第1の識別情報が示している第1のバスマスタが、前記第2の識別情報が示しているバスマスタと同一の場合には、先に前記第1のバススレーブから出力されたリードデータを前記第1のバスマスタに入力し、後から前記第1のバススレーブから出力されたリードデータを前記第1のバスマスタに対応する入力用データバッファに入力する、請求項2に記載の半導体装置。
  5. 前記複数のバススレーブは、さらに、n/2ビット以下のデータ幅のリードデータを出力する第2のバススレーブを含み、
    前記バス転送装置は、さらに、
    前記第2のバススレーブに接続され、前記リードデータ転送経路が他のバススレーブによって使用中の場合に、前記第2のバススレーブが出力するリードデータを保持する第2のデータバッファと、
    前記第2のバススレーブおよび前記第2のデータバッファと前記リードデータ転送経路との間に接続され、前記第2のバススレーブが出力するリードデータ、または前記第2のデータバッファに保持されたリードデータ、またはこれらのリードデータが統合されたデータのいずれかを出力可能な第2のデータ選択回路と、
    前記第1および第2のデータ選択回路と前記リードデータ転送経路との間に接続され、前記第1のデータ選択回路が出力するリードデータ、または前記第2のデータ選択回路が出力するリードデータ、またはこれらのリードデータが統合されたリードデータのいずれかを出力可能な第3のデータ選択回路とを含む、請求項2に記載の半導体装置。
  6. 前記バス転送装置は、複数のリードデータの間で前記リードデータ転送経路への出力の優先順位を調停するデータアービタをさらに含み、
    前記第1のデータ選択回路は、前記第1のデータバッファに保持されたリードデータが第1番目の優先順位を有し、かつ、前記第1のバススレーブが出力するリードデータが第2番目の優先順位を有している場合に、これらのリードデータを統合して出力可能である、請求項2に記載の半導体装置。
  7. 前記第1および第2のリードデータの各々は、対応するリードアドレスに応じて前記リードデータ転送経路上で使用するビットが決定され、
    前記バス転送装置は、前記第1および第2のリードデータの使用するビットが重なっていない場合に、前記第1および第2のリードデータを統合して転送可能である、請求項1に記載の半導体装置。
  8. 複数のバスマスタと、
    複数のバススレーブと、
    最大でnビット幅のライトデータを転送可能なライトデータ転送経路を含むバス転送装置とを備え、
    データ書込み時に、各前記バスマスタから出力されたライトアドレスおよびライトデータの各々は、出力元のバスマスタを識別しかつトランザクションを識別するための識別情報とともに前記ライトアドレスを有するバススレーブに転送され、
    前記バス転送装置は、合計してnビット以下のデータ幅を有する第1および第2のライトデータを転送する場合に、前記第1および第2のライトデータを統合し、統合されたライトデータと前記第1および第2のライトデータにそれぞれ対応する第1および第2の識別情報とを同時に、前記ライトデータ転送経路を介して転送可能なように構成される、半導体装置。
  9. 前記複数のバスマスタは、n/2ビット以下のデータ幅のライトデータを出力する第1のバスマスタを含み、
    前記バス転送装置は、さらに、
    前記第1のバスマスタに接続され、前記ライトデータ転送経路が他のバスマスタによって使用中の場合に、前記第1のバスマスタが出力するライトデータを保持する第1のデータバッファと、
    前記第1のバスマスタおよび前記第1のデータバッファと前記ライトデータ転送経路との間に接続され、前記第1のバスマスタが出力するライトデータ、または前記第1のデータバッファに保持されたライトデータ、またはこれらのライトデータが統合されたデータのいずれかを出力可能な第1のデータ選択回路とを含む、請求項8に記載の半導体装置。
  10. 前記バス転送装置は、さらに、前記ライトデータ転送経路と前記複数のバススレーブとの間に接続されたデータ分配回路を含み、
    前記データ分配回路は、前記第1および第2のライトデータが統合されたライトデータを受けた場合において、同時転送された前記第1の識別情報に対応するライトアドレスを有する第1のバススレーブが、前記第2の識別情報に対応するライトアドレスを有する第2のバススレーブと異なる場合には、前記第1のバススレーブに前記第1のライトデータを入力し、前記第2のバススレーブに前記第2のライトデータを入力するように構成される、請求項9に記載の半導体装置。
  11. 前記バス転送装置は、さらに、
    前記ライトデータ転送経路と前記複数のバススレーブとの間に接続されたデータ分配回路と、
    前記複数のバススレーブにそれぞれ対応して設けられ、各々が、対応するバススレーブと前記データ分配回路との間に設けられた複数の入力用データバッファを含み、
    前記データ分配回路は、前記第1および第2のライトデータが統合されたライトデータを受けた場合において、同時転送された前記第1の識別情報に対応するライトアドレスを有する第1のバススレーブが、前記第2の識別情報に対応するライトアドレスを有するバススレーブと同じ場合には、先に前記第1のバスマスタから出力されたライトデータを、前記第1のバススレーブに入力し、後から前記第1のバスマスタから出力されたライトデータを、前記第1のバススレーブに対応する入力用データバッファに入力する、請求項9に記載の半導体装置。
  12. 前記複数のバスマスタは、さらに、n/2ビット以下のデータ幅のライトデータを出力する第2のバスマスタを含み、
    前記バス転送装置は、さらに、
    前記第2のバスマスタに接続され、前記ライトデータ転送経路が他のバスマスタによって使用中の場合に、前記第2のバスマスタが出力するライトデータを保持する第2のデータバッファと、
    前記第2のバスマスタおよび前記第2のデータバッファと前記ライトデータ転送経路との間に接続され、前記第2のバスマスタが出力するライトデータ、または前記第2のデータバッファに保持されたライトデータ、またはこれらのライトデータが統合されたデータのいずれかを出力可能な第2のデータ選択回路と、
    前記第1および第2のデータ選択回路と前記ライトデータ転送経路との間に接続され、前記第1のデータ選択回路が出力するライトデータ、または前記第2のデータ選択回路が出力するライトデータ、またはこれらのライトデータが統合されたライトデータのいずれかを出力可能な第3のデータ選択回路とを含む、請求項9に記載の半導体装置。
  13. 前記バス転送装置は、複数のライトデータの間で前記ライトデータ転送経路への出力の優先順位を調停するデータアービタをさらに含み、
    前記第1のデータ選択回路は、前記第1のデータバッファに保持されたライトデータが第1番目の優先順位を有し、かつ、前記第1のバスマスタが出力するライトデータが第2番目の優先順位を有している場合に、これらのライトデータを統合して出力可能である、請求項9に記載の半導体装置。
  14. 前記第1および第2のライトデータは、それぞれ対応する第1および第2のライトアドレスに応じて前記ライトデータ転送経路上で使用するビットが決定され、
    前記バス転送装置は、前記第1および第2のライトデータの使用するビットが重なっていない場合に、前記第1および第2のライトデータを統合して転送可能である、請求項8に記載の半導体装置。
JP2015068587A 2015-03-30 2015-03-30 半導体装置 Active JP6449702B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015068587A JP6449702B2 (ja) 2015-03-30 2015-03-30 半導体装置
US15/008,350 US10282343B2 (en) 2015-03-30 2016-01-27 Semiconductor device
CN201610147495.XA CN106021141B (zh) 2015-03-30 2016-03-15 半导体设备
EP16162723.7A EP3076305A1 (en) 2015-03-30 2016-03-29 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015068587A JP6449702B2 (ja) 2015-03-30 2015-03-30 半導体装置

Publications (2)

Publication Number Publication Date
JP2016189096A true JP2016189096A (ja) 2016-11-04
JP6449702B2 JP6449702B2 (ja) 2019-01-09

Family

ID=55640623

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015068587A Active JP6449702B2 (ja) 2015-03-30 2015-03-30 半導体装置

Country Status (4)

Country Link
US (1) US10282343B2 (ja)
EP (1) EP3076305A1 (ja)
JP (1) JP6449702B2 (ja)
CN (1) CN106021141B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180049338A (ko) * 2016-10-31 2018-05-11 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10944694B2 (en) * 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
US10930366B2 (en) * 2019-07-17 2021-02-23 Micron Technology, Inc. Storage device with test interface
CN114968865B (zh) * 2022-07-22 2022-09-27 中科声龙科技发展(北京)有限公司 总线传输结构及方法、芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936953A (en) * 1997-12-18 1999-08-10 Raytheon Company Multi-mode, multi-channel communication bus
JP2003296267A (ja) * 2002-04-02 2003-10-17 Nec Electronics Corp バスシステム及びバスシステムを含む情報処理システム
JP2010027032A (ja) * 2008-06-17 2010-02-04 Nec Electronics Corp Fifo装置及びfifoバッファへのデータ格納方法
JP2014238769A (ja) * 2013-06-10 2014-12-18 オリンパス株式会社 データ処理装置およびデータ転送制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189090B1 (en) * 1997-09-17 2001-02-13 Sony Corporation Digital signal processor with variable width instructions
US7543088B2 (en) * 2004-03-11 2009-06-02 Sonics, Inc. Various methods and apparatuses for width and burst conversion
US8032676B2 (en) * 2004-11-02 2011-10-04 Sonics, Inc. Methods and apparatuses to manage bandwidth mismatches between a sending device and a receiving device
GB2426604B (en) 2005-05-26 2010-07-14 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
GB0710377D0 (en) * 2007-05-31 2007-07-11 Univ Reading The Processors
JP5204777B2 (ja) * 2007-12-21 2013-06-05 パナソニック株式会社 メモリ装置及びその制御方法
KR101733203B1 (ko) * 2010-10-13 2017-05-08 삼성전자주식회사 아이디 컨버터를 포함하는 버스 시스템 및 그것의 변환 방법
US9043526B2 (en) 2012-06-20 2015-05-26 International Business Machines Corporation Versatile lane configuration using a PCIe PIe-8 interface

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936953A (en) * 1997-12-18 1999-08-10 Raytheon Company Multi-mode, multi-channel communication bus
JP2003296267A (ja) * 2002-04-02 2003-10-17 Nec Electronics Corp バスシステム及びバスシステムを含む情報処理システム
JP2010027032A (ja) * 2008-06-17 2010-02-04 Nec Electronics Corp Fifo装置及びfifoバッファへのデータ格納方法
JP2014238769A (ja) * 2013-06-10 2014-12-18 オリンパス株式会社 データ処理装置およびデータ転送制御装置

Also Published As

Publication number Publication date
JP6449702B2 (ja) 2019-01-09
CN106021141B (zh) 2021-05-07
CN106021141A (zh) 2016-10-12
EP3076305A1 (en) 2016-10-05
US20160292123A1 (en) 2016-10-06
US10282343B2 (en) 2019-05-07

Similar Documents

Publication Publication Date Title
JP6449702B2 (ja) 半導体装置
US7269709B2 (en) Memory controller configurable to allow bandwidth/latency tradeoff
US5455915A (en) Computer system with bridge circuitry having input/output multiplexers and third direct unidirectional path for data transfer between buses operating at different rates
US20050125590A1 (en) PCI express switch
JP2010027032A (ja) Fifo装置及びfifoバッファへのデータ格納方法
US20120079148A1 (en) Reordering arrangement
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
US20070156937A1 (en) Data transfer in multiprocessor system
EP2437159B1 (en) Apparatus for data comparison and control method thereof
EP2405362B1 (en) A connection arrangement
US9767054B2 (en) Data transfer control device and memory-containing device
JP4193746B2 (ja) マトリックス状バス接続システム
US20150127865A1 (en) Method and apparatus use with interrupts
JPH0793274A (ja) データ転送方式及びデータ転送装置
US6483753B1 (en) Endianess independent memory interface
US6625711B1 (en) Method and/or architecture for implementing queue expansion in multiqueue devices
US20100106865A1 (en) Dma transfer device and method
KR100891508B1 (ko) 가상 디엠에이를 포함하는 시스템
JP2010032402A (ja) 半導体試験装置
US7519848B2 (en) Data transfer apparatus
JP4229242B2 (ja) ダイレクトメモリアクセスコントローラ
JP6823259B2 (ja) バス制御回路、情報処理装置及びバス制御回路の制御方法
US11609871B1 (en) Integrated circuit device with crossbar to route traffic
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
JP2007172105A (ja) 割り込み調停システム及び割り込み調停方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181026

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: 20181113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181206

R150 Certificate of patent or registration of utility model

Ref document number: 6449702

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150