JP2012150735A - Interconnection apparatus - Google Patents

Interconnection apparatus Download PDF

Info

Publication number
JP2012150735A
JP2012150735A JP2011010324A JP2011010324A JP2012150735A JP 2012150735 A JP2012150735 A JP 2012150735A JP 2011010324 A JP2011010324 A JP 2011010324A JP 2011010324 A JP2011010324 A JP 2011010324A JP 2012150735 A JP2012150735 A JP 2012150735A
Authority
JP
Japan
Prior art keywords
information
transaction
request
response
transaction information
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
JP2011010324A
Other languages
Japanese (ja)
Other versions
JP5659817B2 (en
Inventor
Haruhisa Yamamoto
晴久 山本
Koichi Hasegawa
浩一 長谷川
Katsuhiko Metsugi
勝彦 目次
Hitoshi Kai
斉 甲斐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2011010324A priority Critical patent/JP5659817B2/en
Publication of JP2012150735A publication Critical patent/JP2012150735A/en
Application granted granted Critical
Publication of JP5659817B2 publication Critical patent/JP5659817B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Bus Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To suppress increase in storage capacitance with increase of a maximum value for the number of transactions allowed by a bus system.SOLUTION: A transaction information write unit 500 writes transaction information into any one of a plurality of transaction information write regions on the basis of a request each time the request is issued. An entry number write unit 550 writes region information related to the transaction information into a FIFO memory corresponding to a transaction identifier for identifying transaction processing relating to the request each time the transaction information is written. An entry number read unit 600 reads region information from a FIFO memory corresponding to the transaction identifier relating to a response each time the response is redirected. A transaction information read unit 650 reads transaction information from a transaction information write region indicated by the region information each time the region information is read out.

Description

本発明は、相互接続装置に関し、特にスプリットトランザクションを許容してデータを転送する相互接続装置に関する。   The present invention relates to an interconnect device, and more particularly to an interconnect device that allows split transactions and transfers data.

従来、あるモジュールから別のモジュールへデータを転送する場合に、モジュール間をバスにより接続する手法がとられることが多い。モジュールのうち、データ転送を主導するモジュールはマスタと呼ばれ、受動的に動作するモジュールはスレーブと呼ばれる。マスタとなるモジュールとしては、例えばプロセッサが想定される。スレーブとなるモジュールとしては、例えばメモリが想定される。   Conventionally, when transferring data from one module to another, a method of connecting the modules with a bus is often used. Of the modules, a module that leads data transfer is called a master, and a module that operates passively is called a slave. For example, a processor is assumed as the master module. As a module serving as a slave, for example, a memory is assumed.

バス幅やエンディアン方式の異なる複数のバスを備えるバスシステムにおいては、バス幅等の相違に応じてデータ変換を行うバスブリッジが設けられることがある。このバスブリッジに各バスを接続することにより、バス間でのデータ転送が可能となる。これらのバスやバスブリッジは、インターコネクトとも呼ばれる。   In a bus system including a plurality of buses having different bus widths and endian systems, a bus bridge that performs data conversion according to a difference in the bus width or the like may be provided. By connecting each bus to this bus bridge, data transfer between the buses becomes possible. These buses and bus bridges are also called interconnects.

このようなバスシステムにおいては、スプリットトランザクションを許容することにより、転送効率を向上させることができる。スプリットトランザクションとは、データ転送のための一連の動作(トランザクション)のうち、データ転送の要求と実際のデータ転送とをそれぞれ独立して制御することである。スプリットトランザクションを許容するバス規格としては、AXI(Advanced eXtensible Interface)バスなどがある。   In such a bus system, transfer efficiency can be improved by allowing split transactions. The split transaction is to independently control a data transfer request and actual data transfer in a series of operations (transactions) for data transfer. A bus standard that allows split transactions includes an AXI (Advanced eXtensible Interface) bus.

スプリットトランザクションを許容する場合、バスブリッジ等のインターコネクトは、マスタ・スレーブ間でやりとりされる転送が未解決(outstanding)の間、その転送に関するトランザクション情報を保持しておく必要がある。ここで、未解決とは、要求されたデータ転送が完了していない状態である。また、トランザクション情報とは、レスポンスの転送の制御に必要な情報である。例えば、トランザクション情報は、バースト転送を行なう場合のバースト長やバースト数を含む情報である。   When a split transaction is allowed, an interconnect such as a bus bridge needs to hold transaction information regarding the transfer while the transfer between the master and the slave is outstanding. Here, unresolved means a state in which the requested data transfer is not completed. Transaction information is information necessary for control of response transfer. For example, the transaction information is information including a burst length and the number of bursts when performing burst transfer.

スプリットトランザクションにおいて、インターコネクトがトランザクション情報を保持する必要性について説明する。M1およびM2の2つのマスタとS1およびS2の2つのスレーブとがインターコネクトに接続されたバスシステムを想定する。このバスシステムにおいて、M1がS1に対してデータ転送を要求するリクエストAを発行したあと、M2がS2に対してデータ転送を要求するリクエストBを発行したとする。リクエストAは、バースト転送を要求するものであり、リクエストBは、バースト転送を要求しないものである。スレーブS1およびS2は、それぞれ対応するリクエストに応じてレスポンスを返送するが、これらのレスポンスの返送の順番は、リクエストA、Bの発行の順番と同じとは限らない。このような場合、インターコネクトは、いずれのレスポンスをバースト転送すべきかを判断するために、それぞれの転送が未解決の間、各リクエストに対応するトランザクション情報を保持しておく必要がある。保持しておいたトランザクション情報を参照することにより、インターコネクトは、データ転送を適切に制御することができる。   The necessity of the interconnect holding transaction information in the split transaction will be described. Assume a bus system in which two masters M1 and M2 and two slaves S1 and S2 are connected to an interconnect. In this bus system, after M1 issues a request A requesting data transfer to S1, M2 issues a request B requesting data transfer to S2. Request A requests burst transfer, and request B does not request burst transfer. The slaves S1 and S2 return responses in response to the corresponding requests, but the return order of these responses is not necessarily the same as the order in which the requests A and B are issued. In such a case, the interconnect needs to hold transaction information corresponding to each request while each transfer is unresolved in order to determine which response should be burst transferred. By referring to the stored transaction information, the interconnect can appropriately control data transfer.

AXIバスにおいてトランザクション情報を保持しておく手法として、FIFO(First In First Out)をトランザクション識別子ごとに設けたバスシステムが提案されている(例えば、特許文献1参照。)。各FIFOの段数は、許容される未解決の転送数の最大値以上とされる。インターコネクトは、各リクエストに対応するトランザクション情報を、そのリクエストに係るトランザクションに対応するFIFOに格納しておく。この構成によれば、インターコネクトは、FIFO内からトランザクション情報を読み出すときに、対応するトランザクションを検索する必要がなくなるため、トランザクション情報の読出し処理を高速に行うことができる。   As a method for retaining transaction information in the AXI bus, a bus system in which a FIFO (First In First Out) is provided for each transaction identifier has been proposed (for example, see Patent Document 1). The number of FIFO stages is equal to or greater than the maximum allowable number of unresolved transfers. The interconnect stores transaction information corresponding to each request in a FIFO corresponding to the transaction related to the request. According to this configuration, when the interconnect reads transaction information from the FIFO, it is not necessary to search for a corresponding transaction, so that transaction information can be read at high speed.

特開2008−41099号公報JP 2008-41099 A

しかしながら、上述の従来技術では、バスシステムが許容するトランザクションの数の最大値の増大に伴うFIFOのサイズの増大を抑制することが困難であった。FIFOをトランザクション識別子ごとに設ける場合、トランザクションの数だけFIFOを設ける必要がある。このため、バスシステムが許容するトランザクション数の最大値の増大に比例して、各FIFOの合計の記憶容量が増大してしまう。   However, in the above-described conventional technology, it is difficult to suppress an increase in the size of the FIFO accompanying an increase in the maximum number of transactions allowed by the bus system. When FIFOs are provided for each transaction identifier, it is necessary to provide FIFOs for the number of transactions. For this reason, the total storage capacity of each FIFO increases in proportion to the increase in the maximum number of transactions allowed by the bus system.

本発明はこのような状況に鑑みてなされたものであり、バスシステムが許容するトランザクション数の最大値の増大に伴う記憶容量の増大を抑制することを目的とする。   The present invention has been made in view of such a situation, and an object thereof is to suppress an increase in storage capacity accompanying an increase in the maximum value of the number of transactions allowed by the bus system.

本発明は、上記課題を解決するためになされたものであり、その第1の側面は、リクエストの転送処理と前記リクエストに対応するレスポンスの転送処理とを含むトランザクション処理を識別するための識別子であるトランザクション識別子に対して前記トランザクション識別子ごとに設けられた複数の先入れ先出しメモリと、前記レスポンスの転送処理を制御するための情報であるトランザクション情報を書き込むための複数のトランザクション情報書込領域を備えるバッファと、前記リクエストが発行されるたびに前記リクエストに基づいて前記トランザクション情報を前記トランザクション情報書込領域のいずれかに書き込むトランザクション情報書込部と、前記トランザクション情報が書き込まれるたびに前記リクエストに係る前記トランザクション識別子に対応する前記先入れ先出しメモリに対して前記トランザクション情報が書き込まれた前記トランザクション情報書込領域を示す領域情報を書き込む領域情報書込部と、前記レスポンスが返送されるたびに前記レスポンスに係る前記トランザクション識別子に対応する前記先入れ先出しメモリから前記領域情報を読み出す領域情報読出部と、前記領域情報が読み出されるたびに前記領域情報の示す前記トランザクション情報書込領域から前記トランザクション情報を読み出すトランザクション情報読出部と、前記マスタから前記リクエストが発行された場合に当該リクエストを前記スレーブへ転送し、前記スレーブから前記レスポンスが返送された場合に読み出された前記トランザクション情報に基づいて当該レスポンスを前記マスタへ転送する相互接続部とを具備する相互接続装置である。これにより、トランザクション情報が書き込まれた領域を示す領域情報が先入れ先出しメモリに書き込まれ、先入れ先出しメモリから読み出された領域情報の示す領域からトランザクション情報が読み出されるという作用をもたらす。   The present invention has been made to solve the above problems, and a first aspect thereof is an identifier for identifying a transaction process including a request transfer process and a response transfer process corresponding to the request. A plurality of first-in first-out memories provided for each transaction identifier with respect to a certain transaction identifier, and a buffer including a plurality of transaction information write areas for writing transaction information which is information for controlling the transfer process of the response; A transaction information writing unit that writes the transaction information to any of the transaction information writing areas based on the request each time the request is issued, and the request related to the request every time the transaction information is written An area information writing unit for writing area information indicating the transaction information writing area in which the transaction information is written to the first-in first-out memory corresponding to the transaction identifier, and each time the response is returned, A region information reading unit that reads the region information from the first-in first-out memory corresponding to the transaction identifier, and a transaction information reading unit that reads the transaction information from the transaction information writing region indicated by the region information each time the region information is read When the request is issued from the master, the request is transferred to the slave, and the response is read based on the transaction information read when the response is returned from the slave. The scan is an interconnection device comprising an interconnect portion for transfer to the master. Thereby, the area information indicating the area where the transaction information is written is written in the first-in first-out memory, and the transaction information is read out from the area indicated by the area information read out from the first-in first-out memory.

また、この第1の側面において、上記複数の先入れ先出しメモリから溢れた上記領域情報を保持する溢れ先入れ先出しメモリをさらに具備し、上記領域情報書込部は、上記リクエストに係る上記先入れ先出しメモリから上記領域情報が溢れない場合に上記領域情報を上記先入れ先出しメモリに書き込み、上記リクエストに係る上記先入れ先出しメモリから上記領域情報が溢れる場合に上記溢れ先入れ先出しメモリに上記領域情報を書き込み、上記領域情報読出部は、上記レスポンスに係る上記領域情報が上記溢れ先入れ先出しメモリに書き込まれている場合に上記溢れ先入れ先出しメモリから上記領域情報を読み出し、上記領域情報が上記溢れ先入れ先出しメモリに書き込まれていない場合に上記先入れ先出しメモリから上記領域情報を読み出すこともできる。これにより、先入れ先出しメモリから溢れた領域情報が溢れ先入れ先出しメモリに保持されるという作用をもたらす。   The first aspect further includes an overflow first-in first-out memory that holds the area information overflowing from the plurality of first-in first-out memories, and the area information writing unit includes the area information from the first-in first-out memory according to the request. When the area information does not overflow, the area information is written into the first-in first-out memory, and when the area information overflows from the first-in first-out memory according to the request, the area information is written into the overflow first-in first-out memory. The area information is read from the overflow first-in first-out memory when the area information is written into the overflow first-in first-out memory, and when the area information is not written into the overflow first-in first-out memory, the area information is read from the first-in first-out memory. Read Succoth can also. As a result, the area information overflowing from the first-in first-out memory is overflowed and held in the first-in first-out memory.

また、この第1の側面において、上記先入れ先出しメモリが上記領域情報を保持できないことを示すフルフラグを上記先入れ先出しメモリごとにさらに具備し、上記領域情報書込部は、上記フルフラグに基づいて上記先入れ先出しメモリから上記領域情報が溢れるか否かを判断してもよい。これにより、フルフラグに基づいて先入れ先出しメモリから領域情報が溢れるか否かが判断されるという作用をもたらす。   In the first aspect, the first-in first-out memory further includes a full flag indicating that the first-in first-out memory cannot hold the area information for each first-in first-out memory, and the area information writing unit It may be determined whether or not the area information overflows. Thus, it is possible to determine whether or not the area information overflows from the first-in first-out memory based on the full flag.

また、この第1の側面において、上記溢れ先入れ先出しメモリが空であることを示す空フラグをさらに具備し、上記領域情報読出部は、上記空フラグに基づいて上記領域情報が上記溢れ先入れ先出しメモリに書き込まれているか否かを判断してもよい。これにより、空フラグに基づいて溢れ先入れ先出しメモリに領域情報が書き込まれているか否かが判断されるという作用をもたらす。   The first aspect further includes an empty flag indicating that the overflow first-in first-out memory is empty, and the area information reading unit writes the area information into the overflow first-in first-out memory based on the empty flag. It may be determined whether or not. As a result, it is possible to determine whether or not the area information is written in the overflow first-in first-out memory based on the empty flag.

また、この第1の側面において、上記先入れ先出しメモリおよび上記溢れ先入れ先出しメモリは上記領域情報を保持するための領域であるエントリを1つ以上備え、上記先入れ先出しメモリのエントリ数は、未解決な上記トランザクション処理の数の最大値の半分以上であり、上記溢れ先入れ先出しメモリのエントリ数は、上記最大値と上記先入れ先出しメモリのエントリ数との間の差分であってもよい。これにより、先入れ先出しメモリのエントリ数が、未解決な上記トランザクション処理の数の最大値の半分以上とされるという作用をもたらす。   Further, according to the first aspect, the first-in first-out memory and the overflow first-in first-out memory include one or more entries that are areas for holding the area information, and the number of entries in the first-in first-out memory is the number of unresolved transaction processes. The number of entries in the overflow first-in first-out memory may be a difference between the maximum value and the number of entries in the first-in first-out memory. This brings about the effect that the number of entries in the first-in first-out memory is made more than half of the maximum value of the number of unresolved transaction processes.

また、本発明の第2の側面は、リクエストの転送処理と前記リクエストに対応するレスポンスの転送処理とを含むトランザクション処理が属するグループを識別するための識別子であるグループ識別子に対して前記グループ識別子ごとに設けられた複数の先入れ先出しメモリと、前記レスポンスの転送処理を制御するための情報であるトランザクション情報と前記トランザクション処理を識別するためのトランザクション識別子から前記グループ識別子を除いた情報である部分ビット列とを管理情報として書き込むための複数の管理情報書込領域を備えるバッファと、前記リクエストが発行されるたびに前記リクエストに基づいて前記管理情報を前記トランザクション情報書込領域のいずれかに書き込む管理情報書込部と、前記管理情報が書き込まれるたびに前記リクエストに係る前記グループ識別子に対応する前記先入れ先出しメモリに対して前記管理情報が書き込まれた前記トランザクション情報書込領域を示す領域情報を書き込む領域情報書込部と、前記レスポンスが返送されるたびに前記レスポンスに係る前記グループ識別子に対応する前記先入れ先出しメモリから前記領域情報を読み出す領域情報読出部と、前記領域情報が読み出されるたびに前記領域情報の示す前記トランザクション情報書込領域から前記トランザクション情報を読み出すトランザクション情報読出部と、前記マスタから前記リクエストが発行された場合に当該リクエストを前記スレーブへ転送し、前記スレーブから前記レスポンスが返送された場合に読み出された前記トランザクション情報に基づいて当該レスポンスを前記マスタへ転送する相互接続部とを具備する相互接続装置である。これにより、トランザクション情報が書き込まれた領域を示す領域情報が、グループ識別子に対応する先入れ先出しメモリに書き込まれ、グループ識別子に対応する先入れ先出しメモリから読み出された領域情報の示す領域からトランザクション情報が読み出されるという作用をもたらす。   In addition, the second aspect of the present invention provides each group identifier with respect to a group identifier that is an identifier for identifying a group to which a transaction process including a request transfer process and a response transfer process corresponding to the request belongs. A plurality of first-in first-out memories, transaction information that is information for controlling the response transfer process, and a partial bit string that is information obtained by removing the group identifier from the transaction identifier for identifying the transaction process A buffer comprising a plurality of management information write areas for writing as management information, and a management information write for writing the management information to one of the transaction information write areas based on the request each time the request is issued And the management information An area information writing unit that writes area information indicating the transaction information writing area in which the management information is written to the first-in first-out memory corresponding to the group identifier related to the request, and the response is returned The area information reading unit that reads out the area information from the first-in first-out memory corresponding to the group identifier related to the response each time it is read from the transaction information writing area indicated by the area information every time the area information is read out Based on the transaction information reading unit that reads transaction information, and when the request is issued from the master, the request is transferred to the slave, and the transaction information that is read when the response is returned from the slave. An interconnection device comprising an interconnect portion that transfers the response to the master. Thereby, the area information indicating the area where the transaction information is written is written in the first-in first-out memory corresponding to the group identifier, and the transaction information is read from the area indicated by the area information read out from the first-in first-out memory corresponding to the group identifier. This brings about the effect.

また、この第2の側面において、前記管理情報書込部は、前記リクエストに基づいて前記管理情報を前記トランザクション情報書込領域のいずれかに書き込む管理情報書込処理部と前記リクエストにおいて前記トランザクション識別子から前記部分ビット列を除く第1の識別子処理部と、を備え、前記管理情報読出部は、前記領域情報の示す前記トランザクション情報書込領域から前記トランザクション情報を読み出す管理情報読出処理部と、前記レスポンスにおいて前記読み出された管理情報に含まれる前記部分ビット列と前記グループ識別子とから前記トランザクション識別子を生成する第2の識別子処理部とを備えてもよい。これにより、トランザクション識別子から部分ビット列が除かれ、部分ビット列とグループ識別子とからトランザクション識別子を生成されるという作用をもたらす。   In the second aspect, the management information writing unit writes the management information in any of the transaction information writing areas based on the request, and the transaction identifier in the request A first identifier processing unit excluding the partial bit string from the management information reading unit, the management information reading processing unit that reads the transaction information from the transaction information writing region indicated by the region information, and the response A second identifier processing unit that generates the transaction identifier from the partial bit string and the group identifier included in the read management information. Thereby, the partial bit string is removed from the transaction identifier, and the transaction identifier is generated from the partial bit string and the group identifier.

本発明によれば、バスシステムが許容するトランザクション数の最大値の増大に伴う記憶容量の増大が抑制されるという優れた効果を奏し得る。   According to the present invention, it is possible to achieve an excellent effect that an increase in storage capacity due to an increase in the maximum number of transactions allowed by the bus system is suppressed.

本発明の第1の実施の形態におけるバスシステムの一構成例を示す全体図である。1 is an overall view showing a configuration example of a bus system according to a first embodiment of the present invention. AXIプロトコルにおけるリードアドレスチャネルを構成する信号を示す図である。It is a figure which shows the signal which comprises the read address channel in an AXI protocol. AXIプロトコルにおけるリードデータチャネルを構成する信号を示す図である。It is a figure which shows the signal which comprises the read data channel in an AXI protocol. AXIプロトコルにおけるライトアドレスチャネルを構成する信号を示す図である。It is a figure which shows the signal which comprises the write address channel in an AXI protocol. AXIプロトコルにおけるライトデータチャネルを構成する信号を示す図である。It is a figure which shows the signal which comprises the write data channel in an AXI protocol. AXIプロトコルにおけるライトレスポンスチャネルを構成する信号を示す図である。It is a figure which shows the signal which comprises the write response channel in an AXI protocol. 本発明の第1の実施の形態におけるバスブリッジの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the bus bridge in the 1st Embodiment of this invention. 本発明の第1の実施の形態における相互接続部の一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the interconnection part in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるFIFOメモリ群の一構成例を示す図である。It is a figure which shows one structural example of the FIFO memory group in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるバッファ450の各バッファエントリに保持される有効フラグおよびトランザクション情報の一例を示す図である。It is a figure which shows an example of the valid flag and transaction information which are hold | maintained at each buffer entry of the buffer 450 in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるバッファの一構成例を示す図である。It is a figure which shows one structural example of the buffer in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるトランザクション情報書込部の一構成例を示すブロック図である。It is a block diagram which shows one structural example of the transaction information writing part in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるトランザクション情報読出部の動作の一例を示す図である。It is a figure which shows an example of operation | movement of the transaction information reading part in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるバスブリッジの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the bus bridge in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるトランザクション情報書込処理の一例を示すフローチャートである。It is a flowchart which shows an example of the transaction information write-in process in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるトランザクション情報読出処理の一例を示すフローチャートである。It is a flowchart which shows an example of the transaction information reading process in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるリクエスト発行時のバスブリッジの動作を説明するための図である。It is a figure for demonstrating operation | movement of the bus bridge at the time of the request issuance in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるリクエスト発行後のバッファの状態の一例を示す図である。It is a figure which shows an example of the state of the buffer after the request issuance in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるリクエスト発行後のFIFOメモリの状態の一例を示す図である。It is a figure which shows an example of the state of the FIFO memory after the request issuance in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるレスポンス返送時のバスブリッジの動作を説明するための図である。It is a figure for demonstrating operation | movement of the bus bridge at the time of the response return in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるレスポンス返送後のFIFOメモリの状態の一例を示す図である。It is a figure which shows an example of the state of the FIFO memory after the response return in the 1st Embodiment of this invention. 本発明の第1の実施の形態におけるレスポンス返送後のバッファの状態の一例を示す図である。It is a figure which shows an example of the state of the buffer after the response return in the 1st Embodiment of this invention. 本発明の第2の実施の形態におけるバスブリッジの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the bus bridge in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるFIFOメモリ群の一構成例を示す図である。It is a figure which shows one structural example of the FIFO memory group in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における有効フラグおよび管理情報の一例を示す図であるIt is a figure which shows an example of the effective flag and management information in the 2nd Embodiment of this invention 本発明の第2の実施の形態におけるバッファの一構成例を示す図である。It is a figure which shows the example of 1 structure of the buffer in the 2nd Embodiment of this invention. 本発明の第2の実施の形態におけるバスブリッジの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the bus bridge in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における管理情報書込処理の一例を示すブロック図である。It is a block diagram which shows an example of the management information write-in process in the 2nd Embodiment of this invention. 本発明の第2の実施の形態における管理情報読出処理の一例を示すフローチャートである。It is a flowchart which shows an example of the management information read-out process in the 2nd Embodiment of this invention. 本発明の第3の実施の形態におけるバスブリッジの一構成例を示すブロック図である。It is a block diagram which shows the example of 1 structure of the bus bridge in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるFIFOメモリ群の一構成例を示す図である。It is a figure which shows one structural example of the FIFO memory group in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるバスブリッジの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the bus bridge in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるエントリ番号書込処理の一例を示すフローチャートである。It is a flowchart which shows an example of the entry number write-in process in the 3rd Embodiment of this invention. 本発明の第3の実施の形態におけるエントリ番号読出処理の一例を示すフローチャートである。It is a flowchart which shows an example of the entry number read-out process in the 3rd Embodiment of this invention.

以下、本発明を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(FIFOメモリにバッファエントリ番号を保持する例)
2.第2の実施の形態(FIFOメモリをグループごとに設ける例)
3.第3の実施の形態(オーバーフローFIFOを設ける例)
Hereinafter, modes for carrying out the present invention (hereinafter referred to as embodiments) will be described. The description will be made in the following order.
1. First Embodiment (Example in which buffer entry number is held in FIFO memory)
2. Second embodiment (example in which a FIFO memory is provided for each group)
3. Third embodiment (example of providing an overflow FIFO)

<1.第1の実施の形態>
[バスシステムの構成]
図1は、本発明の第1の実施の形態におけるバスシステムの全体図の一例である。バスシステムは、M台のマスタ110と、AXIバス120および130と、N台のスレーブ140と、バスブリッジ200とを備える。MおよびNは、それぞれ、1以上の整数である。マスタ110はAXIバス120に接続されており、スレーブ140はAXIバス130に接続されている。また、AXIバス120および130は、バスブリッジ200に接続されている。
<1. First Embodiment>
[Bus system configuration]
FIG. 1 is an example of an overall view of the bus system according to the first embodiment of the present invention. The bus system includes M masters 110, AXI buses 120 and 130, N slaves 140, and a bus bridge 200. M and N are each an integer of 1 or more. The master 110 is connected to the AXI bus 120, and the slave 140 is connected to the AXI bus 130. The AXI buses 120 and 130 are connected to the bus bridge 200.

マスタ110はデータ転送を主導する接続機器であり、スレーブ140は受動的に動作する接続機器である。マスタ110としては、例えばプロセッサが想定される。スレーブ140としては、例えばメモリが想定される。   The master 110 is a connection device that leads data transfer, and the slave 140 is a connection device that operates passively. As the master 110, for example, a processor is assumed. For example, a memory is assumed as the slave 140.

AXIバス120および130は、AXIプロトコルに従ってデータを転送するバスである。バスブリッジ200は、AXIプロトコルに従ってデータを転送し、そのデータ転送において必要に応じてデータ変換を行うものである。例えば、バスブリッジ200は、AXIバス120および130のそれぞれのバス幅やエンディアン方式が異なる場合に、転送先のバスのバス幅等に合わせてデータ変換を行う。   The AXI buses 120 and 130 are buses for transferring data according to the AXI protocol. The bus bridge 200 transfers data according to the AXI protocol, and performs data conversion as necessary in the data transfer. For example, when the bus widths and endian systems of the AXI buses 120 and 130 are different, the bus bridge 200 performs data conversion according to the bus width of the transfer destination bus.

ここで、AXIプロトコルでは、リード動作のためのパスとして、リードアドレスチャネルおよびリードデータチャネルが用意されている。マスタ110からリードアドレスチャネルを介してスレーブ140にリードアドレスを含むリクエストが転送されると、これに応答してリードデータチャネルを介してスレーブ140からマスタ110にリードデータが転送される。また、AXIプロトコルでは、ライト動作のためのパスとして、ライトアドレスチャネル、ライトデータチャネルおよびライトレスポンスチャネルが用意されている。マスタ110からライトアドレスチャネルおよびライトデータチャネルを介してスレーブ140にリクエストが転送されると、これに応答してスレーブ140においてライト動作が行われる。そして、そのライト動作の結果が、ライトレスポンスチャネルを介してスレーブ140からマスタ110に転送される。   Here, in the AXI protocol, a read address channel and a read data channel are prepared as paths for a read operation. When a request including a read address is transferred from the master 110 to the slave 140 via the read address channel, read data is transferred from the slave 140 to the master 110 via the read data channel in response to the request. In the AXI protocol, a write address channel, a write data channel, and a write response channel are prepared as paths for a write operation. When a request is transferred from the master 110 to the slave 140 via the write address channel and the write data channel, a write operation is performed in the slave 140 in response thereto. Then, the result of the write operation is transferred from the slave 140 to the master 110 via the write response channel.

以下、マスタからスレーブへリードアドレスチャネルおよびライトアドレスチャネルを介して転送される信号をリクエストと称する。また、スレーブからマスタへリードデータチャネルおよびライトレスポンスチャネルを介して転送される信号をレスポンスと称する。   Hereinafter, a signal transferred from the master to the slave via the read address channel and the write address channel is referred to as a request. A signal transferred from the slave to the master via the read data channel and the write response channel is called a response.

AXIプロトコルにおいては、リクエストの転送処理と、そのリクエストに対応するレスポンスの転送処理とが1つのトランザクションの処理を形成する。1つのトランザクションに含まれるリクエストおよびレスポンスには同じ識別子が付与されるのがAXIプロトコルにおける原則である。また、異なるトランザクション間で同じ識別子を付与した場合には、それらのトランザクション間において順序保証が行われる。   In the AXI protocol, a request transfer process and a response transfer process corresponding to the request form one transaction process. The principle in the AXI protocol is that the same identifier is given to a request and a response included in one transaction. When the same identifier is assigned between different transactions, the order is guaranteed between those transactions.

なお、上述の実施の形態のバスブリッジ200は、特許請求の範囲に記載の相互接続装置の一例である。   Note that the bus bridge 200 according to the above-described embodiment is an example of the interconnection device described in the claims.

[AXIプロトコルにおけるチャネル構成]
図2は、AXIプロトコルにおけるリードアドレスチャネルを構成する信号を示す図である。リードアドレスチャネルは、リードアドレスをマスタ110からスレーブ140に伝達するためのチャネルである。このリードアドレスチャネルは、リードアドレス識別子、リードアドレス、バースト長、バーストサイズ、バーストタイプ、ロックタイプ、キャッシュタイプ、プロテクションタイプ、リードアドレスバリッド、リードアドレスレディの各信号からなる。これらの信号のうち、リードアドレスレディのみがスレーブ140からの信号であり、これ以外はマスタ110からの信号である。
[Channel configuration in AXI protocol]
FIG. 2 is a diagram showing signals constituting a read address channel in the AXI protocol. The read address channel is a channel for transmitting a read address from the master 110 to the slave 140. The read address channel includes a read address identifier, a read address, a burst length, a burst size, a burst type, a lock type, a cache type, a protection type, a read address valid signal, and a read address ready signal. Of these signals, only the read address ready is a signal from the slave 140, and the other signals are signals from the master 110.

リードアドレス識別子ARID[3:0]は、信号のリードアドレスグループを識別するための4ビットのタグである。AXIプロトコルでは、マスタがトランザクションを発行する際に、スレーブに対して順序関係を維持することを要求する場合には、同じ識別子を付与することとされている。換言すれば、識別子が異なるトランザクション間では順序関係が維持される保証はない。   The read address identifier ARID [3: 0] is a 4-bit tag for identifying the read address group of the signal. In the AXI protocol, when the master issues a transaction, the same identifier is assigned when the slave requests to maintain the order relationship. In other words, there is no guarantee that the order relationship is maintained between transactions having different identifiers.

リードアドレスARADDR[31:0]は、リード対象となる32ビットのアドレスであり、バースト転送における初期アドレスを示す信号である。   The read address ARADDR [31: 0] is a 32-bit address to be read and is a signal indicating an initial address in burst transfer.

バースト長ARLEN[3:0]は、バースト転送のデータ数を示す4ビットの信号である。「1」から「16」の何れかのデータ数が4ビットにエンコードされて示される。   The burst length ARLEN [3: 0] is a 4-bit signal indicating the number of data for burst transfer. Any number of data from “1” to “16” is encoded into 4 bits.

バーストサイズARSIZE[2:0]は、バースト転送の各回における転送サイズを示す3ビットの信号である。「20」、「21」、「22」、「23」、「24」、「25」、「26」、「27」の何れかの転送サイズが3ビットにエンコードされて示される。 The burst size ARSIZE [2: 0] is a 3-bit signal indicating the transfer size at each burst transfer. Any transfer size of “2 0 ”, “2 1 ”, “2 2 ”, “2 3 ”, “2 4 ”, “2 5 ”, “2 6 ”, “2 7 ” is encoded to 3 bits Shown.

バーストタイプARBURST[1:0]は、バースト転送のアドレス計算のタイプを示す2ビットの信号である。具体的には、FIFO型、連続アクセス、キャッシュラインの何れかのタイプを指定できるようになっている。   The burst type ARBURST [1: 0] is a 2-bit signal indicating the type of burst transfer address calculation. Specifically, any one of FIFO type, continuous access, and cache line can be designated.

ロックタイプARLOCK[1:0]は、アトミックアクセスのための情報を示す2ビットの信号である。具体的には、ノーマルアクセス、排他的アクセス、ロック付きアクセスの何れかのタイプを指定できるようになっている。   The lock type ARLOCK [1: 0] is a 2-bit signal indicating information for atomic access. Specifically, any type of normal access, exclusive access, and locked access can be designated.

キャッシュタイプARCACHE[3:0]は、キャッシュメモリ制御に必要な情報を示す4ビットの信号である。具体的には、キャッシュ可能か否か、ライトスルーかライトバックか等の制御情報が示される。   The cache type ARCACHE [3: 0] is a 4-bit signal indicating information necessary for cache memory control. Specifically, control information such as whether cache is possible or not, whether write-through or write-back is shown.

プロテクションタイプARPROT[2:0]は、プロテクション制御に必要な情報を示す3ビットの信号である。具体的には、特権アクセス、非セキュアアクセス、インストラクションアクセスの各プロテクションレベルを指定できるようになっている。   The protection type ARPROT [2: 0] is a 3-bit signal indicating information necessary for protection control. Specifically, each protection level of privileged access, non-secure access, and instruction access can be designated.

リードアドレスバリッドARVALIDは、アドレスおよび制御信号の有効性を示すバリッド信号である。リードアドレスレディARREADYは、スレーブ140がアドレスおよび制御信号を受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、リードアドレスバリッドARVALIDおよびリードアドレスレディARREADYがともにアサートされているときに、アドレスおよび制御信号の転送が行われる。   The read address valid ARVALID is a valid signal indicating the validity of the address and control signal. The read address ready ARREADY is a ready signal indicating whether or not the slave 140 is ready to receive an address and a control signal. As described above, when both the read address valid ARVALID and the read address ready ARREADY are asserted, the address and the control signal are transferred.

図3は、AXIプロトコルにおけるリードデータチャネルを構成する信号を示す図である。リードデータチャネルは、リードデータをスレーブ140からマスタ110に転送するためのチャネルである。このリードデータチャネルは、リード識別子タグ、リードデータ、リードレスポンス、リードラスト、リードバリッド、リードレディの各信号からなる。これらの信号のうち、リードレディのみがマスタ110からの信号であり、これ以外はスレーブ140からの信号である。   FIG. 3 is a diagram showing signals constituting the read data channel in the AXI protocol. The read data channel is a channel for transferring read data from the slave 140 to the master 110. The read data channel includes a read identifier tag, read data, read response, read last, read valid, and read ready signals. Of these signals, only read ready is a signal from the master 110, and other signals are signals from the slave 140.

リード識別子タグRID[3:0]は、信号のリードデータグループを識別するための4ビットのタグである。このリード識別子タグRID[3:0]はスレーブにおいて生成されるものであり、同一のトランザクションにおいてリードアドレス識別子ARID[3:0]と一致していなければならない。   The read identifier tag RID [3: 0] is a 4-bit tag for identifying a read data group of a signal. The read identifier tag RID [3: 0] is generated in the slave, and must match the read address identifier ARID [3: 0] in the same transaction.

リードデータRDATA[31:0]は、リードトランザクションによるスレーブ140からのリードデータである。ここでは32ビット幅のリードデータバスを想定したが、RDATAのビット幅はリードデータバス幅に応じて変化する。リードデータバスは、8、16、32、64、128、256、512および1024の何れかのビット幅を有する。   Read data RDATA [31: 0] is read data from the slave 140 by a read transaction. Although a 32-bit read data bus is assumed here, the bit width of RDATA changes according to the read data bus width. The read data bus has a bit width of 8, 16, 32, 64, 128, 256, 512, or 1024.

リードレスポンスRRESP[1:0]は、リードトランザクションによるデータ転送の状態を示す2ビットの信号である。例えば、リードレスポンスには、リードアクセスの成功または失敗を示す信号が含まれる。   The read response RRESP [1: 0] is a 2-bit signal indicating the state of data transfer by the read transaction. For example, the read response includes a signal indicating success or failure of the read access.

リードラストRLASTは、当該データがリードトランザクションにおける最終のデータ転送である旨を示す信号である。   The read last RLAST is a signal indicating that the data is the final data transfer in the read transaction.

リードバリッドRVALIDは、要求されたリードデータの有効性を示すバリッド信号である。リードレディRREADYは、マスタ110がリードデータを受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、リードバリッドRVALIDおよびリードレディRREADYがともにアサートされているときに、リードデータの転送が行われる。   The read valid RVALID is a valid signal indicating the validity of the requested read data. The read ready RREADY is a ready signal indicating whether or not the master 110 is ready to receive read data. As described above, read data is transferred when both the read valid RVALID and the read ready RREADY are asserted.

図4は、AXIプロトコルにおけるライトアドレスチャネルを構成する信号を示す図である。ライトアドレスチャネルは、ライトアドレスをマスタ110からスレーブ140に伝達するためのチャネルである。このライトアドレスチャネルは、ライトアドレス識別子、ライトアドレス、バースト長、バーストサイズ、バーストタイプ、ロックタイプ、キャッシュタイプ、プロテクションタイプ、ライトアドレスバリッド、ライトアドレスレディの各信号からなる。これらの信号のうち、ライトアドレスレディのみがスレーブ140からの信号であり、これ以外はマスタ110からの信号である。   FIG. 4 is a diagram showing signals constituting the write address channel in the AXI protocol. The write address channel is a channel for transmitting a write address from the master 110 to the slave 140. The write address channel includes a write address identifier, a write address, a burst length, a burst size, a burst type, a lock type, a cache type, a protection type, a write address valid signal, and a write address ready signal. Of these signals, only the write address ready is a signal from the slave 140, and the other signals are signals from the master 110.

ライトアドレス識別子AWID[3:0]は、信号のライトアドレスグループを識別するための4ビットのタグである。ライトアドレスAWADDR[31:0]は、ライト対象となる32ビットのアドレスであり、バースト転送における初期アドレスを示す信号である。   The write address identifier AWID [3: 0] is a 4-bit tag for identifying the write address group of the signal. The write address AWADDR [31: 0] is a 32-bit address to be written and is a signal indicating an initial address in burst transfer.

バースト長AWLEN[3:0]は、バースト転送のデータ数を示す4ビットの信号である。バーストサイズAWSIZE[2:0]は、バースト転送の各回における転送サイズを示す3ビットの信号である。バーストタイプAWBURST[1:0]は、バースト転送のアドレス計算のタイプを示す2ビットの信号である。ロックタイプAWLOCK[1:0]は、アトミックアクセスのための情報を示す2ビットの信号である。キャッシュタイプAWCACHE[3:0]は、キャッシュメモリ制御に必要な情報を示す4ビットの信号である。プロテクションタイプAWPROT[2:0]は、プロテクション制御に必要な情報を示す3ビットの信号である。これらは基本的にリードアドレスチャネルの場合と同様である。   The burst length AWLEN [3: 0] is a 4-bit signal indicating the number of data for burst transfer. The burst size AWSIZE [2: 0] is a 3-bit signal indicating the transfer size at each burst transfer. The burst type AWBURST [1: 0] is a 2-bit signal indicating the type of address calculation for burst transfer. The lock type AULOCK [1: 0] is a 2-bit signal indicating information for atomic access. The cache type AWCACHE [3: 0] is a 4-bit signal indicating information necessary for cache memory control. The protection type AWPROT [2: 0] is a 3-bit signal indicating information necessary for protection control. These are basically the same as in the case of the read address channel.

ライトアドレスバリッドAWVALIDは、アドレスおよび制御信号の有効性を示すバリッド信号である。ライトアドレスレディAWREADYは、スレーブ140がアドレスおよび制御信号を受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、ライトアドレスバリッドAWVALIDおよびライトアドレスレディAWREADYがともにアサートされているときに、アドレスおよび制御信号の転送が行われる。   The write address valid AWVALID is a valid signal indicating the validity of the address and control signal. The write address ready AWREADY is a ready signal indicating whether or not the slave 140 is ready to receive an address and a control signal. As described above, when the write address valid AWVALID and the write address ready AWREADY are both asserted, the address and the control signal are transferred.

図5は、AXIプロトコルにおけるライトデータチャネルを構成する信号を示す図である。ライトデータチャネルは、ライトデータをマスタ110からスレーブ140に転送するためのチャネルである。このライトデータチャネルは、ライト識別子タグ、ライトデータ、ライトストローブ、ライトラスト、ライトバリッド、ライトレディの各信号からなる。これらの信号のうち、ライトレディのみがスレーブ140からの信号であり、これ以外はマスタ110からの信号である。   FIG. 5 is a diagram showing signals constituting the write data channel in the AXI protocol. The write data channel is a channel for transferring write data from the master 110 to the slave 140. The write data channel includes a write identifier tag, write data, write strobe, write last, write valid, and write ready signals. Of these signals, only the write ready is a signal from the slave 140, and the other signals are signals from the master 110.

ライト識別子タグWID[3:0]は、信号のライトデータグループを識別するための4ビットのタグである。このライト識別子タグWID[3:0]は、同一のトランザクションにおいてライトアドレス識別子AWID[3:0]と一致していなければならない。   The write identifier tag WID [3: 0] is a 4-bit tag for identifying the write data group of the signal. This write identifier tag WID [3: 0] must match the write address identifier AWID [3: 0] in the same transaction.

ライトデータWDATA[31:0]は、ライトトランザクションによるスレーブ140へのライトデータである。ここでは32ビット幅のライトデータバスを想定したが、WDATAのビット幅はリードデータバス幅に応じて変化する。ライトデータバスは、8、16、32、64、128、256、512および1024の何れかのビット幅を有する。   Write data WDATA [31: 0] is write data to the slave 140 by a write transaction. Although a 32-bit write data bus is assumed here, the bit width of WDATA changes according to the read data bus width. The write data bus has a bit width of 8, 16, 32, 64, 128, 256, 512, or 1024.

ライトストローブWSTRB[3:0]は、スレーブ140のメモリにおいて更新されるべきバイト位置を示す4ビットの信号である。ライトデータバスの8ビット毎にライトストローブWSTRB[3:0]の1ビットが割り当てられる。すなわち、[3:0]の値をiとすると、WSTRB[i]は、WDATA[(8×i)+7:(8×i)]に対応する。   Write strobe WSTRB [3: 0] is a 4-bit signal indicating the byte position to be updated in the memory of slave 140. One bit of the write strobe WSTRB [3: 0] is assigned for every 8 bits of the write data bus. That is, if the value of [3: 0] is i, WSTRB [i] corresponds to WDATA [(8 × i) +7: (8 × i)].

ライトラストWLASTは、当該データがライトトランザクションにおける最終のデータ転送である旨を示す信号である。   The write last WLAST is a signal indicating that the data is the final data transfer in the write transaction.

ライトバリッドWVALIDは、ライトデータの有効性を示すバリッド信号である。ライトレディWREADYは、スレーブ140がライトデータを受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、ライトバリッドWVALIDおよびライトレディWREADYがともにアサートされているときに、ライトデータの転送が行われる。   The write valid WVALID is a valid signal indicating the validity of the write data. The write ready WREADY is a ready signal indicating whether or not the slave 140 is ready to receive write data. As described above, the write data is transferred when both the write valid WVALID and the write ready WREADY are asserted.

図6は、AXIプロトコルにおけるライトレスポンスチャネルを構成する信号を示す図である。ライトレスポンスチャネルは、ライトトランザクションの結果をスレーブ140からマスタ110に伝達するためのチャネルである。このライトレスポンスチャネルは、レスポンス識別子、ライトレスポンス、ライトレスポンスバリッド、レスポンスレディの各信号からなる。これらの信号のうち、レスポンスレディのみがマスタ110からの信号であり、これ以外はスレーブ140からの信号である。   FIG. 6 is a diagram showing signals constituting a write response channel in the AXI protocol. The write response channel is a channel for transmitting the result of the write transaction from the slave 140 to the master 110. The write response channel is composed of response identifier, write response, write response valid, and response ready signals. Of these signals, only the response ready is a signal from the master 110, and the other signals are signals from the slave 140.

レスポンス識別子BID[3:0]は、ライトレスポンスを識別するための4ビットのタグである。このレスポンス識別子BID[3:0]は、同一のトランザクションにおいてライトアドレス識別子AWID[3:0]と一致していなければならない。   The response identifier BID [3: 0] is a 4-bit tag for identifying the write response. This response identifier BID [3: 0] must match the write address identifier AWID [3: 0] in the same transaction.

ライトレスポンスBRESP[1:0]は、ライトトランザクションによるデータ転送の状態を示す2ビットの信号である。例えば、ライトレスポンスには、ライトアクセスの成功または失敗を示す信号が含まれる。   Write response BRESP [1: 0] is a 2-bit signal indicating the state of data transfer by a write transaction. For example, the write response includes a signal indicating success or failure of the write access.

ライトレスポンスバリッドBVALIDは、ライトレスポンスの有効性を示すバリッド信号である。レスポンスレディBREADYは、マスタ110がライトレスポンスを受け取ることができる状態にあるか否かを示すレディ信号である。前述のように、ライトレスポンスバリッドBVALIDおよびレスポンスレディBREADYがともにアサートされているときに、ライトレスポンスの伝達が行われる。   The write response valid BVALID is a valid signal indicating the validity of the write response. The response ready BREADY is a ready signal indicating whether or not the master 110 is ready to receive a write response. As described above, the write response is transmitted when both the write response valid BVALID and the response ready BREADY are asserted.

[バスブリッジの構成]
図7は、本発明の第1の実施の形態におけるバスブリッジ200の一構成例を示すブロック図である。バスブリッジ200は、相互接続部300、FIFOメモリ群400、バッファ450、トランザクション情報書込部500、エントリ番号書込部550、エントリ番号読出部600、および、トランザクション情報読出部650を備える。
[Bus bridge configuration]
FIG. 7 is a block diagram showing a configuration example of the bus bridge 200 according to the first embodiment of the present invention. The bus bridge 200 includes an interconnecting unit 300, a FIFO memory group 400, a buffer 450, a transaction information writing unit 500, an entry number writing unit 550, an entry number reading unit 600, and a transaction information reading unit 650.

相互接続部300は、リクエストおよびレスポンスをマスタ110およびスレーブ140間で転送するものである。詳細には、AXIバス120から信号線802を介してリクエストを受信した場合、相互接続部300は、信号線801を介してリクエストに係るバリッド信号を取得し、信号線817を介して対応するレディ信号を取得する。以下、バリッド信号およびレディ信号をハンドシェイク信号と称する。リクエストに係るレディ信号およびバリッド信号がアサートされていれば、相互接続部300は、そのリクエストをトランザクション情報書込部500に信号線804を介して出力する。トランザクション情報書込部500から信号線806を介してバッファフル通知を受け取った場合、相互接続部300は、リクエストに係るレディ信号をネゲートし、信号線801を介してAXIバス120へ出力する。ここで、バッファフル通知とは、バッファ450にデータを保持できないことを示す情報である。バッファフル通知を受け取らなかった場合、相互接続部300は、そのリクエストをAXIバス130に信号線818を介して転送する。   The interconnection unit 300 transfers requests and responses between the master 110 and the slave 140. Specifically, when a request is received from the AXI bus 120 via the signal line 802, the interconnection unit 300 acquires a valid signal related to the request via the signal line 801, and receives a corresponding ready signal via the signal line 817. Get the signal. Hereinafter, the valid signal and the ready signal are referred to as a handshake signal. If the ready signal and valid signal relating to the request are asserted, the interconnecting unit 300 outputs the request to the transaction information writing unit 500 via the signal line 804. When the buffer full notification is received from the transaction information writing unit 500 via the signal line 806, the interconnection unit 300 negates the ready signal related to the request and outputs it to the AXI bus 120 via the signal line 801. Here, the buffer full notification is information indicating that data cannot be held in the buffer 450. If the buffer full notification is not received, the interconnection unit 300 transfers the request to the AXI bus 130 via the signal line 818.

また、AXIバス130から信号線819を介してレスポンスを受信した場合、相互接続部300は、信号線817を介してレスポンスに係るバリッド信号を取得し、信号線801を介して対応するレディ信号を取得する。バリッド信号およびレディ信号がアサートされていれば、相互接続部300は、信号線811を介してレスポンスをエントリ番号読出部600およびトランザクション情報読出部650に出力する。そして、相互接続部300は、信号線816を介してトランザクション情報読出部650からレスポンスに対応するトランザクション情報を受け取る。ここで、トランザクション情報は、レスポンスの転送処理を制御するための情報である。トランザクション情報が含む情報の詳細については後述する。相互接続部300は、受け取ったトランザクション情報に基づき、信号線803を介してレスポンスをAXIバス120へ転送する。   Further, when a response is received from the AXI bus 130 via the signal line 819, the interconnection unit 300 acquires a valid signal related to the response via the signal line 817, and sends a corresponding ready signal via the signal line 801. get. If the valid signal and the ready signal are asserted, interconnecting unit 300 outputs a response to entry number reading unit 600 and transaction information reading unit 650 via signal line 811. The interconnection unit 300 receives transaction information corresponding to the response from the transaction information reading unit 650 via the signal line 816. The transaction information is information for controlling response transfer processing. Details of the information included in the transaction information will be described later. The interconnection unit 300 transfers the response to the AXI bus 120 via the signal line 803 based on the received transaction information.

FIFOメモリ群400は、先入れ先出し方式でデータを保持するものである。FIFOメモリ群400には、トランザクション識別子IDごとにFIFOメモリが設けられる。各FIFOメモリは、データを保持するための領域を1つ以上備える。以下、この領域をFIFOエントリと称する。各FIFOメモリのFIFOエントリ数は、バスシステムが許容する未解決なトランザクション数の最大値以上とされる。例えば、バスシステムが許容する未解決のトランザクション数の最大値が16個である場合、各FIFOメモリには、少なくとも16個のFIFOエントリが設けられる。また、各FIFOメモリは、データとしてバッファエントリ番号を保持する。ここで、バッファエントリは、バッファ450におけるデータを保持するための領域であり、バッファエントリ番号は、バッファエントリを識別するための番号である。   The FIFO memory group 400 holds data by a first-in first-out method. The FIFO memory group 400 is provided with a FIFO memory for each transaction identifier ID. Each FIFO memory has one or more areas for holding data. Hereinafter, this area is referred to as a FIFO entry. The number of FIFO entries in each FIFO memory is equal to or greater than the maximum number of outstanding transactions allowed by the bus system. For example, when the maximum number of unresolved transactions allowed by the bus system is 16, each FIFO memory is provided with at least 16 FIFO entries. Each FIFO memory holds a buffer entry number as data. Here, the buffer entry is an area for holding data in the buffer 450, and the buffer entry number is a number for identifying the buffer entry.

バッファ450は、トランザクション情報を保持するものである。バッファ450は、1つ以上のバッファエントリを備える。バッファ450に設けられるバッファエントリの数は、バスシステムが許容する未解決なトランザクションの最大値以上とされる。例えば、バスシステムが許容する未解決のトランザクションの最大数が16個である場合、少なくとも16個のバッファエントリが設けられる。各バッファエントリには、有効フラグ保持領域とトランザクション情報保持領域とが設けられる。有効フラグ保持領域には、有効フラグが保持される。有効フラグは、バッファエントリのトランザクション情報保持領域に保持されているデータが有効であることを示すビット情報である。例えば、データが有効である場合に有効フラグに「1」が設定され、無効である場合に「0」が設定される。トランザクション情報保持領域には、トランザクション情報が保持される。   The buffer 450 holds transaction information. The buffer 450 comprises one or more buffer entries. The number of buffer entries provided in the buffer 450 is greater than or equal to the maximum number of outstanding transactions allowed by the bus system. For example, if the maximum number of outstanding transactions allowed by the bus system is 16, at least 16 buffer entries are provided. Each buffer entry is provided with a valid flag holding area and a transaction information holding area. The validity flag is held in the validity flag holding area. The valid flag is bit information indicating that the data held in the transaction information holding area of the buffer entry is valid. For example, “1” is set in the valid flag when the data is valid, and “0” is set when the data is invalid. Transaction information is held in the transaction information holding area.

トランザクション情報書込部500は、トランザクション情報をバッファ450に書き込むものである。詳細には、トランザクション情報書込部500は、相互接続部300からリクエストを受け取ると、信号線807を介してバッファ450の各バッファエントリの有効フラグを参照する。有効フラグが全て有効である場合、トランザクション情報書込部500は、バッファフル通知を発行して相互接続部300へ出力する。有効フラグのいずれかが無効である場合、トランザクション情報書込部500は、有効フラグが無効のバッファエントリのうちのいずれかを選択する。トランザクション情報書込部500は、リクエストに基づいてトランザクション情報を生成し、選択したバッファエントリに書き込む。トランザクション情報書込部500は、トランザクション情報を書き込んだバッファエントリの有効フラグを有効にする。また、トランザクション情報書込部500は、選択したバッファエントリ番号とリクエストに係るトランザクション識別子IDとをエントリ番号書込部550へ信号線808および信号線809を介して出力する。   The transaction information writing unit 500 writes transaction information in the buffer 450. Specifically, when the transaction information writing unit 500 receives a request from the interconnection unit 300, the transaction information writing unit 500 refers to the valid flag of each buffer entry of the buffer 450 via the signal line 807. When all the valid flags are valid, the transaction information writing unit 500 issues a buffer full notification and outputs it to the interconnection unit 300. If any of the valid flags is invalid, the transaction information writing unit 500 selects one of the buffer entries for which the valid flag is invalid. The transaction information writing unit 500 generates transaction information based on the request and writes it in the selected buffer entry. The transaction information writing unit 500 validates the validity flag of the buffer entry in which the transaction information is written. The transaction information writing unit 500 outputs the selected buffer entry number and the transaction identifier ID related to the request to the entry number writing unit 550 via the signal line 808 and the signal line 809.

エントリ番号書込部550は、トランザクション情報書込部500によって選択されたバッファエントリ番号を、トランザクション識別子IDに対応するFIFOメモリに信号線810を介して書き込むものである。   The entry number writing unit 550 writes the buffer entry number selected by the transaction information writing unit 500 to the FIFO memory corresponding to the transaction identifier ID via the signal line 810.

エントリ番号読出部600は、トランザクション識別子IDに対応するFIFOメモリからバッファエントリ番号を読み出すものである。詳細には、エントリ番号読出部600は、相互接続部300からレスポンスを受け取ると、そのレスポンスに係るトランザクション識別子IDを取得する。エントリ番号読出部600は、取得したトランザクション識別子IDに対応するFIFOメモリから信号線812を介してバッファエントリ番号を読み出す。エントリ番号読出部600は、読み出したバッファエントリ番号をトランザクション情報読出部650へ信号線813を介して出力する。   The entry number reading unit 600 reads the buffer entry number from the FIFO memory corresponding to the transaction identifier ID. Specifically, when the entry number reading unit 600 receives a response from the interconnection unit 300, the entry number reading unit 600 acquires a transaction identifier ID related to the response. The entry number reading unit 600 reads the buffer entry number from the FIFO memory corresponding to the acquired transaction identifier ID via the signal line 812. Entry number reading unit 600 outputs the read buffer entry number to transaction information reading unit 650 via signal line 813.

トランザクション情報読出部650は、エントリ番号読出部600によって読み出されたバッファエントリ番号のバッファエントリから、トランザクション情報を読み出すものである。詳細には、トランザクション情報読出部650は、エントリ番号読出部600によりバッファエントリ番号が読み出されると、そのバッファエントリ番号のバッファエントリから信号線814を介してトランザクション情報を読み出す。トランザクション情報読出部650は、読み出したトランザクション情報を相互接続部300へ信号線816を介して出力する。レスポンスがバースト転送における最終のデータである場合またはライトレスポンスである場合、トランザクション情報読出部650は、信号線815を介してエントリの有効フラグを無効にする情報をバッファ450へ出力する。レスポンスがバースト転送における最終のデータでない場合、トランザクション情報読出部650は、エントリにおけるトランザクション情報を更新する。例えば、トランザクション情報読出部650は、トランザクション情報におけるバーストカウントをカウントアップする。   The transaction information reading unit 650 reads transaction information from the buffer entry having the buffer entry number read by the entry number reading unit 600. Specifically, when the entry number reading unit 600 reads the buffer entry number, the transaction information reading unit 650 reads transaction information from the buffer entry of the buffer entry number via the signal line 814. Transaction information reading unit 650 outputs the read transaction information to interconnection unit 300 via signal line 816. When the response is the final data in the burst transfer or the write response, the transaction information reading unit 650 outputs information for invalidating the entry valid flag to the buffer 450 via the signal line 815. If the response is not the final data in the burst transfer, the transaction information reading unit 650 updates the transaction information in the entry. For example, the transaction information reading unit 650 counts up the burst count in the transaction information.

なお、上述の実施の形態のFIFOメモリは、特許請求の範囲に記載の先入れ先出しメモリの一例である。上述の実施の形態のエントリ番号書込部は、特許請求の範囲に記載の領域情報書込部の一例であり、エントリ番号読出部は、特許請求の範囲に記載の領域情報読出部の一例である。上述の実施の形態のバッファエントリ番号は、特許請求の範囲に記載の領域情報の一例である。   The FIFO memory according to the above-described embodiment is an example of a first-in first-out memory described in the claims. The entry number writing unit of the above-described embodiment is an example of the region information writing unit described in the claims, and the entry number reading unit is an example of the region information reading unit described in the claims. is there. The buffer entry number in the above-described embodiment is an example of area information described in the claims.

図8は、本発明の第1の実施の形態における相互接続部300の一構成例を示すブロック図である。相互接続部300は、変換情報生成器310および330を備える。   FIG. 8 is a block diagram illustrating a configuration example of the interconnecting unit 300 according to the first embodiment of the present invention. Interconnect 300 includes conversion information generators 310 and 330.

変換情報生成器310は、AXIバス120から受信したリクエストをAXIバス130の仕様に基づき必要に応じて変換するものである。詳細には、変換情報生成器310は、AXIバス120からリクエストを受信した場合、リクエストに係るハンドシェイク信号を取得する。リクエストに係るバリッド信号およびレディ信号がアサートされたのであれば、変換情報生成器310は、リクエストをトランザクション情報書込部500へ出力する。トランザクション情報書込部500からバッファフル通知を受け取った場合、変換情報生成器310は、レディ信号をネゲートしてAXIバス120へ出力する。トランザクション情報書込部500からバッファフル通知を受け取らなかった場合、変換情報生成器310は、リクエストを必要に応じて変換してAXIバス130に出力する。   The conversion information generator 310 converts the request received from the AXI bus 120 as necessary based on the specifications of the AXI bus 130. Specifically, when the conversion information generator 310 receives a request from the AXI bus 120, the conversion information generator 310 acquires a handshake signal related to the request. If the valid signal and ready signal related to the request are asserted, the conversion information generator 310 outputs the request to the transaction information writing unit 500. When receiving the buffer full notification from the transaction information writing unit 500, the conversion information generator 310 negates the ready signal and outputs it to the AXI bus 120. If the buffer information notification is not received from the transaction information writing unit 500, the conversion information generator 310 converts the request as necessary and outputs the request to the AXI bus 130.

変換情報生成器330は、AXIバス130から受信したレスポンスをAXIバス120の仕様およびトランザクション情報に基づき必要に応じて変換するものである。詳細には、変換情報生成器330は、AXIバス130からレスポンスを受信した場合、レスポンスに係るレディ信号およびバリッド信号を取得する。レスポンスに係るバリッド信号およびレディ信号がアサートされたのであれば、変換情報生成器330は、レスポンスをエントリ番号読出部600およびトランザクション情報読出部650に出力する。そして、変換情報生成器330は、そのレスポンスに対応するトランザクション情報をトランザクション情報読出部650から受け取る。変換情報生成器330は、そのトランザクション情報に基づいて、必要に応じてレスポンスを変換してAXIバス120に出力する。例えば、変換情報生成器330は、トランザクション情報の示すバースト転送の方式や転送先のバスのバス幅等に応じて転送データを結合または分割する。   The conversion information generator 330 converts the response received from the AXI bus 130 as necessary based on the specifications of the AXI bus 120 and transaction information. Specifically, when receiving a response from the AXI bus 130, the conversion information generator 330 acquires a ready signal and a valid signal related to the response. If the valid signal and ready signal related to the response are asserted, conversion information generator 330 outputs the response to entry number reading unit 600 and transaction information reading unit 650. Then, the conversion information generator 330 receives transaction information corresponding to the response from the transaction information reading unit 650. The conversion information generator 330 converts the response as necessary based on the transaction information and outputs the response to the AXI bus 120. For example, the conversion information generator 330 combines or divides the transfer data according to the burst transfer method indicated by the transaction information, the bus width of the transfer destination bus, or the like.

図9は、本発明の第1の実施の形態におけるFIFOメモリ群400の一構成例を示す図である。FIFOメモリ群400には、トランザクション識別子IDごとにFIFOメモリが設けられる。例えば、トランザクション識別子IDが0乃至255である場合、それらの識別子に対応させてF[0]乃至[255]のFIFOメモリが設けられる。   FIG. 9 is a diagram illustrating a configuration example of the FIFO memory group 400 according to the first embodiment of the present invention. The FIFO memory group 400 is provided with a FIFO memory for each transaction identifier ID. For example, when the transaction identifier ID is 0 to 255, FIFO memories F [0] to [255] are provided corresponding to these identifiers.

各FIFOメモリは、データ保持領域411、ライトポインタ保持領域412、および、フルフラグ保持領域413を備える。   Each FIFO memory includes a data holding area 411, a write pointer holding area 412, and a full flag holding area 413.

データ保持領域411には、データを保持するための領域(FIFOエントリ)が1つ以上、設けられる。例えば、バスシステムが許容する未解決のトランザクション数の最大値が16である場合、少なくとも16個のFIFOエントリが設けられる。   The data holding area 411 is provided with one or more areas (FIFO entries) for holding data. For example, if the maximum number of outstanding transactions allowed by the bus system is 16, at least 16 FIFO entries are provided.

ライトポインタ保持領域412は、ライトポインタを保持するための領域である。ライトポインタは、データを書き込むべき領域を示す情報である。図10における矢印は、ライトポインタの示す領域を指している。ライトポインタの初期値は0に設定される。先頭からi番目のFIFOエントリに末尾のデータが保持された場合、先頭からi+1番目を示すライトポインタが設定される。ただし、末尾のFIFOエントリに末尾のデータが保持された場合は、その末尾のFIFOエントリを示すライトポインタが設定される。   The write pointer holding area 412 is an area for holding a write pointer. The write pointer is information indicating an area in which data is to be written. An arrow in FIG. 10 indicates an area indicated by the write pointer. The initial value of the write pointer is set to 0. When the last data is held in the i-th FIFO entry from the top, a write pointer indicating the (i + 1) th from the top is set. However, when tail data is held in the tail FIFO entry, a write pointer indicating the tail FIFO entry is set.

フルフラグ保持領域413は、フルフラグを保持するものである。フルフラグは、FIFOメモリにデータを保持できないことを示す1ビットの情報である。例えば、末尾のFIFOエントリにデータが保持されている場合、フルフラグに「1」のデータが設定され、末尾のFIFOエントリにデータが保持されていない場合、フルフラグに「0」が設定される。フルフラグが「0」である場合、ライトポインタの示すFIFOエントリ以降のFIFOエントリに保持されているデータは無効であることを意味する。無効なデータを保持するFIFOエントリは、空になっている状態であるものとする。このため、フルフラグが「1」である場合、全てのデータが有効な状態となっている。   The full flag holding area 413 holds a full flag. The full flag is 1-bit information indicating that data cannot be held in the FIFO memory. For example, when data is held in the last FIFO entry, data “1” is set in the full flag, and when data is not held in the last FIFO entry, “0” is set in the full flag. When the full flag is “0”, it means that the data held in the FIFO entries after the FIFO entry indicated by the write pointer is invalid. It is assumed that the FIFO entry holding invalid data is in an empty state. Therefore, when the full flag is “1”, all data is in a valid state.

バスブリッジ200のエントリ番号書込部550は、FIFOメモリ群400のうちのトランザクション識別子IDに対応するFIFOメモリにおいてライトポインタの示す領域にバッファエントリ番号を書き込む。書込み時に、そのFIFOメモリのライトポインタが最大値(例えば、15)でない場合、エントリ番号書込部550は、そのライトポインタをインクリメントする。書込み時に、そのFIFOメモリのライトポインタが最大値である場合、エントリ番号書込部550は、フルフラグに「1」を設定する。   The entry number writing unit 550 of the bus bridge 200 writes the buffer entry number in the area indicated by the write pointer in the FIFO memory corresponding to the transaction identifier ID in the FIFO memory group 400. When the write pointer of the FIFO memory is not the maximum value (for example, 15) at the time of writing, the entry number writing unit 550 increments the write pointer. When the write pointer of the FIFO memory is the maximum value at the time of writing, the entry number writing unit 550 sets “1” in the full flag.

例えば、FIFOメモリF[0]においてバッファエントリ番号0が書き込まれた場合、先頭のFIFOエントリにバッファエントリ番号0が保持され、ライトポインタは初期値0から1に更新される。次いで、FIFOメモリF[0]にバッファエントリ番号1が書き込まれた場合、2番目FIFOエントリにバッファエントリ番号1が保持され、ライトポインタは初期値1から2に更新される。   For example, when the buffer entry number 0 is written in the FIFO memory F [0], the buffer entry number 0 is held in the first FIFO entry, and the write pointer is updated from the initial value 0 to 1. Next, when the buffer entry number 1 is written in the FIFO memory F [0], the buffer entry number 1 is held in the second FIFO entry, and the write pointer is updated from the initial value 1 to 2.

バスブリッジ200のエントリ番号読出部600は、FIFOメモリ群400のうちのトランザクション識別子IDに対応するFIFOメモリにおいて先頭のFIFOエントリからバッファエントリ番号を読み出す。先頭からの読み出しが行われると、エントリ番号読出部600は、そのFIFOメモリにおいて先頭から2番目以降のFIFOエントリに保持されているデータを先頭へ向けて順に1つずつシフトする。この結果、先頭のFIFOエントリに保持されていたデータは削除される。   The entry number reading unit 600 of the bus bridge 200 reads the buffer entry number from the first FIFO entry in the FIFO memory corresponding to the transaction identifier ID in the FIFO memory group 400. When reading from the top is performed, the entry number reading unit 600 sequentially shifts data held in the second and subsequent FIFO entries from the top in the FIFO memory one by one toward the top. As a result, the data held in the first FIFO entry is deleted.

具体的には、フルフラグが1である場合、エントリ番号読出部600は、そのFIFOメモリにおいて2番目から末尾までのFIFOエントリに保持されていたデータを先頭から末尾の直前までのFIFOエントリに書き込む。そして、エントリ番号読出部600は、フルフラグに「0」を設定する。一方、フルフラグが1である場合、エントリ番号読出部600は、ライトポインタの値をiとして、FIFOメモリにおいて2番目からi−1までのFIFOエントリに保持されていたデータを先頭からi番目までのFIFOエントリに書き込む。このようにして各データをシフトした後、エントリ番号読出部600は、ライトポインタをデクリメントする。   Specifically, when the full flag is 1, the entry number reading unit 600 writes the data held in the second to last FIFO entries in the FIFO memory to the first to last FIFO entries. Then, the entry number reading unit 600 sets “0” in the full flag. On the other hand, when the full flag is 1, the entry number reading unit 600 sets the value of the write pointer to i, and stores the data held in the FIFO entries from the second to i-1 in the FIFO memory from the head to the i-th. Write to FIFO entry. After shifting each data in this way, the entry number reading unit 600 decrements the write pointer.

例えば、バッファエントリ番号0および1が書き込まれているFIFOメモリF[0]からデータが読み出される場合、先頭のFIFOエントリからバッファエントリ番号0が読み出される。2番目のFIFOエントリに保持されていたバッファエントリ番号1は先頭のFOFOエントリに書き込まれる。そしてライトポインタは、2から1に更新される。   For example, when data is read from the FIFO memory F [0] in which the buffer entry numbers 0 and 1 are written, the buffer entry number 0 is read from the first FIFO entry. Buffer entry number 1 held in the second FIFO entry is written into the first FOFO entry. The write pointer is updated from 2 to 1.

図10は、本発明の第1の実施の形態におけるバッファ450の各バッファエントリに保持される有効フラグおよびトランザクション情報の一例を示す図である。有効フラグは、有効フラグ保持領域461に保持され、トランザクション情報は、トランザクション情報保持領域462に保持される。トランザクション情報は、例えば、パッキング実施フラグp、アドレス下位ビットaddr、バースト長len、バーストサイズsize、バーストタイプbtyp、および、バーストカウントbcntを含む。   FIG. 10 is a diagram illustrating an example of a valid flag and transaction information held in each buffer entry of the buffer 450 according to the first embodiment of this invention. The valid flag is held in the valid flag holding area 461, and the transaction information is held in the transaction information holding area 462. The transaction information includes, for example, a packing execution flag p, an address lower bit addr, a burst length len, a burst size size, a burst type btyp, and a burst count bcnt.

パッキング実施フラグpは、パッキングを実施するか否かを示す1ビットの情報である。パッキングは、バスの仕様に基づいてバースト対象のデータをまとめることである。パッキングは、例えば、バス幅が32ビットのバスからのデータをバス幅が64ビットのバスへ転送する際に実行される。アドレス下位ビットaddrは、アクセス先の下位アドレスを特定するための4ビットの情報である。バースト長lenは、バースト転送のデータ数を示す4ビットの情報である。バーストサイズsizeは、バースト転送の各回における転送サイズを示す3ビットの情報である。バーストタイプbtypは、バースト転送のアドレス計算のタイプを示す2ビットの情報である。バーストカウントbcntは、バースト転送の回数を示す4ビットの情報である。   The packing execution flag p is 1-bit information indicating whether or not to perform packing. Packing is a collection of burst target data based on bus specifications. Packing is executed, for example, when data from a bus having a bus width of 32 bits is transferred to a bus having a bus width of 64 bits. The address lower bit addr is 4-bit information for specifying the lower address of the access destination. The burst length len is 4-bit information indicating the number of burst transfer data. The burst size size is 3-bit information indicating the transfer size at each burst transfer. The burst type btyp is 2-bit information indicating the type of burst transfer address calculation. The burst count bcnt is 4-bit information indicating the number of burst transfers.

図11は、本発明の第1の実施の形態におけるバッファ450の一構成例を示す図である。バッファ450は、1つ以上のエントリを備える。例えば、バスシステムが許容する未解決のトランザクション数の最大値が16である場合、少なくとも16個のエントリ#0乃至15が設けられる。各エントリには、有効フラグ保持領域461およびトランザクション情報保持領域462が設けられる。トランザクション情報書込部500およびトランザクション情報読出部650は、各エントリに格納された有効フラグおよびトランザクション情報にビット単位でランダムにアクセス可能である。有効フラグが「0」のエントリは、トランザクション情報が無効であり、空の状態とされる。例えば、エントリ#0、1、および、15のみにトランザクション情報A、B、Cが保持された場合、それらのエントリの有効フラグは「1」に設定される。それ以外のエントリの有効フラグには「0」が設定され、空の状態である。   FIG. 11 is a diagram illustrating a configuration example of the buffer 450 according to the first embodiment of the present invention. The buffer 450 comprises one or more entries. For example, when the maximum number of outstanding transactions allowed by the bus system is 16, at least 16 entries # 0 to 15 are provided. Each entry is provided with a valid flag holding area 461 and a transaction information holding area 462. The transaction information writing unit 500 and the transaction information reading unit 650 can randomly access the valid flag and transaction information stored in each entry in units of bits. The entry with the valid flag “0” is invalid because the transaction information is invalid. For example, when transaction information A, B, and C are held only in entries # 0, 1, and 15, the valid flags of those entries are set to “1”. “0” is set in the valid flags of the other entries, which are empty.

図12は、本発明の第1の実施の形態におけるトランザクション情報書込部500の一構成例を示すブロック図である。トランザクション情報書込部500は、バッファフル判断部510、エントリ番号選択部520、および、トランザクション情報生成部530を備える。   FIG. 12 is a block diagram showing a configuration example of the transaction information writing unit 500 according to the first embodiment of the present invention. The transaction information writing unit 500 includes a buffer full determination unit 510, an entry number selection unit 520, and a transaction information generation unit 530.

バッファフル判断部510は、バッファ450にデータを保持できるか否かを判断するものである。具体的には、バッファフル判断部510は、リクエストを相互接続部300から受け取ると、バッファ450の各有効フラグを参照する。全ての有効フラグが有効であれば、バッファフル判断部510は、バッファフル通知を発行して相互接続部300に出力する。   The buffer full determination unit 510 determines whether or not data can be held in the buffer 450. Specifically, when the buffer full determination unit 510 receives a request from the interconnection unit 300, the buffer full determination unit 510 refers to each valid flag in the buffer 450. If all the valid flags are valid, the buffer full determination unit 510 issues a buffer full notification and outputs it to the interconnection unit 300.

エントリ番号選択部520は、空いているバッファエントリのバッファエントリ番号のうちのいずれかを選択するものである。詳細には、エントリ番号選択部520は、有効フラグが無効のバッファエントリのバッファエントリ番号のうちのいずれかを選択する。例えば、エントリ番号選択部520は、バッファエントリごとに固定の優先度を設定しておき、優先度の最も高いバッファエントリのバッファエントリ番号を選択する。あるいは、エントリ番号選択部520は、最も使用頻度の少ないバッファエントリのバッファエントリ番号を選択する。エントリ番号選択部520は、選択したバッファエントリ番号をトランザクション情報生成部530およびエントリ番号書込部550へ出力する。   The entry number selection unit 520 selects one of buffer entry numbers of vacant buffer entries. Specifically, the entry number selection unit 520 selects one of the buffer entry numbers of the buffer entries for which the valid flag is invalid. For example, the entry number selection unit 520 sets a fixed priority for each buffer entry, and selects the buffer entry number of the buffer entry with the highest priority. Alternatively, the entry number selection unit 520 selects the buffer entry number of the buffer entry that is least frequently used. The entry number selection unit 520 outputs the selected buffer entry number to the transaction information generation unit 530 and the entry number writing unit 550.

トランザクション情報生成部530は、リクエストに基づいてトランザクション情報を生成してバッファ450に書き込むものである。具体的には、相互接続部300からリクエストを受け取ると、トランザクション情報生成部530は、そのリクエストからトランザクション情報を生成する。トランザクション情報生成部530は、エントリ番号選択部520からバッファエントリ番号を受け取り、そのバッファエントリ番号のバッファエントリにトランザクション情報を書き込む。また、トランザクション情報生成部530は、リクエストからトランザクション識別子IDを取得してエントリ番号書込部550へ出力する。   The transaction information generation unit 530 generates transaction information based on the request and writes it in the buffer 450. Specifically, when receiving a request from the interconnecting unit 300, the transaction information generating unit 530 generates transaction information from the request. The transaction information generation unit 530 receives the buffer entry number from the entry number selection unit 520 and writes the transaction information in the buffer entry of the buffer entry number. Further, the transaction information generation unit 530 acquires the transaction identifier ID from the request and outputs it to the entry number writing unit 550.

図13は、本発明の第1の実施の形態におけるトランザクション情報読出部650の動作の一例を示す図である。レスポンスがバースト転送における最終のデータでない(例えば、RLAST=0である)場合、トランザクション情報読出部650は、エントリ番号読出部600が読み出したバッファエントリ番号のバッファエントリからトランザクション情報を読み出す。そして、トランザクション情報読出部650は、そのトランザクション情報のバーストカウントを更新する。レスポンスがバースト転送における最終のデータである(例えば、RLAST=1である)場合またはライトレスポンスである場合、トランザクション情報読出部650は、読み出されたバッファエントリ番号のバッファエントリからトランザクション情報を読み出す。そして、トランザクション情報読出部650は、そのトランザクション情報を無効にする。   FIG. 13 is a diagram illustrating an example of the operation of the transaction information reading unit 650 according to the first embodiment of the present invention. When the response is not the final data in the burst transfer (for example, RLAST = 0), the transaction information reading unit 650 reads the transaction information from the buffer entry of the buffer entry number read by the entry number reading unit 600. Then, the transaction information reading unit 650 updates the burst count of the transaction information. When the response is the final data in the burst transfer (for example, RLAST = 1) or the write response, the transaction information reading unit 650 reads the transaction information from the buffer entry of the read buffer entry number. Then, the transaction information reading unit 650 invalidates the transaction information.

[バスブリッジの動作]
次に、図14乃至16を参照してバスブリッジ200の動作について説明する。図14は、本発明の第1の実施の形態におけるバスブリッジ200の動作の一例を示すフローチャートである。この動作は、バスブリッジ200に電源が投入されたとき、または、FIFOメモリ群400およびバッファ450を初期化するときに開始する。
[Bus bridge operation]
Next, the operation of the bus bridge 200 will be described with reference to FIGS. FIG. 14 is a flowchart showing an example of the operation of the bus bridge 200 according to the first embodiment of the present invention. This operation starts when the bus bridge 200 is powered on or when the FIFO memory group 400 and the buffer 450 are initialized.

バスブリッジ200は、FIFOメモリ群400内の各FIFOメモリとバッファ450とを初期化する(ステップS905)。そして、バスブリッジ200は、リクエストが発行されたか否かを判断する(ステップS910)。リクエストが発行されたのであれば(ステップS910:Yes)、バスブリッジ200は、トランザクション情報をバッファ450に書き込むためのトランザクション情報書込処理を実行する(ステップS920)。バスブリッジ200は、リクエストに係るトランザクション識別子IDに対応するFIFOメモリに対して、トランザクション情報が書き込まれたバッファエントリ番号を書き込む(ステップS930)。   The bus bridge 200 initializes each FIFO memory and the buffer 450 in the FIFO memory group 400 (step S905). The bus bridge 200 determines whether a request has been issued (step S910). If the request has been issued (step S910: Yes), the bus bridge 200 executes a transaction information writing process for writing the transaction information into the buffer 450 (step S920). The bus bridge 200 writes the buffer entry number in which the transaction information is written into the FIFO memory corresponding to the transaction identifier ID related to the request (step S930).

リクエストが発行されていない場合(ステップS910:No)、または、ステップS930の後、バスブリッジ200は、レスポンスが返送されたか否かを判断する(ステップS935)。レスポンスが返送されたのであれば(ステップS935:Yes)、バスブリッジ200は、レスポンスに係るトランザクション識別子IDに対応するFIFOメモリからバッファエントリ番号を読み出す(ステップS940)。バスブリッジ200は、読み出したバッファエントリ番号のバッファエントリからトランザクション情報を読み出すためのトランザクション情報読出処理を実行する(ステップS950)。レスポンスが返送されていない場合(ステップS935:No)、または、ステップS950の後、バスブリッジ200は、ステップS910に戻る。   When the request has not been issued (step S910: No), or after step S930, the bus bridge 200 determines whether a response is returned (step S935). If the response is returned (step S935: Yes), the bus bridge 200 reads the buffer entry number from the FIFO memory corresponding to the transaction identifier ID related to the response (step S940). The bus bridge 200 executes a transaction information reading process for reading transaction information from the buffer entry of the read buffer entry number (step S950). If no response is returned (step S935: No), or after step S950, the bus bridge 200 returns to step S910.

図15は、本発明の第1の実施の形態におけるトランザクション情報書込処理の一例を示すフローチャートである。トランザクション情報書込部500は、バッファ450において有効フラグV=0の空きのエントリがあるか否かを判断する(ステップS921)。空きのバッファエントリがない場合(ステップS921:No)、トランザクション情報書込部500は、バッファフル通知を発行する(ステップS922)。空きのバッファエントリがある場合(ステップS921:Yes)、トランザクション情報書込部500は、いずれかの空き(有効フラグV=0)のバッファエントリを選択する(ステップS923)。トランザクション情報書込部500は、リクエストに基づいてトランザクション情報を生成し、選択したバッファエントリに書き込む(ステップS924)。相互接続部300は、リクエストをスレーブに転送する(ステップS925)。ステップS922またはS925の後、バスブリッジ200は、トランザクション情報書込処理を終了する。   FIG. 15 is a flowchart illustrating an example of the transaction information writing process according to the first embodiment of this invention. The transaction information writing unit 500 determines whether or not there is an empty entry with the valid flag V = 0 in the buffer 450 (step S921). When there is no empty buffer entry (step S921: No), the transaction information writing unit 500 issues a buffer full notification (step S922). When there is an empty buffer entry (step S921: Yes), the transaction information writing unit 500 selects any empty (valid flag V = 0) buffer entry (step S923). The transaction information writing unit 500 generates transaction information based on the request and writes it in the selected buffer entry (step S924). The interconnection unit 300 transfers the request to the slave (step S925). After step S922 or S925, the bus bridge 200 ends the transaction information writing process.

図16は、本発明の第1の実施の形態におけるトランザクション情報読出処理の一例を示すフローチャートである。トランザクション情報読出部650は、エントリ番号読出部600により読み出されたバッファエントリ番号のバッファエントリからトランザクション情報を読み出す(ステップS951)。トランザクション情報読出部650は、レスポンスがバースト転送における最終のデータまたはライトレスポンスであるか否かを判断する(ステップS952)。   FIG. 16 is a flowchart showing an example of the transaction information read process according to the first embodiment of the present invention. The transaction information reading unit 650 reads transaction information from the buffer entry of the buffer entry number read by the entry number reading unit 600 (step S951). The transaction information reading unit 650 determines whether or not the response is the final data or write response in burst transfer (step S952).

最終のデータまたはライトレスポンスである場合(ステップS952:Yes)、トランザクション情報読出部650は、バッファエントリ内のトランザクション情報を無効にする(ステップS953)。レスポンスが最終のデータでなく、かつ、ライトレスポンスでもない場合(ステップS952:No)、トランザクション情報読出部650は、バッファエントリ内のトランザクション情報においてバーストカウントを更新する(ステップS954)。ステップS953またはS954の後、相互接続部300は、トランザクション情報読出部650が読み出したトランザクション情報に基づいてレスポンスをマスタへ転送する(ステップS955)。ステップS955の後、バスブリッジ200は、トランザクション情報読出処理を終了する。   If it is the final data or write response (step S952: Yes), the transaction information reading unit 650 invalidates the transaction information in the buffer entry (step S953). When the response is not the final data and is not the write response (step S952: No), the transaction information reading unit 650 updates the burst count in the transaction information in the buffer entry (step S954). After step S953 or S954, the interconnection unit 300 transfers the response to the master based on the transaction information read by the transaction information reading unit 650 (step S955). After step S955, the bus bridge 200 ends the transaction information reading process.

続いて、図17乃至22を参照してバスブリッジ200の動作結果の一例について説明する。図17は、本発明の第1の実施の形態におけるリクエスト発行時のバスブリッジ200の動作を説明するための図である。AXIバス120にマスタ#1を含むマスタ110が接続され、AXIバス130にスレーブ#2を含むスレーブ140が接続されている構成を想定する。マスタ#1が、スレーブ#2に対して、トランザクション識別子IDに「0」を設定したリクエストを2回発行したものとする。また、リクエスト発行前において、FIFOメモリ群400およびバッファ450は初期化されていたものとする。バスブリッジ200は、このリクエストをスレーブ#2へ転送する。   Next, an example of the operation result of the bus bridge 200 will be described with reference to FIGS. FIG. 17 is a diagram for explaining the operation of the bus bridge 200 when a request is issued according to the first embodiment of this invention. Assume a configuration in which the master 110 including the master # 1 is connected to the AXI bus 120 and the slave 140 including the slave # 2 is connected to the AXI bus 130. It is assumed that master # 1 issues twice a request in which transaction identifier ID is set to “0” to slave # 2. Further, it is assumed that the FIFO memory group 400 and the buffer 450 have been initialized before issuing a request. The bus bridge 200 transfers this request to the slave # 2.

図18は、本発明の第1の実施の形態におけるリクエスト発行後のバッファ450の状態の一例を示す図である。図17に例示したように2回リクエストが発行されると、トランザクション情報書込部500は、それらのリクエストに基づいてトランザクション情報A,Bを生成し、バッファエントリ#0および#2に書き込む。そして、これらのバッファエントリの有効フラグは「1」に設定される。   FIG. 18 is a diagram illustrating an example of the state of the buffer 450 after the request issuance according to the first embodiment of this invention. As illustrated in FIG. 17, when the request is issued twice, the transaction information writing unit 500 generates transaction information A and B based on these requests and writes them in the buffer entries # 0 and # 2. The valid flag of these buffer entries is set to “1”.

図19は、本発明の第1の実施の形態におけるリクエスト発行後のFIFOメモリの状態の一例を示す図である。エントリ番号書込部550は、トランザクション情報書込部500から、トランザクション識別子ID=0と、書き込まれたバッファエントリのバッファエントリ番号0および2とを受け取る。エントリ番号書込部550は、トランザクション識別子ID=0に対応するFIFOメモリF[0]においてライトポインタに基づき、先頭のFIFOエントリと2番目のFIFOエントリとにバッファエントリ番号0および2を書き込む。ライトポインタは、初期値の0から2に更新される。   FIG. 19 is a diagram illustrating an example of a state of the FIFO memory after a request is issued according to the first embodiment of this invention. Entry number writing unit 550 receives transaction identifier ID = 0 and buffer entry numbers 0 and 2 of the written buffer entry from transaction information writing unit 500. The entry number writing unit 550 writes the buffer entry numbers 0 and 2 in the first FIFO entry and the second FIFO entry based on the write pointer in the FIFO memory F [0] corresponding to the transaction identifier ID = 0. The write pointer is updated from the initial value 0 to 2.

図20は、本発明の第1の実施の形態におけるレスポンス返送時のバスブリッジ200の動作を説明するための図である。スレーブ#2はマスタ#1に対してトランザクションID=0を設定したレスポンスを返送する。このレスポンスは、バースト転送における最終のデータ(RLAST=1)であるものとする。   FIG. 20 is a diagram for explaining the operation of the bus bridge 200 when a response is returned according to the first embodiment of this invention. Slave # 2 returns a response in which transaction ID = 0 is set to master # 1. This response is assumed to be the final data (RLAST = 1) in the burst transfer.

図21は、本発明の第1の実施の形態におけるレスポンス返送時のバスブリッジ200の動作を説明するための図である。図19に例示したようにレスポンスが返送されると、エントリ番号読出部600は、そのレスポンスのトランザクション識別子ID=0に対応するFIFOメモリF[0]の先頭のFIFOエントリからバッファエントリ番号0を読み出す。FIFOメモリF[0]内の2番目のFIFOエントリに保持されていたバッファエントリ番号2は、シフトされて先頭のFIFOエントリに書き込まれる。また、ライトポインタは2から1に更新される。   FIG. 21 is a diagram for explaining the operation of the bus bridge 200 when a response is returned according to the first embodiment of this invention. When the response is returned as illustrated in FIG. 19, the entry number reading unit 600 reads the buffer entry number 0 from the first FIFO entry of the FIFO memory F [0] corresponding to the transaction identifier ID = 0 of the response. . The buffer entry number 2 held in the second FIFO entry in the FIFO memory F [0] is shifted and written to the first FIFO entry. The write pointer is updated from 2 to 1.

図22は、本発明の第1の実施の形態におけるレスポンス返送後のバッファ450の状態の一例を示す図である。トランザクション情報読出部650は、読み出されたバッファエントリ番号0のバッファエントリに保持されていたトランザクション情報Aを読み出す。また、バッファエントリ番号0のバッファエントリの有効フラグは「0」に設定される。   FIG. 22 is a diagram illustrating an example of the state of the buffer 450 after the response is returned according to the first embodiment of this invention. The transaction information reading unit 650 reads the transaction information A held in the buffer entry with the read buffer entry number 0. The valid flag of the buffer entry with the buffer entry number 0 is set to “0”.

このように、本発明の第1の実施の形態では、リクエストが発行されると、トランザクション情報書込部500がトランザクション情報をバッファ450内のいずれかのバッファエントリに書き込む。エントリ番号書込部550は、そのバッファエントリのバッファエントリ番号をトランザクション識別子IDに対応するFIFOメモリに書き込んでおく。そして、レスポンスが返送されると、エントリ番号読出部600は、トランザクション識別子IDに対応するFIFOメモリからバッファエントリ番号を読み出す。これにより、トランザクション情報読出部650は、そのバッファエントリ番号のバッファエントリからトランザクション情報を読み出すことができる。   As described above, in the first embodiment of the present invention, when a request is issued, the transaction information writing unit 500 writes the transaction information in any buffer entry in the buffer 450. The entry number writing unit 550 writes the buffer entry number of the buffer entry in the FIFO memory corresponding to the transaction identifier ID. When the response is returned, the entry number reading unit 600 reads the buffer entry number from the FIFO memory corresponding to the transaction identifier ID. Thereby, the transaction information reading unit 650 can read the transaction information from the buffer entry of the buffer entry number.

この構成によれば、各FIFOメモリには、バッファエントリ番号を保持する領域を設けるだけで済むため、FIFOメモリにトランザクション情報を保持する場合と比較してFIFOメモリの記憶容量が小さくなる。すなわち、トランザクション数の最大値を増大する場合、バッファエントリ番号を保持するFIFOメモリを追加すればよいため、トランザクション情報を保持するFIFOメモリを追加する場合と比較して記憶容量の増大を抑えることができる。   According to this configuration, it is only necessary to provide an area for holding the buffer entry number in each FIFO memory, so that the storage capacity of the FIFO memory is reduced as compared with the case where transaction information is held in the FIFO memory. That is, when increasing the maximum value of the number of transactions, it is only necessary to add a FIFO memory that holds the buffer entry number. Therefore, it is possible to suppress an increase in storage capacity compared to the case of adding a FIFO memory that holds transaction information. it can.

なお、第1の実施の形態のバスシステムは、AXIプロトコルを使用しているが、スプリットトランザクションを許容するプロトコルであれば、AXIプロトコル以外のプロトコルを使用してもよい。   Note that the bus system of the first embodiment uses the AXI protocol, but a protocol other than the AXI protocol may be used as long as it is a protocol that allows split transactions.

また、スプリットトランザクションを許容するインターコネクトであれば、バスブリッジ以外のインターコネクトに本発明を適用することができる。   Further, the present invention can be applied to an interconnect other than a bus bridge as long as it is an interconnect that allows split transactions.

また、図1においては、AXIバス120にマスタ110が接続され、AXIバス130にスレーブ140が接続される構成を例示したが、モジュールの接続形態は、図1に例示した構成に限定されない。例えば、AXIバス120にマスタに加えてスレーブを接続してもよいし、AXIバス130にスレーブに加えてマスタを接続してもよい。   1 illustrates the configuration in which the master 110 is connected to the AXI bus 120 and the slave 140 is connected to the AXI bus 130, the connection form of the modules is not limited to the configuration illustrated in FIG. For example, a slave may be connected to the AXI bus 120 in addition to the master, or a master may be connected to the AXI bus 130 in addition to the slave.

また、図8において、トランザクション情報を例示したが、レスポンスの転送制御に必要な情報であれば、バッファ450は、図8に例示した情報と異なる情報をトランザクション情報として保持してもよい。   Further, although transaction information is illustrated in FIG. 8, if it is information necessary for response transfer control, the buffer 450 may hold information different from the information illustrated in FIG. 8 as transaction information.

また、図10においてFIFOメモリごとにライトポインタおよびフルフラグを設ける構成を例示したが、先入れ先出し方式によりデータが保持されるものであれば、FIFOメモリは、図10に例示した構成に限定されない。例えば、リングバッファを使用するFIFOメモリであってもよい。   10 illustrates a configuration in which a write pointer and a full flag are provided for each FIFO memory. However, the FIFO memory is not limited to the configuration illustrated in FIG. 10 as long as data is held by a first-in first-out method. For example, it may be a FIFO memory that uses a ring buffer.

<2.第2の実施の形態>
[バスブリッジの構成]
次に図23乃至29を参照して、本発明の第2の実施の形態について説明する。第2の実施の形態のバスブリッジ201は、トランザクション識別子IDごとにFIFOメモリを備えるのでなく、グループ識別子ごとにFIFOメモリを備える点において第1の実施の形態のバスブリッジ200と異なる。グループ識別子は、トランザクションが属するグループを識別するための識別子である。例えば、トランザクション識別子IDが7ビットの場合、その上位5ビットであるgIDがグループ識別子として用いられる。
<2. Second Embodiment>
[Bus bridge configuration]
Next, a second embodiment of the present invention will be described with reference to FIGS. The bus bridge 201 according to the second embodiment is different from the bus bridge 200 according to the first embodiment in that a FIFO memory is provided for each group identifier instead of a FIFO memory for each transaction identifier ID. The group identifier is an identifier for identifying the group to which the transaction belongs. For example, when the transaction identifier ID is 7 bits, gID which is the upper 5 bits is used as the group identifier.

バスブリッジ201は、相互接続部301、FIFOメモリ群401、バッファ451、管理情報書込部501、エントリ番号書込部551、エントリ番号読出部601、および、管理情報読出部651を備える。   The bus bridge 201 includes an interconnecting unit 301, a FIFO memory group 401, a buffer 451, a management information writing unit 501, an entry number writing unit 551, an entry number reading unit 601, and a management information reading unit 651.

相互接続部301の構成は、トランザクション識別子を受け取り、リクエストおよびレスポンスにおいて受け取ったトランザクション識別子を設定する点以外は、第1の実施の形態の相互接続部300と同様の構成である。詳細には、相互接続部301は、リクエストが発行された場合、管理情報書込部501から信号線821を介してトランザクション識別子ID'をさらに受け取る。このトランザクション識別子ID'は、リクエストに係るトランザクション識別子IDにおいてグループ識別子以外のビット列に所定値(例えば、10進表記で「0」の値)が設定されたものである。例えば、7ビットのトランザクション識別子IDの上位5ビットをグループ識別子とする場合、下位2ビットに2進表記で「00」の値が設定されたものがトランザクション識別子ID'とされる。相互接続部301は、トランザクション識別子ID'をリクエストに設定してスレーブ140へ転送する。   The configuration of the interconnection unit 301 is the same as that of the interconnection unit 300 of the first embodiment, except that the transaction identifier is received and the transaction identifier received in the request and response is set. Specifically, the interconnection unit 301 further receives a transaction identifier ID ′ from the management information writing unit 501 via the signal line 821 when a request is issued. This transaction identifier ID ′ is obtained by setting a predetermined value (for example, a value of “0” in decimal notation) in a bit string other than the group identifier in the transaction identifier ID related to the request. For example, when the upper 5 bits of a 7-bit transaction identifier ID are used as a group identifier, the transaction identifier ID ′ is a value in which the value of “00” is set in the lower 2 bits in binary notation. The interconnection unit 301 sets the transaction identifier ID ′ as a request and transfers it to the slave 140.

また、相互接続部301は、レスポンスが返送された場合、管理情報読出部651から、信号線825を介してトランザクション識別子IDをさらに受け取る。相互接続部301は、そのトランザクション識別子IDをレスポンスに設定してマスタ110へ転送する。前述したように、リクエストにトランザクション識別子ID'が設定された場合、そのリクエストに対応するレスポンスには、スレーブ140により、同様にトランザクション識別子ID'が設定される。レスポンスに係るトランザクション識別子ID'を相互接続部301が元のトランザクション識別子IDに置き換えることにより、マスタ110は、自身が発行したリクエストに対応するレスポンスを受信することができる。   Further, when a response is returned, the interconnection unit 301 further receives a transaction identifier ID from the management information reading unit 651 via the signal line 825. The interconnection unit 301 sets the transaction identifier ID as a response and transfers it to the master 110. As described above, when the transaction identifier ID ′ is set in the request, the transaction identifier ID ′ is similarly set by the slave 140 in the response corresponding to the request. By replacing the transaction identifier ID ′ related to the response with the original transaction identifier ID, the master unit 110 can receive a response corresponding to the request issued by itself.

FIFOメモリ群401には、グループ識別子gIDごとにFIFOメモリが設けられる。各FIFOメモリの構成は、第1の実施の形態のFIFOメモリの構成と同様である。   The FIFO memory group 401 is provided with a FIFO memory for each group identifier gID. The configuration of each FIFO memory is the same as the configuration of the FIFO memory of the first embodiment.

バッファ451の構成は、トランザクション情報の代わりに管理情報を保持する点以外は第1の実施の形態のバッファ450の構成と同様である。管理情報は、トランザクション識別子IDからgIDを除いたビット列である部分ビット列idとトランザクション情報とを含む情報である。   The configuration of the buffer 451 is the same as the configuration of the buffer 450 of the first embodiment except that management information is held instead of transaction information. The management information is information including a partial bit string id, which is a bit string obtained by removing gID from the transaction identifier ID, and transaction information.

管理情報書込部501の構成は、トランザクション情報の代わりに管理情報をバッファ451に書き込む点以外は、第1の実施の形態のトランザクション情報書込部500の構成と同様である。詳細には、管理情報書込部501は、リクエストを相互接続部301から受け取った場合、リクエストに係るトランザクション識別子IDの上位のビット列であるgIDをグループ識別子として取得する。管理情報書込部501は、トランザクション識別子IDにおいてグループ識別子以外のビット列を所定値に固定した識別子ID'を相互接続部301へ出力する。以下、このように、トランザクション識別子を置き換えることを「リネーム」と称する。そして、管理情報書込部501は、トランザクション識別子IDからgIDを除いた部分ビット列idを取得する。管理情報書込部501は、部分ビット列idおよびトランザクション情報を管理情報としてバッファ450に書き込む。部分ビット列idは、信号線822を介して出力される。また、管理情報書込部501は、トランザクション識別子IDの代わりにグループ識別子gIDをエントリ番号書込部551に信号線823を介して出力する。   The configuration of the management information writing unit 501 is the same as the configuration of the transaction information writing unit 500 of the first embodiment, except that management information is written in the buffer 451 instead of the transaction information. Specifically, when the management information writing unit 501 receives a request from the interconnection unit 301, the management information writing unit 501 acquires gID, which is a high-order bit string of the transaction identifier ID related to the request, as a group identifier. The management information writing unit 501 outputs an identifier ID ′ in which a bit string other than the group identifier is fixed to a predetermined value in the transaction identifier ID to the interconnection unit 301. Hereinafter, such replacement of the transaction identifier is referred to as “rename”. Then, the management information writing unit 501 acquires a partial bit string id obtained by removing gID from the transaction identifier ID. The management information writing unit 501 writes the partial bit string id and transaction information in the buffer 450 as management information. The partial bit string id is output via the signal line 822. Also, the management information writing unit 501 outputs the group identifier gID to the entry number writing unit 551 via the signal line 823 instead of the transaction identifier ID.

エントリ番号書込部551は、グループ識別子gIDに対応するFIFOメモリにバッファエントリ番号を書き込むものである。   The entry number writing unit 551 writes a buffer entry number in the FIFO memory corresponding to the group identifier gID.

エントリ番号読出部601は、レスポンスに係るグループ識別子gIDに対応するFIFOメモリからバッファエントリ番号を読み出すものである。   The entry number reading unit 601 reads the buffer entry number from the FIFO memory corresponding to the group identifier gID related to the response.

管理情報読出部651の構成は、トランザクション情報の代わりに管理情報をバッファ451から読み出す点以外は、第1の実施の形態のトランザクション情報読出部650の構成と同様である。詳細には、管理情報読出部651は、レスポンスを相互接続部301から受け取った場合、エントリ番号読出部601により読み出されたバッファエントリ番号のバッファエントリから管理情報を読み出す。管理情報における部分ビット列idは、信号線824を介して読み出される。管理情報読出部651は、レスポンスに係るトランザクション識別子ID'においてグループ識別子gID以外のビット列を、読み出した部分ビット列idに置き換える(すなわち、リネームする)ことにより、トランザクション識別子IDを生成する。管理情報読出部651は、生成したトランザクション識別子IDを相互接続部301に信号線825を介して出力する。   The configuration of the management information reading unit 651 is the same as the configuration of the transaction information reading unit 650 of the first embodiment, except that management information is read from the buffer 451 instead of the transaction information. Specifically, when the response is received from the interconnection unit 301, the management information reading unit 651 reads the management information from the buffer entry of the buffer entry number read by the entry number reading unit 601. The partial bit string id in the management information is read through the signal line 824. The management information reading unit 651 generates a transaction identifier ID by replacing (that is, renaming) a bit string other than the group identifier gID in the transaction identifier ID ′ related to the response with the read partial bit string id. The management information reading unit 651 outputs the generated transaction identifier ID to the interconnection unit 301 via the signal line 825.

図24は、本発明の第2の実施の形態におけるFIFOメモリ群401の一構成例を示す図である。FIFOメモリ群401には、グループ識別子gIDごとにFIFOメモリが設けられる。例えば、グループ識別子gIDがトランザクション識別子の上位5ビットである場合、64個のFIFOメモリF[0]乃至[63]が設けられる。   FIG. 24 is a diagram illustrating a configuration example of the FIFO memory group 401 according to the second embodiment of the present invention. The FIFO memory group 401 is provided with a FIFO memory for each group identifier gID. For example, when the group identifier gID is the upper 5 bits of the transaction identifier, 64 FIFO memories F [0] to [63] are provided.

図25は、本発明の第2の実施の形態における有効フラグおよび管理情報の一例を示す図である。各バッファエントリには、有効フラグ保持領域461と管理情報保持領域463とが設けられる。有効フラグ保持領域461に保持される有効フラグは、管理情報が有効であるか否かを示す。管理情報保持領域463は、管理情報を保持するための領域である。管理情報は、部分ビット列idとトランザクション情報とを含む。   FIG. 25 is a diagram illustrating an example of a valid flag and management information according to the second embodiment of this invention. Each buffer entry is provided with a valid flag holding area 461 and a management information holding area 463. The validity flag held in the validity flag holding area 461 indicates whether the management information is valid. The management information holding area 463 is an area for holding management information. The management information includes a partial bit string id and transaction information.

図26は、本発明の第2の実施の形態におけるバッファ451の一構成例を示す図である。有効フラグが「0」のバッファエントリにおける管理情報は無効とされ、有効フラグが「1」のバッファエントリにおける管理情報は無効とされる。例えば、バッファエントリ#0、1、および、15のみに管理情報が保持された場合、それらのバッファエントリの有効フラグは「1」に設定され、他のバッファエントリの有効フラグは「0」に設定される。   FIG. 26 is a diagram illustrating a configuration example of the buffer 451 according to the second embodiment of the present invention. The management information in the buffer entry whose valid flag is “0” is invalidated, and the management information in the buffer entry whose valid flag is “1” is invalidated. For example, when management information is held only in buffer entries # 0, 1, and 15, the validity flags of those buffer entries are set to “1”, and the validity flags of other buffer entries are set to “0”. Is done.

図27は、本発明の第2の実施の形態におけるバスブリッジ201の動作の一例を示すフローチャートである。この動作は、ステップS920、S930、S940、および、S950の代わりにステップS960、S931、S941、および、S970を実行する点以外は、第1の実施の形態のバスブリッジ200の動作と同様である。   FIG. 27 is a flowchart showing an example of the operation of the bus bridge 201 in the second exemplary embodiment of the present invention. This operation is the same as the operation of the bus bridge 200 of the first exemplary embodiment except that steps S960, S931, S941, and S970 are executed instead of steps S920, S930, S940, and S950. .

リクエストが発行された場合(ステップS910:Yes)、バスブリッジ201は、管理情報をバッファエントリのいずれかに書き込むための管理情報書込処理を実行する(ステップS960)。バスブリッジ201は、リクエストに係るgIDに対応するFIFOメモリに、管理情報が書き込まれたバッファエントリのバッファエントリ番号を書き込む(ステップS931)。   When the request is issued (step S910: Yes), the bus bridge 201 executes a management information writing process for writing the management information to any of the buffer entries (step S960). The bus bridge 201 writes the buffer entry number of the buffer entry in which the management information is written into the FIFO memory corresponding to the gID related to the request (step S931).

レスポンスが返送された場合(ステップS935:Yes)、バスブリッジ201は、リクエストに係るgIDに対応するFIFOメモリからバッファエントリ番号を読み出す(ステップS941)。バスブリッジ201は、バッファエントリ番号の示すバッファエントリから管理情報を読み出すための管理情報読出処理を実行する(ステップS970)。   When the response is returned (step S935: Yes), the bus bridge 201 reads the buffer entry number from the FIFO memory corresponding to the gID related to the request (step S941). The bus bridge 201 executes management information read processing for reading management information from the buffer entry indicated by the buffer entry number (step S970).

図28は、本発明の第2の実施の形態における管理情報書込処理の一構成例を示すブロック図である。この管理情報書込処理は、ステップS924の代わりにステップS961およびS962を実行する点以外は、第1の実施の形態におけるトランザクション情報書込処理と同様である。   FIG. 28 is a block diagram illustrating a configuration example of the management information writing process according to the second embodiment of the present invention. This management information writing process is the same as the transaction information writing process in the first embodiment except that steps S961 and S962 are executed instead of step S924.

管理情報書込部501は、いずれかの有効フラグV=0の空きのバッファエントリを選択し(ステップS923)、そのバッファエントリに管理情報を書き込む(ステップS961)。管理情報書込部501は、リクエストに係るトランザクション識別子IDをトランザクション識別子ID'にリネームする。トランザクション識別子ID'は、例えば、トランザクション識別子IDからgIDを除いたビット列(例えば、下位2ビット)を所定値(例えば、2進表記で「00」)に固定したものである(ステップS962)。   The management information writing unit 501 selects one of the empty buffer entries with the valid flag V = 0 (step S923), and writes the management information to the buffer entry (step S961). The management information writing unit 501 renames the transaction identifier ID related to the request to the transaction identifier ID ′. The transaction identifier ID ′ is, for example, a bit string (for example, lower 2 bits) obtained by removing gID from the transaction identifier ID and fixed to a predetermined value (for example, “00” in binary notation) (step S962).

図29は、本発明の第2の実施の形態における管理情報読出処理の一例を示すフローチャートである。この管理情報読出処理は、ステップS951およびS953の代わりにステップS971、S972、および、S973を実行する点以外は、第1の実施の形態におけるトランザクション情報読出処理と同様である。   FIG. 29 is a flowchart showing an example of management information reading processing according to the second embodiment of the present invention. This management information reading process is the same as the transaction information reading process in the first embodiment except that steps S971, S972, and S973 are executed instead of steps S951 and S953.

管理情報読出部651は、エントリ番号読出部601により読み出されたバッファエントリ番号のバッファエントリから管理情報を読み出す(ステップS971)。   The management information reading unit 651 reads management information from the buffer entry having the buffer entry number read by the entry number reading unit 601 (step S971).

レスポンスが最終のデータまたはライトレスポンスである場合(ステップS952)、管理情報読出部651は、バッファエントリ内の管理情報を無効にする(ステップS972)。ステップS972またはS954の後、管理情報読出部651は、レスポンスに係るトランザクションID'をIDにリネームする(ステップS973)。   When the response is final data or a write response (step S952), the management information reading unit 651 invalidates the management information in the buffer entry (step S972). After step S972 or S954, the management information reading unit 651 renames the transaction ID ′ related to the response to the ID (step S973).

このように、本発明の第2の実施の形態では、リクエストが発行されると、管理情報書込部501が管理情報をバッファ451内のいずれかのバッファエントリに書き込む。エントリ番号書込部551は、そのバッファエントリのバッファエントリ番号をグループ識別子gIDに対応するFIFOメモリに書き込んでおく。そして、レスポンスが返送されると、エントリ番号読出部601は、グループ識別子gIDに対応するFIFOメモリからバッファエントリ番号を読み出す。これにより、管理情報読出部651は、そのバッファエントリ番号のバッファエントリから管理情報を読み出すことができる。   As described above, in the second embodiment of the present invention, when a request is issued, the management information writing unit 501 writes the management information in any buffer entry in the buffer 451. The entry number writing unit 551 writes the buffer entry number of the buffer entry in the FIFO memory corresponding to the group identifier gID. When the response is returned, the entry number reading unit 601 reads the buffer entry number from the FIFO memory corresponding to the group identifier gID. Thereby, the management information reading unit 651 can read the management information from the buffer entry of the buffer entry number.

この構成によれば、FIFOメモリをグループごとに設けるため、FIFOメモリをトランザクション識別子ごとに設ける場合と比較して、FIFOメモリの記憶容量の合計は、さらに小さくなる。   According to this configuration, since the FIFO memory is provided for each group, the total storage capacity of the FIFO memory is further reduced as compared with the case where the FIFO memory is provided for each transaction identifier.

また、管理情報書込部501は、リクエストに係るトランザクション識別子IDから部分ビット列idを除いている。このため、スレーブ140は、部分ビット列idが除かれたグループ識別子gIDが設定されたリクエストを受信する。この結果、複数の異なるトランザクション識別子IDが、同じ値のグループ識別子gIDに置き換えられる。前述したように、AXIバスプロトコルにおいては、トランザクション識別子が同じトランザクション間では、順序性が保証される。したがって、グループ識別子への置換えにより、同一のグループ識別子が割り当てられた各レスポンスは、リクエストの発行順に返送されることになる。よって、FIFOメモリの記憶容量を削減しても、順序性が維持される。   Further, the management information writing unit 501 removes the partial bit string id from the transaction identifier ID related to the request. For this reason, the slave 140 receives a request in which the group identifier gID from which the partial bit string id is removed is set. As a result, a plurality of different transaction identifier IDs are replaced with the group identifier gID having the same value. As described above, in the AXI bus protocol, the order is guaranteed between transactions having the same transaction identifier. Therefore, each response to which the same group identifier is assigned by the replacement with the group identifier is returned in the order in which the requests are issued. Therefore, even if the storage capacity of the FIFO memory is reduced, the order is maintained.

さらに、管理情報読出部651は、部分ビット列idとグループ識別子gIDとからトランザクション識別子IDを生成している。このため、マスタ110は、自身が発行したリクエストに対応するレスポンスを受信することができる。   Furthermore, the management information reading unit 651 generates a transaction identifier ID from the partial bit string id and the group identifier gID. Therefore, the master 110 can receive a response corresponding to the request issued by itself.

なお、グループ識別子をトランザクション識別子の上位5ビットとしているが、グループ識別子は、トランザクション識別子の一部のビット列であれば、上位5ビットに限定されない。   Although the group identifier is the upper 5 bits of the transaction identifier, the group identifier is not limited to the upper 5 bits as long as it is a partial bit string of the transaction identifier.

<3.第3の実施の形態>
[バスブリッジの構成]
次に図30乃至34を参照して、本発明の第3の実施の形態について説明する。第3の実施の形態のバスブリッジ202は、FIFOメモリのFIFOエントリ数を削減してオーバーフローFIFOメモリをさらに設けた点において第1の実施の形態のバスブリッジ200と異なる。具体的には、バスブリッジ202は、FIFOメモリ群400、エントリ番号書込部550、および、エントリ番号読出部600の代わりに、FIFOメモリ群402、エントリ番号書込部552、および、エントリ番号読出部602を備える。
<3. Third Embodiment>
[Bus bridge configuration]
Next, a third embodiment of the present invention will be described with reference to FIGS. The bus bridge 202 of the third embodiment is different from the bus bridge 200 of the first embodiment in that an overflow FIFO memory is further provided by reducing the number of FIFO entries in the FIFO memory. Specifically, the bus bridge 202 replaces the FIFO memory group 400, the entry number writing unit 550, and the entry number reading unit 600 with the FIFO memory group 402, the entry number writing unit 552, and the entry number reading. Part 602.

FIFOメモリ群402には、トランザクション識別子IDごとにFIFOメモリが設けられる。各FIFOメモリの構成は、第1の実施の形態のFIFOメモリと同様である。ただし、FIFOメモリ群402における各FIFOメモリのFIFOエントリ数は、第1の実施の形態のFIFOメモリのFIFOエントリ数より少ない。具体的には、各FIFOメモリのFIFOエントリ数は、未解決なトランザクション数の最大値の半分以上の数とされる。例えば、未解決なトランザクション数の最大値が16である場合、FIFOメモリのFIFOエントリは、少なくとも8個とされる。各FIFOメモリの記憶容量を最小にするため、FIFOメモリのFIFOエントリの数は、未解決なトランザクション数の最大値の半分にするのが望ましい。   The FIFO memory group 402 is provided with a FIFO memory for each transaction identifier ID. The configuration of each FIFO memory is the same as that of the FIFO memory of the first embodiment. However, the number of FIFO entries in each FIFO memory in the FIFO memory group 402 is smaller than the number of FIFO entries in the FIFO memory according to the first embodiment. Specifically, the number of FIFO entries in each FIFO memory is a number that is half or more of the maximum number of unresolved transactions. For example, when the maximum number of unresolved transactions is 16, the number of FIFO entries in the FIFO memory is at least 8. In order to minimize the storage capacity of each FIFO memory, the number of FIFO entries in the FIFO memory is preferably half of the maximum number of unresolved transactions.

各FIFOメモリのFIFOエントリ数を未解決なトランザクション数の最大値の半分未満とすると、2つ以上のFIFOメモリから溢れたデータがオーバーフローFIFOメモリに保持される状態が生じうる。例えば、未解決なトランザクション数の最大値を16とし、各FIFOメモリのFIFOエントリを7個とした場合、未解決なトランザクションに係るバッファエントリ番号が2つのFIFOメモリに8個ずつ書き込まれることがある。この場合、これらの各FIFOメモリから溢れたデータがオーバーフローFIFOメモリに保持されることとなる。しかし、オーバーフローFIFOは、FIFOメモリに対応するトランザクション識別子IDを保持しない。このため、エントリ番号読出部602は、保持されているデータが、いずれのFIFOメモリから溢れたデータなのか判断できなくなってしまう。これに対して、各FIFOメモリのFIFOエントリ数を未解決なトランザクション数の最大値の半分以上とすると、2つ以上のFIFOメモリから溢れたデータがオーバーフローFIFOメモリに保持されることがなくなる。したがって、FIFOメモリが複数であっても、必要なオーバーフローFIFOメモリは1つで済む。   If the number of FIFO entries in each FIFO memory is less than half the maximum value of the number of unresolved transactions, a state in which data overflowing from two or more FIFO memories is held in the overflow FIFO memory may occur. For example, if the maximum number of unresolved transactions is 16 and the number of FIFO entries in each FIFO memory is 7, 8 buffer entry numbers related to unresolved transactions may be written in two FIFO memories. . In this case, data overflowing from each of these FIFO memories is held in the overflow FIFO memory. However, the overflow FIFO does not hold the transaction identifier ID corresponding to the FIFO memory. This makes it impossible for the entry number reading unit 602 to determine which FIFO memory the stored data is overflowing from. On the other hand, if the number of FIFO entries in each FIFO memory is set to more than half of the maximum number of unresolved transactions, data overflowing from two or more FIFO memories is not held in the overflow FIFO memory. Therefore, even if there are a plurality of FIFO memories, only one overflow FIFO memory is required.

また、FIFOメモリ群402には、オーバーフローFIFOメモリが設けられる。オーバーフローFIFOメモリは、トランザクション識別子ごとに設けられたFIFOメモリから溢れたデータを保持するものである。オーバーフローFIFOメモリのFIFOエントリ数は、未解決なトランザクション数の最大値とFIFOメモリのFIFOエントリ数との差分である。例えば、未解決なトランザクション数の最大値が16個であり、FIFOメモリのFIFOエントリ数を8個とする場合、オーバーフローFIFOメモリのFIFOエントリ数は8個とされる。このオーバーフローFIFOには、オーバーフローFIFOにデータが保持されていないことを示す空フラグを保持する領域が設けられる。例えば、オーバーフローFIFOにデータが保持されていない場合に空フラグに「1」が設定され、1つ以上のデータが保持されている場合に「0」が設定される。   The FIFO memory group 402 is provided with an overflow FIFO memory. The overflow FIFO memory holds data overflowed from the FIFO memory provided for each transaction identifier. The number of FIFO entries in the overflow FIFO memory is the difference between the maximum number of unresolved transactions and the number of FIFO entries in the FIFO memory. For example, when the maximum number of unresolved transactions is 16 and the number of FIFO entries in the FIFO memory is 8, the number of FIFO entries in the overflow FIFO memory is 8. This overflow FIFO is provided with an area for holding an empty flag indicating that data is not held in the overflow FIFO. For example, “1” is set in the empty flag when data is not held in the overflow FIFO, and “0” is set when one or more data is held.

エントリ番号書込部552の構成は、FIFOメモリからデータが溢れる場合に、オーバーフローFIFOメモリにデータを書き込む点以外は、第1の実施の形態のエントリ番号書込部550と同様の構成である。具体的には、トランザクション識別子IDに対応するFIFOのフルフラグが「1」であれば、エントリ番号書込部552は、オーバーフローFIFOメモリにバッファエントリ番号を書き込む。   The configuration of the entry number writing unit 552 is the same as that of the entry number writing unit 550 of the first embodiment except that data is written to the overflow FIFO memory when data overflows from the FIFO memory. Specifically, if the FIFO full flag corresponding to the transaction identifier ID is “1”, the entry number writing unit 552 writes the buffer entry number in the overflow FIFO memory.

エントリ番号読出部602の構成は、FIFOまたはオーバーフローFIFOからバッファエントリ番号を読み出す点以外は第1の実施の形態のエントリ番号読出部600と同様の構成である。具体的には、トランザクション識別子IDに対応するFIFOのフルフラグが「1」であり、かつ、空フラグが「0」である場合、エントリ番号読出部602オーバーフローFIFOからバッファエントリ番号を読み出す。トランザクション識別子IDに対応するFIFOのフルフラグが「0」または空フラグが「1」である場合、トランザクション識別子IDに対応するFIFOからバッファエントリ番号を読み出す。   The configuration of the entry number reading unit 602 is the same as that of the entry number reading unit 600 of the first embodiment except that the buffer entry number is read from the FIFO or overflow FIFO. Specifically, when the FIFO full flag corresponding to the transaction identifier ID is “1” and the empty flag is “0”, the buffer entry number is read from the entry number reading unit 602 overflow FIFO. When the full flag of the FIFO corresponding to the transaction identifier ID is “0” or the empty flag is “1”, the buffer entry number is read from the FIFO corresponding to the transaction identifier ID.

図31は、本発明の第3の実施の形態におけるFIFOメモリ群402の一構成例を示す図である。FIFOメモリ群402には、トランザクション識別子ごとにFIFOメモリが設けられる。また、オーバーフローFIFOメモリOvF1が設けられる。   FIG. 31 is a diagram showing a configuration example of the FIFO memory group 402 in the third embodiment of the present invention. The FIFO memory group 402 is provided with a FIFO memory for each transaction identifier. In addition, an overflow FIFO memory OvF1 is provided.

オーバーフローFIFOメモリOvF1は、データ保持領域421、末尾ポインタ保持領域422、および、空フラグ保持領域423を備える。データ保持領域421は、トランザクションごとのFIFOメモリのデータ保持領域411と同様である。末尾ポインタ保持領域422は、末尾ポインタを保持する領域である。末尾ポインタは、末尾のデータが保持されているFIFOエントリを示す情報である。空フラグ保持領域423は、空フラグを保持するものである。   The overflow FIFO memory OvF1 includes a data holding area 421, a tail pointer holding area 422, and an empty flag holding area 423. The data holding area 421 is the same as the data holding area 411 of the FIFO memory for each transaction. The tail pointer holding area 422 is an area for holding the tail pointer. The tail pointer is information indicating a FIFO entry in which tail data is held. The empty flag holding area 423 holds an empty flag.

エントリ番号書込部552は、書込み時に空フラグが「1」である場合、空フラグに「0」を設定して、先頭のFIFOエントリにバッファエントリ番号を書き込む。書込み時に空フラグが「0」である場合、エントリ番号書込部552は、末尾ポインタの直前のFIFOエントリにバッファエントリ番号を書き込み、末尾ポインタをインクリメントする。   If the empty flag is “1” at the time of writing, the entry number writing unit 552 sets “0” to the empty flag and writes the buffer entry number in the first FIFO entry. When the empty flag is “0” at the time of writing, the entry number writing unit 552 writes the buffer entry number to the FIFO entry immediately before the tail pointer, and increments the tail pointer.

エントリ番号読出部602は、オーバーフローFIFOにおいて、先頭のFIFOエントリからバッファエントリ番号を読み出す。エントリ番号読出部602は、そのFIFOメモリにおいて2番目以降のFIFOエントリに保持されている各データを先頭へ1つずつシフトする。そして、読出時に末尾ポインタが最小値でない場合、エントリ番号読出部602は、末尾ポインタをデクリメントする。読出時に末尾ポインタが最小値である場合、エントリ番号読出部602は、空フラグに「1」を設定する。   The entry number reading unit 602 reads the buffer entry number from the first FIFO entry in the overflow FIFO. The entry number reading unit 602 shifts each data held in the second and subsequent FIFO entries in the FIFO memory one by one to the head. If the tail pointer is not the minimum value at the time of reading, the entry number reading unit 602 decrements the tail pointer. When the end pointer is the minimum value at the time of reading, the entry number reading unit 602 sets “1” in the empty flag.

なお、上述のオーバーフローFIFOメモリOvF1は、特許請求の範囲に記載の溢れ先入れ先出しメモリの一例である。   The overflow FIFO memory OvF1 described above is an example of an overflow first-in first-out memory described in the claims.

[バスブリッジの動作]
次に、図32乃至34を参照してバスブリッジ202の動作について説明する。この動作は、ステップS930およびS940の代わりにステップS980およびS990を実行する点以外は、第1の実施の形態のバスブリッジ200の動作と同様である。
[Bus bridge operation]
Next, the operation of the bus bridge 202 will be described with reference to FIGS. This operation is the same as the operation of the bus bridge 200 of the first embodiment except that steps S980 and S990 are executed instead of steps S930 and S940.

リクエストが発行された場合(ステップS910:Yes)、バスブリッジ202は、トランザクション情報書込処理を実行し(ステップS920)、バッファエントリ番号をFIFOメモリに書き込むためのエントリ番号書込処理を実行する(ステップS980)。   When the request is issued (step S910: Yes), the bus bridge 202 executes transaction information writing processing (step S920), and executes entry number writing processing for writing the buffer entry number into the FIFO memory (step S920). Step S980).

レスポンスが返送された場合(ステップS935:Yes)、バスブリッジ202は、バッファエントリ番号をFIFOメモリから読み出すためのエントリ番号書込処理を実行し(ステップS990)、トランザクション情報読出処理を実行する(ステップS950)。   When the response is returned (step S935: Yes), the bus bridge 202 executes entry number write processing for reading the buffer entry number from the FIFO memory (step S990), and executes transaction information read processing (step S990). S950).

図33は、本発明の第3の実施の形態におけるエントリ番号書込処理の一例を示すフローチャートである。エントリ番号書込部552は、トランザクション識別子IDに対応するFIFOメモリのフルフラグが「0」であるか否かを判断する(ステップS981)。フルフラグが「0」である場合(ステップS981:Yes)、エントリ番号書込部552は、そのFIFOメモリにバッファエントリ番号を書き込む(ステップS982)。エントリ番号書込部552は、ライトポインタを参照して、そのFIFOメモリが満杯であるか否かを判断する(ステップS983)。満杯であれば(ステップS983:Yes)、エントリ番号書込部552は、そのFIFOメモリのフルフラグに「1」にセットする(ステップS984)。   FIG. 33 is a flowchart showing an example of entry number writing processing according to the third embodiment of the present invention. The entry number writing unit 552 determines whether or not the FIFO memory full flag corresponding to the transaction identifier ID is “0” (step S981). When the full flag is “0” (step S981: Yes), the entry number writing unit 552 writes the buffer entry number in the FIFO memory (step S982). The entry number writing unit 552 refers to the write pointer and determines whether or not the FIFO memory is full (step S983). If it is full (step S983: Yes), the entry number writing unit 552 sets the full flag of the FIFO memory to “1” (step S984).

