IP Library Granted Patent US 11,532,338
Granted Patent B1
US 11,532,338 · App. 17/223,042 · Granted Dec 20, 2022

Mediating between asynchronous clock domains while preventing false indications of FIFO occupancy

Inventors: Ehud Eliaz (Tel Aviv, IL); Yamin Mokatren (Um El Gnam Shibli, IL)
Assignee: HABANA LABS LTD.
G11C7/225G06F13/1689G11C7/222G11C7/1072
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 11,532,338
App. No.
17/223,042
Granted
Dec 20, 2022
Kind
B1
Abstract

An electronic circuit includes a memory buffer and control logic. The memory buffer is configured to transfer data from a first domain to a second domain of the circuit, the first and the second domains operate in synchronization with respective clock signals. The control logic is configured to maintain a write indicator in the first domain indicative of a next write position in the memory buffer for storing data, to maintain a read indicator in the second domain indicative of a next read position in the memory buffer for retrieving the stored data, to generate in the second domain, based on the write and the read indicators, a first signal that is indicative of whether the memory buffer has data for reading or has become empty, and retain the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

Claims (72)

1. An electronic circuit, comprising:

a memory buffer configured to transfer data from a first domain of the circuit to a second domain of the circuit, wherein the first and the second domains operate in synchronization with respective first and second clock signals; and

control logic, configured to:

maintain a write indicator in the first domain indicative of a next write position in the memory buffer for storing data;

maintain a read indicator in the second domain indicative of a next read position in the memory buffer for retrieving the stored data;

generate in the second domain, based at least on the write indicator and on the read indicator, a first signal that is indicative of whether the memory buffer has data for reading or has become empty;

generate in the second domain, a second signal that falsely indicates that the memory buffer is not empty, and mask the second signal using the first signal; and

retain the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

2. The electronic circuit according to claim 1 , wherein the control logic is configured to retain the first signal in the state that indicates that the memory buffer has become empty, regardless of a first event comprising resetting the first domain including the write indicator and of a second event comprising resetting the second domain including the read indicator.

3. The electronic circuit according to claim 1 , wherein the control logic is configured to prevent a false indication of the first signal that the memory buffer is not empty even when the memory buffer is actually empty.

4. The electronic circuit according to claim 3 , wherein the control logic is configured to prevent the false indication regardless of any backend design considerations in determining a physical layout of reset signals in the electronic circuit.

5. The electronic circuit according to claim 3 , wherein the control logic is configured to prevent the false indication by resetting both the first domain and the second domain simultaneously.

6. The electronic circuit according to claim 5 , wherein the control logic is configured to prevent the false indication regardless of a timing skew between a first time of actual resetting of the first domain and a second time of actual resetting of the second domain.

7. The electronic circuit according to claim 1 , wherein the control logic is configured to generate the first signal using a storage element in the first domain, by forcing the storage element to a state indicative of the memory buffer being empty, in response to resetting the first domain, and determining a state of the storage element when the first domain is operative, based on (i) tracking write operations to the memory buffer, and (ii) the write indicator and the read indicator.

8. The electronic circuit according to claim 1 , wherein the read indicator comprises multiple binary storage elements, and wherein the control logic is configured to toggle only one of the binary storage elements in response to a read operation from the memory buffer.

9. The electronic circuit according to claim 1 , wherein the write indicator comprises multiple binary storage elements, and wherein the control logic is configured to toggle only one of the binary storage elements in response to a write operation to the memory buffer.

10. The electronic circuit according to claim 1 , wherein the first clock signal and the second clock signal are asynchronous relative to one another.

11. A method, comprising:

in an electronic circuit that transfers data from a first domain of the circuit to a second domain of the circuit using a memory buffer, wherein the first and the second domains operate in synchronization with respective first and second clock signals,

maintaining in the first domain a write indicator indicative of a next write position in the memory buffer for storing data;

maintaining in the second domain a read indicator indicative of a next read position in the memory buffer for retrieving the stored data;

generating in the second domain, based at least on the write indicator and on the read indicator, a first signal that is indicative of whether the memory buffer has data for reading or has become empty;

generating in the second domain, a second signal that falsely indicates that the memory buffer is not empty, and masking the second signal using the first signal; and

retaining the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

12. The method according to claim 11 , wherein retaining the first signal comprises retaining the first signal in the state that indicates that the memory buffer has become empty, regardless of a first event comprising resetting the first domain including the write indicator and of a second event comprising resetting the second domain including the read indicator.

13. The method according to claim 11 , and comprising preventing a false indication of the first signal that the memory buffer is not empty even when the memory buffer is actually empty.

14. The method according to claim 13 , wherein preventing the false indication comprises preventing the false indication regardless of any backend design considerations in determining a physical layout of reset signals in the electronic circuit.

15. The method according to claim 13 , wherein preventing the false indication comprises resetting both the first domain and the second domain simultaneously.

16. The method according to claim 15 , wherein preventing the false indication comprises preventing the false indication regardless of a timing skew between a first time of actual resetting of the first domain and a second time of actual resetting of the second domain.

