JP2009134635A - Multiprocessor system - Google Patents

Multiprocessor system Download PDF

Info

Publication number
JP2009134635A
JP2009134635A JP2007311409A JP2007311409A JP2009134635A JP 2009134635 A JP2009134635 A JP 2009134635A JP 2007311409 A JP2007311409 A JP 2007311409A JP 2007311409 A JP2007311409 A JP 2007311409A JP 2009134635 A JP2009134635 A JP 2009134635A
Authority
JP
Japan
Prior art keywords
data
control unit
buffer
bus
storage areas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007311409A
Other languages
Japanese (ja)
Inventor
Yuichiro Shima
雄一郎 島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2007311409A priority Critical patent/JP2009134635A/en
Publication of JP2009134635A publication Critical patent/JP2009134635A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multiprocessor system that increase efficiency of data transfer between a plurality of processors. <P>SOLUTION: In a configuration having, for example, a microcomputer [1]MC1 and a system memory MEM1 thereof, and a microcomputer [2]MC2 and a system memory MEM2 thereof, a data relay device PCIC is disposed on a path of data transfer from MEM1 to MEM2. PCIC includes a first buffer BFA and a second buffer BFB, which are accessed alternately when large volume data is transferred. For example, when a DMA controller DMAC1 in MC1 stores data into BFB, a DMA controller DMAC2 in MC2 reads out data from BFA (S63), and then DMAC1 stores the subsequent data into BFA emptied (S64). <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明はマルチプロセッサシステムに関し、特に各プロセッサが各DMAコントローラ(Direct Memory Access Controller)を用いて各プロセッサ同士のデータ転送を行うマルチプロセッサシステムに適用して有益な技術に関するものである。   The present invention relates to a multiprocessor system, and more particularly to a technique that is useful when applied to a multiprocessor system in which each processor transfers data between processors using each DMA controller (Direct Memory Access Controller).

例えば、2つのプロセッサ間でデータ転送を行う際には、この各プロセッサ間を繋ぐバス上に共有メモリを設置する方式などが知られている。この方式によってデータ転送を行う場合は、2つのプロセッサ間でバス使用権の調停を行いながら、一方のプロセッサが共有メモリにデータを書き込み、他方のプロセッサが共有メモリからデータを読み出すような動作が行われる。   For example, when data is transferred between two processors, a method of installing a shared memory on a bus connecting the processors is known. When data transfer is performed using this method, one processor writes data to the shared memory and the other processor reads data from the shared memory while arbitrating the bus use right between the two processors. Is called.

ところで、前記のようなマルチプロセッサシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。   By the way, as a result of examination of the technique of the multiprocessor system as described above by the present inventor, the following has been clarified.

図12は、本発明の前提として検討した従来技術のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。図12に示すマルチプロセッサシステムは、プロセッサ[1]CPU1とプロセッサ[2]CPU2を共通のローカルバスLBUSで接続し、このLBUSに転送用バッファBFが接続された構成となっている。例えば、CPU1用のシステムメモリMEM1からCPU2用のシステムメモリMEM2にデータ転送を行う場合、MEM1のデータをCPU1を介して転送用バッファBFにライトし、このBFのデータをCPU2を介してMEM2に書き込む。   FIG. 12 is a block diagram showing an example of the configuration of a conventional multiprocessor system studied as a premise of the present invention. The multiprocessor system shown in FIG. 12 has a configuration in which a processor [1] CPU1 and a processor [2] CPU2 are connected by a common local bus LBUS, and a transfer buffer BF is connected to this LBUS. For example, when data is transferred from the system memory MEM1 for the CPU1 to the system memory MEM2 for the CPU2, the data of the MEM1 is written to the transfer buffer BF via the CPU1, and the data of this BF is written to the MEM2 via the CPU2. .

このような動作を行うため、CPU1とCPU2は、それぞれバス調停機能を備える必要がある。例えば、CPU1は、バッファBFにライトを行う際に、予めCPU2に対してバス権要求信号BREQを出力し、その返答としてCPU2からバス権要求許可信号BACKを受けることでLBUSの権限を確保する必要がある。また、CPU2は、BFからリードを行う際に、その逆の手順でLBUSの権限を確保する必要がある。   In order to perform such an operation, each of the CPUs 1 and 2 needs to have a bus arbitration function. For example, when writing to the buffer BF, the CPU 1 needs to ensure the LBUS authority by outputting the bus right request signal BREQ to the CPU 2 in advance and receiving the bus right request permission signal BACK from the CPU 2 as a response. There is. Further, when reading from the BF, the CPU 2 needs to secure the authority of the LBUS in the reverse procedure.

したがって、このような構成を用いると、転送処理の最中でプロセッサCPUのリソースが奪われると共に、例えばデータを分割して転送する際にはその都度ハンドシェイク(BREQおよびBACK)が必要となる。更には、CPU1がBFにデータをライト中、CPU2は待たされることになる。このようなことから、処理手順の複雑化、転送効率の低下、プロセッサの処理効率の低下などが懸念される。   Therefore, when such a configuration is used, the resources of the processor CPU are deprived during the transfer process, and for example, when data is divided and transferred, a handshake (BREQ and BACK) is required each time. Further, the CPU 2 waits while the CPU 1 is writing data to the BF. For this reason, there is a concern that the processing procedure becomes complicated, the transfer efficiency decreases, the processor processing efficiency decreases, and the like.

本発明は、このようなことを鑑みてなされたものであり、その目的の一つは、複数のプロセッサ間でのデータ転送効率を向上可能なマルチプロセッサシステムを提供することにある。また、本発明の他の目的の一つは、複数のプロセッサ間でのデータ転送効率を小さい回路規模で向上可能なマルチプロセッサシステムを提供することにある。本発明の前記ならびにそれ以外の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。   The present invention has been made in view of the above, and an object of the present invention is to provide a multiprocessor system capable of improving the data transfer efficiency between a plurality of processors. Another object of the present invention is to provide a multiprocessor system capable of improving the data transfer efficiency between a plurality of processors with a small circuit scale. The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.

本発明の一実施の形態によるマルチプロセッサシステムは、第1プロセッサ側の第1システムメモリと第2プロセッサ側の第2システムメモリとの間のデータ転送を、第1プロセッサ側の第1データ転送制御部(代表的にはDMAコントローラ)と第2プロセッサ側の第2データ転送制御部を用いて行うものとなっている。そして、この第1システムメモリと第2システムメモリとの間のデータ転送経路に、N(N≧2)個の記憶領域を含むデータバッファを含んだデータ中継部が備わったことが特徴となっている。   In the multiprocessor system according to the embodiment of the present invention, the data transfer between the first system memory on the first processor side and the second system memory on the second processor side is controlled by the first data transfer control on the first processor side. This is performed using a second data transfer control unit on the second processor side (typically a DMA controller) and the second processor side. The data transfer path between the first system memory and the second system memory includes a data relay unit including a data buffer including N (N ≧ 2) storage areas. Yes.

例えば、第1システムメモリから第2システムメモリにデータ転送を行う場合は、第1データ転送制御部が第1システムメモリからデータ中継部のデータバッファに向けたデータ転送を制御し、第2データ転送制御部がデータバッファから第2システムメモリに向けたデータ転送を制御する。この際に、第1システムメモリからのデータは、N個の記憶領域において、第1番目の記憶領域から第N番目の記憶領域に向けて順に格納され、第N番目の記憶領域に格納された後は第1番目の記憶領域に戻って格納される。一方、これと並行して、このN個の記憶領域に格納されたデータは、第1番目の記憶領域から第N番目の記憶領域に向けて順に読み出され、第N番目の記憶領域から読み出された後は第1番目の記憶領域に戻って読み出され、その都度第2システムメモリに転送される。   For example, when data is transferred from the first system memory to the second system memory, the first data transfer control unit controls the data transfer from the first system memory to the data buffer of the data relay unit, and the second data transfer The control unit controls data transfer from the data buffer to the second system memory. At this time, the data from the first system memory is sequentially stored in the N storage areas from the first storage area to the Nth storage area, and then stored in the Nth storage area. After that, the data is stored back to the first storage area. On the other hand, in parallel with this, the data stored in the N storage areas are sequentially read from the first storage area to the Nth storage area and read from the Nth storage area. After being issued, the data is read back to the first storage area and transferred to the second system memory each time.

また、この際に、このN個の記憶領域のそれぞれがライト済み(充満状態)であるかリード済み(空状態)であるかが監視される。データ中継部は、対象とする記憶領域が空状態の場合には、第1データ転送制御部のデータ転送(即ち記憶領域への書き込み)をイネーブルとし、対象とする記憶領域が充満状態である場合には、第2データ転送制御部のデータ転送(即ち記憶領域からの読み出し)をイネーブルとする。   At this time, it is monitored whether each of the N storage areas is written (full state) or read (empty state). When the target storage area is empty, the data relay unit enables data transfer (that is, writing to the storage area) of the first data transfer control unit, and the target storage area is full In this case, data transfer (that is, reading from the storage area) of the second data transfer control unit is enabled.

このような構成を用いると、例えば、大容量のデータ転送を行った場合に、ある記憶領域に対するライト動作と、別の記憶領域に対するリード動作とを並行して行うことができ、高いデータ転送効率を実現できる。また、この際に、DMAコントローラ等を用いているため、プロセッサのリソースは奪われずに、その処理効率の低下を抑制できる。さらに、N個の記憶領域を巡回させながら使用する方式であるため、大容量のデータ転送をこの容量に満たない小容量のデータバッファを用いて実現でき、回路規模の低減が可能となる。なお、最小構成としては、2個の記憶領域を用いて、この2個の記憶領域に対して交互にライト又はリードするような方式となる。   When such a configuration is used, for example, when a large amount of data is transferred, a write operation to one storage area and a read operation to another storage area can be performed in parallel, and high data transfer efficiency is achieved. Can be realized. At this time, since a DMA controller or the like is used, it is possible to suppress a reduction in processing efficiency without depriving processor resources. Furthermore, since the N storage areas are used while being cycled, large-capacity data transfer can be realized using a small-capacity data buffer that does not have this capacity, and the circuit scale can be reduced. As a minimum configuration, two storage areas are used and the two storage areas are alternately written or read.

また、本発明の一実施の形態によるマルチプロセッサシステムは、前述したようなデータバッファを、第1システムメモリから第2システムメモリに向けたデータ転送用と、第2システムメモリから第1システムメモリに向けたデータ転送用とに分けることで2系統備えたことが特徴となっている。この場合、例えば第1データ転送制御部と第2データ転送制御部が備える複数のチャネルを用いて双方向のデータ転送を設定すれば、途中で各プロセッサの処理が介入することなくこの双方向のデータ転送を並行して行うことが可能となる。例えば、1系統のデータバッファを双方向対応とした場合、回路が複雑化すると共に、双方向のデータ転送を行う際に途中でプロセッサの処理が介入することになる。また、例えば双方向対応のデータバッファを2系統設けた場合、回路の複雑化や回路規模の増大が懸念される。したがって、前述したように一方向対応のデータバッファを2系統設けることで、小さい回路規模で双方向のデータ転送を効率的に行うことができる。   The multiprocessor system according to an embodiment of the present invention includes a data buffer as described above for transferring data from the first system memory to the second system memory and from the second system memory to the first system memory. It is characterized by having two systems by dividing it for data transfer. In this case, for example, if bidirectional data transfer is set by using a plurality of channels included in the first data transfer control unit and the second data transfer control unit, the processing of each processor is not performed in the middle of the bidirectional data transfer. Data transfer can be performed in parallel. For example, when one data buffer is bidirectionally compatible, the circuit becomes complicated and the processing of the processor intervenes during the bidirectional data transfer. Further, for example, when two systems of bidirectional data buffers are provided, there is a concern that the circuit may be complicated or the circuit scale may be increased. Therefore, by providing two unidirectional data buffers as described above, bidirectional data transfer can be efficiently performed with a small circuit scale.

本発明の一実施の形態によるマルチプロセッサシステムを用いることで、複数のプロセッサ間でのデータ転送効率を向上可能となる。また、複数のプロセッサ間でのデータ転送効率を小さい回路規模で向上可能となる。   By using the multiprocessor system according to the embodiment of the present invention, it is possible to improve the data transfer efficiency between a plurality of processors. In addition, data transfer efficiency between a plurality of processors can be improved with a small circuit scale.

以下、本発明の実施の形態を図面に基づいて詳細に説明する。実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。以下の実施の形態においては、便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In all the drawings for explaining the embodiments, the same members are denoted by the same reference symbols in principle, and the repeated explanation thereof is omitted. In the following embodiments, when it is necessary for the sake of convenience, the description will be divided into a plurality of sections or embodiments. However, unless otherwise specified, they are not irrelevant to each other. The other part or all of the modifications, details, supplementary explanations, and the like are related. Further, in the following embodiments, when referring to the number of elements (including the number, numerical value, quantity, range, etc.), especially when clearly indicated and when clearly limited to a specific number in principle, etc. Except, it is not limited to the specific number, and may be more or less than the specific number.

さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。   Further, in the following embodiments, the constituent elements (including element steps and the like) are not necessarily indispensable unless otherwise specified and clearly considered essential in principle. Needless to say. Similarly, in the following embodiments, when referring to the shapes, positional relationships, etc. of the components, etc., the shapes are substantially the same unless otherwise specified, or otherwise apparent in principle. And the like are included. The same applies to the above numerical values and ranges.

まず、本発明の検討にあたり、その前提として検討した比較例となるマルチプロセッサシステムについて説明を行う。図1は、本発明の前提として検討した比較例のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。図1に示すマルチプロセッサシステムは、ローカルバス[1]LBUS1にマイクロコンピュータ(以下、マイコンと略す)[1]MC1およびこのMC1用のシステムメモリMEM1が接続され、ローカルバス[2]LBUS2にマイコン[2]MC2およびこのMC2用のシステムメモリMEM2が接続されている。   First, a multiprocessor system, which is a comparative example studied as a premise in examining the present invention, will be described. FIG. 1 is a block diagram showing an example of the configuration of a comparative multiprocessor system examined as a premise of the present invention. In the multiprocessor system shown in FIG. 1, a microcomputer (hereinafter abbreviated as a microcomputer) [1] MC1 and a system memory MEM1 for MC1 are connected to a local bus [1] LBUS1, and a microcomputer [ 2] MC2 and system memory MEM2 for this MC2 are connected.

さらに、図1のマルチプロセッサシステムは、LBUS1およびLBUS2をそれぞれ一方のポートおよび他方のポートとするデュアルポートメモリDPRAMを備えている。マイコン[1]MC1は、プロセッサ[1]CPU1およびDMAコントローラ[1]DMAC1を含み、マイコン[2]MC2は、プロセッサ[2]CPU2およびDMAコントローラ[2]DMAC2を含んでいる。例えば、MEM1からMEM2にデータ転送を行いたい場合、DMAC1がMEM1より所望のデータをリードすると共にDPRAMにライトし、DMAC2がこのライトデータをDPRAMよりリードすると共にMEM2にライトする。したがって、前述した図12の場合と異なり、このデータ転送の最中、CPU1およびCPU2のリソースは奪われないので、プロセッサの処理効率はある程度確保できる。   Further, the multiprocessor system of FIG. 1 includes a dual port memory DPRAM having LBUS1 and LBUS2 as one port and the other port, respectively. The microcomputer [1] MC1 includes a processor [1] CPU1 and a DMA controller [1] DMAC1, and the microcomputer [2] MC2 includes a processor [2] CPU2 and a DMA controller [2] DMAC2. For example, when it is desired to transfer data from MEM1 to MEM2, DMAC1 reads desired data from MEM1 and writes it to DPRAM, and DMAC2 reads this write data from DPRAM and writes it to MEM2. Therefore, unlike the case of FIG. 12 described above, the CPU 1 and CPU 2 resources are not deprived during the data transfer, so that the processing efficiency of the processor can be ensured to some extent.

ただし、この場合、DMAコントローラDMACの1回の起動に伴う最大データ転送量は、DPRAMの容量となる。したがって、大容量のデータを転送したい場合、(1)DPRAMの容量を大きくする、(2)DPRAMの容量を小さくしてDMAコントローラDMACを複数回起動する、のいずれかの方式を用いる必要がある。まず、(1)の方式を用いた場合、当然のことながら回路規模が大きくなってしまう。   However, in this case, the maximum data transfer amount accompanying one activation of the DMA controller DMAC is the capacity of the DPRAM. Therefore, when transferring a large amount of data, it is necessary to use one of the following methods: (1) increasing the capacity of the DPRAM, and (2) starting the DMA controller DMAC multiple times by decreasing the capacity of the DPRAM. . First, when the method (1) is used, the circuit scale naturally increases.

一方、(2)の方式を用いた場合、CPU1とCPU2を制御するソフトウェアの負担が大きくなる。すなわち、例えば、CPU1は、DMAC1に対してN回目の起動を行う際、CPU2がDMAC2に対して行った(N−1)回目の起動に伴う動作が完了していることを確認する必要がある。このため、例えば、CPU2のソフトウェアは、DMAC2から(例えば割り込み信号等によって)動作完了の通知を受けた際に割り込み信号[A]等をアサートし、CPU1のソフトウェアは、この割り込み信号[A]等のアサートを検知してDMAC1を起動するといった処理を実行する必要がある。そうすると、ソフトウェア処理が煩雑になると共に、このような処理の実行に伴いデータ転送効率やプロセッサCPUの処理効率が低下する恐れもある。以降に説明する実施の形態では、このような問題点も含めて解決を図る。   On the other hand, when the method (2) is used, the burden of software for controlling the CPU 1 and the CPU 2 increases. That is, for example, when the CPU 1 performs the N-th activation for the DMAC 1, it is necessary to confirm that the operation associated with the (N-1) -th activation performed by the CPU 2 for the DMAC 2 is completed. . Therefore, for example, the software of the CPU 2 asserts the interrupt signal [A] or the like when the operation completion notification is received from the DMAC 2 (for example, by an interrupt signal or the like), and the software of the CPU 1 It is necessary to execute processing such as detecting DMA assertion and starting DMAC1. Then, the software processing becomes complicated, and there is a risk that the data transfer efficiency and the processing efficiency of the processor CPU will be reduced with the execution of such processing. In the embodiments described below, solutions are made including such problems.

(実施の形態1)
図2は、本発明の実施の形態1によるマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。図2に示すマルチプロセッサシステムは、ローカルバス[1]LBUS1に接続されたマイコン[1]MC1と、ローカルバス[2]LBUS2に接続されたマイコン[2]MC2と、MC1用のシステムメモリMEM1と、MC2用のシステムメモリMEM2等を含んでいる。マイコン[1]MC1は、プロセッサ[1]CPU1およびDMAコントローラ[1]DMAC1を含み、マイコン[2]MC2は、プロセッサ[2]CPU2およびDMAコントローラ[2]DMAC2を含んでいる。各ローカルバスLBUS1,LBUS2は各マイコンMC1,MC2の外部に接続される外部バスである。各マイコンMC1,MC2は、プロセッサ及びDMAコントローラとを接続する図示されない内部バスを含む。
(Embodiment 1)
FIG. 2 is a block diagram showing an example of the configuration of the multiprocessor system according to the first embodiment of the present invention. The multiprocessor system shown in FIG. 2 includes a microcomputer [1] MC1 connected to the local bus [1] LBUS1, a microcomputer [2] MC2 connected to the local bus [2] LBUS2, and a system memory MEM1 for MC1. , A system memory MEM2 for MC2, and the like. The microcomputer [1] MC1 includes a processor [1] CPU1 and a DMA controller [1] DMAC1, and the microcomputer [2] MC2 includes a processor [2] CPU2 and a DMA controller [2] DMAC2. The local buses LBUS1 and LBUS2 are external buses connected to the outside of the microcomputers MC1 and MC2. Each of the microcomputers MC1 and MC2 includes an internal bus (not shown) that connects the processor and the DMA controller.

