Abstract:
In some example embodiments, a method of organizing an address mapping table of a flash storage device based on Logical Block Address (LBA) size may comprise: identifying an extent of correlation between the LBA and flash page sizes, wherein the extent of correlation indicates greater or lesser extent; computing a total number of entries in each meta page of the table; and/or organizing the table with the total number of entries. In some example embodiments, a method of organizing an address mapping table of a flash storage device based on LBA size may comprise: determining flash page size of the flash storage device; determining the LBA size; and/or comparing the flash page and LBA sizes. When the flash page size is greater, the table may be organized based on flash page size. When the flash page size is less, the table may be organized based on LBA size.
Abstract:
A computing system includes: a command fetch block configured to determine a host profile for representing a requesting host corresponding to a processing request; and a credit checker block, coupled to the command fetch block, configured to calculate an instance budget at a communication endpoint from an overall resource of the communication endpoint for controlling the processing request at the communication endpoint.
Abstract:
A method for managing Logical Block Address (LBA) range overlap checking in a Non-Volatile Memory express (NVMe) based Solid State Drive (SSD) includes detecting, by an LBA-Overlap Check (LOC) module, an overlap between an LBA range of an incoming command with an LBA range of at least one outstanding command in an SSD controller, determining, by the LOC module, an overlap count value corresponding to the incoming command, where the overlap count value indicates occurrence of an overlap between the LBA range of the incoming command and the LBA range of the at least one outstanding command, and executing, by the SSD controller, the incoming command based on the overlap count value corresponding to the incoming command.
Abstract:
A method for managing Logical Block Address (LBA) range overlap checking in a Non-Volatile Memory express (NVMe) based Solid State Drive (SSD) includes detecting, by an LBA-Overlap Check (LOC) module, an overlap between an LBA range of an incoming command with an LBA range of at least one outstanding command in an SSD controller, determining, by the LOC module, an overlap count value corresponding to the incoming command, where the overlap count value indicates occurrence of an overlap between the LBA range of the incoming command and the LBA range of the at least one outstanding command, and executing, by the SSD controller, the incoming command based on the overlap count value corresponding to the incoming command.
Abstract:
A solid-state drive (SSD) for handling an Asynchronous Event Request (AER) command includes a command receiving circuit and a command management circuit. The command receiving circuit is configured to receive at least one command from at least one host. The command management circuit is configured to determine if the received at least one command from the at least one host is an AER command, store the AER command into an AER queue reserved for deferred AER command handling, if the received at least one command is the AER command, and generate a dummy response for the AER command and release resources occupied by the AER command.
Abstract:
A computing system includes: a command fetch block configured to determine a host profile for representing a requesting host corresponding to a processing request; and a credit checker block, coupled to the command fetch block, configured to calculate an instance budget at a communication endpoint from an overall resource of the communication endpoint for controlling the processing request at the communication endpoint.
Abstract:
A computing system includes: a command fetch block configured to determine a host profile for representing a requesting host corresponding to a processing request; and a credit checker block, coupled to the command fetch block, configured to calculate an instance budget at a communication endpoint from an overall resource of the communication endpoint for controlling the processing request at the communication endpoint.
Abstract:
A method for aborting a command for PCIe based NVMe SSD includes receiving an abort command in an Admin submission queue to abort a target command present in an I/O submission queue of host or in an I/O queue of the NVMe SSD and updating a tail doorbell of NVMe doorbell registers of the NVMe SSD after receiving the abort command. The abort command includes a slot of the target command to be aborted. Thereafter, the method includes placing the abort command into an Admin queue of the NVMe SSD and executing the abort command using the slot of the target command to be aborted by updating an I/O completion queue of the host with the target command to be aborted. The method further includes updating a head doorbell of the doorbell registers of the NVMe SSD and updating the abort command in an Admin completion queue of the host.
Abstract:
A method for handling namespace reservations in a Non Volatile Memory express (NVMe) controller includes a NVMe hardware module collecting a data access request from a host device, the NVMe hardware module determining a validity of the collected data access request, wherein the validity of the data access request is determined based a reservation specific to the host and data indicated in the data access request, and the NVMe hardware module notifying the NVMe firmware module of the determined validity of the collected data access request. The method further includes a NVMe firmware module accepting the data access request when the data request is notified by the NVMe hardware module as being valid, and the NVMe firmware module rejecting the data access request when the data request is notified by the NVMe hardware module as being invalid.