WO2015027678A1 - 一种坏道修复方法及装置 - Google Patents

一种坏道修复方法及装置 Download PDF

Info

Publication number
WO2015027678A1
WO2015027678A1 PCT/CN2014/070496 CN2014070496W WO2015027678A1 WO 2015027678 A1 WO2015027678 A1 WO 2015027678A1 CN 2014070496 W CN2014070496 W CN 2014070496W WO 2015027678 A1 WO2015027678 A1 WO 2015027678A1
Authority
WO
WIPO (PCT)
Prior art keywords
sector
data
physical page
identifier
read
Prior art date
Application number
PCT/CN2014/070496
Other languages
English (en)
French (fr)
Inventor
周猛
黎燕
周建华
Original Assignee
华为技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP14840873.5A priority Critical patent/EP3029570B1/en
Publication of WO2015027678A1 publication Critical patent/WO2015027678A1/zh
Priority to US15/056,402 priority patent/US10127099B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Definitions

  • the present invention relates to the field of computers, and in particular, to a method and apparatus for repairing bad sectors.
  • the hard disk is the main storage medium of the computer, among which the solid state disk (Solid State Disk,
  • SSD is a commonly used one in hard disks.
  • SSD is a hard disk made by using a solid state electronic memory chip array. It mainly uses a flash chip as a storage medium to store data.
  • the more common Flash chip is Nand Flash.
  • each chip select signal (Chip Enable, CE) corresponds to 8192 blocks, and each block contains 128 pages, where Page is Nand Flash for data read and write operations.
  • each Page size is generally 4K bytes (Byte), and the smallest unit of the host to read and write data to the hard disk is 1 sector (Sector), the size of each Sector is generally 512B, in summary What can be obtained is that the smallest unit for reading and writing by the host is inconsistent with the minimum unit for reading and writing data by Nand Flash.
  • the host writes if the data written by the host is less than one Page, the data is passed. Data can be successfully written to Nand Flash using a pre-populated scheme.
  • UNC Uncorrectable Error Correcting Code error
  • RAID redundant array of independent disks
  • the minimum unit for reading and writing data by the host is 1 Sector (for example, 1 Sector is 512B), and the minimum writing unit of Nand Flash is 1 Page (eg , 1 Page is 4 KB ), so a pre-filled scheme is required to successfully rewrite the data to the location where the UNC occurred.
  • 1 Sector for example, 1 Sector is 512B
  • the minimum writing unit of Nand Flash is 1 Page (eg , 1 Page is 4 KB )
  • a pre-filled scheme is required to successfully rewrite the data to the location where the UNC occurred.
  • the page where the sector is located needs to be read into the random access memory (RAM), but the UNC has occurred due to the entire page. The read will fail, so the hard disk will abandon this write operation and reply to the host successfully.
  • the host will read the sector again to confirm whether the repair operation of the sector is successful. . Since the hard disk does not actually write data to the sector, the host read failure will determine that the disk is faulty (actually the disk is still available), and eventually the disk is kicked out, resulting in RAID degradation, affecting the system. Reliability.
  • Embodiments of the present invention provide a method and apparatus for repairing bad sectors, which solves the entire
  • a method for repairing a bad track including:
  • the solid state disk receives a first write operation command sent by the host, where the first write operation instruction includes a logical sector address (LB A ) of the first sector and needs to be written. Data entering the first sector; reading data of a physical page where the first sector is located according to an LBA of the first sector;
  • LB A logical sector address
  • the same storage space as the physical page size is allocated in the cache, and the data of the storage space is set as preset data;
  • the storage space includes at least two storage intervals, where each storage interval corresponds to one of the physical pages; the method further includes:
  • the identifier of each storage interval in the storage space is set as a first identifier, where the first identifier is used to indicate that the data in the storage interval is invalid data;
  • the method further includes:
  • the method further includes: When the identifier of the sector to be read is the second identifier, the data of the sector is read, and the data of the sector is sent to the host.
  • a bad track repairing apparatus including:
  • a receiving module configured to receive a first write operation instruction sent by the host, where the first write operation instruction includes a logical sector address (LBA) of the first sector and needs to be written into the first Sector data
  • LBA logical sector address
  • a reading module configured to read, according to the LBA of the first sector obtained by the receiving module, data of a physical page where the first sector is located;
  • a processing module configured to: when the read module reads data of the physical page fails, allocate a storage space of the same size as the physical page in the cache, and set the data of the storage space as preset data ;
  • an update module configured to update, according to the LBA of the first sector obtained by the receiving module, preset data of the storage interval corresponding to the first sector to the need to write the Data of the first sector;
  • a writing module configured to write data in the storage space into a flash memory of a Solid State Disk (SSD) according to an address of the physical page, to complete repairing the first sector.
  • SSD Solid State Disk
  • the storage space includes at least two storage intervals, where each storage interval corresponds to one of the physical pages; the device further includes:
  • a setting module configured to: when the reading module fails to read data of the physical page, set an identifier of each storage interval in the storage space as a first identifier, where the first identifier is used to Indicates that the data in the storage interval is invalid data;
  • the setting module is further configured to update the preset data in the storage space and the storage section corresponding to the first sector to the required write according to the LBA of the first sector After the data of the first sector, the identifier of the storage section corresponding to the first sector is set as a second identifier; wherein the second identifier is used to indicate that the data in the storage section is valid.
  • the writing module is further configured to write an identifier of each storage interval in the storage space into a redundant space of the SSD.
  • the receiving module is further configured to: after the writing module writes data in the storage space into the flash memory of the SSD according to an address of the physical page, receive a second write operation sent by the host An instruction, where the second write operation instruction includes an LBA of a second sector in the physical page and data that needs to be written into the second sector;
  • the reading module is further configured to read data of the physical page and an identifier of each sector in the physical page into a cache according to an LBA of the second sector obtained by the receiving module;
  • the processing module is further configured to update the preset data of the second sector to the data that needs to be written into the second sector according to the LBA of the second sector obtained by the receiving module. And setting the identifier of the second sector as the second identifier;
  • the writing module is further configured to write the updated data of the physical page and the identifier of each sector in the physical page into a flash memory of the SSD to complete the second sector The repair, wherein the identifier of each sector in the physical page is written into the redundant space of the SSD.
  • the receiving module is further configured to receive a read operation instruction sent by the host, where the read operation instruction includes an LBA of a sector to be read;
  • the device also includes:
  • An obtaining module configured to acquire, according to the LBA of the sector to be read obtained by the receiving module, an identifier of the sector to be read;
  • a sending module configured to send a response message to the host when the identifier of the sector to be read obtained by the acquiring module is the first identifier, where the response message is used to notify the host The data of the sector is invalid data.
  • the reading module is further configured to: when the identifier of the sector to be read obtained by the acquiring module is a second identifier, read data of the sector, and send data of the sector To the host.
  • the SSD is based on the received main
  • the LBA of the first sector included in the first write operation command sent by the machine reads the data of the physical page where the first sector is located
  • the physical page size is allocated in the cache.
  • the same storage space, and the data of the storage space is set as the preset data, and then the preset data in the storage space corresponding to the first sector is updated according to the LBA of the first sector to be written into the first
  • the data of the sector is finally written into the flash memory of the SSD according to the address of the physical page. Therefore, when the UNC occurs in the entire Page, the repair is unsuccessful when the repair is performed in the sector.
  • Embodiment 1 is a flowchart of a method for repairing bad sectors according to Embodiment 1 of the present invention
  • FIG. 2 is a flowchart of a method for repairing bad sectors according to Embodiment 2 of the present invention
  • FIG. 3 is a flowchart of another method for repairing bad sectors according to Embodiment 2 of the present invention
  • FIG. 4 is a schematic diagram of a bad track repairing device according to Embodiment 3 of the present invention
  • FIG. 6 is a schematic diagram of a bad track repairing device according to Embodiment 4 of the present invention.
  • Embodiment 1 - Embodiment 4.
  • Embodiment 1 of the present invention provides a method for repairing a bad track. As shown in FIG. 1, the method may include:
  • the SSD receives a first write operation instruction sent by the host.
  • the host when a UNC is generated in the entire physical page of the SSD, the host needs to repair the physical page in which the UNC is generated in a single sector.
  • the host can write data to a sector in the physical page.
  • the host can Sending a first write operation instruction to the SSD, where the SSD receives a first write operation instruction sent by the host, where the first write operation instruction includes a logical sector address (LBA) of the first sector and the first
  • LBA logical sector address
  • the SSD reads data of a physical page where the first sector is located according to the LBA of the first sector.
  • the SSD may acquire the address of the physical page where the first sector is located according to the LBA of the first sector included in the received first write operation instruction, and according to the physical The address of the page reads the data of the physical page.
  • the SSD allocates the same storage space as the physical page size in the cache, and sets the data of the storage space as the preset data.
  • the SSD when the SSD performs a read operation on the data of the physical page where the first sector is located according to the LBA of the first sector included in the received first write operation instruction, the data of the physical page is read, and the SSD is failed.
  • the storage space of the same size as the physical page can be directly allocated in the cache, and the data of the storage space is set as the preset data. For example, if the preset data is 0, the SSD sets the data of the same storage size as the physical page to 0 in the cache.
  • the preset data can be made with ordinary data.
  • the cache may be a random storage in the SSD.
  • the memory of the memory Random Access Memory, RAM
  • ROM Read Only Memory
  • the SSD updates, according to the LBA of the first sector, the preset data in the storage space corresponding to the storage section of the first sector to data that needs to be written into the first sector.
  • the first fan included in the first write operation instruction sent by the received host may be used.
  • the LBA of the area updates the preset data in the storage space corresponding to the storage section corresponding to the first sector to data that needs to be written into the first sector.
  • the SSD writes the data in the storage space into the flash of the SSD according to the address of the physical page to complete the repair of the first sector.
  • the SSD may store according to the address of the physical page.
  • the data in the space is written into the flash memory of the SSD, overwriting the original data in the physical page, and the repair of the first sector is completed.
  • the SSD reads the data of the physical page where the first sector is located according to the LBA of the first sector included in the first write operation instruction sent by the received host, when reading the physical
  • the storage space of the same size as the physical page is allocated in the cache, and the data of the storage space is set as the preset data, and then the storage space is corresponding to the first sector according to the LBA of the first sector.
  • the preset data of the storage interval is updated to the data that needs to be written into the first sector, and finally the data in the storage space is written into the flash memory of the SSD according to the address of the physical page, by the physical page size to be allocated in the cache.
  • the data of the same storage space is set as preset data, and the preset data corresponding to the storage section corresponding to the first sector is updated to the data that needs to be written into the first sector, and the data of the updated storage space is written into the SSD.
  • the original data of the physical page of the UNC is replaced in the flash memory, and the problem that the repair is unsuccessful in the case of repairing the Sector when the entire page has a UNC is solved.
  • Embodiment 2 of the present invention provides a method for repairing bad sectors. As shown in FIG. 2, the method may include:
  • the SSD receives a first write operation instruction sent by the host.
  • a UNC when a UNC is generated in the entire physical page of the SSD, and the host needs to repair the physical page in which the UNC is generated in a single sector, the host may write data to a sector in the physical page.
  • the host may The first write operation instruction is sent to the SSD, and the SSD can receive the first write operation instruction sent by the host.
  • the first write operation instruction includes an LBA of the first sector and data corresponding to the LBA of the first sector that needs to be written into the first sector, where the first sector is a sector included in a physical page where the UNC occurs Any of them.
  • the SSD reads data of a physical page where the first sector is located according to the LBA of the first sector.
  • the SSD may acquire the address of the physical page where the first sector is located according to the LBA of the first sector included in the received first write operation instruction, and according to the physical The address of the page reads the data of the physical page.
  • the SSD allocates the same storage space as the physical page size in the cache, and sets the data of the storage space as the preset data.
  • the SSD when the SSD fails to read the data of the physical page, the SSD allocates the storage space of the same size as the physical page in the cache, and sets the data of the storage space as the preset data.
  • the storage space includes at least two storage intervals, and each storage interval corresponds to one sector in the physical page, that is, the data of the storage space is set as the preset data, specifically, each of the storage spaces is included.
  • the data of the storage section is set as preset data.
  • the preset data can be made with ordinary data. , ' ' , , , , , , , ,
  • the identifier of each storage interval in the SSD setting storage space is the first identifier.
  • the storage space includes at least two storage intervals, and each storage interval corresponds to one sector in the physical page.
  • the SSD sets a corresponding identifier for each storage interval included in the storage space, in order to distinguish whether the data of each storage interval in the storage space is valid data. Specifically, if the SSD fails to read the data of the physical page, the SSD may set the identifier of each storage interval in the storage space as the first identifier. The identifier of the storage interval is used to indicate whether the data of the corresponding storage interval is valid, and the first identifier is used to indicate that the data corresponding to the storage interval is invalid data.
  • step 202 the first sector is located according to the LBA of the first sector.
  • the data of the physical page is read. If the data of the physical page fails to be read, step 203 may be performed first, and then step 204 may be performed; or step 204 may be performed first, and then step 203 may be performed; After the data of the physical page is read, steps 203 and 204 are simultaneously performed. That is to say, in the embodiment of the present invention, the order of execution of step 203 and step 204 is not limited, and usually, it can also be performed at the same time.
  • the SSD updates the preset data in the storage space corresponding to the storage section of the first sector to data that needs to be written into the first sector according to the LBA of the first sector.
  • the LBA of the first sector included in the operation instruction updates the preset data in the storage space corresponding to the storage section of the first sector to data that needs to be written into the first sector, and the storage space is in the first sector.
  • the data corresponding to the storage interval is the data of the first sector in the physical page that needs to be repaired.
  • the SSD sets the identifier of the storage interval corresponding to the first sector as the second identifier. Wherein, since the data in the storage space corresponding to the first sector in the storage space is already data to be written into the first sector, the SSD needs to set the effective identifier of the storage interval corresponding to the first sector in the storage space by The first identifier is modified to be a second identifier, where the second identifier is used to indicate that the data in the storage interval is valid data.
  • steps 205 and 206 are performed in a non-sequential manner, and may be performed at the same time.
  • the embodiment of the present invention does not limit the order of execution of the steps 205 and 206.
  • the SSD writes the data in the storage space into the flash memory of the SSD according to the address of the physical page, to complete the repair of the first sector, and write the identifier of each storage interval in the storage space to the redundancy of the SSD. In space.
  • the SSD When the SSD is based on the LBA of the first sector, the preset data in the storage space corresponding to the first sector is updated to data that needs to be written into the first sector, and the storage interval corresponding to the first sector is used.
  • the SSD After the identifier is set to the second identifier, the SSD writes the data in the storage space to the flash memory of the SSD to replace the original data in the physical page according to the address of the physical page, to complete the repair of the first sector, and will store The identification of each storage interval in the space is also written into the redundant space of the SSD. It is well known that each physical page in the Nand Flash has a certain amount of redundant space.
  • the identifier of each storage interval in the storage space can be written into the redundant space of the physical page, so that Increase the system's table This saves space in the RAN and saves costs.
  • SSD uses Nand Flash as the storage medium.
  • the minimum unit for data read and write operations by the host is 1 Sector.
  • the size of each Sector is 512B.
  • the size of a physical page may be 4120B>4096B. In this case, you can use redundant space.
  • the identifier of each storage interval in the storage space that is, the identifier corresponding to each sector included in the physical page.
  • the storage space included in the storage space corresponds to a sector in the physical page
  • the identifier of each storage interval in the storage space is also the identifier of each sector in the physical page, that is to say. This flag indicates whether the data of each sector in the physical page is valid data.
  • step 208-step 21 1 can be specifically performed.
  • the SSD receives a second write operation instruction sent by the host.
  • the second write operation instruction may be sent to the SSD, and the SSD may receive the second write operation instruction sent by the host.
  • the second write operation instruction includes LB A of the second sector in the physical page and data corresponding to the LBA of the second sector that needs to be written into the second sector, and the second sector is a physical page included Any one of the at least two sectors except the first sector.
  • the SSD reads the data of the physical page and the identifier of each sector in the physical page into the cache according to the LBA of the second sector.
  • the data of the physical page where the second sector is located and each of the physical pages may be according to the LBA of the second sector included in the second write operation instruction.
  • the identity of the sector is read into the cache.
  • the SSD updates the preset data of the second sector to data that needs to be written into the second sector according to the LBA of the second sector, and sets the identifier of the second sector as the second identifier.
  • the SSD may be included according to the second write operation instruction.
  • the LBA of the second sector updates the preset data of the second sector to data that needs to be written into the second sector, covers the original data of the second sector, and needs to correspond to the second sector.
  • the identifier of the second sector is set to indicate that the data of the second sector is valid data.
  • the flash memory is written in the SSD to complete the repair of the second sector.
  • the SSD updates the preset data of the second sector to the data that needs to be written into the second sector according to the LBA of the second sector, and sets the identifier of the second sector to the second identifier.
  • the repair of the second sector data in the physical page is completed at this time, wherein the identifier of each sector in the physical page is written into the redundant space of the SSD.
  • the SSD When the SSD writes the data in the storage space to the flash memory of the SSD according to the address of the physical page, and writes the identifier of each storage interval in the storage space into the redundant space of the SSD, in another application scenario. As shown in FIG. 3, if the host needs to read the data of a certain sector in the physical page, the following steps 212-215 can be performed.
  • the SSD receives a read operation instruction sent by the host.
  • the host when it needs to read data of a sector in the physical page, it can send a read operation instruction to the SSD, and the SSD can receive the read operation instruction sent by the host.
  • the read operation instruction includes an LBA of a sector to be read.
  • the SSD acquires an identifier of the sector to be read according to the LBA of the sector to be read. After receiving the read operation command sent by the host, the SSD can acquire the identifier of the sector to be read according to the LBA of the sector to be read included in the read operation instruction.
  • the SSD sends a response message to the host.
  • the identifier of the sector to be read is determined, and when the identifier of the sector to be read is determined to be the first When the identifier is displayed, it indicates that the data of the sector to be read is invalid data, and the SSD can send a response message to the host.
  • the response message is used to notify the host that the data of the sector to be read is invalid data.
  • the SSD after the SSD receives the read operation command sent by the host, it can read according to The LBA of the sector to be read included in the operation instruction directly reads the data of the corresponding sector, and after reading the data of the sector to be read, determines the data of the obtained sector to be read. Whether it is preset data, and when it is determined that the obtained data of the sector to be read is preset data, a response message for notifying the data of the second sector of the host as invalid data is sent to the host.
  • the SSD reads the data of the sector, and sends the data of the sector to the host.
  • the SSD determines that the identifier of the sector to be read is the second identifier according to the identifier of the sector to be read, the SSD indicates that the sector to be read is in the sector to be read.
  • the data is valid data, and the SSD can read the data of the sector and send the data of the sector to the host.
  • the SSD may directly read the data of the sector to be read according to the LBA of the sector to be read included in the read operation instruction, and obtain the After the data of the sector to be read is determined, it is determined whether the data of the sector to be read is the preset data, and when it is determined that the data of the sector to be read is not the preset data, the data will be read. The data of the sector to be read is sent to the host.
  • the cache may be a memory such as a RAM or a ROM in the SSD, which is not limited herein.
  • the SSD uses Nand Flash as the storage medium
  • the physical page size is 4K Byte
  • the minimum unit for data read and write operations by the host is 1 Sector.
  • the size of each Sector is 512B, that is, one physical page contains 8 sectors.
  • the preset data is 0, the first identifier is 1, and the second identifier is 0.
  • the host needs to repair the data of the Sector2 in the physical page, and then can send a write operation instruction to the SSD, where the write operation instruction includes the LBA of the Sector2 and the LBA corresponding to the Sector 2 to be written.
  • the SSD can obtain the address of the physical page where the Sector2 is located according to the LBA of the Sector2, and read the data of the physical page according to the address of the physical page (the physical page contains 8 sectors)
  • the SSD allocates the same storage space as the physical page in the cache (such as RAM) (the storage space contains 8 storage intervals, the size of each storage interval and the sector) The same size), and the data setting of the 8 storage intervals included in the storage space 0, and set the identifier of the 8 storage sections in the storage space to 1.
  • the SSD can overwrite the existing data of the Sector2 with the data corresponding to the LBA of the Sector2 included in the write operation instruction and need to be written into the Sector2, and The identifier of the corresponding storage section of Sector2 is modified to 0.
  • the data in the storage space is written into the flash memory of the SSD according to the address of the physical page, and the identifiers of the 8 storage sections in the storage space are written into the redundant space of the SSD. in.
  • the SSD After the data in the storage space is written into the flash memory of the SSD, and the identifiers of the eight storage intervals in the storage space are written into the redundant space of the SSD, if the SSD receives the information sent by the host for reading the Sector 2 When the data is read, the identifier of Sector2 can be obtained according to the LBA of Sector2 in the read operation command, and the identifier of Sector2 is determined to be the second identifier. At this time, the SSD can read the data of Sector2 and send it. To the host; if the SSD receives a read operation instruction sent by the host for reading data of the remaining sectors other than the Sector2, the identifier of the Sector can be obtained according to the LBA of the Sector in the read operation instruction, and the judgment is obtained. When the identifier of the sector is the first identifier, a response message is sent to the host for notifying the data of the sector that the host needs to read as invalid data.
  • the write operation instruction of the sector can be sent to the SSD.
  • the SSD can acquire the valid identifier corresponding to the 8 sectors included in the physical page and the physical page according to the LBA of the Sector included in the write operation instruction, and the data of the physical page and The valid identifier corresponding to the 8 sectors is read into the buffer (RAM), and then the write operation instruction of the sector updates the data of the sector included in the physical page, and sets the valid identifier corresponding to the sector to the second identifier, and finally The data of the updated physical page and the identifier of each sector in the physical page are written into the flash memory of the SSD to complete the repair of the sector, and the process is repeated, so that all sectors in the entire physical page can be repaired. carry out.
  • the SSD reads the data of the physical page where the first sector is located according to the LBA of the first sector included in the first write operation instruction sent by the received host, when reading the physical
  • the storage space of the same size as the physical page is allocated in the cache, and the data of the storage space is set as the preset data, and then the storage space is corresponding to the first sector according to the LBA of the first sector.
  • the preset data of the storage interval is updated to the data that needs to be written into the first sector, and finally the data in the storage space is written into the flash memory of the SSD according to the address of the physical page, by the physical page size to be allocated in the cache.
  • the data of the same storage space is set as preset data, and the preset data corresponding to the storage section corresponding to the first sector is updated to the data that needs to be written into the first sector, and the data of the updated storage space is written into the SSD.
  • the original data of the physical page of the UNC is replaced in the flash memory, and the problem that the repair is unsuccessful in the case of repairing the Sector when the entire page has a UNC is solved.
  • the UNC problem of gradually repairing the entire page is implemented in a sector-based manner without increasing the system entries, and the flexibility of the system is increased.
  • Embodiment 3 of the present invention provides a bad track repairing device.
  • the present invention includes: a receiving module 31, a reading module 32, a processing module 33, an updating module 34, and a writing module 35.
  • the receiving module 31 is configured to receive a first write operation instruction sent by the host, where the first write operation instruction includes a logical sector address (LBA) of the first sector and needs to be written into the first One sector of data.
  • LBA logical sector address
  • the reading module 32 is configured to read data of a physical page where the first sector is located according to the LB A of the first sector obtained by the receiving module 31.
  • the processing module 33 is configured to: when the read module 32 fails to read the data of the physical page, allocate a storage space of the same size as the physical page in the cache, and set the data of the storage space as a pre- Set the data.
  • the update module 34 is configured to update, according to the LBA of the first sector obtained by the receiving module 31, preset data of the storage interval corresponding to the first sector to the required write The data of the first sector.
  • the writing module 35 is configured to write data in the storage space into a flash memory of a Solid State Disk (SSD) according to an address of the physical page to complete repair of the first sector.
  • SSD Solid State Disk
  • the storage space includes at least two storage intervals, wherein each storage interval corresponds to one of the physical pages.
  • the apparatus may further include: a setting module 36.
  • the setting module 36 is further configured to: when the reading module 32 fails to read the data of the physical page, set the identifier of each storage interval in the storage space as a first identifier, where The first identifier is used to indicate that the data in the storage interval is invalid data.
  • the setting module 36 is further configured to update the preset data in the storage space and the storage section corresponding to the first sector to the requirement according to the LBA of the first sector in the update module 34. After the data of the first sector is written, the identifier of the storage section corresponding to the first sector is set as a second identifier; wherein the second identifier is used to represent data in the storage section For valid data.
  • the writing module 35 is further configured to write an identifier of each storage interval in the storage space into a redundant space of the SSD.
  • the receiving module 31 is further configured to: after the writing module 35 writes data in the storage space into the flash memory of the SSD according to the address of the physical page, receive the sending by the host And a second write operation instruction, wherein the second write operation instruction includes an LBA of a second sector in the physical page and data required to be written into the second sector.
  • the reading module 32 is further configured to read the data of the physical page and the identifier of each sector in the physical page to the cache according to the LBA of the second sector obtained by the receiving module 31. in.
  • the processing module 33 is further configured to update the preset data of the second sector to the need to write to the second sector according to the LBA of the second sector obtained by the receiving module 31. Data, and set the identity of the second sector to the second identity.
  • the writing module 35 is further configured to write the updated data of the physical page and the identifier of each sector in the physical page into a flash memory of the SSD to complete the second fan. A repair of a zone in which the identity of each sector in the physical page is written into the redundant space of the SSD.
  • the receiving module 31 is further configured to receive a read operation instruction sent by the host, where the read operation instruction includes an LBA of a sector to be read.
  • the device further includes: an obtaining module 37, and a sending module 38.
  • the obtaining module 37 is configured to acquire the identifier of the sector to be read according to the LB A of the sector to be read obtained by the receiving module 31.
  • the sending module 38 is configured to send a response message to the host when the identifier of the sector to be read obtained by the obtaining module 37 is the first identifier, where the response message is used to notify the host The data of the sector is invalid data. Further, the reading module 32 is further configured to: when the identifier of the sector to be read obtained by the acquiring module 37 is a second identifier, read data of the sector, and The data of the sector is sent to the host.
  • the bad track repairing apparatus reads the physical page data of the first sector according to the LBA of the first sector included in the first write operation instruction sent by the received host, and reads the physical page.
  • the storage space of the same size as the physical page is allocated in the cache, and the data of the storage space is set as the preset data, and then the storage space is stored corresponding to the first sector according to the LBA of the first sector.
  • the preset data of the interval is updated to the data that needs to be written into the first sector, and finally the data in the storage space is written into the flash memory of the SSD according to the address of the physical page, and the size allocated to the physical page is allocated in the cache.
  • the data of the storage space is set as preset data, and the preset data corresponding to the storage section corresponding to the first sector is updated to data that needs to be written into the first sector, and the data of the updated storage space is written into the SSD.
  • the original data of the physical page where the UNC is generated is replaced in the flash memory, and the problem that the repair is unsuccessful when the REP is generated in the sector is solved when the entire page has a UNC.
  • the UNC problem of gradually repairing the entire page is implemented in a sector-based manner without increasing the system entries, and the flexibility of the system is increased.
  • Embodiment 4 of the present invention provides a bad track repair device. As shown in FIG. 6, the method includes: a bus interface 41, a processor 42, wherein the bus interface 41 is used for communication with an external device.
  • the bus interface 41 is configured to receive a first write operation instruction sent by the host, where the first write operation instruction includes an LBA of the first sector and data that needs to be written into the first sector.
  • the processor 42 is configured to obtain, according to the bus interface 41, the first sector
  • the processor 42 is further configured to allocate a storage space of the same size as the physical page in the cache when the data of the physical page fails to be read, and set the data of the storage space as preset data.
  • the processor 42 is further configured to update, according to the LBA of the first sector obtained by the bus interface 41, preset data in the storage space and the storage section corresponding to the first sector to the The data of the first sector needs to be written.
  • the processor 42 is further configured to write data in the storage space into a flash memory of the SSD according to an address of the physical page to complete repair of the first sector.
  • the storage space includes at least two storage intervals, where each storage interval corresponds to one of the physical pages.
  • the processor 42 is further configured to: when the data of the physical page fails to be read, set an identifier of each storage interval in the storage space as a first identifier, where the first identifier is used to indicate storage The data in the interval is invalid data.
  • the processor 42 is further configured to update, in the LBA according to the first sector, preset data of a storage interval corresponding to the first sector in the storage space to the required write station After the data of the first sector is described, the identifier of the storage section corresponding to the first sector is set as the second identifier; wherein the second identifier is used to indicate that the data in the storage section is valid data. .
  • the processor 42 is further configured to write an identifier of each storage interval in the storage space into a redundant space of the SSD.
  • the bus interface 41 is further configured to: after the data in the storage space is written into the flash memory of the SSD according to the address of the physical page, Receiving a second write operation instruction sent by the host, where the second write operation instruction includes LB A of a second sector in the physical page and data required to be written into the second sector .
  • the processor 42 is further configured to read the data of the physical page and the identifier of each sector in the physical page into the cache according to the LBA of the second sector obtained by the bus interface 41. .
  • the processor 42 is further configured to update the preset data of the second sector to the need to write the second sector according to the LBA of the second sector obtained by the bus interface 41. Data, and set the identity of the second sector to the second identity.
  • the processor 42 is further configured to write the updated data of the physical page and the identifier of each sector in the physical page into a flash memory of the SSD to complete the second sector. The repair, wherein the identifier of each sector in the physical page is written into the redundant space of the SSD.
  • the bus interface 41 is further configured to receive a read operation instruction sent by the host, where the read operation instruction includes an LBA of a sector to be read.
  • the processor 42 is further configured to acquire the identifier of the sector to be read according to the LBA of the sector to be read obtained by the bus interface 41.
  • the processor 42 is further configured to: when the identifier of the sector to be read is the first identifier, send a response message to the host, where the response message is used to notify the host of the sector The data is invalid data.
  • the processor 42 is further configured to: when the identifier of the sector to be read is the second identifier, read the data of the sector, and The data of the sector is sent to the host.
  • the bad track repairing apparatus reads the physical page data of the first sector according to the LBA of the first sector included in the first write operation instruction sent by the received host, and reads the physical page.
  • the storage space of the same size as the physical page is allocated in the cache, and the data of the storage space is set as the preset data, and then the storage space is stored corresponding to the first sector according to the LBA of the first sector.
  • the preset data of the interval is updated to the data that needs to be written into the first sector, and finally the data in the storage space is written into the flash memory of the SSD according to the address of the physical page, and the size allocated to the physical page is allocated in the cache.
  • the data of the storage space is set as preset data, and the preset data corresponding to the storage section corresponding to the first sector is updated to data that needs to be written into the first sector, and the data of the updated storage space is written into the SSD.
  • the original data of the physical page where the UNC is generated is replaced in the flash memory, and the problem that the repair is unsuccessful when the REP is generated in the sector is solved when the entire page has a UNC.
  • the disclosed apparatus and methods may be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the modules or units is only a logical function division.
  • there may be another division manner for example, multiple units or components may be used.
  • the combination may be integrated into another device, or some features may be ignored or not performed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in the form of an electrical, mechanical or other.
  • the units described as separate components may or may not be physically separated, and the components displayed as the unit may be one physical unit or multiple physical units, that is, may be located in one place, or may be distributed to multiple different places. . Some or all of the units may be selected according to actual needs to achieve the objectives of the solution of the embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a readable storage medium.
  • the technical solution of the present invention may be embodied in the form of a software product in the form of a software product, or a part of the technical solution, which is stored in a storage medium.
  • a number of instructions are included to cause a device (which may be a microcontroller, chip, etc.) or a processor to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a U disk, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and the like, which can store program codes. .
  • ROM read-only memory
  • RAM random access memory
  • magnetic disk or an optical disk and the like, which can store program codes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供一种坏道修复方法及装置。该方法包括以下步骤:固态硬盘(SSD)接收主机发送的第一写操作指令(101),其中,该第一写操作指令包含有第一扇区的逻辑扇区地址(LSA)以及需要写入该第一扇区的数据;根据该第一扇区的LSA读取该第一扇区所在的物理页的数据(102);当读取该物理页的数据失败时,在缓存中分配与该物理页大小相同的存储空间,并将该存储空间的数据设置为预设数据(103);根据该第一扇区的LSA,将该存储空间中与该第一扇区对应存储区间的预设数据更新为该需要写入该第一扇区的数据(104);根据该物理页的地址,将该存储空间中的数据写入该SSD的闪存中,以完成对该第一扇区的修复。本发明解决了整个页发生了不可纠正的ECC错误时,以扇区为单位进行修复时修复不成功的问题(105)。

Description

一种坏道修复方法及装置 本申请要求于 2013 年 8 月 27 日提交中国专利局, 申请号为 201310378406.9 , 发明名称为 "一种坏道修复方法及装置" 的中国专利 申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明涉及计算机领域, 尤其涉及一种坏道修复方法及装置。
背景技术
硬盘是计算机的主要存储媒介, 其中固态硬盘 (Solid State Disk,
SSD )是硬盘中比较常用的一种, SSD是一种利用固态电子存储芯片阵 列制成的硬盘, 其主要利用 Flash芯片作为存储介质来存储数据, 目前 比较常见的 Flash芯片为 Nand Flash。 在目前常见的 Nand Flash中, 其 每个片选信号( Chip Enable , CE )对应 8192个块( Block ) , 每个 Block 包含 128个页 (Page ) , 其中 Page是 Nand Flash进行数据读写操作的 最小单元, 每个 Page大小一般为 4K字节 (Byte ) , 而主机对硬盘进 行数据读写操作的最小单元为 1个扇区 (Sector ) , 每个 Sector的大小 一般情况下为 512B , 综上所述可以得到的是, 主机进行读写操作的最 小单元与 Nand Flash进行数据读写操作的最小单元不一致, 在主机进 行写操作时, 若主机写入 Nand Flash的数据的小于一个 Page时, 通过 采用预填充的方案才可以将数据成功写入 Nand Flash中。
众所周知, 硬盘是很容易发生故障的, 其中无法纠正的 ECC编码 错误 ( Uncorrectable Error Correcting Code error, UNC ) 是最常见的故 障之一。 目前常采用独立磁盘冗余阵歹 'J ( redundant array of independent disks , RAID )机制来解决 UNC问题, 当硬盘中的某个盘发生 UNC时, 可以通过读取其他盘的信息对发生 UN C的位置进行重新写入以实现修 复的目的。 但是在采用 Nand Flash为存储介质的硬盘中, 由于主机进 行数据读写操作的最小单元为 1个 Sector (如, 1个 Sector为 512B ) , 而 Nand Flash的最小写入单元为 1个 Page (如, 1个 Page为 4 KB ) , 所以需采用预填充的方案才可以成功的将数据重新写入发生 UNC的位 置进行修复。 在整个 Page发生 UNC的情况下, 当主机以 Sector为单 位进行修复时, 硬盘接收主机针对某个 Sector 的写入指令时, 需要将 该 Sector所在的 Page读取到随机存取存者器 (Random Access Memory, RAM)中, 但是由于整个 Page发生了 UNC , 读取会发生失败, 这样硬 盘会放弃本次写入操作, 并向主机回复写入成功, 此时主机会再次针 对该 Sector的进行读取操作, 以确认主机对该 Sector的修复操作是否 成功。 由于硬盘实际上并没有成功将数据写入该 Sector, 那么主机读取 发生失败, 会判断该 Sector所在盘故障 (实际该盘仍然可用) , 最终 将该盘踢除, 导致 RAID降级, 影响了系统的可靠性。
发明内容
本发明的实施例提供一种坏道修复的方法及装置, 解决了整个
Page发生了 UNC时, 以 Sector为单位进行修复时修复不成功的问题。
为达到上述目的, 本发明的实施例采用如下技术方案:
本发明的第一方面, 提供一种坏道修复方法, 包括:
固态硬盘 ( Solid State Disk, SSD ) 接收主机发送的第一写操作指 令, 其中, 所述第一写操作指令包含有第一扇区的逻辑扇区地址 ( Logical Block Addressing , LB A )以及需要写入所述第一扇区的数据; 根据所述第一扇区的 LBA 读取所述第一扇区所在的物理页的数 据;
当读取所述物理页的数据失败时, 在緩存中分配与所述物理页大 小相同的存储空间, 并将所述存储空间的数据设置为预设数据;
根据所述第一扇区的 LBA, 将所述存储空间中与所述第一扇区对 应存储区间的预设数据更新为所述需要写入所述第一扇区的数据;
根据所述物理页的地址, 将所述存储空间中的数据写入所述 SSD 的闪存中, 以完成对所述第一扇区的修复。
结合第一方面, 在一种可能的实现方式中, 所述存储空间包含至 少两个存储区间, 其中每个存储区间对应所述物理页中的一个扇区; 所述方法还包括:
当读取所述物理页的数据失败时, 设置所述存储空间中的每个存 储区间的标识为第一标识, 其中, 所述第一标识用于表示存储区间中 的数据为失效数据; 在所述根据所述第一扇区的 LBA, 将所述存储空间中与所述第一 扇区对应存储区间的预设数据更新为所述需要写入所述第一扇区的数 据之后, 还包括:
将所述与所述第一扇区对应存储区间的标识设置为第二标识; 其 中, 所述第二标识用于表示所述存储区间中的数据为有效数据;
将所述存储空间中的每个存储区间的标识写入所述 SSD的冗余空 间中。
结合第一方面和上述可能的实现方式, 在另一种可能的实现方式 中, 在所述根据所述物理页的地址, 将所述存储空间中的数据写入所 述 SSD的闪存中之后, 还包括:
接收所述主机发送的第二写操作指令, 其中, 所述第二写操作指 令中包含有所述物理页中的第二扇区的 LBA以及与需要写入所述第二 扇区的数据;
根据所述第二扇区的 LBA将所述物理页的数据和所述物理页中的 每个扇区的标识读取至緩存中;
根据所述第二扇区的 LBA, 将所述第二扇区的预设数据更新为所 述需要写入所述第二扇区的数据, 并将所述第二扇区的标识设置为第 二标识; 识写入所述 SSD的闪存中, 以完成对所述第二扇区的修复, 其中, 所 述物理页中的每个扇区的标识被写入所述 SSD的冗余空间中。
结合第一方面和上述可能的实现方式, 在另一种可能的实现方式 中, 还包括:
接收所述主机发送的读操作指令; 其中, 所述读取操作指令包含 有待读取的扇区的 LBA;
根据所述待读取的扇区的 LBA获取所述待读取的扇区的标识; 当所述待读取的扇区的标识为第一标识时, 向所述主机发送响应 消息, 其中, 所述响应消息用于通知所述主机所述扇区的数据为失效 数据。
结合第一方面和上述可能的实现方式, 在另一种可能的实现方式 中, 还包括: 当所述待读取的扇区的标识为第二标识时, 读取所述扇区的数据, 并将所述扇区的数据发送至所述主机。
本发明的第二方面, 提供一种坏道修复装置, 包括:
接收模块, 用于接收主机发送的第一写操作指令, 其中, 所述第 一写操作指令包含有第一扇区的逻辑扇区地址 ( Logical Block Addressing, LBA ) 以及需要写入所述第一扇区的数据;
读取模块, 用于根据所述接收模块得到的所述第一扇区的 LBA读 取所述第一扇区所在的物理页的数据;
处理模块, 用于当所述读取模块读取所述物理页的数据失败时, 在緩存中分配与所述物理页大小相同的存储空间, 并将所述存储空间 的数据设置为预设数据;
更新模块, 用于根据所述接收模块得到的所述第一扇区的 LBA, 将所述存储空间中与所述第一扇区对应存储区间的预设数据更新为所 述需要写入所述第一扇区的数据;
写入模块, 用于根据所述物理页的地址, 将所述存储空间中的数 据写入固态硬盘 (Solid State Disk, SSD ) 的闪存中, 以完成对所述第 一扇区的修复。
结合第二方面, 在一种可能的实现方式中, 所述存储空间包含至 少两个存储区间, 其中每个存储区间对应所述物理页中的一个扇区; 所述装置还包括:
设置模块, 还用于当所述读取模块读取所述物理页的数据失败时, 设置所述存储空间中的每个存储区间的标识为第一标识, 其中, 所述 第一标识用于表示存储区间中的数据为失效数据;
所述设置模块,还用于在所述更新模块根据所述第一扇区的 LBA, 将所述存储空间中与所述第一扇区对应存储区间的预设数据更新为所 述需要写入所述第一扇区的数据之后, 将所述与所述第一扇区对应存 储区间的标识设置为第二标识; 其中, 所述第二标识用于表示所述存 储区间中的数据为有效数据;
所述写入模块, 还用于将所述存储空间中的每个存储区间的标识 写入所述 SSD的冗余空间中。
结合第二方面和上述可能的实现方式, 在另一种可能的实现方式 中,
所述接收模块, 还用于在所述写入模块根据所述物理页的地址, 将所述存储空间中的数据写入所述 SSD的闪存中之后, 接收所述主机 发送的第二写操作指令, 其中, 所述第二写操作指令中包含有所述物 理页中的第二扇区的 LBA以及与需要写入所述第二扇区的数据;
所述读取模块, 还用于根据所述接收模块得到的所述第二扇区的 LBA 将所述物理页的数据和所述物理页中的每个扇区的标识读取至緩 存中;
所述处理模块, 还用于根据所述接收模块得到的所述第二扇区的 LBA , 将所述第二扇区的预设数据更新为所述需要写入所述第二扇区 的数据, 并将所述第二扇区的标识设置为第二标识;
所述写入模块, 还用于将更新后的所述物理页的数据以及所述物 理页中的每个扇区的标识写入所述 SSD的闪存中, 以完成对所述第二 扇区的修复, 其中, 所述物理页中的每个扇区的标识被写入所述 SSD 的冗余空间中。
结合第二方面和上述可能的实现方式, 在另一种可能的实现方式 中,
所述接收模块, 还用于接收所述主机发送的读操作指令; 其中, 所述读取操作指令包含有待读取的扇区的 LBA;
所述装置还包括:
获取模块, 用于根据所述接收模块得到的所述待读取的扇区的 LBA获取所述待读取的扇区的标识;
发送模块, 用于当所述获取模块得到的所述待读取的扇区的标识 为第一标识时, 向所述主机发送响应消息, 其中, 所述响应消息用于 通知所述主机所述扇区的数据为失效数据。
结合第二方面和上述可能的实现方式, 在另一种可能的实现方式 中,
所述读取模块, 还用于当所述获取模块得到的所述待读取的扇区 的标识为第二标识时, 读取所述扇区的数据, 并将所述扇区的数据发 送至所述主机。
本发明实施例提供的坏道修复方法及装置, SSD 根据接收到的主 机发送的第一写操作指令中包含的第一扇区的 LBA去读取第一扇区所 在的物理页的数据时, 若读取物理页的数据失败, 则在緩存中分配与 物理页大小相同的存储空间, 并将存储空间的数据设置为预设数据, 然后根据第一扇区的 LBA, 将存储空间中与第一扇区对应存储区间的 预设数据更新为述需要写入第一扇区的数据, 最后根据物理页的地址, 将存储空间中的数据写入 SSD的闪存中。从而解决了整个 Page发生了 UNC时, 以 Sector为单位进行修复时修复不成功的问题。
附图说明 将对实施例或现有技术描述中所需要使用的附图作简单地介绍。 显而 易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本领域 普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以根据这 些附图获得其他的附图。
图 1为本发明实施例 1提供的一种坏道修复方法流程图;
图 2为本发明实施例 2提供的一种坏道修复方法流程图;
图 3为本发明实施例 2提供的另一种坏道修复方法流程图; 图 4为本发明实施例 3提供的一种坏道修复装置组成示意图; 图 5为本发明实施例 3提供的另一种坏道修复装置组成示意图; 图 6为本发明实施例 4提供的一种坏道修复装置组成示意图。
具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方 案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部 分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普 通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
现有技术中, 当主机以 Sector为单位进行修复时, 若 SSD接收到 主机针对某个 Sector的写入指令, 则需要将该 Sector所在的 Page读取 到 RAM中, 但是由于该 Page发生了 UNC, 读取会发生失败, 此时便 不能成功修复该 Sector, 主机会将该盘踢除, 导致 RAID降级, 最终影 响了系统的可靠性。
为了克服现有技术的缺陷, 本发明实施例提供一种坏道修复方法 及装置, 具体的参见以下实施例 1 -实施例 4。
实施例 1
本发明实施例 1提供一种坏道修复方法, 如图 1 所示, 该方法可 以包括:
101、 SSD接收主机发送的第一写操作指令。
其中, 当 SSD中整个物理页发生 UNC , 主机需要以单扇区为单位 对发生 UNC的物理页进行修复时, 主机可以向该物理页中的某个扇区 写入数据, 具体的, 主机可以向 SSD发送第一写操作指令, 此时 SSD 接收主机发送的第一写操作指令, 其中该第一写操作指令包含第一扇 区的逻辑扇区地址 (Logical Block Addressing, LBA ) 以及与第一扇区 的 LBA对应的需要写入第一扇区的数据, 该第一扇区为发生 UNC的 物理页包含的扇区中的任意一个。
102、 SSD根据第一扇区的 LBA读取第一扇区所在的物理页的数 据。
其中, 当 SSD接收到主机发送的第一写操作指令之后, 可以根据 接收到的第一写操作指令中包含的第一扇区的 LBA获取第一扇区所在 的物理页的地址, 并根据物理页的地址对该物理页的数据进行读取操 作。
103、 当读取物理页的数据失败时, SSD在緩存中分配与物理页大 小相同的存储空间, 并将存储空间的数据设置为预设数据。
其中, 当 SSD 根据接收到的第一写操作指令包含的第一扇区的 LBA 对第一扇区所在的物理页的数据进行读取操作时, 读取该物理页 的数据失败, 此时 SSD可以直接在緩存中分配与该物理页大小相同的 存储空间,并将存储空间的数据设置为预设数据。例如,预设数据为 0 , 则 SSD在緩存中将与物理页大小相同的存储空间的数据设置为 0。
需要说明的是, 在本发明实施例中, 预设数据是可以与普通数据 制。
需要说明的是, 在本发明实施例中, 緩存可以是 SSD中的随机存 取存储器 (Random Access Memory , RAM)或只读存储器 (Read Only Memory, ROM)等存储器, 本发明实施例在此不做限制。
104、 SSD根据第一扇区的 LBA, 将存储空间中与第一扇区对应存 储区间的预设数据更新为需要写入第一扇区的数据。
其中, 当 SSD在緩存中分配与物理页大小相同的存储空间, 并将 该存储空间的数据设置为预设数据之后, 可以根据接收到的主机发送 的第一写操作指令中包含的第一扇区的 LBA, 将存储空间中与第一扇 区对应存储区间的预设数据更新为需要写入第一扇区的数据。
105、 SSD根据物理页的地址,将存储空间中的数据写入 SSD的闪 存中, 以完成对第一扇区的修复。
其中, 当 SSD根据第一扇区的 LBA, 将存储空间中与第一扇区对 应存储区间的预设数据更新为需要写入第一扇区的数据之后, 可以根 据物理页的地址, 将存储空间中的数据写入 SSD的闪存中, 覆盖该物 理页中原有的数据, 此时便完成了对第一扇区的修复。
本发明实施例提供的坏道修复方法, SSD 根据接收到的主机发送 的第一写操作指令中包含的第一扇区的 LBA读取第一扇区所在的物理 页的数据, 当读取物理页的数据失败时, 在緩存中分配与物理页大小 相同的存储空间, 并将存储空间的数据设置为预设数据, 然后根据第 一扇区的 LBA, 将存储空间中与第一扇区对应存储区间的预设数据更 新为述需要写入第一扇区的数据, 最后根据物理页的地址, 将存储空 间中的数据写入 SSD的闪存中, 通过将在緩存中分配的与物理页大小 相同的存储空间的数据设置为预设数据, 并将与第一扇区对应存储区 间的预设数据更新为需要写入第一扇区的数据, 并将更新后的存储空 间的数据写入 SSD的闪存中替换发生 UNC的物理页的原有数据,解决 了整个 Page发生了 UNC时, 以 Sector为单位进行修复时修复不成功 的问题。
实施例 2
本发明实施例 2提供一种坏道修复方法, 如图 2所示, 该方法可 以包括:
201、 SSD接收主机发送的第一写操作指令。 其中, 当 SSD中整个物理页发生 UNC, 主机需要以单扇区为单位 对发生 UNC的物理页进行修复时, 主机可以向该物理页中的某个扇区 写入数据, 具体的, 主机可以向 SSD发送第一写操作指令, 此时 SSD 便可以接收主机发送的第一写操作指令。 其中, 该第一写操作指令包 含第一扇区的 LBA 以及与第一扇区的 LBA对应的需要写入第一扇区 的数据, 该第一扇区为发生 UNC的物理页包含的扇区中的任意一个。
202、 SSD根据第一扇区的 LBA读取第一扇区所在的物理页的数 据。
其中, 当 SSD接收到主机发送的第一写操作指令之后, 可以根据 接收到的第一写操作指令中包含的第一扇区的 LBA获取第一扇区所在 的物理页的地址, 并根据物理页的地址对该物理页的数据进行读取操 作。
203、 当读取物理页的数据失败时, SSD在緩存中分配与物理页大 小相同的存储空间, 并将存储空间的数据设置为预设数据。
其中, 当 SSD读取物理页的数据失败时, SSD在緩存中分配与物 理页大小相同的存储空间, 并将存储空间的数据设置为预设数据。 其 中, 该存储空间中包含至少两个存储区间, 每个存储区间对应物理页 中的一个扇区, 也就是说将存储空间的数据设置为预设数据具体的是 将存储空间中包含的每个存储区间的数据设置为预设数据。
需要说明的是, 在本发明实施例中, 预设数据是可以与普通数据 制。 、 ' ' 、 、 、 、
204、 当读取物理页的数据失败时, SSD设置存储空间中的每个存 储区间的标识为第一标识。
其中, 该存储空间包含至少两个存储区间, 每个存储区间对应物 理页中的一个扇区。 为了可以区分存储空间中的每个存储区间的数据 是否是有效的数据, 在本发明实施例中, SSD 为存储空间包含的每个 存储区间设置了对应的标识。 具体的, 若 SSD读取物理页的数据失败, SSD 可以设置存储空间中的每个存储区间的标识为第一标识。 其中, 存储区间的标识用于表示对应存储区间的数据是否有效, 第一标识用 于表示对应存储区间的数据为失效数据。
需要说明的是, 在步骤 202根据第一扇区的 LBA对第一扇区所在 的物理页的数据进行读取操作, 若读取物理页的数据失败时, 可以先 执行步骤 203 , 然后再执行步骤 204; 或者也可以先执行步骤 204 , 然 后再执行步骤 203 ; 或者还可以在读取物理页的数据失败之后, 同时执 行步骤 203和步骤 204。 也就是说, 本发明实施例中对步骤 203和步骤 204的执行的先后顺序不做限制, 通常情况下, 也可以同时执行。
205、 SSD根据第一扇区的 LBA, 将存储空间中与第一扇区对应存 储区间的预设数据更新为需要写入第一扇区的数据。
其中, 当 SSD将在緩存中分配与物理页大小相同存储空间的数据 设置为预设数据, 并设置存储空间中的每个存储区间的标识为第一标 识之后,可以根据接收到的第一写操作指令中包含的第一扇区的 LBA , 将存储空间中与第一扇区对应存储区间的预设数据更新为需要写入第 一扇区的数据, 此时存储空间中与第一扇区对应存储区间的数据即为 需要修复的物理页中的第一扇区的数据。
206、 SSD将与第一扇区对应存储区间的标识设置为第二标识。 其中, 由于存储空间中与第一扇区对应存储区间的数据已经为需 写入第一扇区的数据, 因此, 此时 SSD需要将存储空间中与第一扇区 对应存储区间的有效标识由第一标识修改为第二标识, 其中, 该第二 标识用于表示存储区间中的数据为有效数据。
需要说明的是, 步骤 205和步骤 206的执行没有先后顺序, 通常 情况下还可以同时执行, 本发明实施例在此对步骤 205和步骤 206的 执行的先后顺序不做限制。
207、 SSD根据物理页的地址,将存储空间中的数据写入 SSD的闪 存中, 以完成对第一扇区的修复, 并将存储空间中的每个存储区间的 标识写入 SSD的冗余空间中。
其中, 当 SSD根据第一扇区的 LBA, 将存储空间中与第一扇区对 应存储区间的预设数据更新为需要写入第一扇区的数据, 并将与第一 扇区对应存储区间的标识设置为第二标识之后, SSD 根据物理页的地 址, 将存储空间中的数据写入 SSD的闪存中替换该物理页中原有的数 据, 以完成对第一扇区的修复, 并且将存储空间中的每个存储区间的 标识也写入 SSD的冗余空间中。 众所周知, 在 Nand Flash中每个物理 页都有一定的冗余空间, 在本发明实施例中, 可以将存储空间中的每 个存储区间的标识写入物理页的冗余空间中, 这样不会增加系统的表 项, 节省了 RAN的空间, 节约了成本。 例如, SSD以 Nand Flash为存 储介质, 主机进行数据读写操作的最小单元为 1个 Sector, 每个 Sector 的大小以 512B ,物理页对 SSD以外体现的实际存放数据的空间大小为 8个 Sector ( 8*512B=4096B ) , 但是对于 SSD来说实际上一个物理页 的大小比 8 个 Sector 的大小要大, 例如物理页的大小有可能是如 4120B>4096B ,此时便可以用冗余空间来存放存储空间中的每个存储区 间的标识, 也就是该物理页包含的每个扇区对应的标识。
可以理解的是, 由于存储空间包含的存储区间对应物理页中的扇 区, 那么当 SSD根据物理页的地址, 将存储空间中的数据写入 SSD的 闪存中, 并将存储空间中的每个存储区间的标识写入 SSD的冗余空间 中之后, 存储空间中的每个存储区间的标识也就是物理页中每个扇区 的标识, 也就是说。 该标识表示物理页中每个扇区的数据是否为有效 数据。
当 SSD根据物理页的地址, 将存储空间中的数据写入 SSD的闪存 中, 并将存储空间中的每个存储区间的标识写入 SSD的冗余空间中之 后, 在一种应用场景中, 若主机需要对发生 UNC的物理页中的第二扇 区的数据进行修复, 此时具体的可以执行以下步骤 208-步骤 21 1。
208、 SSD接收主机发送的第二写操作指令。
其中, 当主机需要修复第二扇区的数据时, 可以向 SSD发送第二 写操作指令, 此时 SSD便可以接收主机发送的第二写操作指令。 其中, 该第二写操作指令中包含有物理页中的第二扇区的 LB A以及与第二扇 区的 LBA对应的需要写入第二扇区的数据, 第二扇区为物理页包含的 至少两个扇区中除第一扇区外的任意一个扇区。
209、 SSD根据第二扇区的 LBA将物理页的数据和物理页中的每 个扇区的标识读取至緩存中。
其中, 当 SSD接收到主机发送的第二写操作指令之后, 可以根据 第二写操作指令包含的第二扇区的 LBA将第二扇区所在的物理页的数 据以及该物理页中的每个扇区的标识读取至緩存中。
210、 SSD根据第二扇区的 LBA, 将第二扇区的预设数据更新为需 要写入所述第二扇区的数据, 并将第二扇区的标识设置为第二标识。
其中,当 SSD根据第二扇区的 LBA将物理页的数据和物理页中的 每个扇区的标识读取至緩存中之后, 可以根据第二写操作指令中包含 的第二扇区的 LBA, 将第二扇区的预设数据更新为需要写入所述第二 扇区的数据, 覆盖第二扇区原有的数据, 并且, 需要将第二扇区对应 的标识设置为第二标识, 以指示第二扇区的数据为有效数据。 识写入述 SSD的闪存中, 以完成对第二扇区的修复。
其中, 当 SSD根据第二扇区的 LBA, 将第二扇区的预设数据更新 为需要写入所述第二扇区的数据, 并将第二扇区的标识设置为第二标 识写入述 SSD的闪存中,此时便完成了物理页中第二扇区数据的修复, 其中, 物理页中的每个扇区的标识被写入 SSD的冗余空间中。
需要说明的是, 通过重复执行步骤 208-步骤 21 1便可以将整个物 理页中的所有扇区都修复完成。
当 SSD根据物理页的地址, 将存储空间中的数据写入 SSD的闪存 中, 并将存储空间中的每个存储区间的标识写入 SSD的冗余空间中之 后, 在另一种应用场景中, 如图 3 所示, 若主机需要读取物理页中某 个扇区的数据, 此时具体的可以执行以下步骤 212-步骤 215。
212、 SSD接收主机发送的读操作指令。
其中, 当主机需要读取物理页中某个扇区的数据时, 可以向 SSD 发送读操作指令, 此时 SSD便可以接收主机发送的读操作指令。 其中 该读取操作指令包含有待读取的扇区的 LBA。
213、 SSD根据待读取的扇区的 LBA获取待读取的扇区的标识。 其中, 当 SSD接收到主机发送的读操作指令之后, 便可以根据读 操作指令包含的待读取的扇区的 LBA获取待读取的扇区的标识。
214、 当待读取的扇区的标识为第一标识时, SSD向主机发送响应 消息。
其中,当 SSD根据待读取的扇区的 LBA获取到待读取的扇区的标 识之后, 需要对待读取的扇区的标识进行判断, 当确定待读取的扇区 的标识为第一标识时, 则表明该待读取的扇区的数据为失效数据, 此 时 SSD可以向主机发送响应消息。 其中, 该响应消息用于通知主机该 待读取的扇区的数据为失效数据。
可选的, 当 SSD接收到主机发送的读操作指令之后, 可以根据读 操作指令中包含的待读取的扇区的 LBA直接读取对应的扇区的数据, 并在读取到该待读取的扇区的数据之后, 判断得到的待读取的扇区的 数据是否为预设数据, 并在确定得到的待读取的扇区的数据为预设数 据时, 向主机发送用于通知主机第二扇区的数据为失效数据的响应消 息。
215、 当待读取的扇区的标识为第二标识时, SSD读取该扇区的数 据, 并将该扇区的数据发送至主机。
其中,当 SSD根据待读取的扇区的 LBA获取到待读取的扇区的标 识之后, 确定待读取的扇区的标识为第二标识时, 则表明该待读取的 扇区中的数据为有效数据, 此时 SSD可以读取该扇区的数据, 并将该 扇区的数据发送至主机。
可选的, 当 SSD接收到主机发送的读操作指令之后, 也可以根据 读操作指令中包含的待读取的扇区的 LBA直接读取该待读取的扇区的 数据, 并在得到该待读取的扇区的数据之后, 判断得到的该待读取的 扇区的数据是否为预设数据, 并在确定得到的该待读取的扇区的数据 不是预设数据时, 将读取到的待读取的扇区的数据发送至主机。
需要说明的是, 在本发明实施例中, 緩存可以是 SSD 中的 RAM 或 ROM等存储器, 本发明实施例在此不做限制。
为了便于本领域技术人员的理解, 对本发明实施例中的实施过程 进行举例说明。
例如, SSD以 Nand Flash为存储介质, 物理页的大小为 4K Byte , 主机进行数据读写操作的最小单元为 1个 Sector,每个 Sector的大小为 512B, 也就是说一个物理页包含 8个 Sector, 预设数据为 0 , 第一标识 为 1 , 第二标识为 0。 当整个物理页发生 UNC时, 此时主机需要对物 理页中的 Sector2的数据进行修复,便可以向 SSD发送写操作指令, 该 写操作指令中包含 Sector2的 LBA以及 Sector2的 LBA对应的需要写 入 Sector2的数据, 当 SSD接收到写操作指令之后, 可以根据 Sector2 的 LBA获取 Sector2所在的物理页的地址, 并根据该物理页的地址读 取该物理页的数据(该物理页中包含 8个 Sector ) , 当读取该物理页的 数据失败时, SSD在緩存 (如 RAM ) 中分配与该物理页大小相同的存 储空间 (该存储空间中包含 8 个存储区间, 每个存储区间的大小与 Sector的大小相同), 并将该存储空间包含的 8个存储区间的数据设置 为 0 , 并将存储空间中的 8个存储区间的标识设置为 1 , 此时 SSD可以 将 Sector2现有的数据用写操作指令中包含的 Sector2的 LBA对应的需 要写入 Sector2的数据覆盖,并将 Sector2对应存储区间的标识修改为 0 , 最后根据物理页的地址, 将存储空间中的数据写入 SSD的闪存中, 并 将存储空间中的 8个存储区间的标识写入 SSD的冗余空间中。
在将将存储空间中的数据写入 SSD的闪存中, 并将存储空间中的 8个存储区间的标识写入 SSD的冗余空间中之后, 若 SSD接收到主机 发送的用于读取 Sector2的数据的读操作指令时, 便可以根据读操作指 令中的 Sector2的 LBA获取 Sector2的标识, 并在判断得到 Sector2的 标识为第二标识, 此时 SSD便可以将 Sector2的数据读取出来, 并发送 至主机; 若 SSD接收到主机发送的用于读取除 Sector2之外的其余的 Sector的数据的读操作指令时,可以根据读操作指令中的 Sector的 LBA 获取该 S ector的标识, 在判断得到该 S ector的标识为第一标识时, 向 主机发送用于通知主机需要读取的 Sector 的数据为失效数据的响应消 息。
在将存储空间中的数据写入 SSD的闪存中, 并将存储空间中的 8 个存储区间的标识写入 SSD 的冗余空间中之后, 若主机需要修复除 Sector2之外的其余的 Sector的数据时,可以向 SSD发送该 Sector的写 操作指令,此时 SSD便可以根据写操作指令包含的 Sector的 LBA获取 物理页和物理页包含的 8个 Sector对应的有效标识, 并将物理页的数 据和 8个 Sector对应的有效标识读取至緩存 (RAM ) 中, 然后 居该 Sector的写操作指令更新物理页包含的该 Sector的数据,并将该 Sector 对应的有效标识设置为第二标识, 最后将更新后的物理页的数据以及 物理页中的每个扇区的标识写入 SSD的闪存中, 以完成对该 Sector的 修复, 重复该过程, 便可以将整个物理页中的所有扇区都修复完成。
本发明实施例提供的坏道修复方法, SSD 根据接收到的主机发送 的第一写操作指令中包含的第一扇区的 LBA读取第一扇区所在的物理 页的数据, 当读取物理页的数据失败时, 在緩存中分配与物理页大小 相同的存储空间, 并将存储空间的数据设置为预设数据, 然后根据第 一扇区的 LBA , 将存储空间中与第一扇区对应存储区间的预设数据更 新为述需要写入第一扇区的数据, 最后根据物理页的地址, 将存储空 间中的数据写入 SSD的闪存中, 通过将在緩存中分配的与物理页大小 相同的存储空间的数据设置为预设数据, 并将与第一扇区对应存储区 间的预设数据更新为需要写入第一扇区的数据, 并将更新后的存储空 间的数据写入 SSD的闪存中替换发生 UNC的物理页的原有数据,解决 了整个 Page发生了 UNC时, 以 Sector为单位进行修复时修复不成功 的问题。
并且, 通过设置 Page中每个 Sector对应的有效标识, 在未增加系 统表项的情况下, 实现了以 Sector 为单位逐步修复整个 Page 出现的 UNC问题, 并增加了系统的灵活性。
实施例 3
本发明实施例 3提供一种坏道修复装置, 如图 4所示, 包括: 接 收模块 31、 读取模块 32、 处理模块 33、 更新模块 34、 写入模块 35。
接收模块 31 , 用于接收主机发送的第一写操作指令, 其中, 所述 第一写操作指令包含有第一扇区的逻辑扇区地址 ( Logical Block Addressing, LBA ) 以及需要写入所述第一扇区的数据。
读取模块 32, 用于根据所述接收模块 31 得到的所述第一扇区的 LB A读取所述第一扇区所在的物理页的数据。
处理模块 33 ,用于当所述读取模块 32读取所述物理页的数据失败 时, 在緩存中分配与所述物理页大小相同的存储空间, 并将所述存储 空间的数据设置为预设数据。
更新模块 34, 用于根据所述接收模块 31 得到的所述第一扇区的 LBA, 将所述存储空间中与所述第一扇区对应存储区间的预设数据更 新为所述需要写入所述第一扇区的数据。
写入模块 35 , 用于根据所述物理页的地址, 将所述存储空间中的 数据写入固态硬盘 ( Solid State Disk, SSD ) 的闪存中, 以完成对所述 第一扇区的修复。
进一步的, 所述存储空间包含至少两个存储区间, 其中每个存储 区间对应所述物理页中的一个扇区。
如图 5所示, 所述装置还可以包括: 设置模块 36。
设置模块 36,还用于当所述读取模块 32读取所述物理页的数据失 败时, 设置所述存储空间中的每个存储区间的标识为第一标识, 其中, 所述第一标识用于表示存储区间中的数据为失效数据。
所述设置模块 36 ,还用于在所述更新模块 34根据所述第一扇区的 LBA , 将所述存储空间中与所述第一扇区对应存储区间的预设数据更 新为所述需要写入所述第一扇区的数据之后, 将所述与所述第一扇区 对应存储区间的标识设置为第二标识; 其中, 所述第二标识用于表示 所述存储区间中的数据为有效数据。
所述写入模块 35 , 还用于将所述存储空间中的每个存储区间的标 识写入所述 SSD的冗余空间中。
进一步的, 所述接收模块 31 , 还用于在所述写入模块 35根据所述 物理页的地址,将所述存储空间中的数据写入所述 SSD的闪存中之后, 接收所述主机发送的第二写操作指令, 其中, 所述第二写操作指令中 包含有所述物理页中的第二扇区的 LBA以及与需要写入所述第二扇区 的数据。
所述读取模块 32 ,还用于根据所述接收模块 31得到的所述第二扇 区的 LBA将所述物理页的数据和所述物理页中的每个扇区的标识读取 至緩存中。
所述处理模块 33 ,还用于根据所述接收模块 31得到的所述第二扇 区的 LBA, 将所述第二扇区的预设数据更新为所述需要写入所述第二 扇区的数据, 并将所述第二扇区的标识设置为第二标识。
所述写入模块 35 , 还用于将更新后的所述物理页的数据以及所述 物理页中的每个扇区的标识写入所述 SSD的闪存中, 以完成对所述第 二扇区的修复,其中,所述物理页中的每个扇区的标识被写入所述 SSD 的冗余空间中。
进一步的, 所述接收模块 31 , 还用于接收所述主机发送的读操作 指令; 其中, 所述读取操作指令包含有待读取的扇区的 LBA。
所述装置还包括: 获取模块 37、 发送模块 38。
获取模块 37 ,用于根据所述接收模块 31得到的所述待读取的扇区 的 LB A获取所述待读取的扇区的标识。
发送模块 38 ,用于当所述获取模块 37得到的所述待读取的扇区的 标识为第一标识时, 向所述主机发送响应消息, 其中, 所述响应消息 用于通知所述主机所述扇区的数据为失效数据。 进一步的, 所述读取模块 32 , 还用于当所述获取模块 37得到的所 述待读取的扇区的标识为第二标识时, 读取所述扇区的数据, 并将所 述扇区的数据发送至所述主机。
需要说明的是, 本发明实施例提供的坏道修改装置中功能模块的 具体描述可以参考方法实施例中对应内容的具体描述, 本发明实施例 在 j¾不再伴细赞述。
本发明实施例提供的坏道修复装置, 根据接收到的主机发送的第 一写操作指令中包含的第一扇区的 LBA读取第一扇区所在的物理页的 数据, 当读取物理页的数据失败时, 在緩存中分配与物理页大小相同 的存储空间, 并将存储空间的数据设置为预设数据, 然后根据第一扇 区的 LBA , 将存储空间中与第一扇区对应存储区间的预设数据更新为 述需要写入第一扇区的数据, 最后根据物理页的地址, 将存储空间中 的数据写入 SSD的闪存中, 通过将在緩存中分配的与物理页大小相同 的存储空间的数据设置为预设数据, 并将与第一扇区对应存储区间的 预设数据更新为需要写入第一扇区的数据, 并将更新后的存储空间的 数据写入 SSD的闪存中替换发生 UNC的物理页的原有数据,解决了整 个 Page发生了 UNC时, 以 Sector为单位进行修复时修复不成功的问 题。
并且, 通过设置 Page中每个 Sector对应的有效标识, 在未增加系 统表项的情况下, 实现了以 Sector 为单位逐步修复整个 Page 出现的 UNC问题, 并增加了系统的灵活性。
实施例 4
本发明实施例 4提供一种坏道修复装置, 如图 6所示, 包括: 总 线接口 41、 处理器 42 , 其中, 所述总线接口 41 用于与外部设备进行 通信。
所述总线接口 41 , 用于接收主机发送的第一写操作指令, 其中, 所述第一写操作指令包含有第一扇区的 LBA以及需要写入所述第一扇 区的数据。
所述处理器 42 ,用于根据所述总线接口 41得到的所述第一扇区的
LB A读取所述第一扇区所在的物理页的数据 · 所述处理器 42 , 还用于当读取所述物理页的数据失败时, 在緩存 中分配与所述物理页大小相同的存储空间, 并将所述存储空间的数据 设置为预设数据。
所述处理器 42 ,还用于根据所述总线接口 41得到的所述第一扇区 的 LBA, 将所述存储空间中与所述第一扇区对应存储区间的预设数据 更新为所述需要写入所述第一扇区的数据。
所述处理器 42 , 还用于根据所述物理页的地址, 将所述存储空间 中的数据写入 SSD的闪存中, 以完成对所述第一扇区的修复。
在本发明实施例中, 进一步可选的, 所述存储空间包含至少两个 存储区间, 其中每个存储区间对应所述物理页中的一个扇区。
所述处理器 42 , 还用于当读取所述物理页的数据失败时, 设置所 述存储空间中的每个存储区间的标识为第一标识, 其中, 所述第一标 识用于表示存储区间中的数据为失效数据。
所述处理器 42 , 还用于在所述根据所述第一扇区的 LBA, 将所述 存储空间中与所述第一扇区对应存储区间的预设数据更新为所述需要 写入所述第一扇区的数据之后, 将所述与所述第一扇区对应存储区间 的标识设置为第二标识; 其中, 所述第二标识用于表示所述存储区间 中的数据为有效数据。
所述处理器 42 , 还用于将所述存储空间中的每个存储区间的标识 写入所述 SSD的冗余空间中。
在本发明实施例中, 进一步可选的, 所述总线接口 41 , 还用于在 所述根据所述物理页的地址, 将所述存储空间中的数据写入所述 SSD 的闪存中之后, 接收所述主机发送的第二写操作指令, 其中, 所述第 二写操作指令中包含有所述物理页中的第二扇区的 LB A以及与需要写 入所述第二扇区的数据。
所述处理器 42 ,还用于根据所述总线接口 41得到的所述第二扇区 的 LBA将所述物理页的数据和所述物理页中的每个扇区的标识读取至 緩存中。
所述处理器 42 ,还用于根据所述总线接口 41得到的所述第二扇区 的 LBA, 将所述第二扇区的预设数据更新为所述需要写入所述第二扇 区的数据, 并将所述第二扇区的标识设置为第二标识. 所述处理器 42 , 还用于将更新后的所述物理页的数据以及所述物 理页中的每个扇区的标识写入所述 SSD的闪存中, 以完成对所述第二 扇区的修复, 其中, 所述物理页中的每个扇区的标识被写入所述 SSD 的冗余空间中。
在本发明实施例中, 进一步可选的, 所述总线接口 41 , 还用于接 收所述主机发送的读操作指令; 其中, 所述读取操作指令包含有待读 取的扇区的 LBA。
所述处理器 42 ,还用于根据所述总线接口 41得到的所述待读取的 扇区的 LBA获取所述待读取的扇区的标识.
所述处理器 42 ,还用于当所述待读取的扇区的标识为第一标识时, 向所述主机发送响应消息, 其中, 所述响应消息用于通知所述主机所 述扇区的数据为失效数据。
在本发明实施例中, 进一步可选的, 所述处理器 42 , 还用于当所 述待读取的扇区的标识为第二标识时, 读取所述扇区的数据, 并将所 述扇区的数据发送至所述主机。
需要说明的是, 本发明实施例提供的坏道修复装置中功能模块的 具体描述可以参考方法实施例中对应内容的具体描述, 本发明实施例 在 j¾不再伴细赞述。
本发明实施例提供的坏道修复装置, 根据接收到的主机发送的第 一写操作指令中包含的第一扇区的 LBA读取第一扇区所在的物理页的 数据, 当读取物理页的数据失败时, 在緩存中分配与物理页大小相同 的存储空间, 并将存储空间的数据设置为预设数据, 然后根据第一扇 区的 LBA, 将存储空间中与第一扇区对应存储区间的预设数据更新为 述需要写入第一扇区的数据, 最后根据物理页的地址, 将存储空间中 的数据写入 SSD的闪存中, 通过将在緩存中分配的与物理页大小相同 的存储空间的数据设置为预设数据, 并将与第一扇区对应存储区间的 预设数据更新为需要写入第一扇区的数据, 并将更新后的存储空间的 数据写入 SSD的闪存中替换发生 UNC的物理页的原有数据,解决了整 个 Page发生了 UNC时, 以 Sector为单位进行修复时修复不成功的问 题。
并且, 通过设置 Page中每个 Sector对应的有效标识, 在未增加系 统表项的情况下, 实现了以 Sector 为单位逐步修复整个 Page 出现的 UNC问题, 并增加了系统的灵活性。
通过以上的实施方式的描述, 所属领域的技术人员可以清楚地了 解到, 为描述的方便和简洁, 仅以上述各功能模块的划分进行举例说 明, 实际应用中, 可以根据需要而将上述功能分配由不同的功能模块 完成, 即将装置的内部结构划分成不同的功能模块, 以完成以上描述 的全部或者部分功能。 上述描述的装置的具体工作过程, 可以参考前 述方法实施例中的对应过程, 在此不再贅述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅 仅是示意性的, 例如, 所述模块或单元的划分, 仅仅为一种逻辑功能 划分, 实际实现时可以有另外的划分方式, 例如多个单元或组件可以 结合或者可以集成到另一个装置, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦合或通信连接可以 是通过一些接口, 装置或单元的间接耦合或通信连接, 可以是电性, 机戈或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开 的, 作为单元显示的部件可以是一个物理单元或多个物理单元, 即可 以位于一个地方, 或者也可以分布到多个不同地方。 可以根据实际的 需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外, 在本发明各个实施例中的各功能单元可以集成在一个处理 单元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单 元集成在一个单元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产 品销售或使用时, 可以存储在一个可读取存储介质中。 基于这样的理 解, 本发明的技术方案本质上或者说对现有技术做出贡献的部分或者 该技术方案的全部或部分可以以软件产品的形式体现出来, 该软件产 品存储在一个存储介质中, 包括若干指令用以使得一个设备 (可以是 单片机, 芯片等)或处理器(processor )执行本发明各个实施例所述方 法的全部或部分步骤。 而前述的存储介质包括: U 盘、 移动硬盘、 只 读存储器( ROM , Read-Only Memory )、随机存取存储器( RAM , Random Access Memory ) 、 磁碟或者光盘等各种可以存储程序代码的介质。 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并 不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范 围内, 可轻易想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应所述以权利要求的保护范围为准。

Claims

权 利 要 求
1、 一种坏道修复方法, 其特征在于, 包括:
固态硬盘 ( Solid State Disk, SSD ) 接收主机发送的第一写操作指 令, 其中, 所述第一写操作指令包含有第一扇区的逻辑扇区地址 ( Logical Block Addressing, LBA )以及需要写入所述第一扇区的数据; 根据所述第一扇区的 LBA 读取所述第一扇区所在的物理页的数 据;
当读取所述物理页的数据失败时, 在緩存中分配与所述物理页大 小相同的存储空间, 并将所述存储空间的数据设置为预设数据;
根据所述第一扇区的 LBA, 将所述存储空间中与所述第一扇区对 应存储区间的预设数据更新为所述需要写入所述第一扇区的数据; 根据所述物理页的地址, 将所述存储空间中的数据写入所述 SSD 的闪存中, 以完成对所述第一扇区的修复。
2、 根据权利要求 1所述的坏道修复方法, 其特征在于, 所述存储 空间包含至少两个存储区间, 其中每个存储区间对应所述物理页中的 一个扇区;
所述方法还包括:
当读取所述物理页的数据失败时, 设置所述存储空间中的每个存 储区间的标识为第一标识, 其中, 所述第一标识用于表示存储区间中 的数据为失效数据;
在所述根据所述第一扇区的 LBA, 将所述存储空间中与所述第一 扇区对应存储区间的预设数据更新为所述需要写入所述第一扇区的数 据之后, 还包括:
将所述与所述第一扇区对应存储区间的标识设置为第二标识; 其 中, 所述第二标识用于表示所述存储区间中的数据为有效数据;
将所述存储空间中的每个存储区间的标识写入所述 SSD的冗余空 间中。
3、 根据权利要求 2所述的坏道修复方法, 其特征在于, 在所述根 据所述物理页的地址, 将所述存储空间中的数据写入所述 SSD的闪存 中之后, 还包括:
接收所述主机发送的第二写操作指令, 其中, 所述第二写操作指 令中包含有所述物理页中的第二扇区的 LBA以及与需要写入所述第二 扇区的数据;
根据所述第二扇区的 LBA将所述物理页的数据和所述物理页中的 每个扇区的标识读取至緩存中;
根据所述第二扇区的 LBA , 将所述第二扇区的预设数据更新为所 述需要写入所述第二扇区的数据, 并将所述第二扇区的标识设置为第 二标识; 识写入所述 SSD的闪存中, 以完成对所述第二扇区的修复, 其中, 所 述物理页中的每个扇区的标识被写入所述 SSD的冗余空间中。
4、 根据权利要求 2所述的坏道修复方法, 其特征在于, 还包括: 接收所述主机发送的读操作指令; 其中, 所述读取操作指令包含 有待读取的扇区的 LBA;
根据所述待读取的扇区的 LBA获取所述待读取的扇区的标识; 当所述待读取的扇区的标识为第一标识时, 向所述主机发送响应 消息, 其中, 所述响应消息用于通知所述主机所述扇区的数据为失效 数据。
5、 根据权利要求 4所述的坏道修复方法, 其特征在于, 还包括: 当所述待读取的扇区的标识为第二标识时, 读取所述扇区的数据, 并将所述扇区的数据发送至所述主机。
6、 一种坏道修复装置, 其特征在于, 包括:
接收模块, 用于接收主机发送的第一写操作指令, 其中, 所述第 一写操作指令包含有第一扇区的逻辑扇区地址 ( Logical Block
Addressing , LBA ) 以及需要写入所述第一扇区的数据;
读取模块, 用于根据所述接收模块得到的所述第一扇区的 LBA读 取所述第一扇区所在的物理页的数据;
处理模块, 用于当所述读取模块读取所述物理页的数据失败时, 在緩存中分配与所述物理页大小相同的存储空间, 并将所述存储空间 的数据设置为预设数据;
更新模块, 用于根据所述接收模块得到的所述第一扇区的 LBA , 将所述存储空间中与所述第一扇区对应存储区间的预设数据更新为所 述需要写入所述第一扇区的数据;
写入模块, 用于根据所述物理页的地址, 将所述存储空间中的数 据写入固态硬盘 (Solid State Disk, SSD ) 的闪存中, 以完成对所述第 一扇区的修复。
7、 根据权利要求 6所述的坏道修复装置, 其特征在于, 所述存储 空间包含至少两个存储区间, 其中每个存储区间对应所述物理页中的 一个扇区;
所述装置还包括:
设置模块, 用于当所述读取模块读取所述物理页的数据失败时, 设置所述存储空间中的每个存储区间的标识为第一标识, 其中, 所述 第一标识用于表示存储区间中的数据为失效数据;
所述设置模块,还用于在所述更新模块根据所述第一扇区的 LBA, 将所述存储空间中与所述第一扇区对应存储区间的预设数据更新为所 述需要写入所述第一扇区的数据之后, 将所述与所述第一扇区对应存 储区间的标识设置为第二标识; 其中, 所述第二标识用于表示所述存 储区间中的数据为有效数据;
所述写入模块, 还用于将所述存储空间中的每个存储区间的标识 写入所述 SSD的冗余空间中。
8、 根据权利要求 7所述的坏道修复装置, 其特征在于,
所述接收模块, 还用于在所述写入模块根据所述物理页的地址, 将所述存储空间中的数据写入所述 SSD的闪存中之后, 接收所述主机 发送的第二写操作指令, 其中, 所述第二写操作指令中包含有所述物 理页中的第二扇区的 LBA以及与需要写入所述第二扇区的数据;
所述读取模块, 还用于根据所述接收模块得到的所述第二扇区的 LBA 将所述物理页的数据和所述物理页中的每个扇区的标识读取至緩 存中;
所述处理模块, 还用于根据所述接收模块得到的所述第二扇区的 LBA, 将所述第二扇区的预设数据更新为所述需要写入所述第二扇区 的数据, 并将所述第二扇区的标识设置为第二标识;
所述写入模块, 还用于将更新后的所述物理页的数据以及所述物 理页中的每个扇区的标识写入所述 SSD的闪存中, 以完成对所述第二 扇区的修复, 其中, 所述物理页中的每个扇区的标识被写入所述 SSD 的冗余空间中。
9、 根据权利要求 7所述的坏道修复装置, 其特征在于:
所述接收模块, 还用于接收所述主机发送的读操作指令; 其中, 所述读取操作指令包含有待读取的扇区的 LBA; 所述装置还包括:
获取模块, 用于根据所述接收模块得到的所述待读取的扇区的
LBA获取所述待读取的扇区的标识;
发送模块, 用于当所述获取模块得到的所述待读取的扇区的标识 为第一标识时, 向所述主机发送响应消息, 其中, 所述响应消息用于 通知所述主机所述扇区的数据为失效数据。
10、 根据权利要求 9所述的坏道修复装置, 其特征在于: 所述读取模块, 还用于当所述获取模块得到的所述待读取的扇区 的标识为第二标识时, 读取所述扇区的数据, 并将所述扇区的数据发 送至所述主机。
PCT/CN2014/070496 2013-08-27 2014-01-13 一种坏道修复方法及装置 WO2015027678A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP14840873.5A EP3029570B1 (en) 2013-08-27 2014-01-13 Bad track repairing method and apparatus
US15/056,402 US10127099B2 (en) 2013-08-27 2016-02-29 Bad sector repair method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310378406.9 2013-08-27
CN201310378406.9A CN103544995B (zh) 2013-08-27 2013-08-27 一种坏道修复方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/056,402 Continuation US10127099B2 (en) 2013-08-27 2016-02-29 Bad sector repair method and apparatus