システムメモリMEM1は、メモリバスMBUS1によってマイコン[1]MC1と接続され、システムメモリMEM2は、メモリバスMBUS2によってマイコン[2]MC2と接続される。DMAコントローラ(データ転送制御部)DMACは、広く知られているように、予めプロセッサCPUによって転送元デバイスのアドレス(メモリアドレス、IOアドレス等)、転送先デバイスのアドレス、および転送データのサイズなどが設定された後に起動命令を受けると、この設定に基づいてCPUを経由せずにデータ転送を行う機能を備えている。また、転送元デバイスや転送先デバイスとして、DREQ(データ転送要求信号)付デバイスを指定することも可能となっている。この場合、DMACは、当該デバイスからのDREQを受信した際に、当該デバイスに対してデータ転送受付信号DACKを送信することでアクセスを行う。なお、DMACは、通常、複数のチャネルを備え、各チャネル毎に前述したような設定を任意に行うことが可能となっている。   The system memory MEM1 is connected to the microcomputer [1] MC1 via the memory bus MBUS1, and the system memory MEM2 is connected to the microcomputer [2] MC2 via the memory bus MBUS2. As is widely known, the DMA controller (data transfer control unit) DMAC previously determines the address of the transfer source device (memory address, IO address, etc.), the address of the transfer destination device, the size of the transfer data, etc. by the processor CPU. When a start command is received after the setting, the function of transferring data without going through the CPU based on this setting is provided. It is also possible to specify a device with a DREQ (data transfer request signal) as a transfer source device or a transfer destination device. In this case, when the DMAC receives a DREQ from the device, the DMAC accesses the device by transmitting a data transfer acceptance signal DACK. Note that the DMAC normally includes a plurality of channels, and the above-described setting can be arbitrarily performed for each channel.

このような構成において、図2のマルチプロセッサシステムは、さらに、LBUS1とLBUS2に接続されるデータ中継装置PCICを備えたことが主要な特徴となっている。図3は、図2におけるデータ中継装置PCICの詳細な構成例を示すブロック図である。図3に示すデータ中継装置PCICは、LBUS1からLBUS2へ向かうデータ転送を処理するチャネル0用の回路部と、LBUS2からLBUS1へ向かうデータ転送を処理するチャネル1用の回路部を含んでいる。   In such a configuration, the multiprocessor system of FIG. 2 is further characterized by further including a data relay device PCIC connected to LBUS1 and LBUS2. FIG. 3 is a block diagram showing a detailed configuration example of the data relay device PCIC in FIG. The data relay device PCIC shown in FIG. 3 includes a circuit unit for channel 0 that processes data transfer from LBUS1 to LBUS2, and a circuit unit for channel 1 that processes data transfer from LBUS2 to LBUS1.

チャネル0用の回路部は、LBUS1に接続されるライト制御部WCTL0と、LBUS2に接続されるリード制御部RCTL0と、例えばデュアルポートを備えたバッファ[A]BFA0,バッファ[B]BFB0と、カウンタ部CUNT0を含んでいる。チャネル1用の回路部は、LBUS1に接続されるリード制御部RCTL1と、LBUS2に接続されるライト制御部WCTL1と、例えばデュアルポートを備えたバッファ[A]BFA1,バッファ[B]BFB1と、カウンタ部CUNT1を含んでいる。各バッファBFA0,BFB0,BFA1,BFB1は、例えばそれぞれ独立した記憶回路とすることで任意に同時アクセスが可能なように構成され、特に限定はされないが、ここではそれぞれ128Byteの容量を備えるものとする。   The circuit unit for channel 0 includes a write control unit WCTL0 connected to LBUS1, a read control unit RCTL0 connected to LBUS2, a buffer [A] BFA0, a buffer [B] BFB0 having a dual port, and a counter. Part CUNT0 is included. The circuit unit for channel 1 includes a read control unit RCTL1 connected to LBUS1, a write control unit WCTL1 connected to LBUS2, a buffer [A] BFA1, a buffer [B] BFB1, and a counter having dual ports, for example. Part CUNT1. Each of the buffers BFA0, BFB0, BFA1, and BFB1 is configured to be capable of arbitrary simultaneous access by using, for example, independent storage circuits, and is not particularly limited. Here, each of the buffers BFA0, BFB0, BFA1, and BFB1 has a capacity of 128 bytes. .

ライト制御部WCTL0(WCTL1)は、外部よりライト命令を受けた際に、ローカルバスLBUS1(LBUS2)からライトデータを受信し、当該ライトデータをバッファ[A]BFA0またはバッファ[B]BFB0(BFA1またはBFB1)の一方のポートからライトする。また、WCTL0(WCTL1)は、カウンタ部CUNT0(CUNT1)からの制御信号によってBFA0およびBFB0(BFA1およびBFB1)の状態を認識し、その状態に応じて外部に向けてデータ転送要求信号DREQ0(DREQ1)を送信する。図2のDMAC1(DMAC2)は、このDREQ0(DREQ1)に応答してデータ転送要求受付信号DACK0(DACK1)を送信するが、ここでは、このDACK0(DACK1)は外部からのライト命令に相当することになる。   When receiving a write command from the outside, the write control unit WCTL0 (WCTL1) receives write data from the local bus LBUS1 (LBUS2), and receives the write data from the buffer [A] BFA0 or the buffer [B] BFB0 (BFA1 or Write from one port of BFB1). Also, WCTL0 (WCTL1) recognizes the states of BFA0 and BFB0 (BFA1 and BFB1) by the control signal from the counter unit CUNT0 (CUNT1), and sends the data transfer request signal DREQ0 (DREQ1) to the outside according to the state. Send. DMAC1 (DMAC2) in FIG. 2 transmits a data transfer request acceptance signal DACK0 (DACK1) in response to this DREQ0 (DREQ1). Here, this DACK0 (DACK1) corresponds to a write command from the outside. become.

リード制御部RCTL0(RCTL1)は、外部よりリード命令を受けた際に、バッファ[A]BFA0またはバッファ[B]BFB0(BFA1またはBFB1)の他方のポートからデータをリードし、このリードデータをローカルバスLBUS2(LBUS1)に送信する。また、RCTL0(RCTL1)は、カウンタ部CUNT0(CUNT1)からの制御信号によってBFA0およびBFB0(BFA1およびBFB1)の状態を認識し、その状態に応じて外部に向けてデータ転送要求信号DREQ0(DREQ1)を送信する。図2のDMAC2(DMAC1)は、このDREQ0(DREQ1)に応答してDACK0(DACK1)を送信するが、ここでは、このDACK0(DACK1)が外部からのリード命令に相当することになる。   When the read control unit RCTL0 (RCTL1) receives a read command from the outside, the read control unit RCTL0 (RCTL1) reads data from the other port of the buffer [A] BFA0 or the buffer [B] BFB0 (BFA1 or BFB1), and the read data is locally Transmit to bus LBUS2 (LBUS1). Further, RCTL0 (RCTL1) recognizes the states of BFA0 and BFB0 (BFA1 and BFB1) by the control signal from the counter unit CUNT0 (CUNT1), and sends the data transfer request signal DREQ0 (DREQ1) to the outside according to the state. Send. DMAC2 (DMAC1) in FIG. 2 transmits DACK0 (DACK1) in response to this DREQ0 (DREQ1), and here, this DACK0 (DACK1) corresponds to an external read command.

図4は、図3におけるカウンタ部CUNT0,1の詳細な構成例を示すブロック図である。図4に示すカウンタ部(バッファ管理部)CUNTは、ライトカウンタWCNT、リードカウンタRCNT、ステートマシンSMなどを含んでいる。ライトカウンタWCNTは、ライト制御部WCTLからのライトパルスをカウントし、そのカウンタ値が各バッファの容量である128Byteの整数倍の時、または全ての転送が完了した時(予め定められた設定値にカウンタ値が達した時)に制御信号(wr_end)をステートマシンSMに向けて送信する。ライトパルスは、ライト制御部WCTLがバッファ[A]BFA,[B]BFBに対してライトを1サイクル実行する毎に生成される。なお、ライトカウンタWCNTに予め定める設定値は、一回の転送サイズを設定する。例えば、図4においては、320Byteを設定する。   FIG. 4 is a block diagram showing a detailed configuration example of the counter units CUNT0, 1 in FIG. The counter unit (buffer management unit) CUNT shown in FIG. 4 includes a write counter WCNT, a read counter RCNT, a state machine SM, and the like. The write counter WCNT counts the write pulses from the write control unit WCTL, and when the counter value is an integral multiple of 128 bytes, which is the capacity of each buffer, or when all transfers have been completed (to a preset setting value). When the counter value is reached, a control signal (wr_end) is transmitted to the state machine SM. The write pulse is generated every time the write control unit WCTL executes one cycle of writing to the buffers [A] BFA and [B] BFB. Note that a preset transfer value for the write counter WCNT sets a single transfer size. For example, in FIG. 4, 320 bytes are set.

リードカウンタRCNTは、リード制御部RCTLからのリードパルスをカウントし、そのカウンタ値が各バッファの容量である128Byteの整数倍の時、または全ての転送が完了した時(予め定められた設定値にカウンタ値が達した時)に制御信号(rd_end)をステートマシンSMに向けて送信する。リードパルスは、リード制御部RCTLがバッファ[A]BFA,[B]BFBからのリードを1サイクル実行する毎に生成される。なお、リードカウンタRCNTに予め定める設定値は、一回の転送サイズを設定する。   The read counter RCNT counts the read pulses from the read control unit RCTL, and when the counter value is an integral multiple of 128 bytes, which is the capacity of each buffer, or when all transfers are completed (set to a predetermined set value). When the counter value is reached, a control signal (rd_end) is transmitted to the state machine SM. The read pulse is generated every time the read control unit RCTL executes one cycle of reading from the buffers [A] BFA and [B] BFB. Note that a preset transfer value for the read counter RCNT sets a single transfer size.

