JPWO2007037384A1 - System having a self-synchronous processing unit - Google Patents

System having a self-synchronous processing unit Download PDF

Info

Publication number
JPWO2007037384A1
JPWO2007037384A1 JP2007537710A JP2007537710A JPWO2007037384A1 JP WO2007037384 A1 JPWO2007037384 A1 JP WO2007037384A1 JP 2007537710 A JP2007537710 A JP 2007537710A JP 2007537710 A JP2007537710 A JP 2007537710A JP WO2007037384 A1 JPWO2007037384 A1 JP WO2007037384A1
Authority
JP
Japan
Prior art keywords
signal
input
output
processing unit
received
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007537710A
Other languages
Japanese (ja)
Other versions
JP4930907B2 (en
Inventor
本田 広樹
広樹 本田
Original Assignee
アイピーフレックス株式会社
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 アイピーフレックス株式会社 filed Critical アイピーフレックス株式会社
Priority to JP2007537710A priority Critical patent/JP4930907B2/en
Publication of JPWO2007037384A1 publication Critical patent/JPWO2007037384A1/en
Application granted granted Critical
Publication of JP4930907B2 publication Critical patent/JP4930907B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Abstract

自己同期型の複数の処理ユニットを有するシステムを提供する。複数の処理ユニットの1つの処理ユニットは、複数の入力側の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、複数の入力信号に基づき、出力信号を生成するための論理部と、出力信号を、少なくとも1つの出力側の処理ユニットに送信するための出力側の信号交換部と、入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号を定める第1の判断機能と、出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号を定める第2の判断機能とを備えている。さらに、入力側の信号交換部は、第1の判断機能または第2の判断機能により受信不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて不用通知を送信する。A system having a plurality of self-synchronous processing units is provided. One processing unit of the plurality of processing units receives an output signal based on the input side signal exchange unit for receiving the plurality of input signals respectively supplied from the plurality of input side processing units and the plurality of input signals. A logic unit for generating, an output signal exchange unit for transmitting an output signal to at least one output processing unit, and an input signal received by the input signal exchange unit to generate an output signal The first determination function that determines an unreceived input signal that is not used for the first time, and a notification that indicates that the output signal is not received, which is received by the output side signal exchange unit, determines the unreceived input signal that is not used for reception. 2 determination functions. Further, the signal exchange unit on the input side transmits a waste notification to the processing unit on the input side that supplies an unreceived input signal that has been judged not to be received by the first determination function or the second determination function.

Description

本発明は、自己同期型、すなわち、非同期型の処理ユニットを有するシステムに関するものである。   The present invention relates to a system having a processing unit of a self-synchronous type, that is, an asynchronous type.

デジタル回路の設計手法として、システム全体をグローバルクロックで統率する同期式設計手法が広く採用されている。一方、クロックによる統率を縛りととらえ、縛りからの解放によって高性能化や低消費電力化をめざすセルフタイムド(自己同期型)設計手法、すなわち、非同期型の設計手法も検討されている。セルフタイムド設計の利点のひとつは、接続された回路素子同士がハンドシェイクを行ってタイミング調整するので、素子遅延や配線遅延に依存しない設計が可能ということである。また、セルフタイムド設計によれば、同期式設計の幾つかの欠点あるいはディメリットを克服できる。同期式設計のディメリットは、例えば、演算時間がクロック周期を超えてしまったときの誤動作、演算がクロック周期より早く完了したときにクロック境界まで無為に待つことである。   As a digital circuit design method, a synchronous design method in which the entire system is controlled by a global clock is widely adopted. On the other hand, a self-timed (self-synchronous) design method that considers the command by the clock as a binding and aims at high performance and low power consumption by releasing from the binding, that is, an asynchronous design method is also being studied. One advantage of the self-timed design is that the connected circuit elements perform handshake to adjust the timing, so that a design that does not depend on element delay or wiring delay is possible. In addition, self-timed design can overcome some of the disadvantages or disadvantages of synchronous design. Disadvantages of the synchronous design are, for example, malfunction when the computation time exceeds the clock cycle, and waiting indefinitely until the clock boundary when the computation is completed earlier than the clock cycle.

非同期式の回路の遅延モデルはいくつか提案されている。米国特許第6,606,356では、DI(Delay Insensitive)モデルおよびQDI(Quasi Delay Insensitive)モデルの性能を改善するモデルとして、遅延が所定の範囲となる回路を仮定したSDI(Scalable Delay Insensitive)モデルを提案している。米国特許第6,732,336では、QDI回路の2相または4相ハンドシェイクをパルスに置き換える非同期パルスロジック(APL)を採用することにより、QDI回路の性能を改善することを提案している。   Several delay models for asynchronous circuits have been proposed. In US Pat. No. 6,606,356, an SDI (Scalable Delay Insensitive) model assuming a circuit in which a delay is in a predetermined range as a model for improving the performance of a DI (Delay Insensitive) model and a QDI (Quasi Delay Insensitive) model. Has proposed. US Pat. No. 6,732,336 proposes improving the performance of a QDI circuit by employing asynchronous pulse logic (APL) that replaces the two-phase or four-phase handshake of the QDI circuit with a pulse.

同期式設計に対する非同期設計の利点の1つは、「演算が完了したらクロック境界まで無為に待たずに次に進んでよい」ということである。しかしながら、非同期設計では、クロックを共有しない素子間あるいはユニット間においてデータを転送するために、所定のプロトコル(ハンドシェイク)を採用する。このため、非同期設計の方が演算は早く進行するはずであるが、回路素子同士がハンドシェイクを行うオーバヘッドのせいで、必ずしも同期式設計より高速な結果を得られるとは限らない。   One of the advantages of asynchronous design over synchronous design is that "you can proceed to the next without waiting indefinitely until the clock boundary when the operation is complete". However, in the asynchronous design, a predetermined protocol (handshake) is employed to transfer data between elements or units that do not share a clock. For this reason, the calculation should proceed faster in the asynchronous design, but due to the overhead of handshaking between circuit elements, a result faster than the synchronous design is not always obtained.

本発明の一態様は、自己同期型の複数の処理ユニットを有するシステムである。これら複数の処理ユニットの1つの処理ユニットは、複数の入力側の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、複数の入力信号に基づき、出力信号を生成するための論理部と、出力信号を、少なくとも1つの出力側の処理ユニットに送信するための出力側の信号交換部とを有する。処理ユニットは、さらに、入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号を定める第1の判断機能と、出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号を定める第2の判断機能とを備えている。そして、入力側の信号交換部は、第1の判断機能または第2の判断機能により受信不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて不用通知を送信する。   One embodiment of the present invention is a system including a plurality of self-synchronous processing units. One processing unit of the plurality of processing units includes an input-side signal exchange unit for receiving a plurality of input signals respectively supplied from the plurality of input-side processing units, and an output signal based on the plurality of input signals. And an output side signal exchange unit for transmitting the output signal to at least one output side processing unit. The processing unit further includes a first determination function for determining an unreceived input signal that is unnecessary for generating an output signal based on an input signal received by the input side signal exchange unit, and the output side signal exchange unit And a second determination function for determining an unreceived input signal that is not required to be received based on a notification that indicates that the output signal is not used. Then, the signal exchange unit on the input side transmits a waste notification to the processing unit on the input side that supplies an unreceived input signal that has been judged not to be received by the first determination function or the second determination function.

本発明の他の態様の1つは自己同期型の処理ユニットである。処理ユニットのタイプの1つは、複数の入力側の他の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、論理部と、少なくとも1つの出力側の他の処理ユニットに出力信号を送信するための出力側の信号交換部と、出力信号の生成に不用となる未受信の入力信号を定める第1の判断機能と、出力信号の不用通知により、受信不用となる未受信の入力信号を定める第2の判断機能とを有する。入力側の信号交換部は、第1の判断機能または第2の判断機能により不用と判断された未受信の入力信号を供給する入力側の他の処理ユニットに宛てて不用通知を送信する。   Another aspect of the present invention is a self-synchronizing processing unit. One type of processing unit includes an input-side signal exchange unit for receiving a plurality of input signals respectively supplied from a plurality of other input-side processing units, a logic unit, and at least one output-side unit. Received by an output-side signal exchange unit for transmitting an output signal to another processing unit, a first determination function for determining an unreceived input signal that is unnecessary for generating an output signal, and an output signal non-use notification And a second determination function for determining an unreceived input signal that is not required. The signal exchange unit on the input side transmits a waste notification to another processing unit on the input side that supplies an unreceived input signal that is judged to be unnecessary by the first determination function or the second determination function.

自己同期型の処理ユニットのタイプの他の1つは、出力信号を生成する論理部を有さないものである。例えば、バッファ(インバータも含む)あるいは分岐として機能するものである。この処理ユニットは、出力側から送信された不用通知を入力側へ転送する。このため、この処理ユニットは、入力側の信号交換部と、出力側の信号交換部とを有し、入力側の信号交換部は、出力側の信号交換部が受信した出力信号の不用通知により、未受信の入力信号を供給する入力側の他の処理ユニットに宛てて不用通知を送信する。   Another type of self-synchronous processing unit is one that does not have a logic section that generates an output signal. For example, it functions as a buffer (including an inverter) or a branch. This processing unit forwards the waste notification transmitted from the output side to the input side. For this reason, this processing unit has an input-side signal exchange unit and an output-side signal exchange unit, and the input-side signal exchange unit is notified by an unnecessary notification of the output signal received by the output-side signal exchange unit. Then, a non-use notification is transmitted to another processing unit on the input side that supplies an unreceived input signal.

出力側の信号交換部が出力信号を、複数の出力側の処理ユニットに送信する処理ユニットにおいては、全ての出力側の処理ユニットから不用通知を受信したときに出力信号の生成が不用になる。したがって、第2の判断機能は、複数の出力側の処理ユニットの全てから出力信号の不用通知を受信したときに、受信不用となる未受信の入力信号を定める。   In the processing unit in which the output-side signal exchange unit transmits the output signal to the plurality of output-side processing units, the generation of the output signal is unnecessary when the use-notification is received from all the output-side processing units. Therefore, the second determination function determines an unreceived input signal that is not required to be received when an output signal non-use notification is received from all of the plurality of output-side processing units.

本発明の他の態様のさらに1つは、自己同期型の複数の処理ユニットを有するシステムを制御する方法である。この方法は、入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号が発生する第1の要因、または、出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号が発生する第2の要因により、その入力信号を供給する予定の入力側の処理ユニットに宛てて、不用通知を送信することを含む。   Another aspect of the present invention is a method for controlling a system having a plurality of self-synchronous processing units. This method is the first factor that an unreceived input signal that is unnecessary for generating an output signal is generated by an input signal received by an input-side signal exchange unit, or an output-side signal exchange unit received Due to a second factor that causes an unreceived input signal that is not required to be received due to a waste notification indicating that the output signal is not used, a waste notification is transmitted to the processing unit on the input side that is to supply the input signal. Including that.

不用通知の伝播は、データが未入力のときに確認信号(アクノリッジ信号)を送信することにより、処理ユニット間において、データ用の信号を転送するためのハンドシェイクのプロトコルに追加できる。これにより、データ用の信号により不用通知に関するハンドシェイクを行うことができる。そのようなハンドシェイクのプロトコルの1つは以下のようなものであり、以下の処理p1〜p4のいずれかにより入出力側で信号の転送を確認する。
p1. 入力信号を受信すると、その入力信号の供給元の入力側の処理ユニット(他の処理ユニット)に宛てて確認信号を送信する。
p2. 未受信の入力信号の供給元の入力側の処理ユニット(他の処理ユニット)に宛てて不用通知として確認信号を送信し、確認信号の送信先の入力側の処理ユニット(他の処理ユニット)からダミーの入力信号を受信する。
p3. 出力信号を送信し、送信先の出力側の処理ユニット(他の処理ユニット)から確認信号を受信する。
p4. 出力信号が未送信のときに確認信号を受信すると不用通知として認識し、ダミーの出力信号を送信する。
Propagation of unnecessary notification can be added to a handshake protocol for transferring a data signal between processing units by transmitting a confirmation signal (acknowledge signal) when no data is input. As a result, the handshake regarding the non-use notification can be performed by the data signal. One such handshake protocol is as follows, and signal transfer is confirmed on the input / output side by any of the following processes p1 to p4.
p1. When the input signal is received, a confirmation signal is transmitted to the input side processing unit (other processing unit) of the input signal supply source.
p2. A confirmation signal is transmitted as a non-use notification to the input side processing unit (other processing unit) of the supply source of the unreceived input signal, and from the input side processing unit (other processing unit) to which the confirmation signal is transmitted Receive a dummy input signal.
p3. An output signal is transmitted, and a confirmation signal is received from a processing unit (another processing unit) on the output side of the transmission destination.
p4. If a confirmation signal is received when the output signal has not been transmitted, it is recognized as a notification not to be used, and a dummy output signal is transmitted.

入力側においては、処理p1またはp2により信号の転送が確認される。出力側においては、処理p3またはp4により信号の転送が確認される。したがって、処理ユニットは、処理p1からp4のいずれかにより信号の転送を確認するハンドシェイク機能を備えていることが望ましい。   On the input side, signal transfer is confirmed by processing p1 or p2. On the output side, signal transfer is confirmed by processing p3 or p4. Therefore, it is desirable that the processing unit has a handshake function for confirming signal transfer by any one of the processes p1 to p4.

本発明の他の態様のさらに1つは、自己同期型の処理ユニットが他の自己同期型の処理ユニットとの間で信号の転送を確認することを含む、信号を伝達するための方法である。信号の転送を確認すること(ハンドシェイクすること)は、以下を含む。   Yet another aspect of the present invention is a method for communicating a signal that includes a self-synchronizing processing unit confirming the transfer of a signal to and from another self-synchronizing processing unit. . Confirming signal transfer (handshaking) includes the following.

入力側の信号交換部により入力信号を受信すると、その入力信号の供給元の入力側の他の処理ユニットに宛てて確認信号を送信すること、
入力信号により、出力信号の生成に不用となる未受信の入力信号が発生する第1の要因、または、出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号が発生する第2の要因により、未受信の入力信号の供給元の、入力側の他の処理ユニットに宛てて不用通知として確認信号を送信し、確認信号の送信先の、入力側の他の処理ユニットからダミーの入力信号を受信すること、
出力信号を送信し、出力信号の送信先の、出力側の他の処理ユニットから確認信号を受信すること、および、
出力信号が未送信のときに確認信号を受信すると不用通知として認識し、ダミーの出力信号を送信すること。
When an input signal is received by the signal exchange unit on the input side, a confirmation signal is transmitted to another processing unit on the input side of the input signal supply source,
The first factor that an unreceived input signal that is not required for generating an output signal is generated by the input signal, or the unnecessary notification that indicates that the output signal is not received, which is received by the output-side signal exchange unit. Due to the second factor that causes the unreceived input signal to be generated, a confirmation signal is transmitted as a non-use notification to other processing units on the input side of the source of the unreceived input signal, and the destination of the confirmation signal is transmitted. Receiving dummy input signals from other processing units on the input side,
Transmitting an output signal, receiving a confirmation signal from another processing unit on the output side of the output signal, and
If a confirmation signal is received when the output signal has not been transmitted, it is recognized as a waste notification and a dummy output signal is transmitted.

自己同期型のシステムの概要を示す図。The figure which shows the outline | summary of a self-synchronous type | system | group. 自己同期型の処理ユニットの概略構成を示す図。The figure which shows schematic structure of a self-synchronous type processing unit. 2線式の自己同期型の素子を示す図。The figure which shows a two-wire-type self-synchronous element. 図3に示す素子の内部動作を示すフローチャート。4 is a flowchart showing an internal operation of the element shown in FIG. 3. 図2に示す処理ユニットの内部動作の概要を示すフローチャート。The flowchart which shows the outline | summary of the internal operation | movement of the processing unit shown in FIG. 図2に示す処理ユニットのさらに詳しい内部動作を示すフローチャート。The flowchart which shows the further detailed internal operation | movement of the processing unit shown in FIG. 自己同期型のNOTゲート素子を示す図。The figure which shows a self-synchronous NOT gate element. 図8(a)は、同期型の信号分岐を示す図、図8(b)は、自己同期型の信号分岐を示す図。FIG. 8A shows a synchronous signal branch, and FIG. 8B shows a self-synchronous signal branch. 自己同期型のバッファ素子を示す図。The figure which shows a self-synchronous buffer element. 図9の素子においてハンドシェイクが行なわれるタイミングチャート。10 is a timing chart in which handshaking is performed in the element of FIG. 図10と異なる例のタイミングチャート。The timing chart of an example different from FIG. 図11とさらに異なる例のタイミングチャート。The timing chart of the example further different from FIG. 図12とさらに異なる例のタイミングチャート。FIG. 13 is a timing chart of an example further different from FIG. 自己同期型のフリップフロップの内部動作を示すフローチャート。6 is a flowchart showing an internal operation of a self-synchronous flip-flop. 自己同期型のフリップフロップのさらに詳しい内部動作を示すフローチャート。The flowchart which shows the further detailed internal operation | movement of a self-synchronous flip-flop. 組合せ論理回路の一例。An example of a combinational logic circuit. 図16の組合せ回路を2入力1出力の処理ユニットを複数用いた構成に変更した回路。17 is a circuit in which the combinational circuit of FIG. 16 is changed to a configuration using a plurality of processing units with two inputs and one output. 図18(a)〜図18(h)は、図17に示す回路の動作を示す例。18A to 18H show examples of the operation of the circuit shown in FIG. 図19(a)〜図19(e)は、図17に示す回路の動作を示す異なる例。19A to 19E are different examples showing the operation of the circuit shown in FIG. 図20(a)〜図20(e)は、図17に示す回路の動作をハンドシェイクにより示す例。20A to 20E show examples of the operation of the circuit shown in FIG. 17 by handshaking. 図21(a)〜図21(d)は、図20(e)に続き、図17に示す回路の動作をハンドシェイクにより示す例。FIG. 21A to FIG. 21D show examples of the operation of the circuit shown in FIG. 17 by handshaking following FIG. 図22(a)〜図22(d)は、図21(d)に続き、図17に示す回路の動作をハンドシェイクにより示す例。22 (a) to 22 (d) show examples of the operation of the circuit shown in FIG. 17 by handshaking following FIG. 21 (d). 順序回路の例。An example of a sequential circuit. 図23の順序回路を2入力1出力の処理ユニットを複数用いた構成に変更した回路。24 is a circuit in which the sequential circuit of FIG. 23 is changed to a configuration using a plurality of 2-input / 1-output processing units. 図25(a)〜図25(d)は、図24に示す回路の動作をハンドシェイクにより示す例。25A to 25D show examples of the operation of the circuit shown in FIG. 24 by handshaking. 図26(a)〜図26(d)は、図25(d)に続き、図24に示す回路の動作をハンドシェイクにより示す例。26 (a) to 26 (d) show examples of the operation of the circuit shown in FIG. 24 by handshaking following FIG. 25 (d). 図27(a)〜図27(d)は、図26(d)に続き、図24に示す回路の動作をハンドシェイクにより示す例。FIG. 27A to FIG. 27D show examples of the operation of the circuit shown in FIG. 24 by handshaking following FIG. 図28(a)〜図28(d)は、図27(d)に続き、図24に示す回路の動作をハンドシェイクにより示す例。FIG. 28A to FIG. 28D are examples showing the operation of the circuit shown in FIG. 24 by handshaking following FIG. 図29(a)〜図29(d)は、図28(d)に続き、図24に示す回路の動作をハンドシェイクにより示す例。FIG. 29A to FIG. 29D are examples showing the operation of the circuit shown in FIG. 24 by handshaking following FIG. 図30(a)〜図30(d)は、図29(d)に続き、図24に示す回路の動作をハンドシェイクにより示す例。FIG. 30A to FIG. 30D are examples showing the operation of the circuit shown in FIG. 24 by handshaking following FIG. 29D. 図31(a)〜図31(d)は、図30(d)に続き、図24に示す回路の動作をハンドシェイクにより示す例。31 (a) to 31 (d) show examples of the operation of the circuit shown in FIG. 24 by handshaking following FIG. 30 (d).

発明の実施の形態BEST MODE FOR CARRYING OUT THE INVENTION

本発明の一形態は、自己同期型の複数の処理ユニットを有するシステムであり、複数の入力信号を受信するための入力側の信号交換部と、これら複数の入力信号に基づき、出力信号を生成するための論理部と、出力側の信号交換部とを有する。処理ユニットの論理部に実装された論理が2入力ANDのときは、一方の入力信号が真であれば、出力信号を決定するために他方の入力信号を待つ必要がある。しかしながら、一方の入力信号が偽であれば、出力信号は偽となり、他方の入力信号は出力信号の生成に不用(ドントケア)な信号となる。したがって、自己同期型の処理ユニットにおいて、異なるタイミングで受信する可能性が高い、他方の入力信号を待つ必要はなく、出力信号を出力できる。   One embodiment of the present invention is a system having a plurality of self-synchronous processing units, and generates an output signal based on the signal exchange unit on the input side for receiving a plurality of input signals and the plurality of input signals. And a logic unit for output and a signal exchange unit on the output side. When the logic implemented in the logic unit of the processing unit is a two-input AND, if one input signal is true, it is necessary to wait for the other input signal to determine the output signal. However, if one input signal is false, the output signal is false, and the other input signal is a signal that is unnecessary (don't care) for generating the output signal. Therefore, in the self-synchronous processing unit, there is no need to wait for the other input signal that is highly likely to be received at different timings, and an output signal can be output.

2入力ORなどの他の論理についても同様に、あるタイミングで受信した入力信号により、未受信の入力信号がドントケアとなることはある。セレクタであれば、あるタイミングで受信した入力信号により選択される側が決まると、選択されない側の未受信の入力信号はドントケアとなる。   Similarly, for other logics such as 2-input OR, an unreceived input signal may become don't care depending on an input signal received at a certain timing. In the case of a selector, when a selected side is determined by an input signal received at a certain timing, an unreceived input signal on the unselected side becomes don't care.

また、出力信号がドントケアであれば、その出力信号を生成する処理ユニットにおける入力信号もドントケアとなる。したがって、第1の判断機能において、出力信号の生成に受信不用となる未受信の入力信号を定める(第1の要因)。さらに、第2の判断機能において、出力信号の不用通知により、受信不用となる未受信の入力信号を定める(第2の要因)。このシステムにおいては、さらに、第1の判断機能または第2の判断機能により不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて、不用通知を送信する。   If the output signal is don't care, the input signal in the processing unit that generates the output signal is also don't care. Therefore, in the first determination function, an unreceived input signal that is not necessary for reception of the output signal is determined (first factor). Further, in the second determination function, an unreceived input signal that is not required to be received is determined based on a notification that the output signal is not used (second factor). In this system, a waste notification is further transmitted to an input-side processing unit that supplies an unreceived input signal that has been judged as unnecessary by the first judgment function or the second judgment function.

ある処理ユニットにおいて、一方の入力信号により出力信号が決定された場合は、その出力信号は、出力側の信号交換部により出力側の他の処理ユニットに送信される。それと共に、第1の判断機能において不用と判断された未受信の入力信号については、その未受信の入力信号を供給する予定の入力側の処理ユニットに対し、入力側の信号交換部により、不用通知が送信される。さらに、その入力側の処理ユニットでは、第2の判断機能により、不用通知は、さらに、未受信の入力側の他の処理ユニットに送信される。したがって、ある処理ユニットから、出力側には出力信号が伝播されるので、信号処理が進み下流側の処理ユニットの待ち状態が解除される。また、未受信の入力側には不用通知が伝播されるので、上流側の処理ユニットの待ち状態を解除でき、信号処理を進められるのでシステムの処理速度を向上できる。   When an output signal is determined by one input signal in a certain processing unit, the output signal is transmitted to the other processing unit on the output side by the signal exchange unit on the output side. At the same time, for the unreceived input signal determined to be unnecessary in the first determination function, the input-side signal exchange unit does not use the input-side processing unit to supply the unreceived input signal. A notification is sent. Further, in the processing unit on the input side, the unnecessary notification is further transmitted to another processing unit on the input side that has not been received by the second determination function. Therefore, since an output signal is propagated from a certain processing unit to the output side, signal processing proceeds and the waiting state of the downstream processing unit is released. In addition, since the unnecessary notification is propagated to the unreceived input side, the waiting state of the upstream processing unit can be released and the signal processing can be advanced, so that the processing speed of the system can be improved.

さらに、自己同期式の処理ユニットの出力側の信号交換部は、入力信号に基づき論理部により出力信号が生成される都度、その出力信号をパルス信号で送信することが望ましい。本発明の実施形態の処理ユニットは、論理により、出力信号の値を変える・変えないに関わらず、出力信号が生成される都度、その出力信号をパルス出力する。したがって、処理ユニットは、ユーザークロック1サイクル分の処理につき1回、出力信号を伝送する。これは、同期式ユーザー回路の、「全ての信号線が1クロックサイクルに1回ずつ値の伝送を行う」という性質を反映している。   Further, it is desirable that the signal exchange unit on the output side of the self-synchronous processing unit transmits the output signal as a pulse signal each time the output signal is generated by the logic unit based on the input signal. The processing unit according to the embodiment of the present invention outputs a pulse of the output signal every time the output signal is generated regardless of whether or not the value of the output signal is changed by logic. Therefore, the processing unit transmits an output signal once per process for one cycle of the user clock. This reflects the property of the synchronous user circuit that “all signal lines transmit a value once per clock cycle”.

本発明の実施形態の自己同期型のシステムにおいては、全ての処理ユニット間で1回ずつハンドシェイクが行われる。そして、ハンドシェイクが行われるたびに、同期式ユーザー回路のユーザークロック1サイクル分の処理が進むとみなすことができる。このため、広く普及している同期式設計の考え方で、自己同期式、すなわち非同期の回路設計が可能となる。   In the self-synchronous system of the embodiment of the present invention, handshaking is performed once between all the processing units. Each time handshake is performed, it can be considered that the process for one cycle of the user clock of the synchronous user circuit proceeds. For this reason, it is possible to design a self-synchronous, that is, asynchronous circuit, based on the concept of synchronous design that is widely used.

出力側の信号交換部は、出力信号を3状態に変位する信号で送信することが望ましい。3状態に変位する信号の一例は、中立と、それを含まない2値(2つの状態)とを示す信号である。出力信号(入力信号)を2線式で送信することも可能である。しかしながら、不用通知を下流に伝播する際に、出力信号を確認信号として利用するためには、2線式の場合、遅延量が異なると、ハンドシェイクの結果が異なる可能性がある。出力信号を、3状態に変位する信号で送信することにより、単線(1線式)で出力信号(入力信号)を交換できるので遅延に伴う問題を未然に解決できる。3状態は、電気信号であれば、例えば、電圧をプラス、ゼロ、マイナスに変換させることで実現できる。光信号であれば、例えば、偏光の状態を3状態に変えることができる。   It is desirable that the signal exchange unit on the output side transmits the output signal as a signal that shifts to three states. An example of a signal that shifts to three states is a signal indicating neutrality and binary values (two states) that do not include the neutral state. It is also possible to transmit an output signal (input signal) by a two-wire system. However, in order to use the output signal as a confirmation signal when propagating the unnecessary notification downstream, in the case of the two-wire system, there is a possibility that the result of handshaking is different if the delay amount is different. By transmitting the output signal as a signal that shifts to three states, the output signal (input signal) can be exchanged by a single line (one-wire type), so that the problem associated with the delay can be solved beforehand. The three states can be realized by converting the voltage into plus, zero, and minus, for example, if it is an electric signal. In the case of an optical signal, for example, the polarization state can be changed to three states.

処理ユニットは、未受信の入力信号あるいは確認信号により処理できない入力信号を記憶するためのメモリを備えていることが望ましい。自己同期型の処理ユニットは、受信した信号、例えば、入力信号あるいは確認信号を、イベントを進めるトークン(イベントトークン)として記憶するためのメモリを備えていることが望ましい。処理ユニットは、処理できない信号を記憶するためのメモリを備えていることにより、受信した信号に関わる処理を進めることが可能となる。   The processing unit preferably includes a memory for storing an unreceived input signal or an input signal that cannot be processed by a confirmation signal. The self-synchronous processing unit preferably includes a memory for storing a received signal, for example, an input signal or a confirmation signal, as a token (event token) that advances an event. Since the processing unit includes a memory for storing a signal that cannot be processed, the processing related to the received signal can proceed.

本発明の実施形態の自己同期型のシステムは、グローバルクロックを必要としない。したがって、自己同期型のシステムに含まれる個々の処理ユニットにおける処理時間(レイテンシ)がグローバルクロック周期より短くなければならないという制約も存在しない。このため、処理ユニットの論理部の論理あるいは処理ユニットの接続をフレキシブルに変更することが可能となる。したがって、自己同期型のシステムは、論理部における、出力信号を生成する論理を変更可能な再構成可能なシステムに適している。   The self-synchronous system of the embodiment of the present invention does not require a global clock. Therefore, there is no restriction that the processing time (latency) in each processing unit included in the self-synchronous system must be shorter than the global clock period. For this reason, it becomes possible to change the logic of the logic part of a processing unit, or the connection of a processing unit flexibly. Accordingly, the self-synchronous system is suitable for a reconfigurable system in which the logic for generating the output signal in the logic unit can be changed.

再構成可能なシステムの一形態は、入力側の信号交換部は、入力側の処理ユニットを変更する機能を備えており、出力側の信号交換部は、出力側の処理ユニットを変更する機能を備えている処理ユニットを含むシステムである。そのようなシステムの一例は、入力側および出力側の信号交換部が通信あるいはデータ伝送機能を含み、無線あるいは有線により、それぞれに接続される処理ユニットを変更できるものである。再構成可能なシステムの他の一形態は、複数の処理ユニットの間の信号の交換を可能とする通信システムであって、複数の処理ユニットの接続を再構成可能な通信システムを、さらに有するものである。   In one form of the reconfigurable system, the signal exchange unit on the input side has a function of changing the processing unit on the input side, and the signal exchange unit on the output side has a function of changing the processing unit on the output side. The system includes a processing unit. An example of such a system is such that the input side and output side signal exchange units include communication or data transmission functions, and the processing units connected to each can be changed wirelessly or by wire. Another form of the reconfigurable system is a communication system that enables exchange of signals between a plurality of processing units, and further includes a communication system that can reconfigure the connection of the plurality of processing units. It is.

この自己同期型のシステムは、無線あるいは有線により実現されるコンピュータネットワークで複数のコンピュータが接続された分散型のシステムであっても良い。また、適当な演算機能を備えた複数の素子が1つのチップに収納され、電子あるいは光により接続された集積回路システムであっても良い。集積回路ユニットの一形態は、複数の処理ユニットと、複数の処理ユニットの間の信号を伝達するためのルーチングマトリクスとを含むものである。ルーチングマトリクスの一例は、複数の処理ユニットに含まれる少なくとも一部の処理ユニットの間の接続を変更することにより、集積回路ユニット内の回路を再構成できるものである。   This self-synchronous system may be a distributed system in which a plurality of computers are connected by a computer network realized by radio or wire. Further, an integrated circuit system in which a plurality of elements having appropriate arithmetic functions are housed in one chip and connected by electronic or optical may be used. One form of the integrated circuit unit includes a plurality of processing units and a routing matrix for transmitting signals between the plurality of processing units. An example of the routing matrix is a circuit in the integrated circuit unit that can be reconfigured by changing connections between at least some of the processing units included in the plurality of processing units.

図1は、自己同期型の集積回路装置の一例を示してある。この集積回路装置(集積回路ユニット、デバイスあるいはシステム)1は、FFT(高速フーリエ変換)の演算、MPEGにより圧縮されたデータのデコードを含む各種計算処理、IPアドレスによるルーティング、パケットにより伝送されるデータの再構成を含むネットワーク処理などの多種多様な目的で使用できるものである。集積回路ユニット1は、それ自体で1つのシステムとして、1または複数の処理を実行するように構成できる。また、複数の集積回路ユニット1を組み合わせることにより1つのシステムを構築することも可能である。さらに、1または複数の集積回路ユニット1を、汎用のCPUあるいは他の専用回路と組み合わせることにより1つのシステムを構築することも可能である。   FIG. 1 shows an example of a self-synchronous integrated circuit device. This integrated circuit device (integrated circuit unit, device, or system) 1 includes FFT (Fast Fourier Transform) calculation, various calculation processes including decoding of data compressed by MPEG, routing by IP address, and data transmitted by packets. It can be used for a wide variety of purposes such as network processing including reconfiguration. The integrated circuit unit 1 can be configured to execute one or a plurality of processes as a single system. It is also possible to construct one system by combining a plurality of integrated circuit units 1. Furthermore, it is also possible to construct one system by combining one or a plurality of integrated circuit units 1 with a general-purpose CPU or other dedicated circuit.

集積回路ユニット1は、各々の演算論理を変更可能な複数の処理ユニット(Processing Unit(PU),Processing Element(PE)またはConfigurable Logic Block(CLB)、以降においてはPU)10と、それら複数の処理ユニット(PUs)10を接続する経路を構成するためのルーチングマトリクス5とを含む。ルーチングマトリクス5は、PUs10の間でデータを伝送するための配線(配線群)6wと、配線群6wの接続を変更することにより、ルーチングマトリクス5の接続構成を変更可能な接続ユニット(スイッチングユニットまたはセレクタユニット)6sとを含む。集積回路ユニット1は、さらに、PUs10およびルーチングマトリクス5のコンフィグレーションデータ7を記憶したコンフィグレーションメモリ2と、そのコンフィグレーションメモリ2からPUs10に対し、コンフィグレーションデータ7を供給するためのコンフィグレーションデータ制御ユニット3とを有している。コンフィグレーションメモリ2には、複数セットのコンフィグレーションデータ7が格納される。制御ユニット3は、複数セットのコンフィグレーションデータ7のいずれかを選択し、PUs10および、必要であればルーチングマトリクス5に供給する。ルーチングマトリクス5は、PUs10および接続ユニット6sに対してコンフィグレーションデータ7を転送する機能も有する。   The integrated circuit unit 1 includes a plurality of processing units (Processing Unit (PU), Processing Element (PE) or Configurable Logic Block (CLB), hereinafter PU) that can change the respective arithmetic logics, and a plurality of the processes. And a routing matrix 5 for configuring a path connecting the units (PUs) 10. The routing matrix 5 is a connection unit (switching unit or switching unit or wiring unit) that can change the connection configuration of the routing matrix 5 by changing the connection between the wiring (wiring group) 6w for transmitting data between the PUs 10 and the wiring group 6w. Selector unit) 6s. The integrated circuit unit 1 further includes a configuration memory 2 that stores the configuration data 7 of the PUs 10 and the routing matrix 5, and configuration data control for supplying the configuration data 7 from the configuration memory 2 to the PUs 10. Unit 3. A plurality of sets of configuration data 7 are stored in the configuration memory 2. The control unit 3 selects one of a plurality of sets of configuration data 7 and supplies it to the PUs 10 and the routing matrix 5 if necessary. The routing matrix 5 also has a function of transferring the configuration data 7 to the PUs 10 and the connection unit 6s.

ルーチングマトリクス5は、配線6wがマトリクスに配列されたものに限定されない。例えば、PUs10がネットワークのノードを構成するように接続するものであっても良い。ルーチングマトリクス5は、複数のPU10の間の信号の交換を可能とする有線の通信システムでもある。PUs10が分散している場合は、無線による通信システムでPUs10を接続することも可能である。有線または無線の通信システムによりPUs10の接続を再構成することにより、PUs10により構成される回路を変更できる。   The routing matrix 5 is not limited to one in which the wiring 6w is arranged in a matrix. For example, the PUs 10 may be connected to form a network node. The routing matrix 5 is also a wired communication system that enables exchange of signals between a plurality of PUs 10. When the PUs 10 are distributed, the PUs 10 can be connected by a wireless communication system. By reconfiguring the connection of the PUs 10 by a wired or wireless communication system, the circuit configured by the PUs 10 can be changed.

図2は、自己同期型の非同期型の処理ユニット(PU)10の概略の機能構成を示している。このPU10は、入力側の信号交換部である入力インターフェイス11と、出力Yを決定する論理部12と、出力側の信号交換部である出力インターフェイス13とを備えている。入力インターフェイス11は、2つの他の入力側のPUs10aおよび10bからそれぞれ供給される2つの入力信号AdおよびBdを受信する。2つの入力信号AdおよびBdは、同じタイミングでPUs10aおよび10bから供給されるとは限らない。したがって、入力側の信号交換部である入力インターフェイス11は、2つの入力信号AdおよびBdをそれぞれ受信する。   FIG. 2 shows a schematic functional configuration of the self-synchronous asynchronous processing unit (PU) 10. The PU 10 includes an input interface 11 that is an input-side signal exchange unit, a logic unit 12 that determines an output Y, and an output interface 13 that is an output-side signal exchange unit. The input interface 11 receives two input signals Ad and Bd supplied from two other input-side PUs 10a and 10b, respectively. The two input signals Ad and Bd are not necessarily supplied from the PUs 10a and 10b at the same timing. Therefore, the input interface 11 that is the signal exchange unit on the input side receives the two input signals Ad and Bd, respectively.

論理部12は、入力信号AdおよびBdによりそれぞれ与えられる入力Aおよび入力Bに基づき、出力Yを決定する。出力インターフェイス13は、論理部12の出力Yを示す出力信号Ydを出力側の他の処理ユニット(PU)10yに送信する。さらに、PU10は、PU10の内部動作を制御する制御ユニット15を備えている。また、PU10は、未受信の信号により処理を進めることができない信号を記憶するキューイング用のメモリ14を備えている。   The logic unit 12 determines the output Y based on the inputs A and B given by the input signals Ad and Bd, respectively. The output interface 13 transmits an output signal Yd indicating the output Y of the logic unit 12 to another processing unit (PU) 10y on the output side. Furthermore, PU10 is provided with the control unit 15 which controls the internal operation | movement of PU10. Further, the PU 10 includes a queuing memory 14 that stores a signal that cannot be processed due to an unreceived signal.

制御ユニット15は、第1の判断機能18と、第2の判断機能19とを含む。第1の判断機能18は、入力インターフェイス11が受信した入力信号AdまたはBdにより、出力信号Ydの生成に不用となる未受信の入力信号を定める。第2の判断機能19は、出力インターフェイス13が受信した、出力信号の不用通知により、受信不用となる未受信の入力信号を定める。   The control unit 15 includes a first determination function 18 and a second determination function 19. The first determination function 18 determines an unreceived input signal that is unnecessary for generating the output signal Yd based on the input signal Ad or Bd received by the input interface 11. The second determination function 19 determines an unreceived input signal that is not required to be received by the output interface 13 that has been received by the output interface 13.

さらに、制御ユニット15は、信号の送受信を確認するためのハンドシェイク機能17を備えている。ハンドシェイク機能17は、入力側のPUs10aおよび10bとの間で入力信号AdおよびBdの送受信をそれぞれ確認する。また、ハンドシェイク機能17は、出力側のPU10yとの間で出力信号Ydの送受信を確認する。   Further, the control unit 15 includes a handshake function 17 for confirming transmission / reception of signals. The handshake function 17 confirms transmission / reception of the input signals Ad and Bd with the PUs 10a and 10b on the input side. The handshake function 17 confirms transmission / reception of the output signal Yd with the output-side PU 10y.

このハンドシェイク機能17は、入力信号Adを受信すると、その入力信号Adの供給元の入力側のPU10aに宛てて確認信号(アクノリッジ信号)Akを送信する。この処理により、PU10は、PU10aとの間で一回の入力信号の交換(ハンドシェイク)を行う。すなわち、この処理がPU10とPU10aとの間のハンドシェイク(プロトコル)の1つである。   When the handshake function 17 receives the input signal Ad, the handshake function 17 transmits a confirmation signal (acknowledge signal) Ak to the PU 10a on the input side of the supply source of the input signal Ad. With this process, the PU 10 exchanges input signals (handshake) with the PU 10a once. That is, this process is one of handshakes (protocols) between the PU 10 and the PU 10a.

同様に、ハンドシェイク機能17は、入力信号Bdを受信すると、その入力信号Bdの供給元の入力側のPU10bに宛てて確認信号(アクノリッジ信号)Bkを送信する。この処理がPU10とPU10bとの間のハンドシェイク(プロトコル)の1つである。また、ハンドシェイク機能17は、出力信号Ydを送信し、送信先の出力側のPU10yからアクノリッジ信号Ykを受信する。この処理が、PU10とPU10yとの間のハンドシェイク(プロトコル)の1つである。   Similarly, when the handshake function 17 receives the input signal Bd, the handshake function 17 transmits a confirmation signal (acknowledge signal) Bk to the PU 10b on the input side of the supply source of the input signal Bd. This process is one of handshakes (protocols) between the PU 10 and the PU 10b. The handshake function 17 transmits an output signal Yd and receives an acknowledge signal Yk from the PU 10y on the output side of the transmission destination. This process is one of handshakes (protocols) between the PU 10 and the PU 10y.

さらに、ハンドシェイク機能17は、第1の判断機能18または第2の判断機能19により不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて不用通知を送信する。ハンドシェイク機能17は、受信不用と判断された入力側のPU10aおよび10bの一方または両方に対して、アクノリッジ信号AkおよびBkの一方または両方を不用通知(ドントケア通知)として送信する。さらに、ハンドシェイク機能17は、入力信号が未受信の状態でアクノリッジ信号を送信した先のPUs10aおよび10bの一方または両方から供給されるダミーの入力信号を受信する。これらの処理が、PU10とPU10aおよび/または10bとの間のハンドシェイク(プロトコル)の1つである。   Further, the handshake function 17 transmits a waste notification to an input-side processing unit that supplies an unreceived input signal that has been judged as unnecessary by the first determination function 18 or the second determination function 19. The handshake function 17 transmits one or both of the acknowledgment signals Ak and Bk as a non-use notification (don't care notification) to one or both of the PUs 10a and 10b on the input side that are determined not to be received. Further, the handshake function 17 receives a dummy input signal supplied from one or both of the previous PUs 10a and 10b that have transmitted the acknowledge signal in a state where the input signal is not received. These processes are one of handshakes (protocols) between the PU 10 and the PUs 10a and / or 10b.

また、ハンドシェイク機能17は、出力側のPU10yからドントケア通知を受け取る。ハンドシェイク機能17は、出力信号Ydが未送信のときにアクノリッジ信号Ykを受信すると、ドントケア通知として認識する。ハンドシェイク機能17は、第2の判断機能19にドントケア通知を伝達すると共に、ダミーの出力信号Ydを送信する。この処理が、PU10およびPU10yとの間のハンドシェイク(プロトコル)の1つである。   Further, the handshake function 17 receives a don't care notification from the PU 10y on the output side. When the handshake function 17 receives the acknowledge signal Yk when the output signal Yd is not transmitted, the handshake function 17 recognizes it as a don't care notification. The handshake function 17 transmits a don't care notification to the second determination function 19 and transmits a dummy output signal Yd. This process is one of handshakes (protocols) between the PU 10 and the PU 10y.

制御ユニット15は、ルーチングマトリクス5を介してコンフィグレーションメモリ2から供給されるコンフィグレーションデータ7によりPU10の処理内容を変更するための再構成機能16を備えている。再構成機能16は、コンフィグレーションデータ7に基づき、PU10の論理部12のロジックを変更する。また、再構成機能16は、入力インターフェイス11および出力インターフェイス13に接続される処理ユニットを変更する。これらにより、システム1において複数のPUs10により構成されるデータパスが再構成され、データパスの機能が変更される。この例では、入力インターフェイス11および出力インターフェイス13は、ルーチングマトリクス5を介して他のPUsと接続されている。ルーチングマトリクス5の接続ユニット6sの構成を変えることによっても、システム1において複数のPUs10により構成されるデータパスを再構成できる。   The control unit 15 has a reconfiguration function 16 for changing the processing content of the PU 10 by the configuration data 7 supplied from the configuration memory 2 via the routing matrix 5. The reconfiguration function 16 changes the logic of the logic unit 12 of the PU 10 based on the configuration data 7. The reconfiguration function 16 also changes the processing unit connected to the input interface 11 and the output interface 13. As a result, the data path constituted by the plurality of PUs 10 in the system 1 is reconfigured, and the function of the data path is changed. In this example, the input interface 11 and the output interface 13 are connected to other PUs via the routing matrix 5. Also by changing the configuration of the connection unit 6s of the routing matrix 5, the data path constituted by the plurality of PUs 10 in the system 1 can be reconfigured.

図3に、2線式の2入力1出力の自己同期型の素子90の一例を示している。2入力1出力の論理素子は、入力信号は信号AおよびBの2つ、出力信号は信号Yの1つである。1つの信号当たり、論理“0”を伝送するためのデータ線(A0等)と、論理“1”を伝送するためのデータ線(A1等)と、アクノリッジ線(Ak等)が必要である。このため、素子90には合計9本の信号線が接続されている。   FIG. 3 shows an example of a two-wire, two-input, one-output self-synchronous element 90. The 2-input 1-output logic element has two signals A and B as input signals and one signal Y as an output signal. For each signal, a data line (such as A0) for transmitting logic “0”, a data line (such as A1) for transmitting logic “1”, and an acknowledge line (such as Ak) are necessary. For this reason, a total of nine signal lines are connected to the element 90.

図4は、図3に示した自己同期型の処理素子(PE)90の内部動作を示すフローチャートである。まず、ステップ91において、PE90は、入力データ線から論理“0”や論理“1”を示す入力信号A0、A1、B0またはB1が伝送されてくるのを待つ。これらの信号が伝送されてきたら、PE90は、ステップ92において入力信号の供給元を判断する。ステップ93または94において、PE90は、入力信号に対応するアクノリッジ信号AkまたはBkを供給元に返す。ステップ95において、PE90は、出力値を変更する必要があるかどうかを判定する。出力信号Y0またはY1を変更する必要があるなら、PE90は、ステップ96において新しい出力値を伝送する。その後、ステップ97において、PE90は、出力信号のアクノリッジYkを待つ。   FIG. 4 is a flowchart showing the internal operation of the self-synchronous processing element (PE) 90 shown in FIG. First, in step 91, the PE 90 waits for an input signal A0, A1, B0 or B1 indicating logic “0” or logic “1” to be transmitted from the input data line. When these signals are transmitted, the PE 90 determines the source of the input signal in step 92. In step 93 or 94, the PE 90 returns an acknowledge signal Ak or Bk corresponding to the input signal to the supplier. In step 95, the PE 90 determines whether the output value needs to be changed. If the output signal Y0 or Y1 needs to be changed, the PE 90 transmits a new output value at step 96. Thereafter, in step 97, the PE 90 waits for an acknowledge Yk of the output signal.

この自己同期型の素子90において、入力信号と出力信号とは入力側か出力側かの相違だけで同じデータ信号である。これらのデータ信号とアクノリッジ信号とが伝送途中で消失したり増殖したりしないという保証と、適当な遅延モデルに対応した回路設計がなされていれば、この自己同期型素子90を用いたシステムは正しく動作する。   In this self-synchronous element 90, the input signal and the output signal are the same data signal only in the difference between the input side and the output side. If these data signals and acknowledge signals are not guaranteed to disappear or multiply during transmission, and if a circuit design corresponding to an appropriate delay model has been made, a system using this self-synchronous element 90 is correct. Operate.

図2に示した自己同期型の素子(処理ユニットPU)10は、1線式の2入力1出力の自己同期型の素子(処理ユニット)である。1線式のPU10は、論理上の信号1本につき、実際の信号線を2本ずつ割り当てる。このため、PU10には、合計6本の信号線が接続される。他のPU10に対する2本ずつの信号線は、それぞれ、データ線5aと、アクノリッジ用の信号線5bである。データ線5aは、データ信号Ad、BdおよびYdとして論理“0”や論理“1”を伝送するため信号線である。アクノリッジ用の信号線5bは、アクノリッジ信号Ak、BkおよびYkを伝送するための信号線である。   A self-synchronous element (processing unit PU) 10 shown in FIG. 2 is a one-wire, two-input, one-output self-synchronous element (processing unit). The one-wire PU 10 assigns two actual signal lines for each logical signal. For this reason, a total of six signal lines are connected to the PU 10. The two signal lines for the other PUs 10 are a data line 5a and an acknowledge signal line 5b, respectively. The data line 5a is a signal line for transmitting logic “0” or logic “1” as the data signals Ad, Bd, and Yd. The acknowledge signal line 5b is a signal line for transmitting the acknowledge signals Ak, Bk and Yk.

出力インターフェイス13は、プラス電位の電源線と、マイナス電位の電源線とに接続される。出力インターフェイス13は、出力信号Ydとして論理「1(真)」を伝送する際にはプラスのパルスを、論理「0(偽)」を伝送する際にはマイナスのパルスを出力する。したがって、データ線5aは、データ信号Ad、BdおよびYdとして、論理「1」を伝送するプラスのパルスと、論理「0」を伝送するマイナスのパルスを伝播する。論理と電位との関係は例示に過ぎず、関係を逆にすることは可能である。   The output interface 13 is connected to a positive potential power line and a negative potential power line. The output interface 13 outputs a positive pulse when transmitting a logic “1 (true)” as the output signal Yd, and outputs a negative pulse when transmitting a logic “0 (false)”. Therefore, the data line 5a propagates, as data signals Ad, Bd, and Yd, a positive pulse that transmits logic “1” and a negative pulse that transmits logic “0”. The relationship between logic and potential is only an example, and the relationship can be reversed.

図5に、図2に示した自己同期型のPU10のデータ出力に関する内部動作をフローチャートで示してある。このフローチャートは、データ出力に関し、2線式の自己同期素子90との比較のため、ドントケア通知の機能を除いた動作を示している。ステップ21において、PU10は、入力信号AdまたはBdが受信されるのを待つ。ステップ22において、PU10は、入力信号Adの受信を確認すると、ステップ23aでアクノリッジ信号Akを送信してハンドシェイクする。ステップ24aにおいて、PU10は、入力信号Bdを待つ。入力信号Bdを受信すると、ステップ25aにおいて、PU10は、アクノリッジ信号Bkを送信してハンドシェイクする。一方、ステップ22において、入力信号Bdの受信を確認すると、PU10は、ステップ23bでアクノリッジ信号Bkを送信してハンドシェイクする。さらに、ステップ24bにおいて、PU10は、入力信号Adを待つ。入力信号Adを受信すると、ステップ25bにおいて、PU10は、アクノリッジ信号Akを送信してハンドシェイクする。   FIG. 5 is a flowchart showing an internal operation related to data output of the self-synchronous PU 10 shown in FIG. This flowchart shows the operation of the data output except for the don't care notification function for comparison with the two-wire self-synchronizing element 90. In step 21, the PU 10 waits for the input signal Ad or Bd to be received. In step 22, when the PU 10 confirms reception of the input signal Ad, in step 23a, the PU 10 transmits an acknowledge signal Ak and performs handshaking. In step 24a, the PU 10 waits for the input signal Bd. When receiving the input signal Bd, in step 25a, the PU 10 transmits an acknowledge signal Bk and performs handshaking. On the other hand, when the reception of the input signal Bd is confirmed in Step 22, the PU 10 transmits the acknowledge signal Bk and performs handshaking in Step 23b. Further, in step 24b, the PU 10 waits for the input signal Ad. When receiving the input signal Ad, in step 25b, the PU 10 transmits an acknowledge signal Ak and performs handshaking.

入力信号AdおよびBdを受信すると、ステップ26において、PU10は、出力信号Ydを送信する。ステップ27においてアクノリッジ信号Ykを受信してハンドシェイクは完了する。   When receiving the input signals Ad and Bd, in step 26, the PU 10 transmits the output signal Yd. In step 27, the acknowledge signal Yk is received and the handshake is completed.

このように、1線式のPU10の基本的な動作は、一回の処理で、全ての入出力線で1回ずつ信号を送受信することである。すなわち、PU10においては、全ての入出力線で1回ずつ信号伝送することが、ユーザークロックの1サイクルに相当する。このため、2線式の自己同期設計用の素子とは異なり、同期式素子と同等の、「全ての信号線が1クロックサイクルに1回ずつ値の伝送を行う」という性質を持つ。したがって、PU10を用いたシステムについては、クロック同期型のシステム設計を適用できる。   As described above, the basic operation of the one-wire PU 10 is to transmit and receive signals once for all input / output lines in one process. That is, in the PU 10, one signal transmission through all the input / output lines corresponds to one cycle of the user clock. For this reason, unlike the two-wire self-synchronous design element, it has the property of “all signal lines transmit values once per clock cycle”, which is equivalent to the synchronous element. Therefore, a clock synchronous system design can be applied to a system using the PU 10.

クロック同期型のシステム設計を積極的に実現するため、以下では、PU10の基本動作は、全入力について1回ずつ信号を受け取ってから出力を1回出すものとし、片方の入力だけどんどん先行することは認めないし、出力値を変化させる必要の有無によらず毎回、出力を伝送する。   In order to actively implement a clock synchronous system design, the basic operation of the PU 10 is as follows. The signal is received once for all the inputs and then the output is output once. The output is transmitted every time regardless of whether or not the output value needs to be changed.

本実施形態では、PU10を備えたデバイス(システム)1により、クロック同期式のユーザー回路を、グローバルクロックを使わずに実装できる。このため、クロックスキュー調整やクリティカルパス調整の工数を省略できる。さらに、以下に示すハンドシェイク逆流機能により、クロック同期型と互換という特徴を保持しながら、片側の入力だけで、結果的に処理を進めることができる。さらに、キューイング用のメモリ14を用いることにより、クロック同期型と互換という特徴を保持しながら、処理速度をいっそう改善できる。   In the present embodiment, a clock-synchronized user circuit can be mounted without using a global clock by the device (system) 1 including the PU 10. For this reason, the man-hours for clock skew adjustment and critical path adjustment can be omitted. Furthermore, with the handshake backflow function described below, it is possible to proceed as a result with only one side input while maintaining the characteristics of compatibility with the clock synchronous type. Further, by using the queuing memory 14, the processing speed can be further improved while maintaining the feature of being compatible with the clock synchronous type.

図6は、図2に示した2入力1出力の自己同期型のPU10の内部動作に関するフローチャートである。このフローチャートは、ハンドシェイク逆流機能を含めた内部動作を示す。まず、ステップ31において、PU10は、入力データ線AdおよびBdと、出力アクノリッジ線Ykからのパルスを待つ。   FIG. 6 is a flowchart regarding the internal operation of the self-synchronous PU 10 having two inputs and one output shown in FIG. This flowchart shows the internal operation including the handshake backflow function. First, in step 31, the PU 10 waits for pulses from the input data lines Ad and Bd and the output acknowledge line Yk.

図5に示した典型的な例は、入力データ線Adからデータパルスが供給された場合である。PU10は、入力信号Adを受信したので、ステップ35において、入力アクノリッジ線Akからアクノリッジパルスを出す(アクノリッジ信号Ak)。次に、もう一方のデータ線Bdのパルス(入力信号Bd)を待つ前に、PU10は、ステップ36において、出力信号Ydを決めるために入力信号Bdが不用(ドントケア)か否かを判定する。入力信号Bdが必要なのであれば、PU10は、ステップ39に移る。ステップ39では、出力信号が決定されないので、PU10は、ステップ46で入力信号Adを保持し、入力信号Bdが受信されるのを待つ。次に、ステップ31において、入力信号Bdが受信されると、PU10は、ステップ35でアクノリッジ信号Bkを送信する。ステップ39を介して、PU10は、ステップ41において出力信号Ydを送信する。PU10は、ステップ31に戻ってアクノリッジ信号Ykを待つ。   A typical example shown in FIG. 5 is a case where a data pulse is supplied from the input data line Ad. Since the PU 10 receives the input signal Ad, the PU 10 issues an acknowledge pulse from the input acknowledge line Ak in step 35 (acknowledge signal Ak). Next, before waiting for the pulse (input signal Bd) of the other data line Bd, the PU 10 determines in step 36 whether or not the input signal Bd is unnecessary (don't care) in order to determine the output signal Yd. If the input signal Bd is necessary, the PU 10 proceeds to step 39. In step 39, since the output signal is not determined, the PU 10 holds the input signal Ad in step 46 and waits for the input signal Bd to be received. Next, when the input signal Bd is received in step 31, the PU 10 transmits the acknowledge signal Bk in step 35. Through step 39, the PU 10 transmits an output signal Yd in step 41. The PU 10 returns to step 31 and waits for the acknowledge signal Yk.

一方、ステップ36において、入力Aの値だけで出力Yの値が確定し、入力Bの値がドントケアとなることがある。すなわち、ステップ36において、入力信号Adにより出力信号Ydが確定し、入力信号Bdがドントケアであると、PU10は、ステップ38において、入力信号Bdを待つことなく、アクノリッジ信号Bkを送信する。それと同時に、ステップ41において、PU10は、確定した出力値をパルス信号Ydとして送信する。ステップ38において送信されるアクノリッジパルスBkは、「データパルスBdを受け取った」という受領応答メッセージではなく、「入力Bはドントケアである」という通知メッセージである。   On the other hand, in step 36, the value of the output Y is determined only by the value of the input A, and the value of the input B may be don't care. That is, in step 36, if the output signal Yd is determined by the input signal Ad and the input signal Bd is don't care, the PU 10 transmits the acknowledge signal Bk in step 38 without waiting for the input signal Bd. At the same time, in step 41, the PU 10 transmits the determined output value as the pulse signal Yd. The acknowledge pulse Bk transmitted in step 38 is not a receipt response message that “data pulse Bd has been received” but a notification message that “input B is don't care”.

その後、ステップ31に戻って、PU10は、アクノリッジパルスYkと、データパルスBdを待つ。このデータパルスBdは、入力Bの論理値を示すものではなく、「入力Bの値はドントケアである」という通知に対する了解応答メッセージであり、プラスのパルス信号でもマイナスのパルス信号でもよい。   Thereafter, returning to step 31, the PU 10 waits for an acknowledge pulse Yk and a data pulse Bd. The data pulse Bd does not indicate the logical value of the input B, but is an acknowledgment response message to the notification that “the value of the input B is don't care”, and may be a positive pulse signal or a negative pulse signal.

ステップ31において、入力信号Adよりも先に、入力信号Bdが来た場合のPU10の動作は、上記において、入力信号Adと入力信号Bdが入れ替わっただけのものになる。なお、以降において、入力線AおよびBにより伝播されるパルス信号を入力信号AdおよびBdとして説明し、出力線Yにより伝播されるパルス信号を出力信号Ydとして説明する。アクノリッジ信号Ak、BkおよびYkにおいても同様である。   In step 31, the operation of the PU 10 when the input signal Bd comes before the input signal Ad is just the exchange of the input signal Ad and the input signal Bd in the above. In the following, pulse signals propagated through the input lines A and B will be described as input signals Ad and Bd, and pulse signals propagated through the output line Y will be described as output signals Yd. The same applies to the acknowledge signals Ak, Bk and Yk.

上述の動作から分かるように、ステップ31において、出力信号を確認したことを示すハンドシェイク(プロトコル)を目的としないアクノリッジ信号Ykが来る場合がある。その場合のアクノリッジ信号Ykは「出力Yの値はドントケアである」という、出力側のPU10yからの通知である。そこで、ステップ52において、PU10は、ドントケア了解応答としてダミーの出力信号Ydを送信する。この出力信号Ydのパルス信号はプラスおよびマイナスのどちらでもよい。   As can be seen from the above-described operation, in step 31, there may be an acknowledge signal Yk that is not intended for handshaking (protocol) indicating that the output signal has been confirmed. The acknowledge signal Yk in this case is a notification from the PU 10y on the output side that “the value of the output Y is don't care”. Therefore, in step 52, the PU 10 transmits a dummy output signal Yd as a don't care acknowledgment response. The pulse signal of the output signal Yd may be either plus or minus.

ダミーの出力信号Ydを出すと同時に、PU10は、ステップ57において、未受信の入力信号を供給する予定の入力側のPU10aおよび/または10bに対してアクノリッジ信号Akおよび/またはBkを送信する。例えば、入力信号Adを受信済みであれば、PU10は、PU10bに対してアクノリッジ信号Bkを送信する。入力信号AdおよびBdが未受信であれば、PU10は、PU10aおよび10bに対してアクノリッジ信号AkおよびBkをそれぞれ送信する。これらのアクノリッジ信号は、信号の送出側の処理ユニットに対して「信号AおよびBの値はドントケアである」と通知するメッセージである。そして、ステップ31において、PU10は、対応するドントケア了解応答のダミーの入力信号AdまたはBd(PU10aおよび10bにおいてはダミーの出力信号)を待つ。   Simultaneously with the output of the dummy output signal Yd, the PU 10 transmits an acknowledge signal Ak and / or Bk to the PU 10a and / or 10b on the input side that is to supply an unreceived input signal in step 57. For example, if the input signal Ad has been received, the PU 10 transmits an acknowledge signal Bk to the PU 10b. If the input signals Ad and Bd are not received, the PU 10 transmits the acknowledge signals Ak and Bk to the PUs 10a and 10b, respectively. These acknowledge signals are messages notifying the processing unit on the signal transmission side that “the values of signals A and B are don't care”. In step 31, the PU 10 waits for a dummy input signal Ad or Bd (a dummy output signal in the PUs 10a and 10b) of the corresponding don't care acknowledgment response.

したがって、このPU10は、信号の送受信を確認するハンドシェイクプロトコルとして以下の4つのタイプを持つ。
タイプ1) 入力信号AdまたはBdを受信すると、PU10は、それらの入力信号AdまたはBdの供給元の入力側のPU10aまたは10bに宛ててアクノリッジ信号AkまたはBkを送信する。
タイプ2) PU10は、未受信の入力信号AdまたはBdの供給元の入力側のPU10aまたは10bに宛てて不用通知(ドントケア通知)としてアクノリッジ信号AkまたはBkを送信し、PU10aまたは10bからダミーの入力信号AdまたはBdを受信する。
タイプ3) PU10は、出力信号Ydを送信し、送信先の出力側のPU10yからアクノリッジ信号Ykを受信する。
タイプ4) 出力信号Ydが未送信のときにアクノリッジ信号Ykを受信すると、PU10は、ドントケア通知として認識し、ダミーの出力信号Ydを送信する。
Therefore, the PU 10 has the following four types as handshake protocols for confirming signal transmission / reception.
Type 1) When receiving the input signal Ad or Bd, the PU 10 transmits an acknowledge signal Ak or Bk to the PU 10a or 10b on the input side of the source of the input signal Ad or Bd.
Type 2) The PU 10 transmits an acknowledge signal Ak or Bk as an unnecessary notification (don't care notification) to the PU 10a or 10b on the input side of the supply source of the unreceived input signal Ad or Bd, and a dummy input from the PU 10a or 10b A signal Ad or Bd is received.
Type 3) The PU 10 transmits the output signal Yd, and receives the acknowledge signal Yk from the PU 10y on the output side of the transmission destination.
Type 4) When the acknowledge signal Yk is received when the output signal Yd is not transmitted, the PU 10 recognizes it as a don't care notification and transmits a dummy output signal Yd.

