JPWO2007037384A1 - System having a self-synchronous processing unit - Google Patents
System having a self-synchronous processing unit Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling 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.
本発明の一形態は、自己同期型の複数の処理ユニットを有するシステムであり、複数の入力信号を受信するための入力側の信号交換部と、これら複数の入力信号に基づき、出力信号を生成するための論理部と、出力側の信号交換部とを有する。処理ユニットの論理部に実装された論理が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
集積回路ユニット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
ルーチングマトリクス5は、配線6wがマトリクスに配列されたものに限定されない。例えば、PUs10がネットワークのノードを構成するように接続するものであっても良い。ルーチングマトリクス5は、複数のPU10の間の信号の交換を可能とする有線の通信システムでもある。PUs10が分散している場合は、無線による通信システムでPUs10を接続することも可能である。有線または無線の通信システムによりPUs10の接続を再構成することにより、PUs10により構成される回路を変更できる。
The
図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
論理部12は、入力信号AdおよびBdによりそれぞれ与えられる入力Aおよび入力Bに基づき、出力Yを決定する。出力インターフェイス13は、論理部12の出力Yを示す出力信号Ydを出力側の他の処理ユニット(PU)10yに送信する。さらに、PU10は、PU10の内部動作を制御する制御ユニット15を備えている。また、PU10は、未受信の信号により処理を進めることができない信号を記憶するキューイング用のメモリ14を備えている。
The
制御ユニット15は、第1の判断機能18と、第2の判断機能19とを含む。第1の判断機能18は、入力インターフェイス11が受信した入力信号AdまたはBdにより、出力信号Ydの生成に不用となる未受信の入力信号を定める。第2の判断機能19は、出力インターフェイス13が受信した、出力信号の不用通知により、受信不用となる未受信の入力信号を定める。
The
さらに、制御ユニット15は、信号の送受信を確認するためのハンドシェイク機能17を備えている。ハンドシェイク機能17は、入力側のPUs10aおよび10bとの間で入力信号AdおよびBdの送受信をそれぞれ確認する。また、ハンドシェイク機能17は、出力側のPU10yとの間で出力信号Ydの送受信を確認する。
Further, the
このハンドシェイク機能17は、入力信号Adを受信すると、その入力信号Adの供給元の入力側のPU10aに宛てて確認信号(アクノリッジ信号)Akを送信する。この処理により、PU10は、PU10aとの間で一回の入力信号の交換(ハンドシェイク)を行う。すなわち、この処理がPU10とPU10aとの間のハンドシェイク(プロトコル)の1つである。
When the
同様に、ハンドシェイク機能17は、入力信号Bdを受信すると、その入力信号Bdの供給元の入力側のPU10bに宛てて確認信号(アクノリッジ信号)Bkを送信する。この処理がPU10とPU10bとの間のハンドシェイク(プロトコル)の1つである。また、ハンドシェイク機能17は、出力信号Ydを送信し、送信先の出力側のPU10yからアクノリッジ信号Ykを受信する。この処理が、PU10とPU10yとの間のハンドシェイク(プロトコル)の1つである。
Similarly, when the
さらに、ハンドシェイク機能17は、第1の判断機能18または第2の判断機能19により不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて不用通知を送信する。ハンドシェイク機能17は、受信不用と判断された入力側のPU10aおよび10bの一方または両方に対して、アクノリッジ信号AkおよびBkの一方または両方を不用通知(ドントケア通知)として送信する。さらに、ハンドシェイク機能17は、入力信号が未受信の状態でアクノリッジ信号を送信した先のPUs10aおよび10bの一方または両方から供給されるダミーの入力信号を受信する。これらの処理が、PU10とPU10aおよび/または10bとの間のハンドシェイク(プロトコル)の1つである。
Further, the
また、ハンドシェイク機能17は、出力側のPU10yからドントケア通知を受け取る。ハンドシェイク機能17は、出力信号Ydが未送信のときにアクノリッジ信号Ykを受信すると、ドントケア通知として認識する。ハンドシェイク機能17は、第2の判断機能19にドントケア通知を伝達すると共に、ダミーの出力信号Ydを送信する。この処理が、PU10およびPU10yとの間のハンドシェイク(プロトコル)の1つである。
Further, the
制御ユニット15は、ルーチングマトリクス5を介してコンフィグレーションメモリ2から供給されるコンフィグレーションデータ7によりPU10の処理内容を変更するための再構成機能16を備えている。再構成機能16は、コンフィグレーションデータ7に基づき、PU10の論理部12のロジックを変更する。また、再構成機能16は、入力インターフェイス11および出力インターフェイス13に接続される処理ユニットを変更する。これらにより、システム1において複数のPUs10により構成されるデータパスが再構成され、データパスの機能が変更される。この例では、入力インターフェイス11および出力インターフェイス13は、ルーチングマトリクス5を介して他のPUsと接続されている。ルーチングマトリクス5の接続ユニット6sの構成を変えることによっても、システム1において複数のPUs10により構成されるデータパスを再構成できる。
The
図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-
図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
この自己同期型の素子90において、入力信号と出力信号とは入力側か出力側かの相違だけで同じデータ信号である。これらのデータ信号とアクノリッジ信号とが伝送途中で消失したり増殖したりしないという保証と、適当な遅延モデルに対応した回路設計がなされていれば、この自己同期型素子90を用いたシステムは正しく動作する。
In this self-
図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-
出力インターフェイス13は、プラス電位の電源線と、マイナス電位の電源線とに接続される。出力インターフェイス13は、出力信号Ydとして論理「1(真)」を伝送する際にはプラスのパルスを、論理「0(偽)」を伝送する際にはマイナスのパルスを出力する。したがって、データ線5aは、データ信号Ad、BdおよびYdとして、論理「1」を伝送するプラスのパルスと、論理「0」を伝送するマイナスのパルスを伝播する。論理と電位との関係は例示に過ぎず、関係を逆にすることは可能である。
The
図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-
入力信号AdおよびBdを受信すると、ステップ26において、PU10は、出力信号Ydを送信する。ステップ27においてアクノリッジ信号Ykを受信してハンドシェイクは完了する。
When receiving the input signals Ad and Bd, in
このように、1線式のPU10の基本的な動作は、一回の処理で、全ての入出力線で1回ずつ信号を送受信することである。すなわち、PU10においては、全ての入出力線で1回ずつ信号伝送することが、ユーザークロックの1サイクルに相当する。このため、2線式の自己同期設計用の素子とは異なり、同期式素子と同等の、「全ての信号線が1クロックサイクルに1回ずつ値の伝送を行う」という性質を持つ。したがって、PU10を用いたシステムについては、クロック同期型のシステム設計を適用できる。
As described above, the basic operation of the one-
クロック同期型のシステム設計を積極的に実現するため、以下では、PU10の基本動作は、全入力について1回ずつ信号を受け取ってから出力を1回出すものとし、片方の入力だけどんどん先行することは認めないし、出力値を変化させる必要の有無によらず毎回、出力を伝送する。
In order to actively implement a clock synchronous system design, the basic operation of the
本実施形態では、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
図6は、図2に示した2入力1出力の自己同期型のPU10の内部動作に関するフローチャートである。このフローチャートは、ハンドシェイク逆流機能を含めた内部動作を示す。まず、ステップ31において、PU10は、入力データ線AdおよびBdと、出力アクノリッジ線Ykからのパルスを待つ。
FIG. 6 is a flowchart regarding the internal operation of the self-
図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
一方、ステップ36において、入力Aの値だけで出力Yの値が確定し、入力Bの値がドントケアとなることがある。すなわち、ステップ36において、入力信号Adにより出力信号Ydが確定し、入力信号Bdがドントケアであると、PU10は、ステップ38において、入力信号Bdを待つことなく、アクノリッジ信号Bkを送信する。それと同時に、ステップ41において、PU10は、確定した出力値をパルス信号Ydとして送信する。ステップ38において送信されるアクノリッジパルスBkは、「データパルスBdを受け取った」という受領応答メッセージではなく、「入力Bはドントケアである」という通知メッセージである。
On the other hand, in
その後、ステップ31に戻って、PU10は、アクノリッジパルスYkと、データパルスBdを待つ。このデータパルスBdは、入力Bの論理値を示すものではなく、「入力Bの値はドントケアである」という通知に対する了解応答メッセージであり、プラスのパルス信号でもマイナスのパルス信号でもよい。
Thereafter, returning to step 31, the
ステップ31において、入力信号Adよりも先に、入力信号Bdが来た場合のPU10の動作は、上記において、入力信号Adと入力信号Bdが入れ替わっただけのものになる。なお、以降において、入力線AおよびBにより伝播されるパルス信号を入力信号AdおよびBdとして説明し、出力線Yにより伝播されるパルス信号を出力信号Ydとして説明する。アクノリッジ信号Ak、BkおよびYkにおいても同様である。
In
上述の動作から分かるように、ステップ31において、出力信号を確認したことを示すハンドシェイク(プロトコル)を目的としないアクノリッジ信号Ykが来る場合がある。その場合のアクノリッジ信号Ykは「出力Yの値はドントケアである」という、出力側のPU10yからの通知である。そこで、ステップ52において、PU10は、ドントケア了解応答としてダミーの出力信号Ydを送信する。この出力信号Ydのパルス信号はプラスおよびマイナスのどちらでもよい。
As can be seen from the above-described operation, in
ダミーの出力信号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
したがって、この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
Type 1) When receiving the input signal Ad or Bd, the
Type 2) The
Type 3) The
Type 4) When the acknowledge signal Yk is received when the output signal Yd is not transmitted, the
タイプ1およびタイプ3のハンドシェイクは通常のデータパルスの送受信に関するものである。タイプ2およびタイプ4のハンドシェイクは、ドントケア通知をデータパルスとアクノリッジパルスを用いて伝播しようとするためのものである。
入力側のPU10bが正規の入力信号Bdを出すと同時に、PU10が「入力Bの値はドントケアである」という通知のアクノリッジ信号Bkを出すかもしれない。そのケースでは、送出側のPU10bはアクノリッジ信号Bkを正規の受領応答と勘違いする。受取側のPU10は入力信号Bdをドントケア了解応答と勘違いする。そうやって互いに勘違いしても、ユーザークロック1サイクル分のハンドシェイクが完了したことに変わりは無く、システム1の動作に何ら支障はない。したがって、この勘違いを防ぐために何らかの対策を講じる必要はない。
The
図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
ただし、ステップ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
一方、PU10は、2番目の入力信号Adに対してアクノリッジ信号Akを先行して送信しても良い。この場合、PU10は、入力側のPU10bに対する2番目のドントケア通知をキューイング用のメモリ14に格納することが可能である。これにより、PU10aおよびその上流の処理ユニットにおいては処理が進む。この場合、ステップ32において、PU10は、最初のドントケア通知のアクノリッジ信号Bkに対して、入力信号Bdを受信した段階で、ステップ44において、キューイング用のメモリ14に格納された次のドントケア通知のアクノリッジ信号Bkを出力することができる。このドントケア通知により、PU10bおよびその上流側の処理ユニットの処理を進めることができる。
On the other hand, the
出力信号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
また、以下に示すように、信号を受信しながら、処理を進めることができずアクノリッジ信号を送信せずにイベントトークンの状態で保持している信号がありうる。その場合は、ステップ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
受信した信号によりハンドシェイクが完了しない場合は、新しいサイクルが開始されたことになる。まず、ステップ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
ステップ34において、受信した信号が、入力信号AdまたはBdであればデータ入力である。受信した信号が、アクノリッジ信号Ykであれば、それはドントケア通知である。入力信号であれば、PU10は、ステップ35においてアクノリッジ信号AkまたはBkを出力する。
In
ステップ36において、PU10は、受信した入力信号が、他方の入力信号を不用(ドントケア)にするものであるか否かを判断する(第1の要因の判断)。ドントケアの入力信号が発生すると、PU10は、ステップ37において、その未受信の入力信号に対してドントケア通知を送信できるか否か判断する。例えば、上記のように入力信号Adを連続して受信した場合は、PU10は、入力側のPU10bに対してアクノリッジである入力信号Bdを受信するまで2番目のドントケア通知となるアクノリッジ信号Bkを出力できない。したがって、ステップ45において、PU10は、入力側のPU10bに対するドントケア通知をキューイング用のメモリ14に格納し、ステップ44において送信する。ドントケアとなった入力信号の供給元となる入力側の処理ユニットに対してドントケア通知を送信できる状況であれば、PU10は、ステップ38においてアクノリッジ信号を送信する。
In
ステップ39において、PU10は、出力信号Ydが決定されるか否かを判断する。受信した入力信号により、未受信の入力信号がいずれもドントケアでなければ、未受信の入力信号が受信されるまで出力信号Ydは決定されない。このため、ステップ46において、PU10は、入力状態をメモリ14で保存し、次の信号を待つ。なお、未受信である複数の入力信号の一方の入力信号がドントケアとなっても、出力信号Ydが決定されない論理がある。例えば、セレクタである。その場合も、PU10は、入力状態をメモリ14で保存し、次の信号を待つ。
In
出力信号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
なお、ステップ41において、出力信号は、ドントケア通知が通知されていない出力側の処理ユニットにのみ送信される。すなわち、ドントケア通知が通知されている出力側の処理ユニットには出力信号は送信されない。それと共に、後述するステップ54において、キューイング用のメモリに格納されていた、他の出力側の処理ユニットからのドントケア通知は解除される。この機能は、1出力タイプかつ1ファンアウトのPU10およびそれを用いたシステムにおいては省くことができる機能である。一方、この機能は多出力やマルチファンアウトのPUおよびそれらを含むシステムで必要である。例えば、片方の出力側のPUからドントケア通知が来てドントケア了解応答を返した後で、入力信号Adが来て出力信号が決まった場合は、他方の出力側のPUにのみ、正規の出力信号が送信される。
In
PU10が正規の出力信号Ydを出すと同時に、出力側のPU10yが「出力Yの値はドントケアである」という通知のアクノリッジ信号Ykを出すかもしれない。そのケースでは、入力信号のときと同様に、互いにハンドシェイクタイプを勘違いすることになる。しかしながら、システムの動作に何ら支障はない。したがって、この勘違いを防ぐために何らかの対策を講じる必要はない。
At the same time as the
上述したように、ステップ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
ドントケア通知を逆流するプロセスにおいて、ドントケア通知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
また、図6に示されているステップ53および54は、1出力タイプかつ1ファンアウトのPU10では省くことができる機能である。多出力ないしマルチファンアウトの処理ユニットにおいて、入力信号がドントケアとなるのは、典型的には、全ての出力信号がドントケアになった場合である。したがって、PU10が多出力の処理ユニットの場合は、ステップ53において、上流に対するドントケア通知の送信の可否を判断する。全ての出力側の処理ユニットからドントケア通知が通知されていない場合は、ステップ54において出力側からのドントケア通知をキューイング用のメモリ14に格納し、次の信号を待つ。
論理部12の論理が2入力ANDであり、入力信号Adが「0(偽)」であれば、他方の入力信号Bdはドントケアとなる。論理部12の論理が2入力ORであり、入力信号Adが「1(真)」であれば、他方の入力信号Bdはドントケアとなる。これらのケースでは、他方の入力信号がドントケアになると共に、出力信号Ydは決定される。したがって、2入力のPU10としては、ドントケアの発生の判断と、出力信号の決定の判断とを1つのステップで行うことができる。
If the logic of the
これらのPU10の内部動作のうち、ハンドシェイクに関する制御はハンドシェイク機能17が行う。また、ステップ36から38において、ドントケア通知を発生するための制御は第1の判断機能18が行う。さらに、ステップ52から57におけるドントケア通知を逆流するための制御は第2の判断機能19が行なう。
Of these internal operations of the
2入力1出力のPU10を複数組み合わせることにより、多入力の論理を実現する処理ユニットを構成することができる。あるいは、処理ユニットとして多入力のものを用意することも可能である。例えば、論理部12の論理が2to1セレクタであり、入力信号としてセレクタ制御信号を含めて3つの信号が入力される処理ユニットを構成できる。このケースでは、セレクタ制御信号が入力信号Adを選択すれば入力信号Bdはドントケアになる。しかしながら、出力信号Ydは入力信号Adを受信するまで決まらない。したがって、ステップ39を設けておくことが望ましい。
By combining a plurality of 2-input 1-
論理部12の論理が2入力XORであれば、両方の入力信号AdおよびBdが決まらないと出力信号Ydは決まらない。したがって、一方の入力信号により他方の入力信号はドントケアにならない。このため、PU10の内部動作の内、第1の判断機能18によるステップ36から38の処理を省くことが可能であり、ドントケア通知に関しては、ステップ52以降の逆流させる処理が主となる。
If the logic of the
論理部12がNOTのときは、1入力なのでPU10の一方の入力のみが利用される。このため、内部処理のフローはさらに単純となる。すなわち、PU10の内部動作の内、ステップ36から38の処理を省くことが可能である。ドントケア通知に関しては、ステップ52以降の逆流させる処理だけになる。また、NOTゲートを自己同期型の素子として実装する場合は、PU10を採用して、このフローチャートを律儀に実行する回路を作るまでもない。
When the
図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
自己同期型のシステムにおける信号分岐(マルチファンアウト)は、通常の同期式回路とは異なる。同期式回路の場合、図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
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-
バッファ用の処理ユニット64は、入力信号Adが到着した時点でアクノリッジ信号Akを返し、ドントケア通知(アクノリッジ信号)Ykが到着した時点でドントケア了解応答(出力信号)Ydを返す。これにより、バッファ無しで長距離ハンドシェイクするのに比べて、ハンドシェイクのターンアラウンドタイムを削減でき、システムが高速に動作するようになる。
The
図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
多数のPU10を含むシステム1の一例は、PU10の論理を変更することにより、多段の組み合わせ論理回路を実装できるものである。このシステムにおいては、論理回路を評価する際に、入力段から出力段に向かって「データ−>アクノリッジ」というハンドシェイクが行われていくだけでなく、出力段から入力段に向かって「ドントケア通知→了解応答」というふうにハンドシェイクを逆流させることもできる。このため、従来のセルフタイムド設計実装方式の弱点であったハンドシェイクオーバヘッド問題を低減することができる。
An example of the
この設計手法は、デバイス製造者に対して、「パルスが伝送途中で消失したり増殖したりしない」という保証だけでなく、「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
また、上記のPU10を用いたシステム1では、データ線が1線(1本)で構成できるように、データ線をプラス電源とマイナス電源の2電源仕様として説明している。図3に示した2線式の自己同期素子、すなわち、単一電源のデータ線2本1組という仕様の処理ユニットを用いたシステムでも、「ハンドシェイク逆流機能付き同期式回路実装用セルフタイムド素子」を構築することは可能である。ただし、その場合、デバイス製造者に対して、上記の保証を要求した上さらに、「2本1組のデータ線に相次いで送り出されたパルスは、受信側素子に同じ順序で届く」という保証も要求する。
Further, in the
たとえば、出力信号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
さらに、PU10では、受信した各信号による処理を可能な限り進めるようにしている。その1つの方法は、図6のステップ33、48および49に示したように、連続して信号を受信したときに、その事実をイベントトークンとして記憶するが、確認応答のアクノリッジ信号を送信しないことである。
Furthermore, the
たとえば、入力側の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
PU10では、受信した各信号による処理を進める2つの目の方策として、キューイング用のメモリ14を設けている。PU10は、キューイング用メモリ14を利用できる限り、受信した信号に対して了解応答を送信する。すなわち、ステップ33においては、例えば、入力信号Adに対する受領アクノリッジ信号Akを返さないことにより、「アクノリッジを返してないから再び入力Adが来ることはあり得ない」のを利用して、他の信号、例えばアクノリッジ信号Ykを待つ。これに対し、入力信号Adを送出したPU10aは、受領アクノリッジ信号Akを待っている。したがって、アクノリッジ信号Ykの受信を待たずに、アクノリッジ信号Akを返すことにより、送出側のPU10aの処理を進めさせることができる。一方、受信した入力信号Adにより出力されることになる信号は、ステップ45または47においてキューイング用のメモリ14にストアされ、送信待ちになる。
In the
また、ドントケア通知のアクノリッジ信号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
図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
図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
図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
その後、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
図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
イベントトークンの処理は重要である。アクノリッジ信号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
以上は、組み合わせ論理を実装するための自己同期式の処理ユニットである。したがって、フリップフロップを実装するための自己同期式の素子を提供することにより、同期式のユーザー回路を、自己同期式のシステムに実装できる。フリップフロップは、バッファ回路と同様の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
図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
入力信号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
図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
図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
自己同期型のフリップフロップにおいても、処理をシーケンシャルに進める入力信号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
図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
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
図19(d)においては、PU10cの入力側、すなわち上流のPU10dが、出力のドントケア通知を受けて、未受信の入力DAをドントケア扱いとする。このため、ドントケア通知のアクノリッジ信号DAkが出力される。このとき、その入力側のPU10eが出力EYに正規データパルスを出そうとしていたところだったので、ドントケア通知のアクノリッジ信号と、正規の出力信号が入れ違いになる。すなわち、PU10dでは、正規の出力信号をドントケア了解応答とみなし、PU10eでは、ドントケア通知をデータ受領のアクノリッジ信号とみなす。
In FIG. 19D, the input side of the
図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
これらの図からわかるように、図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-
図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
図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
図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
図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
図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
図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
図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
このように、非同期のシステム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
図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
図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
このように、同期式回路において、グローバルクロックを止めたり再開したりするのに相当する処理を、グローバルクロックの存在しない自己同期式のシステム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
また、このシステム1において、PU10を接続するルーチングマトリクス5を構成するデータ線およびアクノリッジ線は、元々の同期式回路の1サイクルに相当する処理の間に1回だけパルスの伝送を行う。したがって、元々の同期式回路を普通に同期式に実装した場合や、2線式の自己同期設計方式で自己同期回路を実装した場合のように、素子遅延や配線遅延のアンバランスによってスパイクが大量に発生して電力を消費することも抑制できる。
Further, in this
このように、本発明の一形態は、同期式設計で使われる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-
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.
前記第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.
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.
前記出力側の信号交換部は、出力側の処理ユニットを変更する機能を備えている、システム。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つの出力側の他の処理ユニットに送信するための出力側の信号交換部と、
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用となる未受信の入力信号を定める第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.
前記第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.
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.
入力側の他の処理ユニットから、入力信号を受信する入力側の信号交換部と、
前記入力信号を、少なくとも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.
さらに、前記複数の処理ユニットの間の信号を伝達するためのルーチングマトリクスと、を有する集積回路ユニット。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.
さらに、前記複数の処理ユニットの間の信号を伝達するためのルーチングマトリクスを含む、集積回路ユニット。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.
入力信号を受信すると、その入力信号の供給元の入力側の処理ユニットに宛てて確認信号を送信する、
未受信の入力信号の供給元の、入力側の処理ユニットに宛てて前記不用通知として前記確認信号を送信し、前記確認信号の送信先の、入力側の処理ユニットからダミーの入力信号を受信する、
出力信号を送信し、前記出力信号の送信先の、出力側の処理ユニットから前記確認信号を受信する、
出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し、ダミーの出力信号を送信する。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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010082575A1 (en) * | 2009-01-14 | 2010-07-22 | 日本電気株式会社 | Asynchronous logic circuit |
Family Cites Families (5)
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 |
-
2006
- 2006-09-29 WO PCT/JP2006/319492 patent/WO2007037384A1/en active Application Filing
- 2006-09-29 JP JP2007537710A patent/JP4930907B2/en active Active
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 |