IP Library Granted Patent US 9,996,266
Granted Patent B2
US 9,996,266 · App. 15/792,740 · Granted Jun 12, 2018

Physical address management in solid state memory

Inventors: Charles J. Camp (Sugar Land, TX); Timothy J. Fisher (Cypress, TX); Kevin E. Sallese (Fulshear, TX)
Assignee: International Business Machines Corporation
G06F3/0604G06F3/0614G06F3/0659G06F3/0665G06F3/0679G06F12/0246G06F12/10G06F3/0638G06F12/1027G06F2212/152G06F2212/214G06F2212/651G06F2212/657G06F2212/7201G06F2212/7205
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,996,266
App. No.
15/792,740
Granted
Jun 12, 2018
Kind
B2
Abstract

A storage system includes a memory controller connected to a solid state memory device and a read status table that tracks a pending read from the solid state memory device and a physical address of the solid state memory device that is associated with the pending read. The memory controller releases the physical address for reassignment when the read status table indicates that no pending reads are associated with the physical address. In certain embodiments, the read status table may be included within the memory controller. In certain embodiments, subsequent to the release of the physical address, erase operations may erase data at the physical address and the physical address may be reassigned to a new logical address by ensuing host write operations.

Claims (53)

1. A computer program product for a flash memory controller to manage old physical addresses in a solid state memory device, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by flash memory controller to cause the flash memory controller to:

track in a read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads;

assign a first logical address to a particular physical address within the solid state memory device;

delay a release of the particular physical address for reassignment to a second logical address when the read status table indicates that there is a pending read from the particular physical address; and

release the particular physical address for reassignment to the second logical address when the read status table indicates that there is no pending read from the particular physical address.

2. The computer program product of claim 1 , wherein the program instructions are readable by flash memory controller to further cause the flash memory controller to:

reassign the second logical address to the particular physical address subsequent to the particular physical address being released.

3. The computer program product of claim 1 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track in the read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads, further cause the flash memory controller to:

receive a read command comprising the first logical address;

determine the particular physical address from the first logical address; and

query the read status table for an entry associated with the particular physical address.

4. The computer program product of claim 1 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track in the read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads, further cause the flash memory controller to:

populate a read pending entry in the read status table associated with the particular physical address.

5. The computer program product of claim 4 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to populate the read pending entry in the read status table, further cause the flash memory controller to:

increment a read pending count.

6. The computer program product of claim 5 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track in the read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads, further cause the flash memory controller to:

decrement the read pending count upon the completion of the read from the particular physical address.

7. A computer program product for a flash memory controller to manage old physical addresses in a solid state memory device, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by flash memory controller to cause the flash memory controller to:

track in a read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads;

assign a first logical address to a particular physical address within the solid state memory device; and

delay a release of the particular physical address for reassignment to a second logical address when the read status table indicates that there is a pending read from the particular physical address.

8. The computer program product of claim 7 , wherein the program instructions are readable by flash memory controller to further cause the flash memory controller to:

reassign the second logical address to the particular physical address subsequent to the particular physical address being released.

9. The computer program product of claim 7 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track in the read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads, further cause the flash memory controller to:

receive a read command comprising the first logical address;

determine the particular physical address from the first logical address; and

query the read status table for an entry associated with the particular physical address.

10. The computer program product of claim 7 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track in the read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads, further cause the flash memory controller to:

populate a read pending entry in the read status table associated with the particular physical address.

11. The computer program product of claim 10 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to populate the read pending entry in the read status table, further cause the flash memory controller to:

increment a read pending count.

12. The computer program product of claim 11 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track in the read status table pending reads from the solid state memory device and track in the read status table physical addresses within the solid state memory device associated with the pending reads, further cause the flash memory controller to:

decrement the read pending count upon the completion of the read from the particular physical address.

13. A computer program product for a flash memory controller to manage old physical addresses in a solid state memory device, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable by flash memory controller to cause the flash memory controller to:

track pending reads from physical addresses of the solid state memory device;

assign a first logical address to a particular physical address within the solid state memory device; and

delay a release of a particular physical address for reassignment to a second logical address when a read is pending from the particular physical address.

14. The computer program product of claim 13 , wherein the program instructions are readable by flash memory controller to further cause the flash memory controller to:

assign the second logical address to the particular physical address subsequent to the particular physical address being released.

15. The computer program product of claim 13 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track pending reads from physical addresses of the solid state memory device, further cause the flash memory controller to:

receive a read command comprising the first logical address;

determine the particular physical address from the first logical address; and

query a read status table for an entry associated with the particular physical address.

16. The computer program product of claim 13 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track pending reads from physical addresses of the solid state memory device, further cause the flash memory controller to:

populate a read pending entry in a read status table associated with the particular physical address.

17. The computer program product of claim 16 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to populate the read pending entry in the read status table, further cause the flash memory controller to:

increment a read pending count.

18. The computer program product of claim 17 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track pending reads from physical addresses of the solid state memory device, further cause the flash memory controller to:

decrement the read pending count upon the completion of the read from the particular physical address.

19. The computer program product of claim 13 , wherein the program instructions are readable by flash memory controller to further cause the flash memory controller to:

track pending writes to physical addresses of the solid state memory device.

20. The computer program product of claim 19 , wherein the program instructions that are readable by flash memory controller to cause the flash memory controller to track pending writes to physical addresses of the solid state memory device, further cause the flash memory controller to:

populate a write pending entry in a write status table associated with the particular physical address.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2017
From: CAMP, CHARLES J.; FISHER, TIMOTHY J.; SALLESE, KEVIN E.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 043940/0924 →
Continuity (3)
Continuation 15193263 · Jun 27, 2016
Continuation 14073614 · Nov 6, 2013
Related Publication 20180046377A1 · Feb 15, 2018