Publications (1)

Publication Number Publication Date
WO2015027678A1 true WO2015027678A1 (zh) 2015-03-05

Family

ID=49968374

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/070496 WO2015027678A1 (zh) 2013-08-27 2014-01-13 一种坏道修复方法及装置

Country Status (4)

Country Link
US (1) US10127099B2 (zh)
EP (1) EP3029570B1 (zh)
CN (1) CN103544995B (zh)
WO (1) WO2015027678A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940204B2 (en) 2015-11-02 2018-04-10 International Business Machines Corporation Memory error recovery
CN105808378B (zh) * 2016-02-26 2018-10-30 华为技术有限公司 元数据修复方法及装置
CN110309012B (zh) * 2018-03-27 2021-01-26 杭州海康威视数字技术股份有限公司 一种数据处理方法及其装置
JP7089423B2 (ja) * 2018-07-12 2022-06-22 ルネサスエレクトロニクス株式会社 情報処理装置及び制御方法
CN112214356B (zh) * 2020-10-21 2024-06-18 深圳忆联信息系统有限公司 文件数据恢复方法、装置、计算机设备及存储介质
CN112559387B (zh) * 2020-12-23 2023-05-02 湖南国科微电子股份有限公司 一种读请求处理方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100042900A1 (en) * 2008-08-18 2010-02-18 Apple Inc. Write Failure Handling of MLC NAND
CN101944386A (zh) * 2009-07-03 2011-01-12 群联电子股份有限公司 识别闪速存储器中错误数据的控制电路及存储系统与方法
CN102272731A (zh) * 2008-11-10 2011-12-07 弗森-艾奥公司 用于预测固态存储装置中的故障的设备、系统和方法
CN102708019A (zh) * 2012-04-28 2012-10-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统
CN103035294A (zh) * 2011-09-28 2013-04-10 三星电子株式会社 从非易失性存储器读数据的方法及实施方法的设备和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974544A (en) * 1991-12-17 1999-10-26 Dell Usa, L.P. Method and controller for defect tracking in a redundant array
US5349558A (en) * 1993-08-26 1994-09-20 Advanced Micro Devices, Inc. Sector-based redundancy architecture
WO2004072815A2 (en) * 2003-02-10 2004-08-26 Netezza Corporation Rapid regeneration of failed disk sector in a distributed database system
US7424648B2 (en) * 2005-03-10 2008-09-09 Matsushita Electric Industrial Co., Ltd. Nonvolatile memory system, nonvolatile memory device, data read method, and data read program
KR101067457B1 (ko) * 2008-03-01 2011-09-27 가부시끼가이샤 도시바 메모리 시스템
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
CN101527171B (zh) * 2009-04-17 2012-05-23 成都市华为赛门铁克科技有限公司 一种多通道并行纠错的闪存控制方法和装置
US9047178B2 (en) * 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
CN102193848B (zh) * 2011-06-02 2014-09-03 华为数字技术(成都)有限公司 逻辑单元坏扇区的数据修复方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100042900A1 (en) * 2008-08-18 2010-02-18 Apple Inc. Write Failure Handling of MLC NAND
CN102272731A (zh) * 2008-11-10 2011-12-07 弗森-艾奥公司 用于预测固态存储装置中的故障的设备、系统和方法
CN101944386A (zh) * 2009-07-03 2011-01-12 群联电子股份有限公司 识别闪速存储器中错误数据的控制电路及存储系统与方法
CN103035294A (zh) * 2011-09-28 2013-04-10 三星电子株式会社 从非易失性存储器读数据的方法及实施方法的设备和系统
CN102708019A (zh) * 2012-04-28 2012-10-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3029570A4 *

