-
2005-12-27
10/042,104
2002-01-07
US 6,981,166 B2
2005-12-27
-
-
Lynne H. Browne | Tse Chen
2023-12-12
In one aspect, a method for performing clocked operations in a device includes performing, in a device, first and second operations responsive to a clock having a primary frequency f. The device is capable of performing the operations within X and Y cycles of the clock, respectively. X cycles of the clock correspond to a time interval T1 with the clock operating at the frequency f, and, accordingly, the device is capable of performing X/Y instances of the second operation within time interval T1 with the clock operating at the frequency f. During the time interval T1 at least one extra cycle of the clock is generated to reduce performance time for the first operation. An affect of the at least one extra cycle is masked with respect to the second operation, so that instances of the second operation during the interval T1 remain no greater in number than X/Y.
Get notified when new applications in this technology area are published.
1. Field of the Invention
This invention relates generally to clocked operations in electronic devices, and more particularly to managing timing of performance of these operations.
2. Related Art
Because it is expensive to set up fabrication of integrated circuit (βICβ) chips, and because chips having huge numbers of transistors are complicated and subject to design glitches, it is common when designing a chip to extensively test an emulated version of the chip before fabrication. Furthermore, it is quite common for chips to interface with one another. In emulation and testing, the emulated version of a chip under development may be interfaced with and tested together with another, actual IC chip.
In order for IC chips to properly work together, the chips often send or receive an external clock for synchronizing and for generating an internal clock. The internal clock typically uses a phase locked loop (βPLLβ) to run at a higher speed than the external clock, such as twice (β2Γβ) the external clock frequency, for example. For emulation and testing, the maximum clock speed at which the emulated chip is capable of operating is very slow in comparison with the operating frequency of the actual chip. Consequently, the external clock, which serves as a reference to both the emulated and actual chips, must run so slowly that the internal clocks for the chips cannot be generated from the external clock, due to limitations in conventional clock generation circuitry.
Emulation system constraints, therefore, commonly demand that external and internal clocks operate at the same speed, referred to as a β1:1 modeβ or βPLL bypass mode.β This, however, leads to complications. For example, frequently a chip is supposed to generate a response to some event within a certain number of external clock cycles. However, as described above, when not in 1:1 mode a certain number of external clock cycles ordinarily corresponds to a larger number of internal clock cycles. When the chip is operating in 1:1 mode, the required response time may be inadequate as measured in terms of the now slower, internal clock. Therefore, a need exists for improvements in the capability of chips to operate responsive to a slowed down clock.
In one aspect, according to a method form, a method for performing clocked operations in a device includes performing, in a device, first and second operations responsive to a clock having a primary frequency f. The device is capable of performing the operations within X and Y cycles of the clock, respectively. X cycles of the clock correspond to a time interval T1 with the clock operating at the frequency f, and, accordingly, the device is capable of performing X/Y instances of the second operation within time interval T1 with the clock operating at the frequency f. During the time interval T1 at least one extra cycle of the clock is generated to reduce performance time for the first operation. An affect of the at least one extra cycle is masked with respect to the second operation, so that instances of the second operation during the interval T1 remain no greater in number than X/Y.
Other forms and aspects, as well as advantages and objects of the invention will become apparent upon reading the following detailed description and upon reference to the accompanying drawings.
FIG. 1 illustrates timing of a first and second operation responsive to a clock, according to an embodiment of the present invention.
FIG. 2 illustrates timing of a first and second operation responsive to the clock with an extra clock cycle inserted, according to an embodiment of the present invention.
FIG. 3 illustrates a central processing unit (βCPUβ), according to an embodiment of the present invention.
FIG. 4 illustrates logic for masking one or more control signals and for generating at least one extra clock cycle, according to an embodiment of the present invention.
FIG. 5 illustrates operations for the logic circuitry of FIG. 4, according to an embodiment of the present invention.
FIG. 6 illustrates a state machine, according to an embodiment of the present invention.
FIG. 7 illustrates circuitry for masking one or more control signals and for generating at least one extra clock cycle, according to another embodiment of the present invention.
The claims at the end of this application set out novel features which applicants believe are characteristic of the invention. The invention, a preferred mode of use, further objectives and advantages, will best be understood by reference to the following detailed description of an illustrative embodiment read in conjunction with the accompanying drawings.
FIG. 1 illustrates timing of a first and second operation responsive to a clock, according to an embodiment of the present invention. In a device (not shown) first and second operations 110 and 120 respectively are performed responsive to a clock CPUβCLK of a certain frequency, as shown, which will be referred to herein as frequency f. (The CPUβCLK may also be referred to herein as a βtiming clockβ to distinguish it from other clock signals that are selectively used to provide the CPUβCLK.) As shown, the device is capable of performing the first operation 110 within 5 cycles of the clock, and the second operation within 1 cycle. Thus, during 5 cycles of the clock corresponding to a time interval T1 (with the clock operating at the frequency f) one instance of the first operation 100 is performed and 5 instances of the second operation 120 are performed, as shown.
FIG. 2 illustrates timing of a first and second operation responsive to the clock CPUβCLK with an extra clock cycle inserted, according to an embodiment of the present invention. Once again, in a device (not shown) first and second operations 110 and 120 respectively are performed responsive to the clock CPUβCLK, and once again the device is capable of performing the first operation 110 within 5 cycles of the clock, and the second operation within 1 cycle. As before, clock CPUβCLK has a certain primary frequency f, but in FIG. 2 at least one extra clock cycle 210 is generated during the time T1, so that performance time for the first operation 110 is reduced to time T1β², as shown. In the particular example, the extra clock cycle 210 is added after the fourth rising edge of CPUβCLK (counting clock edge 0). Prior to the extra clock cycle 210, the previous rising edges of the CPUβCLK, i.e., edges 0, 1, 2 and 3, occur at the primary frequency f. Likewise, after the extra clock cycle 210, the succeeding rising edges of the CPUβCLK, i.e., edges 5, 6 and so on, occur at the primary frequency f. The extra clock cycle 210, however, is shortened, i.e., of a higher frequency. Moreover, inserting the extra clock cycle 210 correspondingly shortens the duration of the CPUβCLK cycle immediately preceding the extra cycle 210, i.e. the cycle beginning with rising edge 3, as shown.
Ordinarily, inserting the extra clock cycle 210 would influence performance of the second operation 120 as well. This may, however, be undesirable as will be further described in connection with other FIG's below. Therefore, according to the illustrated embodiment, an affect of the extra cycle 210 is masked with respect to the second operation 120, so that instances of the second operation 120 during the interval T1 remain no greater in number than without the extra cycle 210.
To generalize, the device for which operations are shown in FIGS. 1 and 2 is capable of performing the operations 110 and 120 within X and Y cycles of the clock, respectively. X cycles of the CPUβCLK correspond to a time interval T1 with the clock operating at the frequency f. Accordingly, the device is capable of performing X/Y instances of the second operation within time interval T1 with the clock operating at the frequency f. By generating, during the time interval T1, at least one extra cycle 210 of the CPUβCLK, performance time for the first operation 110 is reduced to T1β². But an affect of the at least one extra cycle 210 is masked with respect to the second operation, so that instances of the second operation 120 during the interval T1 remain no greater in number than X/Y.
FIG. 3 illustrates a system, according to an embodiment of the present invention. The system 300 either generates or receives an external clock 305, as shown. The external clock 305 is received by clock circuitry 310, which generates other clock signals 315 from the clock 305, including clock signals (not explicitly shown in FIG. 3) at a higher frequency than the clock 305. One or more of these clock signals 315 output by clock circuitry 310 are received by circuitry 320 for processing. Circuitry 320 generates a clock signal CPUβCLK which may selectively have extra clock cycles, such as extra cycle 210 shown in FIG. 2. System 300 also has a central processing unit (βCPUβ) 330, which receives the clock signals 315 from clock circuitry 310 and the special clock signal CPUβCLK from circuitry 320. At least some of the CPU operations performed by CPU 330 generate data 337 and control signals 339, as shown. Likewise, at least some of the CPU operations of circuitry 330 are performed responsive to data and control signals, including but not necessarily limited to those control signals explicitly shown in FIGS. 4, 5 and 7. Responsive to the control signals 339 received from circuitry 330, circuitry 320 selectively generates the extra clock cycles in CPUβCLK and also generates control signals 325 that selectively mask the effect for circuitry 330 of the extra cycles.
FIG. 4 illustrates logic 400 for circuitry 320 of FIG. 3, for masking one or more control signals and for generating a clock signal with at least one extra clock cycle, according to an embodiment of the present invention. The logic 400 includes logic 410 for selectively generating the extra clock cycles, and logic 450 for selectively generating masked control signals.
The logic 410 receives clock signals 315 (FIG. 3), including 2XβCLK and 1XβCLK, as shown in FIG. 4. The logic 410 also receives control signals 339 (FIG. 3), including an extra-clock-cycle-initiating control signal TS-, as shown in FIG. 4. The control signal TS- is received by inverter 412, the output of which is received by the latch 414. The latch 414 output selects which one of the clock signals is passed through by multiplexer 416 to be output as CPUβCLK.
The logic 450 likewise receives clock signals 315 (FIG. 3), including 2XβCLK and 1XβCLK, as shown. The logic 450 also receives control signals 339 (FIG. 3), including control signal TA- and AACK-, as shown. The 1XβCLK signal is received by inverter 452, the output of which is passed to OR gates 454 and 458. OR gates 454 and 458 also receive control signals AACK- and TA-, respectively. The outputs of OR gates 454 and 458 feed respective latches 456 and 460, which are clocked by the 2XβCLK. The output of latch 456 is thus a selectively masked version of control signal AACK-. Likewise, the output of latch 460 is thus a selectively masked version of control signal TA-.
FIG. 5 illustrates sequence and timing of operations for the circuitry 300 of FIG. 3, according to an embodiment of the present invention. A TS- signal initiates an address cycle in CPU 330 (FIG. 3). Responsive to the TS- signal, as shown, the 2XβCLK is selected by multiplexer 416 (FIG. 4) to be output by circuitry 330 as the CPUβCLK to CPU 330, as shown. More specifically, the SEL signal (FIG. 4) which causes the multiplexer 416 (FIG. 4) to select this output for CPUβCLK is asserted by the latch 414 (FIG. 4) responsive to the TS- signal during the cycle of the 1XβCLK immediately following the cycle during which the TS- signal is asserted. (It should be understood that the term βassertedβ is a relative term, and that in the illustrated instance a low signal is logically considered to be an asserted signal.)
An effect of the above is to insert an extra clock cycle and shorten the clock cycle immediately preceding, as shown for CPUβCLK. In turn, the effect of the extra clock cycle is to reduce performance time for a first operation, which in the illustrated instance is an address retry operation. The performance time for the address retry operation is indicated by the time from assertion of the TS- signal to assertion of the ARTRY-, as shown. That is, the address retry operation requires four clock cycles. With the CPUβCLK operating at its primary frequency of the 1XβCLK, the address retry operation would have been performed within a time interval T, as shown, i.e., four cycles of the 1XβCLK. However, with the inserted clock cycle having a shorter period, and the shortening of the period of the cycle immediately preceding the extra clock cycle, the address retry operation is performed in processor 300 within a shorter time interval Tβ², as shown, i.e., three cycles of the 1XβCLK.
Certain effects of the extra cycle may have to be masked, however. In the illustrated example of FIG. 5, a second operation occurs during the address cycle, which in the illustrated instance is a data transfer operation triggered by a data transfer control signal TA- occurring in conjunction with assertion of the CPUβCLK, as shown. The TA- signal may be referred to herein as an operating-initiating control signal. If this control signal is not altered, the extra cycle in CPUβCLK will result in this TA- control signal extending over the course of more than one rising of the CPUβCLK, which would cause an extra data transfer to occur. To avoid this, the inverter 452 output and the TA- signal are combined by the OR gate 458 (FIG. 4) to provide a shortened control signal MβTA-, as shown. The timing of this shortened control signal is controlled by latch 460 (FIG. 4) to align the shortened control signal MβTA- with the extra clock cycle, as control signal CPUβTA-, as shown, so that only one rising edge of CPUβCLK occurs during CPUβTA-.
Likewise, in the illustrated example of FIG. 5, a third operation occurs during the address cycle, which in the illustrated instance is an acknowledgment operation. The performance time for the acknowledgment operation is indicated by the time from assertion of the TS- signal to assertion of an acknowledgment control signal AACK-, as shown. If the control signal is not altered, the extra cycle in CPUβCLK will result in the AACK- control signal extending over the course of more than one rising of the clock. To avoid this, the inverter 452 output and the AACK- signal are combined by the OR gate 454 (FIG. 4) to provide a shortened control signal MβAACK-, as shown. The timing of this shortened control signal is controlled by latch 456 (FIG. 4) to align the shortened control signal MβAACK- with the extra clock cycle, as control signal CPUβAACK-, as shown, so that only one rising edge of CPUβCLK occurs during CPUβAACK-.
As a consequence of the above, the CPU 330 may share the 1XβCLK with an external device, such as a bus, that requires that an operation, such as the illustrated address cycle, be performed within three cycles of the shared 1XβCLK. From the perspective of the bus the CPU satisfies the three clock cycle constraint, but from the perspective of the CPU the operation is still performed in four cycles of the CPUβCLK. This arrangement is well suited to address the emulation and testing needs described earlier, according to which the external clock, e.g., the 1XβCLK, serves as a reference to both an actual chip, e.g., the CPU 330 (FIG. 3), and an emulated chip. As previously described, in this application the CPU internal clocks cannot be generated at their normal high frequency from the external clock, due to the slow speed of the external clock during the emulation and testing. Therefore the external and internal clocks are made to temporarily operate, for the most part, at the same primary frequency. According to the present embodiment, however, extra clock cycles are selectively added to the CPUβCLK, and so on, so that the CPU can generate a response to some event within a required number of external clock cycles, while other effects of the extra cycles are selectively masked.
FIG. 7 illustrates another embodiment of logic for circuitry 320 of FIG. 3, for masking one or more control signals and for generating a clock signal with at least one extra clock cycle. Logic 700 receives, as inputs, the TS- control signal illustrated in FIG. 5, a reset signal RESET-, and a clock signal 4XβCLK having a frequency four times that of the 1XβCLK illustrated in FIG. 5. Logic 700 generates, as outputs, the 1XβCLK, 2XβCLK and CPUβCLK signals illustrated in FIG. 5, as well as a masked control signal MASK. This MASK signal is used as an input to an OR gate to qualify a signal such as the acknowledgment signal AACK- and the address cycle signal TA-, as is done in gates 454 and 458 in the mask logic 450 of FIG. 4 Logic 700 includes a 2XβCLK generator 710 that receives the 4XβCLK signal and the reset signal RESET-, and responsive to these inputs generates a clock signal, PREβ2XβCLK, having a frequency one-half that of the 4XβCLK signal. Logic 700 also includes a state machine 600 clocked by the 4XβCLK that generates six binary clock states, CLKβSTATEβ1 through CLKβSTATEβ6, responsive to the TS- control signal, the reset signal RESET-, the PREβ2XβCLK and the 4XβCLK. Details of state machine 600 are illustrated in FIG. 6, and will be described further below.
Clock states 1, 2, 5 and 6 are received by an OR gate 720 in logic 700. Clock states 1, 3, 5 and 6 are received by an OR gate 730 in logic 700. Clock states 2, 3 and 4 are received by an OR gate 740 in logic 700. OR gate 720 outputs PREβ1XβCLK. OR gate 730 outputs PREβCPUβCLK. OR gate 740 outputs the MASK signal. PREβ2XβCLK, PREβ1XβCLK and PREβCPUβCLK are received by output register 750, which is clocked by 4XβCLK and reset by RESET-. The output register 750 outputs the 1XβCLK, 2XβCLK and CPUβCLK signals illustrated in FIG. 5. As a consequence of this arrangement, the logic 700 inserts extra clock cycles in the CPUβCLK responsive to the TS- signal, as shown in FIG. 4, and generates a MASK control signal. FIG. 6 illustrates an embodiment of a state machine 600 for the logic 700 of FIG. 7. In an embodiment of circuitry for this logic, each state is implemented as a flip-flop, and accordingly if the state machine 600 is βinβ a particular state, say CLKβSTATEβ1, then the output for that state's flip-flop is asserted. Otherwise, the output for that flip-flop is deasserted.
As shown in FIG. 7, the state machine 600 is clocked by the 4XβCLK. Referring again now to FIG. 6, once the state machine 600 is in CLKβSTATEβ2, with each tick of the 4XβCLK it moves from CLKβSTATEβ2 to CLKβSTATEβ3, from CLKβSTATEβ3 to CLKβSTATEβ4, from CLKβSTATEβ4 to CLKβSTATEβ5, from CLKβSTATEβ5 to CLKβSTATEβ6, and from CLKβSTATEβ6 to CLKβSTATEβ0. The state machine 600 enters clock state 0 upon reset, or after CLKβSTATEβ6.
When the state machine 600 is in CLKβSTATEβ0 it stays there unless the 2XβCLK is deasserted, in which case the state machine goes to CLKβSTATEβ1. Unless the TS signal is deasserted, once the state machine is in CLKβSTATEβ1 it stays there unless the 2XβCLK is deasserted, in which case the state machine goes back to CLKβSTATEβ0. If in CLKβSTATEβ1 and the TS and 2XβCLK signals are asserted, the state machine goes to CLKβSTATEβ2.
Following is code for implementing the logic shown and described for FIGS. 6 and 7 as a computer program, according to an embodiment of the invention.
| */ | Computer Code for Masking and Generating Extra Clock Cycles |
| ** |
| ** | CLOCK FPGA |
| ** | |
| ** | GENERATES 2XβCLK, CPUβCLK, 1XβCLK |
| ** | |
| ** | |
| ** | |
| */ |
| βDEFINE | CLKSTATEβ0 | 0 |
| βDEFINE | CLKSTATEβ1 | 1 |
| βDEFINE | CLKSTATEβ2 | 2 |
| βDEFINE | CLKSTATEβ3 | 3 |
| βDEFINE | CLKSTATEβ4 | 4 |
| βDEFINE | CLKSTATEβ5 | 5 |
| βDEFINE | CLKSTATEβ6 | 6 |
| MODULE CLOCKβFPGA |
| [ |
| // | CLOCK AND RESET INPUTS |
| SWITCHβIN |
| RESET |
| 4XβCLK |
| PCIβOSC |
| PCIβRESET |
| TS |
| // | CLOCK AND RESET OUTPUTS |
| 0β2XβCLK |
| 0βCPUβCLK |
| 0β1XβCLK |
| RESET |
| MASK |
| INPUT | SWITCHβIN |
| INPUT | RESET |
| INPUT | 4XβCLK |
| INPUT | PCIβOSC |
| INPUT | PCIβRESET |
| INPUT | TS |
| OUTPUT | 0βCPUβCLK |
| OUTPUT | 0β1XβCLK |
| OUTPUT | 0β2XβCLK |
| OUTPUT | MASK |
| REG | [6:0] | CLKβSTATE, NEXTβCLKβSTATE; |
| REG | Oβ2XβCLK, Oβ1XβCLK, OβCPUβCLK; | |
| REG | 1XβCLK, CPUβCLK, 2XβCLK; |
| WIRE PREβ2XβCLK, PREβCPUβCLK, PREβ1XβCLK; |
| WIRE MASK; |
| WIRE CLKβSTATEβ0 = CLKβSTATE[βCLKSTATEβ0]; |
| WIRE CLKβSTATEβ1 = CLKβSTATE[βCLKSTATEβ1]; |
| WIRE CLKβSTATEβ2 = CLKβSTATE[βCLKSTATEβ2]; |
| WIRE CLKβSTATEβ3 = CLKβSTATE[βCLKSTATEβ3]; |
| WIRE CLKβSTATEβ4 = CLKβSTATE[βCLKSTATEβ4]; |
| WIRE CLKβSTATEβ5 = CLKβSTATE[βCLKSTATEβ5]; |
| WIRE CLKβSTATEβ6 = CLKβSTATE[βCLKSTATEβ6]; |
| // VECTORS FOR 2XβCLK, 1XβCLK AND CPUβCLK |
| ASSIGN PREβ2XβCLK = 2XβCLK; |
| ASSIGN PREβ1XβCLK = CLKβSTATEβ1 CLKβSTATEβ2 CLKβSTATEβ5 CLKβSTATEβ6; |
| ASSIGN PREβCPUβCLK = CLKβSTATEβ1 CLKβSTATEβ3 CLKβSTATEβ5 CLKβSTATEβ6; |
| ASSIGN MASK = CLKβSTATEβ2 CLKβSTATEβ3 CLKβSTATEβ4; //MASKS 1 AND 1/2 CPUβCLK'S |
| // |
| // GENERATE 2XβCLK |
| // |
| ALWAYS @β(P:EDGE 4XβCLK] |
| IF ~RESET) |
| 2XβCLK <= #10 0; |
| ELSE | 2XβCLK <= #10 ~2XβCLK; |
| // |
| // GENERATE PROCESSOR CLOCK AND METEORITE CLOCK |
| // |
| ALWAYS @β(P:EDGE 4XβCLK] |
| IF ~RESET) | CLKβSTATE <= #2 6βB0; |
| ELSE | CLKβSTATE <= #2 NEXTβCLKSTATE; |
| // NEXT STATE GENERATOR |
| ALWAYS @ (CLKβSTATE OR 2XβCLK OR TS) |
| BEGIN |
| NEXTβCLKβSTATE = 7βB0; | |
| CASE (1βB1) | |
| CLKβSTATE[βCLKSTATEβ0]: |
| IF (~2XβCLK) | NEXTβCLKβSTATE[βCLKSTATEβ1] = 1; | |
| ELSE | NEXTβCLKβSTATE[βCLKSTATEβ0] = 1; |
| CLKβSTATE[βCLKSTATEβ1]: |
| IF (~2XβCLK) | NEXTβCLKβSTATE[βCLKSTATEβ0] = 1; | |
| ELSE | ||
| IF (2XβCLK & ~TS) | NEXTβCLKβSTATE[βCLKSTATEβ2] = 1; | |
| ELSE | ||
| NEXTβCLKβSTATE[βCLKSTATEβ1] = 1; |
| CLKβSTATE[βCLKSTATEβ2]: |
| NEXTβCLKβSTATE[βCLKSTATEβ3] = 1; |
| CLKβSTATE[βCLKSTATEβ3]: |
| NEXTβCLKβSTATE[βCLKSTATEβ4] = 1; |
| CLKβSTATE[βCLKSTATEβ4]: |
| NEXTβCLKβSTATE[βCLKSTATEβ5] = 1; |
| CLKβSTATE[βCLKSTATEβ5]: |
| NEXTβCLKβSTATE[βCLKSTATEβ6] = 1; |
| CLKβSTATE[βCLKSTATEβ6]: |
| NEXTβCLKβSTATE[βCLKSTATEβ0] = 1; |
| DEFAULT: | NEXTβCLKβSTATE[βCLKSTATEβ0] = 1; | |
| ENDCASE |
| END |
| // | |
| // | REGISTER ALL OUTPUTS |
| // | |
| ALWAYS @ (POSEDGE 4XβCLK) | |
| BEGIN | |
| IF ( - RESET ) |
| BEGIN | ||
| 0β2XβCLK | <= 0; | |
| 0βCPUβCLK | <= 0; | |
| 0β1XβCLK | <= 0; | |
| END |
| ELSE |
| BEGIN | ||
| 0β2XβCLK | <= PREβ2XβCLK; | |
| 0βCPUβCLK | <= PREβCPUβCLK; | |
| 0β1XβCLK | <=PREβ1XβCLK; | |
| END |
| END |
| ENDMODULE |
The description of the present embodiment has been presented for purposes of illustration, but is not intended to be exhaustive or to limit the invention to the form disclosed. Many additional aspects, modifications and variations are also contemplated and are intended to be encompassed within the scope of the following claims. For example, it is important to note that while the present invention has been described primarily in the context of a hardware implementation, those of ordinary skill in the art will appreciate that at least certain aspects of the circuitry 320 (FIG. 3) may be implemented as a data processing system. Furthermore, processes of the present invention, such as set out in the computer code above, are capable of being distributed in the form of a computer readable medium of instructions in a variety of forms. The present invention applies equally regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include RAM, flash memory, recordable-type media, such a floppy disk, a hard disk drive, a ROM, and CD-ROM, and transmission-type media such as digital and analog communications links, e.g., the Internet.
Although an occasion that has been described herein for a slowed down clock concerns emulation and testing, it should be understood that there are other occasions for slowing down a clock. For example, a processor clock may be slowed to reduce power consumption. Furthermore, although the invention has been described as addressing issues that arise from a slowed down clock, it should also be understood that the invention has other applications that may address other issues. For example, even with a device clock operating at a normal speed, performance time for one process may occasionally need to be reduced by inserting one or more higher frequency clock cycles, but without influencing the performance of another process. The invention has applications in these and other circumstances as well.
Although a system 300 (FIG. 3) including a CPU 330 has been illustrated herein, it should be understood that the system is applicable for other devices besides, or in addition to a CPU, such as application specific integrated circuitry, for example. To reiterate, the description of the present embodiment has been presented for purposes of illustration, but is not intended to be exhaustive or to limit the invention to the form disclosed. Many additional aspects, modifications and variations are also contemplated and are intended to be encompassed within the scope of the following claims.
1. A method for performing clocked operations in an electronic device, the method comprising the steps of:
performing, in the electronic device, first and second operations responsive to a timing clock having a primary frequency f, wherein the electronic device is capable of performing the operations within X and Y cycles of the clock, respectively, and wherein X cycles of the clock correspond to a time interval T1 with the clock operating at the primary frequency f, and, accordingly, the device is capable of performing X/Y instances of the second operation within time interval T1 with the clock operating at the primary frequency f;
generating, during the time interval T1, at least one extra cycle of the clock, to selectively reduce performance time for the first operation; and
masking a certain effect of the at least one extra cycle of the clock for the second operation, so that instances of the second operation during the interval T1 remain no greater in number than X/Y,
wherein a first clock signal has the primary frequency f and a second clock signal has a frequency greater than the primary frequency f, and wherein generating the at least one extra cycle of the clock comprises selecting, during some of the time T1, the second clock signal for output as the timing clock,
wherein instances of the second operation are initiated by asserting an operation-initiating control signal in conjunction with asserting the timing clock, and wherein masking the effect of the at least one extra cycle of the clock comprises altering timing of the control signal, so that assertion of the control signal occurs during a different time interval than does assertion of the at least one extra cycle of the clock.
2. The method of claim 1, wherein a third clock signal has a frequency greater than the frequency of the second clock signal, the method comprising clocking a state machine by the third clock signal.
3. The method of claim 2, wherein initiating the at least one extra cycle of the clock includes asserting an extra-clock-cycle-initiating control signal as an input to the state machine.
4. The method of claim 2, the method comprising clocking an output register by the third clock signal.
5. The method of claim 4, wherein initiating the least one extra cycle of the clock includes asserting an extra-clock-cycle-initiating control signal as an input to the output register.
6. The method of claim 2, wherein an output register outputs the timing clock responsive to output signals of the state machine.
7. The method of claim 6, wherein the output register outputs a mask signal for masking the certain effect of the at least one extra cycle of the clock responsive to output signals of the state machine.
8. An apparatus for performing clocked operations comprising:
first circuitry for performing first and second operations responsive to a timing clock having a primary frequency f, wherein the first circuitry is capable of performing the operations within X and Y cycles of the clock, respectively, and wherein X cycles of the clock correspond to a time interval T1 with the clock operating at the primary frequency f, and, accordingly, the first circuitry is capable of performing X/Y instances of the second operation within time interval T1 with the clock operating at the primary frequency f; and
second circuitry for generating, during the time interval T1, at least one extra cycle of the clock, to reduce performance time for the first operation, and for masking an affect of the at least one extra cycle of the clock with respect to the second operation, so that instances of the second operation during the interval T1 remain no greater in number than X/Y,
wherein a first clock signal has the primary frequency f and a second clock signal has a frequency greater than the primary frequency f, and wherein the second circuitry comprises circuitry for selecting, during some of the time T1,the second clock signal for output as the timing clock,
wherein the first circuitry is operable to initiate instances of the second operation responsive to an operation-initiating-control signal asserted in conjunction with the timing clock, and wherein the second circuitry is operable to alter timing of the control signal, so that assertion of the control signal occurs during a different time interval than does assertion of the at least one extra cycle of the clock.
9. The apparatus of claim 8, wherein a third clock signal has a frequency greater than the frequency of the second clock signal, and the second circuitry comprises a state machine clocked by the third clock signal.
10. The apparatus of claim 9, wherein the second circuitry is operable to initiate the at least one extra cycle of the clock responsive to an extra-clock-cycle-initiating control signal input to the state machine.
11. The apparatus of claim 9, wherein the second circuitry comprises an output register clocked by the third clock signal.
12. The apparatus of claim 11, wherein the second circuitry is operable to initiate the at least one extra cycle of the clock responsive to an extra-clock-cycle-initiating control signal input to the output register.
13. The apparatus of claim 9, wherein the second circuitry comprises an output register operable to output the timing clock responsive to output signals of the state machine.
14. The apparatus of claim 13, wherein the output register is operable to output a mask signal for masking the certain effect of the at least one extra cycle of the clock responsive to output signals of the state machine.
15. A computer program product for performing clocked operations in an electronic device, wherein the electronic device is operable to perform first and second operations responsive to a timing clock having a primary frequency f, the electronic device being capable of performing the operations within X and Y cycles of the clock, respectively, and wherein X cycles of the clock correspond to a time interval T1 with the clock operating at the primary frequency f, and, accordingly, the device is capable of performing X/Y instances of the second operation within time interval T1 with the clock operating at the primary frequency f, the computer program product comprising:
first instructions for generating, during the time interval T1, at least one extra cycle of the clock, to selectively reduce performance time for the first operation; and
second instructions for masking a certain effect of the at least one extra cycle of the clock for the second operation, so that instances of the second operation during the interval T1 remain no greater in number than X/Y,
wherein a first clock signal has the primary frequency land a second clock signal has a frequency greater than the primary frequency f, and wherein first instructions for generating the at least one extra cycle of the clock comprise instructions for selecting, during some of the time T1, the second clock signal for output as the timing clock,
wherein instances of the second operation are initiated in the device by asserting an operation-initiating control signal in conjunction with asserting the timing clock, and wherein the second instructions comprise instructions for altering timing of the control signal, so that assertion of the control signal occurs during a different time interval than does assertion of the at least one extra cycle of the clock.