Abstract:
A storage device includes a non-volatile memory, a volatile memory and a controller. The volatile memory supports a normal mode and a self-refresh mode. The controller is configured to store data for a host in the non-volatile memory while using the volatile memory in the normal mode and, in response to receiving a power-down command from the host, to deactivate at least part of the storage device and to switch the volatile memory from the normal mode to the self-refresh mode.
Abstract:
The disclosed embodiments provide a system that transfers data from a storage device to a host. The system includes a communication mechanism that receives a request to read a set of blocks from the host. Next, upon reading each block from the set of blocks from the storage device, the communication mechanism transfers the block over an interface with the host. The system also includes an error-detection apparatus that performs error detection on the block upon reading the block, and an error-correction apparatus that performs error correction on the block if an error is detected in the block. The communication mechanism may then retransfer the block to the host after the error is removed from the block.
Abstract:
The disclosed embodiments provide a system that operates a processor in a computer system. During operation, the system uses the processor to maintain a count of outstanding input/output (I/O) requests for a component in the computer system. Next, the system facilitates efficient execution of the processor by overriding a latency tolerance reporting (LTR) value for the component based on the count.
Abstract:
The disclosed embodiments provide a system that operates a processor in a computer system. During operation, the system uses the processor to maintain a count of outstanding input/output (I/O) requests for a component in the computer system. Next, the system facilitates efficient execution of the processor by overriding a latency tolerance reporting (LTR) value for the component based on the count.
Abstract:
A storage system having an input-output (IO) component, a solid state drive (SSD) with multiple logical units (LUNs), e.g., flash storage units, and a controller coupled to the IO component and the SSD. The controller can cause the storage system to receive an operation request, determine various operational throughputs associated with outstanding commands of the SSD (e.g., read or write commands to be performed by the SSD), determine a time required for the SSD to process the outstanding commands based in part on the operational throughputs, and assign a timeout value to the received operation request. The timeout value may correspond to the time required for the SSD to process the outstanding commands. Any of the operational throughputs may be throttled when a die temperature of any of the SSD's LUNs exceeds an operating temperature threshold, or when an ambient temperature affecting SSD exceeds an ambient temperature threshold.
Abstract:
A storage system having an input-output (IO) component, a solid state drive (SSD) with multiple logical units (LUNs), e.g., flash storage units, and a controller coupled to the IO component and the SSD. The controller can cause the storage system to receive an operation request, determine various operational throughputs associated with outstanding commands of the SSD (e.g., read or write commands to be performed by the SSD), determine a time required for the SSD to process the outstanding commands based in part on the operational throughputs, and assign a timeout value to the received operation request. The timeout value may correspond to the time required for the SSD to process the outstanding commands. Any of the operational throughputs may be throttled when a die temperature of any of the SSD's LUNs exceeds an operating temperature threshold, or when an ambient temperature affecting SSD exceeds an ambient temperature threshold.
Abstract:
Disclosed herein is a technique for maintaining a responsive user interface for a user while preserving battery life of a user device by dynamically determining the interrupt rate/interrupt time at the user device. Based on priority tier information associated with the I/O requests along with the directionality and size of the I/O requests, a determination can be made regarding how the interrupt rate/interrupt time can be adjusted to achieve acceptable user interface (UI) responsiveness and maximum power savings.
Abstract:
Disclosed herein is a technique for dynamically scaling a low-power self-refresh (LPSR) idle interval associated with a solid state drive (SSD) of a user device in order to promote enhanced battery life efficiency within the user device. A determination can be made regarding whether the LPSR idle interval is to be scaled up or scaled down. Specifically, the determination is based on a total elapsed since the user device was first powered on and a total number of LPSR transitions or cycles that have been performed in association with the SSD. In turn, the dynamic scaling of the LPSR idle intervals causes NAND power-cycles to be consumed responsibly over an average system lifetime of the user device, which can result in better power management at the user device.
Abstract:
A method for data storage, includes holding a definition of a speculative readout mode for readout in a storage device, in which the storage device is requested to read a data unit having a data unit size, and in response the storage device retrieves a storage page that contains the data unit and has a storage page size larger than the data unit size, and retains the storage page in preparation for subsequent requests. Activation of the speculative readout mode is coordinated. A readout command using the speculative readout mode is performed.
Abstract:
A storage device includes a non-volatile memory, a volatile memory and a controller. The volatile memory supports a normal mode and a self-refresh mode. The controller is configured to store data for a host in the non-volatile memory while using the volatile memory in the normal mode and, in response to receiving a power-down command from the host, to deactivate at least part of the storage device and to switch the volatile memory from the normal mode to the self-refresh mode.