Also Published As

Publication number Publication date
EP3029570A4 (en) 2017-02-08
CN103544995A (zh) 2014-01-29
US10127099B2 (en) 2018-11-13
US20160179609A1 (en) 2016-06-23
CN103544995B (zh) 2016-09-21
EP3029570A1 (en) 2016-06-08
EP3029570B1 (en) 2018-02-28

Similar Documents

Publication Publication Date Title
US20200218602A1 (en) Data Storage Devices and Methods for Rebuilding a Memory Address Mapping Table
JP6855102B2 (ja) 不揮発性メモリ・システムにおけるマルチページ障害の回復
JP5841056B2 (ja) ストライプベースのメモリ動作
US9304685B2 (en) Storage array system and non-transitory recording medium storing control program
US9377960B2 (en) System and method of using stripes for recovering data in a flash storage system
TWI594120B (zh) 用於記錄非揮發性記憶體系統中之停滯時間之系統、方法及程式產品
KR101660150B1 (ko) 물리 페이지, 논리 페이지, 및 코드워드 대응
TWI428737B (zh) 半導體記憶體裝置
US10120769B2 (en) Raid rebuild algorithm with low I/O impact
US20150212752A1 (en) Storage system redundant array of solid state disk array
WO2015027678A1 (zh) 一种坏道修复方法及装置
US20150161036A1 (en) Programming non-volatile memory using a relaxed dwell time
US9390003B2 (en) Retirement of physical memory based on dwell time
JP2014052978A (ja) 不揮発性半導体メモリの制御方法及びメモリシステム
US20160041924A1 (en) Buffered Automated Flash Controller Connected Directly to Processor Memory Bus
CN113555057A (zh) 一种扩大固态硬盘映射表单元的实现方法
CN111913835A (zh) 基于交叉映射的数据多备份存储方法、装置、计算机设备及存储介质
US10162573B2 (en) Storage management system, storage management method, storage medium and information processing system
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN107562639B (zh) 擦除块读请求处理方法与装置
US9842622B1 (en) Data storage device having improved read failure tolerance
TW201913353A (zh) 資料儲存方法、記憶體控制電路單元及記憶體儲存裝置
US8935488B2 (en) Storage system and storage control method
CN112579329A (zh) 快速处理uecc的方法及其存储设备
US9003261B2 (en) Memory system

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: 14840873

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2014840873

Country of ref document: EP