トランザクション識別子IDに対応するFIFOメモリのフルフラグが「1」である場合(ステップS981:No)、エントリ番号書込部552は、オーバーフローFIFOメモリの空フラグが「1」であるか否かを判断する(ステップS985)。空フラグが「1」であれば(ステップS985:Yes)、エントリ番号書込部552は、空フラグに「0」をセットする(ステップS986)。空フラグが「0」である場合(ステップS985:No)、またはステップS986の後、エントリ番号書込部552は、オーバーフローFIFOメモリにバッファエントリ番号を書き込む(ステップS987)。   When the full flag of the FIFO memory corresponding to the transaction identifier ID is “1” (step S981: No), the entry number writing unit 552 determines whether the empty flag of the overflow FIFO memory is “1”. (Step S985). If the empty flag is “1” (step S985: Yes), the entry number writing unit 552 sets “0” to the empty flag (step S986). When the empty flag is “0” (step S985: No) or after step S986, the entry number writing unit 552 writes the buffer entry number in the overflow FIFO memory (step S987).

トランザクション識別子IDに対応するFIFOメモリが満杯でない場合(ステップS983:No)、または、ステップS984、もしくは、ステップS987の後、エントリ番号書込部552は、エントリ番号書込処理を終了する。   If the FIFO memory corresponding to the transaction identifier ID is not full (step S983: No), or after step S984 or step S987, the entry number writing unit 552 ends the entry number writing process.

