IP Library Granted Patent US 8,930,664
Granted Patent B2
US 8,930,664 · App. 13/763,960 · Granted Jan 6, 2015

Method and apparatus for transferring data from a first domain to a second domain

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 8,930,664
App. No.
13/763,960
Granted
Jan 6, 2015
Kind
B2
Abstract

Data is written from a first domain to a FIFO memory buffer in a second domain. The first domain uses a first clock signal, the second domain uses a second clock signal and the memory buffer uses the first clock signal that is delivered alongside the data. The data is read from the memory buffer using the second clock signal. A read pointer is adjusted and synchronised with the delivered first clock signal. A token is generated using the delivered first clock signal, based on the read pointer. The token represents a capacity of the memory buffer having been made available. The token is passed to the first domain and synchronised with the first clock signal. The writing of data to the memory buffer is controlled based on a comparison between the synchronised token and a previously received token.

Claims (40)

1. A method of transferring data from a first domain to a second domain, the method comprising:

writing data from the first domain to a first-in first-out (FIFO) memory buffer in the second domain, the first domain operating using a first clock signal, and the second domain operating using a second clock signal that is different from the first clock signal, wherein the memory buffer operates using the first clock signal that is delivered alongside the data from the first domain to the second domain in a source synchronous manner;

reading, using the second clock signal, the data from the memory buffer;

adjusting a read pointer based on the reading of the data from the memory buffer;

synchronising the adjusted read pointer so that it is synchronous with the delivered first clock signal;

generating in the second domain, using the delivered first clock signal, a token representative of a capacity of the memory buffer having been made available, the token being based on at least the adjusted read pointer;

passing the token from the second domain to the first domain and synchronising the token using the first clock signal; and

comparing the synchronised token with a previously received token;

wherein the writing of data from the first domain to the memory buffer in the second domain is controlled based on at least said comparison.

2. A method according to claim 1 , wherein the token is encoded, before synchronisation, using a numbering format that has a Hamming distance of one between adjacent numbers.

3. A method according to claim 2 , wherein the encoded token is decoded after synchronisation.

4. A method according to claim 1 , wherein the read pointer is encoded before synchronisation using a numbering format that has a Hamming distance of one between adjacent numbers.

5. A method according to claim 4 , wherein the encoded read pointer is decoded after synchronisation.

6. A method according to claim 2 , wherein the numbering format is in the form of a two-bit Gray code.

7. A method according to claim 1 , wherein the generating of the token is based on the adjusted read pointer and a previously stored read pointer.

8. A method according to claim 1 , wherein the first clock signal has at least one characteristic that is different from a corresponding characteristic of the second clock signal, wherein the at least one characteristic is at least one of; a clock frequency and a clock phase.

9. A method according to claim 1 , wherein the token is generated using a finite state machine.

10. A method according to claim 1 , comprising adjusting a token counter based on the comparison of the received token and the previously received token.

11. A method according to claim 1 , wherein the first domain comprises a first power domain and the second domain comprises a second power domain.

12. A method according to claim 1 , wherein the first domain comprises a first voltage domain and the second domain comprises a second voltage domain.

13. Apparatus for transferring data from a first domain, the first domain being constructed and arranged to use a first clock signal, to a second domain, the second domain being constructed and arranged to use a second clock signal that is different from the first clock signal, the apparatus comprising:

a first-in first-out (FIFO) memory buffer located in the second domain;

a FIFO write module located in the first domain, the FIFO write module being constructed and arranged to write data to the FIFO memory buffer, wherein the memory butler operates using the first clock signal that is delivered alongside the data from the first domain to the second domain in a source synchronous manner;

a FIFO read module located in the second domain, the FIFO read module being constructed and arranged to: read, using the second clock signal, the data from the FIFO memory buffer; and adjust a read pointer based on the reading of the data from the FIFO memory buffer;

a first synchroniser module located in the second domain, the first synchroniser module being constructed and arranged to synchronise the adjusted read pointer with the delivered first clock signal;

a token generator module located in the second domain, the token generator module being constructed and arranged to generate, using the delivered first clock signal, a token representative of a capacity of the FIFO memory buffer having been made available, the token being based on at least the adjusted read pointer;

a second synchroniser module located in the first domain, the second synchroniser module being constructed and arranged to receive the token from the second domain and synchronise the token using the first clock signal; and

wherein the FIFO write module is constructed and arranged to compare the synchronised token with a previously received token;

wherein the writing of data from the first domain to the FIFO memory buffer in the second domain is controlled based on at least said comparison.

14. Apparatus according to claim 13 , wherein the token generator module is arranged to encode the generated token using a numbering format that has a Hamming distance of one between adjacent numbers.

15. Apparatus according to claim 14 , comprising a token decoder module constructed and arranged to decode the encoded generated token after synchronisation.

16. Apparatus according to claim 13 , comprising an encoding module constructed and arranged to encode the read pointer before synchronisation using a numbering format that has a Hamming distance of one between adjacent numbers.

17. Apparatus according to claim 16 , comprising a decoding module constructed and arranged to decode the encoded read pointer after synchronisation.

18. Apparatus according to claim 14 , wherein the numbering format is in the form of a two-bit Gray code.

19. Apparatus according to claim 13 , wherein the generating of the token is based on the adjusted read pointer and a previously stored read pointer.

20. Apparatus according to claim 13 , wherein the first clock signal has at least one characteristic that is different from a corresponding characteristic of the second clock signal, wherein the at least one characteristic is at least one of: a clock frequency and a clock phase.

21. Apparatus according to claim 13 , wherein the token generator module comprises a finite state machine constructed and arranged to generate the token.

22. Apparatus according to claim 13 , wherein the FIFO write module comprises a token counter constructed and arranged to update the token counter value based on the comparison of the received token and the previously received token.

23. Apparatus according to claim 13 , wherein the first domain comprises a first power domain and the second domain comprises a second power domain.

24. Apparatus according to claim 13 , wherein the first domain comprises a first voltage domain and the second domain comprises a second voltage domain.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY PREVIOUSLY RECORDED ON REEL 032086 FRAME 0389. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT FROM ONE OR BOTH ASSIGNORS ACCORDING TO PRIOR AGREEMENT.. Recorded Dec 18, 2017
From: RENESAS MOBILE CORPORATION
To: BROADCOM INTERNATIONAL LIMITED
Reel/Frame 046266/0231 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2014
From: BROADCOM INTERNATIONAL LIMITED
To: BROADCOM CORPORATION
Reel/Frame 032088/0794 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: RENESAS ELECTRONICS CORPORATION; RENESAS MOBILE CORPORATION
To: BROADCOM INTERNATIONAL LIMITED
Reel/Frame 032086/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2013
From: KULMALA, ARI TAPANI; SERTAMO, JAAKO ILMARI
To: RENESAS MOBILE CORPORATION
Reel/Frame 029789/0302 →