タイプ1およびタイプ3のハンドシェイクは通常のデータパルスの送受信に関するものである。タイプ2およびタイプ4のハンドシェイクは、ドントケア通知をデータパルスとアクノリッジパルスを用いて伝播しようとするためのものである。   Type 1 and type 3 handshakes relate to normal transmission and reception of data pulses. Type 2 and type 4 handshakes are intended to propagate a don't care notification using a data pulse and an acknowledge pulse.

入力側のPU10bが正規の入力信号Bdを出すと同時に、PU10が「入力Bの値はドントケアである」という通知のアクノリッジ信号Bkを出すかもしれない。そのケースでは、送出側のPU10bはアクノリッジ信号Bkを正規の受領応答と勘違いする。受取側のPU10は入力信号Bdをドントケア了解応答と勘違いする。そうやって互いに勘違いしても、ユーザークロック1サイクル分のハンドシェイクが完了したことに変わりは無く、システム1の動作に何ら支障はない。したがって、この勘違いを防ぐために何らかの対策を講じる必要はない。   The PU 10b on the input side may output the normal input signal Bd, and at the same time, the PU 10 may output the acknowledge signal Bk for notification that “the value of the input B is don't care”. In that case, the sending PU 10b misunderstands the acknowledge signal Bk as a normal receipt response. The receiving PU 10 misunderstands the input signal Bd as a don't care acknowledgment response. Even if misunderstood each other in this way, the handshake for one cycle of the user clock is still completed, and there is no problem in the operation of the system 1. Therefore, it is not necessary to take any measures to prevent this misunderstanding.

