US20200233605A1 - Apparatus and method of scheduling universal flash storage refresh operations according to a refresh handover mechanism - Google Patents
Apparatus and method of scheduling universal flash storage refresh operations according to a refresh handover mechanism Download PDFInfo
- Publication number
- US20200233605A1 US20200233605A1 US16/255,477 US201916255477A US2020233605A1 US 20200233605 A1 US20200233605 A1 US 20200233605A1 US 201916255477 A US201916255477 A US 201916255477A US 2020233605 A1 US2020233605 A1 US 2020233605A1
- Authority
- US
- United States
- Prior art keywords
- refresh
- manual
- refresh operation
- force
- ufs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000007246 mechanism Effects 0.000 title claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 41
- 230000003190 augmentative effect Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000008672 reprogramming Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
Definitions
- the present disclosure generally relates to apparatuses incorporating integrated circuits (ICs). More specifically, aspects of the present disclosure relate to an apparatus and method of scheduling universal flash storage (UFS) refresh operations according to a refresh handover mechanism.
- UFS universal flash storage
- NV non-volatile
- flash memory is one possible type of NV memory device that may be capable of meeting this ever expanding volume of data consumed by mobile platform devices.
- a flash memory storage device is a type of non-volatile memory implemented using solid-state drive (SSD) technology.
- SSD-based flash memory is an electronic non-volatile computer storage device capable of maintaining, erasing, and/or reprogramming data.
- Flash memory can be fabricated with several different types of integrated circuit (IC) technologies, such as a negative logical OR (NOR) gate or a negative logical AND (NAND) gate using, for example, floating-gate transistors.
- NOR negative logical OR
- NAND negative logical AND
- This flash memory can be configured to support block-based, page-based, word-based, and/or byte-based memory access, depending on the type of supported applications.
- the internal memories of the noted mobile platform devices may be implemented using universal flash storage (UFS).
- UFS universal flash storage
- Universal flash storage or UFS is a flash storage specification for consumer electronic devices, such as mobile phones, digital cameras, and other like consumer electronic devices specifying high performance and low power consumption.
- universal flash storage is susceptible to memory corruptions, such as bit-flip errors and transmission errors. Selecting a memory refresh operation for universal flash storage is generally performed in a non-intelligent manner.
- a method of scheduling universal flash storage (UFS) operations using a refresh handover mechanism includes receiving, during refresh of a UFS device, a request for an input/output (I/O) operation.
- the method also includes handing over between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- a apparatus configured to scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described.
- the apparatus includes a memory having a UFS device and at least one processor coupled to the memory.
- the processor is configured to receive, during refresh of the UFS device, a request for an input/output (I/O) operation.
- the processor is also configured to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- a non-transitory computer-readable medium having program code recorded thereon for scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described.
- the program code executed by a processor.
- the program code includes program code to receive, during refresh of a UFS device, a request for an input/output (I/O) operation.
- the program code also includes program code to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- FIG. 1 illustrates an example implementation of a system-on-a-chip (SOC), including a connectivity module, in accordance with certain aspects of the present disclosure.
- SOC system-on-a-chip
- FIG. 2 is an example implementation illustrating a host controller communicably coupled to universal flash storage (UFS) devices, in accordance with aspects of the present disclosure.
- UFS universal flash storage
- FIGS. 3A and 3B are block diagrams illustrating a manual-force refresh method and a manual-selective refresh method, according to aspects of the present disclosure.
- FIG. 4 is a state diagram illustrating scheduling of universal flash storage (UFS) refresh schemes, according to aspects of the present disclosure.
- UFS universal flash storage
- FIG. 5 is a flow diagram illustrating a method of scheduling universal flash storage (UFS) refresh schemes using a refresh handover mechanism, according to aspects of the present disclosure.
- UFS universal flash storage
- FIG. 6 is a block diagram showing a wireless communications system in which a configuration of the disclosure may be advantageously employed.
- an apparatus may be implemented or a method may be practiced using any number of the aspects set forth.
- the apparatus may, for example, be one of a computing system (e.g., servers, datacenters, desktop computers), mobile computing device (e.g., laptops, cell phones, vehicles, etc.), Internet of Things device, and virtual reality or augmented reality system.
- a computing system e.g., servers, datacenters, desktop computers
- mobile computing device e.g., laptops, cell phones, vehicles, etc.
- Internet of Things device e.g., Internet of Things device
- virtual reality or augmented reality system e.g., virtual reality or augmented reality system
- UFS universal flash storage
- SSD solid-state drive
- SSD-based flash memory is an electronic non-volatile computer storage device capable of maintaining, erasing, and/or reprogramming data.
- Universal flash storage can be fabricated with several different types of integrated circuit (IC) technologies, such as a negative logical OR (NOR) gate or a negative logical AND (NAND) gate using, for example, floating-gate transistors.
- IC integrated circuit
- NOR negative logical OR
- NAND negative logical AND
- universal flash storage is susceptible to memory corruptions, such as bit-flip errors and transmission errors. These memory corruptions may be due to various reasons, such as aging factors, temperature changes, charge loss, and the like.
- universal flash storage implemented using NAND memory may undergo bit-flipping for various reasons, such as memory manufacturing defects during ionizations, high strain on a memory cell during read operations, and/or charge loss.
- Current memory refresh schemes for universal flash storage include a manual-force refresh method and a manual-selective refresh method. Selecting between a manual-force and a manual-selective refresh method for refreshing universal flash storage is generally performed in a non-intelligent manner. That is, the decision to select between manual-force and manual-selective refresh is not made based on system performance feedback and/or current power specifications. According to aspects of the present disclosure, selecting between a manual-force refresh method and a manual-selective refresh method for refreshing universal flash storage is based on current power and performance constraints.
- FIG. 1 illustrates an example implementation of a host system-on-a-chip (SOC) 100 , which includes a connectivity block 110 (e.g., a host controller) configured to schedule universal flash storage (UFS) refresh schemes using a refresh handover mechanism, in accordance with aspects of the present disclosure.
- the host SOC 100 includes processing blocks tailored to specific functions, such as a connectivity block 110 .
- the connectivity block 110 may include fifth generation (5G) connectivity, fourth generation long term evolution (4G LTE) connectivity, Wi-Fi connectivity, USB connectivity, Bluetooth connectivity, Secure Digital (SD) connectivity, and the like.
- 5G fifth generation
- 4G LTE fourth generation long term evolution
- Wi-Fi connectivity Wireless Fidelity
- USB connectivity Wireless Fidelity
- Bluetooth connectivity Secure Digital
- the host SOC 100 includes various processing units that support multi-threaded operation.
- the host SOC 100 includes a multi-core central processing unit (CPU) 102 , a graphics processor unit (GPU) 104 , a digital signal processor (DSP) 106 , and a neural processor unit (NPU) 108 .
- the host SOC 100 may also include a sensor processor 114 , image signal processors (ISPs) 116 , a navigation module 120 , which may include a global positioning system, and a memory 118 .
- ISPs image signal processors
- the multi-core CPU 102 , the GPU 104 , the DSP 106 , the NPU 108 , and the multi-media engine 112 support various functions such as video, audio, graphics, gaming, artificial networks, and the like.
- Each processor core of the multi-core CPU 102 may be a reduced instruction set computing (RISC) machine, an advance RISC machine (ARM), a microprocessor, or some other type of processor.
- RISC reduced instruction set computing
- ARM advance RISC machine
- the NPU 108 may be based on an ARM instruction set.
- the instructions loaded into the multi-core CPU 102 may include program code to receive, during refresh of a UFS device, a request for an input/output (I/O) operation.
- the instructions loaded into the multi-core CPU 102 may also include program code to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- a non-transitory computer-readable medium having program code recorded thereon for scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described.
- the program code executed by a processor.
- the program code includes program code to.
- the program code also includes program code to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- FIG. 2 is an example implementation illustrating a host controller configured to schedule universal flash storage (UFS) refresh schemes of UFS devices using a refresh handover mechanism, in accordance with aspects of the present disclosure.
- a host controller 200 may be the host SOC 100 , or a block of the host SOC 100 (e.g., connectivity block 110 or other like block of the host SOC 100 ) including a UFS interface 210 .
- the host controller 200 includes the UFS interface 210 , configured to communicate with UFS devices 230 ( 230 - 1 , . . . , 230 -N) over, for example, a small computer system interface (SCSI) bus 220 .
- SCSI small computer system interface
- the UFS devices 230 are susceptible to memory corruptions, such as bit-flip errors and transmission errors.
- Current memory refresh schemes for refreshing the UFS devices 230 include a manual-force refresh method and a manual-selective refresh method. The decision to select between the manual-force and the manual-selective refresh method is not made based on system performance feedback and/or current power specifications. According to aspects of the present disclosure, selecting between a manual-force refresh method and a manual-selective refresh method for refreshing the UFS devices 230 is based on current power and performance constraints.
- FIGS. 3A and 3B are block diagrams illustrating a manual-force refresh method and a manual-selective refresh method, according to aspects of the present disclosure.
- FIG. 3A is a block diagram 300 illustrating a manual-force refresh method on a group of data blocks, according to aspects of the present disclosure.
- data blocks 310 are shown in a group, including a first block 312 and a last block 314 .
- the data blocks 310 include blocks that do not need a refresh (e.g., no-refresh blocks 316 ) and blocks that need a refresh (e.g., need-refresh blocks 318 ).
- a manual-force refresh is applied to the data blocks 310 and suspended after manually refreshing half of the data blocks 310 (e.g., suspend after 50%) to form refreshed blocks 320 .
- a host e.g., host controller 200 of FIG. 2
- the manual-force refresh is suspended so that the host controller 200 writes to the new blocks 330 .
- the data blocks 310 include the refreshed blocks 320 , the new blocks 330 , no-refresh blocks 316 , and a need-refresh block 318 .
- step 3 a the manual-force refresh resumes refresh of each remaining block of the data blocks 310 .
- each of the data blocks 310 is refreshed except for the new block 330 .
- the host controller 200 performs manual-force refresh by selecting a block of the data blocks 310 and reading all the pages in the block.
- the host controller 200 refreshes each page of the selected block, regardless of whether an error occurs. In this way, the host controller 200 continuously performs manual-force refresh in the foreground on all the blocks/pages of the data blocks 310 , which may be referred to as the manual-force refresh constraint.
- FIG. 3B is a block diagram 350 illustrating a manual-selective refresh method on a group of data blocks, according to aspects of the present disclosure.
- the data blocks 310 are also shown in a group, including the first block 312 and the last block 314 .
- the data blocks 310 include no-refresh blocks 316 and need-refresh blocks 318 .
- a manual-selective refresh is applied to the data blocks 310 and suspended after manually refreshing half of the data blocks 310 (e.g., suspend after 50%) to form a refreshed block 320 .
- the manual-selective refresh is applied to a first of the need-refresh blocks 318 in the first half of the data blocks 310 .
- the host controller 200 also writes to new blocks 330 of the data blocks 310 .
- the manual-selective refresh is suspended, allowing the host controller 200 to write to the new blocks 330 .
- the data blocks 310 include the refreshed block 320 , the new blocks 330 , a need-refresh block 318 , and no-refresh blocks 316 .
- step 3 b the manual-selective refresh resumes to refresh the need-refresh block 318 of the data blocks 310 .
- the data blocks 310 include the refreshed block 320 , the new blocks 330 , and no-refresh blocks 316 .
- the host controller 200 performs the manual-selective refresh by refreshing only the blocks which are marked for refresh (e.g., need-refresh blocks 318 ) and does not bother with the other blocks of the data blocks 310 .
- JEDEC Joint Electron Device Engineering Council
- the host controller 200 should set a refresh enable flag (e.g., fRefreshEnable) if command queues are empty; otherwise, a query request to set the refresh enable flag may fail. If a refresh operation is in progress, any request, other than a READ request, triggers the refresh interruption described above.
- a refresh enable flag e.g., fRefreshEnable
- the host controller 200 decides the type of refresh to perform by setting a first refresh value (e.g., 01h) for a manual-force or a second refresh value (e.g., 02h) for a manual-selective refresh operation.
- the host controller 200 sets the first refresh value or the second refresh value in a refresh register (e.g., *bRefreshMethod*) in accordance with the noted JEDEC document.
- a refresh register e.g., *bRefreshMethod*
- the decision of selecting between the first refresh value and the second refresh value is not pre-defined; this decision is random. Consequently, a problem occurs if the first refresh value (e.g., manual-force refresh mode) is set when a concurrent I/O request (e.g., a high performance I/O operation) is received from a user-space.
- the JEDEC document prohibits concurrent access of I/O and fresh operations. Therefore, due to the manual-force refresh constraint (e.g., involving all pages/blocks), the manual-force refresh operation is paused, while the I/O operation is performed. Once completed, the manual-force refresh operation resumes.
- This scenario is problematic because pausing the manual-force refresh operation to process the I/O request significantly contributes to power usage.
- selection between manual-force and manual-selective refresh does not consider feedback about the current system performance and power specifications. To address this problem, a solution is proposed for intelligently selecting the type of refresh scheme by considering the performance and power constraints associated with the selected refresh scheme.
- Parallel execution of I/O and refresh operations is beneficial in the following scenarios because ignoring the refresh operations results in a high start/stop penalty for refresh operations based on a rate of I/O requests. For example, as a storage device gets older, the refresh rate increases to maintain data retention. Similarly, when the host controller 200 detects unexpected weak memory cells in a certain partition of the UFS devices 230 (e.g., implemented in the field), the host controller 200 can request a higher refresh rate for that partition. The host controller 200 can also request more frequent refresh at higher temperatures. The host controller 200 can also request different refresh rates for different memory types. For example, a refresh rate of triple level cell (TLC) memory is generally greater than a refresh rate for multi-level cell (MLC) memory, which is greater than a refresh rate for single level cell (SLC) memory.
- TLC triple level cell
- MLC multi-level cell
- SLC single level cell
- I/O operations are generally prioritized over refresh operations for achieving the short team goal of finishing I/O requests first. This prioritization of I/O operations ignores the importance of device life (e.g., a long term goal).
- I/O and refresh operations there is a trade-off between I/O and refresh operations. Aspects of the present disclosure use this trade-off to balance both I/O requests and refresh requests by handling these competing requests in a graceful manner. Balancing I/O and refresh requests may be advantageous in automotive storage devices (e.g., dashboards in cars and drones that are directly exposed to environmental heat). For example, using the UFS devices 230 as an automotive storage device would involve a higher frequency of refresh operations.
- FIG. 4 is a state diagram illustrating scheduling of universal flash storage (UFS) refresh schemes using a refresh handover mechanism, according to aspects of the present disclosure.
- UFS refresh state diagram 400 is illustrated for addressing scenarios in which refresh operations and I/O operation are performed in parallel.
- the UFS refresh state diagram 400 provides various state transitions based on the following scenarios: 1) only refresh operation; 2) I/O request during the refresh operation; 3) refresh operation during an I/O operation; and 4) I/O access operation completes while refresh in progress.
- the UFS refresh state diagram 400 is based on the following rules: (A) manual-force refresh operations cannot happen in parallel with an I/O operation (e.g., due to conflicting access to the same block); and (B) refresh power and refresh time for a manual-force refresh are always greater than the refresh power and the refresh time of a manual-selective refresh.
- aspects of the present disclosure describe a UFS refresh scheduling scheme, in which a refresh handover mechanism from manual-force refresh to manual-selective refresh is performed in response to an I/O request.
- This refresh handover mechanism is designed to enforce rules (A) and (B). This implementation enables execution of I/O and refresh operations with improved performance and power saving.
- a scheduler e.g., the host controller 200 of FIG. 2 intelligently selects the refresh scenario type and when handover between the refresh mechanisms should happen (see Table 1). For example, considering scenario 2), handover should happen from manual-force (MF) to manual-selective (MS) refresh for complying with the rules described in (A) and (B). Alternatively, in scenario 4), handover should happen from manual-selective to manual-force refresh for having robust data retention and making sure all the data is refreshed in the background.
- MF manual-force
- MS manual-selective
- Table 1 shows a UFS refresh scheduling lookup table, according to aspects of the present disclosure.
- the host controller 200 may be configured according to the UFS refresh scheduling lookup table to operate according to the UFS refresh state diagram 400 .
- the UFS scheduling method complies with the rules of (A) and (B), as shown by the total refresh equation (1).
- the host controller intelligently performs handover between manual-selective and manual-force refresh by either performing the handover once the competing I/O request is initiated, or once the I/O request completes. This refresh handover mechanism avoids the stop/start penalty caused by pausing manual-force refresh operations to complete I/O requests.
- the total refresh equation (1) may be derived as follows based on Table 1. As shown in case-1 (e.g., 01), in which there is only a request for Refresh, and no I/O request, the type of refresh selected MF refresh. Hence, case-1 contributes R ⁇ (MF) to the total refresh equation (1). Case-2 (e.g., 10) does not contribute to the total refresh equation (1). Case-3 (e.g., 11—I/O first) is considered after case-4. In case-4 (e.g., 11—refresh first), the type of refresh selected is MF refresh. Meanwhile, if there is a I/O request when refresh is being processed, a refresh handover is perform from MF refresh to MS refresh.
- case-1 e.g. 01
- case-2 e.g., 10
- case-3 e.g., 11—I/O first
- case-4 e.g., 11—refresh first
- the type of refresh selected is MF refresh. Meanwhile, if there is a I/O request when refresh is
- case-4 contributes R(MF) ⁇ I/O(MS) to the total refresh equation (1).
- case-3 after the handover request from IVIF refresh to MS refresh is performed, the current refresh status is MS refresh. Once the IO being served here is completed, a handover from MS refresh to MF refresh is performed.
- case-3 contributes I/O(MS) ⁇ R(MF) to complete the total refresh equation (1).
- the new standard registers may include a register (e.g., REG_REF_EN) to start/stop refresh operation, a register (e.g., REG_SEL_ALGO) to select a type of refresh scheme, and a register (e.g., REG_REF_ADDR_RANGE) for a target start/end address range.
- a partition range can be selected by setting a start address equal to an end address (e.g., 0x0).
- the host controller 200 sets the REG_REF_EN register to start a refresh operation.
- the host controller 200 programs the REG_REF_ADDR_RANGE register and a REG_SEL_ALGO register before starting a refresh operation.
- the UFS devices 230 may run the refresh operation in the background.
- the REG_REF_EN register is cleared to 0 by the UFS devices 230 when the refresh operation is complete.
- the host controller 200 can check REG_REF_EN register to see if a refresh operation is on-going or completed to perform according to the UFS refresh scheduling lookup table (see Table 1) when operating according to the UFS refresh state diagram 400 .
- the host controller 200 clears the REG_REF_EN register to 0 to stop the refresh operation. For example, during scenarios such as 2) and 4), where the refresh handover mechanism should occur, a bit in the REG_REF_EN register is set to ‘0’ and the REG_SEL_ALGO register is negated and then set back to ‘1’ with the change in refresh scheme.
- the refresh operation might also be interrupted in the middle. In this scenario, the host controller 200 restarts the refresh operation for the target address range later corresponding to the REG_REF_ADDR_RANGE register. In operation, the new refresh scheme picks the address where it stopped and resumes the refresh operations.
- FIG. 5 is a flow diagram illustrating a method of scheduling universal flash storage (UFS) refresh operations using a refresh handover mechanism, according to aspects of the present disclosure.
- a method 500 begins at block 502 , in which a request for a refresh operation is received during refresh of a universal flash storage (UFS) device (UFS device). For example, as shown in FIG. 4 , in step 2 ) a request for an input/output (I/O) operation is received during a manual-force refresh operation. Alternatively, at step 3 ), a manual-selective refresh operation may be initiated during access by an I/O operation.
- I/O input/output
- a handover is performed between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- a handover is performed from the manual-force refresh operation to the manual-selective refresh operation after triggering of the I/O operation.
- handover from a manual-selective refresh operation to a manual-force refresh operation is delayed until after the I/O operation completes.
- a host controller intelligently performs handover between manual-selective and manual-force refresh by either performing the handover once the competing I/O request is initiated, or once the I/O request completes.
- This refresh handover mechanism avoids the stop/start penalty caused by pausing manual-force refresh operations to complete the I/O operation request.
- FIG. 6 is a block diagram showing an exemplary wireless communications system 600 in which a configuration of the disclosure may be advantageously employed.
- FIG. 6 shows three remote units 620 , 630 , and 650 and two base stations 640 .
- Remote units 620 , 630 , and 650 include IC devices 625 A, 625 B, and 625 C, which include the disclosed UFS interface.
- any device containing an IC may also include the disclosed UFS interface, including the base stations, switching devices, and network equipment.
- FIG. 6 shows forward link signals 680 from the base station 640 to the remote units 620 , 630 , and 650 , and reverse link signals 690 from the remote units 620 , 630 , and 650 to base stations 640 .
- a remote unit 620 is shown as a mobile telephone
- a remote unit 630 is shown as a portable computer
- a remote unit 650 is shown as a fixed location remote unit in a wireless local loop system.
- the remote units may be a mobile phone, a hand-held personal communications systems (PCS) unit, a portable data unit such as a personal data assistant, a GPS enabled device, a navigation device, a set top box, a music player, a video player, an entertainment unit, a fixed location data unit such as meter reading equipment, or any other device that stores or retrieves data or computer instructions, or any combination thereof.
- PCS personal communications systems
- a remote unit including the UFS interface may be integrated within a vehicle control system, a server computing system or other like system specifying critical data integrity.
- FIG. 6 illustrates IC devices 625 A, 625 B, and 625 C, which include the disclosed UFS interface, the disclosure is not limited to these exemplary illustrated units. Aspects of the present disclosure may be suitably employed in any device, which includes the UFS interface.
- the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the described functions.
- Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein.
- software codes may be stored in a memory and executed by a processor unit.
- Memory may be implemented within the processor unit or external to the processor unit.
- memory refers to any type of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
- the functions may be stored as one or more instructions or code on a non-transitory computer-readable medium.
- Examples include computer-readable media encoded with a data structure and computer-readable media encoded with a computer program.
- Computer-readable media includes physical computer storage media. A storage medium may be an available medium that can be accessed by a computer.
- Such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer.
- Disk and disc include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD) and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
- instructions and/or data may be provided as signals on transmission media included in a communications apparatus.
- a communications apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine.
- a processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- a software module may reside in RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art.
- An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
- the storage medium may be integral to the processor.
- the processor and the storage medium may reside in an ASIC.
- the ASIC may reside in a user terminal.
- the processor and the storage medium may reside as discrete components in a user terminal.
- the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
- Computer-readable media includes both computer storage media and communications media including any medium that facilitates transfer of a computer program from one place to another.
- a storage media may be any available media that can be accessed by a general-purpose or special-purpose computer.
- such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store specified program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium.
- Disk and disc include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD) and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
- “at least one of: a, b, or c” is intended to cover: a; b; c; a and b; a and c; b and c; and a, b, and c.
- All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims.
- nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. ⁇ 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “a step for.”
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
- The present disclosure generally relates to apparatuses incorporating integrated circuits (ICs). More specifically, aspects of the present disclosure relate to an apparatus and method of scheduling universal flash storage (UFS) refresh operations according to a refresh handover mechanism.
- Electronic devices, such as computers, smart phones, mobile devices, Internet of Things (IoT), and other like mobile platform devices are continually driving the demand for faster data. Conventional volatile memory used in mobile platform devices may be unable to handle and facilitate the voluminous data consumed by such mobile platform devices. One option for meeting this ever expanding volume of data is using high speed non-volatile (NV) memory devices. For example, flash memory is one possible type of NV memory device that may be capable of meeting this ever expanding volume of data consumed by mobile platform devices.
- A flash memory storage device is a type of non-volatile memory implemented using solid-state drive (SSD) technology. For example, SSD-based flash memory is an electronic non-volatile computer storage device capable of maintaining, erasing, and/or reprogramming data. Flash memory can be fabricated with several different types of integrated circuit (IC) technologies, such as a negative logical OR (NOR) gate or a negative logical AND (NAND) gate using, for example, floating-gate transistors. This flash memory can be configured to support block-based, page-based, word-based, and/or byte-based memory access, depending on the type of supported applications.
- The internal memories of the noted mobile platform devices may be implemented using universal flash storage (UFS). Universal flash storage or UFS is a flash storage specification for consumer electronic devices, such as mobile phones, digital cameras, and other like consumer electronic devices specifying high performance and low power consumption. Unfortunately, universal flash storage is susceptible to memory corruptions, such as bit-flip errors and transmission errors. Selecting a memory refresh operation for universal flash storage is generally performed in a non-intelligent manner.
- A method of scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described. The method includes receiving, during refresh of a UFS device, a request for an input/output (I/O) operation. The method also includes handing over between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- A apparatus configured to scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described. The apparatus includes a memory having a UFS device and at least one processor coupled to the memory. The processor is configured to receive, during refresh of the UFS device, a request for an input/output (I/O) operation. The processor is also configured to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- A non-transitory computer-readable medium having program code recorded thereon for scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described. The program code executed by a processor. The program code includes program code to receive, during refresh of a UFS device, a request for an input/output (I/O) operation. The program code also includes program code to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
- This has outlined, rather broadly, the features and technical advantages of the present disclosure in order that the detailed description that follows may be better understood. Additional features and advantages of the disclosure will be described below. It should be appreciated by those skilled in the art that this disclosure may be readily used as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the teachings of the disclosure as set forth in the appended claims. The novel features, which are believed to be characteristic of the disclosure, both as to its organization and method of operation, together with further objects and advantages, will be better understood from the following description when considered in connection with the accompanying figures. It is to be expressly understood, however, that each of the figures is provided for the purpose of illustration and description only and is not intended as a definition of the limits of the present disclosure.
- For a more complete understanding of the present disclosure, reference is now made to the following description taken in conjunction with the accompanying drawings.
-
FIG. 1 illustrates an example implementation of a system-on-a-chip (SOC), including a connectivity module, in accordance with certain aspects of the present disclosure. -
FIG. 2 is an example implementation illustrating a host controller communicably coupled to universal flash storage (UFS) devices, in accordance with aspects of the present disclosure. -
FIGS. 3A and 3B are block diagrams illustrating a manual-force refresh method and a manual-selective refresh method, according to aspects of the present disclosure. -
FIG. 4 is a state diagram illustrating scheduling of universal flash storage (UFS) refresh schemes, according to aspects of the present disclosure. -
FIG. 5 is a flow diagram illustrating a method of scheduling universal flash storage (UFS) refresh schemes using a refresh handover mechanism, according to aspects of the present disclosure. -
FIG. 6 is a block diagram showing a wireless communications system in which a configuration of the disclosure may be advantageously employed. - The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. It will be apparent to those skilled in the art, however, that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
- Based on the teachings, one skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of the disclosure, whether implemented independently of or combined with any other aspect of the disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth. The apparatus may, for example, be one of a computing system (e.g., servers, datacenters, desktop computers), mobile computing device (e.g., laptops, cell phones, vehicles, etc.), Internet of Things device, and virtual reality or augmented reality system. In addition, the scope of the disclosure is intended to cover such an apparatus or method practiced using other structure, functionality, or structure and functionality in addition to or other than the various aspects of the disclosure set forth. It should be understood that any aspect of the disclosure disclosed may be embodied by one or more elements of a claim.
- As described herein, the use of the term “and/or” is intended to represent an “inclusive OR”, and the use of the term “or” is intended to represent an “exclusive OR”. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
- Although particular aspects are described, many variations and permutations of these aspects fall within the scope of the disclosure. Although some benefits and advantages of the preferred aspects are mentioned, the scope of the disclosure is not intended to be limited to particular benefits, uses, or objectives. Rather, aspects of the disclosure are intended to be broadly applicable to different technologies, system configurations, networks and protocols, some of which are illustrated by way of example in the figures and in the following description of the preferred aspects. The detailed description and drawings are merely illustrative of the disclosure, rather than limiting the scope of the disclosure being defined by the appended claims and equivalents thereof.
- Internal memories of mobile platform devices may be implemented with universal flash storage (UFS). Universal flash storage or UFS is a flash storage specification for consumer electronic devices, such as mobile phones, digital cameras, and other like consumer electronic devices specifying high performance and low power consumption. Flash memory is a type of non-volatile memory implemented using solid-state drive (SSD) technology. For example, SSD-based flash memory is an electronic non-volatile computer storage device capable of maintaining, erasing, and/or reprogramming data.
- Universal flash storage can be fabricated with several different types of integrated circuit (IC) technologies, such as a negative logical OR (NOR) gate or a negative logical AND (NAND) gate using, for example, floating-gate transistors. Unfortunately, universal flash storage is susceptible to memory corruptions, such as bit-flip errors and transmission errors. These memory corruptions may be due to various reasons, such as aging factors, temperature changes, charge loss, and the like. For example, universal flash storage implemented using NAND memory may undergo bit-flipping for various reasons, such as memory manufacturing defects during ionizations, high strain on a memory cell during read operations, and/or charge loss.
- Current memory refresh schemes for universal flash storage include a manual-force refresh method and a manual-selective refresh method. Selecting between a manual-force and a manual-selective refresh method for refreshing universal flash storage is generally performed in a non-intelligent manner. That is, the decision to select between manual-force and manual-selective refresh is not made based on system performance feedback and/or current power specifications. According to aspects of the present disclosure, selecting between a manual-force refresh method and a manual-selective refresh method for refreshing universal flash storage is based on current power and performance constraints.
-
FIG. 1 illustrates an example implementation of a host system-on-a-chip (SOC) 100, which includes a connectivity block 110 (e.g., a host controller) configured to schedule universal flash storage (UFS) refresh schemes using a refresh handover mechanism, in accordance with aspects of the present disclosure. Thehost SOC 100 includes processing blocks tailored to specific functions, such as aconnectivity block 110. Theconnectivity block 110 may include fifth generation (5G) connectivity, fourth generation long term evolution (4G LTE) connectivity, Wi-Fi connectivity, USB connectivity, Bluetooth connectivity, Secure Digital (SD) connectivity, and the like. - In this configuration, the
host SOC 100 includes various processing units that support multi-threaded operation. For the configuration shown inFIG. 1 , thehost SOC 100 includes a multi-core central processing unit (CPU) 102, a graphics processor unit (GPU) 104, a digital signal processor (DSP) 106, and a neural processor unit (NPU) 108. Thehost SOC 100 may also include asensor processor 114, image signal processors (ISPs) 116, anavigation module 120, which may include a global positioning system, and amemory 118. Themulti-core CPU 102, theGPU 104, theDSP 106, theNPU 108, and themulti-media engine 112 support various functions such as video, audio, graphics, gaming, artificial networks, and the like. Each processor core of themulti-core CPU 102 may be a reduced instruction set computing (RISC) machine, an advance RISC machine (ARM), a microprocessor, or some other type of processor. TheNPU 108 may be based on an ARM instruction set. - In an aspect of the present disclosure, the instructions loaded into the
multi-core CPU 102 may include program code to receive, during refresh of a UFS device, a request for an input/output (I/O) operation. The instructions loaded into themulti-core CPU 102 may also include program code to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation. - A non-transitory computer-readable medium having program code recorded thereon for scheduling universal flash storage (UFS) operations using a refresh handover mechanism is described. The program code executed by a processor. The program code includes program code to. The program code also includes program code to handover between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation.
-
FIG. 2 is an example implementation illustrating a host controller configured to schedule universal flash storage (UFS) refresh schemes of UFS devices using a refresh handover mechanism, in accordance with aspects of the present disclosure. In this configuration, ahost controller 200 may be thehost SOC 100, or a block of the host SOC 100 (e.g.,connectivity block 110 or other like block of the host SOC 100) including aUFS interface 210. In this example, thehost controller 200 includes theUFS interface 210, configured to communicate with UFS devices 230 (230-1, . . . , 230-N) over, for example, a small computer system interface (SCSI) bus 220. - As previously noted, the
UFS devices 230 are susceptible to memory corruptions, such as bit-flip errors and transmission errors. Current memory refresh schemes for refreshing theUFS devices 230 include a manual-force refresh method and a manual-selective refresh method. The decision to select between the manual-force and the manual-selective refresh method is not made based on system performance feedback and/or current power specifications. According to aspects of the present disclosure, selecting between a manual-force refresh method and a manual-selective refresh method for refreshing theUFS devices 230 is based on current power and performance constraints. -
FIGS. 3A and 3B are block diagrams illustrating a manual-force refresh method and a manual-selective refresh method, according to aspects of the present disclosure.FIG. 3A is a block diagram 300 illustrating a manual-force refresh method on a group of data blocks, according to aspects of the present disclosure. In this example, data blocks 310 are shown in a group, including afirst block 312 and alast block 314. The data blocks 310 include blocks that do not need a refresh (e.g., no-refresh blocks 316) and blocks that need a refresh (e.g., need-refresh blocks 318). - As shown in
step 1 a, a manual-force refresh is applied to the data blocks 310 and suspended after manually refreshing half of the data blocks 310 (e.g., suspend after 50%) to form refreshed blocks 320. As shown instep 2 a, a host (e.g.,host controller 200 ofFIG. 2 ) writes tonew blocks 330 of the data blocks 310. In this example, the manual-force refresh is suspended so that thehost controller 200 writes to thenew blocks 330. Following writing to thenew blocks 330, the data blocks 310 include the refreshed blocks 320, thenew blocks 330, no-refresh blocks 316, and a need-refresh block 318. - In
step 3 a, the manual-force refresh resumes refresh of each remaining block of the data blocks 310. Using manual-force refresh, each of the data blocks 310 is refreshed except for thenew block 330. In this example, thehost controller 200 performs manual-force refresh by selecting a block of the data blocks 310 and reading all the pages in the block. In this manual-force refresh process, thehost controller 200 refreshes each page of the selected block, regardless of whether an error occurs. In this way, thehost controller 200 continuously performs manual-force refresh in the foreground on all the blocks/pages of the data blocks 310, which may be referred to as the manual-force refresh constraint. -
FIG. 3B is a block diagram 350 illustrating a manual-selective refresh method on a group of data blocks, according to aspects of the present disclosure. In this example, the data blocks 310 are also shown in a group, including thefirst block 312 and thelast block 314. The data blocks 310 include no-refresh blocks 316 and need-refresh blocks 318. - As shown in
step 1 b, a manual-selective refresh is applied to the data blocks 310 and suspended after manually refreshing half of the data blocks 310 (e.g., suspend after 50%) to form arefreshed block 320. The manual-selective refresh is applied to a first of the need-refresh blocks 318 in the first half of the data blocks 310. As shown instep 2 b, thehost controller 200 also writes tonew blocks 330 of the data blocks 310. In this example, the manual-selective refresh is suspended, allowing thehost controller 200 to write to thenew blocks 330. Following writing of thenew blocks 330, the data blocks 310 include therefreshed block 320, thenew blocks 330, a need-refresh block 318, and no-refresh blocks 316. - In
step 3 b, the manual-selective refresh resumes to refresh the need-refresh block 318 of the data blocks 310. In this example, the data blocks 310 include therefreshed block 320, thenew blocks 330, and no-refresh blocks 316. Thehost controller 200 performs the manual-selective refresh by refreshing only the blocks which are marked for refresh (e.g., need-refresh blocks 318) and does not bother with the other blocks of the data blocks 310. - As shown in
FIGS. 3A and 3B , a current Joint Electron Device Engineering Council (JEDEC) document (e.g., Item # JC-64.1-135.12 (Rev-5)) prohibits concurrent access of input/output (I/O) and fresh operations with respect to the universal flash storage (UFS) standard (e.g., the UFS 3.0 Standard). That is, issuing the I/O operation to write thenew block 330 suspends both the manual-force refresh operation inFIG. 3A and the manual-selective refresh operation inFIG. 3B . As specified by the current JEDEC document, thehost controller 200 should set a refresh enable flag (e.g., fRefreshEnable) if command queues are empty; otherwise, a query request to set the refresh enable flag may fail. If a refresh operation is in progress, any request, other than a READ request, triggers the refresh interruption described above. - According to this refresh implementation, the
host controller 200 decides the type of refresh to perform by setting a first refresh value (e.g., 01h) for a manual-force or a second refresh value (e.g., 02h) for a manual-selective refresh operation. Thehost controller 200 sets the first refresh value or the second refresh value in a refresh register (e.g., *bRefreshMethod*) in accordance with the noted JEDEC document. Unfortunately, the decision of selecting between the first refresh value and the second refresh value is not pre-defined; this decision is random. Consequently, a problem occurs if the first refresh value (e.g., manual-force refresh mode) is set when a concurrent I/O request (e.g., a high performance I/O operation) is received from a user-space. - As noted, the JEDEC document prohibits concurrent access of I/O and fresh operations. Therefore, due to the manual-force refresh constraint (e.g., involving all pages/blocks), the manual-force refresh operation is paused, while the I/O operation is performed. Once completed, the manual-force refresh operation resumes. This scenario is problematic because pausing the manual-force refresh operation to process the I/O request significantly contributes to power usage. Unfortunately, selection between manual-force and manual-selective refresh does not consider feedback about the current system performance and power specifications. To address this problem, a solution is proposed for intelligently selecting the type of refresh scheme by considering the performance and power constraints associated with the selected refresh scheme.
- Aspects of the present disclosure enable parallel execution of I/O and refresh operations. Parallel execution of I/O and refresh operations is beneficial in the following scenarios because ignoring the refresh operations results in a high start/stop penalty for refresh operations based on a rate of I/O requests. For example, as a storage device gets older, the refresh rate increases to maintain data retention. Similarly, when the
host controller 200 detects unexpected weak memory cells in a certain partition of the UFS devices 230 (e.g., implemented in the field), thehost controller 200 can request a higher refresh rate for that partition. Thehost controller 200 can also request more frequent refresh at higher temperatures. Thehost controller 200 can also request different refresh rates for different memory types. For example, a refresh rate of triple level cell (TLC) memory is generally greater than a refresh rate for multi-level cell (MLC) memory, which is greater than a refresh rate for single level cell (SLC) memory. - In the existing art, I/O operations are generally prioritized over refresh operations for achieving the short team goal of finishing I/O requests first. This prioritization of I/O operations ignores the importance of device life (e.g., a long term goal). Currently, there is a trade-off between I/O and refresh operations. Aspects of the present disclosure use this trade-off to balance both I/O requests and refresh requests by handling these competing requests in a graceful manner. Balancing I/O and refresh requests may be advantageous in automotive storage devices (e.g., dashboards in cars and drones that are directly exposed to environmental heat). For example, using the
UFS devices 230 as an automotive storage device would involve a higher frequency of refresh operations. -
FIG. 4 is a state diagram illustrating scheduling of universal flash storage (UFS) refresh schemes using a refresh handover mechanism, according to aspects of the present disclosure. Representatively, a UFS refresh state diagram 400 is illustrated for addressing scenarios in which refresh operations and I/O operation are performed in parallel. The UFS refresh state diagram 400 provides various state transitions based on the following scenarios: 1) only refresh operation; 2) I/O request during the refresh operation; 3) refresh operation during an I/O operation; and 4) I/O access operation completes while refresh in progress. In this configuration, the UFS refresh state diagram 400 is based on the following rules: (A) manual-force refresh operations cannot happen in parallel with an I/O operation (e.g., due to conflicting access to the same block); and (B) refresh power and refresh time for a manual-force refresh are always greater than the refresh power and the refresh time of a manual-selective refresh. - Aspects of the present disclosure describe a UFS refresh scheduling scheme, in which a refresh handover mechanism from manual-force refresh to manual-selective refresh is performed in response to an I/O request. This refresh handover mechanism is designed to enforce rules (A) and (B). This implementation enables execution of I/O and refresh operations with improved performance and power saving.
- As shown in
FIG. 4 , a scheduler (e.g., thehost controller 200 ofFIG. 2 ) intelligently selects the refresh scenario type and when handover between the refresh mechanisms should happen (see Table 1). For example, considering scenario 2), handover should happen from manual-force (MF) to manual-selective (MS) refresh for complying with the rules described in (A) and (B). Alternatively, in scenario 4), handover should happen from manual-selective to manual-force refresh for having robust data retention and making sure all the data is refreshed in the background. -
TABLE 1 UFS Refresh Scheduling I/O Request Refresh Request Type of Refresh 0 1 MF 1 0 NA 1 1 MS −>MF, Handover, once the (I/O first) I/O request is complete 1 1 MF −>MS, Handover, once the (Refresh first) I/O request is initiated. -
Total refresh equation: R(MF)+R(MF)·I/O(MS)+I/O(MS)·R(MF) (1) - Table 1 shows a UFS refresh scheduling lookup table, according to aspects of the present disclosure. For example, the
host controller 200 may be configured according to the UFS refresh scheduling lookup table to operate according to the UFS refresh state diagram 400. In this example, the UFS scheduling method complies with the rules of (A) and (B), as shown by the total refresh equation (1). The host controller intelligently performs handover between manual-selective and manual-force refresh by either performing the handover once the competing I/O request is initiated, or once the I/O request completes. This refresh handover mechanism avoids the stop/start penalty caused by pausing manual-force refresh operations to complete I/O requests. - For example, the total refresh equation (1) may be derived as follows based on Table 1. As shown in case-1 (e.g., 01), in which there is only a request for Refresh, and no I/O request, the type of refresh selected MF refresh. Hence, case-1 contributes R·(MF) to the total refresh equation (1). Case-2 (e.g., 10) does not contribute to the total refresh equation (1). Case-3 (e.g., 11—I/O first) is considered after case-4. In case-4 (e.g., 11—refresh first), the type of refresh selected is MF refresh. Meanwhile, if there is a I/O request when refresh is being processed, a refresh handover is perform from MF refresh to MS refresh. Hence, case-4 contributes R(MF)·I/O(MS) to the total refresh equation (1). Regarding case-3, after the handover request from IVIF refresh to MS refresh is performed, the current refresh status is MS refresh. Once the IO being served here is completed, a handover from MS refresh to MF refresh is performed. Hence case-3 contributes I/O(MS)·R(MF) to complete the total refresh equation (1).
- Implementing this UFS scheduling scheme involves defining new standard registers in the
UFS devices 230. The new standard registers may include a register (e.g., REG_REF_EN) to start/stop refresh operation, a register (e.g., REG_SEL_ALGO) to select a type of refresh scheme, and a register (e.g., REG_REF_ADDR_RANGE) for a target start/end address range. A partition range can be selected by setting a start address equal to an end address (e.g., 0x0). - In operation, the
host controller 200 sets the REG_REF_EN register to start a refresh operation. In addition, thehost controller 200 programs the REG_REF_ADDR_RANGE register and a REG_SEL_ALGO register before starting a refresh operation. TheUFS devices 230 may run the refresh operation in the background. The REG_REF_EN register is cleared to 0 by theUFS devices 230 when the refresh operation is complete. In addition, thehost controller 200 can check REG_REF_EN register to see if a refresh operation is on-going or completed to perform according to the UFS refresh scheduling lookup table (see Table 1) when operating according to the UFS refresh state diagram 400. - While the refresh operation is on-going, the
host controller 200 clears the REG_REF_EN register to 0 to stop the refresh operation. For example, during scenarios such as 2) and 4), where the refresh handover mechanism should occur, a bit in the REG_REF_EN register is set to ‘0’ and the REG_SEL_ALGO register is negated and then set back to ‘1’ with the change in refresh scheme. The refresh operation might also be interrupted in the middle. In this scenario, thehost controller 200 restarts the refresh operation for the target address range later corresponding to the REG_REF_ADDR_RANGE register. In operation, the new refresh scheme picks the address where it stopped and resumes the refresh operations. -
FIG. 5 is a flow diagram illustrating a method of scheduling universal flash storage (UFS) refresh operations using a refresh handover mechanism, according to aspects of the present disclosure. Amethod 500 begins atblock 502, in which a request for a refresh operation is received during refresh of a universal flash storage (UFS) device (UFS device). For example, as shown inFIG. 4 , in step 2) a request for an input/output (I/O) operation is received during a manual-force refresh operation. Alternatively, at step 3), a manual-selective refresh operation may be initiated during access by an I/O operation. - Referring again to
FIG. 5 , atblock 504, a handover is performed between a first type of refresh operation and a second type of refresh operation in response to the request for the I/O operation. For example, inFIG. 4 , in step 2) a handover is performed from the manual-force refresh operation to the manual-selective refresh operation after triggering of the I/O operation. Alternatively, handover from a manual-selective refresh operation to a manual-force refresh operation is delayed until after the I/O operation completes. In this aspect of the present disclosure, a host controller (e.g., host controller 200) intelligently performs handover between manual-selective and manual-force refresh by either performing the handover once the competing I/O request is initiated, or once the I/O request completes. This refresh handover mechanism avoids the stop/start penalty caused by pausing manual-force refresh operations to complete the I/O operation request. -
FIG. 6 is a block diagram showing an exemplarywireless communications system 600 in which a configuration of the disclosure may be advantageously employed. For purposes of illustration,FIG. 6 shows threeremote units base stations 640. It will be recognized that wireless communications systems may have many more remote units and base stations.Remote units IC devices FIG. 6 shows forward link signals 680 from thebase station 640 to theremote units remote units base stations 640. - In
FIG. 6 , aremote unit 620 is shown as a mobile telephone, aremote unit 630 is shown as a portable computer, and aremote unit 650 is shown as a fixed location remote unit in a wireless local loop system. For example, the remote units may be a mobile phone, a hand-held personal communications systems (PCS) unit, a portable data unit such as a personal data assistant, a GPS enabled device, a navigation device, a set top box, a music player, a video player, an entertainment unit, a fixed location data unit such as meter reading equipment, or any other device that stores or retrieves data or computer instructions, or any combination thereof. For example, a remote unit including the UFS interface may be integrated within a vehicle control system, a server computing system or other like system specifying critical data integrity. AlthoughFIG. 6 illustratesIC devices - For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the described functions. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory and executed by a processor unit. Memory may be implemented within the processor unit or external to the processor unit. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
- If implemented in firmware and/or software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable medium. Examples include computer-readable media encoded with a data structure and computer-readable media encoded with a computer program. Computer-readable media includes physical computer storage media. A storage medium may be an available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD) and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
- In addition to storage on computer-readable medium, instructions and/or data may be provided as signals on transmission media included in a communications apparatus. For example, a communications apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims.
- Although the present disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions, and alterations can be made herein without departing from the technology of the disclosure as defined by the appended claims. For example, relational terms, such as “above” and “below” are used with respect to a substrate or electronic device. Of course, if the substrate or electronic device is inverted, above becomes below, and vice versa. Additionally, if oriented sideways, above and below may refer to sides of a substrate or electronic device. Moreover, the scope of the present application is not intended to be limited to the particular configurations of the process, machine, manufacture, composition of matter, means, methods, and steps described in the specification. As one of ordinary skill in the art will readily appreciate from the disclosure, processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed that perform substantially the same function or achieve substantially the same result as the corresponding configurations described herein may be utilized according to the present disclosure. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.
- Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
- The various illustrative logical blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- The steps of a method or algorithm described in connection with the disclosure may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM, flash memory, ROM, EPROM, EEPROM, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
- In one or more exemplary designs, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communications media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general-purpose or special-purpose computer. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store specified program code means in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD) and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
- The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language of the claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. A phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover: a; b; c; a and b; a and c; b and c; and a, b, and c. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. § 112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “a step for.”
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/255,477 US10725706B1 (en) | 2019-01-23 | 2019-01-23 | Apparatus and method of scheduling universal flash storage refresh operations according to a refresh handover mechanism |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/255,477 US10725706B1 (en) | 2019-01-23 | 2019-01-23 | Apparatus and method of scheduling universal flash storage refresh operations according to a refresh handover mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
US20200233605A1 true US20200233605A1 (en) | 2020-07-23 |
US10725706B1 US10725706B1 (en) | 2020-07-28 |
Family
ID=71608954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/255,477 Active US10725706B1 (en) | 2019-01-23 | 2019-01-23 | Apparatus and method of scheduling universal flash storage refresh operations according to a refresh handover mechanism |
Country Status (1)
Country | Link |
---|---|
US (1) | US10725706B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210173577A1 (en) * | 2019-12-06 | 2021-06-10 | Micron Technology, Inc. | Configuring partitions of a memory sub-system for different data |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687260B2 (en) | 2021-08-10 | 2023-06-27 | Micron Technology, Inc. | Pre-shutdown media management operation for vehicle memory sub-system |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9778848B2 (en) * | 2014-12-23 | 2017-10-03 | Intel Corporation | Method and apparatus for improving read performance of a solid state drive |
US10199115B2 (en) * | 2016-06-20 | 2019-02-05 | Qualcomm Incorporated | Managing refresh for flash memory |
-
2019
- 2019-01-23 US US16/255,477 patent/US10725706B1/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210173577A1 (en) * | 2019-12-06 | 2021-06-10 | Micron Technology, Inc. | Configuring partitions of a memory sub-system for different data |
US11500567B2 (en) * | 2019-12-06 | 2022-11-15 | Micron Technology, Inc. | Configuring partitions of a memory sub-system for different data |
US20230056216A1 (en) * | 2019-12-06 | 2023-02-23 | Micron Technology, Inc. | Configuring partitions of a memory sub-system for different data |
Also Published As
Publication number | Publication date |
---|---|
US10725706B1 (en) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9558805B2 (en) | Memory modules and memory systems | |
US8650353B2 (en) | Apparatus, system, and method for refreshing non-volatile memory | |
US20130007488A1 (en) | Power management of a storage device including multiple processing cores | |
US20140149822A1 (en) | Selective error correction in memory to reduce power consumption | |
US7290080B2 (en) | Application processors and memory architecture for wireless applications | |
US9477409B2 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (NVM) technology | |
US20110302353A1 (en) | Non-volatile memory with extended operating temperature range | |
US8677051B2 (en) | Memory system, control method thereof, and information processing apparatus | |
CN109473138B (en) | Memory device and refreshing method thereof | |
US10725706B1 (en) | Apparatus and method of scheduling universal flash storage refresh operations according to a refresh handover mechanism | |
US10565064B2 (en) | Effective data change based rule to enable backup for specific VMware virtual machine | |
US8281042B2 (en) | Memory device and management method of memory device | |
US10990321B2 (en) | Memory sub-system for supporting deterministic and non-deterministic commands based on command expiration and the state of the intermediate command queue | |
US11500634B2 (en) | Computer program, method, and device for distributing resources of computing device | |
CN111880744A (en) | Data migration method and device, electronic equipment and medium | |
JP2016505914A (en) | Intelligent dual data rate (DDR) memory controller | |
CN110543433B (en) | Data migration method and device of hybrid memory | |
US9875051B2 (en) | Memory system that controls power state of buffer memory | |
US10474371B1 (en) | Method and apparatus for SSD/flash device replacement policy | |
CN106055516B (en) | System on chip, electronic device including the same, and method of initializing memory | |
US9760145B2 (en) | Saving the architectural state of a computing device using sectors | |
US20130318302A1 (en) | Cache controller based on quality of service and method of operating the same | |
US11275620B2 (en) | Efficient utilization of turbo-write buffers | |
US11126431B1 (en) | Dynamic memory scheduling routine with enhanced bank-group batching | |
US20200241625A1 (en) | Transitioning universal flash storage (ufs) gears during a clock gate/hibernation delay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: QUALCOMM INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BOENAPALLI, MADHU YASHWANTH;SHIN, HYUNSUK;PARAVADA, SURENDRA;AND OTHERS;SIGNING DATES FROM 20190312 TO 20190319;REEL/FRAME:048658/0598 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |