WO2010082575A1 - 非同期式論理回路 - Google Patents
非同期式論理回路 Download PDFInfo
- Publication number
- WO2010082575A1 WO2010082575A1 PCT/JP2010/050259 JP2010050259W WO2010082575A1 WO 2010082575 A1 WO2010082575 A1 WO 2010082575A1 JP 2010050259 W JP2010050259 W JP 2010050259W WO 2010082575 A1 WO2010082575 A1 WO 2010082575A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- register
- data
- signal
- congestion
- data storage
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
Definitions
- the present invention relates to an asynchronous logic circuit that controls a memory element in a circuit using a handshake signal instead of a clock signal.
- FIG. 1 shows the configuration of the integrated circuit 200.
- the integrated circuit 200 includes a plurality of cores 201.
- the plurality of cores 201 are cores 0,..., M ⁇ 1, m,..., N ⁇ 1 (m and n are integers satisfying 0 ⁇ m ⁇ n)
- the cores 0,. ⁇ 1, m,..., N ⁇ 1 output output signals in response to the clock signals CLK0,..., M ⁇ 1, m,.
- This output signal is used for data communication.
- the integrated circuit 200 includes a plurality of cores 201, data communication can be performed between the cores 201.
- the integrated circuit 200 further includes an inter-core connection circuit 202 such as a bus.
- An asynchronous logic circuit is a logic circuit that controls a memory element in a circuit using a handshake signal instead of a clock signal.
- a clock signal from the outside is used as a storage control signal to the flip-flop.
- the part composed of the flip-flop and the combinational circuit is designed on the assumption that the signal is attached to all the flip-flops, and the clock is set so that the signal is attached to all the flip-flops.
- a signal distribution circuit is designed.
- a memory control circuit is used to generate a memory control signal for flip-flops.
- the storage timing of the flip-flop is controlled by communicating a pair of handshake signals (request signal and response signal) between the storage control circuits.
- This handshake signal communication control procedure is called a handshake protocol.
- FIG. 2 shows a configuration of an asynchronous register as a general asynchronous logic circuit.
- This register includes a flip-flop (FF) which is a storage element, and a storage control circuit (LC).
- FF flip-flop
- LC storage control circuit
- the three sets of registers include flip-flops 310, 311, and 312 and storage control circuits 320, 321, and 322, respectively.
- the storage control circuits 320, 321, and 322 are provided corresponding to the flip-flops 310, 311, and 312, respectively.
- FIG. 3 is a timing chart showing the operation of the asynchronous register of FIG.
- the storage control circuit 321 receives the transmission destination response signal A1 “0” (data input preparation completion) from the storage control circuit 322, and then receives the transmission destination request signal R0 “1” (data storage request) from the storage control circuit 320. Receive. At this time, the storage control circuit 321 outputs a storage control signal L1 indicating a data storage command to the flip-flop 311 in response to the transmission destination request signal R0 “1” (data storage request). In this case, the storage control circuit 321 sets the value of the storage control signal L1 to “1”.
- the flip-flop 311 inputs the data d0 stored in the flip-flop 310 in response to the storage control signal L1 “1” (data storage instruction), and stores the data d0. For example, the flip-flop 311 stores the data d0 by the rising transition of the storage control signal L1.
- the storage control circuit 320 outputs a transmission destination request signal R0 indicating a data input preparation request to the storage control circuit 321 in response to the transmission destination response signal A0 “1” (data storage completion notification) from the storage control circuit 321. In this case, the storage control circuit 320 sets the value of the transmission destination request signal R0 to “0”.
- the storage control circuit 322 outputs a storage control signal L2 indicating a data storage command to the flip-flop 312 in response to the transmission destination request signal R1 “1” (data storage request) from the storage control circuit 321. In this case, the storage control circuit 322 sets the value of the storage control signal L2 to “1”.
- the flip-flop 312 inputs the data d0 stored in the flip-flop 311 in response to the storage control signal L2 “1” (data storage instruction), and stores the data d0.
- the storage control circuit 322 outputs a storage control signal L2 “1” (data storage command), and then outputs a transmission destination response signal A1 indicating a data storage completion notification to the storage control circuit 321, and a request signal indicating a data storage request Is output to the subsequent stage (not shown). In this case, the storage control circuit 322 sets the value of the destination response signal A1 to “1” and sets the value of the request signal to “1”.
- the storage control circuit 321 In response to the transmission destination response signal A0 “1” (data storage completion notification) from the storage control circuit 322, the storage control circuit 321 outputs a transmission destination request signal R1 indicating a data input preparation request to the storage control circuit 322. In this case, the storage control circuit 321 sets the value of the transmission destination request signal R1 to “0”. The storage control circuit 321 outputs a storage control signal L1 indicating a data input preparation command to the flip-flop 311 in response to the transmission destination request signal R0 “0” (data input preparation request) from the storage control circuit 320. In this case, the storage control circuit 321 sets the value of the storage control signal L1 to “0”.
- the flip-flop 311 prepares for the next data in response to the storage control signal L1 “0” (data input preparation command).
- the storage control circuit 321 outputs the storage control signal L1 “0” (data input preparation instruction)
- the storage control circuit 321 outputs a transmission destination response signal A0 indicating completion of data input preparation to the storage control circuit 320, indicating a data input preparation request.
- the transmission destination request signal R 1 is output to the storage control circuit 322.
- the storage control circuit 321 sets the value of the transmission destination response signal A0 to “0” and sets the value of the transmission destination request signal R1 to “0”.
- the storage control circuit 320 receives the request signal “1” (data storage request) from the previous stage (not shown) after receiving the transmission destination response signal A0 “0” (data input preparation completion) from the storage control circuit 321. To do. At this time, the storage control circuit 320 outputs a storage control signal L0 indicating a data storage instruction to the flip-flop 310 in response to the request signal “1” (data storage request). In this case, the storage control circuit 320 sets the value of the storage control signal L0 to “1” (not shown). The flip-flop 310 inputs the next data d1 in response to the storage control signal L0 “1” (data storage instruction) and stores the data d1.
- the storage control circuit 322 outputs a storage control signal L2 indicating a data input preparation command to the flip-flop 312 in response to the transmission destination request signal R1 “0” (data input preparation request) from the storage control circuit 321. In this case, the storage control circuit 322 sets the value of the storage control signal L2 to “0”. The flip-flop 312 prepares for the next data in response to the storage control signal L2 “0” (data input preparation command).
- a core that performs a communication request for requesting data communication is called a master, and a core that operates in response to a communication request from the master is called a slave.
- the inter-core connection circuit When there are a plurality of masters, the inter-core connection circuit arbitrates between the masters and assigns priorities, and processes communication requests from the plurality of masters in order according to the priorities.
- the inter-core connection circuit is configured to perform arbitration processing at a plurality of locations in order to connect many cores. In this case, the inter-core connection circuit sends data to the next arbitration location on the communication path from the master given priority at the first arbitration location on the communication path, and requests communication at each arbitration location on the communication path. Then, arbitration and data transfer are repeated to transfer to the destination slave.
- the network shape (topology) of the communication path of the inter-core connection circuit may be configured such that a plurality of communication paths exist in some or all of the master-slave pairs. When there are multiple communication paths in the master / slave pair, the inter-core connection circuit is configured so that the master determines the path in advance, or the connection circuit dynamically determines the path internally according to the communication status. Configured to do.
- the inter-core connection circuit has a plurality of arbitration points inside. Therefore, when multiple pairs of masters and slaves perform data transfer, there is a common location on the transfer path starting from the arbitration location, and the sum of the required transfer rates for each data transfer is the maximum transfer rate at the common location. It is assumed that congestion has occurred. In this case, communication from other masters to the slave of the communication request that has been waited for, even though a communication request that has been given a low priority at the arbitration location that is the origin of the common location has been waiting for a long time There is no request, and the communication capacity of the inter-core connection circuit may be wasted.
- FIG. 4 shows a configuration of an asynchronous inter-core connection circuit 500 as an example of the asynchronous inter-core connection circuit in the integrated circuit 200 of FIG.
- the asynchronous inter-core connection circuit 500 four or more cores are connected.
- the asynchronous core-to-core connection circuit 500 is connected to four cores: a synchronous master-side core 501, a synchronous slave-side core 502, a synchronous master-side core 503, and a synchronous slave-side core 504. It is assumed that In FIG. 4, “synchronous master side core”, “synchronous slave side core”, “synchronous master side core”, and “synchronous slave side core” are respectively referred to as “master A”, “slave A”, “master B”. And “Slave B”.
- the synchronous master side core 501, the synchronous slave side core 502, the synchronous master side core 503, and the synchronous slave side core 504 are referred to as a master A501, a slave A502, a master B503, and a slave B504, respectively.
- the asynchronous inter-core connection circuit 500 includes the above-described asynchronous register, asynchronous branch circuits 511, 513, and 523, and asynchronous arbitration circuits 512, 514, and 522. Those described in Non-Patent Document 1 are used. Data transfer among the master A 501, the slave A 502, the master B 503, the slave B 504, the asynchronous branch circuits 511, 513, and 523 and the asynchronous arbitration circuits 512, 522, and 524 is performed by the above-described asynchronous register. It shall be.
- the master A501 makes a data transfer request for the data strings 591 to 594 to the slave A502, and the master B503 makes a data transfer request for the data strings 581 to 583 to the slave B504.
- the master A 501 performs path setting with the asynchronous branch circuit 511 to the asynchronous arbitration circuit 512 to the asynchronous branch circuit 513 to the asynchronous arbitration circuit 514 to the slave A 503, and the master B 503 performs the asynchronous arbitration circuit 512 to the asynchronous.
- a route is set with the equation branch circuit 513 to the slave B 504.
- the set data transfer path has the asynchronous arbitration circuit 512 to the asynchronous branch circuit 513 as a shared part.
- the shared portion is occupied by the data transfer request until the data string of the length specified by the master B 503 has passed. For this reason, the transfer request of the data strings 591 to 594 is waited immediately before being transferred in the shared portion. If the transfer requests for the data strings 581 to 583 are further continued and are successively output from the master B 503, the transfer processing waiting time for the data strings 591 to 594 becomes very long.
- a path that does not pass through the asynchronous arbitration circuit 512 and the asynchronous branch circuit 513 that is, an asynchronous system
- Patent Document 1 describes a data transfer control device.
- the data transfer control device is connected to a CPU interface unit to which a CPU for outputting a data transfer command is connected, a synchronization signal interface unit to which an input / output unit for processing a synchronization signal is connected, and an input / output unit for processing an asynchronous signal.
- An asynchronous signal interface unit a data transmission unit that transmits a memory access request to the outside, a data reception unit that receives a memory access request from the outside, and a memory control interface unit.
- the memory control interface unit is connected to the CPU interface unit, the synchronization signal interface unit, the asynchronous signal interface unit, the arbitration unit that arbitrates the input from the data receiving unit, and the memory, and is connected to the memory according to the arbitration result by the arbitration unit. Control access.
- Patent Document 2 describes a data transmission method in a network-on-chip having an asynchronous communication protocol.
- the network comprises one or more nodes and one or more resources, each node having one or more inputs connected to one or more input control devices and one or more outputs connected to one or more output control devices. And are provided.
- At least one node operating without an internal clock determines the transport hierarchy between two data packets routed to the same output. This hierarchy determination is performed based on priority channel information associated with each data packet.
- the priority channel information and the data packet are transmitted from another node or network resource.
- the priority channel information is transmitted by a first type of synchronization signal according to an asynchronous communication protocol.
- Patent Document 3 describes a system bus arbitration circuit device.
- the system bus arbitration circuit device includes a contention arbitration circuit that arbitrates use of the system bus in the data processing device system, a plurality of data processing devices that require use of the system bus, and a system bus arbitration circuit. It is characterized by.
- the system bus arbitration circuit is arranged on a use request signal line and a use permission signal line connected between the contention arbitration circuit and the plurality of data processing devices, and is used for requesting use of the system bus from the plurality of data processing devices. Among them, the one with the highest priority is selected, and the use permission is issued to the data processing apparatus that has issued the use request with the highest priority.
- Patent Document 4 describes a synchronous data transfer device.
- the synchronous data transfer device is provided in the computer system.
- a computer system includes an asynchronously defined bus, one or more master devices that transfer data via the bus, and an arbitration device that arbitrates a bus request and gives a bus use right to any one of the master devices It consists of.
- the synchronous data transfer device transfers data to be transferred synchronously.
- the synchronous data transfer device includes a bus securing device that transmits a bus request to the arbitration device and obtains a bus use right from the arbitration device, and a plurality of slave master devices that perform data transfer via the bus. Yes.
- the bus securing device includes access notification means for notifying a plurality of slave master devices to start / stop transfer at a predetermined timing when the bus use right is acquired from the arbitrating device.
- Each of the plurality of slave master devices includes access control means for starting / stopping transfer in response to a notification from the access notification means.
- Patent Document 5 describes a bus arbiter control circuit.
- the bus arbiter control circuit arbitrates a bus request using the bus from a bus master connected on the shared bus and avoids a floating state of the bus in which no bus request from the bus master is present.
- the bus arbiter control circuit includes a bus request register, a bus arbiter circuit, a bus grant register, a hold control circuit, and a grant decoder.
- the bus request register receives a bus request signal that is a bus use request from the bus master.
- the bus arbiter circuit monitors the bus request register, arbitrates the priority of the accepted bus request signal, and notifies the arbitration result.
- the bus grant register holds the notified arbitration result.
- the hold control circuit monitors the bus request register and instructs the bus grant register to release or hold the arbitration result depending on the presence or absence of the bus request signal.
- the grant decoder notifies a grant signal permitting use of the bus to the bus master corresponding to the arbitration result of the bus grant register.
- Patent Document 6 describes a competitive arbitration device.
- the contention arbitration device includes a plurality of devices, a pulse generation circuit, a use permission prohibition circuit, and a control circuit.
- Each of the plurality of devices outputs a use request signal for requesting the use of the resource when using a predetermined resource of the computer, and gives an external use permission signal for guaranteeing the use of the resource based on each use request signal.
- a use confirmation signal is output in response to the use permission signal.
- the pulse generation circuit includes a plurality of partial pulse generation circuits that output a plurality of output terminals and a use permission pulse having a fixed pulse width at each output terminal, and sequentially output each use permission pulse to each output terminal. .
- the license prohibition circuit receives a plurality of usage confirmation signals from a plurality of devices that desire to use resources, and enables the output of the prohibition signal while one device validates the usage confirmation signal, and While all the devices disable the use confirmation signal output, the prohibit signal output is disabled.
- the control circuit receives a plurality of use request signals, a plurality of use permission pulses, and a prohibition signal, and outputs a use permission signal to be given to the device.
- the control circuit validates the use permission signal and ignores the prohibition signal while the use request signal is valid for the device that is currently using the resource.
- the control circuit performs control to invalidate the use permission signal when the use request signal becomes invalid, and to validate the prohibition signal in response to the invalid use confirmation signal.
- the control circuit enables the use permission signal only when the use request signal is valid and the use permission pulse is input to the device that is not currently using the resource, and the use confirmation signal It is characterized by performing control to ignore the prohibition signal in response to the validity.
- Patent Document 7 describes a data transfer device.
- the data transfer device includes a data transfer path, a data transfer control circuit, and a data stagnation detection circuit.
- the data transfer path is formed by cascading a plurality of static parallel data latch circuits each having a data load signal input, a data hold signal input, one or more data inputs, and a data output and constituting each stage.
- the data transfer control circuit is provided corresponding to each stage of the data transfer path.
- the data transfer control circuit deactivates the data load signal in response to the data transfer request signal received from the previous stage to determine the input data from the previous stage, and if there is no significant data in its own stage, Thus, a data acceptance signal is transmitted and significant data is held.
- the data transfer control circuit activates the data load signal in response to the data reception signal input from the next stage after transmitting the data transfer request signal while outputting data to the next stage, and does not hold significant data Return to the state.
- the data transfer control circuit maintains the data load signal in an inactive state regardless of the presence or absence of the data transfer request signal from the previous stage and sends a data acceptance signal to the previous stage. Keeping the input data by not transmitting.
- the data stagnation detection circuit detects stagnation of data on the data transfer path based on the state of the data transfer request signal output from the data transfer control circuit at the final stage.
- Each data transfer control circuit when the data stagnation detection circuit detects data stagnation, activates the data hold signal while activating the data hold signal while the data latch circuit of its own stage holds significant data. Control the data latch.
- Each data transfer control circuit maintains the data hold signal in an inactive state even when the data latch circuit of its own stage holds significant data when the data stagnation detection circuit does not detect stagnation of data. It is characterized in that static data latch control is not performed.
- Patent Document 8 describes a pulse generation circuit.
- the pulse generation circuit detects a period in which no pulse is generated from pattern data having information for determining whether or not to generate a pulse in the pulse generation circuit, and generates a dummy pulse in a period in which the pulse is not generated It has a dummy pulse control circuit.
- Patent Document 9 describes a computer device.
- the computer device includes a communication channel and a receiving interface.
- the receiving interface is connected to the communication channel with a mass storage device accessible from the communication channel, and generates a first clock and a second clock, respectively, and supplies the generated clock to the other devices.
- JP 2006-164015 A JP 2006-254450 A JP-A-6-103230 JP-A-10-83374 JP 11-175463 A Japanese Patent No. 3447725 Japanese Examined Patent Publication No. 7-58458 JP 2003-279629 A Japanese Patent Laid-Open No. 10-55338
- an object of the present invention is to provide an asynchronous logic circuit that can effectively use communication capacity.
- the asynchronous logic circuit of the present invention is connected to an asynchronous register and includes a congestion possibility duration measurement module and a handshake switching module.
- the asynchronous register includes a transmission source register and a transmission destination register.
- the transmission source register stores data in its own storage element and transmits a data storage request.
- the transmission destination register stores the data stored in the transmission source register in its own storage element, and transmits a data storage completion notification indicating that the data has been stored in its own storage element.
- Congestion possibility duration measurement module counts the data storage request from the transmission source register when the data storage completion notification is not transmitted from the transmission destination register, and continues the possibility of congestion according to the count value. Output as time.
- the handshake switching module When the congestion possibility duration is less than the set time, the handshake switching module outputs a data storage request from the transmission source register to the transmission destination register that is the first transfer destination, and the congestion possibility duration is the set time. If so, the data storage request from the transmission source register is output to the second transfer destination.
- the transmission source register and the first transfer register are transferred so that data is transferred from the transmission source register to the transmission destination register that is the first transfer destination.
- the transmission source register and the transmission source register are transferred so that the data stored in the transmission source register is transferred to the second transfer destination.
- Switch to handshake with the second transfer destination When the congestion of the data transfer path is eliminated, the handshake between the transmission source register and the first transfer destination is restored so that the data is transferred from the transmission source register to the first transfer destination. In this manner, normal data transfer and data transfer during congestion can be switched without violating the handshake protocol. Thereby, communication capacity can be used effectively.
- FIG. 1 shows a configuration of a general integrated circuit 200.
- FIG. 2 shows a configuration of an asynchronous register as a general asynchronous logic circuit.
- FIG. 3 is a timing chart showing the operation of the asynchronous register of FIG.
- FIG. 4 shows a configuration of an asynchronous inter-core connection circuit 500 as an example of the asynchronous inter-core connection circuit in the integrated circuit 200 of FIG.
- FIG. 5 is a block diagram showing a configuration of the asynchronous logic circuit 100 according to the first embodiment of the present invention.
- FIG. 6A is a flowchart showing an operation of the asynchronous logic circuit 100 according to the first embodiment of the present invention.
- FIG. 6B is a flowchart showing the operation of the asynchronous logic circuit 100 according to the first embodiment of the present invention.
- FIG. 6A is a flowchart showing an operation of the asynchronous logic circuit 100 according to the first embodiment of the present invention.
- FIG. 6B is a flowchart showing the operation of the asynchronous
- FIG. 7 shows a specific configuration of the congestion possibility detection module 101 (first to third embodiments).
- FIG. 8 shows specific configurations of the congestion possibility duration measurement module 102 and the congestion determination module 103 (first to third embodiments).
- FIG. 9 shows a specific configuration of the handshake switching module 104 (first to third embodiments).
- FIG. 10A shows an element 1001 that is a two-input asymmetric C element 801, 808 (first to third embodiments).
- FIG. 10B shows an implementation example by the logic circuit 1002 of FIG. 10A (first to third embodiments).
- FIG. 10C is a truth table 1003 showing the operation of the logic circuit 1002 of FIG. 10B (first to third embodiments).
- FIG. 11A shows an element 1101 which is a two-input asymmetric C element 806 (first to third embodiments).
- FIG. 11B shows an implementation example by the logic circuit 1102 of FIG. 11A (first to third embodiments).
- FIG. 11C is a truth table 1103 showing the operation of the logic circuit 1102 of FIG. 11B (first to third embodiments).
- FIG. 12A shows an element 1210 which is a three-input asymmetric C element 802, 805 (first to third embodiments).
- FIG. 12B shows an implementation example by the logic circuit 1220 of FIG. 12A (first to third embodiments).
- FIG. 12C is a truth table 1230 showing the operation of the logic circuit 1220 of FIG. 12B (first to third embodiments).
- FIG. 12A shows an element 1101 which is a two-input asymmetric C element 806 (first to third embodiments).
- FIG. 11B shows an implementation example by the logic circuit 1102 of FIG. 11A (first to third embodiments).
- FIG. 13 shows another configuration of the congestion possibility detection module 101 (first to third embodiments).
- FIG. 14 is a block diagram showing a configuration of an asynchronous logic circuit 1400 according to the second embodiment of the present invention.
- FIG. 15 is a block diagram showing a configuration of an asynchronous logic circuit 1500 according to the third embodiment of the present invention.
- FIG. 16 shows a configuration of an asynchronous inter-core connection circuit 1800 when the asynchronous logic circuit 100 of FIG. 5 is applied to the asynchronous inter-core connection circuit 500 of FIG.
- FIG. 17 shows a configuration of an asynchronous inter-core connection circuit 1600 when the asynchronous logic circuit 1500 of FIG. 15 is applied to the asynchronous inter-core connection circuit 500 of FIG.
- FIG. 18 shows a configuration of an asynchronous inter-core connection circuit 1700 when the asynchronous logic circuit 1500 of FIG. 15 is applied to the asynchronous inter-core connection circuit 500 of FIG.
- FIG. 5 is a block diagram showing a configuration of the asynchronous logic circuit 100 according to the first embodiment of the present invention.
- the asynchronous logic circuit 100 is connected between a register 171 and a register 172 which are asynchronous registers of the asynchronous inter-core connection circuit.
- the register 171 includes a storage element 181 and a storage control circuit 191.
- the register 172 includes a storage element 182 and a storage control circuit 192.
- the storage element 181 and the storage control circuit 191 include the above-described flip-flop 310, This corresponds to the storage control circuit 320.
- the storage element 182 and the storage control circuit 192 correspond to the above-described flip-flop 311 and the storage control circuit 321, respectively.
- the storage control circuit 191 of the register 171 stores data in the storage element 181, and transmits a transmission source request signal Ri indicating a data storage request to the register 172.
- a transmission source request signal Ri is transmitted as a transmission destination request signal Ro, and this transmission destination request signal Ro indicates a data storage request.
- the storage control circuit 192 of the register 172 stores the data stored in the storage element 181 of the register 171 in the storage element 182 in response to the transmission destination request signal Ro (data storage request).
- the storage control circuit 192 transmits a transmission destination response signal Ao indicating a data storage completion notification to the register 171.
- the data storage completion notification indicates that data has been stored in the storage element 182.
- the asynchronous logic circuit 100 is connected to the data discard module 199.
- the data discard module 199 discards data remaining in the transmission side register 171.
- the asynchronous logic circuit 100 includes a congestion possibility detection module 101, a congestion possibility duration measurement module 102, a congestion determination module 103, and a handshake switching module 104. Yes.
- the congestion possibility detection module 101 monitors the transmission destination request signal Ro from the handshake switching module 104 and the transmission destination response signal Ao from the register 172.
- the data storage completion notification is not transmitted in response to the data storage request. That is, the transmission destination request signal Ro from the handshake switching module 104 indicates a data storage request, while the transmission destination response signal Ao from the register 172 does not indicate a data storage completion notification.
- the congestion possibility detection module 101 outputs a congestion possibility signal Pc indicating that the data transfer path from the register 171 to the register 172 may be congested to the congestion possibility duration measurement module 102. .
- a data storage completion notification is transmitted in response to the data storage request. That is, the transmission destination request signal Ro from the handshake switching module 104 indicates a data storage request, while the transmission destination response signal Ao from the register 172 indicates a data storage completion notification.
- the congestion possibility detection module 101 outputs a congestion possibility signal Pc indicating that there is no possibility that the data transfer path from the register 171 to the register 172 is congested to the congestion possibility duration measurement module 102. .
- the congestion possibility duration measurement module 102 receives the congestion possibility signal Pc from the congestion possibility detection module 101.
- the congestion possibility signal Pc indicates that the data transfer path from the register 171 to the register 172 may be congested.
- the congestion possibility duration measurement module 102 counts. At this time, the congestion possibility duration measurement module 102 sets the time corresponding to the count value as the congestion possibility duration Tc, and outputs a signal indicating the congestion possibility duration Tc to the congestion determination module 103.
- the congestion possibility signal Pc indicates that there is no possibility that the data transfer path from the register 171 to the register 172 is congested.
- the congestion possibility duration measurement module 102 ends the counting.
- the congestion possibility duration measurement module 102 resets the congestion possibility duration Tc.
- the congestion determination module 103 receives a signal indicating the congestion possibility duration Tc from the congestion possibility duration measurement module 102.
- the congestion determination module 103 is given a set time Tth in advance.
- the congestion determination module 103 compares the congestion possibility duration Tc with the set time Tth.
- the congestion possibility duration Tc is less than the set time Tth.
- the congestion determination module 103 outputs a congestion determination result signal Cg indicating that the data transfer path from the register 171 to the register 172 is not congested to the handshake switching module 104.
- the congestion possibility duration Tc is equal to or longer than the set time Tth.
- the congestion determination module 103 outputs to the handshake switching module 104 a congestion determination result signal Cg indicating that the data transfer path from the register 171 to the register 172 is congested.
- the handshake switching module 104 receives the transmission source request signal Ri from the register 171, the transmission destination response signal Ao from the register 172, and the congestion determination result signal Cg from the congestion determination module 103.
- the congestion determination result signal Cg indicates that the data transfer path from the register 171 to the register 172 is not congested.
- the handshake switching module 104 outputs the transmission source request signal Ri (data storage request) from the register 171 to the register 172 as the first transfer destination as a transmission destination request signal Ro (data storage request).
- the congestion determination result signal Cg indicates that the data transfer path from the register 171 to the register 172 is congested.
- the handshake switching module 104 generates a data discard request signal Re indicating a data discard request in response to the transmission source request signal Ri (data storage request) from the register 171 and outputs it to the second transfer destination. .
- the second transfer destination represents the data discard module 199.
- the data discard module 199 discards the data stored in the register 171 in response to the data discard request signal Re (data discard request).
- the data discard module 199 outputs a discard response signal Ae indicating a data discard completion notification to the handshake switching module 104.
- the data discard completion notification indicates that the data stored in the register 171 has been discarded.
- a data storage completion notification is transmitted in response to the data storage request. That is, the transmission source request signal Ri from the register 171 indicates a data storage request, while the transmission destination response signal Ao from the register 172 indicates a data storage completion notification.
- the handshake switching module 104 ends the transmission of the data storage request to the register 172. That is, a transmission destination request signal Ro indicating withdrawal of the data storage request is output.
- the handshake switching module 104 outputs the transmission destination response signal Ao (data storage completion notification) from the register 172 to the register 171 as the transmission source response signal Ai (data storage completion notification).
- a data storage request is transmitted in response to the data storage completion notification. That is, in response to the transmission destination response signal Ao (data storage completion notification) from the register 172, the transmission source request signal Ri (data storage request) is transmitted from the register 171.
- the handshake switching module 104 generates a data discard request signal Re indicating a data discard request in response to the transmission source request signal Ri (data storage request) from the register 171, and the second transfer destination data Output to the discard module 199.
- FIGS. 6A and 6B are flowcharts showing the operation of the asynchronous logic circuit 100 according to the first embodiment of the present invention.
- the transmission source request signal Ri, the transmission destination request signal Ro, and the data discard request signal Re are expressed by two values “0” and “1”.
- the transmission source request signal Ri and the transmission destination request signal Ro indicate a data storage request when the value is “1”, and indicate withdrawal of the data storage request when the value is “0”.
- the data discard request signal Re indicates a data discard request when the value is “1”, and indicates withdrawal of the data discard request when the value is “0”.
- the transmission source response signal Ai, the transmission destination response signal Ao, and the discard response signal Ae are expressed by two values “0” and “1”.
- the transmission source response signal Ai and the transmission destination response signal Ao indicate a data storage completion notification when the values are “1”, and indicate withdrawal of the data storage completion notification when the values are “0”. . If the value is “1”, the discard response signal Ae indicates a data discard completion notification, and if the value is “0”, it indicates that the data discard completion notification is withdrawn.
- the congestion possibility signal Pc is expressed by two values “0” and “1”.
- the congestion possibility signal Pc indicates that there is a possibility that the data transfer path from the register 171 to the register 172 is congested when the value is “1”, and when the value is “0”, This indicates that there is no possibility that the data transfer path is congested.
- the congestion determination result signal Cg is expressed by two values “0” and “1”.
- the congestion determination result signal Cg indicates that the data transfer path is congested when the value is “1”, and indicates that the data transfer path is not congested when the value is “0”. ing.
- the congestion possibility duration Tc and the set time Tth are expressed by arbitrary real numbers.
- condition is abbreviated as “Y” and the condition not satisfied is abbreviated as “N”.
- the asynchronous logic circuit 100 is in an initial state.
- the values of the transmission source request signal Ri, the transmission source response signal Ai, the transmission destination request signal Ro, the transmission destination response signal Ao, the data discard request signal Re, and the discard response signal Ae are “0”.
- the value of the congestion possibility signal Pc is “0”.
- the congestion possibility duration Tc is “0”.
- the value of the congestion determination result signal Cg is “0”. It is assumed that an arbitrary value is given as the set time Tth (step S900).
- the transmission source request signal Ri is transmitted from the storage control circuit 191 of the register 171 to the handshake switching module 104 (“N” in step S901).
- the data is output to the control circuit 192 (step S902).
- a transmission destination request signal Ro “1” (data storage request) is transmitted from the handshake switching module 104 to the storage control circuit 192 of the register 172, and a transmission destination response signal Ao is transmitted from the storage control circuit 192 of the register 172 to the handshake switching module 104. Is transmitted (step S903).
- the congestion time measurement module 102 counts while the value of the congestion possibility signal Pc is “1”, and outputs the time corresponding to the count value to the congestion determination module 103 as the congestion possibility duration Tc (step S913).
- the congestion determination module 103 determines whether or not the congestion possibility duration Tc is equal to or longer than the set time Tth (step S914).
- the handshake switching module 104 responds to the transmission destination response signal Ao “1” (data storage completion notification) from the storage control circuit 192 of the register 172.
- the data is output to the control circuit 192 (step S906), and the transmission destination response signal Ao is received from the storage control circuit 192 (step S907).
- the handshake switching module 104 performs handshake between the register 171 and the data discard module 199 while outputting the transmission destination request signal Ro “1” (data storage request) to the register 172.
- the data is output to 199 (step S922).
- the handshake switching module 104 waits until the value of the transmission destination response signal Ao becomes “1” or the value of the transmission source request signal Ri becomes “1”.
- the handshake switching module 104 starts a handshake between the register 171 and the data discard module 199 in response to the transmission source request signal Ri “1” (data storage request), and the above-described steps S922 to S922- S928 is executed.
- the handshake switching module 104 sets the value of the transmission destination request signal Ro to the register 172 to “0” in response to the transmission destination response signal Ao “1” (data storage completion notification) (step S936).
- the congestion possibility duration measurement module 102 ends the count and resets the congestion possibility duration Tc. That is, “0” is set (step S942).
- the congestion determination module 103 sets the value of the congestion determination result signal Cg to “0” when the congestion possibility duration Tc is reset (step S949).
- the handshake switching module 104 waits until the value of the transmission destination response signal Ao becomes “0” or the value of the transmission source request signal Ri becomes “1”.
- the handshake switching module 104 starts a handshake between the register 171 and the data discard module 199 in response to the transmission source request signal Ri “1” (data storage request), and the above-described steps S922 to S922- S928 is executed.
- step S900 the value of the transmission destination response signal Ao becomes “0” (“Y” in step S923). Thereafter, step S900 and subsequent steps are executed.
- the transmission source register changes the transmission destination register (register 172) as the first transfer destination.
- the data transfer path is congested by continuing the handshake between the transmission source register and the first transfer destination so that the data is transferred, the data stored in the transmission source register is transferred to the second transfer.
- the handshake between the transmission source register and the second transfer destination is switched so that the data is transferred first. In this case, since the second transfer destination is the data discard module 199, the data is discarded by the data discard module 199.
- FIG. 7 shows a specific configuration of the congestion possibility detection module 101.
- the congestion possibility detection module 101 In the congestion possibility detection module 101, the value of the congestion possibility signal Pc becomes “1” only when the values of the transmission destination request signal Ro and the transmission destination response signal Ao are “1” and “0”, respectively. In the state, the value of the congestion possibility signal Pc is “0”. Therefore, the congestion possibility detection module 101 is composed only of an AND gate and a NOT gate. That is, the signal level of the destination response signal Ao is inverted by the NOT gate, the destination request signal Ro is supplied to the first input of the AND gate, and the output of the NOT gate is supplied to the second input of the AND gate. The The AND gate outputs a congestion possibility signal Pc as its output signal.
- FIG. 8 shows a specific configuration of the congestion possibility duration measurement module 102 and the congestion determination module 103.
- the congestion possibility duration measurement module 102 includes a local clock generation circuit 710 and a congestion possibility duration counter 720.
- the local clock generation circuit 710 includes a local clock switch circuit 711 and a NOT gate 712.
- the local clock switch circuit 711 includes a NOT gate 711 (a), a two-input NAND gate 711 (b), (c), and a NOT gate 711 (d).
- the NOT gate 711 (a) is connected to the output of the congestion possibility detection module 101 at its input, and the congestion possibility signal Pc is supplied to the NOT gate 711 (a).
- the 2-input NAND gate 711 (b) has its first input connected to the output of the NOT gate 711 (a), its second input connected to the output of the 2-input NAND gate 711 (c), and its output connected to 2 A first input of the input NAND gate 711 (c) is connected.
- the 2-input NAND gate 711 (c) has the second input connected to the output of the NOT gate 712.
- the NOT gate 711 (d) has an input connected to the output of the 2-input NAND gate 711 (c), and outputs a local clock signal LClk as its output signal.
- the local clock generation circuit 710 oscillates when the value of the congestion possibility signal Pc is “1” and outputs the local clock signal LClk, and oscillates when the value of the congestion possibility signal Pc is “0”. Stop.
- the value of the congestion possibility signal Pc is “1”
- the value of the output signal Pc_b of the NOT gate 711 (a) is “0”. Since the value of the output signal Pc_b supplied to the first input is “0”, the NAND gate 711 (b) outputs the output regardless of the value of the output signal LClk_bb supplied to the second input.
- the value of the signal Pc_bb is set to “1”.
- the NAND gate 711 (c) since the value of the output signal Pc_bb supplied to the first input of the NAND gate 711 (c) is “1”, the NAND gate 711 (c) operates equivalent to the NOT gate 712, and the NAND gate 711 (c)
- the NOT gate 711 (d) and the NOT gate 712 are equivalent to a feedback loop composed of an odd number (three) of NOT gates. Therefore, when the value of the congestion possibility signal Pc is “1”, the local clock generation circuit 710 oscillates and outputs the local clock signal LClk.
- the local clock switch circuit 711 As an operation of the local clock switch circuit 711 when the value of the congestion possibility signal Pc is “1”, the value of the congestion possibility signal Pc is “1” immediately before the value of the congestion possibility signal Pc becomes “0”.
- the local clock switch circuit 711 since the local clock switch circuit 711 oscillates, the value of the local clock signal LClk can be either “0” or “1”.
- the values of the congestion possibility signal Pc and the output signal LClk_b of the NOT gate 712 supplied to the local clock switch circuit 711 are “1” and “0”, respectively.
- the values of the input signals Pc_b and LClk_bb of the NAND gate 711 (b) are “0” and “1”, respectively, and the value of the output signal Pc_bb of the NAND gate 711 (b) is “1”.
- the values of the input signals LClk_b and Pc_bb of the NAND gate 711 (c) are “0” and “1”, respectively, and the value of the output signal LClk_bb of the NAND gate 711 (c) is “1”.
- the value of the congestion possibility signal Pc becomes “0”.
- the values of the input signals Pc_b and LClk_bb of the NAND gate 711 (b) are “1” and “1”, respectively, and the value of the output signal Pc_bb of the NAND gate 711 (b) is “0”.
- the values of the input signals LClk_b and Pc_bb of the NAND gate 711 (c) are “0” and “0”, respectively, and the value of the output signal LClk_bb of the NAND gate 711 (c) is “1”.
- the value of the local clock signal LClk becomes “0” by the NOT gate 711 (d).
- the values of the input signals Pc_b and LClk_bb of the NAND gate 711 (b) are “1” and “1”, respectively, and the value of the output signal Pc_bb of the NAND gate 711 (b) remains “0”.
- the values of the input signal LClk_b and the output signal Pc_bb of 711 (c) are “1” and “0”, respectively.
- the value of the output signal LClk_bb of the NAND gate 711 (c) remains “1” and does not change, and accordingly, the local clock signal LClk also does not change.
- the values of the congestion possibility signal Pc and the output signal LClk_b of the NOT gate 712 supplied to the local clock switch circuit 711 are “1” and “1”, respectively.
- the input signals Pc_b and LClk_bb of the NAND gate 711 (b) are “0” and “0”, respectively, and the value of the output signal Pc_bb of the NAND gate 711 (b) is “1”.
- the values of the input signals LClk_b and Pc_bb of the NAND gate 711 (c) are “1” and “1”, respectively, and the value of the output signal LClk_bb of the NAND gate 711 (c) is “0”.
- the value of the congestion possibility signal Pc becomes “0”.
- the values of the input signals Pc_b and LClk_bb of the NAND gate 711 (b) are “1” and “0”, respectively.
- the value of the output signal Pc_bb of the NAND gate 711 (b) is “1”
- the values of the input signals LClk_b and Pc_bb of the NAND gate 711 (c) are “1” and “1”, respectively
- the output signal of the NAND gate 711 (c) The value of LClk_bb remains “0”. Further, the value of the local clock signal LClk becomes “1” by the NOT gate 711 (d).
- the values of the input signals Pc_b and LClk_bb of the NAND gate 711 (b) are “1” and “1”, respectively, and the value of the output signal Pc_bb of the NAND gate 711 (b) is “0”.
- the values of the input signals LClk_b and Pc_bb of the NAND gate 711 (c) are “0” and “0”, respectively, and the value of the output signal LClk_bb of the NAND gate 711 (c) is “1”.
- the value of the local clock signal LClk becomes “0” by the NOT gate 711 (d). Therefore, the values of the input signals Pc_b and LClk_bb of the NAND gate 711 (b) remain “1” and “1”, respectively, and the value of the output signal Pc_bb of the NAND gate 711 (b) remains “0”.
- the values of the input signals LClk_b and Pc_bb of the NAND gate 711 (c) are “1” and “0”, respectively.
- the state of the output signal of the NAND gate 711 (c) remains unchanged while the value of LClk_bb is “1”, and accordingly, the local clock signal LClk also does not change.
- the local clock generation circuit 710 stops outputting the local clock signal LClk regardless of the state of the local clock signal LClk at that time. To do.
- the congestion possibility duration counter 720 includes a duration storage circuit 721 and an adder 722.
- the duration memory circuit 721 has an input connected to the output of the adder 722 and an output connected to the input of the adder 722.
- the duration memory circuit 721 is a flip-flop having a clock terminal and a reset terminal, and a local clock signal LClk is supplied to the clock terminal, and a congestion possibility signal Pc is supplied to the reset terminal.
- the value of the congestion possibility signal Pc is “1”.
- the duration storage circuit 721 holds (stores) the count value from the adder 722 and outputs it to the adder 722 according to the local clock signal LClk from the local clock generation circuit 710.
- the time corresponding to the count value is output to the congestion determination module 103 as a signal representing the congestion possibility duration Tc.
- the adder 722 adds 1 to the count value from the duration storage circuit 721 and outputs the result to the duration storage circuit 721.
- the count value stored in the duration memory circuit 721 is incremented by 1 every time the local clock signal LClk rises or falls.
- the value of the congestion possibility signal Pc is “0”.
- the duration storage circuit 721 resets the count value (congestion possibility duration Tc) according to the congestion possibility signal Pc “0”, and returns to the initial value “0”.
- the congestion possibility duration counter 720 increases the congestion possibility duration Tc in a state where there is a possibility of congestion, and sets the congestion possibility duration Tc when the possibility of congestion disappears. Set to 0 ”.
- the congestion determination module 103 includes a comparator.
- the congestion determination module 103 is supplied with a signal representing the congestion possibility duration Tc from the congestion possibility duration counter 720 and a signal representing the set time Tth from the outside.
- the congestion determination module 103 outputs a congestion determination result signal Cg to the handshake switching module 104 as its output.
- the congestion possibility duration Tc is equal to or longer than the set time Tth (Tc ⁇ Tth).
- the congestion determination module 103 sets the value of the congestion determination result signal Cg to “1”.
- the congestion possibility duration Tc is less than the set time Tth (Tc ⁇ Tth). In this case, the congestion determination module 103 sets the value of the congestion determination result signal Cg to “0”.
- FIG. 9 shows a specific configuration of the handshake switching module 104.
- the handshake switching module 104 includes two-input asymmetric C elements 801 and 808, two-input asymmetric C elements 806, three-input asymmetric C elements 802 and 805, an AND gate 803, an OR gate 807, and a multiplexer ( MUX) 804.
- MUX multiplexer
- the OR gate 807 is supplied with the destination request signal Ro, which is the output of the AND gate 803, at its first input, is supplied with the destination response signal Ao from the register 172, and outputs an output signal as its output.
- the 2-input asymmetric C element 808 is supplied with the transmission source request signal Ri from the register 171 at its first input, and is supplied with the transmission source response signal Ai, which is the output of the multiplexer 804, at its second input.
- a handshake execution signal HS is output.
- the congestion determination result signal Cg from the congestion determination module 103 is supplied to the first input
- the handshake execution signal HS is supplied to the second input
- the OR is input to the third input.
- An output signal from the gate 807 is supplied, and a handshake destination switching signal Sw is output as the output signal.
- the multiplexer 804 has three input terminals S, D0, D1 and one output terminal.
- the input terminal S is supplied with the handshake destination switching signal Sw
- the input terminal D0 is supplied with the transmission destination response signal Ao
- the input terminal D1 is supplied with the discard response signal Ae from the data discard module 199.
- the multiplexer 804 outputs the destination response signal Ao supplied to the input terminal D0 as the source response signal Ai.
- the multiplexer 804 outputs the discard response signal Ae supplied to the input terminal D1 as the transmission source response signal Ai.
- the 2-input asymmetric C element 801 is supplied with the transmission source request signal Ri at its first input, supplied with the handshake destination switching signal Sw at its second input, and outputs an output signal as its output.
- the 3-input asymmetric type C element 802 is supplied with the transmission source request signal Ri at its first input, inverted and supplied with the handshake destination switching signal Sw at its second input, and has a transmission destination response signal at its third input. Ao is inverted and supplied, and an output signal is output as its output.
- the AND gate 803 is supplied with the output signal of the 2-input asymmetric C-element 801 at its first input, supplied with the output signal of the 3-input asymmetric C-element 802 at its second input, and outputs a destination request signal as its output.
- the two-input asymmetric C element 806 is supplied with a transmission source request signal Ri at its first input, supplied with a handshake destination switching signal Sw at its second input, and uses the discard request signal Re as its output as a data discard module 199. Output to.
- the above C element waits for an input signal, transitions the output signal when the state of the input signal satisfies a predetermined condition, and outputs the output signal when the state of the input signal does not satisfy the predetermined condition.
- a predetermined condition There are a plurality of types depending on the number of input signals and waiting conditions.
- FIG. 10A shows an element 1001 that is a two-input asymmetric C element 801 and 808.
- FIG. 10B shows an implementation example by the logic circuit 1002 of FIG. 10A.
- FIG. 10C is a truth table 1003 showing the operation of the logic circuit 1002 of FIG. 10B.
- the element 1001 is realized by a logic circuit 1002 including an AND gate and an OR gate when the input signals A and B are supplied to the first and second inputs, respectively, and the output signal Y is output as the output. Works as shown.
- the OR gate is supplied with the input signal A at its first input, supplied with the output of the AND gate at its second input, and outputs the output signal Y as its output.
- the AND gate is supplied with the input signal B at its first input and with the output of the OR gate at its second input. Since the output signal Y is fed back and input to the AND gate, the output signal Y supplied to the second input of the AND gate is the input signal Y (t ⁇ 1), and the output signal Y of the OR gate is the output signal. It is distinguished from Y (t).
- the logic circuit 1002 holds the state of the output signal Y when the values of the input signals A and B are “0” and “1”, respectively.
- the values of the input signals A and B are “1”, “0”, “1”, and “1”, respectively.
- the value of the input signal A becomes “1”, so that the value of the output signal Y (t) becomes “1”. For this reason, the value of the output signal Y becomes “1”.
- FIG. 11A shows an element 1101 that is a two-input asymmetric C element 806.
- FIG. 11B shows an implementation example by the logic circuit 1102 of FIG. 11A.
- FIG. 11C is a truth table 1103 showing the operation of the logic circuit 1102 of FIG. 11B.
- the element 1101 is realized by a logic circuit 1102 composed of an AND gate and an OR gate when the input signals A and B are supplied to the first and second inputs, respectively, and the output signal Y is output as the output. Works as shown. In this case, the input signals A and B and the output signal Y in FIGS. 11A to 11C are used to explain the operation, and are different from the signals in FIGS. 10A to 10C.
- the AND gate is supplied with the input signal A at its first input, supplied with the output of the OR gate at its second input, and outputs an output signal Y as its output.
- the OR gate is supplied with the input signal B at its first input and with the output of the AND gate at its second input.
- the output signal Y supplied to the second input of the OR gate is the input signal Y (t ⁇ 1)
- the output signal Y of the AND gate is the output signal. It is distinguished from Y (t).
- the logic circuit 1102 holds the state of the output signal Y when the values of the input signals A and B are “1” and “0”, respectively.
- FIG. 12A shows an element 1210 which is a three-input asymmetric C element 802, 805.
- FIG. 12B shows an implementation example by the logic circuit 1220 of FIG. 12A.
- FIG. 12C is a truth table 1230 showing the operation of the logic circuit 1220 of FIG. 12B.
- a logic circuit including three AND gates 1221 to 1223 and an OR gate 1224 1220, and operates as shown in truth table 1230.
- the input signals A and B and the output signal Y in FIGS. 12A to 12C are used to explain the operation, and are different from the signals in FIGS. 10A to 10C and FIGS. 11A to 11C.
- the AND gate 1221 is supplied with the input signal A at its first input and the input signal B at its second input.
- the AND gate 1222 is supplied with the input signal C at its first input and supplied with the output of the OR gate 1224 at its second input.
- the AND gate 1223 is supplied with the input signal B at its first input and supplied with the output of the OR gate 1224 at its second input.
- the OR gate 1224 is supplied with the output of the AND gate 1221 at its first input, supplied with the output of the AND gate 1222 at its second input, and supplied with the output of the AND gate 1223 at its third input.
- Output signal Y is output.
- the output signal Y is fed back and input to the AND gates 1222 and 1223, the output signal Y supplied to the second input of the AND gates 1222 and 1223 is used as the input signal Y (t ⁇ 1) and the OR gate 1224. Is expressed separately from the output signal Y (t).
- the values of the input signals A, B, and C are “1”, “1”, “0” or “1”, “1”, “1”, respectively.
- the value of the output signal of the AND gate 1221 is “1”.
- the value of the signal supplied to the first input of the OR gate 1224 becomes “1”
- the value of the output signal Y (t) becomes “1”.
- the values of the input signals A, B and C are “0”, “0”, “1” and “0”, “1”, “0” and “0”, “1”, “1” and “1”, respectively. , “0”, or “1”.
- the value of one or both of the input signals A and B becomes “0”
- the value of the output signal of the AND gate 1221 becomes “0”.
- the AND gate 1222 has one or both values of the input signals C and Y (t ⁇ 1) as “1”
- the AND gate 1223 has one or both values of the input signals B and Y (t ⁇ 1) as “1”.
- the output signals of the AND gates 1222 and 1223 become equal to the input signal Y (t ⁇ 1).
- the output signal Y (t) of the OR gate 1224 becomes equal to the input signal Y (t ⁇ 1). That is, the logic circuit 1220 has the values of the input signals A, B, and C being “0”, “0”, “1” and “0”, “1”, “0” and “0”, “1”, When “1”, “1”, “0”, or “1”, the state of the output signal Y is held.
- the handshake switching module 104 in FIG. 8 uses the 2-input asymmetric C elements 801 and 808 in FIGS. 10A to 10C, the 2-input asymmetric C elements in FIGS. 11A to 11C, and the 3-input asymmetric C elements in FIGS. 12A to 12C. This makes it possible to switch handshaking among the transmission source register (register 171), transmission destination register (register 172), and data discard module 199 without violating the handshake protocol.
- the output signal of the 3-input asymmetric C element 805 is referred to as a handshake destination switching signal Sw
- the output signal of the 2-input asymmetric C element 808 is the handshake in-execution signal.
- Called HS When the value of the handshake destination switching signal Sw is “0”, it indicates that the handshake destination is the transmission destination register. When the value is “1”, the handshake destination is the data discard module. 199.
- the handshake execution signal HS is “0”, it indicates that the handshake with the transmission source register has been completed and is waiting for the next handshake, and the value is “0”. "Indicates that the handshake with the transmission source register is being executed.
- the values of the transmission source request signal Ri, the transmission source response signal Ai, the transmission destination request signal Ro, the transmission destination response signal Ao, the data discard request signal Re, and the discard response signal Ae are “0”, and handshaking is executed.
- the value of the medium signal HS is “0”, the value of the handshake destination switching signal Sw is “0”, and the value of the congestion determination result signal Cg is “0” (step S900 in FIG. 6A).
- the symbol for the negation operator is represented as “ ⁇ ”
- the symbol for the logical sum operator is represented as “
- the value of the transmission source request signal Ri is “1” (“Y” in step S901 in FIG. 6A).
- the signals supplied to the first and second inputs of the two-input asymmetric C element 808, that is, the values of the transmission source request signal Ri and the transmission source response signal Ai are “1” and “0”, respectively.
- the value of the handshake execution signal HS, which is the output of the 2-input asymmetric C element 808, is “1”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 801, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “0”, respectively.
- the value of the output signal of the asymmetric C element 801 is “1”.
- the signals supplied to the first, second and third inputs of the three-input asymmetric C element 802, that is, the values of the transmission source request signal Ri, the handshake destination switching signal Sw ⁇ , and the transmission destination response signal Ao ⁇ are “1”, respectively. , “1” and “1”, the value of the output signal of the three-input asymmetric C element 802 is “1”. Since the values of the output signals of the two-input asymmetric C element 801 and the three-input asymmetric 802 are both “1”, the value of the destination request signal Ro output from the AND gate 803 is “1” (step S902). ).
- the signals supplied to the first and second inputs of the two-input asymmetric C element 806, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “0”, respectively.
- the value of the output signal of the asymmetric C element 806 is kept “0”, and the value of the data discard request signal Re is kept “0”.
- the output of the OR gate 807 is output.
- the value of the signal is “1”.
- the output signal of the OR gate 807 is represented by Ro
- Ao of the OR gate 807 are “0”, “1”, and “1”, respectively.
- the value of the handshake destination switching signal Sw that is the output of the three-input asymmetric C element 805 remains “0”.
- the congestion possibility detection module is in the meantime. 101 detects the possibility of congestion and sets the value of the congestion possibility signal Pc to “1” (step S913). On the other hand, while the congestion possibility duration measurement module 102 adds the congestion possibility duration Tc and the congestion determination module 103 determines that it is less than the set time Tth (step S914), congestion is detected in the transmission destination register. When the value of the destination response signal Ao becomes “1” (“Y” in step S903), the value of the congestion determination result signal Cg remains “0”.
- the congestion possibility detection module 101 since the congestion possibility detection module 101 does not detect the congestion possibility, the value of the congestion possibility signal Pc is set to “0” (step S911), and the congestion possibility duration measurement module 102 determines the possibility of congestion. The value of the duration Tc is reset to “0” (step S912).
- the value of the transmission destination request signal Ri becomes “0” by the transmission source register (“Y” in step S905).
- the signals supplied to the first and second inputs of the two-input asymmetric C element 801, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “0” and “0”, respectively.
- the value of the output signal of the two-input asymmetric C element 801 is “0”.
- the signals supplied to the first, second and third inputs of the 3-input asymmetric C element 802, that is, the values of the transmission source request signal Ri, the handshake destination switching signal Sw ⁇ , and the transmission destination response signal Ao ⁇ are “0”, respectively. , “1” and “0”, but the value of the output signal of the three-input asymmetric C-element 802 remains “1”. Therefore, the value of the transmission destination request signal Ro output from the AND gate 803 becomes “0” (step S906).
- the signals supplied to the first and second inputs of the two-input asymmetric C element 808, that is, the values of the transmission source request signal Ri and the transmission source response signal Ai change to “0” and “1”, respectively.
- the value of the handshake execution signal HS, which is the output of the two-input asymmetric C element 808, is maintained at “1”.
- the handshake switching module 104 performs handshaking between the transmission source register and the transmission destination register.
- the value of the transmission source request signal Ri is “1” (“Y” in step S901 in FIG. 6A).
- the signals supplied to the first and second inputs of the two-input asymmetric C element 808, that is, the values of the transmission source request signal Ri and the transmission source response signal Ai are “1” and “0”, respectively.
- the value of the handshake execution signal HS, which is the output of the 2-input asymmetric C element 808, is “1”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 801, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “0”, respectively.
- the value of the output signal of the asymmetric C element 801 is “1”.
- the signals supplied to the first, second and third inputs of the three-input asymmetric C element 802, that is, the values of the transmission source request signal Ri, the handshake destination switching signal Sw ⁇ , and the transmission destination response signal Ao ⁇ are “1”, respectively. , “1” and “1”, the value of the output signal of the three-input asymmetric C element 802 is “1”. Since the values of the output signals of the two-input asymmetric C element 801 and the three-input asymmetric 802 are both “1”, the value of the destination request signal Ro output from the AND gate 803 is “1” (step S902). ).
- the signals supplied to the first and second inputs of the two-input asymmetric C element 806, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “0”, respectively.
- the value of the output signal of the asymmetric C element 806 is kept “0”, and the value of the data discard request signal Re is kept “0”.
- the output of the OR gate 807 is output.
- Ao is “1”.
- Ao of the OR gate 807 are “0”, “1”, and “1”, respectively.
- the value of the handshake destination switching signal Sw that is the output of the three-input asymmetric C element 805 remains “0”.
- the congestion possibility detection module 101 It is assumed that the value of the congestion determination result signal Cg becomes “1” by the operations of the congestion possibility duration measurement module 102 and the congestion determination module 103 (“Y” in steps S913 and S914, S919).
- Ao of the OR gate 807 Are “1”, “1”, and “1”, respectively, so that the value of the handshake destination switching signal Sw that is the output of the three-input asymmetric C element 805 is “1”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 806, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “1”, respectively.
- the value of the data discard request signal Re which is the output of the two-input asymmetric C element 806, becomes “1” (step S922).
- the value of the handshake destination switching signal Sw becomes “1”. 1 ”. Therefore, the value of the source response signal Ai that is the output of the multiplexer 804 is “1”, which is the same as the value “1” of the discard response signal Ae (step S924).
- the two-input asymmetric C-element 801 Since the values of the signals supplied to the first and second inputs, that is, the transmission source request signal Ri and the handshake destination switching signal Sw are “0” and “1”, respectively, the output signal of the two-input asymmetric C element 801 Is maintained at “1”.
- the signals supplied to the first, second and third inputs of the three-input asymmetric C element 802, that is, the values of the transmission source request signal Ri, the handshake destination switching signal Sw ⁇ , and the transmission destination response signal Ao ⁇ are “1”, respectively.
- the value of the output signal of the three-input asymmetric C-element 802 is maintained at “1”.
- the value of the destination request signal Ro which is the output of the AND gate 803, is maintained at “1”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 806, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “0” and “1”, respectively. Therefore, the value of the data discard request signal Re, which is the output of the 2-input asymmetric C element 806, becomes “0” (step S926).
- the value of the handshake destination switching signal Sw becomes “0”. 1 ”.
- the value of the source response signal Ai which is the output of the multiplexer 804, is output as “0”, which is the same as the value “0” of the discard response signal Ae (step S928).
- the value of the transmission destination request signal Ro is “1”. Therefore, the value of the output signal of the OR gate 807 remains “1”.
- Ao of the OR gate 807 are “ 1 ”,“ 0 ”, and“ 1 ”, and the value of the handshake destination switching signal Sw that is the output of the three-input asymmetric C-element 805 remains“ 1 ”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 801, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “1”, respectively.
- the value of the output signal of the asymmetric C element 801 remains “1”. Since the values of the output signals of the 2-input asymmetric type C element 801 and the 3-input asymmetric type 802 are both “1”, the value of the transmission destination request signal Ro output from the AND gate 803 is “1”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 806, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “1”, respectively.
- the value of the data discard request signal Re which is the output of the asymmetric C element 806, becomes “1” (step S922).
- the output signals of the OR gate 807 are supplied to the first and second inputs of the OR gate 807, that is, the values of the transmission destination request signal Ro and the transmission destination response signal Ao remain “1” and “0”, respectively.
- Ao remains “1”.
- Ao of the OR gate 807 are “ 1 ”,“ 1 ”, and“ 1 ”. In this case, the value of the handshake destination switching signal Sw that is the output of the three-input asymmetric C element 805 remains “1”.
- the subsequent handshake between the transmission source register and the data discard module 199 is executed in the same manner as described above (steps S923 to S928).
- the value of the congestion determination result signal Cg is determined by the operations of the congestion possibility detection module 101, the congestion possibility duration measurement module 102, and the congestion determination module 103. It is assumed that “0” has been reached (steps S941, S942, and S949).
- the values of the transmission destination request signal Ro and the transmission destination response signal Ao are “0” and “1”, respectively, but the value of the output signal Ro
- Ao of the OR gate 807 are Since the values are “0”, “0”, and “1”, respectively, the value of the handshake destination switching signal Sw that is the output of the three-input asymmetric C element 805 is maintained at “1”.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 801, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “1”, respectively.
- the value of the output signal of the asymmetric C element 801 is “1”.
- the signals supplied to the first, second and third inputs of the three-input asymmetric C element 802, that is, the values of the transmission source request signal Ri, the handshake destination switching signal Sw ⁇ , and the transmission destination response signal Ao ⁇ are “1”, respectively. Therefore, the value of the output signal of the three-input asymmetric C-element 802 remains “0”.
- the value of one of the output signals of the 2-input asymmetric C element 801 and the 3-input asymmetric 802 remains “0”, the value of the destination request signal Ro output from the AND gate 803 remains “0”. It becomes.
- the signals supplied to the first and second inputs of the two-input asymmetric C element 806, that is, the values of the transmission source request signal Ri and the handshake destination switching signal Sw are “1” and “1”, respectively.
- the value of the data discard request signal Re which is the output of the asymmetric C element 806, becomes “1” (step S922).
- Ao of the OR gate 807 remains “1”.
- Ao of the OR gate 807 are “
- the subsequent handshake between the transmission source register and the data discard module is executed in the same manner as described above (steps S923 to S928).
- the value of the transmission destination response signal Ao becomes “0” with respect to the value of the transmission destination request signal Ro. (“Y” in step S923).
- Ao of the OR gate 807 is “0”.
- Ao of the OR gate 807 are “ Since the values are 0, “0”, and “0”, the value of the handshake destination switching signal Sw that is the output of the 3-input asymmetric C element 805 is “0”, and the handshake with the transmission destination register is completed. Return to the initial state (step S900).
- the congestion possibility detection module 101 sends a data storage request (transmission destination request signal Ro “1”) to the transmission destination register (register 172). ) Is performed, but there is no response for completion of storage from the transmission destination register (transmission destination response signal Ao “0”), the data transfer path from the transmission source register (register 171) to the transmission destination register is congested. A possibility of congestion (congestion possibility signal Pc “1”) is detected.
- the congestion possibility duration measurement module 102 measures the congestion possibility duration Tc, which is the duration of this state.
- the congestion determination module 103 determines that the data transfer path is congested when the congestion possibility duration Tc exceeds the set time Tth. Thus, congestion in data transfer by an asynchronous register can be detected.
- the handshake switching module 104 when the data transfer path is not congested, from the transmission source register to the first transfer destination (transmission destination register). If the data transfer path is congested by continuing the handshake between the transmission source register and the first transfer destination so that the data is transferred to the first transfer destination, the data stored in the transmission source register is the second The handshake between the transmission source register and the second transfer destination is switched so that the data is transferred to the transfer destination. In this case, since the second transfer destination is the data discard module 199, the data is discarded by the data discard module 199.
- the handshake switching module 104 transfers the hand between the transmission source register and the first transfer destination so that the data is transferred from the transmission source register to the first transfer destination when the congestion of the data transfer path is eliminated. Return to shake. In this manner, normal data transfer and data transfer during congestion can be switched without violating the handshake protocol. Thereby, communication capacity can be used effectively.
- asynchronous logic circuit 100 is not limited to the above-described configuration.
- the congestion determination module 103 further includes a storage module that stores the set time Tth, and the comparator receives a signal indicating the congestion possibility duration Tc from the congestion possibility duration measurement module 102, and the congestion possibility.
- the duration Tc may be compared with the set time Tth stored in the storage module.
- the congestion possibility detection module 101 is composed of an AND gate and a NOT gate as described above, but may be composed of an XOR gate as shown in FIG.
- the transmission destination request signal Ro not only when the values of the transmission destination request signal Ro, the transmission destination response signal Ao, the transmission destination request signal Ro, and the transmission destination response signal Ao are “1” and “0”, respectively, the transmission destination request signal Ro, the transmission Even when the value of the previous response signal Ao is “0” and “1”, respectively, the value of the congestion possibility signal Pc that is the output of the XOR gate is “1”. In other states, the value of the congestion possibility signal Pc is It becomes “0”.
- FIG. 14 is a block diagram showing a configuration of an asynchronous logic circuit 1400 according to the second embodiment of the present invention.
- descriptions overlapping with those in the first embodiment are omitted.
- the congestion possibility detection module 101 and the handshake switching module 104 are connected between the same pair of registers. That is, in the asynchronous logic circuit 100 according to the first embodiment of the present invention, the asynchronous logic circuit 100 is connected between the register 171 and the register 172 which are asynchronous registers of the asynchronous inter-core connection circuit. However, it is not limited to this.
- the congestion possibility detection module 101 and the handshake switching module 104 may be connected between different pairs of registers.
- a register 1472 having the same function as the registers 171 and 172 is provided between the register 171 and the register 172 as an asynchronous register of the asynchronous inter-core connection circuit.
- the register 1472 includes a storage element 1482 and a storage control circuit 1492.
- the storage element 181 and the storage control circuit 191 include the above-described flip-flop 310, This corresponds to the storage control circuit 320.
- the storage element 1482 and the storage control circuit 1492 correspond to the above-described flip-flop 311 and the storage control circuit 321, respectively.
- the storage element 182 and the storage control circuit 192 correspond to the above-described flip-flop 312 and storage control circuit 322, respectively.
- the congestion possibility detection module 101 is connected between the register 1472 and the register 172, and the handshake switching module 104 is connected between the register 171 and the register 1472.
- the effect of the second embodiment is the same as the effect of the first embodiment.
- FIG. 15 is a block diagram showing a configuration of an asynchronous logic circuit 1500 according to the third embodiment of the present invention.
- the third embodiment descriptions overlapping with those in the first embodiment are omitted.
- the second transfer destination described above represents the data discard module 199.
- the data discard module 199 discards the data stored in the storage element 181 of the register 171 and discards the response signal Ae “. 1 ′′ (data discard completion notification) is transmitted to the handshake switching module 104.
- the data discard request signal Re “1” data discard request
- Ae “. 1 ′′ data discard completion notification
- the second transfer destination described above may be a second register different from the transmission destination register 172 (first register).
- the asynchronous logic circuit 1500 according to the third embodiment of the present invention is connected to a register 1599 that is a second register, instead of the data discard module 199.
- the register 1599 includes a memory element 1583 and a memory control circuit 1593.
- the register 1599 stores the data stored in the register 171 in the storage element 1583 in response to the data discard request signal Re “1” (data discard request) from the handshake switching module 104. At this time, the register 1599 outputs a discard response signal Ae indicating a data discard completion notification to the handshake switching module 104. In this case, the value of the discard response signal Ae indicates “1”, and the data discard completion notification indicates that the data stored in the register 171 has been transferred to another data transfer path.
- the transmission source register changes the transmission destination register (register 172) as the first transfer destination.
- the data transfer path is congested by continuing the handshake between the transmission source register and the first transfer destination so that the data is transferred, the data stored in the transmission source register is transferred to the second transfer.
- the handshake between the transmission source register and the second transfer destination is switched so that the data is transferred first.
- the second transfer destination is the register 1599, the data is transferred to the register 1599.
- the congestion of the data transfer path is eliminated, the handshake between the transmission source register and the first transfer destination is restored so that the data is transferred from the transmission source register to the first transfer destination. In this manner, normal data transfer and data transfer during congestion can be switched without violating the handshake protocol. Thereby, communication capacity can be used effectively.
- the present invention can be applied to applications such as a circuit for transferring data between cores (functional blocks) such as a processor and an arithmetic circuit.
- FIG. 16 shows a configuration of an asynchronous inter-core connection circuit 1800 when the asynchronous logic circuit 100 of FIG. 5 is applied to the asynchronous inter-core connection circuit 500 of FIG.
- the asynchronous inter-core connection circuit 500 when the data 591 to 594 is transferred from the master A501 to the slave A502 and the data 581 to 583 is transferred from the master B503 to the slave B504, the latter is performed. Occupies the asynchronous arbitration circuit 512. Therefore, the data 591 to 594 are stopped immediately before the asynchronous arbitration circuit 512. Since transfer of the data 591 to 594 does not proceed, the master A 501 cannot perform the next transfer.
- the asynchronous inter-core connection circuit 1800 includes the asynchronous inter-core connection circuit 500, the asynchronous logic circuit 100 connected immediately before the asynchronous arbitration circuit 512 of the asynchronous inter-core connection circuit 500, and a data discard module. 199.
- the asynchronous inter-core connection circuit 1800 uses the asynchronous logic circuit 100 and the data discard module 199, so that even if the transfer of data 581 to 583 between the master B 503 and the slave B 504 is not completed, the master A 501 The transmitted data 1891 to 1894 can be discarded.
- the master A 501 can start transferring new data 1871 to 1873. Therefore, it is possible to effectively use the data transfer capacity.
- FIG. 17 shows a configuration of an asynchronous inter-core connection circuit 1600 when the asynchronous logic circuit 1500 of FIG. 15 is applied to the asynchronous inter-core connection circuit 500 of FIG.
- the asynchronous inter-core connection circuit 1600 includes the above-described asynchronous inter-core connection circuit 500, an asynchronous logic circuit 1500 connected immediately before the asynchronous arbitration circuit 512 of the asynchronous inter-core connection circuit 500, and a register 1599. ing.
- the asynchronous inter-core connection circuit 1600 further includes an asynchronous arbitration circuit 1631 provided between the master A 501 and the register 1599.
- the asynchronous inter-core connection circuit 1600 uses the asynchronous logic circuit 1500 to return data 1691 to 1694 from the congested portion of the asynchronous inter-core connection circuit 500 to the master A 501, and the master A 501 sends the data 1691 to 1694.
- the transfer paths are reset and the data 1691 to 1694 can reach the slave A 502 via the asynchronous branch circuit 511, the asynchronous arbitration circuit 522, the asynchronous branch circuit 523, and the asynchronous arbitration circuit 514. Become.
- FIG. 18 shows a configuration of an asynchronous inter-core connection circuit 1700 when the asynchronous logic circuit 1500 of FIG. 15 is applied to the asynchronous inter-core connection circuit 500 of FIG.
- the asynchronous inter-core connection circuit 1700 includes the above-described asynchronous inter-core connection circuit 500, an asynchronous logic circuit 1500 connected immediately before the asynchronous arbitration circuit 512 of the asynchronous inter-core connection circuit 500, and a register 1599. ing.
- the asynchronous inter-core connection circuit 1700 further includes an asynchronous arbitration circuit 1732 provided between the register 1599 and the asynchronous arbitration circuit 522.
- the asynchronous logic circuit 1500 is used to avoid congestion in the asynchronous arbitration circuit 512 and to bypass the congested portion of the asynchronous inter-core connection circuit 500 to the slave A 502.
- Data 1791 to 1794 can be detoured and transferred to a path that reaches slave A 502 via asynchronous arbitration circuit 1732, asynchronous arbitration circuit 522, asynchronous branch circuit 523, and asynchronous arbitration circuit 514. .
- the congestion possibility detection module 101 the congestion possibility duration measurement module 102, and the congestion determination module 103 are applied to the asynchronous inter-core connection circuit 500 of FIG.
- the result signal indicates a busy state
- a configuration is possible in which the data transfer path is traced back from the congested part to the transmission source and all registers on the path are reset.
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
送信元レジスタは、データを自己の記憶素子に記憶し、データ記憶要求を送信する。送信先レジスタは、データ記憶要求に応じて、送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、データ記憶完了通知を送信する。非同期式論理回路では、混雑可能性継続時間計測モジュールは、送信元レジスタからのデータ記憶要求に対して、送信先レジスタからデータ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する。ハンドシェイク切換モジュールは、混雑可能性継続時間が設定時間未満である場合、送信元レジスタからのデータ記憶要求を第1の転送先である送信先レジスタに出力し、混雑可能性継続時間が設定時間以上である場合、送信元レジスタからのデータ記憶要求を第2の転送先に出力する。これにより、非同期式論理回路では、通信容量を有効に利用することができる。
Description
本発明は、クロック信号の代わりに、ハンドシェイク信号を用いて回路内の記憶素子を制御する非同期式論理回路に関する。
ディジタル集積回路上に実装される回路素子や配線の微細化が進んでいる。これに伴い、集積回路には、プロセッサやメモリなどの機能ブロックが多数設けられる傾向にある。このような機能ブロックはコアと呼ばれる。図1は、集積回路200の構成を示している。集積回路200は、複数のコア201を備えている。例えば、複数のコア201をコア0、…、m-1、m、…、n-1(m、nは、0<m<nを満たす整数である)とした場合、コア0、…、m-1、m、…、n-1は、それぞれ、クロック信号CLK0、…、m-1、m、…、n-1に応じて、出力信号を出力する。この出力信号はデータ通信に用いられる。このように、集積回路200は、複数のコア201を備えている場合、コア201間でデータ通信を行うことができる。そのために、集積回路200は、更に、バスなどのコア間接続回路202を備えている。
バスなどのコア間接続回路を実現するために、クロック信号の立上りあるいは立下りの遷移(クロック・エッジ)により内部の素子を駆動する同期式論理回路が設計されてきた。しかし、設計容易性や消費電力の放射の低減といった効果から、大域非同期・局所同期(GALS:Globally Asynchronous、 Locally Synchronous)方式による非同期式論理回路の設計が注目されるようになっている。
非同期式論理回路とは、クロック信号の代わりに、ハンドシェイク信号を用いて回路内の記憶素子を制御する論理回路である。
非同期式論理回路でも、フリップ・フリップの間に組合せ回路を配置する構成は同期式論理回路と同様であるが、非同期式論理回路は、フリップ・フロップの記憶を制御する信号が同期式論理回路とは異なる。
一般的な同期式論理回路では、フリップ・フロップへの記憶制御信号として外部からのクロック信号が用いられる。この場合、全てのフリップ・フロップに対して信号が同着することを前提にフリップ・フロップと組合せ回路から成る部分が設計され、また全てのフリップ・フロップに対して信号が同着するようにクロック信号分配回路が設計される。
一方、一般的な非同期式論理回路では、フリップ・フロップへの記憶制御信号を生成するために記憶制御回路が用いられる。この場合、記憶制御回路間で一対のハンドシェイク信号(要求信号と応答信号)を通信することにより、フリップ・フロップの記憶タイミングが制御される。このハンドシェイク信号の通信制御手順は、ハンドシェイク・プロトコルと呼ばれる。
図2は、一般的な非同期式論理回路として、非同期式のレジスタの構成を示している。このレジスタは、記憶素子であるフリップ・フロップ(FF)と、記憶制御回路(LC)とを備えている。例えば、レジスタが3組存在する場合、3組のレジスタは、それぞれ、フリップ・フロップ310、311、312と、記憶制御回路320、321、322と、を備えている。記憶制御回路320、321、322は、それぞれ、フリップ・フロップ310、311、312に対応して設けられている。
図3は、図2の非同期式のレジスタの動作を示すタイミングチャートである。
(動作0)
まず、フリップ・フロップ310がデータd0を記憶(保持)しているものとする。また、記憶制御回路322は、データ入力準備完了を示す送信先応答信号A1を記憶制御回路321に送信したものとする。この場合、送信先応答信号A1の値は“0”である。いま、記憶制御回路320は、データ記憶要求を示す送信先要求信号R0を記憶制御回路321に出力したものとする。この場合、送信先要求信号R0の値は“1”である。
まず、フリップ・フロップ310がデータd0を記憶(保持)しているものとする。また、記憶制御回路322は、データ入力準備完了を示す送信先応答信号A1を記憶制御回路321に送信したものとする。この場合、送信先応答信号A1の値は“0”である。いま、記憶制御回路320は、データ記憶要求を示す送信先要求信号R0を記憶制御回路321に出力したものとする。この場合、送信先要求信号R0の値は“1”である。
(動作1)
記憶制御回路321は、記憶制御回路322からの送信先応答信号A1“0”(データ入力準備完了)を受信した後に、記憶制御回路320からの送信先要求信号R0“1”(データ記憶要求)を受信する。このとき、記憶制御回路321は、送信先要求信号R0“1”(データ記憶要求)に応じて、データ記憶命令を示す記憶制御信号L1をフリップ・フロップ311に出力する。この場合、記憶制御回路321は、記憶制御信号L1の値を“1”にする。フリップ・フロップ311は、記憶制御信号L1“1”(データ記憶命令)に応じて、フリップ・フロップ310に記憶されたデータd0を入力し、そのデータd0を記憶する。例えば、フリップ・フロップ311は、記憶制御信号L1の立上り遷移によりデータd0を記憶する。
記憶制御回路321は、記憶制御回路322からの送信先応答信号A1“0”(データ入力準備完了)を受信した後に、記憶制御回路320からの送信先要求信号R0“1”(データ記憶要求)を受信する。このとき、記憶制御回路321は、送信先要求信号R0“1”(データ記憶要求)に応じて、データ記憶命令を示す記憶制御信号L1をフリップ・フロップ311に出力する。この場合、記憶制御回路321は、記憶制御信号L1の値を“1”にする。フリップ・フロップ311は、記憶制御信号L1“1”(データ記憶命令)に応じて、フリップ・フロップ310に記憶されたデータd0を入力し、そのデータd0を記憶する。例えば、フリップ・フロップ311は、記憶制御信号L1の立上り遷移によりデータd0を記憶する。
(動作2)
記憶制御回路321は、記憶制御信号L1“1”(データ記憶命令)を出力したとき、データ記憶完了通知を示す送信先応答信号A0を記憶制御回路320に出力し、データ記憶要求を示す送信先要求信号R1を記憶制御回路322に出力する。この場合、記憶制御回路321は、送信先応答信号A0の値を“1”にし、送信先要求信号R1の値を“1”にする。
記憶制御回路321は、記憶制御信号L1“1”(データ記憶命令)を出力したとき、データ記憶完了通知を示す送信先応答信号A0を記憶制御回路320に出力し、データ記憶要求を示す送信先要求信号R1を記憶制御回路322に出力する。この場合、記憶制御回路321は、送信先応答信号A0の値を“1”にし、送信先要求信号R1の値を“1”にする。
(動作3)
記憶制御回路320は、記憶制御回路321からの送信先応答信号A0“1”(データ記憶完了通知)に応じて、データ入力準備要求を示す送信先要求信号R0を記憶制御回路321に出力する。この場合、記憶制御回路320は、送信先要求信号R0の値を“0”にする。
記憶制御回路320は、記憶制御回路321からの送信先応答信号A0“1”(データ記憶完了通知)に応じて、データ入力準備要求を示す送信先要求信号R0を記憶制御回路321に出力する。この場合、記憶制御回路320は、送信先要求信号R0の値を“0”にする。
(動作4)
記憶制御回路322は、記憶制御回路321からの送信先要求信号R1“1”(データ記憶要求)に応じて、データ記憶命令を示す記憶制御信号L2をフリップ・フロップ312に出力する。この場合、記憶制御回路322は、記憶制御信号L2の値を“1”にする。フリップ・フロップ312は、記憶制御信号L2“1”(データ記憶命令)に応じて、フリップ・フロップ311に記憶されたデータd0を入力し、そのデータd0を記憶する。記憶制御回路322は、記憶制御信号L2“1”(データ記憶命令)を出力した後、データ記憶完了通知を示す送信先応答信号A1を記憶制御回路321に出力し、データ記憶要求を示す要求信号を後段(図示しない)に出力する。この場合、記憶制御回路322は、送信先応答信号A1の値を“1”にし、上記の要求信号の値を“1”にする。
記憶制御回路322は、記憶制御回路321からの送信先要求信号R1“1”(データ記憶要求)に応じて、データ記憶命令を示す記憶制御信号L2をフリップ・フロップ312に出力する。この場合、記憶制御回路322は、記憶制御信号L2の値を“1”にする。フリップ・フロップ312は、記憶制御信号L2“1”(データ記憶命令)に応じて、フリップ・フロップ311に記憶されたデータd0を入力し、そのデータd0を記憶する。記憶制御回路322は、記憶制御信号L2“1”(データ記憶命令)を出力した後、データ記憶完了通知を示す送信先応答信号A1を記憶制御回路321に出力し、データ記憶要求を示す要求信号を後段(図示しない)に出力する。この場合、記憶制御回路322は、送信先応答信号A1の値を“1”にし、上記の要求信号の値を“1”にする。
(動作5)
記憶制御回路321は、記憶制御回路322からの送信先応答信号A0“1”(データ記憶完了通知)に応じて、データ入力準備要求を示す送信先要求信号R1を記憶制御回路322に出力する。この場合、記憶制御回路321は、送信先要求信号R1の値を“0”にする。記憶制御回路321は、記憶制御回路320からの送信先要求信号R0“0”(データ入力準備要求)に応じて、データ入力準備命令を示す記憶制御信号L1をフリップ・フロップ311に出力する。この場合、記憶制御回路321は、記憶制御信号L1の値を“0”にする。フリップ・フロップ311は、記憶制御信号L1“0”(データ入力準備命令)に応じて、次のデータに対する準備を行う。記憶制御回路321は、記憶制御信号L1“0”(データ入力準備命令)を出力したとき、データ入力準備完了を示す送信先応答信号A0を記憶制御回路320に出力し、データ入力準備要求を示す送信先要求信号R1を記憶制御回路322に出力する。この場合、記憶制御回路321は、送信先応答信号A0の値を“0”にし、送信先要求信号R1の値を“0”にする。
記憶制御回路321は、記憶制御回路322からの送信先応答信号A0“1”(データ記憶完了通知)に応じて、データ入力準備要求を示す送信先要求信号R1を記憶制御回路322に出力する。この場合、記憶制御回路321は、送信先要求信号R1の値を“0”にする。記憶制御回路321は、記憶制御回路320からの送信先要求信号R0“0”(データ入力準備要求)に応じて、データ入力準備命令を示す記憶制御信号L1をフリップ・フロップ311に出力する。この場合、記憶制御回路321は、記憶制御信号L1の値を“0”にする。フリップ・フロップ311は、記憶制御信号L1“0”(データ入力準備命令)に応じて、次のデータに対する準備を行う。記憶制御回路321は、記憶制御信号L1“0”(データ入力準備命令)を出力したとき、データ入力準備完了を示す送信先応答信号A0を記憶制御回路320に出力し、データ入力準備要求を示す送信先要求信号R1を記憶制御回路322に出力する。この場合、記憶制御回路321は、送信先応答信号A0の値を“0”にし、送信先要求信号R1の値を“0”にする。
(動作6)
記憶制御回路320は、記憶制御回路321からの送信先応答信号A0“0”(データ入力準備完了)を受信した後に、前段(図示しない)からの要求信号“1”(データ記憶要求)を受信する。このとき、記憶制御回路320は、要求信号“1”(データ記憶要求)に応じて、データ記憶命令を示す記憶制御信号L0をフリップ・フロップ310に出力する。この場合、記憶制御回路320は、記憶制御信号L0の値を“1”にする(図示しない)。フリップ・フロップ310は、記憶制御信号L0“1”(データ記憶命令)に応じて、次のデータd1を入力し、そのデータd1を記憶する。記憶制御回路322は、記憶制御回路321からの送信先要求信号R1“0”(データ入力準備要求)に応じて、データ入力準備命令を示す記憶制御信号L2をフリップ・フロップ312に出力する。この場合、記憶制御回路322は、記憶制御信号L2の値を“0”にする。フリップ・フロップ312は、記憶制御信号L2“0”(データ入力準備命令)に応じて、次のデータに対する準備を行う。
記憶制御回路320は、記憶制御回路321からの送信先応答信号A0“0”(データ入力準備完了)を受信した後に、前段(図示しない)からの要求信号“1”(データ記憶要求)を受信する。このとき、記憶制御回路320は、要求信号“1”(データ記憶要求)に応じて、データ記憶命令を示す記憶制御信号L0をフリップ・フロップ310に出力する。この場合、記憶制御回路320は、記憶制御信号L0の値を“1”にする(図示しない)。フリップ・フロップ310は、記憶制御信号L0“1”(データ記憶命令)に応じて、次のデータd1を入力し、そのデータd1を記憶する。記憶制御回路322は、記憶制御回路321からの送信先要求信号R1“0”(データ入力準備要求)に応じて、データ入力準備命令を示す記憶制御信号L2をフリップ・フロップ312に出力する。この場合、記憶制御回路322は、記憶制御信号L2の値を“0”にする。フリップ・フロップ312は、記憶制御信号L2“0”(データ入力準備命令)に応じて、次のデータに対する準備を行う。
(動作7)
データd1に対しても、上述の(動作2)~(動作5)と同じ手順で、転送が行われる。図3では、各々の信号が周期的に遷移しているが、非同期式のレジスタは上述の(動作1)~(動作7)のいずれで遅れが生じても手順に従うように動作する。
データd1に対しても、上述の(動作2)~(動作5)と同じ手順で、転送が行われる。図3では、各々の信号が周期的に遷移しているが、非同期式のレジスタは上述の(動作1)~(動作7)のいずれで遅れが生じても手順に従うように動作する。
非同期式のコア間接続回路を用いる場合、以下の利点が挙げられる。
(利点1)
異なる機能ブロックの間でクロック同期をとる必要がないため、クロック分配範囲を小さく限定できる。
異なる機能ブロックの間でクロック同期をとる必要がないため、クロック分配範囲を小さく限定できる。
(利点2)
個々の機能ブロックのクロック周波数を自由に且つ動的に設定することが可能となるため、クロック周波数を機能ブロックが所定の動作を実現する必要最低限に低減できる。
個々の機能ブロックのクロック周波数を自由に且つ動的に設定することが可能となるため、クロック周波数を機能ブロックが所定の動作を実現する必要最低限に低減できる。
(利点3)
クロック周波数を低減するとき、回路遅延を大きくすることができるため、電源電圧を下げることが可能となる。
クロック周波数を低減するとき、回路遅延を大きくすることができるため、電源電圧を下げることが可能となる。
(利点4)
消費電力は電源電圧の2乗とクロック周波数の積に比例するため、機能ブロック間のコア間接続回路を非同期式とすることによって、集積回路の消費電力を大きく低減することが可能となる。
消費電力は電源電圧の2乗とクロック周波数の積に比例するため、機能ブロック間のコア間接続回路を非同期式とすることによって、集積回路の消費電力を大きく低減することが可能となる。
(利点5)
同期式コアの駆動タイミングを時間的に分散させることができるため、電力と電磁波放射を低減することも可能となる。同期式コアはクロック信号の立上りあるいは立下りの遷移(クロック・エッジ)で駆動するため、クロック・エッジの直後に大きな電流変化がある。一方、コア間接続回路として非同期式のレジスタを用いると、コア毎に駆動タイミングが異なるため、集積回路全体での電流を平準化できる。その結果、最大時の電力と電流変化で誘導される電磁波放射が低減される。
同期式コアの駆動タイミングを時間的に分散させることができるため、電力と電磁波放射を低減することも可能となる。同期式コアはクロック信号の立上りあるいは立下りの遷移(クロック・エッジ)で駆動するため、クロック・エッジの直後に大きな電流変化がある。一方、コア間接続回路として非同期式のレジスタを用いると、コア毎に駆動タイミングが異なるため、集積回路全体での電流を平準化できる。その結果、最大時の電力と電流変化で誘導される電磁波放射が低減される。
コア間接続回路を用いた集積回路の設計では、データ通信を要求する通信要求を行う側のコアはマスタと呼ばれ、マスタからの通信要求に呼応して動作するコアはスレーブと呼ばれる。
マスタが複数存在する場合、コア間接続回路は、マスタ間で調停を行って優先度付けを行い、その優先度に従い順番に複数のマスタからの通信要求を処理する。コア間接続回路は、多数のコアを接続するために、調停による処理を複数の箇所で行うように構成される。この場合、コア間接続回路は、通信経路上の最初の調停箇所で優先権を与えられたマスタが、通信経路上の次の調停箇所までデータを送り、通信系路上の各調停箇所で通信要求と調停とデータ転送を繰り返して目的地のスレーブまで転送を行うように構成される。また、コア間接続回路の通信路のネットワーク形状(トポロジ)は、マスタとスレーブの対の一部ないし全部において通信経路が複数存在するように構成されることがある。マスタ・スレーブ対で複数の通信経路が存在する場合、コア間接続回路は、マスタが予め経路を決定するように構成されたり、接続回路が通信状況に適応して内部で動的に経路を決定するように構成される。
上述のように、コア間接続回路は、内部に複数の調停箇所を有している。そこで、複数対のマスタとスレーブがデータ転送を行う際に転送経路上に調停箇所を起点とする共通箇所が存在して、各データ転送の要求転送速度の和が共通箇所での最大転送速度を超えて混雑が発生しているものとする。この場合、共通箇所の起点である調停箇所で低い優先度を与えられた通信要求が長時間待たされているにもかかわらず、待たされている通信要求のスレーブに対して他のマスタからの通信要求が無く、コア間接続回路の通信容量が無駄にされてしまうことがある。
図4は、図1の集積回路200内の非同期式コア間接続回路の一例として、非同期式コア間接続回路500の構成を示している。
非同期式コア間接続回路500には、4つ以上のコアが接続されている。例えば、簡略化のため、非同期式コア間接続回路500には、同期式マスタ側コア501、同期式スレーブ側コア502、同期式マスタ側コア503、同期式スレーブ側コア504の4つのコアが接続されているものとする。図4では、「同期式マスタ側コア」、「同期式スレーブ側コア」、「同期式マスタ側コア」、「同期式スレーブ側コア」をそれぞれ「マスタA」、「スレーブA」、「マスタB」、「スレーブB」と記載している。以降、同期式マスタ側コア501、同期式スレーブ側コア502、同期式マスタ側コア503、同期式スレーブ側コア504をそれぞれマスタA501、スレーブA502、マスタB503、スレーブB504と称する。
非同期式コア間接続回路500は、上述の非同期式のレジスタと、非同期式分岐回路511、513、523と、非同期式調停回路512、514、522と、を備えている。これらは、非特許文献1に記載されているものが用いられているものとする。また、マスタA501、スレーブA502、マスタB503、スレーブB504、非同期式分岐回路511、513、523及び、非同期式調停回路512、522、524の間のデータ転送は、上述の非同期式のレジスタによって行われているものとする。
非同期式コア間接続回路500に対して、マスタA501がスレーブA502へのデータ列591~594のデータ転送要求を行い、マスタB503がスレーブB504へのデータ列581~583のデータ転送要求を行っているものとする。ここで、マスタA501が、非同期式分岐回路511~非同期式調停回路512~非同期式分岐回路513~非同期式調停回路514~スレーブA503と経路設定を行い、マスタB503が、非同期式調停回路512~非同期式分岐回路513~スレーブB504と経路設定を行うものとする。つまり、設定されたデータ転送経路は、非同期式調停回路512~非同期式分岐回路513を共有部分として持つものとする。
このとき、データ列581~583のデータ転送要求が先着したものとすると、マスタB503が指定する長さのデータ列が全て通過するまで共有部分がそのデータ転送要求に占拠されてしまう。このため、データ列591~594の転送要求が上記の共有部分で転送されずに直前で待たされることとなる。データ列581~583の転送要求が更に続き、マスタB503から続々と出力されるものとすると、データ列591~594の転送処理待ち時間が非常に長くなる。ところが、非同期式コア間接続回路500においては、マスタA501からスレーブA502へのデータ列591~594の転送経路としては、非同期式調停回路512と非同期式分岐回路513を通らない経路、即ち、非同期式分岐回路511~非同期式調停回路522~非同期式分岐回路523~非同期式調停回路514~スレーブA503という経路が存在し、その経路の通信容量が無駄になっている。
データ転送や調停に関する技術を紹介する。
特許文献1には、データ転送制御装置が記載されている。データ転送制御装置は、データ転送命令を出力するCPUが接続されるCPUインターフェース部と、同期信号を処理する入出力手段が接続される同期信号インターフェース部と、非同期信号を処理する入出力手段が接続される非同期信号インターフェース部と、外部へメモリアクセス要求を送信するデータ送信手段と、外部からのメモリアクセス要求を受信するデータ受信手段と、メモリ制御インターフェース部とを備えている。メモリ制御インターフェース部は、CPUインターフェース部と、同期信号インターフェース部と、非同期信号インターフェース部と、データ受信手段からの入力を調停する調停手段と、メモリに接続され、調停手段による調停結果に従ってメモリとのアクセスを制御する。
特許文献2には、非同期通信プロトコルを有するネットワークオンチップにおけるデータ伝送方法が記載されている。このネットワークは1以上のノードと1以上のリソースを備え、各ノードには、1以上の入力制御装置に接続された1以上の入力と、1以上の出力制御装置に接続された1以上の出力とが設けられている。内部クロック無しで動作する少なくとも1つのノードが、同じ出力にルーティングされる2つのデータパケット間の転送階層を決定する。この階層の決定は、各データパケットに関連付けられた優先チャネル情報に基づいて行われる。この優先チャネル情報及びこのデータパケットは別のノード又はネットワークリソースから送出されたものである。優先チャネル情報は、非同期通信プロトコルに従って第1の種類の同期信号によって伝送される。
特許文献3には、システム・バス調停回路装置が記載されている。システム・バス調停回路装置は、データ処理装置システムにおけるシステム・バスの使用を調停する競合調停回路と、システム・バスの使用を要求する複数のデータ処理装置と、システム・バス調停回路とから成ることを特徴としている。システム・バス調停回路は、競合調停回路と複数のデータ処理装置との間に接続された使用要求信号線及び使用許可信号線上に配置され、複数のデータ処理装置からのシステム・バスの使用要求のうち最高優先度のものを選択し、該最高優先度の使用要求を発したデータ処理装置に対し使用許可を発するようにしている。
特許文献4には、同期データ転送装置が記載されている。同期データ転送装置は、コンピュータシステムに設けられている。コンピュータシステムは、非同期的に規定されたバスと、当該バスを介してデータ転送を行う1以上のマスタ装置と、バス要求を調停して、いずれか一つのマスタ装置にバス使用権を与える調停装置とからなる。同期データ転送装置は、同期的に転送されるべきデータの転送を行う。同期データ転送装置は、調停装置に対してバス要求を送信し、かつ、調停装置からバス使用権を取得するバス確保装置と、バスを介してデータ転送を行う複数の従マスタ装置とを備えている。バス確保装置は、調停装置からバス使用権を取得した際、複数の従マスタ装置に対して、それぞれ所定のタイミングで、転送を開始/停止するよう通知するアクセス通知手段を含んでいる。複数の従マスタ装置はそれぞれ、アクセス通知手段からの通知に応じて転送を開始/停止させるアクセス制御手段を含んでいる。
特許文献5には、バスアービタ制御回路が記載されている。バスアービタ制御回路は、共有バス上に接続されたバスマスタからバスを使用するバスリクエストを調停しバスマスタからのバスリクエストが皆無になるバスのフローティング状態を回避する。バスアービタ制御回路は、バスリクエストレジスタと、バスアービタ回路と、バスグラントレジスタと、ホールド制御回路と、グラントデコーダと、を備えることを特徴としている。バスリクエストレジスタは、バスマスタからのバス使用要求であるバスリクエスト信号を受け付ける。バスアービタ回路は、バスリクエストレジスタを監視し受け付けられたバスリクエスト信号の優先を調停し調停結果を通知する。バスグラントレジスタは、通知された調停結果を保持する。ホールド制御回路は、バスリクエストレジスタを監視しバスリクエスト信号の有無によりバスグラントレジスタに調停結果の解除またはホールドを指示する。グラントデコーダは、バスグラントレジスタの調停結果に該当するバスマスタにバスの使用を許可するグラント信号を通知する。
特許文献6には、競合調停装置が記載されている。競合調停装置は、複数のデバイスと、パルス生成回路と、使用許諾禁止回路と、制御回路とを備えている。複数のデバイスは、コンピュータの所定の資源を利用する際に資源の使用を希望する使用希望信号をそれぞれ出力すると共に、各使用希望信号に基づき資源の使用を保証する使用許諾信号が外部からそれぞれ与えられると、使用許諾信号に応答して使用確認信号をそれぞれ出力する。パルス生成回路は、複数の出力端子、及び各出力端子に一定のパルス幅を持つ使用許諾パルスをそれぞれ出力する複数の部分パルス生成回路を有し、各使用許諾パルスを各出力端子に順次出力する。使用許諾禁止回路は、資源の使用を希望する複数のデバイスからの複数の使用確認信号を受けて、一つのデバイスが使用確認信号を有効にしている間は禁止信号の出力を有効にし、かつ、複数のデバイスが全て使用確認信号の出力を無効にしている間は禁止信号の出力を無効にする。制御回路は、複数の使用希望信号、複数の使用許諾パルス、及び禁止信号を入力し、デバイスに与える使用許諾信号を出力する。制御回路は、資源の使用を現に行っているデバイスに対して、使用希望信号が有効の間は使用許諾信号を有効にし、かつ、禁止信号を無視する。制御回路は、使用希望信号が無効になったときは使用許諾信号を無効にし、かつ、使用確認信号の無効を受けて禁止信号を有効にする制御を行う。制御回路は、資源の使用を現に行っていないデバイスに対して、使用希望信号が有効で、かつ、使用許諾パルスが入力されているときにのみ使用許諾信号を有効にし、かつ、使用確認信号の有効を受けて禁止信号を無視する制御を行うことを特徴としている。
特許文献7には、データ転送装置が記載されている。データ転送装置は、データ転送路と、データ転送制御回路と、データ停滞検出回路とを備えている。データ転送路は、データロード信号入力と、データホールド信号入力と、1以上のデータ入力と、データ出力とを有すると共に各段を構成するスタティック型並列データラッチ回路を複数縦列接続してなる。データ転送制御回路は、データ転送路の各段に対応して設けられている。データ転送制御回路は、自段に有意なデータが存在しない場合には前段から受信したデータ転送要求信号に呼応してデータロード信号を非活性化して前段からの入力データを確定させると共に前段に対してデータ受理信号を送信して有意なデータを保持している状態になる。データ転送制御回路は、次段に対してデータを出力しつつデータ転送要求信号を送信した後に次段から入力されるデータ受理信号に呼応してデータロード信号を活性化して有意なデータを保持しない状態に復帰する。データ転送制御回路は、自段に有意なデータが存在する場合には前段からのデータ転送要求信号の有無には拘わらずにデータロード信号を非活性状態に維持して前段へのデータ受理信号を送信しないことにより当該入力データを保持し続ける。データ停滞検出回路は、最終段のデータ転送制御回路から出力されるデータ転送要求信号の状態に基づいてデータ転送路上でのデータの停滞を検出する。各データ転送制御回路は、データ停滞検出回路がデータの停滞を検出している場合は自段のデータラッチ回路が有意なデータを保持している間はデータホールド信号を活性化することによりスタティックなデータラッチの制御を行う。各データ転送制御回路は、データ停滞検出回路がデータの停滞を検出していない場合は自段のデータラッチ回路が有意なデータを保持していてもデータホールド信号を非活性状態に維持することによりスタティックなデータラッチの制御を行わないようにしていることを特徴としている。
特許文献8には、パルス発生回路が記載されている。パルス発生回路は、パルス発生回路でパルスを発生させるか発生させないかを決定する情報を有するパターンデータのなかから、パルスが発生されない周期を検出し、該パルスが発生されない周期にダミーパルスを発生させるダミーパルス制御回路を有することを特徴としている。
特許文献9には、コンピュータ装置が記載されている。コンピュータ装置は、通信チャンネルと、受信インターフェースと、を含んでいる。受信インターフェースは、通信チャンネルからアクセス可能な大容量記憶デバイスと、通信チャンネルに接続され、それぞれ第1と第2のクロックを発生してその発生されたクロックを他のデバイスに与える、第1及び第2のデバイスと、そして通信チャンネルによって第2のデバイスからのデータを受信しそして該受信データを第1のクロックと同期化する。
Jens Sparso、Steve Furber著「Principles of Asynchronous Circuit Design」、Kluwer Academic Publishers、2001年12月31日、pp.76-79
上述した非同期式論理回路では通信容量を有効に利用できないという課題がある。従って、本発明の目的は、通信容量を有効に利用することができる非同期式論理回路を提供することにある。
本発明の非同期式論理回路は、非同期式のレジスタに接続され、混雑可能性継続時間計測モジュールと、ハンドシェイク切換モジュールと、を具備している。非同期式のレジスタは、送信元レジスタと送信先レジスタとを含んでいる。送信元レジスタは、データを自己の記憶素子に記憶し、データ記憶要求を送信する。送信先レジスタは、データ記憶要求に応じて、送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する。混雑可能性継続時間計測モジュールは、送信元レジスタからのデータ記憶要求に対して、送信先レジスタからデータ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する。ハンドシェイク切換モジュールは、混雑可能性継続時間が設定時間未満である場合、送信元レジスタからのデータ記憶要求を第1の転送先である送信先レジスタに出力し、混雑可能性継続時間が設定時間以上である場合、送信元レジスタからのデータ記憶要求を第2の転送先に出力する。
本発明の非同期式論理回路によれば、データ転送経路が混雑していない場合、送信元レジスタから第1の転送先である送信先レジスタにデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクを継続させて、データ転送経路が混雑している場合、送信元レジスタに記憶されたデータが第2転送先にデータが転送されるように、送信元レジスタと第2の転送先との間のハンドシェイクに切り替える。データ転送経路の混雑が解消された場合、送信元レジスタから第1の転送先にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
上記発明の目的、効果、特徴は、添付される図面と連携して実施の形態の記述から、より明らかになる。
以下に添付図面を参照して、本発明の実施形態による非同期式論理回路について詳細に説明する。
(第1実施形態)
[構成]
図5は、本発明の第1実施形態による非同期式論理回路100の構成を示すブロック図である。
[構成]
図5は、本発明の第1実施形態による非同期式論理回路100の構成を示すブロック図である。
本発明の第1実施形態による非同期式論理回路100は、非同期式コア間接続回路の非同期式のレジスタであるレジスタ171とレジスタ172の間に接続されている。レジスタ171は、記憶素子181と記憶制御回路191とを備えている。レジスタ172は、記憶素子182と記憶制御回路192とを備えている。非同期式のレジスタが、前述した非同期式コア間接続回路500(図4参照)の非同期式のレジスタである場合、例えば、記憶素子181、記憶制御回路191は、それぞれ、前述のフリップ・フロップ310、記憶制御回路320に対応する。記憶素子182、記憶制御回路192は、それぞれ、前述のフリップ・フロップ311、記憶制御回路321に対応する。
レジスタ171の記憶制御回路191は、データを記憶素子181に記憶し、データ記憶要求を示す送信元要求信号Riをレジスタ172に送信する。送信元要求信号Riが送信先要求信号Roとして送信され、この送信先要求信号Roがデータ記憶要求を示している。この場合、レジスタ172の記憶制御回路192は、送信先要求信号Ro(データ記憶要求)に応じて、レジスタ171の記憶素子181に記憶されたデータを記憶素子182に記憶する。記憶制御回路192は、データ記憶完了通知を示す送信先応答信号Aoをレジスタ171に送信する。データ記憶完了通知は、記憶素子182にデータを記憶したことを表している。
本発明の第1実施形態による非同期式論理回路100は、データ破棄モジュール199に接続されている。データ破棄モジュール199は、送信側レジスタ171に残存しているデータを破棄する。
本発明の第1実施形態による非同期式論理回路100は、混雑可能性検出モジュール101と、混雑可能性継続時間計測モジュール102と、混雑判定モジュール103と、ハンドシェイク切換モジュール104と、を具備している。
混雑可能性検出モジュール101は、ハンドシェイク切換モジュール104からの送信先要求信号Roと、レジスタ172からの送信先応答信号Aoとを監視する。
ここで、データ記憶要求に対して、データ記憶完了通知が送信されていない。即ち、ハンドシェイク切換モジュール104からの送信先要求信号Roがデータ記憶要求を示しているのに対して、レジスタ172からの送信先応答信号Aoがデータ記憶完了通知を示していない。この場合、混雑可能性検出モジュール101は、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性があることを示す混雑可能性信号Pcを混雑可能性継続時間計測モジュール102に出力する。
一方、データ記憶要求に対して、データ記憶完了通知が送信される。即ち、ハンドシェイク切換モジュール104からの送信先要求信号Roがデータ記憶要求を示しているのに対して、レジスタ172からの送信先応答信号Aoがデータ記憶完了通知を示している。この場合、混雑可能性検出モジュール101は、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性がないことを示す混雑可能性信号Pcを混雑可能性継続時間計測モジュール102に出力する。
混雑可能性継続時間計測モジュール102は、混雑可能性検出モジュール101からの混雑可能性信号Pcを受信する。
ここで、混雑可能性信号Pcが、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性があることを示している。この場合、混雑可能性継続時間計測モジュール102は、カウントする。このとき、混雑可能性継続時間計測モジュール102は、そのカウント値に応じた時間を混雑可能性継続時間Tcとし、混雑可能性継続時間Tcを示す信号を混雑判定モジュール103に出力する。
一方、混雑可能性信号Pcが、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性がないことを示している。この場合、混雑可能性継続時間計測モジュール102は、カウントを終了する。このとき、混雑可能性継続時間計測モジュール102は、混雑可能性継続時間Tcをリセットする。
混雑判定モジュール103は、混雑可能性継続時間Tcを示す信号を混雑可能性継続時間計測モジュール102から受信する。また、混雑判定モジュール103には、設定時間Tthが予め与えられる。混雑判定モジュール103は、混雑可能性継続時間Tcと、設定時間Tthとを比較する。
ここで、混雑可能性継続時間Tcが設定時間Tth未満である。この場合、混雑判定モジュール103は、レジスタ171からレジスタ172へのデータ転送経路が混雑していないことを示す混雑判定結果信号Cgをハンドシェイク切換モジュール104に出力する。
一方、混雑可能性継続時間Tcが設定時間Tth以上である。この場合、混雑判定モジュール103は、レジスタ171からレジスタ172へのデータ転送経路が混雑していることを示す混雑判定結果信号Cgをハンドシェイク切換モジュール104に出力する。
ハンドシェイク切換モジュール104は、レジスタ171からの送信元要求信号Riと、レジスタ172からの送信先応答信号Aoと、混雑判定モジュール103からの混雑判定結果信号Cgとを受信する。
ここで、混雑判定結果信号Cgが、レジスタ171からレジスタ172へのデータ転送経路が混雑していないことを示している。この場合、ハンドシェイク切換モジュール104は、レジスタ171からの送信元要求信号Ri(データ記憶要求)を送信先要求信号Ro(データ記憶要求)として、第1の転送先であるレジスタ172に出力する。
一方、混雑判定結果信号Cgが、レジスタ171からレジスタ172へのデータ転送経路が混雑していることを示している。この場合、ハンドシェイク切換モジュール104は、レジスタ171からの送信元要求信号Ri(データ記憶要求)に対して、データ破棄要求を示すデータ破棄要求信号Reを生成し、第2の転送先に出力する。
第1実施形態において、第2の転送先は、データ破棄モジュール199を表している。データ破棄モジュール199は、データ破棄要求信号Re(データ破棄要求)に応じて、レジスタ171に記憶されたデータを破棄する。データ破棄モジュール199は、データ破棄完了通知を示す破棄応答信号Aeをハンドシェイク切換モジュール104に出力する。データ破棄完了通知は、レジスタ171に記憶されたデータを破棄したことを表している。
ここで、データ記憶要求に対して、データ記憶完了通知が送信される。即ち、レジスタ171からの送信元要求信号Riがデータ記憶要求を示しているのに対して、レジスタ172からの送信先応答信号Aoがデータ記憶完了通知を示している。この場合、ハンドシェイク切換モジュール104は、レジスタ172へのデータ記憶要求の送信を終了する。即ち、データ記憶要求の取下げを示す送信先要求信号Roを出力する。また、ハンドシェイク切換モジュール104は、レジスタ172からの送信先応答信号Ao(データ記憶完了通知)を送信元応答信号Ai(データ記憶完了通知)として、レジスタ171に出力する。
一方、データ記憶完了通知に対して、データ記憶要求が送信される。即ち、レジスタ172からの送信先応答信号Ao(データ記憶完了通知)に対して、レジスタ171から送信元要求信号Ri(データ記憶要求)が送信される。この場合、ハンドシェイク切換モジュール104は、レジスタ171からの送信元要求信号Ri(データ記憶要求)に対して、データ破棄要求を示すデータ破棄要求信号Reを生成し、第2の転送先であるデータ破棄モジュール199に出力する。
[動作]
図6A、6Bは、本発明の第1実施形態による非同期式論理回路100の動作を示すフローチャートである。
図6A、6Bは、本発明の第1実施形態による非同期式論理回路100の動作を示すフローチャートである。
ここで、送信元要求信号Ri、送信先要求信号Ro、データ破棄要求信号Reは、“0”、“1”の2つの値で表現される。送信元要求信号Ri、送信先要求信号Roは、その値が“1”である場合、データ記憶要求を示し、その値が“0”である場合、データ記憶要求の取下げを示している。データ破棄要求信号Reは、その値が“1”である場合、データ破棄要求を示し、その値が“0”である場合、データ破棄要求の取下げを示している。
送信元応答信号Ai、送信先応答信号Ao、破棄応答信号Aeは、“0”、“1”の2つの値で表現される。送信元応答信号Ai、送信先応答信号Aoは、その値が“1”である場合、データ記憶完了通知を示し、その値が“0”である場合、データ記憶完了通知の取下げを示している。破棄応答信号Aeは、その値が“1”である場合、データ破棄完了通知を示し、その値が“0”である場合、データ破棄完了通知の取下げを示している。
混雑可能性信号Pcは、“0”、“1”の2つの値で表現される。混雑可能性信号Pcは、その値が“1”である場合、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性があることを示し、その値が“0”である場合、データ転送経路が混雑している可能性がないことを示している。
混雑判定結果信号Cgは、“0”、“1”の2つの値で表現される。混雑判定結果信号Cgは、その値が“1”である場合、データ転送経路が混雑していることを示し、その値が“0”である場合、データ転送経路が混雑していないことを示している。
混雑可能性継続時間Tc及び設定時間Tthは任意の実数で表現される。
また、図6A、6Bの条件分岐において、条件成立は「Y」、条件不成立は「N」と略記する。
まず、非同期式論理回路100は初期状態である。この場合、送信元要求信号Ri、送信元応答信号Ai、送信先要求信号Ro、送信先応答信号Ao、データ破棄要求信号Re、破棄応答信号Aeの値は“0”である。また、混雑可能性信号Pcの値は“0”である。また、混雑可能性継続時間Tcは“0”である。また、混雑判定結果信号Cgの値は“0”である。設定時間Tthとして、任意の値が与えられているものとする(ステップS900)。
レジスタ171の記憶制御回路191からハンドシェイク切換モジュール104に送信元要求信号Riが送信される(ステップS901で「N」)。ここで、送信元要求信号Riの値が“1”(Ri=1)であるものとする(ステップS901で「Y」)。この場合、ハンドシェイク切換モジュール104は、送信元要求信号Ri“1”(データ記憶要求)に応じて、その値が“1”である送信先要求信号Ro(Ro=1)をレジスタ172の記憶制御回路192に出力する(ステップS902)。
ハンドシェイク切換モジュール104からレジスタ172の記憶制御回路192に送信先要求信号Ro“1”(データ記憶要求)が送信され、レジスタ172の記憶制御回路192からハンドシェイク切換モジュール104に送信先応答信号Aoが送信される(ステップS903)。
例えば、送信先要求信号Ro“1”(データ記憶要求)に対して、送信先応答信号Aoの値が“0”のままである(ステップS903で「N」)。この場合、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性があるため、混雑可能性検出モジュール101は、その値が“1”である混雑可能性信号Pc(Pc=1)を混雑時間計測モジュール102に出力する。混雑時間計測モジュール102は、混雑可能性信号Pcの値が“1”である間、カウントし、カウント値に応じた時間を混雑可能性継続時間Tcとして混雑判定モジュール103に出力する(ステップS913)。
混雑判定モジュール103は、混雑可能性継続時間Tcが設定時間Tth以上であるか否かを判定する(ステップS914)。
判定の結果、混雑可能性継続時間Tcが設定時間Tth未満である。この場合、データ転送経路が混雑していない。このため、混雑判定モジュール103は、その値が“0”である混雑判定結果信号Cg(Cg=0)を出力したままである(ステップS914で「N」)。
その後、送信先要求信号Ro“1”(データ記憶要求)に対して、送信先応答信号Aoの値が“1”(データ記憶完了通知)になった場合(ステップS903で「Y」)、データ転送経路が混雑している可能性がなくなったため、混雑可能性検出モジュール101は、その値が“0”である混雑可能性信号Pc(Pc=0)を混雑時間計測モジュール102に出力する(ステップS911)。混雑時間計測モジュール102は、混雑可能性信号Pcの値が“0”であるため、カウントを終了し、混雑可能性継続時間Tcをリセットする。即ち、“0”にする(ステップS912)。
ハンドシェイク切換モジュール104は、レジスタ171とレジスタ172の間のハンドシェイクを継続するために、レジスタ172の記憶制御回路192からの送信先応答信号Ao“1”(データ記憶完了通知)に応じて、その値が“1”である送信元応答信号Ai(Ai=1)をレジスタ171の記憶制御回路191に出力し(ステップS904)、記憶制御回路191から送信元要求信号Riを受信する(ステップS905)。ここで、送信元要求信号Riの値が“0”(Ri=0)である(ステップS905で「Y」)。この場合、ハンドシェイク切換モジュール104は、送信元要求信号Ri“0”(データ記憶要求)に応じて、その値が“0”である送信先要求信号Ro(Ro=0)をレジスタ172の記憶制御回路192に出力し(ステップS906)、記憶制御回路192から送信先応答信号Aoを受信する(ステップS907)。ここで、送信先応答信号Aoの値が“0”(Ao=0)である(ステップS907で「Y」)。この場合、ハンドシェイク切換モジュール104は、送信先応答信号Ao“0”に応じて、その値が“0”である送信元応答信号Ai(Ai=0)をレジスタ171の記憶制御回路191に出力する(ステップS908)。その後、ステップS900以降が実行される。
一方、判定の結果、混雑可能性継続時間Tcが設定時間Tth以上であるものとする(ステップS903で「N」、S913、S914で「Y」)。この場合、データ転送経路が混雑している。このため、混雑判定モジュール103は、その値が“1”である混雑判定結果信号Cg(Cg=1)を出力する(ステップS919)。
ハンドシェイク切換モジュール104は、送信先要求信号Ro“1”(データ記憶要求)をレジスタ172に出力したままで、レジスタ171とデータ破棄モジュール199との間でハンドシェイクを行う。この場合、ハンドシェイク切換モジュール104は、混雑判定モジュール103からの混雑判定結果信号Cg“1”に応じて、その値が“1”であるデータ破棄要求信号Re(Re=1)をデータ破棄モジュール199に出力する(ステップS922)。ここで、データ破棄モジュール199は、その値が“0”である破棄応答信号Ae(Ae=0)をハンドシェイク切換モジュール104に送信している(ステップS923で「N」)。データ破棄モジュール199は、データ破棄要求信号Re“1”(データ破棄要求)に応じて、レジスタ171の記憶素子181に記憶されたデータを破棄し、破棄応答信号Aeの値を“1”(Ae=1)にする(ステップS923で「Y」)。
ハンドシェイク切換モジュール104は、破棄応答信号Ae“1”(データ破棄完了通知)に応じて、その値が“1”である送信元応答信号Ai(Ai=1)をレジスタ171の記憶制御回路191に出力する(ステップS924)。ここで、送信元要求信号Riの値が“1”のままである(ステップS925で「N」)。送信元応答信号Aiの値が“1”に対して、レジスタ171が送信元要求信号Riの値を“0”とするとき(ステップS925で「Y」)、ハンドシェイク切換モジュール104は、送信元要求信号Ri“0”に応じて、その値が“0”であるデータ破棄要求信号Re(Re=0)をデータ破棄モジュール199に出力する(ステップS926)。ここで、データ破棄モジュール199は、その値が“1”である破棄応答信号Ae(Ae=1)をハンドシェイク切換モジュール104に送信している(ステップS927で「N」)。データ破棄モジュール199は、データ破棄要求信号Re“0”に応じて、破棄応答信号Aeの値を“0”(Ae=0)にする(ステップS927で「Y」)。ハンドシェイク切換モジュール104は、破棄応答信号Ae“0”に応じて、その値が“0”である送信元応答信号Ai(Ai=0)をレジスタ171の記憶制御回路191に出力する(ステップS928)。
その後、レジスタ172からの送信先応答信号Aoの値が“0”のままであるときに(ステップS933で「N」)、レジスタ171からの送信元要求信号Riの値が“0”であるものとする(ステップS931で「N」)。この場合、ハンドシェイク切換モジュール104は、送信先応答信号Aoの値が“1”となるか、送信元要求信号Riの値が“1”となるまで待機する。
例えば、送信先応答信号Aoの値が“0”のままであるときに(ステップS933で「N」)、送信元要求信号Riの値が“1”(データ記憶要求)となったものとする(ステップS931で「Y」)。この場合、ハンドシェイク切換モジュール104は、送信元要求信号Ri“1”(データ記憶要求)に応じて、レジスタ171とデータ破棄モジュール199との間でのハンドシェイクを開始し、上述のステップS922~S928が実行される。
一方、レジスタ172の記憶制御回路192からの送信先応答信号Aoの値が“1”(データ記憶完了通知)となったものとする(ステップS933で「Y」)。この場合、ハンドシェイク切換モジュール104は、送信先応答信号Ao“1”(データ記憶完了通知)に応じて、レジスタ172への送信先要求信号Roの値を“0”にする(ステップS936)。
また、送信先応答信号Aoの値が“1”である場合、レジスタ171からレジスタ172へのデータ転送経路が混雑している可能性がないため、混雑可能性検出モジュール101は、混雑可能性信号Pcの値を“0”にする(ステップS941)。混雑可能性継続時間計測モジュール102は、混雑可能性信号Pcの値が“0”であるため、カウントを終了し、混雑可能性継続時間Tcをリセットする。即ち、“0”にする(ステップS942)。混雑判定モジュール103は、混雑可能性継続時間Tcがリセットされたことにより、混雑判定結果信号Cgの値を“0”にする(ステップS949)。
レジスタ172からの送信先応答信号Aoの値が“1”(データ記憶完了通知)であるときに(ステップS923で「N」)、レジスタ171からの送信元要求信号Riの値が“0”のままであるものとする(ステップS921で「N」)。この場合、ハンドシェイク切換モジュール104は、送信先応答信号Aoの値が“0”となるか、送信元要求信号Riの値が“1”となるまで待機する。
例えば、送信先応答信号Aoの値が“1”(データ記憶完了通知)であるときに(ステップS923で「N」)、送信元要求信号Riの値が“1”(データ記憶要求)となったものとする(ステップS921で「Y」)。この場合、ハンドシェイク切換モジュール104は、送信元要求信号Ri“1”(データ記憶要求)に応じて、レジスタ171とデータ破棄モジュール199との間でのハンドシェイクを開始し、上述のステップS922~S928が実行される。
一方、送信先応答信号Aoの値が“0”となったものとする(ステップS923で「Y」)。その後、ステップS900以降が実行される。
[効果]
本発明の第1実施形態による非同期式論理回路100によれば、データ転送経路が混雑していない場合、送信元レジスタ(レジスタ171)から第1の転送先である送信先レジスタ(レジスタ172)にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクを継続させて、データ転送経路が混雑している場合、送信元レジスタに記憶されたデータが第2転送先にデータが転送されるように、送信元レジスタと第2の転送先との間のハンドシェイクに切り替える。この場合、第2の転送先は、データ破棄モジュール199であるため、データは、データ破棄モジュール199により破棄される。データ転送経路の混雑が解消された場合、送信元レジスタから第1の転送先にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
本発明の第1実施形態による非同期式論理回路100によれば、データ転送経路が混雑していない場合、送信元レジスタ(レジスタ171)から第1の転送先である送信先レジスタ(レジスタ172)にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクを継続させて、データ転送経路が混雑している場合、送信元レジスタに記憶されたデータが第2転送先にデータが転送されるように、送信元レジスタと第2の転送先との間のハンドシェイクに切り替える。この場合、第2の転送先は、データ破棄モジュール199であるため、データは、データ破棄モジュール199により破棄される。データ転送経路の混雑が解消された場合、送信元レジスタから第1の転送先にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
[具体例]
次に、上述の構成について具体的に説明する。
次に、上述の構成について具体的に説明する。
図7は、混雑可能性検出モジュール101の具体的な構成を示している。
混雑可能性検出モジュール101では、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“1”、“0”である状態のみ、混雑可能性信号Pcの値が“1”となり、その他の状態では混雑可能性信号Pcの値が“0”となる。そのため、混雑可能性検出モジュール101は、ANDゲートとNOTゲートのみで構成されている。即ち、送信先応答信号Aoの信号レベルはNOTゲートにより反転され、ANDゲートの第1入力には送信先要求信号Roが供給され、ANDゲートの第2入力には、NOTゲートの出力が供給される。ANDゲートは、その出力信号として混雑可能性信号Pcを出力する。
図8は、混雑可能性継続時間計測モジュール102と混雑判定モジュール103の具体的な構成を示している。混雑可能性継続時間測定モジュール102は、局所クロック生成回路710と混雑可能性継続時間カウンタ720とを備えている。
局所クロック生成回路710は、局所クロックスイッチ回路711とNOTゲート712とを備えている。局所クロックスイッチ回路711は、NOTゲート711(a)と2入力NANDゲート711(b)、(c)とNOTゲート711(d)とを備えている。NOTゲート711(a)は、その入力に混雑可能性検出モジュール101の出力が接続され、NOTゲート711(a)には混雑可能性信号Pcが供給される。2入力NANDゲート711(b)は、その第1入力にNOTゲート711(a)の出力が接続され、その第2入力に2入力NANDゲート711(c)の出力が接続され、その出力に2入力NANDゲート711(c)の第1入力が接続されている。2入力NANDゲート711(c)は、その第2入力にNOTゲート712の出力が接続されている。NOTゲート711(d)は、その入力に2入力NANDゲート711(c)の出力が接続され、その出力信号として局所クロック信号LClkを出力する。
局所クロック生成回路710は、混雑可能性信号Pcの値が“1”であるときに発振して局所クロック信号LClkを出力し、混雑可能性信号Pcの値が“0”であるときに発振を停止する。混雑可能性信号Pcの値が“1”であるとき、NOTゲート711(a)の出力信号Pc_bの値が“0”となる。NANDゲート711(b)は、その第1入力に供給される出力信号Pc_bの値が“0”となるため、その第2入力に供給される出力信号LClk_bbの値に関わらず、その出力として出力信号Pc_bbの値を“1”にする。このとき、NANDゲート711(c)は、その第1入力に供給される出力信号Pc_bbの値が“1”となるため、NOTゲート712と等価の動作をしており、NANDゲート711(c)とNOTゲート711(d)とNOTゲート712は奇数個(3個)のNOTゲートからなるフィードバック・ループを構成しているのと等価の状態となる。そのため、混雑可能性信号Pcの値が“1”であるとき、局所クロック生成回路710は発振し、局所クロック信号LClkを出力する。
混雑可能性信号Pcの値が“1”であるときの局所クロックスイッチ回路711の動作として、混雑可能性信号Pcの値が“0”となる直前に混雑可能性信号Pcの値が“1”であったときの内部の信号状態を考える。この場合、局所クロックスイッチ回路711が発振しているので、局所クロック信号LClkの値は“0”の状態と“1”の状態のどちらも取りうる。
まず、局所クロックスイッチ回路711に供給される混雑可能性信号Pc、NOTゲート712の出力信号LClk_bの値がそれぞれ“1”、“0”であるときを考える。このとき、NANDゲート711(b)の入力信号Pc_b、LClk_bbの値がそれぞれ“0”、“1”、NANDゲート711(b)の出力信号Pc_bbの値が“1”となる。NANDゲート711(c)の入力信号LClk_b、Pc_bbの値がそれぞれ“0”、“1”、NANDゲート711(c)の出力信号LClk_bbの値が“1”となる。
ここで、混雑可能性信号Pcの値が“0”になったものとする。この場合、NANDゲート711(b)の入力信号Pc_b、LClk_bbの値がそれぞれ“1”、“1”、NANDゲート711(b)の出力信号Pc_bbの値が“0”となる。NANDゲート711(c)の入力信号LClk_b、Pc_bbの値がそれぞれ“0”、“0”、NANDゲート711(c)の出力信号LClk_bbの値が“1”となる。NOTゲート711(d)により局所クロック信号LClkの値が“0”となる。このため、NANDゲート711(b)の入力信号Pc_b、LClk_bbの値がそれぞれ“1”、“1”、NANDゲート711(b)の出力信号Pc_bbの値が“0”のままであり、NANDゲート711(c)の入力信号LClk_b、出力信号Pc_bbの値がそれぞれ“1”、“0”となる。一方、NANDゲート711(c)の出力信号LClk_bbの値が“1”のままで変化しておらず、それに伴い、局所クロック信号LClkもまた変化しない。
次に、局所クロックスイッチ回路711に供給される混雑可能性信号Pc、NOTゲート712の出力信号LClk_bの値がそれぞれ“1”、“1”であるときを考える。このとき、NANDゲート711(b)の入力信号Pc_b、LClk_bbがそれぞれ“0”、“0”、NANDゲート711(b)の出力信号Pc_bbの値が“1”となる。NANDゲート711(c)の入力信号LClk_b、Pc_bbの値がそれぞれ“1”、“1”、NANDゲート711(c)の出力信号LClk_bbの値が“0”となる。
ここで、混雑可能性信号Pcの値が“0”になったものとする。この場合、NANDゲート711(b)の入力信号Pc_b、LClk_bbの値がそれぞれ“1”、“0”となる。NANDゲート711(b)の出力信号Pc_bbの値が“1”、NANDゲート711(c)の入力信号LClk_b、Pc_bbの値がそれぞれ“1”、“1”、NANDゲート711(c)の出力信号LClk_bbの値が“0”のままである。また、NOTゲート711(d)により局所クロック信号LClkの値が“1”となる。このため、NANDゲート711(b)の入力信号Pc_b、LClk_bbの値がそれぞれ“1”、“1”、NANDゲート711(b)の出力信号Pc_bbの値が“0”となる。NANDゲート711(c)の入力信号LClk_b、Pc_bbの値がそれぞれ“0”、“0”、NANDゲート711(c)の出力信号LClk_bbの値が“1”となる。
更に、NOTゲート711(d)により局所クロック信号LClkの値が“0”となる。このため、NANDゲート711(b)の入力信号Pc_b、LClk_bbの値がそれぞれ“1”、“1”、NANDゲート711(b)の出力信号Pc_bbの値が“0”のままである。NANDゲート711(c)の入力信号LClk_b、Pc_bbの値がそれぞれ“1”、“0”となる。一方、NANDゲート711(c)の出力信号の状態はLClk_bbの値が“1”のままで変化しておらず、それに伴い、局所クロック信号LClkもまた変化しない。
以上のように、局所クロック生成回路710は、混雑可能性信号Pcの値が“0”となることにより、その時点での局所クロック信号LClkの状態に関わらず、局所クロック信号LClkの出力を停止する。
混雑可能性継続時間カウンタ720は、継続時間記憶回路721と加算器722とを備えている。継続時間記憶回路721は、その入力に加算器722の出力が接続され、その出力に加算器722の入力が接続されている。この継続時間記憶回路721はクロック端子とリセット端子付きのフリップ・フロップであり、そのクロック端子には局所クロック信号LClkが供給され、リセット端子には混雑可能性信号Pcが供給される。
混雑可能性信号Pcの値が“1”である。このとき、継続時間記憶回路721は、加算器722からのカウント値を保持(記憶)し、局所クロック生成回路710からの局所クロック信号LClkに応じて、加算器722に出力する。また、カウント値に応じた時間は、混雑可能性継続時間Tcを表す信号として混雑判定モジュール103に出力される。加算器722は、継続時間記憶回路721からのカウント値に対して1を加算して継続時間記憶回路721に出力する。このように、継続時間記憶回路721に記憶されるカウント値は、局所クロック信号LClkの立上りあるいは立下り遷移のたびに1が加算される。
混雑可能性信号Pcの値が“0”である。このとき、継続時間記憶回路721は、混雑可能性信号Pc“0”に応じて、カウント値(混雑可能性継続時間Tc)をリセットし、初期値の“0”に戻る。
このように、混雑可能性継続時間カウンタ720は、混雑の可能性のある状態ではその混雑可能性継続時間Tcを増やしていき、混雑の可能性のなくなったときに混雑可能性継続時間Tcを“0”にする。
混雑判定モジュール103は、比較器を備えている。
混雑判定モジュール103には、混雑可能性継続時間カウンタ720から混雑可能性継続時間Tcを表す信号が供給され、外部から設定時間Tthを表す信号が供給される。混雑判定モジュール103は、その出力として混雑判定結果信号Cgをハンドシェイク切換モジュール104に出力する。
混雑可能性継続時間Tcが設定時間Tth以上である(Tc≧Tth)。この場合、混雑判定モジュール103は、混雑判定結果信号Cgの値を“1”にする。
混雑可能性継続時間Tcが設定時間Tth未満である(Tc<Tth)。この場合、混雑判定モジュール103は、混雑判定結果信号Cgの値を“0”にする。
図9は、ハンドシェイク切換モジュール104の具体的な構成を示している。ハンドシェイク切換モジュール104は、2入力非対称型C素子801、808と、2入力非対称型C素子806と、3入力非対称型C素子802、805と、ANDゲート803と、ORゲート807と、マルチプレクサ(MUX)804とを備えている。
ORゲート807は、その第1入力にANDゲート803の出力である送信先要求信号Roが供給され、その第2入力にレジスタ172からの送信先応答信号Aoが供給され、その出力として出力信号を出力する。2入力非対称型C素子808は、その第1入力にレジスタ171からの送信元要求信号Riが供給され、その第2入力にマルチプレクサ804の出力である送信元応答信号Aiが供給され、その出力としてハンドシェイク実行中信号HSを出力する。3入力非対称型C素子805は、その第1入力に混雑判定モジュール103からの混雑判定結果信号Cgが供給され、その第2入力にハンドシェイク実行中信号HSが供給され、その第3入力にORゲート807の出力信号が供給され、その出力としてハンドシェイク先切換信号Swを出力する。
マルチプレクサ804は、3つの入力端子S、D0、D1と1つの出力端子とを有している。入力端子Sには、ハンドシェイク先切換信号Swが供給され、入力端子D0には、送信先応答信号Aoが供給され、入力端子D1には、データ破棄モジュール199からの破棄応答信号Aeが供給される。マルチプレクサ804は、入力端子Sに供給されるハンドシェイク先切換信号Swの値が“0”である場合、入力端子D0に供給される送信先応答信号Aoを送信元応答信号Aiとして出力する。マルチプレクサ804は、入力端子Sに供給されるハンドシェイク先切換信号Swの値が“1”である場合、入力端子D1に供給される破棄応答信号Aeを送信元応答信号Aiとして出力する。
2入力非対称型C素子801は、その第1入力に送信元要求信号Riが供給され、その第2入力にハンドシェイク先切換信号Swが供給され、その出力として出力信号を出力する。3入力非対称型C素子802は、その第1入力に送信元要求信号Riが供給され、その第2入力にハンドシェイク先切換信号Swが反転されて供給され、その第3入力に送信先応答信号Aoが反転されて供給され、その出力として出力信号を出力する。ANDゲート803は、その第1入力に2入力非対称型C素子801の出力信号が供給され、その第2入力に3入力非対称型C素子802の出力信号が供給され、その出力として送信先要求信号Roを出力する。2入力非対称型C素子806は、その第1入力に送信元要求信号Riが供給され、その第2入力にハンドシェイク先切換信号Swが供給され、その出力として破棄要求信号Reをデータ破棄モジュール199に出力する。
上記のC素子とは、入力信号の待合せを行い、入力信号の状態が所定の条件を満たしたときに出力信号を遷移させ、入力信号の状態が所定の条件を満たしていないときに出力信号を維持する回路であり、入力信号数や待合せ条件によって複数の種類が存在する。
図10Aは、2入力非対称型C素子801、808である素子1001を示している。図10Bは、図10Aの論理回路1002による実現例を示している。図10Cは、図10Bの論理回路1002の動作を示す真理値表1003である。素子1001は、第1、2入力にそれぞれ入力信号A、Bが供給され、その出力として出力信号Yを出力する場合、ANDゲートとORゲートから成る論理回路1002により実現され、真理値表1003に示されるように動作する。
ORゲートは、その第1入力に入力信号Aが供給され、その第2入力にANDゲートの出力が供給され、その出力として出力信号Yを出力する。ANDゲートは、その第1入力に入力信号Bが供給され、その第2入力にORゲートの出力が供給される。ここで、出力信号YがフィードバックされてANDゲートへ入力されるため、ANDゲートの第2入力に供給される出力信号Yを入力信号Y(t-1)、ORゲートの出力信号Yを出力信号Y(t)と区別して表記する。
入力信号A、Bの値がそれぞれ“0”、“0”であるものとする。このとき、入力信号Y(t-1)の値に関わらず、入力信号Bの値が“0”であるため、ANDゲートの出力信号の値は“0”となる。入力信号AとANDゲートの出力信号との値が“0”となることにより、出力信号Y(t)の値が“0”となる。
入力信号A、Bの値がそれぞれ“0”、“1”であるものとする。このとき、入力信号Bの値が“1”であるため、ANDゲートの出力信号は入力信号Y(t-1)と等しい値となる。入力信号Aの値が“0”であるため、出力信号Y(t)は入力信号Y(t-1)と等しい値となる。つまり、論理回路1002は、入力信号A、Bの値がそれぞれ“0”、“1”であるとき、出力信号Yの状態を保持する。
入力信号A、Bの値がそれぞれ“1”、“0”又は“1”、“1”であるものとする。このとき、ANDゲートの出力信号の値に関わらず、入力信号Aの値が“1”となることにより、出力信号Y(t)の値が“1”となる。このため、出力信号Yの値が“1”となる。
図11Aは、2入力非対称型C素子806である素子1101を示している。図11Bは、図11Aの論理回路1102による実現例を示している。図11Cは、図11Bの論理回路1102の動作を示す真理値表1103である。素子1101は、第1、2入力にそれぞれ入力信号A、Bが供給され、その出力として出力信号Yを出力する場合、ANDゲートとORゲートから成る論理回路1102により実現され、真理値表1103に示されるように動作する。この場合、図11A~11Cにおける入力信号A、Bと出力信号Yは、動作を説明するために用いられ、図10A~10Cにおける信号とは異なる。
ANDゲートは、その第1入力に入力信号Aが供給され、その第2入力にORゲートの出力が供給され、その出力として出力信号Yを出力する。ORゲートは、その第1入力に入力信号Bが供給され、その第2入力にANDゲートの出力が供給される。ここで、出力信号YがフィードバックされてORゲートへ入力されるため、ORゲートの第2入力に供給される出力信号Yを入力信号Y(t-1)、ANDゲートの出力信号Yを出力信号Y(t)と区別して表記する。
入力信号A、Bの値がそれぞれ“0”、“0”又は“0”、“1”であるものとする。このとき、ORゲートの出力信号に関わらず、入力信号Aの値が“0”となることにより、出力信号Y(t)の値が“1”となる。
入力信号A、Bの値がそれぞれ“1”、“0”であるものとする。このとき、入力信号Bの値が“0”であるため、ORゲートの出力信号は入力信号Y(t-1)と等しい値となる。入力信号Aの値が“1”であるため、出力信号Y(t)は入力信号Y(t-1)と等しい値となる。つまり、論理回路1102は、入力信号A、Bの値がそれぞれ“1”、“0”であるとき、出力信号Yの状態を保持する。
入力信号A、Bの値がそれぞれ“1”、“1”であるものとする。このとき、入力信号Y(t-1)の値に関わらず、入力信号Bの値が“1”であるため、ORゲートの出力信号の値は“1”となる。入力信号AとORゲートの出力信号との値が“1”となることにより、出力信号Y(t)の値が“1”となる。
図12Aは、3入力非対称型C素子802、805である素子1210を示している。図12Bは、図12Aの論理回路1220による実現例を示している。図12Cは、図12Bの論理回路1220の動作を示す真理値表1230である。素子1210は、第1、2、3入力にそれぞれ入力信号A、B、Cが供給され、その出力として出力信号Yを出力する場合、3つのANDゲート1221~1223とORゲート1224から成る論理回路1220により実現され、真理値表1230に示されるように動作する。この場合、図12A~12Cにおける入力信号A、Bと出力信号Yは、動作を説明するために用いられ、図10A~10C、図11A~11Cにおける信号とは異なる。
ANDゲート1221は、その第1入力に入力信号Aが供給され、その第2入力に入力信号Bが供給される。ANDゲート1222は、その第1入力に入力信号Cが供給され、その第2入力にORゲート1224の出力が供給される。ANDゲート1223は、その第1入力に入力信号Bが供給され、その第2入力にORゲート1224の出力が供給される。ORゲート1224は、その第1入力にANDゲート1221の出力が供給され、その第2入力にANDゲート1222の出力が供給され、その第3入力にANDゲート1223の出力が供給され、その出力として出力信号Yを出力する。ここで、出力信号YがフィードバックされてANDゲート1222、1223へ入力されるため、ANDゲート1222、1223の第2入力に供給される出力信号Yを入力信号Y(t-1)、ORゲート1224の出力信号Yを出力信号Y(t)と区別して表記する。
入力信号A、B、Cの値がそれぞれ“0”、“0”、“0”又は“1”、“0”、“0”であるものとする。このとき、ANDゲート1221~1223全てについて入力信号の値が“0”となるため、出力信号の値が“0”となる。ORゲート1224の入力信号の値が全て“0”となることにより、出力信号Y(t)の値が“0”となる。
入力信号A、B、Cの値がそれぞれ“1”、“1”、“0”又は“1”、“1”、“1”であるものとする。このとき、入力信号A、Bの値がそれぞれ“1”、“1”となるため、ANDゲート1221の出力信号の値が“1”となる。ORゲート1224の第1入力に供給される信号の値が“1”となることにより、出力信号Y(t)の値が“1”となる。
入力信号A、B、Cの値がそれぞれ“0”、“0”、“1”と“0”、“1”、“0”と“0”、“1”、“1”と“1”、“0”、“1”のいずれかであるものとする。このとき、入力信号A、Bの一方あるいは双方の値が“0”となるため、ANDゲート1221の出力信号の値が“0”となる。ANDゲート1222は、入力信号C、Y(t-1)の一方あるいは双方の値が“1”となり、ANDゲート1223は、入力信号B、Y(t-1)の一方あるいは双方の値が“1”となることによって、ANDゲート1222、1223の出力信号は入力信号Y(t-1)と等しくなる。このため、ORゲート1224の出力信号Y(t)は入力信号Y(t-1)と等しくなる。つまり、論理回路1220は、入力信号A、B、Cの値がそれぞれ“0”、“0”、“1”と“0”、“1”、“0”と“0”、“1”、“1”と“1”、“0”、“1”のいずれかであるとき、出力信号Yの状態を保持する。
図8のハンドシェイク切換モジュール104は、図10A~10Cの2入力非対称型C素子801、808と図11A~11Cの2入力非対称型C素子と図12A~12Cの3入力非対称型C素子を用いることにより、ハンドシェイク・プロトコルに違反することなく、送信元レジスタ(レジスタ171)と送信先レジスタ(レジスタ172)とデータ破棄モジュール199の間でのハンドシェイクの切換を行うことが可能となる。
以下、ハンドシェイク切換モジュール104の内部の信号のうち、3入力非対称型C素子805の出力信号をハンドシェイク先切換信号Swと称し、2入力非対称型C素子808の出力信号をハンドシェイク実行中信号HSと称する。ハンドシェイク先切換信号Swは、その値が“0”である場合、ハンドシェイク先が送信先レジスタであることを示しており、その値が“1”である場合、ハンドシェイク先がデータ破棄モジュール199であることを示している。ハンドシェイク実行中信号HSは、その値が“0”である場合、送信元レジスタとのハンドシェイクが完了しており次のハンドシェイクを待機している状態を示しており、その値が“0”である場合、送信元レジスタとのハンドシェイクが実行中である状態を示している。
ハンドシェイク切換モジュール104の動作について詳細に説明する。
初期状態において、送信元要求信号Ri、送信元応答信号Ai、送信先要求信号Ro、送信先応答信号Ao、データ破棄要求信号Re、破棄応答信号Aeの値が“0”であり、ハンドシェイク実行中信号HSの値が“0”であり、ハンドシェイク先切換信号Swの値が“0”、混雑判定結果信号Cgの値が“0”である(図6AのステップS900)。以下に示す信号において、否定演算子の記号を「~」と表記し、論理和演算子の記号を「|」と表記する。
まず、送信元要求信号Riの値が“1”であるものとする(図6AのステップS901で「Y」)。このとき、2入力非対称型C素子808の第1、2入力に供給される信号、即ち、送信元要求信号Ri、送信元応答信号Aiの値がそれぞれ“1”、“0”となるため、2入力非対称型C素子808の出力であるハンドシェイク実行中信号HSの値が“1”となる。
2入力非対称型C素子801の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“0”となるため、2入力非対称型C素子801の出力信号の値が“1”となる。3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“1”、“1”、“1”となるため、3入力非対称型C素子802の出力信号の値が“1”となる。2入力非対称型C素子801、3入力非対称型802の出力信号の値が共に“1”となるため、ANDゲート803から出力される送信先要求信号Roの値が“1”となる(ステップS902)。
2入力非対称型C素子806の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“0”であるため、2入力非対称型C素子806の出力信号の値が“0”のまま保持され、データ破棄要求信号Reの値が“0”のままとなる。ここで、ORゲート807の第1、2入力に供給される、即ち、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“1”、“0”となるため、ORゲート807の出力信号の値が“1”となる。この場合、ORゲート807の出力信号は、送信先要求信号Roと送信先応答信号Aoとの論理和であるRo|Aoにより表される。また、3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“0”、“1”、“1”となる。この場合、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“0”のままとなる。
送信先要求信号Roの値が“1”になっても、送信先応答信号Aoの値が“0”のままである間は(ステップS903で「N」)、その間に、混雑可能性検出モジュール101が混雑可能性を検出して混雑可能性信号Pcの値を“1”にする(ステップS913)。一方、混雑可能性継続時間計測モジュール102で混雑可能性継続時間Tcを加算し、混雑判定モジュール103が設定時間Tth未満であると判定している間に(ステップS914)、送信先レジスタで混雑が起き、送信先応答信号Aoの値が“1”となった場合(ステップS903で「Y」)、混雑判定結果信号Cgの値が“0”のままとなる。その間に、混雑可能性検出モジュール101は、混雑可能性を検出しないため、混雑可能性信号Pcの値を“0”にして(ステップS911)、混雑可能性継続時間計測モジュール102は、混雑可能性継続時間Tcの値を“0”にリセットする(ステップS912)。
送信先応答信号Aoの値が“1”となることにより、3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“1”、“1”、“0”となる。この場合、3入力非対称型C素子802の出力信号の値が“1”のままであるため、ANDゲート803から出力される送信先要求信号Roの値が“1”のまま維持される。また、ハンドシェイク先切換信号Swの値が“0”のままであるため、マルチプレクサ804の出力である送信元応答信号Aiの値は、送信先応答信号Aoの値“1”と同じ“1”となる(ステップS904)。
送信元応答信号Aiの値が“1”となることにより、送信元レジスタにより送信先要求信号Riの値が“0”となる(ステップS905で「Y」)。このとき、2入力非対称型C素子801の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“0”、“0”となるため、2入力非対称型C素子801の出力信号の値が“0”となる。3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“0”、“1”、“0”となるが、3入力非対称型C素子802の出力信号の値が“1”のままとなる。このため、ANDゲート803から出力される送信先要求信号Roの値が“0”となる(ステップS906)。
また、2入力非対称型C素子808の第1、2入力に供給される信号、即ち、送信元要求信号Ri、送信元応答信号Aiの値がそれぞれ“0”、“1”と変化するが、2入力非対称型C素子808の出力であるハンドシェイク実行中信号HSの値が“1”のまま維持される。
送信先要求信号Roの値が“0”になることにより、送信先レジスタからの送信先応答信号Aoの値が“0”となる(ステップS907で「Y」)。このとき、ハンドシェイク先切換信号Swの値が“0”のままであるため、マルチプレクサ804の出力である送信元応答信号Aiの値は、送信先応答信号Aoの値“0”と同じ“0”となり(ステップS908)、初期状態へ戻る(ステップS900)。
以上のように、送信先レジスタで混雑が起こらなければ、ハンドシェイク切換モジュール104は、送信元レジスタと送信先レジスタの間でハンドシェイクを行う。
次に、ハンドシェイク切換モジュール104の動作として、送信先レジスタで混雑が起こる場合の動作について詳細に説明する。
まず、送信元要求信号Riの値が“1”であるものとする(図6AのステップS901で「Y」)。このとき、2入力非対称型C素子808の第1、2入力に供給される信号、即ち、送信元要求信号Ri、送信元応答信号Aiの値がそれぞれ“1”、“0”となるため、2入力非対称型C素子808の出力であるハンドシェイク実行中信号HSの値が“1”となる。
2入力非対称型C素子801の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“0”となるため、2入力非対称型C素子801の出力信号の値が“1”となる。3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“1”、“1”、“1”となるため、3入力非対称型C素子802の出力信号の値が“1”となる。2入力非対称型C素子801、3入力非対称型802の出力信号の値が共に“1”となるため、ANDゲート803から出力される送信先要求信号Roの値が“1”となる(ステップS902)。
2入力非対称型C素子806の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“0”であるため、2入力非対称型C素子806の出力信号の値が“0”のまま保持され、データ破棄要求信号Reの値が“0”のままとなる。ここで、ORゲート807の第1、2入力に供給される、即ち、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“1”、“0”となるため、ORゲート807の出力信号Ro|Aoの値が“1”となる。また、3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“0”、“1”、“1”となる。この場合、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“0”のままとなる。
送信先要求信号Roの値が“1”になったことに対して、送信先応答信号Aoの値が“0”のままであるとき(ステップS903で「N」)、混雑可能性検出モジュール101と混雑可能性継続時間計測モジュール102と混雑判定モジュール103の動作により、混雑判定結果信号Cgの値が“1”となったものとする(ステップS913、S914で「Y」、S919)。
このとき、3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“1”、“1”、“1”となるため、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“1”となる。これにより、2入力非対称型C素子806の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“1”となるため、2入力非対称型C素子806の出力であるデータ破棄要求信号Reの値が“1”となる(ステップS922)。
データ破棄要求信号Reの値が“1”になったことに対して、破棄応答信号Aeの値が“1”となると(ステップS923で「Y」)、ハンドシェイク先切換信号Swの値が“1”となっている。このため、マルチプレクサ804の出力である送信元応答信号Aiの値は、破棄応答信号Aeの値“1”と同じ“1”となる(ステップS924)。
送信元応答信号Aiの値が“1”に対して、送信元レジスタが送信元要求信号Riの値を“0”とするとき(ステップS925で「Y」)、2入力非対称型C素子801の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“0”、“1”となるため、2入力非対称型C素子801の出力信号の値が“1”が維持される。3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“1”、“0”、“1”となるため、3入力非対称型C素子802の出力信号の値が“1”が維持される。このため、ANDゲート803の出力である送信先要求信号Roの値が“1”のまま維持される。その一方で、2入力非対称型C素子806の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“0”、“1”となるため、2入力非対称型C素子806の出力であるデータ破棄要求信号Reの値が“0”となる(ステップS926)。
データ破棄要求信号Reの値が“0”となったことに対して、破棄応答信号Aeの値が“0”となると(ステップS927で「Y」)、ハンドシェイク先切換信号Swの値が“1”となっている。このため、マルチプレクサ804の出力である送信元応答信号Aiの値は、破棄応答信号Aeの値“0”と同じ“0”として出力する(ステップS928)。
送信元応答信号Aiの値が“0”となることにより、2入力非対称型C素子808の第1、2入力に供給される信号、即ち、送信元要求信号Ri、送信元応答信号Aiの値がそれぞれ“0”、“0”となるため、2入力非対称型C素子808の出力であるハンドシェイク実行中信号HSの値が“0”となり、送信元レジスタとデータ破棄モジュール199との間のハンドシェイクを完了する。このハンドシェイクと並行して送信元レジスタから転送されるデータを受信するレジスタがないため、このデータは破棄される。
ここで、送信先レジスタでの混雑が解消されず、送信先応答信号Aoの値が“0”のままであるとき(ステップS933で「N」)、送信先要求信号Roの値が“1”のままであるため、ORゲート807の出力信号の値は“1”のままである。3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“1”、“0”、“1”となり、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“1”のままとなる。
送信先応答信号Aoの値が“0”のままであるときに、新たに破棄すべきデータが送信元レジスタから転送されて送信元要求信号Riの値が“1”となったものとする(ステップS931で「Y」)。このとき、2入力非対称型C素子808の第1、2入力に供給される信号、即ち、送信元要求信号Ri、送信元応答信号Aiの値がそれぞれ“1”、“0”となるため、2入力非対称型C素子808の出力であるハンドシェイク実行中信号がHSの値が“1”となる。2入力非対称型C素子801の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“1”となるため、2入力非対称型C素子801の出力信号の値が“1”のままとなる。2入力非対称型C素子801、3入力非対称型802の出力信号の値が共に“1”となるため、ANDゲート803から出力される送信先要求信号Roの値が“1”となる。2入力非対称型C素子806の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“1”であるため、2入力非対称型C素子806の出力であるデータ破棄要求信号Reの値が“1”となる(ステップS922)。
ORゲート807の第1、2入力に供給される、即ち、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“1”、“0”のままであるため、ORゲート807の出力信号Ro|Aoの値は“1”のままとなる。3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“1”、“1”、“1”となる。この場合、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“1”のままとなる。
以降の送信元レジスタとデータ破棄モジュール199との間でのハンドシェイクは前述と同様に実行される(ステップS923~S928)。
送信元レジスタとデータ破棄モジュール199との間のハンドシェイクが完了したときに、送信先レジスタでの混雑が解消されて送信先応答信号Aoの値が“1”となっているものとする(ステップS933で「Y」)。このとき、3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“1”、“0”、“0”となるため、3入力非対称型C素子802の出力信号の値が“0”となり、ANDゲート803から出力される送信先要求信号Roの値が“0”となる(ステップS936)。
ここで、送信先応答信号Aoの値が“1”であるため、混雑可能性検出モジュール101と混雑可能性継続時間計測モジュール102と混雑判定モジュール103の動作により、混雑判定結果信号Cgの値が“0”となったものとする(ステップS941、S942、S949)。
このとき、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“0”、“1”となるが、ORゲート807の出力信号Ro|Aoの値は“1”のままとなる。また、3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“0”、“0”、“1”となるため、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“1”のまま維持される。
ここで、送信先要求信号Roの値が“0”に対して、送信先応答信号Aoの値が“1”のままであるとき(ステップS923で「N」)、新たに破棄すべきデータが送信元レジスタから転送されて送信元要求信号Riの値が“1”となったものとする(ステップS921で「Y」)。このとき、2入力非対称型C素子808の第1、2入力に供給される信号、即ち、送信元要求信号Ri、送信元応答信号Aiの値がそれぞれ“1”、“0”となるため、2入力非対称型C素子808の出力であるハンドシェイク実行中信号HSの値が“1”となる。2入力非対称型C素子801の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“1”となるため、2入力非対称型C素子801の出力信号の値が“1”となる。3入力非対称型C素子802の第1、2、3入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Sw~、送信先応答信号Ao~の値がそれぞれ“1”、“0”、“0”のままとなるため、3入力非対称型C素子802の出力信号の値が“0”のままとなる。2入力非対称型C素子801、3入力非対称型802の出力信号の一方の値が“0”のままであるため、ANDゲート803から出力される送信先要求信号Roの値が“0”のままとなる。2入力非対称型C素子806の第1、2入力に供給される信号、即ち、送信元要求信号Ri、ハンドシェイク先切換信号Swの値がそれぞれ“1”、“1”であるため、2入力非対称型C素子806の出力であるデータ破棄要求信号Reの値が“1”となる(ステップS922)。
送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“0”、“1”のままであるため、ORゲート807の出力信号Ro|Aoの値は“1”のままとなる。3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“0”、“1”、“1”となり、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“1”のままとなる。以降の送信元レジスタとデータ破棄モジュールとの間でのハンドシェイクは前述と同様に実行される(ステップS923~S928)。
送信元レジスタとデータ破棄モジュール199との間のハンドシェイクが完了したときに、送信先要求信号Roの値が“0”に対して送信先応答信号Aoの値が“0”になったものとする(ステップS923で「Y」)。このとき、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“0”、“0”となるため、ORゲート807の出力信号Ro|Aoの値は“0”となる。3入力非対称型C素子805の第1、2、3入力に供給される信号、即ち、混雑判定結果信号Cg、ハンドシェイク実行中信号HS、ORゲート807の出力信号Ro|Aoの値がそれぞれ“0”、“0”、“0”となるため、3入力非対称型C素子805の出力であるハンドシェイク先切換信号Swの値が“0”となり、送信先レジスタとのハンドシェイクも完了して、初期状態に戻る(ステップS900)。
以上の説明により、本発明の第1実施形態による非同期式論理回路100によれば、混雑可能性検知モジュール101は、送信先レジスタ(レジスタ172)へデータ記憶要求(送信先要求信号Ro“1”)が行われていながらも、送信先レジスタから記憶完了の応答がない場合(送信先応答信号Ao“0”)、送信元レジスタ(レジスタ171)から送信先レジスタへのデータ転送経路が混雑している可能性がある状態(混雑可能性信号Pc“1”)を検知する。混雑可能性継続時間計測モジュール102は、この状態の継続時間である混雑可能性継続時間Tcを測定する。混雑判定モジュール103は、混雑可能性継続時間Tcが設定時間Tthを超えた場合、データ転送経路が混雑していると判定する。このように、非同期式のレジスタによるデータ転送における混雑を検出することができる。
また、本発明の第1実施形態による非同期式論理回路100によれば、ハンドシェイク切換モジュール104は、データ転送経路が混雑していない場合、送信元レジスタから第1の転送先(送信先レジスタ)にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクを継続させて、データ転送経路が混雑している場合、送信元レジスタに記憶されたデータが第2転送先にデータが転送されるように、送信元レジスタと第2の転送先との間のハンドシェイクに切り替える。この場合、第2の転送先は、データ破棄モジュール199であるため、データは、データ破棄モジュール199により破棄される。ハンドシェイク切換モジュール104は、データ転送経路の混雑が解消された場合、送信元レジスタから第1の転送先にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
なお、本発明の第1実施形態による非同期式論理回路100では、上述の構成に限定されない。
例えば、混雑判定モジュール103は、設定時間Tthを記憶する記憶モジュールを更に備え、その比較器が、混雑可能性継続時間Tcを表す信号を混雑可能性継続時間計測モジュール102から受信し、混雑可能性継続時間Tcと、記憶モジュールに記憶された設定時間Tthとを比較してもよい。
また、データ転送経路の混雑時に、送信先レジスタ(レジスタ172)へデータ記憶要求が行われたときに、送信先レジスタから記憶完了の応答が行われていない状態だけでなく、送信先レジスタへデータ記憶要求の取下げが行われたときに、送信先レジスタから記憶完了の応答の取下げが行われていない状態でも、データの転送を一時停止するようなハンドシェイク・プロトコルに従う場合も考えられる。この場合、混雑可能性検出モジュール101は、上述のように、ANDゲートとNOTゲートで構成されているが、図13に示されるように、XORゲートで構成してもよい。これにより、送信先要求信号Ro、送信先応答信号Aoや送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“1”、“0”の場合だけでなく、送信先要求信号Ro、送信先応答信号Aoの値がそれぞれ“0”、“1”の場合でも、XORゲートの出力である混雑可能性信号Pcの値が“1”となり、その他の状態では混雑可能性信号Pcの値が“0”となる。
(第2実施形態)
図14は、本発明の第2実施形態による非同期式論理回路1400の構成を示すブロック図である。第2実施形態では、第1実施形態と重複する説明を省略する。
図14は、本発明の第2実施形態による非同期式論理回路1400の構成を示すブロック図である。第2実施形態では、第1実施形態と重複する説明を省略する。
本発明の第1実施形態による非同期式論理回路100において、混雑可能性検出モジュール101とハンドシェイク切換モジュール104は、同一対のレジスタ間に接続されている。即ち、本発明の第1実施形態による非同期式論理回路100では、非同期式コア間接続回路の非同期式のレジスタであるレジスタ171とレジスタ172の間に接続されている。しかし、これに限定されない。
本発明の第2実施形態による非同期式論理回路1400において、混雑可能性検出モジュール101とハンドシェイク切換モジュール104は、異なる対のレジスタ間に接続されてもよい。この場合、非同期式コア間接続回路の非同期式のレジスタとして、レジスタ171とレジスタ172の間に、レジスタ171、172と同じ機能であるレジスタ1472が設けられている。レジスタ1472は、記憶素子1482と記憶制御回路1492とを備えている。非同期式のレジスタが、前述した非同期式コア間接続回路500(図4参照)の非同期式のレジスタである場合、例えば、記憶素子181、記憶制御回路191は、それぞれ、前述のフリップ・フロップ310、記憶制御回路320に対応する。記憶素子1482、記憶制御回路1492は、それぞれ、前述のフリップ・フロップ311、記憶制御回路321に対応する。記憶素子182、記憶制御回路192は、それぞれ、前述のフリップ・フロップ312、記憶制御回路322に対応する。混雑可能性検出モジュール101は、レジスタ1472とレジスタ172の間に接続され、ハンドシェイク切換モジュール104は、レジスタ171とレジスタ1472の間に接続されている。
第2実施形態の効果は、第1実施形態の効果と同じである。
(第3実施形態)
図15は、本発明の第3実施形態による非同期式論理回路1500の構成を示すブロック図である。第3実施形態では、第1実施形態と重複する説明を省略する。
図15は、本発明の第3実施形態による非同期式論理回路1500の構成を示すブロック図である。第3実施形態では、第1実施形態と重複する説明を省略する。
本発明の第1実施形態による非同期式論理回路100において、上述の第2の転送先は、データ破棄モジュール199を表している。データ破棄モジュール199は、ハンドシェイク切換モジュール104からのデータ破棄要求信号Re“1”(データ破棄要求)に応じて、レジスタ171の記憶素子181に記憶されたデータを破棄し、破棄応答信号Ae“1”(データ破棄完了通知)をハンドシェイク切換モジュール104に送信している。しかし、これに限定されない。
本発明の第3実施形態による非同期式論理回路1500において、上述の第2の転送先は、送信先レジスタ172(第1のレジスタ)とは異なる第2のレジスタでもよい。この場合、本発明の第3実施形態による非同期式論理回路1500は、データ破棄モジュール199に代えて、第2のレジスタであるレジスタ1599に接続されている。レジスタ1599は、記憶素子1583と記憶制御回路1593とを備えている。
レジスタ1599は、ハンドシェイク切換モジュール104からのデータ破棄要求信号Re“1”(データ破棄要求)に応じて、レジスタ171に記憶されたデータを記憶素子1583に記憶する。このとき、レジスタ1599は、データ破棄完了通知を示す破棄応答信号Aeをハンドシェイク切換モジュール104に出力する。この場合、破棄応答信号Aeの値は“1”を表し、データ破棄完了通知は、レジスタ171に記憶されたデータを他のデータ転送経路に転送したことを表している。
本発明の第3実施形態による非同期式論理回路1500によれば、データ転送経路が混雑していない場合、送信元レジスタ(レジスタ171)から第1の転送先である送信先レジスタ(レジスタ172)にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクを継続させて、データ転送経路が混雑している場合、送信元レジスタに記憶されたデータが第2転送先にデータが転送されるように、送信元レジスタと第2の転送先との間のハンドシェイクに切り替える。この場合、第2の転送先は、レジスタ1599であるため、データは、レジスタ1599に転送される。データ転送経路の混雑が解消された場合、送信元レジスタから第1の転送先にデータが転送されるように、送信元レジスタと第1の転送先との間のハンドシェイクに戻す。このように、ハンドシェイク・プロトコルに違反することなく、通常のデータ転送と混雑時のデータ転送を切り替えることができる。これにより、通信容量を有効に利用することができる。
本発明は、プロセッサや演算回路などのコア(機能ブロック)の間でデータ転送を行う回路といった用途に適用できる。
[応用例1]
図16は、図5の非同期式論理回路100を図4の非同期式コア間接続回路500に適用した場合の非同期式コア間接続回路1800の構成を示している。
図16は、図5の非同期式論理回路100を図4の非同期式コア間接続回路500に適用した場合の非同期式コア間接続回路1800の構成を示している。
前述のように、非同期式コア間接続回路500では、マスタA501からスレーブA502へのデータ591~594の転送と、マスタB503からスレーブB504へのデータ581~583の転送が行われている場合、後者の転送が非同期式調停回路512を占有している。このため、データ591~594が非同期式調停回路512の直前で停止されている。データ591~594の転送が進まないため、マスタA501は次の転送を行うことができなくなっている。
一方、非同期式コア間接続回路1800は、前述の非同期式コア間接続回路500と、非同期式コア間接続回路500の非同期式調停回路512の直前に接続された非同期式論理回路100、データ破棄モジュール199を具備している。非同期式コア間接続回路1800では、非同期式論理回路100とデータ破棄モジュール199を用いることによって、マスタB503からスレーブB504の間でのデータ581~583の転送が完了していなくても、マスタA501から送出されているデータ1891~1894の破棄が可能となる。また、マスタA501は新たなデータ1871~1873の転送を開始することが可能となる。従って、データ転送容量を有効に活用することが可能となる。
[応用例2]
図17は、図15の非同期式論理回路1500を図4の非同期式コア間接続回路500に適用した場合の非同期式コア間接続回路1600の構成を示している。
図17は、図15の非同期式論理回路1500を図4の非同期式コア間接続回路500に適用した場合の非同期式コア間接続回路1600の構成を示している。
非同期式コア間接続回路1600は、前述の非同期式コア間接続回路500と、非同期式コア間接続回路500の非同期式調停回路512の直前に接続された非同期式論理回路1500、レジスタ1599を具備している。レジスタ1599からマスタA501へのデータ返送経路を増設した場合、マスタA501からのデータ転送と、マスタA501へのデータ転送とを調停する必要がある。これを調停するために、非同期式コア間接続回路1600は、更に、マスタA501とレジスタ1599との間に設けられた非同期式調停回路1631を具備している。非同期式コア間接続回路1600では、非同期式論理回路1500を用いることによって、非同期式コア間接続回路500の混雑箇所からマスタA501へのデータ1691~1694を返送して、マスタA501によりデータ1691~1694の転送経路の再設定を行い、データ1691~1694を非同期式分岐回路511と非同期式調停回路522と非同期式分岐回路523と非同期式調停回路514を経由してスレーブA502へ到達させることが可能となる。
[応用例3]
図18は、図15の非同期式論理回路1500を図4の非同期式コア間接続回路500に適用した場合の非同期式コア間接続回路1700の構成を示している。
図18は、図15の非同期式論理回路1500を図4の非同期式コア間接続回路500に適用した場合の非同期式コア間接続回路1700の構成を示している。
非同期式コア間接続回路1700は、前述の非同期式コア間接続回路500と、非同期式コア間接続回路500の非同期式調停回路512の直前に接続された非同期式論理回路1500、レジスタ1599を具備している。レジスタ1599からスレーブAへのデータ返送経路を増設した場合、非同期式分岐回路511から非同期式調停回路522へのデータ転送と、レジスタ1599から非同期式調停回路522へのデータ転送とを調停する必要がある。これを調停するために、非同期式コア間接続回路1700は、更に、レジスタ1599と非同期式調停回路522との間に設けられた非同期式調停回路1732を具備している。非同期式コア間接続回路1700では、非同期式論理回路1500を用いることによって、非同期式調停回路512での混雑を避けて、非同期式コア間接続回路500の混雑箇所からスレーブA502への迂回路である非同期式調停回路1732と非同期式調停回路522と非同期式分岐回路523と非同期式調停回路514を経由してスレーブA502へ到達する経路へ、データ1791~1794を迂回して転送することが可能となる。
また、非同期式論理回路100のうちの、混雑可能性検出モジュール101と混雑可能性継続時間計測モジュール102と混雑判定モジュール103のみを図4の非同期式コア間接続回路500に適用して、混雑判定結果信号が混雑中を意味する状態となったときには、混雑箇所から送信元の方向へデータ転送経路を遡り、その経路上のレジスタを全てリセットする構成も可能である。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2009年1月14日に出願された特許出願番号2009-005979号の日本特許出願に基づいており、その出願による優先権の利益を主張し、その出願の開示は、引用することにより、そっくりそのままここに組み込まれている。
Claims (17)
- データを自己の記憶素子に記憶し、データ記憶要求を送信する送信元レジスタと、前記データ記憶要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する送信先レジスタと、を含む非同期式のレジスタに接続された非同期式論理回路であって、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する混雑可能性継続時間計測モジュールと、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタからの前記データ記憶要求を第1の転送先である前記送信先レジスタに出力し、前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタからの前記データ記憶要求を第2の転送先に出力するハンドシェイク切換モジュールと、
を具備する非同期式論理回路。 - 前記ハンドシェイク切換モジュールは、前記第2の転送先であるデータ破棄モジュールに接続され、
前記データ破棄モジュールは、前記データ破棄要求に応じて、前記送信元レジスタに記憶されたデータを破棄する、
請求項1に記載の非同期式論理回路。 - 前記ハンドシェイク切換モジュールは、前記送信先レジスタである第1のレジスタとは異なる第2のレジスタに接続され、
前記第2のレジスタは、前記第2の転送先であり、
前記第2のレジスタは、前記データ破棄要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶する、
請求項1に記載の非同期式論理回路。 - 前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す混雑可能性信号を出力する混雑可能性検出モジュール、
を更に具備し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す場合、カウントし、
カウント値に応じた時間を混雑可能性継続時間として出力する、
請求項1~3のいずれかに記載の非同期式論理回路。 - 前記混雑可能性検出モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す前記混雑可能性信号を出力し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す場合、カウントを終了し、
前記混雑可能性継続時間をリセットする、
請求項4に記載の非同期式論理回路。 - 前記混雑可能性継続時間と前記設定時間とを比較する混雑判定モジュール、
を更に具備し、
前記混雑判定モジュールは、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す前記混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記ハンドシェイク切換モジュールは、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第1の転送先である前記送信先レジスタに出力し、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第2の転送先に送信する、
請求項1~5のいずれかに記載の非同期式論理回路。 - 前記ハンドシェイク切換モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信先レジスタへの前記データ記憶要求の送信を終了し、前記送信先レジスタからの前記データ記憶完了通知を前記送信元レジスタに送信する、
請求項1~5のいずれかに記載の非同期式論理回路。 - 前記ハンドシェイク切換モジュールは、
前記送信先レジスタからの前記データ記憶完了通知に対して、前記送信元レジスタから前記データ記憶要求が送信された場合、前記送信元レジスタからの前記データ記憶要求を前記第2の転送先に送信する、
請求項7に記載の非同期式論理回路。 - データを自己の記憶素子に記憶し、データ記憶要求を送信する送信元レジスタと、
前記データ記憶要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する送信先レジスタと、
送信元レジスタと送信先レジスタとに接続された非同期式論理回路と、
を具備し、
前記非同期式論理回路は、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、カウントし、カウント値に応じた時間を混雑可能性継続時間として出力する混雑可能性継続時間計測モジュールと、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタからの前記データ記憶要求を第1の転送先である前記送信先レジスタに出力し、前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタからの前記データ記憶要求を第2の転送先に出力するハンドシェイク切換モジュールと、
を具備する非同期式コア間接続回路。 - 前記ハンドシェイク切換モジュールは、前記第2の転送先であるデータ破棄モジュールに接続され、
前記データ破棄モジュールは、前記データ破棄要求に応じて、前記送信元レジスタに記憶されたデータを破棄する、
請求項9に記載の非同期式コア間接続回路。 - 前記ハンドシェイク切換モジュールは、前記送信先レジスタである第1のレジスタとは異なる第2のレジスタに接続され、
前記第2のレジスタは、前記第2の転送先であり、
前記第2のレジスタは、前記データ破棄要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶する、
請求項9に記載の非同期式コア間接続回路。 - 前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す混雑可能性信号を出力する混雑可能性検出モジュール、
を更に具備し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性があることを示す場合、カウントし、
カウント値に応じた時間を混雑可能性継続時間として出力する、
請求項9~11のいずれかに記載の非同期式コア間接続回路。 - 前記混雑可能性検出モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す前記混雑可能性信号を出力し、
前記混雑可能性継続時間計測モジュールは、
前記混雑可能性信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑している可能性がないことを示す場合、カウントを終了し、
前記混雑可能性継続時間をリセットする、
請求項12に記載の非同期式コア間接続回路。 - 前記混雑可能性継続時間と前記設定時間とを比較する混雑判定モジュール、
を更に具備し、
前記混雑判定モジュールは、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す前記混雑判定結果信号を前記ハンドシェイク切換モジュールに出力し、
前記ハンドシェイク切換モジュールは、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していないことを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第1の転送先である前記送信先レジスタに出力し、
前記混雑判定結果信号が、前記送信元レジスタから前記送信先レジスタへのデータ転送経路が混雑していることを示す場合、前記送信元レジスタからの前記データ記憶要求を前記第2の転送先に送信する、
請求項9~13のいずれかに記載の非同期式コア間接続回路。 - 前記ハンドシェイク切換モジュールは、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信された場合、前記送信先レジスタへの前記データ記憶要求の送信を終了し、前記送信先レジスタからの前記データ記憶完了通知を前記送信元レジスタに送信する、
請求項9~13のいずれかに記載の非同期式コア間接続回路。 - 前記ハンドシェイク切換モジュールは、
前記送信先レジスタからの前記データ記憶完了通知に対して、前記送信元レジスタから前記データ記憶要求が送信された場合、前記送信元レジスタからの前記データ記憶要求を前記第2の転送先に送信する、
請求項15に記載の非同期式コア間接続回路。 - データを自己の記憶素子に記憶し、データ記憶要求を送信する送信元レジスタと、前記データ記憶要求に応じて、前記送信元レジスタに記憶されたデータを自己の記憶素子に記憶し、自己の記憶素子にデータを記憶したことを表すデータ記憶完了通知を送信する送信先レジスタと、を含む非同期式のレジスタを用いてデータを転送する方法であって、
前記送信元レジスタからの前記データ記憶要求に対して、前記送信先レジスタから前記データ記憶完了通知が送信されていない場合、カウントするステップと、
カウント値に応じた時間を混雑可能性継続時間として出力するステップと、
前記混雑可能性継続時間が設定時間未満である場合、前記送信元レジスタからの前記データ記憶要求を第1の転送先である前記送信先レジスタに出力するステップと、
前記混雑可能性継続時間が前記設定時間以上である場合、前記送信元レジスタからの前記データ記憶要求を第2の転送先に出力するステップと、
を具備するデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010546626A JP5397783B2 (ja) | 2009-01-14 | 2010-01-13 | 非同期式論理回路 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009005979 | 2009-01-14 | ||
JP2009-005979 | 2009-01-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010082575A1 true WO2010082575A1 (ja) | 2010-07-22 |
Family
ID=42339829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/050259 WO2010082575A1 (ja) | 2009-01-14 | 2010-01-13 | 非同期式論理回路 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5397783B2 (ja) |
WO (1) | WO2010082575A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115800992A (zh) * | 2023-02-07 | 2023-03-14 | 浪潮电子信息产业股份有限公司 | 一种握手信号的拆分电路、方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10247394A (ja) * | 1997-03-03 | 1998-09-14 | Nippon Telegr & Teleph Corp <Ntt> | 自己同期型パイプラインデータパス回路および非同期信号制御回路 |
JP2002033788A (ja) * | 2000-07-19 | 2002-01-31 | Nippon Telegr & Teleph Corp <Ntt> | 非同期データ転送方法 |
WO2005026927A2 (en) * | 2003-09-16 | 2005-03-24 | Koninklijke Philips Electronics N.V. | Electronic circuit with a chain of processing elements |
WO2007037384A1 (ja) * | 2005-09-30 | 2007-04-05 | Ipflex Inc. | 自己同期型の処理ユニットを有するシステム |
-
2010
- 2010-01-13 JP JP2010546626A patent/JP5397783B2/ja not_active Expired - Fee Related
- 2010-01-13 WO PCT/JP2010/050259 patent/WO2010082575A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10247394A (ja) * | 1997-03-03 | 1998-09-14 | Nippon Telegr & Teleph Corp <Ntt> | 自己同期型パイプラインデータパス回路および非同期信号制御回路 |
JP2002033788A (ja) * | 2000-07-19 | 2002-01-31 | Nippon Telegr & Teleph Corp <Ntt> | 非同期データ転送方法 |
WO2005026927A2 (en) * | 2003-09-16 | 2005-03-24 | Koninklijke Philips Electronics N.V. | Electronic circuit with a chain of processing elements |
WO2007037384A1 (ja) * | 2005-09-30 | 2007-04-05 | Ipflex Inc. | 自己同期型の処理ユニットを有するシステム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115800992A (zh) * | 2023-02-07 | 2023-03-14 | 浪潮电子信息产业股份有限公司 | 一种握手信号的拆分电路、方法、装置、设备及存储介质 |
CN115800992B (zh) * | 2023-02-07 | 2023-06-02 | 浪潮电子信息产业股份有限公司 | 一种握手信号的拆分电路、方法、装置、设备及存储介质 |
WO2024164538A1 (zh) * | 2023-02-07 | 2024-08-15 | 浪潮电子信息产业股份有限公司 | 一种握手信号的拆分电路、方法、装置、设备及非易失性可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP5397783B2 (ja) | 2014-01-22 |
JPWO2010082575A1 (ja) | 2012-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106200760B (zh) | 时钟管理电路、芯片上系统、时钟管理的方法 | |
US10409749B2 (en) | Semiconductor device and system provided with a communication interface | |
EP1468372B1 (en) | Asynchronous crossbar with deterministic or arbitrated control | |
JP2013106166A (ja) | クロックゲーティング回路およびバスシステム | |
WO2013175412A1 (en) | Apparatus and method for synchronising signals | |
US6700899B1 (en) | Bit slice arbiter | |
CN116028413A (zh) | 一种总线仲裁器、总线仲裁的方法、装置及介质 | |
KR102549085B1 (ko) | 버스 제어회로 | |
JP5397783B2 (ja) | 非同期式論理回路 | |
JP6271113B1 (ja) | 時刻同期スレーブ装置及び通信制御方法 | |
Gibiluka et al. | BAT-Hermes: a transition-signaling bundled-data NoC router | |
GB2551806A (en) | Interface apparatus and method | |
TW201710823A (zh) | 時脈管理電路系統、系統單晶片以及時脈管理方法 | |
US8312193B2 (en) | Eager protocol on a cache pipeline dataflow | |
Acasandrei et al. | Open library of IP module interfaces for AMBA bus | |
JPH10320349A (ja) | プロセッサ及び当該プロセッサを用いるデータ転送システム | |
US9170768B2 (en) | Managing fast to slow links in a bus fabric | |
JP2004326222A (ja) | データ処理システム | |
Nedelchev et al. | Basic building blocks for asynchronous packet routers | |
Taraate et al. | Buses and protocols in SOC designs | |
JPH09237249A (ja) | 調停回路 | |
JPH07219887A (ja) | Dma転送制御装置 | |
Narmadha et al. | Performance analysis of ADMA on bus based SoC-survey | |
WO2010035698A1 (ja) | 調停回路、該調停回路に用いられる調停方法、該調停回路が設けられている半導体回路及びデジタルシステム | |
Guido et al. | Design of self-timed reconfigurable controllers for parallel synchronization via wagging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10731244 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010546626 Country of ref document: JP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10731244 Country of ref document: EP Kind code of ref document: A1 |