US 12,487,776 B1
Method and apparatus for transferring data between a host computer and a solid state memory
Ruven Torok, Cholon (IL); and Efraim Rein, Rahanana (IL)
Assigned to Marvell Israel (M.I.S.L) Ltd., Yokneam (IL)
Filed by Marvell Israel (M.I.S.L) Ltd., Yokneam (IL)
Filed on Oct. 28, 2022, as Appl. No. 17/976,633.
Claims priority of provisional application 63/273,131, filed on Oct. 28, 2021.
Int. Cl. G06F 3/06 (2006.01)
CPC G06F 3/0659 (2013.01) [G06F 3/0607 (2013.01); G06F 3/064 (2013.01); G06F 3/0679 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for transferring data between a solid state memory and a host computer, the method comprising:
receiving, at a bridge device, a first memory access command from the host computer, the first memory access command indicating a memory operation to be performed by the solid state memory device and including an indication of one or more blocks of memory locations in a host memory of the host computer;
storing the first memory access command in a queue of the bridge device;
allocating, by the bridge device, one or more buffers in a buffer memory for the first memory access command;
determining, by the bridge device, one or more virtual addresses to be used by the solid state memory device for the first memory access command;
generating, by the bridge device, a second memory access command that is a version of the first memory access command having some information included in the first memory access command, including generating the second memory access command to include an indication of the one or more virtual addresses rather than the indication of the one or more blocks of memory locations in the host memory;
sending, by the bridge device, the second memory access command to the solid state memory device while keeping the first memory access command in the queue, the sending of the second memory access command to the solid state memory device to prompt the solid state memory device to perform the second memory access command to transfer data between the solid state memory device and the one or more buffers in the buffer memory; and
transferring, by the bridge device, data between the one or more blocks of memory locations in the host memory and the one or more buffers within the buffer memory.