US7051194B2 - Self-synchronous transfer control circuit and data driven information processing device using the same - Google Patents

Self-synchronous transfer control circuit and data driven information processing device using the same Download PDF

Info

Publication number
US7051194B2
US7051194B2 US09/813,090 US81309001A US7051194B2 US 7051194 B2 US7051194 B2 US 7051194B2 US 81309001 A US81309001 A US 81309001A US 7051194 B2 US7051194 B2 US 7051194B2
Authority
US
United States
Prior art keywords
data
control circuit
transfer control
signal
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US09/813,090
Other versions
US20010028629A1 (en
Inventor
Takuji Uneyama
Motoki Takase
Tsuyoshi Muramatsu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Assigned to SHARP KABUSHIKI KAISHA reassignment SHARP KABUSHIKI KAISHA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MURAMATSU, TSUYOSHI, TAKASE, MOTOKI, UNEYAMA, TAKUJI
Publication of US20010028629A1 publication Critical patent/US20010028629A1/en
Application granted granted Critical
Publication of US7051194B2 publication Critical patent/US7051194B2/en
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Definitions

  • the present invention relates to a self-synchronous transfer control circuit and a data driven information processing device using the same, and more particularly, to a data driven information processing device in which a self-synchronous transfer control circuit enabling transfer of a plurality of pulses from one pulse is used for multi-output instructions, to enhance program performance.
  • the data driven information processing device (hereinafter referred to as a data driven processor) has been proposed as a device for rapidly processing such a large amount of operations.
  • a process is carried out according to a rule in that the process is performed when there are all the input data required for a process and a resource required for the process such as an operation device is allocated.
  • a data transmission device employing an asynchronous handshake system is used for a data processing device including information processing operation of the data driven type.
  • a plurality of data transmission paths are connected with each other, which mutually transmit/receive data transfer request signals (hereinafter referred to as SEND signal) and transfer enabling signals indicating whether or not the data transfer is permitted (hereinafter referred to as ACK signal), to autonomously transfer data.
  • SEND signal mutually transmit/receive data transfer request signals
  • ACK signal transfer enabling signals indicating whether or not the data transfer is permitted
  • FIG. 12 shows a format of a data packet to which a conventional art and the present invention are applied.
  • the data packet includes a destination node number area F 1 for storing a destination node number ND#, a generation number area F 2 for storing a generation number GN#, an instruction code area F 3 for storing an instruction code OPC and a data area F 4 for storing data DATA.
  • the generation number herein represents a number for distinguishing data groups to be subjected to parallel processing from each other.
  • the destination node number represents a number for distinguishing input data within one generation from each other.
  • the instruction code is for executing instructions stored in an instruction decoder.
  • FIG. 13 is a block diagram showing a configuration of a data transmission path.
  • the data transmission path includes a self-synchronous transfer control circuit (hereinafter referred to as a C element) 1 a and a data holding circuit (hereinafter referred to as a pipeline register) 1 b constituted by a D type flip-flop.
  • C element 1 a includes a pulse input terminal CI receiving a pulse, a transfer enabling output terminal RO outputting a transfer enabling signal indicating enabling or disabling of the transfer, a pulse output terminal CO outputting a pulse, a transfer enabling input terminal RI receiving the transfer enabling signal indicating enabling or disabling of transfer, and a pulse output terminal CP for applying a clock pulse controlling the data holding operation of pipeline register 1 b.
  • FIGS. 14A to 14E are timing charts illustrating the operation of C element shown in FIG. 13 .
  • C element 1 a receives a pulse indicated in FIG. 14A from terminal CI
  • C element outputs a pulse indicated in FIG. 14D from terminal CO and also outputs a pulse shown in FIG. 14C to pipeline register 1 b .
  • pipeline register 1 b holds the applied input packet data, and then outputs the held data as output packet data.
  • FIG. 15 is a block diagram showing an example where the data transmission paths shown in FIG. 13 are connected in sequence via predetermined logic circuits.
  • the input packet data is processed sequentially in logic circuits 3 d and 3 e while sequentially being transferred along pipeline registers 3 a ⁇ 3 b ⁇ 3 c .
  • FIG. 15 for example, when pipeline register 3 a is in a data holding state while pipeline register 3 b in the subsequent stage is also in the data holding state, no data is transmitted from pipeline register 3 a to pipeline register 3 b.
  • pipeline register 3 b in the subsequent stage is in non-data holding state or has come to be in the non-data holding state
  • data is transmitted from pipeline register 3 a to logic circuit 3 d , where the data is processed, and to pipeline register 3 b , taking at least a preset delay time.
  • a control which is called a self-synchronous transfer control asynchronously transmits data with at least preset delay time, in response to SEND signals input to/output from terminals CI and CO and ACK signals input to/output from terminals RI and RO, which are transmitted between adjacent pipeline registers connected as described above.
  • a circuit controlling such data transfer is called a self-synchronous transfer control circuit.
  • FIG. 16 is a detailed circuit diagram of the C element shown in FIG. 15 .
  • the C element may be, for example, the one described in Japanese Patent Laying-Open No. 6-83731.
  • pulse input terminal CI receives a pulsed SEND signal (a transfer request signal) from a preceding stage, and transfer enabling output terminal RO outputs an ACK signal (a transfer enabling signal) to the preceding stage.
  • Pulse output terminal CO outputs a pulsed SEND signal to a subsequent stage, and transfer enabling input terminal RI receives an ACK signal from the subsequent stage.
  • a master reset input terminal MR receives a master reset signal.
  • a pulse at a logic high or “H” level is applied to master reset input terminal MR, the pulse is inverted at an inverter 4 e , and the inverted pulse resets flip-flops 4 a and 4 b to initialize C element.
  • an “H” level signal is output, as an initial state, from both pulse output terminal CO and transfer enabling output terminal RO.
  • the “H” level output from transfer enabling output terminal RO indicates a transfer enabling state, whereas a logic low or an “L” level output therefrom indicates a transfer disabling state.
  • the “H” level output from pulse output terminal CO indicates the state where no data transfer is required for the subsequent stage, whereas the “L” level therefrom indicates a state where the data transfer is required for or the data is being transferred to the subsequent stage.
  • flip-flop 4 a When the signal of “L” level is input to pulse input terminal CI, i.e., when data transfer is required from the preceding stage, flip-flop 4 a is set and outputs an “H” level signal to an output Q.
  • the “H” level signal is inverted at an inverter 4 d , and thus an “L” level signal is output from transfer enabling output terminal RO, which inhibits further data transfer.
  • an “H” level signal is input to pulse input terminal CI, terminating data setting from the preceding stage to the C element. In such a state, when the circuit is in a state where an “H” level signal is input from transfer enabling input terminal RI, i.e.
  • flip-flops 4 a and 4 b are both reset, and flip-flop 4 b outputs an “H” level signal, via a delay element 4 e , from pulse output terminal CP to the pipeline register, together with a SEND signal of the “L” level, via a delay element 4 f , from pulse output terminal CO to the C element in the subsequent stage. That is, the data transfer for the subsequent stage is required.
  • the C element in the subsequent stage which has received the SEND signal of the “L” level outputs an ACK signal made to be at “L” level from terminal RO, indicating transfer inhibition, such that no further data is transferred to the C element.
  • FIG. 17 is a schematic block diagram of a conventional data driven processor configured including the data transfer device shown in FIG. 15 .
  • a data driven processor Pe includes a junction unit JNC, a firing control unit FC, an operation unit FP, a program storage unit PS, a branch unit BRN, a plurality of pipeline registers 3 a to 3 c , and a plurality of C elements 2 a to 2 c .
  • Each of C elements 2 a to 2 c controls packet transfer for a corresponding processing unit (FC, FP or PS) by exchanging packet transfer pulses (signals at CI, CO, RI and RO) to C elements in preceding and subsequent stages.
  • FIG. 17 when the data packet shown in FIG. 12 is input to processor Pe, the input packet first passes through junction unit JNC, is transferred to firing control unit FC, and a pair data is formed from identical packets based on a destination node number ND# and a generation number GN#. That is, two different data packets having identical node number ND# and generation number GN# are detected, and the data in one of the data packets is additionally stored in data area F 4 ( FIG. 12 ) of the other data packet, outputting the other data packet. The packet of which the pair data (a set of data) is stored in data area F 4 is subsequently transmitted to operation unit FP.
  • Operation unit FP inputs the transmitted data packet, executes a predetermined operation for the content of the input packet based on instruction code OPC of the input packet, and stores the operation result in data area F 4 of the input packet.
  • the input packet is subsequently transmitted to program storage unit PS.
  • Program storage unit PS inputs the transmitted data packet, and reads node information (node number ND#) to which the packet should go next from the program memory in program storage unit PS, instruction information (instruction code OPC) to be subsequently executed, and a copy flag CPY.
  • the read destination node number ND# and instruction code OPC are then stored respectively in destination node number area F 1 and instruction code area F 3 of the input packet. Further, if the read copy flag CPY is “I”, the subsequent address in the program memory is determined also to be valid, and thus the packet storing destination node number ND# and instruction code OPC stored in the next address will also be generated.
  • the packet output from program storage unit PS is transmitted to branch unit BRN, and is output based on its destination node number ND#, or is returned again into the processor.
  • branch unit BRN To make three copies of identical data, the packet returned to the processor will be used for the copying process.
  • the packet To make a plurality copies of the identical data, the packet must be returned to the processor a plurality of times for the copying process.
  • FIG. 4A is a data flow diagram showing an example where four copies of the input data are made.
  • An NOP (copying without operation) instruction 16 a is executed for the input data to output data 16 h and 16 i .
  • Data 16 i is executed as an OPC1 instruction 16 d corresponding to instruction code OPC of the packet shown in FIG. 12
  • data 16 h is executed as an NOP instruction 16 b .
  • NOP instruction 16 b copying is executed to output data 16 j and 16 k .
  • Data 16 k is executed as an OPC2 instruction 16 e
  • data 16 j is executed as an NOP instruction 16 c .
  • NOP instruction 16 c copying is executed to output data 16 l and 16 m .
  • Data 16 m is executed as an OPC3 instruction 16 f
  • data 16 l is executed as an OPC4 instruction 16 g .
  • FIG. 18 is a diagram showing an example where a conventional data driven processor is used to execute a multiplication instruction.
  • a multiplier 3 f and a shifter 3 g are provided as logic circuits 3 d and 3 e shown in FIG. 15 described earlier.
  • 12-bit data is multiplied with another 12-bit data, the operation result will be 24-bit data.
  • the data to be stored in the data field as a packet format is limited to 12 bits as shown in FIG. 12 , and therefore the resulted data of 24 bits must be divided into higher 12 bits and lower 12 bits for operation.
  • shifter 3 g has been used to execute two instructions, such as an instruction outputting a packet including the higher 12-bit data and an instruction outputting a packet including the lower 12-bit data, to realize the operation.
  • two instructions such as an instruction outputting a packet including the higher 12-bit data and an instruction outputting a packet including the lower 12-bit data
  • a main object of the present invention is, therefore, to provide a self-synchronous transfer control circuit for enabling efficient execution of a program, and a data driven information processing device using the same.
  • a data number setting circuit is further provided, which can set the number of data transferred to the transfer control circuit in the subsequent stage.
  • the pulse control circuit includes: a counter circuit counting the number of times the transfer request pulse signal is output; and a disabling circuit comparing the counter output of the counter circuit with the number of data stored in the storage circuit to disable the output of the transfer request pulse signal by the transfer circuit, in response to correspondence thereof.
  • the data number detection circuit transmits a plurality of data packets having the same data as the data in a data field included in the data packet and having destination information different from each other, from the data transmission path to a data transmission path in a subsequent stage, in response to detection of the copying instruction.
  • the data number detection circuit transmits a plurality of data packets different from data in the data packet from the data transmission path to a data transmission path in a subsequent stage, in response to detection of the copying instruction.
  • FIGS. 2A to 2J are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 1 ;
  • FIGS. 4A and 4B are flow diagrams contrastively showing process procedures making four copies of the input data, according to a conventional example and to the second embodiment of the present invention
  • FIG. 6 is a detailed circuit diagram of the self-synchronous transfer control circuit shown in FIG. 5 ;
  • FIGS. 7A to 7H are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 6 ;
  • FIG. 10 is a detailed circuit diagram of the self-synchronous transfer control circuit shown in FIG. 9 ;
  • FIGS. 11A to 11J are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 10 ;
  • FIG. 12 shows a format of a data packet applied to a conventional example and an embodiment of the present invention
  • FIG. 13 shows a data transmission path in a conventional data driven processor
  • FIGS. 14A to 14E are timing charts showing the operation of the C element shown in FIG. 13 ;
  • FIG. 16 is a circuit diagram showing a conventional C element
  • FIGS. 2A to 2J are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 1 .
  • the self-synchronous transfer control circuit executes the packet erasing operation. That is, when a pulse signal of the “L” level shown in FIG. 2A is input from pulse input terminal CI of the self-synchronous transfer control circuit in a state where the “L” level signal has been input to terminal EXB, the pulse signal of the “L” level is input to pulse input terminal CI of C element 9 a.
  • the “H” level signal indicated in FIG. 2J is input thereto, and C element 9 a operates as conventional.
  • terminal CI is raised to the “H” level as shown in FIG. 2A after a certain time period
  • the “L” level signal indicated in FIG. 2I is output from pulse output terminal CO of C element 9 a , changing the level of the signal at pulse output terminal CP for a pipeline register to “H” level.
  • the “H” level signal output from terminal CP of C element 9 a sets flip-flop 9 s , which outputs the “L” level signal indicated in FIG. 2H to terminal FEB via delay element 9 t.
  • an “H” level signal is applied to transfer enabling input terminal RI of the self-synchronous transfer control circuit as an initial state, so that the output signal of OR gate 9 l input to AND gate 9 m will directly be an output signal of AND gate 9 m .
  • the signal output from pulse output terminal CO of C element 9 a will be input to transfer enabling input terminal RI of C element 9 a as it is.
  • the “L” level signal is output from pulse output terminal CO of C element 9 a , and thus the “L” level signal is input to transfer enabling input terminal RI of C element 9 a .
  • terminal CO of C element 9 a is changed to the “H” level, the signal therefrom being input to terminal RI of C element 9 a via OR gate 9 l and AND gate 9 m , which generates a state where subsequent data transfer is permitted, terminating the packet erasing operation.
  • terminal CO is maintained at the “H” level during the erasing operation, and thus the packet will not be transferred to the subsequent stage, but be overwritten by the next packet transferred from the preceding stage and disappears.
  • D type flip-flop 9 g maintains the state where master reset signal MRB is input, so that output Q thereof will be at the “L” level and the output of inverter 9 q will be at the “H” level, and hence the output of AND gate 9 m will be a signal identical to the signal input from terminal RI of the self-synchronous transfer control circuit.
  • terminal CP of C element 9 a described above is changed to the “H” level, the terminal CO of C element 9 a is changed to “L” level to be output, resulting that an “L” level signal is output from terminal CO of the self-synchronous transfer control circuit.
  • Counter 9 f takes in the output of delay element 9 t , i.e. the output of D type flip-flop 9 e indicating the copying number information when the FEB signal is at “L” level, and when the FEB signal is subsequently raised to “H” level, counter 9 f executes counting every time a clock is input to terminal CK, outputs the counted value from terminal N to terminal NO, and outputs an “L” level signal from terminal Z. When the counted value corresponds to the number set from terminal NUM, counter 9 f stops the counting, which makes the output of terminal Z “H” level.
  • Terminal CP of C element 9 a is changed to “H” level, and thus the output of terminal CO of C element 9 a is changed to “L” level, the signal being input to inverter 9 h , which outputs an “H” level signal.
  • the “H” level signal at the output of inverter 9 h is input to NAND gate 9 k , and also an “H” level signal is input to the other input terminal from output Q of D type flip-flop 9 c , so that the output of NAND gate 9 k will be at “L” level.
  • the “L” level signal is input to AND gate 9 p , which therefore outputs the “L” level signal. That is, the self-synchronous transfer control circuit outputs the “L” level signal from terminal CO. Then, after a certain period of time, the “L” level signal will be input from terminal RI of the self-synchronous transfer control circuit.
  • the “H” level signal at the output of inverter 9 h is also input to NAND gate 9 i .
  • D type flip-flops 9 c and 9 d both output “H” level signals, which makes the output of NAND gate 9 i “L” level.
  • the “L” level signal is input to AND gate 9 j , outputting the “L” level signal, which will be applied to pulse input terminal CI of C element 9 b .
  • the “H” level signal is input to inverter 9 q , the output thereof being “L” level.
  • the “L” level signal is input to AND gate 9 m.
  • the “L” level signal input from terminal RI of the self-synchronous transfer control circuit is input to AND gate 9 m .
  • the output of AND gate 9 m will be at “L” level, and the “L” level signal will then be input to terminal RI of C element 9 a .
  • terminal RI of the self-synchronous transfer control circuit is changed from “L” level to “H” level for being input, terminating the transfer of the first packet.
  • an “L” level signal is output from terminal FEB, and the output from terminal NO will be indeterminate, since counter 9 f is not operating.
  • the signal output from terminal CO of C element 9 b is input to terminal CI of C element 9 b maintaining its level.
  • terminal CO of C element 9 a is fixed to “H” level, allowing AND gate 9 p to output the signal output from terminal CO of C element 9 b without change of its level from terminal CO of the self-synchronous transfer control circuit.
  • the “L” level signal is output from terminal CO of C element 9 b
  • the second “L” level signal is output from terminal CO of the self-synchronous transfer control circuit.
  • an “L” level signal is input to terminal CI of C element 9 b via OR gate 9 n and AND gate 9 j.
  • an “L” level signal is input to terminal RI of the self-synchronous transfer control circuit, and thus an “L” level signal will be input to terminal RI of C element 9 b .
  • the “H” level signal output from terminal CO of C element 9 b is output from terminal CO of the self-synchronous transfer circuit as the “H” level signal via gate 9 p , while being input to terminal CI of C element 9 b also as the “H” level via OR gate 9 n and AND gate 9 j .
  • terminal RI of the self-synchronous transfer control circuit When the signal level at terminal RI of the self-synchronous transfer control circuit is changed from “L” to “H” after a certain period of time, the second packet transfer is terminated. At that time, terminal FEB outputs an “H” level signal, and terminal NO outputs a “0” level signal.
  • An “L” level signal is input from terminal RI of the self-synchronous transfer control circuit after a certain period of time, and thus the “L” level signal is input to terminal RI of C element 9 b .
  • C element 9 b receives the signal, changing the level of terminal CP of C element 9 b from “H” to “L”, and that of terminal CO of C element 9 b from “L” to “H”. This allows terminal CO of the self-synchronous transfer control circuit to output an “H” level signal.
  • D type flip-flop 9 g takes in a signal at input terminal D synchronously with the rise of the signal at terminal CP of C element 9 b (the rise via inverter 9 r ), and takes out the signal from output terminal Q of D type flip-flop 9 g.
  • the input signal of D type flip-flop 9 g is then at “L” level via inverter 9 u , since output signal Z of counter 9 f is at “H” level. That is, Q output of D type flip-flop 9 g takes out an “L” level signal, and the output of inverter 9 q rises to “H” level.
  • This “H” level signal is input to AND gate 9 m , and the output thereof, which had been fixed to “L” level heretofore, is changed to a signal identical to the signal input from terminal RI of the self-synchronous transfer control circuit.
  • the self-synchronous transfer control circuit continues the packet transfer operation as described above, such that, when N is input as the copying number information, the initial packet transfer operation is performed and thereafter counting is executed from 0, 1, 2, . . . to N. Therefore, N+2 packets are transferred. Conversely, if N copies are required, “N ⁇ 2” will be input as the copying number information.
  • FIG. 3 is a block diagram showing an example where the self-synchronous transfer control circuit in the second embodiment of the present invention is used for a data transmission device employing a handshake system.
  • self-synchronous transfer control circuit 13 b shown in FIG. 1 is connected between C elements 13 a and 13 c
  • an instruction decoder 13 g is provided between pipeline registers 13 d and 13 e
  • a node number manipulation circuit 13 h is provided between pipeline registers 13 e and 13 f .
  • the packet data to be input to the data transmission device includes a destination node number, a generation number, an instruction code and data, as described above with reference to FIG. 12 .
  • instruction decoder 13 g decodes the instruction code, providing a CPY flag and copying number information NUM to self-synchronous transfer control circuit 13 b .
  • Self-synchronous transfer control circuit 13 b controls the data transfer for C element 13 c in the subsequent stage in accordance with the CPY flag and copying number information NUM to be input.
  • Self-synchronous transfer control circuit 13 b outputs one pulse signal from terminal CP when the SEND signal and the ACK signal between the circuit 13 b and C element 13 c in the subsequent stage are both in the “H” level and when the SEND signal from C element 13 a in the preceding stage rises from “L” level to “H” level. This allows the packet data input to pipeline register 13 e to be transferred to pipeline register 13 f together with the SEND pulse signal from self-synchronous transfer control circuit 13 b to C element 13 c.
  • C element 13 c sends a data transfer enabling signal (ACK signal “H”) to self-synchronous transfer control circuit 13 b when the transfer of the first packet to C element (not shown) in the subsequent stage is completed.
  • Self-synchronous transfer control circuit 13 b which has received the signal in turn sends the subsequent SEND signal to C element 13 c , and also the second packet data to pipeline register 13 f.
  • self-synchronous transfer control circuit 13 b outputs FEB signal “H” and NO signal “0”, and node number manipulation circuit 13 h manipulates the node number using these signals so as to distinguish the second packet data from the first packet data.
  • the FEB signal and the NO signal are added to the node number to distinguish the packets from each other.
  • a node number is applied using the FEB signal and the NO signal such that the packet can be distinguished the other copy packets.
  • the input of one packet can output a plurality of packets holding the same data.
  • FIGS. 4A and 4B contrastively shows programs for an example where four copies of packets are made in a conventional example and in the embodiment of the present invention.
  • the conventional example only up to two copies could be made from one node as shown in FIG. 4A , whereas a plurality of copies can be made by the COPYn instruction according to the embodiment of the present invention as shown in FIG. 4B , resulting in reduction of the number of executive instructions.
  • the operation result data of 24 bits were required to be divided into higher 12 bits and lower 12 bits for operation.
  • the operation was realized by executing two instructions such as an instruction outputting a packet including the higher 12-bit data and an instruction outputting a packet including the lower 12-bit data by adjusting a shift. An embodiment for improving this will be described below.
  • a transfer control circuit is constituted by C elements 21 a and 21 b , self-synchronous transfer control circuit 21 c , and a C element 21 d connected in series.
  • Pipeline registers 21 e , 21 f , 21 g and 21 i constitute a data transmission path, in which a multiplier 21 j is connected between pipeline registers 21 e and 21 f , and a shifter 21 k , a lower-order extraction circuit 21 l and a copy detection circuit 21 m are provided between pipeline registers 21 f and 21 g .
  • a multiplexer 21 h and a node number manipulation circuit 21 n are provided between pipeline registers 21 g and 21 i .
  • the self-synchronous transfer control circuit shown in FIG. 6 may be used for self-synchronous transfer control circuit 21 c , the self-synchronous transfer control circuit shown in FIG. 6 is used in the present embodiment. N copies were possible in the self-synchronous transfer control circuit shown in FIG. 1 , whereas N is limited to 2 in the self-synchronous transfer control circuit shown in FIG. 6 , simplifying the configuration compared to the one in FIG. 1 .
  • FIG. 6 the configuration is similar to that shown in FIG. 1 , except for terminal NUM, terminal NO, D type flip-flop 9 e , counter 9 f , AND gate 9 j , OR gate 9 n and inverter 9 u . Further, FIGS. 7A to 7H are timing charts showing the operation of the circuit shown in FIG. 6 .
  • the data transmission device shown in FIG. 5 is included in operation unit FP of the data driven processor shown in FIG. 17 .
  • the packet to be input to operation unit FP of the data driven processor stores a pair of data (two sets of 12-bit data) to be subjected to the operation.
  • the packet including two non-operated data of 12 bits is input to pipeline register 21 e , the operation is executed by multiplier 21 j , and the operation result of 24-bit data is temporarily stored in the data field of the packet, which is held in pipeline register 21 f .
  • the 24-bit data is output from pipeline register 21 f , and divided into the higher 12-bit data and the lower 12-bit data by shifter 21 k and lower-order extraction circuit 21 l , in accordance with the shift read from the instruction code, to be output to pipeline register 21 g.
  • copy flag CPY is read from the instruction code by copy detection circuit 21 m and is provided to self-synchronous transfer control circuit 21 c .
  • Self-synchronous transfer control circuit 21 c outputs a CP pulse signal to pipeline register 21 g when the “H” level signal indicating the detection of copying is input to terminal CPY, exchanging the SEND signal and the ACK signal with C element 21 d twice, and sends two packets to pipeline register 21 i as a result.
  • the first packet is output with the “H” level of the FEB signal
  • the second packet is output with the “H” level of the FEB signal.
  • the node numbers are manipulated by node number manipulation circuit 21 n to distinguish the packets from each other while the output of multiplexer 21 h , to which the higher 12-bit data and the lower 12-bit data of the operation result are input, is switched.
  • the first packet transferred from pipeline register 21 g to pipeline register 21 i stores the higher 12 bits of the multiplication result
  • the second packet in which its node number is manipulated by, for example, incrementing thereof, stores the lower 12 bits of the multiplication result.
  • FIGS. 8A and 8B contrastively show flow diagrams for the multiplication between two sets of 12-bit data according to a conventional example and the third embodiment of the present invention.
  • an NOP instruction was executed to make two copies required for each of two sets of 12-bit data input from an input port IN 1 and an input port IN 2 .
  • an MULa (multiplication) instruction was executed to output the higher 12 bits of the multiplication result from an output port OUT 1
  • an MULb instruction was executed to output the lower 12 bits of the multiplication result from output port OUT 2 .
  • an MULc instruction multiplies two sets of 12-bit data input from input ports IN 1 and IN 2 as shown in FIG. 8B , to output the higher 12 bits from output port OUT 1 and the lower 12 bits from output port OUT 2 as a result.
  • the number of the steps for executive instructions has been reduced to a quarter of that in the conventional example, so that a simple calculation indicates that the operation speed four times as fast as that of the conventional case can be expected.
  • FIGS. 9 to 11 show the fourth embodiment of the present invention.
  • FIG. 9 is a block diagram showing a data driven device performing efficient operation process of three sets of data
  • FIG. 10 is a circuit diagram of the self-synchronous transfer control circuit shown in FIG. 9
  • FIGS. 11A to 11J are timing charts showing the operation of the self-synchronous transfer control circuit shown in FIG. 10 .
  • C elements 31 a and 31 b , a self-synchronous transfer control circuit 31 c , and C elements 31 d , 31 e and 31 f are connected in series as a transfer control circuit.
  • pipeline registers 41 a to 41 f are connected as a data transmission unit, in which an address detection circuit 41 g is connected between pipeline registers 41 a and 41 b , a copy detection circuit 41 h is connected between pipeline registers 41 b and 41 c , a multiplexer 41 i and a node number manipulation circuit 41 j are connected between pipeline registers 41 c and 41 d , a multiplier 41 k is connected between pipeline registers 41 d and 41 e , and a shifter 41 l is connected between pipeline registers 41 e and 41 f.
  • the self-synchronous transfer control circuit shown in FIG. 10 can better simplify the circuit.
  • the self-synchronous transfer control circuit shown in FIG. 10 is provided with a terminal R 3 in place of terminal NUM shown in FIG. 1 , a single-bit D type flip-flop 9 w in place of D type flip-flop 9 e in FIG. 1 , and a counter 9 x counting from 0 to 2 in place of counter 9 f counting up to N shown in FIG. 1 .
  • the self-synchronous transfer control circuit shown in FIG. 10 operates almost in the same manner as the circuit shown in FIG. 1 .
  • the data transmission mechanism shown in FIG. 9 is included in operation unit FP of the data driven processor shown in FIG. 17 .
  • the packet to be input to operation unit FP of the data driven processor stores a pair of data (two sets of 12-bit data).
  • this packet is input to pipeline register 41 a , one of the two sets of data is used for address detection of a table memory 41 m by address detection circuit 41 g , and the other is used for the data for multiplication.
  • the instruction code of the input packet is decoded and a CPY signal and a R 3 signal are sent to self-synchronous transfer control circuit 31 c by copy detection circuit 41 h , while the content of table memory 41 m is stored in the packet and held by pipeline register 41 c . If both the CPY signal and the R 3 signal are at “H” level, self-synchronous transfer control circuit 31 c outputs a CP pulse signal to pipeline register 41 c and exchanges a SEND signal and an ACK signal with C element 31 d three times, resulting in output of three packets to pipeline register 41 d.
  • the node numbers of the packets are manipulated by node number manipulation circuit 41 j to distinguish the packets from each other, while the output of multiplexer 41 i , to which higher-bit data, middle-bit data and lower-bit data of the data read from table memory 41 m are input, is switched.
  • the first packet transmitted from pipeline register 41 c to pipeline register 41 d stores the higher bits of the memory data without manipulation of its node number
  • the second packet is manipulated for its node number (e.g. the node number+1) and stores the middle bits of the memory data
  • the third packet is manipulated for its node number (e.g. the node number+2) and stores the lower bits of the memory data.
  • the respective memory data stored in the three packets output from pipeline register 41 d are multiplied with the data stored in the packets for multiplication by multiplier 41 k , and are stored in pipeline register 41 e . If the multiplied result causes an overflow, adjustment is made by shifter 41 l.
  • the input of one packet allows the operation to be executed for three sets of data, resulting in reduction of the number of the executive instructions.
  • 24-bit data is read from table memory 41 m
  • the operation can be carried out for three sets of 8-bit data.
  • This can be applied in image data processing such as RGB (24 bits) to increase the speed of the image processing.
  • one data transfer request pulse signal can be received from a transfer control circuit in a preceding stage to output a plurality of data request pulse signals to a transfer control circuit in a subsequent stage, enabling several times more efficient data transfer control compared to that of the conventional art.
  • the number of the data request pulse signals for the subsequent stage in the self-synchronous transfer control circuit may be included in a packet to be input to enable the packet copying as desired.
  • a plurality of sets of data can actually be operated by executing one instruction, so that the number of the executive instructions can be reduced, and thus the program performance is enhanced several-fold.

Abstract

When an instruction decoder decodes an instruction code included in packet data, a copy flag and copy number information are provided to a self-synchronous transfer control circuit. In the self-synchronous transfer control circuit, when a data transfer enabling signal is applied from a C element in a subsequent stage, a node number manipulation circuit manipulates a node number to make copies such that packets can be distinguished from each other, and then data is transferred from a pipeline register to a pipeline register in a subsequent stage.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a self-synchronous transfer control circuit and a data driven information processing device using the same, and more particularly, to a data driven information processing device in which a self-synchronous transfer control circuit enabling transfer of a plurality of pulses from one pulse is used for multi-output instructions, to enhance program performance.
2. Description of the Background Art
As the use of multimedia has been increased in recent years, a large amount of operations are required in image processing and so forth. The data driven information processing device (hereinafter referred to as a data driven processor) has been proposed as a device for rapidly processing such a large amount of operations. In the data driven processor, a process is carried out according to a rule in that the process is performed when there are all the input data required for a process and a resource required for the process such as an operation device is allocated. A data transmission device employing an asynchronous handshake system is used for a data processing device including information processing operation of the data driven type. In such a data transmission device, a plurality of data transmission paths are connected with each other, which mutually transmit/receive data transfer request signals (hereinafter referred to as SEND signal) and transfer enabling signals indicating whether or not the data transfer is permitted (hereinafter referred to as ACK signal), to autonomously transfer data.
FIG. 12 shows a format of a data packet to which a conventional art and the present invention are applied. In FIG. 12, the data packet includes a destination node number area F1 for storing a destination node number ND#, a generation number area F2 for storing a generation number GN#, an instruction code area F3 for storing an instruction code OPC and a data area F4 for storing data DATA. The generation number herein represents a number for distinguishing data groups to be subjected to parallel processing from each other. The destination node number represents a number for distinguishing input data within one generation from each other. The instruction code is for executing instructions stored in an instruction decoder.
FIG. 13 is a block diagram showing a configuration of a data transmission path. The data transmission path includes a self-synchronous transfer control circuit (hereinafter referred to as a C element) 1 a and a data holding circuit (hereinafter referred to as a pipeline register) 1 b constituted by a D type flip-flop. C element 1 a includes a pulse input terminal CI receiving a pulse, a transfer enabling output terminal RO outputting a transfer enabling signal indicating enabling or disabling of the transfer, a pulse output terminal CO outputting a pulse, a transfer enabling input terminal RI receiving the transfer enabling signal indicating enabling or disabling of transfer, and a pulse output terminal CP for applying a clock pulse controlling the data holding operation of pipeline register 1 b.
FIGS. 14A to 14E are timing charts illustrating the operation of C element shown in FIG. 13. When C element 1 a receives a pulse indicated in FIG. 14A from terminal CI, if the transfer enabling signal input at terminal RI shown in FIG. 14E is enabled, C element outputs a pulse indicated in FIG. 14D from terminal CO and also outputs a pulse shown in FIG. 14C to pipeline register 1 b. In response to the pulse applied from C element 1 a, pipeline register 1 b holds the applied input packet data, and then outputs the held data as output packet data.
FIG. 15 is a block diagram showing an example where the data transmission paths shown in FIG. 13 are connected in sequence via predetermined logic circuits. The input packet data is processed sequentially in logic circuits 3 d and 3 e while sequentially being transferred along pipeline registers 3 a3 b3 c. In FIG. 15, for example, when pipeline register 3 a is in a data holding state while pipeline register 3 b in the subsequent stage is also in the data holding state, no data is transmitted from pipeline register 3 a to pipeline register 3 b.
Further, if pipeline register 3 b in the subsequent stage is in non-data holding state or has come to be in the non-data holding state, data is transmitted from pipeline register 3 a to logic circuit 3 d, where the data is processed, and to pipeline register 3 b, taking at least a preset delay time. A control which is called a self-synchronous transfer control asynchronously transmits data with at least preset delay time, in response to SEND signals input to/output from terminals CI and CO and ACK signals input to/output from terminals RI and RO, which are transmitted between adjacent pipeline registers connected as described above. A circuit controlling such data transfer is called a self-synchronous transfer control circuit.
FIG. 16 is a detailed circuit diagram of the C element shown in FIG. 15. The C element may be, for example, the one described in Japanese Patent Laying-Open No. 6-83731. In FIG. 16, pulse input terminal CI receives a pulsed SEND signal (a transfer request signal) from a preceding stage, and transfer enabling output terminal RO outputs an ACK signal (a transfer enabling signal) to the preceding stage. Pulse output terminal CO outputs a pulsed SEND signal to a subsequent stage, and transfer enabling input terminal RI receives an ACK signal from the subsequent stage.
A master reset input terminal MR receives a master reset signal. When a pulse at a logic high or “H” level is applied to master reset input terminal MR, the pulse is inverted at an inverter 4 e, and the inverted pulse resets flip- flops 4 a and 4 b to initialize C element. Then, an “H” level signal is output, as an initial state, from both pulse output terminal CO and transfer enabling output terminal RO. The “H” level output from transfer enabling output terminal RO indicates a transfer enabling state, whereas a logic low or an “L” level output therefrom indicates a transfer disabling state. Further, the “H” level output from pulse output terminal CO indicates the state where no data transfer is required for the subsequent stage, whereas the “L” level therefrom indicates a state where the data transfer is required for or the data is being transferred to the subsequent stage.
When the signal of “L” level is input to pulse input terminal CI, i.e., when data transfer is required from the preceding stage, flip-flop 4 a is set and outputs an “H” level signal to an output Q. The “H” level signal is inverted at an inverter 4 d, and thus an “L” level signal is output from transfer enabling output terminal RO, which inhibits further data transfer. After a certain period of time, an “H” level signal is input to pulse input terminal CI, terminating data setting from the preceding stage to the C element. In such a state, when the circuit is in a state where an “H” level signal is input from transfer enabling input terminal RI, i.e. where the data transfer from the subsequent stage is permitted, and also in a state where pulse output terminal CO is outputting no “H” level signal, i.e., is transferring no data to the subsequent stage (the state where no data transfer is required for the subsequent stage), an NAND gate 4 c is activated, outputting an “L” level signal.
As a result, flip- flops 4 a and 4 b are both reset, and flip-flop 4 b outputs an “H” level signal, via a delay element 4 e, from pulse output terminal CP to the pipeline register, together with a SEND signal of the “L” level, via a delay element 4 f, from pulse output terminal CO to the C element in the subsequent stage. That is, the data transfer for the subsequent stage is required. The C element in the subsequent stage which has received the SEND signal of the “L” level outputs an ACK signal made to be at “L” level from terminal RO, indicating transfer inhibition, such that no further data is transferred to the C element. The C element inputs the “L” level ACK signal from transfer enabling input terminal RI, setting flip-flop 4 b. As a result, the “L” level signal is output, via delay element 4 e, from pulse output terminal CP to the pipeline register, and also the “H” level SEND signal is output, via delay element 4 f, from pulse output transmit CO to the subsequent stage, terminating the data transfer.
FIG. 17 is a schematic block diagram of a conventional data driven processor configured including the data transfer device shown in FIG. 15. In FIG. 17, a data driven processor Pe includes a junction unit JNC, a firing control unit FC, an operation unit FP, a program storage unit PS, a branch unit BRN, a plurality of pipeline registers 3 a to 3 c, and a plurality of C elements 2 a to 2 c. Each of C elements 2 a to 2 c controls packet transfer for a corresponding processing unit (FC, FP or PS) by exchanging packet transfer pulses (signals at CI, CO, RI and RO) to C elements in preceding and subsequent stages. In response to pulse inputs from the corresponding C elements 2 a to 2 c, pipeline registers 3 a to 3 c each takes in the data input from the preceding processing unit and holds the data, and delivers it to the output stage, where the data is held until the next pulse is input.
In FIG. 17, when the data packet shown in FIG. 12 is input to processor Pe, the input packet first passes through junction unit JNC, is transferred to firing control unit FC, and a pair data is formed from identical packets based on a destination node number ND# and a generation number GN#. That is, two different data packets having identical node number ND# and generation number GN# are detected, and the data in one of the data packets is additionally stored in data area F4 (FIG. 12) of the other data packet, outputting the other data packet. The packet of which the pair data (a set of data) is stored in data area F4 is subsequently transmitted to operation unit FP. Operation unit FP inputs the transmitted data packet, executes a predetermined operation for the content of the input packet based on instruction code OPC of the input packet, and stores the operation result in data area F4 of the input packet. The input packet is subsequently transmitted to program storage unit PS.
Program storage unit PS inputs the transmitted data packet, and reads node information (node number ND#) to which the packet should go next from the program memory in program storage unit PS, instruction information (instruction code OPC) to be subsequently executed, and a copy flag CPY. The read destination node number ND# and instruction code OPC are then stored respectively in destination node number area F1 and instruction code area F3 of the input packet. Further, if the read copy flag CPY is “I”, the subsequent address in the program memory is determined also to be valid, and thus the packet storing destination node number ND# and instruction code OPC stored in the next address will also be generated.
The packet output from program storage unit PS is transmitted to branch unit BRN, and is output based on its destination node number ND#, or is returned again into the processor. To make three copies of identical data, the packet returned to the processor will be used for the copying process. Thus, to make a plurality copies of the identical data, the packet must be returned to the processor a plurality of times for the copying process.
FIG. 4A is a data flow diagram showing an example where four copies of the input data are made. An NOP (copying without operation) instruction 16 a is executed for the input data to output data 16 h and 16 i. Data 16 i is executed as an OPC1 instruction 16 d corresponding to instruction code OPC of the packet shown in FIG. 12, and data 16 h is executed as an NOP instruction 16 b. In NOP instruction 16 b, copying is executed to output data 16 j and 16 k. Data 16 k is executed as an OPC2 instruction 16 e, and data 16 j is executed as an NOP instruction 16 c. In NOP instruction 16 c, copying is executed to output data 16 l and 16 m. Data 16 m is executed as an OPC3 instruction 16 f, and data 16 l is executed as an OPC4 instruction 16 g. Thus, to make four copies of data, two packet-copying instructions must be executed three times.
FIG. 18 is a diagram showing an example where a conventional data driven processor is used to execute a multiplication instruction. In FIG. 18, a multiplier 3 f and a shifter 3 g are provided as logic circuits 3 d and 3 e shown in FIG. 15 described earlier. For example, 12-bit data is multiplied with another 12-bit data, the operation result will be 24-bit data. However, the data to be stored in the data field as a packet format is limited to 12 bits as shown in FIG. 12, and therefore the resulted data of 24 bits must be divided into higher 12 bits and lower 12 bits for operation. Thus, shifter 3 g has been used to execute two instructions, such as an instruction outputting a packet including the higher 12-bit data and an instruction outputting a packet including the lower 12-bit data, to realize the operation. As described above, when a process is to be executed such that a plurality of copies of packets are made or a plurality of identical data are required in the conventional data driven processor, it can be realized by executing the NOP instruction a plurality times, which however generates a useless go-around packet for executing the NOP instruction, i.e. a go-around packet returned from the packet output to the packet input as shown in FIG. 17. This has made it difficult to enhance the performance of the program execution.
SUMMARY OF THE INVENTION
A main object of the present invention is, therefore, to provide a self-synchronous transfer control circuit for enabling efficient execution of a program, and a data driven information processing device using the same.
According to one aspect of the present invention, a self-synchronous transfer control circuit includes: a transfer control circuit transferring a first pulse applied from a preceding stage to a subsequent stage as a second pule based on an instruction signal instructing enabling or disabling of transfer; and a pulse control circuit receiving one data transfer request pulse signal as the first pulse from the transfer control circuit in the preceding stage to output a plurality of data transfer request pulse signals as the second pulse to the transfer control circuit in the subsequent stage.
Thus, according to the present invention, it is possible to receive one data transfer request pulse signal from the transfer control circuit in the preceding stage to output a plurality of data request pulse signals to the transfer control circuit in the subsequent stage, enabling several-fold efficient data transfer control compared to a conventional example.
Preferably, a data number setting circuit is further provided, which can set the number of data transferred to the transfer control circuit in the subsequent stage.
Preferably, the pulse control circuit includes: a first logic circuit outputting a transfer enabling pulse signal to the transfer control circuit in the preceding stage as a third pulse, in response to application of the data transfer request pulse signal from the transfer control circuit in the preceding stage; a second logic circuit outputting data transfer request pulse signal to the transfer control circuit in the subsequent stage; a storage circuit storing the number of data in response to setting of the number of data by the data number setting circuit; a gate circuit receiving a transfer enabling signal as a fourth pulse from the transfer control circuit in the subsequent stage; and a transfer circuit outputting the transfer request pulse signal from the second logic circuit by the number of data stored in the storage circuit every time the gate circuit receives the transfer enabling signal, in response to application of the data transfer request pulse signal to the first logic circuit, when the number of data is stored in the storage circuit.
More preferably, the pulse control circuit includes: a counter circuit counting the number of times the transfer request pulse signal is output; and a disabling circuit comparing the counter output of the counter circuit with the number of data stored in the storage circuit to disable the output of the transfer request pulse signal by the transfer circuit, in response to correspondence thereof.
According to another aspect of the present invention, a data driven information processing device, using a self-synchronous transfer control circuit receiving one data transfer request pulse signal indicating request of transfer from a transfer control circuit in a preceding stage to output a plurality of transfer request pulse signals to a transfer control circuit in a subsequent stage, includes: a data transmission path holding a data packet based on a clock signal applied from the self-synchronous transfer control circuit; and a data number detection circuit for detecting the number of data based on output packet information set to the data packet held in the data transmission path, the self-synchronous transfer control circuit outputting a transfer request pulse signal corresponding to the number of data, in response to detection of the number of data by the data number detection circuit.
Preferably, the data transmission path holds a data packet including a destination field storing at least destination information, an instruction field storing instruction information and a data field storing data, and the data number detection circuit transmits, in response to detection that a copying instruction is present in an instruction field included in the data packet held in the data transmission path, data copied from the data transmission path to a data transmission path in a subsequent stage.
More preferably, the data number detection circuit transmits a plurality of data packets having the same data as the data in a data field included in the data packet and having destination information different from each other, from the data transmission path to a data transmission path in a subsequent stage, in response to detection of the copying instruction.
More preferably, the data number detection circuit transmits a plurality of data packets different from data in the data packet from the data transmission path to a data transmission path in a subsequent stage, in response to detection of the copying instruction.
The foregoing and other objects, features, aspects and advantages of the present invention will become more apparent from the following detailed description of the present invention when taken in conjunction with the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a circuit diagram showing a self-synchronous transfer control circuit used in a data driven processor according to the first embodiment of the present invention;
FIGS. 2A to 2J are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 1;
FIG. 3 is a block diagram illustrating a process procedure for making N copies of an input data, according to the second embodiment of the present invention;
FIGS. 4A and 4B are flow diagrams contrastively showing process procedures making four copies of the input data, according to a conventional example and to the second embodiment of the present invention;
FIG. 5 is a block diagram showing a process content of a multiplication instruction in relation to a multiplication process causing an overflow, according to the third embodiment of the present invention;
FIG. 6 is a detailed circuit diagram of the self-synchronous transfer control circuit shown in FIG. 5;
FIGS. 7A to 7H are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 6;
FIGS. 8A and 8B are flow diagrams contrastively showing the multiplication process causing the overflow, according to a conventional example and to the third embodiment of the present invention;
FIG. 9 is a block diagram illustrating a procedure simultaneously processing three data, according to the fourth embodiment of the present invention;
FIG. 10 is a detailed circuit diagram of the self-synchronous transfer control circuit shown in FIG. 9;
FIGS. 11A to 11J are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 10;
FIG. 12 shows a format of a data packet applied to a conventional example and an embodiment of the present invention;
FIG. 13 shows a data transmission path in a conventional data driven processor;
FIGS. 14A to 14E are timing charts showing the operation of the C element shown in FIG. 13;
FIG. 15 is a block diagram showing a conventional general data driven device;
FIG. 16 is a circuit diagram showing a conventional C element;
FIG. 17 is a block diagram showing a conventional data driven processor; and
FIG. 18 shows an example where a multiplication instruction is executed in a conventional data driven processor.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
FIG. 1 is a circuit diagram showing a self-synchronous transfer control circuit in the first embodiment of the present invention. In FIG. 1, a pulse input terminal CI receives a pulsed transfer request signal from a preceding stage, and a transfer enabling output terminal RO outputs a transfer enabling signal to the preceding stage. A pulse output terminal CO outputs a pulsed transfer request signal to a subsequent stage, and a transfer enabling input terminal RI receives a transfer enabling signal from the subsequent stage. A master reset input terminal MRB receives a master reset signal, and a terminal EXB receives a packet erasing signal. A terminal CPY receives a packet copying signal, and an terminal NUM receives a packet copying number signal.
Further, the self-synchronous transfer control circuit includes C elements 9 a and 9 b, D type flip- flops 9 c, 9 d, 9 e and 9 g, NAND gates 9 k and 9 i, OR gates 9 l and 9 n, AND gates 9 p, 9 j and 9 m, a counter 9 f, inverters 9 h, 9 q, 9 r, 9 u and 9 v, a flip-flop 9 s, and a delay element 9 t.
FIGS. 2A to 2J are timing charts illustrating the operation of the self-synchronous transfer control circuit shown in FIG. 1.
Subsequently, referring to the timing charts in FIGS. 2A to 2J, a packet erasing operation, a packet normal transfer operation and a packet copying operation of the self-synchronous transfer control circuit in FIG. 1 are sequentially described.
First, when a pulse of “L” level is input from master reset terminal MRB, C elements 9 a and 9 b are reset, and “H” level signals are output both from the respective pulse output terminal CO and transfer enabling output terminal RO. The timing charts shown in FIGS. 2A to 2J begin from this state. As a result, as shown in FIGS. 2I and 2B, the “H” level signals are output both from pulse output terminal CO and transfer enabling output terminal RO of the self-synchronous transfer control circuit, initializing the self-synchronous transfer control circuit.
Further, D type flip-flop 9 g is asynchronously reset, outputting an “L” level signal at its output Q. The signal is inverted to an “H” level signal at inverter 9 q, and is input to a three-input AND gate 9 m. In the operation of C elements 9 a and 9 b, parts overlapping with those described in the conventional art will not be repeated.
When the “L” level signal indicated in FIG. 2C is input to terminal EXB, the self-synchronous transfer control circuit executes the packet erasing operation. That is, when a pulse signal of the “L” level shown in FIG. 2A is input from pulse input terminal CI of the self-synchronous transfer control circuit in a state where the “L” level signal has been input to terminal EXB, the pulse signal of the “L” level is input to pulse input terminal CI of C element 9 a.
As for terminal RI, to which master reset signal MRB has already been input, the “H” level signal indicated in FIG. 2J is input thereto, and C element 9 a operates as conventional. When terminal CI is raised to the “H” level as shown in FIG. 2A after a certain time period, the “L” level signal indicated in FIG. 2I is output from pulse output terminal CO of C element 9 a, changing the level of the signal at pulse output terminal CP for a pipeline register to “H” level. The “H” level signal output from terminal CP of C element 9 a sets flip-flop 9 s, which outputs the “L” level signal indicated in FIG. 2H to terminal FEB via delay element 9 t.
Moreover, in synchronization with the rise of the signal at the terminal CP, D type flip-flop 9 c takes in the “L” level signal which has been input from terminal EXB, and takes out the signal from output Q thereof. This allows NAND gate 9 k to output an “H” level signal. Terminal CO of C element 9 b also outputs an “H” level signal in a similar manner, and hence pulse output terminal CO of the self-synchronous transfer control circuit keeps outputting the “H” level signal via AND gate 9 p. Further, output Q of D type flip-flop 9 c is input to one input terminal of OR gate 9 l as an “L” level signal, so that the signal output from pulse output terminal CO of C element 9 a will directly be an output of OR gate 9 l.
Furthermore, an “H” level signal is applied to transfer enabling input terminal RI of the self-synchronous transfer control circuit as an initial state, so that the output signal of OR gate 9 l input to AND gate 9 m will directly be an output signal of AND gate 9 m. As a result, the signal output from pulse output terminal CO of C element 9 a will be input to transfer enabling input terminal RI of C element 9 a as it is.
As described above, the “L” level signal is output from pulse output terminal CO of C element 9 a, and thus the “L” level signal is input to transfer enabling input terminal RI of C element 9 a. This changes terminal CP of C element 9 a to the “L” level as indicated also in the timing charts of FIG. 14 referenced in the conventional example. As a result, terminal CO of C element 9 a is changed to the “H” level, the signal therefrom being input to terminal RI of C element 9 a via OR gate 9 l and AND gate 9 m, which generates a state where subsequent data transfer is permitted, terminating the packet erasing operation.
It is noted that, as clearly shown in FIG. 2, terminal CO is maintained at the “H” level during the erasing operation, and thus the packet will not be transferred to the subsequent stage, but be overwritten by the next packet transferred from the preceding stage and disappears.
The packet normal transfer operation of the self-synchronous transfer control circuit will now be described. In a state where an “H” level signal is input from terminal EXB and an “L” level signal is input from terminal CPY, when a pulse signal of “L” level is input from pulse input terminal CI of the self-synchronous transfer control circuit, a pulse signal of “L” level is input to pulse input terminal CI of C element 9 a, C element 9 a operating as in the conventional example, and when the signal at terminal CI is raised to “H” level after a certain period of time, a “L” level signal is output from pulse output terminal CO of C element 9 a. Further, a signal of the “H” level is output from pulse output terminal CP to the pipeline register. The “H” level signal from pulse output terminal CP of C element 9 a sets flip-flop 9 s, outputting an “L” level signal to terminal FEB via delay element 9 t.
Moreover, in synchronization with the rise of the signal at pulse output terminal CP, D type flip-flop 9 c takes in the “H” level signal which has been input from terminal EXB and delivers the signal to output Q of D type flip-flop 9 c. Further, D type flip-flop 9 d takes in the “L” level signal indicated in FIG. 2D that has been input from terminal CPY at the same timing, and delivers the signal to output Q of D type flip-flop 9 d. The “L” level signal output from D type flip-flop 9 d is input to NAND gate 9 i, raising the output of NAND gate 9 i to “H” level. Also, because terminal CO of C element 9 b is at the “H” level in the initial state, the output of OR gate 9 n and therefore of AND gate 9 j will be at the “H” level. Pulse input terminal CI of C element 9 b keeps receiving this “H” level signal, which prevents C element 9 b from operating in this mode.
The output signal of the “H” level from D type flip-flop 9 c is input to NAND gate 9 k, so that the output of NAND gate 9 k will output an inversion signal of the signal output from inverter 9 h, i.e. a signal identical to the output of terminal CO of C element 9 a. Further, terminal CO of C element 9 b is fixed to “H” level, so that the signal output from NAND gate 9 k is input to NAND gate 9 p and is output from NAND gate 9 p as it is. That is, a signal identical to the output signal of terminal CO of C element 9 a will be output from terminal CO of the self-synchronous transfer control circuit. The output signal of “H” level from D type flip-flop 9 c is also input to OR gate 9 l, fixing the output of OR gate to the “H” level.
Furthermore, D type flip-flop 9 g maintains the state where master reset signal MRB is input, so that output Q thereof will be at the “L” level and the output of inverter 9 q will be at the “H” level, and hence the output of AND gate 9 m will be a signal identical to the signal input from terminal RI of the self-synchronous transfer control circuit. This means that a signal identical to the signal input from terminal RI of the self-synchronous transfer control circuit will be input to terminal RI of C element 9 a. When terminal CP of C element 9 a described above is changed to the “H” level, the terminal CO of C element 9 a is changed to “L” level to be output, resulting that an “L” level signal is output from terminal CO of the self-synchronous transfer control circuit.
After a certain time period, the “L” level signal is input from terminal RI of the self-synchronous transfer control circuit, and thus the “L” level signal is input to terminal RI of C element 9 a. This changes the signal at terminal CP of C element 9 a to “L” level for being output, changing the signal at terminal CO of the C element 9 a, i.e. the output from terminal CO of the self-synchronous transfer control circuit, to “H” level. The “H” level signal is then input from terminal RI of the self-synchronous transfer control circuit after a certain time period, generating a state where the subsequent data transfer is permitted, and thus the packet normal transfer operation of the self-synchronous transfer control circuit is terminated.
Finally, the packet copying operation of the self-synchronous transfer control circuit will be described. An “H” level signal is input from terminal EXB, an “H” level signal is input from terminal CPY, and packet copying number information is input from terminal NUM. In this state, when a pulse signal of “L” level is input from pulse input terminal CI of the self-synchronous transfer control circuit, a pulse signal of “L” level is input to pulse input terminal CI of C element 9 a, C element 9 a operating as in the conventional example. When terminal CI is raised to “H” level after a certain period of time, a signal of “L” level is output from pulse output terminal CO of C element 9 a.
Further, the signal level at pulse output terminal CP for the pipeline register is changed from “L” to “H” for being output. The signal of “H” level from terminal CP of C element 9 a sets flip-flop 9 s, outputting an “L” level signal to terminal FEB of counter 9 f via delay element 9 t.
Further, in synchronization with the rise of the signal at terminal CP, D type flip-flop 9 c takes in the “H” level signal which has been input from terminal EXB and outputs the signal from output Q thereof.
Moreover, D type flip-flop 9 d takes in the “H” level signal which has been input from terminal CPY at the same timing and takes out the signal at output Q of D type flip-flop 9 d, whereas D type flip-flop 9 e takes in an integer indicating the copying number information that has been input from terminal NUM at the same timing, as shown in FIG. 2E, and takes out the signal from output Q of the same D type flip-flop 9 e. D type flip-flop 9 e shown in FIG. 1 is constituted by a plurality of D type flip-flops aligned in parallel, and when, for example, the copying number information is five, three-bit information of “101” is input using three D type flip-flops for each bit.
Counter 9 f takes in the output of delay element 9 t, i.e. the output of D type flip-flop 9 e indicating the copying number information when the FEB signal is at “L” level, and when the FEB signal is subsequently raised to “H” level, counter 9 f executes counting every time a clock is input to terminal CK, outputs the counted value from terminal N to terminal NO, and outputs an “L” level signal from terminal Z. When the counted value corresponds to the number set from terminal NUM, counter 9 f stops the counting, which makes the output of terminal Z “H” level.
Terminal CP of C element 9 a is changed to “H” level, and thus the output of terminal CO of C element 9 a is changed to “L” level, the signal being input to inverter 9 h, which outputs an “H” level signal. The “H” level signal at the output of inverter 9 h is input to NAND gate 9 k, and also an “H” level signal is input to the other input terminal from output Q of D type flip-flop 9 c, so that the output of NAND gate 9 k will be at “L” level. The “L” level signal is input to AND gate 9 p, which therefore outputs the “L” level signal. That is, the self-synchronous transfer control circuit outputs the “L” level signal from terminal CO. Then, after a certain period of time, the “L” level signal will be input from terminal RI of the self-synchronous transfer control circuit.
The “H” level signal at the output of inverter 9 h is also input to NAND gate 9 i. Further, D type flip- flops 9 c and 9 d both output “H” level signals, which makes the output of NAND gate 9 i “L” level. The “L” level signal is input to AND gate 9 j, outputting the “L” level signal, which will be applied to pulse input terminal CI of C element 9 b. This changes the signal level at transmission enabling output terminal RO of C element 9 b to “L” level for being output, and the signal is input to set terminal S of D type flip-flop 9 g to asynchronously set the same, resulting that an “H” level signal is output from output Q of D type flip-flop 9 g. The “H” level signal is input to inverter 9 q, the output thereof being “L” level. The “L” level signal is input to AND gate 9 m.
The “L” level signal input from terminal RI of the self-synchronous transfer control circuit is input to AND gate 9 m. The output of AND gate 9 m will be at “L” level, and the “L” level signal will then be input to terminal RI of C element 9 a. This changes the signal level at terminal CP of C element 9 a to “L” for being output, and changes the signal level of terminal CO of C element 9 a to “H” to the contrary.
Further, when the “L” level signal input from terminal RI of the self-synchronous transfer control circuit is input to terminal RI of C element 9 b, terminal CO of C element 9 b is changed to “H” level. When the “H” level signal is output from terminal CO of C element 9 a, the “H” level signal is applied to AND gate 9 p via inverter 9 h and NAND gate 9 k. Because terminal CO of C element 9 b is at “H” level, the “H” level signal is output from AND gate 9 p to terminal CO of the self-synchronous transfer control circuit.
After a predetermined period of time, terminal RI of the self-synchronous transfer control circuit is changed from “L” level to “H” level for being input, terminating the transfer of the first packet. At that time, an “L” level signal is output from terminal FEB, and the output from terminal NO will be indeterminate, since counter 9 f is not operating.
Whereas, the “H” level signal output from terminal CO of C element 9 a is separately applied to AND gate 9 j via inverter 9 h and NAND gate 9 i. At this time point, terminal CO of C element 9 b is at “H” level, making the output of OR gate 9 n the “H” level, and therefore the output of AND gate 9 j will also be at the “H” level, and the “H” level signal will be input to terminal CI of C element 9 b. Thus, the signal level at terminal RI of the self-synchronous transfer control circuit is changed from “L” to “H”, fulfilling the conditions in that C element 9 b operates as in the conventional example, and hence terminal CP of C element 9 b is raised from “L” level to “H” level.
On the other hand, terminal CO of C element 9 b falls from “H” level to “L” level. The “H” level signal of the output of terminal CP of C element 9 b sets flip-flop 9 s, so that the “H” level signal is output from terminal FEB of the self-synchronous transfer control circuit via delay element 9 t. Thereafter, counter 9 f counts up from 0 by a rising signal of terminal CP of C element 9 b. Counter 9 f outputs the counted result of “0” from terminal NO, outputting an “H” level signal from terminal Z of counter 9 f if it corresponds to the number set by input terminal NUM, and outputting an “L” level signal if there is no correspondence.
A case where no correspondence is found between the counted result and the set number will now be discussed. At that time, the “L” level signal is output from terminal Z of counter 9 f, and is therefore input to OR gate 9 n. As described earlier, AND gate 9 m is masked by the “L” level signal of the output from inverter 9 q, so that terminal RI of C element 9 a is fixed to the “L” level, and terminal CO of C element 9 a is fixed to “H” level. This makes the output of NAND gate 9 i “H” level, and thus the output of OR gate 9 n passes through AND gate 9 j as it is.
Therefore, the signal output from terminal CO of C element 9 b is input to terminal CI of C element 9 b maintaining its level. Likewise, terminal CO of C element 9 a is fixed to “H” level, allowing AND gate 9 p to output the signal output from terminal CO of C element 9 b without change of its level from terminal CO of the self-synchronous transfer control circuit. Because the “L” level signal is output from terminal CO of C element 9 b, the second “L” level signal is output from terminal CO of the self-synchronous transfer control circuit. Further, an “L” level signal is input to terminal CI of C element 9 b via OR gate 9 n and AND gate 9 j.
After a certain period of time, an “L” level signal is input to terminal RI of the self-synchronous transfer control circuit, and thus an “L” level signal will be input to terminal RI of C element 9 b. This changes the signal level of terminal CP of C element 9 b from “H” to “L”, and that of terminal CO of C element 9 b from “L” to “H”. The “H” level signal output from terminal CO of C element 9 b is output from terminal CO of the self-synchronous transfer circuit as the “H” level signal via gate 9 p, while being input to terminal CI of C element 9 b also as the “H” level via OR gate 9 n and AND gate 9 j. When the signal level at terminal RI of the self-synchronous transfer control circuit is changed from “L” to “H” after a certain period of time, the second packet transfer is terminated. At that time, terminal FEB outputs an “H” level signal, and terminal NO outputs a “0” level signal.
The “H” level signal input from terminal RI of the self-synchronous transfer control circuit is input to terminal RI of C element 9 b, so that conditions are matched where C element 9 b operates as in the conventional example, as described in the earlier second packet transfer, the signal level of terminal CP of C element 9 b rising from “L” to “H”, and that of terminal CO of C element 9 b falling from “H” level to “L” level. Counter 9 f counts up from “0” to “1” upon the rise of the signal at terminal CP of C element 9 b, comparing the counted result with the number set at terminal NUM. The self-synchronous transfer control circuit compares the number of counting executed by counter 9 f and the set number input from terminal NUM, repeats the above operation until they correspond with each other, and keeps outputting pulse signals from terminal CO of the self-synchronous transfer control circuit.
A case where the number of counting counted by counter 9 f and the set number input from terminal NUM correspond with each other will now be discussed. At that time, an “H” level signal is output from terminal Z of counter 9 f, and the output of OR gate 9 n is fixed to the “H” level. The “H” level signal of the output of OR gate 9 n is fixed to a state where terminal CI of C element 9 b is raised to the “H” level via gate 9 j, so that no pulse will be output from C element 9 b. Further, terminal CP of C element 9 b is then fixed to the “H” level, and terminal CO of C element 9 b is fixed to a state where “L” level is output therefrom. This is the state where the “L” level signal for transferring the last copy packet is output from terminal CO of the self-synchronous transfer control circuit.
An “L” level signal is input from terminal RI of the self-synchronous transfer control circuit after a certain period of time, and thus the “L” level signal is input to terminal RI of C element 9 b. C element 9 b receives the signal, changing the level of terminal CP of C element 9 b from “H” to “L”, and that of terminal CO of C element 9 b from “L” to “H”. This allows terminal CO of the self-synchronous transfer control circuit to output an “H” level signal. Further, D type flip-flop 9 g takes in a signal at input terminal D synchronously with the rise of the signal at terminal CP of C element 9 b (the rise via inverter 9 r), and takes out the signal from output terminal Q of D type flip-flop 9 g.
The input signal of D type flip-flop 9 g is then at “L” level via inverter 9 u, since output signal Z of counter 9 f is at “H” level. That is, Q output of D type flip-flop 9 g takes out an “L” level signal, and the output of inverter 9 q rises to “H” level. This “H” level signal is input to AND gate 9 m, and the output thereof, which had been fixed to “L” level heretofore, is changed to a signal identical to the signal input from terminal RI of the self-synchronous transfer control circuit.
Subsequently, terminal CO of the self-synchronous transfer control circuit outputs an “H” level signal, so that the “H” level signal is input to terminal RI of the self-synchronous transfer control circuit after an additional certain time period. This input signal of “H” level passes through AND gate 9 m and is input to terminal RI of C element 9 a.
After such a series of operations, the copying operation of the self-synchronous transfer control circuit is terminated. When one pulse is applied to pulse input terminal CI of the self-synchronous transfer control circuit from the preceding stage, this circuit can output one pulse from terminal CP, and output any arbitrary number of pulse signals from pulse output terminal CO to the subsequent stage.
Though the copying operation was described with reference to FIG. 2, it is noted that the self-synchronous transfer control circuit continues the packet transfer operation as described above, such that, when N is input as the copying number information, the initial packet transfer operation is performed and thereafter counting is executed from 0, 1, 2, . . . to N. Therefore, N+2 packets are transferred. Conversely, if N copies are required, “N−2” will be input as the copying number information.
FIG. 3 is a block diagram showing an example where the self-synchronous transfer control circuit in the second embodiment of the present invention is used for a data transmission device employing a handshake system. In the data transmission device shown in FIG. 3, self-synchronous transfer control circuit 13 b shown in FIG. 1 is connected between C elements 13 a and 13 c, an instruction decoder 13 g is provided between pipeline registers 13 d and 13 e, and a node number manipulation circuit 13 h is provided between pipeline registers 13 e and 13 f. The packet data to be input to the data transmission device includes a destination node number, a generation number, an instruction code and data, as described above with reference to FIG. 12.
When the data transfer from C element 13 a to self-synchronous transfer control circuit 13 b is realized, instruction decoder 13 g decodes the instruction code, providing a CPY flag and copying number information NUM to self-synchronous transfer control circuit 13 b. Self-synchronous transfer control circuit 13 b controls the data transfer for C element 13 c in the subsequent stage in accordance with the CPY flag and copying number information NUM to be input.
Self-synchronous transfer control circuit 13 b outputs one pulse signal from terminal CP when the SEND signal and the ACK signal between the circuit 13 b and C element 13 c in the subsequent stage are both in the “H” level and when the SEND signal from C element 13 a in the preceding stage rises from “L” level to “H” level. This allows the packet data input to pipeline register 13 e to be transferred to pipeline register 13 f together with the SEND pulse signal from self-synchronous transfer control circuit 13 b to C element 13 c.
C element 13 c sends a data transfer enabling signal (ACK signal “H”) to self-synchronous transfer control circuit 13 b when the transfer of the first packet to C element (not shown) in the subsequent stage is completed. Self-synchronous transfer control circuit 13 b which has received the signal in turn sends the subsequent SEND signal to C element 13 c, and also the second packet data to pipeline register 13 f.
At that time, self-synchronous transfer control circuit 13 b outputs FEB signal “H” and NO signal “0”, and node number manipulation circuit 13 h manipulates the node number using these signals so as to distinguish the second packet data from the first packet data. For example, the FEB signal and the NO signal are added to the node number to distinguish the packets from each other. Thus, for the “n” th packet, a node number is applied using the FEB signal and the NO signal such that the packet can be distinguished the other copy packets. Using a COPYn instruction, the input of one packet can output a plurality of packets holding the same data.
FIGS. 4A and 4B contrastively shows programs for an example where four copies of packets are made in a conventional example and in the embodiment of the present invention. In the conventional example, only up to two copies could be made from one node as shown in FIG. 4A, whereas a plurality of copies can be made by the COPYn instruction according to the embodiment of the present invention as shown in FIG. 4B, resulting in reduction of the number of executive instructions.
Before describing other examples of the data transmission device using the self-synchronous transfer control circuit according to the present invention, an efficient processing method of the instruction by which the operation result causes an overflow. For example, multiplication of two sets of 12-bit data is discussed. In such a case, though the operation result would be 24-bit data, the data stored in the data field as a packet format shown in FIG. 12 is limited to 12 bits, so that the operation result data of 24 bits could not be stored as one packet only.
In the conventional example described above with reference to FIG. 18, therefore, the operation result data of 24 bits were required to be divided into higher 12 bits and lower 12 bits for operation. For this purpose, in the conventional example shown in FIG. 18, the operation was realized by executing two instructions such as an instruction outputting a packet including the higher 12-bit data and an instruction outputting a packet including the lower 12-bit data by adjusting a shift. An embodiment for improving this will be described below.
FIG. 5 is a block diagram executing a multiplication instruction by a data transmission device employing a handshake system, including a new self-synchronous transfer control circuit 21 c of the present invention, and FIG. 6 is a circuit diagram showing an example where self-synchronous transfer control circuit 21 c shown in FIG. 5 is realized.
In FIG. 5, a transfer control circuit is constituted by C elements 21 a and 21 b, self-synchronous transfer control circuit 21 c, and a C element 21 d connected in series. Pipeline registers 21 e, 21 f, 21 g and 21 i constitute a data transmission path, in which a multiplier 21 j is connected between pipeline registers 21 e and 21 f, and a shifter 21 k, a lower-order extraction circuit 21 l and a copy detection circuit 21 m are provided between pipeline registers 21 f and 21 g. Further, a multiplexer 21 h and a node number manipulation circuit 21 n are provided between pipeline registers 21 g and 21 i. Though the example shown in FIG. 1 may be used for self-synchronous transfer control circuit 21 c, the self-synchronous transfer control circuit shown in FIG. 6 is used in the present embodiment. N copies were possible in the self-synchronous transfer control circuit shown in FIG. 1, whereas N is limited to 2 in the self-synchronous transfer control circuit shown in FIG. 6, simplifying the configuration compared to the one in FIG. 1.
In FIG. 6, the configuration is similar to that shown in FIG. 1, except for terminal NUM, terminal NO, D type flip-flop 9 e, counter 9 f, AND gate 9 j, OR gate 9 n and inverter 9 u. Further, FIGS. 7A to 7H are timing charts showing the operation of the circuit shown in FIG. 6.
The data transmission device shown in FIG. 5 is included in operation unit FP of the data driven processor shown in FIG. 17. The packet to be input to operation unit FP of the data driven processor stores a pair of data (two sets of 12-bit data) to be subjected to the operation. The packet including two non-operated data of 12 bits is input to pipeline register 21 e, the operation is executed by multiplier 21 j, and the operation result of 24-bit data is temporarily stored in the data field of the packet, which is held in pipeline register 21 f. The 24-bit data is output from pipeline register 21 f, and divided into the higher 12-bit data and the lower 12-bit data by shifter 21 k and lower-order extraction circuit 21 l, in accordance with the shift read from the instruction code, to be output to pipeline register 21 g.
Furthermore, copy flag CPY is read from the instruction code by copy detection circuit 21 m and is provided to self-synchronous transfer control circuit 21 c. Self-synchronous transfer control circuit 21 c outputs a CP pulse signal to pipeline register 21 g when the “H” level signal indicating the detection of copying is input to terminal CPY, exchanging the SEND signal and the ACK signal with C element 21 d twice, and sends two packets to pipeline register 21 i as a result.
The first packet is output with the “H” level of the FEB signal, whereas the second packet is output with the “H” level of the FEB signal. Using the FEB signal, the node numbers are manipulated by node number manipulation circuit 21 n to distinguish the packets from each other while the output of multiplexer 21 h, to which the higher 12-bit data and the lower 12-bit data of the operation result are input, is switched.
Thus, the first packet transferred from pipeline register 21 g to pipeline register 21 i stores the higher 12 bits of the multiplication result, whereas the second packet, in which its node number is manipulated by, for example, incrementing thereof, stores the lower 12 bits of the multiplication result.
FIGS. 8A and 8B contrastively show flow diagrams for the multiplication between two sets of 12-bit data according to a conventional example and the third embodiment of the present invention.
Conventionally, as shown in FIG. 8A, an NOP instruction was executed to make two copies required for each of two sets of 12-bit data input from an input port IN1 and an input port IN2. Subsequently, an MULa (multiplication) instruction was executed to output the higher 12 bits of the multiplication result from an output port OUT1, and an MULb instruction was executed to output the lower 12 bits of the multiplication result from output port OUT2.
In contrast, an MULc instruction according to an embodiment of the present invention multiplies two sets of 12-bit data input from input ports IN1 and IN2 as shown in FIG. 8B, to output the higher 12 bits from output port OUT1 and the lower 12 bits from output port OUT2 as a result. Thus, the number of the steps for executive instructions has been reduced to a quarter of that in the conventional example, so that a simple calculation indicates that the operation speed four times as fast as that of the conventional case can be expected.
FIGS. 9 to 11 show the fourth embodiment of the present invention. In particular, FIG. 9 is a block diagram showing a data driven device performing efficient operation process of three sets of data, FIG. 10 is a circuit diagram of the self-synchronous transfer control circuit shown in FIG. 9, and FIGS. 11A to 11J are timing charts showing the operation of the self-synchronous transfer control circuit shown in FIG. 10.
Two sets of data were handled by one packet in the data transmission device according to the embodiment shown in FIG. 5 as described earlier, whereas in the embodiment shown in FIG. 9, one packet is input to execute operation for three sets of data, outputting three packets storing three operation results.
In FIG. 9, C elements 31 a and 31 b, a self-synchronous transfer control circuit 31 c, and C elements 31 d, 31 e and 31 f are connected in series as a transfer control circuit. Further, pipeline registers 41 a to 41 f are connected as a data transmission unit, in which an address detection circuit 41 g is connected between pipeline registers 41 a and 41 b, a copy detection circuit 41 h is connected between pipeline registers 41 b and 41 c, a multiplexer 41 i and a node number manipulation circuit 41 j are connected between pipeline registers 41 c and 41 d, a multiplier 41 k is connected between pipeline registers 41 d and 41 e, and a shifter 41 l is connected between pipeline registers 41 e and 41 f.
For self-synchronous transfer control circuit 31 c, though a similar operation result could be obtained by inputting “H” level to terminal CPY and an “H” level signal to terminal NUM in the circuit shown in FIG. 1, the self-synchronous transfer control circuit shown in FIG. 10 can better simplify the circuit. Thus, the self-synchronous transfer control circuit shown in FIG. 10 is provided with a terminal R3 in place of terminal NUM shown in FIG. 1, a single-bit D type flip-flop 9 w in place of D type flip-flop 9 e in FIG. 1, and a counter 9 x counting from 0 to 2 in place of counter 9 f counting up to N shown in FIG. 1. This results in reduction of the scale of the circuit as a self-synchronous transfer circuit compared to the one in FIG. 1. The self-synchronous transfer control circuit shown in FIG. 10 operates almost in the same manner as the circuit shown in FIG. 1.
As shown in FIGS. 11D and 11E, when “H” level signals are input both from terminal CPY and terminal R3, three packet copies are enabled, outputting the first packet when FEB=“L” level and LST=“L” level, outputting the second packet when FEB=“H” level and LST=“L” level, and outputting the third packet when FEB=“H” level and LST=“H” level, as indicated in FIGS. 11H and 11F.
The data transmission mechanism shown in FIG. 9 is included in operation unit FP of the data driven processor shown in FIG. 17. The packet to be input to operation unit FP of the data driven processor stores a pair of data (two sets of 12-bit data). When this packet is input to pipeline register 41 a, one of the two sets of data is used for address detection of a table memory 41 m by address detection circuit 41 g, and the other is used for the data for multiplication.
The instruction code of the input packet is decoded and a CPY signal and a R3 signal are sent to self-synchronous transfer control circuit 31 c by copy detection circuit 41 h, while the content of table memory 41 m is stored in the packet and held by pipeline register 41 c. If both the CPY signal and the R3 signal are at “H” level, self-synchronous transfer control circuit 31 c outputs a CP pulse signal to pipeline register 41 c and exchanges a SEND signal and an ACK signal with C element 31 d three times, resulting in output of three packets to pipeline register 41 d.
Using the FEB signal and the LST signal output from self-synchronous transfer control circuit 31 c, the node numbers of the packets are manipulated by node number manipulation circuit 41 j to distinguish the packets from each other, while the output of multiplexer 41 i, to which higher-bit data, middle-bit data and lower-bit data of the data read from table memory 41 m are input, is switched.
This means that the first packet transmitted from pipeline register 41 c to pipeline register 41 d stores the higher bits of the memory data without manipulation of its node number, the second packet is manipulated for its node number (e.g. the node number+1) and stores the middle bits of the memory data, and the third packet is manipulated for its node number (e.g. the node number+2) and stores the lower bits of the memory data. The respective memory data stored in the three packets output from pipeline register 41 d are multiplied with the data stored in the packets for multiplication by multiplier 41 k, and are stored in pipeline register 41 e. If the multiplied result causes an overflow, adjustment is made by shifter 41 l.
As described above, according to the present embodiment, the input of one packet allows the operation to be executed for three sets of data, resulting in reduction of the number of the executive instructions. Assuming that 24-bit data is read from table memory 41 m, the operation can be carried out for three sets of 8-bit data. This can be applied in image data processing such as RGB (24 bits) to increase the speed of the image processing.
As has been described above, according to the embodiments of the present invention, one data transfer request pulse signal can be received from a transfer control circuit in a preceding stage to output a plurality of data request pulse signals to a transfer control circuit in a subsequent stage, enabling several times more efficient data transfer control compared to that of the conventional art.
Further, the number of the data request pulse signals for the subsequent stage in the self-synchronous transfer control circuit may be included in a packet to be input to enable the packet copying as desired.
Moreover, it is possible to make a plurality of copies of packets having identical data from one input packet without repeated execution of the NOP instruction, so that the number of the executive instructions can be reduced, and thus the program performance is enhanced several-fold.
Furthermore, a plurality of sets of data can actually be operated by executing one instruction, so that the number of the executive instructions can be reduced, and thus the program performance is enhanced several-fold.
Although the present invention has been described and illustrated in detail, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation, the spirit and scope of the present invention being limited only by the terms of the appended claims.

Claims (8)

1. A self-synchronous transfer control circuit, comprising:
a transfer control circuit transferring a first pulse applied from a preceding stage to a subsequent stage as a second pulse based on an instruction signal instructing enabling or disabling a transfer;
a pulse control circuit receiving one data transfer request pulse signal as said first pulse from said transfer control circuit in the preceding stage to output a plurality of data transfer request pulse signals as said second pulse to the transfer control circuit in the subsequent stage, and
a data number setting means setting the number of data transferred to said transfer control circuit in the subsequent stage,
wherein the transfer control circuit, the transfer control circuit in the preceding stage, and the transfer control circuit in the subsequent stage are substantially, similarly configured, and wherein the transfer control circuit transferring a first pulse applied from a preceding stage to a subsequent stage as a second pulse is self-synchronous.
2. The self-synchronous transfer control circuit according to claim 1, wherein said pulse control circuit includes
a first logic circuit outputting a transfer enabling pulse signal to said transfer control circuit in the preceding stage as a third pulse, in response to application of said data transfer request pulse signal from said transfer control circuit in the preceding stage,
a second logic circuit outputting data transfer request pulse signal to said transfer control circuit in the subsequent stage,
a storage circuit storing the number of data in response to setting of the number of data by said data number setting means,
a gate circuit receiving a transfer enabling signal as a fourth pulse from said transfer control circuit in the subsequent stage and,
a transfer circuit outputting said transfer request pulse signal from said second logic circuit by the number of data stored in said storage circuit every time said gate circuit receives said transfer enabling signal, in response to application of said data transfer request pulse signal to said first logic circuit, when said number of data is stored in said storage circuit.
3. The self-synchronous transfer control circuit according to clam 2, wherein said pulse control circuit includes
a counter circuit counting the number of times said transfer request pulse signal is output, and
a disabling circuit comparing the counter output of said counter circuit with the number of data stored in said storage circuit to disable the output of said transfer request pulse signal by said transfer circuit, in response to correspondence thereof.
4. The data driven information processing device of claim 1, wherein the output of the plurality of data transfer request pulse signals is a copying process.
5. A data driven information processing device, using a self-synchronous transfer control circuit receiving one data transfer request pulse signal indicating request of transfer from a transfer control circuit in a preceding stage to output a plurality of transfer request pulse signals to a transfer control circuit in a subsequent stage, comprising:
a data transmission path holding a data packet based on a pulse signal applied from said self-synchronous transfer control circuit; and
a data number detection means for detecting the number of data based on output packet information set to the data packet held in said data transmission path, said self-synchronous transfer control circuit outputting a transfer request pulse signal corresponding to the number of data, in response to detection of the number of data by said data number detection means, wherein said data number detection means transmits a plurality of data packets different from data packet from the data transmission path to a data transmission path in a subseciuent stage, in response to detection of said copying instruction.
6. The data driven information processing device according to claim 5, wherein said data transmission path holds a data packet including a destination field storing at least destination information, an instruction field storing instruction information and a data field storing data; and
said data number detection means transmits, in response to detection that a copying instruction is present in an instruction field included in the data packet held in said data transmission path, data copied from the data transmission path in a subsequent stage.
7. The data driven information processing device according to claim 6, wherein a data number detection means transmits a plurality of data packets having the same data as the data in a data field included in the data packet and having destination information different from each other, from the data transmission path to the data transmission path in a subsequent stage, in response to detection of said copying instruction.
8. The data driven information processing device of claim 5, wherein the pulse signal is not a clock signal.
US09/813,090 2000-03-31 2001-03-21 Self-synchronous transfer control circuit and data driven information processing device using the same Expired - Fee Related US7051194B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000098016A JP3766779B2 (en) 2000-03-31 2000-03-31 Self-synchronous data transmission apparatus and data-driven information processing apparatus using the same
JP2000-098016(P) 2000-03-31

Publications (2)

Publication Number Publication Date
US20010028629A1 US20010028629A1 (en) 2001-10-11
US7051194B2 true US7051194B2 (en) 2006-05-23

Family

ID=18612560

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/813,090 Expired - Fee Related US7051194B2 (en) 2000-03-31 2001-03-21 Self-synchronous transfer control circuit and data driven information processing device using the same

Country Status (2)

Country Link
US (1) US7051194B2 (en)
JP (1) JP3766779B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030043837A1 (en) * 2001-08-30 2003-03-06 Shingo Kamitani Data driven type information processing apparatus
US20040030871A1 (en) * 2002-08-08 2004-02-12 Schlansker Michael S. Branch reconfigurable systems and methods
US20090154568A1 (en) * 2007-12-12 2009-06-18 Realtek Semiconductor Corp. Multimedia decoding apparatus and method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004071103A (en) * 2002-08-08 2004-03-04 Sharp Corp Self-synchronizing fifo memory device
CN1833385B (en) * 2003-08-27 2013-04-24 汤姆森特许公司 Method and system for multiplexing transmission packet and Esernet packet
JP4149345B2 (en) * 2003-10-03 2008-09-10 シャープ株式会社 Data transfer control device and data driven processor comprising the data transfer control device
JP2006221226A (en) * 2005-02-08 2006-08-24 Sharp Corp Data-driven information processor and its control method
US10075970B2 (en) 2015-03-15 2018-09-11 Qualcomm Incorporated Mission critical data support in self-contained time division duplex (TDD) subframe structure
US9936519B2 (en) 2015-03-15 2018-04-03 Qualcomm Incorporated Self-contained time division duplex (TDD) subframe structure for wireless communications
US9814058B2 (en) * 2015-05-15 2017-11-07 Qualcomm Incorporated Scaled symbols for a self-contained time division duplex (TDD) subframe structure
US9992790B2 (en) 2015-07-20 2018-06-05 Qualcomm Incorporated Time division duplex (TDD) subframe structure supporting single and multiple interlace modes
DE102017005972A1 (en) * 2017-06-23 2018-12-27 Stefan Andreas Widmann Device and method for the device-specific detection of data flow errors in processing units and systems

Citations (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4214206A (en) * 1977-09-27 1980-07-22 U.S. Philips Corporation Digital transmission system having direct bit extraction from scrambled bit streams
US4692917A (en) * 1984-11-27 1987-09-08 Kokusai Denshin Denwa Co., Ltd. Packet switching system
US5140582A (en) * 1989-08-22 1992-08-18 Fujitsu Limited Packet switching system having bus matrix switch
US5267235A (en) * 1992-05-21 1993-11-30 Digital Equipment Corporation Method and apparatus for resource arbitration
JPH0683731A (en) 1992-09-02 1994-03-25 Sharp Corp Self-synchronous transfer control circuit
US5539916A (en) * 1989-10-05 1996-07-23 Mitsubishi Denki Kabushiki Kaisha DMA control for continuing transfer to input/output device in a cycle steal mode
US5577256A (en) 1992-04-28 1996-11-19 Sharp Kabushiki Kaisha Data driven type information processor including a combined program memory and memory for queuing operand data
JPH08329036A (en) 1995-06-01 1996-12-13 Sharp Corp Data-driven type information processor
US5590355A (en) 1993-08-11 1996-12-31 Sharp Kabushiki Kaisha Data driven processor, a data driven information processing device, and a method of verifying path connections of a plurality of data driven processors in such a data driven information processing device
US5630151A (en) 1993-09-02 1997-05-13 Sharp Kabushiki Kaisha Data driven information processor generating multidimensional generation number identifying generation and additional attributes of data in data packet
US5640525A (en) 1995-03-31 1997-06-17 Sharp Kabushiki Kaisha Data-driven information processing devices
US5652906A (en) 1994-06-06 1997-07-29 Sharp Kabushiki Kaisha Data driven processor with improved initialization functions because operation data shares address space with initialization data
US5748933A (en) 1994-08-31 1998-05-05 Sharp Kabushiki Kaisha Data driven type information processor suitable for image processing that utilizes a configuration condition
US5761737A (en) 1994-03-30 1998-06-02 Sharp Kabushiki Kaisha Data driven type information processing apparatus having improved generation number translation
US5794064A (en) 1995-03-17 1998-08-11 Sharp Kabushiki Kaisha Data driven information processor
US5794065A (en) 1995-05-31 1998-08-11 Sharp Kabushiki Kaisha Data driven information processor
US5802399A (en) 1995-09-22 1998-09-01 Sharp Kabushiki Kaisha Data transfer control unit for reducing memory requirements in an information processor by converting bit width of data being transferred between memory and processing parts
US5826098A (en) 1995-05-29 1998-10-20 Sharp Kabushiki Kaisha Data processing system which converts received data packet into extended packet with prescribed field for accumulation process
US5848290A (en) 1995-03-09 1998-12-08 Sharp Kabushiki Kaisha Data driven information processor
US5872991A (en) 1995-10-18 1999-02-16 Sharp, Kabushiki, Kaisha Data driven information processor for processing data packet including common identification information and plurality of pieces of data
US5913055A (en) 1995-09-20 1999-06-15 Sharp Kabushiki Kaisha Data driven information processor for executing and debugging a data flow graph without revising the data flow graph
US5918063A (en) 1992-10-27 1999-06-29 Sharp Kabushiki Kaisha Data driven type information processing apparatus including plural data driven type processors and plural memories
US5956517A (en) 1995-04-12 1999-09-21 Sharp Kabushiki Kaisha Data driven information processor
JPH11272645A (en) 1998-03-25 1999-10-08 Sharp Corp Information processor of data driving type

Patent Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4214206A (en) * 1977-09-27 1980-07-22 U.S. Philips Corporation Digital transmission system having direct bit extraction from scrambled bit streams
US4692917A (en) * 1984-11-27 1987-09-08 Kokusai Denshin Denwa Co., Ltd. Packet switching system
US5140582A (en) * 1989-08-22 1992-08-18 Fujitsu Limited Packet switching system having bus matrix switch
US5539916A (en) * 1989-10-05 1996-07-23 Mitsubishi Denki Kabushiki Kaisha DMA control for continuing transfer to input/output device in a cycle steal mode
US5577256A (en) 1992-04-28 1996-11-19 Sharp Kabushiki Kaisha Data driven type information processor including a combined program memory and memory for queuing operand data
US5267235A (en) * 1992-05-21 1993-11-30 Digital Equipment Corporation Method and apparatus for resource arbitration
JPH0683731A (en) 1992-09-02 1994-03-25 Sharp Corp Self-synchronous transfer control circuit
US5918063A (en) 1992-10-27 1999-06-29 Sharp Kabushiki Kaisha Data driven type information processing apparatus including plural data driven type processors and plural memories
US5590355A (en) 1993-08-11 1996-12-31 Sharp Kabushiki Kaisha Data driven processor, a data driven information processing device, and a method of verifying path connections of a plurality of data driven processors in such a data driven information processing device
US5630151A (en) 1993-09-02 1997-05-13 Sharp Kabushiki Kaisha Data driven information processor generating multidimensional generation number identifying generation and additional attributes of data in data packet
US5812806A (en) 1993-09-02 1998-09-22 Sharp Kabushiki Kaisha Data driven information processor configuring each data packet with a multi-attribute tag having at least two components
US5761737A (en) 1994-03-30 1998-06-02 Sharp Kabushiki Kaisha Data driven type information processing apparatus having improved generation number translation
US5652906A (en) 1994-06-06 1997-07-29 Sharp Kabushiki Kaisha Data driven processor with improved initialization functions because operation data shares address space with initialization data
US5748933A (en) 1994-08-31 1998-05-05 Sharp Kabushiki Kaisha Data driven type information processor suitable for image processing that utilizes a configuration condition
US5848290A (en) 1995-03-09 1998-12-08 Sharp Kabushiki Kaisha Data driven information processor
US5794064A (en) 1995-03-17 1998-08-11 Sharp Kabushiki Kaisha Data driven information processor
US5640525A (en) 1995-03-31 1997-06-17 Sharp Kabushiki Kaisha Data-driven information processing devices
US5956517A (en) 1995-04-12 1999-09-21 Sharp Kabushiki Kaisha Data driven information processor
US5826098A (en) 1995-05-29 1998-10-20 Sharp Kabushiki Kaisha Data processing system which converts received data packet into extended packet with prescribed field for accumulation process
US5794065A (en) 1995-05-31 1998-08-11 Sharp Kabushiki Kaisha Data driven information processor
US5870620A (en) 1995-06-01 1999-02-09 Sharp Kabushiki Kaisha Data driven type information processor with reduced instruction execution requirements
JPH08329036A (en) 1995-06-01 1996-12-13 Sharp Corp Data-driven type information processor
US5913055A (en) 1995-09-20 1999-06-15 Sharp Kabushiki Kaisha Data driven information processor for executing and debugging a data flow graph without revising the data flow graph
US5802399A (en) 1995-09-22 1998-09-01 Sharp Kabushiki Kaisha Data transfer control unit for reducing memory requirements in an information processor by converting bit width of data being transferred between memory and processing parts
US5872991A (en) 1995-10-18 1999-02-16 Sharp, Kabushiki, Kaisha Data driven information processor for processing data packet including common identification information and plurality of pieces of data
JPH11272645A (en) 1998-03-25 1999-10-08 Sharp Corp Information processor of data driving type

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030043837A1 (en) * 2001-08-30 2003-03-06 Shingo Kamitani Data driven type information processing apparatus
US7280539B2 (en) * 2001-08-30 2007-10-09 Sharp Kabushiki Kaisha Data driven type information processing apparatus
US20040030871A1 (en) * 2002-08-08 2004-02-12 Schlansker Michael S. Branch reconfigurable systems and methods
US7194609B2 (en) * 2002-08-08 2007-03-20 Hewlett-Packard Development Company, L.P. Branch reconfigurable systems and methods
US20090154568A1 (en) * 2007-12-12 2009-06-18 Realtek Semiconductor Corp. Multimedia decoding apparatus and method

Also Published As

Publication number Publication date
US20010028629A1 (en) 2001-10-11
JP3766779B2 (en) 2006-04-19
JP2001282765A (en) 2001-10-12

Similar Documents

Publication Publication Date Title
US4591979A (en) Data-flow-type digital processing apparatus
US5511207A (en) Program control circuit determining the designated number of times a sequence of instructions is repetitively executed to prevent further execution of a jump instruction
US6959004B2 (en) Data driven information processing apparatus
US4646232A (en) Microprocessor with integrated CPU, RAM, timer, bus arbiter data for communication system
US7051194B2 (en) Self-synchronous transfer control circuit and data driven information processing device using the same
US4641308A (en) Method of internal self-test of microprocessor using microcode
US5410721A (en) System and method for incrementing a program counter
US3436737A (en) Shift enable algorithm implementation means
US5913055A (en) Data driven information processor for executing and debugging a data flow graph without revising the data flow graph
US5860019A (en) Data driven information processor having pipeline processing units connected in series including processing portions connected in parallel
US4571675A (en) Microprocessor device with integrated auto-loaded timer
US4652991A (en) Data transfer apparatus
JP2937326B2 (en) Test circuit for logic circuits
JPH05233853A (en) Operation processor
US5590371A (en) Serial communication circuit on an LSI chip and communicating with another microcomputer on the chip
US7340586B2 (en) Data transfer for debugging in data driven type processor processing data packet with data flow program including transfer control bit setting instruction
US5611068A (en) Apparatus and method for controlling pipelined data transfer scheme between stages employing shift register and associated addressing mechanism
US5220670A (en) Microprocessor having ability to carry out logical operation on internal bus
JPH0779155A (en) Signal selector
SU1624532A1 (en) D flip-flop
KR0169607B1 (en) Interface
JPH09106385A (en) Data transfer control circuit
US20050074035A1 (en) Data transfer control device and data-driven processor with the data transfer control device
JP3708560B2 (en) Data flow type information processor
JPH1153424A (en) Logic simulator

Legal Events

Date Code Title Description
AS Assignment

Owner name: SHARP KABUSHIKI KAISHA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:UNEYAMA, TAKUJI;TAKASE, MOTOKI;MURAMATSU, TSUYOSHI;REEL/FRAME:011631/0993

Effective date: 20010228

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20140523