WO2021217536A1 - Systems and methods for health evaluation of storage medium - Google Patents
Systems and methods for health evaluation of storage medium Download PDFInfo
- Publication number
- WO2021217536A1 WO2021217536A1 PCT/CN2020/087939 CN2020087939W WO2021217536A1 WO 2021217536 A1 WO2021217536 A1 WO 2021217536A1 CN 2020087939 W CN2020087939 W CN 2020087939W WO 2021217536 A1 WO2021217536 A1 WO 2021217536A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- storage device
- service life
- storage medium
- consumed
- data
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present disclosure generally relates to memory field, and more particularly, to a method for evaluating the health status of a storage medium.
- Digital storage media are widely used on vehicles for data storage.
- a storage medium implemented on a vehicle usually includes a NAND flash, which can be damaged due to the long service time every day, frequent read, write, and/or erase operations, etc. If the health status of a storage medium cannot be assessed promptly or accurately, a user cannot replace or repair the storage medium in time, which may lead to data loss or even more severe consequences. Therefore, it is desirable to provide methods and systems for accurately and efficiently evaluating the health status of a storage medium.
- a system for health evaluation of a storage medium may include at least one first storage device storing executable instructions.
- the system may include at least one processor in communication with the at least one first storage device.
- the at least one processor may be configured to cause the system to obtain monitoring data of a second storage device, the monitoring data may be from one or more registers of the second storage device and indicate a current running status of the second storage device.
- the at least one processor may also be configured to cause the system to evaluate, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
- the second storage device may include an embedded multi media card, a secure digital memory card, or a T-flash.
- the second storage device may be installed on a vehicle and configured to store driving information associated with the vehicle.
- the at least one processor may further be configured to transmit the evaluation result for the health status of the second storage device to a terminal device.
- the one or more registers of the second storage device may be configured to store extended device specific data (ECSD) .
- ECSD extended device specific data
- the at least one processor may be configured to cause the system to obtain mapping information corresponding to the second storage device, the mapping information may provide a service life that the second storage device consumes under each of multiple running statuses. In some embodiments, the at least one processor may be configured to cause the system to determine, based at least in part on the current service life that the second storage device has consumed, the evaluation result.
- the evaluation result may include a ratio of the current service life to an expected total service life of the second storage device.
- the monitoring data may indicate a usage status of one or more reserved blocks of the second storage device.
- the monitoring data may determine, based at least in part on the current service life that the second storage device has consumed, the evaluate result.
- the at least one processor may be configured to cause the system to obtain, based on the monitoring data, a reminder indicating a proportion that the one or more reserved blocks has been used.
- the at least one processor may be configured to determine, based at least in part on the current service life that the second storage device has consumed and the reminder, the evaluate result.
- the monitoring data may include auxiliary data of at least one of one or more abnormal storage blocks, an erasure status, or a write status of the second storage device. In some embodiments, the monitoring data may determine, based at least in part on the current service life that the second storage device has consumed, the evaluate result. In some embodiments, the at least one processor may be configured to cause the system to receive a command for analyzing the auxiliary data. The at least one processor may be configured to cause the system to analyze the auxiliary data to determine the at least one of the one or more abnormal blocks, the erasure status, or the write status; in response to receipt of the command. The at least one processor may be configured to cause the system to determine, based at least in part on the current service life that the second storage device has consumed and the at least one of the one or more abnormal blocks, the erasure status, or the write status, the evaluate result.
- the monitoring data may include input/output (I/O) statistic data of the second storage device, the monitoring data may evaluate, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
- the at least one processor may be configured to cause the system to determine, based on the I/O statistic data, a current service life that the second storage device has consumed.
- the at least one processor may be configured to evaluate, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
- a system for health evaluation of a storage medium may include a at least one first storage device storing executable instructions.
- the system may include at least one processor in communication with the at least one second storage device.
- the at least one processor may be configured to cause the system to obtain input/output (I/O) statistic data of a second storage device.
- the at least one processor may be configured to cause the system to determine, based on the I/O statistic data, a current service life that the second storage device has consumed.
- the at least one processor may be configured to cause the system to evaluate, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
- the at least one processor may be configured to transmit the evaluation result for the health status of the second storage device to a terminal device.
- a method for health evaluation of a storage medium may be implemented on a computing device having at least one processor and at least one first storage device.
- the method may include obtaining monitoring data of a second storage device, the monitoring data being from one or more registers of the second storage device and indicating a current running status of the second storage device; and evaluating, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
- a non-transitory computer readable medium may store instructions, when executed by at least one processor, the instructions may cause the at least one processor to implement a method.
- the method may include obtaining monitoring data of a storage device, the monitoring data being from one or more registers of the storage device and indicating a current running status of the second storage device; and evaluating, based on the monitoring data of the storage device, a health status of the storage device to obtain an evaluation result.
- a method for health evaluation of a storage medium may be implemented on a computing device having at least one processor and at least one storage device.
- the method may include obtaining input/output (I/O) statistic data of a second storage device.
- the method may also include determining, based on the I/O statistic data, a current service life that the second storage device has consumed.
- the method may further include evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
- a non-transitory computer readable medium may store instructions, when executed by at least one processor, the instructions may cause the at least one processor to implement a method.
- the method may include obtaining input/output (I/O) statistic data of a second storage device.
- the method may also include determining, based on the I/O statistic data, a current service life that the second storage device has consumed.
- the method may further include evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
- FIG. 1 is a schematic diagram illustrating an exemplary health evaluation system for storage mediums according to embodiments of the disclosure
- FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device according to some embodiments of the present disclosure
- FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure
- FIG. 4 is a block diagram illustrating an exemplary processing device according to some embodiments of the present disclosure.
- FIG. 5 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure
- FIG. 6 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure
- FIG. 7 is a schematic diagram illustrating types of a storage unit in a storage medium according to some embodiments of the present disclosure.
- FIG. 8 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure.
- module, ” “unit, ” or “block, ” as used herein refers to logic embodied in hardware or firmware, or to a collection of software instructions.
- a module, a unit, or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable medium or other storage devices.
- a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or from themselves, and/or may be invoked in response to detected events or interrupts.
- Software modules/units/blocks configured for execution on computing devices may be provided on a computer-readable medium, such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) .
- a computer-readable medium such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) .
- Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device.
- Software instructions may be embedded in firmware, such as an erasable programmable read-only memory (EPROM) .
- EPROM erasable programmable read-only memory
- modules/units/blocks may be included in connected logic components, such as gates and flip-flops, and/or can be included of programmable units, such as programmable gate arrays or processors.
- the modules/units/blocks or computing device functionality described herein may be implemented as software modules/units/blocks but may be represented in hardware or firmware.
- the modules/units/blocks described herein refer to logical modules/units/blocks that may be combined with other modules/units/blocks or divided into sub-modules/sub-units/sub-blocks despite their physical organization or storage. The description may be applicable to a system, an engine, or a portion thereof.
- system, ” “engine, ” “unit, ” “module, ” and/or “block” used herein are one method to distinguish different components, elements, parts, sections or assembly of different levels in ascending order. However, the terms may be displaced by another expression if they achieve the same purpose.
- the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments in the present disclosure. It is to be expressly understood, the operations of the flowchart may be implemented not in order. Conversely, the operations may be implemented in an inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
- the storage medium may include an embedded multi-media card (eMMC) , a secure digital memory (SD) card, or a T-flash (TF) .
- the method may include obtaining monitoring data of the storage device storage medium from one or more registers of the second storage device. The monitoring data may indicate a current running status of the storage medium.
- the method may include evaluating, based on the monitoring data of the storage medium, a health status of the storage medium to obtain an evaluation result. For example, the method may include obtaining mapping information corresponding to the storage medium, the mapping information providing a service life that the storage medium consumes under each of multiple running statuses.
- the method may further include determining, based on the monitoring data and the mapping information, a current service life that the storage medium has consumed corresponding to the current running status. Accordingly, the systems and methods as described in the present may determine the health status based on the monitoring data stored in the storage medium itself, which may be accurate for indicating the running status of the storage medium and be convenient for acquisition, thereby improving the accuracy and the efficiency for health evaluation.
- FIG. 1 is a schematic diagram illustrating an exemplary health evaluation system 100 for storage mediums according to some embodiments of the disclosure. Consistent with the present disclosure, the health evaluation system 100 may be configured to evaluate a health status for a storage medium.
- the health evaluation system 100 may include components shown in FIG. 1, including a server 110, a network 120, storage 130, and one or more user devices 140. It is contemplated that the health evaluation system 100 may include more or less components compared to those shown in FIG. 1.
- the server 110 may be configured to process information and/or data relating to the storage devices. For example, the server 110 may evaluate the health status of the storage device by processing monitoring data and/or I/O statistic data associated with a storage medium.
- the server 110 may be a single server, or a server group.
- the server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) .
- the server 110 may be local or remote.
- the server 110 may access information and/or data stored in registers of the storage device via network 120.
- the server 110 may be directly connected to the storage 130 to access stored information and/or data.
- the server 110 may be implemented on a cloud platform.
- the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
- the server 110 may include a processing device 112.
- the processing device 112 may process information and/or data relating to the storage device to perform one or more functions described in the present disclosure.
- the processing device 112 may receive a request for a health evaluation of a storage medium from the user device (s) 140.
- the processing device 112 may obtain information and/or data related to the running status of the storage medium in response to receipt of the request.
- the processing device 112 may include one or more processors (e.g., single-core processing engine (s) or multi-core processor (s) ) .
- the processing device 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
- CPU central processing unit
- ASIC application-specific integrated circuit
- ASIP application-specific instruction-set processor
- GPU graphics processing unit
- PPU physics processing unit
- DSP digital signal processor
- FPGA field programmable gate array
- PLD programmable logic device
- controller a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
- RISC reduced
- the network 120 may facilitate exchange of information and/or data.
- one or more components in the system 100 e.g., the server 110, the storage 130, and the user device (s) 140
- the server 110 may obtain/acquire monitoring data from one or more registers of the storage 130 via the network 120.
- the network 120 may be any type of wired or wireless network, or combination thereof.
- the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth TM network, a ZigBee TM network, a near field communication (NFC) network, a global system for mobile communications (GSM) network, a code-division multiple access (CDMA) network, a time-division multiple access (TDMA) network, a general packet radio service (GPRS) network, an enhanced data rate for GSM evolution (EDGE) network, a wideband code division multiple access (WCDMA) network, a high speed downlink packet access (HSDPA) network, a long term evolution (LTE) network, a user datagram protocol (UDP) network
- LAN local area
- the storage 130 may store data and/or instructions associated with the health evaluation of a storage medium.
- the storage 130 may store data and/or instructions (e.g., algorithms) that the server 110 may execute or use to perform exemplary methods described in the present disclosure.
- the storage 130 may store data (e.g., a request for health evaluation) obtained from the one or more user terminals (e.g., the user device (s) 140) .
- the storage 130 may store I/O statistic data and/or monitoring data associated with the storage medium (i.e., the second storage device) .
- the storage 130 configured to store data and/or instructions associated with the health evaluation of a storage medium may also be referred to as a first storage device.
- the storage medium that needs to be evaluated for the health status may also be referred to as a second storage device.
- the first storage device e.g., the storage 130
- the second storage device may be implemented on a device, such as the user device (s) 140, a vehicle, a computing device (e.g., the processing device 112) , etc.
- the second storage device and the first storage device may be the same one storage device.
- the storage 130 may include any appropriate type of mass storage provided to store any type of information that processing device 112 may need to operate.
- Storage 130 may be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible (i.e., non-transitory) computer-readable medium including, but not limited to a ROM, a flash memory, a dynamic RAM, and a static RAM.
- Storage 130 may be configured to store one or more computer programs that may be executed by processing device 112 to perform functions disclosed herein.
- storage 130 may be configured to store program (s) that may be executed by processing device 112 to evaluate the health status of a storage device.
- Storage 130 may be configured to provide information and/or data related to a running status and/or a service life related to itself.
- the storage 130 may be connected to the network 120 to communicate with one or more components in the online to the health evaluation system 100 (e.g., the server 110, the one or more user terminals, etc. ) .
- One or more components in the health evaluation system 100 may access the data and/or instructions stored in the storage 130 via the network 120.
- the storage 130 may be directly connected to or communicate with one or more components in the health evaluation system 100 (e.g., the server 110, the one or more user terminals, etc. ) .
- the storage 130 may be part of the server 110.
- one or more components in the health evaluation system 100 may have a permission to access the storage 130.
- one or more components in the health evaluation system 100 may read and/or modify information relating to the health evaluation of a storage medium when one or more conditions are met.
- the user device (s) 140 may include a mobile device 140-1, a tablet computer 140-2, a laptop computer 140-3, a built-in device in a vehicle 140-4, a wearable device 140-5, or the like, or any combination thereof.
- the mobile device 140-1 may include a smart home device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
- the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof.
- the smart mobile device may include a smartphone, a personal digital assistant (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof.
- the virtual reality device and/or the augmented reality device may include a virtual reality helmet, virtual reality glasses, a virtual reality patch, an augmented reality helmet, augmented reality glasses, an augmented reality patch, or the like, or any combination thereof.
- the virtual reality device and/or the augmented reality device may include Google TM Glasses, an Oculus Rift, a HoloLens, a Gear VR, etc.
- the built-in device in the vehicle 140-4 may include an onboard computer, an onboard television, etc.
- the wearable device 140-5 may include a smart bracelet, a smart footgear, smart glasses, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
- the user device (s) 140 may include a user interface configured to facilitate communication between a user and one or more components of the health evaluation system 100. For example, a user of the user device (s) 140 may use the user device (s) 140 to send a request for health status evaluation of a storage medium associated with the user device (s) 140 via the user interface. As another example, the user device (s) 140 may receive an evaluation result of the storage medium from the server 110 and display the evaluation result for the health status of the storage device via the user interface for the user.
- an element of the health evaluation system 100 may perform through electrical signals and/or electromagnetic signals.
- the element may perform through electrical signals and/or electromagnetic signals.
- a processor of the user device (s) 140 may generate electrical signals encoding the request.
- the processor of the user device (s) 140 may then send the electrical signals to an output port. If the user device (s) 140 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which further transmits the electrical signal to an input port of the server 110.
- the output port of the user device (s) 140 may be one or more antennas, which convert the electrical signal to electromagnetic signal.
- the user device (s) 140 may process a task through the operation of logic circuits in its processor, and receive an instruction and/or service request from the server 110 via electrical signal or electromagnet signals.
- an electronic device such as the user device (s) 140 and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals.
- the processor when it retrieves or saves data from a storage medium, it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium.
- the structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device.
- an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
- FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 according to some embodiments of the present disclosure.
- the computing device 200 may be used to implement any component of the health evaluation system 100 as described herein.
- the user device (s) 140 and/or the processing device 112 may be implemented on the computing device 200, respectively, via its hardware, software program, firmware, or a combination thereof.
- the computer functions relating to the health evaluation system 100 as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
- the computing device 200 may include a communication bus 210, a processor 220, a storage device, an input/output (I/O) 260, and a communication port 250.
- the processor 220 may execute computer instructions (e.g., program code) and perform functions of one or more components of the health evaluation system 100 (e.g., the server 110) in accordance with techniques described herein.
- the computer instructions may include, for example, routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions described herein.
- the processor 220 may include interface circuits and processing circuits therein.
- the interface circuits may be configured to receive electronic signals from the communication bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process.
- the processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the communication bus 210.
- the processor 220 may include one or more hardware processors, such as a microcontroller, a microprocessor, a reduced instruction set computer (RISC) , an application-specific integrated circuits (ASICs) , an application-specific instruction-set processor (ASIP) , a central processing unit (CPU) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a microcontroller unit, a digital signal processor (DSP) , a field-programmable gate array (FPGA) , an advanced RISC machine (ARM) , a programmable logic device (PLD) , any circuit or processor capable of executing one or more functions, or the like, or any combinations thereof.
- RISC reduced instruction set computer
- ASICs application-specific integrated circuits
- ASIP application-specific instruction-set processor
- CPU central processing unit
- GPU graphics processing unit
- PPU physics processing unit
- DSP digital signal processor
- FPGA field-programmable gate array
- ARM advanced RIS
- processor 220 is described in the computing device 200.
- the computing device 200 in the present disclosure may also include multiple processors, thus operations and/or method operations that are performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors.
- the processor of the computing device 200 executes both operation A and operation B
- operation A and operation B may also be performed by two or more different processors jointly or separately in the computing device 200 (e.g., a first processor executes operation A and a second processor executes operation B, or the first and second processors jointly execute operations A and B) .
- the storage device may store data/information related to the health evaluation system 100.
- the storage device may include a mass storage device, a removable storage device, a volatile read-and-write memory, a random access memory (RAM) 240, a read-only memory (ROM) 230, a disk 270, or the like, or any combination thereof.
- the storage device may store one or more programs and/or instructions to perform exemplary methods described in the present disclosure.
- the storage device may store a program for the processor 220 to execute.
- the I/O 260 may input and/or output signals, data, information, etc. In some embodiments, the I/O 260 may enable a user interaction with the computing device 200. In some embodiments, the I/O 260 may include an input device and an output device. Examples of the input device may include a keyboard, a mouse, a touch screen, a microphone, or the like, or a combination thereof. Examples of the output device may include a display device, a loudspeaker, a printer, a projector, or the like, or a combination thereof.
- Examples of the display device may include a liquid crystal display (LCD) , a light-emitting diode (LED) -based display, a flat panel display, a curved screen, a television device, a cathode ray tube (CRT) , a touch screen, or the like, or a combination thereof.
- LCD liquid crystal display
- LED light-emitting diode
- CRT cathode ray tube
- the communication port 250 may be connected to a network (e.g., the network 120) to facilitate data communications.
- the communication port 250 may establish connections between the computing device 200 and one or more components of the health evaluation system 100.
- the connection may be a wired connection, a wireless connection, any other communication connection that can enable data transmission and/or reception, and/or any combination of these connections.
- the wired connection may include, for example, an electrical cable, an optical cable, a telephone wire, or the like, or any combination thereof.
- the wireless connection may include, for example, a Bluetooth TM link, a Wi-Fi TM link, a WiMax TM link, a WLAN link, a ZigBee link, a mobile network link (e.g., 3G, 4G, 5G, etc.
- the communication port 250 may be and/or include a standardized communication port, such as RS232, RS485, etc. In some embodiments, the communication port 250 may be a specially designed communication port.
- FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device 300 according to some embodiments of the present disclosure.
- one or more components of the health evaluation system 100 such as the user device (s) 140 and/or the processing device 112 may be implemented on the mobile device 300.
- the mobile device 300 may include a communication platform 310, a display 320, a graphics processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390.
- any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
- a mobile operating system 370 e.g., iOS TM , Android TM , Windows Phone TM , etc.
- the applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to the coupon system 100.
- User interactions with the information stream may be achieved via the I/O 350 and provided to one or more other components of the coupon system 100 via the network 120.
- computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein.
- a computer with user interface elements may be used to implement a personal computer (PC) or any other type of work station or terminal device.
- PC personal computer
- a computer may also act as a server if appropriately programmed.
- FIG. 4 is a block diagram illustrating an exemplary processing device 112 according to some embodiments of the present disclosure.
- the processing device 112 may include an obtaining module 440, a determination module 420, an evaluation module 430, a transmitting module 440, and a storage module 450.
- the obtaining module 410 may be configured to obtain monitoring data of a storage medium, the monitoring data indicating a current running status of the second storage device. For example, the obtaining module 410 may obtain a reminder indicating a proportion that the one or more reserved blocks has been used based on the monitoring data. As another example, the obtaining module 410 may obtain auxiliary data associated with the at least one of the one or more abnormal blocks, the erasure status, or the write statues based on the monitoring data. The obtaining module 410 may also be configured to obtain input/output (I/O) statistic data of a storage medium. In some embodiments, the obtaining module 410 may obtain monitoring data from one or more second storage devices (for example, a SLC, a MLC, etc., ) .
- I/O input/output
- the obtaining module 410 may obtain information from an external source via a network (e.g., the network 120) . More descriptions regarding obtaining the monitoring data of the storage medium may be found elsewhere in the present disclosure. See, e.g., operation 510 in FIG. 5 and relevant descriptions thereof. More descriptions regarding obtaining the I/O statistic data of the storage medium may be found elsewhere in the present disclosure. See, e.g., operation 810 in FIG. 8 and relevant descriptions thereof.
- the determination module 420 may be configured to determine, based on I/O statistic data, a current service life that the storage medium has consumed. For example, the determination module 420 may determine the current service life based on the data volume that has written into the storage medium. More descriptions regarding determining a current service life that the storage medium has consumed may be found elsewhere in the present disclosure. See, e.g., operation 820 in FIG. 8 and relevant descriptions thereof.
- the evaluation module 430 may be configured to evaluate, based on the monitoring data of the storage device, a health status of the storage medium to obtain an evaluation result.
- the evaluation module 430 may also be configured to evaluate, based on the current service life that the second storage device has consumed, a health status of the storage medium to obtain an evaluation result.
- the transmitting module 440 may be configured to transmit the evaluation result for the health status of the storage medium to a user device.
- the evaluation result may include the current service life that the storage medium has consumed, the remaining service life of the storage medium, the abnormal storage blocks condition, a health value, a health level, etc. More descriptions regarding transmitting the evaluation result for the health status to the user device may be found elsewhere in the present disclosure. See, e.g., operation 530 in FIG. 5 and operation 840 in FIG. 8 and relevant descriptions thereof.
- the storage module 450 may be configured to store data and/or instructions associated with the health evaluation of a storage medium.
- the storage module 450 may store data and/or instructions (e.g., algorithms) to perform exemplary methods described in the present disclosure.
- the storage module 450 may store data (e.g., a request for health evaluation) obtained from the one or more user terminals (e.g., the user device (s) 140) .
- the storage module 450 may store I/O statistic data and/or monitoring data associated with the storage medium (i.e., the second storage device) .
- the health evaluation system 100 and relevant modules may be implemented in various ways.
- the health evaluation system 100 and relevant modules may be implemented through hardware, software, or a combination of software and hardware.
- the hardware component may be implemented by a dedicated logic
- the software component may be stored in the storage which may be executed by a suitable instruction execution system, for example, a microprocessor or a dedicated design hardware.
- a suitable instruction execution system for example, a microprocessor or a dedicated design hardware.
- control codes may be provided by a medium such as a disk, a CD, or a DVD-ROM, a programmable memory device such as read-only memory (e.g., firmware) , or a data carrier such as an optical or electric signal carrier.
- the health evaluation system 100 and relevant modules of the present disclosure may be implemented by hardware circuits, e.g., very large-scale integrated circuits or gate arrays, semiconductors such as logic chips or transistors, programmable hardware devices such as field-programmable gate arrays or programmable logic devices, etc.
- the health evaluation system 100 and relevant modules may be implemented by software executed by various processors.
- the health evaluation system 100 and relevant modules may also be implemented by a combination (e.g., firmware) of the hardware circuits and the software.
- the above description of the processing device 112 and relevant modules is for convenience of description only, and cannot limit the present disclosure to be within the scope of the illustrated embodiment.
- modules may be combined in various ways or connected with other modules as sub-systems, and various modifications and transformations in form and detail may be conducted under the teaching of the present disclosure.
- the transmitting module 440 and the storage module 450 may be integrated into one module or omitted.
- the evaluation module 430 and the determination module 420 may be integrated into one module. Such modification is within the protection scope of the present disclosure.
- the processing device 112 may further include one or more additional modules, such as a storage module.
- FIG. 5 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure.
- Process 500 may be executed by the health evaluation system 100.
- process 500 may be implemented as a set of instructions stored in the storage ROM 230 or RAM 240.
- the processor 220 and/or the modules in FIG. 4 may execute the set of instructions stored in a storage device (e.g., the storage 130) which may also be referred to as a first storage device, and when executing the instructions, the processor 220 and/or the modules may be configured to perform process 500.
- a storage device e.g., the storage 130
- the processor 220 and/or the modules may be configured to perform process 500.
- the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of process 500 as illustrated in FIG. 5 and described below is not
- the processing device 112 may obtain monitoring data of a storage medium.
- the monitoring data may be acquired from one or more registers of the storage medium.
- the monitoring data may indicate a current running status of the storage medium.
- the storage medium of which the health status needs to be evaluated may also be referred to as a second storage device.
- the second storage device may be a storage device different form the first storage device configured to store executable instructions, programs, formulas, etc., for evaluating the health status of the second storage device.
- the second storage device and the first storage device may be the same one storage device.
- the storage medium may include a controller and multiple storage modules (also referred to as storage blocks) .
- the controller may be configured to control the access of the storage device.
- the controller may include multiple registers, such as a CID register, an RCA register, a DSR register, a CSD register, an OCR register, an ECSD register, etc.
- Each of the storage modules may include a plurality of storage cells. According to a count or number of bits stored by a storage cell, the storage cell may include a single-level cell (SLC) , a multi-level cell (MLC) , a triple-level cell (TLC) , or a quad-level cell (QLC) . More descriptions for a storage cell may be found in FIG. 7 and the descriptions thereof.
- the storage medium may include a NAND flash. Exemplary NAND flashes may include an embedded multi-media card (eMMC) , a secure digital memory (SD) card, a T-flash (TF) , etc.
- the storage medium may be implemented on a user device (e.g., a vehicle or the user device (s) 140 as described in FIG. 1) .
- a user device e.g., a vehicle or the user device (s) 140 as described in FIG. 1
- an SD card may be implemented on a portable device (e.g., a camera a PDA, a laptop, a multimedia player) , an on-board computer, etc.
- a TF card may be implemented on a mobile phone, a GPS receiver, a driving recorder, a dome camera, a portable music player, etc.
- the storage medium may be installed on a vehicle including a car, a bus, a shared bike, a boat, a train, a subway, or the like, or any other combination thereof.
- the monitoring data may include a current temperature of the storage medium, a usage status of the storage medium (e.g., remaining storage capacity, current used capacity) , a running speed (e.g., data transmission speed, write speed, read speed, erase speed, etc. ) , an error status (e.g., a frequency for reporting errors, types of the errors) , a usage status of reserved blocks (e.g., used capacity of the reserved blocks, remaining capacity of the reserved blocks, etc. ) , a congestion degree, auxiliary data (e.g., data associated with at least one of one or more abnormal storage blocks, an erasure status, a write status of the storage medium) , etc., or a combination thereof.
- the monitoring data may indicate the health status of the storage medium.
- the monitoring data which includes the running speed, may indicate that the health status of the storage medium is good (e.g., suggesting that no further action is needed) ; conversely, if the running speed of the storage medium is low, i.e. does not reach a predetermined regular-speed threshold, the monitoring data may indicate that the health status of the storage medium is bad (e.g., suggesting that some actions should be taken) .
- the monitoring data which includes the congestion degree, may indicate that the health status of the storage medium is bad; conversely, if the congestion degree of the storage medium is low (e.g., less than a threshold) , the monitoring data may indicate that the health status is good.
- the monitoring data may be acquired by the controller in the storage medium according to a default setting of a provider (e.g., a supplier, a manufacturer) of the storage medium.
- the controller may store the acquired monitoring data in one or more registers.
- the processing device 112 may obtain the monitoring data from the one or more registers.
- the monitoring data of the storage medium e.g., an eMMC card
- ECSD extended device-specific data register defined by eMMC 5.1 electrical standard.
- the processing device 112 may evaluate, based on the monitoring data of the storage medium, a health status of the storage medium to obtain an evaluation result.
- the health status of the storage medium may be reflected by a service life that the storage medium has consumed (also referred to as used service life) , a remaining service life that the storage medium can consume (also referred to as remaining service life) , etc.
- a service life that the storage medium has consumed also referred to as used service life
- a remaining service life that the storage medium can consume also referred to as remaining service life
- the evaluation result may include descriptions for the health status.
- the evaluation result may include the used service life, the remaining service life, a ratio of the used service life to the expected total service life, a ratio of the remaining service life to the expected total service life, a number or count of abnormal storage blocks, a ratio of the count of abnormal storage blocks to the total count of storage blocks, a number or count of normal storage blocks, a ratio of the count of normal storage blocks to the total count of storage blocks, a warning or reminder for the health status, a health value (or score) for the health status, etc.
- the processing device 112 may obtain reference data that provides a relationship between the health status and the running status of the storage medium.
- the processing device 112 may evaluate the health status of the storage medium based on the reference data and the monitoring data that indicates the current running status.
- the reference data may include mapping information providing a service life that the storage medium consumes under each of multiple running statuses.
- the processing device 112 may determine, based on the monitoring data and the mapping information, the current service life that the storage medium has consumed corresponding to the current running status.
- the evaluation result may include the current service life that the storage medium has consumed corresponding to the current running status or the ratio of the current service life that the storage medium has consumed to the expected total service life.
- the reference data may include mapping information providing a warning or reminder under each of the multiple usage statuses of reserved blocks in the storage medium.
- the processing device 112 may determine a warning or reminder based on the usage status of reserved blocks in the monitoring data and the mapping information.
- the evaluation result may include a warning degree. More descriptions for evaluating the health status of the storage medium may be found in FIG. 6 and the descriptions thereof.
- the processing device 112 may obtain a trained machine learning model.
- the processing device 112 may input at least a portion of the monitoring data into the trained machine learning model to evaluate the health status.
- the trained machine learning model may determine the current service life that the storage medium has consumed based on the inputted monitoring data.
- the trained machine learning model may determine the health value of that the storage medium based on the inputted monitoring data.
- the trained machine learning model may be obtained by a processing device that is same as or different from the processing device 112 via training a machine learning model using a plurality of training samples according to a training algorithm (e.g., a backpropagation training algorithm, a gradient descent algorithm, etc.
- a training algorithm e.g., a backpropagation training algorithm, a gradient descent algorithm, etc.
- Each of the plurality of training samples may include monitoring data of a storage device (also referred to as a third storage device) that is same as or different from the storage medium (i.e., the second storage device) and a health status (e.g., a service life that has been consumed) of the third storage device.
- a storage device also referred to as a third storage device
- a health status e.g., a service life that has been consumed
- the processing device 112 may transmit the evaluation result for the health status of the storage medium to a user device.
- the user device e.g., the user device (s) 140
- the user device may include a laptop, a stationary computer, a table computer, a mobile device, or the like, or any combination thereof.
- operation 330 may be omitted. More descriptions regarding the user device may be found elsewhere in the present disclosure. See, e.g., FIG. 1 and relevant descriptions thereof.
- one or more other optional operations may be added elsewhere in the exemplary process 500.
- a storing operation for storing monitoring data of the storage medium or storing the evaluation result of the health status of the storage medium, etc., may be added.
- FIG. 6 is a flowchart illustrating a method for an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure.
- the process 600 may be executed by the health evaluation system 100.
- the process 600 may be implemented as a set of instructions stored in the storage ROM 230 or RAM 240.
- the processor 220 and/or the modules in FIG. 4 may execute the set of instructions stored in a storage device (e.g., the storage 130) which may also be referred to as a first storage device, and when executing the instructions, the processor 220 and/or the modules may be configured to perform the process 600.
- a storage device e.g., the storage 130
- the processor 220 and/or the modules may be configured to perform the process 600.
- the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 600 as
- the processing device 112 may obtain mapping information corresponding to a storage medium.
- the mapping information may provide a service life that the storage medium consumes under each of multiple running statuses.
- the storage medium of which the health status needs to be evaluated may also be referred to as a second storage device. More descriptions regarding the second storage device may be found elsewhere in the present disclosure (e.g., FIG. 5 and the descriptions thereof) .
- each of the multiple running statuses may be described using running parameters of the storage medium.
- the running parameters may relate to a temperature of the storage device, a usage status of the storage device (e.g., a remaining storage capacity, a used storage capacity) , a running speed (e.g., a data transmission speed, a write speed, a read speed, an erase speed, etc. ) , an error status (e.g., a frequency for reporting errors, types of the errors) , a usage status of reserved blocks (e.g., a used capacity of reserved blocks, a remaining capacity of reserved blocks, etc. ) , a congestion degree, auxiliary data (e.g., data associated with at least one of one or more abnormal storage blocks, an erasure status, a write status of the storage device) , etc., or a combination thereof.
- auxiliary data e.g., data associated with at least one of one or more abnormal storage blocks, an erasure status, a write status of the storage device
- the mapping information may be used to estimate a service life that the storage medium has consumed corresponding to a specific running status.
- Each of the multiple running statuses of the storage medium may correspond to a service life that the storage medium has consumed or a range of the service life that the storage medium has consumed.
- Each of the multiple running statuses may include a range of each of the multiple running parameters, such as a temperature range of the running temperature, a speed range of the running speed, a frequency range of the frequency for reporting errors, etc., or a combination of the multiple ranges of multiple running parameters.
- the service life that the storage medium has consumed may be defined by a ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium.
- Each of the multiple running statuses of the storage medium may correspond to a range of the ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium.
- the range of the ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium may include a constant length, such as 5%, 10%, 15%, 20%, etc.
- the range of the ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium may include 0%-10%, 10%-20%, 20%-30%, 30%-40%, 40%-50%, 50%-60%, 60%-70%, 70%-80%, 80%-90%, or 90%-100%.
- the mapping information may indicate that the service life that the storage medium has consumed may be different when the storage medium is under different running statuses. For example, when a storage device has performed erasure operation for fifty thousand times and the used capacity of the storage device is zero, it may be determined that the storage device has consumed about half of the expected total service life; when a storage device has performed erasure operation for about one hundred thousand times and the used capacity of the storage device is one third, it may be determined that the storage device has consumed a majority of the expected total service life.
- the mapping information may include first mapping information corresponding to SLC storage blocks, second mapping information corresponding to MLC storage blocks, etc.
- the first mapping information and the second mapping information may be different.
- a running status of the storage medium with 100 thousand erasure times may correspond to a service life that the storage medium has consumed in a range from 50%to 60%.
- a running status of the storage medium with 100 thousand erasure times may correspond to a service life that the storage medium has consumed in a range from 60%to 70%.
- the mapping information may be a default setting of the health evaluation system 100 and stored in one or more registers of the storage medium in the form of a table, a model, a function, etc.
- the mapping information may be a default setting of a provider (e.g., a supplier, a manufacturer) of the storage medium.
- the processing device 112 may obtain the mapping information from the one or more registers of the storage medium.
- the mapping information of the storage medium e.g., an eMMC card
- the mapping information of the storage medium may be obtained from an ECSD (extended device-specific data) register that meets eMMC 5.1 electrical standards.
- the mapping information may be stored in the first storage device, an external database, etc.
- a model for health evaluation (e.g., a trained machine learning model) may be obtained.
- the trained machine learning model can be considered as part of the mapping information.
- the trained machine learning model may be obtained by training a machine learning model based on a plurality of training samples associated with a storage device that is the same as or different from the storage medium. Each of the plurality of training samples may include running data of the storage device indicating a running status of the storage device and the service life that the storage device has consumed under the running status.
- the trained machine learning model may be configured to output a service life of a storage device (e.g., the second storage device) that has been consumed based on inputted data (e.g., the monitoring data of the storage medium as described in FIG. 5) .
- the processing device 112 may determine, based on the monitoring data and the mapping information, a current service life that the storage medium has consumed corresponding to the current running status.
- the monitoring data of the storage medium may be obtained as described in connection with operation 510.
- the monitoring data may include a current temperature of the storage device, a usage status of the storage device a running speed of the storage medium, (e.g., a remaining storage capacity, a used storage capacity) , a running speed (e.g., a current data transmission speed, a writing speed, a reading speed, an erase speed, etc. ) , an error status (e.g., a frequency for reporting errors, types of the errors) , a usage status of reserved blocks (e.g., a used capacity of reserved blocks, a free capacity of reserved blocks, etc.
- a usage status of reserved blocks e.g., a used capacity of reserved blocks, a free capacity of reserved blocks, etc.
- the mapping information may provide a service life that the storage medium has consumed under each of the multiple running statuses. Based on the current running status of the storage medium indicated by the monitoring data, the processing device 112 may determine the current service life that the storage medium has consumed corresponding to the current running status based on the mapping information.
- the mapping information may describe the current service life that the storage medium has consumed using one or more values.
- the mapping information may describe the current service life that the storage medium has consumed using one or more hexadecimal data, decimal data, or ASCII data.
- the processing device 112 may obtain, based on the mapping information, a value representing the current service life that the storage medium has consumed.
- the processing device 112 may obtain value “0X01” ; when the storage medium has consumed 10%-20%of the expected total service life, the processing device 112 may obtain value “0x02” ; when the storage medium has consumed 80%-90%of the expected total service life, the processing device 112 may obtain value “0x09” ; when the storage medium has consumed 90%-100%of the expected total service life, the processing device 112 may obtain value “0x0A” , etc. See, e.g., Table 1 and relevant descriptions thereof.
- the processing device 112 may obtain, based on the monitoring data, a reminder indicating a ratio that the one or more reserved blocks have been used.
- the monitoring data may include the usage status of the one or more reserved blocks in the storage medium.
- the usage status of the one or more reserved blocks may include a ratio of the capacity of the one or more reserved blocks that has consumed (also referred to used capacity) to the total capacity of the one or more reserved blocks.
- the one or more reserved blocks of the storage medium may be provided by a supplier to form an over-provisioning which improves the capability and the durability of the storage medium and prolongs the service life of the storage device.
- the capacity of the over-provisioning (also referred to as the total capacity of the one or more reserved blocks) may relate to the capacity of the storage medium provided by the supplier. For example, if the actual capacity of the storage medium is 64GB, and the available capacity of the storage medium is 60GB, the over-provisioning may be 7%.
- the reminder may indicate a degree that the one or more reserved blocks have been consumed in the storage medium (i.e., the usage status of the one or more reserved blocks) .
- the degree that the one or more reserved blocks have been consumed in the storage medium may indicate the current service life that the storage medium has consumed. For example, the higher the degree that the one or more reserved blocks have been consumed in the storage medium, the longer the current service life that the storage medium has consumed.
- the reminder may be in the form of a digital indicator (e.g., 1, 2, 3, etc. ) , a word (e.g., “Normal” , “Warning” , etc. ) , a symbol (e.g., “! ” , “! ! ” , etc.
- the processing device 112 may obtain the reminder based on mapping information that provides a specific reminder under each of multiple usage statuses of the one or more reserved blocks. For example, as shown in Table 2, if the reserved blocks have been consumed 80%, the reminder may be described as “Warning; ” if the reserved blocks have been consumed 20%, the reminder may be described as “Normal. ”
- the processing device 112 may obtain, based on the mapping information providing a specific reminder under each of multiple usage statuses of the one or more reserved blocks, a value representing the reminder. For example, as shown in Table 2, when the storage medium has consumed 20%of the reserved blocks, the reminder may include “Normal” , and the processing device 112 may obtain value “0X01” ; when the storage medium has consumed 80%of the reserved blocks, the reminder may include “Warning” , and the processing device 112 may obtain value “0X02” ; when the storage medium has consumed 90%of the reserved blocks, the reminder may include “Urgent” , and the processing device 112 may obtain value “0X03. ”
- the processing device 112 may obtain auxiliary data associated with at least one of one or more abnormal storage blocks, an erasure status, or a write status of the storage device.
- the auxiliary data may include a count or number of the abnormal storage blocks in the storage medium, a cumulative number of erasures of the storage medium, a cumulative number of writes of the storage medium, etc.
- the processing device 112 may receive a command (such as CMD 56) for analyzing the auxiliary data, and in response to receipt of the command, the processing device 112 may obtain the auxiliary data from the one or more registers in the storage medium.
- a command such as CMD 56
- the processing device 112 may obtain the auxiliary data from the one or more registers in the storage medium.
- the processing device 112 may obtain the auxiliary data using one or more system-provided tools.
- the one or more one or more system-provided tools may be implemented on the x86 platform, the ARM platform, the PPC platform, etc.
- the one or more system-provided tools may be provided or developed one or more suppliers.
- the one or more system-provided tools may include the emmcparm tool provided by Micron.
- the processing device 112 may determine, based on the current service life that the storage medium has consumed, the reminder, and/or the auxiliary data, an evaluation result.
- the evaluation result may include descriptions for the health status.
- the evaluation result may include the used service life, the remaining service life, a ratio of the used service life to the expected total service life, a ratio of the remaining service life to the expected total service life, a number or count of abnormal storage blocks, a ratio of the count of abnormal storage blocks to the total count of storage blocks, a number or count of normal storage blocks, a ratio of the count of normal storage blocks to the total count of storage blocks, a warning or the reminder for the health status, etc.
- the processing device 112 may determine a health value (or score) for evaluating the health status based on the current service life that the storage medium has consumed, the reminder, and/or the auxiliary data, etc.
- FIG. 7 is a schematic diagram illustrating types of a storage unit in a storage medium according to some embodiments of the present disclosure.
- the storage cell may include a single-level cell (SLC) , a multi-level cell (MLC) , a triple-level cell (TLC) , or a quad-level cell (QLC) .
- SLC single-level cell
- MLC multi-level cell
- TLC triple-level cell
- QLC quad-level cell
- An SLC may store 1 bit.
- An MLC may store 2 bits.
- a TLC may store 3 bits, and a QLC may store 4 bits.
- a storage unit in a storage medium may store information according to different voltage levels. As shown in FIG.
- the voltage in the SLC may include two levels denoted by 0 and 1, i.e., 1 bit; for an MLC, the voltage in the MLC may include four levels denoted by 00/01/10/11, i.e., 2 bits; for a TLC, the voltage in the MLC may include eight levels denoted by 000/001/010/011/100/101/110/111/, i.e., 3 bits; for a QLC, the voltage in the MLC may include sixteen levels denoted by 0000/0001/0010/0011/0100/0101/0110/0111/1000/1001/1010/1011/1100/1101/1110/1111 , i.e., 4 bits.
- the expected total service life of a storage medium may relate to the erasure times of the storage medium. The more the erasure times of the storage medium is, the longer the expected total service life of a storage medium may be.
- the expected total service life of an SLC may correspond to 1000 thousand erasure times
- the expected total service life of an MLC may correspond to 1000 to 3000 erasure times
- the expected total service life of a TLC may correspond to 1000 erasure times, etc.
- the SLC may have the longest service life among the MLC, TLC, and QLC.
- FIG. 8 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure.
- Process 800 may be executed by the health evaluation system 100.
- process 800 may be implemented as a set of instructions stored in the storage ROM 230 or RAM 240.
- the processor 220 and/or the modules in FIG. 4 may execute the set of instructions stored in a storage device (e.g., the storage 130) which may also be referred to as a first storage device, and when executing the instructions, the processor 220 and/or the modules may be configured to perform process 800.
- the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of process 800 as illustrated in FIG. 8 and described below is not intended to be limiting.
- the processing device 112 may obtain input/output (I/O) statistic data of a storage medium.
- the storage device of which the health status needs to be evaluated may also be referred to as a second storage device.
- the second storage device may be a storage device different from the first storage device configured to store executable instructions, programs, formulas, etc., for evaluating the health status of the second storage device.
- the second storage device and the first storage device may be the same one storage device.
- the second storage device and the first storage device may be different storage devices.
- the storage medium may include an embedded multi-media card (eMMC) , a secure digital memory (SD) card, a T-flash (TF) , etc.
- the storage medium may be implemented on a user device (e.g., the user device (s) 140 as described in FIG. 1) .
- an SD card may be implemented on a portable device (e.g., a camera a PDA, a laptop, a multimedia player) , an on-board computer, etc.
- a TF card may be implemented on a mobile phone, a GPS receiver, a driving recorder, a dome camera, a portable music player, etc.
- the processing device 112 may obtain the I/O statistic data associated with the storage medium. For example, a user may input the request for the health evaluation of the storage medium via a user interface implemented on a user device (e.g., a mobile phone) that is same as or different from the user device (e.g., a vehicle) where the storage medium is implemented.
- a user may input the request for the health evaluation of the storage medium via a user interface implemented on a user device (e.g., a mobile phone) that is same as or different from the user device (e.g., a vehicle) where the storage medium is implemented.
- the processing device 112 may perform the health evaluation of the storage medium from time to time, e.g., periodically or not.
- the processing device 112 may obtain the I/O statistic data associated with the storage medium from time to time, e.g., periodically or not.
- the processing device 112 may obtain the I/O statistic data associated with the storage medium periodically, such as every one month, every two months, every four months, etc.
- the processing device 112 may obtain the I/O statistic data using one or more system-provided tools for monitoring IO of the storage medium.
- the one or more system-provided tools for monitoring IO may include iostat, vmstat, sar, iotop, pidstat, ioprofile, etc., on various Linux TM -based platforms, Unix TM -based platforms, etc.
- the processing device 112 may obtain the I/O statistic data using cat/proc/pid/io on a Linux TM -based platform since version 2.6.20.
- the processor may receive one or more isotat commands, and in response to receipt of the one or more iostat commands, the processor may obtain the input/output (I/O) statistic data of with the second storage device using the one or more isotat commands.
- the processing device 112 may open multiple kernel options on a Linux TM -based platform including:
- the input/output (I/O) statistic data associated with the storage medium may be obtained by inputting cat /proc/self/io commands based on the opened kernel options and the obtained input/output (I/O) statistic data may be shown as followings:
- rchar refers to a total number of bytes read from pagecache
- wchar refers to a total number of bytes written to pagecache
- syscr refers to a total number of invocations of read or pread
- syscw refers to a total number of invocations of write or pwrite
- read_bytes refers to an actual total number of bytes read from a storage device
- write_bytes refers to an actual total number of bytes written to the storage device
- cancelled_write_bytes refers to the number of write bytes that should have occurred but did not occur due to page cache truncation.
- the processing device 112 may determine, based on the I/O statistic data, a current service life that the storage medium has consumed.
- the processing device 112 may determine, based on the I/O statistic data, a data volume that has been written into the storage medium.
- the processing device 112 may determine the current service life that the storage medium has consumed based on the data volume that has written into the storage medium.
- the data volume that has been written into the storage medium may be defined by the total number of bytes that have been written into the storage medium.
- the data volume that has been written into the storage medium may include the actual total number of bytes written to the storage device as described in operation 810.
- the current service life that the storage medium has consumed may be reflected by a ratio of the data volume that has been written into the storage medium to a total data volume that could be written into the storage medium.
- the total data volume that could be written into the storage medium may be a default setting of the health evaluation system 100.
- the total data volume that can be written into a storage device may be determined based on the capability, the erasure times of the storage device during the whole service cycle, write amplification, wear equalization, etc.
- the processing device 112 may determine the total data volume that could be written into the storage medium according to Equations (1) – (3) as follows:
- V capacity*total erasure times
- WA Factor refers to a factor of write amplification
- WL Factor refers to a factor of wear equalization.
- WA Factor and/or WL Factor may be default settings of the health evaluation system 100.
- WA Factor may be a constant in a range from 1.1 to 10.
- WL Factor may be a constant in a range from 1.1 to 3.
- F may be in a range from 1.21 to 30 determined according to Equation (3)
- V may be equal to 96T determined according to Equation (2)
- the total data volume that can be written into the storage device may be 3.2T to 79.3T determined according to Equation (1) .
- the current service life that the storage medium has consumed may be reflected by the length of the current service life.
- the length of the current service life of the storage medium has consumed may be related to one or more factors, such as the accumulated data volume written into the storage device, the data volume that written into the storage medium in unit time, etc.
- the unit time may be in hours, days, years, etc.
- the length of the current service life may be in hours, days, years, etc.
- the current service life may be determined based on the data volume that has been written into the storage medium and the data volume that written into the storage device in unit time.
- the length of the current service life of the storage medium may be 1020 hours. If the service time of the storage device per day is 12 hours, the length of the current service life that the storage medium has consumed may be about 85 days.
- the current service life that the storage medium has consumed may be reflected by a ratio of the length of the current service life to the length of the expected total service life of the storage medium.
- the length of the expected total service life of the storage medium may be determined based on the total data volume that can be written into the storage medium that is similar to or same as the determination of the length of the current service life to the length of the expected total service life of the storage medium.
- the length of the current service life of the storage medium may be 1020 hours. If the service time of the storage device per day is 12 hours, and the service time of the storage device per day is 12 hours, the length of the expected total service life may be about 106 days to 2643 days.
- the processing device 112 may evaluate, based on the current service life that the storage medium has consumed, a health status of the storage medium to obtain an evaluation result.
- the current service life that the storage medium has consumed may indicate the health status of the storage medium. The longer the current service life is, the worse the health status of the storage medium may be.
- the evaluation result may include the current service life that the storage medium has consumed, the remaining service life of the storage medium, the abnormal storage blocks condition, a health value, a health level, etc.
- the health status of the storage medium may be determined based on the current service life and the expected total service life of the storage medium determined as described in operation 820.
- the evaluation result may include the ratio of the current service life that the storage medium has consumed the expected total service life.
- the current service life that an SD card has consumed may be 85 days
- the expected total service life of the SD card may be 3.5 years
- the evaluation result may be 85 days/3.5 years (1277.5 days)
- the ratio may be about 0.0665, which means that the storage medium has consumed 6.65%service life.
- the health status of the storage medium may be reflected by the health value.
- the health value may be related to the current service life, the data volume that has been written into the storage medium, the total data volume, abnormal storage blocks in the storage medium, etc. For example, the longer the current service life is, the lower the health value of the storage medium may be. The larger the data volume that has been written into the storage medium is, the lower the health value of the storage medium may be.
- the processing device 112 may calculate the total data volume that can be written into the storage medium according to Equations (1) - (3) .
- the total data volume that can be written into the storage device may be 3.2T to 79.3T
- the estimated data volume that can be written into the storage device per hour may be about 2.5G
- the storage medium may be used 12 hours per day
- the actual expected total service life may be 106 days (about 3 months) to 2643 days (about 7 years) . If the expected total service life of the storage medium is, 3.5 years and the current service life of the SD card is 1 year, then the health status of the storage medium may be better.
- the processing device 112 may transmit the evaluation result for the health status of the storage medium to a user device.
- the user device may include a display apparatus for displaying the evaluation result to a user of the user device.
- the user device may include a laptop, a stationary computer, a table computer, a mobile device, or the like, or any combination thereof.
- operation 330 may be omitted. More descriptions regarding the user device may be found elsewhere in the present disclosure. See, e.g., FIG. 1 and relevant descriptions thereof.
- one or more other optional operations may be added elsewhere in the exemplary process 800.
- a storing operation for storing monitoring data of a storage device may be added, the storing operation may also include storing a health status of the storage device, etc.
- aspects of the present disclosure may be illustrated and described through several patentable categories or situations, including any new and useful processes, machines, products or combinations of materials, or any new and useful improvements to them. Accordingly, all aspects of the present disclosure may be performed entirely by hardware, may be performed entirely by softwares (including firmware, resident softwares, microcode, etc. ) , or may be performed by a combination of hardware and softwares.
- the above hardware or softwares can be called “data block” , “module” , “engine” , “unit” , “component” or “system” .
- aspects of the present disclosure may appear as a computer product located in one or more computer-readable media, the product including computer-readable program code.
- Computer storage media may contain a transmitted data signal containing a computer program code, such as on baseband or as part of a carrier wave.
- the propagation signal may have multiple manifestations, including electromagnetic form, optical form, etc., or a suitable combination form.
- a computer storage medium may be any computer-readable medium other than a computer-readable storage medium, which may be connected to an instruction execution system, device, or device to enable communication, propagation, or transmission of a program for use.
- the program code located on a computer storage medium may be transmitted through any suitable medium, including radio, cable, fiber optic cable, RF, or similar media, or any combination of the media.
- Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python, or the like, conventional procedural programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
- LAN local area network
- WAN wide area network
- SaaS Software as a Service
- the numbers expressing quantities of ingredients, properties, and so forth, used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially” . Unless otherwise stated, “about, ” “approximate, ” or “substantially” may indicate ⁇ 20%variation of the value it describes. Accordingly, in some embodiments, the numerical parameters set forth in the description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters configured to illustrate the broad scope of some embodiments of the present disclosure are approximations, the numerical values in specific examples may be as accurate as possible within a practical scope.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Debugging And Monitoring (AREA)
Abstract
Systems and methods for health evaluation of a storage medium are provided. The method may include obtaining monitoring data of a storage medium. The monitoring data may be obtained from one or more registers of the storage medium and indicate a current running status of the storage medium. The method may also include evaluating, based on the monitoring data of the storage medium, a health status of the storage medium to obtain an evaluation result.
Description
The present disclosure generally relates to memory field, and more particularly, to a method for evaluating the health status of a storage medium.
Digital storage media are widely used on vehicles for data storage. A storage medium implemented on a vehicle usually includes a NAND flash, which can be damaged due to the long service time every day, frequent read, write, and/or erase operations, etc. If the health status of a storage medium cannot be assessed promptly or accurately, a user cannot replace or repair the storage medium in time, which may lead to data loss or even more severe consequences. Therefore, it is desirable to provide methods and systems for accurately and efficiently evaluating the health status of a storage medium.
SUMMARY
According to one aspect of the present disclosure, a system for health evaluation of a storage medium is provided. The system may include at least one first storage device storing executable instructions. The system may include at least one processor in communication with the at least one first storage device. When executing the executable instructions, the at least one processor may be configured to cause the system to obtain monitoring data of a second storage device, the monitoring data may be from one or more registers of the second storage device and indicate a current running status of the second storage device. The at least one processor may also be configured to cause the system to evaluate, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
In some embodiments, the second storage device may include an embedded multi media card, a secure digital memory card, or a T-flash.
In some embodiments, the second storage device may be installed on a vehicle and configured to store driving information associated with the vehicle.
In some embodiments, the at least one processor may further be configured to transmit the evaluation result for the health status of the second storage device to a terminal device.
In some embodiments, the one or more registers of the second storage device may be configured to store extended device specific data (ECSD) .
In some embodiments, the at least one processor may be configured to cause the system to obtain mapping information corresponding to the second storage device, the mapping information may provide a service life that the second storage device consumes under each of multiple running statuses. In some embodiments, the at least one processor may be configured to cause the system to determine, based at least in part on the current service life that the second storage device has consumed, the evaluation result.
In some embodiments, the evaluation result may include a ratio of the current service life to an expected total service life of the second storage device.
In some embodiments, the monitoring data may indicate a usage status of one or more reserved blocks of the second storage device. The monitoring data may determine, based at least in part on the current service life that the second storage device has consumed, the evaluate result. In some embodiments, the at least one processor may be configured to cause the system to obtain, based on the monitoring data, a reminder indicating a proportion that the one or more reserved blocks has been used. The at least one processor may be configured to determine, based at least in part on the current service life that the second storage device has consumed and the reminder, the evaluate result.
In some embodiments, the monitoring data may include auxiliary data of at least one of one or more abnormal storage blocks, an erasure status, or a write status of the second storage device. In some embodiments, the monitoring data may determine, based at least in part on the current service life that the second storage device has consumed, the evaluate result. In some embodiments, the at least one processor may be configured to cause the system to receive a command for analyzing the auxiliary data. The at least one processor may be configured to cause the system to analyze the auxiliary data to determine the at least one of the one or more abnormal blocks, the erasure status, or the write status; in response to receipt of the command. The at least one processor may be configured to cause the system to determine, based at least in part on the current service life that the second storage device has consumed and the at least one of the one or more abnormal blocks, the erasure status, or the write status, the evaluate result.
In some embodiments, the monitoring data may include input/output (I/O) statistic data of the second storage device, the monitoring data may evaluate, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result. In some embodiments, the at least one processor may be configured to cause the system to determine, based on the I/O statistic data, a current service life that the second storage device has consumed. The at least one processor may be configured to evaluate, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
According to another aspect of the present disclosure, a system for health evaluation of a storage medium is provided. The system may include a at least one first storage device storing executable instructions. The system may include at least one processor in communication with the at least one second storage device. When executing the executable instructions, the at least one processor may be configured to cause the system to obtain input/output (I/O) statistic data of a second storage device. The at least one processor may be configured to cause the system to determine, based on the I/O statistic data, a current service life that the second storage device has consumed. The at least one processor may be configured to cause the system to evaluate, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result. The at least one processor may be configured to transmit the evaluation result for the health status of the second storage device to a terminal device.
According to another aspect of the present disclosure, a method for health evaluation of a storage medium is provided. The method may be implemented on a computing device having at least one processor and at least one first storage device. The method may include obtaining monitoring data of a second storage device, the monitoring data being from one or more registers of the second storage device and indicating a current running status of the second storage device; and evaluating, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
According to another aspect of the present disclosure, a non-transitory computer readable medium is provided. The non-transitory computer readable medium may store instructions, when executed by at least one processor, the instructions may cause the at least one processor to implement a method. The method may include obtaining monitoring data of a storage device, the monitoring data being from one or more registers of the storage device and indicating a current running status of the second storage device; and evaluating, based on the monitoring data of the storage device, a health status of the storage device to obtain an evaluation result.
According to another aspect of the present disclosure, a method for health evaluation of a storage medium is provided. The method may be implemented on a computing device having at least one processor and at least one storage device. The method may include obtaining input/output (I/O) statistic data of a second storage device. The method may also include determining, based on the I/O statistic data, a current service life that the second storage device has consumed. The method may further include evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
According to another aspect of the present disclosure, a non-transitory computer readable medium is provided. The non-transitory computer readable medium may store instructions, when executed by at least one processor, the instructions may cause the at least one processor to implement a method. The method may include obtaining input/output (I/O) statistic data of a second storage device. The method may also include determining, based on the I/O statistic data, a current service life that the second storage device has consumed. The method may further include evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. The drawings are not to scale. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
FIG. 1 is a schematic diagram illustrating an exemplary health evaluation system for storage mediums according to embodiments of the disclosure;
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing device according to some embodiments of the present disclosure;
FIG. 5 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure;
FIG. 6 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure;
FIG. 7 is a schematic diagram illustrating types of a storage unit in a storage medium according to some embodiments of the present disclosure; and
FIG. 8 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure.
The following description is presented to enable any person skilled in the art to make and use the present disclosure and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown but is to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise, ” “comprises, ” and/or “comprising, ” “include, ” “includes, ” and/or “including” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Generally, the word “module, ” “unit, ” or “block, ” as used herein, refers to logic embodied in hardware or firmware, or to a collection of software instructions. A module, a unit, or a block described herein may be implemented as software and/or hardware and may be stored in any type of non-transitory computer-readable medium or other storage devices. In some embodiments, a software module/unit/block may be compiled and linked into an executable program. It will be appreciated that software modules can be callable from other modules/units/blocks or from themselves, and/or may be invoked in response to detected events or interrupts. Software modules/units/blocks configured for execution on computing devices may be provided on a computer-readable medium, such as a compact disc, a digital video disc, a flash drive, a magnetic disc, or any other tangible medium, or as a digital download (and can be originally stored in a compressed or installable format that needs installation, decompression, or decryption prior to execution) . Such software code may be stored, partially or fully, on a storage device of the executing computing device, for execution by the computing device. Software instructions may be embedded in firmware, such as an erasable programmable read-only memory (EPROM) . It will be further appreciated that hardware modules/units/blocks may be included in connected logic components, such as gates and flip-flops, and/or can be included of programmable units, such as programmable gate arrays or processors. The modules/units/blocks or computing device functionality described herein may be implemented as software modules/units/blocks but may be represented in hardware or firmware. In general, the modules/units/blocks described herein refer to logical modules/units/blocks that may be combined with other modules/units/blocks or divided into sub-modules/sub-units/sub-blocks despite their physical organization or storage. The description may be applicable to a system, an engine, or a portion thereof.
It will be understood that the term “system, ” “engine, ” “unit, ” “module, ” and/or “block” used herein are one method to distinguish different components, elements, parts, sections or assembly of different levels in ascending order. However, the terms may be displaced by another expression if they achieve the same purpose.
It will be understood that when a unit, engine, module or block is referred to as being “on, ” “connected to, ” or “coupled to, ” another unit, engine, module, or block, it may be directly on, connected or coupled to, or communicate with the other unit, engine, module, or block, or an intervening unit, engine, module, or block may be present, unless the context clearly indicates otherwise. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
These and other features, and characteristics of the present disclosure, as well as the methods of operation and functions of the related elements of structure and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawings, all of which form a part of this disclosure. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments in the present disclosure. It is to be expressly understood, the operations of the flowchart may be implemented not in order. Conversely, the operations may be implemented in an inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
An aspect of the present application relates to methods and systems for evaluating the health status of a storage medium accurately and conveniently. In some embodiments, the storage medium may include an embedded multi-media card (eMMC) , a secure digital memory (SD) card, or a T-flash (TF) . The method may include obtaining monitoring data of the storage device storage medium from one or more registers of the second storage device. The monitoring data may indicate a current running status of the storage medium. The method may include evaluating, based on the monitoring data of the storage medium, a health status of the storage medium to obtain an evaluation result. For example, the method may include obtaining mapping information corresponding to the storage medium, the mapping information providing a service life that the storage medium consumes under each of multiple running statuses. The method may further include determining, based on the monitoring data and the mapping information, a current service life that the storage medium has consumed corresponding to the current running status. Accordingly, the systems and methods as described in the present may determine the health status based on the monitoring data stored in the storage medium itself, which may be accurate for indicating the running status of the storage medium and be convenient for acquisition, thereby improving the accuracy and the efficiency for health evaluation.
FIG. 1 is a schematic diagram illustrating an exemplary health evaluation system 100 for storage mediums according to some embodiments of the disclosure. Consistent with the present disclosure, the health evaluation system 100 may be configured to evaluate a health status for a storage medium. In some embodiments, the health evaluation system 100 may include components shown in FIG. 1, including a server 110, a network 120, storage 130, and one or more user devices 140. It is contemplated that the health evaluation system 100 may include more or less components compared to those shown in FIG. 1.
The server 110 may be configured to process information and/or data relating to the storage devices. For example, the server 110 may evaluate the health status of the storage device by processing monitoring data and/or I/O statistic data associated with a storage medium. In some embodiments, the server 110 may be a single server, or a server group. The server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in registers of the storage device via network 120. As another example, the server 110 may be directly connected to the storage 130 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the server 110 may include a processing device 112. The processing device 112 may process information and/or data relating to the storage device to perform one or more functions described in the present disclosure. For example, the processing device 112 may receive a request for a health evaluation of a storage medium from the user device (s) 140. As another example, the processing device 112 may obtain information and/or data related to the running status of the storage medium in response to receipt of the request. In some embodiments, the processing device 112 may include one or more processors (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing device 112 may include a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
The network 120 may facilitate exchange of information and/or data. In some embodiments, one or more components in the system 100 (e.g., the server 110, the storage 130, and the user device (s) 140) may send and/or receive information and/or data to/from other component (s) in the system 100 via the network 120. For example, the server 110 may obtain/acquire monitoring data from one or more registers of the storage 130 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 120 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth
TM network, a ZigBee
TM network, a near field communication (NFC) network, a global system for mobile communications (GSM) network, a code-division multiple access (CDMA) network, a time-division multiple access (TDMA) network, a general packet radio service (GPRS) network, an enhanced data rate for GSM evolution (EDGE) network, a wideband code division multiple access (WCDMA) network, a high speed downlink packet access (HSDPA) network, a long term evolution (LTE) network, a user datagram protocol (UDP) network, a transmission control protocol/Internet protocol (TCP/IP) network, a short message service (SMS) network, a wireless application protocol (WAP) network, an ultra wide band (UWB) network, an infrared ray, or the like, or any combination thereof.
The storage 130 may store data and/or instructions associated with the health evaluation of a storage medium. For example, the storage 130 may store data and/or instructions (e.g., algorithms) that the server 110 may execute or use to perform exemplary methods described in the present disclosure. As another example, the storage 130 may store data (e.g., a request for health evaluation) obtained from the one or more user terminals (e.g., the user device (s) 140) . As still another example, the storage 130 may store I/O statistic data and/or monitoring data associated with the storage medium (i.e., the second storage device) . As used herein, the storage 130 configured to store data and/or instructions associated with the health evaluation of a storage medium may also be referred to as a first storage device. The storage medium that needs to be evaluated for the health status may also be referred to as a second storage device. In some embodiments, the first storage device (e.g., the storage 130) may be part of the processing device 112. The second storage device may be implemented on a device, such as the user device (s) 140, a vehicle, a computing device (e.g., the processing device 112) , etc. In some embodiments, the second storage device and the first storage device may be the same one storage device.
The storage 130 may include any appropriate type of mass storage provided to store any type of information that processing device 112 may need to operate. Storage 130 may be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible (i.e., non-transitory) computer-readable medium including, but not limited to a ROM, a flash memory, a dynamic RAM, and a static RAM. Storage 130 may be configured to store one or more computer programs that may be executed by processing device 112 to perform functions disclosed herein. For example, storage 130 may be configured to store program (s) that may be executed by processing device 112 to evaluate the health status of a storage device. Storage 130 may be configured to provide information and/or data related to a running status and/or a service life related to itself. In some embodiments, the storage 130 may be connected to the network 120 to communicate with one or more components in the online to the health evaluation system 100 (e.g., the server 110, the one or more user terminals, etc. ) . One or more components in the health evaluation system 100 may access the data and/or instructions stored in the storage 130 via the network 120. In some embodiments, the storage 130 may be directly connected to or communicate with one or more components in the health evaluation system 100 (e.g., the server 110, the one or more user terminals, etc. ) . In some embodiments, the storage 130 may be part of the server 110.
In some embodiments, one or more components in the health evaluation system 100 (e.g., the server 110, the user device (s) 140, etc. ) may have a permission to access the storage 130. In some embodiments, one or more components in the health evaluation system 100 may read and/or modify information relating to the health evaluation of a storage medium when one or more conditions are met.
The user device (s) 140 may include a mobile device 140-1, a tablet computer 140-2, a laptop computer 140-3, a built-in device in a vehicle 140-4, a wearable device 140-5, or the like, or any combination thereof. In some embodiments, the mobile device 140-1 may include a smart home device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal digital assistant (PDA) , a gaming device, a navigation device, a point of sale (POS) device, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may include a virtual reality helmet, virtual reality glasses, a virtual reality patch, an augmented reality helmet, augmented reality glasses, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may include Google
TM Glasses, an Oculus Rift, a HoloLens, a Gear VR, etc. In some embodiments, the built-in device in the vehicle 140-4 may include an onboard computer, an onboard television, etc. In some embodiments, the wearable device 140-5 may include a smart bracelet, a smart footgear, smart glasses, a smart helmet, a smart watch, smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
In some embodiments, the user device (s) 140 may include a user interface configured to facilitate communication between a user and one or more components of the health evaluation system 100. For example, a user of the user device (s) 140 may use the user device (s) 140 to send a request for health status evaluation of a storage medium associated with the user device (s) 140 via the user interface. As another example, the user device (s) 140 may receive an evaluation result of the storage medium from the server 110 and display the evaluation result for the health status of the storage device via the user interface for the user.
One of ordinary skill in the art would understand that when an element of the health evaluation system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when the user device (s) 140 sends out a request for storage health evaluation to the server 110, a processor of the user device (s) 140 may generate electrical signals encoding the request. The processor of the user device (s) 140 may then send the electrical signals to an output port. If the user device (s) 140 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which further transmits the electrical signal to an input port of the server 110. If the user device (s) 140 communicates with the server 110 via a wireless network, the output port of the user device (s) 140 may be one or more antennas, which convert the electrical signal to electromagnetic signal. Similarly, the user device (s) 140 may process a task through the operation of logic circuits in its processor, and receive an instruction and/or service request from the server 110 via electrical signal or electromagnet signals. Within an electronic device, such as the user device (s) 140 and/or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium, it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 according to some embodiments of the present disclosure. The computing device 200 may be used to implement any component of the health evaluation system 100 as described herein. For example, the user device (s) 140 and/or the processing device 112 may be implemented on the computing device 200, respectively, via its hardware, software program, firmware, or a combination thereof. Although only one such computing device is shown, for convenience, the computer functions relating to the health evaluation system 100 as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
As illustrated in FIG. 2, the computing device 200 may include a communication bus 210, a processor 220, a storage device, an input/output (I/O) 260, and a communication port 250. The processor 220 may execute computer instructions (e.g., program code) and perform functions of one or more components of the health evaluation system 100 (e.g., the server 110) in accordance with techniques described herein. The computer instructions may include, for example, routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions described herein. In some embodiments, the processor 220 may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from the communication bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the communication bus 210.
In some embodiments, the processor 220 may include one or more hardware processors, such as a microcontroller, a microprocessor, a reduced instruction set computer (RISC) , an application-specific integrated circuits (ASICs) , an application-specific instruction-set processor (ASIP) , a central processing unit (CPU) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a microcontroller unit, a digital signal processor (DSP) , a field-programmable gate array (FPGA) , an advanced RISC machine (ARM) , a programmable logic device (PLD) , any circuit or processor capable of executing one or more functions, or the like, or any combinations thereof.
Merely for illustration, only one processor 220 is described in the computing device 200. However, it should be noted that the computing device 200 in the present disclosure may also include multiple processors, thus operations and/or method operations that are performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor of the computing device 200 executes both operation A and operation B, it should be understood that operation A and operation B may also be performed by two or more different processors jointly or separately in the computing device 200 (e.g., a first processor executes operation A and a second processor executes operation B, or the first and second processors jointly execute operations A and B) .
The storage device may store data/information related to the health evaluation system 100. In some embodiments, the storage device may include a mass storage device, a removable storage device, a volatile read-and-write memory, a random access memory (RAM) 240, a read-only memory (ROM) 230, a disk 270, or the like, or any combination thereof. In some embodiments, the storage device may store one or more programs and/or instructions to perform exemplary methods described in the present disclosure. For example, the storage device may store a program for the processor 220 to execute.
The I/O 260 may input and/or output signals, data, information, etc. In some embodiments, the I/O 260 may enable a user interaction with the computing device 200. In some embodiments, the I/O 260 may include an input device and an output device. Examples of the input device may include a keyboard, a mouse, a touch screen, a microphone, or the like, or a combination thereof. Examples of the output device may include a display device, a loudspeaker, a printer, a projector, or the like, or a combination thereof. Examples of the display device may include a liquid crystal display (LCD) , a light-emitting diode (LED) -based display, a flat panel display, a curved screen, a television device, a cathode ray tube (CRT) , a touch screen, or the like, or a combination thereof.
The communication port 250 may be connected to a network (e.g., the network 120) to facilitate data communications. The communication port 250 may establish connections between the computing device 200 and one or more components of the health evaluation system 100. The connection may be a wired connection, a wireless connection, any other communication connection that can enable data transmission and/or reception, and/or any combination of these connections. The wired connection may include, for example, an electrical cable, an optical cable, a telephone wire, or the like, or any combination thereof. The wireless connection may include, for example, a Bluetooth
TM link, a Wi-Fi
TM link, a WiMax
TM link, a WLAN link, a ZigBee link, a mobile network link (e.g., 3G, 4G, 5G, etc. ) , or the like, or a combination thereof. In some embodiments, the communication port 250 may be and/or include a standardized communication port, such as RS232, RS485, etc. In some embodiments, the communication port 250 may be a specially designed communication port.
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device 300 according to some embodiments of the present disclosure. In some embodiments, one or more components of the health evaluation system 100, such as the user device (s) 140 and/or the processing device 112 may be implemented on the mobile device 300. As illustrated in FIG. 3, the mobile device 300 may include a communication platform 310, a display 320, a graphics processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
In some embodiments, a mobile operating system 370 (e.g., iOS
TM, Android
TM, Windows Phone
TM, etc. ) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to the coupon system 100. User interactions with the information stream may be achieved via the I/O 350 and provided to one or more other components of the coupon system 100 via the network 120.
To implement various modules, units, and their functionalities described in the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein. A computer with user interface elements may be used to implement a personal computer (PC) or any other type of work station or terminal device. A computer may also act as a server if appropriately programmed.
FIG. 4 is a block diagram illustrating an exemplary processing device 112 according to some embodiments of the present disclosure. As shown in FIG. 4, the processing device 112 may include an obtaining module 440, a determination module 420, an evaluation module 430, a transmitting module 440, and a storage module 450.
The obtaining module 410 may be configured to obtain monitoring data of a storage medium, the monitoring data indicating a current running status of the second storage device. For example, the obtaining module 410 may obtain a reminder indicating a proportion that the one or more reserved blocks has been used based on the monitoring data. As another example, the obtaining module 410 may obtain auxiliary data associated with the at least one of the one or more abnormal blocks, the erasure status, or the write statues based on the monitoring data. The obtaining module 410 may also be configured to obtain input/output (I/O) statistic data of a storage medium. In some embodiments, the obtaining module 410 may obtain monitoring data from one or more second storage devices (for example, a SLC, a MLC, etc., ) . Additionally or alternatively, the obtaining module 410 may obtain information from an external source via a network (e.g., the network 120) . More descriptions regarding obtaining the monitoring data of the storage medium may be found elsewhere in the present disclosure. See, e.g., operation 510 in FIG. 5 and relevant descriptions thereof. More descriptions regarding obtaining the I/O statistic data of the storage medium may be found elsewhere in the present disclosure. See, e.g., operation 810 in FIG. 8 and relevant descriptions thereof.
The determination module 420 may be configured to determine, based on I/O statistic data, a current service life that the storage medium has consumed. For example, the determination module 420 may determine the current service life based on the data volume that has written into the storage medium. More descriptions regarding determining a current service life that the storage medium has consumed may be found elsewhere in the present disclosure. See, e.g., operation 820 in FIG. 8 and relevant descriptions thereof.
The evaluation module 430 may be configured to evaluate, based on the monitoring data of the storage device, a health status of the storage medium to obtain an evaluation result. The evaluation module 430 may also be configured to evaluate, based on the current service life that the second storage device has consumed, a health status of the storage medium to obtain an evaluation result.
More descriptions regarding the evaluation result may be found elsewhere in the present disclosure. See, e.g., operation 520 in FIG. 5 and/or operation 830 in FIG. 8 and relevant descriptions thereof.
The transmitting module 440 may be configured to transmit the evaluation result for the health status of the storage medium to a user device. In some embodiments, the evaluation result may include the current service life that the storage medium has consumed, the remaining service life of the storage medium, the abnormal storage blocks condition, a health value, a health level, etc. More descriptions regarding transmitting the evaluation result for the health status to the user device may be found elsewhere in the present disclosure. See, e.g., operation 530 in FIG. 5 and operation 840 in FIG. 8 and relevant descriptions thereof.
The storage module 450 may be configured to store data and/or instructions associated with the health evaluation of a storage medium. For example, the storage module 450 may store data and/or instructions (e.g., algorithms) to perform exemplary methods described in the present disclosure. As another example, the storage module 450 may store data (e.g., a request for health evaluation) obtained from the one or more user terminals (e.g., the user device (s) 140) . As still another example, the storage module 450 may store I/O statistic data and/or monitoring data associated with the storage medium (i.e., the second storage device) .
It should be noted that the health evaluation system 100 and relevant modules may be implemented in various ways. For example, the health evaluation system 100 and relevant modules may be implemented through hardware, software, or a combination of software and hardware. Wherein, the hardware component may be implemented by a dedicated logic, and the software component may be stored in the storage which may be executed by a suitable instruction execution system, for example, a microprocessor or a dedicated design hardware. It will be appreciated by those skilled in the art that the above methods and systems may be implemented by computer-executable instructions and/or embedding in the control codes of a processor. For example, the control codes may be provided by a medium such as a disk, a CD, or a DVD-ROM, a programmable memory device such as read-only memory (e.g., firmware) , or a data carrier such as an optical or electric signal carrier. The health evaluation system 100 and relevant modules of the present disclosure may be implemented by hardware circuits, e.g., very large-scale integrated circuits or gate arrays, semiconductors such as logic chips or transistors, programmable hardware devices such as field-programmable gate arrays or programmable logic devices, etc. The health evaluation system 100 and relevant modules may be implemented by software executed by various processors. The health evaluation system 100 and relevant modules may also be implemented by a combination (e.g., firmware) of the hardware circuits and the software.
It should be noted that the above description of the processing device 112 and relevant modules is for convenience of description only, and cannot limit the present disclosure to be within the scope of the illustrated embodiment. For persons having ordinary skills in the art, modules may be combined in various ways or connected with other modules as sub-systems, and various modifications and transformations in form and detail may be conducted under the teaching of the present disclosure. For example, the transmitting module 440 and the storage module 450 may be integrated into one module or omitted. As another example, the evaluation module 430 and the determination module 420 may be integrated into one module. Such modification is within the protection scope of the present disclosure. In some embodiments, the processing device 112 may further include one or more additional modules, such as a storage module.
FIG. 5 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure. Process 500 may be executed by the health evaluation system 100. For example, process 500 may be implemented as a set of instructions stored in the storage ROM 230 or RAM 240. The processor 220 and/or the modules in FIG. 4 may execute the set of instructions stored in a storage device (e.g., the storage 130) which may also be referred to as a first storage device, and when executing the instructions, the processor 220 and/or the modules may be configured to perform process 500. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, process 500 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of process 500 as illustrated in FIG. 5 and described below is not intended to be limiting.
In 510, the processing device 112 (e.g., the obtaining module 110) may obtain monitoring data of a storage medium. The monitoring data may be acquired from one or more registers of the storage medium. The monitoring data may indicate a current running status of the storage medium. As used herein, the storage medium of which the health status needs to be evaluated may also be referred to as a second storage device. In some embodiments, the second storage device may be a storage device different form the first storage device configured to store executable instructions, programs, formulas, etc., for evaluating the health status of the second storage device. In some embodiments, the second storage device and the first storage device may be the same one storage device.
In some embodiments, the storage medium may include a controller and multiple storage modules (also referred to as storage blocks) . The controller may be configured to control the access of the storage device. The controller may include multiple registers, such as a CID register, an RCA register, a DSR register, a CSD register, an OCR register, an ECSD register, etc. Each of the storage modules may include a plurality of storage cells. According to a count or number of bits stored by a storage cell, the storage cell may include a single-level cell (SLC) , a multi-level cell (MLC) , a triple-level cell (TLC) , or a quad-level cell (QLC) . More descriptions for a storage cell may be found in FIG. 7 and the descriptions thereof. In some embodiments, the storage medium may include a NAND flash. Exemplary NAND flashes may include an embedded multi-media card (eMMC) , a secure digital memory (SD) card, a T-flash (TF) , etc.
The storage medium may be implemented on a user device (e.g., a vehicle or the user device (s) 140 as described in FIG. 1) . For example, an SD card may be implemented on a portable device (e.g., a camera a PDA, a laptop, a multimedia player) , an on-board computer, etc. A TF card may be implemented on a mobile phone, a GPS receiver, a driving recorder, a dome camera, a portable music player, etc. As still an example, the storage medium may be installed on a vehicle including a car, a bus, a shared bike, a boat, a train, a subway, or the like, or any other combination thereof.
The monitoring data may include a current temperature of the storage medium, a usage status of the storage medium (e.g., remaining storage capacity, current used capacity) , a running speed (e.g., data transmission speed, write speed, read speed, erase speed, etc. ) , an error status (e.g., a frequency for reporting errors, types of the errors) , a usage status of reserved blocks (e.g., used capacity of the reserved blocks, remaining capacity of the reserved blocks, etc. ) , a congestion degree, auxiliary data (e.g., data associated with at least one of one or more abnormal storage blocks, an erasure status, a write status of the storage medium) , etc., or a combination thereof. The monitoring data may indicate the health status of the storage medium. Taking the running speed of the storage medium as an example, if the running speed of the storage medium is fast, i.e., reaches or exceeds a predetermined regular-speed threshold, the monitoring data, which includes the running speed, may indicate that the health status of the storage medium is good (e.g., suggesting that no further action is needed) ; conversely, if the running speed of the storage medium is low, i.e. does not reach a predetermined regular-speed threshold, the monitoring data may indicate that the health status of the storage medium is bad (e.g., suggesting that some actions should be taken) . Taking the congestion degree of the storage medium as another example, if the congestion degree of the storage medium is high (e.g., exceeding a threshold) , the monitoring data, which includes the congestion degree, may indicate that the health status of the storage medium is bad; conversely, if the congestion degree of the storage medium is low (e.g., less than a threshold) , the monitoring data may indicate that the health status is good.
In some embodiments, the monitoring data may be acquired by the controller in the storage medium according to a default setting of a provider (e.g., a supplier, a manufacturer) of the storage medium. The controller may store the acquired monitoring data in one or more registers. The processing device 112 may obtain the monitoring data from the one or more registers. For example, the monitoring data of the storage medium (e.g., an eMMC card) may be obtained from an ECSD (extended device-specific data) register defined by eMMC 5.1 electrical standard.
In 520, the processing device 112 (e.g., the evaluation module 260) may evaluate, based on the monitoring data of the storage medium, a health status of the storage medium to obtain an evaluation result.
In some embodiments, the health status of the storage medium may be reflected by a service life that the storage medium has consumed (also referred to as used service life) , a remaining service life that the storage medium can consume (also referred to as remaining service life) , etc. The longer the used service life is, the worse the health status of the storage medium may be. The longer the remaining service life is, the better the health status of the storage medium may be.
In some embodiments, the evaluation result may include descriptions for the health status. For example, the evaluation result may include the used service life, the remaining service life, a ratio of the used service life to the expected total service life, a ratio of the remaining service life to the expected total service life, a number or count of abnormal storage blocks, a ratio of the count of abnormal storage blocks to the total count of storage blocks, a number or count of normal storage blocks, a ratio of the count of normal storage blocks to the total count of storage blocks, a warning or reminder for the health status, a health value (or score) for the health status, etc.
In some embodiments, the processing device 112 may obtain reference data that provides a relationship between the health status and the running status of the storage medium. The processing device 112 may evaluate the health status of the storage medium based on the reference data and the monitoring data that indicates the current running status. For example, the reference data may include mapping information providing a service life that the storage medium consumes under each of multiple running statuses. The processing device 112 may determine, based on the monitoring data and the mapping information, the current service life that the storage medium has consumed corresponding to the current running status. The evaluation result may include the current service life that the storage medium has consumed corresponding to the current running status or the ratio of the current service life that the storage medium has consumed to the expected total service life. As another example, the reference data may include mapping information providing a warning or reminder under each of the multiple usage statuses of reserved blocks in the storage medium. The processing device 112 may determine a warning or reminder based on the usage status of reserved blocks in the monitoring data and the mapping information. The evaluation result may include a warning degree. More descriptions for evaluating the health status of the storage medium may be found in FIG. 6 and the descriptions thereof.
In some embodiments, the processing device 112 may obtain a trained machine learning model. The processing device 112 may input at least a portion of the monitoring data into the trained machine learning model to evaluate the health status. For example, the trained machine learning model may determine the current service life that the storage medium has consumed based on the inputted monitoring data. As another example, the trained machine learning model may determine the health value of that the storage medium based on the inputted monitoring data. The trained machine learning model may be obtained by a processing device that is same as or different from the processing device 112 via training a machine learning model using a plurality of training samples according to a training algorithm (e.g., a backpropagation training algorithm, a gradient descent algorithm, etc. ) Each of the plurality of training samples may include monitoring data of a storage device (also referred to as a third storage device) that is same as or different from the storage medium (i.e., the second storage device) and a health status (e.g., a service life that has been consumed) of the third storage device.
In 530, the processing device 112 (e.g., the transmitting module 440) may transmit the evaluation result for the health status of the storage medium to a user device. In some embodiments, the user device (e.g., the user device (s) 140) may include a display apparatus for displaying the evaluation result to a user of the user device. The user device may include a laptop, a stationary computer, a table computer, a mobile device, or the like, or any combination thereof. In some embodiments, operation 330 may be omitted. More descriptions regarding the user device may be found elsewhere in the present disclosure. See, e.g., FIG. 1 and relevant descriptions thereof.
It should be noted that the above description is merely provided for the purpose of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 500. For example, a storing operation for storing monitoring data of the storage medium or storing the evaluation result of the health status of the storage medium, etc., may be added.
FIG. 6 is a flowchart illustrating a method for an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure. The process 600 may be executed by the health evaluation system 100. For example, the process 600 may be implemented as a set of instructions stored in the storage ROM 230 or RAM 240. The processor 220 and/or the modules in FIG. 4 may execute the set of instructions stored in a storage device (e.g., the storage 130) which may also be referred to as a first storage device, and when executing the instructions, the processor 220 and/or the modules may be configured to perform the process 600. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 600 as illustrated in FIG. 6 and described below is not intended to be limiting.
In 610, the processing device 112 (e.g., the obtaining module 110) may obtain mapping information corresponding to a storage medium. The mapping information may provide a service life that the storage medium consumes under each of multiple running statuses. As used herein, the storage medium of which the health status needs to be evaluated may also be referred to as a second storage device. More descriptions regarding the second storage device may be found elsewhere in the present disclosure (e.g., FIG. 5 and the descriptions thereof) .
In some embodiments, each of the multiple running statuses may be described using running parameters of the storage medium. The running parameters may relate to a temperature of the storage device, a usage status of the storage device (e.g., a remaining storage capacity, a used storage capacity) , a running speed (e.g., a data transmission speed, a write speed, a read speed, an erase speed, etc. ) , an error status (e.g., a frequency for reporting errors, types of the errors) , a usage status of reserved blocks (e.g., a used capacity of reserved blocks, a remaining capacity of reserved blocks, etc. ) , a congestion degree, auxiliary data (e.g., data associated with at least one of one or more abnormal storage blocks, an erasure status, a write status of the storage device) , etc., or a combination thereof.
The mapping information may be used to estimate a service life that the storage medium has consumed corresponding to a specific running status. Each of the multiple running statuses of the storage medium may correspond to a service life that the storage medium has consumed or a range of the service life that the storage medium has consumed. Each of the multiple running statuses may include a range of each of the multiple running parameters, such as a temperature range of the running temperature, a speed range of the running speed, a frequency range of the frequency for reporting errors, etc., or a combination of the multiple ranges of multiple running parameters.
In some embodiments, the service life that the storage medium has consumed may be defined by a ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium. Each of the multiple running statuses of the storage medium may correspond to a range of the ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium. The range of the ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium may include a constant length, such as 5%, 10%, 15%, 20%, etc. For example, the range of the ratio of the length of the service life that the storage medium has consumed to the length of the expected total service life of the storage medium may include 0%-10%, 10%-20%, 20%-30%, 30%-40%, 40%-50%, 50%-60%, 60%-70%, 70%-80%, 80%-90%, or 90%-100%.
The mapping information may indicate that the service life that the storage medium has consumed may be different when the storage medium is under different running statuses. For example, when a storage device has performed erasure operation for fifty thousand times and the used capacity of the storage device is zero, it may be determined that the storage device has consumed about half of the expected total service life; when a storage device has performed erasure operation for about one hundred thousand times and the used capacity of the storage device is one third, it may be determined that the storage device has consumed a majority of the expected total service life.
In some embodiments, according to the type (e.g., SLC, MLC, etc., ) of storage units in the storage medium, the mapping information may include first mapping information corresponding to SLC storage blocks, second mapping information corresponding to MLC storage blocks, etc. The first mapping information and the second mapping information may be different. For example, in the first mapping information, a running status of the storage medium with 100 thousand erasure times may correspond to a service life that the storage medium has consumed in a range from 50%to 60%. In the second mapping information, a running status of the storage medium with 100 thousand erasure times may correspond to a service life that the storage medium has consumed in a range from 60%to 70%.
In some embodiments, the mapping information may be a default setting of the health evaluation system 100 and stored in one or more registers of the storage medium in the form of a table, a model, a function, etc. For example, the mapping information may be a default setting of a provider (e.g., a supplier, a manufacturer) of the storage medium. The processing device 112 may obtain the mapping information from the one or more registers of the storage medium. For example, the mapping information of the storage medium (e.g., an eMMC card) may be obtained from an ECSD (extended device-specific data) register that meets eMMC 5.1 electrical standards. In some embodiments, the mapping information may be stored in the first storage device, an external database, etc.
In some embodiments, a model for health evaluation (e.g., a trained machine learning model) may be obtained. In certain embodiments, the trained machine learning model can be considered as part of the mapping information. The trained machine learning model may be obtained by training a machine learning model based on a plurality of training samples associated with a storage device that is the same as or different from the storage medium. Each of the plurality of training samples may include running data of the storage device indicating a running status of the storage device and the service life that the storage device has consumed under the running status. The trained machine learning model may be configured to output a service life of a storage device (e.g., the second storage device) that has been consumed based on inputted data (e.g., the monitoring data of the storage medium as described in FIG. 5) .
In 620, the processing device 112 (e.g., the determination module 430) may determine, based on the monitoring data and the mapping information, a current service life that the storage medium has consumed corresponding to the current running status.
The monitoring data of the storage medium may be obtained as described in connection with operation 510. For example, the monitoring data may include a current temperature of the storage device, a usage status of the storage device a running speed of the storage medium, (e.g., a remaining storage capacity, a used storage capacity) , a running speed (e.g., a current data transmission speed, a writing speed, a reading speed, an erase speed, etc. ) , an error status (e.g., a frequency for reporting errors, types of the errors) , a usage status of reserved blocks (e.g., a used capacity of reserved blocks, a free capacity of reserved blocks, etc. ) , a congestion degree, auxiliary data (e.g., data associated with at least one of one or more abnormal storage blocks, an erasure status, a write status of the storage device) , etc., or a combination thereof. As described in operation 510, the mapping information may provide a service life that the storage medium has consumed under each of the multiple running statuses. Based on the current running status of the storage medium indicated by the monitoring data, the processing device 112 may determine the current service life that the storage medium has consumed corresponding to the current running status based on the mapping information.
In some embodiments, the mapping information may describe the current service life that the storage medium has consumed using one or more values. Merely by way of example, the mapping information may describe the current service life that the storage medium has consumed using one or more hexadecimal data, decimal data, or ASCII data. The processing device 112 may obtain, based on the mapping information, a value representing the current service life that the storage medium has consumed. As shown in Table 1, when the storage medium has consumed 0%-10%of the expected total service life, the processing device 112 may obtain value “0X01” ; when the storage medium has consumed 10%-20%of the expected total service life, the processing device 112 may obtain value “0x02” ; when the storage medium has consumed 80%-90%of the expected total service life, the processing device 112 may obtain value “0x09” ; when the storage medium has consumed 90%-100%of the expected total service life, the processing device 112 may obtain value “0x0A” , etc. See, e.g., Table 1 and relevant descriptions thereof.
Table 1
In 630, the processing device 112 (e.g., the obtaining module 410) may obtain, based on the monitoring data, a reminder indicating a ratio that the one or more reserved blocks have been used. In some embodiments, the monitoring data may include the usage status of the one or more reserved blocks in the storage medium. For example, the usage status of the one or more reserved blocks may include a ratio of the capacity of the one or more reserved blocks that has consumed (also referred to used capacity) to the total capacity of the one or more reserved blocks.
In some embodiments, the one or more reserved blocks of the storage medium may be provided by a supplier to form an over-provisioning which improves the capability and the durability of the storage medium and prolongs the service life of the storage device. In some embodiments, the capacity of the over-provisioning (also referred to as the total capacity of the one or more reserved blocks) may relate to the capacity of the storage medium provided by the supplier. For example, if the actual capacity of the storage medium is 64GB, and the available capacity of the storage medium is 60GB, the over-provisioning may be 7%.
The reminder may indicate a degree that the one or more reserved blocks have been consumed in the storage medium (i.e., the usage status of the one or more reserved blocks) . The degree that the one or more reserved blocks have been consumed in the storage medium may indicate the current service life that the storage medium has consumed. For example, the higher the degree that the one or more reserved blocks have been consumed in the storage medium, the longer the current service life that the storage medium has consumed. The reminder may be in the form of a digital indicator (e.g., 1, 2, 3, etc. ) , a word (e.g., “Normal” , “Warning” , etc. ) , a symbol (e.g., “! ” , “! ! ” , etc. ) , a sound signal, or a combination thereof. In some embodiments, the processing device 112 may obtain the reminder based on mapping information that provides a specific reminder under each of multiple usage statuses of the one or more reserved blocks. For example, as shown in Table 2, if the reserved blocks have been consumed 80%, the reminder may be described as “Warning; ” if the reserved blocks have been consumed 20%, the reminder may be described as “Normal. ”
In some embodiments, the processing device 112 may obtain, based on the mapping information providing a specific reminder under each of multiple usage statuses of the one or more reserved blocks, a value representing the reminder. For example, as shown in Table 2, when the storage medium has consumed 20%of the reserved blocks, the reminder may include “Normal” , and the processing device 112 may obtain value “0X01” ; when the storage medium has consumed 80%of the reserved blocks, the reminder may include “Warning” , and the processing device 112 may obtain value “0X02” ; when the storage medium has consumed 90%of the reserved blocks, the reminder may include “Urgent” , and the processing device 112 may obtain value “0X03. ”
Table 2
| Value | Pre-EOL Info | Description |
| 0x00 | Not defined | |
| 0x01 | Normal | 20%of reserved storage blocks used |
| 0x02 | Warning | 80%of reserved storage blocks used |
| 0x03 | Urgent | 90%of reserved storage blocks used |
| 0x04 | Reserved |
In 640, the processing device 112 (e.g., the obtaining module 410) may obtain auxiliary data associated with at least one of one or more abnormal storage blocks, an erasure status, or a write status of the storage device.
In some embodiments, the auxiliary data may include a count or number of the abnormal storage blocks in the storage medium, a cumulative number of erasures of the storage medium, a cumulative number of writes of the storage medium, etc.
In some embodiments, the processing device 112 may receive a command (such as CMD 56) for analyzing the auxiliary data, and in response to receipt of the command, the processing device 112 may obtain the auxiliary data from the one or more registers in the storage medium.
In some embodiments, the processing device 112 may obtain the auxiliary data using one or more system-provided tools. The one or more one or more system-provided tools may be implemented on the x86 platform, the ARM platform, the PPC platform, etc. The one or more system-provided tools may be provided or developed one or more suppliers. For example, the one or more system-provided tools may include the emmcparm tool provided by Micron.
In 650, the processing device 112 (e.g., the evaluation module 440) may determine, based on the current service life that the storage medium has consumed, the reminder, and/or the auxiliary data, an evaluation result.
In some embodiments, the evaluation result may include descriptions for the health status. For example, the evaluation result may include the used service life, the remaining service life, a ratio of the used service life to the expected total service life, a ratio of the remaining service life to the expected total service life, a number or count of abnormal storage blocks, a ratio of the count of abnormal storage blocks to the total count of storage blocks, a number or count of normal storage blocks, a ratio of the count of normal storage blocks to the total count of storage blocks, a warning or the reminder for the health status, etc.
In some embodiments, the processing device 112 may determine a health value (or score) for evaluating the health status based on the current service life that the storage medium has consumed, the reminder, and/or the auxiliary data, etc.
FIG. 7 is a schematic diagram illustrating types of a storage unit in a storage medium according to some embodiments of the present disclosure.
According to a count or number of bits stored by a storage cell, the storage cell may include a single-level cell (SLC) , a multi-level cell (MLC) , a triple-level cell (TLC) , or a quad-level cell (QLC) . An SLC may store 1 bit. An MLC may store 2 bits. A TLC may store 3 bits, and a QLC may store 4 bits. A storage unit in a storage medium may store information according to different voltage levels. As shown in FIG. 7, for an SLC, the voltage in the SLC may include two levels denoted by 0 and 1, i.e., 1 bit; for an MLC, the voltage in the MLC may include four levels denoted by 00/01/10/11, i.e., 2 bits; for a TLC, the voltage in the MLC may include eight levels denoted by 000/001/010/011/100/101/110/111/, i.e., 3 bits; for a QLC, the voltage in the MLC may include sixteen levels denoted by 0000/0001/0010/0011/0100/0101/0110/0111/1000/1001/1010/1011/1100/1101/1110/1111 , i.e., 4 bits.
In some embodiments, the expected total service life of a storage medium may relate to the erasure times of the storage medium. The more the erasure times of the storage medium is, the longer the expected total service life of a storage medium may be. For example, the expected total service life of an SLC may correspond to 1000 thousand erasure times, the expected total service life of an MLC may correspond to 1000 to 3000 erasure times, the expected total service life of a TLC may correspond to 1000 erasure times, etc. Accordingly, the SLC may have the longest service life among the MLC, TLC, and QLC.
FIG. 8 is a flowchart illustrating an exemplary process for health evaluation of a storage medium according to some embodiments of the present disclosure. Process 800 may be executed by the health evaluation system 100. For example, process 800 may be implemented as a set of instructions stored in the storage ROM 230 or RAM 240. The processor 220 and/or the modules in FIG. 4 may execute the set of instructions stored in a storage device (e.g., the storage 130) which may also be referred to as a first storage device, and when executing the instructions, the processor 220 and/or the modules may be configured to perform process 800. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of process 800 as illustrated in FIG. 8 and described below is not intended to be limiting.
In 810, the processing device 112 (e.g., the obtaining module 410) may obtain input/output (I/O) statistic data of a storage medium. As used herein, the storage device of which the health status needs to be evaluated may also be referred to as a second storage device. In some embodiments, the second storage device may be a storage device different from the first storage device configured to store executable instructions, programs, formulas, etc., for evaluating the health status of the second storage device. In some embodiments, the second storage device and the first storage device may be the same one storage device. In some embodiments, the second storage device and the first storage device may be different storage devices.
In some embodiments, the storage medium may include an embedded multi-media card (eMMC) , a secure digital memory (SD) card, a T-flash (TF) , etc. The storage medium may be implemented on a user device (e.g., the user device (s) 140 as described in FIG. 1) . For example, an SD card may be implemented on a portable device (e.g., a camera a PDA, a laptop, a multimedia player) , an on-board computer, etc. A TF card may be implemented on a mobile phone, a GPS receiver, a driving recorder, a dome camera, a portable music player, etc.
In some embodiments, in response to receipt of input indicating a request for the health evaluation of the storage medium, the processing device 112 may obtain the I/O statistic data associated with the storage medium. For example, a user may input the request for the health evaluation of the storage medium via a user interface implemented on a user device (e.g., a mobile phone) that is same as or different from the user device (e.g., a vehicle) where the storage medium is implemented.
In some embodiments, the processing device 112 may perform the health evaluation of the storage medium from time to time, e.g., periodically or not. The processing device 112 may obtain the I/O statistic data associated with the storage medium from time to time, e.g., periodically or not. For example, the processing device 112 may obtain the I/O statistic data associated with the storage medium periodically, such as every one month, every two months, every four months, etc.
In some embodiments, the processing device 112 may obtain the I/O statistic data using one or more system-provided tools for monitoring IO of the storage medium. The one or more system-provided tools for monitoring IO may include iostat, vmstat, sar, iotop, pidstat, ioprofile, etc., on various Linux
TM-based platforms, Unix
TM-based platforms, etc. As a further example, the processing device 112 may obtain the I/O statistic data using cat/proc/pid/io on a Linux
TM-based platform since version 2.6.20.
In some embodiments, the processor may receive one or more isotat commands, and in response to receipt of the one or more iostat commands, the processor may obtain the input/output (I/O) statistic data of with the second storage device using the one or more isotat commands. For example, the processing device 112 may open multiple kernel options on a Linux
TM-based platform including:
CONFIG_TASKSTATS;
CONFIG_TASK_IO_ACCOUNTING;
CONFIG_TASK_XACCT;
CONFIG_TASK_DELAY_ACCT;
The input/output (I/O) statistic data associated with the storage medium may be obtained by inputting cat /proc/self/io commands based on the opened kernel options and the obtained input/output (I/O) statistic data may be shown as followings:
rchar: 1956
wchar: 0
syscr: 7
syscw: 0
read_bytes: 0
write_bytes: 0
cancelled_write_bytes: 0,
where rchar refers to a total number of bytes read from pagecache, wchar refers to a total number of bytes written to pagecache, syscr refers to a total number of invocations of read or pread, syscw refers to a total number of invocations of write or pwrite, read_bytes refers to an actual total number of bytes read from a storage device, write_bytes refers to an actual total number of bytes written to the storage device, and cancelled_write_bytes refers to the number of write bytes that should have occurred but did not occur due to page cache truncation.
In 820, the processing device 112 (e.g., the determination module 420) may determine, based on the I/O statistic data, a current service life that the storage medium has consumed.
In some embodiments, the processing device 112 may determine, based on the I/O statistic data, a data volume that has been written into the storage medium. The processing device 112 may determine the current service life that the storage medium has consumed based on the data volume that has written into the storage medium.
In some embodiments, the data volume that has been written into the storage medium may be defined by the total number of bytes that have been written into the storage medium. For example, the data volume that has been written into the storage medium may include the actual total number of bytes written to the storage device as described in operation 810.
In some embodiments, the current service life that the storage medium has consumed may be reflected by a ratio of the data volume that has been written into the storage medium to a total data volume that could be written into the storage medium. The greater the ratio of the data volume that has been written into the storage medium to the total data volume that could be written into the storage medium, the longer the current service life that the storage medium has consumed may be. In some embodiments, the total data volume that could be written into the storage medium may be a default setting of the health evaluation system 100. The total data volume that can be written into a storage device may be determined based on the capability, the erasure times of the storage device during the whole service cycle, write amplification, wear equalization, etc. For example, the processing device 112 may determine the total data volume that could be written into the storage medium according to Equations (1) – (3) as follows:
V=capacity*total erasure times (2)
F=WA Factor*WL Factor (3) ,
where the capacity refers to the storage capacity of the storage medium, WA Factor refers to a factor of write amplification, and WL Factor refers to a factor of wear equalization. WA Factor and/or WL Factor may be default settings of the health evaluation system 100. For example, WA Factor may be a constant in a range from 1.1 to 10. WL Factor may be a constant in a range from 1.1 to 3. Merely by way of example, if the storage capacity of an MLC SD card is 32GB and the total erasure times of the MLC SD card is 3000, F may be in a range from 1.21 to 30 determined according to Equation (3) , V may be equal to 96T determined according to Equation (2) , and the total data volume that can be written into the storage device may be 3.2T to 79.3T determined according to Equation (1) .
In some embodiments, the current service life that the storage medium has consumed may be reflected by the length of the current service life. The length of the current service life of the storage medium has consumed may be related to one or more factors, such as the accumulated data volume written into the storage device, the data volume that written into the storage medium in unit time, etc. The unit time may be in hours, days, years, etc. The length of the current service life may be in hours, days, years, etc. In some embodiments, the current service life may be determined based on the data volume that has been written into the storage medium and the data volume that written into the storage device in unit time. For example, if the data volume that has been written into the storage medium is 3T, the data volume that has been written into the storage medium is 2G per hour, the length of the current service life of the storage medium may be 1020 hours. If the service time of the storage device per day is 12 hours, the length of the current service life that the storage medium has consumed may be about 85 days.
In some embodiments, the current service life that the storage medium has consumed may be reflected by a ratio of the length of the current service life to the length of the expected total service life of the storage medium. The greater the ratio of the length of the current service life to the length of the expected total service life of the storage medium, the longer the current service life that the storage medium has consumed may be. The length of the expected total service life of the storage medium may be determined based on the total data volume that can be written into the storage medium that is similar to or same as the determination of the length of the current service life to the length of the expected total service life of the storage medium. For example, if the total data volume that can be written into the storage medium is 3.2 –79.3T, the data volume that has been written into the storage medium per hour is 2G, the length of the current service life of the storage medium may be 1020 hours. If the service time of the storage device per day is 12 hours, and the service time of the storage device per day is 12 hours, the length of the expected total service life may be about 106 days to 2643 days.
In 830, the processing device 112 (e.g., the evaluation module 430) may evaluate, based on the current service life that the storage medium has consumed, a health status of the storage medium to obtain an evaluation result. The current service life that the storage medium has consumed may indicate the health status of the storage medium. The longer the current service life is, the worse the health status of the storage medium may be.
In some embodiment, the evaluation result may include the current service life that the storage medium has consumed, the remaining service life of the storage medium, the abnormal storage blocks condition, a health value, a health level, etc. In some embodiments, the health status of the storage medium may be determined based on the current service life and the expected total service life of the storage medium determined as described in operation 820. For example, the evaluation result may include the ratio of the current service life that the storage medium has consumed the expected total service life. For example, the current service life that an SD card has consumed may be 85 days, the expected total service life of the SD card may be 3.5 years, the evaluation result may be 85 days/3.5 years (1277.5 days) , the ratio may be about 0.0665, which means that the storage medium has consumed 6.65%service life.
In some embodiments, the health status of the storage medium may be reflected by the health value. The health value may be related to the current service life, the data volume that has been written into the storage medium, the total data volume, abnormal storage blocks in the storage medium, etc. For example, the longer the current service life is, the lower the health value of the storage medium may be. The larger the data volume that has been written into the storage medium is, the lower the health value of the storage medium may be. Merely by way of example, take a 32GB MLC SD card with total 3000 erasure times as an example, the processing device 112 may calculate the total data volume that can be written into the storage medium according to Equations (1) - (3) . The total data volume that can be written into the storage device may be 3.2T to 79.3T, the estimated data volume that can be written into the storage device per hour may be about 2.5G, and the storage medium may be used 12 hours per day, then the actual expected total service life may be 106 days (about 3 months) to 2643 days (about 7 years) . If the expected total service life of the storage medium is, 3.5 years and the current service life of the SD card is 1 year, then the health status of the storage medium may be better.
In 840, the processing device 112 (e.g., the transmitting module 440) may transmit the evaluation result for the health status of the storage medium to a user device. In some embodiments, the user device may include a display apparatus for displaying the evaluation result to a user of the user device. The user device may include a laptop, a stationary computer, a table computer, a mobile device, or the like, or any combination thereof. In some embodiments, operation 330 may be omitted. More descriptions regarding the user device may be found elsewhere in the present disclosure. See, e.g., FIG. 1 and relevant descriptions thereof.
It should be noted that the above description is merely provided for the purpose of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 800. For example, a storing operation for storing monitoring data of a storage device may be added, the storing operation may also include storing a health status of the storage device, etc.
The basic concepts have been described above. Obviously, for those skilled in the art, the detailed disclosure is merely by way of example, and does not constitute a limitation on the present disclosure. Although not explicitly stated here, those skilled in the art may make various modifications, improvements and amendments to the present disclosure. These alterations, improvements, and modifications are intended to be suggested by this disclosure, and are within the spirit and scope of the exemplary embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various parts of this specification are not necessarily all referring to the same embodiment. In addition, some features, structures, or features in the present disclosure of one or more embodiments may be appropriately combined.
In addition, those skilled in the art may understand that various aspects of the present disclosure may be illustrated and described through several patentable categories or situations, including any new and useful processes, machines, products or combinations of materials, or any new and useful improvements to them. Accordingly, all aspects of the present disclosure may be performed entirely by hardware, may be performed entirely by softwares (including firmware, resident softwares, microcode, etc. ) , or may be performed by a combination of hardware and softwares. The above hardware or softwares can be called "data block" , "module" , "engine" , "unit" , "component" or "system" . In addition, aspects of the present disclosure may appear as a computer product located in one or more computer-readable media, the product including computer-readable program code.
Computer storage media may contain a transmitted data signal containing a computer program code, such as on baseband or as part of a carrier wave. The propagation signal may have multiple manifestations, including electromagnetic form, optical form, etc., or a suitable combination form. A computer storage medium may be any computer-readable medium other than a computer-readable storage medium, which may be connected to an instruction execution system, device, or device to enable communication, propagation, or transmission of a program for use. The program code located on a computer storage medium may be transmitted through any suitable medium, including radio, cable, fiber optic cable, RF, or similar media, or any combination of the media.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python, or the like, conventional procedural programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software only solution, e.g., an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. However, this disclosure method does not mean that the present disclosure object requires more features than the features mentioned in the claims. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.
In some embodiments, the numbers expressing quantities of ingredients, properties, and so forth, used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially” . Unless otherwise stated, “about, ” “approximate, ” or “substantially” may indicate ±20%variation of the value it describes. Accordingly, in some embodiments, the numerical parameters set forth in the description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters configured to illustrate the broad scope of some embodiments of the present disclosure are approximations, the numerical values in specific examples may be as accurate as possible within a practical scope.
Each patent, patent application, patent application publication and other materials cited herein, such as articles, books, instructions, publications, documents, etc., are hereby incorporated by reference in their entirety. Application history documents that are inconsistent or conflicting with the contents of the present disclosure are excluded, and documents (currently or later attached to the present disclosure) that limit the widest range of the scope of the present disclosure are also excluded. It should be noted that if the description, definition, and/or terms used in the appended application of the present disclosure is inconsistent or conflicting with the content described in the present disclosure, the use of the description, definition and/or terms of the present disclosure shall prevail.
At last, it should be understood that the embodiments described in the present disclosure are merely illustrative of the principles of the embodiments of the present disclosure. Other modifications may be within the scope of the present disclosure. Accordingly, by way of example, and not limitation, alternative configurations of embodiments of the present disclosure may be considered to be consistent with the teachings of the present disclosure. Accordingly, embodiments of the present disclosure are not limited to the embodiments that are expressly introduced and described herein.
Claims (20)
- A system, comprising:at least one first storage device storing executable instructions, andat least one processor in communication with the at least one first storage device, when executing the executable instructions, causing the system to perform operations including:obtaining monitoring data of a second storage device, the monitoring data being from one or more registers of the second storage device and indicating a current running status of the second storage device; andevaluating, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
- The system of claim 1, wherein the second storage device includes an embedded multi media card, a secure digital memory card, or a T-flash.
- The system of claim 1 or 2, wherein the second storage device is installed on a vehicle and configured to store driving information associated with the vehicle.
- The system of any one of claims 1-3, wherein the operations further include transmitting the evaluation result for the health status of the second storage device to a terminal device.
- The system of any one of claims 1-4, wherein the one or more registers of the second storage device are configured to store extended device specific data (ECSD) .
- The system of claim 1, wherein to evaluate, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result, the at least one processor is configured to cause the system to perform the operations including:obtaining mapping information corresponding to the second storage device, the mapping information providing a service life that the second storage device consumes under each of multiple running statuses;determining, based on the monitoring data and the mapping information, a current service life that the second storage device has consumed corresponding to the current running status; anddetermining, based at least in part on the current service life that the second storage device has consumed, the evaluation result.
- The system of claim 6, wherein the evaluation result includes a ratio of the current service life to an expected total service life of the second storage device.
- The system of claim 6 or claim 7, wherein the monitoring data indicates a usage status of one or more reserved blocks of the second storage device,and to determine, based at least in part on the current service life that the second storage device has consumed, the evaluate result, the at least one processor is configured to cause the system to perform the operations including:obtaining, based on the monitoring data, a reminder indicating a proportion that the one or more reserved blocks has been used; anddetermining, based at least in part on the current service life that the second storage device has consumed and the reminder, the evaluate result.
- The system of any one of claims 6 to 8, wherein the monitoring data includes auxiliary data of at least one of one or more abnormal storage blocks, an erasure status, or a write status of the second storage device,and to determine, based at least in part on the current service life that the second storage device has consumed, the evaluate result, the at least one processor is configured to cause the system to perform the operations including:receiving a command for analyzing the auxiliary data;in response to receipt of the command, analyzing the auxiliary data to determine the at least one of the one or more abnormal blocks, the erasure status, or the write status; anddetermine, based at least in part on the current service life that the second storage device has consumed and the at least one of the one or more abnormal blocks, the erasure status, or the write status, the evaluate result.
- The system of claim 1, wherein the monitoring data includes input/output (I/O) statistic data of the second storage device,and to evaluate, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result, the at least one processor is configured to cause the system to perform the operations including:determining, based on the I/O statistic data, a current service life that the second storage device has consumed; andevaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result.
- A method implemented on a computing device having at least one processor and at least one first storage device, comprising:obtaining monitoring data of a second storage device, the monitoring data being from one or more registers of the second storage device and indicating a current running status of the second storage device; andevaluating, based on the monitoring data of the second storage device, a health status of the second storage device to obtain an evaluation result.
- A non-transitory computer readable medium storing instructions, the instructions, when executed by at least one processor, causing the at least one processor to implement a method comprising:obtaining monitoring data of a storage device, the monitoring data being from one or more registers of the storage device and indicating a current running status of the second storage device; andevaluating, based on the monitoring data of the storage device, a health status of the storage device to obtain an evaluation result.
- A system, comprising:at least one first storage device storing executable instructions, andat least one processor in communication with the at least one second storage device, when executing the executable instructions, causing the system to perform operations including:obtaining input/output (I/O) statistic data of a second storage device;determining, based on the I/O statistic data, a current service life that the second storage device has consumed;evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result; andtransmitting the evaluation result for the health status of the second storage device to a terminal device.
- The system of claim 13, wherein second storage device includes an embedded multi media card, a secure digital memory card, or a T-flash.
- The system of claim 13, wherein to obtain input/output (I/O) statistic data of a second storage device, the at least one processor is configured to cause the system to perform the operations including:receiving one or more iostat commands; andin response to receipt of the one or more iostat commands, obtaining the input/output (I/O) statistic data of the second storage device.
- The system of claim 13, wherein to determine, based on the I/O statistic data, a current service life that the second storage device has consumed, the at least one processor is configured to cause the system to perform the operations including:determining, based on the I/O statistic data, a data volume that has been written into the second storage device; anddetermining, based on the data volume, the current service life that the second storage device has consumed.
- The system of claim 13, wherein to evaluate, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result, the at least one processor is configured to cause the system to perform the operations including:obtaining an expected total service life of the second storage device; anddetermining, based on the current service life that the second storage device has consumed and the expected total service life, the evaluation result.
- A method being implemented on a computing device having at least one processor and at least one storage device, comprising:obtaining input/output (I/O) statistic data of a second storage device;determining, based on the I/O statistic data, a current service life that the second storage device has consumed;evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result; andtransmitting the evaluation result for the health status of the second storage device to a terminal device.
- The method of claim 18, wherein to determine, based on the I/O statistic data, a current service life that the second storage device has consumed, the at least one processor is configured to cause the system to perform the operations including:determining, based on the I/O statistic data, a data volume that has been written into the second storage device; anddetermining, based on the data volume, the current service life that the second storage device has consumed.
- A non-transitory computer readable medium storing instructions, the instructions, when executed by at least one processor, causing the at least one processor to implement a method comprising:obtaining input/output (I/O) statistic data of a second storage device;determining, based on the I/O statistic data, a current service life that the second storage device has consumed;evaluating, based on the current service life that the second storage device has consumed, a health status of the second storage device to obtain an evaluation result; andtransmitting the evaluation result for the health status of the second storage device to a terminal device.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202080098471.4A CN115298652A (en) | 2020-04-30 | 2020-04-30 | System and method for storage medium health assessment |
| PCT/CN2020/087939 WO2021217536A1 (en) | 2020-04-30 | 2020-04-30 | Systems and methods for health evaluation of storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2020/087939 WO2021217536A1 (en) | 2020-04-30 | 2020-04-30 | Systems and methods for health evaluation of storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2021217536A1 true WO2021217536A1 (en) | 2021-11-04 |
Family
ID=78331608
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2020/087939 Ceased WO2021217536A1 (en) | 2020-04-30 | 2020-04-30 | Systems and methods for health evaluation of storage medium |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115298652A (en) |
| WO (1) | WO2021217536A1 (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114822664A (en) * | 2022-05-12 | 2022-07-29 | 合肥兆芯电子有限公司 | Risk assessment method based on data priority, storage device and control circuit |
| CN116737515A (en) * | 2023-05-10 | 2023-09-12 | 珠海妙存科技有限公司 | Flash memory parameter visualization method, system and storage medium |
| CN117407261A (en) * | 2023-11-07 | 2024-01-16 | 北京火山引擎科技有限公司 | A method, device and equipment for evaluating the cost of cluster data resources |
| CN117809729A (en) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | Storage equipment life prediction method, device, equipment and storage medium |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117894347B (en) * | 2024-03-15 | 2024-05-24 | 深圳市铨兴科技有限公司 | A method, system and medium for controlling power consumption of a solid state hard disk |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070198786A1 (en) * | 2006-02-10 | 2007-08-23 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
| CN201725327U (en) * | 2009-10-09 | 2011-01-26 | 联想(北京)有限公司 | Electronic equipment and storage device thereof |
| CN102122262A (en) * | 2011-01-24 | 2011-07-13 | 武汉固捷联讯科技有限公司 | Monitoring system and monitoring method for solid-state memory equipment |
| CN106708431A (en) * | 2016-12-01 | 2017-05-24 | 华为技术有限公司 | Data storage method, data storage device, mainframe equipment and storage equipment |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7568075B2 (en) * | 2005-09-22 | 2009-07-28 | Hitachi, Ltd. | Apparatus, system and method for making endurance of storage media |
| CN109408328A (en) * | 2018-10-08 | 2019-03-01 | 郑州云海信息技术有限公司 | A kind of monitoring method, device and the equipment of hard disk health status |
-
2020
- 2020-04-30 CN CN202080098471.4A patent/CN115298652A/en active Pending
- 2020-04-30 WO PCT/CN2020/087939 patent/WO2021217536A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070198786A1 (en) * | 2006-02-10 | 2007-08-23 | Sandisk Il Ltd. | Method for estimating and reporting the life expectancy of flash-disk memory |
| CN201725327U (en) * | 2009-10-09 | 2011-01-26 | 联想(北京)有限公司 | Electronic equipment and storage device thereof |
| CN102122262A (en) * | 2011-01-24 | 2011-07-13 | 武汉固捷联讯科技有限公司 | Monitoring system and monitoring method for solid-state memory equipment |
| CN106708431A (en) * | 2016-12-01 | 2017-05-24 | 华为技术有限公司 | Data storage method, data storage device, mainframe equipment and storage equipment |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114822664A (en) * | 2022-05-12 | 2022-07-29 | 合肥兆芯电子有限公司 | Risk assessment method based on data priority, storage device and control circuit |
| CN116737515A (en) * | 2023-05-10 | 2023-09-12 | 珠海妙存科技有限公司 | Flash memory parameter visualization method, system and storage medium |
| CN116737515B (en) * | 2023-05-10 | 2024-02-23 | 珠海妙存科技有限公司 | Flash memory parameter visualization method, system and storage medium |
| CN117407261A (en) * | 2023-11-07 | 2024-01-16 | 北京火山引擎科技有限公司 | A method, device and equipment for evaluating the cost of cluster data resources |
| CN117809729A (en) * | 2024-02-29 | 2024-04-02 | 山东云海国创云计算装备产业创新中心有限公司 | Storage equipment life prediction method, device, equipment and storage medium |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115298652A (en) | 2022-11-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2021217536A1 (en) | Systems and methods for health evaluation of storage medium | |
| CN108133732B (en) | Performance test method, device and equipment of flash memory chip and storage medium | |
| CN113892087B (en) | Third party application performance improvement toolkit | |
| CN103514958B (en) | A kind of EMMC chip life detecting method | |
| CA3059937A1 (en) | User credit evaluation method and device, electronic device, storage medium | |
| CN109062790A (en) | The upgrading test method of car-mounted terminal bluetooth firmware | |
| CN113721161A (en) | Consistency evaluation method and device for lithium ion battery pack | |
| CN110046986A (en) | The overdue customer grouping method and device of loaning bill based on big data | |
| CN107870980A (en) | Electronic installation, billing data processing method and computer-readable storage medium | |
| CN111078123A (en) | Method and device for evaluating wear degree of flash memory block | |
| CN111091420A (en) | Method and device for predicting power price | |
| CN107367594B (en) | Remote water quality monitoring system based on GPRS and SMS | |
| CN113383387A (en) | Memory device and management method thereof | |
| CN120124815B (en) | Energy demand prediction method and equipment | |
| CN110930078A (en) | Business object identification method, device and equipment | |
| US20130151899A1 (en) | Debug system and method | |
| CN104798042B (en) | Performance strategy is managed based on workload scalability | |
| TWI610246B (en) | Radio frequency identification (rfid) based defect detection in ssds | |
| CN110390463B (en) | Wind control data processing method and device and terminal equipment | |
| WO2014174362A1 (en) | Feature model based testing | |
| CN110991774A (en) | Electric quantity load prediction method and device | |
| CN115877242B (en) | Method for evaluating battery health state, electronic equipment and readable storage medium | |
| CN116228493B (en) | A method for determining carbon emissions and a cloud storage system | |
| CN114510521B (en) | Data display method and device based on three-dimensional model and computer equipment | |
| US20190228326A1 (en) | Deep learning data manipulation for multi-variable data providers |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20933492 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 20933492 Country of ref document: EP Kind code of ref document: A1 |