ステートマシンSMは、初期状態を空状態(EMP)として、この状態で制御信号(wr_end)を受信すると充満状態(Not EMP)へ遷移する。逆に、充満状態(Not EMP)において制御信号(rd_end)を受信すると空状態(EMP)へ遷移する。この空状態(EMP)または充満状態(Not EMP)の判断は、各バッファ[A]BFA,[B]BFB毎に行われる。そして、ステートマシンSMは、リード制御部RCTLおよびライト制御部WCTLに向けて、各サイクル毎に、各バッファ[A]BFA,[B]BFBのそれぞれが空状態(EMP)であるか充満状態(Not EMP)であるかを送信する。   The state machine SM transitions to the full state (Not EMP) when the initial state is the empty state (EMP) and the control signal (wr_end) is received in this state. On the contrary, when the control signal (rd_end) is received in the full state (Not EMP), the state transits to the empty state (EMP). The determination of the empty state (EMP) or the full state (Not EMP) is performed for each of the buffers [A] BFA and [B] BFB. Then, the state machine SM is directed to the read control unit RCTL and the write control unit WCTL and each buffer [A] BFA, [B] BFB is in an empty state (EMP) or full state (for each cycle). (Not EMP).

図5は、図4におけるリード制御部RCTLおよびライト制御部WCTLの動作例を示すものであり、(a)はリード制御部の動作説明図、(b)はライト制御部の動作説明図である。リード制御部RCTLは、図5(a)に示すように、前述したステートマシンSMからの出力信号を受けて、バッファ[A]BFAおよびバッファ[B]BFB共に空状態(EMP)の場合にのみディスエーブルとなり、それ以外の場合はイネーブルとなる。一方、ライト制御部WCTLは、図5(b)に示すように、前述したステートマシンSMからの出力信号を受けて、バッファ[A]BFAおよびバッファ[B]BFB共に充満状態(Not EMP)の場合にのみディスエーブルとなり、それ以外の場合はイネーブルとなる。   FIGS. 5A and 5B show examples of operations of the read control unit RCTL and the write control unit WCTL in FIG. 4. FIG. 5A is an operation explanatory diagram of the read control unit, and FIG. 5B is an operation explanatory diagram of the write control unit. . As shown in FIG. 5A, the read control unit RCTL receives the output signal from the state machine SM described above, and only when the buffer [A] BFA and the buffer [B] BFB are both empty (EMP). Disabled, otherwise enabled. On the other hand, as shown in FIG. 5B, the write control unit WCTL receives the output signal from the state machine SM described above, and both the buffer [A] BFA and the buffer [B] BFB are in the full state (Not EMP). Only disabled if disabled, otherwise enabled.

なお、充満状態(Not EMP)とは、当該バッファが全て満たされた状態(FULL)かバッファの有効データが各バッファの容量である128Byte未満の状態(HALF)を意味する。この状態(HALF)は、前述したようにライトカウンタWCNTおよびリードカウンタRCNTのカウント値が128Byte未満となった場合に用いられる。   The full state (Not EMP) means a state where the buffer is completely filled (FULL), or a state where the effective data of the buffer is less than 128 bytes (HALF) which is the capacity of each buffer. This state (HALF) is used when the count values of the write counter WCNT and the read counter RCNT become less than 128 bytes as described above.

図6は、図2のマルチプロセッサシステムにおいて、その動作概要の一例を示す説明図である。ここでは、図2のMC1用システムメモリMEM1のデータをMC2用システムメモリMEM2に転送する場合を想定し、これに伴い、図3のデータ中継装置PCICにおけるチャネル0用の回路部を用いるものとする。また、ここでは、ローカルバスLBUS1とLBUS2は同一周波数で動作するものとする。   FIG. 6 is an explanatory diagram showing an example of the operation outline in the multiprocessor system of FIG. Here, it is assumed that the data in the MC1 system memory MEM1 in FIG. 2 is transferred to the MC2 system memory MEM2, and accordingly, the circuit unit for channel 0 in the data relay device PCIC in FIG. 3 is used. . Here, it is assumed that the local buses LBUS1 and LBUS2 operate at the same frequency.

図6のS61においては、まず、CPU1が、DMAC1に対して転送元をMEM1に、転送先をPCICに設定し、CPU2が、DMAC2に対して転送元をPCICに、転送先をMEM2に設定し、それぞれの転送サイズをここでは320Byteに設定する。その後、CPU1およびCPU2は、DMAC1およびDMAC2を起動状態にする。バッファ[A]BFAおよびバッファ[B]BFBのサイズは、それぞれ128Byteとする。初期状態では、BFAおよびBFB共に空状態(EMP)であるため、これに伴いDMAC1に対してはデータ転送要求信号DREQがイネーブルとなり、DMAC2に対してはDREQがディスエーブルとなる。   In S61 of FIG. 6, first, the CPU 1 sets the transfer source to MEM1 and the transfer destination to the PCIC for the DMAC1, and the CPU 2 sets the transfer source to the PCIC and the transfer destination to the MEM2 for the DMAC2. Each transfer size is set to 320 bytes here. Thereafter, CPU1 and CPU2 activate DMAC1 and DMAC2. The sizes of the buffer [A] BFA and the buffer [B] BFB are each 128 bytes. In the initial state, since both BFA and BFB are empty (EMP), the data transfer request signal DREQ is enabled for DMAC1 and DREQ is disabled for DMAC2.

次いで、S62において、DMAC1が、DREQのイネーブルに伴いMEM1のデータをバッファ[A]BFAの例えばポート[1]からライトする。一方、DMAC2は、DREQのディスエーブルに伴い待機状態となる。ここで、BFAに対して128Byteのデータが転送されるとBFAは充満状態(FULL)となる。BFAが充満状態(FULL)になると、DMAC2に対するDREQがイネーブルに遷移する。   Next, in S62, the DMAC1 writes the data of the MEM1 from, for example, the port [1] of the buffer [A] BFA when the DREQ is enabled. On the other hand, the DMAC 2 enters a standby state when DREQ is disabled. Here, when 128 bytes of data are transferred to the BFA, the BFA is in a full state (FULL). When the BFA becomes full (FULL), the DREQ for the DMAC 2 transitions to enable.

続いて、S63において、DMAC1が、MEM1のデータをバッファ[B]BFBのポート[1]からライトする。一方、DMAC2は、前述したDREQのイネーブルに伴いバッファ[A]BFAのデータをポート[2]を介してMEM2へリードする。ここで、BFBに対して128Byte(すなわち累計256Byte)のデータが転送されると、BFBは充満状態(FULL)となる。一方、BFAは、元々充満状態(FULL)であったがDMAC2に伴い128Byteの転送が行われると空状態(EMP)に遷移する。これにより、DMAC1側およびDMAC2側のDREQ共にイネーブルを保つ。   Subsequently, in S63, the DMAC1 writes the data of MEM1 from the port [1] of the buffer [B] BFB. On the other hand, the DMAC 2 reads the data in the buffer [A] BFA to the MEM 2 via the port [2] in accordance with the enablement of the DREQ. Here, when data of 128 bytes (that is, a total of 256 bytes) is transferred to the BFB, the BFB is in a full state (FULL). On the other hand, the BFA was originally in a full state (FULL), but transitions to an empty state (EMP) when a 128-byte transfer is performed along with DMAC2. Thereby, both the DREQ on the DMAC1 side and the DMAC2 side are kept enabled.

続いて、S64において、DMAC1が、MEM1のデータをS63で空状態(EMP)となったバッファ[A]BFAにポート[1]を介してライトする。一方、DMAC2は、バッファ[B]BFBのデータをポート[2]を介してMEM2へリードする。ここで、BFAに対して64Byte(すなわち累計320Byte)のデータが転送されると、BFAは充満状態(HALF)となる。一方、BFBは、元々充満状態(FULL)であったがDMAC2による128Byteの転送が行われると空状態(EMP)に遷移する。そして、DMAC1側の転送は完了となり、DMAC1は、割り込み信号等を用いてCPU1に対してデータ転送の完了を通知する。    Subsequently, in S64, the DMAC1 writes the data of MEM1 to the buffer [A] BFA that has become empty (EMP) in S63 via the port [1]. On the other hand, the DMAC 2 reads the data in the buffer [B] BFB to the MEM 2 via the port [2]. Here, when data of 64 bytes (that is, a total of 320 bytes) is transferred to the BFA, the BFA is in a full state (HALF). On the other hand, the BFB was originally full (FULL), but transitions to an empty state (EMP) when 128 bytes are transferred by the DMAC 2. Then, the transfer on the DMAC 1 side is completed, and the DMAC 1 notifies the CPU 1 of the completion of the data transfer using an interrupt signal or the like.

最後に、S65において、DMAC2が、バッファ[A]BFAのデータをポート[2]を介してMEM2へリードする。ここで、BFAから64Byteのデータが転送されると、BFAは、充満状態(HALF)から空状態(EMP)に遷移する。そして、DMAC2側の転送も完了となり、DMAC2は、割り込み信号等を用いてCPU2に対してデータ転送の完了を通知する。   Finally, in S65, the DMAC 2 reads the data in the buffer [A] BFA to the MEM 2 via the port [2]. Here, when 64 bytes of data are transferred from the BFA, the BFA transitions from the full state (HALF) to the empty state (EMP). The transfer on the DMAC 2 side is also completed, and the DMAC 2 notifies the CPU 2 of the completion of the data transfer using an interrupt signal or the like.