図34は、本発明の第3の実施の形態におけるエントリ番号書読出処理の一例を示すフローチャートである。エントリ番号読出部602は、トランザクション識別子IDに対応するFIFOメモリのフルフラグが「0」であるか否かを判断する(ステップS991)。フルフラグが「0」であれば(ステップS991:Yes)、エントリ番号読出部602は、そのFIFOメモリからバッファエントリ番号を読み出す(ステップS992)。   FIG. 34 is a flowchart showing an example of entry number reading processing in the third embodiment of the present invention. The entry number reading unit 602 determines whether the full flag of the FIFO memory corresponding to the transaction identifier ID is “0” (step S991). If the full flag is “0” (step S991: Yes), the entry number reading unit 602 reads the buffer entry number from the FIFO memory (step S992).

フルフラグが「1」である場合(ステップS991:No)、エントリ番号読出部602は、オーバーフローFIFOメモリの空フラグが「0」であるか否かを判断する(ステップS993)。空フラグが「1」である場合(ステップS993:No)、エントリ番号読出部602は、トランザクション識別子IDに対応するFIFOメモリからバッファエントリ番号を読み出す(ステップS994)。そして、エントリ番号読出部602は、そのFIFOメモリのフルフラグに「0」をセットする(ステップS995)。   When the full flag is “1” (step S991: No), the entry number reading unit 602 determines whether the empty flag of the overflow FIFO memory is “0” (step S993). When the empty flag is “1” (step S993: No), the entry number reading unit 602 reads the buffer entry number from the FIFO memory corresponding to the transaction identifier ID (step S994). Then, the entry number reading unit 602 sets “0” to the full flag of the FIFO memory (step S995).

空フラグが「0」である場合(ステップS993:Yes)、エントリ番号読出部602は、オーバーフローFIFOメモリからバッファエントリ番号を読み出す(ステップS996)。エントリ番号読出部602は、末尾ポインタを参照してオーバーフローFIFOメモリが空になったか否かを判断する(ステップS997)。オーバーフローFIFOメモリが空になったのであれば(ステップS997:Yes)、エントリ番号読出部602は、空フラグを「1」にセットする(ステップS998)。   If the empty flag is “0” (step S993: Yes), the entry number reading unit 602 reads the buffer entry number from the overflow FIFO memory (step S996). The entry number reading unit 602 refers to the end pointer and determines whether or not the overflow FIFO memory has become empty (step S997). If the overflow FIFO memory has become empty (step S997: Yes), the entry number reading unit 602 sets the empty flag to “1” (step S998).

オーバーフローFIFOメモリが空になったのでない場合(ステップS997:No)、または、ステップS992、S995、もしくは、S998の後、エントリ番号読出部602は、エントリ番号読出処理を終了する。   If the overflow FIFO memory is not emptied (step S997: No), or after steps S992, S995, or S998, the entry number reading unit 602 ends the entry number reading process.

このように、本発明の第3の実施の形態によれば、バスブリッジ202は、FIFOメモリからデータが溢れる場合にオーバーフローFIFOメモリにデータを保持することにより、FIFOメモリの記憶容量をさらに小さくすることができる。具体的には、各FIFOメモリのFIFOエントリ数を、オーバーフローFIFOメモリのFIFOエントリ数の分、削減することができる。   As described above, according to the third embodiment of the present invention, the bus bridge 202 further reduces the storage capacity of the FIFO memory by holding the data in the overflow FIFO memory when the data overflows from the FIFO memory. be able to. Specifically, the number of FIFO entries in each FIFO memory can be reduced by the number of FIFO entries in the overflow FIFO memory.

また、バスブリッジ202は、各FIFOメモリにフルフラグを設定しておくため、フルフラグを参照することにより、FIFOメモリからデータが溢れるか否かを容易に判断することができる。   In addition, since the bus bridge 202 sets a full flag in each FIFO memory, it is possible to easily determine whether or not data overflows from the FIFO memory by referring to the full flag.

また、バスブリッジ202は、オーバーフローFIFOメモリに空フラグを設定しておくため、空フラグを参照することにより、レスポンスに係るバッファエントリ番号がオーバーフローFIFOメモリに保持されているか否かを容易に判断することができる。   Since the bus bridge 202 sets an empty flag in the overflow FIFO memory, it is easy to determine whether or not the buffer entry number related to the response is held in the overflow FIFO memory by referring to the empty flag. be able to.

さらに、FIFOメモリのFIFOエントリ数は、未解決の最大のトランザクション数の最大値の半分以上としている。このため、2つ以上のFIFOメモリから溢れたデータがオーバーフローFIFOメモリに保持されることがなくなる。したがってFIFOメモリが複数であっても、必要なオーバーフローFIFOメモリは1つで済む。   Furthermore, the number of FIFO entries in the FIFO memory is at least half of the maximum value of the maximum number of unresolved transactions. For this reason, data overflowing from two or more FIFO memories is not held in the overflow FIFO memory. Therefore, even if there are a plurality of FIFO memories, only one overflow FIFO memory is required.

なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、本発明の実施の形態において明示したように、本発明の実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本発明の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。   The embodiment of the present invention shows an example for embodying the present invention. As clearly shown in the embodiment of the present invention, the matters in the embodiment of the present invention and the claims Each invention-specific matter in the scope has a corresponding relationship. Similarly, the matters specifying the invention in the claims and the matters in the embodiment of the present invention having the same names as the claims have a corresponding relationship. However, the present invention is not limited to the embodiments, and can be embodied by making various modifications to the embodiments without departing from the gist of the present invention.

110 マスタ
120、130 AXIバス
140 スレーブ
200、201、202 バスブリッジ
300、301 相互接続部
310、330 変換情報生成器
400、401、402 FIFOメモリ群
411、421 データ保持領域
412 ライトポインタ保持領域
413 フルフラグ保持領域
422 末尾ポインタ保持領域
423 空フラグ保持領域
450、451 バッファ
461 有効フラグ保持領域
462 トランザクション情報保持領域
463 管理情報保持領域
500 トランザクション情報書込部
501 管理情報書込部
510 バッファフル判断部
520 エントリ番号選択部
530 トランザクション情報生成部
550、551、552 エントリ番号書込部
600、601、602 エントリ番号読出部
650 トランザクション情報読出部
651 管理情報読出部
110 Master 120, 130 AXI bus 140 Slave 200, 201, 202 Bus bridge 300, 301 Interconnection unit 310, 330 Conversion information generator 400, 401, 402 FIFO memory group 411, 421 Data holding area 412 Write pointer holding area 413 Full flag Holding area 422 Trailing pointer holding area 423 Empty flag holding area 450, 451 Buffer 461 Valid flag holding area 462 Transaction information holding area 463 Management information holding area 500 Transaction information writing section 501 Management information writing section 510 Buffer full judgment section 520 entry Number selection unit 530 Transaction information generation unit 550, 551, 552 Entry number writing unit 600, 601, 602 Entry number reading unit 650 Transaction Down information reading section 651 management information reading unit

