US 11,675,707 B2
Logical to virtual and virtual to physical translation in storage class memory
Daniel Frank Moertl, Rochester, MN (US); Damir Anthony Jamsek, Austin, TX (US); Andrew Kenneth Martin, Austin, TX (US); Charalampos Pozidis, Thalwil (CH); Robert Edward Galbraith, Rochester, MN (US); Jeremy T. Ekman, West Concord, MN (US); Abby Harrison, Rochester, MN (US); Gerald Mark Grabowski, Kellogg, MN (US); and Steven Norgaard, Rochester, MN (US)
Assigned to International Business Machines Corporation, Armonk, NY (US)
Filed by International Business Machines Corporation, Armonk, NY (US)
Filed on Mar. 26, 2021, as Appl. No. 17/214,120.
Application 17/214,120 is a continuation of application No. 16/736,547, filed on Jan. 7, 2020, granted, now 10,990,537.
Prior Publication US 2021/0216470 A1, Jul. 15, 2021
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 12/1009 (2016.01)
CPC G06F 12/1009 (2013.01) [G06F 2212/657 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system for reading data from one or more memory cards, each memory card having a plurality of storage chips, and each storage chip having a plurality of dies having a plurality of memory cells, the system comprising:
one or more programmable readable storage media; and
programming instructions stored on the one or more programmable readable storage media for execution by at least one processor, the programming instructions when executed by the at least one processor configure the system to:
issue a request for data located on the one or more memory cards;
look up a logical address for the requested data in a logical to virtual translation table (LVT) having a plurality of entries, each entry in the LVT mapping a logical address to a virtual block address (VBA), where the VBA corresponds to a group of memory cells in the one or more memory cards;
in response to locating the logical address of the requested data in an entry in the LVT, check that LVT entry to determine whether the data is located in a Drift Buffer;
in response to determining the data is located within the Drift Buffer, read the requested data from the Drift Buffer; and
in response to determining the data is not located in the Drift Buffer, obtain the VBA from the LVT entry corresponding to the logical address of the requested data and read the requested data in the memory card corresponding to the VBA.