図7は、図3のデータ中継装置PCICにおいて、その各バッファBFA0,BFB0,BFA1,BFB1の論理アドレス割付の一例を示す説明図である。図7に示すように、例えば、ベースアドレス+「h’000 0000〜h’1FF FFFF」の32MByteをチャネル0用バッファの見かけ上のアドレス空間とし、ベースアドレス+「h’200 0000〜h’3FF FFFF」の32MByteをチャネル1用バッファの見かけ上のアドレス空間とする。例えば、32MByteは、DMAコントローラDMACによって連続転送可能な最大データサイズであり、異なるDMAコントローラを採用し、用途に応じたデータサイズを選択することが可能となる。   FIG. 7 is an explanatory diagram showing an example of logical address assignment of the buffers BFA0, BFB0, BFA1, and BFB1 in the data relay device PCIC of FIG. As shown in FIG. 7, for example, 32 Mbytes of the base address + “h′000 0000 to h′1FF FFFF” is set as an apparent address space of the channel 0 buffer, and the base address + “h′200 0000 to h′3FF” “FFFF” of 32 Mbyte is assumed to be an apparent address space of the channel 1 buffer. For example, 32 MByte is the maximum data size that can be continuously transferred by the DMA controller DMAC, and a different DMA controller can be adopted to select a data size according to the application.

ここで、チャネル0用バッファとして実際に物理的に存在するのは、「h’000 0000〜h’000 007F」となる128Byteのバッファ[A]BFA0と、これに連続する128Byteのバッファ[B]BFB0である。これ以降は、物理的に存在しないバッファ[A]のシャドウとバッファ[B]のシャドウが交互に連続する。一方、チャネル1用バッファとして実際に物理的に存在するのは、「h’200 0000〜h’200 007F」となる128Byteのバッファ[A]BFA1と、これに連続する128Byteのバッファ[B]BFB1である。これ以降は、物理的に存在しないバッファ[A]のシャドウとバッファ[B]のシャドウが交互に連続する。   Here, what actually physically exists as a buffer for channel 0 is a 128-byte buffer [A] BFA0 that becomes “h′000 0000 to h′000 007F”, and a 128-byte buffer [B] that follows this 128-byte buffer [B]. BFB0. Thereafter, the shadows of the buffer [A] and the shadows of the buffer [B] that do not exist physically continue alternately. On the other hand, what actually physically exists as a buffer for channel 1 is a 128-byte buffer [A] BFA1 that becomes “h′200 0000 to h′200 007F”, and a continuous 128-byte buffer [B] BFB1. It is. Thereafter, the shadows of the buffer [A] and the shadows of the buffer [B] that do not exist physically continue alternately.

すなわち、物理的にはチャネル0用バッファとして256Byte、チャネル1用バッファとして256Byteしか設けていないが、図6で説明したようなバッファ[A]とバッファ[B]の2交代動作を行うことで各チャネル毎に32MByteの連続データ転送が可能となる。なお、図6から判るように原理的には32MByteに限らず、それ以上のデータを連続データ転送することも勿論可能である。   In other words, although only 256 bytes are provided as a buffer for channel 0 and 256 bytes are provided as a buffer for channel 1, each operation is performed by performing two alternate operations of buffer [A] and buffer [B] as described in FIG. Continuous data transfer of 32 MByte is possible for each channel. As can be seen from FIG. 6, in principle, the data is not limited to 32 MByte, and it is of course possible to transfer more data than that.

DMAコントローラDMACは、通常、連続するアドレス空間にアクセスする仕様となっているため、例えば、バッファ[B]となる「h’000 00FF」にアクセスした直後は、バッファ[A]のシャドウとなる「h’000 0100」にアクセスする。ただし、これは見かけ上のアクセスであり、この場合にデータ中継装置PCIC内で実際にアクセスされるアドレスはバッファ[A]となる「h’000 0000」である。このような2交代動作の方式は、例えば、アドレス「h’xxx xxyy」が入力された際にその下2桁の「yy」の箇所のみでアクセスを行えば容易に実現可能である。   Since the DMA controller DMAC normally has a specification for accessing a continuous address space, for example, immediately after accessing “h′000 00FF” serving as the buffer [B], it becomes a shadow of the buffer [A]. h'000 0100 "is accessed. However, this is an apparent access. In this case, the address actually accessed in the data relay device PCIC is “h′000 0000” which is the buffer [A]. Such a two-alternating operation method can be easily realized, for example, when an address “h′xxx xxxyy” is inputted and accessed only at the last two digits “yy”.

このように、図2のマルチプロセッサシステムを用いることで、(1)高いデータ転送効率を実現可能となり、(2)データ転送に際してのプロセッサの処理効率を向上可能となり、(3)小回路規模でデータ転送効率またはプロセッサの処理効率を向上可能となる。すなわち、例えば、図12の構成例と比較すると、各プロセッサCPUにバス調停機能を設けて調停動作を行わせる必要がなく、さらに、一方のシステムメモリMEMからのデータ転送を行っている間、他方のシステムメモリMEMに向けてもデータ転送を行うことができる。また、例えば、図1の構成例と比較すると、小容量のバッファBFを用いて当該容量を超える連続データ転送が行える。そして、このデータ転送の最中におけるプロセッサCPUの介入(CPUのソフトウェアを用いたDMACの操作等)は不要であるため、CPUによる所望のプログラム処理と各システムメモリ間でのデータ転送との並列動作を効率的に行える。   As described above, by using the multiprocessor system of FIG. 2, (1) high data transfer efficiency can be realized, (2) processor processing efficiency at the time of data transfer can be improved, and (3) on a small circuit scale Data transfer efficiency or processor processing efficiency can be improved. That is, for example, as compared with the configuration example of FIG. 12, it is not necessary to provide each processor CPU with a bus arbitration function to perform the arbitration operation, and while the data transfer from one system memory MEM is performed, the other Data transfer can also be performed toward the system memory MEM. Further, for example, as compared with the configuration example of FIG. 1, continuous data transfer exceeding the capacity can be performed using a small capacity buffer BF. Further, since intervention of the processor CPU (DMAC operation using CPU software, etc.) is not required during the data transfer, a parallel operation of desired program processing by the CPU and data transfer between the system memories. Can be done efficiently.

なお、図3等の説明においては、各バッファBFA0,BFB0,BFA1,BFB1をデュアルポートメモリとしたが、図6の説明から判るように、ある1つのバッファに対してライト命令とリード命令が同時に発生することはない。したがって、各バッファにおいては、同時アクセス時の調停機能などは必要なく、各バッファの小規模化が図れる。さらに、例えばポート[1]とポート[2]の周波数が同一の場合または周波数差を許容できるような場合には、各バッファをシングルポートメモリとすることもでき、このような場合は、各バッファの更なる小規模化が図れる。   In the description of FIG. 3, etc., each buffer BFA0, BFB0, BFA1, BFB1 is a dual port memory. However, as can be seen from the description of FIG. 6, a write command and a read command are simultaneously issued to a certain buffer. It does not occur. Therefore, each buffer does not require an arbitration function at the time of simultaneous access, and the size of each buffer can be reduced. Further, for example, when the frequencies of the port [1] and the port [2] are the same or when a frequency difference can be allowed, each buffer can be a single port memory. Can be further reduced.

図8は、図6を補足する動作説明図である。図6では、ローカルバスLBUS1とLBUS2が同一周波数で動作する場合を想定したが、ここでは、LBUS1(すなわちバッファBFのポート[1])がLBUS2(すなわちBFのポート[2])の2倍の周波数で動作する場合を想定する。   FIG. 8 is an operation explanatory diagram supplementing FIG. In FIG. 6, it is assumed that the local buses LBUS1 and LBUS2 operate at the same frequency, but here, LBUS1 (that is, port [1] of the buffer BF) is twice that of LBUS2 (that is, port [2] of BF). Assume a case of operating at a frequency.

この場合、例えば、図8のt=t2において、ポート[1]側からのライト動作によりバッファ[A]BFAが充満状態(FULL)になると、ポート[2]側のデータ転送要求信号DREQがイネーブルに遷移し、ポート[2]側よりBFAのリード動作が開始される。その後、t=t4において、ポート[1]側からのライト動作によりバッファ[B]BFBが充満状態(FULL)となるが、ポート[2]側からのBFAのリード動作は半分しか完了していないため、BFAおよびBFB共に充満状態(FULL)となり、ポート[1]側のDREQはディスエーブルに遷移する。   In this case, for example, when the buffer [A] BFA is full (FULL) by the write operation from the port [1] side at t = t2 in FIG. 8, the data transfer request signal DREQ on the port [2] side is enabled. The BFA read operation is started from the port [2] side. After that, at t = t4, the buffer [B] BFB is filled (FULL) by the write operation from the port [1] side, but the BFA read operation from the port [2] side is only half completed. Therefore, both BFA and BFB are in a full state (FULL), and the DREQ on the port [1] side changes to disabled.

t=t5においては、ポート[1]側のDREQのディスエーブルに伴い、ポート[1]側からライト動作を行うDMACは待機状態となり、ポート[2]側のDMACによるリード動作のみが行われる。その後、t=t6において、ポート[2]側からのBFAのリード動作が完了すると、BFAが空状態(EMP)に遷移し、ポート[1]側のDREQがイネーブルに遷移する。そして、t=t7において、ポート[1]側のDMACによるBFAに対するライト動作が再開される。   At t = t5, with the DREQ on the port [1] side disabled, the DMAC that performs the write operation from the port [1] side is in a standby state, and only the read operation by the DMAC on the port [2] side is performed. Thereafter, when the BFA read operation from the port [2] side is completed at t = t6, the BFA transitions to an empty state (EMP), and the DREQ on the port [1] side transitions to enable. At t = t7, the write operation to the BFA by the DMAC on the port [1] side is resumed.

このt=t4〜t6のように、ローカルバスLBUS1とLBUS2の周波数が異なる場合、周波数が速いローカルバス側のDMACにおいて待機状態が発生することがある。ただし、これはDMACがDREQを判別することによるハードウェア処理で行われるため、プロセッサCPUの処理が介入するようなことはない。なお、本実施の形態では、バッファBFを2交代動作としたためこのような待機状態が発生するが、例えば、3個のバッファBFA,BFB,BFCで3交代動作を行わせたり、更にはN(N>3)個のバッファでN交代動作を行わせれば、このような待機状態をある程度回避できる。ただし、この場合、勿論、バッファ容量が大きくなると共に、これに伴う各種制御回路も必要となるため、この観点からは2交代動作とすることが望ましい。   When the frequencies of the local buses LBUS1 and LBUS2 are different as in t = t4 to t6, a standby state may occur in the DMAC on the local bus side with a fast frequency. However, since this is performed by hardware processing by the DMAC determining DREQ, the processing of the processor CPU does not intervene. In this embodiment, such a standby state occurs because the buffer BF is changed two times. For example, three buffers BFA, BFB, and BFC are changed three times, or N ( Such a standby state can be avoided to some extent by performing N alternation operation with N> 3) buffers. However, in this case, as a matter of course, the buffer capacity increases and various control circuits associated therewith are required. From this point of view, it is desirable to perform the two-shift operation.

図9は、図3のデータ中継装置PCICにおいて、その動作例を示す説明図である。前述したように、図3のデータ中継装置PCICは、ローカルバスLBUS1からLBUS2へ向けた転送を担うチャネル0と、LBUS2からLBUS1へ向けた転送を担うチャネル1とを備えている。したがって、図9に示すように、例えば、システムメモリMEM1内の記憶領域AR11をシステムメモリMEM2内の記憶領域AR21に転送する処理と、MEM2内の記憶領域AR22をMEM1内の記憶領域AR12に転送する処理とを並行して実行可能である。   FIG. 9 is an explanatory diagram showing an operation example of the data relay device PCIC in FIG. As described above, the data relay device PCIC in FIG. 3 includes the channel 0 that handles transfer from the local bus LBUS1 to LBUS2, and the channel 1 that handles transfer from LBUS2 to LBUS1. Therefore, as shown in FIG. 9, for example, the process of transferring the storage area AR11 in the system memory MEM1 to the storage area AR21 in the system memory MEM2, and the storage area AR22 in the MEM2 is transferred to the storage area AR12 in the MEM1. Processing can be executed in parallel.

この場合、例えば、DMAC1のチャネル0において、転送元をAR11に、転送先をPCICのチャネル0用バッファに設定し、チャネル1において、転送元をPCICのチャネル1用バッファに、転送先をAR12に設定する。一方、DMAC2のチャネル0においては、転送元をPCICのチャネル0用バッファに、転送先をAR21に設定し、チャネル1においては、転送元をAR22に、転送先をPCICのチャネル1用バッファに設定する。   In this case, for example, in channel 0 of DMAC1, the transfer source is set to AR11, the transfer destination is set to the PCIC channel 0 buffer, and in channel 1, the transfer source is set to the PCIC channel 1 buffer and the transfer destination is set to AR12. Set. On the other hand, in DMAC2 channel 0, the transfer source is set to the PCIC channel 0 buffer, the transfer destination is set to AR21, and in channel 1, the transfer source is set to AR22 and the transfer destination is set to the PCIC channel 1 buffer. To do.

このような設定を行った後、CPU1およびCPU2がDMAC1およびDMAC2に対して起動を行うと、前述したような双方向のデータ転送を途中でCPUを介することなく行うことができる。特に限定はされないが、例えばDMAC1およびDMAC2の各チャネルが所謂ラウンドロビンモード(1転送単位の転送が終了するとそのチャネルの優先順位が最下位になる方式)で動作する場合、各DMACはPCICに対するライト動作とリード動作とを時系列的に交互に行うことになる。   When the CPU 1 and the CPU 2 start up the DMAC 1 and the DMAC 2 after performing such setting, the bidirectional data transfer as described above can be performed without going through the CPU. For example, when each channel of DMAC1 and DMAC2 operates in a so-called round robin mode (a method in which the priority of the channel becomes the lowest when the transfer of one transfer unit is completed), each DMAC writes to the PCIC. The operation and the read operation are alternately performed in time series.

このような双方向のデータ転送は、例えば、CPU1で処理したデータをCPU2で処理し、更に、CPU2で処理したデータをCPU1で処理するようなプログラムを実行する場合に有益なものとなる。また、詳細は後述するが、図3のPCICのように、2個のチャネルの一方をLBUS1→LBUS2のデータ転送用とし、他方をLBUS2→LBUS1のデータ転送用とすることで小回路規模または容易な構成で効率的な双方向データ転送を実現可能となる。   Such bidirectional data transfer is useful, for example, when executing a program in which data processed by the CPU 1 is processed by the CPU 2 and data processed by the CPU 2 is further processed by the CPU 1. Although details will be described later, as in the case of the PCIC in FIG. 3, one of the two channels is used for data transfer of LBUS1 → LBUS2, and the other is used for data transfer of LBUS2 → LBUS1, so that the circuit scale is small or easy. An efficient bidirectional data transfer can be realized with a simple configuration.

以上のように、本実施の形態1のマルチプロセッサシステムを用いることによる代表的な効果を述べると、複数のプロセッサ間でのデータ転送効率を向上可能となる。また、複数のプロセッサ間でのデータ転送効率を小さい回路規模で向上可能となる。   As described above, when the typical effect of using the multiprocessor system of the first embodiment is described, the data transfer efficiency between a plurality of processors can be improved. In addition, data transfer efficiency between a plurality of processors can be improved with a small circuit scale.

(実施の形態2)
図10は、本発明の実施の形態2によるマルチプロセッサシステムにおいて、図2のデータ中継装置PCICの詳細な構成例を示すブロック図である。図10に示すデータ中継装置PCICは、図3と同様に、バッファ[A]BFAおよびバッファ[B]BFBと、カウンタ部CUNTを備え、図3と異なり、ローカルバスLBUS1側にリード・ライト制御部RWCTLaを、ローカルバスLBUS2側にリード・ライト制御部RWCTLbを備えた構成となっている。すなわち、図3と異なり1個のチャネルで双方向のデータ転送が可能な構成となっている。
(Embodiment 2)
FIG. 10 is a block diagram showing a detailed configuration example of the data relay device PCIC in FIG. 2 in the multiprocessor system according to the second embodiment of the present invention. The data relay device PCIC shown in FIG. 10 includes a buffer [A] BFA and a buffer [B] BFB, and a counter unit CUNT, as in FIG. RWCTLa is configured to include a read / write control unit RWCTLb on the local bus LBUS2 side. That is, unlike FIG. 3, it is configured such that bidirectional data transfer is possible with one channel.

例えば、各DMACによってLBUS1からLBUS2へ向けたデータ転送が設定された場合、リード・ライト制御部RWCTLaは前述したようなライト制御部WCTLとして動作し、RWCTLbは、前述したようなリード制御部RCTLとして動作する。逆に、各DMACによってLBUS2からLBUS1へ向けたデータ転送が設定された場合、RWCTLaはリード制御部RCTLとして動作し、RWCTLbは、ライト制御部WCTLとして動作する。   For example, when data transfer from LBUS1 to LBUS2 is set by each DMAC, the read / write control unit RWCTLa operates as the write control unit WCTL as described above, and RWCTLb serves as the read control unit RCTL as described above. Operate. Conversely, when data transfer from LBUS2 to LBUS1 is set by each DMAC, RWCTLa operates as a read control unit RCTL, and RWCTLb operates as a write control unit WCTL.

このような構成を用いた場合も、実施の形態1で述べたような各種効果をある程度得ることは可能である。ただし、この場合、各リード・ライト制御部RWCTLa,RWCTLbは、転送方向に応じて、バッファBFに対するリードイネーブルおよびライトイネーブル等の制御信号を使い分ける必要があり、また、DMAコントローラDMACに向けたデータ転送要求信号DREQの論理なども使い分ける必要がある。したがって、多くの信号選択回路が必要になるため、回路規模の増大や制御の複雑化が生じ、また、LBUS1とLBUS2の動作周波数が異なると、場合によっては信号選択に伴い同期処理も必要となることがある。   Even when such a configuration is used, various effects as described in the first embodiment can be obtained to some extent. However, in this case, the read / write control units RWCTLa and RWCTLb need to use control signals such as read enable and write enable for the buffer BF according to the transfer direction, and also transfer data to the DMA controller DMAC. It is necessary to use the logic of the request signal DREQ properly. Therefore, a large number of signal selection circuits are required, resulting in an increase in circuit scale and complication of control. In addition, if the operating frequencies of LBUS1 and LBUS2 are different, synchronization processing is also required depending on signal selection in some cases. Sometimes.

さらに、動作の観点からは、図10の構成例によって図9で述べたような双方向のデータ転送を行う場合、まず、MEM1の記憶領域AR11をMEM2の記憶領域AR21に転送した後、各CPUによる各DMACへの再設定および起動を介してMEM2の記憶領域AR22からMEM1の記憶領域AR12への転送が行われることになる。この場合、図3の場合と比較してデータ転送効率やCPUの処理効率が低下する。一方、例えば、図10のような構成例を2チャネル分設ければ、図3の場合と同等のデータ転送効率やCPUの処理効率は確保できる。しかしながら、この場合、前述したように、回路規模の増大や制御の複雑化などが懸念される。また、例えば2個のチャネルを同時に起動し、2個共にLBUS1からLBUS2へ向けたデータ転送で用いるようなことは、実使用上のメリットが小さい。   Further, from the viewpoint of operation, when performing bidirectional data transfer as described in FIG. 9 by the configuration example of FIG. 10, first, the storage area AR11 of MEM1 is transferred to the storage area AR21 of MEM2, and then each CPU is transferred. The transfer from the storage area AR22 of the MEM2 to the storage area AR12 of the MEM1 is performed through the resetting and activation to each DMAC. In this case, data transfer efficiency and CPU processing efficiency are reduced as compared with the case of FIG. On the other hand, for example, if the configuration example shown in FIG. 10 is provided for two channels, the data transfer efficiency and CPU processing efficiency equivalent to those in FIG. However, in this case, as described above, there is a concern about an increase in circuit scale or complicated control. Further, for example, when two channels are activated at the same time and both of them are used for data transfer from LBUS1 to LBUS2, the merit in practical use is small.

したがって、このような観点からは、図3のような構成例を用いることが望ましい。図10のような構成例は、例えば、DMAコントローラDMACにおいて使用可能なチャネルの数が限られている(例えば1個)のような場合に有益となる。   Therefore, from such a viewpoint, it is desirable to use the configuration example as shown in FIG. The configuration example as shown in FIG. 10 is useful when the number of channels that can be used in the DMA controller DMAC is limited (for example, one).

(実施の形態3)
図11は、本発明の実施の形態3によるマルチプロセッサシステムにおいて、その構成の一例を示す概略図である。図11に示すマルチプロセッサシステムは、パーソナルコンピュータPCと、このPCが備える例えばPCI Express用のスロット端子に接続される画像処理用のボードBDなどから構成される。PCは、プロセッサCPU1、システムメモリMEM1、DMAコントローラDMAC1およびコントローラCTL1などを含み、CTL1からスロット端子を介してボードBDとの通信が可能となっている。
(Embodiment 3)
FIG. 11 is a schematic diagram showing an example of the configuration of a multiprocessor system according to Embodiment 3 of the present invention. The multiprocessor system shown in FIG. 11 includes a personal computer PC and an image processing board BD connected to, for example, a PCI Express slot terminal included in the PC. The PC includes a processor CPU1, a system memory MEM1, a DMA controller DMAC1, a controller CTL1, and the like, and can communicate with the board BD from the CTL1 through a slot terminal.

ボードBDには、プロセッサCPU2およびDMAコントローラDMAC2を含むマイコンMCと、マイコン用のシステムメモリMEM2と、実施の形態1および2で述べたようなデータ中継装置PCICと、コントローラCTL2などが搭載されている。PCICは、ローカルバスLBUS1によってマイコンMCと接続され、ローカルバスLBUS2によってコントローラCTL2と接続される。CTL2は、例えばPCI Expressの通信機能を備え、ボードBDは、このCTL2を介してPCとの通信が可能となっている。特に限定はされないが、LBUS1は例えば66MHzで動作し、LBUS2は例えば50MHzで動作する。   The board BD is equipped with a microcomputer MC including a processor CPU2 and a DMA controller DMAC2, a system memory MEM2 for the microcomputer, a data relay device PCIC as described in the first and second embodiments, a controller CTL2, and the like. . The PCIC is connected to the microcomputer MC through a local bus LBUS1, and is connected to the controller CTL2 through a local bus LBUS2. The CTL2 has a communication function of, for example, PCI Express, and the board BD can communicate with the PC via the CTL2. Although not particularly limited, LBUS1 operates at 66 MHz, for example, and LBUS2 operates at 50 MHz, for example.

このようなマルチプロセッサシステムでは、例えば、PCのCPU1で処理した比較的大容量の画像データをボードBDに送信し、この転送された画像データをボードBDのマイコンMCで処理した後、当該データをPCに返信するような動作が繰り返し行われる。したがって、PC内のシステムメモリMEM1とボードBD内のシステムメモリMEM2との間のデータ転送効率をどれだけ上げられるかが画像処理のパフォーマンスを決める上で重要となる。また、近年では、モバイル端末の普及などにより、ボードBDの小型化も重要な要素となっている。こうした中、ボードBD上に前述したようなデータ中継装置PCICを搭載することで、前述したような要求に対して有益な効果を得ることができる。   In such a multiprocessor system, for example, relatively large-capacity image data processed by the CPU 1 of the PC is transmitted to the board BD, and the transferred image data is processed by the microcomputer MC of the board BD. The operation of returning to the PC is repeated. Therefore, how much the data transfer efficiency between the system memory MEM1 in the PC and the system memory MEM2 in the board BD can be increased is important in determining the performance of image processing. In recent years, the miniaturization of the board BD has become an important factor due to the spread of mobile terminals. Under such circumstances, it is possible to obtain a beneficial effect for the above-described requirements by mounting the data relay device PCIC as described above on the board BD.

以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。   As mentioned above, the invention made by the present inventor has been specifically described based on the embodiments. However, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention.

例えば、図2においては、一例としてマイコンを用いる構成例としたが、勿論、マイコンである必要はなく、例えばパーソナルコンピュータ等のようにプロセッサCPUとDMAコントローラDMACが別チップで構成されていてもよい。また、図2では、システムメモリMEMを外付けメモリとしたが、勿論、マイコン内の内蔵メモリ等であってもよい。すなわち、プロセッサCPUとDMAコントローラDMACとシステムメモリMEMが、1個のバスまたはバスコントローラ等を介して複数のバスで接続され、当該CPUによって当該DMACの設定および起動が可能であり、当該DMACによって当該MEMのアクセスが可能な構成であればよい。   For example, in FIG. 2, a configuration example using a microcomputer is used as an example, but of course, it is not necessary to be a microcomputer, and the processor CPU and the DMA controller DMAC may be configured as separate chips, such as a personal computer. . In FIG. 2, the system memory MEM is an external memory, but, of course, it may be a built-in memory in a microcomputer. That is, the processor CPU, the DMA controller DMAC, and the system memory MEM are connected by a plurality of buses via one bus or a bus controller, and the CPU can set and start the DMAC. Any configuration that allows MEM access is acceptable.

本実施の形態によるマルチプロセッサシステムは、各プロセッサ同士で頻繁にデータのやり取りを行いながら所望の処理を行う画像処理システム等を代表に、複数のプロセッサおよび複数のDMAコントローラを備えたマルチプロセッサシステム全般に対して広く適用可能である。   The multiprocessor system according to the present embodiment is a general multiprocessor system including a plurality of processors and a plurality of DMA controllers, such as an image processing system that performs desired processing while frequently exchanging data between the processors. Widely applicable.

本発明の前提として検討した比較例のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。1 is a block diagram showing an example of the configuration of a comparative multiprocessor system studied as a premise of the present invention. FIG. 本発明の実施の形態1によるマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。1 is a block diagram showing an example of the configuration of a multiprocessor system according to Embodiment 1 of the present invention. 図2におけるデータ中継装置の詳細な構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a detailed configuration example of a data relay device in FIG. 2. 図3におけるカウンタ部の詳細な構成例を示すブロック図である。It is a block diagram which shows the detailed structural example of the counter part in FIG. 図4におけるリード制御部およびライト制御部の動作例を示すものであり、(a)はリード制御部の動作説明図、(b)はライト制御部の動作説明図である。FIGS. 4A and 4B show an operation example of the read control unit and the write control unit in FIG. 4. FIG. 4A is an operation explanatory diagram of the read control unit, and FIG. 図2のマルチプロセッサシステムにおいて、その動作概要の一例を示す説明図である。FIG. 3 is an explanatory diagram showing an example of an operation outline in the multiprocessor system of FIG. 2. 図3のデータ中継装置において、その各バッファの論理アドレス割付の一例を示す説明図である。FIG. 4 is an explanatory diagram showing an example of logical address assignment of each buffer in the data relay device of FIG. 3. 図6を補足する動作説明図である。It is operation | movement explanatory drawing which supplements FIG. 図3のデータ中継装置において、その動作例を示す説明図である。FIG. 4 is an explanatory diagram showing an operation example in the data relay device of FIG. 3. 本発明の実施の形態2によるマルチプロセッサシステムにおいて、図2のデータ中継装置の詳細な構成例を示すブロック図である。3 is a block diagram illustrating a detailed configuration example of a data relay device in FIG. 2 in a multiprocessor system according to a second embodiment of the present invention. FIG. 本発明の実施の形態3によるマルチプロセッサシステムにおいて、その構成の一例を示す概略図である。It is the schematic which shows an example of the structure in the multiprocessor system by Embodiment 3 of this invention. 本発明の前提として検討した従来技術のマルチプロセッサシステムにおいて、その構成の一例を示すブロック図である。1 is a block diagram showing an example of the configuration of a conventional multiprocessor system studied as a premise of the present invention. FIG.

符号の説明Explanation of symbols

MC マイクロコンピュータ
CPU プロセッサ
DMAC DMAコントローラ
MEM システムメモリ
LBUS ローカルバス
DPRAM デュアルポートメモリ
PCIC データ中継装置
MBUS メモリバス
WCTL ライト制御部
RCTL リード制御部
BF,BFA,BFB バッファ
CUNT カウンタ部
WCNT ライトカウンタ
RCNT リードカウンタ
SM ステートマシン
RWCTL リード・ライト制御部
CTL コントローラ
PC パーソナルコンピュータ
BD ボード
MC Microcomputer CPU Processor DMAC DMA Controller MEM System Memory LBUS Local Bus DPRAM Dual Port Memory PCIC Data Relay Device MBUS Memory Bus WCTL Write Controller RCTL Read Controller BF, BFA, BFB Buffer CUNT Counter WCNT Write Counter RCNT Read Counter SM State Machine RWCTL Read / write control unit CTL controller PC Personal computer BD board

Claims (4)