Claims (7)

リクエストの転送処理と前記リクエストに対応するレスポンスの転送処理とを含むトランザクション処理を識別するための識別子であるトランザクション識別子に対して前記トランザクション識別子ごとに設けられた複数の先入れ先出しメモリと、
前記レスポンスの転送処理を制御するための情報であるトランザクション情報を書き込むための複数のトランザクション情報書込領域を備えるバッファと、
前記リクエストが発行されるたびに前記リクエストに基づいて前記トランザクション情報を前記トランザクション情報書込領域のいずれかに書き込むトランザクション情報書込部と、
前記トランザクション情報が書き込まれるたびに前記リクエストに係る前記トランザクション識別子に対応する前記先入れ先出しメモリに対して前記トランザクション情報が書き込まれた前記トランザクション情報書込領域を示す領域情報を書き込む領域情報書込部と、
前記レスポンスが返送されるたびに前記レスポンスに係る前記トランザクション識別子に対応する前記先入れ先出しメモリから前記領域情報を読み出す領域情報読出部と、
前記領域情報が読み出されるたびに前記領域情報の示す前記トランザクション情報書込領域から前記トランザクション情報を読み出すトランザクション情報読出部と、
前記マスタから前記リクエストが発行された場合に当該リクエストを前記スレーブへ転送し、前記スレーブから前記レスポンスが返送された場合に読み出された前記トランザクション情報に基づいて当該レスポンスを前記マスタへ転送する相互接続部と
を具備する相互接続装置。
A plurality of first-in first-out memories provided for each transaction identifier with respect to a transaction identifier that is an identifier for identifying a transaction process including a request transfer process and a response transfer process corresponding to the request;
A buffer comprising a plurality of transaction information writing areas for writing transaction information, which is information for controlling the response transfer process;
A transaction information writing unit that writes the transaction information to one of the transaction information writing areas based on the request each time the request is issued;
An area information writing unit for writing area information indicating the transaction information writing area in which the transaction information is written to the first-in first-out memory corresponding to the transaction identifier related to the request each time the transaction information is written;
An area information reading unit that reads the area information from the first-in first-out memory corresponding to the transaction identifier related to the response each time the response is returned;
A transaction information reading unit that reads the transaction information from the transaction information writing area indicated by the area information each time the area information is read;
The request is transferred to the slave when the request is issued from the master, and the response is transferred to the master based on the transaction information read when the response is returned from the slave. An interconnection device comprising a connection unit.
前記複数の先入れ先出しメモリから溢れた前記領域情報を保持する溢れ先入れ先出しメモリをさらに具備し、
前記領域情報書込部は、前記リクエストに係る前記先入れ先出しメモリから前記領域情報が溢れない場合に前記領域情報を前記先入れ先出しメモリに書き込み、前記リクエストに係る前記先入れ先出しメモリから前記領域情報が溢れる場合に前記溢れ先入れ先出しメモリに前記領域情報を書き込み、
前記領域情報読出部は、前記レスポンスに係る前記領域情報が前記溢れ先入れ先出しメモリに書き込まれている場合に前記溢れ先入れ先出しメモリから前記領域情報を読み出し、前記領域情報が前記溢れ先入れ先出しメモリに書き込まれていない場合に前記先入れ先出しメモリから前記領域情報を読み出す
請求項1記載の相互接続装置。
An overflow first-in first-out memory holding the area information overflowing from the plurality of first-in first-out memories;
The region information writing unit writes the region information to the first-in first-out memory when the region information does not overflow from the first-in first-out memory related to the request, and the region information writing unit Write the area information into the overflow first-in first-out memory,
The area information reading unit reads the area information from the overflow first in first out memory when the area information related to the response is written in the overflow first in first out memory, and the area information is not written in the overflow first in first out memory. 2. The interconnection device according to claim 1, wherein the area information is read from the first-in first-out memory.
前記先入れ先出しメモリが前記領域情報を保持できないことを示すフルフラグを前記先入れ先出しメモリごとにさらに具備し、
前記領域情報書込部は、前記フルフラグに基づいて前記先入れ先出しメモリから前記領域情報が溢れるか否かを判断する
請求項2記載の相互接続装置。
A full flag indicating that the first-in first-out memory cannot hold the area information is further provided for each first-in first-out memory;
3. The interconnection apparatus according to claim 2, wherein the area information writing unit determines whether or not the area information overflows from the first-in first-out memory based on the full flag.
前記溢れ先入れ先出しメモリが空であることを示す空フラグをさらに具備し、
前記領域情報読出部は、前記空フラグに基づいて前記領域情報が前記溢れ先入れ先出しメモリに書き込まれているか否かを判断する
請求項2記載の相互接続装置。
An empty flag indicating that the overflow first-in first-out memory is empty;
The interconnection apparatus according to claim 2, wherein the area information reading unit determines whether or not the area information is written in the overflow first-in first-out memory based on the empty flag.
前記先入れ先出しメモリおよび前記溢れ先入れ先出しメモリは前記領域情報を保持するための領域であるエントリを1つ以上備え、
前記先入れ先出しメモリのエントリ数は、未解決な前記トランザクション処理の数の最大値の半分以上であり、
前記溢れ先入れ先出しメモリのエントリ数は、前記最大値と前記先入れ先出しメモリのエントリ数との間の差分である
請求項2記載の相互接続装置。
The first-in first-out memory and the overflow first-in first-out memory include one or more entries that are areas for holding the area information,
The number of entries in the first-in first-out memory is more than half of the maximum number of unresolved transaction processes,
The interconnection apparatus according to claim 2, wherein the number of entries in the overflow first-in first-out memory is a difference between the maximum value and the number of entries in the first-in first-out memory.
リクエストの転送処理と前記リクエストに対応するレスポンスの転送処理とを含むトランザクション処理が属するグループを識別するための識別子であるグループ識別子に対して前記グループ識別子ごとに設けられた複数の先入れ先出しメモリと、
前記レスポンスの転送処理を制御するための情報であるトランザクション情報と前記トランザクション処理を識別するためのトランザクション識別子から前記グループ識別子を除いた情報である部分ビット列とを管理情報として書き込むための複数の管理情報書込領域を備えるバッファと、
前記リクエストが発行されるたびに前記リクエストに基づいて前記管理情報を前記トランザクション情報書込領域のいずれかに書き込む管理情報書込部と、
前記管理情報が書き込まれるたびに前記リクエストに係る前記グループ識別子に対応する前記先入れ先出しメモリに対して前記管理情報が書き込まれた前記トランザクション情報書込領域を示す領域情報を書き込む領域情報書込部と、
前記レスポンスが返送されるたびに前記レスポンスに係る前記グループ識別子に対応する前記先入れ先出しメモリから前記領域情報を読み出す領域情報読出部と、
前記領域情報が読み出されるたびに前記領域情報の示す前記トランザクション情報書込領域から前記トランザクション情報を読み出すトランザクション情報読出部と、
前記マスタから前記リクエストが発行された場合に当該リクエストを前記スレーブへ転送し、前記スレーブから前記レスポンスが返送された場合に読み出された前記トランザクション情報に基づいて当該レスポンスを前記マスタへ転送する相互接続部と
を具備する相互接続装置。
A plurality of first-in first-out memories provided for each group identifier with respect to a group identifier that is an identifier for identifying a group to which a transaction process including a request transfer process and a response transfer process corresponding to the request belongs;
A plurality of management information for writing, as management information, transaction information which is information for controlling the transfer process of the response and a partial bit string which is information obtained by removing the group identifier from the transaction identifier for identifying the transaction process A buffer with a writing area;
A management information writing unit that writes the management information to any of the transaction information writing areas based on the request each time the request is issued;
An area information writing unit for writing area information indicating the transaction information writing area in which the management information is written to the first-in first-out memory corresponding to the group identifier related to the request each time the management information is written;
An area information reading unit that reads the area information from the first-in first-out memory corresponding to the group identifier related to the response each time the response is returned;
A transaction information reading unit that reads the transaction information from the transaction information writing area indicated by the area information each time the area information is read;
The request is transferred to the slave when the request is issued from the master, and the response is transferred to the master based on the transaction information read when the response is returned from the slave. An interconnection device comprising a connection unit.
前記管理情報書込部は、
前記リクエストに基づいて前記管理情報を前記トランザクション情報書込領域のいずれかに書き込む管理情報書込処理部と
前記リクエストにおいて前記トランザクション識別子から前記部分ビット列を除く第1の識別子処理部と、
を備え、
前記管理情報読出部は、
前記領域情報の示す前記トランザクション情報書込領域から前記トランザクション情報を読み出す管理情報読出処理部と、
前記レスポンスにおいて前記読み出された管理情報に含まれる前記部分ビット列と前記グループ識別子とから前記トランザクション識別子を生成する第2の識別子処理部と
を備える請求項6記載の相互接続装置。
The management information writing unit
A management information write processing unit that writes the management information in any of the transaction information write areas based on the request; a first identifier processing unit that removes the partial bit string from the transaction identifier in the request;
With
The management information reading unit
A management information read processing unit that reads the transaction information from the transaction information writing area indicated by the area information;
The interconnection apparatus according to claim 6, further comprising: a second identifier processing unit that generates the transaction identifier from the partial bit string and the group identifier included in the management information read in the response.
JP2011010324A 2011-01-21 2011-01-21 Interconnect equipment Expired - Fee Related JP5659817B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011010324A JP5659817B2 (en) 2011-01-21 2011-01-21 Interconnect equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011010324A JP5659817B2 (en) 2011-01-21 2011-01-21 Interconnect equipment

Publications (2)

Publication Number Publication Date
JP2012150735A true JP2012150735A (en) 2012-08-09
JP5659817B2 JP5659817B2 (en) 2015-01-28

Family

ID=46792907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011010324A Expired - Fee Related JP5659817B2 (en) 2011-01-21 2011-01-21 Interconnect equipment

Country Status (1)

Country Link
JP (1) JP5659817B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015011385A (en) * 2013-06-26 2015-01-19 富士通セミコンダクター株式会社 Monitoring circuit, semiconductor device, and memory monitoring method
CN110928811A (en) * 2018-09-19 2020-03-27 Arm有限公司 Apparatus and method for processing burst read transactions
JP2020532795A (en) * 2017-08-31 2020-11-12 レール ビジョン リミテッドRail Vision Ltd Systems and methods for high throughput in multiple computations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320351A (en) * 1997-05-15 1998-12-04 Kofu Nippon Denki Kk Buffer system
JP2006331426A (en) * 2005-05-26 2006-12-07 Arm Ltd Interconnect logic for data processing apparatus
JP2008041099A (en) * 2006-08-08 2008-02-21 Arm Ltd Interconnect logic for data processing apparatus
JP2008276783A (en) * 2007-05-04 2008-11-13 Internatl Business Mach Corp <Ibm> System for reordering data responses

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320351A (en) * 1997-05-15 1998-12-04 Kofu Nippon Denki Kk Buffer system
JP2006331426A (en) * 2005-05-26 2006-12-07 Arm Ltd Interconnect logic for data processing apparatus
JP2008041099A (en) * 2006-08-08 2008-02-21 Arm Ltd Interconnect logic for data processing apparatus
JP2008276783A (en) * 2007-05-04 2008-11-13 Internatl Business Mach Corp <Ibm> System for reordering data responses

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015011385A (en) * 2013-06-26 2015-01-19 富士通セミコンダクター株式会社 Monitoring circuit, semiconductor device, and memory monitoring method
JP2020532795A (en) * 2017-08-31 2020-11-12 レール ビジョン リミテッドRail Vision Ltd Systems and methods for high throughput in multiple computations
CN110928811A (en) * 2018-09-19 2020-03-27 Arm有限公司 Apparatus and method for processing burst read transactions
CN110928811B (en) * 2018-09-19 2023-12-22 Arm有限公司 Apparatus and method for handling burst read transactions

Also Published As

Publication number Publication date
JP5659817B2 (en) 2015-01-28

Similar Documents

Publication Publication Date Title
JP3275051B2 (en) Method and apparatus for maintaining transaction order and supporting delayed response in a bus bridge
US20020144027A1 (en) Multi-use data access descriptor
JP3391315B2 (en) Bus control device
JP4660064B2 (en) Performing locks in a distributed processing system
JP2015041281A (en) Storage device
JP2010027032A (en) Fifo device and method of storing data in fifo buffer
JP2012073851A (en) Bus system and deadlock avoidance circuit thereof
JP2016177478A (en) Signal transfer device, information processing device, and signal transfer method
TW200839514A (en) Memory management apparatus
EP3036648B1 (en) Enhanced data transfer in multi-cpu systems
JP2006309512A (en) Multiprocessor system, and message transmission method for multiprocessor system
JP5664187B2 (en) Interconnect apparatus and control method thereof
JP5659817B2 (en) Interconnect equipment
JP5996497B2 (en) Storage device
WO2019084789A1 (en) Direct memory access controller, data reading method, and data writing method
WO2019140885A1 (en) Directory processing method and device, and storage system
WO2022194021A1 (en) Concurrency control method, network card, computer device, and storage medium
US10853123B2 (en) Memory module
US10223264B2 (en) Data access control apparatus
JP2012118906A (en) Interconnecting device and control method thereof
JP4924970B2 (en) Data processing system
US20130290654A1 (en) Data writing control device, data writing control method, and information processing device
JP2015041290A (en) Storage device
JP2013037459A (en) Interconnection device, control method for the device, and program allowing computer to execute the method
WO2021081944A1 (en) Method for processing non-cacheable write data request, buffer and node

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140716

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141117

LAPS Cancellation because of no payment of annual fees