WO2006030904A1 - 半導体装置、及び通信制御方法 - Google Patents

半導体装置、及び通信制御方法 Download PDF

Info

Publication number
WO2006030904A1
WO2006030904A1 PCT/JP2005/017165 JP2005017165W WO2006030904A1 WO 2006030904 A1 WO2006030904 A1 WO 2006030904A1 JP 2005017165 W JP2005017165 W JP 2005017165W WO 2006030904 A1 WO2006030904 A1 WO 2006030904A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
clock signal
core
semiconductor device
clock
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.)
Ceased
Application number
PCT/JP2005/017165
Other languages
English (en)
French (fr)
Inventor
Atsufumi Shibayama
Koichi Nose
Masayuki Mizuno
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006535225A priority Critical patent/JP4998699B2/ja
Priority to US11/575,473 priority patent/US7702945B2/en
Publication of WO2006030904A1 publication Critical patent/WO2006030904A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/0033Correction by delay
    • H04L7/0041Delay of data signal

Definitions

  • the present invention relates to a semiconductor device having a plurality of functional blocks, and more particularly to a semiconductor device for communicating between a plurality of cores operating at different clock frequencies and a method thereof.
  • FIG. 12 is a diagram showing a semiconductor device that communicates using a synchronous method.
  • synchronous communication is a communication method that can be performed only between cores whose clocks are synchronized.
  • FIG. 13 is a diagram illustrating a semiconductor device that communicates using an asynchronous method.
  • Asynchronous communication is communication performed between cores whose frequency ratio of clocks of two cores is less than one-to-integer multiple or one-to-one-integer-multiple and whose phases of two clocks are not equal.
  • the timing at which the signal is output and the timing at which the signal is input become asynchronous, and the signal fluctuates for a certain time between "0" and "1" (this state is referred to as "meta”).
  • a technique using a synchronization circuit is usually proposed (for example, Patent Document 1).
  • Patent Document 1 includes a first core that performs a predetermined operation in synchronization with a first clock signal, and a second core that performs a predetermined operation in synchronization with a second clock signal.
  • a synchronization circuit is provided between the The synchronization circuit latches the output data of the first core in synchronization with the first clock signal, and outputs the latched signal in synchronization with the second clock signal.
  • Patent Document 2 In addition to the above, techniques for preventing malfunction due to metastability have been proposed. For example, Patent Document 2).
  • Patent Document 2 detects changes in data input signals and clock input signals, and controls so as not to change signals of data input of flip-flops when setup or hold time is not satisfied, It prevents malfunction due to metastability.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2003-273847
  • Patent Document 2 Japanese Patent Laid-Open No. 6-45880
  • the conventional synchronization method has a problem that the clock frequency ratio of each core is limited to one-to-integer multiple or one-to-one-integer-multiple. This limitation becomes increasingly severe as the number of communicating cores increases.
  • DF VS dynamic frequency voltage scaling
  • Patent Document 2 detects changes in the data input signal and the clock input signal during operation, and determines whether or not the setup or hold time is satisfied. Characteristics of power chip devices There is a problem that the operation at the clock cycle level becomes non-deterministic because the judgment standard fluctuates depending on the variation, the operating environment and the like.
  • the object of the present invention was invented in view of the above-mentioned problems, and the operation with a large degree of freedom in clock frequency that can be set by each core is deterministic. To provide a technology that enables communication between cores with high reliability.
  • the object of the present invention is to analyze a factor that affects the performance of the semiconductor device in the communication hysteresis force in the semiconductor device, and to reflect it in the semiconductor device of the next generation, thereby achieving a highly reliable semiconductor device. It is to provide.
  • the first invention for solving the mistake is a semiconductor device
  • a first clock processing circuit for outputting data according to a first clock signal; data input according to a second clock signal that coincides with the rising or falling of the first clock signal at a predetermined period
  • a second confidence processing circuit
  • a second invention for solving the above error is a semiconductor device
  • Second clock signal based on the second clock signal which becomes constant based on the second clock signal which becomes a constant for which there is a difference between the second clock signal and the second clock signal.
  • control circuit synchronizes a plurality of data in synchronization with the first clock signal. It is characterized in that it is an output control circuit that controls so as to output a predetermined number of data in a certain fixed cycle in order of human power.
  • a fourth light for solving the false condyles is as follows: In the first or second light, the control circuit arrives before the setup time out of a plurality of data. It is characterized by input control that controls to measure and input data.
  • a fifth light for solving the miscondyle is: in the first or second light, the gauze glue is a data that is less than tfmp, a setup II. Tfr neck p p ⁇ ⁇ control force control ⁇ ⁇ that it is special
  • the sixth light for solving the problem the sixth light for solving the problem, the hP, the second light for the second light, the mffP, the gluing light for the second light, tfmp, the data that does not go beyond setup II Don't let tfr neck P 2 ⁇ ⁇ control input control ⁇ ⁇ Special
  • the present invention is characterized in that data that does not arrive before the setup is subjected to one clock of the second clock signal.
  • a ninth invention for solving the above errors is the data according to any one of the first to eighth inventions.
  • Processing request data indicating a processing request or processing request reset data indicating that processing request data has been received, output from a first functional unit performing a predetermined operation in synchronization with the first clock; It features.
  • a tenth invention for solving the above-mentioned error is the above-mentioned ninth invention, wherein the processing, the request data and the processing request reset data are performed by the first function unit, the second group, and the second group. It is characterized in that the data is transmitted between the second functional units that perform predetermined operations in synchronization with the lock.
  • the request data and the processing request reset data are transmitted between the first function unit and the bus. It is characterized by being trusted data.
  • a twelfth invention for solving the above error is the semiconductor device according to any one of the first to eleventh inventions,
  • the seventeenth invention for solving errors is a method for controlling a semiconductor memory according to the present invention, wherein a certain period of data transmitted based on a first clock signal is used.
  • the phase difference with the rising or falling of the first clock signal is controlled so that only the data arriving before the setup time of the second clock signal becomes a certain value.
  • the eighteenth invention for solving the above errors is the sixteenth or seventeenth invention, wherein the trust control method is manually operated on a plurality of data in synchronization with the first clock signal. In this order, control is made to output a predetermined number of data in a predetermined cycle.
  • a nineteenth invention for solving the above errors is the sixteenth or seventeenth invention, wherein the trust control method is a data which arrives before the setup time out of a plurality of data. Control to control the power by selecting
  • the twentieth invention for solving the above-mentioned aspiration according to the sixteenth or the seventeenth invention is characterized in that the word-proof adhesive is controlled to be tfmp, a data not more than a setup II. I want to
  • TTFtF ⁇ 2 features a second clock spread spread over one clock
  • a twenty-fourth invention for solving the above-mentioned aspiration according to any one of the sixteenth to the twenty-third inventions is characterized in that the setup time is dynamically changed at the time of operation.
  • the semiconductor device of the present invention performs data communication when the time difference between the clock on the transmitting side and the clock on the receiving side is larger than the delay design value Td determined at a certain design time. If you do not do data communication.
  • the transmitting side outputs data at its clock edge. There is a way that the receiver does not input data at its clock edge.
  • the present invention it is possible to freely set the clock frequency of each core within the range previously assumed at the time of design, and synchronous communication is performed by the clock, so the operation is critical. It is possible to realize inter-core communication with high communication latency and low reliability. In addition, this avoids the metastability problem that is an issue in the asynchronous system, and it is possible to realize inter-core communication with low latency and low throughput in which the operation is deterministic at cycle level.
  • the communication history force in the semiconductor device is also a factor that influences the performance of the semiconductor device, it can be reflected on the next generation semiconductor device, and a highly reliable semiconductor device can be provided. .
  • the semiconductor device has a core A that transmits data in synchronization with a clock signal clkA, and data in synchronization with a clock signal clkB that coincides with the rising or falling of the clock signal clkA at a certain cycle. It has core B which receives, and a control part which controls communication between core A and core B.
  • the control unit controls the core B to receive only data arriving before the setup time of the clock signal clkB.
  • core A Controls not to output data or not to input core B.
  • the time corresponding to the phase difference between the rising edge of the clock signal clkA and the rising edge of the clock signal clkB rising immediately after the rising edge is Td or less, the data is delayed and the core B delays the next clock edge. Control to be able to input at timing. Specific examples will be described below.
  • FIG. 1 is a block diagram of a semiconductor device according to a first embodiment of the present invention.
  • the core A and the core B are circuit blocks having predetermined functions, and, for example, a CPU (Central (C)
  • CPU Central (C)
  • Each core performs predetermined processing in synchronization with each clock input to each core.
  • FIG. 2 shows the clock signal clkA input to core A and the clock signal elk input to core B.
  • FIG. 7 is a timing chart of FIG.
  • the frequencies of the clock signal clkA and the clock signal clkB are the clock signal clkA ⁇ mf, the clock signal clkB ⁇ nKm, where an arbitrary reference frequency is f (f> 0).
  • n is designed to be an integer). Also, before input to each core, so that the phase relationship between the clock signal clkA and the clock signal clkB is always constant, that is, the rising or falling of each clock signal matches at a fixed cycle. Adjusted by the phase adjustment circuit 10.
  • the clock signal clkA adjusted in this way makes one round of phase relationship with the clock signal clkB every m cycles (phase match), and the clock signal clkB makes one round of phase relationship with the clock signal clkA every n cycles (phase Matches).
  • FIG. 2 exemplarily shows that m is 8 and n is 5; that is, the frequency of the clock signal clkA is 8f and the frequency of the clock signal clkB is 5f.
  • the rising edges of the clock signals clkA coincide with one another every eight cycles and the clock signals cl kB every five cycles.
  • the cycle in which the rising edges of the clock signal clkA and the clock signal clkB coincide with each other is 0, the number given to each cycle of each clock will be called a phase number. Since the cycle number of the phase number is 0 and the clock signal clkA has m cycles and the clock signal clkB has n cycles after the rising edges of the respective clocks match again, the phase numbers of m and n are sufficient.
  • the phase adjustment circuit 10 is, for example, a DLL (Digital Locked).
  • the core A includes various functional units 3A that perform predetermined operations in synchronization with the clock signal clkA, a flip flop 1, and a data output control circuit 101.
  • the function unit corresponds to, for example, a function execution unit in a CPU or DSP.
  • the flip-flop 1 outputs a signal in synchronization with the clock signal clkA based on the control of the data output control circuit 101.
  • the output may be performed at the falling edge timing of the force clock signal clkA, which will be described using the case of the output at the rising edge timing of the clock signal clkA.
  • data output control circuit 101 arrives earlier than the setup time of core B flip-flop 2 in consideration of the data transmission time from core A to core B.
  • the flip flop 1 is controlled based on the frequency of the clock signal clkA and the clock signal elk B and the phase number of the clock signal clkA so as to transmit only the data to be transmitted. More specifically, for example, when data is output at the timing of the rising edge of phase number 3 of clock signal clkA in FIG. 2, the timing for inputting this data is the clock after the rising edge of phase number 3 of clock signal clkA. It is the timing of the rising edge of the signal clkB.
  • the data output control circuit 101 generates the clock signal.
  • the flip-flop 1 is controlled not to output data at the timing of the rising edge of phase number 3 of clkA. Also, as in the case of phase number 0 and phase number 1 of clock signal cl kA in FIG.
  • the core B includes various functional units 3 B that perform predetermined operations in synchronization with the clock signal clk B, a flip-flop 2, and a data input control circuit 102. Under control of the data input control circuit 102, the flip flop 2 inputs a signal in synchronization with the clock signal clkB. In the present embodiment, it is assumed that the input may be performed at the falling edge timing of the force clock signal clkB, which will be described using the case of inputting at the rising edge timing of the clock signal clkB.
  • the clock signal clkA is not input as data arrival does not meet the setup time of the flip flop 2 of the core B. And controls the flip flop 2 based on the frequency of the clock signal clkB and the phase number of the clock signal clkB. More specifically, if the rising edge force of clock signal clkA or the phase difference to the rising edge of clock signal clkB is less than the delay design value Td, flip-flop 2 is controlled so that data is not input in that cycle. Do.
  • the delay design value Td is set in consideration of the data transmission time which is the time from when the flip flop 1 starts the data transmission at the timing of the rising edge of the clock signal clkA to the reception of the force core B. .
  • clock skew time between clock signal clkA and clock signal clkB + clock jitter time TskewG clock jitter time TskewG
  • delay time of flip flop Tff setup time of flip flop Tsu
  • the delay design value Td is set such that Tcyc (min)> Td> TskewG + Tsu + Tff.
  • FIG. 4 is a time chart for explaining the operation when the data output control circuit 101 controls the output of data when data is transmitted from the core A to the core B in the present embodiment.
  • the clock signal clkA in the figure is the clock signal clkA of the core A
  • Each phase number of clock signal clkA and clock signal clkB Since the phases match when the number is 0 (the rising timings of the respective clock signals match), the phase relationship makes one cycle every eight cycles of the clock signal clkA and every five cycles of the clock signal clkB.
  • the data output control circuit 101 performs data communication control in consideration of the phase relationship within eight cycles of the clock signal clkA and within five cycles of the clock signal clkB.
  • Dout_EN is a control signal from the data output control circuit 101.
  • D in — EN is a control signal from the data output control circuit 102.
  • Dout is an input signal output from the flip flop 1.
  • Din is a signal that the flip-flop 2 outputs and the functional unit 3B of the core B inputs.
  • the rising edge of phase number 3 of clock signal clkA starts at the phase number of clock signal clkB.
  • the time corresponding to the phase difference from the rising edge of 2 and the rising edge of phase number 6 of clock signal clkA to the rising edge of phase number 4 of clock signal clkB becomes Td or less.
  • the data output control circuit 101 controls so as not to perform data communication.
  • data output control circuit 101 When control is made so that core A does not output data, data output control circuit 101 provides frequency 8f of clock signal clkA, frequency 5f of clock signal clkB, and phase numbers 0 to 7 of clock signal clkA. Therefore, control is made not to output at the timing of the rising edge of phase numbers 3 and 6 of the clock signal clkA.
  • the data output at the rising edge timing of phase numbers 0 and 1 of clock signal clkA can be input at the rising edge timing of phase number 1 of clock signal clkB.
  • the data output control circuit 101 sets the control signal Dout_EN to High at the timing of the rising edge of the phase number 0 of the clock signal clkA so as to output data with the phase numbers 1 and 2 of the clock signal clkA.
  • Data output control circuit 101 sets the rising edge of phase number 3 of clock signal clkA to a tie. Control signal Dout_EN after the timing force hold time of the rising edge of phase number 2 of clock signal clkA so that flip-flop 1 does not output data at the same time.
  • the control signal Set Dout_EN After a hold time has passed from the timing of the rising edge of phase number 3 of clock signal clkA so that flip-flop 1 can output data at the timing of the rising edge of phase number 4 of clock signal clkA, the control signal Set Dout_EN to High.
  • Data output control circuit 101 is configured such that the timing of the rising edge of phase number 5 of phase number 5 of clock signal clkA is held so that flip flop 1 does not output data at the timing of the rising edge of phase number 6 of clock signal clkA. After passing the control signal Dout_EN Lo
  • the control signal is output after the hold time has passed from the timing of the rising edge of phase number 6 of clock signal clkA so that flip-flop 1 can output data at the timing of the rising edge of phase number 7 of clock signal clkA.
  • control signal Dout_EN is set to Low at the rising edge timing of phase number 7 of clock signal clkA so that flip-flop 1 does not output data at the rising edge timing of phase number 0 of clock signal clkA.
  • data output control circuit 101 controls the flip-flop so that the above-mentioned core A does not output data at that timing.
  • FIG. 5 is a time chart for illustrating an operation when data input control circuit 102 controls data input when data is transmitted from core A to core B in the present embodiment. It is.
  • control is performed such that the data output at the timing of the rising edge of phase numbers 3 and 6 of the clock signal clkA is not input. Also, the data output at the rising edge timing of phase numbers 0 and 1 of clock signal clkA can be input at the rising edge timing of phase number 1 of clock signal clkB.
  • functional unit 3A of core A A case will be described in which data is output only at the timing of the rising edge of either phase number 0 or 1 of clock signal clkA.
  • phase numbers 2, 3 and 4 of the clock signal clkA it is assumed that the functional unit 3A of the core A outputs data only at the timing of one of the rising edges of phase numbers 2, 3 and 4. Furthermore, similarly, as for phase numbers 5, 6 and 7 of the clock signal clkA, the functional unit 3A of the core A outputs data only at the timing of one rising edge of either phase number 5, 6 or 7 Do not.
  • the data input control circuit 102 outputs the data output from the flip flop 1 at the rising edge timing of the phase number 3 of the clock signal clkA to the flip flop 2 at the rising edge timing of the phase number 2 of the clock signal clkB.
  • the control signal Din_EN is set to Low so that the signal is not input.
  • the control signal Din_EN At the timing of the rising edge of phase number 2 of clkB, set the control signal Din_EN to High.
  • Data input control circuit 102 outputs the data output from flip flop 1 at the timing of the rising edge of phase number 6 of clock signal clkA at the timing of the rising edge of phase number 4 of clock signal clkB.
  • the control signal Din_EN is set to Low at the timing of the rising edge of the phase number 3 of the clock signal clkB.
  • the clock signal is supplied so that data output from flip flop 1 at the timing of the rising edge of phase number 7 of clock signal clkA can be input to flip flop 2 at the timing of the rising edge of phase number 0 of clock signal clkB.
  • the present invention is not limited to this. That is, any configuration may be used as long as either one is included.
  • the case where data is transmitted from the core A to the core B has been described, so the core A has the data output control circuit 101 and the core B has the data input control circuit 102.
  • core B power also transmits data to core A
  • core A has data input control circuit 102
  • core B has data output control circuit 101.
  • a configuration may be adopted in which the data output control circuit 101 or the data input control circuit 102 is provided in the core A and the core B, and data may be transmitted and received between the core A and the core B.
  • Example 1 data is not communicated when the time corresponding to the phase difference is equal to or less than the delay design value Td.
  • data is not output or input at that timing!
  • the force data described in the method may be delayed to allow core B to input at the next clock edge.
  • a method of delaying data will be described. The same components as those in the above-described embodiment are designated by the same reference numerals, and the detailed description will be omitted.
  • FIG. 6 is a diagram showing the configuration of the semiconductor device of this example.
  • Flip-flop 1 outputs a signal in synchronization with clock signal clkA.
  • the output may be performed at the falling edge timing of the clock signal clkA, which will be described using the case of the output at the rising edge timing of the clock signal clkA.
  • the flip flop 2 inputs a signal in synchronization with the clock signal clkB.
  • the case of inputting at the timing of the rising edge of the clock signal clkB will be described. However, it may be input at the falling edge timing of the clock signal clkB.
  • Delay element 30 delays the data output from flip flop 1 by a delay value Tdly time.
  • the delay value Tdly takes into consideration the data transmission time which is the time from when the core A starts data transmission at a rising edge of the clock signal clkA until the power core B receives it.
  • Minimum cycle time (cycle time at maximum frequency) is Tcyc (min), clock skew between clock signal clkA and clock signal clkB + clock jitter TskewG, clock signal in clkA or clock skew in clock signal clkB +
  • the clock jitter is TskewL
  • the phase difference between the clock signal elk A and the clock signal clkB is Tpd
  • the delay of the flip flop is Tff
  • the setup time of the flip flop is Tsu
  • the hold time of the flip flop is Tho
  • Tdly is Tskew G + Tsu + Tho ⁇ Tdly Tcyc (min)-TskewL-Tsu-Set to Tff.
  • Data delay selection control circuit 103 outputs D out which is output data from core A or a delay element thereof based on the frequency of clock signal clkA, the frequency of clock signal clkB, and the phase number of clock signal clkB.
  • the selector 4 is controlled whether the flip-flop 2 inputs data from any one of Dout_DLY delayed by the delay value Tdly time 30.
  • the selector 4 selects the output value of Dout or Dout_DLY based on the control signal Dsel from the data delay selection control circuit 103.
  • FIG. 7 is a timing chart for explaining the operation of the data delay selection control circuit 103.
  • the operation in the case where the frequency of the clock signal clkA is 8f and the frequency force of the clock signal clkB is 5f, where the reference frequency is f, will be described.
  • the clock signal clkA in the figure is the clock signal clkA of clock A
  • the phases match when the phase numbers of the clock signal clkA and the clock signal clkB are 0 (the rising timings of the clock signals match). Therefore, every eight cycles of the clock signal clkA, the phase relationship makes a round in every five cycles of the clock signal clkB.
  • the data delay selection control circuit 103 performs data communication control in consideration of the phase relationship within eight cycles of the clock signal clkA and five cycles of the clock signal clkB.
  • Dout is output data from the flip flop 1 and is not delayed.
  • Dout_DLY is data obtained by delaying output data from the flip flop with a delay element.
  • Dsel is a control signal from the data delay selection control circuit 103.
  • Din is data output from the flip flop 2.
  • phase difference to the rising edge of phase number 4 of is less than Td.
  • Td This can be known from the frequency of the clock signal clkA and the clock signal clkB and the reference number of the clock signal clkB.
  • the data delay selection control circuit 103 detects the rising edges of phase numbers 3 and 6 of clkA.
  • the data output from the flip flop 1 is selected as the data input to the flip flop 2 with data delayed by Tdly by the delay element.
  • the rising edge force of phase number 3 of clock signal clkA is also the rising edge of phase number 2 of clock signal cl kB, and the rising edge of phase number 6 of clock signal clkA, the rising edge of phase number 4 of clock signal clkB.
  • selector 4 so that flip-flop 2 receives data delayed by Tdly by delay element 30 instead of transmitting and receiving, the rising edge force of phase number 3 of clock signal clkA is generated.
  • the rising edge of phase number 3 and the clock edge force of phase number 6 of clock signal clkA are also controlled to be input at the timing of the rising edge of phase number 0 of clock signal clkB.
  • data output from flip flop 1 at the timing of the rising edge of phase number 0 or 1 of clock signal clkA is received by flip flop 2 at the timing of the rising edge of phase number 1 of clock signal clkB.
  • the data delay selection control circuit 103 outputs Low to Dsel at the timing of the rising edge of the phase number 1 of the clock signal clkB.
  • Data delay selection control circuit 103 has a rising edge of phase number 3 of clock signal clkA.
  • the control signal Dout is set to High at the timing of the rising edge of the phase number 1 of the clock signal clkB so that the data output from the flip flop 1 at timing D is received from Dout_DLY.
  • the control signal is generated at the timing of the rising edge of phase number 2 of clock signal clkB so that the data output from flip-flop 1 is also input at the timing of the rising edge of phase number 4 of clock signal clkA. Set Dsel low.
  • the control signal is generated at the rising edge timing of phase number 3 of clock signal clkB so that the data output from flip-flop 1 at the rising edge timing of phase number 6 of clock signal clkA is input from Dout_DLY. Set Dsel to High.
  • Control signal Dsel is generated at the timing of the rising edge of phase number 4 of clock signal clkB so that the data output from flip-flop 1 at the rising edge of phase number 7 of clock signal clkA is also input. To low.
  • FIG. 8 is a view showing a handshake circuit of a request using the semiconductor device of the second embodiment described above.
  • a request is data of a processing request in data communication or data processing.
  • the handshake circuit 80 includes a data delay selection control circuit 103 A, a data delay selection control circuit 103 B, a data delay selection circuit 20 A, a data delay selection circuit 20 B, a data delay element 30 and a synchronous SR flip flop 81. Also, there is provided a level shifter circuit 82 for converting the difference in power supply voltage between core A and core B.
  • Functional unit 3A of core A notifies core B that there is a request through handshake circuit 80. Notify and Core B notify Core A that it has received the request. The presence or absence of a request is held in a synchronous SR flip-flop 81 shared by core A and core B, and handshaking processing is performed synchronously through data delay selection circuits 20A and 20B provided in each core.
  • the functional unit 3A of the core A sets a request in the synchronous SR flip-flop 81 by setting the signal Req_set to High (step BS301).
  • the signal from the output Dout of the synchronous SR flip flop 81 is set to High to output that the request has been set (step BS302).
  • a value High of Dout indicating that this request has been set is output to Req_B through the data delay selection circuit 20B on the core B side, and the core B is notified that a request has been made (step BS 303) ).
  • step BS303 will be described in detail.
  • the data delay selection control circuit 103 B determines whether the rising edge of the clock signal clkA immediately before this is the phase number 0, 1 or 3 of the clock signal clkB in FIG. If the clock signal clkB is Td or more until rising, control is made to input the signal from Dout.
  • the flip-flop 2 inputs the signal from Dout at the timing of the rising edge of the clock signal clkB, and outputs it to Req_B.
  • phase numbers 2 and 4 of clock signal clkB in FIG. 7 when the rising power of previous clock signal clkA is Td or less until the rising of clock signal clkB, Dout is delayed by Tdly by delay element 30. Control to input the signal from Dout_DLY.
  • the flip flop 2 is input at the timing of the rising edge of the clock signal clkB, and is output to Req_B.
  • the data delay selection control circuit 103 B has the clock signal clkA frequency, the clock signal cl Control is performed as described above with reference to the frequency of kB, the phase number of the clock signal clkB, and the delay design value Td. This avoids metastability and deterministically notifies Core B of requests from Core A.
  • step AS 303 will be described in detail.
  • the data delay selection control circuit 103A When the value of Dout becomes High, the data delay selection control circuit 103A outputs a signal from Dout if there is Td or more from the rising edge of the clock signal clkB just before this to the rising of the clock signal clkA. Control to enter.
  • the flip flop 1 inputs the signal from Dout at the timing of the rising edge of the clock signal clkA, and outputs it to Req_A.
  • control is performed so that the signal from Dout_DLY delayed by Dd by delay element 30 is input. .
  • the flip flop 1 is input at the timing of the rising edge of the clock signal clkA and is output to Req_A.
  • the data delay selection control circuit 103A controls as described above with reference to the frequency of the clock signal clkA, the frequency of the clock signal cl kB, the phase number of the clock signal clkA, and the delay design value Td.
  • the core B When the core B receives a request or completes an action to be a request, the core B raises the clock signal clkB by setting Req_reset to High at the timing of the rising edge of the clock signal clkB. At the edge timing, reset the request held in the synchronous SR flip-flop 81 (step AR301). The signal from the output Dout of the synchronous SR flip-flop 81 goes low when this request is reset. Power (step AR302).
  • the value Low of Dout indicating that this request has been set is output to Req_A through the data delay selection circuit 20A on the core A side, and the core A is notified that a request has been made (step AR303).
  • step AR 303 will be described in detail.
  • the signal from Dout is output Control to input.
  • the flip flop 1 inputs the signal from Dout at the timing of the rising edge of the clock signal clkA, and outputs it to Req_A.
  • control is performed so that the signal from Dout_DLY delayed by Dd by delay element 30 is input. .
  • the flip flop 1 is input at the timing of the rising edge of the clock signal clkA and is output to Req_A.
  • D out is controlled to be output directly to Req_A without being input to the flip flop 1.
  • the data delay selection control circuit 103A controls as described above with reference to the frequency of the clock signal clkA, the frequency of the clock signal cl kB, the phase number of the clock signal clkA, and the delay design value Tdly. As a result, it notifies Core A that the request has been reset. Core A can set new requests.
  • the value of Dout is output to Req_B through the data delay selection circuit 20B on the Coher B side, and the request is sent to the synchronous SR flip-flop 81, as described in the above steps AR301 and AR302.
  • Core B is notified that it has been reset (step BR303).
  • Core A can not set new requests while the previous request is set.
  • step BR303 will be described in detail.
  • control is performed so that the signal from Dout_DLY delayed by Dd by delay element 30 is input. .
  • the flip flop 2 is input at the timing of the rising edge of the clock signal clkB, and is output to Req_B.
  • Control is made to output Dout directly to Req_B without inputting it to flip-flop 1.
  • the data delay selection control circuit 103 B controls as described above with reference to the frequency of the clock signal clkA, the frequency of the clock signal cl kB, the phase number of the clock signal clkB, and the delay design value Tdly.
  • FIG. 9 is a configuration example of the SOC in the present invention.
  • the clock of each core constituting the SOC is all adjusted in phase in accordance with the clock of the bus, and communication between cores is always performed via the bus.
  • the phase adjustment circuit 10 dynamically adjusts the phase between the clocks to be constant, so that synchronous communication is possible, that is, the metastablity problem which is a problem in the asynchronous method. To achieve low latency, low throughput, and inter-core communication that is deterministic at the cycle level.
  • FIG. 10 is a configuration example of a bus' interface circuit.
  • the bus' interface circuit comprises a request FIFO (requestFIFO) 2101 and a data FIFO (da). ta FIFO) 2102, a data delay selection control circuit 103A, and a data delay selection control circuit 103B.
  • the request FIFO 2101 is provided with a plurality of handshake circuits 80, and the request input from the core (Master Core) 2110 to the MReq can be
  • Interconnect 2 Synchronously notify to 2120 through Req. Also, the instruction (Cmd), address (Addr), and data (Data) corresponding to the request are output from the data FIFO to the bus 2120.
  • the core here (Master
  • Core 2110 generally indicates a core that issues a request to the bus.
  • the core inputs a request for the bus through MReq.
  • the instruction / address / data of the request is input through MCmd / MAddr / MData. If the request interface is empty (if there is a handshake circuit with no request set), then the interface circuit is empty in the request FIFO. Set the request. At the same time, the input instruction / address / data is stored in the data FIFO. Also, notify the core via SAck that the request has been accepted. On the other hand, when the request FIFO can not receive a request that has not been vacated, the core is notified via SAck to that effect.
  • the request set in the handshake circuit of the request FIFO is output synchronously to Req through Req by the function of the handshake circuit.
  • the instruction / address / data corresponding to the request is fetched from the data FIFO and output to the bus through Cmd / Addr / Data.
  • the request When the request receives a request, it notifies the bus' interface circuit of that through an Ack. The bus' interface circuit resets the request in the handshake circuit in which the accepted request was set. On the other hand, if the noise can not accept the request, it notifies that through the Ack to the bus' interface circuit. The bus' interface circuit continues outputting the request to the bus until the request is accepted.
  • FIG. 11 is a configuration example of the on-chip debug circuit in the present invention.
  • the core 110 operates in synchronization with the clock from the CLK generation unit 111. Also, data communication with other cores is performed via the handshake circuit 80 and the bus.
  • the core 110 is equivalent to the above-described core (Master Core).
  • the CLK generation unit 111 generates a clock signal that matches the rising or falling of the clock signal of the bus at a constant cycle.
  • the history storage unit 112 stores, as history information, the operation statuses of the core and the bus which actually input and output (transmit and receive) data.
  • the history storage unit 112 stores the clock frequency of the core and the bus, the timing when the power supply voltage of the core and the bus has changed, the value after the change, the rising of the clock of the core and the rising of the clock of the bus or the clock of the core. And the timing when the falling of the bus clock falls together as history information.
  • a part of the bus data such as LSB (Least Significant Bit / Byte) and the transmission / reception timing of the req signal and the ack signal are also stored as history information.
  • the history may be stored at the timing of rising or falling edge of the clock of the bus, or may be stored at the timing of rising or falling edge of the clock of the core.
  • the analysis unit 113 analyzes the cause of the performance deterioration of the semiconductor device based on the history information held by the history storage unit 112, and controls the core frequency, the core power supply voltage, the bus frequency, and the like. For example, the transmission / reception timing of the req signal and ack signal is analyzed from the history information held by the history storage unit 112, the bus frequency is increased if the ack signal transmission is late, and the core frequency if the req signal transmission is late. Control to raise
  • the output unit 114 outputs the history information of the history storage unit 112 to the outside.
  • the history information output to the outside is simulated by debug SZW (software) to clarify the cause of the performance degradation of the semiconductor device.
  • the output unit is configured to transmit a predetermined amount of history information and then transmit the history information every predetermined amount, or when the output unit is configured to transmit at a predetermined time, it is requested from outside. It may be configured to transmit.
  • Core 110 carries out data communication with other cores via handshake circuit 80 and the bus.
  • the history storage unit 112 collects various types of information and stores the history information.
  • Analysis unit 113 performs various analyzes based on the history information, and the core frequency, core power supply voltage
  • the history storage unit 112 outputs the history information to the outside.
  • the operation status of the bus is stored as history information, and the core frequency and the like are controlled based on the history information, so that it is possible to improve the performance of the entire semiconductor device.
  • the operation status of the core and bus that are actually operating is stored as a history and output to the outside, it can be reflected on the next generation semiconductor device.
  • the data when performing trust to core A power core B, if the phase difference between the respective clocks of core A and core B is an inflection design, the data is considered to be less than Td. If the phase difference is equal to or less than Td, the core B inputs the data obtained by delaying the data by the delay value Tdlv.
  • core B delays data by Tdlv; it is configured to have 30 seconds of core data; Also, instead of using the data processing method, it is possible to use a flip-flop that latches data at the clock falling edge instead of using it.
  • ⁇ 14 is the configuration of the data by means of a flip-flop that latches data at the falling edge of the clock on the core A side.
  • core A includes a flip flop 230 that latches the output signal Dout of flip flop 1 at the falling edge of clock clkA. That is, the flip flop 230 has a function of delaying the signal Dout by half the cycle time of the clock clkA and outputting it as Dout DLY. This delay value is equal to half the cycle time of the delay time Tdlv force S clock clkA.
  • the operation of this embodiment is the same as that of the embodiment 30 in the case of the embodiment 2 shown in FIG. 7 and the construction of this embodiment is the same as that of the embodiment 2. There is a sting that is not affected by variations in the delay value of the force delay element that is limited to half the cycle time of the clock clkA.
  • phase difference between the respective clocks of core A and core B is set as follows: In the case of 1 or less, data ⁇ 3 ⁇ 4 £ Tdlv only; ⁇ ⁇ 3 ⁇ 4 £ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ S S S S ⁇ ⁇ ⁇ ⁇ ⁇ Example Configurations of the same 3 ⁇ 4 are given the same numbers and detailed I omit explanation
  • ⁇ 15 shows the configuration of the semiconductor arrangement of this practical array ⁇ ! Is
  • the enabled flip-flops 231 and 232 provided in the core A latch the signal DoutO output from the function unit 3A in synchronization with the clock clkA and output them as core Dout1 and core Dout2 to the core B.
  • the data output selection control circuit 202 refers to the phase number of the clock clkA and outputs the flip flops 231 and 232 only when an apology is instructed by the respective enable signals enl and en2. Enable the enable signal enl 3 ⁇ 4 en 2 to operate alternately every cycle, that is, the signals Doutl and Dout 2 will each be output a signal delayed by one cycle with the clock clkA in detail.
  • the configuration of the core B side is the same as that of the core B in the sixth embodiment except for the data of the configuration of the core B in the alternative control channel 103 and the data manual in the alternative control channel 20.
  • the data of 5 ⁇ of the core ⁇ in 6; the data power of the ⁇ control ⁇ 20 ⁇ is the data correction; ⁇ ⁇ I ⁇ 103 ⁇ , but in Example 6 and Example 2 and in Example 2 Dmit Since the delayed delay is always output to the trust Dout DLY, in the configuration of the present embodiment, since the delayed delay is output to the delay Doutl or Dout2 alternately, the corresponding control is performed.
  • FIG. 16 is a timing chart for explaining the operation of this embodiment.
  • the frequency of clock signal clkA is 8f and the frequency of clock signal clkB is a standard frequency.
  • the frequency of clock signal clkB is a standard frequency.
  • the clock signal clkA in the figure is the clock signal clkA of clock A
  • phase numbers are 0 to 4.
  • the phases match (the timings of the rising edges of the clock signals match). Therefore, every eight cycles of the clock signal clkA and every five cycles of the clock signal clkB, the phase clock utters one word, that is, the data output; selection control line 202 and data manual control; scale control
  • the circuit 201 performs an acknowledgment control of data within 8 cycles of the clock signal clkA and 5 cycles of the clock signal clkB.
  • DoutO is a signal output from functional unit 3A of core A.
  • enl and en2 are enable signals of the flip flops 231 and 232, respectively, and data output; concernedDoutl output from the selection control circuit 202 is output data from the flip flop 23 ⁇ ; Dout 2 is from the flip flop 232 Output data Dsel is a control signal from the data input selection control circuit 201 and Din is data output from the flip flop 2
  • the enable signal enl of the flip flop 231 is a signal which alternately repeats High and Low every cycle so that the flip flop 231 operates every cycle.
  • the enable signal en2 of the flip flop 232 is a signal that alternately repeats high and low every cycle so that the flip flop 232 operates alternately with the flip flop 231 so that it operates every flip flop 232 power ⁇ cycles.
  • enl is wood grain As shown in FIG.
  • phase difference to the rising edge of phase number 4 of clkB is less than Td. This is because the frequency of clock signal clkA and clock signal clkB and the phase number of clock signal clkB are strong.
  • the data input selection control circuit 201 selects Doutl delayed by one cycle of the clock clkA from Dout2 output from the flip flop 232 at timing of rising edge of phase number 3 of clkA as data input to the flip flop 2.
  • Dout2 delayed by one cycle of clock clkA from Dout1 output from flip-flop 231 at the timing of the rising edge of serial number 6 is flipped. Otherwise, the flip-flop 2 is delayed to select either Doutl or Dout2 to select the data from Doutl or Dout2.
  • the delay is delayed, the delay is delayed, or the data human power selection control circuit 201 is used for dkA dkB, and the dk B's eye number ⁇ ⁇ et al. II At
  • the details of the signal Dsel for selecting either Doutl or Dout2 will be described.
  • the selection control circuit 201 has the phase number 1 of the clock signal clkB.
  • Dsel squeezes High to force Dsel.
  • the data Dout2 output from the flip flop 232 at the timing of the rising edge of the phase number 3 of the clock signal clkA is not the same as the data Dout2 output from the flip flop 231 at the timing of the phase 2 clkA.
  • the flip-flop is generated at the timing of the rising edge of phase number 6 of clock signal clkA.
  • the data Dout2 output from the flip flop 232 at the timing of the phase number 5 of clkA is the same as that of the data Dout1, and the control signal at the rising edge timing of the phase number 4 of the clock signal clkB.
  • data Doutl and Dout2 are converted into every two cycles of clock clkA, and the data is stable for two cycles. Therefore, the data of Example 2 and Example 6 are obtained. Since there is a timing difference as compared to the Dout and Dout DLY becoming indifferent every cycle of the clock clkA, the timing setting t becomes smaller, especially against the Hall constraint of the flip flop 2. is there"
  • the present embodiment in which two flip-flops 231 and 232 are operated alternately in the core A, is not limited to two in number of force flip-flops, but three or more. In the case where there are three flip-flops that enable each flip-flop so that only one flip-flop operates at the same time.
  • Configuration example réelletude 7 In the case where there are three flip-flops that enable each flip-flop so that only one flip-flop operates at the same time.
  • Flip-flops 231 and 232 are provided with a third flip-flop 233 that outputs a signal Dout3.
  • Data output selection control circuit 204 outputs enable signals enl.en2.en3 of each of the three flip-flops.
  • the data input selection control circuit 203 controls the three flip flops to operate in sequence, and the three signals Doutl.
  • the clocks clkA and clkB are clocks whose rising and falling edges coincide in a certain period (phase number 0).
  • the clocks clkA and clkB rise at phase number ⁇ 0 Or, even if the clocks whose rising edges coincide with each other (that is, the phase difference is not a clock) but become a certain constant value TDh, inter-core communication is realized in the same manner as in the above-described embodiments. It is possible.
  • the phase difference between the respective edges of the clocks clkA and clkB is shifted by TDh compared to when the phase difference at the phase number ⁇ 0 is zero.
  • phase difference between the edges of the other phase numbers is the phase number Compared to the case where the phase difference at 0 is 0, only Tnh * Data selection and control of data and data power; selection of ⁇ ⁇ takes account of that by performing core apology control.
  • the core is
  • the data selection control route is data manual power; the selection control route performs the core apology control in consideration of the value of Td, so that the core is protected You can see
  • the configuration of ⁇ 5 shown in ⁇ 20 is data human power; selection control route 20 ⁇ data human power; selection I 206 206 only, data human power; selection I ⁇ 206 Is »
  • Td the magnitude of the jitter of the clock clkA or clkB or between clkA and clkB.
  • FIG. 1 is a configuration example of a first embodiment of the present invention.
  • FIG. 2 is a timing chart.
  • FIG. 3 is a diagram for explaining Td and Tdly.
  • FIG. 4 is a timing chart for explaining the operation of the embodiment 1 of the present invention.
  • FIG. 5 is a timing chart for explaining the operation of the embodiment 1 of the present invention.
  • FIG. 6 is a configuration example of Embodiment 2 of the present invention.
  • FIG. 7 is a timing chart for explaining the operation of Embodiment 2 of the present invention.
  • FIG. 8 is a configuration example of Embodiment 3 of the present invention.
  • FIG. 9 is a block diagram for explaining a fourth embodiment of the present invention.
  • FIG. 10 is a configuration example of a bus interface of Embodiment 4 of the present invention.
  • FIG. 11 is an example of a structure of the on-chip debug circuit of Example 5 of this invention.
  • FIG. 12 is a block diagram of a conventional synchronous circuit.
  • FIG. 13 is a block diagram of a conventional asynchronous circuit.
  • ⁇ 141 shows the configuration of the sixth embodiment of the present invention.
  • ⁇ 151 shows the configuration of the seventh embodiment of the present invention.
  • FIG. 161 is a timing chart showing the operation of the embodiment 7 of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

  【課題】 各コアが設定できるクロック周波数の自由度が大きく、動作が決定的(deterministic)で、通信レイテンシが小さく、信頼性の高い、コア間の通信ができる技術を提供することにある。又、本発明の目的は、半導体装置内の通信履歴から半導体装置の性能に影響を与える要因を解析し、次世代の半導体装置に反映させることにより、信頼性の高い半導体装置を提供することにある。   【解決手段】 本発明の半導体装置は、クロック信号clkAに同期してデータを送信するコアAと、ある一定の周期でクロック信号clkAの立ち上がり又は立ち下がりと一致するクロック信号clkBに同期してデータ受信するコアBと、コアAとコアBとの間の通信を制御する制御部とを有する。制御部は、クロック信号clkBのセットアップより前に到着するデータのみをコアBが受信できるように制御する。更に、コア間の通信状況を履歴保存する。

Description

明 細 書
半導体装置、及び通信制御方法
技術分野
[0001] 機能ブロックを複数有する半導体装置に関し、特に、異なるクロック周波数で動作 する複数のコア間で通信する半導体装置及びその方法に関する。
背景技術
[0002] 従来、異なるクロック周波数で動作するコア (機能ブロック)同士の通信方法には、 主に同期方式及び非同期方式の 2種類がある。
[0003] 図 12は、同期方式を用いて通信する半導体装置を示す図である。
[0004] このような半導体装置において、コア Aとコア Bとで通信する場合、同期方式では通 信する 2つのコアの各クロックの周波数比が 1対整数倍 (例えば、 1:2, 1:3,…等)や、 1 対整数分の 1倍 (例えば、 1:1/2, 1:1/3,…等)であり、かつ 2つのクロックの位相が等し いことが条件となる。すなわち、同期通信はクロック同士が同期しているコア間でのみ 行うことが出来る通信方法である。
[0005] 図 13は、非同期方式を用いて通信する半導体装置を示す図である。
[0006] 2つのコアの各クロックの周波数比が 1対整数倍や、 1対整数分の 1倍ではなぐかつ 2つのクロックの位相が等しくないコア間で行われる通信が非同期通信である。非同 期方式を用いて通信すると、信号を出力するタイミングと信号を入力するタイミングと が非同期関係になり、信号が" 0"ど '1"との間をある時間揺らぐ状態 (この状態を meta stability:メタスタピリティという)になるので、メタスタピリティによる誤動作を防止する 為、通常、同期化回路が用いられる技術が提案されている(例えば、特許文献 1)。
[0007] 特許文献 1に記載の技術は、第 1のクロック信号に同期して所定の動作を行う第 1 のコアと、第 2のクロック信号に同期して所定の動作を行う第 2のコアとの間に同期化 回路を設けている。そして、この同期化回路は第 1のコアの出力データを第 1のクロッ ク信号に同期してラッチし、ラッチした信号を第 2のクロック信号に同期して出力して いる。
[0008] また、上記以外にもメタスタピリティによる誤動作を防止する技術が提案されて 、る ( 例えば、特許文献 2)。
[0009] 特許文献 2に記載の技術は、データ入力信号とクロック入力信号の変化を検知し、 セットアップ若しくはホールドタイムを満足しない場合にフリップフロップのデータ入力 の信号を変更しないように制御して、メタスタピリティによる誤動作を防止している。 特許文献 1 :特開 2003 -273847号
特許文献 2 :特開平 6 -45880号
発明の開示
発明が解決しょうとする課題
[0010] 従来の同期方式は、各コアのクロック周波数比が 1対整数倍や 1対整数分の 1倍に 限定されるという問題がある。この制限は通信するコアの数が増加するにつれて益々 深刻になる。
[0011] さらに近年、消費電力の低減の為に、各コア毎に周波数及び電源電圧を動作時に 動的に変更する動的周波数電圧制御方式 (Dynamic Frequency Voltage Scaling: DF VS)が提案されている。コア毎に DFVSを実施する場合、電源電圧が変更されることに よりクロックの分配遅延が変化するため、コア間で同期関係が保てなくなる。すなわち 、従来の同期方式では通信できないという問題がある。また、各コアが設定できるクロ ック周波数が限定されていると、 DFVSの低電力化に対する効果が減少するという問 題がある。
[0012] 一方、上述した特許文献 1のような非同期方式には主に次に示す問題がある。
[0013] 第 1に、非決定性動作の問題がある。チップデバイスの特性ばらつきや動作環境等 に依存して、クロックサイクルのレベルでの動作が非決定的 (nondeterministic)になる 。その結果、ハードウェア/ソフトウェアの検証'デバックやテストにかかるコストが増大 してしまう。
[0014] 第 2に、通信レイテンシが大きいという問題がある。同期化に要する遅延の為に通 信レイテンシが増加し、通信スループットが低下する。その結果、性能の低下や、そ れを補償するために面積 ·電力が増カ tlしてしまう。
[0015] 第 3に、メタスタピリティによる誤動作の可能性があり、この結果、信頼性が低下する という問題がある。これは、クロック周波数の増加や低電圧化や同期化を行う箇所の 増加にともない益々悪化する。信頼性を向上するには、メタスタピリティを解消する為 の時間を十分に確保する必要があるが、その結果、同期化に要する遅延が益々増 大し、通信レイテンシが増加する。
[0016] 又、上述した特許文献 2の技術は、動作時にデータ入力信号とクロック入力信号の 変化を検知し、セットアップ若しくはホールドタイムを満足して 、る力否かを判断する 力 チップデバイスの特性ばらつきや動作環境等に依存してその判断基準が変動す るため、クロックサイクルのレベルでの動作が非決定的になるという問題がある。
[0017] そこで、本発明の目的は、上記問題点を鑑みて発明されたものであって、各コアが 設定できるクロック周波数の自由度が大きぐ動作が決定的 (deterministic)で、通信レ ィテンシが小さぐ信頼性の高い、コア間の通信ができる技術を提供することにある。
[0018] 又、本発明の目的は、半導体装置内の通信履歴力 半導体装置の性能に影響を 与える要因を解析し、次世代の半導体装置に反映させることにより、信頼性の高い半 導体装置を提供することにある。
課題を解決するための手段
[0019] 卜.記誤穎を解決するための第 1の発明は、半導体装置であって、
第 1のクロック信吾に某づいてデータを出力する第 1の信吾処¾回路 、 ある一定の周期で第 1のクロック信吾の立ち上がり又は立ち下がりと一致する第 2の クロック信吾に某づいてデータ入力する第 2の信吾処理回路と、
前記第 2のクロック信吾のセットアップ時間より前に到着するデータのみを人力する ように制御する制御
を有するこ を特徴 する。
[0020] 上記誤穎を解決するための第 2の発明は、半導体装置であって、
第 ίのクロック信 に づいてデータ 出力する第 ίの 冋路
ある一 の 1¾ で のクロック の ちト.がり ¾は ち がり の ネ目 があ る一定彼になる第 2のクロック信 に づいてデータ人力する第 2の信 処理冋路 前記第 2のクロック信 のセットアップ 間より前に到羞するデータのみ 人力する ように制御する吿糊^ ^ を有するこ を特徴 する。
[0021] 卜.記誤顆を解決するための第 3の 明は、 卜.記第 1又は第 2の 明において、前記 制御回路は、前記第 1のクロック信号に同期して複数のデータを人力された順に、あ る一定の周期に予め定められた数のデータを出力するように制御する出力制御回路 であるこ を特徴 する。
[0022] 卜.記誤顆を解決するための第 4の 明は、 卜.記第 1又は第 2の 明において、前記 制御回路は、複数のデータの中から前記セットアップ時間より前に到着するデータを 尺して入力するように制御する入力制御 であるこ を特徴 す
[0023] 卜.記誤顆を解決するための第 5の 明は、 卜.記第 1又は第 2の 明において、前記 吿糊冋 は、 tfmp,セットアップ より こ至 II羞しないデータ 力しないように tfr 首 p ίの ^^ 制御する 力制御^^であるこ 特徼 す
[0024] 卜.首 Ρ,ϋ親 解決するための第 6の 明は、 h P,第 ί は第 2の 明において、 mffP, 吿糊冋 は、 tfmp,セットアップ より こ至 II羞しないデータ 力しないように tfr 首 P 2の ^^ 制御する入力制御^^であるこ 特徼 す
[0025] 卜.首 Ρ,ϋ親 解決するための第 7の 明は、 h P,第 ί は第 2の 明において、 mffP, 制御冋路は、 tff P,セットアップ 間より前に至 II羞しないデータは、データ 一定 間 だけ;犀 ¾£させる;犀 で;犀 ¾£させたデータ 力するように制御する;犀 巽 吿咖 冋路であるこ 特徼 す
[0026]
Figure imgf000006_0001
は、前記セットアップより前に到着しないデータを前記第 2のクロック信吾の 1クロック Si¾iEさせるこ を特徴 する。
[0027] 上記誤穎を解決するための第 9の発明は、上記第 1から第 8のいずれかの発明に おいて、前記データは、
前記第 1のクロックに同期して所定の動作を行う第 1の機能部から出力される、処理 要求を示す処理要求データ、若しくは処理要求データを受信したことを示す処理要 求リセットデータであるこ を特徴 する。
[0028] 上記誤穎を解決するための第 10の発明は、上記第 9の発明において、前記処理. 要求データ及び前記処理要求リセットデータは、前記第 1の機能部 、前記第 2のク ロックに同期して所定の動作を行う第 2の機能部 の間で送^信されるデータである こ を特徴 する。
[0029] 上記誤穎を解決するための第 11の発明は、上記第 9の発明において、前記処理. 要求データ及び前記処理要求リセットデータは、前記第 1の機能部 、バス の間で 送^信されるデータであるこ を特徴 する。
[0030] 上記誤穎を解決するための第 12の発明は、上記第 1から第 11のいずれかの発明 において、前記半導体装置は、
前記データの送^信中の動作状況を履歴情報 して保持する履歴保存丰段を有 するこ を特徴 する。
[0031] 卜.首 Ρ,ϋ親 解決するための 3の 明は、 卜. P ί2の 明に: いて、 tff P,半導 は、
tfmp, 歴保 が保持する 1^†青 ¾に づいて、 : の' 亩^ の 解析する解析丰段 有するこ 特徼 する„
[0032] 卜.首 Ρ,ϋ親 解決するための第 ί4の 明は、 h P,第 ί2 は第 ί3の 明において、 tfmp, 歴保 は、 tfmp, 青 ¾ に屮,力する カ するこ
[0033] 卜.首 Ρ,ϋ親 解決するための 5の 明は、 卜. P ίから 4のいずれかの 明 において、前記セットアップ 間 、謝乍 に動的に ¥するこ 特徼 する„
[0034] 卜.首 Ρ,ϋ 解決するための 6の S月は、 :^¾の謝言制御 去であって 第 1のクロック信吾に某づいて送信されたデータの中、ある一定の周期で第 1のクロ ック信吾の立ち上がり又は立ち下がりと一致する第 2のクロック信吾のセットアップ時 間より前に到着するデータのみを人力するように制御するこ を特徴 する
[0035] 卜.記誤穎を解決するための第 17の発明は、半導体 置の i耐言制御方法であって 第 1のクロック信吾に某づいて送信されたデータの中、ある一定の周期で第 1のクロ ック信吾の立ち上がり又は立ち下がりとの位相差がある一定値になる第 2のクロック信 号のセットアップ時間より前に到着するデータのみを人力するように制御するこ を特 す
[0036] 上記誤穎を解決するための第 18の発明は、上記第 16又は第 17の発明において、 前記诵信制御方法は、前記第 1のクロック信号に同期して複数のデータを人力され た順に、ある一定の周期に予め定められた数のデータを出力するように制御すること を特徴 する。
[0037] 上記誤穎を解決するための第 19の発明は、上記第 16又は第 17の発明において、 前記诵信制御方法は、複数のデータの中から前記セットアップ時間より前に到着す るデータを撰択して人力するように制御するこ を特徴 す
[0038] 上記誤穎を解決するための第 20の発明は、上記第 16又は第 17の発明において、 耐言吿糊 は、 tfmp,セットアップ より こ至 II羞しないデータ 力しない に制御するこ 特徼 する„
[0039] 卜.首 Ρ,ϋ親 解決するための第 2ίの 明は、 h P,第 ί6 は第 ί7の 明において、 耐言吿糊 は、 tfmp,セットアップ より こ至 II羞しないデータ 力しない に制御するこ 特徼 する„
[0040] 卜.首 Ρ,ϋ親 解決するための第 22の 明は、 h P,第 ί6 は第 ί7の 明において、 耐言吿糊 は、 tfmp,セットアップ より こ至 II羞しないデータは、データ 一 だけ;犀 ¾£させる;犀 で;犀 ¾£させたデータ 力するように制御するこ 特徼
[0041] 卜.首 Ρ,ϋ親 解決するための 23の 明は、 卜. P 22の 明に: いて、 tff 甬信 制御 去は、 tftf^セットアップ より前に到着しな ヽデータを tftf¾i¾i£ で tftf^ 第 2のクロック信吾の 1クロック分择延させるこ を特徴 す
[0042] 上記誤穎を解決するための第 24の発明は、上記第 16から第 23のいずれかの発明 において、前記セットアップ時間を、動作時に動的に ¾ ^するこ を特徴 する請求
1直16力 請求 23のいずれ力に言 P の謝言制御 法
[0043] 本発明の半導体装置は、送信する側のクロックと受信側のクロックのエッジ間の時 間差が、ある設計時に決定する遅延設計値 Tdよりも大きい場合はデータ通信し、小 さ ヽ場合はデータ通信しな ヽ。
[0044] データを通信しない第 1の方法として、送信側がそのクロックエッジではデータを出 力しない、または受信側がそのクロックエッジではデータを入力しない方法がある。第
2の方法として、データを遅延させて受信側が受信側の次のクロックのエッジで入力 するよう〖こする。
発明の効果
[0045] 本発明によると、設計時に予め想定する範囲内で、各コアのクロック周波数を自由 に設定することが可能であり、そのクロックにより同期的に通信しているため、動作が 決定的で、通信レイテンシが小さぐ信頼性の高い、コア間通信を実現することができ る。又、これにより、非同期方式で問題となるメタスタピリティ問題を回避し、動作がサ イクルレベルで確定的で、かつ低レイテンシ、低スループットのコア間通信を実現す ることがでさる。
[0046] 更に、半導体装置内の通信履歴力も半導体装置の性能に影響を与える要因を解 祈しているので、次世代の半導体装置に反映させ、信頼性の高い半導体装置を提 供することができる。
発明を実施するための最良の形態
[0047] 本発明の実施の形態を説明する。
[0048] 本発明の半導体装置は、クロック信号 clkAに同期してデータを送信するコア Aと、あ る一定の周期でクロック信号 clkAの立ち上がり又は立ち下がりと一致するクロック信号 clkBに同期してデータ受信するコア Bと、コア Aとコア Bとの間の通信を制御する制御 部とを有する。
[0049] 制御部は、クロック信号 clkBのセットアップ時間より前に到着するデータのみをコア Bが受信できるように制御する。
[0050] 制御する方法としては、クロック信号 clkAの立ち上がりエッジとその立ち上がりのす ぐ後に立ち上がるクロック信号 clkBの立ち上がりエッジとの位相差に相当する時間が 遅延設計値 Td以下の場合には、コア Aはデータを出力しない又はコア Bは入力しな いように制御する。あるいは、クロック信号 clkAの立ち上がりエッジとその立ち上がりの すぐ後に立ち上がるクロック信号 clkBの立ち上がりエッジとの位相差に相当する時間 が Td以下の場合には、データを遅延させてコア Bが次のクロックエッジのタイミングで 入力できるように制御する。 [0051] 以下に具体的な実施例を説明する。
実施例 1
[0052] 本発明における実施例 1につ 、て説明する。
[0053] 図 1は、本発明における実施例 1の半導体装置の構成図である。
[0054] コア A及びコア Bは、所定の機能を有する回路ブロックであり、例えば CPU (Central
Processing Unit)や DSP (Digital Signal Processor)等である。各コアは、各々に入力 される各クロックに同期して所定の処理を行う。
[0055] ここで、各コアに入力されるクロック信号について説明する。
[0056] 図 2は、コア Aに入力されるクロック信号 clkA及びコア Bに入力されるクロック信号 elk
Bのタイミングチャートである。
[0057] クロック信号 clkAとクロック信号 clkBとの周波数は、任意の基準周波数を f (f >0)と した場合、クロック信号 clkA〖ま mf、クロック信号 clkB〖ま nKm,
nは整数)になるように設計される。また、クロック信号 clkAとクロック信号 clkBとの位相 関係が常に一定になるように、即ち、ある一定の周期で各クロック信号の立ち上がり 又は立ち下がりが一致するように、各コアに入力される前に位相調整回路 10で調整 される。このように調整されたクロック信号 clkAは mサイクル毎にクロック信号 clkBに対 する位相関係が一巡 (位相が一致)し、クロック信号 clkBは nサイクル毎〖こクロック信号 clkAに対する位相関係が一巡 (位相が一致)する。図 2は、例として上記 mが 8、 nが 5 である場合、すなわちクロック信号 clkAの周波数が 8f、クロック信号 clkBの周波数が 5 fである場合を示している。この場合、クロック信号 clkAは 8サイクル毎、クロック信号 cl kBは 5サイクル毎にそれぞれのクロック信号の立ち上がりが一致する。また、クロック 信号 clkAとクロック信号 clkBとの立ち上がりが一致するサイクルを 0として、それぞれ のクロックの各サイクルにつけた番号を相番号と呼ぶことにする。相番号が 0のサイク ルカゝら、クロック信号 clkAは mサイクル後、クロック信号 clkBは nサイクル後に再びそれ ぞれのクロックの立ち上がりが一致するので、相番号はそれぞれ m及び nで充分とな る。尚、位相調整回路 10は、例えば DLL (Digital Locked
Loop)回路等の遅延調整回路により実現することが出来る。たとえ、各コアの電圧が 動的に変化する場合でも、それに追従して動的に位相調整することが可能である。 [0058] 再び図 1を参照すると、コア Aは、クロック信号 clkAに同期して所定の動作を行う各 種機能部 3Aと、フリップフロップ 1と、データ出力制御回路 101とを有する。ここで、 機能部とは例えば CPUや DSP等における機能実行部に相当する。
[0059] フリップフロップ 1は、データ出力制御回路 101の制御に基づいて、信号をクロック 信号 clkAに同期して出力する。尚、本実施例では、クロック信号 clkAの立ち上がりェ ッジのタイミングで出力する場合を用いて説明する力 クロック信号 clkAの立ち下がり エッジのタイミングで出力してもよい。
[0060] データ出力制御回路 101は、コア Aからコア Bへデータを送信する場合、コア Aから コア Bへのデータ送信時間を考慮して、コア Bのフリップフロップ 2のセットアップ時間 より前に到着するデータのみを送信するように、クロック信号 clkA及びクロック信号 elk Bの周波数とクロック信号 clkAの相番号とに基づいてフリップフロップ 1を制御する。 詳細に述べると、例えば図 2のクロック信号 clkAの相番号 3の立ち上がりエッジのタイ ミングでデータを出力すると、このデータを入力するタイミングは、クロック信号 clkAの 相番号 3の立ち上がりエッジより後のクロック信号 clkBの立ち上がりエッジのタイミング である。しかしながら、クロック信号 clkBの相番号 2の立ち上がりエッジのようにクロック 信号 clkAの立ち上がりエッジから、その後に立ち上がるクロック信号 clkBの立ち上が りエッジまでの時間が短すぎると、正しいデータを入力することができない。従ってデ ータ出力制御回路 101は、クロック信号 clkAの立ち上がりエッジ力もその後に立ち上 力 ¾クロック信号 clkBの立ち上がりエッジまでの位相差に相当する時間が遅延設計 値 Td以下の場合には、クロック信号 clkAの相番号 3の立ち上がりエッジのタイミングで はデータを出力しないようにフリップフロップ 1を制御する。また、図 2のクロック信号 cl kAの相番号 0及び相番号 1のように、クロック信号 clkBの相番号 1の立ち上がりエッジ までの位相差が遅延設計値 Td以上である立ち上がりエッジが 2つある場合、どちらか 一方の立ち上がりエッジのタイミングではデータを出力しないようにフリップフロップ 1 を制御する力、若しくはコア Aの機能部 3A自身がどちらか一方のサイクルにのみフリ ップフロップ 1へデータを出力するように制御する。
[0061] コア Bはクロック信号 clkBに同期して所定の動作を行う各種機能部 3Bと、フリップフ ロップ 2と、データ入力制御回路 102とを有する。 [0062] フリップフロップ 2は、データ入力制御回路 102の制御に基づいて、信号をクロック 信号 clkBに同期して入力する。尚、本実施例では、クロック信号 clkBの立ち上がりェ ッジのタイミングで入力する場合を用いて説明する力 クロック信号 clkBの立ち下がり エッジのタイミングで入力してもよ 、ものとする。
[0063] データ入力制御回路 102は、コア Aからコア Bへデータを送信する場合、データの 到着がコア Bのフリップフロップ 2のセットアップ時間に間に合わないデータを入力し な 、ように、クロック信号 clkA及びクロック信号 clkBの周波数とクロック信号 clkBの相 番号とに基づいてフリップフロップ 2を制御する。詳細に述べると、クロック信号 clkAの ある立ち上がりエッジ力もクロック信号 clkBのある立ち上がりエッジまでの位相差が遅 延設計値 Td以下の場合には、そのサイクルではデータを入力しないようにフリップフ ロップ 2を制御する。
[0064] ここで、遅延設計値 Tdの決定方法について図 3を参照して説明する。
[0065] 遅延設計値 Tdは、フリップフロップ 1がクロック信号 clkAのある立ち上がりエッジのタ イミングでデータ送信を開始して力 コア Bが受信するまでの時間であるデータ送信 時間を考慮して設定する。詳細には、クロック信号 clkAとクロック信号 clkBとの間のク ロックスキューの時間 +クロックジッタの時間を TskewG、フリップフロップの遅延時間 を Tff、フリップフロップのセットアップ時間を Tsu、最小サイクル時間(最大周波数時の サイクル時間)を Tcyc (min)とすると、遅延設計値 Tdは、 Tcyc (min) >Td>TskewG + Tsu + Tffとなるように設定することになる。
[0066] 続いて、本実施例の動作について説明する。尚、本実施例では、 m=8、 n= 5の 場合を用いて説明する。
[0067] 図 4は、本実施例においてコア Aからコア Bにデータを送信する際にデータ出力制 御回路 101がデータの出力を制御する場合の動作を説明するためのタイムチャート である。
[0068] 図中のクロック信号 clkAはコア Aのクロック信号 clkAであり、図中のクロック信号 clkB はコア Bのクロック信号 clkBである。 m=8であるため、クロック信号 clkAの周波数は 8f であり、相番号は 0〜7までとなる。同様に n= 5であるためクロック信号 clkBの周波数 は 5fであり、相番号は 0〜5までとなる。クロック信号 clkA、クロック信号 clkBの各相番 号が 0のときに位相が一致 (各クロック信号の立ち上がりのタイミングが一致)している ので、クロック信号 clkAの 8サイクル毎、クロック信号 clkBの 5サイクル毎に位相関係が 一巡することになる。すなわち、データ出力制御回路 101は、クロック信号 clkAの 8サ イタル内及びクロック信号 clkBの 5サイクル内の位相関係を考慮してデータの通信制 御を行うことになる。 Dout_ENは、データ出力制御回路 101からの制御信号である。 D in_ENは、データ出力制御回路 102からの制御信号である。 Doutは、フリップフロップ 1が出力する入力信号である。 Dinは、フリップフロップ 2が出力し、コア Bの機能部 3B が入力する信号である。
[0069] ここで、遅延設計値 Tdとしてクロック信号 clkAのサイクル時間の半分を選択した場 合、図 4に示すように、クロック信号 clkAの相番号 3の立ち上がりエッジからクロック信 号 clkBの相番号 2の立ち上がりエッジ、及びクロック信号 clkAの相番号 6の立ち上がり エッジからクロック信号 clkBの相番号 4の立ち上がりエッジへの位相差に相当する時 間が Td以下になる。このことは、クロック信号 clkA及びクロック信号 clkBの周波数とク ロック信号 clkAの相番号と力 わ力るので、この場合、データ通信しないようにデータ 出力制御回路 101は制御することになる。
[0070] コア Aがデータを出力しないように制御する場合、データ出力制御回路 101はクロ ック信号 clkAの周波数 8f、クロック信号 clkBの周波数 5f及びクロック信号 clkAの相番 号 0〜7が与えられるので、クロック信号 clkAの相番号 3及び 6の立ち上がりエッジの タイミングで出力しないように制御する。また、クロック信号 clkAの相番号 0及び 1の立 ち上がりエッジのタイミングで出力されたデータを、クロック信号 clkBの相番号 1の立 ち上がりエッジのタイミングで入力することが出来る力 ここではクロック信号 clkAの相 番号 1の立ち上がりエッジのタイミングで出力されたデータを受け取るようにする為、 相番号 0のタイミングではデータを出力しないように出力制御回路 101が制御する場 合について説明する。
[0071] まず、データ出力制御回路 101は、クロック信号 clkAの相番号 1及び 2でデータを 出力するように、クロック信号 clkAの相番号 0の立ち上がりエッジのタイミングで制御 信号 Dout_ENを Highにする。
[0072] データ出力制御回路 101は、クロック信号 clkAの相番号 3の立ち上がりエッジのタイ ミングでフリップフロップ 1がデータを出力しないように、クロック信号 clkAの相番号 2 の立ち上がりエッジのタイミング力 ホールド時間経った後、制御信号 Dout_ENを Lo
Wにする 0
[0073] クロック信号 clkAの相番号 4の立ち上がりエッジのタイミングでフリップフロップ 1がデ ータを出力できるように、クロック信号 clkAの相番号 3の立ち上がりエッジのタイミング からホールド時間経った後、制御信号 Dout_ENを Highにする。
[0074] データ出力制御回路 101は、クロック信号 clkAの相番号 6の立ち上がりエッジのタイ ミングでフリップフロップ 1がデータを出力しないように、クロック信号 clkAの相番号 5 の立ち上がりエッジのタイミング力 ホールド時間経った後、制御信号 Dout_ENを Lo
Wにする 0
[0075] クロック信号 clkAの相番号 7の立ち上がりエッジのタイミングでフリップフロップ 1がデ ータを出力できるように、クロック信号 clkAの相番号 6の立ち上がりエッジのタイミング からホールド時間経った後、制御信号 Dout_ENを Highにする。
[0076] 次に、クロック信号 clkAの相番号 0の立ち上がりエッジのタイミングでフリップフロッ プ 1がデータを出力しないように、クロック信号 clkAの相番号 7の立ち上がりエッジの タイミングで制御信号 Dout_ENを Lowにする。
[0077] 以上の動作を繰り返すことにより、非同期方式で問題となるメタスタピリティ問題を回 避し、動作がサイクルレベルで確定的で、かつ低レイテンシ、低スループットのコア間 通信を実現することができる。
[0078] 位相差に相当する時間が Td以下の場合に、データを通信しないように制御する方 法として、上述したコア Aがそのタイミングではデータを出力しないようにデータ出力 制御回路 101がフリップフロップ 1を制御する方法と、コア Bがそのタイミングではデー タを入力しないようにデータ入力制御回路 102がフリップフロップ 2を制御する方法が ある。
[0079] 次に、データ入力制御回路 102がフリップフロップ 2を制御する方法について説明 する。
[0080] 図 5は、本実施例においてコア Aからコア Bにデータを送信する際にデータ入力制 御回路 102がデータの入力を制御する場合の動作を説明するためのタイムチャート である。
[0081] コア Bがデータを入力しないように制御する場合、上述した通り、クロック信号 clkAの 相番号 3及び 6の立ち上がりエッジのタイミングで出力されたデータを入力しないよう に制御する。また、クロック信号 clkAの相番号 0及び 1の立ち上がりエッジのタイミング で出力されたデータを、クロック信号 clkBの相番号 1の立ち上がりエッジのタイミング で入力することが出来る力 ここではコア Aの機能部 3Aがクロック信号 clkAの相番号 0か 1のどちらか一方の立ち上がりエッジのタイミングでしかデータを出力しない場合 について説明する。同様に、クロック信号 clkAの相番号 2、 3及び 4についても、コア A の機能部 3Aが相番号 2, 3, 4のいずれか 1つの立ち上がりエッジのタイミングでしか データを出力しないとする。更に、同様に、クロック信号 clkAの相番号 5、 6及び 7につ いても、コア Aの機能部 3Aが相番号 5, 6, 7のいずれ力 1つの立ち上がりエッジのタ イミングでしかデータを出力しないとする。
[0082] まず、データ入力制御回路 102は、クロック信号 clkAの相番号 3の立ち上がりエッジ のタイミングでフリップフロップ 1が出力したデータを、クロック信号 clkBの相番号 2の 立ち上がりエッジのタイミングでフリップフロップ 2が入力しないように、クロック信号 elk Bの相番号 1の立ち上がりエッジのタイミングで制御信号 Din_ENを Lowにする。
[0083] クロック信号 clkAの相番号 4の立ち上がりエッジのタイミングでフリップフロップ 1が出 力したデータを、クロック信号 clkBの相番号 3の立ち上がりエッジのタイミングでフリツ プフロップ 2が入力できるように、クロック信号 clkBの相番号 2の立ち上がりエッジのタ イミングで制御信号 Din_ENを Highにする。
[0084] データ入力制御回路 102は、クロック信号 clkAの相番号 6の立ち上がりエッジのタイ ミングでフリップフロップ 1が出力したデータを、クロック信号 clkBの相番号 4の立ち上 力 Sりエッジのタイミングでフリップフロップ 2が入力しな 、ように、クロック信号 clkBの相 番号 3の立ち上がりエッジのタイミングで制御信号 Din_ENを Lowにする。
[0085] クロック信号 clkAの相番号 7の立ち上がりエッジのタイミングでフリップフロップ 1が出 力したデータを、クロック信号 clkBの相番号 0の立ち上がりエッジのタイミングでフリツ プフロップ 2が入力できるように、クロック信号 clkBの相番号 4の立ち上がりエッジのタ イミングで制御信号 Din_ENを Highにする。また、クロック信号 clkAの相番号 1の立ち 上がりエッジのタイミングでフリップフロップ 1が出力したデータは、制御信号 Din_EN が Highのままであるため、クロック信号 clkBの相番号 1の立ち上がりエッジのタイミン
Figure imgf000016_0001
[0086] 以上の動作を繰り返すことにより、非同期方式で問題となるメタスタピリティ問題を回 避し、動作がサイクルレベルで確定的で、かつ低レイテンシ、低スループットのコア間 通信を実現することができる。
[0087] 尚、本実施例ではデータ出力制御回路 101とデータ入力制御回路 102とを有する 半導体装置を構成例に挙げて説明したが、これに限るものではない。即ち、どちらか 一方を有した構成であればよい。また、本実施例では、コア Aからコア Bにデータを送 信する場合について説明したため、コア Aがデータ出力制御回路 101を、コア Bがデ ータ入力制御回路 102を有する構成であった力 コア B力もコア Aにデータを送信す る場合は、コア Aがデータ入力制御回路 102を、コア Bがデータ出力制御回路 101を 有する構成となる。又、コア A及びコア Bにデータ出力制御回路 101又はデータ入力 制御回路 102を有する構成をとり、コア Aとコア Bとでデータ送受信する構成であって も良い。
実施例 2
[0088] 実施例 1において、位相差に相当する時間が遅延設計値 Td以下の場合にデータ を通信しな 、方法として、そのタイミングではデータを出力しな 、又は入力しな!ヽ方 法について説明した力 データを遅延させてコア Bが次のクロックエッジのタイミング で入力できるようにしてもよい。本実施例では、データを遅延させる方法について説 明する。尚、上述した実施例と同様の構成については、同一番号を付し、詳細な説 明を省略する。
[0089] 図 6は、本実施例の半導体装置の構成を示す図である。
[0090] フリップフロップ 1は、信号をクロック信号 clkAに同期して出力する。尚、本実施例で は、クロック信号 clkAの立ち上がりエッジのタイミングで出力する場合を用いて説明す る力 クロック信号 clkAの立ち下がりエッジのタイミングで出力してもよいものとする。
[0091] フリップフロップ 2は、信号をクロック信号 clkBに同期して入力する。尚、本実施例で は、クロック信号 clkBの立ち上がりエッジのタイミングで入力する場合を用いて説明す るが、クロック信号 clkBの立ち下がりエッジのタイミングで入力してもよ!、ものとする。
[0092] 遅延素子 30は、フリップフロップ 1から出力されたデータを遅延値 Tdly時間だけ遅 延させる。
[0093] ここで、遅延値 Tdlyの決定方法について図 3を参照して説明する。
[0094] 遅延値 Tdlyは、遅延設計値 Td同様、コア Aがクロック信号 clkAのある立ち上がりェ ッジでデータ送信開始して力 コア Bが受信するまでの時間であるデータ送信時間を 考慮して設定する。
最小サイクル時間 (最大周波数時のサイクル時間)を Tcyc(min)、クロック信号 clkAとク ロック信号 clkBとの間のクロックスキュー +クロックジッタを TskewG、クロック信号 clkA内 またはクロック信号 clkB内のクロックスキュー +クロックジッタを TskewL、クロック信号 elk Aとクロック信号 clkBの位相差を Tpd、フリップフロップの遅延を Tff、フリップフロップの セットアップ時間を Tsu、フリップフロップのホールド時間を Thoとすると、 Tdlyは Tskew G + Tsu + Tho < Tdlyく Tcyc(min) - TskewL - Tsu - Tffとなるように設定する。
[0095] データ遅延選択制御回路 103は、クロック信号 clkAの周波数、クロック信号 clkBの 周波数及びクロック信号 clkBの相番号に基づいて、コア Aからの出力データである D outまたは、その出力を遅延素子 30が遅延値 Tdly時間だけ遅延させた Dout_DLYの いずれ力からのデータをフリップフロップ 2が入力するかセレクタ 4を制御する。
[0096] セレクタ 4は、データ遅延選択制御回路 103からの制御信号 Dselに基づいて、 Dout または Dout_DLYの出力値を選択する。
[0097] 続いて、本実施例における動作について説明する。
[0098] 図 7は、データ遅延選択制御回路 103の動作を説明するためのタイミングチャート である。尚、本実施例では、基準周波数を fとして、クロック信号 clkAの周波数が 8f、ク ロック信号 clkBの周波数力 5fとした場合の動作を説明する。
[0099] 図中のクロック信号 clkA〖まコ Aのクロック信号 clkAであり、図中のクロック信号 clkB はコア Bのクロック信号 clkBである。 m=8であるため、クロック信号 clkAの周波数は 8f であり、相番号は 0〜7までとなる。同様に n= 5であるためクロック信号 clkBの周波数 は 5fであり、相番号は 0〜4までとなる。クロック信号 clkA、クロック信号 clkBの各相番 号が 0のときに位相が一致 (各クロック信号の立ち上がりのタイミングが一致)している ので、クロック信号 clkAの 8サイクル毎、クロック信号 clkBの 5サイクル毎に位相関係が 一巡することになる。すなわち、データ遅延選択制御回路 103は、クロック信号 clkA の 8サイクル内及びクロック信号 clkBの 5サイクル内の位相関係を考慮してデータの 通信制御を行うことになる。 Doutは、フリップフロップ 1からの出力データであり、遅延 させていないデータである。 Dout_DLYは、フリップフロップからの出力データを遅延 素子で遅延させたデータである。 Dselは、データ遅延選択制御回路 103からの制御 信号である。 Dinは、フリップフロップ 2が出力するデータである。
[0100] 図 7に示すように、クロック信号 clkAの相番号 3の立ち上がりエッジからクロック信号 c lkBの相番号 2の立ち上がりエッジ、及びクロック信号 clkAの相番号 6の立ち上がりェ ッジからクロック信号 clkBの相番号 4の立ち上がりエッジへの位相差が Td以下となる。 このことは、クロック信号 clkA及びクロック信号 clkBの周波数とクロック信号 clkBのネ目番 号とからわかるので、このときデータ遅延選択制御回路 103は、 clkAの相番号 3及び 相番号 6の立ち上がりエッジのタイミングでフリップフロップ 1が出力するデータを遅延 素子により Tdlyだけ遅延されたデータをフリップフロップ 2が入力するデータとして選 択する。すなわち、クロック信号 clkAの相番号 3の立ち上がりエッジ力もクロック信号 cl kBの相番号 2の立ち上がりエッジ、及びクロック信号 clkAの相番号 6の立ち上がりエツ ジ力 クロック信号 clkBの相番号 4の立ち上がりエッジでデータを送受信する代わりに 、遅延素子 30で Tdlyだけ遅延させたデータをフリップフロップ 2が入力するようにセレ クタ 4を制御することにより、クロック信号 clkAの相番号 3の立ち上がりエッジ力 クロッ ク信号 clkBの相番号 3の立ち上がりエッジ、及びクロック信号 clkAの相番号 6のクロッ クエッジ力もクロック信号 clkBの相番号 0の立ち上がりエッジのタイミングで入力するよ うに制御する。
[0101] まず、クロック信号 clkAの相番号 0又は 1の立ち上がりエッジのタイミングでフリップ フロップ 1が出力したデータを、クロック信号 clkBの相番号 1の立ち上がりエッジのタイ ミングでフリップフロップ 2が Dout力も受信するように、データ遅延選択制御回路 103 はクロック信号 clkBの相番号 1の立ち上がりエッジのタイミングでは、 Dselに Lowを出 力する。
[0102] データ遅延選択制御回路 103は、クロック信号 clkAの相番号 3の立ち上がりエッジ のタイミングでフリップフロップ 1が出力したデータを Dout_DLYから受信するように、ク ロック信号 clkBの相番号 1の立ち上がりエッジのタイミングで、制御信号 Doutを High にする。
[0103] クロック信号 clkAの相番号 4の立ち上がりエッジのタイミングでフリップフロップ 1が出 力したデータを Dout力も入力するように、クロック信号 clkBの相番号 2の立ち上がりェ ッジのタイミングで、制御信号 Dselを Lowにする。
[0104] クロック信号 clkAの相番号 6の立ち上がりエッジのタイミングでフリップフロップ 1が出 力したデータを、 Dout_DLYから入力するように、クロック信号 clkBの相番号 3の立ち 上がりエッジのタイミングで、制御信号 Dselを Highにする。
[0105] クロック信号 clkAの相番号 7の立ち上がりエッジのタイミングでフリップフロップ 1が出 力したデータを、 Dout力も入力するように、クロック信号 clkBの相番号 4の立ち上がり エッジのタイミングで、制御信号 Dselを Lowにする。
[0106] 以上により、非同期方式で問題となるメタスタピリティ問題を回避し、動作がサイクル レベルで確定的で、かつ低レイテンシ、低スループットのコア間通信を実現すること ができる。
実施例 3
[0107] 本実施例では、上述した半導体装置を使用したノ、ンドシェイク回路について説明 する。尚、上述した構成と同様の構成については同一番号を付し、詳細な説明を省 略する。また、本実施例では上述した実施例 2を用いた場合について説明するが、 実施例 1で説明した半導体装置を用いてもょ 、。
[0108] 図 8は、上述した実施例 2の半導体装置を用いたリクエストのハンドシェイク回路を 示す図である。尚、リクエストとはデータ通信やデータ処理などにおける処理要求の データのことである。
[0109] ハンドシェイク回路 80は、データ遅延選択制御回路 103A、データ遅延選択制御 回路 103B、データ遅延選択回路 20A、データ遅延選択回路 20B、データ遅延素子 30及び同期式 SRフリップフロップ 81を有す。また、コア Aとコア Bとの電源電圧の差 を変換するレベルシフタ回路 82を有す。
[0110] コア Aの機能部 3Aは、ハンドシェイク回路 80を通じて、リクエストがある旨をコア Bに 通知し、コア Bはリクエストを受け取った旨をコア Aに通知する。リクエストの有無は、コ ァ A及びコア Bで共有する同期式 SRフリップフロップ 81に保持され、それぞれのコア が備えるデータ遅延選択回路 20A及び 20Bを通じて同期的にハンドシェイク処理が 行われる。
[0111] 続いて、ハンドシェイクの動作について説明する。
[0112] まず、リクエストをセットする動作について説明する。
[0113] コア Aの機能部 3Aは Req_setの信号を Highにすることで、同期式 SRフリップフロッ プ 81にリクエストをセットする(ステップ BS301)。
[0114] リクエストがセットされた旨は、同期式 SRフリップフロップ 81の出力 Doutからの信号 が Highとなって出力される(ステップ BS302)。
[0115] このリクエストがセットされた旨を示す Doutの値 Highは、コア B側にあるデータ遅延 選択回路 20Bを通じて Req_Bに出力され、コア Bにリクエストがある旨が通知される(ス テツプ BS 303)。
[0116] ここで、ステップ BS303について詳細に説明する。
[0117] データ遅延選択制御回路 103Bは、 Doutの値が Highになった時、図 7のクロック信 号 clkBの相番号 0, 1, 3のように、この直前のクロック信号 clkAの立ち上がりエッジか らクロック信号 clkBの立ち上がりまで Td以上ある場合は、 Doutからの信号を入力する ように制御する。フリップフロップ 2は、 Doutからの信号をクロック信号 clkBの立ち上が りエッジのタイミングで入力し、 Req_Bに出力する。
[0118] 図 7のクロック信号 clkBの相番号 2,4のように、直前のクロック信号 clkAの立ち上がり 力もクロック信号 clkBの立ち上がりまでが Td以下である場合は、 Doutを遅延素子 30 により Tdlyだけ遅延させた Dout_DLYからの信号を、入力するように制御する。フリップ フロップ 2はクロック信号 clkBの立ち上がりエッジのタイミングで入力し、 Req_Bに出力 する。
[0119] また、図 7のクロック信号 clkBの相番号 0のように、クロック信号 clkAの立ち上がりとク ロック信号 clkBの立ち上がりが等しい場合には、 Doutをフリップフロップ 2に入力せず に、直接 Req_Bに出力するように制御する。
[0120] 尚、データ遅延選択制御回路 103Bは、クロック信号 clkAの周波数、クロック信号 cl kBの周波数、クロック信号 clkBの相番号、及び遅延設計値 Tdを参照して、上記のよう に制御する。これにより、メタスタピリティを回避し、かつ確定的にコア Aからのリクエス トをコア Bに通知する。
[0121] 上述のステップ BS301及び BS302で説明した、リクエストがセットされた旨を示す D outの値 Highは、データ遅延選択回路 20Aを通じて Req_Aに出力され、同期式 SRフ リップフロップ 81にリクエストがセットされている旨がコア Aに通知される(ステップ AS3 03)。コア Aは以前のリクエストがセットされている間は、新たなリクエストをセットするこ とはできない。
[0122] ここで、ステップ AS303について詳細に説明する。
[0123] データ遅延選択制御回路 103Aは、 Doutの値が Highになった時、この直前のクロ ック信号 clkBの立ち上がりエッジからクロック信号 clkAの立ち上がりまで Td以上ある場 合は、 Doutからの信号を入力するように制御する。フリップフロップ 1は、 Doutからの 信号をクロック信号 clkAの立ち上がりエッジのタイミングで入力し、 Req_Aに出力する。
[0124] 直前のクロック信号 clkBの立ち上がりからクロック信号 clkAの立ち上がりまでが Td以 下である場合は、 Doutを遅延素子 30により Tdlyだけ遅延させた Dout_DLYからの信 号を、入力するように制御する。フリップフロップ 1はクロック信号 clkAの立ち上がりェ ッジのタイミングで入力し、 Req_Aに出力する。
[0125] クロック信号 clkBの立ち上がりとクロック信号 clkAの立ち上がりとが等しい場合には、 Doutをフリップフロップ 1に入力せずに、直接 Req_Aに出力するように制御する。
[0126] 尚、データ遅延選択制御回路 103Aは、クロック信号 clkAの周波数、クロック信号 cl kBの周波数、クロック信号 clkAの相番号、及び遅延設計値 Tdを参照して、上記ように 制御する。
[0127] 続、てセットされたリクエストをリセットする動作にっ 、て説明する。
[0128] コア Bは、リクエストを受信すると、もしくはリクエストの対象となって!/、る処置が完了 すると、クロック信号 clkBの立ち上がりエッジのタイミングで Req_resetを Highにするこ とでクロック信号 clkBの立ち上がりエッジのタイミングで、同期式 SRフリップフロップ 81 に保持されているリクエストをリセットする (ステップ AR301)。このリクエストがリセット された旨は、同期式 SRフリップフロップ 81の出力 Doutからの信号が Lowとなって出 力される(ステップ AR302)。
[0129] このリクエストがセットされた旨を示す Doutの値 Lowは、コア A側にあるデータ遅延 選択回路 20Aを通じて Req_Aに出力され、コア Aにリクエストがある旨が通知される ( ステップ AR303)。
[0130] ここで、ステップ AR303について詳細に説明する。
[0131] データ遅延選択制御回路 103Aは、 Doutの値力Lowになった時、この直前のクロッ ク信号 clkBの立ち上がりエッジ力もクロック信号 clkAの立ち上がりまで Td以上ある場 合は、 Doutからの信号を入力するように制御する。フリップフロップ 1は、 Doutからの 信号をクロック信号 clkAの立ち上がりエッジのタイミングで入力し、 Req_Aに出力する。
[0132] 直前のクロック信号 clkBの立ち上がりからクロック信号 clkAの立ち上がりまでが Td以 下である場合は、 Doutを遅延素子 30により Tdlyだけ遅延させた Dout_DLYからの信 号を、入力するように制御する。フリップフロップ 1はクロック信号 clkAの立ち上がりェ ッジのタイミングで入力し、 Req_Aに出力する。
[0133] クロック信号 clkAの立ち上がりとクロック信号 clkBの立ち上がりが等しい場合には、 D outをフリップフロップ 1に入力せずに、直接 Req_Aに出力するように制御する。
[0134] 尚、データ遅延選択制御回路 103Aは、クロック信号 clkAの周波数、クロック信号 cl kBの周波数、クロック信号 clkAの相番号、及び遅延設計値 Tdlyを参照して、上記よう に制御する。その結果、コア Aにリクエストがリセットされた旨を通知する。コア Aは新た なリクエストをセットすることができる。
[0135] 上述のステップ AR301及び AR302で説明した、リクエストがリセットされた旨は、コ ァ B側のデータ遅延選択回路 20Bを通じて Doutの値が Req_Bに出力され、同期式 SR フリップフロップ 81にリクエストがリセットされた旨がコア Bに通知される(ステップ BR3 03)。コア Aは以前のリクエストがセットされている間は、新たなリクエストをセットするこ とはできない。
[0136] ここで、ステップ BR303について詳細に説明する。
[0137] データ遅延選択制御回路 103Bは、 Doutの値力 owになった時、この直前のクロッ ク信号 clkAの立ち上がりエッジ力もクロック信号 clkBの立ち上がりまで Td以上ある場 合は、 Doutからの信号を入力するように制御する。フリップフロップ 2は、 Doutからの 信号をクロック信号 clkBの立ち上がりエッジのタイミングで入力し、 Req_Bに出力する。
[0138] 直前のクロック信号 clkAの立ち上がりからクロック信号 clkBの立ち上がりまでが Td以 下である場合は、 Doutを遅延素子 30により Tdlyだけ遅延させた Dout_DLYからの信 号を、入力するように制御する。フリップフロップ 2はクロック信号 clkBの立ち上がりェ ッジのタイミングで入力し、 Req_Bに出力する。
[0139] クロック信号 clkBの立ち上がりとクロック信号 clkAの立ち上がりとが等しい場合には、
Doutをフリップフロップ 1に入力せずに、直接 Req_Bに出力するように制御する。
[0140] 尚、データ遅延選択制御回路 103Bは、クロック信号 clkAの周波数、クロック信号 cl kBの周波数、クロック信号 clkBの相番号、及び遅延設計値 Tdlyを参照して、上記のよ うに制御する。
[0141] 上述したように、本発明のハンドシェイク回路によれば、コア間で同期的にリクエスト の送受信が行えるため、非同期方式で問題となるメタスタピリティを回避し、動作がサ イクルレベルで確定的でかつ低レイテンシ、低スループットのコア間通信を実現する ことが出来る。
実施例 4
[0142] 本実施例では、上述したハンドシェイク回路を有するバス'インターフェース回路を 備える SOC (System on a Chip)について説明する。
[0143] 図 9は本発明における SOCの構成例である。
[0144] SOCを構成する各コアのクロックはすべて、バスのクロックにあわせて位相を調整し 、コア間の通信は必ずバスを介して行われる。これにより各コアの周波数範囲に差が ある場合でも、コア間が直接通信する方法に比べて、少ない周波数のステップ数で 任意のコア間の通信を実現することができる。また、クロック周波数及び電源電圧を 変更する場合でも、位相調整回路 10により動的にクロック間の位相を一定に調整す るので、同期通信が可能であり、すなわち非同期方式で問題となるメタスタピリティ問 題を回避し、動作がサイクルレベルで確定的で、かつ低レイテンシ、低スループット のコア間通信を実現することができる。
[0145] 図 10は、バス'インターフェース回路の構成例である。
[0146] バス'インターフェース回路は、リクエスト FIFO(requestFIFO)2101、データ FIFO(da ta FIFO)2102、データ遅延選択制御回路 103A、及びデータ遅延選択制御回路 10 3Bを備える。
[0147] リクエスト FIFO2101は複数のハンドシェイク回路 80を備え、コア (Master Core)211 0から MReqに入力されるリクエストを、バス (Bus
Interconnect)2120に Reqを通じて同期的に通知する。また、そのリクエストに対応す る命令 (Cmd)、アドレス (Addr)、及びデータ (Data)をデータ FIFOよりバス 2120に出力 する。尚、ここでのコア (Master
Core)2110は、バスに対してリクエストを発行するコア全般を示す。
[0148] 続いて、動作について説明する。
[0149] コアはバスに対するリクエストを、 MReqを通じて入力する。同時にそのリクエストの命 令/アドレス/データを MCmd/MAddr/MDataを通じて入力する。ノ ス 'インターフエ一 ス回路は、リクエスト FIFOに空きあれば (リクエストがセットされていないハンドシェイク 回路があれば)、リクエスト FIFO内の空!ヽて 、るハンドシェイク回路の 、ずれかにその リクエストをセットする。同時に、入力された命令/アドレス/データをデータ FIFOに格 納する。また、リクエストを受理した旨を SAckを通じてコアに通知する。一方、リクエス ト FIFOに空きがなぐリクエストを受理できない場合は、その旨を SAckを通じてコアに 通知する。
[0150] リクエスト FIFOのハンドシェイク回路にセットされたリクエストは、ハンドシェイク回路 の機能により同期的に Reqを通じてノ スに出力される。同時にそのリクエストに対応す る命令/アドレス/データがデータ FIFOから取り出されて、 Cmd/Addr/Dataを通じてバ スに出力される。
[0151] ノ スは、リクエストを受理した場合は、その旨を Ackを通じてバス'インターフェース 回路に通知する。バス'インターフェース回路は受理されたリクエストがセットされてい たハンドシェイク回路において,そのリクエストをリセットする。一方、ノ スがリクエストを 受理できない場合は、その旨を Ackを通じてバス'インターフェース回路に通知する。 バス'インターフェース回路はリクエストが受理されるまで、バスへのリクエストの出力 を継続する。
[0152] 上述したように、本発明のバス'インターフェース回路によりコアとバスとの間で同期 的にリクエストの送受信が行えるため、非同期方式で問題となるメタスタピリティ問題 を回避し、動作がサイクルレベルで確定的で、かつ、低レイテンシ、低スループットの コア間通信を実現することができる。
実施例 5
[0153] 本実施例では、上述したコア間の通信、コアとバスとの間の通信における各部の動 作状況を保持する構成について説明する。尚、上述した構成と同様の構成について は同一番号を付し、詳細な説明を省略する。
[0154] 図 11は、本発明におけるオンチップ ·デバッグ回路の構成例である。
[0155] コア 110は、 CLK生成部 111からのクロックに同期して動作する。又、他のコアとの データ通信を、ハンドシェイク回路 80及びバスを介して行う。尚、コア 110は、上述し たコア(Master Core)と同等である。
[0156] CLK生成部 111は、ある一定の周期でバスのクロック信号の立ち上がり又は立ち 下がりと一致するクロック信号を生成する。
[0157] 履歴保存部 112は、実際にデータを出入力(送受信)しているコア及びバスの動作 状況を履歴情報として保存するものである。例えば、履歴保存部 112は、コア及びバ スのクロック周波数と、コア及びバスの電源電圧とが変化したタイミングと変化後の値 と、コアのクロックの立ち上がりとバスのクロックの立ち上がり又はコアのクロックの立ち 下がりとバスのクロックの立ち下がりが一緒になるタイミングとを履歴情報として保存す る。更に、 LSB (Least Significant Bit/Byte)等のバスのデータの一部や req信号、 ack 信号の送受信タイミングも履歴情報として保存する。尚、履歴保存は、バスのクロック の立ち上がりまたは立ち下がりエッジのタイミングで保存する構成であっても、若しく はコアのクロックの立ち上がりまたは立ち下がりエッジのタイミングで保存する構成で あっても良い。
[0158] 解析部 113は、履歴保存部 112が保持する履歴情報に基づいて半導体装置の性 能低下の原因を解析し、コア周波数、コア電源電圧、バス周波数等を制御する。例え ば、履歴保存部 112が保持する履歴情報から req信号、 ack信号の送受信タイミング を解析し、 ack信号の送信が遅い場合はバスの周波数を上げ、 req信号の送信が遅い 場合はコアの周波数を上げる制御をする。 [0159] 出力部 114は、履歴保存部 112の履歴情報を外部に出力する。外部に出力された 履歴情報は、デバッグ SZW (ソフトウェア)でシミュレートさせ、半導体装置の性能低 下の原因を解明する。尚、この出力部は、履歴情報が所定量蓄積させてから所定量 毎に送信する構成であっても、予め定められた時間に送信する構成であっても、外 部から要求された際に送信する構成であっても良い。
[0160] 続いて、本実施例における動作について説明する。
[0161] コア 110は、他のコアとのデータ通信を、ハンドシェイク回路 80及びバスを介して行
[0162] その一方で、履歴保存部 112は各種情報を収集して履歴情報を保存する。
[0163] 解析部 113は、履歴情報に基づいて各種解析を行い、コア周波数、コア電源電圧
、バス周波数等を制御する。
[0164] 履歴保存部 112は、履歴情報を外部に出力する。
[0165] 上述した構成をとると、バスの動作状況を履歴情報として保存し、その履歴情報に 基づいてコアの周波数等を制御しているので、半導体装置全体の性能向上が可能と なる。又、実動作しているコア及びバスの動作状況を履歴保存して外部に出力して いるので、次世代の半導体装置に反映させることが可能となる。
実施例 6
[0166] 実施例 2において、コア A力 コア Bへの诵信を行なう際に、コア Aとコア Bのそれぞ れのクロックの位相差が择延設計彼 Td以下の場合にデータを诵信しない方法 して 、位相差が Td以下の場合には、データを遅延値 Tdlvだけ遅延させたデータをコア B が入力する 去を説明した
[0167] 実施例 2の構成を説明する図 6を参照すると、コア Bがデータを Tdlvだけ遅延させる ;犀 ¾£素早 30 備 る構成であるが、;犀 ¾£素早 30はコア Aが備 てもよい„また、デ 一タ 揮 ¾£させる 法 して、;犀 ¾£素早 30 使用する代わりに、クロックの 下りでデ ータ ラッチするフリップフロップ 使用するこ で る„
[0168] 闵 14は、コア A側でクロックの立下りでデータをラッチするフリップフロップによって データ 揮 ¾£させる 法による半 ^置の構成 示す阅であ 阅 6の ¾施例 2の 5^ の まについては、 一 付し、 ¾ 田な首 月 省 す [0169] 図 14を参照するとコア Aは、フリップフロップ 1の出力信吾 Doutをクロック clkAの立 下りでラッチするフリップフロップ 230を備える。すなわち、フリップフロップ 230は信 吾 Doutをクロック clkAのサイクル時間の半分だけ遅延させ、 Dout DLYとして出力する 機能を有する これは遅延値 Tdlv力 Sクロック clkAのサイクル時間の半分と等 ヽ場合 の遅延素子 30と同様の機能であるので、本実施例の動作は図 7に示した実施例 2の 場合 固様にな 本実施例の構成は実施例 2の構成 比較して、择延彼 Tdlvはクロ ック clkAのサイクル時間の半分に限定される力 遅延素子の遅延値のばらつきには 影響されない いう刺点がある
実施例 7
[0170] コア Aからコア Bへの诵信を行なう際に、コア A コア Bのそれぞれのクロックの位相 差が;犀 ¾£設訃彼丁(1以下の場合には、データ 犀 ¾£彼 Tdlvだけ;犀 ¾£させたデータ コア Bが人力する 去の の ¾ 列 ^ Π 5 照して , S月す 尚、 术した ¾施 例 同 ¾の構成については、同一番号を付し詳細な説明を省略する
[0171] 闵15は、本実窗列の半導体 置の構成を示す^!であ
[0172] コア Aが備えるィネーブル付きフリップフロップ 231及び 232は、機能部 3Aが出力 する信吾 DoutOをクロック clkAに同期してラッチしそれぞれ信吾 Doutl、 Dout2として コア Bへ出力す ただし信吾をラッチして出力するのはそれぞれのイネ一ブル信 号 enl、 en2により謝乍を指示された場合のみでぁ データ出力選択制御回路 202 は、クロック clkAの相番吾を参照して、フリップフロップ 231及び 232が 1サイクル毎に 交互に動作するようにィネーブル信号 enl ¾び en2を牛.成する すなわち信号 Doutl 及び Dout2には、それぞれお互いにクロック clkAで 1サイクル遅延させた信吾が出力 されることになる 詳細には、 Doutlが出力する信吾よりも 1サイクル遅い信吾が Dout2 に屮,力され、 Dmit2が屮,力する よりも 1サイクル;犀 W言 が Dmitlに屮,力される„ よって、本 ¾施例では;犀 ¾£彼 Tdlvは常にクロック dkAのサイクル時間 等しくなる„
[0173] 一方、コア B側の構成は、 ¾施例 6におけるコア Bの構成のデータ;犀 巽択制御冋 路 103 データ人力;巽択制御冋路 20ίに置 ¾ た以外は、 ¾施例 6におけるコア Βの 5^ の であ データ人力;巽 制御冋 20ίの はデータ跑正;巽 丰尺吿 I刚冋 103の 亩 であるが、 ¾施例 6 び ¾施例 2では Dmitに し て常に信吾 Dout DLYに遅延した信吾が出力されるのに対して、本実施例の構成で は信吾 Doutlまたは Dout2に交互に遅延した信吾が出力されるので、それに対応した 制御がなされる。
[0174] 次に、闵16を参照して本実窗列の動作の詳細を説明す
[0175] 図 16は、本実施例の動作を説明するためのタイミングチャートである 尚、本実施 例では、某準周波数を して、クロック信吾 clkAの周波数が 8f、クロック信吾 clkBの周 波数が 5f した場合の動作を説明す
[0176] 図中のクロック信 ~§ lkA〖まコ Aのクロック信 clkAであり、図中のクロック信 clkB はコア Bのクロック信吾 clkBである m= 8であるため、クロック信吾 clkAの周波数は 8f
Figure imgf000028_0001
は 5fであり、相番 は 0〜4まで な クロック信 ^dkA、クロック信 ^ lkBの各相番 号が 0の きに位相が一致 (各クロック信号の立ち十.がりのタイミングが一致)している ので、クロック信号 clkAの 8サイクル毎、クロック信号 clkBの 5サイクル毎に位相閣係が 一《するこ Wこなる„すなわち、データ出力;巽択制御冋 202及びデータ人力;巽丰尺 制御回路 201は、クロック信号 clkAの 8サイクル内及びクロック信号 clkBの 5サイクル の位ネ目閗係 慮してデータの謝言制御 行うこ Wこなる„
[0177] DoutOはコア Aの機能部 3Aが出力する信号であ
[0178] enl、 en2はそれぞれフリップフロック 231及び 232のィネーブル信号であり、データ 出力;巽択制御冋路 202が出力する„ Doutlはフリップフロップ 23ίからの出力データ であり、 Dout2はフリップフロップ 232からの出力データである Dselは、データ入力撰 択制御回路 201からの制御信吾であ Dinは、フリップフロップ 2が出力するデータ である
[0179] 図 16に示すように、フリップフロップ 231のィネーブル信吾 enlは、フリップフロップ 2 31が 1サイクル毎に動作するように、 1サイクル毎に Highと Lowを交互に繰り返す信吾 であ 同様に、フリップフロップ 232のィネーブル信吾 en2は、フリップフロップ 232 力^サイクル毎に動作するように、 1サイクル毎に Highと Lowを交互に繰り返す信吾で あるが、フリップフロップ 232がフリップフロップ 231と交互に動作するように、 enlとは 木目が である [0180] 図 16に示すように、クロック信吾 clkAの相番吾 3の立ち上がりエッジからクロック信 吾 clkBの相番吾 2の立ち上がりエッジ、及びクロック信吾 clkAの相番吾 6の立ち上がり エッジからクロック信吾 clkBの相番吾 4の立ち上がりエッジへの位相差が Td以下とな る このことは、クロック信晉 clkA及びクロック信晉 clkBの周波数とクロック信晉 clkBの 相番吾と力 わ力るので、このときデータ入力選択制御回路 201は、 clkAの相番吾 3 の立ち上がりエッジのタイミングでフリップフロップ 232が出力する Dout2よりもクロック clkAの 1サイクル遅延した Doutlをフリップフロップ 2が入力するデータとして選択する 同様に、相番吾 6の立ち上がりエッジのタイミングでフリップフロップ 231が出力する Doutlよりもクロック clkAの 1サイクル遅延した Dout2をフリップフロップ 2が入力するデ ータ して選択す それ以外の場合には、フリップフロップ 2が Doutlまたは Dout2の うち遅延して 、な ヽ方のデータを人力するように選択す Doutlまたは Dout2の ヽず れが遅延して ヽて 、ずれが遅延 ヽて ヽな 、かは、データ人力選択制御回路 201が 人力する dkA dkBの周 †青報、及び dkBのネ目番^^ら半 II断するこ がで
[0181] 次に、 Doutlまたは Dout2のいずれかを撰択する信号 Dselの詳細を説明す まず 、クロック信号 clkAの相番号 1の立ち卜.がりエッジのタイミングでフリップフロップ 232 が Dout2に出力したデータを、クロック信号 clkBの相番号 1の立ち卜.がりエッジのタイ ミングでフリップフロップ 2が Dmit2から 言するように、データ人力;巽択制御冋路 20 1はクロック信号 clkBの相番号 1の立ち卜.がりエッジのタイミングでは、 Dselに Highを 屮,力するハ
[0182] 次に、データ入力選択制御回路 201は、クロック信吾 clkAの相番吾 3の立ち上がり エッジのタイミングでフリップフロップ 232が出力したデータ Dout2ではなぐ clkAの相 番吾 2のタイミングでフリップフロップ 231が出力したデータ Doutlを受信するように、 クロック信吾 clkBの相番吾 2の立ち上がりエッジのタイミングでは、制御信吾 Dselを Lo wにする
[0183] 次に、クロック信吾 clkAの相番吾 4の立ち上がりエッジのタイミングでフリップフロッ プ 231が出力したデータ Doutlを入力するように、クロック信吾 clkBの相番吾 3の立ち 上がりエッジのタイミングでは、制御信吾 Dselを Lowにす
[0184] 次に、クロック信吾 clkAの相番吾 6の立ち上がりエッジのタイミングでフリップフロッ プ 231が出力したデータ Doutlではなぐ clkAの相番吾 5のタイミングでフリップフロッ プ 232が出力したデータ Dout2を入力するように、クロック信吾 clkBの相番吾 4の立ち 上がりエッジのタイミングでは、制御信吾 Dselを Highにする
[0185] 次に、クロック信吾 clkAの相番吾 7の立ち上がりエッジのタイミングでフリップフロッ プ 232が出力したデータ Dout2を入力するように、クロック信吾 clkBの相番吾 0の立ち 上がりエッジのタイミングでは、制御信吾 Dselを Highにする
[0186] 以上により、非同期方式で問穎となるメタスタピリティ問穎を回避し動作がサイクル レベルで確定的で、かつ低レイテンシ、低スループットのコア間诵信を実現すること がで る
[0187] また、本実施例によれば、データ Doutl及び Dout2はクロック clkAの 2サイクル毎に 化し、 2サイクルの間はデータが安定しているため、 ¾施例 2や ¾施例 6のデータ D out及び Dout DLYがクロック clkAの 1サイクル毎に栾化するのに比べてタイミングに佘 があるので、特にフリップフロップ 2のホール 制約に閗して、タイミング設 tが容 になる 、う カ がある„
[0188] 十术した本実施例はコア Aにおいて 2つのフリップフロップ 231及び 232を交互に 動作させる構成である力 フリップフロップの数は 2つに限らず、 3っ以ト.であっても その場合、データ出力;巽択制御冋路は、それぞれにフリップフロップ 順々に 同時には 1つのフリップフロップのみが動作するように、各フリップフロップのイネーブ ル信 牛成する„フリップフロップが 3つの場合の構成例 阅 ί7に示す„
[0189] フリップフロップ 231、 232に加えて信吾 Dout3を出力する 3つ目のフリップフロップ 233を備え データ出力選択制御回路 204は、それぞれの 3つのフリップフロップ のィネーブル信吾 enl.en2.en3を出力し、 3つのフリップフロップが順々に動作するよ うに制御す データ入力選択制御回路 203は、 3つの信号 Doutl.
Dout2,Dout3のいずれか一つをフリップフロップが 2つの場合と同様に谪切に選択す る。この場合データ Doutl,Dout2及び Dout3はクロック clkAの 3サイクル毎に変化し 3 サイクルの間はデータが安定しているため、さらにタイミング設計が容易になるという 交力 がある
実施例 8 [0190] 上述した実施例において、クロック clkAと clkBはある一定周期 (相番吾 0)において立 ち上がり又は立ち下さりが一致するクロックであった力 クロック clkAと clkBが相番吾 0 において立ち上がり又は立ち下さりが一致する (すなわち位相差力 )クロックではなく て、ある一定値 TDhになるようなクロックであったとしても、上述した各実施例と同様の 方法でコア間诵信を実現することが可能である。この場合、クロック clkA及び clkBの 各エッジ間の位相差は、相番吾 0の時の位相差が 0のときに比べて TDhだけずれた位 木目 になる
[0191] 例えば、図 18に示すように、相番吾 0のときに clkAにくらべて clkBが TDhだけ遅くな る場合には、その他の相番吾のエッジ間の位相差は、相番吾 0の時の位相差が 0の 場合に比べて、 Tnhだけ *きくな データ跑 巽択制御冋 やデータ人力;巽択制 ^^ はそれ 慮してコア の謝言制御 行なうこ で、 术した ¾ 列 に コア 耐言 するこ がで
[0192] ¾施例 7 び^ Π 5に示した 、ネ目 0の Βきの ネ目 が 0ではな〈Trirであつ てネ、謝乍するように した^^ ^ Ιί 9に す„ 5の 5^の いは、データ人 力;巽択制御冋路 20ί データ人力;巽択制御冋路 205に置 ¾ ^てい データ人 力;巽キ尺制御^ 205は、 ネ目差 Tnh 力するこ で、 ネ目差 Tnh 慮した制御が 可能であ また、相番^ の時に位相差 0にするように調整する' 、耍がないので、 位相調整冋路 ίθ 省略している„すなわち、本構成によれば、位相 調整するのに
' 、 な^^の rwff や 力 削減するこ がで る 、う カ がある„
実施例 9
[0193] hi术した実窗列において、 正設計彼 Tdは設 f 時に決定する定数である して説
S月したが、 謝乍 に ¾^ τ な であってもよい。
[0194] その場合、データ跑 巽択制御冋路ゃデータ人力;巽択制御冋路は Tdの値 謝乍 に 慮してコア の謝言制御 行なう で、 术した ¾ 列 様にコア 耐言 するこ がで る„
[0195] ¾施例 7 び^ Π 5に示した 、謝乍時に Tdが ¥ Γ なように 専した
阅 20に示す„阅 ί5の構成 の いは、データ人力;巽択制御冋路 20ί データ人 力;巽択吿 I刚冋 206に置 ¾ たのみであ データ人力;巽択吿 I刚冋 206は、 » 延設計彼 Tdを人力するこ で、謝乍時の Tdの栾更に ί自従した制御が可能であ す なわち、本構成によれば、クロック clkAや clkBのジッタの大きさや clkAと clkB間のスキ ユーの大^:さに]^じて、 正設計彼 Tdを滴]^的に 軟に設定で る為、 ji咼乗 IIなタイミ ング佘裕を削減するこ ができ、結 してコア間謝言の信頼件を確保しつつ、 mm の件能を ト.するこ がで^:る いう ¾ がある
図面の簡単な説明
[0196] [図 1]図 1は、本発明における実施例 1の構成例である。
[図 2]図 2は、タイミングチャートである。
[図 3]図 3は、 Td及び Tdlyを説明するための図である。
[図 4]図 4は、本発明の実施例 1の動作を説明するためのタイミングチャートである。
[図 5]図 5は、本発明の実施例 1の動作を説明するためのタイミングチャートである。
[図 6]図 6は、本発明の実施例 2の構成例である。
[図 7]図 7は、本発明の実施例 2の動作を説明するためのタイミングチャートである。
[図 8]図 8は、本発明の実施例 3の構成例である。
[図 9]図 9は、本発明の実施例 4を説明するためのブロック図である。
[図 10]図 10は、本発明の実施例 4のバス.インターフェースの構成例である。
[図 11]図 11は、本発明の実施例 5のオンチップ ·デバッグ回路の構成例である。
[図 12]図 12は、従来の同期式回路の構成図である。
[図 13]図 13は、従来の非同期式回路の構成図である。
「闵141本発明の実施例 6の構成を示す^!であ
「闵151本発明の実施例 7の構成を示す^!であ
「図 161本発明の実施例 7の動作を示すタイミングチャートであ
「阅 171本 明の ¾ 列 7の第 2の構成 示す阅であ
「阅 181本 明の ¾施例 8の謝乍 説明するタイミングチャートであ
「阅 191本 明の ¾ 列 8の構成 示す阅であ
「阅 201本 明の ¾ 列 9の構成 示す阅であ
符号の説明
[0197] 1 コア Aのフリップフロップ コア Bのフリップフロップ 位相調整回路
ハンドシェイク回路 同期式 SRフリップフロップ レべノレシフタ
データ出力制御回路 データ入力制御回路 データ選択制御回路
CLK生成部
履歴保存部
解析部
レべノレシフタ