第1バスおよび第2バスと、
第1プロセッサおよび第2プロセッサと、
前記第1プロセッサによってアクセスされる第1メモリと、
前記第1プロセッサからの設定によって、前記第1プロセッサを経由せずに前記第1メモリへのアクセスを行い、リードデータの前記第1バスへの転送または前記第1バスからのライトデータの前記第1メモリへの転送を制御する第1データ転送制御部と、
前記第2プロセッサによってアクセスされる第2メモリと、
前記第2プロセッサからの設定によって、前記第2プロセッサを経由せずに前記第2メモリへのアクセスを行い、リードデータの前記第2バスへの転送または前記第2バスからのライトデータの前記第2メモリへの転送を制御する第2データ転送制御部と、
前記第1バスと前記第2バスに接続され、N(N≧2)個の記憶領域を含むデータバッファを含んだデータ中継部とを備え、
前記データ中継部は、
前記N個の記憶領域のそれぞれがライト済みに対応する充満状態かリード済みに対応する空状態かを管理するバッファ管理部と、
前記N個の記憶領域の空状態の有無に応じて前記第1または前記第2データ転送制御部にイネーブル信号を出力し、前記第1メモリから前記第1バスに転送されたデータまたは前記第2メモリから前記第2バスに転送されたデータを、前記N個の記憶領域の1番目となる第1記憶領域からN番目となる第N記憶領域に向けて順にライトするライト制御部と、
前記N個の記憶領域の充満状態の有無に応じて前記第2または前記第1データ転送制御部にイネーブル信号を出力し、前記N個の記憶領域にライトされたデータを、前記第1記憶領域から前記第N記憶領域に向けて順にリードし、このリードされたデータを前記第2バスまたは前記第1バスに転送するリード制御部とを有し、
前記ライト制御部は、前記第N記憶領域のライトが完了し前記第1記憶領域が空状態の場合は、前記第N記憶領域のデータに続くデータを前記第1記憶領域に戻ってライトし、
前記リード制御部は、前記第N記憶領域のリードが完了し前記第1記憶領域が充満状態の場合は、前記第1記憶領域に戻ってリードすることを特徴とするマルチプロセッサシステム。
A first bus and a second bus;
A first processor and a second processor;
A first memory accessed by the first processor;
According to the setting from the first processor, the first memory is accessed without going through the first processor, the read data is transferred to the first bus, or the write data from the first bus is transferred to the first memory. A first data transfer control unit for controlling transfer to one memory;
A second memory accessed by the second processor;
According to the setting from the second processor, the second memory is accessed without going through the second processor, the read data is transferred to the second bus, or the write data from the second bus is A second data transfer control unit that controls transfer to the two memories;
A data relay unit including a data buffer connected to the first bus and the second bus and including N (N ≧ 2) storage areas;
The data relay unit
A buffer management unit for managing whether each of the N storage areas is full corresponding to written or empty corresponding to read;
An enable signal is output to the first or second data transfer control unit according to whether or not the N storage areas are empty, and the data transferred from the first memory to the first bus or the second A write control unit for sequentially writing data transferred from the memory to the second bus from the first storage area as the first of the N storage areas to the Nth storage area as the Nth;
Depending on whether the N storage areas are full or not, an enable signal is output to the second or first data transfer control unit, and the data written in the N storage areas is transferred to the first storage area. A read control unit for sequentially reading from the first to the Nth storage area and transferring the read data to the second bus or the first bus,
The write control unit writes the data following the data in the Nth storage area back to the first storage area when the writing of the Nth storage area is completed and the first storage area is empty,
When the read of the Nth storage area is completed and the first storage area is full, the read control unit returns to the first storage area and reads.
請求項1記載のマルチプロセッサシステムにおいて、
前記データ中継部は、
前記データバッファとなる第1および第2データバッファと、
前記バッファ管理部となる第1および第2バッファ管理部と、
前記ライト制御部となる第1および第2ライト制御部と、
前記リード制御部となる第1および第2リード制御部とを備え、
前記第1バッファ管理部は、前記第1データバッファの前記N個の記憶領域を管理し、
前記第2バッファ管理部は、前記第2データバッファの前記N個の記憶領域を管理し、
前記第1ライト制御部は、前記第1データバッファにおける前記N個の記憶領域の空状態の有無に応じて前記第1データ転送制御部にイネーブル信号を出力し、前記第1メモリから前記第1バスに転送されたデータを前記第1データバッファにライトし、
前記第1リード制御部は、前記第1データバッファにおける前記N個の記憶領域の充満状態の有無に応じて前記第2データ転送制御部にイネーブル信号を出力し、前記第1データバッファにライトされたデータを前記第2バスに転送し、
前記第2ライト制御部は、前記第2データバッファにおける前記N個の記憶領域の空状態の有無に応じて前記第2データ転送制御部にイネーブル信号を出力し、前記第2メモリから前記第2バスに転送されたデータを前記第2データバッファにライトし、
前記第2リード制御部は、前記第2データバッファにおける前記N個の記憶領域の充満状態の有無に応じて前記第1データ転送制御部にイネーブル信号を出力し、前記第2データバッファにライトされたデータを前記第1バスに転送することを特徴とするマルチプロセッサシステム。
The multiprocessor system of claim 1, wherein
The data relay unit
First and second data buffers to be the data buffers;
First and second buffer managers serving as the buffer manager;
First and second light control units serving as the light control unit;
A first and second lead control unit serving as the lead control unit;
The first buffer management unit manages the N storage areas of the first data buffer;
The second buffer management unit manages the N storage areas of the second data buffer;
The first write control unit outputs an enable signal to the first data transfer control unit according to whether or not the N storage areas in the first data buffer are empty, and the first data control unit outputs the enable signal from the first memory. Write the data transferred to the bus to the first data buffer;
The first read control unit outputs an enable signal to the second data transfer control unit according to whether or not the N storage areas in the first data buffer are full, and is written to the first data buffer. Transfer the data to the second bus,
The second write control unit outputs an enable signal to the second data transfer control unit according to whether or not the N storage areas in the second data buffer are empty, and outputs the enable signal from the second memory. Write the data transferred to the bus to the second data buffer;
The second read control unit outputs an enable signal to the first data transfer control unit according to whether or not the N storage areas in the second data buffer are full, and is written to the second data buffer. A multiprocessor system, wherein the data is transferred to the first bus.
請求項1記載のマルチプロセッサシステムにおいて、
前記N個の記憶領域は、2個の記憶領域であることを特徴とするマルチプロセッサシステム。
The multiprocessor system of claim 1, wherein
2. The multiprocessor system according to claim 1, wherein the N storage areas are two storage areas.
請求項3記載のマルチプロセッサシステムにおいて、
前記2個の記憶領域は、それぞれ独立して形成された2個の記憶回路によって実現されることを特徴とするマルチプロセッサシステム。
The multiprocessor system according to claim 3, wherein
The multi-processor system is characterized in that the two storage areas are realized by two storage circuits formed independently of each other.
JP2007311409A 2007-11-30 2007-11-30 Multiprocessor system Pending JP2009134635A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007311409A JP2009134635A (en) 2007-11-30 2007-11-30 Multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007311409A JP2009134635A (en) 2007-11-30 2007-11-30 Multiprocessor system

Publications (1)

Publication Number Publication Date
JP2009134635A true JP2009134635A (en) 2009-06-18

Family

ID=40866438

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007311409A Pending JP2009134635A (en) 2007-11-30 2007-11-30 Multiprocessor system

Country Status (1)

Country Link
JP (1) JP2009134635A (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5949624A (en) * 1982-09-15 1984-03-22 Omron Tateisi Electronics Co Data transfer device
JPS59144929A (en) * 1983-02-04 1984-08-20 Mitsubishi Electric Corp Controlling device of peripheral equipment
JPS6260045A (en) * 1985-09-10 1987-03-16 Matsushita Electric Ind Co Ltd Communication controller
JP2001043200A (en) * 1999-07-29 2001-02-16 Mitsubishi Electric Corp Data transmitter and data transmitting method
JP2003091513A (en) * 2001-07-11 2003-03-28 Seiko Epson Corp Data processor, data input/output device and data input/ output method
JP2007189550A (en) * 2006-01-13 2007-07-26 Ricoh Co Ltd Radio communication processor
JP2007206924A (en) * 2006-02-01 2007-08-16 Victor Co Of Japan Ltd Arithmetic processing system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5949624A (en) * 1982-09-15 1984-03-22 Omron Tateisi Electronics Co Data transfer device
JPS59144929A (en) * 1983-02-04 1984-08-20 Mitsubishi Electric Corp Controlling device of peripheral equipment
JPS6260045A (en) * 1985-09-10 1987-03-16 Matsushita Electric Ind Co Ltd Communication controller
JP2001043200A (en) * 1999-07-29 2001-02-16 Mitsubishi Electric Corp Data transmitter and data transmitting method
JP2003091513A (en) * 2001-07-11 2003-03-28 Seiko Epson Corp Data processor, data input/output device and data input/ output method
JP2007189550A (en) * 2006-01-13 2007-07-26 Ricoh Co Ltd Radio communication processor
JP2007206924A (en) * 2006-02-01 2007-08-16 Victor Co Of Japan Ltd Arithmetic processing system

Similar Documents

Publication Publication Date Title
KR102223840B1 (en) Computational imaging pipeline
CN102567109B (en) Interrupt distribution scheme
JP4855451B2 (en) Storage device access method and apparatus
JPH09190406A (en) Direct memory access controller and transmission system using the same
US20140115209A1 (en) Flow Control for a Serial Peripheral Interface Bus
KR101380364B1 (en) Sharing bandwidth of a single port sram between at least one dma peripheral and a cpu operating with a quadrature clock
JP5578713B2 (en) Information processing device
EP2423824B1 (en) Data transfer device, method of transferring data, and image forming apparatus
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
EP2788882A1 (en) Auto-ordering of strongly ordered, device, and exclusive transactions across multiple memory regions
US9875199B2 (en) Data transfer control apparatus
JP2006209778A (en) Method and device for realizing direct memory access, and direct memory access computer system
TW201423403A (en) Efficient processing of access requests for a shared resource
US7409486B2 (en) Storage system, and storage control method
US5933613A (en) Computer system and inter-bus control circuit
US7774513B2 (en) DMA circuit and computer system
JP6201591B2 (en) Information processing apparatus and information processing apparatus control method
JP5058116B2 (en) DMAC issue mechanism by streaming ID method
CN114356839A (en) Method, device, processor and device readable storage medium for processing write operation
JP2009134635A (en) Multiprocessor system
CN114328350A (en) Communication method, device and medium based on AXI bus
JPH09153009A (en) Arbitration method for hierarchical constitution bus
JP2004194014A (en) Bus controller and information processing system
JP2005165592A (en) Data transfer device
WO2021031082A1 (en) Performance monitoring device and method, system on chip, movable platform, and camera

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100528

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A02 Decision of refusal

Effective date: 20121211

Free format text: JAPANESE INTERMEDIATE CODE: A02