US6760798B1 - Interface mechanism and method for interfacing a real-time clock with a data processing circuit - Google Patents

Interface mechanism and method for interfacing a real-time clock with a data processing circuit Download PDF

Info

Publication number
US6760798B1
US6760798B1 US09/616,067 US61606700A US6760798B1 US 6760798 B1 US6760798 B1 US 6760798B1 US 61606700 A US61606700 A US 61606700A US 6760798 B1 US6760798 B1 US 6760798B1
Authority
US
United States
Prior art keywords
value
time clock
real
update
relative
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime, expires
Application number
US09/616,067
Inventor
Peter James Aldworth
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.)
ARM Ltd
Original Assignee
ARM Ltd
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 ARM Ltd filed Critical ARM Ltd
Priority to US09/616,067 priority Critical patent/US6760798B1/en
Assigned to ARM LIMITED reassignment ARM LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ALDWORTH, PETER J.
Application granted granted Critical
Publication of US6760798B1 publication Critical patent/US6760798B1/en
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/14Time supervision arrangements, e.g. real time clock

Definitions

  • the present relation relates to an interface mechanism and particularly to an interface mechanism for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency.
  • Many data processing circuits utilise real-time clocks to provide a real-time clock value indicating, for example, the current day, date and time.
  • a real-time clock value indicating, for example, the current day, date and time.
  • the data processing circuit is first activated, the correct day, date and time may need to be set.
  • the real-time clock value may need to be updated for various reasons such as, for example, any cumulative inaccuracies of the real-time clock, a change of time zones or the loss of power to the real-time clock.
  • the real-time clock will generally operate at a low frequency of typically 1 Hz and may therefore provide an incremented real-time clock value to the data processing circuit once every second.
  • the data processing circuit will often be operating at a different frequency to the real-time clock, for example 30 MHz, and hence the interface mechanism will often need to handle signals received at different frequencies.
  • FIG. 1 describes such a known interface mechanism.
  • the interface mechanism generally 100 , interfaces a real-time clock, generally 110 , with a data processing circuit 190 .
  • signals issued in the data processing circuit frequency domain are annotated with the subscript f 2
  • signals issued in the real-time clock frequency domain are annotated with the subscript f 1 .
  • the data processing circuit 190 receives a real-time clock value C f2 synchronised with the data processing circuit frequency and generated by the interface mechanism 100 in response to a real-time clock value C f1 issued by the real-time clock 110 .
  • the data processing circuit 190 may issue an update value W f2 and a control signal CTL f2 to the interface mechanism 100 to update the real-time clock 110 .
  • the interface mechanism 100 then updates the real-time clock 110 and once the update is complete the real-time clock 110 issues an updated real-time clock value C f1 .
  • the real-time clock 110 comprises a multiplexer 160 , a register 170 an incrementer 180 and a clock generator (not shown) for generating a 1 Hz clock signal CLK f1 .
  • the real-time clock 110 is clocked by the 1 Hz clock signal CLK f1 .
  • the register 170 is coupled to the clock generator, the multiplexer 160 and the incrementer 180 .
  • the register 170 stores the real-time clock value representing, for example, a time and date.
  • the register 170 receives the clock signal CLK f1 from the clock generator and the output from the multiplexer 160 .
  • the output of the multiplexer 160 is loaded into, and output by, the register 170 each time the register 170 is clocked by the clock signal CLK f1 (e.g. on the rising edge of the clock signal).
  • the incrementer 180 receives the output of the register 170 , increments the value by one and outputs the incremented value to the multiplexer 160 .
  • the incremented value will be loaded from the multiplexer 160 into the register 170 and output to the incrementer 180 .
  • the multiplexer 160 allows the real-time clock value to be incremented or updated.
  • the multiplexer 160 receives the output of the incrementer 180 at one input and the output from the interface mechanism 100 at the other input.
  • the multiplexer 160 is controlled by a signal LOAD received from the interface mechanism 100 .
  • the multiplexer 160 outputs the value received from the interface mechanism 100
  • the signal LOAD is not asserted
  • the multiplexer 160 outputs the value received from the incrementer 180 .
  • the value in the register 170 is incremented every second and output as the real-time clock value C f1 .
  • the update value W from the interface mechanism 100 is loaded into the register 170 when clocked by the clock signal CLK f1 and output as the updated the real-time clock value C f1 .
  • the interface mechanism 100 comprises a state machine 120 , a register 130 and a register 140 .
  • the interface mechanism 100 is clocked by a clock signal CLK f2 .
  • the state machine 120 is coupled to the data processing circuit 190 , the real-time clock 110 , the register 130 and the register 140 .
  • the state machine 120 controls the register 130 , the register 140 and the multiplexer 160 .
  • the state machine 120 receives the clock signal CLK f2 and a control signal CTL f2 from the data processing circuit 190 .
  • the state machine 120 monitors the clock signal CLK f1 issued by the clock generator of the real-time clock 110 .
  • the state machine 120 will assert a signal LOAD 1 to the register 130 and a signal LOAD 2 to the register 140 in response to the control signal CTL, f2 indicating that an update should take place.
  • the register 130 is coupled to the data processing circuit 190 , the state machine 120 and the register 140 .
  • the register 130 receives the update value W f2 from the data processing circuit 190 .
  • the update value W f2 When the signal LOAD 1 is asserted the update value W f2 will be loaded into. and output by, the register 130 . The contents of register 130 are output to the register 140 .
  • the register 140 is coupled to the register 130 , the state machine 120 and multiplexer 160 of the real-time clock 100 .
  • the register 140 receives the update value W from the register 130 .
  • the signal LOAD 2 When the signal LOAD 2 is asserted the update value W will be loaded into, and output by, the register 140 .
  • the contents of register 140 are output to the multiplexer 160 .
  • Sync logic 150 is coupled to the output of the register 170 and to the data processing circuit. Sync logic receives the real-time clock value C f1 output from the register 170 at the frequency f 1 and transforms this to a real-time clock value C f2 having the same value but synchronised with the frequency f 2 .
  • the register 170 may be activated with a value representing a time, day and date which is output as the real-time clock value C f1 .
  • the real-time clock value C f1 n is transformed by the sync logic 150 and output as a real-time clock value C f2 which is received by the data processing circuit 190 .
  • the real-time clock value C f1 is incremented every second when the register 170 is clocked by the clock signal CLK f1 .
  • the real-time clock value C f1 may be updated by the interface mechanism 100 in response to signals issued by the data processing circuit 190 .
  • a control signal CTL f2 and an update value W 2 are issued by the data processing circuit 190 to the state machine 120 shortly after a rising edge of the clock signal CLK f2 .
  • the state machine 120 issues a signal LOAD 1 to the register 130 .
  • the register 130 will then load and output the update value W f2 when clocked by the next clock signal CLK f2 .
  • the state machine 120 will then determine the state of the signal LOAD. If the signal LOAD is asserted then this indicates that a previous update of the real-time clock 110 has not yet completed. Assuming the signal LOAD is not asserted, then shortly after the rising edge of the next clock signal CLK f2 the state machine 120 issues a signal LOAD 2 to the register 140 as indicated in FIG. 2 . The register 140 will then, when clocked by the clock signal CLK f2 , load and output the update value W which is presented as an input to the multiplexer 160 . If the signal LOAD is asserted, then the state machine 120 will wait until the signal LOAD is not asserted before issuing the signal LOAD 2 .
  • the real-time clock value C f1 has the value X.
  • the value output by the multiplexer 160 will be X+1.
  • the state machine 120 and the register 170 wait until the next clock signal CLK f1 is received from the clock generator.
  • the register 170 loads the output of the multiplexer 160 and the real-time clock value C f1 has the value X+1.
  • the output of the register 170 is incremented by the incrementer 180 and presented to the multiplexer 160 which, in the absence of the signal LOAD, outputs a value of X+2.
  • the state machine 120 Once the state machine 120 has received the clock signal CLK f1 , it knows that it is now safe to issue the signal LOAD to the multiplexer 160 without the risk of conflicting with the increment operation of the real-time clock 110 , and hence the state machine 120 , on the rising edge of the next clock signal CLK f2 following the clock signal CLK f1 , asserts and holds the signal LOAD to the multiplexer 160 .
  • the update value W is presented as the output of the multiplexer 160 .
  • the update value W is loaded into the register 170 and the real-time clock value C f1 has the value W.
  • the output of the register 170 is incremented and presented to the multiplexer 160 which, due to the continued assertion of the signal LOAD still outputs the value W.
  • the state machine 120 stops asserting the signal LOAD to the multiplexer 160 since the reception of the clock signal CLK f1 by the state machine 120 indicates that the update has completed, and the multiplexer 160 then outputs the value W+1.
  • the period between when the control signal CTL f2 is first issued and the real-time clock value C f1 has the updated value W is between one and two seconds.
  • This latency between the update being requested and the update value being output is undesirable because the circuitry must operate for over a second after the write has been initiated to ensure correct operation. In situations where the circuitry loses power due to accidental or intentional power down during the update the status of the real-time clock may be unclear, at worst the update may not occur.
  • an interface mechanism for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency comprising a first input for receiving a relative real-time clock value from the real-time clock; a second input for receiving an update value from the data processing circuit specifying a desired value for the real-time clock; update logic for producing an absolute real-time clock value, the update logic being arranged in response to receipt of the update value to generate an offset value derived from the relative real-time clock value and the update value, the offset value then being applied to the relative real-time clock value to produce an updated absolute real-time clock value, and an output for issuing the updated absolute real-time clock value.
  • the interface mechanism operating at the data processing circuit frequency generates an offset value derived from the relative real-time clock value and the update value.
  • this offset value is applied to the relative real-time clock value to produce the updated absolute real-time clock value for outputting to the data processing circuit.
  • the offset value is derived by calculating the difference between the relative real-time clock value and the update value; and the updated absolute real-time clock value is produced by calculating the difference between the relative real-time clock value and the offset value.
  • the offset value will only need to be calculated each time that an update is requested by the data processing circuit. Once the offset value has been calculated it can be applied to a changing relative real-time clock value to produce a correct updated absolute real-time clock value.
  • the update logic further comprises a first arithmetic unit for generating the offset value by subtracting the update value from the relative real-time clock value; and a second arithmetic unit for generating the updated absolute real-time clock value by subtracting the offset value from relative the real-time clock value.
  • the offset value and the updated absolute real-time clock value may be generated by a simple arithmetic subtraction operation, both operations being relatively quick to perform.
  • the update logic is triggered to perform an update of the absolute real-time clock value in response to a control signal received from the data processing circuit in addition to the update value the offset value being derived in a second frequency clock cycle following receipt of the control signal, and the updated absolute real-time clock value being produced in the next occurring second frequency clock cycle.
  • the data processing circuit may indicate to the interface mechanism when an update is required. This allows a data bus to be used to issue the update value to the interface mechanism, and once the update value has been received by the interface mechanism the data bus is then available for other operations.
  • the update logic further comprises a state machine for receiving the control signal and a second frequency clock signal wherein: in response to the control signal, a first signal is issued by the state machine during a first second frequency clock cycle to cause the first arithmetic unit to generate the offset value, and in response to the next occurring second frequency clock cycle, a second signal is issued by the state machine causing the second arithmetic unit to generate the updated absolute real-time clock value.
  • the state machine may control the generation of the offset value and the updated absolute real-time clock value.
  • the state machine initiates the generation of the offset value by the first arithmetic unit during a first clock cycle in response to the control signal received from the data processing circuit. On the next occurring clock cycle, which allows time for the offset value to be generated by the first arithmetic unit, the updated absolute real-time clock value is generated.
  • the update logic further comprises: a first register for storing and outputting to the first arithmetic unit the update value from the data processing circuit in response to the first signal from the state machine; and a second register for storing and outputting to the second arithmetic unit the offset value generated by the first arithmetic unit in response to the second signal.
  • the data processing circuit may be decoupled from the interface mechanism, thereby allowing the data processing circuit to perform other operations. Also, by storing the offset value, this value need not be recalculated each time the updated absolute real-time clock value is generated.
  • the interface mechanism further comprises sync logic for synchronising the relative real-time clock value generated by the real-time clock with the second frequency, wherein the update logic receives the resynchronised relative real-time clock value.
  • the update logic may be provided with the relative real-time clock value synchronised with the frequency used by the data processing circuit.
  • a method of interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency comprising the steps of, receiving a relative real-time clock value from the real-time clock; receiving an update value from the data processing circuit specifying a desired value for the real-time clock; producing an updated absolute real-time clock value by generating an offset value derived from the relative real-time clock value and the update value and by applying the offset value to the relative real-time clock value; and issuing the updated absolute real-time clock value.
  • a computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by an interface mechanism, cause the interface mechanism to implement a method for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency the method comprising the steps of: receiving a relative real-time clock value from the real-time clock; receiving an update value from the data processing circuit specifying a desired value for the real-time clock; producing an updated absolute real-time clock value by generating an offset value derived from the relative real-time clock value and the update value and by applying the offset value to the relative real-time clock value; and issuing the updated absolute real-time clock value.
  • FIG. 1 is a block diagram of an interface mechanism coupled to a data processing circuit and a real-time clock according to a prior art technique.
  • FIG. 2 is a timing diagram of an update operation performed using the apparatus of FIG. 1;
  • FIG. 3 is a block diagram of an interface mechanism in accordance with a preferred embodiment of the invention coupled to the data processing circuit and the real-time clock;
  • FIG. 4 is a block diagram of an interface mechanism in accordance with an embodiment of the invention coupled to the data processing circuit and the real-time clock;
  • FIG. 5 is a timing diagram of an update operation performed using the interface mechanism of FIG. 4.
  • FIG. 6 is a block diagram of an example architecture of a data processing apparatus embodying the interface mechanism.
  • FIG. 3 shows an interface mechanism according to an embodiment of the present invention.
  • the interface mechanism generally 200 , interfaces a real-time clock, generally 115 , with the data processing circuit 190 .
  • the update logic 210 receives a relative real-time clock value C f2 from the real-time clock 115 via the sync logic 150 and outputs an updated absolute real-time clock value R f2 .
  • the data processing circuit 190 may issue an update value W f2 to the update logic 210 .
  • the update logic 210 updates the absolute real-time clock value R f2 based on the update value W and in response to a control signal CTL f2 received from the data processing circuit 190 . Once the update is complete the update logic 210 issues the updated 25 absolute real-time clock value R f2 .
  • the real-time clock 115 comprises a register 170 , an incrementer 180 and a clock generator (not shown) for generating a clock signal CLK f1 .
  • the register 170 is coupled to the incrementer 180 and the clock generator.
  • the register 170 stores the relative real-time clock value C f1 .
  • the register 170 receives the clock signal CLK f1 from the clock generator and outputs the relative real-time clock value C f1 .
  • the incrementer 180 receives the output of the register 170 , increments the value by one and outputs the incremented value.
  • the register 170 receives the output of the incrementer 180 .
  • the value of the register 170 is incremented once every second and output as the relative real-time clock value C f1 .
  • the real-time clock 115 differs from the real-time clock 110 , described above, through the absence of the multiplexer 160 . Hence, it is not possible to externally load a real-time clock value into the register 170 . Instead, the register 170 is initialised with a predetermined value when first activated and is then free-running from that point on.
  • the interface mechanism 200 comprises update logic 210 and sync logic 150 .
  • the update logic 210 is coupled to the data processing circuit 190 and to the real-time clock 115 via the sync logic 150 .
  • the update logic 210 has a first input. 260 for receiving the relative real-time clock value C f2 from the sync logic 150 , a second input 240 for receiving the update value W f2 from the data processing circuit 190 , a third input 220 for receiving the clock signal CLK f2 from the data processing circuit 190 , a fourth input 220 for receiving the control signal CTL f2 from the data processing circuit 190 and an output 250 for issuing the updated absolute real-time clock value R f2 .
  • Sync logic 150 is coupled to the output of the register 170 and to the update logic 210 .
  • Sync logic 150 receives the relative real-time clock value C f1 output from the register 170 at the frequency f 1 and transforms this to the relative real-time clock value C f2 having the same value but synchronised with the frequency f 2 .
  • the real-time clock 115 is initialised with a predetermined value (e.g. set to zero) when the data processing circuit 190 is first activated, and this value is then incremented every second and output as the relative real-time clock value C f1 .
  • a predetermined value e.g. set to zero
  • the relative real-time clock value C f1 is transformed by the sync logic 150 and output as the relative real-time clock value C f2 which is synchronised with the frequency f 2 and received at the first input 260 of the update logic 210 .
  • This relative real-time clock value C f2 is then converted to the absolute real-time clock value R f2 by the update logic 210 as discussed below.
  • an updated absolute real-time clock value R f2 may be derived by the interface mechanism 200 from the relative real-time clock value C f2 in response to signals issued by the data processing circuit 190 .
  • the update logic 210 may receive an update value W f2 from the data processing circuit 190 which specifies a desired update value for the absolute real-time clock value R f2 .
  • the update logic 210 then produces the updated absolute real-time clock value R f2 by generating an offset value derived from the relative real-time clock value C f2 and the update value W, the offset value being applied to the relative real-time clock value C f2 to produce the updated absolute real-time clock value R f2 .
  • the updated absolute real-time clock value R f2 is then output over path 250 to the data processing circuit 190 .
  • These functions of the update logic 210 may be implemented in software or hardware.
  • a control signal CTL f2 indicating that a update should take place, and an update value W f2 are issued by the data processing circuit 190 and are captured by the update logic 210 via the fourth and second inputs 230 , 240 , respectively, on the rising edge of the clock signal CLK f2 .
  • the update logic 210 in response to the next rising edge of the clock signal CLK f2 , generates an offset value D which is derived from the relative real-time clock value C f2 and the update value W.
  • the offset value D is then applied, in response to the next rising edge of the clock signal CLK f2 , to the relative real-time clock value C f2 to produce the updated absolute real-time clock value R f2 .
  • the absolute real-time clock value R f2 may be updated without needing to load the real-time clock 115 with a new value. This avoids the need to process the update at the lower frequency f 1 , and instead the updated absolute real-time clock value R f2 may be generated based on the higher frequency f 2 , and thus may be generated more quickly than in the prior art. Also, since no element in the design needs to be clocked by more than one clock source, there are no reusability problems.
  • FIG. 4 shows one possible hardware configuration for the update logic 210 , although as mentioned earlier the update logic function may alternatively be implemented in software.
  • the update logic 210 comprises a state machine 340 , a first register 300 , a second register 320 , a first arithmetic unit 310 and a second arithmetic unit 330 .
  • the state machine 340 is coupled to the data processing circuit 190 , the first register 300 and the second register 320 .
  • the state machine 340 receives the clock signal CLK f2 and the control signal CTL f2 from the data processing circuit 190 .
  • the state machine 340 is arranged to issue a signal LOAD 3 to the first register 300 and a signal LOAD 4 to the second register 320 .
  • the first register 300 is coupled to the state machine 340 and to the data processing circuit 190 .
  • the first register 300 receives the update value W f2 from the data processing circuit 190 and a signal LOAD 3 from the state machine 330 .
  • the first register 300 then stores and outputs the update value W f2 to the first arithmetic unit 310 when clocked by the clock signal CLK f2 .
  • the first arithmetic unit 310 receives the update value W from the first register 300 and the real-time clock value C f2 from the sync logic 150 .
  • the first arithmetic unit 310 determines an offset value D and outputs it to the second register 320 .
  • the second register 320 receives a signal LOAD 4 from the state machine 340 and the offset value D from the first arithmetic unit 310 .
  • the register 320 then stores and outputs the offset value D to the second arithmetic unit 330 when clocked by the clock signal CLK f2 .
  • the second arithmetic unit 330 receives the offset value D from the second register 320 and the real-time clock value C f2 from the sync logic 150 . The second arithmetic unit 330 then determines and outputs the updated absolute real-time clock value R f2 to the data processing circuit 190 .
  • the real-time clock 115 is preferably set to zero and the absolute real-time clock value R f2 output by the update logic 210 prior to an update being requested by the data processing circuit 190 has the same value as the relative real-time clock value C f2 .
  • the absolute real-time clock value R f2 may be updated by the update logic 210 in response to signals issued by the data processing circuit 190 .
  • a control signal CTL f2 indicating that an update should take place is issued to the state machine 340 , and an update value W f2 , is issued by the data processing circuit 190 to the register 300 on the rising edge of the clock signal CLK f2 .
  • the state machine 340 then issues a signal LOAD 3 to the first register 300 , which then stores and outputs the update value W when clocked by the clock signal CLK f2 .
  • the contents of the register 300 and the relative real-time clock value C f2 are received by the first arithmetic unit 310 which calculates an offset value D which is then issued to the second register 320 .
  • the state machine 340 issues a signal LOAD 4 to the second register 320 , which then stores and outputs the offset value D when clocked by the clock signal CLK f2 .
  • the contents of the second register 320 and the relative real-time clock value C f2 are then received by the second arithmetic unit 330 which then applies the offset value D to the relative real-time clock value C f2 to produce the updated absolute real-time clock value R f2 .
  • the updated absolute real-time clock value R f2 is issued to the data processing circuit 190 .
  • first register 300 could be arranged to be updated on every occurrence of the clock signal CLK t2 . This would not cause a problem, as long as the register 320 continues to only be updated when the new offset value D is calculated on occurrence of the update.
  • the first arithmetic unit derives the offset value D by calculating the difference between the relative real-time clock value C f2 and the update value W, in this case calculated by subtracting the update value W from the relative real-time clock value C f2 .
  • the second arithmetic unit 330 produces the updated absolute real-time clock value R f2 by calculating the difference between the relative real-time clock value C f2 and the offset value D, in this case by subtracting the offset value D from the relative real-time clock value C f2 .
  • the offset value D is only calculated each time that an update is requested.
  • the main purpose of the register 300 is to allow for late arrival of the update value W f2 on the data bus (i.e. it is there for timing reasons).
  • the subtraction in the first arithmetic unit 310 needs some time to complete before the offset value D is sampled by the register 320 .
  • the data processing circuit 190 may be decoupled from the interface mechanism thereby allowing the data processing circuit 190 to perform, other operations.
  • the offset value D may thereafter be applied to a changing relative real-time clock value C f2 to produce the updated absolute real-time clock value R f2 .
  • the data processing circuit 190 issues a control signal CTL f2 indicating that an update is to take place and an update value W f2 , shortly after a rising edge of the clock signal CLK F2 .
  • the state machine 120 in response then issues a signal LOAD 3 to the first register 300 .
  • the register 300 stores and outputs the update value W and the state machine 340 issues a signal LOAD 4 to the second register 320 .
  • the first arithmetic unit 310 subtracts the real-time clock value C f2 from the update value W to produce an offset value D. Until this point the update logic 210 continues to output the absolute real-time clock value R f2 having the value X. On the rising edge of the next clock signal CLK f2 the register 320 stores and outputs the offset value D and the second arithmetic unit 330 subtracts the offset value D from the relative real-time clock value C f2 to produce the updated absolute real-time clock value R f2 having the value W.
  • the updated absolute real-time clock value R f2 has the value W, although the relative real-time clock value C f1 remains unchanged, having a value Y.
  • the relative real-time clock value C f1 will have the value Y+1 and the updated absolute real-time clock value R f 2 will be updated to have the value of W+1 on the rising edge of the next clock signal CLK f2 .
  • the absolute real-time clock value R f2 can be updated much more quickly than in the prior art. Hence, in situations where the circuitry loses power due to accidental or intentional power down during the update, the status of the real-time clock is likely to be more predictable and with the update more likely to have occurred.
  • FIG. 6 illustrates a data processing apparatus embodying the interface mechanism.
  • a number of master and slave units are connected to a system bus 450 , for example a Central Processing Unit (CPU) 400 , an interface mechanism 200 , a memory interface 440 , “Universal Asynchronous Receive and Transmit” (UART) logic unit 410 for receiving and transmitting serial data, and an interrupt controller 420 .
  • Real-time clock 115 is connected to the interface mechanism 200 .
  • Random Access Memory (RAM) 430 may be connected to the memory interface 440 .
  • RAM Random Access Memory
  • Control and data signals are passed between the units using the system bus 450 .
  • Access to the system bus 450 is controlled by arbiter logic (not shown).
  • the updated absolute real-time clock value R f2 may be output by the interface mechanism 200 onto the system bus 450 .
  • the CPU 400 may issue a control signal CTL f2 onto the system bus along with an update value W f2 to be received by the interface mechanism 200 .
  • the updated absolute real-time clock value R f2 2 may thereafter be output by the interface mechanism 200 onto the system bus 450 when requested.
  • Data and control signals of bus 450 are timed by the clock signal CLK f2 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

The present invention relates to an interface mechanism and particularly to an interface mechanism for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency. The interface mechanism comprises a first input for receiving a relative real-time clock value from the real-time clock, and a second input for receiving an update value from the data processing circuit specifying a desired value for the real-time clock. Update logic is also provided for producing an absolute real-time clock value, the update logic being arranged in response to receipt of the update value to generate an offset value derived from the relative real-time clock value and the update value, the offset value then being applied to the relative real-time clock value to produce an updated absolute real-time clock value. The updated absolute real-time clock value is then output from the interface mechanism. This enables the update of the real-time clock to be performed very efficiently, without the need to perform any of the update procedure in the slow frequency domain of the real-time clock.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present relation relates to an interface mechanism and particularly to an interface mechanism for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency.
2. Description of the Prior Art
Many data processing circuits utilise real-time clocks to provide a real-time clock value indicating, for example, the current day, date and time. Typically, when the data processing circuit is first activated, the correct day, date and time may need to be set. When the data processing circuit is shut down, power is maintained to the real-time clock, usually by a battery, so that the real-time clock may continue to operate. However, the real-time clock value may need to be updated for various reasons such as, for example, any cumulative inaccuracies of the real-time clock, a change of time zones or the loss of power to the real-time clock. Hence, it is known to provide an interface mechanism for interfacing the real-time clock with a data processing circuit which allows the real-time clock value to be updated.
The real-time clock will generally operate at a low frequency of typically 1 Hz and may therefore provide an incremented real-time clock value to the data processing circuit once every second. The data processing circuit will often be operating at a different frequency to the real-time clock, for example 30 MHz, and hence the interface mechanism will often need to handle signals received at different frequencies.
FIG. 1 describes such a known interface mechanism. The interface mechanism, generally 100, interfaces a real-time clock, generally 110, with a data processing circuit 190. For clarity, signals issued in the data processing circuit frequency domain are annotated with the subscript f2, whilst signals issued in the real-time clock frequency domain are annotated with the subscript f1.
In overview, the data processing circuit 190 receives a real-time clock value Cf2 synchronised with the data processing circuit frequency and generated by the interface mechanism 100 in response to a real-time clock value Cf1 issued by the real-time clock 110. The data processing circuit 190 may issue an update value Wf2 and a control signal CTLf2 to the interface mechanism 100 to update the real-time clock 110. The interface mechanism 100 then updates the real-time clock 110 and once the update is complete the real-time clock 110 issues an updated real-time clock value Cf1.
The configuration of the real-time clock 110 will now be described in more detail. The real-time clock 110 comprises a multiplexer 160, a register 170 an incrementer 180 and a clock generator (not shown) for generating a 1 Hz clock signal CLKf1. The real-time clock 110 is clocked by the 1 Hz clock signal CLKf1. The register 170 is coupled to the clock generator, the multiplexer 160 and the incrementer 180. The register 170 stores the real-time clock value representing, for example, a time and date. The register 170 receives the clock signal CLKf1 from the clock generator and the output from the multiplexer 160. The output of the multiplexer 160 is loaded into, and output by, the register 170 each time the register 170 is clocked by the clock signal CLKf1 (e.g. on the rising edge of the clock signal). The incrementer 180 receives the output of the register 170, increments the value by one and outputs the incremented value to the multiplexer 160. When the register 170 is next clocked, the incremented value will be loaded from the multiplexer 160 into the register 170 and output to the incrementer 180.
The multiplexer 160 allows the real-time clock value to be incremented or updated. The multiplexer 160 receives the output of the incrementer 180 at one input and the output from the interface mechanism 100 at the other input. The multiplexer 160 is controlled by a signal LOAD received from the interface mechanism 100. When the signal LOAD is asserted the multiplexer 160 outputs the value received from the interface mechanism 100, whilst when the signal LOAD is not asserted the multiplexer 160 outputs the value received from the incrementer 180. Hence, in the absence of the signal LOAD, the value in the register 170 is incremented every second and output as the real-time clock value Cf1. When the signal LOAD is asserted, the update value W from the interface mechanism 100 is loaded into the register 170 when clocked by the clock signal CLKf1 and output as the updated the real-time clock value Cf1.
The configuration of the interface mechanism 100 will now be described in more detail. The interface mechanism 100 comprises a state machine 120, a register 130 and a register 140. The interface mechanism 100 is clocked by a clock signal CLKf2. The state machine 120 is coupled to the data processing circuit 190, the real-time clock 110, the register 130 and the register 140. The state machine 120 controls the register 130, the register 140 and the multiplexer 160.
The state machine 120 receives the clock signal CLKf2 and a control signal CTLf2 from the data processing circuit 190. The state machine 120 monitors the clock signal CLKf1 issued by the clock generator of the real-time clock 110. The state machine 120 will assert a signal LOAD1 to the register 130 and a signal LOAD2 to the register 140 in response to the control signal CTL,f2 indicating that an update should take place. The register 130 is coupled to the data processing circuit 190, the state machine 120 and the register 140. The register 130 receives the update value Wf2 from the data processing circuit 190.
When the signal LOAD1 is asserted the update value Wf2 will be loaded into. and output by, the register 130. The contents of register 130 are output to the register 140. The register 140 is coupled to the register 130, the state machine 120 and multiplexer 160 of the real-time clock 100. The register 140 receives the update value W from the register 130. When the signal LOAD2 is asserted the update value W will be loaded into, and output by, the register 140. The contents of register 140 are output to the multiplexer 160.
Sync logic 150 is coupled to the output of the register 170 and to the data processing circuit. Sync logic receives the real-time clock value Cf1 output from the register 170 at the frequency f1 and transforms this to a real-time clock value Cf2 having the same value but synchronised with the frequency f2.
The operation of the interface mechanism 100 and real-time clock illustrated in FIG. 1 will now be described in more detail with reference also to FIG. 2.
During normal operation of the real-time clock 110, the register 170 may be activated with a value representing a time, day and date which is output as the real-time clock value Cf1. The real-time clock value Cf1 n is transformed by the sync logic 150 and output as a real-time clock value Cf2 which is received by the data processing circuit 190. As mentioned earlier, the real-time clock value Cf1, is incremented every second when the register 170 is clocked by the clock signal CLKf1.
The real-time clock value Cf1 may be updated by the interface mechanism 100 in response to signals issued by the data processing circuit 190.
In order to initiate the update of the real-time clock 110, a control signal CTLf2 and an update value W2 are issued by the data processing circuit 190 to the state machine 120 shortly after a rising edge of the clock signal CLKf2. In response, the state machine 120 issues a signal LOAD1 to the register 130. The register 130 will then load and output the update value Wf2 when clocked by the next clock signal CLKf2.
The state machine 120 will then determine the state of the signal LOAD. If the signal LOAD is asserted then this indicates that a previous update of the real-time clock 110 has not yet completed. Assuming the signal LOAD is not asserted, then shortly after the rising edge of the next clock signal CLKf2 the state machine 120 issues a signal LOAD2 to the register 140 as indicated in FIG. 2. The register 140 will then, when clocked by the clock signal CLKf2, load and output the update value W which is presented as an input to the multiplexer 160. If the signal LOAD is asserted, then the state machine 120 will wait until the signal LOAD is not asserted before issuing the signal LOAD2.
Assume that prior to the issue of the control signal CTLf2 indicating that an update should take place, the real-time clock value Cf1 has the value X. As described above, in the absence of the signal LOAD, the value output by the multiplexer 160 will be X+1. The state machine 120 and the register 170 wait until the next clock signal CLKf1 is received from the clock generator. On the rising edge of the clock signal CLKf1, the register 170 loads the output of the multiplexer 160 and the real-time clock value Cf1 has the value X+1. The output of the register 170 is incremented by the incrementer 180 and presented to the multiplexer 160 which, in the absence of the signal LOAD, outputs a value of X+2.
Once the state machine 120 has received the clock signal CLKf1, it knows that it is now safe to issue the signal LOAD to the multiplexer 160 without the risk of conflicting with the increment operation of the real-time clock 110, and hence the state machine 120, on the rising edge of the next clock signal CLKf2 following the clock signal CLKf1, asserts and holds the signal LOAD to the multiplexer 160.
Accordingly, the update value W is presented as the output of the multiplexer 160. On the rising edge of the next clock signal CLKf1, the update value W is loaded into the register 170 and the real-time clock value Cf1 has the value W. The output of the register 170 is incremented and presented to the multiplexer 160 which, due to the continued assertion of the signal LOAD still outputs the value W. On the rising edge of the next clock signal CLKf2 after the clock signal CLKf1, the state machine 120 stops asserting the signal LOAD to the multiplexer 160 since the reception of the clock signal CLKf1 by the state machine 120 indicates that the update has completed, and the multiplexer 160 then outputs the value W+1.
Hence, the period between when the control signal CTLf2 is first issued and the real-time clock value Cf1 has the updated value W is between one and two seconds. This latency between the update being requested and the update value being output is undesirable because the circuitry must operate for over a second after the write has been initiated to ensure correct operation. In situations where the circuitry loses power due to accidental or intentional power down during the update the status of the real-time clock may be unclear, at worst the update may not occur.
One possible solution to reduce the latency problem would be to provide certain circuit elements which could be clocked at either of the two frequencies, for example register 170 could be designed to be clocked at either frequency. However, it will be appreciated by those skilled in the art that this approach is likely to lead to reusability problems.
Thus an interface mechanism is required which can reduce the latency effect and effect the update in a shorter time period without affecting reusability.
SUMMARY OF THE INVENTION
According to a first aspect of the present invention there is provided an interface mechanism for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency comprising a first input for receiving a relative real-time clock value from the real-time clock; a second input for receiving an update value from the data processing circuit specifying a desired value for the real-time clock; update logic for producing an absolute real-time clock value, the update logic being arranged in response to receipt of the update value to generate an offset value derived from the relative real-time clock value and the update value, the offset value then being applied to the relative real-time clock value to produce an updated absolute real-time clock value, and an output for issuing the updated absolute real-time clock value.
Hence, the latency problem is reduced as a real-time clock value may be updated much more quickly, typically in less than two cycles of the second frequency. This increased speed is achieved by removing the need to write the update value to the real-time clock, the entire update process instead occurring in the second frequency domain. In accordance with the invention, the interface mechanism operating at the data processing circuit frequency generates an offset value derived from the relative real-time clock value and the update value. When the relative real-time clock value is received by the interface mechanism, this offset value is applied to the relative real-time clock value to produce the updated absolute real-time clock value for outputting to the data processing circuit.
Preferably, the offset value is derived by calculating the difference between the relative real-time clock value and the update value; and the updated absolute real-time clock value is produced by calculating the difference between the relative real-time clock value and the offset value.
Hence, the offset value will only need to be calculated each time that an update is requested by the data processing circuit. Once the offset value has been calculated it can be applied to a changing relative real-time clock value to produce a correct updated absolute real-time clock value.
Preferably, the update logic further comprises a first arithmetic unit for generating the offset value by subtracting the update value from the relative real-time clock value; and a second arithmetic unit for generating the updated absolute real-time clock value by subtracting the offset value from relative the real-time clock value.
Hence, the offset value and the updated absolute real-time clock value may be generated by a simple arithmetic subtraction operation, both operations being relatively quick to perform.
Preferably, the update logic is triggered to perform an update of the absolute real-time clock value in response to a control signal received from the data processing circuit in addition to the update value the offset value being derived in a second frequency clock cycle following receipt of the control signal, and the updated absolute real-time clock value being produced in the next occurring second frequency clock cycle.
Hence, the data processing circuit may indicate to the interface mechanism when an update is required. This allows a data bus to be used to issue the update value to the interface mechanism, and once the update value has been received by the interface mechanism the data bus is then available for other operations.
Preferably, the update logic further comprises a state machine for receiving the control signal and a second frequency clock signal wherein: in response to the control signal, a first signal is issued by the state machine during a first second frequency clock cycle to cause the first arithmetic unit to generate the offset value, and in response to the next occurring second frequency clock cycle, a second signal is issued by the state machine causing the second arithmetic unit to generate the updated absolute real-time clock value.
Hence, the state machine may control the generation of the offset value and the updated absolute real-time clock value. The state machine initiates the generation of the offset value by the first arithmetic unit during a first clock cycle in response to the control signal received from the data processing circuit. On the next occurring clock cycle, which allows time for the offset value to be generated by the first arithmetic unit, the updated absolute real-time clock value is generated.
Preferably, the update logic further comprises: a first register for storing and outputting to the first arithmetic unit the update value from the data processing circuit in response to the first signal from the state machine; and a second register for storing and outputting to the second arithmetic unit the offset value generated by the first arithmetic unit in response to the second signal.
Hence, by storing the updated value the data processing circuit may be decoupled from the interface mechanism, thereby allowing the data processing circuit to perform other operations. Also, by storing the offset value, this value need not be recalculated each time the updated absolute real-time clock value is generated.
Preferably, the interface mechanism further comprises sync logic for synchronising the relative real-time clock value generated by the real-time clock with the second frequency, wherein the update logic receives the resynchronised relative real-time clock value.
Hence, the update logic may be provided with the relative real-time clock value synchronised with the frequency used by the data processing circuit.
According to a second aspect of the present invention there is provided a method of interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency, comprising the steps of, receiving a relative real-time clock value from the real-time clock; receiving an update value from the data processing circuit specifying a desired value for the real-time clock; producing an updated absolute real-time clock value by generating an offset value derived from the relative real-time clock value and the update value and by applying the offset value to the relative real-time clock value; and issuing the updated absolute real-time clock value.
According to a third aspect of the present invention there is provided a computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by an interface mechanism, cause the interface mechanism to implement a method for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency the method comprising the steps of: receiving a relative real-time clock value from the real-time clock; receiving an update value from the data processing circuit specifying a desired value for the real-time clock; producing an updated absolute real-time clock value by generating an offset value derived from the relative real-time clock value and the update value and by applying the offset value to the relative real-time clock value; and issuing the updated absolute real-time clock value.
BRIEF DESCRIPTION OF THE DRAWINGS
An embodiment of the invention will be described hereinafter, by way of example only with reference to the accompanying drawings in which like reference signs are used for like features, and in which:
FIG. 1 is a block diagram of an interface mechanism coupled to a data processing circuit and a real-time clock according to a prior art technique.
FIG. 2 is a timing diagram of an update operation performed using the apparatus of FIG. 1;
FIG. 3 is a block diagram of an interface mechanism in accordance with a preferred embodiment of the invention coupled to the data processing circuit and the real-time clock;
FIG. 4 is a block diagram of an interface mechanism in accordance with an embodiment of the invention coupled to the data processing circuit and the real-time clock;
FIG. 5 is a timing diagram of an update operation performed using the interface mechanism of FIG. 4; and
FIG. 6 is a block diagram of an example architecture of a data processing apparatus embodying the interface mechanism.
DESCRIPTION OF A PREFERRED EMBODIMENT
FIG. 3 shows an interface mechanism according to an embodiment of the present invention. The interface mechanism, generally 200, interfaces a real-time clock, generally 115, with the data processing circuit 190. In overview, the update logic 210 receives a relative real-time clock value Cf2 from the real-time clock 115 via the sync logic 150 and outputs an updated absolute real-time clock value Rf2. The data processing circuit 190 may issue an update value Wf2 to the update logic 210. The update logic 210 updates the absolute real-time clock value Rf2 based on the update value W and in response to a control signal CTLf2 received from the data processing circuit 190. Once the update is complete the update logic 210 issues the updated 25 absolute real-time clock value Rf2.
The configuration of the real-time clock 115 will be now be described in more detail. The real-time clock 115 comprises a register 170, an incrementer 180 and a clock generator (not shown) for generating a clock signal CLKf1. The register 170 is coupled to the incrementer 180 and the clock generator. The register 170 stores the relative real-time clock value Cf1. The register 170 receives the clock signal CLKf1 from the clock generator and outputs the relative real-time clock value Cf1. The incrementer 180 receives the output of the register 170, increments the value by one and outputs the incremented value. The register 170 receives the output of the incrementer 180. Hence, the value of the register 170 is incremented once every second and output as the relative real-time clock value Cf1. The real-time clock 115 differs from the real-time clock 110, described above, through the absence of the multiplexer 160. Hence, it is not possible to externally load a real-time clock value into the register 170. Instead, the register 170 is initialised with a predetermined value when first activated and is then free-running from that point on.
The configuration of the interface mechanism 200 will now be described in more detail. The interface mechanism 200 comprises update logic 210 and sync logic 150. The update logic 210 is coupled to the data processing circuit 190 and to the real-time clock 115 via the sync logic 150. The update logic 210 has a first input. 260 for receiving the relative real-time clock value Cf2 from the sync logic 150, a second input 240 for receiving the update value Wf2 from the data processing circuit 190, a third input 220 for receiving the clock signal CLKf2 from the data processing circuit 190, a fourth input 220 for receiving the control signal CTLf2 from the data processing circuit 190 and an output 250 for issuing the updated absolute real-time clock value Rf2.
Sync logic 150 is coupled to the output of the register 170 and to the update logic 210. Sync logic 150 receives the relative real-time clock value Cf1 output from the register 170 at the frequency f1 and transforms this to the relative real-time clock value Cf2 having the same value but synchronised with the frequency f2.
The operation of the interface mechanism 200 illustrated in FIG. 3 will now be described in more detail.
As mentioned earlier, the real-time clock 115 is initialised with a predetermined value (e.g. set to zero) when the data processing circuit 190 is first activated, and this value is then incremented every second and output as the relative real-time clock value Cf1.
The relative real-time clock value Cf1 is transformed by the sync logic 150 and output as the relative real-time clock value Cf2 which is synchronised with the frequency f2 and received at the first input 260 of the update logic 210. This relative real-time clock value Cf2 is then converted to the absolute real-time clock value Rf2 by the update logic 210 as discussed below.
To set the real-time clock to a desired value, an updated absolute real-time clock value Rf2 may be derived by the interface mechanism 200 from the relative real-time clock value Cf2 in response to signals issued by the data processing circuit 190. The update logic 210 may receive an update value Wf2 from the data processing circuit 190 which specifies a desired update value for the absolute real-time clock value Rf2. The update logic 210 then produces the updated absolute real-time clock value Rf2 by generating an offset value derived from the relative real-time clock value Cf2 and the update value W, the offset value being applied to the relative real-time clock value Cf2 to produce the updated absolute real-time clock value Rf2. The updated absolute real-time clock value Rf2 is then output over path 250 to the data processing circuit 190. These functions of the update logic 210 may be implemented in software or hardware.
In order to initiate the update of the absolute real-time clock value Rf2 a control signal CTLf2, indicating that a update should take place, and an update value Wf2 are issued by the data processing circuit 190 and are captured by the update logic 210 via the fourth and second inputs 230, 240, respectively, on the rising edge of the clock signal CLKf2.
The update logic 210, in response to the next rising edge of the clock signal CLKf2, generates an offset value D which is derived from the relative real-time clock value Cf2 and the update value W. The offset value D is then applied, in response to the next rising edge of the clock signal CLKf2, to the relative real-time clock value Cf2 to produce the updated absolute real-time clock value Rf2.
Accordingly, the absolute real-time clock value Rf2 may be updated without needing to load the real-time clock 115 with a new value. This avoids the need to process the update at the lower frequency f1, and instead the updated absolute real-time clock value Rf2 may be generated based on the higher frequency f2, and thus may be generated more quickly than in the prior art. Also, since no element in the design needs to be clocked by more than one clock source, there are no reusability problems.
FIG. 4 shows one possible hardware configuration for the update logic 210, although as mentioned earlier the update logic function may alternatively be implemented in software. The update logic 210 comprises a state machine 340, a first register 300, a second register 320, a first arithmetic unit 310 and a second arithmetic unit 330.
The state machine 340 is coupled to the data processing circuit 190, the first register 300 and the second register 320. The state machine 340 receives the clock signal CLKf2 and the control signal CTLf2 from the data processing circuit 190. The state machine 340 is arranged to issue a signal LOAD3 to the first register 300 and a signal LOAD4 to the second register 320. The first register 300 is coupled to the state machine 340 and to the data processing circuit 190. The first register 300 receives the update value Wf2 from the data processing circuit 190 and a signal LOAD3 from the state machine 330. The first register 300 then stores and outputs the update value Wf2 to the first arithmetic unit 310 when clocked by the clock signal CLKf2. The first arithmetic unit 310 receives the update value W from the first register 300 and the real-time clock value Cf2 from the sync logic 150. The first arithmetic unit 310 then determines an offset value D and outputs it to the second register 320. The second register 320 receives a signal LOAD4 from the state machine 340 and the offset value D from the first arithmetic unit 310. The register 320 then stores and outputs the offset value D to the second arithmetic unit 330 when clocked by the clock signal CLKf2. The second arithmetic unit 330 receives the offset value D from the second register 320 and the real-time clock value Cf2 from the sync logic 150. The second arithmetic unit 330 then determines and outputs the updated absolute real-time clock value Rf2 to the data processing circuit 190.
The operation of the update logic 210 illustrated in FIG. 4 will now be described in more detail with reference also to FIG. 5.
Upon initiation of the data processing circuit 190, the real-time clock 115 is preferably set to zero and the absolute real-time clock value Rf2 output by the update logic 210 prior to an update being requested by the data processing circuit 190 has the same value as the relative real-time clock value Cf2.
The absolute real-time clock value Rf2 may be updated by the update logic 210 in response to signals issued by the data processing circuit 190.
In order to initiate the update of the absolute real-time clock value Rf2, a control signal CTLf2, indicating that an update should take place is issued to the state machine 340, and an update value Wf2, is issued by the data processing circuit 190 to the register 300 on the rising edge of the clock signal CLKf2. Preferably, the state machine 340 then issues a signal LOAD3 to the first register 300, which then stores and outputs the update value W when clocked by the clock signal CLKf2.
The contents of the register 300 and the relative real-time clock value Cf2 are received by the first arithmetic unit 310 which calculates an offset value D which is then issued to the second register 320. In the next clock cycle, the state machine 340 issues a signal LOAD4 to the second register 320, which then stores and outputs the offset value D when clocked by the clock signal CLKf2. The contents of the second register 320 and the relative real-time clock value Cf2 are then received by the second arithmetic unit 330 which then applies the offset value D to the relative real-time clock value Cf2 to produce the updated absolute real-time clock value Rf2. The updated absolute real-time clock value Rf2 is issued to the data processing circuit 190.
It will be appreciated by those skilled in the art that there is no requirement for the state machine 340 to issue the signal LOAD3, since alternatively the contents of first register 300 could be arranged to be updated on every occurrence of the clock signal CLKt2. This would not cause a problem, as long as the register 320 continues to only be updated when the new offset value D is calculated on occurrence of the update.
The first arithmetic unit derives the offset value D by calculating the difference between the relative real-time clock value Cf2 and the update value W, in this case calculated by subtracting the update value W from the relative real-time clock value Cf2. The second arithmetic unit 330 produces the updated absolute real-time clock value Rf2 by calculating the difference between the relative real-time clock value Cf2 and the offset value D, in this case by subtracting the offset value D from the relative real-time clock value Cf2.
Hence, the offset value D is only calculated each time that an update is requested. The main purpose of the register 300 is to allow for late arrival of the update value Wf2 on the data bus (i.e. it is there for timing reasons). The subtraction in the first arithmetic unit 310 needs some time to complete before the offset value D is sampled by the register 320. In addition, by storing the update value W in the first register 300 the data processing circuit 190 may be decoupled from the interface mechanism thereby allowing the data processing circuit 190 to perform, other operations. By storing the offset value D in the second register 320, the offset value D may thereafter be applied to a changing relative real-time clock value Cf2 to produce the updated absolute real-time clock value Rf2.
As can be seen in FIG. 5 assume that the relative real-time clock value Cf1 has the value Y and the absolute real-time clock value Rf2 has the value X. In order to initiate the update of the absolute real-time clock value Rf2 the data processing circuit 190 issues a control signal CTLf2 indicating that an update is to take place and an update value Wf2, shortly after a rising edge of the clock signal CLKF2. The state machine 120 in response then issues a signal LOAD3 to the first register 300. On the rising edge of the next clock signal CLKf2 the register 300 stores and outputs the update value W and the state machine 340 issues a signal LOAD4 to the second register 320. The first arithmetic unit 310 subtracts the real-time clock value Cf2 from the update value W to produce an offset value D. Until this point the update logic 210 continues to output the absolute real-time clock value Rf2 having the value X. On the rising edge of the next clock signal CLKf2 the register 320 stores and outputs the offset value D and the second arithmetic unit 330 subtracts the offset value D from the relative real-time clock value Cf2 to produce the updated absolute real-time clock value Rf2 having the value W.
Hence it can be seen that two clock cycles CLKf2 after an update is requested, the updated absolute real-time clock value Rf2 has the value W, although the relative real-time clock value Cf1 remains unchanged, having a value Y.
On occurrence of the next clock signal CLKf1 the relative real-time clock value Cf1 will have the value Y+1 and the updated absolute real-time clock value Rf 2 will be updated to have the value of W+1 on the rising edge of the next clock signal CLKf2.
Advantageously, the absolute real-time clock value Rf2 can be updated much more quickly than in the prior art. Hence, in situations where the circuitry loses power due to accidental or intentional power down during the update, the status of the real-time clock is likely to be more predictable and with the update more likely to have occurred.
Also, since all of the elements of the interface mechanism 200 and the real-time clock 115 are clocked only at one frequency, there are no reusability problems.
Additionally, whilst the interface between the update logic 210 and the data processing circuit 190 remains unchanged, the interface between the real-time clock and the update logic 210 is significantly simplified.
Furthermore, the functionality required from the real-time clock is also significantly simplified since it no longer requires any elements which perform an update operation.
FIG. 6 illustrates a data processing apparatus embodying the interface mechanism. A number of master and slave units are connected to a system bus 450, for example a Central Processing Unit (CPU) 400, an interface mechanism 200, a memory interface 440, “Universal Asynchronous Receive and Transmit” (UART) logic unit 410 for receiving and transmitting serial data, and an interrupt controller 420. Real-time clock 115 is connected to the interface mechanism 200. Random Access Memory (RAM) 430 may be connected to the memory interface 440.
Control and data signals are passed between the units using the system bus 450. Access to the system bus 450 is controlled by arbiter logic (not shown).
When requested, the updated absolute real-time clock value Rf2 may be output by the interface mechanism 200 onto the system bus 450.
The CPU 400 may issue a control signal CTLf2 onto the system bus along with an update value Wf2 to be received by the interface mechanism 200. The updated absolute real-time clock value R f2 2 may thereafter be output by the interface mechanism 200 onto the system bus 450 when requested. Data and control signals of bus 450 are timed by the clock signal CLKf2.
Although particular embodiments have been described herein, it will be appreciated that the invention is not limited thereto and that many modifications and additions thereto may be made within the scope of the invention. For example, various combinations of the features of the following dependent claims can be made with the features of the independent claims without departing from the scope of the present invention.

Claims (9)

I claim:
1. An interface mechanism for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency comprising:
a first input for receiving a relative real-time clock value from the real-time clock;
a second input for receiving an update value from the data processing circuit specifying a desired value for the real-time clock;
update logic for producing an absolute real-time clock value, the update logic being arranged in response to receipt of the update value to generate an offset value derived from the relative real-time clock value and the update value, the offset value then being applied to the relative real-time clock value to produce an updated absolute real-time clock value; and
an output for issuing the updated absolute real-time clock value, wherein: the offset value is derived by calculating the difference between the relative real-time clock value and the update value; and the updated absolute real-time clock value is produced by calculating the difference between the relative real-time clock value and the offset value.
2. The interface mechanism of claim 1 wherein the update logic further comprises:
a first arithmetic unit for generating the offset value by subtracting the update value from the relative real-time clock value; and
a second arithmetic unit for generating the updated absolute real-time clock value by subtracting the offset value from the relative real-time clock value.
3. The interface mechanism of claim 2 wherein the update logic is triggered to perform an update of the absolute real-time clock value in response to a control signal received from the data processing circuit in addition to the update value, the offset value being derived in a second frequency clock cycle following receipt of the control signal, and the updated absolute real-time clock value being produced in the next occurring second frequency clock cycle.
4. The interface mechanism of claim 3 wherein the update logic further comprises:
a state machine for receiving the control signal and a second frequency clock signal wherein:
in response to the control signal, a first signal is issued by the state machine during a second frequency clock cycle to cause the first arithmetic unit to generate the offset value; and
in response to the next occurring second frequency clock cycle, a second signal is issued by the state machine causing the second arithmetic unit to generate the updated absolute real-time clock value.
5. The interface mechanism of claim 4 wherein the update logic further comprises:
a first register for storing and outputting to the first arithmetic unit the update value from the data processing circuit in response to the first signal from the state machine; and
a second register for storing and outputting to the second arithmetic unit the offset value generated by the first arithmetic unit in response to the second signal.
6. The interface mechanism claim 1 further comprising:
sync logic for synchronising the relative real-time clock value generated by the real-time clock with the second frequency producing a resynchronized relative real-time clock value, wherein the update logic receives the resynchronised relative real-time clock value.
7. A method of interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency comprising the steps of:
receiving a relative real-time clock value from the real-time clock;
receiving an update value from the data processing circuit specifying a desired value for the real-time clock;
producing an updated absolute real-time clock value by generating an offset value derived from the relative real-time clock value and the update value and by applying the offset value to the relative real-time clock value; and
issuing the updated absolute real-time clock value, wherein: the offset value is derived by calculating the difference between the relative real-time clock value and the update value; and the updated absolute real-time clock value is produced by calculating the difference between the relative real-time clock value and the offset value.
8. The method of claim 7 wherein the step of producing the updated absolute real-time clock value comprising the steps of:
storing the update value in response to a control signal;
generating the offset value in a second frequency clock cycle following receipt of the control signal by subtracting the update value from the relative real-time clock value;
storing the offset value; and
generating the updated absolute real-time clock value in the next occurring second frequency clock cycle by subtracting the offset value from the relative real-time clock value.
9. A computer-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions which, when executed by an interface mechanism, cause the interface mechanism to implement a method for interfacing a real-time clock operating at a first frequency with a data processing circuit operating at a second frequency the method comprising the steps of:
receiving a relative real-time clock value from the real-time clock;
receiving an update value from the data processing circuit specifying a desired value for the real-time clock;
producing an updated absolute real-time clock value by generating an offset value derived from the relative real-time clock value and the update value and by applying the offset value to the relative real-time clock value; and
issuing the updated absolute real-time clock value, wherein: the offset value is derived by calculating the difference between the relative real-time clock value and the update value; and the updated absolute real-time clock value is produced by calculating the difference between the relative real-time clock value and the offset value.
US09/616,067 2000-07-13 2000-07-13 Interface mechanism and method for interfacing a real-time clock with a data processing circuit Expired - Lifetime US6760798B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/616,067 US6760798B1 (en) 2000-07-13 2000-07-13 Interface mechanism and method for interfacing a real-time clock with a data processing circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/616,067 US6760798B1 (en) 2000-07-13 2000-07-13 Interface mechanism and method for interfacing a real-time clock with a data processing circuit

Publications (1)

Publication Number Publication Date
US6760798B1 true US6760798B1 (en) 2004-07-06

Family

ID=32595521

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/616,067 Expired - Lifetime US6760798B1 (en) 2000-07-13 2000-07-13 Interface mechanism and method for interfacing a real-time clock with a data processing circuit

Country Status (1)

Country Link
US (1) US6760798B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205369A1 (en) * 2003-04-10 2004-10-14 International Business Machines Corporation Method system and synchronization circuit for providing hardware component access to a set of data values without restriction
US20060156417A1 (en) * 2005-01-08 2006-07-13 Lg Electronics Inc. Method for enhancing a digital rights management function of a data terminal
US9319237B2 (en) * 2004-06-26 2016-04-19 Robert Bosch Gmbh Method and device for controlling a bus system and a corresponding bus system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274545A (en) * 1990-01-29 1993-12-28 The United States Of America As Represented By The Secretary Of Commerce Device and method for providing accurate time and/or frequency
US5526515A (en) * 1994-06-30 1996-06-11 Taligent, Inc. Hardware-driven clock with object-oriented interface
US5612981A (en) * 1994-02-15 1997-03-18 Philips Electronics North America Corporation Apparatus and methods for improving timing recovery of a system clock
US5719510A (en) * 1996-03-27 1998-02-17 Intel Corporation Software configurable digital clock generator
US6282210B1 (en) * 1998-08-12 2001-08-28 Staktek Group L.P. Clock driver with instantaneously selectable phase and method for use in data communication systems
US6449291B1 (en) * 1998-11-24 2002-09-10 3Com Corporation Method and apparatus for time synchronization in a communication system
US6516362B1 (en) * 1999-08-23 2003-02-04 Advanced Micro Devices, Inc. Synchronizing data between differing clock domains
US6560215B1 (en) * 1999-08-24 2003-05-06 Motorola, Inc. Method and apparatus for updating a timing offset in a communication device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274545A (en) * 1990-01-29 1993-12-28 The United States Of America As Represented By The Secretary Of Commerce Device and method for providing accurate time and/or frequency
US5612981A (en) * 1994-02-15 1997-03-18 Philips Electronics North America Corporation Apparatus and methods for improving timing recovery of a system clock
US5526515A (en) * 1994-06-30 1996-06-11 Taligent, Inc. Hardware-driven clock with object-oriented interface
US5719510A (en) * 1996-03-27 1998-02-17 Intel Corporation Software configurable digital clock generator
US6282210B1 (en) * 1998-08-12 2001-08-28 Staktek Group L.P. Clock driver with instantaneously selectable phase and method for use in data communication systems
US6449291B1 (en) * 1998-11-24 2002-09-10 3Com Corporation Method and apparatus for time synchronization in a communication system
US6516362B1 (en) * 1999-08-23 2003-02-04 Advanced Micro Devices, Inc. Synchronizing data between differing clock domains
US6560215B1 (en) * 1999-08-24 2003-05-06 Motorola, Inc. Method and apparatus for updating a timing offset in a communication device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205369A1 (en) * 2003-04-10 2004-10-14 International Business Machines Corporation Method system and synchronization circuit for providing hardware component access to a set of data values without restriction
US7017066B2 (en) * 2003-04-10 2006-03-21 International Business Machines Corporation Method, system and synchronization circuit for providing hardware component access to a set of data values without restriction
US9319237B2 (en) * 2004-06-26 2016-04-19 Robert Bosch Gmbh Method and device for controlling a bus system and a corresponding bus system
US20060156417A1 (en) * 2005-01-08 2006-07-13 Lg Electronics Inc. Method for enhancing a digital rights management function of a data terminal

Similar Documents

Publication Publication Date Title
EP1451666B1 (en) Glitch free clock selection switch
JPH0855084A (en) Apparatus and method for synchronization,in zero waiting time,with system provided with at least two clock domains
JP3457459B2 (en) Method for synchronizing data sent at external clock frequency with internal clock frequency and multiple clock converter
JPS6227813A (en) Phase synchronization system
US6675249B2 (en) Information processing equipment and information processing system
US6760798B1 (en) Interface mechanism and method for interfacing a real-time clock with a data processing circuit
KR100288413B1 (en) Internal clock synchronization method and internal clock synchronization circuit
US7205815B2 (en) Method and integrated circuit apparatus for reducing simultaneously switching output
EP1436685B1 (en) Data synchronization on a peripheral bus
JP2002328744A (en) Semiconductor integrated circuit device
JP2006072777A (en) Clock distribution circuit in semiconductor logic circuit, and method therefor
JP2000353027A (en) Clock control method and electronic circuit device using the method
JP2756445B2 (en) Asynchronous circuit reset method
JPH1115783A (en) Synchronous circuit
JPH10187275A (en) Clock supply system for bus circuit
JP3349983B2 (en) Semiconductor integrated circuit device
JPH07168652A (en) Synchronous resetting circuit
JPH08329000A (en) Information processor
JP2653281B2 (en) Multi-phase clock control circuit
JP2005316721A (en) Clock generation circuit and semiconductor integrated circuit
JPS63120355A (en) Bus interface circuit
EP2196916A1 (en) GALS circuit block and GALS circuit device suitable for bursty data transfer
JPH10323021A (en) Pulse width modulation signal generator
JP2006079547A (en) Processor system
JPS6320517A (en) System clock stretch circuit

Legal Events

Date Code Title Description
AS Assignment

Owner name: ARM LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ALDWORTH, PETER J.;REEL/FRAME:011088/0877

Effective date: 20000710

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

FPAY Fee payment

Year of fee payment: 12