Claims

請求の範囲
[1] 半導体装置であって、
第 1のクロック信号に基づいてデータを出力する第 1の信号処理回路と、 ある一定の周期で第 1のクロック信号の立ち上がり又は立ち下がりと一致する第 2の クロック信号に基づいてデータ入力する第 2の信号処理回路と、
前記第 2のクロック信号のセットアップ時間より前に到着するデータのみを入力する ように制御する制御回路と
を有することを特徴とする半導体装置。
[2] 半導体装置であって、
第 ίのクロック信 に づいてデータ 出力する第 ίの 冋路
ある一 の 1¾ で のクロック の ちト.がり ¾は ち がり の ネ目 があ る一定彼になる第 2のクロック信 に づいてデータ人力する第 2の信 処理冋路 前記第 2のクロック信吾のセットアップ時間より前に到着するデータのみを人力する ように制御する制御
を有するこ を特徴 する半導体 置
[3] 前記制御回路は、前記第 1のクロック信号に同期して複数のデータを人力された順 に、ある一定の周期に予め定められた数のデータを出力するように制御する出力制
¾Ρ であるこ を特徴 する f青 : 11 は f青 2に首 R の 本
[4] 前記制御回路は、複数のデータの中から前記セットアップ時間より前に到着するデ ータを撰キ尺して入力するように制御する入力制御 であるこ を特徴 する f青
1又は請求 2に f¾の半導体 置
[5] 前記制御回路は、前記セットアップ時間より前に到着しないデータを出力しないよう に前記第 1の信号処理回路を制御する出力制御回路であることを特徴とする請求項
1又は請求項 2に記載の半導体装置
[6] 前記制御回路は、前記セットアップ時間より前に到着しな 、データを入力しな 、よう に前記第 2の信号処理回路を制御する入力制御回路であることを特徴とする請求項
1又は請求項 2に記載の半導体装置
[7] 前記制御回路は、前記セットアップ時間より前に到着しな 、データは、データを一 定時間だけ遅延させる遅延部で遅延させたデータを入力するように制御する遅延選 択制御回路であることを特徴とする請求項 1又は請求項 2に記載の半導体装置
[8] 前記遅延部は、前記セットアップより前に到着しないデータを前記第 2のクロック信 号の 1クロック分遅延させることを特徴とする請求項 Zに記載の半導体装置。
[9] 前記データは、
前記第 1のクロックに同期して所定の動作を行う第 1の機能部力 出力される、処理 要求を示す処理要求データ、若しくは処理要求データを受信したことを示す処理要 求リセットデータであることを特徴とする請求項 1から のいずれかに記載の半 導体装置。
[10] 前記処理要求データ及び前記処理要求リセットデータは、前記第 1の機能部と、前 記第 2のクロックに同期して所定の動作を行う第 2の機能部との間で送受信されるデ ータであることを特徴とする請求項 2に記載の半導体装置。
[11] 前記処理要求データ及び前記処理要求リセットデータは、前記第 1の機能部と、バ スとの間で送受信されるデータであることを特徴とする請求項 2に記載の半導体装置
[12] 前記半導体装置は、
前記データの送受信中の動作状況を履歴情報として保持する履歴保存手段を有 することを特徴とする請求項 1から請求項 11のいずれかに記載の半導体装置。
[13] 前記半導体装置は、
前記履歴保存手段が保持する履歴情報に基づ 、て、半導体装置の性能低下の原 因を解析する解析手段を有することを特徴とする請求項!^こ記載の半導体装置。
[14] 前記履歴保存手段は、前記履歴情報を外部に出力する出力手段を有することを特 徴とする請求項! 又は請求項 1^に記載の半導体装置。
[15] tftf^セットアップ B寺 を、謝乍 に¾ に ¥するこ を特徴 する f青 1直1から請 求 1直14に記 の半導体 置
[16] 半導体装置の通信制御方法であって、
第 1のクロック信号に基づいて送信されたデータの中、ある一定の周期で第 1のクロ ック信号の立ち上がり又は立ち下がりと一致する第 2のクロック信号のセットアップ時 間より前に到着するデータのみを入力するように制御することを特徴とする通信制御 方法。
[17] 半導体 置の謝言制御 法であって、
第 1のクロック信吾に某づいて送信されたデータの中、ある一定の周期で第 1のクロ ック信吾の立ち上がり又は立ち下がりとの位相差がある一定値になる第 2のクロック信 号のセットアップ時間より前に到着するデータのみを人力するように制御するこ を特 する i耐言葡1 法
[18] 前記诵信制御方法は、前記第 1のクロック信号に同期して複数のデータを人力され た順に、ある一定の周舰こ予め定められた数のデータ 出力するように制御するこ 特徼 する 16¾は香青 17に首 P, の謝言制御 法„
[19] 耐言吿糊 は、 のデータの巾から tfmp,セットアップ より こ到羞す るデータ 巽択して人力するように制御するこ 特徼 する請求 I直 ί6 は請求 I直 ί
7に首 Ρ, の : „
[20] 前記通信制御方法は、前記セットアップ時間より前に到着しないデータを出力しな
Vヽように制御するこ を特徴 する請求項 16又は請求項 17に記載の诵信制御方法
[21] 前記通信制御方法は、前記セットアップ時間より前に到着しないデータを入力しな
V、ように制御することを特徴とする請求項 1β又は請求項 Uに記載の通信制御方法。
[22] 前記通信制御方法は、前記セットアップ時間より前に到着しな 、データは、データ を一定時間だけ遅延させる遅延部で遅延させたデータを入力するように制御すること を特徴とする請求項 16又は請求項 17に記載の诵信制御方法
[23] 前記通信制御方法は、前記セットアップ時間より前に到着しないデータを前記遅延 部で前記第 2のクロック信号の 1クロック分遅延させることを特徴とする請求項 に記 載の通信制御方法。
[24] tftf^セットアップ Β寺 を、謝乍 に¾ に ¥するこ を特徴 する f青 1直16から 請求 1直23のいずれかに言 P の謝言制御方法
PCT/JP2005/017165 2004-09-16 2005-09-16 半導体装置、及び通信制御方法 Ceased WO2006030904A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006535225A JP4998699B2 (ja) 2004-09-16 2005-09-16 半導体装置、及び通信制御方法
US11/575,473 US7702945B2 (en) 2004-09-16 2005-09-16 Semiconductor device and communication control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-270435 2004-09-16
JP2004270435 2004-09-16

Publications (1)

Publication Number Publication Date
WO2006030904A1 true WO2006030904A1 (ja) 2006-03-23

Family

ID=36060151

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/017165 Ceased WO2006030904A1 (ja) 2004-09-16 2005-09-16 半導体装置、及び通信制御方法

Country Status (3)

Country Link
US (1) US7702945B2 (ja)
JP (1) JP4998699B2 (ja)
WO (1) WO2006030904A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010010745A1 (ja) * 2008-07-23 2010-01-28 日本電気株式会社 半導体装置及び通信方法
JP2010074534A (ja) * 2008-09-18 2010-04-02 Nec Corp 半導体装置及び通信方法
JP2010130060A (ja) * 2008-11-25 2010-06-10 Oki Semiconductor Co Ltd データ転送システム
WO2013005313A1 (ja) * 2011-07-06 2013-01-10 三菱電機株式会社 信号処理装置
JP2013218569A (ja) * 2012-04-10 2013-10-24 Canon Inc 位相制御装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041981B2 (en) * 2008-09-25 2011-10-18 Apple Inc. Synchronizing timing domains based on state variables
US8751854B2 (en) 2009-12-21 2014-06-10 Empire Technology Development Llc Processor core clock rate selection
US9429981B2 (en) * 2013-03-05 2016-08-30 St-Ericsson Sa CPU current ripple and OCV effect mitigation
US9971397B2 (en) 2014-10-08 2018-05-15 Apple Inc. Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10558580B2 (en) 2016-02-29 2020-02-11 Apple Inc. Methods and apparatus for loading firmware on demand
KR102162321B1 (ko) * 2016-03-14 2020-10-06 한국전자통신연구원 프로세서 시스템 및 그것의 고장 검출 방법
US10198364B2 (en) 2016-03-31 2019-02-05 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10838450B2 (en) * 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
KR102839632B1 (ko) * 2019-10-16 2025-07-28 삼성전자주식회사 인터페이싱 장치, 인터페이싱 장치를 포함하는 반도체 장치 및 반도체 장치의 통신 방법
US11989148B2 (en) 2020-12-30 2024-05-21 Stmicroelectronics International N.V. Data bridge for interfacing source synchronous datapaths with unknown clock phases
US12210373B2 (en) * 2022-02-11 2025-01-28 Stmicroelectronics International N.V. Low overhead mesochronous digital interface
CN117313614B (zh) * 2023-09-19 2024-10-18 武汉泰朴半导体有限公司 一种数据传输更新模块和数据传输更新方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306827A (ja) * 1994-05-10 1995-11-21 Intel Corp P/q整数比関係を有する周波数で動作するディジタル装置間で同期データ伝送を行うための方法および装置
JP2001077797A (ja) * 1999-07-19 2001-03-23 Thomson Licensing Sa インタフェース装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0645880A (ja) 1992-07-23 1994-02-18 Nec Ic Microcomput Syst Ltd ディレイ型フリップフロップ回路
JP2003273847A (ja) 2002-03-18 2003-09-26 Seiko Epson Corp ディジタル信号処理回路及びそれを用いた半導体装置、並びに半導体装置の設計方法
KR20050115227A (ko) * 2003-01-23 2005-12-07 유니버시티 오브 로체스터 다중 클록 도메인 마이크로프로세서
US7412678B2 (en) * 2004-06-02 2008-08-12 Lsi Corporation Method and computer program for management of synchronous and asynchronous clock domain crossing in integrated circuit design

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306827A (ja) * 1994-05-10 1995-11-21 Intel Corp P/q整数比関係を有する周波数で動作するディジタル装置間で同期データ伝送を行うための方法および装置
JP2001077797A (ja) * 1999-07-19 2001-03-23 Thomson Licensing Sa インタフェース装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010010745A1 (ja) * 2008-07-23 2010-01-28 日本電気株式会社 半導体装置及び通信方法
US20110089981A1 (en) * 2008-07-23 2011-04-21 Atsufumi Shibayama Semiconductor device and communication method
US8576967B2 (en) 2008-07-23 2013-11-05 Nec Corporation Semiconductor device and communication method
JP5413367B2 (ja) * 2008-07-23 2014-02-12 日本電気株式会社 半導体装置及び通信方法
JP2010074534A (ja) * 2008-09-18 2010-04-02 Nec Corp 半導体装置及び通信方法
JP2010130060A (ja) * 2008-11-25 2010-06-10 Oki Semiconductor Co Ltd データ転送システム
WO2013005313A1 (ja) * 2011-07-06 2013-01-10 三菱電機株式会社 信号処理装置
US8779825B2 (en) 2011-07-06 2014-07-15 Mitsubishi Electric Corporation Signal processing apparatus
JP2013218569A (ja) * 2012-04-10 2013-10-24 Canon Inc 位相制御装置

