IP Library Granted Patent US 9,652,198
Granted Patent B2
US 9,652,198 · App. 14/812,933 · Granted May 16, 2017

FIFO buffer clean-up

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 9,652,198
App. No.
14/812,933
Granted
May 16, 2017
Kind
B2
Abstract

Systems and methods are disclosed for managing data entry buffers in a data storage device. A memory of the data storage device includes one or more data input ports. The device further includes a controller configured to receive a data entry over one of the data input ports and store the data entry in a first data structure (e.g., a FIFO data structure). The data entry is stored in the first data structure among other data entries received over various data input ports. The controller stores a data entry corresponding to the data entry stored in the first data structure in a second data structure. Entries in the second data structure include a valid bit field and one or more condition fields. The controller indicates, using a valid bit field of the second data structure data entry, that the corresponding data entry stored in the first data structure is valid.

Claims (59)

1. A device comprising:

a controller configured to:

receive a first data entry over a first input port;

store the first data entry in a first data structure in a memory;

store a second data entry corresponding to the first data entry in a second data structure in the memory, wherein the second data structure is separate from the first data structure, and wherein entries of the second data structure include a valid bit field; and

indicate, using the valid bit field of the second data entry in the second data structure, that the first data entry in the first data structure is valid.

2. The device of claim 1 , wherein the entries of the second data structure further include at least one condition field.

3. The device of claim 2 , wherein a condition value stored in the at least one condition field indicates that the first data entry was received over the first input port.

4. The device of claim 2 , wherein the at least one condition field is configured to store a port identification value.

5. The device of claim 1 , further configured to:

receive a third data entry over a second input port, the third data entry and first data entry being of a same type of data entry;

store the third data entry in the first data structure in the memory;

store a fourth data entry corresponding to the third data entry in the second data structure; and

indicate, using a valid bit field of the fourth data entry, that the third data entry is valid.

6. The device of claim 1 , further configured to:

receive a signal indicating that an event related at least in part to the first input port has occurred; and

in response, indicate, using the valid bit field of the second data entry, that the first data entry is invalid.

7. The device of claim 6 , further configured to, in response to receiving the signal indicating that the event related at least in part to the first input port has occurred, update valid bit fields of one or more additional entries of the second data structure to indicate that entries of the first data structure that were received over the first input port are invalid.

8. The device of claim 7 , configured to locate the valid bit fields to be updated using condition fields that indicate that the one or more additional entries were received over the first input port.

9. The device of claim 1 , further configured to:

receive a signal indicating that an event affecting a validity status of a subset of entries stored in the first data structure has occurred; and

in response, indicate, using valid bit fields of corresponding data entries associated with the subset of entries stored in the second data structure, that the subset of entries are invalid.

10. The device of claim 1 , wherein a first set of data entries stored in the first data structure comprise instructions, wherein the controller is further configured to:

determine whether each of the first set of data entries stored in the first data structure is valid by checking a valid bit field of each of a second set of data entries stored in the second data structure, each of the first set of data entries corresponding to one of the second set of data entries; and

execute only valid data entries of the first set of data entries.

11. The device of claim 1 , wherein the first data structure is a FIFO data structure.

12. A method of managing data in a data storage system, the method comprising:

receiving, by a controller, a first data entry of a first type over a first input port;

storing, by the controller, the first data entry in a first data structure stored in a memory array configured to store data entries of the first type;

storing, by the controller, a second data entry corresponding to the first data entry in a second data structure in the memory, wherein the second data structure is separate from the first data structure, wherein entries of the second data structure include a valid bit field; and

indicating, by the controller, using a valid bit field of the second data entry in the second data structure, that the first data entry in the first data structure is valid.

13. The method of claim 12 , further comprising:

receiving, by the controller, a third data entry of the first type over a second input port;

storing, by the controller, the third data entry in the first data structure;

storing, by the controller, a fourth data entry corresponding to the third data entry in the second data structure; and

indicating, by the controller, using a valid bit field of the fourth data entry, that the third data entry is valid.

14. The method of claim 12 , further comprising:

receiving, by the controller, a signal indicating that an event related at least in part to the first input port has occurred; and

indicating, by the controller, using the valid bit field of the second data entry, that the first data entry is invalid.

15. The method of claim 14 , further comprising updating, by the controller, valid bit fields of one or more additional entries of the second data structure to indicate that entries of the first data structure that were received over the first input port are invalid.

16. The method of claim 12 , further comprising:

receiving, by the controller, a signal indicating that an event affecting a validity status of a subset of entries stored in the first data structure has occurred, and

indicating, by the controller, using valid bit fields of corresponding data entries associated with the subset of entries stored in the second data structure, that the subset of entries are invalid.

17. The method of claim 12 , wherein a first set of data entries stored in the first data structure comprise instructions, the method further comprising:

determining, by the controller, whether each of the first set of data entries stored in the first data structure is valid by checking valid bit fields of each of a second set of data entries stored in the second data structure, each of the first set of data entries corresponding to one of the second set of data entries.

18. The method of claim 12 , wherein the first data structure is a FIFO data structure.

19. A data storage device comprising:

a memory;

a first input port; and

a controller configured to:

receive a first data entry over the first input port;

store the first data entry in a first data structure in the memory;

store a second data entry corresponding to the first data entry in a second data structure in the memory, wherein the second data structure is separate from the first data structure, and wherein entries of the second data structure include a valid bit field; and

indicate, using the valid bit field of the second data entry in the second data structure, that the first data entry in the first data structure is valid.

20. A non-transitory computer readable storage medium comprising instructions that, when executed, cause a controller to:

receive a first data entry over a first input port;

store the first data entry in a first data structure in a memory;

store a second data entry corresponding to the first data entry in a second data structure in the memory, wherein the second data structure is separate from the first data structure, and wherein entries of the second data structure include a valid bit field; and

indicate, using the valid bit field of the second data entry in the second data structure, that the first data entry in the first data structure is valid.

Assignments (8)
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2017
From: GAO, JIANXUN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041387/0027 →