図6に示したフローチャートをさらに詳しく説明する。ステップ31において、PU10が受信すべき信号を待つ。PU10が受信する信号は、入力信号AdおよびBd、さらに出力信号のアクノリッジ信号Ykである。いずれかの信号を受信すると、PU10は、ステップ32において、その信号により、ある信号の一回分のハンドシェイクが完了したか否かを判断する。ハンドシェイクのタイプは上記の4つである。事前にいずれかの信号が送出されており、その受領確認の信号を受信したのであれば、ユーザークロック1サイクル分のハンドシェイク(タイプ1またはタイプ3)が完了しただけである。したがって、PU10は、ステップ31に戻って次の信号を待つ。   The flowchart shown in FIG. 6 will be described in more detail. In step 31, the PU 10 waits for a signal to be received. The signals received by the PU 10 are the input signals Ad and Bd and the acknowledge signal Yk as an output signal. Upon receiving any signal, the PU 10 determines in step 32 whether or not a handshake for one signal has been completed based on the signal. There are four types of handshaking as described above. If any signal has been sent in advance and the receipt confirmation signal has been received, the handshake (type 1 or type 3) for one cycle of the user clock is completed. Therefore, the PU 10 returns to step 31 and waits for the next signal.

ただし、ステップ32において、ハンドシェイクが完了した場合、ステップ43において、キューイング用のメモリ14に、ハンドシェイクが完了したデータ線に関して送信を待っている信号の有無を確認する。送信を待っている信号があれば、PU10は、ステップ44において、その信号を送出する。例えば、入力信号Adを連続して受信し、1番目および2番目の入力信号Adにより入力信号Bdがドントケアになるとする。この場合、まず、PU10は、1番目の入力信号Adに対応する未入力の入力信号Bdに対してドントケア通知用のアクノリッジ信号Bkを出力し、そのハンドシェイクが終了するまで、2番目の入力信号Adにアクノリッジ信号Akを出さずに、状態を保持しても良い。   However, if the handshake is completed in step 32, in step 43, it is confirmed in the queuing memory 14 whether or not there is a signal waiting for transmission for the data line for which the handshake is completed. If there is a signal waiting for transmission, the PU 10 transmits the signal in step 44. For example, it is assumed that the input signal Ad is continuously received and the input signal Bd becomes don't care by the first and second input signals Ad. In this case, first, the PU 10 outputs the don't care notification acknowledge signal Bk to the uninput input signal Bd corresponding to the first input signal Ad, and the second input signal until the handshake is completed. The state may be held without outputting the acknowledge signal Ak to Ad.

一方、PU10は、2番目の入力信号Adに対してアクノリッジ信号Akを先行して送信しても良い。この場合、PU10は、入力側のPU10bに対する2番目のドントケア通知をキューイング用のメモリ14に格納することが可能である。これにより、PU10aおよびその上流の処理ユニットにおいては処理が進む。この場合、ステップ32において、PU10は、最初のドントケア通知のアクノリッジ信号Bkに対して、入力信号Bdを受信した段階で、ステップ44において、キューイング用のメモリ14に格納された次のドントケア通知のアクノリッジ信号Bkを出力することができる。このドントケア通知により、PU10bおよびその上流側の処理ユニットの処理を進めることができる。   On the other hand, the PU 10 may transmit the acknowledge signal Ak prior to the second input signal Ad. In this case, the PU 10 can store the second don't care notification for the PU 10b on the input side in the memory 14 for queuing. As a result, processing proceeds in the PU 10a and the upstream processing unit. In this case, in step 32, when the PU 10 receives the input signal Bd with respect to the acknowledge signal Bk of the first don't care notification, in step 44, the PU 10 receives the next don't care notification stored in the queuing memory 14. An acknowledge signal Bk can be output. By this don't care notification, the processing of the PU 10b and the processing unit on the upstream side can be advanced.

出力信号Ydにおいても同様である。1番目および2番目の入力信号Adに対して入力信号Bdがドントケアであれば、1番目および2番目の入力信号Adにより1番目および2番目の出力信号Ydが決まる。したがって、1番目の出力信号Ydを送信すると共に、2番目の出力信号Ydをキューイング用のメモリ14に格納する。ステップ32で、PU10は、1番目の出力信号Ydに対するアクノリッジ信号Ykを確認すると、ステップ44において、次の出力信号Ydを送信できる。   The same applies to the output signal Yd. If the input signal Bd is don't care with respect to the first and second input signals Ad, the first and second output signals Yd are determined by the first and second input signals Ad. Therefore, the first output signal Yd is transmitted and the second output signal Yd is stored in the queuing memory 14. When the PU 10 confirms the acknowledge signal Yk for the first output signal Yd in step 32, it can transmit the next output signal Yd in step 44.

また、以下に示すように、信号を受信しながら、処理を進めることができずアクノリッジ信号を送信せずにイベントトークンの状態で保持している信号がありうる。その場合は、ステップ48において次の信号の受信を待たずに、保持している信号の処理を開始する。   In addition, as shown below, there may be a signal that is held in the state of an event token without transmitting an acknowledge signal because the processing cannot proceed while receiving the signal. In that case, in step 48, processing of the held signal is started without waiting for reception of the next signal.

受信した信号によりハンドシェイクが完了しない場合は、新しいサイクルが開始されたことになる。まず、ステップ33において、キューイング用のメモリ14がフル寸前であったり、連続した受信が認められない設定であると、PU10は、確認応答を行ってハンドシェイクすることができない。このため、ステップ49において、PU10は、その受信した信号をイベントトークンとしてキューイング用のメモリ14に格納し、次の信号を待つ。すなわち、メモリ14は、出力信号を生成するために他の入力信号を要する受信済みの入力信号を格納するとともに、その入力信号も含めて、他のイベントトークンとなる信号を格納する。   If the handshake is not complete due to the received signal, a new cycle has started. First, in step 33, if the memory 14 for queuing is about to be full or the setting is such that continuous reception is not permitted, the PU 10 cannot perform handshake by performing an acknowledgment. Therefore, in step 49, the PU 10 stores the received signal as an event token in the queuing memory 14, and waits for the next signal. That is, the memory 14 stores a received input signal that requires another input signal in order to generate an output signal, and stores a signal that becomes another event token including the input signal.

ステップ34において、受信した信号が、入力信号AdまたはBdであればデータ入力である。受信した信号が、アクノリッジ信号Ykであれば、それはドントケア通知である。入力信号であれば、PU10は、ステップ35においてアクノリッジ信号AkまたはBkを出力する。   In step 34, if the received signal is the input signal Ad or Bd, it is a data input. If the received signal is an acknowledge signal Yk, it is a don't care notification. If it is an input signal, the PU 10 outputs an acknowledge signal Ak or Bk in step 35.

ステップ36において、PU10は、受信した入力信号が、他方の入力信号を不用(ドントケア)にするものであるか否かを判断する(第1の要因の判断)。ドントケアの入力信号が発生すると、PU10は、ステップ37において、その未受信の入力信号に対してドントケア通知を送信できるか否か判断する。例えば、上記のように入力信号Adを連続して受信した場合は、PU10は、入力側のPU10bに対してアクノリッジである入力信号Bdを受信するまで2番目のドントケア通知となるアクノリッジ信号Bkを出力できない。したがって、ステップ45において、PU10は、入力側のPU10bに対するドントケア通知をキューイング用のメモリ14に格納し、ステップ44において送信する。ドントケアとなった入力信号の供給元となる入力側の処理ユニットに対してドントケア通知を送信できる状況であれば、PU10は、ステップ38においてアクノリッジ信号を送信する。   In step 36, the PU 10 determines whether or not the received input signal is to make the other input signal unnecessary (don't care) (determination of the first factor). When the don't care input signal is generated, the PU 10 determines in step 37 whether or not the don't care notification can be transmitted for the unreceived input signal. For example, when the input signal Ad is continuously received as described above, the PU 10 outputs the acknowledge signal Bk that becomes the second don't care notification until the input signal Bd that is an acknowledge is received with respect to the PU 10b on the input side. Can not. Therefore, in step 45, the PU 10 stores a don't care notification for the PU 10b on the input side in the queuing memory 14, and transmits it in step 44. If the don't care notification can be sent to the processing unit on the input side that is the source of the input signal that has become don't care, the PU 10 sends an acknowledge signal in step 38.

ステップ39において、PU10は、出力信号Ydが決定されるか否かを判断する。受信した入力信号により、未受信の入力信号がいずれもドントケアでなければ、未受信の入力信号が受信されるまで出力信号Ydは決定されない。このため、ステップ46において、PU10は、入力状態をメモリ14で保存し、次の信号を待つ。なお、未受信である複数の入力信号の一方の入力信号がドントケアとなっても、出力信号Ydが決定されない論理がある。例えば、セレクタである。その場合も、PU10は、入力状態をメモリ14で保存し、次の信号を待つ。   In step 39, the PU 10 determines whether or not the output signal Yd is determined. If none of the unreceived input signals are don't care according to the received input signal, the output signal Yd is not determined until the unreceived input signal is received. Therefore, in step 46, the PU 10 stores the input state in the memory 14 and waits for the next signal. Note that there is logic in which the output signal Yd is not determined even if one input signal of a plurality of unreceived input signals becomes don't care. For example, a selector. Also in this case, the PU 10 stores the input state in the memory 14 and waits for the next signal.

出力信号Ydが決定されるのであれば、PU10は、ステップ40において、出力信号Ydを送信できる状態か否かを確認する。出力できるときは、ステップ41において、PU10は、出力信号Ydを送信する。上述したように、入力信号Adを連続して受信することにより出力信号Ydが連続して決定されたような状態では、ステップ40において、2番目の出力信号Ydの送信が不可と判断される可能性がある。その場合は、ステップ47において、PU10は、送信ができない出力信号Ydをキューイング用のメモリ14に格納し、ステップ44において送信する。   If the output signal Yd is determined, the PU 10 checks in step 40 whether or not the output signal Yd can be transmitted. If it can be output, in step 41, the PU 10 transmits an output signal Yd. As described above, in a state where the output signal Yd is continuously determined by continuously receiving the input signal Ad, it may be determined in step 40 that the second output signal Yd cannot be transmitted. There is sex. In this case, in step 47, the PU 10 stores the output signal Yd that cannot be transmitted in the queuing memory 14, and transmits it in step 44.

なお、ステップ41において、出力信号は、ドントケア通知が通知されていない出力側の処理ユニットにのみ送信される。すなわち、ドントケア通知が通知されている出力側の処理ユニットには出力信号は送信されない。それと共に、後述するステップ54において、キューイング用のメモリに格納されていた、他の出力側の処理ユニットからのドントケア通知は解除される。この機能は、1出力タイプかつ1ファンアウトのPU10およびそれを用いたシステムにおいては省くことができる機能である。一方、この機能は多出力やマルチファンアウトのPUおよびそれらを含むシステムで必要である。例えば、片方の出力側のPUからドントケア通知が来てドントケア了解応答を返した後で、入力信号Adが来て出力信号が決まった場合は、他方の出力側のPUにのみ、正規の出力信号が送信される。   In step 41, the output signal is transmitted only to the processing unit on the output side that is not notified of the don't care notification. That is, the output signal is not transmitted to the processing unit on the output side that is notified of the don't care notification. At the same time, in step 54, which will be described later, the don't care notification from the processing unit on the other output side stored in the queuing memory is canceled. This function is a function that can be omitted in the one-output type and one fan-out PU 10 and a system using the same. On the other hand, this function is necessary for multi-output and multi-fanout PUs and systems including them. For example, when a don't care notification is received from one output side PU and a don't care acknowledgment response is returned, and the input signal Ad comes and the output signal is determined, only the other output side PU has a normal output signal. Is sent.

PU10が正規の出力信号Ydを出すと同時に、出力側のPU10yが「出力Yの値はドントケアである」という通知のアクノリッジ信号Ykを出すかもしれない。そのケースでは、入力信号のときと同様に、互いにハンドシェイクタイプを勘違いすることになる。しかしながら、システムの動作に何ら支障はない。したがって、この勘違いを防ぐために何らかの対策を講じる必要はない。   At the same time as the PU 10 outputs the normal output signal Yd, the PU 10y on the output side may output the acknowledge signal Yk for notification that “the value of the output Y is don't care”. In that case, as in the case of the input signal, the handshake types are mistaken for each other. However, there is no problem in the operation of the system. Therefore, it is not necessary to take any measures to prevent this misunderstanding.

上述したように、ステップ34において、受信した信号が、アクノリッジ信号Ykであれば、それはドントケア通知である(第2の要因の判断)。したがって、ステップ52において、PU10は、アクノリッジ用のダミーの出力信号Ydを出力する。それと同時に、ステップ57において、PU10は、未受信の入力信号の供給元のPU10aおよび/または10bに対して、ドントケア通知となるアクノリッジ信号Akおよび/またはBkを送信する。ドントケア通知を受信して上流(入力側)に転送する処理により、ドントケア通知を上流に伝播あるいは逆流することができる。   As described above, if the received signal is the acknowledge signal Yk in step 34, it is a don't care notification (determination of the second factor). Therefore, in step 52, the PU 10 outputs a dummy output signal Yd for acknowledgement. At the same time, in step 57, the PU 10 transmits an acknowledge signal Ak and / or Bk that is a don't care notification to the PUs 10a and / or 10b that are the sources of the unreceived input signals. By the process of receiving the don't care notification and transferring it to the upstream (input side), the don't care notification can be propagated upstream or backward.

ドントケア通知を逆流するプロセスにおいて、ドントケア通知Ykが連続して到来する可能性がある。図6に示されているステップ55においては、PU10は、ドントケア通知を逆流する入力側の処理ユニット毎に、ドントケア通知を送信できるか否かを判断する。先行するドントケア通知に対するハンドシェイクが完了していない場合は、ステップ56において、PU10は、ドントケア通知をキューイング用のメモリ14に格納する。その場合、ステップ57においては、先行するドントケア通知についてハンドシェイクが完了している処理ユニットに対してのみドントケア通知が送信される。   In the process of flowing back the don't care notification, the don't care notification Yk may continuously arrive. In step 55 shown in FIG. 6, the PU 10 determines whether or not a don't care notification can be transmitted for each input processing unit that flows back the don't care notification. If the handshake for the preceding don't care notification has not been completed, the PU 10 stores the don't care notification in the queuing memory 14 at step 56. In that case, in step 57, the don't care notification is transmitted only to the processing unit for which the handshake has been completed for the preceding don't care notification.

また、図6に示されているステップ53および54は、1出力タイプかつ1ファンアウトのPU10では省くことができる機能である。多出力ないしマルチファンアウトの処理ユニットにおいて、入力信号がドントケアとなるのは、典型的には、全ての出力信号がドントケアになった場合である。したがって、PU10が多出力の処理ユニットの場合は、ステップ53において、上流に対するドントケア通知の送信の可否を判断する。全ての出力側の処理ユニットからドントケア通知が通知されていない場合は、ステップ54において出力側からのドントケア通知をキューイング用のメモリ14に格納し、次の信号を待つ。   Steps 53 and 54 shown in FIG. 6 are functions that can be omitted in the PU 10 of one output type and one fan-out. In a multi-output or multi-fan-out processing unit, the input signal becomes don't care typically when all the output signals become don't care. Therefore, if the PU 10 is a multi-output processing unit, it is determined in step 53 whether or not a don't care notification can be transmitted to the upstream. If the don't care notification is not notified from all the output side processing units, the don't care notification from the output side is stored in the queuing memory 14 in step 54, and the next signal is awaited.

論理部12の論理が2入力ANDであり、入力信号Adが「0(偽)」であれば、他方の入力信号Bdはドントケアとなる。論理部12の論理が2入力ORであり、入力信号Adが「1(真)」であれば、他方の入力信号Bdはドントケアとなる。これらのケースでは、他方の入力信号がドントケアになると共に、出力信号Ydは決定される。したがって、2入力のPU10としては、ドントケアの発生の判断と、出力信号の決定の判断とを1つのステップで行うことができる。   If the logic of the logic unit 12 is a 2-input AND and the input signal Ad is “0 (false)”, the other input signal Bd is don't care. If the logic of the logic unit 12 is 2-input OR and the input signal Ad is “1 (true)”, the other input signal Bd is don't care. In these cases, the other input signal becomes don't care and the output signal Yd is determined. Therefore, the two-input PU 10 can perform determination of occurrence of don't care and determination of determination of an output signal in one step.

これらのPU10の内部動作のうち、ハンドシェイクに関する制御はハンドシェイク機能17が行う。また、ステップ36から38において、ドントケア通知を発生するための制御は第1の判断機能18が行う。さらに、ステップ52から57におけるドントケア通知を逆流するための制御は第2の判断機能19が行なう。   Of these internal operations of the PU 10, the handshake function 17 performs control related to handshaking. In steps 36 to 38, the first determination function 18 performs control for generating a don't care notification. Further, the second determination function 19 performs control for reversing the don't care notification in steps 52 to 57.

2入力1出力のPU10を複数組み合わせることにより、多入力の論理を実現する処理ユニットを構成することができる。あるいは、処理ユニットとして多入力のものを用意することも可能である。例えば、論理部12の論理が2to1セレクタであり、入力信号としてセレクタ制御信号を含めて3つの信号が入力される処理ユニットを構成できる。このケースでは、セレクタ制御信号が入力信号Adを選択すれば入力信号Bdはドントケアになる。しかしながら、出力信号Ydは入力信号Adを受信するまで決まらない。したがって、ステップ39を設けておくことが望ましい。   By combining a plurality of 2-input 1-output PUs 10, a processing unit that realizes multi-input logic can be configured. Alternatively, it is possible to prepare a multi-input processing unit. For example, it is possible to configure a processing unit in which the logic of the logic unit 12 is a 2to1 selector and three signals including a selector control signal are input as input signals. In this case, if the selector control signal selects the input signal Ad, the input signal Bd becomes don't care. However, the output signal Yd is not determined until the input signal Ad is received. Therefore, it is desirable to provide step 39.

論理部12の論理が2入力XORであれば、両方の入力信号AdおよびBdが決まらないと出力信号Ydは決まらない。したがって、一方の入力信号により他方の入力信号はドントケアにならない。このため、PU10の内部動作の内、第1の判断機能18によるステップ36から38の処理を省くことが可能であり、ドントケア通知に関しては、ステップ52以降の逆流させる処理が主となる。   If the logic of the logic unit 12 is 2-input XOR, the output signal Yd is not determined unless both the input signals Ad and Bd are determined. Therefore, the other input signal does not become don't care by one input signal. For this reason, it is possible to omit the processing of steps 36 to 38 by the first determination function 18 in the internal operation of the PU 10, and the don't care notification mainly includes the processing of backflow after step 52.

論理部12がNOTのときは、1入力なのでPU10の一方の入力のみが利用される。このため、内部処理のフローはさらに単純となる。すなわち、PU10の内部動作の内、ステップ36から38の処理を省くことが可能である。ドントケア通知に関しては、ステップ52以降の逆流させる処理だけになる。また、NOTゲートを自己同期型の素子として実装する場合は、PU10を採用して、このフローチャートを律儀に実行する回路を作るまでもない。   When the logic unit 12 is NOT, since only one input is used, only one input of the PU 10 is used. For this reason, the flow of internal processing is further simplified. That is, it is possible to omit steps 36 to 38 from the internal operation of the PU 10. With respect to the don't care notification, only the backflow processing after step 52 is performed. Further, when the NOT gate is mounted as a self-synchronous element, it is not necessary to adopt the PU 10 and make a circuit that executes this flowchart gracefully.

図7は、NOTゲートを自己同期型の素子として実装する異なる例である。この図に示すように、NOTゲートとしては、プラスパルスをマイナスパルスに、マイナスパルスをプラスパルスに変換する電圧インバータ62を備えた素子61を実装するだけでもよい。ただし、電圧反転処理に時間がかかる場合は、図6のフローチャートを律儀に実行するほうが、Akアクノリッジパルスを早めに返すことができる分だけシステム全体の性能にとって有利になる。   FIG. 7 is a different example of mounting a NOT gate as a self-synchronous element. As shown in this figure, as the NOT gate, an element 61 including a voltage inverter 62 that converts a plus pulse into a minus pulse and a minus pulse into a plus pulse may be mounted. However, when the voltage reversal process takes time, it is advantageous for the performance of the entire system that the Ak acknowledge pulse can be returned earlier if the flowchart of FIG.

自己同期型のシステムにおける信号分岐(マルチファンアウト)は、通常の同期式回路とは異なる。同期式回路の場合、図8(a)のように、単純に線を接続するだけで信号を分岐できる。自己同期式の素子においては、図8(b)のように、論理上の信号は物理的にはデータ線とアクノリッジ線のペアであり、単純に線をつなぐだけでは論理上の信号を分岐することはできない。1つの方法は、信号発生源のPU10にステップ53〜54の機能を搭載してマルチファンアウト対応することである。他の方法は、信号分岐用の処理ユニット63を接続することである。分岐用の処理ユニット63は論理部63cを持つ。論理部63cの内部動作は、図6に示したフローチャートにおいて、ステップ52以降の、特に、多出力用として説明した処理を含み、ステップ36からステップ39の入力信号によりドントケアの発生を判断する処理を含まないものとなる。   Signal branching (multi-fanout) in a self-synchronous system is different from a normal synchronous circuit. In the case of a synchronous circuit, as shown in FIG. 8A, a signal can be branched by simply connecting lines. In the self-synchronous device, as shown in FIG. 8B, the logical signal is physically a pair of a data line and an acknowledge line, and the logical signal is branched by simply connecting the lines. It is not possible. One method is to install the functions of steps 53 to 54 in the PU 10 of the signal generation source to support multi-fanout. Another method is to connect a processing unit 63 for signal branching. The branch processing unit 63 has a logic unit 63c. The internal operation of the logic unit 63c includes the processing described in the flowchart shown in FIG. 6 after step 52, particularly for multi-output, and processing for determining the occurrence of don't care based on the input signal from step 36 to step 39. Does not include.

1入力1出力(1ファンアウト)のバッファ回路は、論理上は何の働きも持たない。しかしながら、バッファ回路は、現実の実装においては、同期式回路の信号分岐や長距離信号伝送の補助のために用いられる。自己同期型のシステム1においては、このようなバッファはもっぱら長距離信号伝送の補助のために用いられる。1入力1出力のバッファ用に、2入力1出力のPU10を割り当てることも可能である。あるいは、図9に示すように、バッファ回路専用の処理ユニット64を実装することができる。1入力1出力(1ファンアウト)のバッファ用の処理ユニット64は、論理部64cを持つ。論理部64cの動作は、図6に示したフローチャートにおいて、ステップ36からステップ39の入力信号によりドントケアの発生を判断する処理を含まず、ステップ52以降のドントケア通知を逆流する処理(マルチファンアウト用の処理を含まない)を含む。   A buffer circuit with one input and one output (one fan-out) has no logical function. However, the buffer circuit is used for assisting signal branching and long-distance signal transmission in a synchronous circuit in an actual implementation. In the self-synchronous system 1, such a buffer is used exclusively to assist in long-distance signal transmission. It is also possible to assign a PU10 with two inputs and one output for a buffer with one input and one output. Alternatively, as shown in FIG. 9, a processing unit 64 dedicated to the buffer circuit can be mounted. The processing unit 64 for a buffer with one input and one output (one fan-out) has a logic unit 64c. The operation of the logic unit 64c does not include the process of determining the occurrence of don't care based on the input signal from step 36 to step 39 in the flowchart shown in FIG. Is not included).

バッファ用の処理ユニット64は、入力信号Adが到着した時点でアクノリッジ信号Akを返し、ドントケア通知(アクノリッジ信号)Ykが到着した時点でドントケア了解応答(出力信号)Ydを返す。これにより、バッファ無しで長距離ハンドシェイクするのに比べて、ハンドシェイクのターンアラウンドタイムを削減でき、システムが高速に動作するようになる。   The buffer processing unit 64 returns an acknowledge signal Ak when the input signal Ad arrives, and returns a don't care acknowledgment response (output signal) Yd when the don't care notification (acknowledge signal) Yk arrives. As a result, the handshake turnaround time can be reduced and the system can operate at a higher speed than when performing a long distance handshake without a buffer.

図6に示した自己同期式の処理ユニットの制御方法は、他の論理を実装する回路、例えば、多入力ANDゲートやNANDゲートやAND−OR複合ゲート等にも適用可能である。したがって、このPU10は、再構成機能16により、論理部2の論理をフレキシブルに変更した場合であっても、自己同期式のサービスを提供できる。さらに、PU10は、入力インターフェイス11および出力インターフェイス13を介して入力側および出力側の処理ユニットの接続を変更でき、システム1としてはルーチングマトリクス5を再構成できる。このため、非同期型のシステム1は、様々な回路あるいはデータパスをフレキシブルに実装しでき、データパスをダイナミックに再構成することにより様々なアプリケーションを実行できる。   The self-synchronous processing unit control method shown in FIG. 6 is also applicable to circuits that implement other logic, such as multi-input AND gates, NAND gates, and AND-OR composite gates. Therefore, the PU 10 can provide a self-synchronous service even when the logic of the logic unit 2 is flexibly changed by the reconfiguration function 16. Furthermore, the PU 10 can change the connection between the processing units on the input side and the output side via the input interface 11 and the output interface 13, and the system 1 can reconfigure the routing matrix 5. For this reason, the asynchronous system 1 can flexibly mount various circuits or data paths, and can execute various applications by dynamically reconfiguring the data paths.

多数のPU10を含むシステム1の一例は、PU10の論理を変更することにより、多段の組み合わせ論理回路を実装できるものである。このシステムにおいては、論理回路を評価する際に、入力段から出力段に向かって「データ−>アクノリッジ」というハンドシェイクが行われていくだけでなく、出力段から入力段に向かって「ドントケア通知→了解応答」というふうにハンドシェイクを逆流させることもできる。このため、従来のセルフタイムド設計実装方式の弱点であったハンドシェイクオーバヘッド問題を低減することができる。   An example of the system 1 including a large number of PUs 10 can implement a multi-stage combinational logic circuit by changing the logic of the PUs 10. In this system, when evaluating a logic circuit, not only a handshake “data → acknowledge” is performed from the input stage to the output stage, but also “don't care notification → The handshake can also be reversed as “acknowledgment response”. For this reason, the handshake overhead problem which was the weak point of the conventional self-timed design mounting system can be reduced.

この設計手法は、デバイス製造者に対して、「パルスが伝送途中で消失したり増殖したりしない」という保証だけでなく、「2つのパルスが伝送途中で入れ換わったり合体したりしない」という保証をも要求する。なぜなら、ある処理ユニットが、あるクロックサイクル用にドントケア了解応答用のダミー出力信号Ydのデータパルスを出した後、その信号Ydが出力側のPU10yに届く前に、PU10が次のクロックサイクル用の正規の出力信号Ydのデータパルスを出す可能性があるからである。その状況では、出力信号Ydを伝送するデータ線上に2つのパルスが同時に存在することになり、それらのパルスが伝送途中で入れ換わったり合体したりすると、受取側のPU10yは誤動作してしまう。したがって、誤動作を防ぐためには、パルスが伝送途中で入れ換わったり合体したりしないという保証が必要である。しかしながら、「パルスが伝送途中で入れ換わったり合体したりしないことを保証せよ」という要求はきわめて合理的であり、デバイス製造者にとって特に負担になるような制約ではない。このシステム1においては、そのような制約を考慮した回路設計を行うだけで、ハンドシェイク逆流によるオーバヘッド低減を達成できる。   This design approach not only guarantees that device pulses will not disappear or multiply during transmission, but also guarantees that two pulses will not interchange or merge during transmission. Also request. This is because, after a certain processing unit issues a data pulse of a dummy output signal Yd for don't care acknowledgment response for a certain clock cycle, and before the signal Yd reaches the PU 10y on the output side, the PU 10 This is because the data pulse of the normal output signal Yd may be output. In this situation, two pulses exist simultaneously on the data line that transmits the output signal Yd, and if these pulses are interchanged or merged during transmission, the receiving PU 10y malfunctions. Therefore, in order to prevent malfunctions, it is necessary to ensure that pulses are not interchanged or merged during transmission. However, the requirement to “guarantee that pulses are not interchanged or merged during transmission” is very reasonable and is not a constraint that is particularly burdensome for device manufacturers. In this system 1, overhead reduction by handshake backflow can be achieved only by designing a circuit in consideration of such restrictions.

また、上記のPU10を用いたシステム1では、データ線が1線(1本)で構成できるように、データ線をプラス電源とマイナス電源の2電源仕様として説明している。図3に示した2線式の自己同期素子、すなわち、単一電源のデータ線2本1組という仕様の処理ユニットを用いたシステムでも、「ハンドシェイク逆流機能付き同期式回路実装用セルフタイムド素子」を構築することは可能である。ただし、その場合、デバイス製造者に対して、上記の保証を要求した上さらに、「2本1組のデータ線に相次いで送り出されたパルスは、受信側素子に同じ順序で届く」という保証も要求する。   Further, in the system 1 using the PU 10 described above, the data line is described as a dual power supply specification of a positive power source and a negative power source so that the data line can be configured by one line (one). The system using the 2-wire self-synchronous element shown in FIG. 3, that is, the processing unit having a specification of two single-power-supply data lines, can be used as a “self-timed device for mounting a synchronous circuit with a handshake backflow function. It is possible to construct “elements”. However, in that case, the device manufacturer is requested to have the above-mentioned guarantee, and there is also a guarantee that “pulses sent one after another to the data line in one set reach the receiving side element in the same order”. Request.

たとえば、出力信号Ydを、信号線Y0およびY1の2本1組の単一電源データ線で伝送する場合を考える。送出側の素子があるクロックサイクル用にドントケア了解応答用のダミーの出力信号としてパルス信号Y0を出した後、それが受取側の素子に届く前に、送出側の素子が次のクロックサイクル用に正規のパルス信号Y1を出す可能性がある。パルス信号Y0を伝送するデータ線より、パルス信号Y1を伝送するデータ線のほうが極端に短くて、後出しのパルス信号Y1の方が先に受取側素子に届いてしまう可能性がある。そのケースでは、受取側の素子はパルス信号Y1をドントケア了解応答用のダミーの出力信号とみなし、続いて届くパルス信号Y0の方を次のクロックサイクル用の正規データパルスとみなす。このため、システムは誤動作する。このような誤動作を防ぐためには、後出しパルスが先に到着することのないよう、信号Y0を伝送するデータ線と、信号Y1を伝送するデータ線の配線長や負荷容量を注意深くそろえて製造する必要がある。   For example, consider a case where the output signal Yd is transmitted through a single power source data line of two signal lines Y0 and Y1. After sending the pulse signal Y0 as a dummy output signal for don't care acknowledgment response for a certain clock cycle on the sending side, before sending it to the receiving side element, the sending side element is used for the next clock cycle. There is a possibility that a normal pulse signal Y1 is output. There is a possibility that the data line for transmitting the pulse signal Y1 is extremely shorter than the data line for transmitting the pulse signal Y0, and the later-described pulse signal Y1 reaches the receiving side element first. In that case, the receiving side element regards the pulse signal Y1 as a dummy output signal for a don't care acknowledgment response, and regards the subsequently arrived pulse signal Y0 as a normal data pulse for the next clock cycle. For this reason, the system malfunctions. In order to prevent such a malfunction, manufacturing is performed by carefully aligning the wiring length and load capacity of the data line transmitting the signal Y0 and the data line transmitting the signal Y1 so that the subsequent pulse does not arrive first. There is a need.

本例のように、データ線が2電源仕様であれば、出力信号Ydは1線で伝送される。このため、上記のような設計あるいは製造上の問題はなく、デバイス製造者に対する要求を緩和できる。デバイスの種類あるいは製造者により、2電源仕様の方が、データ線の配線長や負荷容量を注意深くそろえて製造することよりも種々の負担が大きいケースでは、単一電源データ線2本1組方式を採用すればよい。   As in this example, if the data line has a two power supply specification, the output signal Yd is transmitted by one line. For this reason, there is no design or manufacturing problem as described above, and the demands on the device manufacturer can be relaxed. Depending on the type of device or manufacturer, in the case of dual power supply specifications, when the burden on the data line is greater than the careful manufacture of data line lengths and load capacities, a single power supply data line, one set system Should be adopted.

さらに、上記のPU10を採用したシステム1においては、データ線やアクノリッジ線で信号をやりとりするために、パルス(パルス信号)を用いている。これに対し、公知の4フェーズハンドシェイクや2フェーズ(トランジションシグナリング)ハンドシェイクを、ベースのハンドシェイクとして用いて、「ハンドシェイク逆流機能付き同期式回路実装用セルフタイムド素子」を構築することは可能である。ただし、4フェーズハンドシェイクは、2フェーズハンドシェイクやパルス方式と比べてハンドシェイクターンアラウンド時間が長く、性能面で好ましいとはいえない。一方、2フェーズハンドシェイクは、2電源(データ線1本)仕様で実現しようとしたときにやや強引なタイミング保証・タイミング調整が必要になる。したがって、ハンドシェイク逆流機能付きセルフタイムド素子を最小限のタイミング制約でわかりやすく破綻なく説明するには、上述した2電源仕様のパルスハンドシェイク方式が適している。   Further, in the system 1 adopting the PU 10 described above, pulses (pulse signals) are used for exchanging signals through data lines and acknowledge lines. On the other hand, using a known 4-phase handshake or a 2-phase (transition signaling) handshake as a base handshake, it is possible to construct a “self-timed element for mounting a synchronous circuit with a handshake backflow function”. Is possible. However, the 4-phase handshake has a longer handshake turnaround time than the 2-phase handshake and the pulse method, and is not preferable in terms of performance. On the other hand, the two-phase handshake requires slightly forcible timing guarantee and timing adjustment when trying to realize it with the specification of two power sources (one data line). Therefore, in order to describe the self-timed element with a handshake backflow function in an easy-to-understand manner with a minimum timing constraint without failure, the above-described pulsed handshake method of the two power supply specification is suitable.

さらに、PU10では、受信した各信号による処理を可能な限り進めるようにしている。その1つの方法は、図6のステップ33、48および49に示したように、連続して信号を受信したときに、その事実をイベントトークンとして記憶するが、確認応答のアクノリッジ信号を送信しないことである。   Furthermore, the PU 10 is configured to proceed as much as possible with the received signals. One method is to store the fact as an event token when a signal is received continuously, as shown in steps 33, 48 and 49 of FIG. 6, but not to send an acknowledgment signal. It is.

たとえば、入力側のPU10aからの入力信号Adにより出力信号Ydが決まり、入力側のPU10bに対してドントケアを通知するアクノリッジ信号Bkを送信し、出力側のPU10yに対して出力信号Ydを送信すると、PU10は、了解応答の出力信号Bdまたはアクノリッジ信号Ykを待つ状態になる。このとき、さらに、入力側のPU10aから入力信号Adを受信すると、入力信号Adが来たという事実をイベントトークンとしていったんメモリ14に記憶する。次に、PU10が、所望の入力信号Bdおよびアクノリッジ信号Ykを受信してステップ32におけるハンドシェイクが完了する。このとき、すでに、次の入力信号Adのイベントトークンが存在するので、PU10は、直ちにステップ34に移る。それと同時にトークンを消す。このイベントトークンは、信号Ad、BdおよびYkそれぞれにつき最大1個でよい。データ受領のアクノリッジ信号またはドントケア了解の応答を返さない限り、処理されない信号がさらに繰り返し受信されることはないからである。   For example, when the output signal Yd is determined by the input signal Ad from the PU 10a on the input side, the acknowledge signal Bk for notifying the don't care is transmitted to the PU 10b on the input side, and the output signal Yd is transmitted to the PU 10y on the output side. The PU 10 waits for the acknowledge response output signal Bd or the acknowledge signal Yk. At this time, when the input signal Ad is further received from the PU 10a on the input side, the fact that the input signal Ad has come is temporarily stored in the memory 14 as an event token. Next, the PU 10 receives the desired input signal Bd and the acknowledge signal Yk, and the handshake in step 32 is completed. At this time, since the event token of the next input signal Ad already exists, the PU 10 immediately proceeds to step 34. At the same time, erase the token. There may be at most one event token for each of the signals Ad, Bd and Yk. This is because an unprocessed signal will not be repeatedly received unless an acknowledge signal for data reception or a response to acknowledge don't care is returned.

PU10では、受信した各信号による処理を進める2つの目の方策として、キューイング用のメモリ14を設けている。PU10は、キューイング用メモリ14を利用できる限り、受信した信号に対して了解応答を送信する。すなわち、ステップ33においては、例えば、入力信号Adに対する受領アクノリッジ信号Akを返さないことにより、「アクノリッジを返してないから再び入力Adが来ることはあり得ない」のを利用して、他の信号、例えばアクノリッジ信号Ykを待つ。これに対し、入力信号Adを送出したPU10aは、受領アクノリッジ信号Akを待っている。したがって、アクノリッジ信号Ykの受信を待たずに、アクノリッジ信号Akを返すことにより、送出側のPU10aの処理を進めさせることができる。一方、受信した入力信号Adにより出力されることになる信号は、ステップ45または47においてキューイング用のメモリ14にストアされ、送信待ちになる。   In the PU 10, a queuing memory 14 is provided as a second measure for proceeding with processing based on each received signal. As long as the queuing memory 14 can be used, the PU 10 transmits an acknowledgment response to the received signal. That is, in step 33, for example, by not returning the receipt acknowledge signal Ak with respect to the input signal Ad, by utilizing the fact that the input Ad cannot come again because the acknowledge is not returned, other signals are used. For example, it waits for an acknowledge signal Yk. On the other hand, the PU 10a that has transmitted the input signal Ad waits for a reception acknowledge signal Ak. Therefore, the process of the PU 10a on the sending side can be advanced by returning the acknowledge signal Ak without waiting for the receipt of the acknowledge signal Yk. On the other hand, a signal to be output in response to the received input signal Ad is stored in the queuing memory 14 in step 45 or 47 and waits for transmission.

また、ドントケア通知のアクノリッジ信号Ykを続けて受信するような場合を考える。具体的には、最初のアクノリッジ信号Ykに対して、ドントケア了解応答として出力信号Ydが送信され、その後の2番目のドントケア通知のアクノリッジ信号Ykに対しては、入力側のドントケア了解応答待ちになる。これに対し、2番目のアクノリッジ信号Ykに対しても、ドントケア了解応答として出力信号Ydを送信することにより、出力側のPU10yの処理を進めさせることができる。ただし、ステップ55および56において、先行するドントケア通知に対して了解応答が得られていない処理ユニットに対するドントケア通知は、キューイング用のメモリ14に格納され、送信待ちになる。   Also, consider a case in which the don't care notification acknowledge signal Yk is continuously received. Specifically, the output signal Yd is transmitted as a don't care acknowledgment response to the first acknowledge signal Yk, and the input side don't care acknowledgment response is waited for the second don't care notification acknowledge signal Yk. . On the other hand, the processing of the output side PU 10y can be advanced by transmitting the output signal Yd as the don't care acknowledgment response also for the second acknowledge signal Yk. However, in Steps 55 and 56, the don't care notification for the processing unit for which no acknowledgment response has been obtained for the preceding don't care notification is stored in the queuing memory 14 and waits for transmission.

図10〜図13は、図9に示したバッファ回路のPU64において、入力信号および出力信号が送受信されるタイミングを示している。図10は、PU64が、入力信号Adを4回受信して、その都度、出力信号Ydとして送信するという動作を4回繰り返したタイムチャートである。   10 to 13 show timings at which an input signal and an output signal are transmitted and received in the PU 64 of the buffer circuit shown in FIG. FIG. 10 is a time chart in which the operation of the PU 64 receiving the input signal Ad four times and transmitting it as the output signal Yd each time is repeated four times.

図11において、PU64は、最初のデータは図10と同じ素直なタイミングで処理する。PU64が2番目のデータを処理する際は、2番目のアクノリッジ信号Ykより3番目の入力信号Adを先に受け取った。このケースでは、アクノリッジ信号を先行して送信しない設定としている。このため、ステップ49において、PU64はイベントとしてキューイングし、2番目のアクノリッジ信号Ykパルスを待つ。2番目のアクノリッジ信号Ykを受信すると、ステップ32において、PU64はそれを受け取り次第、ステップ48からステップ35およびステップ39に移行し、3番目のアクノリッジ信号Akと3番目の出力信号Ydを送信する。次の3番目のアクノリッジ信号Ykについての動作も同様である。4番目のアクノリッジ信号Ykは、出力信号Ydに続いて受信したので、PU64はイベントとしてキューイングせずに素直なタイミングで処理する。   In FIG. 11, the PU 64 processes the first data at the same straightforward timing as in FIG. When the PU 64 processes the second data, the third input signal Ad is received first from the second acknowledge signal Yk. In this case, it is set not to transmit the acknowledge signal in advance. Therefore, in step 49, the PU 64 queues as an event and waits for the second acknowledge signal Yk pulse. When receiving the second acknowledge signal Yk, in step 32, as soon as the PU 64 receives it, the process proceeds from step 48 to step 35 and step 39 to transmit the third acknowledge signal Ak and the third output signal Yd. The operation for the next third acknowledge signal Yk is the same. Since the fourth acknowledge signal Yk is received following the output signal Yd, the PU 64 does not queue as an event and processes it at a gentle timing.

図12において、PU64は最初のデータは図10と同じ素直なタイミングで処理する。PU64が2番目のデータを処理する際は、2番目のアクノリッジ信号Ykより3番目の入力信号Adを先に受け取った。このケースでは、2段階のキューイングとなっており、PU64は1番目の信号に係る処理の途上で受信した2番目の信号にはアクノリッジ信号を先行して送信し、3番目の信号はイベントとしてキューイングするように設定されている。このため、PU64は、ステップ47の待ちに入り、次に、2番目のアクノリッジ信号Ykを受け取ったステップ32からステップ44に移行し、3番目の出力信号Ydを送信する。次に、PU64は、3番目のアクノリッジ信号Ykを受信する前に、上記と同様に4番目の入力信号Adを受信するので、上記と同様に動作する。PU64は、4番目のアクノリッジ信号Ykを受信する前に、5番目の入力信号Adを受信し、さらにそれに続いて6番目の入力信号Adを受信する。このため、PU64は、5番目の入力信号Adに対しては5番目のアクノリッジ信号Akを送信すると共に、ステップ47の待ちに入る。PU64は、6番目の入力信号Adに対してはアクノリッジ信号Akを送信せずに、ステップ49の待ちに入る。その後、PU64は、4番目のアクノリッジ信号Ykを受信すると、ステップ44により5番目の出力信号Ydを送信する。それと共に、PU64は、ステップ48からステップ35に移行して、6番目の入力信号に対するアクノリッジ信号Akを送信する。   In FIG. 12, the PU 64 processes the first data at the same straightforward timing as in FIG. When the PU 64 processes the second data, the third input signal Ad is received first from the second acknowledge signal Yk. In this case, the queuing is performed in two stages, and the PU 64 transmits an acknowledge signal in advance to the second signal received during the processing related to the first signal, and the third signal is used as an event. It is set to queue. Therefore, the PU 64 waits for step 47, and then proceeds to step 44 from step 32 where the second acknowledge signal Yk is received, and transmits the third output signal Yd. Next, since the PU 64 receives the fourth input signal Ad in the same manner as described above before receiving the third acknowledge signal Yk, the PU 64 operates in the same manner as described above. The PU 64 receives the fifth input signal Ad before receiving the fourth acknowledge signal Yk, and subsequently receives the sixth input signal Ad. For this reason, the PU 64 transmits the fifth acknowledge signal Ak to the fifth input signal Ad, and waits for step 47. The PU 64 does not transmit the acknowledge signal Ak with respect to the sixth input signal Ad, and enters the wait of step 49. Thereafter, when the PU 64 receives the fourth acknowledge signal Yk, the PU 64 transmits the fifth output signal Yd in step 44. At the same time, the PU 64 proceeds from step 48 to step 35 and transmits an acknowledge signal Ak for the sixth input signal.

その後、PU64は、5番目のアクノリッジ信号Ykの前に、7番目の入力信号Adを受信した。このため、PU64は、ステップ49の待ちに入り、5番目のアクノリッジ信号Ykを待って、6番目の出力信号Ydと7番目のアクノリッジ信号Akを送信し、7番目の出力信号Ydは、ステップ47の待ちに入る。次に、PU64は、6番目のアクノリッジ信号Ykを待って、ステップ44で7番目の出力信号Ydを送信し、7番目のアクノリッジ信号Ykを受信する。このように、PU64は、2番目のアクノリッジ信号Akを返した後で、3番目の入力信号Adをすぐに受信した場合でも、論理を破綻させることなく処理することができる。このイベントトークンのキューイング処理は、自己同期型の回路設計手法において、スラックなどと呼ばれている技術を参照できる。   Thereafter, the PU 64 receives the seventh input signal Ad before the fifth acknowledge signal Yk. Therefore, the PU 64 waits for step 49, waits for the fifth acknowledge signal Yk, transmits the sixth output signal Yd and the seventh acknowledge signal Ak, and the seventh output signal Yd Wait for. Next, the PU 64 waits for the sixth acknowledge signal Yk, transmits the seventh output signal Yd in step 44, and receives the seventh acknowledge signal Yk. Thus, even when the PU 64 receives the third input signal Ad immediately after returning the second acknowledge signal Ak, the PU 64 can perform processing without breaking the logic. The event token queuing process can refer to a technique called slack in a self-synchronous circuit design method.

図13は、ドントケア通知を逆流させる状態を示す図である。この図13は、図12と同じキューイングの条件で、出力側のPU10yが先行して動作する。したがって、図13と図12は、上下が反転した状態となり、図12の説明のステップ35がステップ52にとなり、ステップ47がステップ56となる以外は同様に説明できる。   FIG. 13 is a diagram illustrating a state in which the don't care notification is reversed. In FIG. 13, the PU 10y on the output side operates ahead under the same queuing conditions as in FIG. Accordingly, FIGS. 13 and 12 can be described in the same manner except that the upper and lower sides are inverted, step 35 in FIG. 12 is changed to step 52, and step 47 is changed to step 56.

イベントトークンの処理は重要である。アクノリッジ信号Akや出力信号Ydを出す処理も、微小とはいえ所定の時間がかかり、その微小な期間に入力信号Adやアクノリッジ信号Ykを受信することがあり得るからである。そのときは、それらの信号をイベントトークンとしてメモリ14にいったん記憶しておき、次のステップにて直ちに処理すべきである。また、入力信号Adとアクノリッジ信号Ykを同時に受信した場合も、片方だけ受信してもう一方を無視することはできない。したがって、直ぐには処理できない一方の信号はイベントトークンとして扱う。この場合、どちらを先に受信しても、残ったイベントトークンを元に次のステップを直ちに処理すれば、同じ結果が得られる。イベントトークンは1入力につき最低1個サポートすれば良い。しかしながら、アクノリッジ信号を返して、2個以上をキューイングすればスラックに対応できてさらに高性能なPU10およびシステム1を提供できる。   Event token processing is important. This is because the process of outputting the acknowledge signal Ak and the output signal Yd also takes a predetermined time although it is minute, and the input signal Ad and the acknowledge signal Yk may be received during the minute period. In that case, those signals should be temporarily stored in the memory 14 as event tokens and immediately processed in the next step. Even when the input signal Ad and the acknowledge signal Yk are received simultaneously, only one of them can be received and the other cannot be ignored. Therefore, one signal that cannot be processed immediately is treated as an event token. In this case, regardless of which one is received first, the same result can be obtained by immediately processing the next step based on the remaining event token. It is only necessary to support at least one event token per input. However, if an acknowledge signal is returned and two or more cues are queued, it is possible to cope with slack and provide a higher-performance PU 10 and system 1.

以上は、組み合わせ論理を実装するための自己同期式の処理ユニットである。したがって、フリップフロップを実装するための自己同期式の素子を提供することにより、同期式のユーザー回路を、自己同期式のシステムに実装できる。フリップフロップは、バッファ回路と同様の1入力1出力の処理ユニットにおいて、出力信号Ydを初期値0で送信することからスタートして、出力信号Yd→アクノリッジ信号Ykのハンドシェイクと、入力信号Ad→アクノリッジ信号Akのハンドシェイクを1回ずつ行う。これにより、アクノリッジ信号Ykにより、ラッチされた入力信号を出力するという同期式ユーザー回路の1クロックサイクルに相当するフリップフロップの動作を実現できる。   The above is a self-synchronous processing unit for implementing combinational logic. Therefore, by providing a self-synchronous element for mounting a flip-flop, a synchronous user circuit can be implemented in a self-synchronous system. The flip-flop starts from transmitting the output signal Yd with an initial value 0 in a 1-input 1-output processing unit similar to the buffer circuit, and then performs a handshake of the output signal Yd → acknowledge signal Yk and the input signal Ad → The handshake of the acknowledge signal Ak is performed once. Thereby, the operation of the flip-flop corresponding to one clock cycle of the synchronous user circuit that outputs the latched input signal by the acknowledge signal Yk can be realized.

図14は、フリップフロップ(FF)の基本的な内部動作のフローチャートである。図15は、逆流ハンドシェイクに対応したフリップフロップ(FF)の内部動作のフローチャートである。まず、基本動作は、上述したように、ステップ71において、FFは、出力信号Ydを初期値0で送信することからスタートし、ステップ72において、入力信号Adまたは出力側のアクノリッジ信号Ykを待つ。ステップ73において、FFは、出力アクノリッジ信号Ykより先に、入力信号Adを受信すると、ステップ74において入力アクノリッジ信号Akを送信する。ステップ75で、FFは、出力アクノリッジ信号Ykを待ち、ステップ76において出力信号Ydを送信する。一方、入力信号Adより先に出力アクノリッジ信号Ykを受信すると、FFは、ステップ77において入力信号Adを待つ。ステップ78において、FFは、出力信号Ydを送信すると共に、入力アクノリッジ信号Akを送信する。   FIG. 14 is a flowchart of the basic internal operation of the flip-flop (FF). FIG. 15 is a flowchart of the internal operation of the flip-flop (FF) corresponding to the backflow handshake. First, as described above, in step 71, the FF starts from transmitting the output signal Yd with the initial value 0, and in step 72, the basic operation waits for the input signal Ad or the acknowledge signal Yk on the output side. In step 73, when the FF receives the input signal Ad prior to the output acknowledge signal Yk, in step 74, the FF transmits the input acknowledge signal Ak. In step 75, the FF waits for the output acknowledge signal Yk, and in step 76 transmits the output signal Yd. On the other hand, when the output acknowledge signal Yk is received prior to the input signal Ad, the FF waits for the input signal Ad in step 77. In step 78, the FF transmits the output signal Yd and the input acknowledge signal Ak.

入力信号AdおよびAkの扱いは、図6の基本フローで扱っているタイプ1のハンドシェイクと同じ考え方である。出力信号YdおよびYkの扱いは、外部から見れば図6の基本フローにおけるタイプ3のハンドシェイクと同じで、「あるサイクル用のデータYdを出力してからそれに対応するアクノリッジYkを受ける」という動作である。しかしながら、図14においては、あたかも「次サイクル用データの受け入れ準備が整ったことを示す送信許可信号(見方を変えれば送信リクエスト信号)Ykを受信し、それに対する応答として次サイクル用のデータ信号Ydを出力する」という新たなタイプのハンドシェイクであるかのように扱っている。そうはいっても、根底に流れる考え方は図6に示したフローと共通である。したがって、図6のフローを実現するPU10にフリップフロップ機能を盛り込むことが可能である。また、フリップフロップ機能を備えたPU10を含むシステム1を構築することが可能である。   The handling of the input signals Ad and Ak is the same as the type 1 handshake handled in the basic flow of FIG. The handling of the output signals Yd and Yk is the same as that of the type 3 handshake in the basic flow of FIG. 6 when viewed from the outside, and an operation of “outputting data Yd for a certain cycle and receiving the corresponding acknowledge Yk” It is. However, in FIG. 14, it is as if “a transmission permission signal (transmission request signal in other words) indicating that preparation for receiving the next cycle data is ready is received, and a data signal Yd for the next cycle is received as a response thereto. As if it were a new type of handshake. Even so, the underlying idea is the same as that shown in FIG. Therefore, it is possible to incorporate a flip-flop function in the PU 10 that realizes the flow of FIG. In addition, it is possible to construct the system 1 including the PU 10 having a flip-flop function.

図14の基本フローでは、入力信号Adとして受け取った入力値Aは、次のクロックサイクル用の出力信号Ydとして出力されることになる。そのため、1クロックサイクルの範囲内でしか考えていない図14の基本フローでは、入力信号Aをドントケア扱いすることはなく、ハンドシェイクによるドントケア通知の逆流は生じない。しかしながら、ステップ77において、あるクロックサイクルの入力信号Adを待っている間に次のクロックサイクル用のドントケア通知パルスであるアクノリッジ信号Ykが来たならば、次のクロックサイクルの出力信号Ydはドントケアということであり、現クロックサイクルの入力信号Adもドントケアということである。   In the basic flow of FIG. 14, the input value A received as the input signal Ad is output as the output signal Yd for the next clock cycle. Therefore, in the basic flow of FIG. 14 considered only within the range of one clock cycle, the input signal A is not handled as don't care, and the backflow of don't care notification due to handshaking does not occur. However, if the acknowledge signal Yk, which is a don't care notification pulse for the next clock cycle, comes in step 77 while waiting for the input signal Ad of a certain clock cycle, the output signal Yd of the next clock cycle is called don't care. That is, the input signal Ad in the current clock cycle is also don't care.

図15は、そのケースでハンドシェイクを逆流させる内部動作を示したフローチャートである。ステップ81において、入力信号Adではなくアクノリッジ信号Ykを受信すると、FFは、ステップ82で判断し、ステップ83において、ドントケア了解応答のダミーの出力信号Ydと、ドントケア通知のアクノリッジ信号Akを送信する。さらに、ステップ84において、ダミーの入力信号Adを受信する。これにより、ハンドシェイクによりドントケア通知の逆流を実現する。この内部動作は、図6に示したPU10のステップ52以降のドントケア通知を逆流する動作と同じであり、図15に示した内部動作も、PU10により実現できる。   FIG. 15 is a flowchart showing an internal operation for backflowing the handshake in that case. In step 81, when receiving the acknowledge signal Yk instead of the input signal Ad, the FF makes a determination in step 82, and in step 83, transmits a dummy output signal Yd of a don't care acknowledgment response and an acknowledge signal Ak of a don't care notification. In step 84, a dummy input signal Ad is received. Thereby, the backflow of the don't care notification is realized by the handshake. This internal operation is the same as the operation for reversing the don't care notification after step 52 of the PU 10 shown in FIG. 6, and the internal operation shown in FIG. 15 can also be realized by the PU 10.

自己同期型のフリップフロップにおいても、処理をシーケンシャルに進める入力信号Adあるいはアクノリッジ信号Ykを待っているタイミングで、所望でないアクノリッジ信号Ykあるいは入力信号Adを受信することがある。これらは、PU10において、イベントトークン扱いして記憶することが可能である。また、スラックに対応してキューイングメモリ14に格納することも可能である。フリップフロップは、信号処理の分野でユニットディレイと呼ばれている通り、遅延付きのバッファである。このため、自己同期型のフリップフロップを導入することにより、自己同期型のシステムの遅延耐性を強化できる。   Even in the self-synchronous flip-flop, an undesired acknowledge signal Yk or input signal Ad may be received at the timing of waiting for the input signal Ad or acknowledge signal Yk to proceed the processing sequentially. These can be stored as event tokens in the PU 10. Further, it can be stored in the queuing memory 14 corresponding to the slack. A flip-flop is a buffer with a delay as is called a unit delay in the field of signal processing. Therefore, by introducing a self-synchronous flip-flop, the delay tolerance of the self-synchronous system can be enhanced.

図16は、以下の論理式(1)を実現する組合せ論理回路である。図17は、図16に示した回路を、2入力ANDゲートと、2入力ORゲートと、NOTゲートとで構築し、複数のPU10を備えたシステム1に実装できる回路に変換したものである。信号分岐については、専用の信号分岐用処理ユニット63を使うことにし、回路図にも明記している。図16に示した論理回路は、多入力ゲートや複合ゲートの自己同期型の回路素子により実装することも可能である。
Z=!X1&X2&X3+X1&!X2+X1&!X3 ・・・(1)
FIG. 16 is a combinational logic circuit that realizes the following logical expression (1). FIG. 17 is a circuit in which the circuit shown in FIG. 16 is constructed by a two-input AND gate, a two-input OR gate, and a NOT gate, and is converted into a circuit that can be implemented in the system 1 having a plurality of PUs 10. As for signal branching, a dedicated signal branching processing unit 63 is used, which is clearly shown in the circuit diagram. The logic circuit shown in FIG. 16 can also be implemented by self-synchronous circuit elements such as multi-input gates and composite gates.
Z =! X1 & X2 & X3 + X1 &! X2 + X1 &! X3 (1)

図18(a)〜(h)に、比較例として、図17に示した回路において、ドントケア通知を逆流する機能を用いずに、自己同期式で実行する際のハンドシェイクの進み具合を示している。図示した回路中の配線の1本は、データ線とアクノリッジ線との組であり、データパルス(入力信号および出力信号)と、アクノリッジパルスとが行き来すればハンドシェイクが完了する。なお、以下では、全ての配線と、個々の処理ユニットにおける処理が同じ遅延であると仮定している。   18 (a) to 18 (h) show, as a comparative example, the progress of handshaking when the circuit shown in FIG. 17 is executed in a self-synchronous manner without using the function of backflowing don't care notifications. Yes. One of the wires in the illustrated circuit is a set of a data line and an acknowledge line, and the handshake is completed when the data pulse (input signal and output signal) and the acknowledge pulse come and go. In the following, it is assumed that all wirings and processing in individual processing units have the same delay.

図18に示したように、ハンドシェイクによるドントケア通知の逆流機能がない場合、各処理ユニットは、全入力のハンドシェイクが完了してから出力値を確定して出力のハンドシェイクを行う。本図および以下においては、ハンドシェイクが完了した配線を、値が「1」なら太い実線、値が「0」なら太い一点鎖線で示している。図18(a)において入力(X1、X2、X3)にそれぞれ(1、0、1)のデータパルスが発生し、ハンドシェイクが完了したとすると、以降、図18(b)から図18(h)まで、単位時間ごとに処理ユニット間のハンドシェイクが1段ずつ消化され、7単位時間後に、出力Zとして「1」が出る。   As shown in FIG. 18, when there is no backflow function of don't care notification by handshake, each processing unit performs output handshake by determining the output value after the handshake of all inputs is completed. In this figure and the following, the wiring for which the handshake has been completed is indicated by a thick solid line when the value is “1” and by a thick dashed line when the value is “0”. Assuming that data pulses (1, 0, 1) are generated at inputs (X1, X2, X3) in FIG. 18 (a) and the handshake is completed, from FIG. 18 (b) to FIG. 18 (h) ), The handshake between the processing units is digested by one stage every unit time, and “1” is output as the output Z after 7 unit times.

図19(a)〜(e)に、ハンドシェイクによるドントケア通知の逆流機能を用いた場合の、ハンドシェイクの進み具合を示している。逆流ハンドシェイク(ドントケア通知&了解)が生じた配線を太い破線で表している。図19(b)までは図18と同じ動作となる。図19(c)では、PU10cがハンドシェイク逆流機能を使ってドントケア通知を発生している。PU10cは2入力ANDであり、その下側入力CBが「0」であることがわかったので、出力信号CYdは「0」に確定する。したがって、このサイクルで、出力信号CYdを出力し、さらに、未受信の入力CAをドントケア扱いとし、ハンドシェイクを逆流させている。   FIGS. 19A to 19E show the progress of handshaking when the backflow function of don't care notification by handshaking is used. The wiring in which the backflow handshake (don't care notification & understanding) has occurred is represented by a thick broken line. The operation up to FIG. 19B is the same as FIG. In FIG.19 (c), PU10c has generated the don't care notification using the handshake backflow function. Since the PU 10c is a 2-input AND and its lower input CB is found to be “0”, the output signal CYd is determined to be “0”. Therefore, in this cycle, the output signal CYd is output, and the unreceived input CA is treated as a don't care, and the handshake is reversed.

図19(d)においては、PU10cの入力側、すなわち上流のPU10dが、出力のドントケア通知を受けて、未受信の入力DAをドントケア扱いとする。このため、ドントケア通知のアクノリッジ信号DAkが出力される。このとき、その入力側のPU10eが出力EYに正規データパルスを出そうとしていたところだったので、ドントケア通知のアクノリッジ信号と、正規の出力信号が入れ違いになる。すなわち、PU10dでは、正規の出力信号をドントケア了解応答とみなし、PU10eでは、ドントケア通知をデータ受領のアクノリッジ信号とみなす。   In FIG. 19D, the input side of the PU 10c, that is, the upstream PU 10d receives the output don't care notification and treats the unreceived input DA as a don't care. Therefore, an acknowledge signal DAk for don't care notification is output. At this time, since the PU 10e on the input side is about to output a normal data pulse to the output EY, the acknowledge signal of the don't care notification and the normal output signal are mixed. That is, the PU 10d regards the normal output signal as a don't care acknowledgment response, and the PU 10e regards the don't care notification as an acknowledge signal for data reception.

図19(e)では、最終段の2入力ORのPU10fにおいて、上側入力FAにより出力FYが確定する。したがって、下側入力FBの入力側のPU10gに対し、ドントケア通知を送信してハンドシェイクを逆流させようとしている。この場合も、PU10gは、出力信号を送信しようとしているので、ドントケア通知のアクノリッジ信号と、正規データパルスと入れ違いになり、双方のPU10fおよび10gにおいてハンドシェイクが完了する。   In FIG. 19 (e), the output FY is determined by the upper input FA in the PU10f of the last two-input OR. Therefore, a don't care notification is transmitted to the PU 10g on the input side of the lower input FB to reverse the handshake. Also in this case, since the PU 10g intends to transmit the output signal, the acknowledge signal of the don't care notification and the regular data pulse are mixed, and the handshake is completed in both PUs 10f and 10g.

これらの図からわかるように、図17の回路を実行するのに、ハンドシェイク逆流機能がなければ、図18に示すように8単位時間かかる。一方、ハンドシェイク逆流機能があれば、図19に示すように、図17の回路の実行は5単位時間で済む。ハンドシェイク逆流が起こるか起こらないかは信号の値に依存する。したがって、ハンドシェイク逆流機能があれば図17の回路を常に5単位時間で実行できるというわけではない。たとえば、入力(X1、X2、X3)が(1、1、0)の場合は、ハンドシェイク逆流機能があっても8単位時間かかる。しかしながら、自己同期式のシステムにおいては、同期回路設計の考え方と異なり、「ハンドシェイク逆流機能があろうとなかろうと、8単位時間相当のクロック周期を確保しなければならないから、ハンドシェイク逆流機能の効果はない」と判断されることはない。自己同期式のシステムではグローバルクロックはない。このため、固定のクロック周期というものは存在せず、その時々の状況に応じてハンドシェイクが済み次第、ユーザークロック1サイクル相当の処理完了とみなして次に進むことができる。したがって、自己同期型の回路17においては、ハンドシェイク逆流機能があれば、入力(X1、X2、X3)が(1、0、1)のときは5単位時間でユーザークロック1サイクル分の処理を終えて次に進むことができ、そのケースの出現頻度に応じてシステム性能が向上することになる。   As can be seen from these figures, it takes 8 unit time to execute the circuit of FIG. 17 without the handshake backflow function, as shown in FIG. On the other hand, if there is a handshake backflow function, as shown in FIG. 19, the execution of the circuit of FIG. Whether handshake backflow occurs or not depends on the value of the signal. Therefore, if the handshake backflow function is provided, the circuit of FIG. 17 cannot always be executed in 5 unit times. For example, when the input (X1, X2, X3) is (1, 1, 0), it takes 8 unit time even if there is a handshake backflow function. However, in the self-synchronous system, unlike the concept of the synchronous circuit design, “Even if the handshake backflow function is present or not, it is necessary to secure a clock cycle corresponding to 8 unit hours. It is never judged. There is no global clock in a self-synchronous system. For this reason, there is no fixed clock cycle, and as soon as the handshake is completed according to the situation at that time, it can be considered that the processing corresponding to one cycle of the user clock is completed, and can proceed to the next. Accordingly, in the self-synchronous circuit 17, if the handshake backflow function is provided, when the input (X1, X2, X3) is (1, 0, 1), processing for one cycle of the user clock is performed in 5 unit times. The system performance can be improved according to the appearance frequency of the case.

図20(a)〜図22(d)(図20(a)〜(e)、図21(a)〜(d)、図22(a)〜(d))は、図19に示した自己同期式の回路においてハンドシェイクが進行する状況をさらに詳しく示している。これらの図において、右向きの三角マークは、データ線のパルス、すなわち入力信号および出力信号(以降では、入力データパルスおよび出力データパルス)である。黒塗りマークは論理「1」を表す正規パルス、斜線のマークは論理「0」を表す正規パルスである。また、白抜きマークは、ドントケア了解応答のダミーパルスである。左向きの三角マークは、アクノリッジ線のパルスで、すなわちアクノリッジ信号(以降では、入力アクノリッジパルスおよび出力アクノリッジパルス)である。黒塗りマークは論理「1」のデータ受領応答パルス、斜線のマークは論理「0」のデータ受領応答パルスである。また、白抜きマークは、ドントケア通知パルスである。   20 (a) to 22 (d) (FIGS. 20 (a) to (e), FIGS. 21 (a) to (d), FIGS. 22 (a) to (d)) are the same as those shown in FIG. The situation in which handshaking proceeds in a synchronous circuit is shown in more detail. In these figures, the triangles pointing rightward are data line pulses, that is, input signals and output signals (hereinafter, input data pulses and output data pulses). The black mark is a normal pulse representing logic “1”, and the hatched mark is a regular pulse representing logic “0”. The white mark is a dummy pulse for a don't care acknowledgment response. The triangle mark to the left is an acknowledge line pulse, that is, an acknowledge signal (hereinafter, an input acknowledge pulse and an output acknowledge pulse). Black marks are data reception response pulses of logic “1”, and hatched marks are data reception response pulses of logic “0”. The white mark is a don't care notification pulse.

これらの図においては、パルスが送出側の処理ユニットを出てから受取側の処理ユニットに到達するまで1単位時間かかり、処理ユニットがパルスを受け取ってアクションを起こすのに1単位時間かかると想定している。さらに、処理ユニットは、複数のパルスを同時に受信したときに、1単位時間で全パルス分のアクションを行えると想定している。また、ハンドシェイク逆流機能について、各処理ユニットは、入力信号のデータパルスと、ドントケア通知の出力側からのアクノリッジ信号とを同時に受け取ったときに、ドントケア処理を優先すると想定している。   In these figures, it is assumed that it takes 1 unit time for the pulse to leave the sending processing unit and reach the receiving processing unit, and it takes 1 unit time for the processing unit to receive the pulse and take action. ing. Further, it is assumed that the processing unit can perform actions for all pulses in one unit time when a plurality of pulses are received simultaneously. Further, regarding the handshake backflow function, each processing unit assumes that the don't care process is given priority when the data pulse of the input signal and the acknowledge signal from the output side of the don't care notification are received simultaneously.

これらの想定に基づいて図20(a)〜図22(d)を説明する。図20(a)〜図22(d)は単位時間毎の状態遷移を示している。まず、図20(a)の時刻t1で、入力(X1、X2、X3)に(1、0、1)のデータパルスが発生する。図20(b)の時刻t2で、それらのパルスが信号分岐の処理ユニットに到着する。図20(c)の時刻t3で、信号分岐の処理ユニットがアクションを起こし、入力アクノリッジパルスと出力データパルスを発生する。図20(d)の時刻t4で、信号分岐の処理ユニットの入力アクノリッジパルスが入力信号の発生源に到着する。同時に、信号分岐の処理ユニットの出力データパルスが受取側の処理ユニットに到着する。図20(e)の時刻t5で、PU10cは、ドントケア通知パルスを発生し、逆流させる。   Based on these assumptions, FIG. 20A to FIG. 22D will be described. 20A to 22D show state transitions per unit time. First, at time t1 in FIG. 20A, data pulses (1, 0, 1) are generated at the inputs (X1, X2, X3). At time t2 in FIG. 20B, these pulses arrive at the signal branch processing unit. At time t3 in FIG. 20 (c), the signal branching processing unit takes action to generate an input acknowledge pulse and an output data pulse. At time t4 in FIG. 20D, the input acknowledge pulse of the signal branch processing unit arrives at the input signal generation source. At the same time, the output data pulse of the signal branch processing unit arrives at the receiving processing unit. At time t5 in FIG. 20 (e), the PU 10c generates a don't care notification pulse and causes it to flow backward.

図21(a)の時刻t6で、PU10dにドントケア通知パルスが到着し、図21(b)の時刻t7で、PU10dは、さらに、ドントケア通知パルスを逆流させる。図21(c)の時刻t8で、PU10dと10eとの間で、正規の出力データパルスと、ドントケア通知パルスとの間でハンドシェイクが成立し、ドントケア通知の逆流は止まる。図21(d)の時刻t9で、最終段のPU10fが、出力データパルスを出力すると共に、ドントケア通知パルスを発生し、逆流させる。   At time t6 in FIG. 21A, a don't care notification pulse arrives at PU 10d, and at time t7 in FIG. 21B, PU 10d further reverses the don't care notification pulse. At time t8 in FIG. 21C, a handshake is established between the regular output data pulse and the don't care notification pulse between the PUs 10d and 10e, and the backflow of the don't care notification stops. At time t9 in FIG. 21 (d), the PU 10f at the final stage outputs an output data pulse and generates a don't care notification pulse to make it flow backward.

図22(a)の時刻t10で、PU10fおよび10gとの間で、正規の出力データパルスと、ドントケア通知パルスとの間でハンドシェイクが成立する。図22(c)の時刻t12で、最終段のPU10fと出力信号の受け取り側とのハンドシェイクが終了し、図22(d)の時刻t13に、この回路の出力信号が確定する。以上では、全ての配線遅延が同じと想定したが、配線遅延が配線ごとに異なっていても回路は正しく実行されるし、同じ配線の遅延が状況ごとにばらついても回路は正しく実行される。また、説明のため入力(X1、X2、X3)の値を固定しているが、入力のハンドシェイクが終了した時刻t5以降に、新たな値を入力することにより、新たな演算を開始できる。   At time t10 in FIG. 22A, a handshake is established between the regular output data pulse and the don't care notification pulse between the PUs 10f and 10g. At time t12 in FIG. 22 (c), the handshake between the final stage PU 10f and the output signal receiving side is completed, and the output signal of this circuit is determined at time t13 in FIG. 22 (d). In the above, it is assumed that all the wiring delays are the same. However, even if the wiring delays are different for each wiring, the circuit is executed correctly, and even if the delays of the same wiring vary depending on the situation, the circuit is executed correctly. Further, although the values of the inputs (X1, X2, and X3) are fixed for explanation, a new calculation can be started by inputting a new value after time t5 when the input handshake is completed.

図23は、フリップフロップ付き順序回路の例である。具体的には、図23は、3ビットカウンターを通常の同期式設計記述で記述したものである。図24の回路は、図23のカウンターを、2入力論理素子と、NOTゲート素子と、信号分岐素子と、フリップフロップFFとを含む構成に変換したものである。したがって、図24の回路は、2入力1出力の自己同期式のPU10を含むシステム1に実装することができる。図24の回路図において、配線1本が、データ線とアクノリッジ線のペアを表すことは上記と同様である。   FIG. 23 shows an example of a sequential circuit with flip-flops. Specifically, FIG. 23 shows a 3-bit counter described in a normal synchronous design description. The circuit of FIG. 24 is obtained by converting the counter of FIG. 23 into a configuration including a two-input logic element, a NOT gate element, a signal branching element, and a flip-flop FF. Therefore, the circuit of FIG. 24 can be implemented in the system 1 including the self-synchronous PU 10 having two inputs and one output. In the circuit diagram of FIG. 24, it is the same as described above that one wiring represents a pair of a data line and an acknowledge line.

図25(a)〜図31(d)(図25(a)〜(d)、図26(a)〜(d)、図27(a)〜(d)、図28(a)〜(d)、図29(a)〜(d)、図30(a)〜(d)、図31(a)〜(d))に、図24に示した回路を、自己同期で、ハンドシェイク逆流機能を用いて実行した状態を示している。図25(a)〜図31(d)は、単位時間毎の状態遷移を示している。なお、カウンター回路は1回実行して終わりというものではなく、繰り返し実行する。したがって、データパルス、アクノリッジパルスおよびドントケア通知パルスにより回路の動きを示している。また、フリップフロップを表す四角の中には、そのフリップフロップがユーザークロックの何サイクル目の値を保持しているかを示している。   25 (a) to 31 (d) (FIGS. 25 (a) to (d), FIGS. 26 (a) to (d), FIGS. 27 (a) to (d), and FIGS. 28 (a) to (d). ), FIGS. 29 (a) to (d), FIGS. 30 (a) to (d), and FIGS. 31 (a) to (d)), the circuit shown in FIG. The state executed using is shown. Fig.25 (a)-FIG.31 (d) have shown the state transition for every unit time. It should be noted that the counter circuit is not executed once, but is repeatedly executed. Therefore, the movement of the circuit is shown by the data pulse, the acknowledge pulse, and the don't care notification pulse. Also, the square representing the flip-flop indicates what cycle value of the user clock the flip-flop holds.

図25(a)に示した時刻T1で3つのフリップフロップから初期値0が出力される。それらが図25(d)に示した時刻T4で出力信号を受信する処理ユニットに届く。図26(d)に示した時刻T8で、出力Z1のフリップフロップ(カウンターLSB)のデータ入力にパルスが到着する。図27(a)に示した時刻T9で、出力Z1のフリップフロップだけユーザークロックサイクル1の処理に進む。   The initial value 0 is output from the three flip-flops at time T1 shown in FIG. They reach the processing unit that receives the output signal at time T4 shown in FIG. At time T8 shown in FIG. 26 (d), a pulse arrives at the data input of the output Z1 flip-flop (counter LSB). At time T9 shown in FIG. 27A, only the flip-flop of output Z1 proceeds to the processing of user clock cycle 1.

図27(c)に示した時刻T11で、出力Z2のフリップフロップは、ユーザークロックサイクル1の処理に更新される。図28(c)に示した時刻T15で、出力Z3のフリップフロップ(カウンターMSB)は、ユーザークロックサイクル1の処理に更新される。その間、出力Z1のフリップフロップの周辺のNOTゲートの処理ユニットにおいて、ユーザークロックサイクル1の処理が進む。このため、図29(a)に示した時刻T17で、出力Z1のフリップフロップは、ユーザークロックサイクル2の処理に進む。   At time T11 shown in FIG. 27C, the flip-flop of the output Z2 is updated to the process of the user clock cycle 1. At time T15 shown in FIG. 28C, the flip-flop (counter MSB) of the output Z3 is updated to the processing of the user clock cycle 1. Meanwhile, the processing of the user clock cycle 1 proceeds in the processing unit of the NOT gate around the flip-flop of the output Z1. For this reason, at time T17 shown in FIG. 29A, the flip-flop of the output Z1 proceeds to the processing of the user clock cycle 2.

図29(c)に示した時刻T19において、出力Z2のフリップフロップは、ユーザークロックサイクル2の処理に進む。出力Z1のフリップフロップの処理に対して、出力Z2のフリップフロップの処理の遅れは僅かであるが、出力Z3のフリップフロップの処理の遅れは大きい。このため、図31(a)に示した時刻T25で、出力Z1のフリップフロップは、先行して、ユーザークロックサイクル3の処理に進む。これに対し、図31(c)に示した時刻T27で、出力Z3のフリップフロップは、ようやくユーザークロックサイクル2の処理に進む。時刻T27では、出力Z2のフリップフロップがユーザークロックサイクル3の処理に進む。このため、出力Z3のフリップフロップは、出力Z2のフリップフロップに対して1周遅れ(出力Z1のフリップフロップに対しては1周以上の遅れ)となる。   At time T19 shown in FIG. 29C, the flip-flop of the output Z2 proceeds to the processing of the user clock cycle 2. The processing delay of the output Z2 flip-flop is small compared to the processing of the output Z1 flip-flop, but the processing delay of the output Z3 flip-flop is large. For this reason, at time T25 shown in FIG. 31A, the flip-flop of the output Z1 proceeds to the processing of the user clock cycle 3 in advance. In contrast, at time T27 shown in FIG. 31 (c), the flip-flop of the output Z3 finally proceeds to the processing of the user clock cycle 2. At time T27, the flip-flop of output Z2 proceeds to the processing of user clock cycle 3. For this reason, the flip-flop of the output Z3 is delayed by one turn with respect to the flip-flop of the output Z2 (a delay of one turn or more with respect to the flip-flop of the output Z1).

このように、非同期のシステム1に実装された3ビットカウンターの回路においては、出力Z1のフリップフロップと、出力Z2のフリップフロップは、出力Z3のフリップフロップに対してどんどん先行して処理が進む。しかしながら、その差は無制限に拡大していくわけではない。これらのフリップフロップの処理の差がある程度まで広がると、出力Z1およびZ2のフリップフロップに関連する回路と、出力Z3のフリップフロップに関連回路とをつなぐ信号分岐の処理ユニット(図24におけるPU10hおよび10i)がアクノリッジパルスを返さなくなる。このため、出力Z1およびZ2のフリップフロップ関連の回路はそれ以上先行して処理を進むことができなくなる。したがって、それ以降は、出力Z3のフリップフロップが1サイクル分進むたびに信号分岐のPU10hおよび10iが1回ずつアクノリッジパルスを返し、それに応じて、出力Z1およびZ2のフリップフロップも1サイクル分ずつ処理を進める。処理ユニットのイベントトークンをキューイングするメモリ14に2つ以上のイベントトークンを記憶することにより、出力Z1およびZ2のフリップフロップが先行して処理を進める限度を増やすことができる。   As described above, in the circuit of the 3-bit counter mounted in the asynchronous system 1, the processing of the output Z1 flip-flop and the output Z2 flip-flop proceeds more rapidly than the output Z3 flip-flop. However, the difference does not grow indefinitely. When the difference in the processing of these flip-flops spreads to a certain extent, the signal branch processing unit (PUs 10h and 10i in FIG. 24) that connects the circuits related to the flip-flops of the outputs Z1 and Z2 and the flip-flop of the output Z3. ) Will not return an acknowledge pulse. For this reason, the flip-flop related circuits of the outputs Z1 and Z2 cannot proceed further. Therefore, after that, every time the flip-flop of the output Z3 advances by one cycle, the PU10h and 10i of the signal branch return an acknowledge pulse once, and the flip-flops of the outputs Z1 and Z2 process one cycle at a time accordingly. To proceed. By storing more than one event token in the memory 14 that queues the event tokens of the processing unit, it is possible to increase the limit that the flip-flops of the outputs Z1 and Z2 advance processing.

図25(a)〜図31(d)に示した自己同期式のシステムの動作において、図26(c)に示した時刻T7、図27(a)に示した時刻T9などにおいて、ドントケア通知パルスが発生し、ハンドシェイク逆流機能が有効に活用されていることがわかる。とくに、図29(c)の時刻T19で、2入力ANDのPU10jが発生したドントケア通知パルスは、図30(a)の時刻T21において2入力ANDのPU10kの入力ドントケア通知パルスとして伝播している。これらの図により、多段論理を実行するためのハンドシェイク処理が、出力段から入力段へと逆流している様子が見て取れる。このハンドシェイク逆流機能により、多段論理全体の実行時間が短縮され、システム性能が向上する。   In the operation of the self-synchronous system shown in FIGS. 25 (a) to 31 (d), the don't care notification pulse at time T7 shown in FIG. 26 (c), time T9 shown in FIG. 27 (a), etc. It can be seen that the handshake backflow function is effectively utilized. In particular, the don't care notification pulse generated by the PU 10j of the 2-input AND at time T19 in FIG. 29C is propagated as the input don't care notification pulse of the PU 10k of the 2-input AND at time T21 in FIG. From these figures, it can be seen that the handshake processing for executing the multi-stage logic flows backward from the output stage to the input stage. This handshake backflow function shortens the execution time of the entire multistage logic and improves the system performance.

図25(a)〜図31(d)に示したカウンター回路の動作において、3つのフリップフロップが異なるタイミングで動いたのは、各フリップフロップの次値を計算するロジックの複雑度に差があったからというのが主たる要因である。加えて、それぞれのフリップフロップの出力信号を受取側の処理ユニットが、それぞれの出力信号を異なるタイミングでハンドシェイクしているという要因がある。出力信号を受信する処理ユニットを、「3つの信号が揃うまでアクノリッジを返さない」という構成にすることも可能である。そのような構成にすると、3つのフリップフロップの直後の信号分岐の処理ユニットは異なるタイミングでは動作せず、3つのフリップフロップも、上記のように異なるタイミングで処理が進むこともない。   In the operation of the counter circuit shown in FIGS. 25 (a) to 31 (d), the three flip-flops moved at different timings because of the difference in the complexity of the logic for calculating the next value of each flip-flop. The main factor is that. In addition, there is a factor that the processing unit on the receiving side of the output signal of each flip-flop is handshaking each output signal at a different timing. The processing unit that receives the output signal may be configured to “not return an acknowledge until all three signals are ready”. With such a configuration, the signal branch processing unit immediately after the three flip-flops does not operate at different timings, and the processing of the three flip-flops does not proceed at different timings as described above.

自己同期型のシステムに対する入力信号についても同様に考えることができる。図23および図24に示したカウンター回路の例では、「システム全体に対する入力信号」が存在しない。システム全体に対する入力信号が存在する場合には、それらの入力信号が同期してハンドシェイクされる構成であれば、システム内部のフリップフロップも無制限に異なるタイミングで動作することはなく、動作するタイミングの差は、ある程度に収まる。このような動作を利用し、システム1の入出力信号のハンドシェイクを止めてしまえば、システム1の内部はある程度、すなわち、来なくなった入力信号に依存しない分だけ、あるいは、出せなくなった出力信号により処理が進まなくなるまで進んだあと、ストールする。その後、システム1の入出力信号のハンドシェイクを再開すれば、システム1は続きから処理を再開する。   The same applies to input signals for a self-synchronous system. In the example of the counter circuit shown in FIGS. 23 and 24, there is no “input signal for the entire system”. If there are input signals for the entire system, the flip-flops in the system will not operate at an unlimited number of times as long as these input signals are handshaked synchronously. The difference falls to some extent. If the handshake of the input / output signal of the system 1 is stopped by using such an operation, the output of the output signal that cannot be output to a certain extent, that is, an amount that does not depend on the input signal that is no longer coming. Stall after proceeding until the process stops. Thereafter, when the handshake of the input / output signal of the system 1 is resumed, the system 1 resumes the processing from the next.

このように、同期式回路において、グローバルクロックを止めたり再開したりするのに相当する処理を、グローバルクロックの存在しない自己同期式のシステム1においては、システム1、あるいはシステム1に部分的に構成された回路の入出力信号のハンドシェイクを止めたり再開することにより実現できる。したがって、自己同期式のシステム1において、データフローの処理を一時的に停止して、処理ユニットのロジックを変更したり、処理ユニットの接続を変更することにより、システム1に実装されるデータフローをダイナミックに再構成することが可能となる。   As described above, in the synchronous circuit, the processing corresponding to stopping and restarting the global clock is partially configured in the system 1 or the system 1 in the self-synchronous system 1 in which no global clock exists. This can be realized by stopping or restarting the handshake of the input / output signal of the selected circuit. Therefore, in the self-synchronous system 1, the data flow implemented in the system 1 can be changed by temporarily stopping the data flow processing and changing the logic of the processing unit or changing the connection of the processing unit. Dynamic reconfiguration is possible.

また、このシステム1において、PU10を接続するルーチングマトリクス5を構成するデータ線およびアクノリッジ線は、元々の同期式回路の1サイクルに相当する処理の間に1回だけパルスの伝送を行う。したがって、元々の同期式回路を普通に同期式に実装した場合や、2線式の自己同期設計方式で自己同期回路を実装した場合のように、素子遅延や配線遅延のアンバランスによってスパイクが大量に発生して電力を消費することも抑制できる。   Further, in this system 1, the data lines and acknowledge lines that make up the routing matrix 5 to which the PU 10 is connected perform pulse transmission only once during the process corresponding to one cycle of the original synchronous circuit. Therefore, when the original synchronous circuit is normally mounted in a synchronous manner or when the self-synchronous circuit is mounted by a two-wire self-synchronous design method, a large amount of spikes are caused by imbalance of element delay and wiring delay. It is also possible to suppress the occurrence of power and power consumption.

このように、本発明の一形態は、同期式設計で使われるANDゲート、ORゲート、NOTゲート、フリップフロップなどの回路素子をグローバルクロック不要のセルフタイムド方式で実装する。そして、同期式ユーザー回路の信号1本につき、セルフタイムド素子ではデータ線とアクノリッジ線の2本の信号を割り当て、かつ、データ線のほうはプラス電源とマイナス電源の2電源を用いる。データ線においては、プラスのパルス1回で1クロックサイクル分の論理“1”、マイナスのパルス1回で1クロックサイクル分の論理“0”を表す。アクノリッジ線においては、1パルスで1クロックサイクル分のアクノリッジを表す。   Thus, according to one embodiment of the present invention, circuit elements such as an AND gate, an OR gate, a NOT gate, and a flip-flop used in the synchronous design are mounted in a self-timed manner that does not require a global clock. For each signal of the synchronous user circuit, two signals of the data line and the acknowledge line are assigned in the self-timed element, and the data line uses two power sources, a positive power source and a negative power source. In the data line, one positive pulse represents a logic “1” for one clock cycle, and one negative pulse represents a logic “0” for one clock cycle. In the acknowledge line, one pulse represents an acknowledge for one clock cycle.

1電源を用いた2線式のセルフタイムド素子は、出力値を変えなければならない時のみ出力信号を伝送する。本発明の一形態の1線式のセルフタイムド素子は、出力値を変える−変えないに関わらず、ユーザークロック1サイクル分の処理につき1回、出力信号を伝送する。これは、同期式ユーザー回路の、「全ての信号線が1クロックサイクルに1回ずつ値の伝送を行う」という性質を反映している。したがって、本発明の一形態のセルフタイムド素子を組み合わせて構築した回路システムにおいては、全てのデータ線/アクノリッジ線で1回ずつハンドシェイクが行われるたびに、同期式ユーザー回路のユーザークロック1サイクル分の処理が進む、とみなせばよい。   A two-wire self-timed element using one power source transmits an output signal only when the output value must be changed. The one-wire self-timed device according to one aspect of the present invention changes the output value--regardless of whether or not, the output signal is transmitted once per one user clock cycle. This reflects the property of the synchronous user circuit that “all signal lines transmit a value once per clock cycle”. Therefore, in the circuit system constructed by combining the self-timed elements according to one aspect of the present invention, one cycle of the user clock of the synchronous user circuit is performed each time handshaking is performed once for all the data lines / acknowledge lines. It can be considered that the processing of minutes proceeds.

さらに、ハンドシェイクは、通常は、まず信号送出側素子が信号受取側素子に対してデータパルスを出し、データパルスを受け取った受取側素子が送出側素子に対してアクノリッジパルスを返す、という手順をとる。しかしながら、受取側素子が多入力素子の場合、他の入力信号の値によっては注目信号の値がドントケアになるケースがある。そのケースにおいては、先に受取側素子が送出側素子に対してアクノリッジパルス(意味としてはドントケア通知)を出し、それを受け取った送出側素子が任意のデータパルス(意味としてはドントケア了解応答)を返すことにより、ハンドシェイク1回とみなす。   Furthermore, handshaking usually involves a procedure in which a signal transmitting element first issues a data pulse to the signal receiving element, and the receiving element that receives the data pulse returns an acknowledge pulse to the transmitting element. Take. However, when the receiving side element is a multi-input element, the value of the signal of interest may be don't care depending on the value of other input signals. In that case, the receiving side element first issues an acknowledge pulse (meaning don't care notification) to the sending side element, and the sending side element receiving it sends an arbitrary data pulse (meaning don't care acknowledgment response). By returning, it is considered as one handshake.

各素子は、ある入力によって他の入力がドントケアになった場合に他の入力にドントケア通知を出すだけでなく、入力信号が来るよりも先に出力信号のドントケア通知が来た場合にも入力信号にドントケア通知パルスを出す。これにより、多段論理を実行する際に、入力段から出力段に向かって次々と値が確定していく素直なハンドシェイクだけでなく、上述したように、出力段から入力段に向かって次々とドントケアが伝播していく逆流のハンドシェイク(ハンドシェイク逆流機能)が生じる。   Each element not only sends a don't care notification to another input when the other input becomes don't care due to an input, but also an input signal when the don't care notification of the output signal comes before the input signal comes Send a don't care notification pulse. As a result, when executing multi-stage logic, not only a simple handshake in which values are determined one after another from the input stage to the output stage, but also as described above, one after another from the output stage to the input stage. A backflow handshake (handshake backflow function) in which don't care propagates occurs.

本発明の一形態によれば、グローバルクロックを使わずにクロック同期式回路を実装できるため、従来のクロック同期式実装と比べクロックスキュー調整やクリティカルパス調整の工数を省略できる。さらに、2線式のセルフタイムド設計実装方式と比べると、広く普及している同期式設計の考え方で回路設計できるという効果がある。また、多段組み合わせ論理回路を評価する際に、入力段から出力段に向かって「データ→アクノリッジ」というハンドシェイクが行われていくだけでなく、出力段から入力段に向かって「ドントケア通知→ドントケア了解応答」というハンドシェイクを逆流させることもできる。このため、従来のセルフタイムド設計実装方式の弱点であったハンドシェイクオーバヘッド問題も低減される。さらに、論理上の1クロックサイクル内に各信号線で1回だけ伝送が行われるので、従来のクロック同期式実装やセルフタイムド設計実装のように、素子遅延のバラツキによって大量のスパイクが発生して電力を消費するような事態も抑制できる。   According to an embodiment of the present invention, a clock synchronous circuit can be mounted without using a global clock, and therefore, the number of steps for clock skew adjustment and critical path adjustment can be omitted as compared with conventional clock synchronous mounting. Furthermore, compared with the two-wire self-timed design and mounting method, there is an effect that the circuit can be designed based on the concept of the synchronous design widely spread. When evaluating a multi-stage combinational logic circuit, not only is a handshake called “Data → Acknowledge” from the input stage to the output stage, but also “Don't Care Notification → Don't Care Acknowledgment” from the output stage to the input stage. The handshake “response” can be reversed. For this reason, the handshake overhead problem which was a weak point of the conventional self-timed design and implementation method is also reduced. Furthermore, since transmission is performed only once on each signal line within one logical clock cycle, a large amount of spikes are generated due to variations in element delays as in conventional clock synchronous mounting and self-timed design mounting. Therefore, it is possible to suppress the situation where power is consumed.

なお、上記では、自己同期式のPU10の内部動作をフローチャートの形で示したが、状態遷移図やプロダクションルールなど、他の表記で説明することも可能である。また、汎用的な自己同期式のPU10を有するシステム1を上記において説明している。これに対し、専用のロジックを備えた自己同期式の処理ユニットあるいは自己同期素子を組み合わせて、ハンドシェイク逆流機能を備えた自己同期式の回路を構成することも可能である。さらに、自己同期式の処理ユニットあるいは素子は、配線により接続されていなくても良く、電気信号あるいは光信号を無線あるいは有線により伝達することにより自己同期式実装を実現できる。また、自己同期式のシステムは配線遅延、素子遅延のアンバランスによる影響を克服できるシステムであり、インターネットなどのコンピュータワークなどで複数のシステムあるいは処理ユニットが接続された、分散型の大規模システムに対しても上記の構成を適用できる。   In the above description, the internal operation of the self-synchronous PU 10 is shown in the form of a flowchart, but it can also be described by other notations such as a state transition diagram and a production rule. In addition, the system 1 having a general-purpose self-synchronous PU 10 has been described above. On the other hand, a self-synchronizing circuit having a handshake backflow function can be configured by combining a self-synchronizing processing unit or a self-synchronizing element having a dedicated logic. Furthermore, the self-synchronous processing unit or element may not be connected by wiring, and self-synchronous mounting can be realized by transmitting an electric signal or an optical signal by radio or wire. Self-synchronous systems can overcome the effects of wiring delay and device delay imbalance, and can be used in distributed large-scale systems in which multiple systems or processing units are connected by computer work such as the Internet. The above configuration can also be applied to this.

Claims (28)

自己同期型の複数の処理ユニットを有するシステムであって、
前記複数の処理ユニットの1つの処理ユニットは、
複数の入力側の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、
前記複数の入力信号に基づき、出力信号を生成するための論理部と、
前記出力信号を、少なくとも1つの出力側の処理ユニットに送信するための出力側の信号交換部と、
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号を定める第1の判断機能と、
前記出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号を定める第2の判断機能とを備えており、さらに、
前記入力側の信号交換部は、前記第1の判断機能または前記第2の判断機能により受信不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて前記不用通知を送信する、システム。
A system having a plurality of self-synchronous processing units,
One processing unit of the plurality of processing units is
An input-side signal exchange unit for receiving a plurality of input signals respectively supplied from a plurality of input-side processing units;
A logic unit for generating an output signal based on the plurality of input signals;
An output side signal exchange for transmitting the output signal to at least one output side processing unit;
A first determination function that determines an unreceived input signal that is unnecessary for generating an output signal based on an input signal received by the signal exchange unit on the input side;
A second determination function for determining an unreceived input signal that is not required to be received by a use notification indicating that the output signal is not received, received by the signal exchange unit on the output side, and
The signal exchange unit on the input side transmits the waste notification to an input side processing unit that supplies an unreceived input signal that is judged not to be received by the first determination function or the second determination function. System.
請求項1において、前記出力側の信号交換部は、出力信号を、複数の出力側の処理ユニットに送信し、
前記第2の判断機能は、前記複数の出力側の処理ユニットの全てから前記不用通知を受信したときに、受信不用となる未受信の入力信号を定める、システム。
In Claim 1, the signal exchange unit on the output side transmits an output signal to a plurality of processing units on the output side,
The system in which the second determination function determines an unreceived input signal that is not required to be received when the unnecessary notification is received from all of the plurality of output-side processing units.
請求項1において、前記処理ユニットは、次のa1ないしa4のいずれかの処理により信号の転送を確認するハンドシェイク機能を備えている、システム。
a1 入力信号を受信すると、その入力信号の供給元の入力側の処理ユニットに宛てて確認信号を送信する。
a2 未受信の入力信号の供給元の、入力側の処理ユニットに宛てて前記不用通知として前記確認信号を送信し、前記確認信号の送信先の、入力側の処理ユニットからダミーの入力信号を受信する。
a3 出力信号を送信し、前記出力信号の送信先の、出力側の処理ユニットから前記確認信号を受信する。
a4 出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し、ダミーの出力信号を送信する。
2. The system according to claim 1, wherein the processing unit has a handshake function for confirming signal transfer by any one of the following processes a1 to a4.
When the a1 input signal is received, a confirmation signal is transmitted to the input processing unit of the input signal supply source.
a2 The confirmation signal is transmitted as the non-use notification to the processing unit on the input side of the supply source of the unreceived input signal, and the dummy input signal is received from the processing unit on the input side of the transmission destination of the confirmation signal To do.
a3 An output signal is transmitted, and the confirmation signal is received from an output-side processing unit to which the output signal is transmitted.
a4 When the confirmation signal is received when the output signal is not transmitted, it is recognized as the unnecessary notification and a dummy output signal is transmitted.
請求項1において、前記出力側の信号交換部は、前記論理部により出力信号が生成される都度、その出力信号をパルス信号で送信する、システム。   2. The system according to claim 1, wherein the output side signal exchange unit transmits the output signal as a pulse signal each time the output unit generates the output signal. 請求項1において、前記出力側の信号交換部は、出力信号を、3状態に変位する信号で送信する、システム。   2. The system according to claim 1, wherein the output-side signal exchange unit transmits the output signal as a signal that is displaced into three states. 請求項5において、前記3状態は、中立と、前記中立を含まない2つの状態とを含む、システム。   6. The system according to claim 5, wherein the three states include a neutral state and two states that do not include the neutral state. 請求項1において、前記処理ユニットは、未受信の入力信号により処理できない入力信号を記憶するためのメモリを、さらに備えている、システム。   2. The system according to claim 1, wherein the processing unit further includes a memory for storing an input signal that cannot be processed by an unreceived input signal. 請求項1において、前記処理ユニットは、受信した信号のうち、処理できない信号をイベントトークンとして記憶するためのメモリを、さらに備えている、システム。   2. The system according to claim 1, wherein the processing unit further includes a memory for storing, as an event token, a signal that cannot be processed among received signals. 請求項1において、前記論理部は、出力信号を生成する論理を変更する機能を備えている、システム。   2. The system according to claim 1, wherein the logic unit has a function of changing logic for generating an output signal. 請求項1において、前記入力側の信号交換部は、入力側の処理ユニットを変更する機能を備えており、
前記出力側の信号交換部は、出力側の処理ユニットを変更する機能を備えている、システム。
In Claim 1, the signal exchange unit on the input side has a function of changing the processing unit on the input side,
The output-side signal exchange unit has a function of changing an output-side processing unit.
請求項1において、前記複数の処理ユニットの間の信号の交換を可能とする通信システムであって、前記複数の処理ユニットの接続を再構成可能な通信システムを、さらに有するシステム。   2. The system according to claim 1, further comprising a communication system that enables exchange of signals between the plurality of processing units, wherein the communication of the plurality of processing units can be reconfigured. 請求項1において、前記複数の処理ユニットと、前記複数の処理ユニットの間の信号を伝達するためのルーチングマトリクスとを含む集積回路ユニットを有する、システム。   2. The system of claim 1, comprising an integrated circuit unit that includes the plurality of processing units and a routing matrix for transmitting signals between the plurality of processing units. 請求項12において、前記ルーチングマトリクスは、前記複数の処理ユニットに含まれる少なくとも一部の処理ユニットの間の接続を変更することにより、前記集積回路ユニット内の回路を再構成する、システム。   13. The system according to claim 12, wherein the routing matrix reconfigures circuits in the integrated circuit unit by changing connections between at least some of the processing units included in the plurality of processing units. 自己同期型の処理ユニットであって、
複数の入力側の他の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、
前記複数の入力信号に基づき、出力信号を生成するための論理部と、
前記出力信号を、少なくとも1つの出力側の他の処理ユニットに送信するための出力側の信号交換部と、
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号を定める第1の判断機能と、
前記出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号を定める第2の判断機能とを有し、さらに、
前記入力側の信号交換部は、前記第1の判断機能または前記第2の判断機能により受信不用と判断された未受信の入力信号を供給する入力側の他の処理ユニットに宛てて前記不用通知を送信する、処理ユニット。
A self-synchronous processing unit,
A signal exchange unit on the input side for receiving a plurality of input signals respectively supplied from other processing units on the plurality of input sides;
A logic unit for generating an output signal based on the plurality of input signals;
An output side signal exchange for transmitting the output signal to at least one other processing unit on the output side;
A first determination function that determines an unreceived input signal that is unnecessary for generating an output signal based on an input signal received by the signal exchange unit on the input side;
A second determination function for determining an unreceived input signal that is not required to be received by a use notification indicating that the output signal is not received, received by the signal exchange unit on the output side, and
The signal exchange unit on the input side sends the waste notification to another processing unit on the input side that supplies an unreceived input signal that is judged not to be received by the first determination function or the second determination function. Send the processing unit.
請求項14において、前記出力側の信号交換部は、出力信号を、複数の出力側の他の処理ユニットに送信し、
前記第2の判断機能は、前記複数の出力側の他の処理ユニットの全てから前記不用通知を受信したときに、受信不用となる未受信の入力信号を定める、処理ユニット。
In Claim 14, the signal exchange unit on the output side transmits an output signal to other processing units on the plurality of output sides,
The second determination function is a processing unit that determines an unreceived input signal that is not required to be received when the use notification is received from all of the other processing units on the output side.
請求項14において、次のb1ないしb4のいずれかの処理により信号の転送を確認するハンドシェイク機能を、さらに有する処理ユニット。
b1 入力信号を受信すると、その入力信号の供給元の、入力側の他の処理ユニットに宛てて確認信号を送信する。
b2 未受信の入力信号の供給元の、入力側の他の処理ユニットに宛てて前記不用通知として前記確認信号を送信し、前記確認信号の送信先の、入力側の他の処理ユニットからダミーの入力信号を受信する。
b3 出力信号を送信し、前記出力信号の、送信先の出力側の他の処理ユニットから前記確認信号を受信する。
b4 出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し、ダミーの出力信号を送信する。
15. The processing unit according to claim 14, further comprising a handshake function for confirming signal transfer by any one of the following processes b1 to b4.
When the b1 input signal is received, a confirmation signal is transmitted to another processing unit on the input side that is the source of the input signal.
b2 The confirmation signal is transmitted as the non-use notification to the other processing unit on the input side of the supply source of the unreceived input signal, and a dummy signal is transmitted from the other processing unit on the input side to which the confirmation signal is transmitted. Receive the input signal.
b3 An output signal is transmitted, and the confirmation signal is received from another processing unit on the output side of the transmission destination of the output signal.
b4 When the confirmation signal is received when the output signal is not transmitted, it is recognized as the unnecessary notification and a dummy output signal is transmitted.
請求項14において、未受信の入力信号により処理できない入力信号を記憶するためのメモリを、さらに有する、処理ユニット。   15. The processing unit according to claim 14, further comprising a memory for storing an input signal that cannot be processed by an unreceived input signal. 請求項14において、受信した信号のうち、処理できない信号をイベントトークンとして記憶するためのメモリを、さらに有する、処理ユニット。   15. The processing unit according to claim 14, further comprising a memory for storing, as an event token, a signal that cannot be processed among received signals. 自己同期型の処理ユニットであって、
入力側の他の処理ユニットから、入力信号を受信する入力側の信号交換部と、
前記入力信号を、少なくとも1つの出力側の他の処理ユニットに送信する出力側の信号交換部とを有し、
前記入力側の信号交換部は、前記出力側の信号交換部が受信した出力信号の不用通知により、未受信の入力信号を供給する入力側の他の処理ユニットに宛てて不用通知を送信する、処理ユニット。
A self-synchronous processing unit,
A signal exchange unit on the input side for receiving an input signal from another processing unit on the input side;
An output side signal exchange unit for transmitting the input signal to at least one other processing unit on the output side;
The signal exchange unit on the input side transmits a waste notification to another processing unit on the input side that supplies an unreceived input signal based on the waste notification of the output signal received by the signal exchange unit on the output side. Processing unit.
請求項14に記載の処理ユニットを少なくとも1つ含む複数の処理ユニットと、
さらに、前記複数の処理ユニットの間の信号を伝達するためのルーチングマトリクスと、を有する集積回路ユニット。
A plurality of processing units comprising at least one processing unit according to claim 14;
And a routing matrix for transmitting signals between the plurality of processing units.
請求項20において、前記複数の処理ユニットは、さらに、請求項19に記載の処理ユニットを少なくとも1つ含む、集積回路ユニット。   21. The integrated circuit unit according to claim 20, wherein the plurality of processing units further include at least one processing unit according to claim 19. 請求項20において、前記ルーチングマトリクスは、前記複数の処理ユニットに含まれる少なくとも一部の処理ユニットの間の接続を変更することにより、当該集積回路ユニット内の回路を再構成する、集積回路ユニット。   21. The integrated circuit unit according to claim 20, wherein the routing matrix reconfigures a circuit in the integrated circuit unit by changing a connection between at least some of the processing units included in the plurality of processing units. 複数の処理ユニットを有し、それぞれの処理ユニットは請求項19に記載の処理ユニットであり、
さらに、前記複数の処理ユニットの間の信号を伝達するためのルーチングマトリクスを含む、集積回路ユニット。
A plurality of processing units, each processing unit is a processing unit according to claim 19,
An integrated circuit unit further comprising a routing matrix for transmitting signals between the plurality of processing units.
自己同期型の複数の処理ユニットを有するシステムを制御する方法であって、
前記複数の処理ユニットの1つの処理ユニットは、複数の入力側の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、前記複数の入力信号に基づき、出力信号を生成するための論理部と、前記出力信号を、少なくとも1つの出力側の処理ユニットに送信するための出力側の信号交換部とを有し、
当該方法は、
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号が発生する第1の要因、または、前記出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号が発生する第2の要因により、その入力信号を供給する予定の入力側の処理ユニットに宛てて、前記不用通知を送信することを含む方法。
A method for controlling a system having a plurality of self-synchronous processing units comprising:
One processing unit of the plurality of processing units includes an input-side signal exchange unit for receiving a plurality of input signals respectively supplied from a plurality of input-side processing units, and an output based on the plurality of input signals A logic unit for generating a signal; and an output side signal exchange unit for transmitting the output signal to at least one output side processing unit;
The method is
The first factor that an unreceived input signal that is unnecessary for generation of an output signal is generated by the input signal received by the input-side signal exchange unit, or the output signal received by the output-side signal exchange unit Due to a second factor that causes an unreceived input signal that is not required to be received due to a waste notification indicating that the signal is not used, the waste notification is transmitted to the processing unit on the input side that is scheduled to supply the input signal. Including methods.
請求項24において、前記論理部により前記出力信号が生成される都度、その出力信号をパルス信号で送信することをさらに含む、方法。   25. The method of claim 24, further comprising transmitting the output signal as a pulse signal each time the output signal is generated by the logic unit. 請求項24において、前記複数の処理ユニットの間で信号の転送を確認することを含み、前記信号の転送を確認することは以下を含む、方法。
入力信号を受信すると、その入力信号の供給元の入力側の処理ユニットに宛てて確認信号を送信する、
未受信の入力信号の供給元の、入力側の処理ユニットに宛てて前記不用通知として前記確認信号を送信し、前記確認信号の送信先の、入力側の処理ユニットからダミーの入力信号を受信する、
出力信号を送信し、前記出力信号の送信先の、出力側の処理ユニットから前記確認信号を受信する、
出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し、ダミーの出力信号を送信する。
25. The method of claim 24, comprising confirming transfer of signals between the plurality of processing units, wherein confirming transfer of the signals includes:
When an input signal is received, a confirmation signal is transmitted to the processing unit on the input side of the input signal supplier.
The confirmation signal is transmitted as the non-use notification to the processing unit on the input side of the supply source of the unreceived input signal, and the dummy input signal is received from the processing unit on the input side of the transmission destination of the confirmation signal. ,
Transmitting the output signal, receiving the confirmation signal from the processing unit on the output side of the output signal destination;
When the confirmation signal is received when the output signal is not transmitted, it is recognized as the unnecessary notification and a dummy output signal is transmitted.
自己同期型の処理ユニットが他の自己同期型の処理ユニットとの間で信号の転送を確認することを含む、信号を伝達するための方法であって、
前記自己同期型の処理ユニットは、複数の入力側の他の処理ユニットからそれぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、前記複数の入力信号に基づき、出力信号を生成するための論理部と、前記出力信号を、少なくとも1つの出力側の他の処理ユニットに送信するための出力側の信号交換部とを有し、
前記信号の転送を確認することは、以下を含む、方法。
前記入力側の信号交換部により入力信号を受信すると、その入力信号の供給元の入力側の他の処理ユニットに宛てて確認信号を送信すること、
入力信号により、出力信号の生成に不用となる未受信の入力信号が発生する第1の要因、または、前記出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信号が発生する第2の要因により、前記未受信の入力信号の供給元の、入力側の他の処理ユニットに宛てて前記不用通知として前記確認信号を送信し、前記確認信号の送信先の入力側の他の処理ユニットからダミーの入力信号を受信すること、
出力信号を送信し、前記出力信号の送信先の、出力側の他の処理ユニットから前記確認信号を受信すること、
出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し、ダミーの出力信号を送信すること。
A method for communicating a signal, comprising: a self-synchronous processing unit confirming the transfer of a signal to another self-synchronous processing unit,
The self-synchronous processing unit includes an input-side signal exchange unit for receiving a plurality of input signals respectively supplied from a plurality of other input-side other processing units, and an output signal based on the plurality of input signals. A logic unit for generating the output signal, and an output-side signal exchange unit for transmitting the output signal to at least one other processing unit on the output side,
Confirming the transfer of the signal includes:
When an input signal is received by the signal exchange unit on the input side, a confirmation signal is transmitted to another processing unit on the input side of the input signal supply source,
Unnecessary reception due to a first factor that an unreceived input signal that is not necessary for generating an output signal is generated by the input signal, or a notification that indicates that the output signal is not received, which is received by the signal exchange unit on the output side. The confirmation signal is transmitted as the non-use notification to the other processing unit on the input side of the supply source of the unreceived input signal due to the second factor that causes the unreceived input signal to be Receiving a dummy input signal from another processing unit on the input side of the signal transmission destination;
Transmitting an output signal and receiving the confirmation signal from another processing unit on the output side of the transmission destination of the output signal;
If the confirmation signal is received when the output signal is not yet transmitted, the confirmation signal is recognized as the unnecessary notification, and a dummy output signal is transmitted.
請求項27において、前記論理部により前記出力信号が生成される都度、その出力信号をパルス信号で送信することを含む、方法。   28. The method of claim 27, comprising transmitting the output signal as a pulse signal each time the output signal is generated by the logic unit.
JP2007537710A 2005-09-30 2006-09-29 System having a self-synchronous processing unit Active JP4930907B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007537710A JP4930907B2 (en) 2005-09-30 2006-09-29 System having a self-synchronous processing unit

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005288443 2005-09-30
JP2005288443 2005-09-30
JP2007537710A JP4930907B2 (en) 2005-09-30 2006-09-29 System having a self-synchronous processing unit
PCT/JP2006/319492 WO2007037384A1 (en) 2005-09-30 2006-09-29 System having a self-synchronization type processing unit

Publications (2)

Publication Number Publication Date
JPWO2007037384A1 true JPWO2007037384A1 (en) 2009-04-16
JP4930907B2 JP4930907B2 (en) 2012-05-16

Family

ID=37899804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007537710A Active JP4930907B2 (en) 2005-09-30 2006-09-29 System having a self-synchronous processing unit

Country Status (2)

Country Link
JP (1) JP4930907B2 (en)
WO (1) WO2007037384A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010082575A1 (en) * 2009-01-14 2010-07-22 日本電気株式会社 Asynchronous logic circuit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0758458B2 (en) * 1988-07-21 1995-06-21 三菱電機株式会社 Data transfer device and pipeline processing device using the same
JPH04153764A (en) * 1990-10-18 1992-05-27 Nec Corp System for increasing processing speed of decentralized cpu
JPH07152788A (en) * 1993-06-28 1995-06-16 At & T Global Inf Solutions Internatl Inc Parallel retrieval method and parallel- processing computer system using said method
JP3504088B2 (en) * 1996-10-30 2004-03-08 株式会社東芝 Logic circuit
JP3436893B2 (en) * 1999-03-10 2003-08-18 株式会社シーエスケイ Three-valued logic operation unit

Also Published As

Publication number Publication date
WO2007037384A1 (en) 2007-04-05
JP4930907B2 (en) 2012-05-16

Similar Documents

Publication Publication Date Title
US9111051B2 (en) Asynchronous protocol converter
US8284766B2 (en) Multi-core processor and method of communicating across a die
US10027433B2 (en) Multiple clock domains in NoC
US7386704B2 (en) Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method
JP2006515941A (en) Pipeline accelerator having multiple pipeline units, associated computing machine, and method
US20070180310A1 (en) Multi-core architecture with hardware messaging
US8225259B1 (en) Apparatus and methods for time-multiplex field-programmable gate arrays with multiple clocks
CN111290986B (en) Bus interconnection system based on neural network
CN113811859A (en) Control flow barrier and reconfigurable data processor
US8593176B2 (en) One phase logic
KR20230002937A (en) Compute dataflow architecture
JP2007507795A (en) Low power shared link arbitration
CN112835848A (en) Inter-chip interconnection bypass system of interconnection bare chip and communication method thereof
Pontes et al. SCAFFI: An intrachip FPGA asynchronous interface based on hard macros
JP3000961B2 (en) Semiconductor integrated circuit
US8589611B2 (en) Asynchronous logic circuit, semiconductor circuit, and path calculation method in asynchronous logic circuit
JP4930907B2 (en) System having a self-synchronous processing unit
US8402164B1 (en) Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit
WO2009110588A1 (en) Data transfer apparatus and method, and semiconductor circuit
TW202226032A (en) Micro-network-on-chip and microsector infrastructure
CN113114187B (en) Asynchronous pulse transmission blocking unit, control method thereof and superconducting single-flux quantum circuit
Gibiluka Design and implementation of an asynchronous noc router using a transition-signaling bundled-data protocol
JP2002141922A (en) Loop type path system
US8341323B2 (en) Method and apparatus for data movement in a system on a chip
JP5472487B2 (en) Semiconductor device and information processing apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090924

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110818

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

R150 Certificate of patent or registration of utility model

Ref document number: 4930907

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120205

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350