17. The method according to claim 11 , wherein generating the first signal comprises forcing a storage element in the first domain to a state indicative of the memory buffer being empty in response to resetting the first domain, and determining a state of the storage element when the first domain is operative, based on (i) tracking write operations to the memory buffer, and (ii) the write indicator and the read indicator.

18. The method according to claim 11 , wherein the read indicator comprises multiple binary storage elements, and comprising toggling only one of the binary storage elements in response to a read operation from the memory buffer.

19. The method according to claim 11 , wherein the write indicator comprises multiple binary storage elements, and wherein the control logic is configured to toggle only one of the binary storage elements in response to a write operation to the memory buffer.

20. The method according to claim 11 , wherein the first clock signal and the second clock signal are asynchronous relative to one another.

21. An electronic circuit, comprising:

a memory buffer configured to transfer data from a first domain of the circuit to a second domain of the circuit, wherein the first and the second domains operate in synchronization with respective first and second clock signals; and

control logic, configured to:

maintain a write indicator in the first domain indicative of a next write position in the memory buffer for storing data;

maintain a read indicator in the second domain indicative of a next read position in the memory buffer for retrieving the stored data;

generate in the second domain, a first signal that is indicative of whether the memory buffer has data for reading or has become empty, by forcing the storage element to a state indicative of the memory buffer being empty, in response to resetting the first domain, and determining a state of the storage element when the first domain is operative, based on (i) tracking write operations to the memory buffer, and (ii) the write indicator and the read indicator; and

retain the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

22. A method, comprising:

in an electronic circuit that transfers data from a first domain of the circuit to a second domain of the circuit using a memory buffer, wherein the first and the second domains operate in synchronization with respective first and second clock signals,

maintaining in the first domain a write indicator indicative of a next write position in the memory buffer for storing data;

maintaining in the second domain a read indicator indicative of a next read position in the memory buffer for retrieving the stored data;

generating in the second domain, using a storage element in the first domain, a first signal that is indicative of whether the memory buffer has data for reading or has become empty, by forcing the storage element to a state indicative of the memory buffer being empty, in response to resetting the first domain, and determining a state of the storage element when the first domain is operative, based on (i) tracking write operations to the memory buffer, and (ii) the write indicator and the read indicator; and

retaining the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

23. An electronic circuit, comprising:

a memory buffer configured to transfer data from a first domain of the circuit to a second domain of the circuit, wherein the first and the second domains operate in synchronization with respective first and second clock signals; and

control logic, configured to:

maintain a write indicator in the first domain indicative of a next write position in the memory buffer for storing data;

maintain a read indicator in the second domain indicative of a next read position in the memory buffer for retrieving the stored data, the read indicator comprising multiple binary storage elements, and toggle only one of the binary storage elements in response to a read operation from the memory buffer;

generate in the second domain, based at least on the write indicator and on the read indicator, a first signal that is indicative of whether the memory buffer has data for reading or has become empty; and

retain the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

24. A method, comprising:

in an electronic circuit that transfers data from a first domain of the circuit to a second domain of the circuit using a memory buffer, wherein the first and the second domains operate in synchronization with respective first and second clock signals,

maintaining in the first domain a write indicator indicative of a next write position in the memory buffer for storing data;

maintaining in the second domain a read indicator indicative of a next read position in the memory buffer for retrieving the stored data, the read indicator comprising multiple binary storage elements, and toggling only one of the binary storage elements in response to a read operation from the memory buffer;

generating in the second domain, based at least on the write indicator and on the read indicator, a first signal that is indicative of whether the memory buffer has data for reading or has become empty; and

retaining the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

25. An electronic circuit, comprising:

a memory buffer configured to transfer data from a first domain of the circuit to a second domain of the circuit, wherein the first and the second domains operate in synchronization with respective first and second clock signals; and

control logic, configured to:

maintain a write indicator in the first domain indicative of a next write position in the memory buffer for storing data, the write indicator comprising multiple binary storage elements, and toggle only one of the binary storage elements in response to a write operation to the memory buffer;

maintain a read indicator in the second domain indicative of a next read position in the memory buffer for retrieving the stored data;

generate in the second domain, based at least on the write indicator and on the read indicator, a first signal that is indicative of whether the memory buffer has data for reading or has become empty; and

retain the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

26. A method, comprising:

in an electronic circuit that transfers data from a first domain of the circuit to a second domain of the circuit using a memory buffer, wherein the first and the second domains operate in synchronization with respective first and second clock signals,

maintaining in the first domain a write indicator indicative of a next write position in the memory buffer for storing data, the write indicator comprising multiple binary storage elements, and toggling only one of the binary storage elements in response to a write operation to the memory buffer;

maintaining in the second domain a read indicator indicative of a next read position in the memory buffer for retrieving the stored data;

generating in the second domain, based at least on the write indicator and on the read indicator, a first signal that is indicative of whether the memory buffer has data for reading or has become empty; and

retaining the first signal in a state that indicates that the memory buffer has become empty, until writing to the memory buffer resumes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2025
From: HABANA LABS LTD.
To: INTEL OVERSEAS FUNDING CORPORATION
Reel/Frame 073008/0642 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2021
From: ELIAZ, EHUD; MOKATREN, YAMIN
To: HABANA LABS LTD.
Reel/Frame 055830/0010 →
Cited By (1)
US 12,222,885