US20030079059A1 - Interface between different clock rate components - Google Patents

Interface between different clock rate components Download PDF

Info

Publication number
US20030079059A1
US20030079059A1 US10/323,435 US32343502A US2003079059A1 US 20030079059 A1 US20030079059 A1 US 20030079059A1 US 32343502 A US32343502 A US 32343502A US 2003079059 A1 US2003079059 A1 US 2003079059A1
Authority
US
United States
Prior art keywords
buffer
component
clock rate
clock
operable
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.)
Abandoned
Application number
US10/323,435
Inventor
Mandy Tsai
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US10/323,435 priority Critical patent/US20030079059A1/en
Publication of US20030079059A1 publication Critical patent/US20030079059A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers

Definitions

  • the present invention relates to digital signal processing. More particularly, the present invention relates to a method and a circuit for interfacing a low clock rate component with a high clock rate component.
  • a low clock rate component In the field of digital signal processing, the need for interfacing a low clock rate component with a high clock rate component is very common.
  • a charge-coupled device CCD
  • SDRAM synchronous dynamic random access memory
  • real-time means that data is transferred at a rate fast enough to avoid a perceivable delay in operation of the system, in this example, a digital still camera.
  • the CCD operates at a clock rate of about 12 MHz
  • the SDRAM operates at a clock rate of about 54 MHz.
  • an interface between the low clock rate CCD and the high clock rate SDRAM is needed to accommodate the difference between the clock rates.
  • FIG. 1 A diagram of a prior art FIFO configuration is shown in FIG. 1.
  • FIFO comprises a memory 2 that is accessible by the data source 4 anytime there is space available and is accessible by the destination 6 anytime there is data available from the source.
  • FIFO also comprises hardware control logic 8 , such as a read/write access pointer controller, to control the access to the FIFO by both the data source and the destination so as to ensure that the data will be transferred correctly.
  • the control logic must detect when the memory of the FIFO is full and send a signal to the data source, if the memory is detected as full, to hold the data transmitted from the source until the memory is detected as nearly empty.
  • the control logic In the other case when the clock rate of the destination is higher than that of the data source, the control logic must detect when the memory of the FIFO is empty or nearly empty and send a signal to the destination, if the memory is detected as empty or nearly empty, to hold the access to the FIFO by the destination until the memory is detected as full.
  • This operation requires relatively complex control logic and a relatively long timing delay, which slows down the performance of the component with the higher clock rate. Such a solution is practical only if using a slow clock source.
  • Dual-port memory circuits are a more versatile form of time domain boundary buffer.
  • the read and write operations of a dual-port buffer are based on address rather than write order, thereby allowing the reading of data in a different order than it was written in, for example.
  • Lock-outs are used in a dual-port buffer to prevent reading from a memory element while it is being written.
  • Dual-port buffers can be arranged to not slow down the performance of the component with the higher clock rate if the read/write operations are coordinated properly.
  • the implementation of a dual-port buffer is more complicated than that of a FIFO and is difficult to integrate into an integrated circuit die.
  • a dual port memory is typically used as a discrete component, adding to system size and complexity.
  • the manufacturing costs of dual-port buffers are comparatively higher than single-port memory circuits.
  • a circuit for interfacing between a first component operating at a first clock rate and a second component operating at a second clock rate, wherein the second clock rate is higher than the first clock rate comprises a first buffer coupled to the first component; a second buffer coupled to the second component; and a copy/access controller connected to the first buffer, the second buffer, and the second component.
  • the copy/access controller is operable to copy data from the first buffer to the second buffer when the first buffer is substantially full. It is also operable to prompt the second component to access the second buffer when the data is copied from the first buffer.
  • the buffers can be random access memories or shift registers, and can be integrated onto the same semiconductor die as either the first or second component.
  • a circuit for transferring a real-time data flow from a first component operable at a first clock rate to a second component operable at a second clock rate wherein the second clock rate is higher than the first clock rate.
  • the circuit comprises a first clock signal source of the first clock rate; a second clock signal source of the second clock rate; a first buffer operable at either the first clock rate or the second clock rate and coupled to the first component and the second component; a second buffer operable at either the first clock rate or the second clock rate and coupled to the first component and the second component.
  • the circuit also includes a clock switch coupled to the first buffer and to the second buffer and coupled to the first and second clock signal sources. The clock switch is operable to couple the first clock signal source to either the first buffer or the second buffer and is operable to couple the second clock signal source to the other of the first buffer and the second buffer when one of the buffers is substantially full.
  • An advantage of the invention is that it provides an interface between two different speed components using cost-effective single port memory circuits rather than dual port memories.
  • FIG. 1 shows a prior art FIFO configuration
  • FIG. 2 shows a block diagram of a first embodiment of the present invention
  • FIG. 3 shows a block diagram of a clock switching circuit of said first embodiment of the present invention
  • FIG. 4 shows a block diagram of a second embodiment of the present invention.
  • FIG. 5 shows a block diagram of copy/access circuitry of said second embodiment of the present invention.
  • a ping-pong buffer generally comprises two memory elements that can be written to and read from alternately.
  • one memory element e.g. the “ping” buffer
  • the other memory element e.g. the “pong” buffer
  • the ability of ping-pong buffers to handle uninterrupted streams of data can be used as a solution for interfacing electronic components having two different operating speeds or clock rates.
  • FIG. 2 illustrates a first embodiment of the present invention, wherein a ping-pong buffer 10 is used as an interface between a low clock rate component 11 (e.g. a CCD operable at about 12 MHz or a TV data output operable at 13.5 MHz) and a high clock rate component 12 (e.g. an SDRAM operable at about 54 MHz) in a real-time application.
  • the ping-pong buffer 10 comprises a ping buffer 13 , a pong buffer 14 and a clock switch 15 .
  • the buffers can be any size, such as 8 by 32-bits for example, and comprise a memory device such as a shift register comprising D Flip-Flops or a RAM.
  • the clock rate of the ping buffer 13 can be switched between a clock signal source (not shown) at the clock rate of the component 11 and a clock signal source (not shown) at the clock rate of the component 12 .
  • the ping buffer 13 can be accessed by the component 11 if it is operating at the clock rate of the component 11 , and it can be accessed by the component 12 if it is operating at the clock rate of the component 12 . Access between the components 11 and 12 and the ping 13 and pong 14 buffers can be controlled using an address pointer controller 16 and a comparator 17 .
  • the clock rate of the pong buffer 14 can also be switched between the clock rate of the component 11 and the clock rate of the component 12 .
  • the clock switch 15 is coupled to both the ping buffer 13 and the pong buffer 14 and switches between the clock sources.
  • the ping buffer 13 operates at the clock rate of the component 11 and is receiving a real-time data flow from the component 11 .
  • the clock switch 15 switches from the clock signal source for the clock rate of the ping buffer 13 to clock signal source for the clock rate of the component 12 and switches the clock signal source for the clock rate of the pong buffer 14 to the clock signal source for the clock rate of the component 11 , such that the component 12 can obtain the data from the ping buffer 13 and the pong buffer 14 can continue receiving the real-time data flow from the component 11 .
  • the clock switch 15 will again exchange the clock rates of the ping buffer 13 and the pong buffer 14 to let the component 12 obtain data from the pong buffer 14 and let the ping buffer 13 continue receiving real-time data flow from component 11 .
  • the ping-pong buffer 10 may include a counter. A predetermined number corresponding to the capacity of each of the ping buffer 13 and the pong buffer 14 is set in the counter. At first, the counter is set to zero. In addition, each time the clock rates of the ping buffer 13 and the pong buffer 14 are switched, the counter is reset to zero. When each vacancy of the ping buffer 13 or the pong buffer 14 is occupied by a datum from the component 11 , the counter is increased by one. When the counter reaches the predetermined number, the clock switch 15 executes the switching of the clock rates of the ping buffer 13 and the pong buffer 14 .
  • the predetermined number may be set to correspond to the condition that the ping buffer 13 or the pong buffer 14 is nearly full but not completely full, to prevent the switching of clock rates from causing interruptions to the receiving of the real-time data flow.
  • the switching of clock rates is executed when one of the ping buffer 13 and the pong buffer 14 that is receiving data from the component 11 is substantially full (i.e., the buffer is full or nearly full).
  • the predetermined numbers corresponding to the capacities of the ping buffer 13 and the pong buffer 14 respectively may be different if the capacities of the ping buffer 13 and the pong buffer 14 are different.
  • FIG. 3 shows one method for switching between the components 11 and 12 and the buffers 13 and 14 .
  • the output of a pointer counter 16 indicates which buffer 13 or 14 is accessible by a component at a given time. Once the counter value is equal to the buffer size (as determined by comparator 17 ), the comparator issues a signal to switch 15 so that the component 11 or 12 can access the other buffer 13 or 14 .
  • the switch also reverses the connection of the two different clock sources to the buffers 13 and 14 at this time.
  • the circuit of the ping-pong buffer 10 of the present invention is much simpler than that of a FIFO or a dual-port buffer and can be more easily integrated onto the same semiconductor die as either the component 11 or the component 12 .
  • a reason for this is that in the ping-pong buffer approach, the components 11 and 12 do not require any status feedback from the ping or pong buffers.
  • the buffer operation depends only on the passive counter and comparator logic.
  • the components 11 and 12 can therefore read or write without stopping or slowing the data transfer to allow for status logic delay.
  • the FIFO and high and low clock rate components handshake and operate in accordance with a FULL/EMPTY flag.
  • Handshake logic is performed with decision circuits in both the FIFO and the high and low clock rate components, a more complex and space-consuming configuration than is required in the ping-pong buffer implementation.
  • the dual-port memory approach suffers from the same complexity drawbacks, but also has the added disadvantage of the inherently higher cost of the memory itself.
  • FIG. 4 illustrates a second embodiment of the present invention wherein a ping-pong buffer 20 is used as an interface between a low clock rate component 21 and a high clock rate component 22 .
  • the structure and mechanism of the second embodiment is further simplified because the clock switch is eliminated and each buffer need only be operable at a single clock rate. Operating a component at a single clock rate has the advantage of eliminating potential uncertainty that can result from phase delays between multiple clock sources.
  • the ping-pong buffer 20 of the second embodiment comprises a ping buffer 23 , a copy/access controller 24 and a pong buffer 25 .
  • the ping buffer 23 is used for receiving data from the component 21 and operates at the clock rate of the component 21 .
  • the pong buffer 25 is accessed by the component 22 and operates at the clock rate of the component 22 .
  • the copy/access controller 24 executes a copy operation to copy data from the ping buffer 23 to the pong buffer 25 .
  • the copy/access controller 24 sends a signal to the component 22 to let the component 22 obtain data from the pong buffer 25 , and at the same time, the ping buffer 23 continues receiving data from the component 21 .
  • the second embodiment circuit can include a counter to indicate when the ping buffer 23 is full or nearly-full.
  • FIG. 5 is a schematic diagram of a copy/access controller.
  • Access counter 27 is increased by one when data shifts from one D Flip-Flop 29 to the next D Flip-Flop 31 in ping buffer 23 . Once data shifts to the end of the ping buffer (i.e. to D Flip-Flop 33 ), the counter 27 value is equal to the buffer size.
  • Comparator 35 then generates a load signal to COPY logic 37 to allow the data in ping buffer 23 to be copied to pong buffer 25 .
  • the copy operation takes one cycle of the low clock signal.
  • each of the ping buffer 23 and the pong buffer 25 of the second embodiment can be implemented by using a RAM. This approach is slightly more complicated since data addresses and data address logic are needed in the copy operation between the two memories.

Abstract

A circuit for interfacing between a first component 11 operating at a first clock rate and a second component 12 operating at a second clock rate, wherein the second clock rate is higher than the first clock rate. The circuit comprises a first buffer 13 coupled to the first component 11; a second buffer 14 coupled to the second component 12; and a copy/access controller 15, 16, 17 connected to the first buffer 13, the second buffer 14, and the second component 12. The copy/access controller 15, 16, 17 is operable to copy data from the first buffer 13 to the second buffer 14 when the first buffer 13 is substantially full. It is also operable to prompt the second component 12 to access the second buffer 14 when the data is copied from the first buffer 13. The buffers can be random access memories or shift registers, and can be integrated onto the same semiconductor die as either the first or second component.

Description

    CROSS-REFERENCE TO COPENDING APPLICATION
  • This application claims the benefit of U.S. Provisional Application No. 60/126,079, filed on Mar. 25, 1999, the entire disclosure of which is hereby incorporated herein by reference.[0001]
  • FIELD OF THE INVENTION
  • The present invention relates to digital signal processing. More particularly, the present invention relates to a method and a circuit for interfacing a low clock rate component with a high clock rate component. [0002]
  • BACKGROUND OF THE INVENTION
  • In the field of digital signal processing, the need for interfacing a low clock rate component with a high clock rate component is very common. For example, in a digital still camera, real-time data from a charge-coupled device (CCD) is transferred to a high speed memory, such as a synchronous dynamic random access memory (SDRAM). For these purposes, “real-time” means that data is transferred at a rate fast enough to avoid a perceivable delay in operation of the system, in this example, a digital still camera. The CCD operates at a clock rate of about 12 MHz, while the SDRAM operates at a clock rate of about 54 MHz. To smooth the transfer of the real-time data flow, an interface between the low clock rate CCD and the high clock rate SDRAM is needed to accommodate the difference between the clock rates. [0003]
  • There are two primary prior art approaches for the interface of two components having different operating speeds: a First-In-First-out (FIFO) buffering configuration and a dual-port memory buffering configuration. [0004]
  • A diagram of a prior art FIFO configuration is shown in FIG. 1. FIFO comprises a [0005] memory 2 that is accessible by the data source 4 anytime there is space available and is accessible by the destination 6 anytime there is data available from the source. FIFO also comprises hardware control logic 8, such as a read/write access pointer controller, to control the access to the FIFO by both the data source and the destination so as to ensure that the data will be transferred correctly. In the case that the clock rate of the data source is higher than that of the destination, the control logic must detect when the memory of the FIFO is full and send a signal to the data source, if the memory is detected as full, to hold the data transmitted from the source until the memory is detected as nearly empty. In the other case when the clock rate of the destination is higher than that of the data source, the control logic must detect when the memory of the FIFO is empty or nearly empty and send a signal to the destination, if the memory is detected as empty or nearly empty, to hold the access to the FIFO by the destination until the memory is detected as full. This operation requires relatively complex control logic and a relatively long timing delay, which slows down the performance of the component with the higher clock rate. Such a solution is practical only if using a slow clock source.
  • Dual-port memory circuits (i.e. a memory array accessible by two ports) are a more versatile form of time domain boundary buffer. The read and write operations of a dual-port buffer are based on address rather than write order, thereby allowing the reading of data in a different order than it was written in, for example. Lock-outs are used in a dual-port buffer to prevent reading from a memory element while it is being written. Dual-port buffers can be arranged to not slow down the performance of the component with the higher clock rate if the read/write operations are coordinated properly. Unfortunately, the implementation of a dual-port buffer is more complicated than that of a FIFO and is difficult to integrate into an integrated circuit die. Hence, a dual port memory is typically used as a discrete component, adding to system size and complexity. In addition, the manufacturing costs of dual-port buffers are comparatively higher than single-port memory circuits. [0006]
  • There is therefore a need in the industry for a cost-effective interface solution that allows real-time data transfer between two components having different clock rates. [0007]
  • SUMMARY OF THE INVENTION
  • In one embodiment of the invention, a circuit for interfacing between a first component operating at a first clock rate and a second component operating at a second clock rate, wherein the second clock rate is higher than the first clock rate, is disclosed. The circuit comprises a first buffer coupled to the first component; a second buffer coupled to the second component; and a copy/access controller connected to the first buffer, the second buffer, and the second component. The copy/access controller is operable to copy data from the first buffer to the second buffer when the first buffer is substantially full. It is also operable to prompt the second component to access the second buffer when the data is copied from the first buffer. The buffers can be random access memories or shift registers, and can be integrated onto the same semiconductor die as either the first or second component. [0008]
  • In another embodiment of the invention, a circuit for transferring a real-time data flow from a first component operable at a first clock rate to a second component operable at a second clock rate is disclosed, wherein the second clock rate is higher than the first clock rate. The circuit comprises a first clock signal source of the first clock rate; a second clock signal source of the second clock rate; a first buffer operable at either the first clock rate or the second clock rate and coupled to the first component and the second component; a second buffer operable at either the first clock rate or the second clock rate and coupled to the first component and the second component. The circuit also includes a clock switch coupled to the first buffer and to the second buffer and coupled to the first and second clock signal sources. The clock switch is operable to couple the first clock signal source to either the first buffer or the second buffer and is operable to couple the second clock signal source to the other of the first buffer and the second buffer when one of the buffers is substantially full. [0009]
  • An advantage of the invention is that it provides an interface between two different speed components using cost-effective single port memory circuits rather than dual port memories. [0010]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Other aspects and advantages of the present invention will become apparent from the following descriptions taken in conjunction with the accompanying drawings, wherein: [0011]
  • FIG. 1 shows a prior art FIFO configuration; [0012]
  • FIG. 2 shows a block diagram of a first embodiment of the present invention; [0013]
  • FIG. 3 shows a block diagram of a clock switching circuit of said first embodiment of the present invention; [0014]
  • FIG. 4 shows a block diagram of a second embodiment of the present invention; and [0015]
  • FIG. 5 shows a block diagram of copy/access circuitry of said second embodiment of the present invention. [0016]
  • DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
  • A ping-pong buffer generally comprises two memory elements that can be written to and read from alternately. In the usual situation, one memory element (e.g. the “ping” buffer) is filled with data while the other memory element (e.g. the “pong” buffer) has its data read by another component. This eliminates the delay that would occur if the incoming data, for example, had to be suspended while the data in the buffer is being read. The ability of ping-pong buffers to handle uninterrupted streams of data can be used as a solution for interfacing electronic components having two different operating speeds or clock rates. [0017]
  • Reference now will be made in detail to the preferred embodiments of the present invention as illustrated in the accompanying drawings in which like reference numerals designate like or corresponding elements throughout the drawings. [0018]
  • FIG. 2 illustrates a first embodiment of the present invention, wherein a ping-[0019] pong buffer 10 is used as an interface between a low clock rate component 11 (e.g. a CCD operable at about 12 MHz or a TV data output operable at 13.5 MHz) and a high clock rate component 12 (e.g. an SDRAM operable at about 54 MHz) in a real-time application. The ping-pong buffer 10 comprises a ping buffer 13, a pong buffer 14 and a clock switch 15. The buffers can be any size, such as 8 by 32-bits for example, and comprise a memory device such as a shift register comprising D Flip-Flops or a RAM. The clock rate of the ping buffer 13 can be switched between a clock signal source (not shown) at the clock rate of the component 11 and a clock signal source (not shown) at the clock rate of the component 12. The ping buffer 13 can be accessed by the component 11 if it is operating at the clock rate of the component 11, and it can be accessed by the component 12 if it is operating at the clock rate of the component 12. Access between the components 11 and 12 and the ping 13 and pong 14 buffers can be controlled using an address pointer controller 16 and a comparator 17. Similarly, the clock rate of the pong buffer 14 can also be switched between the clock rate of the component 11 and the clock rate of the component 12. And when the pong buffer 14 is operating at the clock rate of the component 11, it can be accessed by the component 11, while if it is operating at the clock rate of the component 12, it can be accessed by the component 12. The clock switch 15 is coupled to both the ping buffer 13 and the pong buffer 14 and switches between the clock sources.
  • In one example, the [0020] ping buffer 13 operates at the clock rate of the component 11 and is receiving a real-time data flow from the component 11. When the ping buffer 13 is full, the clock switch 15 switches from the clock signal source for the clock rate of the ping buffer 13 to clock signal source for the clock rate of the component 12 and switches the clock signal source for the clock rate of the pong buffer 14 to the clock signal source for the clock rate of the component 11, such that the component 12 can obtain the data from the ping buffer 13 and the pong buffer 14 can continue receiving the real-time data flow from the component 11. Similarly, when the pong buffer 14 is full, the clock switch 15 will again exchange the clock rates of the ping buffer 13 and the pong buffer 14 to let the component 12 obtain data from the pong buffer 14 and let the ping buffer 13 continue receiving real-time data flow from component 11.
  • To determine whether the [0021] ping buffer 13 or the pong buffer 14 is full or not, the ping-pong buffer 10 may include a counter. A predetermined number corresponding to the capacity of each of the ping buffer 13 and the pong buffer 14 is set in the counter. At first, the counter is set to zero. In addition, each time the clock rates of the ping buffer 13 and the pong buffer 14 are switched, the counter is reset to zero. When each vacancy of the ping buffer 13 or the pong buffer 14 is occupied by a datum from the component 11, the counter is increased by one. When the counter reaches the predetermined number, the clock switch 15 executes the switching of the clock rates of the ping buffer 13 and the pong buffer 14. In some applications, the predetermined number may be set to correspond to the condition that the ping buffer 13 or the pong buffer 14 is nearly full but not completely full, to prevent the switching of clock rates from causing interruptions to the receiving of the real-time data flow. In brief, the switching of clock rates is executed when one of the ping buffer 13 and the pong buffer 14 that is receiving data from the component 11 is substantially full (i.e., the buffer is full or nearly full). In addition, the predetermined numbers corresponding to the capacities of the ping buffer 13 and the pong buffer 14 respectively may be different if the capacities of the ping buffer 13 and the pong buffer 14 are different.
  • FIG. 3 shows one method for switching between the [0022] components 11 and 12 and the buffers 13 and 14. The output of a pointer counter 16 indicates which buffer 13 or 14 is accessible by a component at a given time. Once the counter value is equal to the buffer size (as determined by comparator 17), the comparator issues a signal to switch 15 so that the component 11 or 12 can access the other buffer 13 or 14. The switch also reverses the connection of the two different clock sources to the buffers 13 and 14 at this time.
  • The circuit of the ping-[0023] pong buffer 10 of the present invention is much simpler than that of a FIFO or a dual-port buffer and can be more easily integrated onto the same semiconductor die as either the component 11 or the component 12. A reason for this is that in the ping-pong buffer approach, the components 11 and 12 do not require any status feedback from the ping or pong buffers. The buffer operation depends only on the passive counter and comparator logic. The components 11 and 12 can therefore read or write without stopping or slowing the data transfer to allow for status logic delay. Conversely, in the FIFO approach the FIFO and high and low clock rate components handshake and operate in accordance with a FULL/EMPTY flag. Handshake logic is performed with decision circuits in both the FIFO and the high and low clock rate components, a more complex and space-consuming configuration than is required in the ping-pong buffer implementation. The dual-port memory approach suffers from the same complexity drawbacks, but also has the added disadvantage of the inherently higher cost of the memory itself.
  • FIG. 4 illustrates a second embodiment of the present invention wherein a ping-[0024] pong buffer 20 is used as an interface between a low clock rate component 21 and a high clock rate component 22. As compared with the first embodiment, the structure and mechanism of the second embodiment is further simplified because the clock switch is eliminated and each buffer need only be operable at a single clock rate. Operating a component at a single clock rate has the advantage of eliminating potential uncertainty that can result from phase delays between multiple clock sources.
  • The ping-[0025] pong buffer 20 of the second embodiment comprises a ping buffer 23, a copy/access controller 24 and a pong buffer 25. The ping buffer 23 is used for receiving data from the component 21 and operates at the clock rate of the component 21. The pong buffer 25 is accessed by the component 22 and operates at the clock rate of the component 22. When the ping buffer 23 is full, the copy/access controller 24 executes a copy operation to copy data from the ping buffer 23 to the pong buffer 25. When the copy operation is completed, the copy/access controller 24 sends a signal to the component 22 to let the component 22 obtain data from the pong buffer 25, and at the same time, the ping buffer 23 continues receiving data from the component 21. As with the first embodiment mentioned above, the second embodiment circuit can include a counter to indicate when the ping buffer 23 is full or nearly-full.
  • FIG. 5 is a schematic diagram of a copy/access controller. [0026] Access counter 27 is increased by one when data shifts from one D Flip-Flop 29 to the next D Flip-Flop 31 in ping buffer 23. Once data shifts to the end of the ping buffer (i.e. to D Flip-Flop 33), the counter 27 value is equal to the buffer size. Comparator 35 then generates a load signal to COPY logic 37 to allow the data in ping buffer 23 to be copied to pong buffer 25. The copy operation takes one cycle of the low clock signal.
  • In another embodiment of the invention, each of the [0027] ping buffer 23 and the pong buffer 25 of the second embodiment can be implemented by using a RAM. This approach is slightly more complicated since data addresses and data address logic are needed in the copy operation between the two memories.
  • The technical features and technical contents of the present invention have been fully disclosed as above. However, various modifications or replacements can be made by people skilled in the art based on the disclosure and teaching of the present invention without departing from the spirit of the present invention. Therefore, the scope of the present invention shall not be limited to the above-disclosed embodiments and should include these modifications and replacements. [0028]

Claims (10)

What is claimed is:
1. A circuit for interfacing between a first component operating at a first clock rate and a second component operating at a second clock rate wherein said second clock rate is higher than said first clock rate, said circuit comprising:
a first buffer coupled to said first component;
a second buffer coupled to said second component;
a copy/access controller connected to said first buffer, said second buffer, and said second component and operable to copy data from said first buffer to said second buffer when said first buffer is substantially full, and further operable to prompt said second component to access said second buffer when said data is copied from said first buffer.
2. The circuit as set forth in claim 1, wherein both said first buffer and said second buffer are random-access memories.
3. The circuit as set forth in claim 1, wherein both said first buffer and said second buffer are shift registers.
4. The circuit as set forth in claim 1, wherein said circuit is integrated onto a semiconductor die with one of said first component or said second component.
5. A circuit for transferring a real-time data flow from a first component operable at a first clock rate to a second component operable at a second clock rate wherein said second clock rate is higher than said first clock rate, said circuit comprising:
a first clock signal source of said first clock rate;
a second clock signal source of said second clock rate;
a first buffer operable at either said first clock rate or said second clock rate and coupled to said first component and said second component;
a second buffer operable at either said first clock rate or said second clock rate and coupled to said first component and said second component;
a clock switch coupled to said first buffer and to said second buffer and coupled to said first and second clock signal sources, said clock switch being operable to couple said first clock signal source to either said first buffer or said second buffer and operable to couple said second clock signal source to the other of said first buffer and said second buffer when one of said buffers is substantially full.
6. The circuit as set forth in claim 5, wherein said circuit is integrated onto the same semiconductor die as one of said first component or said second component.
7. A method for interfacing between a first component operable at a first clock rate and a second component operable at a second clock rate wherein said second clock rate is higher than said first clock rate, comprising the steps of:
transferring data from said first component to a first buffer operable at said first clock rate;
copying data from said first buffer to a second buffer operable at said second clock rate when said first buffer is substantially full; and
prompting said second component to access said data in said second buffer when said copying step is completed.
8. The method as set forth in claim 7, wherein both said first buffer and said second buffer are shift-register structures.
9. The method as set forth in claim 7, wherein both said first buffer and said second buffer are random access memories.
10. The method as set forth in claim 7, wherein said first buffer and said second buffer are both integrated onto the same semiconductor die as one of said first component or said second component.
US10/323,435 1999-03-25 2002-12-18 Interface between different clock rate components Abandoned US20030079059A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/323,435 US20030079059A1 (en) 1999-03-25 2002-12-18 Interface between different clock rate components

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12607999P 1999-03-25 1999-03-25
US09/535,226 US7356624B1 (en) 1999-03-25 2000-03-24 Interface between different clock rate components
US10/323,435 US20030079059A1 (en) 1999-03-25 2002-12-18 Interface between different clock rate components

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/535,226 Division US7356624B1 (en) 1999-03-25 2000-03-24 Interface between different clock rate components

Publications (1)

Publication Number Publication Date
US20030079059A1 true US20030079059A1 (en) 2003-04-24

Family

ID=26824264

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/535,226 Expired - Fee Related US7356624B1 (en) 1999-03-25 2000-03-24 Interface between different clock rate components
US10/323,435 Abandoned US20030079059A1 (en) 1999-03-25 2002-12-18 Interface between different clock rate components

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/535,226 Expired - Fee Related US7356624B1 (en) 1999-03-25 2000-03-24 Interface between different clock rate components

Country Status (1)

Country Link
US (2) US7356624B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040193750A1 (en) * 2003-03-28 2004-09-30 Jiin Lai Method and related apparatus for controlling a peripheral device to transfer data to a bus
US20040260903A1 (en) * 2003-06-23 2004-12-23 Muraleedhara Navada Ping-pong buffer system having a buffer to store a subset of data from a data source
US20050160205A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method, apparatus and program storage device for managing dataflow through a processing system
US20110191619A1 (en) * 2010-01-30 2011-08-04 Mosys Inc. Reducing Latency in Serializer-Deserializer Links
CN102184084A (en) * 2011-04-15 2011-09-14 中国科学院长春光学精密机械与物理研究所 Method for real-time synthesis of image data output by high-resolution multi-tap planar array CCD (Charge Coupled Device)
CN116090406A (en) * 2023-04-07 2023-05-09 湖南国科微电子股份有限公司 Random verification method and device for ping-pong configuration circuit, upper computer and storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3344401B2 (en) * 2000-03-03 2002-11-11 日本電気株式会社 Fluctuation buffer controller
CN102622643B (en) * 2011-12-19 2015-12-16 华为终端有限公司 A kind of safe digital card by wireless network transmissions data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US5224213A (en) * 1989-09-05 1993-06-29 International Business Machines Corporation Ping-pong data buffer for transferring data from one data bus to another data bus
US5519701A (en) * 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463443A (en) * 1979-07-24 1984-07-31 The United States Of America As Represented By The Secretary Of The Air Force Data buffer apparatus between subsystems which operate at differing or varying data rates
FR2536200B1 (en) * 1982-11-15 1987-01-16 Helen Andre TEMPORARY DATA STORAGE UNIT ORGANIZED IN A HOLD
JP2678283B2 (en) * 1988-03-15 1997-11-17 株式会社日立製作所 Data communication controller
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
DE69223104T2 (en) * 1991-08-27 1998-04-02 Toshiba Kawasaki Kk Device for preventing the destruction of computer data read from the storage unit
CA2106271C (en) * 1993-01-11 2004-11-30 Joseph H. Steinmetz Single and multistage stage fifo designs for data transfer synchronizers
US5644787A (en) * 1993-08-03 1997-07-01 Seiko Epson Corporation Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter
US5982772A (en) * 1995-11-06 1999-11-09 Sun Microsystems, Inc. Cell interface block partitioning for segmentation and re-assembly engine
US5884099A (en) * 1996-05-31 1999-03-16 Sun Microsystems, Inc. Control circuit for a buffer memory to transfer data between systems operating at different speeds

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298954A (en) * 1979-04-30 1981-11-03 International Business Machines Corporation Alternating data buffers when one buffer is empty and another buffer is variably full of data
US5224213A (en) * 1989-09-05 1993-06-29 International Business Machines Corporation Ping-pong data buffer for transferring data from one data bus to another data bus
US5519701A (en) * 1995-03-29 1996-05-21 International Business Machines Corporation Architecture for high performance management of multiple circular FIFO storage means

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011390A1 (en) * 2003-03-28 2007-01-11 Jiin Lai Method and related apparatus for controlling a peripheral device to transfer data to a bus
US20040193750A1 (en) * 2003-03-28 2004-09-30 Jiin Lai Method and related apparatus for controlling a peripheral device to transfer data to a bus
US7124214B2 (en) * 2003-03-28 2006-10-17 Via Technologies Inc. Method and related apparatus for controlling a peripheral device to transfer data to a bus
US20040260903A1 (en) * 2003-06-23 2004-12-23 Muraleedhara Navada Ping-pong buffer system having a buffer to store a subset of data from a data source
US7111093B2 (en) * 2003-06-23 2006-09-19 Intel Corporation Ping-pong buffer system having a buffer to store a subset of data from a data source
US7404017B2 (en) * 2004-01-16 2008-07-22 International Business Machines Corporation Method for managing data flow through a processing system
US20050160205A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method, apparatus and program storage device for managing dataflow through a processing system
US20080313368A1 (en) * 2004-01-16 2008-12-18 International Business Machines Corporation Apparatus and program storage device for managing dataflow through a processing system
US7657669B2 (en) * 2004-01-16 2010-02-02 International Business Machines Corporation Apparatus and program storage device for managing dataflow through a processing system
US20110191619A1 (en) * 2010-01-30 2011-08-04 Mosys Inc. Reducing Latency in Serializer-Deserializer Links
US8527676B2 (en) * 2010-01-30 2013-09-03 Mosys, Inc. Reducing latency in serializer-deserializer links
US8832336B2 (en) * 2010-01-30 2014-09-09 Mosys, Inc. Reducing latency in serializer-deserializer links
CN102184084A (en) * 2011-04-15 2011-09-14 中国科学院长春光学精密机械与物理研究所 Method for real-time synthesis of image data output by high-resolution multi-tap planar array CCD (Charge Coupled Device)
CN116090406A (en) * 2023-04-07 2023-05-09 湖南国科微电子股份有限公司 Random verification method and device for ping-pong configuration circuit, upper computer and storage medium

Also Published As

Publication number Publication date
US7356624B1 (en) 2008-04-08

Similar Documents

Publication Publication Date Title
JP3856696B2 (en) Configurable synchronizer for double data rate synchronous dynamic random access memory
KR100337052B1 (en) Dual port fifo with synchronized read and write pointers
JP2000099193A (en) Device and method for synchronization, and interface circuit
EP0905610B1 (en) Dual port buffer
US20050117446A1 (en) Semiconductor memory device and semiconductor memory device control method
US7197582B2 (en) Low latency FIFO circuit for mixed clock systems
JP2011101390A (en) Latency insensitive fifo signaling protocol
US7356624B1 (en) Interface between different clock rate components
TW201839763A (en) Managing parallel access to a plurality of flash memories
US7085874B2 (en) Synchronous/asynchronous bridge circuit for improved transfer of data between two circuits
US7069406B2 (en) Double data rate synchronous SRAM with 100% bus utilization
US8176353B2 (en) Method for the data transfer between at least two clock domains
US20060143410A1 (en) Method And Related Apparatus For Realizing Two-Port Synchronous Memory Device
US7280628B1 (en) Data capture for a source synchronous interface
JP2561750B2 (en) Pulse generation circuit
US7096375B2 (en) Data transfer circuit between different clock regions
US20060136620A1 (en) Data transfer interface apparatus and method thereof
KR100353816B1 (en) receiving device for communication
US6744833B1 (en) Data resynchronization between modules sharing a common clock
JP3950661B2 (en) Data transmission device
KR20040034711A (en) Digital line delay using a single port memory
JPH0324844A (en) Packet transfer system
WO2023166201A1 (en) Interface circuit portions
JPH06266638A (en) Semiconductor memory
JPH08153033A (en) Data transfer circuit

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION