WO2007037384A1 - System having a self-synchronization type processing unit - Google Patents

System having a self-synchronization type processing unit Download PDF

Info

Publication number
WO2007037384A1
WO2007037384A1 PCT/JP2006/319492 JP2006319492W WO2007037384A1 WO 2007037384 A1 WO2007037384 A1 WO 2007037384A1 JP 2006319492 W JP2006319492 W JP 2006319492W WO 2007037384 A1 WO2007037384 A1 WO 2007037384A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal
input
output
processing unit
received
Prior art date
Application number
PCT/JP2006/319492
Other languages
French (fr)
Japanese (ja)
Inventor
Hiroki Honda
Original Assignee
Ipflex Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ipflex Inc. filed Critical Ipflex Inc.
Priority to JP2007537710A priority Critical patent/JP4930907B2/en
Publication of WO2007037384A1 publication Critical patent/WO2007037384A1/en

Links

Classifications

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

Definitions

  • the present invention relates to a system having a self-synchronous type, that is, an asynchronous type processing unit.
  • a digital circuit design method As a digital circuit design method, a synchronous design method in which the entire system is controlled by a global clock is widely adopted.
  • self-timed (self-synchronous) design methods that take the command of clocks as a binding and aim for higher performance and lower power consumption by releasing the bindings, that is, asynchronous design methods are also being considered.
  • One of the advantages of self-timed design is that the connected circuit elements perform handshake to adjust timing, allowing design that does not depend on element delay or wiring delay.
  • Self-timed design can also overcome some of the disadvantages and disadvantages of synchronous design. Disadvantages of synchronous design are, for example, malfunction when the computation time exceeds the clock period, and waiting for the clock boundary when the computation is completed earlier than the clock period.
  • One embodiment of the present invention is a system having 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 a plurality of input-side processing units, and a plurality of input signals. And an output side signal exchanging unit for transmitting the output signal to at least one output side processing unit.
  • the processing unit further includes 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 input-side signal exchange unit, and the output-side signal exchange unit receives 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 input processing unit that supplies the unreceived input signal that has been judged not to be received by the first determination function or the second determination function.
  • Another aspect of the present invention is a self-synchronous processing unit.
  • One type of processing unit is 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.
  • Output signal exchange unit for transmitting output signals to other processing units, first determination function for determining unreceived input signals that are not required for generating output signals, and notification of unnecessary output signals
  • a second determination function for determining an unreceived input signal that is not required for reception.
  • the signal exchange unit on the input side sends a waste notification to another processing unit on the input side that supplies an unreceived input signal that is judged as unnecessary by the first judgment function or the second judgment function. .
  • 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 notch (including an inverter) or a branch.
  • This processing unit forwards the waste notification sent 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 the notification of the unnecessary output signal received by the output-side signal exchange unit. Not used for other processing units on the input side that supply unreceived input signals Send a notification.
  • an output signal is generated when a waste notification is received from all output-side processing units. It becomes useless. 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.
  • 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 the input signal received by the signal exchange unit on the input side, or received by the signal exchange unit on the output side. Due to the second factor that an unreceived input signal that is not received due to the unnecessary notification indicating that the output signal is not used is generated, it is sent to the processing unit on the input side that is scheduled to supply the input signal. Including sending.
  • Propagation notification can be added to a handshake protocol for transferring a data signal between processing units by sending a confirmation signal (a data signal) when no data is input. .
  • a confirmation signal a data signal
  • 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 one of the following processes pl to p4.
  • a confirmation signal is sent as an unnecessary notification to the input processing unit (other processing unit) that is the source of the unreceived input signal, and the input processing unit (other processing unit) (Unit) Force Receives dummy input signal.
  • a signal transmission method including a self-synchronous processing unit confirming transfer of a signal with another self-synchronous processing unit. It is a method. Confirming signal transfer (handshaking) includes:
  • the first factor that causes an unreceived input signal that is not necessary for generating the output signal due to the input signal, or the unnecessary notification that indicates that the output signal is not received, received by the output side signal exchange unit, is not used for reception. Due to the second factor that causes unreceived input signals to be generated, a confirmation signal is sent 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 Receiving dummy input signals from other processing units on the input side,
  • FIG. 1 is a diagram showing an outline of a self-synchronous system.
  • FIG. 2 is a diagram showing a schematic configuration of a self-synchronous processing unit.
  • FIG. 3 is a diagram showing a two-wire self-synchronous element.
  • FIG. 4 is a flowchart showing the internal operation of the element shown in FIG.
  • FIG. 5 is a flowchart showing an outline of the internal operation of the processing unit shown in FIG.
  • FIG. 6 is a flowchart showing a more detailed internal operation of the processing unit shown in FIG.
  • FIG. 7 shows a self-synchronous NOT gate element.
  • FIG. 8 is a diagram showing a synchronous signal branch
  • FIG. 8 (b) is a diagram showing a self-synchronous signal branch.
  • 9] A diagram showing a self-synchronous buffer element.
  • FIG. 10 is a timing chart in which handshaking is performed in the element of FIG.
  • FIG. 11 is a timing chart of an example different from FIG.
  • FIG. 12 A timing chart of another example different from FIG.
  • FIG. 13 is a timing chart of another example different from FIG.
  • FIG. 14 is a flowchart showing the internal operation of a self-synchronous flip-flop.
  • FIG. 15 is a flowchart showing a more detailed internal operation of the self-synchronous flip-flop. ⁇ 16] An example of combinational logic circuit.
  • FIG. 17 A circuit in which the combinational circuit of FIG. 16 is changed to a configuration using multiple processing units with two inputs and one output.
  • FIG. 18 (a) to FIG. 18 (h) are examples showing the operation of the circuit shown in FIG.
  • FIG. 19 (a) to FIG. 19 (e) are different examples showing the operation of the circuit shown in FIG.
  • FIGS. 20 (a) to 20 (e) are examples showing the operation of the circuit shown in FIG. 17 by handshaking.
  • FIG. 21 FIG. 21 (a) to FIG. 21 (d) are examples in which the operation of the circuit shown in FIG.
  • FIG. 22 (a) to FIG. 22 (d) are examples in which the operation of the circuit shown in FIG.
  • FIGS. 25 (a) to 25 (d) are examples showing the operation of the circuit shown in FIG. 24 by handshaking.
  • FIGS. 26 (a) to 26 (d) are examples in which the operation of the circuit shown in FIG.
  • FIGS. 27 (a) to 27 (d) are examples in which the operation of the circuit shown in FIG.
  • Fig.28 [Fig.28] Fig.28 (a) to Fig.28 (d) show the operation of the circuit shown in Fig.24 following the step of Fig.27 (d). An example shown by Jake.
  • FIGS. 29 (a) to 29 (d) are examples in which the operation of the circuit shown in FIG.
  • FIGS. 30 (a) to 30 (d) are examples in which the operation of the circuit shown in FIG.
  • FIG. 31 (a) to FIG. 31 (d) are examples in which the operation of the circuit shown in FIG.
  • One embodiment of the present invention is a system having a plurality of self-synchronous processing units, based on an input-side signal exchange unit for receiving a plurality of input signals, and the plurality of input signals, A logic unit for generating an output signal; and a signal exchange unit on the output side.
  • the logic implemented in the logic part of the processing unit is 2-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, it is possible to output an output signal that is highly likely to be received at different timings and does not need to wait for the other input signal.
  • an unreceived input signal may become don't care depending on an input signal received at a certain timing.
  • a selector if the selected side is determined by the input signal received at a certain timing, it is not selected! The unreceived input signal on the side becomes don't care.
  • the first decision function determines the unreceived input signal that is not required for generation of the output signal (first factor). Furthermore, in the second decision function, an unreceived input signal that is not required for reception is determined by the notification of the unnecessary output signal (second factor). In this system, a waste notification is further sent to the processing unit on the input side that supplies an unreceived input signal that has been judged as unnecessary by the first judgment function or the second judgment function.
  • the output signal is transmitted to the other processing unit on the output side by the signal exchange unit on the output side.
  • an input side signal exchange unit is connected to the input side processing unit that is to supply the unreceived input signal.
  • a non-use notification is transmitted.
  • the useless notification is further transmitted to other processing units on the input side that have not been received by the second determination function. Accordingly, 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.
  • 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.
  • the signal exchange unit on the output side of the self-synchronous processing unit transmits the output signal as a pulse signal each time an output signal is generated by the logic unit based on the input signal. Regardless of whether or not the value of the output signal is changed by logic, the processing unit of the embodiment of the present invention outputs a pulse of the output signal every time the output signal is generated. Therefore, the processing unit transmits the output signal once per process for one user clock cycle. This reflects the nature of the synchronous user circuit, “All signal lines transmit values once every clock cycle”.
  • a handshake is performed once. Each time a handshake is performed, it can be considered that the processing for one cycle of the user clock of the synchronous user circuit proceeds. For this reason, self-synchronous, that is, asynchronous circuit design is possible with the widely used concept of synchronous design.
  • the signal exchange unit on the output side transmits the output signal as a signal that is displaced in three states.
  • An example of a signal that shifts to three states is a signal that shows neutrality and binary values (two states) that do not include it.
  • the output signal is single-wire (1-wire). Since the signal (input signal) can be exchanged, the problem with delay can be solved.
  • the three states can be realized by, for example, converting the voltage into plus, zero, and minus if it is an electric signal.
  • the polarization state can be changed to three states.
  • the processing unit preferably includes a memory for storing an input signal that cannot be processed by an unreceived input signal or 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) for advancing an event. Since the processing queue has a memory for storing signals that cannot be processed, it is possible to proceed with processing related to the received signals.
  • the self-synchronous system does not require a global clock. Therefore, there is no restriction that the processing time (latency) of each processing unit included in the self-synchronous system must be shorter than the global clock period. For this reason, the logic of the logic part of the processing unit or the connection of the processing unit can be changed flexibly. Therefore, the self-synchronous system is suitable for a reconfigurable system capable of changing the logic for generating the output signal in the logic unit.
  • the signal exchange unit on the input side has a function of changing the processing unit on the input side
  • the signal exchange unit on the output side includes the processing unit on the output side.
  • It is a system including a processing unit having a function to change.
  • An example of such a system is 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. Is.
  • This self-synchronous system may be a distributed system in which a plurality of computers are connected via a computer network realized by radio or wire.
  • an integrated circuit system in which a plurality of elements having appropriate arithmetic functions are housed in one chip, and there is an electronic device may be connected by light.
  • One form of integrated circuit unit is It includes a number of processing units and a routine damatrice for transmitting signals between the processing units.
  • An example of a routing matrix is a circuit in an 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.
  • FIG. 1 shows an example of a self-synchronous integrated circuit device.
  • This integrated circuit device (integrated circuit unit, device or system) 1 is transmitted by FFT (Fast Fourier Transform) operation, various calculation processes including decoding of data compressed by MPEG, routing by IP address, and packet. It can be used for a wide variety of purposes such as network processing including data reconstruction.
  • the integrated circuit unit 1 can be configured to execute one or more processes as a single system. It is also possible to construct one system by combining multiple integrated circuit units 1. Further, it is possible to construct one system by combining one or a plurality of integrated circuit units 1 with a general-purpose CPU or other dedicated circuit.
  • the integrated circuit unit 1 has a plurality of processing units (Process! Ng Unit (PU), Processing Element (PE) or i Conngurable Logic Block (LB), and PU in the down) that can change each arithmetic logic. 10 and a routing matrix 5 for configuring a path connecting the plurality of processing units (PUs) 10.
  • the routing matrix 5 is a connection unit (switching unit or switching unit or wiring unit) that can change the connection configuration of the routing matrix 5 by changing the connection between the wiring (wiring group) 6w for transmitting data between PUslO and the wiring group 6w. Selector unit) 6s.
  • the integrated circuit unit 1 further supplies the configuration memory 2 storing the configuration data 7 of PUslO and the routing matrix 5 and supplies the configuration data 7 from the configuration memory 2 to PUslO.
  • the configuration data control unit 3 is provided.
  • the configuration memory 2 stores multiple sets of configuration data 7.
  • the control unit 3 selects one of a plurality of sets of configuration data 7 and supplies it to the PUslO and, if necessary, the routing matrix 5.
  • the routing matrix 5 also has a function of transferring the configuration data 7 to the PUslO and the connection unit 6s.
  • the routing matrix 5 is not limited to one in which the wiring 6w is arranged in a matrix.
  • PUs 10 may be connected to form a network node.
  • the routing matrix 5 is also a wired communication system that enables signal exchange between a plurality of PUs 10.
  • PUslO When PUslO is distributed, PUsl 0 can be connected by a wireless communication system. By reconfiguring the connection of PUs 10 with a wired or wireless communication system, the circuit configured with PUslO can be changed.
  • FIG. 2 shows a schematic functional configuration of the self-synchronous asynchronous processing unit (PU) 10.
  • the PU 10 includes an input interface 11 that is a signal exchange unit on the input side, a logic unit 12 that determines an output Y, and an output interface 13 that is a signal exchange unit on the output side.
  • the input interface 11 receives two input signals Ad and Bd supplied from two other input side PUslOa and 10b, respectively.
  • the two input signals Ad and Bd are not necessarily supplied from PUslOa and 10b at the same timing. Therefore, the input interface 11 serving as the signal exchange unit on the input side receives the two input signals Ad and Bd, respectively.
  • the logic unit 12 determines the output Y based on the inputs A and B given by the input signals Ad and Bd, respectively.
  • the output interface 13 transmits an output signal Yd indicating the output Y of the logic unit 12 to another processing unit (PU) lOy on the output side.
  • the PU 10 includes a control unit 15 that controls the internal operation of the PU 10.
  • the PU 10 includes a queuing memory 14 that stores a signal that cannot be processed due to an unreceived signal.
  • the control unit 15 includes a first determination function 18 and a second determination function 19.
  • the first determination function 18 determines an unreceived input signal that is not necessary for generating the output signal Yd based on the input signal Ad or Bd received by the input interface 11.
  • the second determination function 19 determines an unreceived input signal that is not received by the output interface 13 received notification by the output interface 13 that is not used.
  • control unit 15 includes a handshake function 17 for confirming transmission / reception of signals.
  • Handshake function 17 confirms transmission and reception of input signals Ad and Bd with PUslOa and 10b on the input side.
  • the handshake function 17 Check transmission / reception of output signal Yd to / from PUlOy on the power side.
  • the handshake function 17 When the handshake function 17 receives the input signal Ad, the handshake function 17 transmits a confirmation signal (attenuation signal) Ak to the input PUlOa on the input side of the input signal Ad. Through this process, PU10 exchanges the input signal with PUlOa once (nond shake). In other words, this processing power is one of the handshake (protocol) between SPU10 and PUlOa.
  • the handshake function 17 transmits a confirmation signal (attenuation signal) Bk to the PUlOb on the input side of the supply source of the input signal Bd.
  • This process is one of the handshake (protocol) between PU10 and PUlOb.
  • the handshake function 17 transmits the output signal Yd and receives the acknowledge signal Yk from the PUlOy on the output side of the transmission destination.
  • This process is one of the handshaking (protocol) between PU10 and PUlOy.
  • the handshake function 17 is not used for an input-side processing unit that supplies an unreceived input signal determined to be unnecessary by the first determination function 18 or the second determination function 19. Send notifications.
  • the handshake function 17 transmits one or both of acknowledgment signals Ak and Bk as a non-use notification (don't care notification) to one or both of PU1 Oa and 10b on the input side that are determined not to be received.
  • the handshake function 17 receives a dummy input signal supplied with one or both of the PUslOa and 10b to which the acknowledge signal is transmitted in a state where the input signal is not received.
  • These processes are one of the handshakes (protocols) between PU10 and PU10a and Z or 10b.
  • the handshake function 17 receives a don't care notification from the PUlOy on the output side.
  • the handshake function 17 receives the acknowledge signal Yk when the output signal Yd is not transmitted, it recognizes it as a don't care notification.
  • the handshake function 17 transmits a don't care notification to the second determination function 19 and transmits a dummy output signal Yd. This is one of the handshake (protocol) between the processing power PU10 and PUlOy.
  • the control unit 15 has a reconfiguration function 16 for changing the processing content of the PU 10 by the configuration data 7 supplied from the configuration memory 2 via the routing matrix 5.
  • Reconfiguration function 16 is based on configuration data 7 Change the logic of logic part 12 of PU10.
  • the reconfiguration function 16 changes the processing unit connected to the input interface 11 and the output interface 13.
  • the data path composed of a plurality of PUslOs is reconfigured in the system 1 and the function of the data path is changed.
  • the input interface 11 and the output interface 13 are connected to other PUs via the routing matrix 5.
  • FIG. 3 shows an example of a 2-wire, 2-input, 1-output self-synchronous element 90.
  • the 2-input 1-output logic element has two input signals, signals A and B, and one output signal, signal Y.
  • a data line such as AO
  • a data line such as A1
  • an acknowledge line such as Ak
  • FIG. 4 is a flowchart showing the internal operation of the self-synchronous processing element (PE) 90 shown in FIG.
  • the PE 90 waits for an input signal A0, Al, BO or B1 whose input data line force also indicates logic “0” or logic “1” to be transmitted. When these signals are transmitted, PE 90 determines the source of the input signal in step 92. In step 93 or 94, the PE 90 returns an acknowledge signal Ak or Bk corresponding to the input signal to the supplier. In step 95, PE90 determines whether the output value needs to be changed. If the output signal Y0 or Y1 needs to be changed, PE 90 transmits a new output value in step 96. Thereafter, in step 97, the PE 90 waits for the output signal acknowledgment Yk.
  • the input signal and the output signal are the same data signal only in the difference between the input side and the output side.
  • a system using this self-synchronous element 90 is correct if the data signal and acknowledge signal are guaranteed not to be lost or propagated in the middle of transmission and a circuit design corresponding to an appropriate delay model is made. Operate
  • 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 1-wire PU10 is connected to one logical signal. Assign two actual signal lines. Therefore, a total of 6 signal lines are connected to PU10.
  • the two signal lines for the other PU10 are the data line 5a and the signal line 5b for acknowledgement, respectively.
  • the data line 5a is a signal line for transmitting logic "0" or logic "1" as the data signals Ad, Bd and Yd.
  • the acknowledge signal line 5b is a signal line for transmitting the acknowledge signals Ak, Bk, and Yk.
  • the output interface 13 is connected to a positive potential power line and a negative potential power line.
  • the output interface 13 outputs a positive pulse when transmitting a logic “1 (true)” as the output signal Yd, and outputs a negative pulse when transmitting a logic “0 (false)”. Therefore, the data line 5a propagates, as data signals Ad, Bd, and Yd, a positive pulse that transmits logic “1” and a negative pulse that transmits logic “0”.
  • the relationship between logic and potential is only an example, and the relationship can be reversed.
  • FIG. 5 is a flowchart showing the internal operation related to data output of the self-synchronous PU 10 shown in FIG. This flowchart shows the operation of the data output except for the don't care notification function for comparison with the 2-wire self-synchronizing element 90.
  • the PU 10 waits for the input signal Ad or Bd to be received.
  • the PU 10 confirms reception of the input signal Ad, the PU 10 performs handshake by transmitting the acknowledge signal Ak in step 23a.
  • step 24a PU10 waits for input signal Bd.
  • the PU 10 transmits an acknowledge signal Bk and performs handshaking.
  • the PU 10 transmits the acknowledge signal Bk and performs handshaking in Step 23b. Further, in step 24b, the PU 10 waits for the input signal Ad. When the input signal Ad is received, in step 25b, the PU 10 transmits an acknowledge signal Ak and performs a handshake.
  • step 26 the PU 10 transmits the output signal Yd.
  • step 27 the handshake is completed when the anode signal Yk is received.
  • the basic operation of the one-wire PU 10 is to transmit and receive signals once for all the input / output lines in a single process.
  • all inputs and outputs in PU10 Ability to transmit signals once per line Equivalent to one cycle of the user clock.
  • the synchronous element unlike the two-wire self-synchronous design element, it has the same property as the synchronous element: “All signal lines transmit values once per clock cycle”. Therefore, a clock synchronous system design can be applied to a system using PU 10.
  • PU10 In order to proactively implement clock-synchronous system design, the basic operation of PU10 is as follows. It receives signals once for all inputs and then outputs once, and only one input is used. It is not allowed to advance ahead, and the output is transmitted every time regardless of whether the output value needs to be changed.
  • a clock synchronous user circuit can be implemented without using a global clock by the device (system) 1 having the PU 10. For this reason, the man-hours for clock skew adjustment and critical path adjustment can be omitted. Furthermore, the following non-shake backflow function allows the processing to proceed with only one side input while maintaining the characteristics compatible with the clock synchronous type. Furthermore, by using the memory 14 for queuing, the processing speed can be improved at any time while retaining the feature of being compatible with the clock synchronous type.
  • FIG. 6 is a flowchart relating to the internal operation of the 2-input 1-output self-synchronous PU 10 shown in FIG. This flowchart shows the internal operation including the handshake backflow function.
  • the PU 10 waits for pulses from the input data lines Ad and Bd and the output acknowledge line Yk.
  • a typical example shown in FIG. 5 is a case where a data pulse is supplied from the input data line Ad. Since the PU 10 has received the input signal Ad, in step 35, the PU 10 issues an acknowledge pulse from the input acknowledge line Ak (analog signal Ak). Next, before waiting for the other data line Bd pulse (input signal Bd), PU10 determines in step 36 whether or not the input signal Bd is unnecessary (don't care) power to determine the output signal Yd. . If the input signal B d is required, the PU 10 moves to step 39. In step 39, since the output signal is not determined, PU10 holds the input signal Ad in step 46 and waits for the input signal Bd to be received.
  • step 31 when the input signal Bd is received in step 31, the PU 10 transmits the acknowledge signal Bk in step 35. Through step 39, PU10 In step 41, the output signal Yd is transmitted. PU10 returns to step 31 and waits for acknowledge signal Yk.
  • step 36 the value of output Y is determined only by the value of input A, and the value of input B may be don't care. That is, in step 36, when the output signal Yd is determined by the input signal Ad and the input signal Bd is don't care, the PU 10 transmits the acknowledge signal Bk without waiting for the input signal Bd in step 38. At the same time, in step 41, PU10 transmits the determined output value as pulse signal Yd.
  • the acknowledge pulse Bk transmitted in step 38 is not a receipt response message “received data pulse Bd” but a notification message “input B is don't care”.
  • the PU 10 waits for the acknowledge pulse Yk and the data pulse Bd.
  • This data pulse Bd does not indicate the logical value of the input B, but is an acknowledgment response message to the notification that “the value of the input B is don't care”, either a positive pulse signal or a negative pulse signal.
  • step 31 when the input signal Bd comes before the input signal Ad, the operation of the PU 10 is only the exchange of the input signal Ad and the input signal Bd in the above.
  • the noise signal propagated through the input lines A and B will be described as the input signals Ad and Bd
  • the pulse signal propagated through the output line Y will be described as the output signal Yd.
  • the data signal Yk for the purpose of a non-shake (protocol) indicating that the output signal has been confirmed comes in step 31.
  • the acknowledge signal Yk in this case is a notification from the PU 10y on the output side that “the value of output Y is don't care”. Therefore, in step 52, the PU 10 transmits a dummy output signal Yd as a don't care acknowledgment response.
  • the pulse signal of this output signal Yd can be either positive or negative.
  • the PU 10 outputs the acknowledge signals Ak and Z or Bk to the PUlOa and Z or 10b on the input side that is to supply the unreceived input signal in step 57.
  • Send For example, if the input signal Ad has been received , PU10 transmits an acknowledge signal Bk to PUlOb. If the input signals Ad and Bd are not received, PU10 transmits acknowledge signals Ak and Bk to PU10a and 10b, respectively.
  • These acknowledge signals are messages that notify the processing queue on the signal transmission side that the values of signals A and B are don't care.
  • PU10 waits for a dummy input signal Ad or Bd (dummy output signal in PU10a and 10b) of the corresponding don't care acknowledgment response.
  • the PU 10 has the following four types as handshake protocols for confirming signal transmission / reception.
  • the PU 10 When receiving the input signal Ad or Bd, the PU 10 transmits the acknowledge signal Ak or Bk to the input PUlOa or 10b on the input side of the input signal Ad or Bd.
  • Type 2 PU10 sends an acknowledge signal Ak or Bk to PUlOa or 10b on the input side of the unreceived input signal Ad or Bd as an unnecessary notification (don't care notification), and dummy input from PUlOa or 10b Receives the signal Ad or Bd.
  • Type 3 PU10 transmits output signal Yd and receives acknowledgment signal Yk from PUlOy on the destination output side.
  • Type 1 and Type 3 handshakes relate to normal data pulse transmission and reception.
  • Type 2 and Type 4 handshakes are intended to propagate don't care notifications using data pulses and alarms.
  • PU10 may output the acknowledge signal Bk for notification that the input B value is don't care! In that case, the sending PUlOb misunderstands the acknowledgment signal Bk as a normal receipt response.
  • the receiving PU 10 misunderstands the input signal Bd as a don't care acknowledgment response. Even if they are misunderstood in this way, there is no problem in the operation of System 1 as the handshake for one cycle of the user clock has been completed. Therefore, it is not necessary to take any measures to prevent this misunderstanding.
  • the flowchart shown in FIG. 6 will be described in more detail. In step 31, PU10 waits for a signal to be received.
  • the signals received by PU10 are input signals Ad and Bd, and output signal acknowledge signal Yk.
  • PU 10 determines in step 32 whether or not a handshake for one signal has been completed based on that signal. There are four types of handshaking. If one of the signals has been sent in advance and the receipt confirmation signal has been received, the handshake (type 1 or type 3) for one user clock is completed. Therefore, PU10 returns to step 31 and waits for the next signal.
  • step 32! / The transmission waits for the data line in which the handshake is completed in the queuing memory 14 in step 43! /! Check if there is a signal. If there is a signal waiting to be transmitted, PU 10 transmits the signal in step 44. For example, it is assumed that the input signal Ad is continuously received and the input signal Bd becomes don't care by the first and second input signals Ad. In this case, first, PU10 outputs an acknowledge signal Bk for don't care notification in response to a non-input signal Bd corresponding to the first input signal Ad, and the second input until the handshake is completed. The state may be maintained without outputting the acknowledge signal Ak to the signal Ad.
  • the PU 10 may transmit the acknowledge signal Ak prior to the second input signal Ad.
  • the PU 10 can store the second don't care notification for the PUlOb on the input side in the memory 14 for queuing.
  • processing proceeds in PUlOa and its upstream processing unit.
  • the PU 10 receives the input signal Bd with respect to the acknowledge signal Bk of the first don't care notification, and then in step 44, the next don't care stored in the queuing memory 14 is received.
  • An acknowledge signal Bk can be output.
  • step 32 P When U10 confirms the acknowledge signal Yk for the first output signal Yd, it can transmit the next output signal Yd in step 44.
  • step 48 there may be a signal that is held in the event token state without being able to proceed with processing while receiving a signal and not transmitting an acknowledge signal. In that case, in step 48, the processing of the held signal is started without waiting for the reception of the next signal.
  • step 33 if the queuing memory 14 is full, or if continuous reception is not permitted, the PU 10 cannot perform a handshake by performing an acknowledgment. Therefore, in step 49, the PU 10 stores the received signal as an event token in the queuing memory 14, and waits for the next signal. That is, the memory 14 stores a received input signal that requires another input signal in order to generate an output signal, and stores a signal that becomes another event token including the input signal.
  • step 34 if the received signal is the input signal Ad or Bd, it is a data input. If the received signal is an acknowledge signal Yk, it is a don't care notification. If it is an input signal, PU 10 outputs acknowledge signal Ak or Bk in step 35.
  • step 36 the PU 10 determines whether or not the received input signal is a force that makes the other input signal unnecessary (don't care) (determination of the first factor).
  • the PU 10 determines in step 37 whether or not a don't care notification can be transmitted for the unreceived input signal. For example, when the input signal Ad is continuously received as described above, the PU 10 receives the acknowledge signal Bk that becomes the second don't care notification until it receives the input signal Bd that is acknowledge to the PUlOb on the input side. Cannot output.
  • step 45 the PU 10 stores the don't care notification for the PUlOb on the input side in the queuing memory 14, and transmits it in step 44. If the don't care notification can be sent to the processing unit on the input side that is the source of the input signal that has become don't care, the PU 10 sends an acknowledge signal in step 38. To do.
  • step 39 the PU 10 determines whether or not the output signal Yd is determined. If none of the unreceived input signals are don't care according to the received input signal, the output signal Yd is not determined until the unreceived input signal is received. Therefore, in step 46, the PU 10 stores the input state in the memory 14 and waits for the next signal. Note that there is logic that does not determine the output signal Yd even if one of the input signals that have not been received becomes don't care. For example, a selector. Even in this case, the PU 10 stores the input state in the memory 14 and waits for the next signal.
  • the PU 10 checks in step 40 whether or not the output signal Yd can be transmitted. If it can be output, in step 41, the PU 10 transmits the output signal Yd. As described above, in a state where the output signal Yd is continuously determined by continuously receiving the input signal Ad, it may be determined in step 40 that the second output signal Yd cannot be transmitted. There is sex. In this case, in step 47, the PU 10 stores the output signal Yd that cannot be transmitted in the queuing memory 14, and transmits it in step 44.
  • step 41 the output signal is transmitted only to the processing unit on the output side that is not notified of the don't care notification. That is, the output signal is not transmitted to the processing unit on the output side that is notified of the don't care notification.
  • step 54 the don't care notification from the processing unit on the other output side stored in the queuing memory is canceled.
  • This function is a function that can be omitted in the one-output type, one fan-out PU10 and the system using it. On the other hand, this function is necessary for multi-output and multi-fanout PUs and systems that include them.
  • PUlOy on the output side may output the acknowledge signal Yk for the notification that the output Y value is “don't care” t ⁇ ! In that case, as with the input signal, the handshake types will be mistaken for each other. Shi There is no hindrance to the operation of the system. Therefore, it is not necessary to take any measures to prevent this misunderstanding! /.
  • step 52 PU10 outputs dummy dummy output signal Yd.
  • step 57 PU10 transmits acknowledge signals Ak and Z or Bk which are don't care notifications to PUlOa and Z or 10b of the source of the unreceived input signal. By receiving the don't care notification and transferring it upstream (input side), the don't care notification can be propagated upstream or back.
  • the don't care notification Yk may continuously arrive.
  • the PU 10 determines whether or not it is possible to transmit the don't care notification for each processing unit on the input side that flows back the don't care notification. If the handshake for the preceding don't care notification is not completed, in step 56, the PU 10 stores the don't care notification in the queuing memory 14. In that case, in step 57, the don't care notification is sent only to the processing unit that has completed the handshake for the preceding don't care notification.
  • Steps 53 and 54 shown in FIG. 6 are functions that can be omitted in PU10 of one output type and one fanout.
  • the input signal becomes don't care typically when all the output signals become don't care. Therefore, if PU10 is a multi-output processing unit, in step 53, it is determined whether or not a don't care notification can be transmitted to the upstream.
  • the don't care notification is not notified from all the output side processing units, the don't care notification from the output side is stored in the queuing memory 14 in step 54, and the next signal is awaited.
  • the logic of the logic unit 12 is 2-input AND and the input signal Ad is “0 (false)”, the other input signal Bd is don't care. If the logic of the logic unit 12 is 2-input OR and the input signal Ad power S “l (true)”, the other input signal Bd becomes don't care. In these cases, the other input signal becomes don't care and the output signal Yd is determined. Therefore, As a 2-input PU10, the determination of the occurrence of don't care and the determination of the determination of the output signal can be performed in one step.
  • the handshake function 17 controls the handshake.
  • the first judgment function 18 performs control for generating a don't care notification.
  • the second judgment function 19 performs the control for returning the don't care notification in steps 52 to 57.
  • a processing unit that realizes multi-input logic can be configured.
  • the logic of the logic unit 12 is a 2 tol selector and three signals including a selector control signal are input as input signals.
  • the selector control signal selects the input signal Ad
  • the input signal Bd becomes don't care.
  • the output signal Yd is not determined until the input signal Ad is received. Therefore, it is desirable to have step 39.
  • the logic of the logic unit 12 is 2-input XOR, the output signal Yd is not determined unless both input signals Ad and Bd are determined. Therefore, one input signal does not make the other input signal don't care. For this reason, it is possible to omit the processing of steps 36 to 38 by the first determination function 18 in the internal operation of the PU 10, and for don't care notification, the main processing is to reverse the flow after step 52.
  • steps 36 to 38 can be omitted from the internal operation of PU10.
  • steps 36 to 38 can be omitted from the internal operation of PU10.
  • the NOT gate is implemented as a self-synchronous device, it is not necessary to adopt PU10 and create a circuit that executes this flowchart gracefully.
  • FIG. 7 is a different example in which a NOT gate is implemented as a self-synchronous element.
  • a NOT gate As shown in this figure, as the NOT gate, an element 61 including a voltage inverter 62 that converts a positive pulse into a negative pulse and a negative pulse into a positive pulse may be mounted.
  • the flowchart in Fig. This is advantageous to the overall system performance because the Ak acknowledge pulse can be returned earlier.
  • Signal branching (multi-fanout) in a self-synchronous system is different from a normal synchronous circuit.
  • the signal can be branched by simply connecting the lines.
  • 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 add the functions of steps 53 to 54 to the PU10 of the signal source to support multi-fanout.
  • Another method is to connect a processing unit 63 for signal branching.
  • the branch processing unit 63 has a logic part 63c.
  • the internal operation of the logic unit 63c includes the processing described in Step 52 and later, particularly for multiple outputs in the flowchart shown in FIG. 6, and determines the occurrence of don't care based on the input signal from Step 36 to Step 39. It does not include processing.
  • a buffer circuit with one input and one output has no logical function.
  • the buffer circuit is used to assist the signal transmission of the synchronous circuit and the long distance signal transmission.
  • such a buffer is used to assist long-range signal transmission.
  • a processing unit 64 dedicated to the nota circuit can be mounted.
  • the processing unit 64 for a buffer with 1 input and 1 output (1 fanout) has a logic part 64c.
  • the operation of the logic unit 64c does not include the process of determining the occurrence of don't care based on the input signal of step 39 in the flowchart shown in FIG. 6, and the process of backflowing the don't care notification after step 52 (multi-fanout). Does not include processing for! /,).
  • the processing unit 64 for the noffer returns the acknowledge signal Ak when the input signal Ad arrives, and returns the don't care acknowledgment response (output signal) Yd when the don't care notification (the anode signal) Yk arrives.
  • the handshake turnaround time can be reduced and the system can operate at high speed compared to a long distance knockshake without a noffer.
  • the control method of the self-synchronous processing unit shown in FIG. For example, it can be applied to multi-input AND gates, N AND gates, and AND-OR composite gates. Therefore, the PU 10 can provide a self-synchronous service even when the logic of the logic unit 2 is changed to flexible by the reconfiguration function 16. Furthermore, the PU 10 can change the connection of the processing units on the input side and the output side via the input interface 11 and the output interface 13, and the routing matrix 5 can be reconfigured as the system 1. As a result, the asynchronous system 1 can flexibly implement various circuits or data paths, and can execute various applications by dynamically reconfiguring the data paths.
  • An example of the system 1 including a large number of PUs 10 can implement a multi-stage combinational logic circuit by changing the logic of the PUs 10.
  • the output stage force is also applied to the input stage as well as the “data-> acknowledge” handshake from the input stage to the output stage.
  • the handshake can be reversed, such as “ ⁇ OK response”. For this reason, it is possible to reduce the problem of the handshake overhead that was a weak point of the conventional self-timed design and implementation method.
  • the data line is described as a dual power source specification of a positive power source and a negative power source so that one data line can be configured.
  • the self-timed It is possible to construct “elements”.
  • the device manufacturer is requested to guarantee the above, and in addition, the guarantee that "pulses sent one after the other in a set of two data lines will reach the receiving element in the same order". Also require.
  • the output signal Yd is transmitted through a single power supply data line consisting of two signal lines YO and Y1.
  • the sending side element After sending the pulse signal YO as a dummy output signal for the 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.
  • the normal pulse signal Y1 may be output.
  • the data line transmitting pulse signal Y1 is extremely shorter than the data line transmitting pulse signal YO, and the later pulse signal Y1 may reach the receiving element first.
  • the receiving element regards the pulse signal Y1 as a dummy output signal for the don't care acknowledgment response, and regards the subsequent pulse signal YO as a regular data pulse for the next clock cycle. For this reason, the system malfunctions. To prevent such malfunctions, carefully align the wiring length and load capacity of the data line that transmits the signal YO and the data line that transmits the signal Y1 so that the subsequent pulse does not arrive first. It needs to be manufactured.
  • the output signal Yd is transmitted by one line.
  • pulses pulse signals
  • the well-known four-phase noise shake and two-phase (transition signaling) handshake It is possible to construct a “self-timed device for mounting a synchronous circuit with a handshake backflow function” by using it as a handshake of a source.
  • the four-phase noise shake is not preferable in terms of performance because the handshake turnaround time is longer than the two-phase noise shake and the pulse method.
  • the two-phase noise shake requires a slightly forcible timing guarantee and timing adjustment when trying to achieve it with a dual power supply (one data line) specification. Therefore, in order to explain the self-timed device with handshake backflow function easily and without failure with the minimum timing constraints, the above-mentioned pulsed handshake method with two power supplies is suitable.
  • the processing based on each received signal is advanced as much as possible.
  • One method is to store the fact as an event token when a signal is received continuously, as shown in steps 33, 48, and 49 in Figure 6, but send an acknowledgment acknowledge signal. That's it.
  • the output signal Yd is determined by the input signal Ad from the PUlOa on the input side, the acknowledge signal Bk for notifying don't care is transmitted to the PUlOb on the input side, and the output signal Yd to the PU1 Oy on the output side
  • the PU 10 waits for an acknowledge response output signal Bd or the analog signal Yk.
  • the fact that the input signal Ad has arrived is stored in the memory 14 as an event token.
  • the PU10 force desired input signal Bd and acknowledge signal Yk are received, and the handshake in step 32 is completed.
  • the PU 10 immediately proceeds to step 34. At the same time, erase the token.
  • This event token can have a maximum of one for each of the signals Ad, Bd and Yk. This is because an unprocessed signal will not be received repeatedly unless an acknowledgment signal for receiving data or a response to acknowledge don't care is returned.
  • a queuing memory 14 is provided as a second measure for proceeding with processing based on each received signal.
  • the PU 10 transmits an acknowledgment response to the received signal. That is, in step 33, for example, the received acknowledge signal Ak with respect to the input signal Ad is not returned. Since the input Ad cannot come again because it is not returned, it waits for another signal such as the acknowledge signal Yk. On the other hand, PUlOa that sent the input signal Ad is waiting for the receipt acknowledge signal Ak. Therefore, by returning the acknowledge signal Ak without waiting for the receipt of the acknowledge signal Yk, the processing on the sending side PUlOa can be advanced. On the other hand, the signal to be output by the received input signal Ad is stored in the queuing memory 14 in step 45 or 47, and waits for transmission.
  • the acknowledgment signal Yk for don't care notification is received continuously.
  • the output signal Yd is sent as a don't care acknowledgment response to the first acknowledge signal Yk, and the input don't care acknowledgment response to the second don't care notification acknowledge signal Yk. Wait.
  • the PU 10 y on the output side can be processed by transmitting the output signal Yd as the don't care acknowledgment response to the second acknowledge signal Yk.
  • steps 55 and 56 an acknowledgment response is obtained for the preceding don't care notification, and the don't care notification for the processing unit is stored in the queuing memory 14 and awaits transmission.
  • FIGS. 10 to 13 show timings at which an input signal and an output signal are transmitted and received in PU64 of the buffer circuit shown in FIG.
  • FIG. 10 is a time chart in which the operation of the PU 64 receiving the input signal Ad four times and transmitting it as the output signal Yd each time is repeated four times.
  • the PU 64 processes the first data at the same straightforward timing as in FIG.
  • the PU64 receives the third input signal Ad before the second acknowledge signal Yk.
  • the acknowledge signal is not sent in advance. Therefore, in step 49, PU64 queues as an event and waits for the second acknowledge signal Yk pulse.
  • the PU 64 moves to step 35 and step 39 from step 48 as soon as it is received, and the third acknowledge signal Ak and the third output signal Y d are received. Send.
  • the operation for the next third acknowledge signal Yk is the same.
  • the PU64 Since the fourth acknowledge signal Yk was received following the output signal Yd, the PU64 does not queue as an event and processes it at a straightforward timing.
  • PU 64 processes the first data at the same straightforward timing as in FIG.
  • the PU64 receives the third input signal Ad before the second acknowledge signal Yk.
  • the PU64 sends an acknowledge signal to the second signal received in the middle of the processing related to the first signal, and the third signal is It is set to queue as an event. For this reason, the PU 64 waits for step 47, and then proceeds to step 44 from step 32 where the second acknowledge signal Yk is received, and transmits the third output signal Yd.
  • the PU 64 since the PU 64 receives the fourth input signal Ad in the same manner as described above before receiving the third acknowledge signal Yk, the PU 64 operates in the same manner as described above.
  • the PU 64 receives the fifth input signal Ad before receiving the fourth acknowledge signal Yk, and then receives the sixth input signal Ad. For this reason, the PU 64 transmits the fifth acknowledge signal Ak to the fifth input signal Ad and waits for step 47.
  • P U64 does not transmit the acknowledge signal Ak for the sixth input signal Ad, and waits for step 49.
  • the PU 64 receives the fourth acknowledge signal Yk, it sends the fifth output signal Yd in step 44.
  • the PU 64 proceeds from step 48 to step 35, and transmits an acknowledge signal Ak for the sixth input signal.
  • the PU 64 received the seventh input signal Ad before the fifth acknowledge signal Yk. Therefore, the PU 64 waits for step 49, waits for the fifth acknowledge signal Yk, transmits the sixth output signal Yd and the seventh acknowledge signal Ak, and the seventh output signal Yd 47 waits. Next, the PU 64 waits for the sixth acknowledge signal Y k, transmits the seventh output signal Yd in step 44, and receives the seventh acknowledge signal Y k. As described above, even if the PU64 immediately receives the third input signal Ad after returning the second acknowledge signal Ak, the PU64 can perform processing without breaking the logic. This event token queuing process is a self-synchronous circuit design method! Refers to a technology called slack.
  • FIG. 13 is a diagram showing a state in which the don't care notification is reversed.
  • the output side PUlOy operates in advance under the same queuing conditions as in FIG. Therefore, Figure 13 and FIG. 12 is the same as above except that step 35 in FIG. 12 is changed to step 52 and step 47 is changed to step 56.
  • Processing of event tokens is important. This is because the processing for 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. At that time, these signals should be stored in memory 14 as event tokens and processed immediately in the next step. Also, when the input signal Ad and acknowledge signal Yk are received simultaneously, only one of them can be received and the other cannot be ignored. Therefore, one signal that cannot be processed immediately is treated as an event token. In this case, regardless of which is received first, the same result can be obtained by immediately processing the next step based on the remaining event token. You need to support at least one event token per input. However, by returning an acknowledge signal and queuing two or more, it can handle slack and provide a higher-performance PU10 and system 1.
  • the above is a self-synchronous processing unit for implementing combinational logic. Therefore, by providing a self-synchronous element for implementing a flip-flop, a synchronous user circuit can be implemented in a self-synchronous system.
  • the flip-flop is a 1-input 1-output processing unit similar to the noffer circuit, and starts by transmitting the output signal Yd with an initial value of 0, and the handshake of the output signal Yd ⁇ acknowledge signal Yk and the input signal Ad ⁇ Acknowledge signal Perform Ak handshake once.
  • the flip-flop operation corresponding to one clock cycle of the synchronous user circuit that outputs the latched input signal by the acknowledge signal Yk can be realized.
  • FIG. 14 is a flowchart of the basic internal operation of the flip-flop (FF).
  • Figure 15 is a flowchart of the internal operation of the flip-flop (FF) corresponding to the backflow handshake.
  • the FF starts from transmitting the output signal Yd with an initial value of 0 as described above.
  • the FF waits for the input signal Ad or the output acknowledge signal Yk. .
  • the FF transmits the input acknowledge signal Ak.
  • step 75 FF waits for output acknowledge signal Yk and In 76, output signal Yd is transmitted.
  • the FF waits for the input signal Ad in step 77.
  • the FF transmits the output signal Yd and the input acknowledge signal Ak.
  • the input signals Ad and Ak are handled in the same way as the type 1 handshake handled in the basic flow in Fig. 6.
  • the handling of the output signals Yd and Yk is the same as the type 3 handshake in the basic flow in Fig. 6 when viewed from the outside.
  • the operation is to output the data Yd for a certain cycle and the force receives the corresponding Yk. It is.
  • the new power is “The transmission permission signal (transmission request signal in other words) indicating that the preparation for the next cycle data is ready” is received, and the response for that is for the next cycle.
  • the data signal Yd is output.
  • ”T is treated as if it were a new type of handshake. This is always the same as the flow shown in Figure 6. Therefore, it is possible to incorporate the flip-flop function in PU10 that realizes the flow of FIG. In addition, it is possible to construct system 1 including PU10 having a flip-flop function.
  • the input value A received as the input signal Ad is output as the output signal Yd for the next clock site. Therefore, in the basic flow of Fig. 14, which is considered only within the range of one clock cycle, the backflow of the don't care notification due to the handshake that does not handle the input signal A! However, in step 77, if the acknowledge signal Yk, which is a don't care notification pulse for the next clock cycle, is received while waiting for the input signal Ad of one clock cycle, the output signal of the next clock cycle is received. Yd means don't care, and the input signal Ad in the current clock cycle also means don't care.
  • FIG. 15 is a flowchart showing an internal operation for reversing the handshake in that case.
  • the FF makes a decision in step 82, and in step 83, transmits a dummy output signal Yd of a don't care acknowledgment response and an acknowledge signal Ak of a don't care notification.
  • a dummy input signal Ad is received.
  • This internal operation is the same as the operation of returning the don't care notification after step 52 of PU10 shown in FIG. 6, and the internal operation shown in FIG. 15 can also be realized by PU10.
  • the input signal Ad or the acknowledgment signal Yk that advances the processing sequentially is waited for at the desired timing and the desired signal Yk or the input signal Ad is received.
  • These can be stored as event tokens in PU10. Further, it can be stored in the queuing memory 14 corresponding to slack.
  • a flip-flop is a buffer with a delay, as is called a dead delay in the field of signal processing. For this reason, by introducing a self-synchronous flip-flop, the delay tolerance of the self-synchronous system can be enhanced.
  • FIG. 16 is a combinational logic circuit that implements the following logical expression (1).
  • Fig. 17 shows the circuit shown in Fig. 16 converted to a circuit that can be implemented in System 1 with multiple PU10s, which is constructed with a 2-input AND gate, 2-input OR gate, and NOT gate. .
  • a dedicated signal branching processing unit 63 is used and is also clearly shown in the circuit diagram.
  • the logic circuit shown in Fig. 16 can also be implemented with self-synchronous circuit elements such as multi-input gates and composite gates.
  • each processing unit 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 below, the wiring after the handshake is completed
  • Fig. 18 (a) Odor If (1, 0, 1) data pulses are generated at the inputs (XI, X2, X3) and the handshake is completed, the unit time from Figure 18 (b) to Figure 18 (h) Each time, the handshake between the processing units is digested one step at a time, and “1” is output as output Z after 7 unit hours.
  • FIGS. 19 (a) to 19 (e) show the progress of handshaking when the backflow function of don't care notification by handshaking is used.
  • the wiring where the backflow handshake (don't care notification & understanding) occurred is shown by a thick broken line.
  • PUlOc generates a don't care notification using the handshake backflow function! Since PUlOc is a 2-input AND and its lower input CB is found to be “0”, the output signal CYd is determined to be “0”. Therefore, in this cycle, the output signal CYd is output, and the unreceived input CA is treated as a don't care and the handshake is reversed.
  • the PUlOc input side that is, the upstream PUlOd receives the output don't care notification and treats the unreceived input DA as don't care. Therefore, don't care notification acknowledge signal DAk is output.
  • the PUlOe on the input side was about to output a normal data pulse to the output EY, so the don't care notification acknowledge signal and the normal output signal are misplaced.
  • PUlOd regards the legitimate output signal as a don't care acknowledge response
  • PUlOe regards the don't care notification as a data reception acknowledge signal.
  • the output F Y is determined by the upper input FA in the PUlOf of the last two-input OR. Therefore, a don't care notification is sent to the PUlOg on the input side of the lower input FB to reverse the handshake. In this case as well, PUlOg tries to transmit the output signal, so it is mistaken for the don't care notification acknowledge signal and the regular data pulse, and the handshake is completed in both PUlOf and 10g.
  • FIG 20 (a) to Figure 22 (d) ( Figure 20 (a) to (e), Figure 21 (a) to (d), Figure 22 (a) to (d)) are shown in Figure 19
  • the situation in which handshaking proceeds in the self-synchronous circuit shown is shown in more detail.
  • the triangles pointing to the right are data line pulses, that is, input signals and output signals (hereinafter, input data pulses and output data pulses).
  • the black mark is a regular pulse representing logic “1”
  • the hatched mark is a regular pulse representing logic “0”.
  • the white mark is a dummy pulse for don't care acknowledgment response.
  • the triangles pointing to the left are pulses of an acknowledge line, 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”
  • hatched marks are data reception response pulses of logic “0”.
  • the white mark is a don't care notification pulse.
  • FIG. 20 (a) to FIG. 22 (d) will be described.
  • Figure 20 (a) to Figure 22 (d) State transitions per unit time are shown.
  • a data pulse of (1, 0, 1) is generated at inputs (Xl, X2, X3).
  • these pulses arrive at the signal branch processing unit.
  • the signal branch processing unit takes action, generating an input acknowledge pulse and an output data pulse.
  • the input acknowledge pulse of the signal branch processing unit arrives at the source of the input signal.
  • the output data pulse of the signal branch processing unit arrives at the receiving processing unit.
  • PUlOc generates a don't care notification pulse and reverses it.
  • a don't care notification pulse arrives at PUlOd, and at time t7 in Fig. 21 (b), PUlOd further reverses the don't care notification pulse.
  • a handshake is established between the normal output data pulse and the don't care notification pulse between PUlOd and 10e, and the back flow of the don't care notification stops.
  • PUlOf at the final stage outputs an output data pulse and also generates a don't care notification pulse and reverses it.
  • FIG. 23 shows an example of a sequential circuit with a flip-flop.
  • Figure 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 system 1 including a 2-input / 1-output self-synchronous PU10.
  • one wiring represents a pair of a data line and an acknowledge line as described above.
  • FIG. 25 (a) to Fig. 31 (d) (Fig. 25 (a) to (d), Fig. 26 (a) to (d), Fig. 27 (a) to (d), 028 (a) to (d), Fig. 29 (a) to (d), Fig. 30 (a) to (d), Fig. 31 (a) to (d)), the circuit shown in Fig. 24 is self-synchronized and handshaked.
  • the state executed using the backflow function is shown.
  • Figures 25 (a) to 31 (d) show the state transitions per unit time. Note that the counter circuit is executed repeatedly rather than once. Therefore, the operation of the circuit is indicated by the data pulse, the analog pulse, and the don't care notification pulse.
  • the square representing the flip-flop shows the cycle value of the user clock! /, Indicating the cycle of the user clock! /.
  • the initial value 0 is also output for the three flip-flop forces. They arrive at the processing unit that receives the output signal at time T4 shown in Fig. 25 (d). At time T8 shown in Fig. 26 (d), a pulse arrives at the data input of the flip-flop (counter LSB) of output Z1. At time T9 shown in Fig. 27 (a), only the flip-flop of output Z1 proceeds to the process of user clock cycle 1.
  • the flip-flop of the output Z2 proceeds to the processing of the user clock cycle 2.
  • the processing delay of the output Z2 flip-flop is small compared to the processing of the output Z1 flip-flop.
  • the processing delay of the output Z3 flip-flop is large. Therefore, at time T25 shown in FIG. 31 (a), the flip-flop of the output Z1 proceeds to the processing of the user clock cycle 3 in advance.
  • the flip-flop of the output Z3 finally proceeds to the processing of user clock cycle 2.
  • the output Z2 flip-flop proceeds to user clock cycle 3 processing. Therefore, the output Z3 flip-flop is compared to the output Z2 flip-flop. 1 lag (1 or more lags for the output Zl flip-flop).
  • the three flip-flops operate at different timings because of the complexity of the logic that calculates the next value of each flip-flop.
  • the main reason is that there was a difference between the two.
  • the processing unit on the receiving side is not shaking the output signals of each flip-flop at different timings.
  • the processing unit that receives the output signal may be configured to “do not return acknowledge until all three signals are ready”. That 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.
  • the input signal for the self-synchronous system can be considered similarly.
  • the flip-flops in the system do not operate at different timings indefinitely. Will fit in some degree.
  • the handshake of the input / output signal of system 1 is stopped by using such an operation, the internal output of system 1 will be to some extent, that is, the output that is not dependent on the input signal that has stopped coming, or the output that can no longer be output. Stall after proceeding until the signal stops processing. If the handshake of input / output signals of system 1 is then resumed, system 1 continues and force processing resumes.
  • the processing equivalent to stopping and restarting the global clock is part of the system 1 or system 1 in the self-synchronous system 1 in which no global clock exists. This can be achieved by stopping or resuming handshaking of input / output signals of a circuit configured in a general manner. Therefore, in the self-synchronous system 1, the data flow implemented in the system 1 can be changed by temporarily stopping the data flow processing and changing the logic of the processing unit or changing the connection of the processing unit. Rows can be dynamically reconfigured.
  • the data lines and acknowledge lines that make up the routing matrix 5 to which the PU 10 is connected transmit pulses only once during the process corresponding to one cycle of the original synchronous circuit. . Therefore, when the original synchronous circuit is normally mounted in a synchronous manner, or when the self-synchronous circuit is mounted in a two-wire self-synchronous design method, a large amount of spikes are caused by imbalance of element delay and wiring delay. It is possible to suppress the generation of power and power consumption.
  • circuit elements such as AND gates, OR gates, NOT gates, and flip-flops used in the synchronous design are not self-timed. It is implemented by the method.
  • the self-timed device allocates two signals, the data line and the acknowledge line, and the data line uses two power sources, a positive power source and a negative power source.
  • the data line On 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.
  • the acknowledge line one pulse represents an acknowledge for one clock cycle.
  • a two-wire self-timed device using one power supply transmits an output signal only when the output value must be changed.
  • the one-wire self-timed device according to one embodiment of the present invention transmits an output signal once per process for one cycle of the user clock regardless of whether the output value is changed. This reflects the nature of the synchronous user circuit that “all signal lines transmit values once per clock cycle”. Therefore, in the circuit system constructed by combining the self-timed elements of one form of the present invention, every time a handshake is performed once on all data lines / acknowledge lines, one cycle of the user clock of the synchronous user circuit It can be considered that the processing of minutes proceeds.
  • the signal transmitting side element first issues a data pulse to the signal receiving side element, and the receiving side element that receives the data pulse sends an acknowledge pulse to the transmitting side element. Take the procedure of returning.
  • the receiving 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 element first issues an acknowledge pulse (meaning don't care notification) to the sending element, and the sending element that receives it sends an arbitrary data pulse (meaning don't care acknowledgment). Is returned as a handshake.
  • the internal operation of the self-synchronous PU 10 is shown in the form of a flowchart, but it can also be described by other notations such as a state transition diagram and a production rule.
  • the system 1 having a general-purpose self-synchronous PU 10 is described above.
  • a self-synchronizing processing unit equipped with a dedicated logic or a self-synchronizing element can be combined to form a self-synchronizing circuit with a handshake backflow function.
  • the self-synchronous processing unit or element does not have to be connected by wiring, and there is an electrical signal! /, Which can realize self-synchronous mounting by transmitting an optical signal wirelessly or by wire.
  • the self-synchronous system can overcome the effects of wiring delay and device delay imbalance, and is a distributed large-scale system in which multiple systems or processing units are connected by computer work such as the Internet. The above configuration can also be applied to this.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Information Transfer Systems (AREA)

Abstract

There is provided a system having a plurality of self-synchronization type processing units. One of the processing units include a signal exchange unit of input side for receiving a plurality of input signals supplied from the processing units of input side; a logic unit for generating an output signal according to the input signals; a signal exchange unit of output side for transmitting the output signals to at least one processing unit of the output side; a first judgment function for deciding an input signal not received and useless for generation of the output signal by the input signal received by the signal exchange unit of the input side; and a second judgment function for deciding an input signal which has not been received and need not be received according to the useless report indicating the output signal is useless received by the signal exchange unit of the output side. Furthermore, the signal exchange unit of the input side transmits a useless report to the processing unit of the input side for supplying the input signal which has not yet been received and need not be received according to the first judgment function or the second judgment function.

Description

自己同期型の処理ユニットを有するシステム  System having a self-synchronous processing unit
技術分野  Technical field
[0001] 本発明は、自己同期型、すなわち、非同期型の処理ユニットを有するシステムに関 するものである。  [0001] The present invention relates to a system having a self-synchronous type, that is, an asynchronous type processing unit.
背景技術  Background art
[0002] デジタル回路の設計手法として、システム全体をグローバルクロックで統率する同 期式設計手法が広く採用されている。一方、クロック〖こよる統率を縛りととらえ、縛りか らの解放によって高性能化や低消費電力化をめざすセルフタイムド(自己同期型)設 計手法、すなわち、非同期型の設計手法も検討されている。セルフタイムド設計の利 点のひとつは、接続された回路素子同士がハンドシェイクを行ってタイミング調整す るので、素子遅延や配線遅延に依存しない設計が可能ということである。また、セル フタイムド設計によれば、同期式設計の幾つかの欠点あるいはディメリットを克服でき る。同期式設計のディメリットは、例えば、演算時間がクロック周期を超えてしまったと きの誤動作、演算がクロック周期より早く完了したときにクロック境界まで無為に待つ ことである。  [0002] 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, self-timed (self-synchronous) design methods that take the command of clocks as a binding and aim for higher performance and lower power consumption by releasing the bindings, that is, asynchronous design methods are also being considered. ing. One of the advantages of self-timed design is that the connected circuit elements perform handshake to adjust timing, allowing design that does not depend on element delay or wiring delay. Self-timed design can also overcome some of the disadvantages and disadvantages of synchronous design. Disadvantages of synchronous design are, for example, malfunction when the computation time exceeds the clock period, and waiting for the clock boundary when the computation is completed earlier than the clock period.
[0003] 非同期式の回路の遅延モデルはいくつ力提案されている。米国特許第 6, 606, 3 56では、 DI (Delay Insensitive)モデルおよび QDI (Quasi Delay Insensitive)モデル の性能を改善するモデルとして、遅延が所定の範囲となる回路を仮定した SDI (Scala ble Delay Insensitive)モデルを提案している。米国特許第 6, 732, 336では、 QDI 回路の 2相または 4相ハンドシェイクをパルスに置き換える非同期パルスロジック (AP L)を採用することにより、 QDI回路の性能を改善することを提案している。  [0003] A number of proposed delay models for asynchronous circuits have been proposed. In U.S. Pat.No. 6,606,3 56, SDI (Scala ble Delay Insensitive) is a model that improves the performance of the DI (Delay Insensitive) model and QDI (Quasi Delay Insensitive) model. ) Propose model. US Pat. No. 6,732,336 proposes improving the performance of QDI circuits by employing asynchronous pulse logic (AP L) that replaces the two-phase or four-phase handshake of the QDI circuit with pulses. .
[0004] 同期式設計に対する非同期設計の利点の 1つは、「演算が完了したらクロック境界 まで無為に待たずに次に進んでよい」ということである。し力しながら、非同期設計で は、クロックを共有しな 、素子間あるいはユニット間にお 、てデータを転送するために 、所定のプロトコル (ハンドシェイク)を採用する。このため、非同期設計の方が演算は 早く進行するはずである力 回路素子同士がハンドシェイクを行うオーバヘッドのせ いで、必ずしも同期式設計より高速な結果を得られるとは限らない。 [0004] 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 an asynchronous design, a predetermined protocol (handshake) is adopted to transfer data between elements or units without sharing a clock. For this reason, in the asynchronous design, the calculation should proceed faster. The overhead of handshaking between the power circuit elements is added. However, it is not always possible to obtain a faster result than the synchronous design.
発明の開示  Disclosure of the invention
[0005] 本発明の一態様は、自己同期型の複数の処理ユニットを有するシステムである。こ れら複数の処理ユニットの 1つの処理ユニットは、複数の入力側の処理ユニットからそ れぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、複数 の入力信号に基づき、出力信号を生成するための論理部と、出力信号を、少なくとも 1つの出力側の処理ユニットに送信するための出力側の信号交換部とを有する。処 理ユニットは、さらに、入力側の信号交換部が受信した入力信号により、出力信号の 生成に不用となる未受信の入力信号を定める第 1の判断機能と、出力側の信号交換 部が受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入 力信号を定める第 2の判断機能とを備えている。そして、入力側の信号交換部は、第 1の判断機能または第 2の判断機能により受信不用と判断された未受信の入力信号 を供給する入力側の処理ユニットに宛てて不用通知を送信する。  [0005] One embodiment of the present invention is a system having 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 a plurality of input-side processing units, and a plurality of input signals. And an output side signal exchanging unit for transmitting the output signal to at least one output side processing unit. The processing unit further includes 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 input-side signal exchange unit, and the output-side signal exchange unit receives 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 input processing unit that supplies the unreceived input signal that has been judged not to be received by the first determination function or the second determination function.
[0006] 本発明の他の態様の 1つは自己同期型の処理ユニットである。処理ユニットのタイ プの 1つは、複数の入力側の他の処理ユニットからそれぞれ供給される複数の入力 信号を受信するための入力側の信号交換部と、論理部と、少なくとも 1つの出力側の 他の処理ユニットに出力信号を送信するための出力側の信号交換部と、出力信号の 生成に不用となる未受信の入力信号を定める第 1の判断機能と、出力信号の不用通 知により、受信不用となる未受信の入力信号を定める第 2の判断機能とを有する。入 力側の信号交換部は、第 1の判断機能または第 2の判断機能により不用と判断され た未受信の入力信号を供給する入力側の他の処理ユニットに宛てて不用通知を送 信する。  [0006] Another aspect of the present invention is a self-synchronous processing unit. One type of processing unit is 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. Output signal exchange unit for transmitting output signals to other processing units, first determination function for determining unreceived input signals that are not required for generating output signals, and notification of unnecessary output signals And a second determination function for determining an unreceived input signal that is not required for reception. The signal exchange unit on the input side sends a waste notification to another processing unit on the input side that supplies an unreceived input signal that is judged as unnecessary by the first judgment function or the second judgment function. .
[0007] 自己同期型の処理ユニットのタイプの他の 1つは、出力信号を生成する論理部を有 さないものである。例えば、ノ ッファ (インバータも含む)あるいは分岐として機能する ものである。この処理ユニットは、出力側から送信された不用通知を入力側へ転送す る。このため、この処理ユニットは、入力側の信号交換部と、出力側の信号交換部と を有し、入力側の信号交換部は、出力側の信号交換部が受信した出力信号の不用 通知により、未受信の入力信号を供給する入力側の他の処理ユニットに宛てて不用 通知を送信する。 [0007] 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 notch (including an inverter) or a branch. This processing unit forwards the waste notification sent 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 the notification of the unnecessary output signal received by the output-side signal exchange unit. Not used for other processing units on the input side that supply unreceived input signals Send a notification.
[0008] 出力側の信号交換部が出力信号を、複数の出力側の処理ユニットに送信する処理 ユニットにおいては、全ての出力側の処理ユニットから不用通知を受信したときに出 力信号の生成が不用になる。したがって、第 2の判断機能は、複数の出力側の処理 ユニットの全てから出力信号の不用通知を受信したときに、受信不用となる未受信の 入力信号を定める。  [0008] In a processing unit in which an output-side signal exchange unit transmits an output signal to a plurality of output-side processing units, an output signal is generated when a waste notification is received from all output-side processing units. It becomes useless. 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.
[0009] 本発明の他の態様のさらに 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 the input signal received by the signal exchange unit on the input side, or received by the signal exchange unit on the output side. Due to the second factor that an unreceived input signal that is not received due to the unnecessary notification indicating that the output signal is not used is generated, it is sent to the processing unit on the input side that is scheduled to supply the input signal. Including sending.
[0010] 不用通知の伝播は、データが未入力のときに確認信号 (ァタノリッジ信号)を送信す ることにより、処理ユニット間において、データ用の信号を転送するためのハンドシェ イクのプロトコルに追加できる。これにより、データ用の信号により不用通知に関する ハンドシェイクを行うことができる。そのようなハンドシェイクのプロトコルの 1つは以下 のようなものであり、以下の処理 pl〜p4のいずれかにより入出力側で信号の転送を 確認する。  [0010] Propagation notification can be added to a handshake protocol for transferring a data signal between processing units by sending a confirmation signal (a data 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 one of the following processes pl to p4.
pi. 入力信号を受信すると、その入力信号の供給元の入力側の処理ユニット (他の 処理ユニット)に宛てて確認信号を送信する。  pi. When an input signal is received, a confirmation signal is sent to the processing unit (other processing unit) on the input side that is the source of the input signal.
p2. 未受信の入力信号の供給元の入力側の処理ユニット (他の処理ユニット)に宛 てて不用通知として確認信号を送信し、確認信号の送信先の入力側の処理ユニット (他の処理ユ ット)力 ダミーの入力信号を受信する。  p2. A confirmation signal is sent as an unnecessary notification to the input processing unit (other processing unit) that is the source of the unreceived input signal, and the input processing unit (other processing unit) (Unit) Force Receives dummy input signal.
p3. 出力信号を送信し、送信先の出力側の処理ユニット (他の処理ユニット)力 確 認信号を受信する。  p3. Send the output signal and receive the processing unit (other processing unit) force check signal on the destination output side.
p4. 出力信号が未送信のときに確認信号を受信すると不用通知として認識し、ダミ 一の出力信号を送信する。  p4. If a confirmation signal is received when the output signal has not been transmitted, it is recognized as a non-use notification and a single output signal is transmitted.
[0011] 入力側においては、処理 piまたは p2により信号の転送が確認される。出力側にお いては、処理 p3または p4により信号の転送が確認される。したがって、処理ユニット は、処理 piから P4のいずれか〖こより信号の転送を確認するハンドシェイク機能を備 えていることが望ましい。 [0011] On the input side, signal transfer is confirmed by processing pi or p2. On the output side In this case, signal transfer is confirmed by processing p3 or p4. Therefore, the processing unit, it is preferable that e Bei handshaking function of confirming the transfer of any 〖Koyori signal P 4 from the processing pi.
[0012] 本発明の他の態様のさらに 1つは、自己同期型の処理ユニットが他の自己同期型 の処理ユニットとの間で信号の転送を確認することを含む、信号を伝達するための方 法である。信号の転送を確認すること (ハンドシェイクすること)は、以下を含む。 [0012] According to another aspect of the present invention, there is provided a signal transmission method including a self-synchronous processing unit confirming transfer of a signal with another self-synchronous processing unit. It is a method. Confirming signal transfer (handshaking) includes:
[0013] 入力側の信号交換部により入力信号を受信すると、その入力信号の供給元の入力 側の他の処理ユニットに宛てて確認信号を送信すること、 [0013] 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,
入力信号により、出力信号の生成に不用となる未受信の入力信号が発生する第 1 の要因、または、出力側の信号交換部が受信した、出力信号の不用を示す不用通 知により、受信不用となる未受信の入力信号が発生する第 2の要因により、未受信の 入力信号の供給元の、入力側の他の処理ユニットに宛てて不用通知として確認信号 を送信し、確認信号の送信先の、入力側の他の処理ユニットからダミーの入力信号 を受信すること、  The first factor that causes an unreceived input signal that is not necessary for generating the output signal due to the input signal, or the unnecessary notification that indicates that the output signal is not received, received by the output side signal exchange unit, is not used for reception. Due to the second factor that causes unreceived input signals to be generated, a confirmation signal is sent 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 Receiving dummy input signals from other processing units on the input side,
出力信号を送信し、出力信号の送信先の、出力側の他の処理ユニットから確認信 号を受信すること、および、  Send output signals, receive confirmation signals from other processing units on the output side, and
出力信号が未送信のときに確認信号を受信すると不用通知として認識し、ダミーの 出力信号を送信すること。  When a confirmation signal is received when the output signal has not been transmitted, it is recognized as a non-use notification and a dummy output signal is transmitted.
図面の簡単な説明  Brief Description of Drawings
[0014] [図 1]自己同期型のシステムの概要を示す図。 FIG. 1 is a diagram showing an outline of a self-synchronous system.
[図 2]自己同期型の処理ユニットの概略構成を示す図。  FIG. 2 is a diagram showing a schematic configuration of a self-synchronous processing unit.
[図 3]2線式の自己同期型の素子を示す図。  FIG. 3 is a diagram showing a two-wire self-synchronous element.
[図 4]図 3に示す素子の内部動作を示すフローチャート。  FIG. 4 is a flowchart showing the internal operation of the element shown in FIG.
[図 5]図 2に示す処理ユニットの内部動作の概要を示すフローチャート。  FIG. 5 is a flowchart showing an outline of the internal operation of the processing unit shown in FIG.
[図 6]図 2に示す処理ユニットのさらに詳しい内部動作を示すフローチャート。  FIG. 6 is a flowchart showing a more detailed internal operation of the processing unit shown in FIG.
[図 7]自己同期型の NOTゲート素子を示す図。  FIG. 7 shows a self-synchronous NOT gate element.
[図 8]図 8 (a)は、同期型の信号分岐を示す図、図 8 (b)は、自己同期型の信号分岐 を示す図。 圆 9]自己同期型のバッファ素子を示す図。 [FIG. 8] FIG. 8 (a) is a diagram showing a synchronous signal branch, and FIG. 8 (b) is a diagram showing a self-synchronous signal branch. 9] A diagram showing a self-synchronous buffer element.
[図 10]図 9の素子においてハンドシェイクが行なわれるタイミングチャート。  FIG. 10 is a timing chart in which handshaking is performed in the element of FIG.
[図 11]図 10と異なる例のタイミングチャート。  FIG. 11 is a timing chart of an example different from FIG.
[図 12]図 11とさらに異なる例のタイミングチャート。  [FIG. 12] A timing chart of another example different from FIG.
[図 13]図 12とさらに異なる例のタイミングチャート。  FIG. 13 is a timing chart of another example different from FIG.
[図 14]自己同期型のフリップフロップの内部動作を示すフローチャート。  FIG. 14 is a flowchart showing the internal operation of a self-synchronous flip-flop.
[図 15]自己同期型のフリップフロップのさらに詳しい内部動作を示すフローチャート。 圆 16]組合せ論理回路の一例。  FIG. 15 is a flowchart showing a more detailed internal operation of the self-synchronous flip-flop.圆 16] An example of combinational logic circuit.
[図 17]図 16の組合せ回路を 2入力 1出力の処理ユニットを複数用いた構成に変更し た回路。  [FIG. 17] A circuit in which the combinational circuit of FIG. 16 is changed to a configuration using multiple processing units with two inputs and one output.
[図 18]図 18 (a)〜図 18 (h)は、図 17に示す回路の動作を示す例。  18] FIG. 18 (a) to FIG. 18 (h) are examples showing the operation of the circuit shown in FIG.
[図 19]図 19 (a)〜図 19 (e)は、図 17に示す回路の動作を示す異なる例。  FIG. 19 (a) to FIG. 19 (e) are different examples showing the operation of the circuit shown in FIG.
[図 20]図 20 (a)〜図 20 (e)は、図 17に示す回路の動作をハンドシェイクにより示す 例。  [FIG. 20] FIGS. 20 (a) to 20 (e) are examples showing the operation of the circuit shown in FIG. 17 by handshaking.
[図 21]図 21 (a)〜図 21 (d)は、図 20 (e)に続き、図 17に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 21] FIG. 21 (a) to FIG. 21 (d) are examples in which the operation of the circuit shown in FIG.
[図 22]図 22 (a)〜図 22 (d)は、図 21 (d)に続き、図 17に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 22] FIG. 22 (a) to FIG. 22 (d) are examples in which the operation of the circuit shown in FIG.
圆 23]順序回路の例。 [23] Example of sequential circuit.
圆 24]図 23の順序回路を 2入力 1出力の処理ユニットを複数用いた構成に変更した 回路。 [24] A circuit in which the sequential circuit in Fig. 23 has been changed to a configuration that uses multiple 2-input, 1-output processing units.
[図 25]図 25 (a)〜図 25 (d)は、図 24に示す回路の動作をハンドシェイクにより示す 例。  [FIG. 25] FIGS. 25 (a) to 25 (d) are examples showing the operation of the circuit shown in FIG. 24 by handshaking.
[図 26]図 26 (a)〜図 26 (d)は、図 25 (d)に続き、図 24に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 26] FIGS. 26 (a) to 26 (d) are examples in which the operation of the circuit shown in FIG.
[図 27]図 27 (a)〜図 27 (d)は、図 26 (d)に続き、図 24に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 27] FIGS. 27 (a) to 27 (d) are examples in which the operation of the circuit shown in FIG.
[図 28]図 28 (a)〜図 28 (d)は、図 27 (d)に続き、図 24に示す回路の動作をノ、ンドシ ェイクにより示す例。 [Fig.28] Fig.28 (a) to Fig.28 (d) show the operation of the circuit shown in Fig.24 following the step of Fig.27 (d). An example shown by Jake.
[図 29]図 29 (a)〜図 29 (d)は、図 28 (d)に続き、図 24に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 29] FIGS. 29 (a) to 29 (d) are examples in which the operation of the circuit shown in FIG.
[図 30]図 30 (a)〜図 30 (d)は、図 29 (d)に続き、図 24に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 30] FIGS. 30 (a) to 30 (d) are examples in which the operation of the circuit shown in FIG.
[図 31]図 31 (a)〜図 31 (d)は、図 30 (d)に続き、図 24に示す回路の動作をノ、ンドシ ェイクにより示す例。  [FIG. 31] FIG. 31 (a) to FIG. 31 (d) are examples in which the operation of the circuit shown in FIG.
発明の実施の形態  BEST MODE FOR CARRYING OUT THE INVENTION
[0015] 本発明の一形態は、自己同期型の複数の処理ユニットを有するシステムであり、複 数の入力信号を受信するための入力側の信号交換部と、これら複数の入力信号に 基づき、出力信号を生成するための論理部と、出力側の信号交換部とを有する。処 理ユニットの論理部に実装された餘理が 2入力 ANDのときは、一方の入力信号が真 であれば、出力信号を決定するために他方の入力信号を待つ必要がある。しかしな がら、一方の入力信号が偽であれば、出力信号は偽となり、他方の入力信号は出力 信号の生成に不用(ドントケア)な信号となる。したがって、自己同期型の処理ュニッ トにおいて、異なるタイミングで受信する可能性が高い、他方の入力信号を待つ必要 はなぐ出力信号を出力できる。  [0015] One embodiment of the present invention is a system having a plurality of self-synchronous processing units, based on an input-side signal exchange unit for receiving a plurality of input signals, and the plurality of input signals, A logic unit for generating an output signal; and a signal exchange unit on the output side. When the logic implemented in the logic part of the processing unit is 2-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, it is possible to output an output signal that is highly likely to be received at different timings and does not need to wait for the other input signal.
[0016] 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, if the selected side is determined by the input signal received at a certain timing, it is not selected! The unreceived input signal on the side becomes don't care.
[0017] また、出力信号がドントケアであれば、その出力信号を生成する処理ユニットにお ける入力信号もドントケアとなる。したがって、第 1の判断機能において、出力信号の 生成に受信不用となる未受信の入力信号を定める (第 1の要因)。さらに、第 2の判断 機能において、出力信号の不用通知により、受信不用となる未受信の入力信号を定 める(第 2の要因)。このシステムにおいては、さらに、第 1の判断機能または第 2の判 断機能により不用と判断された未受信の入力信号を供給する入力側の処理ユニット に宛てて、不用通知を送信する。 [0018] ある処理ユニットにおいて、一方の入力信号により出力信号が決定された場合は、 その出力信号は、出力側の信号交換部により出力側の他の処理ユニットに送信され る。それと共に、第 1の判断機能において不用と判断された未受信の入力信号につ いては、その未受信の入力信号を供給する予定の入力側の処理ユニットに対し、入 力側の信号交換部により、不用通知が送信される。さらに、その入力側の処理ュニッ トでは、第 2の判断機能により、不用通知は、さらに、未受信の入力側の他の処理ュ ニットに送信される。したがって、ある処理ユニットから、出力側には出力信号が伝播 されるので、信号処理が進み下流側の処理ユニットの待ち状態が解除される。また、 未受信の入力側には不用通知が伝播されるので、上流側の処理ユニットの待ち状態 を解除でき、信号処理を進められるのでシステムの処理速度を向上できる。 [0017] 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, the first decision function determines the unreceived input signal that is not required for generation of the output signal (first factor). Furthermore, in the second decision function, an unreceived input signal that is not required for reception is determined by the notification of the unnecessary output signal (second factor). In this system, a waste notification is further sent to the processing unit on the input side that supplies an unreceived input signal that has been judged as unnecessary by the first judgment function or the second judgment function. [0018] 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, with respect to an unreceived input signal determined to be unnecessary by the first determination function, an input side signal exchange unit is connected to the input side processing unit that is to supply the unreceived input signal. Thus, a non-use notification is transmitted. Further, in the processing unit on the input side, the useless notification is further transmitted to other processing units on the input side that have not been received by the second determination function. Accordingly, 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.
[0019] さらに、自己同期式の処理ユニットの出力側の信号交換部は、入力信号に基づき 論理部により出力信号が生成される都度、その出力信号をパルス信号で送信するこ とが望ましい。本発明の実施形態の処理ユニットは、論理により、出力信号の値を変 える'変えないに関わらず、出力信号が生成される都度、その出力信号をパルス出力 する。したがって、処理ユニットは、ユーザークロック 1サイクル分の処理につき 1回、 出力信号を伝送する。これは、同期式ユーザー回路の、「全ての信号線が 1クロック サイクルに 1回ずつ値の伝送を行う」 t 、う性質を反映して!/、る。  [0019] Furthermore, 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 an output signal is generated by the logic unit based on the input signal. Regardless of whether or not the value of the output signal is changed by logic, the processing unit of the embodiment of the present invention outputs a pulse of the output signal every time the output signal is generated. Therefore, the processing unit transmits the output signal once per process for one user clock cycle. This reflects the nature of the synchronous user circuit, “All signal lines transmit values once every clock cycle”.
[0020] 本発明の実施形態の自己同期型のシステムにおいては、全ての処理ユニット間で [0020] In the self-synchronous system of the embodiment of the present invention, between all the processing units,
1回ずつハンドシェイクが行われる。そして、ハンドシェイクが行われるたびに、同期 式ユーザー回路のユーザークロック 1サイクル分の処理が進むとみなすことができる。 このため、広く普及している同期式設計の考え方で、自己同期式、すなわち非同期 の回路設計が可能となる。 A handshake is performed once. Each time a handshake is performed, it can be considered that the processing for one cycle of the user clock of the synchronous user circuit proceeds. For this reason, self-synchronous, that is, asynchronous circuit design is possible with the widely used concept of synchronous design.
[0021] 出力側の信号交換部は、出力信号を 3状態に変位する信号で送信することが望ま しい。 3状態に変位する信号の一例は、中立と、それを含まない 2値 (2つの状態)とを 示す信号である。出力信号 (入力信号)を 2線式で送信することも可能である。しかし ながら、不用通知を下流に伝播する際に、出力信号を確認信号として利用するため には、 2線式の場合、遅延量が異なると、ハンドシヱイクの結果が異なる可能性がある 。出力信号を、 3状態に変位する信号で送信することにより、単線 (1線式)で出力信 号 (入力信号)を交換できるので遅延に伴う問題を未然に解決できる。 3状態は、電 気信号であれば、例えば、電圧をプラス、ゼロ、マイナスに変換させることで実現でき る。光信号であれば、例えば、偏光の状態を 3状態に変えることができる。 [0021] It is desirable that the signal exchange unit on the output side transmits the output signal as a signal that is displaced in three states. An example of a signal that shifts to three states is a signal that shows neutrality and binary values (two states) that do not include it. It is also possible to transmit the output signal (input signal) with a two-wire system. However, in order to use the output signal as a confirmation signal when propagating a waste notification downstream, in the case of the 2-wire system, if the delay amount is different, the result of handshake may be different. By transmitting the output signal as a signal that shifts to three states, the output signal is single-wire (1-wire). Since the signal (input signal) can be exchanged, the problem with delay can be solved. The three states can be realized by, for example, converting the voltage into plus, zero, and minus if it is an electric signal. For an optical signal, for example, the polarization state can be changed to three states.
[0022] 処理ユニットは、未受信の入力信号あるいは確認信号により処理できない入力信 号を記憶するためのメモリを備えていることが望ましい。 自己同期型の処理ユニットは 、受信した信号、例えば、入力信号あるいは確認信号を、イベントを進めるトークン( イベントトークン)として記憶するためのメモリを備えていることが望ましい。処理ュ-ッ トは、処理できない信号を記憶するためのメモリを備えていることにより、受信した信 号に関わる処理を進めることが可能となる。  [0022] The processing unit preferably includes a memory for storing an input signal that cannot be processed by an unreceived input signal or 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) for advancing an event. Since the processing queue has a memory for storing signals that cannot be processed, it is possible to proceed with processing related to the received signals.
[0023] 本発明の実施形態の自己同期型のシステムは、グローバルクロックを必要としない 。したがって、自己同期型のシステムに含まれる個々の処理ユニットにおける処理時 間(レイテンシ)がグローバルクロック周期より短くなければならないという制約も存在 しない。このため、処理ユニットの論理部の論理あるいは処理ユニットの接続をフレキ シブルに変更することが可能となる。したがって、自己同期型のシステムは、論理部 における、出力信号を生成する論理を変更可能な再構成可能なシステムに適して 、 る。  [0023] The self-synchronous system according to the embodiment of the present invention does not require a global clock. Therefore, there is no restriction that the processing time (latency) of each processing unit included in the self-synchronous system must be shorter than the global clock period. For this reason, the logic of the logic part of the processing unit or the connection of the processing unit can be changed flexibly. Therefore, the self-synchronous system is suitable for a reconfigurable system capable of changing the logic for generating the output signal in the logic unit.
[0024] 再構成可能なシステムの一形態は、入力側の信号交換部は、入力側の処理ュニッ トを変更する機能を備えており、出力側の信号交換部は、出力側の処理ユニットを変 更する機能を備えて 、る処理ユニットを含むシステムである。そのようなシステムの一 例は、入力側および出力側の信号交換部が通信あるいはデータ伝送機能を含み、 無線あるいは有線により、それぞれに接続される処理ユニットを変更できるものである 。再構成可能なシステムの他の一形態は、複数の処理ユニットの間の信号の交換を 可能とする通信システムであって、複数の処理ユニットの接続を再構成可能な通信シ ステムを、さらに有するものである。  [0024] 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 includes the processing unit on the output side. It is a system including a processing unit having a function to change. An example of such a system is 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. Is.
[0025] この自己同期型のシステムは、無線あるいは有線により実現されるコンピュータネッ トワークで複数のコンピュータが接続された分散型のシステムであっても良い。また、 適当な演算機能を備えた複数の素子が 1つのチップに収納され、電子ある!、は光に より接続された集積回路システムであっても良い。集積回路ユニットの一形態は、複 数の処理ユニットと、複数の処理ユニットの間の信号を伝達するためのルーチンダマ トリタスとを含むものである。ルーチングマトリクスの一例は、複数の処理ユニットに含 まれる少なくとも一部の処理ユニットの間の接続を変更することにより、集積回路ュ- ット内の回路を再構成できるものである。 [0025] This self-synchronous system may be a distributed system in which a plurality of computers are connected via a computer network realized by radio or wire. In addition, an integrated circuit system in which a plurality of elements having appropriate arithmetic functions are housed in one chip, and there is an electronic device may be connected by light. One form of integrated circuit unit is It includes a number of processing units and a routine damatrice for transmitting signals between the processing units. An example of a routing matrix is a circuit in an 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.
[0026] 図 1は、自己同期型の集積回路装置の一例を示してある。この集積回路装置 (集積 回路ユニット、デバイスあるいはシステム) 1は、 FFT (高速フーリエ変換)の演算、 M PEGにより圧縮されたデータのデコードを含む各種計算処理、 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 is transmitted by FFT (Fast Fourier Transform) operation, various calculation processes including decoding of data compressed by MPEG, routing by IP address, and packet. It can be used for a wide variety of purposes such as network processing including data reconstruction. The integrated circuit unit 1 can be configured to execute one or more processes as a single system. It is also possible to construct one system by combining multiple integrated circuit units 1. Further, it is possible to construct one system by combining one or a plurality of integrated circuit units 1 with a general-purpose CPU or other dedicated circuit.
[0027] 集積回路ユニット 1は、各々の演算論理を変更可能な複数の処理ユニット (Process! ng Unit (PU) , Processing Element (PE)また i Conngurable Logic Block (し LB)、 降においては PU) 10と、それら複数の処理ユニット (PUs) 10を接続する経路を構成 するためのルーチングマトリクス 5とを含む。ルーチングマトリクス 5は、 PUslOの間で データを伝送するための配線 (配線群) 6wと、配線群 6wの接続を変更することにより 、ルーチングマトリクス 5の接続構成を変更可能な接続ユニット (スイッチングユニット またはセレクタユニット) 6sとを含む。集積回路ユニット 1は、さらに、 PUslOおよびル 一チングマトリクス 5のコンフィグレーションデータ 7を記憶したコンフィグレーションメ モリ 2と、そのコンフィグレーションメモリ 2から PUslOに対し、コンフィグレーションデ ータ 7を供給するためのコンフィグレーションデータ制御ユニット 3とを有している。コ ンフィグレーシヨンメモリ 2には、複数セットのコンフィグレーションデータ 7が格納され る。制御ユニット 3は、複数セットのコンフィグレーションデータ 7のいずれかを選択し、 PUslOおよび、必要であればルーチングマトリクス 5に供給する。ルーチングマトリク ス 5は、 PUslOおよび接続ユニット 6sに対してコンフィグレーションデータ 7を転送す る機能も有する。 [0028] ルーチングマトリクス 5は、配線 6wがマトリクスに配列されたものに限定されない。例 えば、 PUs 10がネットワークのノードを構成するように接続するものであっても良い。 ルーチングマトリクス 5は、複数の PU10の間の信号の交換を可能とする有線の通信 システムでもある。 PUslOが分散している場合は、無線による通信システムで PUsl 0を接続することも可能である。有線または無線の通信システムにより PUs 10の接続 を再構成することにより、 PUslOにより構成される回路を変更できる。 [0027] The integrated circuit unit 1 has a plurality of processing units (Process! Ng Unit (PU), Processing Element (PE) or i Conngurable Logic Block (LB), and PU in the down) that can change each arithmetic logic. 10 and a routing matrix 5 for configuring a path connecting the plurality of processing units (PUs) 10. The routing matrix 5 is a connection unit (switching unit or switching unit or wiring unit) that can change the connection configuration of the routing matrix 5 by changing the connection between the wiring (wiring group) 6w for transmitting data between PUslO and the wiring group 6w. Selector unit) 6s. The integrated circuit unit 1 further supplies the configuration memory 2 storing the configuration data 7 of PUslO and the routing matrix 5 and supplies the configuration data 7 from the configuration memory 2 to PUslO. The configuration data control unit 3 is provided. The configuration memory 2 stores multiple sets of configuration data 7. The control unit 3 selects one of a plurality of sets of configuration data 7 and supplies it to the PUslO and, if necessary, the routing matrix 5. The routing matrix 5 also has a function of transferring the configuration data 7 to the PUslO and the connection unit 6s. [0028] The routing matrix 5 is not limited to one in which the wiring 6w is arranged in a matrix. For example, PUs 10 may be connected to form a network node. The routing matrix 5 is also a wired communication system that enables signal exchange between a plurality of PUs 10. When PUslO is distributed, PUsl 0 can be connected by a wireless communication system. By reconfiguring the connection of PUs 10 with a wired or wireless communication system, the circuit configured with PUslO can be changed.
[0029] 図 2は、自己同期型の非同期型の処理ユニット (PU) 10の概略の機能構成を示し ている。この PU10は、入力側の信号交換部である入力インターフェイス 11と、出力 Yを決定する論理部 12と、出力側の信号交換部である出力インターフェイス 13とを 備えている。入力インターフェイス 11は、 2つの他の入力側の PUslOaおよび 10bか らそれぞれ供給される 2つの入力信号 Adおよび Bdを受信する。 2つの入力信号 Ad および Bdは、同じタイミングで PUslOaおよび 10bから供給されるとは限らない。した がって、入力側の信号交換部である入力インターフェイス 11は、 2つの入力信号 Ad および Bdをそれぞれ受信する。  FIG. 2 shows a schematic functional configuration of the self-synchronous asynchronous processing unit (PU) 10. The PU 10 includes an input interface 11 that is a signal exchange unit on the input side, a logic unit 12 that determines an output Y, and an output interface 13 that is a signal exchange unit on the output side. The input interface 11 receives two input signals Ad and Bd supplied from two other input side PUslOa and 10b, respectively. The two input signals Ad and Bd are not necessarily supplied from PUslOa and 10b at the same timing. Therefore, the input interface 11 serving as the signal exchange unit on the input side receives the two input signals Ad and Bd, respectively.
[0030] 論理部 12は、入力信号 Adおよび Bdによりそれぞれ与えられる入力 Aおよび入力 B に基づき、出力 Yを決定する。出力インターフェイス 13は、論理部 12の出力 Yを示す 出力信号 Ydを出力側の他の処理ユニット(PU) lOyに送信する。さらに、 PU10は、 PU10の内部動作を制御する制御ユニット 15を備えている。また、 PU10は、未受信 の信号により処理を進めることができない信号を記憶するキューイング用のメモリ 14 を備えている。  The logic unit 12 determines the output Y based on the inputs A and B given by the input signals Ad and Bd, respectively. The output interface 13 transmits an output signal Yd indicating the output Y of the logic unit 12 to another processing unit (PU) lOy on the output side. Furthermore, the PU 10 includes a control unit 15 that controls the internal operation of the PU 10. In addition, the PU 10 includes a queuing memory 14 that stores a signal that cannot be processed due to an unreceived signal.
[0031] 制御ユニット 15は、第 1の判断機能 18と、第 2の判断機能 19とを含む。第 1の判断 機能 18は、入力インターフェイス 11が受信した入力信号 Adまたは Bdにより、出力信 号 Ydの生成に不用となる未受信の入力信号を定める。第 2の判断機能 19は、出力 インターフェイス 13が受信した、出力信号の不用通知により、受信不用となる未受信 の入力信号を定める。  The control unit 15 includes a first determination function 18 and a second determination function 19. The first determination function 18 determines an unreceived input signal that is not necessary for generating the output signal Yd based on the input signal Ad or Bd received by the input interface 11. The second determination function 19 determines an unreceived input signal that is not received by the output interface 13 received notification by the output interface 13 that is not used.
[0032] さらに、制御ユニット 15は、信号の送受信を確認するためのハンドシェイク機能 17 を備えている。ハンドシェイク機能 17は、入力側の PUslOaおよび 10bとの間で入力 信号 Adおよび Bdの送受信をそれぞれ確認する。また、ハンドシェイク機能 17は、出 力側の PUlOyとの間で出力信号 Ydの送受信を確認する。 Furthermore, the control unit 15 includes a handshake function 17 for confirming transmission / reception of signals. Handshake function 17 confirms transmission and reception of input signals Ad and Bd with PUslOa and 10b on the input side. The handshake function 17 Check transmission / reception of output signal Yd to / from PUlOy on the power side.
[0033] このハンドシェイク機能 17は、入力信号 Adを受信すると、その入力信号 Adの供給 元の入力側の PUlOaに宛てて確認信号 (ァタノリッジ信号) Akを送信する。この処理 により、 PU10は、 PUlOaとの間で一回の入力信号の交換 (ノヽンドシェイク)を行う。 すなわち、この処理力 SPU10と PUlOaとの間のハンドシェイク(プロトコル)の 1つであ る。 When the handshake function 17 receives the input signal Ad, the handshake function 17 transmits a confirmation signal (attenuation signal) Ak to the input PUlOa on the input side of the input signal Ad. Through this process, PU10 exchanges the input signal with PUlOa once (nond shake). In other words, this processing power is one of the handshake (protocol) between SPU10 and PUlOa.
[0034] 同様に、ハンドシェイク機能 17は、入力信号 Bdを受信すると、その入力信号 Bdの 供給元の入力側の PUlObに宛てて確認信号 (ァタノリッジ信号) Bkを送信する。この 処理が PU10と PUlObとの間のハンドシェイク(プロトコル)の 1つである。また、ハン ドシェイク機能 17は、出力信号 Ydを送信し、送信先の出力側の PUlOyからァクノリ ッジ信号 Ykを受信する。この処理が、 PU10と PUlOyとの間のハンドシェイク(プロト コル)の 1つである。  Similarly, when the handshake function 17 receives the input signal Bd, the handshake function 17 transmits a confirmation signal (attenuation signal) Bk to the PUlOb on the input side of the supply source of the input signal Bd. This process is one of the handshake (protocol) between PU10 and PUlOb. The handshake function 17 transmits the output signal Yd and receives the acknowledge signal Yk from the PUlOy on the output side of the transmission destination. This process is one of the handshaking (protocol) between PU10 and PUlOy.
[0035] さらに、ハンドシェイク機能 17は、第 1の判断機能 18または第 2の判断機能 19によ り不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛てて不 用通知を送信する。ハンドシェイク機能 17は、受信不用と判断された入力側の PU1 Oaおよび 10bの一方または両方に対して、ァクノリッジ信号 Akおよび Bkの一方また は両方を不用通知(ドントケア通知)として送信する。さらに、ハンドシェイク機能 17は 、入力信号が未受信の状態でァクノリッジ信号を送信した先の PUslOaおよび 10bの 一方または両方力 供給されるダミーの入力信号を受信する。これらの処理が、 PU1 0と PUlOaおよび Zまたは 10bとの間のハンドシェイク(プロトコル)の 1つである。  [0035] Further, the handshake function 17 is not used for an input-side processing unit that supplies an unreceived input signal determined to be unnecessary by the first determination function 18 or the second determination function 19. Send notifications. The handshake function 17 transmits one or both of acknowledgment signals Ak and Bk as a non-use notification (don't care notification) to one or both of PU1 Oa and 10b on the input side that are determined not to be received. Further, the handshake function 17 receives a dummy input signal supplied with one or both of the PUslOa and 10b to which the acknowledge signal is transmitted in a state where the input signal is not received. These processes are one of the handshakes (protocols) between PU10 and PU10a and Z or 10b.
[0036] また、ハンドシェイク機能 17は、出力側の PUlOyからドントケア通知を受け取る。ハ ンドシェイク機能 17は、出力信号 Ydが未送信のときにァクノリッジ信号 Ykを受信する と、ドントケア通知として認識する。ハンドシェイク機能 17は、第 2の判断機能 19にド ントケア通知を伝達すると共に、ダミーの出力信号 Ydを送信する。この処理力 PU1 0および PUlOyとの間のハンドシェイク(プロトコノレ)の 1つである。  [0036] Further, the handshake function 17 receives a don't care notification from the PUlOy on the output side. When the handshake function 17 receives the acknowledge signal Yk when the output signal Yd is not transmitted, it recognizes it as a don't care notification. The handshake function 17 transmits a don't care notification to the second determination function 19 and transmits a dummy output signal Yd. This is one of the handshake (protocol) between the processing power PU10 and PUlOy.
[0037] 制御ユニット 15は、ルーチングマトリクス 5を介してコンフィグレーションメモリ 2から 供給されるコンフィグレーションデータ 7により PU10の処理内容を変更するための再 構成機能 16を備えている。再構成機能 16は、コンフィグレーションデータ 7に基づき 、 PU10の論理部 12のロジックを変更する。また、再構成機能 16は、入力インターフ ェイス 11および出力インターフェイス 13に接続される処理ユニットを変更する。これら により、システム 1において複数の PUslOにより構成されるデータパスが再構成され 、データパスの機能が変更される。この例では、入力インターフェイス 11および出力 インターフェイス 13は、ルーチングマトリクス 5を介して他の PUsと接続されている。ル 一チングマトリクス 5の接続ユニット 6sの構成を変えることによつても、システム 1にお いて複数の PUslOにより構成されるデータノ スを再構成できる。 The control unit 15 has a reconfiguration function 16 for changing the processing content of the PU 10 by the configuration data 7 supplied from the configuration memory 2 via the routing matrix 5. Reconfiguration function 16 is based on configuration data 7 Change the logic of logic part 12 of PU10. The reconfiguration function 16 changes the processing unit connected to the input interface 11 and the output interface 13. As a result, the data path composed of a plurality of PUslOs is reconfigured in the system 1 and the function of the data path is changed. In this example, the input interface 11 and the output interface 13 are connected to other PUs via the routing matrix 5. By changing the configuration of the connecting unit 6s in the routing matrix 5, the data node composed of multiple PUslOs can be reconfigured in the system 1.
[0038] 図 3に、 2線式の 2入力 1出力の自己同期型の素子 90の一例を示している。 2入力 1出力の論理素子は、入力信号は信号 Aおよび Bの 2つ、出力信号は信号 Yの 1つ である。 1つの信号当たり、論理" 0"を伝送するためのデータ線 (AO等)と、論理" 1" を伝送するためのデータ線 (A1等)と、ァクノリッジ線 (Ak等)が必要である。このため 、素子 90には合計 9本の信号線が接続されている。  FIG. 3 shows an example of a 2-wire, 2-input, 1-output self-synchronous element 90. The 2-input 1-output logic element has two input signals, signals A and B, and one output signal, signal Y. For each signal, a data line (such as AO) for transmitting logic "0", a data line (such as A1) for transmitting logic "1", and an acknowledge line (such as Ak) are required. For this reason, a total of nine signal lines are connected to the element 90.
[0039] 図 4は、図 3に示した自己同期型の処理素子(PE) 90の内部動作を示すフローチヤ ートである。まず、ステップ 91において、 PE90は、入力データ線力も論理" 0"や論理 "1"を示す入力信号 A0、 Al、 BOまたは B1が伝送されてくるのを待つ。これらの信 号が伝送されてきたら、 PE90は、ステップ 92において入力信号の供給元を判断す る。ステップ 93または 94において、 PE90は、入力信号に対応するァクノリッジ信号 A kまたは Bkを供給元に返す。ステップ 95において、 PE90は、出力値を変更する必 要があるかどうかを判定する。出力信号 Y0または Y1を変更する必要があるなら、 PE 90は、ステップ 96において新しい出力値を伝送する。その後、ステップ 97において 、 PE90は、出力信号のァクノリッジ Ykを待つ。  FIG. 4 is a flowchart showing the internal operation of the self-synchronous processing element (PE) 90 shown in FIG. First, in step 91, the PE 90 waits for an input signal A0, Al, BO or B1 whose input data line force also indicates logic “0” or logic “1” to be transmitted. When these signals are transmitted, PE 90 determines the source of the input signal in step 92. In step 93 or 94, the PE 90 returns an acknowledge signal Ak or Bk corresponding to the input signal to the supplier. In step 95, PE90 determines whether the output value needs to be changed. If the output signal Y0 or Y1 needs to be changed, PE 90 transmits a new output value in step 96. Thereafter, in step 97, the PE 90 waits for the output signal acknowledgment Yk.
[0040] この自己同期型の素子 90において、入力信号と出力信号とは入力側か出力側か の相違だけで同じデータ信号である。これらのデータ信号とァクノリッジ信号とが伝送 途中で消失したり増殖したりしないという保証と、適当な遅延モデルに対応した回路 設計がなされていれば、この自己同期型素子 90を用いたシステムは正しく動作する  [0040] In this self-synchronous element 90, the input signal and the output signal are the same data signal only in the difference between the input side and the output side. A system using this self-synchronous element 90 is correct if the data signal and acknowledge signal are guaranteed not to be lost or propagated in the middle of transmission and a circuit design corresponding to an appropriate delay model is made. Operate
[0041] 図 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 1-wire PU10 is connected to one logical signal. Assign two actual signal lines. Therefore, a total of 6 signal lines are connected to PU10. The two signal lines for the other PU10 are the data line 5a and the signal line 5b for acknowledgement, respectively. The data line 5a is a signal line for transmitting logic "0" or logic "1" as the data signals Ad, Bd and Yd. The acknowledge signal line 5b is a signal line for transmitting the acknowledge signals Ak, Bk, and Yk.
[0042] 出力インターフェイス 13は、プラス電位の電源線と、マイナス電位の電源線とに接 続される。出力インターフェイス 13は、出力信号 Ydとして論理「1 (真)」を伝送する際 にはプラスのパルスを、論理「0 (偽)」を伝送する際にはマイナスのパルスを出力する 。したがって、データ線 5aは、データ信号 Ad、 Bdおよび Ydとして、論理「1」を伝送 するプラスのパルスと、論理「0」を伝送するマイナスのパルスを伝播する。論理と電位 との関係は例示に過ぎず、関係を逆にすることは可能である。  The output interface 13 is connected to a positive potential power line and a negative potential power line. The output interface 13 outputs a positive pulse when transmitting a logic “1 (true)” as the output signal Yd, and outputs a negative pulse when transmitting a logic “0 (false)”. Therefore, the data line 5a propagates, as data signals Ad, Bd, and Yd, a positive pulse that transmits logic “1” and a negative pulse that transmits logic “0”. The relationship between logic and potential is only an example, and the relationship can be reversed.
[0043] 図 5に、図 2に示した自己同期型の PU10のデータ出力に関する内部動作をフロー チャートで示してある。このフローチャートは、データ出力に関し、 2線式の自己同期 素子 90との比較のため、ドントケア通知の機能を除いた動作を示している。ステップ 2 1において、 PU10は、入力信号 Adまたは Bdが受信されるのを待つ。ステップ 22に おいて、 PU10は、入力信号 Adの受信を確認すると、ステップ 23aでァクノリッジ信 号 Akを送信してハンドシェイクする。ステップ 24aにおいて、 PU10は、入力信号 Bd を待つ。入力信号 Bdを受信すると、ステップ 25aにおいて、 PU10は、ァクノリッジ信 号 Bkを送信してハンドシェイクする。一方、ステップ 22において、入力信号 Bdの受 信を確認すると、 PU10は、ステップ 23bでァクノリッジ信号 Bkを送信してハンドシェ イクする。さらに、ステップ 24bにおいて、 PU10は、入力信号 Adを待つ。入力信号 A dを受信すると、ステップ 25bにおいて、 PU10は、ァクノリッジ信号 Akを送信してハ ンドシェイクする。  FIG. 5 is a flowchart showing the internal operation related to data output of the self-synchronous PU 10 shown in FIG. This flowchart shows the operation of the data output except for the don't care notification function for comparison with the 2-wire self-synchronizing element 90. In step 21, the PU 10 waits for the input signal Ad or Bd to be received. In step 22, when the PU 10 confirms reception of the input signal Ad, the PU 10 performs handshake by transmitting the acknowledge signal Ak in step 23a. In step 24a, PU10 waits for input signal Bd. When the input signal Bd is received, in step 25a, the PU 10 transmits an acknowledge signal Bk and performs handshaking. On the other hand, when the reception of the input signal Bd is confirmed in Step 22, the PU 10 transmits the acknowledge signal Bk and performs handshaking in Step 23b. Further, in step 24b, the PU 10 waits for the input signal Ad. When the input signal Ad is received, in step 25b, the PU 10 transmits an acknowledge signal Ak and performs a handshake.
[0044] 入力信号 Adおよび Bdを受信すると、ステップ 26において、 PU10は、出力信号 Y dを送信する。ステップ 27にお ヽてァタノリッジ信号 Ykを受信してハンドシェイクは完 了する。  [0044] When the input signals Ad and Bd are received, in step 26, the PU 10 transmits the output signal Yd. In step 27, the handshake is completed when the anode signal Yk is received.
[0045] このように、 1線式の PU10の基本的な動作は、一回の処理で、全ての入出力線で 1回ずつ信号を送受信することである。すなわち、 PU10においては、全ての入出力 線で 1回ずつ信号伝送すること力 ユーザークロックの 1サイクルに相当する。このた め、 2線式の自己同期設計用の素子とは異なり、同期式素子と同等の、「全ての信号 線が 1クロックサイクルに 1回ずつ値の伝送を行う」という性質を持つ。したがって、 PU 10を用 、たシステムについては、クロック同期型のシステム設計を適用できる。 As described above, the basic operation of the one-wire PU 10 is to transmit and receive signals once for all the input / output lines in a single process. In other words, all inputs and outputs in PU10 Ability to transmit signals once per line Equivalent to one cycle of the user clock. For this reason, unlike the two-wire self-synchronous design element, it has the same property as the synchronous element: “All signal lines transmit values once per clock cycle”. Therefore, a clock synchronous system design can be applied to a system using PU 10.
[0046] クロック同期型のシステム設計を積極的に実現するため、以下では、 PU10の基本 動作は、全入力について 1回ずつ信号を受け取つてから出力を 1回出すものとし、片 方の入力だけどんどん先行することは認めな 、し、出力値を変化させる必要の有無 によらず毎回、出力を伝送する。  [0046] In order to proactively implement clock-synchronous system design, the basic operation of PU10 is as follows. It receives signals once for all inputs and then outputs once, and only one input is used. It is not allowed to advance ahead, and the output is transmitted every time regardless of whether the output value needs to be changed.
[0047] 本実施形態では、 PU10を備えたデバイス (システム) 1により、クロック同期式のュ 一ザ一回路を、グローバルクロックを使わずに実装できる。このため、クロックスキュー 調整やクリティカルパス調整の工数を省略できる。さら〖こ、以下に示すノヽンドシェイク 逆流機能により、クロック同期型と互換という特徴を保持しながら、片側の入力だけで 、結果的に処理を進めることができる。さらに、キューイング用のメモリ 14を用いること により、クロック同期型と互換という特徴を保持しながら、処理速度をいつそう改善でき る。  In the present embodiment, a clock synchronous user circuit can be implemented without using a global clock by the device (system) 1 having the PU 10. For this reason, the man-hours for clock skew adjustment and critical path adjustment can be omitted. Furthermore, the following non-shake backflow function allows the processing to proceed with only one side input while maintaining the characteristics compatible with the clock synchronous type. Furthermore, by using the memory 14 for queuing, the processing speed can be improved at any time while retaining the feature of being compatible with the clock synchronous type.
[0048] 図 6は、図 2に示した 2入力 1出力の自己同期型の PU10の内部動作に関するフロ 一チャートである。このフローチャートは、ハンドシェイク逆流機能を含めた内部動作 を示す。まず、ステップ 31において、 PU10は、入力データ線 Adおよび Bdと、出力 ァクノリッジ線 Ykからのパルスを待つ。  FIG. 6 is a flowchart relating to the internal operation of the 2-input 1-output self-synchronous PU 10 shown in FIG. This flowchart shows the internal operation including the handshake backflow function. First, in step 31, the PU 10 waits for pulses from the input data lines Ad and Bd and the output acknowledge line Yk.
[0049] 図 5に示した典型的な例は、入力データ線 Adからデータパルスが供給された場合 である。 PU10は、入力信号 Adを受信したので、ステップ 35において、入力ァクノリツ ジ線 Akからァクノリッジパルスを出す (ァタノリッジ信号 Ak)。次に、もう一方のデータ 線 Bdのパルス (入力信号 Bd)を待つ前に、 PU10は、ステップ 36において、出力信 号 Ydを決めるために入力信号 Bdが不用(ドントケア)力否かを判定する。入力信号 B dが必要なのであれば、 PU10は、ステップ 39に移る。ステップ 39では、出力信号が 決定されないので、 PU10は、ステップ 46で入力信号 Adを保持し、入力信号 Bdが 受信されるのを待つ。次に、ステップ 31において、入力信号 Bdが受信されると、 PU 10は、ステップ 35でァクノリッジ信号 Bkを送信する。ステップ 39を介して、 PU10は、 ステップ 41において出力信号 Ydを送信する。 PU10は、ステップ 31に戻ってァクノリ ッジ信号 Ykを待つ。 A typical example shown in FIG. 5 is a case where a data pulse is supplied from the input data line Ad. Since the PU 10 has received the input signal Ad, in step 35, the PU 10 issues an acknowledge pulse from the input acknowledge line Ak (analog signal Ak). Next, before waiting for the other data line Bd pulse (input signal Bd), PU10 determines in step 36 whether or not the input signal Bd is unnecessary (don't care) power to determine the output signal Yd. . If the input signal B d is required, the PU 10 moves to step 39. In step 39, since the output signal is not determined, PU10 holds the input signal Ad in step 46 and waits for the input signal Bd to be received. Next, when the input signal Bd is received in step 31, the PU 10 transmits the acknowledge signal Bk in step 35. Through step 39, PU10 In step 41, the output signal Yd is transmitted. PU10 returns to step 31 and waits for acknowledge signal Yk.
[0050] 一方、ステップ 36において、入力 Aの値だけで出力 Yの値が確定し、入力 Bの値が ドントケアとなることがある。すなわち、ステップ 36において、入力信号 Adにより出力 信号 Ydが確定し、入力信号 Bdがドントケアであると、 PU10は、ステップ 38において 、入力信号 Bdを待つことなぐァクノリッジ信号 Bkを送信する。それと同時に、ステツ プ 41において、 PU10は、確定した出力値をパルス信号 Ydとして送信する。ステツ プ 38において送信されるァクノリッジパルス Bkは、「データパルス Bdを受け取った」と いう受領応答メッセージではなぐ「入力 Bはドントケアである」という通知メッセージで ある。  [0050] On the other hand, in step 36, the value of output Y is determined only by the value of input A, and the value of input B may be don't care. That is, in step 36, when the output signal Yd is determined by the input signal Ad and the input signal Bd is don't care, the PU 10 transmits the acknowledge signal Bk without waiting for the input signal Bd in step 38. At the same time, in step 41, PU10 transmits the determined output value as pulse signal Yd. The acknowledge pulse Bk transmitted in step 38 is not a receipt response message “received data pulse Bd” but a notification message “input B is don't care”.
[0051] その後、ステップ 31に戻って、 PU10は、ァクノリッジパルス Ykと、データパルス Bd を待つ。このデータパルス Bdは、入力 Bの論理値を示すものではなぐ「入力 Bの値 はドントケアである」という通知に対する了解応答メッセージであり、プラスのパルス信 号でもマイナスのパルス信号でもよ 、。  [0051] Thereafter, returning to step 31, the PU 10 waits for the acknowledge pulse Yk and the data pulse Bd. This data pulse Bd does not indicate the logical value of the input B, but is an acknowledgment response message to the notification that “the value of the input B is don't care”, either a positive pulse signal or a negative pulse signal.
[0052] ステップ 31において、入力信号 Adよりも先に、入力信号 Bdが来た場合の PU10の 動作は、上記において、入力信号 Adと入力信号 Bdが入れ替わっただけのものにな る。なお、以降において、入力線 Aおよび Bにより伝播されるノ ルス信号を入力信号 Adおよび Bdとして説明し、出力線 Yにより伝播されるパルス信号を出力信号 Ydとし て説明する。ァクノリッジ信号 Ak、 Bkおよび Ykにおいても同様である。  [0052] In step 31, when the input signal Bd comes before the input signal Ad, the operation of the PU 10 is only the exchange of the input signal Ad and the input signal Bd in the above. In the following, the noise signal propagated through the input lines A and B will be described as the input signals Ad and Bd, and the pulse signal propagated through the output line Y will be described as the output signal Yd. The same applies to the acknowledge signals Ak, Bk and Yk.
[0053] 上述の動作力 分力るように、ステップ 31にお 、て、出力信号を確認したことを示 すノヽンドシェイク (プロトコル)を目的としな ヽァタノリッジ信号 Ykが来る場合がある。そ の場合のァクノリッジ信号 Ykは「出力 Yの値はドントケアである」という、出力側の PU 10yからの通知である。そこで、ステップ 52において、 PU10は、ドントケア了解応答 としてダミーの出力信号 Ydを送信する。この出力信号 Ydのパルス信号はプラスおよ びマイナスのどちらでもよ 、。  [0053] As described above, there may be a case where the data signal Yk for the purpose of a non-shake (protocol) indicating that the output signal has been confirmed comes in step 31. The acknowledge signal Yk in this case is a notification from the PU 10y on the output side that “the value of output Y is don't care”. Therefore, in step 52, the PU 10 transmits a dummy output signal Yd as a don't care acknowledgment response. The pulse signal of this output signal Yd can be either positive or negative.
[0054] ダミーの出力信号 Ydを出すと同時に、 PU10は、ステップ 57において、未受信の 入力信号を供給する予定の入力側の PUlOaおよび Zまたは 10bに対してァクノリツ ジ信号 Akおよび Zまたは Bkを送信する。例えば、入力信号 Adを受信済みであれば 、 PU10は、 PUlObに対してァクノリッジ信号 Bkを送信する。入力信号 Adおよび Bd が未受信であれば、 PU10は、 PUlOaおよび 10bに対してァクノリッジ信号 Akおよ び Bkをそれぞれ送信する。これらのァクノリッジ信号は、信号の送出側の処理ュ-ッ トに対して「信号 Aおよび Bの値はドントケアである」と通知するメッセージである。そし て、ステップ 31において、 PU10は、対応するドントケア了解応答のダミーの入力信 号 Adまたは Bd (PU10aおよび 10bにおいてはダミーの出力信号)を待つ。 [0054] At the same time when the dummy output signal Yd is output, the PU 10 outputs the acknowledge signals Ak and Z or Bk to the PUlOa and Z or 10b on the input side that is to supply the unreceived input signal in step 57. Send. For example, if the input signal Ad has been received , PU10 transmits an acknowledge signal Bk to PUlOb. If the input signals Ad and Bd are not received, PU10 transmits acknowledge signals Ak and Bk to PU10a and 10b, respectively. These acknowledge signals are messages that notify the processing queue on the signal transmission side that the values of signals A and B are don't care. In step 31, PU10 waits for a dummy input signal Ad or Bd (dummy output signal in PU10a and 10b) of the corresponding don't care acknowledgment response.
[0055] したがって、この PU10は、信号の送受信を確認するハンドシェイクプロトコルとして 以下の 4つのタイプを持つ。 Therefore, the PU 10 has the following four types as handshake protocols for confirming signal transmission / reception.
タイプ 1) 入力信号 Adまたは Bdを受信すると、 PU10は、それらの入力信号 Adまた は Bdの供給元の入力側の PUlOaまたは 10bに宛ててァクノリッジ信号 Akまたは Bk を送信する。  Type 1) When receiving the input signal Ad or Bd, the PU 10 transmits the acknowledge signal Ak or Bk to the input PUlOa or 10b on the input side of the input signal Ad or Bd.
タイプ 2) PU10は、未受信の入力信号 Adまたは Bdの供給元の入力側の PUlOa または 10bに宛てて不用通知(ドントケア通知)としてァクノリッジ信号 Akまたは Bkを 送信し、 PUlOaまたは 10bからダミーの入力信号 Adまたは Bdを受信する。  Type 2) PU10 sends an acknowledge signal Ak or Bk to PUlOa or 10b on the input side of the unreceived input signal Ad or Bd as an unnecessary notification (don't care notification), and dummy input from PUlOa or 10b Receives the signal Ad or Bd.
タイプ 3) PU10は、出力信号 Ydを送信し、送信先の出力側の PUlOyからァクノリ ッジ信号 Ykを受信する。  Type 3) PU10 transmits output signal Yd and receives acknowledgment signal Yk from PUlOy on the destination output side.
タイプ 4) 出力信号 Ydが未送信のときにァクノリッジ信号 Ykを受信すると、 PU10は 、ドントケア通知として認識し、ダミーの出力信号 Ydを送信する。  Type 4) When the acknowledge signal Yk is received when the output signal Yd is not transmitted, the PU 10 recognizes it as a don't care notification and transmits a dummy output signal Yd.
[0056] タイプ 1およびタイプ 3のハンドシェイクは通常のデータパルスの送受信に関するも のである。タイプ 2およびタイプ 4のハンドシェイクは、ドントケア通知をデータパルスと ァクノリッジノ ルスを用いて伝播しょうとするためのものである。  [0056] Type 1 and Type 3 handshakes relate to normal data pulse transmission and reception. Type 2 and Type 4 handshakes are intended to propagate don't care notifications using data pulses and alarms.
[0057] 入力側の PUlObが正規の入力信号 Bdを出すと同時に、 PU10が「入力 Bの値はド ントケアである」 t\、う通知のァクノリッジ信号 Bkを出す力もしれな!、。そのケースでは 、送出側の PUlObはァクノリッジ信号 Bkを正規の受領応答と勘違いする。受取側の PU10は入力信号 Bdをドントケア了解応答と勘違 、する。そうやって互いに勘違 、し ても、ユーザークロック 1サイクル分のハンドシェイクが完了したことに変わりは無ぐシ ステム 1の動作に何ら支障はない。したがって、この勘違いを防ぐために何らかの対 策を講じる必要はない。 [0058] 図 6に示したフローチャートをさらに詳しく説明する。ステップ 31において、 PU10が 受信すべき信号を待つ。 PU10が受信する信号は、入力信号 Adおよび Bd、さらに 出力信号のァクノリッジ信号 Ykである。いずれかの信号を受信すると、 PU10は、ス テツプ 32において、その信号により、ある信号の一回分のハンドシェイクが完了した か否かを判断する。ハンドシェイクのタイプは上記の 4つである。事前にいずれかの 信号が送出されており、その受領確認の信号を受信したのであれば、ユーザークロッ ク 1サイクル分のハンドシェイク(タイプ 1またはタイプ 3)が完了しただけである。したが つて、 PU10は、ステップ 31に戻って次の信号を待つ。 [0057] At the same time as PUlOb on the input side outputs the normal input signal Bd, PU10 may output the acknowledge signal Bk for notification that the input B value is don't care! In that case, the sending PUlOb misunderstands the acknowledgment signal Bk as a normal receipt response. The receiving PU 10 misunderstands the input signal Bd as a don't care acknowledgment response. Even if they are misunderstood in this way, there is no problem in the operation of System 1 as the handshake for one cycle of the user clock has been completed. Therefore, it is not necessary to take any measures to prevent this misunderstanding. The flowchart shown in FIG. 6 will be described in more detail. In step 31, PU10 waits for a signal to be received. The signals received by PU10 are input signals Ad and Bd, and output signal acknowledge signal Yk. Upon receipt of either signal, PU 10 determines in step 32 whether or not a handshake for one signal has been completed based on that signal. There are four types of handshaking. If one of the signals has been sent in advance and the receipt confirmation signal has been received, the handshake (type 1 or type 3) for one user clock is completed. Therefore, PU10 returns to step 31 and waits for the next signal.
[0059] ただし、ステップ 32にお!/、て、ハンドシェイクが完了した場合、ステップ 43にお!/、て 、キューイング用のメモリ 14に、ハンドシェイクが完了したデータ線に関して送信を待 つている信号の有無を確認する。送信を待っている信号があれば、 PU10は、ステツ プ 44において、その信号を送出する。例えば、入力信号 Adを連続して受信し、 1番 目および 2番目の入力信号 Adにより入力信号 Bdがドントケアになるとする。この場合 、まず、 PU10は、 1番目の入力信号 Adに対応する未入力の入力信号 Bdに対してド ントケア通知用のァクノリッジ信号 Bkを出力し、そのハンドシェイクが終了するまで、 2 番目の入力信号 Adにァクノリッジ信号 Akを出さずに、状態を保持しても良い。  [0059] However, if the handshake is completed in step 32! /, The transmission waits for the data line in which the handshake is completed in the queuing memory 14 in step 43! /! Check if there is a signal. If there is a signal waiting to be transmitted, PU 10 transmits the signal in step 44. For example, it is assumed that the input signal Ad is continuously received and the input signal Bd becomes don't care by the first and second input signals Ad. In this case, first, PU10 outputs an acknowledge signal Bk for don't care notification in response to a non-input signal Bd corresponding to the first input signal Ad, and the second input until the handshake is completed. The state may be maintained without outputting the acknowledge signal Ak to the signal Ad.
[0060] 一方、 PU10は、 2番目の入力信号 Adに対してァクノリッジ信号 Akを先行して送信 しても良い。この場合、 PU10は、入力側の PUlObに対する 2番目のドントケア通知 をキューイング用のメモリ 14に格納することが可能である。これにより、 PUlOaおよび その上流の処理ユニットにおいては処理が進む。この場合、ステップ 32において、 P U10は、最初のドントケア通知のァクノリッジ信号 Bkに対して、入力信号 Bdを受信し た段階で、ステップ 44において、キューイング用のメモリ 14に格納された次のドントケ ァ通知のァクノリッジ信号 Bkを出力することができる。このドントケア通知により、 PU1 Obおよびその上流側の処理ユニットの処理を進めることができる。  On the other hand, the PU 10 may transmit the acknowledge signal Ak prior to the second input signal Ad. In this case, the PU 10 can store the second don't care notification for the PUlOb on the input side in the memory 14 for queuing. As a result, processing proceeds in PUlOa and its upstream processing unit. In this case, in step 32, the PU 10 receives the input signal Bd with respect to the acknowledge signal Bk of the first don't care notification, and then in step 44, the next don't care stored in the queuing memory 14 is received. An acknowledge signal Bk can be output. By this don't care notification, processing of the PU1 Ob and its upstream processing unit can proceed.
[0061] 出力信号 Ydにおいても同様である。 1番目および 2番目の入力信号 Adに対して入 力信号 Bdがドントケアであれば、 1番目および 2番目の入力信号 Adにより 1番目およ び 2番目の出力信号 Ydが決まる。したがって、 1番目の出力信号 Ydを送信すると共 に、 2番目の出力信号 Ydをキューイング用のメモリ 14に格納する。ステップ 32で、 P U10は、 1番目の出力信号 Ydに対するァクノリッジ信号 Ykを確認すると、ステップ 4 4において、次の出力信号 Ydを送信できる。 The same applies to the output signal Yd. If the input signal Bd is don't care for the first and second input signals Ad, the first and second output signals Yd are determined by the first and second input signals Ad. Therefore, the first output signal Yd is transmitted, and the second output signal Yd is stored in the queuing memory 14. In step 32, P When U10 confirms the acknowledge signal Yk for the first output signal Yd, it can transmit the next output signal Yd in step 44.
[0062] また、以下に示すように、信号を受信しながら、処理を進めることができずァクノリツ ジ信号を送信せずにイベントトークンの状態で保持している信号がありうる。その場合 は、ステップ 48において次の信号の受信を待たずに、保持している信号の処理を開 始する。 [0062] Further, as shown below, there may be a signal that is held in the event token state without being able to proceed with processing while receiving a signal and not transmitting an acknowledge signal. In that case, in step 48, the processing of the held signal is started without waiting for the reception of the next signal.
[0063] 受信した信号によりハンドシェイクが完了しな 、場合は、新 、サイクルが開始され たことになる。まず、ステップ 33において、キューイング用のメモリ 14がフル寸前であ つたり、連続した受信が認められない設定であると、 PU10は、確認応答を行ってハ ンドシェイクすることができない。このため、ステップ 49において、 PU10は、その受信 した信号をイベントトークンとしてキューイング用のメモリ 14に格納し、次の信号を待 つ。すなわち、メモリ 14は、出力信号を生成するために他の入力信号を要する受信 済みの入力信号を格納するとともに、その入力信号も含めて、他のイベントトークンと なる信号を格納する。  [0063] If the handshake is not completed by the received signal, a new cycle is started. First, in step 33, if the queuing memory 14 is full, or if continuous reception is not permitted, the PU 10 cannot perform a handshake by performing an acknowledgment. Therefore, in step 49, the PU 10 stores the received signal as an event token in the queuing memory 14, and waits for the next signal. That is, the memory 14 stores a received input signal that requires another input signal in order to generate an output signal, and stores a signal that becomes another event token including the input signal.
[0064] ステップ 34にお 、て、受信した信号が、入力信号 Adまたは Bdであればデータ入 力である。受信した信号が、ァクノリッジ信号 Ykであれば、それはドントケア通知であ る。入力信号であれば、 PU10は、ステップ 35においてァクノリッジ信号 Akまたは Bk を出力する。  [0064] In step 34, if the received signal is the input signal Ad or Bd, it is a data input. If the received signal is an acknowledge signal Yk, it is a don't care notification. If it is an input signal, PU 10 outputs acknowledge signal Ak or Bk in step 35.
[0065] ステップ 36において、 PU10は、受信した入力信号が、他方の入力信号を不用(ド ントケア)にするものである力否かを判断する(第 1の要因の判断)。ドントケアの入力 信号が発生すると、 PU10は、ステップ 37において、その未受信の入力信号に対し てドントケア通知を送信できるか否力判断する。例えば、上記のように入力信号 Adを 連続して受信した場合は、 PU10は、入力側の PUlObに対してァクノリッジである入 力信号 Bdを受信するまで 2番目のドントケア通知となるァクノリッジ信号 Bkを出力で きない。したがって、ステップ 45において、 PU10は、入力側の PUlObに対するドン トケア通知をキューイング用のメモリ 14に格納し、ステップ 44において送信する。ドン トケアとなった入力信号の供給元となる入力側の処理ユニットに対してドントケア通知 を送信できる状況であれば、 PU10は、ステップ 38においてァクノリッジ信号を送信 する。 [0065] In step 36, the PU 10 determines whether or not the received input signal is a force that makes the other input signal unnecessary (don't care) (determination of the first factor). When a don't care input signal is generated, the PU 10 determines in step 37 whether or not a don't care notification can be transmitted for the unreceived input signal. For example, when the input signal Ad is continuously received as described above, the PU 10 receives the acknowledge signal Bk that becomes the second don't care notification until it receives the input signal Bd that is acknowledge to the PUlOb on the input side. Cannot output. Therefore, in step 45, the PU 10 stores the don't care notification for the PUlOb on the input side in the queuing memory 14, and transmits it in step 44. If the don't care notification can be sent to the processing unit on the input side that is the source of the input signal that has become don't care, the PU 10 sends an acknowledge signal in step 38. To do.
[0066] ステップ 39において、 PU10は、出力信号 Ydが決定されるか否かを判断する。受 信した入力信号により、未受信の入力信号がいずれもドントケアでなければ、未受信 の入力信号が受信されるまで出力信号 Ydは決定されない。このため、ステップ 46に おいて、 PU10は、入力状態をメモリ 14で保存し、次の信号を待つ。なお、未受信で ある複数の入力信号の一方の入力信号がドントケアとなっても、出力信号 Ydが決定 されない論理がある。例えば、セレクタである。その場合も、 PU10は、入力状態をメ モリ 14で保存し、次の信号を待つ。  [0066] In step 39, the PU 10 determines whether or not the output signal Yd is determined. If none of the unreceived input signals are don't care according to the received input signal, the output signal Yd is not determined until the unreceived input signal is received. Therefore, in step 46, the PU 10 stores the input state in the memory 14 and waits for the next signal. Note that there is logic that does not determine the output signal Yd even if one of the input signals that have not been received becomes don't care. For example, a selector. Even in this case, the PU 10 stores the input state in the memory 14 and waits for the next signal.
[0067] 出力信号 Ydが決定されるのであれば、 PU10は、ステップ 40において、出力信号 Ydを送信できる状態力否かを確認する。出力できるときは、ステップ 41において、 P U10は、出力信号 Ydを送信する。上述したように、入力信号 Adを連続して受信する ことにより出力信号 Ydが連続して決定されたような状態では、ステップ 40において、 2番目の出力信号 Ydの送信が不可と判断される可能性がある。その場合は、ステツ プ 47において、 PU10は、送信ができない出力信号 Ydをキューイング用のメモリ 14 に格納し、ステップ 44において送信する。  [0067] If the output signal Yd is determined, the PU 10 checks in step 40 whether or not the output signal Yd can be transmitted. If it can be output, in step 41, the PU 10 transmits the output signal Yd. As described above, in a state where the output signal Yd is continuously determined by continuously receiving the input signal Ad, it may be determined in step 40 that the second output signal Yd cannot be transmitted. There is sex. In this case, in step 47, the PU 10 stores the output signal Yd that cannot be transmitted in the queuing memory 14, and transmits it in step 44.
[0068] なお、ステップ 41において、出力信号は、ドントケア通知が通知されていない出力 側の処理ユニットにのみ送信される。すなわち、ドントケア通知が通知されている出力 側の処理ユニットには出力信号は送信されない。それと共に、後述するステップ 54に おいて、キューイング用のメモリに格納されていた、他の出力側の処理ユニットからの ドントケア通知は解除される。この機能は、 1出力タイプかつ 1ファンアウトの PU10お よびそれを用いたシステムにおいては省くことができる機能である。一方、この機能は 多出力やマルチファンアウトの PUおよびそれらを含むシステムで必要である。例え ば、片方の出力側の PUからドントケア通知が来てドントケア了解応答を返した後で、 入力信号 Adが来て出力信号が決まった場合は、他方の出力側の PUにのみ、正規 の出力信号が送信される。  [0068] In step 41, the output signal is transmitted only to the processing unit on the output side that is not notified of the don't care notification. That is, the output signal is not transmitted to the processing unit on the output side that is notified of the don't care notification. At the same time, in step 54 described later, the don't care notification from the processing unit on the other output side stored in the queuing memory is canceled. This function is a function that can be omitted in the one-output type, one fan-out PU10 and the system using it. On the other hand, this function is necessary for multi-output and multi-fanout PUs and systems that include them. For example, after receiving a don't care notification from the PU on one output side and returning a don't care acknowledgment response, if the input signal Ad comes and the output signal is determined, only the PU on the other output side will receive the normal output. A signal is transmitted.
[0069] PU10が正規の出力信号 Ydを出すと同時に、出力側の PUlOyが「出力 Yの値は ドントケアである」 t\、う通知のァクノリッジ信号 Ykを出す力もしれな!、。そのケースで は、入力信号のときと同様に、互いにハンドシェイクタイプを勘違いすることになる。し 力しながら、システムの動作に何ら支障はない。したがって、この勘違いを防ぐために 何らかの対策を講じる必要はな!/、。 [0069] At the same time as PU10 outputs the normal output signal Yd, PUlOy on the output side may output the acknowledge signal Yk for the notification that the output Y value is “don't care” t \! In that case, as with the input signal, the handshake types will be mistaken for each other. Shi There is no hindrance to the operation of the system. Therefore, it is not necessary to take any measures to prevent this misunderstanding! /.
[0070] 上述したように、ステップ 34にお 、て、受信した信号が、ァクノリッジ信号 Ykであれ ば、それはドントケア通知である(第 2の要因の判断)。したがって、ステップ 52におい て、 PU10は、ァクノリッジ用のダミーの出力信号 Ydを出力する。それと同時に、ステ ップ 57において、 PU10は、未受信の入力信号の供給元の PUlOaおよび Zまたは 10bに対して、ドントケア通知となるァクノリッジ信号 Akおよび Zまたは Bkを送信する 。ドントケア通知を受信して上流 (入力側)に転送する処理により、ドントケア通知を上 流に伝播あるいは逆流することができる。  [0070] As described above, if the received signal is acknowledge signal Yk in step 34, it is a don't care notification (determination of the second factor). Therefore, in step 52, PU10 outputs dummy dummy output signal Yd. At the same time, in step 57, PU10 transmits acknowledge signals Ak and Z or Bk which are don't care notifications to PUlOa and Z or 10b of the source of the unreceived input signal. By receiving the don't care notification and transferring it upstream (input side), the don't care notification can be propagated upstream or back.
[0071] ドントケア通知を逆流するプロセスにおいて、ドントケア通知 Ykが連続して到来する 可能性がある。図 6に示されているステップ 55においては、 PU10は、ドントケア通知 を逆流する入力側の処理ユニット毎に、ドントケア通知を送信できる力否かを判断す る。先行するドントケア通知に対するハンドシェイクが完了していない場合は、ステツ プ 56において、 PU10は、ドントケア通知をキューイング用のメモリ 14に格納する。そ の場合、ステップ 57においては、先行するドントケア通知についてハンドシェイクが完 了している処理ユニットに対してのみドントケア通知が送信される。  [0071] In the process of backflowing the don't care notification, the don't care notification Yk may continuously arrive. In step 55 shown in FIG. 6, the PU 10 determines whether or not it is possible to transmit the don't care notification for each processing unit on the input side that flows back the don't care notification. If the handshake for the preceding don't care notification is not completed, in step 56, the PU 10 stores the don't care notification in the queuing memory 14. In that case, in step 57, the don't care notification is sent only to the processing unit that has completed the handshake for the preceding don't care notification.
[0072] また、図 6に示されているステップ 53および 54は、 1出力タイプかつ 1ファンアウトの PU10では省くことができる機能である。多出力ないしマルチファンアウトの処理ュ- ットにおいて、入力信号がドントケアとなるのは、典型的には、全ての出力信号がドン トケアになった場合である。したがって、 PU10が多出力の処理ユニットの場合は、ス テツプ 53において、上流に対するドントケア通知の送信の可否を判断する。全ての 出力側の処理ユニットからドントケア通知が通知されていない場合は、ステップ 54に おいて出力側からのドントケア通知をキューイング用のメモリ 14に格納し、次の信号 を待つ。  [0072] Steps 53 and 54 shown in FIG. 6 are functions that can be omitted in PU10 of one output type and one fanout. In a multi-output or multi-fanout processing unit, the input signal becomes don't care typically when all the output signals become don't care. Therefore, if PU10 is a multi-output processing unit, in step 53, it is determined whether or not a don't care notification can be transmitted to the upstream. When the don't care notification is not notified from all the output side processing units, the don't care notification from the output side is stored in the queuing memory 14 in step 54, and the next signal is awaited.
[0073] 論理部 12の論理が 2入力 ANDであり、入力信号 Adが「0 (偽)」であれば、他方の 入力信号 Bdはドントケアとなる。論理部 12の論理が 2入力 ORであり、入力信号 Ad 力 S「l (真)」であれば、他方の入力信号 Bdはドントケアとなる。これらのケースでは、 他方の入力信号がドントケアになると共に、出力信号 Ydは決定される。したがって、 2入力の PU10としては、ドントケアの発生の判断と、出力信号の決定の判断とを 1つ のステップで行うことができる。 If the logic of the logic unit 12 is 2-input AND and the input signal Ad is “0 (false)”, the other input signal Bd is don't care. If the logic of the logic unit 12 is 2-input OR and the input signal Ad power S “l (true)”, the other input signal Bd becomes don't care. In these cases, the other input signal becomes don't care and the output signal Yd is determined. Therefore, As a 2-input PU10, the determination of the occurrence of don't care and the determination of the determination of the output signal can be performed in one step.
[0074] これらの PU10の内部動作のうち、ハンドシェイクに関する制御はハンドシェイク機 能 17が行う。また、ステップ 36から 38において、ドントケア通知を発生するための制 御は第 1の判断機能 18が行う。さらに、ステップ 52から 57におけるドントケア通知を 逆流するための制御は第 2の判断機能 19が行なう。  [0074] Of these internal operations of the PU 10, the handshake function 17 controls the handshake. In steps 36 to 38, the first judgment function 18 performs control for generating a don't care notification. Further, the second judgment function 19 performs the control for returning the don't care notification in steps 52 to 57.
[0075] 2入力 1出力の PU10を複数組み合わせることにより、多入力の論理を実現する処 理ユニットを構成することができる。あるいは、処理ユニットとして多入力のものを用意 することも可能である。例えば、論理部 12の論理が 2tolセレクタであり、入力信号と してセレクタ制御信号を含めて 3つの信号が入力される処理ユニットを構成できる。こ のケースでは、セレクタ制御信号が入力信号 Adを選択すれば入力信号 Bdはドント ケアになる。しかしながら、出力信号 Ydは入力信号 Adを受信するまで決まらない。し たがって、ステップ 39を設けておくことが望まし 、。  [0075] By combining a plurality of 2-input 1-output PUs 10, a processing unit that realizes multi-input logic can be configured. Alternatively, it is possible to prepare a multi-input processing unit. For example, it is possible to configure a processing unit in which the logic of the logic unit 12 is a 2 tol selector and three signals including a selector control signal are input as input signals. In this case, if the selector control signal selects the input signal Ad, the input signal Bd becomes don't care. However, the output signal Yd is not determined until the input signal Ad is received. Therefore, it is desirable to have step 39.
[0076] 論理部 12の論理が 2入力 XORであれば、両方の入力信号 Adおよび Bdが決まら ないと出力信号 Ydは決まらない。したがって、一方の入力信号により他方の入力信 号はドントケアにならない。このため、 PU10の内部動作の内、第 1の判断機能 18に よるステップ 36から 38の処理を省くことが可能であり、ドントケア通知に関しては、ス テツプ 52以降の逆流させる処理が主となる。  [0076] If the logic of the logic unit 12 is 2-input XOR, the output signal Yd is not determined unless both input signals Ad and Bd are determined. Therefore, one input signal does not make the other input signal don't care. For this reason, it is possible to omit the processing of steps 36 to 38 by the first determination function 18 in the internal operation of the PU 10, and for don't care notification, the main processing is to reverse the flow after step 52.
[0077] 論理部 12が NOTのときは、 1入力なので PU10の一方の入力のみが利用される。  [0077] When the logic unit 12 is NOT, only one input of the PU 10 is used because it is one input.
このため、内部処理のフローはさらに単純となる。すなわち、 PU10の内部動作の内 、ステップ 36から 38の処理を省くことが可能である。ドントケア通知に関しては、ステ ップ 52以降の逆流させる処理だけになる。また、 NOTゲートを自己同期型の素子と して実装する場合は、 PU10を採用して、このフローチャートを律儀に実行する回路 を作るまでもない。  For this reason, the flow of internal processing is further simplified. That is, steps 36 to 38 can be omitted from the internal operation of PU10. For don't care notification, only the process of backflow after step 52 is performed. If the NOT gate is implemented as a self-synchronous device, it is not necessary to adopt PU10 and create a circuit that executes this flowchart gracefully.
[0078] 図 7は、 NOTゲートを自己同期型の素子として実装する異なる例である。この図に 示すように、 NOTゲートとしては、プラスパルスをマイナスパルスに、マイナスパルス をプラスパルスに変換する電圧インバータ 62を備えた素子 61を実装するだけでもよ い。ただし、電圧反転処理に時間が力かる場合は、図 6のフローチャートを律儀に実 行するほうが、 Akァクノリッジパルスを早めに返すことができる分だけシステム全体の 性能にとって有利になる。 FIG. 7 is a different example in which a NOT gate is implemented as a self-synchronous element. As shown in this figure, as the NOT gate, an element 61 including a voltage inverter 62 that converts a positive pulse into a negative pulse and a negative pulse into a positive pulse may be mounted. However, if time is required for the voltage reversal process, the flowchart in Fig. This is advantageous to the overall system performance because the Ak acknowledge pulse can be returned earlier.
[0079] 自己同期型のシステムにおける信号分岐 (マルチファンアウト)は、通常の同期式回 路とは異なる。同期式回路の場合、図 8 (a)のように、単純に線を接続するだけで信 号を分岐できる。 自己同期式の素子においては、図 8 (b)のように、論理上の信号は 物理的にはデータ線とァクノリッジ線のペアであり、単純に線をつなぐだけでは論理 上の信号を分岐することはできない。 1つの方法は、信号発生源の PU10にステップ 53〜54の機能を搭載してマルチファンアウト対応することである。他の方法は、信号 分岐用の処理ユニット 63を接続することである。分岐用の処理ユニット 63は論理部 6 3cを持つ。論理部 63cの内部動作は、図 6に示したフローチャートにおいて、ステツ プ 52以降の、特に、多出力用として説明した処理を含み、ステップ 36からステップ 3 9の入力信号によりドントケアの発生を判断する処理を含まないものとなる。  [0079] 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. 8 (a), the signal can be branched by simply connecting the lines. In a self-synchronous device, as shown in Fig. 8 (b), 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 add the functions of steps 53 to 54 to the PU10 of the signal source to support multi-fanout. Another method is to connect a processing unit 63 for signal branching. The branch processing unit 63 has a logic part 63c. The internal operation of the logic unit 63c includes the processing described in Step 52 and later, particularly for multiple outputs in the flowchart shown in FIG. 6, and determines the occurrence of don't care based on the input signal from Step 36 to Step 39. It does not include processing.
[0080] 1入力 1出力(1ファンアウト)のバッファ回路は、論理上は何の働きも持たない。しか しながら、バッファ回路は、現実の実装においては、同期式回路の信号分岐ゃ長距 離信号伝送の補助のために用いられる。 自己同期型のシステム 1においては、このよ うなバッファはもつばら長距離信号伝送の補助のために用いられる。 1入力 1出力の ノ ッファ用に、 2入力 1出力の PU10を割り当てることも可能である。あるいは、図 9に 示すように、ノ ッファ回路専用の処理ユニット 64を実装することができる。 1入力 1出 力(1ファンアウト)のバッファ用の処理ユニット 64は、論理部 64cを持つ。論理部 64c の動作は、図 6に示したフローチャートにおいて、ステップ 36力もステップ 39の入力 信号によりドントケアの発生を判断する処理を含まず、ステップ 52以降のドントケア通 知を逆流する処理 (マルチファンアウト用の処理を含まな!/、)を含む。  [0080] A buffer circuit with one input and one output (one fan-out) has no logical function. However, in actual implementation, the buffer circuit is used to assist the signal transmission of the synchronous circuit and the long distance signal transmission. In the self-synchronous system 1, such a buffer is used to assist long-range signal transmission. It is also possible to assign PU10 with 2 inputs and 1 output for a 1 input 1 output nota. Alternatively, as shown in FIG. 9, a processing unit 64 dedicated to the nota circuit can be mounted. The processing unit 64 for a buffer with 1 input and 1 output (1 fanout) has a logic part 64c. The operation of the logic unit 64c does not include the process of determining the occurrence of don't care based on the input signal of step 39 in the flowchart shown in FIG. 6, and the process of backflowing the don't care notification after step 52 (multi-fanout). Does not include processing for! /,).
[0081] ノッファ用の処理ユニット 64は、入力信号 Adが到着した時点でァクノリッジ信号 Ak を返し、ドントケア通知 (ァタノリッジ信号) Ykが到着した時点でドントケア了解応答( 出力信号) Ydを返す。これにより、ノ ッファ無しで長距離ノヽンドシェイクするのに比べ て、ハンドシェイクのターンアラウンドタイムを削減でき、システムが高速に動作するよ うになる。  The processing unit 64 for the noffer returns the acknowledge signal Ak when the input signal Ad arrives, and returns the don't care acknowledgment response (output signal) Yd when the don't care notification (the anode signal) Yk arrives. As a result, the handshake turnaround time can be reduced and the system can operate at high speed compared to a long distance knockshake without a noffer.
[0082] 図 6に示した自己同期式の処理ユニットの制御方法は、他の論理を実装する回路、 例えば、多入力 ANDゲートや N ANDゲートや AND— OR複合ゲート等にも適用可 能である。したがって、この PU10は、再構成機能 16により、論理部 2の論理をフレキ シブルに変更した場合であっても、 自己同期式のサービスを提供できる。さらに、 PU 10は、入力インターフェイス 11および出力インターフェイス 13を介して入力側および 出力側の処理ユニットの接続を変更でき、システム 1としてはルーチングマトリクス 5を 再構成できる。このため、非同期型のシステム 1は、様々な回路あるいはデータパス をフレキシブルに実装しでき、データパスをダイナミックに再構成することにより様々 なアプリケーションを実行できる。 [0082] The control method of the self-synchronous processing unit shown in FIG. For example, it can be applied to multi-input AND gates, N AND gates, and AND-OR composite gates. Therefore, the PU 10 can provide a self-synchronous service even when the logic of the logic unit 2 is changed to flexible by the reconfiguration function 16. Furthermore, the PU 10 can change the connection of the processing units on the input side and the output side via the input interface 11 and the output interface 13, and the routing matrix 5 can be reconfigured as the system 1. As a result, the asynchronous system 1 can flexibly implement various circuits or data paths, and can execute various applications by dynamically reconfiguring the data paths.
[0083] 多数の PU10を含むシステム 1の一例は、 PU10の論理を変更することにより、多段 の組み合わせ論理回路を実装できるものである。このシステムにおいては、論理回路 を評価する際に、入力段から出力段に向力 て「データ—〉ァクノリッジ」というハンド シェイクが行われていくだけでなぐ出力段力も入力段に向力つて「ドントケア通知→ 了解応答」というふうにハンドシェイクを逆流させることもできる。このため、従来のセ ルフタイムド設計実装方式の弱点であったノヽンドシェイクオーバヘッド問題を低減す ることがでさる。 [0083] An example of the system 1 including a large number of PUs 10 can implement a multi-stage combinational logic circuit by changing the logic of the PUs 10. In this system, when the logic circuit is evaluated, the output stage force is also applied to the input stage as well as the “data-> acknowledge” handshake from the input stage to the output stage. The handshake can be reversed, such as “→ OK response”. For this reason, it is possible to reduce the problem of the handshake overhead that was a weak point of the conventional self-timed design and implementation method.
[0084] この設計手法は、デバイス製造者に対して、「パルスが伝送途中で消失したり増殖 したりしない」という保証だけでなぐ「2つのパルスが伝送途中で入れ換わったり合体 したりしない」という保証をも要求する。なぜなら、ある処理ユニットが、あるクロックサイ クル用にドントケア了解応答用のダミー出力信号 Ydのデータノ ルスを出した後、そ の信号 Ydが出力側の PUlOyに届く前に、 PU10が次のクロックサイクル用の正規の 出力信号 Ydのデータパルスを出す可能性があるからである。その状況では、出力信 号 Ydを伝送するデータ線上に 2つのパルスが同時に存在することになり、それらの パルスが伝送途中で入れ換わったり合体したりすると、受取側の PUlOyは誤動作し てしまう。したがって、誤動作を防ぐためには、ノ ルスが伝送途中で入れ換わったり合 体したりしないという保証が必要である。しかしながら、「パルスが伝送途中で入れ換 わったり合体したりしないことを保証せよ」という要求はきわめて合理的であり、デバイ ス製造者にとって特に負担になるような制約ではない。このシステム 1においては、そ のような制約を考慮した回路設計を行うだけで、ハンドシェイク逆流によるオーバへッ ド低減を達成できる。 [0084] This design approach provides the device manufacturer with the assurance that "pulses will not disappear or multiply during transmission". "Two pulses will not be interchanged or merged during transmission." It also demands the guarantee. This is because, after a processing unit issues a data error of a dummy output signal Yd for don't care acknowledgment response for a certain clock cycle, and before the signal Yd reaches the PUlOy on the output side, PU10 is in the next clock cycle. This is because there is a possibility of outputting a data pulse of the normal output signal Yd for use. In this situation, two pulses exist on the data line that transmits the output signal Yd at the same time, and if these pulses are interchanged or merged during transmission, the PUlOy on the receiving side will malfunction. Therefore, in order to prevent malfunctions, it is necessary to ensure that the rules do not switch or merge during transmission. However, the requirement to “guarantee that pulses will not be interchanged or merged during transmission” is extremely reasonable and is not a particular burden on device manufacturers. In this system 1, the overhead due to handshake backflow can be obtained simply by designing the circuit in consideration of such restrictions. Reduction can be achieved.
[0085] また、上記の PU10を用いたシステム 1では、データ線が 1線(1本)で構成できるよ うに、データ線をプラス電源とマイナス電源の 2電源仕様として説明している。図 3に 示した 2線式の自己同期素子、すなわち、単一電源のデータ線 2本 1組という仕様の 処理ユニットを用いたシステムでも、 「ハンドシェイク逆流機能付き同期式回路実装用 セルフタイムド素子」を構築することは可能である。ただし、その場合、デバイス製造 者に対して、上記の保証を要求した上さらに、「2本 1組のデータ線に相次いで送り出 されたパルスは、受信側素子に同じ順序で届く」という保証も要求する。  Further, in the system 1 using the PU 10 described above, the data line is described as a dual power source specification of a positive power source and a negative power source so that one data line can be configured. Even in a system using the 2-wire self-synchronous device shown in Fig. 3, that is, a processing unit with a specification of two single-power-supply data lines, the self-timed It is possible to construct “elements”. However, in that case, the device manufacturer is requested to guarantee the above, and in addition, the guarantee that "pulses sent one after the other in a set of two data lines will reach the receiving element in the same order". Also require.
[0086] たとえば、出力信号 Ydを、信号線 YOおよび Y1の 2本 1組の単一電源データ線で 伝送する場合を考える。送出側の素子があるクロックサイクル用にドントケア了解応答 用のダミーの出力信号としてパルス信号 YOを出した後、それが受取側の素子に届く 前に、送出側の素子が次のクロックサイクル用に正規のパルス信号 Y1を出す可能性 がある。パルス信号 YOを伝送するデータ線より、パルス信号 Y1を伝送するデータ線 のほうが極端に短くて、後出しのパルス信号 Y1の方が先に受取側素子に届いてしま う可能性がある。そのケースでは、受取側の素子はパルス信号 Y1をドントケア了解応 答用のダミーの出力信号とみなし、続いて届くパルス信号 YOの方を次のクロックサイ クル用の正規データパルスとみなす。このため、システムは誤動作する。このような誤 動作を防ぐためには、後出しパルスが先に到着することのないよう、信号 YOを伝送す るデータ線と、信号 Y1を伝送するデータ線の配線長や負荷容量を注意深くそろえて 製造する必要がある。  [0086] For example, consider a case where the output signal Yd is transmitted through a single power supply data line consisting of two signal lines YO and Y1. After sending the pulse signal YO as a dummy output signal for the 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. The normal pulse signal Y1 may be output. There is a possibility that the data line transmitting pulse signal Y1 is extremely shorter than the data line transmitting pulse signal YO, and the later pulse signal Y1 may reach the receiving element first. In that case, the receiving element regards the pulse signal Y1 as a dummy output signal for the don't care acknowledgment response, and regards the subsequent pulse signal YO as a regular data pulse for the next clock cycle. For this reason, the system malfunctions. To prevent such malfunctions, carefully align the wiring length and load capacity of the data line that transmits the signal YO and the data line that transmits the signal Y1 so that the subsequent pulse does not arrive first. It needs to be manufactured.
[0087] 本例のように、データ線が 2電源仕様であれば、出力信号 Ydは 1線で伝送される。  [0087] As in this example, if the data line has the two power supply specification, the output signal Yd is transmitted by one line.
このため、上記のような設計あるいは製造上の問題はなぐデバイス製造者に対する 要求を緩和できる。デバイスの種類あるいは製造者により、 2電源仕様の方が、デー タ線の配線長や負荷容量を注意深くそろえて製造することよりも種々の負担が大き!/ヽ ケースでは、単一電源データ線 2本 1組方式を採用すればょ 、。  This can alleviate the demands on device manufacturers that do not have the above design or manufacturing problems. Depending on the type of device or the manufacturer, the dual power supply specification is more burdensome than manufacturing with carefully aligned data line lengths and load capacities! / ヽ In the case of a single power supply data line 2 If this one set method is adopted.
[0088] さらに、上記の PU10を採用したシステム 1においては、データ線やァクノリッジ線で 信号をやりとりするために、パルス (パルス信号)を用いている。これに対し、公知の 4 フェーズノヽンドシェイクや 2フェーズ(トランジシヨンシグナリング)ハンドシェイクを、ベ ースのハンドシェイクとして用いて、「ハンドシェイク逆流機能付き同期式回路実装用 セルフタイムド素子」を構築することは可能である。ただし、 4フェーズノヽンドシェイクは 、 2フェーズノヽンドシェイクやパルス方式と比べてハンドシェイクターンアラウンド時間 が長ぐ性能面で好ましいとはいえない。一方、 2フェーズノヽンドシェイクは、 2電源( データ線 1本)仕様で実現しょうとしたときにやや強引なタイミング保証'タイミング調 整が必要になる。したがって、ハンドシェイク逆流機能付きセルフタイムド素子を最小 限のタイミング制約でわ力りやすく破綻なく説明するには、上述した 2電源仕様のパ ルスハンドシェイク方式が適して 、る。 [0088] Furthermore, in the system 1 employing the above-described PU10, pulses (pulse signals) are used to exchange signals through data lines and acknowledge lines. On the other hand, the well-known four-phase noise shake and two-phase (transition signaling) handshake It is possible to construct a “self-timed device for mounting a synchronous circuit with a handshake backflow function” by using it as a handshake of a source. However, the four-phase noise shake is not preferable in terms of performance because the handshake turnaround time is longer than the two-phase noise shake and the pulse method. On the other hand, the two-phase noise shake requires a slightly forcible timing guarantee and timing adjustment when trying to achieve it with a dual power supply (one data line) specification. Therefore, in order to explain the self-timed device with handshake backflow function easily and without failure with the minimum timing constraints, the above-mentioned pulsed handshake method with two power supplies is suitable.
[0089] さらに、 PU10では、受信した各信号による処理を可能な限り進めるようにしている。  Furthermore, in the PU 10, the processing based on each received signal is advanced as much as possible.
その 1つの方法は、図 6のステップ 33、 48および 49に示したように、連続して信号を 受信したときに、その事実をイベントトークンとして記憶するが、確認応答のァクノリツ ジ信号を送信しな ヽことである。  One method is to store the fact as an event token when a signal is received continuously, as shown in steps 33, 48, and 49 in Figure 6, but send an acknowledgment acknowledge signal. That's it.
[0090] たとえば、入力側の PUlOaからの入力信号 Adにより出力信号 Ydが決まり、入力側 の PUlObに対してドントケアを通知するァクノリッジ信号 Bkを送信し、出力側の PU1 Oyに対して出力信号 Ydを送信すると、 PU10は、了解応答の出力信号 Bdまたはァ タノリッジ信号 Ykを待つ状態になる。このとき、さらに、入力側の PUlOaから入力信 号 Adを受信すると、入力信号 Adが来たという事実をイベントトークンとしていつたんメ モリ 14に記憶する。次に、 PU10力 所望の入力信号 Bdおよびァクノリッジ信号 Yk を受信してステップ 32におけるハンドシェイクが完了する。このとき、すでに、次の入 力信号 Adのイベントトークンが存在するので、 PU10は、直ちにステップ 34に移る。 それと同時にトークンを消す。このイベントトークンは、信号 Ad、 Bdおよび Ykそれぞ れにっき最大 1個でよい。データ受領のァクノリッジ信号またはドントケア了解の応答 を返さない限り、処理されない信号がさらに繰り返し受信されることはないからである  [0090] For example, the output signal Yd is determined by the input signal Ad from the PUlOa on the input side, the acknowledge signal Bk for notifying don't care is transmitted to the PUlOb on the input side, and the output signal Yd to the PU1 Oy on the output side When PU10 is transmitted, the PU 10 waits for an acknowledge response output signal Bd or the analog signal Yk. At this time, when the input signal Ad is further received from the PUlOa on the input side, the fact that the input signal Ad has arrived is stored in the memory 14 as an event token. Next, the PU10 force desired input signal Bd and acknowledge signal Yk are received, and the handshake in step 32 is completed. At this time, since the event token of the next input signal Ad already exists, the PU 10 immediately proceeds to step 34. At the same time, erase the token. This event token can have a maximum of one for each of the signals Ad, Bd and Yk. This is because an unprocessed signal will not be received repeatedly unless an acknowledgment signal for receiving data or a response to acknowledge don't care is returned.
[0091] PU10では、受信した各信号による処理を進める 2つの目の方策として、キューイン グ用のメモリ 14を設けている。 PU10は、キューイング用メモリ 14を利用できる限り、 受信した信号に対して了解応答を送信する。すなわち、ステップ 33においては、例 えば、入力信号 Adに対する受領ァクノリッジ信号 Akを返さないことにより、「ァタノリツ ジを返してないから再び入力 Adが来ることはあり得ない」のを利用して、他の信号、 例えばァクノリッジ信号 Ykを待つ。これに対し、入力信号 Adを送出した PUlOaは、 受領ァクノリッジ信号 Akを待っている。したがって、ァクノリッジ信号 Ykの受信を待た ずに、ァクノリッジ信号 Akを返すことにより、送出側の PUlOaの処理を進めさせること ができる。一方、受信した入力信号 Adにより出力されることになる信号は、ステップ 4 5または 47にお 、てキューイング用のメモリ 14にストアされ、送信待ちになる。 [0091] In the PU 10, a queuing memory 14 is provided as a second measure for proceeding with processing based on each received signal. As long as the queuing memory 14 can be used, the PU 10 transmits an acknowledgment response to the received signal. That is, in step 33, for example, the received acknowledge signal Ak with respect to the input signal Ad is not returned. Since the input Ad cannot come again because it is not returned, it waits for another signal such as the acknowledge signal Yk. On the other hand, PUlOa that sent the input signal Ad is waiting for the receipt acknowledge signal Ak. Therefore, by returning the acknowledge signal Ak without waiting for the receipt of the acknowledge signal Yk, the processing on the sending side PUlOa can be advanced. On the other hand, the signal to be output by the received input signal Ad is stored in the queuing memory 14 in step 45 or 47, and waits for transmission.
[0092] また、ドントケア通知のァクノリッジ信号 Ykを続けて受信するような場合を考える。具 体的には、最初のァクノリッジ信号 Ykに対して、ドントケア了解応答として出力信号 Y dが送信され、その後の 2番目のドントケア通知のァクノリッジ信号 Ykに対しては、入 力側のドントケア了解応答待ちになる。これに対し、 2番目のァクノリッジ信号 Ykに対 しても、ドントケア了解応答として出力信号 Ydを送信することにより、出力側の PU10 yの処理を進めさせることができる。ただし、ステップ 55および 56において、先行する ドントケア通知に対して了解応答が得られて 、な 、処理ユニットに対するドントケア通 知は、キューイング用のメモリ 14に格納され、送信待ちになる。  Further, a case is considered where the acknowledgment signal Yk for don't care notification is received continuously. Specifically, the output signal Yd is sent as a don't care acknowledgment response to the first acknowledge signal Yk, and the input don't care acknowledgment response to the second don't care notification acknowledge signal Yk. Wait. On the other hand, the PU 10 y on the output side can be processed by transmitting the output signal Yd as the don't care acknowledgment response to the second acknowledge signal Yk. However, in steps 55 and 56, an acknowledgment response is obtained for the preceding don't care notification, and the don't care notification for the processing unit is stored in the queuing memory 14 and awaits transmission.
[0093] 図 10〜図 13は、図 9に示したバッファ回路の PU64において、入力信号および出 力信号が送受信されるタイミングを示している。図 10は、 PU64が、入力信号 Adを 4 回受信して、その都度、出力信号 Ydとして送信するという動作を 4回繰り返したタイム チャートである。  FIGS. 10 to 13 show timings at which an input signal and an output signal are transmitted and received in PU64 of the buffer circuit shown in FIG. FIG. 10 is a time chart in which the operation of the PU 64 receiving the input signal Ad four times and transmitting it as the output signal Yd each time is repeated four times.
[0094] 図 11において、 PU64は、最初のデータは図 10と同じ素直なタイミングで処理する 。 PU64が 2番目のデータを処理する際は、 2番目のァクノリッジ信号 Ykより 3番目の 入力信号 Adを先に受け取った。このケースでは、ァクノリッジ信号を先行して送信し ない設定としている。このため、ステップ 49において、 PU64はイベントとしてキューィ ングし、 2番目のァクノリッジ信号 Ykパルスを待つ。 2番目のァクノリッジ信号 Ykを受 信すると、ステップ 32において、 PU64はそれを受け取り次第、ステップ 48からステツ プ 35およびステップ 39に移行し、 3番目のァクノリッジ信号 Akと 3番目の出力信号 Y dを送信する。次の 3番目のァクノリッジ信号 Ykについての動作も同様である。 4番目 のァクノリッジ信号 Ykは、出力信号 Ydに続いて受信したので、 PU64はイベントとし てキューイングせずに素直なタイミングで処理する。 [0095] 図 12において、 PU64は最初のデータは図 10と同じ素直なタイミングで処理する。 PU64が 2番目のデータを処理する際は、 2番目のァクノリッジ信号 Ykより 3番目の入 力信号 Adを先に受け取った。このケースでは、 2段階のキューイングとなっており、 P U64は 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の待ちに入る。 P U64は、 6番目の入力信号 Adに対してはァクノリッジ信号 Akを送信せずに、ステツ プ 49の待ちに入る。その後、 PU64は、 4番目のァクノリッジ信号 Ykを受信すると、ス テツプ 44により 5番目の出力信号 Ydを送信する。それと共に、 PU64は、ステップ 48 からステップ 35に移行して、 6番目の入力信号に対するァクノリッジ信号 Akを送信す る。 In FIG. 11, the PU 64 processes the first data at the same straightforward timing as in FIG. When the PU64 processes the second data, it receives the third input signal Ad before the second acknowledge signal Yk. In this case, the acknowledge signal is not sent in advance. Therefore, in step 49, PU64 queues as an event and waits for the second acknowledge signal Yk pulse. When receiving the second acknowledge signal Yk, in step 32, the PU 64 moves to step 35 and step 39 from step 48 as soon as it is received, and the third acknowledge signal Ak and the third output signal Y d are received. Send. The operation for the next third acknowledge signal Yk is the same. Since the fourth acknowledge signal Yk was received following the output signal Yd, the PU64 does not queue as an event and processes it at a straightforward timing. In FIG. 12, PU 64 processes the first data at the same straightforward timing as in FIG. When the PU64 processes the second data, it receives the third input signal Ad before the second acknowledge signal Yk. In this case, there are two levels of queuing, and PU64 sends an acknowledge signal to the second signal received in the middle of the processing related to the first signal, and the third signal is It is set to queue as an event. For this reason, the PU 64 waits for step 47, and then proceeds to step 44 from step 32 where the second acknowledge signal Yk is received, and transmits the third output signal Yd. Next, since the PU 64 receives the fourth input signal Ad in the same manner as described above before receiving the third acknowledge signal Yk, the PU 64 operates in the same manner as described above. The PU 64 receives the fifth input signal Ad before receiving the fourth acknowledge signal Yk, and then receives the sixth input signal Ad. For this reason, the PU 64 transmits the fifth acknowledge signal Ak to the fifth input signal Ad and waits for step 47. P U64 does not transmit the acknowledge signal Ak for the sixth input signal Ad, and waits for step 49. Thereafter, when the PU 64 receives the fourth acknowledge signal Yk, it sends the fifth output signal Yd in step 44. At the same time, the PU 64 proceeds from step 48 to step 35, and transmits an acknowledge signal Ak for the sixth input signal.
[0096] その後、 PU64は、 5番目のァクノリッジ信号 Ykの前に、 7番目の入力信号 Adを受 信した。このため、 PU64は、ステップ 49の待ちに入り、 5番目のァクノリッジ信号 Yk を待って、 6番目の出力信号 Ydと 7番目のァクノリッジ信号 Akを送信し、 7番目の出 力信号 Ydは、ステップ 47の待ちに入る。次に、 PU64は、 6番目のァクノリッジ信号 Y kを待って、ステップ 44で 7番目の出力信号 Ydを送信し、 7番目のァクノリッジ信号 Y kを受信する。このように、 PU64は、 2番目のァクノリッジ信号 Akを返した後で、 3番 目の入力信号 Adをすぐに受信した場合でも、論理を破綻させることなく処理すること ができる。このイベントトークンのキューイング処理は、自己同期型の回路設計手法に お!、て、スラックなどと呼ばれて 、る技術を参照できる。  [0096] After that, the PU 64 received the seventh input signal Ad before the fifth acknowledge signal Yk. Therefore, the PU 64 waits for step 49, waits for the fifth acknowledge signal Yk, transmits the sixth output signal Yd and the seventh acknowledge signal Ak, and the seventh output signal Yd 47 waits. Next, the PU 64 waits for the sixth acknowledge signal Y k, transmits the seventh output signal Yd in step 44, and receives the seventh acknowledge signal Y k. As described above, even if the PU64 immediately receives the third input signal Ad after returning the second acknowledge signal Ak, the PU64 can perform processing without breaking the logic. This event token queuing process is a self-synchronous circuit design method! Refers to a technology called slack.
[0097] 図 13は、ドントケア通知を逆流させる状態を示す図である。この図 13は、図 12と同 じキューイングの条件で、出力側の PUlOyが先行して動作する。したがって、図 13と 図 12は、上下が反転した状態となり、図 12の説明のステップ 35がステップ 52にとな り、ステップ 47がステップ 56となる以外は同様に説明できる。 FIG. 13 is a diagram showing a state in which the don't care notification is reversed. In FIG. 13, the output side PUlOy operates in advance under the same queuing conditions as in FIG. Therefore, Figure 13 and FIG. 12 is the same as above except that step 35 in FIG. 12 is changed to step 52 and step 47 is changed to step 56.
[0098] イベントトークンの処理は重要である。ァクノリッジ信号 Akや出力信号 Ydを出す処 理も、微小とはいえ所定の時間がかかり、その微小な期間に入力信号 Adやァクノリツ ジ信号 Ykを受信することがあり得るからである。そのときは、それらの信号をイベントト 一クンとしてメモリ 14にいつたん記憶しておき、次のステップにて直ちに処理すべき である。また、入力信号 Adとァクノリッジ信号 Ykを同時に受信した場合も、片方だけ 受信してもう一方を無視することはできない。したがって、直ぐには処理できない一方 の信号はイベントトークンとして扱う。この場合、どちらを先に受信しても、残ったィべ ントトークンを元に次のステップを直ちに処理すれば、同じ結果が得られる。イベントト 一クンは 1入力につき最低 1個サポートすれば良い。し力しながら、ァクノリッジ信号を 返して、 2個以上をキューイングすればスラックに対応できてさらに高性能な PU10お よびシステム 1を提供できる。  [0098] Processing of event tokens is important. This is because the processing for 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. At that time, these signals should be stored in memory 14 as event tokens and processed immediately in the next step. Also, when the input signal Ad and acknowledge signal Yk are received simultaneously, only one of them can be received and the other cannot be ignored. Therefore, one signal that cannot be processed immediately is treated as an event token. In this case, regardless of which is received first, the same result can be obtained by immediately processing the next step based on the remaining event token. You need to support at least one event token per input. However, by returning an acknowledge signal and queuing two or more, it can handle slack and provide a higher-performance PU10 and system 1.
[0099] 以上は、組み合わせ論理を実装するための自己同期式の処理ユニットである。した がって、フリップフロップを実装するための自己同期式の素子を提供することにより、 同期式のユーザー回路を、自己同期式のシステムに実装できる。フリップフロップは 、ノッファ回路と同様の 1入力 1出力の処理ユニットにおいて、出力信号 Ydを初期値 0で送信することカゝらスタートして、出力信号 Yd→ァクノリッジ信号 Ykのハンドシエイ クと、入力信号 Ad→ァクノリッジ信号 Akのハンドシェイクを 1回ずつ行う。これにより、 ァクノリッジ信号 Ykにより、ラッチされた入力信号を出力するという同期式ユーザー回 路の 1クロックサイクルに相当するフリップフロップの動作を実現できる。  [0099] The above is a self-synchronous processing unit for implementing combinational logic. Therefore, by providing a self-synchronous element for implementing a flip-flop, a synchronous user circuit can be implemented in a self-synchronous system. The flip-flop is a 1-input 1-output processing unit similar to the noffer circuit, and starts by transmitting the output signal Yd with an initial value of 0, and the handshake of the output signal Yd → acknowledge signal Yk and the input signal Ad → Acknowledge signal Perform Ak handshake once. As a result, the flip-flop operation corresponding to one clock cycle of the synchronous user circuit that outputs the latched input signal by the acknowledge signal Yk can be realized.
[0100] 図 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). Figure 15 is a flowchart of the internal operation of the flip-flop (FF) corresponding to the backflow handshake. First, as described above, in step 71, the FF starts from transmitting the output signal Yd with an initial value of 0 as described above. In step 72, the FF waits for the input signal Ad or the output acknowledge signal Yk. . In step 73, when the FF receives the input signal Ad prior to the output acknowledge signal Yk, in step 74, the FF transmits the input acknowledge signal Ak. In step 75, FF waits for output acknowledge signal Yk and In 76, output signal Yd is transmitted. On the other hand, if the output acknowledge signal Yk is received before the input signal Ad, the FF waits for the input signal Ad in step 77. In step 78, the FF transmits the output signal Yd and the input acknowledge signal Ak.
[0101] 入力信号 Adおよび Akの扱いは、図 6の基本フローで扱っているタイプ 1のハンドシ ヱイクと同じ考え方である。出力信号 Ydおよび Ykの扱いは、外部から見れば図 6の 基本フローにおけるタイプ 3のハンドシェイクと同じで、「あるサイクル用のデータ Ydを 出力して力もそれに対応するァクノリッジ Ykを受ける」という動作である。しかしながら 、図 14においては、あた力も「次サイクル用データの受け入れ準備が整ったことを示 す送信許可信号 (見方を変えれば送信リクエスト信号) Ykを受信し、それに対する応 答として次サイクル用のデータ信号 Ydを出力する」 t 、う新たなタイプのハンドシエイ クであるかのように扱っている。そうはいつても、根底に流れる考え方は図 6に示した フローと共通である。したがって、図 6のフローを実現する PU10にフリップフロップ機 能を盛り込むことが可能である。また、フリップフロップ機能を備えた PU10を含むシ ステム 1を構築することが可能である。 [0101] The input signals Ad and Ak are handled in the same way as the type 1 handshake handled in the basic flow in Fig. 6. The handling of the output signals Yd and Yk is the same as the type 3 handshake in the basic flow in Fig. 6 when viewed from the outside. The operation is to output the data Yd for a certain cycle and the force receives the corresponding Yk. It is. However, in Fig. 14, the new power is “The transmission permission signal (transmission request signal in other words) indicating that the preparation for the next cycle data is ready” is received, and the response for that is for the next cycle. The data signal Yd is output. ”T is treated as if it were a new type of handshake. This is always the same as the flow shown in Figure 6. Therefore, it is possible to incorporate the flip-flop function in PU10 that realizes the flow of FIG. In addition, it is possible to construct system 1 including PU10 having a flip-flop function.
[0102] 図 14の基本フローでは、入力信号 Adとして受け取った入力値 Aは、次のクロックサ イタル用の出力信号 Ydとして出力されることになる。そのため、 1クロックサイクルの範 囲内でしか考えて 、ない図 14の基本フローでは、入力信号 Aをドントケア扱!、するこ とはなぐハンドシェイクによるドントケア通知の逆流は生じない。し力しながら、ステツ プ 77において、あるクロックサイクルの入力信号 Adを待っている間に次のクロックサ イタル用のドントケア通知パルスであるァクノリッジ信号 Ykが来たならば、次のクロック サイクルの出力信号 Ydはドントケアということであり、現クロックサイクルの入力信号 A dもドントケアと 、うことである。  [0102] 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 site. Therefore, in the basic flow of Fig. 14, which is considered only within the range of one clock cycle, the backflow of the don't care notification due to the handshake that does not handle the input signal A! However, in step 77, if the acknowledge signal Yk, which is a don't care notification pulse for the next clock cycle, is received while waiting for the input signal Ad of one clock cycle, the output signal of the next clock cycle is received. Yd means don't care, and the input signal Ad in the current clock cycle also means don't care.
[0103] 図 15は、そのケースでハンドシェイクを逆流させる内部動作を示したフローチャート である。ステップ 81において、入力信号 Adではなくァクノリッジ信号 Ykを受信すると 、 FFは、ステップ 82で判断し、ステップ 83において、ドントケア了解応答のダミーの 出力信号 Ydと、ドントケア通知のァクノリッジ信号 Akを送信する。さらに、ステップ 84 において、ダミーの入力信号 Adを受信する。これにより、ノ、ンドシェイクによりドントケ ァ通知の逆流を実現する。この内部動作は、図 6に示した PU10のステップ 52以降 のドントケア通知を逆流する動作と同じであり、図 15に示した内部動作も、 PU10によ り実現できる。 [0103] FIG. 15 is a flowchart showing an internal operation for reversing the handshake in that case. In step 81, when the acknowledgment signal Yk is received instead of the input signal Ad, the FF makes a decision in step 82, and in step 83, transmits a dummy output signal Yd of a don't care acknowledgment response and an acknowledge signal Ak of a don't care notification. In step 84, a dummy input signal Ad is received. As a result, it is possible to Realize reverse notification. This internal operation is the same as the operation of returning the don't care notification after step 52 of PU10 shown in FIG. 6, and the internal operation shown in FIG. 15 can also be realized by PU10.
[0104] 自己同期型のフリップフロップにおいても、処理をシーケンシャルに進める入力信 号 Adあるいはァクノリッジ信号 Ykを待って!/、るタイミングで、所望でな!ヽァタノリッジ 信号 Ykあるいは入力信号 Adを受信することがある。これらは、 PU10において、ィべ ントトークン扱いして記憶することが可能である。また、スラックに対応してキューイン グメモリ 14に格納することも可能である。フリップフロップは、信号処理の分野でュ- ットディレイと呼ばれている通り、遅延付きのバッファである。このため、自己同期型の フリップフロップを導入することにより、自己同期型のシステムの遅延耐性を強化でき る。  [0104] Even in the self-synchronous flip-flop, the input signal Ad or the acknowledgment signal Yk that advances the processing sequentially is waited for at the desired timing and the desired signal Yk or the input signal Ad is received. Sometimes. These can be stored as event tokens in PU10. Further, it can be stored in the queuing memory 14 corresponding to slack. A flip-flop is a buffer with a delay, as is called a dead delay in the field of signal processing. For this reason, by introducing a self-synchronous flip-flop, the delay tolerance of the self-synchronous system can be enhanced.
[0105] 図 16は、以下の論理式(1)を実現する組合せ論理回路である。図 17は、図 16に 示した回路を、 2入力 ANDゲートと、 2入力 ORゲートと、 NOTゲートとで構築し、複 数の PU10を備えたシステム 1に実装できる回路に変換したものである。信号分岐に ついては、専用の信号分岐用処理ユニット 63を使うことにし、回路図にも明記してい る。図 16に示した論理回路は、多入力ゲートや複合ゲートの自己同期型の回路素子 により実装することも可能である。  FIG. 16 is a combinational logic circuit that implements the following logical expression (1). Fig. 17 shows the circuit shown in Fig. 16 converted to a circuit that can be implemented in System 1 with multiple PU10s, which is constructed with a 2-input AND gate, 2-input OR gate, and NOT gate. . For signal branching, a dedicated signal branching processing unit 63 is used and is also clearly shown in the circuit diagram. The logic circuit shown in Fig. 16 can also be implemented with self-synchronous circuit elements such as multi-input gates and composite gates.
Z= ! X1 &X2&X3+X1 &! X2+X1 &! X3 · · · (1)  Z =! X1 & X2 & X3 + X1 &! X2 + X1 &! X3 (1)
[0106] 図 18 (a)〜(h)に、比較例として、図 17に示した回路において、ドントケア通知を逆 流する機能を用いずに、自己同期式で実行する際のハンドシェイクの進み具合を示 している。図示した回路中の配線の 1本は、データ線とァクノリッジ線との組であり、デ 一タパルス (入力信号および出力信号)と、ァクノリッジパルスとが行き来すればハン ドシェイクが完了する。なお、以下では、全ての配線と、個々の処理ユニットにおける 処理が同じ遅延であると仮定している。  18 (a) to (h), as a comparative example, in the circuit shown in FIG. 17, the progress of handshaking when executing in a self-synchronous manner without using the function of flowing back don't care notifications. It shows the condition. One of the wirings in the circuit shown 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 wiring and processing in individual processing units have the same delay.
[0107] 図 18に示したように、ハンドシェイクによるドントケア通知の逆流機能がない場合、 各処理ユニットは、全入力のハンドシェイクが完了してから出力値を確定して出力の ハンドシェイクを行う。本図および以下においては、ハンドシェイクが完了した配線を [0107] 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 below, the wiring after the handshake is completed
、値力 S「l」なら太い実線、値が「0」なら太い一点鎖線で示している。図 18 (a)におい て入力(XI、 X2、 X3)にそれぞれ(1、 0、 1)のデータパルスが発生し、ハンドシェイク が完了したとすると、以降、図 18 (b)から図 18 (h)まで、単位時間ごとに処理ユニット 間のハンドシェイクが 1段ずつ消化され、 7単位時間後に、出力 Zとして「1」が出る。 When the value S is “l”, it is indicated by a thick solid line, and when the value is “0”, it is indicated by a thick dashed line. Fig. 18 (a) Odor If (1, 0, 1) data pulses are generated at the inputs (XI, X2, X3) and the handshake is completed, the unit time from Figure 18 (b) to Figure 18 (h) Each time, the handshake between the processing units is digested one step at a time, and “1” is output as output Z after 7 unit hours.
[0108] 図 19 (a)〜(e)に、ハンドシェイクによるドントケア通知の逆流機能を用いた場合の 、ハンドシェイクの進み具合を示している。逆流ハンドシェイク(ドントケア通知 &了解 )が生じた配線を太い破線で表している。図 19 (b)までは図 18と同じ動作となる。図 1 9 (c)では、 PUlOcがハンドシェイク逆流機能を使ってドントケア通知を発生して!/、る 。 PUlOcは 2入力 ANDであり、その下側入力 CBが「0」であることがわかったので、 出力信号 CYdは「0」に確定する。したがって、このサイクルで、出力信号 CYdを出力 し、さらに、未受信の入力 CAをドントケア扱いとし、ハンドシェイクを逆流させている。  FIGS. 19 (a) to 19 (e) show the progress of handshaking when the backflow function of don't care notification by handshaking is used. The wiring where the backflow handshake (don't care notification & understanding) occurred is shown by a thick broken line. Up to Figure 19 (b), the operation is the same as in Figure 18. In Fig. 19 (c), PUlOc generates a don't care notification using the handshake backflow function! Since PUlOc is a 2-input AND and its lower input CB is found to be “0”, the output signal CYd is determined to be “0”. Therefore, in this cycle, the output signal CYd is output, and the unreceived input CA is treated as a don't care and the handshake is reversed.
[0109] 図 19 (d)においては、 PUlOcの入力側、すなわち上流の PUlOdが、出力のドント ケア通知を受けて、未受信の入力 DAをドントケア扱いとする。このため、ドントケア通 知のァクノリッジ信号 DAkが出力される。このとき、その入力側の PUlOeが出力 EY に正規データパルスを出そうとしていたところだったので、ドントケア通知のァクノリツ ジ信号と、正規の出力信号が入れ違いになる。すなわち、 PUlOdでは、正規の出力 信号をドントケア了解応答とみなし、 PUlOeでは、ドントケア通知をデータ受領のァク ノリッジ信号とみなす。  In FIG. 19 (d), the PUlOc input side, that is, the upstream PUlOd receives the output don't care notification and treats the unreceived input DA as don't care. Therefore, don't care notification acknowledge signal DAk is output. At this time, the PUlOe on the input side was about to output a normal data pulse to the output EY, so the don't care notification acknowledge signal and the normal output signal are misplaced. In other words, PUlOd regards the legitimate output signal as a don't care acknowledge response, and PUlOe regards the don't care notification as a data reception acknowledge signal.
[0110] 図 19 (e)では、最終段の 2入力 ORの PUlOfにおいて、上側入力 FAにより出力 F Yが確定する。したがって、下側入力 FBの入力側の PUlOgに対し、ドントケア通知 を送信してハンドシェイクを逆流させようとしている。この場合も、 PUlOgは、出力信 号を送信しょうとしているので、ドントケア通知のァクノリッジ信号と、正規データパル スと入れ違いになり、双方の PUlOfおよび 10gにおいてハンドシェイクが完了する。  [0110] In Fig. 19 (e), the output F Y is determined by the upper input FA in the PUlOf of the last two-input OR. Therefore, a don't care notification is sent to the PUlOg on the input side of the lower input FB to reverse the handshake. In this case as well, PUlOg tries to transmit the output signal, so it is mistaken for the don't care notification acknowledge signal and the regular data pulse, and the handshake is completed in both PUlOf and 10g.
[0111] これらの図からわ力るように、図 17の回路を実行するのに、ハンドシェイク逆流機能 がなければ、図 18に示すように 8単位時間かかる。一方、ハンドシェイク逆流機能が あれば、図 19に示すように、図 17の回路の実行は 5単位時間で済む。ハンドシェイク 逆流が起こるか起こらないかは信号の値に依存する。したがって、ハンドシェイク逆流 機能があれば図 17の回路を常に 5単位時間で実行できるというわけではない。たと えば、入力(Xl、 X2、 X3)が(1、 1、 0)の場合は、ハンドシェイク逆流機能があっても 8単位時間かかる。しかしながら、自己同期式のシステムにおいては、同期回路設計 の考え方と異なり、「ハンドシェイク逆流機能があろうとな力ろうと、 8単位時間相当の クロック周期を確保しなければならな 、から、ハンドシェイク逆流機能の効果はな 、」 と判断されることはない。 自己同期式のシステムではグローバルクロックはない。この ため、固定のクロック周期というものは存在せず、その時々の状況に応じてハンドシェ イクが済み次第、ユーザークロック 1サイクル相当の処理完了とみなして次に進むこと ができる。したがって、自己同期型の回路 17においては、ハンドシェイク逆流機能が あれば、入力(Xl、 X2、 X3)が(1、 0、 1)のときは 5単位時間でユーザークロック 1サ イタル分の処理を終えて次に進むことができ、そのケースの出現頻度に応じてシステ ム性能が向上することになる。 [0111] As can be seen from these figures, it takes 8 unit hours to execute the circuit of Fig. 17 without the handshake backflow function as shown in Fig. 18. On the other hand, if there is a handshake backflow function, as shown in FIG. 19, the execution of the circuit of FIG. Handshake Whether backflow occurs or not depends on the value of the signal. Therefore, with the handshake backflow function, the circuit in Fig. 17 cannot always be executed in 5 unit hours. For example, if the input (Xl, X2, X3) is (1, 1, 0), even if there is a handshake backflow function It takes 8 unit hours. However, in the self-synchronous system, unlike the concept of synchronous circuit design, “whether the handshake backflow function is used or not, it is necessary to secure a clock period equivalent to 8 unit hours, so handshake backflow It is not judged that the function is effective. There is no global clock in a self-synchronous system. For this reason, there is no fixed clock cycle, and as soon as handshaking is completed according to the situation at that time, it can be considered that the processing equivalent to one cycle of the user clock has been completed and can proceed to the next. Therefore, in the self-synchronous circuit 17, if there is a handshake backflow function, when the input (Xl, X2, X3) is (1, 0, 1), processing for one user clock in 5 unit times The system performance can be improved according to the appearance frequency of the case.
[0112] 図 20 (a)〜図 22 (d) (図 20 (a)〜(e)、図 21 (a)〜(d)、図 22 (a)〜(d) )は、図 19 に示した自己同期式の回路においてハンドシェイクが進行する状況をさらに詳しく示 している。これらの図において、右向きの三角マークは、データ線のパルス、すなわ ち入力信号および出力信号 (以降では、入力データパルスおよび出力データパルス )である。黒塗りマークは論理「1」を表す正規パルス、斜線のマークは論理「0」を表 す正規パルスである。また、白抜きマークは、ドントケア了解応答のダミーパルスであ る。左向きの三角マークは、ァクノリッジ線のパルスで、すなわちァクノリッジ信号(以 降では、入力ァクノリッジパルスおよび出力ァクノリッジパルス)である。黒塗りマーク は論理「 1」のデータ受領応答パルス、斜線のマークは論理「0」のデータ受領応答パ ルスである。また、白抜きマークは、ドントケア通知パルスである。  [0112] Figure 20 (a) to Figure 22 (d) (Figure 20 (a) to (e), Figure 21 (a) to (d), Figure 22 (a) to (d)) are shown in Figure 19 The situation in which handshaking proceeds in the self-synchronous circuit shown is shown in more detail. In these figures, the triangles pointing to the right are data line pulses, that is, input signals and output signals (hereinafter, input data pulses and output data pulses). The black mark is a regular pulse representing logic “1”, and the hatched mark is a regular pulse representing logic “0”. The white mark is a dummy pulse for don't care acknowledgment response. The triangles pointing to the left are pulses of an acknowledge line, 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.
[0113] これらの図においては、パルスが送出側の処理ユニットを出て力 受取側の処理ュ ニットに到達するまで 1単位時間かかり、処理ユニットがパルスを受け取ってァクショ ンを起こすのに 1単位時間力かると想定している。さらに、処理ユニットは、複数のパ ルスを同時に受信したときに、 1単位時間で全パルス分のアクションを行えると想定し ている。また、ハンドシェイク逆流機能について、各処理ユニットは、入力信号のデー タパノレスと、ドントケア通知の出力側からのァクノリッジ信号とを同時に受け取ったとき に、ドントケア処理を優先すると想定している。  [0113] In these figures, it takes one unit time for the pulse to leave the sending processing unit and reach the force receiving processing unit, and one unit for the processing unit to receive the pulse and cause an action. It is assumed that it takes time. Furthermore, the processing unit assumes that all pulses can be acted on in one unit time when multiple pulses are received simultaneously. Regarding the handshake backflow function, each processing unit assumes that don't care processing is given priority when it simultaneously receives the data panorama of the input signal and the acknowledge signal from the output side of the don't care notification.
[0114] これらの想定に基づいて図 20 (a)〜図 22 (d)を説明する。図 20 (a)〜図 22 (d)は 単位時間毎の状態遷移を示している。まず、図 20 (a)の時刻 tlで、入力(Xl、 X2、 X3)に(1、 0、 1)のデータパルスが発生する。図 20 (b)の時刻 t2で、それらのパルス が信号分岐の処理ユニットに到着する。図 20 (c)の時刻 t3で、信号分岐の処理ュ- ットがアクションを起こし、入力ァクノリッジパルスと出力データパルスを発生する。図 2 0 (d)の時刻 t4で、信号分岐の処理ユニットの入力ァクノリッジパルスが入力信号の 発生源に到着する。同時に、信号分岐の処理ユニットの出力データパルスが受取側 の処理ユニットに到着する。図 20 (e)の時刻 t5で、 PUlOcは、ドントケア通知パルス を発生し、逆流させる。 Based on these assumptions, FIG. 20 (a) to FIG. 22 (d) will be described. Figure 20 (a) to Figure 22 (d) State transitions per unit time are shown. First, at time tl in FIG. 20 (a), a data pulse of (1, 0, 1) is generated at inputs (Xl, X2, X3). At time t2 in Fig. 20 (b), these pulses arrive at the signal branch processing unit. At time t3 in Figure 20 (c), the signal branch processing unit takes action, generating an input acknowledge pulse and an output data pulse. At time t4 in Fig. 20 (d), the input acknowledge pulse of the signal branch processing unit arrives at the source of the input signal. 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), PUlOc generates a don't care notification pulse and reverses it.
[0115] 図 21 (a)の時刻 t6で、 PUlOdにドントケア通知パルスが到着し、図 21 (b)の時刻 t 7で、 PUlOdは、さらに、ドントケア通知パルスを逆流させる。図 21 (c)の時刻 t8で、 PUlOdと 10eとの間で、正規の出力データパルスと、ドントケア通知パルスとの間で ハンドシェイクが成立し、ドントケア通知の逆流は止まる。図 21 (d)の時刻 t9で、最終 段の PUlOfが、出力データパルスを出力すると共に、ドントケア通知パルスを発生し 、逆流させる。  [0115] At time t6 in Fig. 21 (a), a don't care notification pulse arrives at PUlOd, and at time t7 in Fig. 21 (b), PUlOd further reverses the don't care notification pulse. At time t8 in Fig. 21 (c), a handshake is established between the normal output data pulse and the don't care notification pulse between PUlOd and 10e, and the back flow of the don't care notification stops. At time t9 in Fig. 21 (d), PUlOf at the final stage outputs an output data pulse and also generates a don't care notification pulse and reverses it.
[0116] 図 22 (&)の時刻1;10で、 PUlOfおよび 10gとの間で、正規の出力データパルスと、 ドントケア通知パルスとの間でハンドシェイクが成立する。図 22 (c)の時刻 tl2で、最 終段の PUlOfと出力信号の受け取り側とのハンドシェイクが終了し、図 22 (d)の時刻 tl3に、この回路の出力信号が確定する。以上では、全ての配線遅延が同じと想定 したが、配線遅延が配線ごとに異なっていても回路は正しく実行されるし、同じ配線 の遅延が状況ごとにばらついても回路は正しく実行される。また、説明のため入力 (X 1、 X2、 X3)の値を固定しているが、入力のハンドシェイクが終了した時刻 t5以降に 、新たな値を入力することにより、新たな演算を開始できる。  [0116] At time 1; 10 in Fig. 22 (&), a handshake is established between the normal output data pulse and the don't care notification pulse between PUlOf and 10g. At time tl2 in Fig. 22 (c), the handshake between the final stage PUlOf and the receiving side of the output signal is completed, and the output signal of this circuit is determined at time tl3 in Fig. 22 (d). In the above, it is assumed that all wiring delays are the same, but the circuit is executed correctly even if the wiring delay is different for each wiring, and the circuit is executed correctly even if the delay of the same wiring varies depending on the situation. In addition, although the values of the inputs (X1, X2, X3) are fixed for the sake of explanation, a new calculation can be started by inputting a new value after time t5 when the input handshake ends. .
[0117] 図 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 a flip-flop. Specifically, Figure 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 system 1 including a 2-input / 1-output self-synchronous PU10. In the circuit diagram of FIG. 24, one wiring represents a pair of a data line and an acknowledge line as described above. The
[0118] 図 25 (a)〜図 31 (d) (図 25 (a)〜(d)、図 26 (a)〜(d)、図 27 (a)〜(d)、 028 (a) 〜 (d)、図 29 (a)〜 (d)、図 30 (a)〜 (d)、図 31 (a)〜 (d) )に、図 24に示した回路を 、 自己同期で、ハンドシェイク逆流機能を用いて実行した状態を示している。図 25 (a )〜図 31 (d)は、単位時間毎の状態遷移を示している。なお、カウンター回路は 1回 実行して終わりというものではなぐ繰り返し実行する。したがって、データパルス、ァ タノリッジパルスおよびドントケア通知パルスにより回路の動きを示している。また、フリ ップフ口ップを表す四角の中には、そのフリップフロップがユーザークロックの何サイ クル目の値を保持して!/、るかを示して!/、る。  [0118] Fig. 25 (a) to Fig. 31 (d) (Fig. 25 (a) to (d), Fig. 26 (a) to (d), Fig. 27 (a) to (d), 028 (a) to (d), Fig. 29 (a) to (d), Fig. 30 (a) to (d), Fig. 31 (a) to (d)), the circuit shown in Fig. 24 is self-synchronized and handshaked. The state executed using the backflow function is shown. Figures 25 (a) to 31 (d) show the state transitions per unit time. Note that the counter circuit is executed repeatedly rather than once. Therefore, the operation of the circuit is indicated by the data pulse, the analog pulse, and the don't care notification pulse. Also, the square representing the flip-flop shows the cycle value of the user clock! /, Indicating the cycle of the user clock! /.
[0119] 図 25 (a)に示した時刻 T1で 3つのフリップフロップ力も初期値 0が出力される。それ らが図 25 (d)に示した時刻 T4で出力信号を受信する処理ユニットに届く。図 26 (d) に示した時刻 T8で、出力 Z1のフリップフロップ (カウンター LSB)のデータ入力にパ ルスが到着する。図 27 (a)に示した時刻 T9で、出力 Z1のフリップフロップだけユー ザ一クロックサイクル 1の処理に進む。  [0119] At time T1 shown in Fig. 25 (a), the initial value 0 is also output for the three flip-flop forces. They arrive at the processing unit that receives the output signal at time T4 shown in Fig. 25 (d). At time T8 shown in Fig. 26 (d), a pulse arrives at the data input of the flip-flop (counter LSB) of output Z1. At time T9 shown in Fig. 27 (a), only the flip-flop of output Z1 proceeds to the process of user clock cycle 1.
[0120] 図 27 (c)に示した時刻 T11で、出力 Z2のフリップフロップは、ユーザークロックサイ クル 1の処理に更新される。図 28 (c)に示した時刻 T15で、出力 Z3のフリップフロッ プ(カウンター MSB)は、ユーザークロックサイクル 1の処理に更新される。その間、出 力 Z1のフリップフロップの周辺の NOTゲートの処理ユニットにおいて、ユーザークロ ックサイクル 1の処理が進む。このため、図 29 (a)に示した時刻 T17で、出力 Z1のフ リップフロップは、ユーザークロックサイクル 2の処理に進む。  [0120] At time T11 shown in FIG. 27 (c), the flip-flop of output Z2 is updated to the process of user clock cycle 1. At time T15 shown in Figure 28 (c), the output Z3 flip-flop (counter MSB) is updated to the process of user clock cycle 1. Meanwhile, processing of user clock cycle 1 proceeds in the NOT gate processing unit around the output Z1 flip-flop. Therefore, at time T17 shown in FIG. 29 (a), the flip-flop of the output Z1 proceeds to the processing of the user clock cycle 2.
[0121] 図 29 (c)に示した時刻 T19において、出力 Z2のフリップフロップは、ユーザークロッ クサイクル 2の処理に進む。出力 Z1のフリップフロップの処理に対して、出力 Z2のフ リップフロップの処理の遅れは僅かである力 出力 Z3のフリップフロップの処理の遅 れは大きい。このため、図 31 (a)に示した時刻 T25で、出力 Z1のフリップフロップは、 先行して、ユーザークロックサイクル 3の処理に進む。これに対し、図 31 (c)に示した 時刻 T27で、出力 Z3のフリップフロップは、ようやくユーザークロックサイクル 2の処理 に進む。時刻 T27では、出力 Z2のフリップフロップがユーザークロックサイクル 3の処 理に進む。このため、出力 Z3のフリップフロップは、出力 Z2のフリップフロップに対し て 1周遅れ(出力 Zlのフリップフロップに対しては 1周以上の遅れ)となる。 [0121] At time T19 shown in FIG. 29 (c), the flip-flop of the output Z2 proceeds to the processing of the user clock cycle 2. The processing delay of the output Z2 flip-flop is small compared to the processing of the output Z1 flip-flop. The processing delay of the output Z3 flip-flop is large. Therefore, at time T25 shown in FIG. 31 (a), the flip-flop of the output Z1 proceeds to the processing of the user clock cycle 3 in advance. On the other hand, at time T27 shown in FIG. 31 (c), the flip-flop of the output Z3 finally proceeds to the processing of user clock cycle 2. At time T27, the output Z2 flip-flop proceeds to user clock cycle 3 processing. Therefore, the output Z3 flip-flop is compared to the output Z2 flip-flop. 1 lag (1 or more lags for the output Zl flip-flop).
[0122] このように、非同期のシステム 1に実装された 3ビットカウンターの回路においては、 出力 Z1のフリップフロップと、出力 Z2のフリップフロップは、出力 Z3のフリップフロッ プに対してどんどん先行して処理が進む。し力しながら、その差は無制限に拡大して いくわけではない。これらのフリップフロップの処理の差がある程度まで広がると、出 力 Z1および Z2のフリップフロップに関連する回路と、出力 Z3のフリップフロップに関 連回路とをつなぐ信号分岐の処理ユニット(図 24における PUlOhおよび 10i)がァク ノリッジパルスを返さなくなる。このため、出力 Z1および Z2のフリップフロップ関連の 回路はそれ以上先行して処理を進むことができなくなる。したがって、それ以降は、 出力 Z3のフリップフロップが 1サイクル分進むたびに信号分岐の PUlOhおよび 10i 力 Si回ずつァクノリッジパルスを返し、それに応じて、出力 Z1および Z2のフリップフロ ップも 1サイクル分ずつ処理を進める。処理ユニットのイベントトークンをキューイング するメモリ 14に 2つ以上のイベントトークンを記憶することにより、出力 Z1および Z2の フリップフロップが先行して処理を進める限度を増やすことができる。 [0122] In this way, in the 3-bit counter circuit implemented in the asynchronous system 1, the output Z1 flip-flop and the output Z2 flip-flop are processed ahead of the output Z3 flip-flop. Advances. However, the difference does not grow indefinitely. When the difference in processing between these flip-flops spreads to a certain extent, the signal branch processing unit (PUlOh in Figure 24) that connects the circuits associated with the output Z1 and Z2 flip-flops to the output Z3 flip-flop. And 10i) will not return an acknowledge pulse. For this reason, the flip-flop related circuits of outputs Z1 and Z2 cannot proceed any further. Therefore, after that, every time the flip-flop of output Z3 advances by one cycle, it returns the acknowledge pulse by PUlOh and 10i force Si times of the signal branch, and the flip-flop of outputs Z1 and Z2 is also 1 cycle accordingly Proceed with each minute. By storing two or more event tokens in memory 14, which queues the processing unit's event tokens, it is possible to increase the limit at which the output Z1 and Z2 flip-flops can proceed ahead.
[0123] 図 25 (a)〜図 31 (d)に示した自己同期式のシステムの動作において、図 26 (c)に 示した時刻 T7、図 27 (a)に示した時刻 T9などにおいて、ドントケア通知ノルスが発 生し、ハンドシェイク逆流機能が有効に活用されていることがわかる。とくに、図 29 (c )の時刻 T19で、 2入力 ANDの PUlOjが発生したドントケア通知パルスは、図 30 (a) の時刻 T21にお!/、て 2入力 ANDの PU 1 Okの入力ドントケア通知パルスとして伝播し ている。これらの図により、多段論理を実行するためのハンドシェイク処理力 出力段 力 入力段へと逆流している様子が見て取れる。このハンドシェイク逆流機能により、 多段論理全体の実行時間が短縮され、システム性能が向上する。  [0123] In the operation of the self-synchronous system shown in Figs. 25 (a) to 31 (d), at time T7 shown in Fig. 26 (c), time T9 shown in Fig. 27 (a), etc. It can be seen that a don't care notification norse occurs and the handshake backflow function is effectively utilized. In particular, at time T19 in Fig. 29 (c), a don't care notification pulse that generates a 2-input AND PUlOj occurs at time T21 in Fig. 30 (a)! /, A 2-input AND PU 1 Ok input don't care notification. Propagating as a pulse. From these figures, it can be seen that the handshake processing power for executing the multistage logic is output to the input stage. This handshake backflow function shortens the execution time of the entire multi-stage logic and improves system performance.
[0124] 図 25 (a)〜図 31 (d)に示したカウンター回路の動作において、 3つのフリップフロッ プが異なるタイミングで動 、たのは、各フリップフロップの次値を計算するロジックの 複雑度に差があつたからというのが主たる要因である。カロえて、それぞれのフリップフ 口ップの出力信号を受取側の処理ユニットが、それぞれの出力信号を異なるタイミン グでノ、ンドシェイクしているという要因がある。出力信号を受信する処理ユニットを、「 3つの信号が揃うまでァクノリッジを返さない」という構成にすることも可能である。その ような構成にすると、 3つのフリップフロップの直後の信号分岐の処理ユニットは異な るタイミングでは動作せず、 3つのフリップフロップも、上記のように異なるタイミングで 処理が進むこともない。 [0124] In the operation of the counter circuit shown in Fig. 25 (a) to Fig. 31 (d), the three flip-flops operate at different timings because of the complexity of the logic that calculates the next value of each flip-flop. The main reason is that there was a difference between the two. There is a reason that the processing unit on the receiving side is not shaking the output signals of each flip-flop at different timings. The processing unit that receives the output signal may be configured to “do not return acknowledge until all three signals are ready”. That 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.
[0125] 自己同期型のシステムに対する入力信号についても同様に考えることができる。図 23および図 24に示したカウンター回路の例では、「システム全体に対する入力信号 」が存在しない。システム全体に対する入力信号が存在する場合には、それらの入力 信号が同期してハンドシェイクされる構成であれば、システム内部のフリップフロップ も無制限に異なるタイミングで動作することはなぐ動作するタイミングの差は、ある程 度に収まる。このような動作を利用し、システム 1の入出力信号のハンドシェイクを止 めてしまえば、システム 1の内部はある程度、すなわち、来なくなった入力信号に依存 しない分だけ、あるいは、出せなくなった出力信号により処理が進まなくなるまで進ん だあと、ストールする。その後、システム 1の入出力信号のハンドシェイクを再開すれ ば、システム 1は続き力 処理を再開する。  The input signal for the self-synchronous system can be considered similarly. In the counter circuit examples shown in FIGS. 23 and 24, there is no “input signal for the entire system”. When there are input signals for the entire system, if the input signals are synchronized and handshaked, the flip-flops in the system do not operate at different timings indefinitely. Will fit in some degree. If the handshake of the input / output signal of system 1 is stopped by using such an operation, the internal output of system 1 will be to some extent, that is, the output that is not dependent on the input signal that has stopped coming, or the output that can no longer be output. Stall after proceeding until the signal stops processing. If the handshake of input / output signals of system 1 is then resumed, system 1 continues and force processing resumes.
[0126] このように、同期式回路において、グローバルクロックを止めたり再開したりするのに 相当する処理を、グローバルクロックの存在しない自己同期式のシステム 1において は、システム 1、あるいはシステム 1に部分的に構成された回路の入出力信号のハン ドシェイクを止めたり再開することにより実現できる。したがって、 自己同期式のシステ ム 1において、データフローの処理を一時的に停止して、処理ユニットのロジックを変 更したり、処理ユニットの接続を変更することにより、システム 1に実装されるデータフ ローをダイナミックに再構成することが可能となる。  [0126] In this way, in the synchronous circuit, the processing equivalent to stopping and restarting the global clock is part of the system 1 or system 1 in the self-synchronous system 1 in which no global clock exists. This can be achieved by stopping or resuming handshaking of input / output signals of a circuit configured in a general manner. Therefore, in the self-synchronous system 1, the data flow implemented in the system 1 can be changed by temporarily stopping the data flow processing and changing the logic of the processing unit or changing the connection of the processing unit. Rows can be dynamically reconfigured.
[0127] また、このシステム 1において、 PU10を接続するルーチングマトリクス 5を構成する データ線およびァクノリッジ線は、元々の同期式回路の 1サイクルに相当する処理の 間に 1回だけパルスの伝送を行う。したがって、元々の同期式回路を普通に同期式 に実装した場合や、 2線式の自己同期設計方式で自己同期回路を実装した場合の ように、素子遅延や配線遅延のアンバランスによってスパイクが大量に発生して電力 を消費することも抑制できる。  [0127] In this system 1, the data lines and acknowledge lines that make up the routing matrix 5 to which the PU 10 is connected transmit pulses only once during the process corresponding to one cycle of the original synchronous circuit. . Therefore, when the original synchronous circuit is normally mounted in a synchronous manner, or when the self-synchronous circuit is mounted in a two-wire self-synchronous design method, a large amount of spikes are caused by imbalance of element delay and wiring delay. It is possible to suppress the generation of power and power consumption.
[0128] このように、本発明の一形態は、同期式設計で使われる ANDゲート、 ORゲート、 N OTゲート、フリップフロップなどの回路素子をグローバルクロック不要のセルフタイム ド方式で実装する。そして、同期式ユーザー回路の信号 1本につき、セルフタイムド 素子ではデータ線とァクノリッジ線の 2本の信号を割り当て、かつ、データ線のほうは プラス電源とマイナス電源の 2電源を用いる。データ線においては、プラスのパルス 1 回で 1クロックサイクル分の論理" 1"、マイナスのパルス 1回で 1クロックサイクル分の 論理" 0"を表す。ァクノリッジ線においては、 1パルスで 1クロックサイクル分のァクノリ ッジを表す。 As described above, according to one embodiment of the present invention, circuit elements such as AND gates, OR gates, NOT gates, and flip-flops used in the synchronous design are not self-timed. It is implemented by the method. For each signal of the synchronous user circuit, the self-timed device allocates two signals, the data line and the acknowledge line, and the data line uses two power sources, a positive power source and a negative power source. On 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.
[0129] 1電源を用いた 2線式のセルフタイムド素子は、出力値を変えなければならない時 のみ出力信号を伝送する。本発明の一形態の 1線式のセルフタイムド素子は、出力 値を変える一変えないに関わらず、ユーザークロック 1サイクル分の処理につき 1回、 出力信号を伝送する。これは、同期式ユーザー回路の、「全ての信号線が 1クロック サイクルに 1回ずつ値の伝送を行う」という性質を反映している。したがって、本発明 の一形態のセルフタイムド素子を組み合わせて構築した回路システムにおいては、 全てのデータ線/ァクノリッジ線で 1回ずつハンドシェイクが行われるたびに、同期式 ユーザー回路のユーザークロック 1サイクル分の処理が進む、とみなせばよい。  [0129] A two-wire self-timed device using one power supply transmits an output signal only when the output value must be changed. The one-wire self-timed device according to one embodiment of the present invention transmits an output signal once per process for one cycle of the user clock regardless of whether the output value is changed. This reflects the nature of the synchronous user circuit that “all signal lines transmit values once per clock cycle”. Therefore, in the circuit system constructed by combining the self-timed elements of one form of the present invention, every time a handshake is performed once on all data lines / acknowledge lines, one cycle of the user clock of the synchronous user circuit It can be considered that the processing of minutes proceeds.
[0130] さらに、ハンドシェイクは、通常は、まず信号送出側素子が信号受取側素子に対し てデータパルスを出し、データパルスを受け取った受取側素子が送出側素子に対し てァクノリッジパルスを返す、という手順をとる。し力しながら、受取側素子が多入力素 子の場合、他の入力信号の値によっては注目信号の値がドントケアになるケースが ある。そのケースにおいては、先に受取側素子が送出側素子に対してァクノリッジパ ルス (意味としてはドントケア通知)を出し、それを受け取った送出側素子が任意のデ 一タパルス (意味としてはドントケア了解応答)を返すことにより、ハンドシェイク 1回と みなす。 [0130] Further, in the handshake, usually, the signal transmitting side element first issues a data pulse to the signal receiving side element, and the receiving side element that receives the data pulse sends an acknowledge pulse to the transmitting side element. Take the procedure of returning. However, if the receiving 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 element first issues an acknowledge pulse (meaning don't care notification) to the sending element, and the sending element that receives it sends an arbitrary data pulse (meaning don't care acknowledgment). Is returned as a handshake.
[0131] 各素子は、ある入力によって他の入力がドントケアになった場合に他の入力にドント ケア通知を出すだけでなぐ入力信号が来るよりも先に出力信号のドントケア通知が 来た場合にも入力信号にドントケア通知パルスを出す。これにより、多段論理を実行 する際に、入力段から出力段に向力つて次々と値が確定していく素直なハンドシエイ クだけでなぐ上述したように、出力段力 入力段に向かって次々とドントケアが伝播 して 、く逆流のハンドシェイク (ノヽンドシェイク逆流機能)が生じる。 [0132] 本発明の一形態によれば、グロ一ノ レクロックを使わずにクロック同期式回路を実 装できるため、従来のクロック同期式実装と比べクロックスキュー調整やクリティカル パス調整の工数を省略できる。さらに、 2線式のセルフタイムド設計実装方式と比べる と、広く普及している同期式設計の考え方で回路設計できるという効果がある。また、 多段組み合わせ論理回路を評価する際に、入力段力も出力段に向力つて「データ→ ァクノリッジ」というハンドシェイクが行われていくだけでなぐ出力段から入力段に向 力つて「ドントケア通知→ドントケア了解応答」と!、うハンドシェイクを逆流させることも できる。このため、従来のセルフタイムド設計実装方式の弱点であったノヽンドシェイク オーバヘッド問題も低減される。さらに、論理上の 1クロックサイクル内に各信号線で [0131] When an input signal causes a don't care to be sent to another input when another input becomes don't care due to an input, the input signal is received before the input signal is received. Also sends a don't care notification pulse to the input signal. As a result, when executing multi-stage logic, the value is determined only one after another from the input stage to the output stage. The don't care propagates and a handshake of reverse flow (non-shake backflow function) occurs. [0132] According to one aspect of the present invention, since a clock synchronous circuit can be implemented without using a glossy clock, the number of steps for clock skew adjustment and critical path adjustment can be reduced compared to conventional clock synchronous implementation. . In addition, compared to the 2-wire self-timed design and implementation method, there is an effect that the circuit can be designed based on the concept of the synchronous design that is widely spread. Also, when evaluating a multi-stage combinational logic circuit, the input stage force is also directed to the output stage, and the handshake “Data → Acknowledge” is performed. From the output stage to the input stage, the “don't care notification → don't care” You can also reverse the handshake. For this reason, the problem of the non-shake overhead that was a weak point of the conventional self-timed design and implementation method is also reduced. In addition, each signal line within one logical clock cycle
1回だけ伝送が行われるので、従来のクロック同期式実装やセルフタイムド設計実装 のように、素子遅延のバラツキによって大量のスパイクが発生して電力を消費するよう な事態も抑制できる。 Since transmission is performed only once, it is possible to suppress a situation in which a large amount of spikes are generated due to variations in element delays and power is consumed, as in conventional clock synchronous mounting and self-timed design mounting.
[0133] なお、上記では、 自己同期式の PU10の内部動作をフローチャートの形で示したが 、状態遷移図やプロダクションルールなど、他の表記で説明することも可能である。ま た、汎用的な自己同期式の PU10を有するシステム 1を上記において説明している。 これに対し、専用のロジックを備えた自己同期式の処理ユニットあるいは自己同期素 子を組み合わせて、ハンドシェイク逆流機能を備えた自己同期式の回路を構成する ことも可能である。さらに、自己同期式の処理ユニットあるいは素子は、配線により接 続されて ヽなくても良く、電気信号ある!/、は光信号を無線あるいは有線により伝達す ることにより自己同期式実装を実現できる。また、自己同期式のシステムは配線遅延 、素子遅延のアンバランスによる影響を克服できるシステムであり、インターネットなど のコンピュータワークなどで複数のシステムあるいは処理ユニットが接続された、分散 型の大規模システムに対しても上記の構成を適用できる。  In the above, the internal operation of the self-synchronous PU 10 is shown in the form of a flowchart, but it can also be described by other notations such as a state transition diagram and a production rule. The system 1 having a general-purpose self-synchronous PU 10 is described above. On the other hand, a self-synchronizing processing unit equipped with a dedicated logic or a self-synchronizing element can be combined to form a self-synchronizing circuit with a handshake backflow function. Furthermore, the self-synchronous processing unit or element does not have to be connected by wiring, and there is an electrical signal! /, Which can realize self-synchronous mounting by transmitting an optical signal wirelessly or by wire. . In addition, the self-synchronous system can overcome the effects of wiring delay and device delay imbalance, and is a distributed large-scale system in which multiple systems or processing units are connected by computer work such as the Internet. The above configuration can also be applied to this.

Claims

請求の範囲 The scope of the claims
[1] 自己同期型の複数の処理ユニットを有するシステムであって、  [1] A system having a plurality of self-synchronous processing units,
前記複数の処理ユニットの 1つの処理ユニットは、  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;
前記複数の入力信号に基づき、出力信号を生成するための論理部と、 前記出力信号を、少なくとも 1つの出力側の処理ユニットに送信するための出力側 の信号交換部と、  A logic unit for generating an output signal based on the plurality of input signals; an output-side signal exchange unit for transmitting the output signal to at least one output-side processing unit;
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用とな る未受信の入力信号を定める第 1の判断機能と、  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 signal exchange unit on the input side;
前記出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受 信不用となる未受信の入力信号を定める第 2の判断機能とを備えており、さらに、 前記入力側の信号交換部は、前記第 1の判断機能または前記第 2の判断機能によ り受信不用と判断された未受信の入力信号を供給する入力側の処理ユニットに宛て て前記不用通知を送信する、システム。  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 received, which is received by the signal exchange unit on the output side. A signal exchange unit transmits the waste notification to an input-side processing unit that supplies an unreceived input signal that is determined to be unnecessary by the first determination function or the second determination function; system.
[2] 請求項 1において、前記出力側の信号交換部は、出力信号を、複数の出力側の処 理ユニットに送信し、  [2] In Claim 1, the output-side signal exchange unit transmits an output signal to a plurality of output-side processing units,
前記第 2の判断機能は、前記複数の出力側の処理ユニットの全て力 前記不用通 知を受信したときに、受信不用となる未受信の入力信号を定める、システム。  The second determination function is a system for determining an unreceived input signal that becomes unnecessary for reception when the power for all of the plurality of output-side processing units is received.
[3] 請求項 1において、前記処理ユニットは、次の alないし a4のいずれかの処理により 信号の転送を確認するハンドシェイク機能を備えて 、る、システム。 [3] 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 al to a4.
al 入力信号を受信すると、その入力信号の供給元の入力側の処理ユニットに宛て て確認信号を送信する。  al When an input signal is received, a confirmation signal is sent to the processing unit on the input side that is the source of the input signal.
a2 未受信の入力信号の供給元の、入力側の処理ユニットに宛てて前記不用通知と して前記確認信号を送信し、前記確認信号の送信先の、入力側の処理ユニットから ダミーの入力信号を受信する。  a2 The confirmation signal is transmitted as the non-use notification to the input-side processing unit that is the source of the unreceived input signal, and the dummy input signal is transmitted from the input-side processing unit to which the confirmation signal is transmitted. Receive.
a3 出力信号を送信し、前記出力信号の送信先の、出力側の処理ユニットから前記 確認信号を受信する。 a4 出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識 し、ダミーの出力信号を送信する。 a3 Send an output signal and receive the confirmation signal from the output processing unit that is the destination of the output signal. a4 If the confirmation signal is received when the output signal has not been transmitted, it is recognized as a non-use notification and a dummy output signal is transmitted.
[4] 請求項 1において、前記出力側の信号交換部は、前記論理部により出力信号が生 成される都度、その出力信号をパルス信号で送信する、システム。 4. The system according to claim 1, wherein the signal exchange unit on the output side transmits the output signal as a pulse signal each time the output signal is generated by the logic unit.
[5] 請求項 1において、前記出力側の信号交換部は、出力信号を、 3状態に変位する 信号で送信する、システム。 5. The system according to claim 1, wherein the output side signal exchange unit transmits the output signal as a signal that is displaced into three states.
[6] 請求項 5において、前記 3状態は、中立と、前記中立を含まない 2つの状態とを含 む、システム。 6. The system according to claim 5, wherein the three states include neutrality and two states that do not include the neutrality.
[7] 請求項 1において、前記処理ユニットは、未受信の入力信号により処理できない入 力信号を記憶するためのメモリを、さらに備えている、システム。  7. The system according to claim 1, wherein the processing unit further includes a memory for storing an input signal that cannot be processed by an unreceived input signal.
[8] 請求項 1にお 、て、前記処理ユニットは、受信した信号のうち、処理できな!/、信号を イベントトークンとして記憶するためのメモリを、さらに備えている、システム。  8. The system according to claim 1, wherein the processing unit further includes a memory for storing the received signal as an event token that cannot be processed! /.
[9] 請求項 1において、前記論理部は、出力信号を生成する論理を変更する機能を備 えている、システム。  9. The system according to claim 1, wherein the logic unit has a function of changing logic for generating an output signal.
[10] 請求項 1において、前記入力側の信号交換部は、入力側の処理ユニットを変更す る機能を備えており、  [10] 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.
[11] 請求項 1において、前記複数の処理ユニットの間の信号の交換を可能とする通信 システムであって、前記複数の処理ユニットの接続を再構成可能な通信システムを、 さらに有するシステム。  11. The communication system according to claim 1, further comprising a communication system that enables exchange of signals between the plurality of processing units, wherein the communication system can reconfigure the connection of the plurality of processing units.
[12] 請求項 1において、前記複数の処理ユニットと、前記複数の処理ユニットの間の信 号を伝達するためのルーチングマトリクスとを含む集積回路ユニットを有する、システ ム。  12. The system according to claim 1, further comprising an integrated circuit unit including the plurality of processing units and a routing matrix for transmitting signals between the plurality of processing units.
[13] 請求項 12において、前記ルーチングマトリクスは、前記複数の処理ユニットに含ま れる少なくとも一部の処理ユニットの間の接続を変更することにより、前記集積回路ュ ニット内の回路を再構成する、システム。  [13] In Claim 12, the routing matrix reconfigures a circuit in the integrated circuit unit by changing a connection between at least some of the processing units included in the plurality of processing units. system.
[14] 自己同期型の処理ユニットであって、 複数の入力側の他の処理ユニットからそれぞれ供給される複数の入力信号を受信 するための入力側の信号交換部と、 [14] A self-synchronous processing unit, A signal exchange section on the input side for receiving a plurality of input signals respectively supplied from other processing units on the plurality of input sides;
前記複数の入力信号に基づき、出力信号を生成するための論理部と、 前記出力信号を、少なくとも 1つの出力側の他の処理ユニットに送信するための出 力側の信号交換部と、  A logic unit for generating an output signal based on the plurality of input signals; an output-side signal exchange unit for transmitting the output signal to at least one other processing unit on the output side;
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用とな る未受信の入力信号を定める第 1の判断機能と、  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 signal exchange unit on the input side;
前記出力側の信号交換部が受信した、出力信号の不用を示す不用通知により、受 信不用となる未受信の入力信号を定める第 2の判断機能とを有し、さらに、  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
前記入力側の信号交換部は、前記第 1の判断機能または前記第 2の判断機能によ り受信不用と判断された未受信の入力信号を供給する入力側の他の処理ユニットに 宛てて前記不用通知を送信する、処理ユニット。  The signal exchange unit on the input side is addressed to the other processing unit on the input side that supplies an unreceived input signal determined to be unnecessary for reception by the first determination function or the second determination function. A processing unit that sends unused notifications.
[15] 請求項 14において、前記出力側の信号交換部は、出力信号を、複数の出力側の 他の処理ユニットに送信し、 [15] 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,
前記第 2の判断機能は、前記複数の出力側の他の処理ユニットの全て力 前記不 用通知を受信したときに、受信不用となる未受信の入力信号を定める、処理ユニット  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 of the uselessness is received.
[16] 請求項 14において、次の blないし b4のいずれかの処理により信号の転送を確認 するハンドシェイク機能を、さらに有する処理ユニット。 16. The processing unit according to claim 14, further comprising a handshake function for confirming signal transfer by any one of the following bl to b4 processes.
bl 入力信号を受信すると、その入力信号の供給元の、入力側の他の処理ユニット に宛てて確認信号を送信する。  bl When an input signal is received, a confirmation signal is sent to another processing unit on the input side that is the source of the input signal.
b2 未受信の入力信号の供給元の、入力側の他の処理ユニットに宛てて前記不用 通知として前記確認信号を送信し、前記確認信号の送信先の、入力側の他の処理 ユニットからダミーの入力信号を受信する。  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 出力信号を送信し、前記出力信号の、送信先の出力側の他の処理ユニットから 前記確認信号を受信する。  b3 Transmit the output signal and receive the confirmation signal from another processing unit on the output side of the output signal.
b4 出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識 し、ダミーの出力信号を送信する。 b4 When the confirmation signal is received when the output signal has not been transmitted, it is recognized as the unnecessary notification and a dummy output signal is transmitted.
[17] 請求項 14において、未受信の入力信号により処理できない入力信号を記憶するた めのメモリを、さらに有する、処理ユニット。 17. The processing unit according to claim 14, further comprising a memory for storing an input signal that cannot be processed by an unreceived input signal.
[18] 請求項 14において、受信した信号のうち、処理できない信号をイベントトークンとし て記憶するためのメモリを、さらに有する、処理ユニット。 18. The processing unit according to claim 14, further comprising a memory for storing, as an event token, a signal that cannot be processed among the received signals.
[19] 自己同期型の処理ユニットであって、 [19] A self-synchronous processing unit,
入力側の他の処理ユニットから、入力信号を受信する入力側の信号交換部と、 前記入力信号を、少なくとも 1つの出力側の他の処理ユニットに送信する出力側の 信号交換部とを有し、  An input-side signal exchange unit that receives an input signal from another input-side processing unit; and an output-side signal exchange unit that transmits the input signal to at least one other output-side processing unit. ,
前記入力側の信号交換部は、前記出力側の信号交換部が受信した出力信号の不 用通知により、未受信の入力信号を供給する入力側の他の処理ユニットに宛てて不 用通知を送信する、処理ユニット。  The signal exchange unit on the input side sends an unnecessary notification to another processing unit on the input side that supplies an unreceived input signal in response to an unnecessary notification of the output signal received by the signal exchange unit on the output side. Processing unit.
[20] 請求項 14に記載の処理ユニットを少なくとも 1つ含む複数の処理ユニットと、 [20] 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.
[21] 請求項 20において、前記複数の処理ユニットは、さらに、請求項 19に記載の処理 ユニットを少なくとも 1つ含む、集積回路ユニット。 21. The integrated circuit unit according to claim 20, wherein the plurality of processing units further include at least one processing unit according to claim 19.
[22] 請求項 20において、前記ルーチングマトリクスは、前記複数の処理ユニットに含ま れる少なくとも一部の処理ユニットの間の接続を変更することにより、当該集積回路ュ ニット内の回路を再構成する、集積回路ユニット。 [22] In Claim 20, the routing matrix reconfigures a circuit in the integrated circuit unit by changing a connection between at least some of the processing units included in the plurality of processing units. Integrated circuit unit.
[23] 複数の処理ユニットを有し、それぞれの処理ユニットは請求項 19に記載の処理ュ ニットであり、 [23] It has a plurality of processing units, and each processing unit is the processing unit according to claim 19,
さらに、前記複数の処理ユニットの間の信号を伝達するためのルーチングマトリクス を含む、集積回路ユニット。  An integrated circuit unit further comprising a routing matrix for transmitting signals between the plurality of processing units.
[24] 自己同期型の複数の処理ユニットを有するシステムを制御する方法であって、 前記複数の処理ユニットの 1つの処理ユニットは、複数の入力側の処理ユニットから それぞれ供給される複数の入力信号を受信するための入力側の信号交換部と、前 記複数の入力信号に基づき、出力信号を生成するための論理部と、前記出力信号 を、少なくとも 1つの出力側の処理ユニットに送信するための出力側の信号交換部と を有し、 [24] A method of controlling a system having a plurality of self-synchronous processing units, wherein one processing unit of the plurality of processing units is a plurality of input signals respectively supplied from a plurality of input-side processing units. A signal exchanging unit on the input side for receiving the signal, a logic unit for generating an output signal based on the plurality of input signals, and for transmitting the output signal to at least one processing unit on the output side And the signal exchange section on the output side of Have
当該方法は、  The method is
前記入力側の信号交換部が受信した入力信号により、出力信号の生成に不用とな る未受信の入力信号が発生する第 1の要因、または、前記出力側の信号交換部が 受信した、出力信号の不用を示す不用通知により、受信不用となる未受信の入力信 号が発生する第 2の要因により、その入力信号を供給する予定の入力側の処理ュ- ットに宛てて、前記不用通知を送信することを含む方法。  The first factor that an unreceived input signal that is not required for generating an output signal is generated by the input signal received by the signal exchange unit on the input side, or the output received by the signal exchange unit on the output side Due to a second factor in which an unreceived input signal that is not required for reception is generated due to a notification indicating that the signal is not used, it is sent to the processing unit on the input side that is scheduled to supply the input signal. A method comprising sending a notification.
[25] 請求項 24において、前記論理部により前記出力信号が生成される都度、その出力 信号をパルス信号で送信することをさらに含む、方法。 25. The method according to claim 24, further comprising transmitting the output signal as a pulse signal each time the output signal is generated by the logic unit.
[26] 請求項 24において、前記複数の処理ユニットの間で信号の転送を確認することを 含み、前記信号の転送を確認することは以下を含む、方法。 26. The method of claim 24, comprising confirming signal transfer between the plurality of processing units, and confirming the signal transfer includes:
入力信号を受信すると、その入力信号の供給元の入力側の処理ユニットに宛てて 確認信号を送信する、  When an input signal is received, a confirmation signal is sent to the processing unit on the input side that is the source of the input signal.
未受信の入力信号の供給元の、入力側の処理ユニットに宛てて前記不用通知とし て前記確認信号を送信し、前記確認信号の送信先の、入力側の処理ユニットからダ ミーの入力信号を受信する、  The confirmation signal is transmitted as the non-use notification to the input-side processing unit that is the source of the unreceived input signal, and the dummy input signal is transmitted from the input-side processing unit to which the confirmation signal is transmitted. Receive,
出力信号を送信し、前記出力信号の送信先の、出力側の処理ユニットから前記確 認信号を受信する、  An output signal is transmitted, and the confirmation signal is received from an output-side processing unit to which the output signal is transmitted;
出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し 、ダミーの出力信号を送信する。  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.
[27] 自己同期型の処理ユニットが他の自己同期型の処理ユニットとの間で信号の転送 を確認することを含む、信号を伝達するための方法であって、 [27] A method for transmitting a signal, comprising: a self-synchronizing processing unit confirming the transfer of a signal with another self-synchronizing processing unit;
前記自己同期型の処理ユニットは、複数の入力側の他の処理ユニットからそれぞ れ供給される複数の入力信号を受信するための入力側の信号交換部と、前記複数 の入力信号に基づき、出力信号を生成するための論理部と、前記出力信号を、少な くとも 1つの出力側の他の処理ユニットに送信するための出力側の信号交換部とを有 し、  The self-synchronous processing unit is based on 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 the plurality of input signals. A logic unit for generating an 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 the 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,
入力信号により、出力信号の生成に不用となる未受信の入力信号が発生する第 1 の要因、または、前記出力側の信号交換部が受信した、出力信号の不用を示す不 用通知により、受信不用となる未受信の入力信号が発生する第 2の要因により、前記 未受信の入力信号の供給元の、入力側の他の処理ユニットに宛てて前記不用通知 として前記確認信号を送信し、前記確認信号の送信先の入力側の他の処理ユニット からダミーの入力信号を受信すること、  Received by the first factor that an unreceived input signal that is not required for generating an output signal is generated by the input signal, or by a notification indicating that the output signal is not received, indicating that the output signal is not used. Due to a second factor of generating an unreceived input signal that is unnecessary, the confirmation signal is transmitted as the unnecessary notification to another processing unit on the input side of the supply source of the unreceived input signal, Receiving a dummy input signal from another processing unit on the input side to which the confirmation signal is sent,
出力信号を送信し、前記出力信号の送信先の、出力側の他の処理ユニットから前 記確認信号を受信すること、  Transmitting an output signal and receiving the confirmation signal from another processing unit on the output side to which the output signal is transmitted;
出力信号が未送信のときに前記確認信号を受信すると前記不用通知として認識し 、ダミーの出力信号を送信すること。  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.
請求項 27において、前記論理部により前記出力信号が生成される都度、その出力 信号をパルス信号で送信することを含む、方法。  28. The method of claim 27, comprising transmitting the output signal as a pulse signal each time the output signal is generated by the logic unit.
PCT/JP2006/319492 2005-09-30 2006-09-29 System having a self-synchronization type processing unit WO2007037384A1 (en)

Priority Applications (1)

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

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005288443 2005-09-30
JP2005-288443 2005-09-30

Publications (1)

Publication Number Publication Date
WO2007037384A1 true WO2007037384A1 (en) 2007-04-05

Family

ID=37899804

Family Applications (1)

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

Country Status (2)

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

Cited By (1)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231266A (en) * 1988-07-21 1990-02-01 Mitsubishi Electric Corp Data transfer device and pipeline processor using the transfer device
JPH10135811A (en) * 1996-10-30 1998-05-22 Toshiba Corp Logic circuit

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP3436893B2 (en) * 1999-03-10 2003-08-18 株式会社シーエスケイ Three-valued logic operation unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0231266A (en) * 1988-07-21 1990-02-01 Mitsubishi Electric Corp Data transfer device and pipeline processor using the transfer device
JPH10135811A (en) * 1996-10-30 1998-05-22 Toshiba Corp Logic circuit

Cited By (1)

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

Also Published As

Publication number Publication date
JP4930907B2 (en) 2012-05-16
JPWO2007037384A1 (en) 2009-04-16

Similar Documents

Publication Publication Date Title
US9111051B2 (en) Asynchronous protocol converter
US10027433B2 (en) Multiple clock domains in NoC
US8284766B2 (en) Multi-core processor and method of communicating across a die
JP2022023108A (en) Multiprocessor system with improved secondary interconnection network
US8669779B2 (en) Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
CN113811859A (en) Control flow barrier and reconfigurable data processor
Pontes et al. Hermes-AA: A 65nm asynchronous NoC router with adaptive routing
US8593176B2 (en) One phase logic
US7917793B2 (en) Apparatus providing locally adaptive retiming pipeline with swing structure
JP2007507795A (en) Low power shared link arbitration
Chen et al. ArSMART: An improved SMART NoC design supporting arbitrary-turn transmission
US8171259B2 (en) Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
WO2007037384A1 (en) System having a self-synchronization type processing unit
US8402164B1 (en) Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit
WO2010110289A1 (en) Router apparatus, semiconductor integrated circuit device, routing method, and program
US8645557B2 (en) System of interconnections for external functional blocks on a chip provided with a single configurable communication protocol
Ju et al. NoC research and practice: Design and implementation of 2× 4 2D-torus topology
Aust et al. Real-time processor interconnection network for fpga-based multiprocessor system-on-chip (mpsoc)
Lee et al. Design of a feasible on-chip interconnection network for a chip multiprocessor (cmp)
Agiwal et al. An architecture and a wrapper synthesis approach for multi-clock latency-insensitive systems
JPWO2009110588A1 (en) Data transfer apparatus and method, and semiconductor circuit
US20110199936A1 (en) Implementation of switches in a communication network
JP2002539558A (en) Multiplexer bus with local bus node
CN113114187B (en) Asynchronous pulse transmission blocking unit, control method thereof and superconducting single-flux quantum circuit
Pruthvija et al. Simulation of low area and high speed nine port network-on-chip router architecture

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2007537710

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06798460

Country of ref document: EP

Kind code of ref document: A1