JP2012078895A - Information processor - Google Patents
Information processor Download PDFInfo
- Publication number
- JP2012078895A JP2012078895A JP2010220787A JP2010220787A JP2012078895A JP 2012078895 A JP2012078895 A JP 2012078895A JP 2010220787 A JP2010220787 A JP 2010220787A JP 2010220787 A JP2010220787 A JP 2010220787A JP 2012078895 A JP2012078895 A JP 2012078895A
- Authority
- JP
- Japan
- Prior art keywords
- relay
- order
- information
- read request
- master
- 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
Links
- 230000005540 biological transmission Effects 0.000 claims abstract description 31
- 230000010365 information processing Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 6
- 230000000717 retained effect Effects 0.000 claims description 2
- 230000015654 memory Effects 0.000 abstract description 37
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
- Memory System (AREA)
Abstract
Description
本発明は複数のマスタが複数のスレーブに対してアクセス可能な情報処理装置に関する。 The present invention relates to an information processing apparatus in which a plurality of masters can access a plurality of slaves.
複数のマスタ(マルチマスタ)が複数のスレーブ(マルチスレーブ)に対してアクセス可能なシステム(以下、マルチマスタ-マルチスレーブ)が提供されている。マスタとは制御する側のデバイスであり、CPU(Central Processing Unit)、DMA(Direct Memory Access)コントローラ等を指している。スレーブとは制御される側のデバイスであり、メモリ、I/O(Input/Output)デバイス等を指している。 A system (hereinafter referred to as multi-master-multi-slave) in which a plurality of masters (multi-master) can access a plurality of slaves (multi-slave) is provided. The master is a device on the control side and refers to a CPU (Central Processing Unit), a DMA (Direct Memory Access) controller, and the like. A slave is a controlled device, and refers to a memory, an I / O (Input / Output) device, or the like.
マルチマスタ-マルチスレーブとして、共有バスを介して接続される複数のCPUと複数のメモリまたはI/Oデバイスとをバスを介して接続したシステムコントローラであって、新たな命令を発行したCPU と、その命令の転送先と、転送保留中の命令を発行したCPUとを識別する識別情報を保持する保持手段と、リード命令の転送とそのリード命令に対するリターンデータの転送とが独立して実行される転送手段と、リード時に、保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように、転送手段を制御する順序制御手段と、を備えたものが提案されている(例えば特許文献1参照)。 As a multi-master-multi-slave, a system controller in which a plurality of CPUs connected via a shared bus and a plurality of memories or I / O devices are connected via a bus, the CPU issuing a new command; Holding means for holding identification information for identifying the transfer destination of the instruction and the CPU that issued the transfer pending instruction, and transfer of the read instruction and transfer of return data for the read instruction are executed independently. There has been proposed a transfer means and an order control means for controlling the transfer means so that the return data is not switched with the issue order of transfer instructions based on the contents held by the holding means at the time of reading. (For example, refer to Patent Document 1).
マルチマスタ-マルチスレーブに適用できるインターフェースとして、PCIエキスプレス(Peripheral Component Interconnect Express)がある。PCIエキスプレスはシリアル転送インターフェースであり、PCIのようなパラレルインターフェースの欠点を改良し、高速データ転送を可能とする。PCIエキスプレスは複数のチップどうしの間及びチップとCPUとの間のインターフェースとして用いることができる。PCIエキスプレスを使用したシステムはチップの長寿命化、開発コストの削減、拡張性及び汎用性に関して有効である。 As an interface applicable to multi-master-multi-slave, there is PCI Express (Peripheral Component Interconnect Express). PCI Express is a serial transfer interface that improves the shortcomings of parallel interfaces such as PCI and enables high-speed data transfer. The PCI Express can be used as an interface between a plurality of chips and between a chip and a CPU. A system using a PCI Express is effective in terms of extending the life of the chip, reducing development costs, expandability, and versatility.
PCIエキスプレスではトランザクション層でパケットをやり取りする。トランザクションとしてメモリリクエスト、I/Oリクエスト、コンプリーション等がある。 In PCI Express, packets are exchanged at the transaction layer. Transactions include memory requests, I / O requests, completions, and the like.
メモリリクエストとはメモリに対するリード・ライトリクエストである。I/OリクエストとはI/Oデバイスに対するリード・ライトリクエストである。コンプリーションとはリクエストに対する応答であり、リードリクエストの場合にはデータが含まれる。 The memory request is a read / write request for the memory. An I / O request is a read / write request for an I / O device. Completion is a response to a request, and data is included in the case of a read request.
マルチマスタ-マルチスレーブでは、マスタからスレーブまでに経由するチップ数の差、リクエスト内容による処理時間の差、スレーブの応答時間の差等の理由で、リードリクエストの順番とリードリクエストに応じて返信されてきた返信データ(例えばコンプリーションデータ)の順番とが異なることが不可避的に発生する。各マスタにバッファを設けて、返信データの順番を正しく並び変える態様が考えられる。しかし、この態様では順番を並び替えるためのバッファを各マスタに設ける必要があるので、非効率である。 In multi-master-multi-slave, it is returned according to the order of read requests and read requests due to the difference in the number of chips passing from master to slave, the difference in processing time depending on the request contents, the difference in slave response time, etc. Inevitably, the order of reply data (for example, completion data) is different. A mode in which a buffer is provided in each master and the order of the reply data is correctly arranged is conceivable. However, this mode is inefficient because it is necessary to provide each master with a buffer for rearranging the order.
本発明はリードリクエストに応じて複数のスレーブから返信されてきた返信データの順番を並び替えるためのバッファを各マスタに設ける必要がない情報処理装置を提供することを目的とする。 An object of the present invention is to provide an information processing apparatus in which it is not necessary to provide each master with a buffer for rearranging the order of reply data returned from a plurality of slaves in response to a read request.
上記目的を達成する本発明の一の局面に係る情報処理装置は、複数のマスタと、複数のスレーブと、前記複数のマスタが前記複数のスレーブにアクセスする場合に送信中継と返信中継を実行する中継部と、を備え、前記送信中継において、前記中継部は、前記複数のマスタから送信されてきたリードリクエストを中継する際に、当該リードリクエストを特定する第1の情報、当該リードリクエストを送信したマスタを特定する第2の情報、当該マスタが送信したリードリクエストの中で当該リードリクエストが送信されてきた順番を特定する第3の情報を対応付けた送信中継情報を記憶する処理を、前記複数のマスタから送信されてきたリードリクエストの順に実行し、前記返信中継において、前記中継部は、前記複数のスレーブからリードリクエストに応じて返信されてきた前記第1の情報を有する返信データを中継する際に、同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、前記返信されてきた返信データを中継し、前記順番が先である返信データを中継していなければ、前記順番が先である返信データを中継するまで前記返信されてきた返信データを保持する処理を、前記送信中継情報を基にして前記複数のスレーブから返信されてきた返信データの順に実行する。 An information processing apparatus according to one aspect of the present invention that achieves the above object performs transmission relay and reply relay when a plurality of masters, a plurality of slaves, and the plurality of masters access the plurality of slaves. A relay unit, wherein when the relay unit relays the read request transmitted from the plurality of masters, the relay unit transmits the first request identifying the read request and the read request. Storing the second relay information specifying the master, the transmission relay information associated with the third information specifying the order in which the read request is transmitted among the read requests transmitted by the master, In the reply relay, the relay unit reads from the plurality of slaves in the order of read requests transmitted from the plurality of masters. When relaying reply data having the first information sent back in response to a quest, reply data that is reply data that is sent back to the same master and that has the corresponding read request in order is relayed. For example, the reply data that has been returned is relayed, and if the reply data that is in the first order is not relayed, the reply data that has been returned is retained until the reply data that is in the first order is relayed The process is executed in the order of reply data returned from the plurality of slaves based on the transmission relay information.
本発明によれば、中継部は、同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、返信されてきた返信データを中継し、順番が先である返信データを中継していなければ、順番が先である返信データを中継するまで返信されてきた返信データを保持する処理を実行する。従って、中継部は、同じマスタに返信する返信データの順番がリードリクエストの順番と異なっていれば、返信データの順番をリードリクエストの順番に合うように順番を変更して中継する。よって、本発明によれば、返信データの順番がリードリクエストの順番と異なる場合に、返信データを正しい順番に並び替えるためのバッファを各マスタに設ける必要がなくなる。 According to the present invention, the relay unit relays the reply data that has been sent back if the reply data is reply data that is sent back to the same master and the corresponding read request is in the first order. If the previous reply data is not relayed, a process of holding the reply data returned until the reply data in the first order is relayed is executed. Therefore, if the order of the reply data returned to the same master is different from the order of the read request, the relay unit relays the order of the reply data so that it matches the order of the read request. Therefore, according to the present invention, when the reply data order is different from the read request order, it is not necessary to provide a buffer for rearranging the reply data in the correct order in each master.
なお、本発明において、複数のマスタが複数のスレーブに対してアクセスするとは、複数のマスタの少なくとも一つが複数のスレーブに対してアクセスすることである。従って、残りのマスタについては複数のスレーブに対してアクセスしてもよいし、一つのスレーブに対してアクセスしてもよい。 In the present invention, a plurality of masters accessing a plurality of slaves means that at least one of the plurality of masters accesses a plurality of slaves. Therefore, the remaining masters may be accessed for a plurality of slaves or a single slave.
上記構成の前記送信中継において、前記中継部は、前記送信されてきたリードリクエストに前記第1の情報を付加して中継し、前記返信中継において、前記中継部は、前記返信されてきた返信データに付加されている前記第1の情報と前記送信中継情報とを用いて、前記返信されてきた返信データを保持するか又は中継するかを選択する。 In the transmission relay configured as described above, the relay unit relays by adding the first information to the transmitted read request, and in the reply relay, the relay unit returns the returned reply data. Using the first information added to the transmission information and the transmission relay information, it is selected whether the returned reply data is held or relayed.
この構成は第1の情報を、リードリクエストに含まれる情報(例えばパケットID)ではなく、リードリクエストに含まれない情報にした場合の態様である。 This configuration is an aspect in which the first information is not included in the read request (for example, packet ID) but is not included in the read request.
上記構成において、複数のチップ(チップセット)を備え、前記複数のマスタの少なくとも1つは、前記複数のスレーブに対してアクセスする際に経由するチップ(チップセット)数が異なる。 In the above configuration, a plurality of chips (chip sets) are provided, and at least one of the plurality of masters is different in the number of chips (chip sets) that are passed through when accessing the plurality of slaves.
マスタがスレーブにアクセスする際に経由するチップ(チップセット)数が異なれば、返信データの順番がリードリクエストの順番と異なることが発生しやすい。従って、複数のマスタの少なくとも1つが、複数のスレーブに対してアクセスする際に経由するチップ(チップセット)数が異なる場合に本発明は好適である。 If the number of chips (chip sets) through which the master accesses the slave is different, the order of the reply data is likely to be different from the order of the read requests. Therefore, the present invention is suitable when at least one of a plurality of masters has a different number of chips (chip sets) through which access is made to a plurality of slaves.
上記構成において、前記中継部は、前記複数のチップ(チップセット)のうち、前記複数のスレーブから返信されてきた返信データが前記複数のマスタへ分流する箇所を有するチップ(チップセット)に設けられている。 In the above configuration, the relay unit is provided in a chip (chip set) having a location where reply data returned from the plurality of slaves is diverted to the plurality of masters among the plurality of chips (chip set). ing.
この構成によれば、中継部が複数のマスタの近くに配置されるので、中継部で正しい順番に変更された返信データについて再び順番が変更されてしまう可能性を低くすることができる。 According to this configuration, since the relay unit is arranged near a plurality of masters, it is possible to reduce the possibility that the order of the reply data changed in the correct order by the relay unit will be changed again.
上記構成において、前記複数のチップ(チップセット)間のインターフェースはPCIエキスプレスである。 In the above configuration, an interface between the plurality of chips (chip sets) is a PCI express.
この構成によれば、リードリクエスト及び返信データの転送を高速化できる。 According to this configuration, the transfer of the read request and the reply data can be speeded up.
本発明によれば、リードリクエストに応じて複数のスレーブから返信されてきた返信データの順番を並び替えるためのバッファを各マスタに設ける必要がなくなる。 According to the present invention, it is not necessary to provide each master with a buffer for rearranging the order of reply data returned from a plurality of slaves in response to a read request.
以下、図面に基づいて本発明の実施形態について図を用いて詳細に説明する。図1は本実施形態に係る情報処理装置1の構成を示すブロック図である。情報処理装置1は例えば画像形成装置に適用でき、3つのチップ11,13,15と2つのメモリX,Yとを備えている。複数のマスタA,Bは複数のチップ11,13,15を経由して複数のメモリ(スレーブの一例)X,Yにアクセスする。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 is a block diagram showing the configuration of the
チップ11はCPU21、メモリコントローラ23、ルートコンプレックス25,27及びこれらを接続する内部バス29を備える。CPU21は情報処理装置1の全体を統括制御する。メモリコントローラ23はメモリYをコントロールする。ルートコンプレックス25,27はPCIエキスプレスにおける階層の最上層であり、ホストとして機能する。
The
チップ13はエンドポイント31、2つのマスタA,B、中継部33及び内部バス35を備える。エンドポイント31はPCIエキスプレスに準拠しないデバイスのために、トランザクションのリクエスタ(要求を出す側)又はコンプリータ(完了させる側)となるデバイスである。エンドポイント31とルートコンプレックス25との間、言い換えればチップ11,13間のインターフェース37はPCIエキスプレスである。
The
マスタA,BはDMAコントローラであり、内部バス35と接続されている。 Masters A and B are DMA controllers and are connected to the internal bus 35.
中継部33はエンドポイント31と内部バス35とを接続する。マスタA,BがそれぞれメモリX,Yにアクセスする際に送信中継と返信中継を実行する。これらの中継については後で説明する。
The
チップ15はエンドポイント41、メモリコントローラ43及びこれらを接続する内部バス45を備える。エンドポイント41はエンドポイント31と同様の機能を有する。エンドポイント41とルートコンプレックス27との間、言い換えればチップ11,15間のインターフェース47はPCIエキスプレスである。メモリコントローラ43はメモリXをコントロールする。
The
本実施形態に係る情報処理装置1によるリードリクエストの送信について説明する。図2はリードリクエスト及びコンプリーションデータが流れる経路を示す図である。図3はリードリクエストの送信中継を説明する図である。コンプリーションデータはリードリクエストに応じて返信されてきた返信データの一例である。
Transmission of a read request by the
3つのリードリクエストR−A1,R−A2,R−B1を例に説明する。リードリクエストR−A1はマスタAがメモリXに対して発行したリードリクエストである。リードリクエストR−A2はマスタAがメモリYに対して発行したリードリクエストである。リードリクエストR−B1はマスタBがメモリYに対して発行したリードリクエストである。 Three read requests R-A1, R-A2, and R-B1 will be described as an example. The read request R-A1 is a read request issued from the master A to the memory X. The read request R-A2 is a read request issued from the master A to the memory Y. The read request R-B1 is a read request issued from the master B to the memory Y.
リードリクエストR−A1,R−A2,R−B1の順番で中継部33に到達したとする。中継部33は、マスタA,Bから送信されてきたリードリクエストR−A1,R−A2,R−B1を中継する場合に、そのリードリクエストを特定する第1の情報、そのリードリクエストを送信したマスタを特定する第2の情報及びそのマスタが送信したリードリクエストの中でそのリードリクエストが送信されてきた順番を特定する第3の情報を対応付けた送信中継情報を記憶する処理をマスタA,Bから送信されてきたリードリクエストR−A1,R−A2,R−B1の順に実行する。
It is assumed that the
これを具体的に説明する。図4は送信中継情報を表で示した図である。送信中継情報は中継部33に備えられる記憶部51に記憶される。タグはリードリクエストを特定する第1の情報である。タグは「1」から始まる連続番号が予め用意されている。
This will be specifically described. FIG. 4 is a table showing transmission relay information. The transmission relay information is stored in the
中継部33は、最初に到達したリードリクエストR−A1について、タグ「1」を割り当て、送信したマスタを特定する第2の情報として「A」を記憶し、マスタAが送信したリードリクエストR−A1,R−A2の中でそのリードリクエストR−A1が送信されてきた順番を特定する第3の情報として「1」を記憶する。そして、図3に示すように、中継部33はリードリクエストR−A1にタグ「1」を付加して中継する。タグは例えばトランザクション層のパケットのヘッダに設けられたリザーブ領域に付加する。
The
中継部33は、次に到達したリードリクエストR−A2について、タグ「2」を割り当て、送信したマスタを特定する第2の情報として「A」を記憶し、マスタAが送信したリードリクエストR−A1,R−A2の中でそのリードリクエストR−A2が送信されてきた順番を特定する第3の情報として「2」を記憶する。そして、中継部33はリードリクエストR−A2にタグ「2」を付加して中継する。
The
中継部33は、三番目に到達したリードリクエストR−B1について、タグ「3」を割り当て、送信したマスタを特定する第2の情報として「B」を記憶し、マスタBが送信したリードリクエストR−B1の中でそのリードリクエストR−B1が送信されてきた順番を特定する第3の情報として「1」を記憶する。そして、中継部33はリードリクエストR−B1にタグ「3」を付加して中継する。
The
次に、本実施形態に係る情報処理装置1によるコンプリーションデータ(返信データの一例)の返信について図2、図5及び図6を用いて説明する。図5はコンプリーションデータの返信中継を説明する図である。図6は返信中継でのバッファと送信中継情報との関係を示す図である。
Next, reply of completion data (an example of reply data) by the
図5に示すように、コンプリーションデータC−A1はリードリクエストR−A1に対する応答であり、メモリXからマスタAに返信される。コンプリーションデータC−A2はリードリクエストR−A2に対する応答であり、メモリYからマスタAに返信される。コンプリーションデータC−B1はリードリクエストR−B1に対する応答であり、メモリYからマスタBに返信される。 As shown in FIG. 5, the completion data C-A1 is a response to the read request R-A1, and is returned from the memory X to the master A. The completion data C-A2 is a response to the read request R-A2, and is returned from the memory Y to the master A. The completion data C-B1 is a response to the read request R-B1, and is returned from the memory Y to the master B.
コンプリーションデータC−A2,C−B1,C−A1の順にルートコンプレックス25に到達し、この順番で中継部33に到達したとする。中継部33はコンプリーションデータを記憶するバッファ53を備える。
It is assumed that the completion data C-A2, C-B1, and C-A1 arrive at the
中継部33は、複数のメモリX,Yから返信されてきたコンプリーションデータC−A2,C−B1,C−A1を中継する際に、同じマスタに返信するコンプリーションデータであって対応するリードリクエストの順番が先であるコンプリーションデータを中継していれば、返信されてきたコンプリーションデータを中継し、順番が先であるコンプリーションデータを中継していなければ、順番が先であるコンプリーションデータを中継するまで返信されてきたコンプリーションデータを保持する処理を、送信中継情報を基にして複数のメモリX,Yから返信されてきたコンプリーションデータC−A2,C−B1,C−A1の順に実行する。これを具体的に説明する。
When the
中継部33は、最初に到達したコンプリーションデータC−A2をバッファ53に格納する。図6(A)に示すように、中継部33は記憶部51に記憶されている送信中継情報を参照して、コンプリーションデータC−A2に付加されているタグ「2」と同じ番号のタグの欄において、順番が「1」であるか判断する。タグ「2」では順番が「2」である。これは、「1」に対応するコンプリーションデータC−A1がマスタAにまだ返信されていないこと示す。コンプリーションデータC−A2はリードリクエストR−A2に対する応答である。マスタAに先に返信すべきデータはリードリクエストR−A1に対する応答であるコンプリーションデータC−A1である。従って、中継部33はコンプリーションデータC−A2をバッファ53で保持する。
The
中継部33は、次に到達したコンプリーションデータC−B1をバッファ53に格納する。図6(B)に示すように、中継部33は送信中継情報を参照して、コンプリーションデータC−B1に付加されているタグ「3」と同じ番号のタグの欄において、順番が「1」であるか判断する。タグ「3」では順番が「1」である。これはマスタBにとってバッファ53で保持せずに中継すべきデータであることを示している。従って、中継部33はコンプリーションデータからタグ「3」を削除して、マスタBへ返信する中継を実行する。
The
中継部33は、3番目に到達したコンプリーションデータC−A1をバッファ53に格納する。図6(C)に示すように、中継部33は送信中継情報を参照して、コンプリーションデータC−A1に付加されているタグ「1」と同じ番号のタグの欄において、順番が「1」であるか判断する。タグ「1」では順番が「1」である。これはマスタAにとってバッファ53で保持せずに中継すべきデータであることを示している。従って、中継部33はコンプリーションデータC−A1からタグ「1」を削除して、マスタAへ返信する中継を実行する。また、中継部33は送信中継情報において、マスタAについての順番を繰り上げる処理をする。ここでは、タグ「2」の欄において、順番を「2」から「1」に繰り上げる。
The
中継部33は、コンプリーションデータC−A1の中継後、バッファ53で保持されているコンプリーションデータC−A2について、図6(D)に示すように送信中継情報を参照して、コンプリーションデータC−A2に付加されているタグ「2」と同じ番号のタグの欄において、順番が「1」であるか判断する。タグ「2」では順番が「1」である。これはバッファ53に保持せずにマスタAに返信すべきデータであることを示している。従って、図5に示すように中継部33はコンプリーションデータC−A2からタグ「2」を削除して、マスタAへ返信する中継を実行する。
After the completion data C-A1 is relayed, the
本実施形態の主な効果を説明する。本実施形態によれば、中継部33は、マスタA,Bから送信されてきたリードリクエストR−A1,R−A2,R−B1を送信中継する際に、送信中継情報を作成して記憶すると共にリードリクエストR−A1,R−A2,R−B1にタグ「1」、「2」、「3」を付加して中継する。中継部33は、メモリX,Yから返信されてきたコンプリーションデータC−A1,C−A2,C−B1を返信中継する際に、送信中継情報とタグを用いて、以下の処理をする。同じマスタに返信するコンプリーションデータであって対応するリードリクエストの順番が先であるコンプリーションデータを中継していれば、返信されてきたコンプリーションデータを中継し、順番が先であるコンプリーションデータを中継していなければ、順番が先であるコンプリーションデータを中継するまで返信されてきたコンプリーションデータをバッファ53で保持する。
The main effects of this embodiment will be described. According to the present embodiment, the
従って、中継部33は、同じマスタに返信するコンプリーションデータの順番がリードリクエストの順番と異なっていれば、コンプリーションデータの順番をリードリクエストの順番に合うように順番を変更して中継する。よって、コンプリーションデータの順番がリードリクエストの順番と異なる場合に、コンプリーションデータを正しい順番に変更するためのバッファをマスタA,Bのそれぞれに設ける必要がなくなる。
Therefore, if the order of the completion data returned to the same master is different from the order of the read request, the
以上より、本実施形態によれば、複数のマスタA,Bが複数のメモリX,Yに対してアクセスする場合に、コンプリーションデータの順番を並び替えるためのバッファを各マスタA,Bに設ける必要がなくなる。 As described above, according to the present embodiment, when a plurality of masters A and B access a plurality of memories X and Y, a buffer for rearranging the order of completion data is provided in each master A and B. There is no need.
また、本実施形態によれば、リードレイテンシを小さくすることができる。詳細に説明すると、中継装置33のバッファ53に複数のメモリX,Yから返信されてきたコンプリーションデータの全部を記憶させ、コンプリーションデータの順番を正しく並び替えて、各メモリX,Yに返信する態様が考えられる。しかし、この態様ではコンプリーションデータの全部をバッファ53に一度記憶させる結果、全てのリードリクエストに対応するコンプリーションデータが返信された後でなければ、各マスタA,Bがコンプリーションデータを受信できないので、リードレイテンシが大きくなる可能性がある。
Further, according to the present embodiment, the read latency can be reduced. More specifically, all the completion data returned from the plurality of memories X and Y is stored in the
これに対して、本実施形態では、中継部33が返信中継において返信されてきたコンプリーションデータを保持する処理を同じマスタに返信するコンプリーションデータに対して実行するので、異なるマスタA,Bに返信するコンプリーションデータについては、返信されてきたコンプリーションデータの順番に中継される。よって、マスタBにとってはリードレイテンシを小さくできる。
On the other hand, in the present embodiment, the
さらに、本実施形態によれば、複数のマスタA,Bが複数のチップ11,13,15を経由して複数のメモリX,Yにアクセスする情報処理装置1に中継部33を備えている。そして、複数のマスタA,Bの少なくとも1つ(マスタA)は、複数のメモリX,Yに対してアクセスする際に経由するチップ数が異なる。マスタがメモリにアクセスする際に経由するチップ数が異なれば、コンプリーションデータの順番がリードリクエストの順番と異なることが発生しやすいので、本実施形態は特に有効となる。
Further, according to the present embodiment, the
本実施形態によれば、図1に示すように中継部33をチップ13に設けている。チップ13は複数のチップ11,13,15のうち、複数のメモリX,Yから返信されてきたコンプリーションデータが複数のマスタA,Bへ分流する箇所(内部バス35)を有するチップである。中継部33をチップ13に設けることにより、中継部33が複数のマスタA,Bの近くに配置されるので、中継部33で正しい順番に変更されたコンプリーションデータについて再び順番が変更されてしまう可能性を低くすることができる。なお、中継部33は複数のメモリX,Yから返信されてきたコンプリーションデータが合流する箇所(内部バス29)から、複数のマスタA,Bへ分流する箇所(内部バス35)までの間に設けることができる。
According to the present embodiment, the
本実施形態によれば、複数のチップ11,13,15間のインターフェース37,47はPCIエキスプレスである。従って、リードリクエスト及びコンプリーションデータの転送を高速化できる。
According to this embodiment, the
なお、本実施形態では複数のマスタが複数のスレーブに対してアクセスする態様として、マスタAがメモリX,Yにアクセスし、マスタBがメモリYにアクセスする態様で説明した。これ以外に、マスタAがメモリX,Yにアクセスし、マスタBがメモリX,Yにアクセスする態様でもよい。 In the present embodiment, a mode in which a master A accesses the memories X and Y and a master B accesses the memory Y has been described as a mode in which a plurality of masters access a plurality of slaves. In addition to this, the master A may access the memories X and Y, and the master B may access the memories X and Y.
本実施形態ではリードリクエストを特定する第1の情報としてタグを用いており、リードリクエストに第1の情報を付加して中継しているが、トランザクションのパケットのID等を第1の情報としてリードリクエストを特定してもよい。これによれば、第1の情報をリードリクエストに付加する処理が不要となる。 In this embodiment, a tag is used as the first information for specifying the read request, and the first information is added to the read request for relaying. However, the transaction packet ID or the like is read as the first information. The request may be specified. This eliminates the need to add the first information to the read request.
複数のチップで説明したが複数のチップセットでも本実施形態を適用できる。 Although described with a plurality of chips, the present embodiment can be applied to a plurality of chipsets.
1 情報処理装置
11,13,15 チップ
33 中継部
51 記憶部
53 バッファ
1
Claims (5)
複数のスレーブと、
前記複数のマスタが前記複数のスレーブにアクセスする場合に送信中継と返信中継を実行する中継部と、を備え、
前記送信中継において、前記中継部は、
前記複数のマスタから送信されてきたリードリクエストを中継する際に、当該リードリクエストを特定する第1の情報、当該リードリクエストを送信したマスタを特定する第2の情報、当該マスタが送信したリードリクエストの中で当該リードリクエストが送信されてきた順番を特定する第3の情報を対応付けた送信中継情報を記憶する処理を、前記複数のマスタから送信されてきたリードリクエストの順に実行し、
前記返信中継において、前記中継部は、
前記複数のスレーブからリードリクエストに応じて返信されてきた前記第1の情報を有する返信データを中継する際に、同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、前記返信されてきた返信データを中継し、前記順番が先である返信データを中継していなければ、前記順番が先である返信データを中継するまで前記返信されてきた返信データを保持する処理を、前記送信中継情報を基にして前記複数のスレーブから返信されてきた返信データの順に実行する情報処理装置。 Multiple masters,
With multiple slaves,
A relay unit that performs transmission relay and reply relay when the plurality of masters access the plurality of slaves, and
In the transmission relay, the relay unit includes:
When relaying a read request transmitted from the plurality of masters, first information for identifying the read request, second information for identifying a master that has transmitted the read request, and a read request transmitted by the master The process of storing the transmission relay information associated with the third information specifying the order in which the read requests are transmitted in the order of the read requests transmitted from the plurality of masters,
In the reply relay, the relay unit
When relaying reply data having the first information sent back in response to a read request from the plurality of slaves, reply data to be sent back to the same master and the corresponding read request in order If the data is relayed, the returned reply data is relayed. If the reply data in the order is not relayed, the reply is sent until the reply data in the order is relayed. An information processing apparatus that executes processing for holding the reply data in the order of reply data returned from the plurality of slaves based on the transmission relay information.
前記送信されてきたリードリクエストに前記第1の情報を付加して中継し、
前記返信中継において、前記中継部は、
前記返信されてきた返信データに付加されている前記第1の情報と前記送信中継情報とを用いて、前記返信されてきた返信データを保持するか又は中継するかを選択する請求項1に記載の情報処理装置。 In the transmission relay, the relay unit includes:
Add the first information to the read request sent and relay it,
In the reply relay, the relay unit
2. The method according to claim 1, wherein whether the reply data returned is retained or relayed is selected using the first information added to the reply data returned and the transmission relay information. Information processing device.
前記複数のマスタの少なくとも1つは、前記複数のスレーブに対してアクセスする際に経由するチップ数が異なる請求項1又は2に記載の情報処理装置。 With multiple chips,
The information processing apparatus according to claim 1, wherein at least one of the plurality of masters has a different number of chips through which access is made to the plurality of slaves.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010220787A JP5613517B2 (en) | 2010-09-30 | 2010-09-30 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010220787A JP5613517B2 (en) | 2010-09-30 | 2010-09-30 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012078895A true JP2012078895A (en) | 2012-04-19 |
JP5613517B2 JP5613517B2 (en) | 2014-10-22 |
Family
ID=46239119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010220787A Expired - Fee Related JP5613517B2 (en) | 2010-09-30 | 2010-09-30 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5613517B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014103144A1 (en) * | 2012-12-28 | 2014-07-03 | パナソニック株式会社 | Interface device and memory bus system |
US10430364B2 (en) | 2015-10-30 | 2019-10-01 | New H3C Technologies Co., Ltd. | Packet forwarding |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS539433A (en) * | 1976-07-13 | 1978-01-27 | Fujitsu Ltd | Buffer memory control system |
JPH04190435A (en) * | 1990-11-26 | 1992-07-08 | Hitachi Ltd | Memory access order guarantee method for multiprocessor system |
JP2002530731A (en) * | 1998-11-16 | 2002-09-17 | インフィネオン・テクノロジーズ・アーゲー | Method and apparatus for detecting data collision on a data bus during abnormal memory access or performing memory access at different times |
US20030172237A1 (en) * | 2002-03-05 | 2003-09-11 | Watts Jonathan Manuel | Re-ordering requests for shared resources |
JP2004355271A (en) * | 2003-05-28 | 2004-12-16 | Toshiba Corp | Data transfer system |
US20050080841A1 (en) * | 2003-10-14 | 2005-04-14 | International Business Machines Corporation | Employing hardware to track dependencies between request groups |
JP2008276783A (en) * | 2007-05-04 | 2008-11-13 | Internatl Business Mach Corp <Ibm> | System for reordering data responses |
JP2010531518A (en) * | 2007-06-25 | 2010-09-24 | ソニックス・インコーポレーテッド | Various methods and apparatus for supporting outstanding requests to multiple targets while maintaining transaction ordering |
-
2010
- 2010-09-30 JP JP2010220787A patent/JP5613517B2/en not_active Expired - Fee Related
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS539433A (en) * | 1976-07-13 | 1978-01-27 | Fujitsu Ltd | Buffer memory control system |
JPH04190435A (en) * | 1990-11-26 | 1992-07-08 | Hitachi Ltd | Memory access order guarantee method for multiprocessor system |
JP2002530731A (en) * | 1998-11-16 | 2002-09-17 | インフィネオン・テクノロジーズ・アーゲー | Method and apparatus for detecting data collision on a data bus during abnormal memory access or performing memory access at different times |
US20030172237A1 (en) * | 2002-03-05 | 2003-09-11 | Watts Jonathan Manuel | Re-ordering requests for shared resources |
JP2004355271A (en) * | 2003-05-28 | 2004-12-16 | Toshiba Corp | Data transfer system |
US20050080841A1 (en) * | 2003-10-14 | 2005-04-14 | International Business Machines Corporation | Employing hardware to track dependencies between request groups |
JP2008276783A (en) * | 2007-05-04 | 2008-11-13 | Internatl Business Mach Corp <Ibm> | System for reordering data responses |
JP2010531518A (en) * | 2007-06-25 | 2010-09-24 | ソニックス・インコーポレーテッド | Various methods and apparatus for supporting outstanding requests to multiple targets while maintaining transaction ordering |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014103144A1 (en) * | 2012-12-28 | 2014-07-03 | パナソニック株式会社 | Interface device and memory bus system |
CN104137083A (en) * | 2012-12-28 | 2014-11-05 | 松下电器产业株式会社 | Interface device and memory bus system |
JP5793690B2 (en) * | 2012-12-28 | 2015-10-14 | パナソニックIpマネジメント株式会社 | Interface device and memory bus system |
CN104137083B (en) * | 2012-12-28 | 2018-08-28 | 松下知识产权经营株式会社 | Interface arrangement and memory bus system |
US10225168B2 (en) | 2012-12-28 | 2019-03-05 | Panasonic Intellectual Property Management Co. Ltd | Interface apparatus and memory bus system |
US10430364B2 (en) | 2015-10-30 | 2019-10-01 | New H3C Technologies Co., Ltd. | Packet forwarding |
Also Published As
Publication number | Publication date |
---|---|
JP5613517B2 (en) | 2014-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515030B2 (en) | Method and device for improved advanced microcontroller bus architecture (AMBA) and advanced extensible interface (AXI) operations | |
CN100472494C (en) | System and method for implementing memory mediation of supporting multi-bus multi-type memory device | |
JP5666722B2 (en) | Memory interface | |
JP2012038293A5 (en) | ||
CN108959136B (en) | SPI-based data transmission accelerating device and system and data transmission method | |
JP2013512519A (en) | Controller directly accessing memory for direct transfer of data between memories of several peripheral devices, method and computer program enabling such controller | |
JP2007219816A (en) | Multiprocessor system | |
CN100432972C (en) | Mechanism for preserving producer-consumer ordering across an unordered interface | |
US8359419B2 (en) | System LSI having plural buses | |
JP5613517B2 (en) | Information processing device | |
CN112867998B (en) | Operation accelerator, switch, task scheduling method and processing system | |
US20170308487A1 (en) | Data transfer control system, data transfer control method, and program storage medium | |
US7203781B2 (en) | Bus architecture with primary bus and secondary or slave bus wherein transfer via DMA is in single transfer phase engagement of primary bus | |
US9858222B2 (en) | Register access control among multiple devices | |
WO2007039933A1 (en) | Operation processing device | |
JP5383159B2 (en) | Bus relay apparatus and control method | |
JP2004086798A (en) | Multiprocessor system | |
KR20220132333A (en) | Peripheral component interconnect express interface device and operating method thereof | |
JP2011113163A (en) | Inter-end point communication control device and method in io access communication system | |
JP2007506174A (en) | Integrated circuit having a plurality of communication digital signal processors | |
TWI724608B (en) | Microcontroller architecture and data reading method in architecture | |
JP2003085125A (en) | Memory controller and memory control method | |
JPH0844661A (en) | Information processor | |
US20200133877A1 (en) | Mapping entry invalidation | |
JP2002278922A (en) | Computer bus system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120821 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131008 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131122 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140409 |
|
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: 20140812 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140908 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5613517 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |