IP Library Granted Patent US 7,733,130
Granted Patent B2
US 7,733,130 · App. 12/043,935 · Granted Jun 8, 2010

Skew tolerant communication between ratioed synchronous clocks

Assignee: Oracle America, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,733,130
App. No.
12/043,935
Granted
Jun 8, 2010
Kind
B2
Abstract

A data communications system is disclosed. The data communications system comprises two clock domains. Each of the clock domains are coupled to receive a source clock signal. The first clock domain includes a first clock signal and the second clock domain includes a second clock signal, each of the first clock signal and the second clock signal are derived from the source clock signal. The first clock signal has a frequency which is different from that of the second clock signal. The system includes circuitry configured to generate a pulse indicative of when data transferred between the first clock domain and the second clock domain may be latched. Data is only latched when the pulse is asserted and on a given edge of the first clock signal, and the circuitry is configured to generate the pulse such that the given edge occurs at approximately a position corresponding to a middle of a period of the second clock signal.

Claims (51)

1. A data communications system comprising:

a source clock signal;

a first clock domain comprising a first clock signal which is derived from the source clock signal, wherein the first clock signal has a first frequency;

a second clock domain comprising a second clock signal which is derived from the source clock signal, wherein the second clock signal has a second frequency which is less than the first frequency; and

circuitry configured to generate a pulse indicative of when data transferred between the first clock domain and the second clock domain may be latched;

wherein said data is only latched when said pulse is asserted and on a given edge of the first clock signal, and wherein said circuitry is configured to generate said pulse such that said given edge occurs at approximately a position corresponding to a middle of a period of the second clock signal;

circuitry configured to generate an additional pulse, wherein when said pulse is asserted and said additional pulse is not asserted, said data is always latched on a same edge of the first clock signal, either a positive edge or a negative edge.

2. The system as recited in claim 1 , wherein said data is latched on only a positive or negative edge of the first clock signal, but not both.

3. The system as recited in claim 1 , wherein when both said pulse and said additional pulse are asserted, said data is latched on an edge different from said same edge.

4. The system as recited in claim 1 , wherein both the first frequency and the second frequency are an integer multiple of a frequency of the source clock signal, and the first frequency is not an integer multiple of the second frequency.

5. The system as recited in claim 1 , wherein said circuitry includes a sync pulse generator configured to generate said pulse, wherein said sync pulse generator includes a counter configured to repeatedly count a given number of cycles of the first clock signal and detect when selected counts occur.

6. The system as recited in claim 5 , wherein a ratio of said first frequency to said second frequency is N:M, wherein said given number of cycles corresponds to N, and the number of selected counts detected corresponds to M.

7. The system as recited in claim 6 , wherein said circuitry is further configured to detect selected values of the selected counts and generate an additional pulse in response thereto.

8. A method comprising:

receiving a source clock signal;

generating a first clock signal with a first frequency in a first clock domain, wherein the first clock signal is derived from the source clock signal;

generating a second clock signal with a second frequency in a second clock domain, wherein the second clock signal is derived from the source clock signal, and wherein the second frequency is less than the first frequency;

generating a pulse indicative of when data transferred between the first clock domain and the second clock domain may be latched;

wherein said data is only latched when said pulse is asserted and on a given edge of the first clock signal, and wherein said method further comprises generating said pulse such that said given edge occurs at approximately a position corresponding to a middle of a period of the second clock signal;

generating an additional pulse, wherein when said pulse is asserted and said additional pulse is not asserted, said data is always latched on a same edge of the first clock signal, either a positive edge or a negative edge.

9. The method as recited in claim 8 , wherein said data is latched on only a positive or negative edge of the first clock signal, but not both.

10. The method as recited in claim 8 , wherein when both said pulse and said additional pulse are asserted, said data is latched on an edge different from said same edge.

11. The method as recited in claim 8 , wherein both the first frequency and the second frequency are an integer multiple of a frequency of the source clock signal, and the first frequency is not an integer multiple of the second frequency.

12. The system as recited in claim 8 , wherein generating said pulse comprise repeatedly counting a given number of cycles of the first clock signal and detecting when selected counts occur.

13. The method as recited in claim 12 , wherein a ratio of said first frequency to said second frequency is N:M, wherein said given number of cycles corresponds to N, and the number of selected counts detected corresponds to M.

14. The method as recited in claim 13 , wherein further comprising detecting selected values of the selected counts and generating an additional pulse in response thereto.

15. An apparatus for use in a multiple clock domain system, the apparatus comprising:

circuitry configured to generate a first clock signal derived from a source clock signal, wherein the first clock signal has a first frequency; and

a pulse generation unit coupled to receive the first clock signal, wherein the pulse generation unit is configured to:

repeatedly count a given number of cycles of the first clock signal; and

generate a pulse indicative of when data being transferred between clock domains may be latched;

wherein said data is only latched when said pulse is asserted and on a given edge of the first clock signal, and wherein said circuitry is configured to generate said pulse such that said given edge occurs at approximately a position corresponding to a middle of a period of the second clock signal;

circuitry configured to generate an additional pulse, wherein when said pulse is asserted and said additional pulse is not asserted, said data is always latched on a same edge of the first clock signal, either a positive edge or a negative edge.

16. A data communications system comprising:

a source clock signal;

a first clock domain comprising a first clock signal which is derived from the source clock signal, wherein the first clock signal has a first frequency;

a second clock domain comprising a second clock signal which is derived from the source clock signal, wherein the second clock signal has a second frequency which is less than the first frequency; and

circuitry configured to generate a pulse indicative of when data transferred between the first clock domain and the second clock domain may be latched;

wherein said data is only latched when said pulse is asserted and on a given edge of the first clock signal, and wherein said circuitry is configured to generate said pulse such that said given edge occurs at approximately a position corresponding to a middle of a period of the second clock signal;

wherein said circuitry includes a sync pulse generator configured to generate said pulse, wherein said sync pulse generator includes a counter configured to repeatedly count a given number of cycles of the first clock signal and detect when selected counts occur;

wherein a ratio of said first frequency to said second frequency is N:M, wherein said given number of cycles corresponds to N, and the number of selected counts detected corresponds to M;

wherein said circuitry is further configured to detect selected values of the selected counts and generate an additional pulse in response thereto.

17. A method comprising:

receiving a source clock signal;

generating a first clock signal with a first frequency in a first clock domain, wherein the first clock signal is derived from the source clock signal;

generating a second clock signal with a second frequency in a second clock domain, wherein the second clock signal is derived from the source clock signal, and wherein the second frequency is less than the first frequency;

generating a pulse indicative of when data transferred between the first clock domain and the second clock domain may be latched;

wherein said data is only latched when said pulse is asserted and on a given edge of the first clock signal, and wherein said method further comprises generating said pulse such that said given edge occurs at approximately a position corresponding to a middle of a period of the second clock signal;

wherein generating said pulse comprise repeatedly counting a given number of cycles of the first clock signal and detecting when selected counts occur;

wherein a ratio of said first frequency to said second frequency is N:M, wherein said given number of cycles corresponds to N, and the number of selected counts detected corresponds to M; and

wherein further comprising detecting selected values of the selected counts and generating an additional pulse in response thereto.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037306/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2008
From: HASSAN, MAHMUDUL; TZENG, TZUNGREN ALLAN
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020668/0023 →
Continuity (1)
Related Publication 20090225915A1 · Sep 10, 2009