Also Published As

Publication number Publication date
US20080218225A1 (en) 2008-09-11
JPWO2006030904A1 (ja) 2008-07-31
US7702945B2 (en) 2010-04-20
JP4998699B2 (ja) 2012-08-15

Similar Documents

Publication Publication Date Title
WO2006030904A1 (ja) 半導体装置、及び通信制御方法
US11099601B2 (en) Reducing latency of memory read operations returning data on a read data path across multiple clock boundaries, to a host implementing a high speed serial interface
US8686773B1 (en) In-system margin measurement circuit
US7555590B2 (en) Fast buffer pointer across clock domains
US6646953B1 (en) Single-clock, strobeless signaling system
JP4384819B2 (ja) 弾性インターフェース装置およびそのための方法
US6978403B2 (en) Deskew circuit and disk array control device using the deskew circuit, and deskew method
US8667347B2 (en) Active calibration for high-speed memory devices
CN102918513B (zh) 用于启用确定性接口的方法、装置和系统
CN103064809B (zh) 源同步双倍数据速率接口的采样装置及其采样方法
CN107209225B (zh) 使用校准的单个时钟源同步串行器-解串器协议的高速数据传输
US20160285624A1 (en) Pseudorandom bit sequences in an interconnect
US7958285B1 (en) System and method to facilitate deterministic testing of data transfers between independent clock domains on a chip
JP2005502248A (ja) 並列リンクの相対的動的スキュー補償
CN116795172B (zh) 一种用于高速数字传输的跨时钟域处理方法、介质及装置
CN101636662B (zh) 在集成电路内确定信号路径的不对称信号延迟的方法
US20100322365A1 (en) System and method for synchronizing multi-clock domains
US7966468B1 (en) Apparatus, system, and method for fast read request transfer through clock domains
US6542999B1 (en) System for latching first and second data on opposite edges of a first clock and outputting both data in response to a second clock
US11714449B2 (en) High-speed deserializer with programmable and timing robust data slip function
US11467620B1 (en) Architecture and methodology for tuning clock phases to minimize latency in a serial interface
US7676685B2 (en) Method for improving the data transfer in semi synchronous clock domains integrated circuits at any possible m/n clock ratio
US20150207581A1 (en) Communication system, and corresponding integrated circuit and method
US20060187729A1 (en) Source synchronous communication channel interface receive logic
Sawyer Source-synchronous serialization and deserialization (up to 1050 Mb/s)

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV LY MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006535225

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11575473

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase