WO2021033445A1 - コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 - Google Patents

コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 Download PDF

Info

Publication number
WO2021033445A1
WO2021033445A1 PCT/JP2020/026700 JP2020026700W WO2021033445A1 WO 2021033445 A1 WO2021033445 A1 WO 2021033445A1 JP 2020026700 W JP2020026700 W JP 2020026700W WO 2021033445 A1 WO2021033445 A1 WO 2021033445A1
Authority
WO
WIPO (PCT)
Prior art keywords
access
data
address
sector
write
Prior art date
Application number
PCT/JP2020/026700
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 US17/627,984 priority Critical patent/US20220276957A1/en
Publication of WO2021033445A1 publication Critical patent/WO2021033445A1/ja

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • 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
    • G06F2212/1036Life time enhancement
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/7211Wear leveling

Definitions

  • the present technology relates to a controller, a semiconductor storage device, and a wear leveling processing method in the device.
  • ReRAM Resistance-changing RAM
  • SE Selector
  • VR Variable Resistor
  • Patent Document 1 when the memory controller records a relatively large number of times of recording the logical block address of the data write destination in the logical block counter, the physical block to which the logical block address is not assigned in the logical conversion table is not assigned.
  • Disclosed is a technique for averaging the number of times a physical block is erased by assigning a physical block address with a relatively small number of times the physical block counter is erased among the spare blocks.
  • Patent Document 2 describes the resistance value of a reference cell having a resistance changing element that reversibly changes between a predetermined low resistance state LR and a high resistance state HR in response to application of an electric signal in Xp-ReRAM.
  • Patent Document 3 holds write count information which is the write count information of the non-volatile memory accessed in units of pages divided by page size in ReRAM, and the page is based on the held write count information. Disclosed is a technique for determining whether or not refreshing is necessary to invert the values of all the memory cells constituting the above, and if refreshing is necessary, further refreshing in addition to writing.
  • Patent Document 4 is a memory in which in ReRAM, rewriting to one of two values (“0” and “1”) and rewriting to the other value are sequentially executed during write processing (writing processing). It is determined whether or not the number of bits of a specific value among the above two values exceeds the reference value (for example, half) in at least a part of the input data for the cell, and determination data indicating the result of the determination is generated.
  • the reference value for example, half
  • the malfunction includes, for example, a write defect in which writing data to the storage element fails. It has been confirmed that write defects also occur in the above-mentioned semiconductor storage device having Xp-ReRAM, which has an effect of reducing the reliability of operation and shortening the service life. Some write defects in the Xp-ReRAM are caused by the localization of cell wear in the memory due to the characteristics of the Xp-ReRAM.
  • Patent Documents 1-4 does not eliminate the localization of cell wear in the memory in consideration of the characteristics of Xp-ReRAM and does not reduce write defects.
  • the purpose of this technology is to reduce write defects by eliminating the localization of cell wear in the memory according to the characteristics of Xp-ReRAM, and to maximize the service life of the memory.
  • a semiconductor storage device and a wear leveling treatment method in the device are provided.
  • the present technology for solving the above-mentioned problems is configured to include the following invention-specific matters or technical features.
  • the present technology is a controller that controls the operation of a semiconductor storage device having a writable non-volatile memory, and is a physical address that specifies a data storage area based on some of a plurality of memory cells in the non-volatile memory.
  • the access control unit that controls access to the data storage area and the wear of the plurality of memory cells caused by the access are leveled.
  • a wear leveling processing unit that performs wear leveling processing is provided, and the wear leveling processing unit performs the wear leveling process with a predetermined probability for each access.
  • the means does not simply mean a physical means, but also includes a case where the function of the means is realized by software. Further, the function of one means may be realized by two or more physical means, or the function of two or more means may be realized by one physical means.
  • a “system” is a logical collection of a plurality of devices (or functional modules that realize a specific function), and whether or not each device or functional module is in a single housing. Is not particularly limited.
  • FIG. 1 is a diagram showing an example of a schematic structure of a semiconductor storage device 1 according to an embodiment of the present technology (hereinafter, abbreviated as “the present embodiment”).
  • the semiconductor storage device 1 includes, for example, a controller 10, a plurality of rewritable non-volatile memories (hereinafter referred to as “nonvolatile memories”) 20, a work memory 30, and a host interface 40. They may be configured and placed, for example, on one board 50.
  • the controller 10 is a component that comprehensively controls the operation of the semiconductor storage device 1. As will be described later, the controller 10 in the present technology is configured to be able to perform processing for coping with the localization of wear of the memory cell MC.
  • the non-volatile memory 20 is a component for storing user data and various control data received from a host (not shown).
  • ten non-volatile memory packages 20 (1) to 20 (10) are provided. Has been done.
  • ReRAM is an example of non-volatile memory.
  • the control data includes, for example, metadata, address management data, error correction data, and the like.
  • One non-volatile memory package 20 has a memory capacity of 64 GB, for example 8 GB x 8 dies. Therefore, the non-volatile memory 20 capable of storing valid data in 8 out of 10 non-volatile memory packages realizes a memory capacity of 512 gigabytes in 64 gigabytes ⁇ 8 packages. Further, as shown in FIG.
  • each die D includes, for example, 16 banks B, a microcontroller 70 corresponding to each bank B (abbreviated as “ ⁇ C” in FIG. 2), and a peripheral circuit / interface circuit 60. It is composed including and. Further, as shown in FIG. 3, each bank B includes a tile T composed of a memory cell array (256 in this example) having a 1-bit access unit, and a microcontroller 70 for controlling these tiles T. It is composed. Under the control of the microcontroller 70, each bank B cooperates with the tile T group to realize access to a data block having a predetermined byte size (256 bytes in this example) as a whole.
  • the tile T has, for example, a two-layer memory cell array structure as shown in FIG.
  • the dual-layer memory cell array has a 1-bit memory cell MC at each intersection of the upper word line UWL and the bit line BL and at each intersection of the lower word line LWL and the bit line BL.
  • the memory cell MC has a series structure of a resistance changing element VR (Variable Resistor) that records 1-bit information depending on the state of high or low resistance value and a selection element SE (Selector Element) having bidirectional diode characteristics.
  • VR Variable Resistor
  • SE Switchelement
  • the work memory 30 is a component provided for speeding up the semiconductor storage device 1 and reducing wear, and temporarily holds all or part of the management data stored in the non-volatile memory 20. is there.
  • the work memory 30 is composed of a rewritable volatile memory such as a DRAM that can be accessed at high speed.
  • the size of the work memory 30 can be set according to the size of the non-volatile memory 20.
  • the host interface 40 is an interface circuit for the semiconductor storage device 1 to perform data communication with a host (not shown) under the control of the controller 10.
  • the host interface 40 is configured according to, for example, the PCI Express standard.
  • write defects may occur due to localized cell wear.
  • Writing defects include the following.
  • the resistance change element VR of the memory cell MC is a set that changes the resistance value from HRS (high resistance state) to LRS (low resistance state), or changes from LRS to HRS due to physical characteristics. It wears out by repeating the reset, that is, writing or rewriting the data (bit data). This is called write wear (Write Endurance Wore-out). Writing or rewriting to the memory cell MC has a limit based on write wear. When the number of rewrites (number of writes) measured by erasing and writing (setting or resetting) data as one time reaches the write useful life (Write Endurance) of one memory cell MC, the write wear becomes the limit, and finally, the write wear becomes the limit. Causes a bad stack. In the semiconductor storage device 1 according to the present embodiment, the write service life of the memory cell MC is, for example, 1.2 million (1.2e6) times.
  • a stack failure is an error in which the resistance value of the resistance changing element VR does not change from HRS to LRS or from LRS to HRS in the memory cell MC, which causes a write failure.
  • the stack failure may be referred to as a stack-LRS in which the resistance changing element VR is stacked on the LRS and a stack-HRS in which the resistance changing element VR is stacked on the HRS (hereinafter, these are collectively referred to as "stack-LRS / HRS”. ).
  • stack-LRS stack-LRS in which the resistance changing element VR is stacked on the LRS
  • stack-HRS stack-HRS in which the resistance changing element VR is stacked on the HRS
  • read wear (Read Endurance Wear-out). Read wear is caused by repeated reads from the LRS memory cell MC. Specifically, when the memory cell MC to be read is LRS, the voltage across the selection element SE in the selection state (on state) (word line and bit line BL) drops and is between the two ends. A phenomenon (snap) in which a current flows suddenly occurs. Repeated snapping causes read wear.
  • the read useful life of the memory cell MC is, for example, 6 million (6.0e6) times.
  • the threshold voltage of the selection element SE becomes lower than usual, and a low voltage current flows through the memory cell MC.
  • the same word line (upper word line UWL, lower word line LWL) and other memory cell MCs on the bit line BL as the memory cell MC in which the disturb failure has occurred also become write failure.
  • a disturb defect is a defect peculiar to Xp-ReRAM, and unlike a stack defect, it causes a write defect in many normal memory cell MCs that share a word line and a bit line BL. Therefore, by preventing read-out wear, it can be expected that the operation reliability and the service life of the non-volatile memory 20 will be significantly improved.
  • the controller 10 has a predetermined probability of leveling the wear of each memory cell MC at the time of access to the non-volatile memory 20 as a process for dealing with a write failure occurring in the non-volatile memory 20. It is configured to be able to perform processing.
  • the wear leveling process is a process capable of distributing access to the memory cell MC throughout the non-volatile memory 20.
  • wear leveling processing examples include address remapping processing, data inversion processing, and refresh processing.
  • the address remapping process is a process for averaging the number of writes (including rewriting) of each memory cell MC in the non-volatile memory 20 by the address remapping (Address Remapping) technique.
  • the data inversion process is a process of inverting the data (written data) to be written in the memory cell MC and averaging the number of sets and the number of reset processes of each memory cell MC in the non-volatile memory 20.
  • the refresh process is a process of temporarily changing all the memory cell MCs in the LRS among the memory cell MCs to be accessed in the non-volatile memory 20 to HRS to prevent continuous reading in the LRS. Details of these wear leveling treatments will be described later.
  • the wear of the memory cell MC is leveled in the entire non-volatile memory 20, the localization of the wear of the memory cell MC is eliminated, and write defects are prevented. It will be possible.
  • the non-volatile memory 20 has a maximum service life by preventing write defects by the wear leveling process.
  • the section is a data block that manages the memory capacity (512 gigabytes) of the non-volatile memory 20 by dividing it into 8 kilobyte units.
  • the section stores 32 sectors, which are data blocks of, for example, 320 bytes (actual data is 256 bytes).
  • a sector is a data block that stores 320 bytes of sector data, and is a basic access unit with a host (not shown).
  • the sector data is divided into 10 pages, for example, which are 32-byte data blocks, on the semiconductor storage device 1, and the sector data is written and stored in the non-volatile memory 20 through 10 different channels.
  • a page is an access unit to one bank in one die D of the non-volatile memory 20, and each bit in each page corresponds to each bit (memory cell MC) of tile T in each bank B. ..
  • the sector is mapped (corresponded) to the physical sector corresponding to the data storage area based on the plurality of memory cells MC in the non-volatile memory 20 and the physical sector for access control in the controller 10. ) It is managed separately from the logical sector corresponding to the virtual data storage area.
  • the section that stores 32 physical sectors is defined as a physical section
  • the section that stores 32 logical sectors mapped to the physical sectors is defined as a logical section.
  • a physical address for specifying a physical section and a physical sector (physical section address and a physical sector address described later) and a logical address for specifying a logical section and a logical sector (described later).
  • Logical section address, logical sector address) are mapped in section units. That is, in the semiconductor storage device 1, a section is an access unit used for mapping a logical address and a physical address. As a result, in the memory access in the semiconductor storage device 1, the controller 10 can access the physical sector which is the data storage area.
  • FIG. 5 is a diagram showing an example of the structure of sector data in the semiconductor storage device 1 according to the embodiment of the present technology. That is, as shown in the figure, the sector data includes, for example, 256 bytes of actual data, 8 bytes of metadata, 4 bytes of logical section address / inversion flag (hereinafter referred to as “LA / IV”), and 45. It is 320 bytes of data composed of bytes of ECC parity (hereinafter referred to as "parity") and a 7-byte patch.
  • the metadata is secondary data for managing the actual data, and includes, for example, address information, CRC checksum, version number, time stamp, and the like.
  • the actual data and metadata correspond to user data received from a host (not shown).
  • Parity is, for example, parity data generated using actual data, metadata, and LA / IV as a payload.
  • the patch stores the correct value that should be originally recorded in the badly stacked and badly disturbed memory cell MC that occurred in the sector.
  • the sector data is also an access unit between the host and the semiconductor storage device 1 (not shown).
  • the 320-byte sector data is stored on the semiconductor storage device 1 by being divided into, for example, 10 channels.
  • LA / IV, parity and patch are data added by the controller 10 to the user data.
  • the semiconductor storage device 1 of this example has an actual data size of 256 bytes.
  • the size of the actual data in the sector data can be appropriately designed according to the required conditions (performance, error correction accuracy, etc.).
  • FIG. 6 is a block diagram showing an example of the functional configuration of the semiconductor storage device 1 according to the embodiment of the present technology.
  • FIG. 6 functionally shows the configuration of the semiconductor storage device 1 shown in FIG.
  • the controller 10 comprehensively controls the operation of the semiconductor storage device 1 having the non-volatile memory 20.
  • the controller 10 receives an access command from a host (not shown) via the host interface unit 40
  • the controller 10 accesses the non-volatile memory 20 by the access control unit 110 described later in response to the access command, and as a result. Is controlled to be issued or sent to the host.
  • the controller 10 performs various processes (wear leveling process) for eliminating the localization of wear of the memory cell MC caused by access to the non-volatile memory 20 and reducing the occurrence of write defects.
  • the controller 10 may include an access control unit 110, a wear leveling processing unit 130, and an ECC processing unit 120.
  • the access control unit 110 controls access to the physical sector according to an address conversion table that holds mapping information indicating the correspondence between the physical address and the logical address that specify the physical sector in the non-volatile memory 20.
  • the physical sector is a form of a data storage area based on some of the plurality of memory cell MCs in the non-volatile memory 20 (in this example, 320 bytes (320) of memory cell MCs).
  • the access control unit 110 controls access to the non-volatile memory 20 based on an access command received by the controller 10 from the host.
  • the access command is received by the controller 10 together with the user data (actual data and metadata) of the above-mentioned sector data (see FIG. 5).
  • the access command includes a write access command that requests data writing to at least a sector (physical sector) of the non-volatile memory 20, and a read access command that requests data reading from the physical sector.
  • the access control unit 110 Upon receiving the write access command, the access control unit 110 performs write access to write data to the physical sector. Further, when the access control unit 110 receives the read access command, the access control unit 110 performs read access to read data from the physical sector.
  • the access control unit 110 performs an address conversion process for converting a logical address received from a host (not shown) into a physical address on the non-volatile memory 20 when accessing a sector (physical sector) of the non-volatile memory 20.
  • the logical address is stored as address information in the metadata of the user data (actual data and metadata (see FIG. 5)) transmitted together with the access command from a host (not shown).
  • the access control unit 110 refers to the mapping information held in the working address translation table 310 on the work memory 30, which will be described later, and performs the address translation process.
  • the logical address of the semiconductor storage device 1 (logical section address in this example) corresponding to the logical address received from the host is converted into the physical address on the non-volatile memory 20.
  • the controller 10 may have an address translation unit that executes address translation processing as a functional configuration independent of the access control unit 110.
  • FIG. 7 is a diagram showing an example of an address data structure constituting the mapping information used for the address translation process.
  • the mapping information is composed of a physical section address, a logical section address mapped (associated) with the physical section address, and sector management information associated with the logical section address, and is stored in the working address conversion table 310.
  • the mapping information is stored in the working address translation table 310 for each section. That is, the mapping information is held in the working address translation table 310 for each physical section that stores 32 physical sectors.
  • the correspondence between the physical section address and the logical section address in the mapping information is variable.
  • the physical section address is an address for specifying a physical section for storing a physical sector which is a data storage area on the non-volatile memory 20, and is, for example, a 2-bit die ID, a 13-bit word line address, and an 11-bit. It consists of a total of 26 bits of bit line address.
  • the die ID is information for identifying the die D in each of the non-volatile memories 20 (1) to (10), and the word line address is each upper word line UWL in each tile T in each bank B in the die D. It is an address that specifies the lower word line LWL, and the bit line address is an address that specifies each bit line BL in each tile T.
  • each tile T has 8192 (2 ⁇ 13) word lines (4096 upper word lines UWL and 4096 lower word lines LWL, respectively) and 2048 (2 ⁇ 11) tiles. It has a bit line BL of.
  • the die D in each non-volatile memory 20 and the memory cell MC in the bank B of the die D are specified.
  • a logical section which is a data block used for access control in the access control unit 110, is mapped to the physical section (see FIGS. 8A and 8B described later).
  • the logical section address is a 26-bit bit string similar to the physical section address, and is an address for specifying the logical section mapped to the physical section.
  • the logical section address is mapped by the controller 10 to an arbitrary physical section address.
  • the sector management information consists of a total of 14 bits, which is 2-bit sector group management information and 12-bit intra-group management information. 32 sectors in the logical section (logical sector) and 32 sectors in the physical section (physical). Information that manages mapping with (sector). In this technology, in consideration of both leveling the wear of the memory cell MC and preventing the mapping information from becoming bloated, 32 in the logical section of the address conversion table (address conversion table 210 and work address conversion table 310 described later) Each logical sector is divided into four sector groups of eight units, and the mapping between the logical sector and the physical sector is managed in each sector group unit. In this example, the sector group is a group used for managing logical sectors in mapping information, and is not a data block in the semiconductor storage device 1.
  • the 2-bit sector group management information is information that manages the mapping between the logical sector and the physical sector in units of sector groups (units of 8). Further, in the address translation table (address translation table 210, working address translation table 310), one-to-one correspondence between each of the eight logical sectors in each sector group and each of the eight physical sectors mapped to each sector group. Mapping is managed by 3-bit intra-group management information. As shown in FIG. 8 to be described later, the 12-bit in-group management information includes each 3-bit in-group management information for a 4-sector group (groups 00 to 03 in this example).
  • the 31-bit logical address information (logical section address and sector management information for one sector group) can be specified by the logical address received from the host. Therefore, when the access control unit 110 receives the access command, it refers to the address translation table (for example, the working address translation table 310) in the address translation process, and based on the received logical address, the logical section address (access) from the mapping information. Get the destination logical section address).
  • the access control unit 110 generates a logical sector address for uniquely identifying a logical sector in the logical section from the acquired access destination logical section address.
  • the logical sector address consists of a 26-bit logical section address corresponding to the received logical address and a 5-bit intra-section sector address.
  • the sector address in the section is generated from the 2-bit sector management information in the sector management information and the 3-bit intra-group management information corresponding to one sector group out of the four sector groups.
  • the access control unit 110 identifies one sector group from the four sector groups corresponding to the acquired access destination logical section address based on the received logical address.
  • the access control unit 110 When the access control unit 110 generates a logical sector address, the access control unit 110 converts the generated logical sector address into a physical sector address.
  • the physical sector address is an address that identifies a physical sector and is used to distinguish between the 32 physical sectors stored in the physical section.
  • the physical sector address consists of a total of 31 bits, which is a 26-bit physical section address corresponding to the acquired logical section address, a 1-bit channel group ID, and a 4-bit bank address.
  • the channel group ID and bank address are generated by converting the 5-bit in-section sector address in the logical sector address.
  • the channel ID is information that identifies a channel that connects the controller 10 and each of the non-volatile memories 20 (1) to (10).
  • the controller 10 and the non-volatile memory 20 of the 10 packages are connected by a total of 20 channels of 10 channels ⁇ 2 systems.
  • each non-volatile memory 20 is connected to the controller 10 by two channels having different systems, and eight dies D in each non-volatile memory 20 are connected to channels of different systems by four dies. ..
  • the bank address is an address that identifies each of the 16 banks B that each die D has, and different addresses are assigned to the banks B in each die D.
  • the semiconductor storage device 1 uses the logical address received from the host as a physical address (book) based on the mapping information held in the address translation table (address translation table 210, working address translation table 310). In the example, it can be translated into a physical sector address).
  • the access control unit 110 outputs mapping information corresponding to the physical sector to be accessed including the physical sector address acquired in the address translation process to the wear leveling process unit 130.
  • the wear leveling processing unit 130 can perform wear leveling processing for eliminating the localization of wear on the memory cell MC belonging to the physical sector to be accessed.
  • the wear leveling processing unit 130 performs wear leveling processing for leveling the wear of the memory cell MC in the non-volatile memory 20 caused by the access (write access or read access).
  • the wear leveling processing unit 130 performs wear leveling processing on the memory cell MC belonging to the physical sector to be accessed, so that the wear of the memory cell MC is localized in the entire non-volatile memory 20. The conversion is eliminated. As a result, the controller 10 can level out the wear of the memory cell MC in the non-volatile memory 20 and reduce the occurrence of write defects.
  • the wear leveling processing unit 130 performs the wear leveling processing with a predetermined probability for each access to the physical sector by the access control unit 110. That is, the wear leveling processing unit 130 measures (counts) the number of times data is written to the memory cell MC belonging to the physical sector, the number of times data is erased in the memory cell MC, the number of times data is read out from the memory cell MC, and the like. The wear leveling process is performed probabilistically without doing so.
  • a semiconductor storage device having a non-volatile memory is desired to maintain data reliability even when the power is suddenly cut off. Therefore, in the counter-based algorithm based on various times as described above, it becomes necessary to sequentially store the counter information in the non-volatile memory. However, if the counter information is frequently recorded in the non-volatile memory, the access speed to and from the host may be reduced, and the decrease in the access speed is due to the high access frequency (iops: number of inputs / outputs per second) in the semiconductor storage device. The greater the influence on the operating performance of the semiconductor storage device.
  • Xp-ReRAM an access frequency exceeding 10 megaiops is advocated.
  • the controller 10 probabilistically executes the wear leveling process as described above, not based on the counter. As a result, the controller 10 can perform the wear leveling process while maintaining the required operating performance without lowering the access speed in the semiconductor storage device 1.
  • the wear leveling processing unit 130 includes, for example, an address remapping unit 132 that performs address remapping processing as wear leveling processing, a data reversing unit 134 that performs data inversion processing, a refresh unit 136 that performs refresh processing, and a predetermined numerical range. It can be configured to include a random number generation unit 138 that generates a random number of.
  • the address remapping unit 132 is a form of the table update unit
  • the data inversion unit 134 is a form of the data inversion processing unit
  • the refresh unit 136 is a form of the resistance state changing unit.
  • the address remapping unit 132 performs an address remapping process for averaging the number of rewrites (number of writes) of each memory cell MC in the non-volatile memory 20 by the address remapping (Address Remapping) technique.
  • This address remapping process is an example of the table update process. Specifically, the address remapping unit 132 updates the mapping information in the working address translation table 310 with a predetermined address remapping probability for each access to the physical sector by the access control unit 110 as the address remapping process. To do.
  • This predetermined address remapping probability is an example of the first probability. That is, the address remapping process in the present embodiment is stochastically executed for each access to the non-volatile memory 20.
  • the address remapping unit 132 updates the mapping information in the working address translation table 310 in section units, and the mapping information is updated in the sector group unit described above. Group update processing can be performed.
  • the address remapping unit 132 updates the mapping information with a predetermined address remapping probability for each access (write access and read access) to the physical sector by the access control unit 110, and the access destination logical section address. Update the physical section address that is mapped to. As a result, the mapping between the physical sector to be accessed and the logical sector is updated section by section. That is, the address remapping unit 132 can update the mapping information by the address remapping process for each section (physical section) in which the physical sector to be accessed is stored.
  • the address remapping unit 132 updates the mapping information with a predetermined address remapping probability for each access (write access and read access) to the physical sector by the access control unit 110, and the access destination.
  • the sector management information (see FIG. 7) associated with the logical section address is updated.
  • the sector group update process includes a first group update process for updating the sector group management information in the mapping information of the physical sector to be accessed, and a second group update for updating the group management information in the mapping information of the physical sector to be accessed. Processing and is included.
  • the first row in FIG. 8A illustrates the order of the 32 physical sectors stored in the physical section PS, which is a data block equivalent to 8 kilobytes.
  • the physical sector stored in the physical section PS is specified by the physical sector addresses PST 0 to 31.
  • 32 physical sectors are stored, for example, in ascending order of physical sector addresses.
  • 32 sectors are arranged in this order, starting with the physical sector at the physical sector address PST0 and ending with the physical sector at the physical sector address PST31.
  • the allocation of physical sectors in the physical section is fixed, and the order of the physical sectors in the physical section is also fixed. Therefore, for example, all 32 physical sectors in the physical section PS are associated with the same logical section (in this example, the logical section LS).
  • the order of the 32 logical sectors in the logical section LS mapped to the physical section PS is shown.
  • the logical sector stored in the logical section LS is specified by the logical sector addresses LST0 to 31.
  • the sector management information divides the logical sector into four sector groups of eight units, and manages the mapping between the logical sector and the physical sector in the sector group unit.
  • 32 logical sectors in the logical section LS are divided into 8 ⁇ 4 sector groups (sector groups 00 to 03) for easy understanding.
  • the sector group 00 includes the logical sectors corresponding to the upper 8th logical sector address in the logical section LS (logical sector addresses LST0 to 7), and the sector group 01 is the upper 9th logical sector address.
  • the sector group 02 includes the logical sectors corresponding to the 16th to 16th (logical sector addresses LST8 to 15), and the sector group 02 includes the logical sectors corresponding to the upper 17th to 24th logical sector addresses (logical sector addresses LST16 to 23).
  • the sector group 03 includes the logical sectors corresponding to the upper 25th to 32nd logical sector addresses (logical sector addresses LST24 to 31).
  • the allocation of logical sectors in the sector group is fixed.
  • the allocation of logical sectors in the logical section is fixed as in the physical sector, and the allocation of logical sectors in each sector group is also fixed.
  • the order of the logical sectors in the logical section is variable for each sector group or for each logical sector in the sector group.
  • the sector management information in the mapping information indicates the number of shifts (arrangement order) of the arrangement order (variable) of the logical sectors in the sector group unit with respect to the arrangement order (fixed) of the physical sectors. It is possible to map between and logical sectors in sector group units.
  • the sector group management information and the intra-group management information are actually bit data, they are shown by replacing them with decimal numbers in FIGS. 8A and 8B for ease of understanding.
  • the management information in the group "0,0,0,0" indicates that the arrangement of any of the logical sectors in the sector groups 00 to 03 is not shifted with respect to the order of the physical sectors.
  • in-group management information corresponding to sector groups 00 to 03 is shown separated by commas for ease of understanding.
  • the four data of the management information in the group indicate the number of shifts of each sector group 00 to 03 in this order.
  • the intra-group management information is actually a 12-bit bit string in which 3-bit data corresponding to sector groups 00 to 03 is continuous. In the 12-bit intra-group management information, 3 bits from the beginning correspond to the sector group 00, and the following 3 bits correspond to the sector groups 01 to 03.
  • the management information in the group is 3 bits for each sector group, and indicates the number of shifts of 8 logical sectors in the sector group.
  • the state in which the order is the same is called the shift reference state.
  • the order of the sector groups in the logical section LS is cyclically shifted in the order of sector groups 01, 02, 03, 00.
  • the sector group management information indicates the number of shifts of the four sector groups with respect to the shift reference state.
  • the arrangement order of the logical sectors in the sector group is one shift state with respect to the shift reference state, that is, the arrangement order of the logical sectors is one shift state for each group with respect to the fixed arrangement order of the physical sectors. Indicates that. Therefore, when the order of the sector groups is one shift, for example, the logical sector addresses LST8 to 15 that specify the logical sector in the sector group 01 are mapped to the physical sector addresses PST0 to 7 in this order, and are in the sector group 02.
  • the logical sector addresses LST16 to 23 that specify the logical sector of the above are mapped to the physical sector addresses PST8 to 15 in this order, and the logical sector addresses LST24 to 32 that specify the logical sector in the sector group 03 are the physical sector addresses PST16 to.
  • the logical sector addresses LST0 to 7 that are mapped to 23 in this order and specify the logical sector in the sector group 00 are mapped to the physical sector addresses PST24 to 31 in this order.
  • the order of the sector groups in the logical section LS is cyclically shifted in the order of sector groups 03, 00, 01, 02.
  • the sector group management information indicates the order (number of shifts) of the logical sectors in the logical section for each sector group.
  • the mapping between the physical sector and the logical sector in the sector group unit is indicated by the sector group management indicating the number of shifts in the order of the logical sector in the sector group unit with respect to the order of the physical sector. It can be specified by information (2 bits).
  • the address remapping unit 132 can update the mapping information for each of some physical sectors in the physical section by updating the sector group management information by the first group update process.
  • some physical sectors in the physical section correspond to eight physical sectors corresponding to the logical sectors in the sector group. That is, in the first group update process, the order of the logical sectors in the logical section, that is, the mapping between the physical sector and the logical sector is updated in units of sector groups (units of 8 sectors). Further, the number of shifts in the order in the sector group management information is always based on the shift reference state.
  • the first row in FIG. 8B illustrates the order of the 32 physical sectors stored in the physical section PS, as in FIG. 8A.
  • the sector group management information "0”
  • the intra-group management information "2,0,0,0”.
  • In-group management information "2,0,0,0” means that the order of logical sectors in the sector group is 2 shifts only in sector group 00, and shift reference state in other sector groups 01 to 03. Indicates that it remains (not shifted).
  • the order of the logical sectors in the sector group 00 is a two-shift state in which the logical sector is shifted by two in the head direction of the logical sector address with respect to the shift reference state (see the second stage in FIG. 8A). .. Specifically, in the two-shift state, the order of the logical sectors in the sector group 00 is cyclically shifted in the order of the logical sector addresses LST2 to 7,0,1.
  • the sector group management information in the sector management information 4 is "0". That is, the mapping between the physical sector and the logical sector in the sector group unit remains the shift reference state. Therefore, in this example, in the sector management information 4, the mapping between the logical sector and the physical sector is updated only for each of the eight physical sectors of the physical sector addresses PST 0 to 7 mapped to the sector group 00. Specifically, according to the sector management information 4, the logical sector addresses LST2 to 7,0,1 that specify the logical sector in the sector group 00 are the physical sector addresses shown in the first row in FIG. 8B in this order, respectively. It is mapped to the physical sector specified by PST 0-7.
  • the order of the logical sectors in the sector groups 00 and 02 is in the 5-shift state, and the order of the logical sectors in the other sector groups 01 and 03 remains in the shift reference state (not shifted). It is shown that. Therefore, the order of the logical sectors in the sector group 00 is a 5-shift state in which the logical sector is shifted five times toward the beginning of the logical sector address with respect to the shift reference state (see the second stage in FIG. 8A). ..
  • the order of the logical sectors in the sector group 00 is cyclically shifted in the order of the logical sector addresses LST5 to 7,0 to 4.
  • the order of the logical sectors in the sector group 02 is 5 shifts. Therefore, specifically, the order of the logical sectors in the sector group 02 is cyclically shifted in the order of the logical sector addresses LST21 to 23 and 16 to 20.
  • the sector group management information is "0" as in the management information 4. That is, the order of the sector groups 00 to 03 remains the shift reference state. Therefore, the logical sector in the sector group 00 and the eight physical sectors of the physical sector addresses PST0 to 7 mapped to the sector group 00, respectively, and the logical sector in the sector group 02 and the physical sector mapped to the sector group 02.
  • the mapping is updated for each of the eight physical sectors at addresses PST 16-23. Specifically, the eight logical sectors specified by the logical sector addresses LST5 to 7,0 to 4 in the sector group 00 are specified in this order by the physical sector addresses 00 to 07 shown in the first row in FIG. 8B. It is mapped to each physical sector to be created.
  • the eight logical sectors specified by the logical sector addresses LST21 to 23 and 16 to 20 in the sector group 02 are the physicals specified by the physical sector addresses PST16 to 23 shown in the first row in FIG. 8B in this order. Each is mapped to a sector.
  • the intra-group management information indicates the circulating state (number of shifts) of the logical sectors in the sector group.
  • the intra-group management information is a group of 3 bits each, which is a one-to-one mapping between each of the eight logical sectors in each sector group and each of the eight physical sectors mapped to each sector group. It is managed by the internal management information.
  • the number of sector groups in the present technology is not limited to four, and may be four or less or four or more as long as the same number of logical sectors are included in each sector group.
  • the sector group management information indicating the number of shifts in the sector group unit may be set in the first numerical range in which the number of sector groups (n) -1 is the maximum value. However, as the numerical range of the sector group management information increases, it is necessary to increase the number of bits of the sector group management information. Therefore, from the viewpoint of suppressing the enlargement of the mapping information, the number of sector groups is preferably 4 or less. Further, the number of logical sectors in the sector group also changes according to the number of sector groups.
  • the intra-group management information indicating the number of logical sector shifts in the sector group may be set in the second numerical range having the maximum number of logical sectors (m) -1 in the sector group.
  • the address remapping unit 132 updates the management information in the group by the second group update process, so that the mapping information can be updated in some physical sectors in the physical section (eight physical sectors mapped to the sector group). You can do it for each. That is, in the second group update process, the order of the logical sectors in the sector group is updated. In addition, the number of shifts in the order of arrangement in the group management information is always based on the shift reference state. Therefore, when the management information in one group (for example, the management information in the sector group 00) is updated from "0" to "2", and the management information in the group is updated from "1" to "2". Similarly, in the case of the above case, the arrangement order of the logical sectors in the sector is in a 2-shift state (see the second stage in FIG. 8B).
  • the address remapping unit 132 updates the combination of the sector group management information and the intra-group management information (sector management information) to arrange the logical sectors in each sector group and within the sector group.
  • the order of the logical sectors can be controlled individually.
  • the sector group management information and the intra-group management information in the sector management information are updated by the sector group update process (first change group new process and second group update process)
  • the sector group management information and the group The sector address in the section generated by the internal management information is updated. That is, the physical sector address converted from the logical sector address based on the access destination logical section address is updated.
  • the address remapping unit 132 may perform a sector group update process (first group update process and second group update process) at the same time as the section update process. That is, when updating the mapping information in section units, the address remapping unit 132 may also update the mapping information for each sector group and for each logical sector in the sector group. Therefore, in the controller 10 according to the present embodiment, the address remapping unit 132 combines a plurality of types of address remapping processes in which the mapping hierarchy (section, sector group in section, sector in sector group) in the mapping information is different. Configured to be viable.
  • the difference in the mapping hierarchy also corresponds to the difference in the update scale of the mapping information.
  • the update scale of the mapping information decreases in the order of section ⁇ sector group ⁇ each sector in the sector group.
  • the address remapping unit 132 may independently execute only the second group update process in the sector group update process, and may update the group management information independently in the mapping information of the physical sector to be accessed.
  • both the section update process and the sector group update process are probabilistically for each access (write access and read access) to the non-volatile memory 20. Will be executed.
  • the second address remapping probability which is the probability of executing the second group update processing among the address remapping probabilities, may be 0.025% for each write access, and is read access. It may be 0.01% for each.
  • the first address remapping probability which is the probability of executing the section update process, is one-eighth of the second address remapping probability for each access (write access and read access). It can be a probability.
  • the first address remapping probability may be 0.003125% for each write access and 0.00125% for each read access.
  • the value of the address remapping probability that the address remapping unit 132 performs the address remapping process may differ depending on whether the access performed by the access control unit 110 is a write access or a read access.
  • the data inverting unit 134 inverts the data (written data) to be written to the memory cell MC, and performs a data inverting process that averages the number of sets and the number of reset processes of each memory cell MC in the non-volatile memory 20. .. Specifically, the data inversion unit 134 inverts the bits in the write data written in the memory cell MC belonging to the physical sector to be written and accessed as the data inversion process. In the present embodiment, the data inversion unit 134 performs data inversion processing with a predetermined inversion execution probability for each write access by the access control unit 110. This predetermined reversal execution probability is an example of the second probability. That is, the data inversion process in the present embodiment is stochastically executed for each access to the non-volatile memory 20 (write access in this example).
  • the inversion execution probability may be in the range of 40% or more and 60% or less, and 50% is more preferable.
  • IV 1-bit inversion flag
  • the IV may be generated based on the processing result of the data inversion process, that is, whether or not the data inversion is executed.
  • the refresh unit 136 temporarily changes all the memory cell MCs in the LRS among the memory cell MCs to be accessed in the non-volatile memory 20 to HRS, and performs a refresh process to prevent continuous reading in the LRS.
  • This refresh process is an example of the resistance state change process.
  • the refresh unit 136 sets the access target physical sector with a predetermined refresh execution probability for each access (write access and read access) to the non-volatile memory 20 by the controller 10. Performs a process of refreshing the corresponding memory cell MC.
  • This predetermined refresh execution probability is an example of the third probability. That is, the refresh process in the present embodiment is stochastically executed for each access to the non-volatile memory 20 (write access in this example).
  • the refresh process in the present embodiment changes the resistance changing element VR of LRS (low resistance state) to HRS (high resistance state) among the resistance changing element VR of the memory cell MC corresponding to the physical sector to be accessed. It is a process.
  • the refresh execution probability is, for example, 0.25 in the controller 10 according to the present technology. It should be%.
  • the random number generation unit 138 executes a random number generation process for generating a random number within a predetermined numerical range.
  • the random numbers generated by the random number generation unit 138 are used in the wear leveling processing (address remapping process, data inversion) in each processing unit (address remapping unit 132, data inversion unit 134, and refresh unit 136) of the wear leveling processing unit 130. It is used to determine whether or not to execute the process and refresh process).
  • the ECC processing unit 120 detects an error (code error) that has occurred in the data by a parity check, and performs processing for correcting this. In this example, the ECC processing unit 120 performs ECC coding / decoding processing on the sector data when accessing a physical sector composed of a plurality of banks B whose addresses are specified.
  • the ECC processing unit 120 includes, for example, an ECC encoder 122 and an ECC decoder 124.
  • the ECC processing unit 120 typically deals with errors due to random errors, small number of bit stack defects, and RD defects.
  • the ECC encoder 122 generates a parity bit when writing data to a physical sector, and adds this to the data. For example, when the controller 10 receives write data consisting of actual data and metadata from a host (not shown), it generates LA / IV based on the data. In response to this, the ECC encoder 122 generates parity based on the BCH code using the actual data, the metadata and the LA / IV as the payload. With this parity, the controller 10 can correct errors up to a total of 30 bits per 313 bytes, for example. In this example, the write error is assumed to be corrected up to 12 bits per 313 bytes, for example, and therefore the random error can be corrected up to 18 bits.
  • the ECC decoder 124 When reading data from a sector, the ECC decoder 124 performs an error check based on the added parity, corrects the detected error, and recovers the data.
  • the read error can be corrected up to 18 bits per 313 bytes, for example.
  • the non-volatile memory 20 of the present technology is composed of a plurality of memory packages in which the tile T group is used as the access control unit of the microcontroller 70.
  • the non-volatile memory 20 stores, for example, user data 220 and various types of management data.
  • the various management data includes, for example, a backed up address translation table 210 and spare data 240. Various management data will be described later.
  • the address translation table 210 is a table that stores mapping information for converting a logical address indicated by an access command received from a host (not shown) into a physical sector address on the non-volatile memory 20.
  • the address translation table 210 is a backup address translation table, which is expanded in the work memory 30 during the operation of the semiconductor storage device 1 and is held as the work address translation table 310. Since the address translation table 210 is downsized, the address unit handled in the address translation table 210 may be larger than the sector size (320 bytes in this example) suitable for ECC processing.
  • the address unit of the address translation table 210 is set to a section unit of 8 kilobytes, and one address in the address translation table 210 may include 32 sets of actual data (256 bytes each), parity, and a patch.
  • the address translation table 210 and the work address translation table 310 are synchronized under the control of the controller 10 during the operation of the semiconductor storage device 1.
  • the controller 10 can refer to the working address translation table 310 at high speed to refer to the information equivalent to the mapping information stored in the address translation table 210.
  • the semiconductor storage device 1 can recover the mapping information in the address translation table 310 even when the power is suddenly cut off by synchronizing the address translation table 210 and the work address translation table 310, improving the operation reliability. can do.
  • the backup address translation table 210 holds a plurality of mapping information (see FIG. 7) composed of indexes and entries.
  • the address conversion table 210 uses the physical section address in the mapping information as an index (index), and holds the logical section address and sector management information mapped (associated) with the physical section address as entries associated with the index. That is, the address translation table 210 is a reverse lookup table in which the physical section address is used as an index, as opposed to the address translation table in which the physical address is obtained by using the logical address as an index.
  • the address translation table 210 specifies the storage position of an entry by an index (physical section address) without searching in the table at the time of referencing the entry, and directly accesses the storage position, so that the entry (entry) can be performed efficiently. Logical section address and sector management information) can be acquired.
  • Spare data 240 is data used for substituting each sector according to the number of fixing defects in the sector. More specifically, for example, when an error with a number of bits exceeding a predetermined number of bits (for example, 56 bits) of an error that can be corrected by an ECP engine (not shown) that corrects an error of a bad cell in a sector occurs, the relevant error occurs.
  • the data to be stored in the sector is stored as spare data.
  • the work memory 30 of this example temporarily holds all or part of the management data stored in the non-volatile memory 20.
  • the work memory 30 is provided for speeding up the semiconductor storage device 1 and preventing wear.
  • the work memory 30 may include at least a working address translation table 310.
  • the working address translation table 310 is a substantial copy of the backup address translation table 210 held in the non-volatile memory 20.
  • the "substantial copy” here means data that is semantically the same as the content of the original data regardless of the data format. For example, if the working address translation table 310 is restored from the compressed or redundant data address translation table 210, it can be said to be a substantial copy.
  • the semiconductor storage device 1 When the semiconductor storage device 1 is activated, the address translation table 210 read from the non-volatile memory 20 is held on the work memory 30 as a working address translation table 310 under the control of the access control unit 110.
  • the reference of the mapping information is usually made to the working address translation table 310 on the work memory 30.
  • the backup address translation table 210 is updated only when the working address translation table 310 is updated.
  • FIG. 9 is a diagram for explaining the information space of the non-volatile memory according to the embodiment of the present technology. As shown in the figure, the physical section of the non-volatile memory 20 is mapped to the logical section via the address translation table 210, and the logical section is associated with the data content.
  • the data content is stored as sector data in any of a plurality of sectors (32 in this example).
  • the user section stores user data (actual data and metadata) of the data contents in association with each other.
  • the spare section stores the spare sector to be replaced in association with each other.
  • the defective section stores the data indicated by the physical address where the fixed defect (hard error) occurred in association with it.
  • the address translation table section stores the address translation table 210 in association with each other.
  • the mapping between the address translation table section and the physical section is fixed. That is, the physical section stores the normal physical section that can be arbitrarily mapped to the normal logical section (user section, spare section and bad section) by the address translation table 210, and the address translation table itself, and the address translation table section.
  • the mapping of is divided into a fixed mapping physical section for fixed storage.
  • the controller 10 Since the mapping between the address translation table section and the physical section is fixed, the controller 10 reads the backup address translation table 210 from the physical section without referring to the address translation table when the semiconductor storage device 1 is started. , The work address translation table 310 can be expanded on the work memory 30.
  • the address translation table section mapped to the physical section with a fixed mapping cannot be referenced from the host side because it is not mapped to the logical address available on the host (not shown). Therefore, even if the mapping between the address translation table section and the physical section is fixed, it is not affected by malicious access from the host side.
  • the size of the section is 8 kilobytes, but the present technology is not limited to this.
  • the size of the section can be appropriately changed according to the specifications of the semiconductor storage device 1 and the cost ratio between the non-volatile memory 20 and the work memory 30. For example, the larger the section size, the smaller the amount of data in the working address translation table 310, and the smaller the capacity of the work memory 30 can be expanded. On the other hand, the smaller the section size, the smaller the amount of data to be accessed at the time of one mapping update in the address remapping process, and the performance deterioration due to the execution of the address remapping process can be suppressed. Further, when the section size is small, the unit of the spare section can be reduced, so that the relief rate at the time of writing failure is improved, for example.
  • 10A and 10B are flowcharts for explaining an example of data writing processing in the semiconductor storage device 1 according to the present embodiment.
  • the write process includes wear leveling process (address remapping process, data inversion process and refresh process) as described below.
  • the write process is executed, for example, when the controller 10 receives a normal write access command from a host (not shown). That is, as shown in FIG. 10A, when the controller 10 receives the write command, the access control unit 110 acquires the physical sector address of the physical sector of the write destination by the address conversion process. Specifically, the access control unit 110 refers to the working address translation table 310 on the work memory 30, converts the access destination logical section address (here, the write destination logical section address), and converts the write destination physical section address. Acquire the sector address (S1001).
  • the access control unit 110 outputs, for example, the access destination logical section address and the physical sector address of the write destination to the wear leveling processing unit 130. Based on this output, the address remapping unit 132 included in the wear leveling processing unit 130 controls the address remapping process (S2000). The control of the address remapping process associated with the data writing process will be described later.
  • the address remapping unit 132 controls the address remapping process
  • the address remapping unit 132 outputs the processing result to the wear leveling processing unit 130.
  • the processing result of the address remapping process is, for example, flag information indicating whether or not the address remapping process is executed.
  • the data inversion unit 134 included in the wear leveling process unit 130 starts the control of the data inversion process. Specifically, the data inversion unit 134 acquires a data inversion determination random number for determining whether or not to execute the data inversion process from the random number generation unit 138 (S1002). When the data inversion random number is acquired, the data inversion unit 134 determines whether or not the acquired random number is included in the execution numerical value range (S1003).
  • the execution numerical range is a number of numerical values corresponding to the inversion execution probability (for example, 50%) in the same numerical range as the numerical range (0 to n) of the data reversal random number that can be generated by the random number generation unit 138.
  • the data inversion unit 134 determines that the acquired data inversion determination random number is included in the execution numerical value range (Yes in S1003), the data inversion unit 134 performs data inversion processing of the written data (S1004). As a result, the data inversion process is stochastically executed based on, for example, a 50% inversion execution probability for each write access.
  • the data inversion unit 134 performs a process of inverting the bit value in the write data (“1” ⁇ “0”, “0” ⁇ “1”) as a data inversion process of the write data.
  • the write data is data consisting of 256 bytes of actual data and 8 bytes of metadata received from the host together with the write access command.
  • the data inversion unit 134 inverts all bit values of the write data in the data inversion process.
  • the data inversion unit 134 may be configured to invert some bits of the write data in the data inversion process. In this case, which bit is inverted may be randomly determined based on, for example, a random number generated by the random number generation unit 138.
  • the data inversion unit 134 executes the data inversion process and generates an inversion flag IV (for example, "1") indicating that the written data is inverted (S1005).
  • an inversion flag IV for example, “1”
  • the data inversion unit 134 determines that the acquired data inversion determination random number is not included in the execution numerical range (No of S1003)
  • the data inversion process is not executed and the written data is not inverted.
  • the inversion flag IV (for example, “0”) indicating is generated (S1006).
  • the generated inversion flag IV is output to the access control unit 110 via the wear leveling processing unit 130.
  • the data inverting unit 134 probabilistically executes the control of the data inverting process (S1002 to S1006), and improves the number of times the memory cell MC is rewritten even when the access pattern of the written data is biased. At the same time, the probability that each memory cell MC becomes LRS is reduced to deal with write wear and read wear.
  • the access control unit 110 adds the inversion flag IV to the write data together with the 31-bit logical sector address LA (S1007). As a result, 4-byte (32-bit) data (LA + IV) is newly added to the written data.
  • the logical sector address added to the written data is used for detecting and correcting a data defect (for example, garbled data) on the communication path in the semiconductor storage device 1 or the work memory 30.
  • a data defect for example, garbled data
  • the access control unit 110 acquires a logical sector from the working address conversion table 310 based on the logical sector address added to the data in the physical sector to be accessed and the received logical address. Determine if the address matches.
  • the access control unit 110 determines that there is a data defect (for example, garbled data) in the communication path or the work memory 30 in the semiconductor storage device 1, and causes a data defect. Can be corrected.
  • the access control unit 110 outputs the write data to the ECC encoder 122 and adds parity to the write data (S1008 in FIG. 10B).
  • the ECC encoder 122 generates parity for the output write data based on the BCH code using the actual data, the metadata, and the LA / IV as the payload.
  • the access control unit 110 outputs the write data to the wear leveling processing unit 130. Based on this, the refresh unit 136 of the wear leveling process unit 130 starts controlling the refresh process.
  • the refresh unit 136 acquires a refresh determination random number for determining whether or not to execute the refresh process from the random number generation unit 138 (S1009).
  • the refresh unit 136 determines whether or not the acquired random number is included in the execution numerical range (S1010).
  • the execution numerical range is the number of numbers corresponding to the refresh execution probability (for example, 0.25%) in the same numerical range as the numerical range (0 to n) of the data inverted random number that can be generated by the random number generator 138. It is a numerical range consisting of numerical values.
  • the refresh unit 136 determines that the acquired refresh determination random number is included in the execution numerical value range (Yes in S1010), the refresh unit 136 issues a refresh command to the non-volatile memory 20 (S1011).
  • the refresh process is stochastically executed based on, for example, a refresh execution probability of 0.25% for each write access in which write data is written to the memory cell MC belonging to the physical sector to be accessed.
  • the refresh unit 136 outputs a processing result (for example, "1") to the effect that the refresh process has been performed to the access control unit 110 via the wear leveling processing unit 130.
  • the refresh command is a command for writing data after changing the memory cell MC in the LRS to the HRS once.
  • the refresh unit 136 issues the write data to the non-volatile memory 20.
  • the write data is written to the non-volatile memory 20 together with the refresh process.
  • the write data is, for example, 320 bytes. Specifically, the write data is divided into 10 32-byte pages and written to a plurality of memory cells MC belonging to the physical sector to be accessed.
  • the refresh unit 130 performs a refresh process on the access control unit 110 via the wear leveling process unit 130.
  • the processing result (for example, "0") indicating that there is no processing is output.
  • the access control unit 110 issues a write command to the non-volatile memory 20 together with the write data based on the processing result (S1012).
  • the write data is written to the plurality of memory cells MC belonging to the physical sector to be accessed by the write command.
  • the refresh command is implemented in the controller 10 as a command dedicated to the refresh process.
  • the refresh command is a write command issued by the access control unit 110 at the time of write access to write data to the memory cell MC corresponding to the physical sector to be accessed, and a memory cell MC corresponding to the physical sector to be accessed. It is preferable that the command is separate from the read command issued by the access control unit 110 at the time of read access to read data. As a result, the controller 10 can speed up the refresh process.
  • the present technology is not limited to this, and the refresh process may be realized, for example, by issuing a normal read command or a write command in combination with a data loading command.
  • the data loading command is a command for writing predetermined data (all bits "0" or all bits "1") to the memory cell without inputting data from the controller 10.
  • the refresh unit 136 stochastically executes the control of the refresh process (S1009 to S1011) to reduce the probability that the number of continuous reads of each memory cell MC reaches the continuous read reference number, and continuously. Deal with write defects due to reading.
  • the access control unit 110 confirms the number of errors (S1013). After issuing the refresh command or the write command, the access control unit 110 waits for a predetermined time to elapse, issues a mode register read command, and confirms the number of bits (errors) that could not be written in the write data. .. That is, the mode register read command acquires the number of memory cell MCs in which a write failure has occurred in the physical sector due to the execution of the immediately preceding write command or refresh command.
  • the access control unit 110 determines whether or not the number of confirmed errors is a predetermined number (for example, 13 bits) or more (S1014). When the number of errors is 12 bits or less (No in S1014), the error is corrected by the ECC process. After the error correction, the access control unit 110 ends the write process. On the other hand, when the access control unit 110 determines that the number of errors is equal to or greater than a predetermined number (Yes in S1014), the access control unit 110 executes alternative processing (S1015). In the alternative process, the access control unit 110 assigns the write destination of the write data to the physical sector address indicating the spare sector stored in the spare data 240. After the alternative processing, the access control unit 110 executes the processing after the addition of parity to the written data (S1008) again.
  • a predetermined number for example, 13 bits or more
  • the access control unit 110 of the controller 10 executes the wear leveling process for a certain physical sector and then executes the data write process.
  • FIG. 11A is a flowchart for explaining an example of the address remapping process in the semiconductor storage device 1 according to the present embodiment.
  • FIG. 11B is a flowchart for explaining an example of the section update process in the address remapping process in the semiconductor storage device 1 according to the present embodiment.
  • the control (S2000) of the address remapping process at the time of the above-mentioned data writing process will be described with reference to FIGS. 11A and 11B.
  • the address remapping unit 132 updates the section based on this output.
  • a section update decision random number for determining whether or not to execute the process is acquired (S2001).
  • the address remapping unit 132 determines whether or not the acquired random number is included in the execution numerical range (S2002).
  • the execution numerical range is the first address remapping probability (for example, 0) in the same numerical range as the numerical range (0 to n) of the section update determination random number that can be generated by the random number generator 138 at the time of write access.
  • the address remapping unit 132 determines that the acquired section update determination random number is included in the execution numerical range (Yes in S2002), the address remapping unit 132 performs the section update process (S3000). As a result, the section update process is stochastically controlled based on the first address remapping probability of, for example, 0.003125% for each write access.
  • the address remapping unit 132 performs an address remapping process (section update process in this example) based on the random number generated by the random number generation unit 138 for each access (in this example, each write access). Decide whether or not.
  • the address remapping unit 132 first randomly acquires one mapping information from the working address translation table 310 (S3001).
  • the mapping information acquired here may not be the mapping information corresponding to the physical sector to be accessed by the access control unit 110.
  • the address remapping unit 132 may determine the mapping information of one of the acquisition targets based on the random numbers generated by the random number generation unit 138, for example. For example, the address remapping unit 132 acquires a random number in a numerical range corresponding to the logical section address in the working address translation table 310 from the random number generation unit 138, and obtains mapping information associated with the logical section address indicated by the acquired random number value. You may get it.
  • the address remapping unit 132 updates the working address translation table 310 to update the section address mapping (S3002). Specifically, the address remapping unit 132 acquires the physical section address (for example, "PS001") mapped to the access destination logical section address (for example, "LS001") at random, and the physical in one mapping information. Map to a section address (eg "PS002"). Further, the address remapping unit 132 uses the physical section address (“PS001”) mapped to the access destination logical section address (LS001) as the logical section address (for example, “LS002”) in one mapping information randomly acquired. ). As a result, one physical section address (PS001) corresponding to one logical section address (LS001) that identifies the physical sector to be accessed is different from one physical section address, and another randomly selected physical section address (PS001). It is replaced by PS002).
  • PS001 physical section address
  • LS001 logical section address
  • the address remapping unit 132 updates the section address mapping
  • the data is replaced in section units (S3003), and the control returns to the control of the address remapping update process.
  • the address remapping unit 132 includes the data of the physical sector in the physical section indicated by the physical section address (“PS001”) before the update, which is mapped to the access destination logical section address (“LS001”), and new data.
  • PS001 physical section indicated by the physical section indicated by the updated physical section address
  • PS002 updated physical section address
  • the data stored in the physical sector specified by another randomly selected physical section address (PS002) is stored in the physical sector specified by the physical section address before update (“PS001”). Replaced by data.
  • the address remapping unit 132 executes the section update process
  • the above-mentioned first group update process is executed to update the sector group management information in the mapping information of the work address translation table 310 (S2003).
  • the address remapping unit 132 updates the sector group management information corresponding to the access destination logical section address (“LS001”).
  • the address remapping unit 132 randomly determines the update value of the sector group management information in the first group update process.
  • the address remapping unit 132 may acquire a random number within the above-mentioned first numerical value range from the random number generation unit 138 at the time of the first group update process, and may use the acquired random number as the update value of the sector group management information.
  • the address remapping unit 132 executes the first group update process
  • the address remapping unit 132 executes the second group update process described above to update the in-group management information in the mapping information of the working address translation table 310 (S2006).
  • the address remapping unit 132 determines that the acquired section update determination random number is not included in the execution numerical range (No in S2002), the second group for determining whether or not to execute the second group update process.
  • the update processing decision random number is acquired (S2004).
  • the address remapping unit 132 determines whether or not the acquired random number is included in the execution numerical range (S2005).
  • the execution numerical range is the second address remapping probability at the time of write access in the same numerical range as the numerical range (0 to n) of the second group update processing determined random number that can be generated by the random number generator 138.
  • the address remapping unit 132 determines that the acquired second group update processing determination random number is included in the execution numerical range (Yes in S2005), the address remapping unit 132 executes the above-mentioned second group update processing to execute the work address translation table.
  • the in-group management information in the mapping information of 310 is updated (S2006).
  • the update value of the management information in the group in the second group update process is randomly determined.
  • the address remapping unit 132 acquires a random number within the above-mentioned second numerical value range from the random number generation unit 138 at the time of the second group update process, and the acquired random number may be used as an update value of the group management information. Good.
  • the address remapping unit 132 updates the management information in the group, it updates the backup address translation table 210 on the non-volatile memory 20 and synchronizes with the working address translation table 310 (S2007). In this example, when the address translation table 210 is updated, the address remapping unit 132 returns to S1002 (see FIG. 10A) of the data writing process.
  • the backup address translation table 210 which is a reverse lookup table
  • the number of references is leveled as the physical sector to be accessed is leveled by the address remapping process. Therefore, as shown in FIG. 9, even if the mapping is stored in the fixed area, the wear of the memory cell MC that stores the data of the address translation table 210 can be leveled.
  • the address remapping unit 132 updates the address conversion table 210, and the memory cell MC by concentrating access to a specific sector in a section unit, a sector group unit, or a logical sector unit in the sector group. Performs an address remapping process to deal with write wear.
  • FIG. 12 is a flowchart for explaining an example of data reading processing in the semiconductor storage device 1 according to the embodiment of the present technology.
  • the reading process includes a wear leveling process, as described below.
  • the read process is executed, for example, when the controller 10 receives a normal read access command from a host (not shown).
  • the access control unit 110 acquires the physical sector address of the physical sector of the read destination by the address conversion process. Specifically, the access control unit 110 refers to the working address translation table 310 on the work memory 30 and converts the access destination logical section address (here, the read destination logical section address) to convert the read destination physical section address. Acquire the sector address (S1201).
  • the access control unit 110 reads data from the physical sector address of the read destination based on the read command (S1202).
  • the access control unit 110 receives the read data to the ECC decoder 124 of the ECC processing unit 120. It is output and ECC decoding is performed (S1203).
  • the ECC decoder 124 performs the ECC decoding process based on the parity added to the read data. For example, the ECC decoder 124 performs an error check based on the parity added to the read data, corrects the detected error, and recovers the data.
  • the access control unit 110 confirms the inversion flag (IV) added to the read data.
  • the access control unit 110 determines that the inversion flag (IV) is "1" (Yes in S1204), it determines that the read data has been inverted at the time of writing, and performs reverse decoding processing on the read data. (S1205). Specifically, the access control unit 110 inverts all the bits of the actual data and the metadata in the read data.
  • the access control unit 110 determines that the inversion flag (IV) is "0" (No in S1204), it determines that the read data is not data inverted at the time of writing, and skips the inversion decoding process. ..
  • the access control unit 110 transmits the read data to the host (S1206).
  • the access control unit 110 transmits the read data to the host
  • the access control unit 110 outputs the transmission result to the wear leveling processing unit 130.
  • the refresh unit 136 in the wear leveling processing unit 130 controls the refresh processing (S1207).
  • the control content of the refresh process is the same as that of the write process (S1009 to S1011 in FIG. 10B).
  • the refresh determination random number acquired by the refresh unit 136 is within the execution numerical range.
  • the refresh unit 136 issues the read data to which the ECC decoding process has been performed to the non-volatile memory 20 together with the refresh command. As a result, the read data after the ECC decoding process is written back to the physical sector address of the read destination. If the refresh unit 136 does not issue a refresh command during the data read processing, the refresh unit 136 may issue the read data after the ECC decoding process to the non-volatile memory 20 together with the write command.
  • the address remapping unit 132 in the wear leveling processing unit 130 controls the address remapping process (S2000).
  • the control content of the address remapping process during the data read process is the same as that during the data write process (see FIG. 11A).
  • the first address remapping probability related to the execution of the section update process is 0.00125%.
  • the second address remapping probability related to the execution of the second group update process is 0.01%.
  • FIG. 13 is a histogram showing the simulation result of the address remapping process according to the present embodiment.
  • the section update process and the sector group update process in the address remapping process are implemented by software, and the effect of averaging the access to each memory cell MC is simulated.
  • the Monte Carlo method was used for this simulation.
  • the section update process is performed according to the above-mentioned first address remapping probability (0.003125% for each write access, 0.00125% for each read access). Executed. At the time of the section update process, the sector group update process (first group update process, second group update process) was also executed. Furthermore, in the software implementation of this simulation, by generating a pseudo-random number, the sector group update process is performed according to the second address remapping probability (0.025% for each write access and 0.01% for each read access). The second group update process was executed.
  • the controller 10 performs the section update process of the address remapping process as the wear leveling process with a probability of 0.003125% for each write access and 0.00125 for each read access. It belongs to each physical sector by executing it together with the update process and executing the second group update process of the address remapping process with a probability of 0.025% for each write access and 0.01% for each read access, for example.
  • the number of writes and the number of reads to each memory cell MC can be averaged.
  • the controller 10 probabilistically performs data inversion processing as wear leveling processing. For example, by inverting the data with a probability of 50% at the time of write access, the probability that the bit value changes for each write can be regarded as 50%. As a result, the controller 10 can average the number of times the memory cell MC is rewritten and level the write wear even in a biased data pattern (for example, all bits "0" or all bits "1"). .. Further, data inversion is performed with a probability of 50% at the time of write access, and section update processing and sector group update processing are executed with a predetermined probability (for example, 0.00125%) for each read access, so that each memory cell MC.
  • the number of times of lifetime LRS reading that is, the number of times each memory cell MC is LRS among the number of lifetime readings can be set to about 50%. This also applies to biased data patterns.
  • FIG. 14 is a diagram showing a verification result of the refresh process according to the present embodiment.
  • the refresh execution probability for each read access (expressed as “execution probability / read access” in FIG. 14) is 0.30%.
  • the refresh process was verified with 0.25% and 0.20%.
  • the refresh execution probability is 0.30%, the occurrence rate of write defects due to continuous reading is less than 0.001% (denoted as "0.000%" in FIG. 14), and refresh is performed.
  • the occurrence rate of write defects due to continuous reading is 0.013%, and when the refresh execution probability is 0.20%, the occurrence rate of write defects due to continuous reading is 2.020%. .. In FIG. 14, the occurrence rate of write defects due to continuous reading is referred to as “defect occurrence rate”.
  • the "defect occurrence rate” was obtained as the ratio of the number of sectors (the ratio of the number of physical sectors in which write defects occurred due to continuous reading to the total number of physical sectors).
  • the refresh execution probability when the refresh execution probability is 0.30%, the occurrence rate of write defects due to continuous reading is significantly reduced to less than 0.001%, but on the other hand, the operating performance of the semiconductor storage device 1 is affected. The effect (for example, deterioration of operating performance) is large. Further, when the refresh execution probability is 0.20%, the occurrence rate of write defects due to continuous reading is 2% or more as described above, and the reduction of write defects is not sufficient. On the other hand, when the refresh execution probability is set to 0.25%, the occurrence rate of write defects due to continuous reading can be suppressed to about 0.01% as described above, so that a small number of spares in the spare section can be suppressed. Compensation (relief) for write defects can be made by the address, and the influence on the operating performance of the semiconductor storage device 1 is negligible. Therefore, when the number of continuous reading reference times is 10,000, the optimum refresh execution probability is 0.25%.
  • the refresh process is verified by setting the refresh execution probabilities for each read access to 0.60%, 0.50%, and 0.40%. ..
  • the refresh execution probability is 0.60% in this example, the occurrence rate of write defects due to continuous reading is less than 0.001%, and when the refresh execution probability is 0.50%, continuous reading is performed.
  • the occurrence rate of write defects was 0.013%, and when the refresh execution probability was 0.40%, the occurrence rate of write defects due to continuous reading was 1.980%.
  • the refresh execution probability for each read access is 0.60%
  • the occurrence rate of write defects is less than 0.001%, but the influence on the operating performance of the semiconductor storage device 1 becomes large.
  • the refresh execution probability is 0.40%
  • the occurrence rate of write defects due to continuous reading is about 2%, so that the reduction of write defects is not sufficient.
  • the refresh execution probability is 0.50%
  • the occurrence rate of write defects due to continuous reading can be suppressed to about 0.01%, and the influence on the operating performance of the semiconductor storage device 1 is also compared. It is suitable because it is small.
  • the refresh process is verified by setting the refresh execution probabilities for each read access to 1.30%, 1.20%, and 1.10%. ..
  • the refresh execution probability is 1.30%
  • the occurrence rate of write defects due to continuous reading is 0.004%
  • the refresh execution probability is 1.20%
  • the occurrence rate of write defects due to continuous reading is 0.004%
  • the occurrence rate was 0.033%
  • the refresh execution probability for each read access is 1.30%, the occurrence rate of write defects is reduced to 0.004%, but the influence on the operating performance of the semiconductor storage device 1 becomes large. Further, when the refresh execution probability is 1.10%, the occurrence rate of write defects due to continuous reading is 0.2% or more, so that the reduction of write defects is not sufficient. On the other hand, when the refresh execution probability is 1.20%, the occurrence rate of write defects due to continuous reading can be suppressed to about 0.03%, and the influence on the operating performance of the semiconductor storage device 1 is relatively large. It is suitable because it is small.
  • write defects are reduced and the service life of the memory is maximized by eliminating the localization of cell wear in the memory according to the characteristics of the Xp-ReRAM. It becomes possible to provide a controller, a semiconductor storage device, and a wear leveling processing method in the device.
  • steps, actions or functions may be performed in parallel or in a different order, as long as the results are not inconsistent.
  • the steps, actions and functions described are provided merely as examples, and some of the steps, actions and functions can be omitted and combined with each other to the extent that they do not deviate from the gist of the invention. It may be one, or other steps, actions or functions may be added.
  • a controller that controls the operation of a semiconductor storage device having a writable non-volatile memory. Access to the data storage area according to an address translation table that holds mapping information indicating the correspondence between the physical address and the logical address that identifies the data storage area based on some of the plurality of memory cells in the non-volatile memory.
  • the access control unit to control and A wear leveling processing unit that performs a wear leveling process for leveling the wear of the plurality of memory cells caused by the access is provided.
  • the wear leveling processing unit performs the wear leveling process with a predetermined probability for each access. controller.
  • the wear leveling processing unit is A table update unit that performs a table update process for updating the mapping information in the address translation table with a first probability for each access is included.
  • the controller according to (1) above.
  • (3) The table update unit The one physical address corresponding to the one logical address that identifies the data storage area to be accessed is replaced with another randomly selected physical address different from the one physical address.
  • (4) The table update unit replaces the data stored in the data storage area specified by the other physical address with the data stored in the data storage area specified by the one physical address.
  • the controller according to (3) above.
  • the table update unit For each access, it is determined whether or not to perform the table update process based on the random number generated by the random number generator.
  • the controller according to any one of (2) to (4).
  • the address translation table holds the mapping information for each storage area that stores a predetermined number of the data storage areas.
  • the controller according to any one of (2) to (5), wherein the table update unit performs the table update process for each storage area in which the data storage area to be accessed is stored.
  • the controller according to (6), wherein the table update unit performs the table update process for each of several data storage areas in the storage area.
  • the controller according to (7) above, wherein the table update unit performs the table update process for each of several data storage areas in the storage area.
  • the access controlled by the access control unit includes a write access for writing data to some memory cells corresponding to the data storage area and a read access for reading data from some memory cells corresponding to the data storage area. Including The value of the first probability that the table update unit performs the table update process differs depending on whether the access is the write access or the read access. Any one of (2) to (8). The controller described in one. (10) The wear leveling processing unit is In the case where the access controlled by the access control unit is a write access for writing data to some memory cells corresponding to the data storage area, the data is written to the memory cell with a second probability for each write access. Includes a data inversion processing unit that performs data inversion processing that inverts the bits in the write data.
  • the controller according to any one of (1) to (9) above.
  • the data inversion processing unit adds data inversion information indicating whether or not the data inversion processing has been performed to the write data at the time of the write access.
  • the controller according to (10) above.
  • the non-volatile memory is a cross-point / resistance change type RAM.
  • the plurality of memory cells have resistance changing elements that can be reversibly changed into a low resistance state and a high resistance state.
  • the wear leveling processing unit is Among the resistance changing elements of some of the memory cells corresponding to the data storage area to be accessed, the resistance changing element in the low resistance state has a third probability for each access to the data storage area.
  • the controller includes a resistance state changing unit that performs a resistance state changing process that changes the resistance to the high resistance state.
  • the controller according to any one of (1) to (11).
  • the resistance state changing part is A resistance state change command for executing the resistance state change process is issued to the non-volatile memory having the data storage area to be accessed, and the resistance state change process is executed.
  • the resistance state change command is A write command issued by the access control unit at the time of write access to write data to some of the memory cells corresponding to the data storage area of the access target, and some of the memories corresponding to the data storage area of the access target. Read data from a cell This is a command separate from the read command issued by the access control unit at the time of read access.
  • the controller according to (12) above.
  • Non-volatile memory with multiple writable non-volatile memory cells A semiconductor storage device including a controller for controlling the non-volatile memory.
  • the controller Access to the data storage area according to an address translation table that holds mapping information indicating the correspondence between the physical address and the logical address that identifies the data storage area based on some of the plurality of memory cells in the non-volatile memory.
  • the access control unit to control and It has a wear leveling processing unit that executes a wear leveling process for leveling the wear of the plurality of memory cells caused by the access.
  • the wear leveling processing unit executes the wear leveling process with a predetermined probability for each access.
  • Semiconductor storage device Semiconductor storage device.
  • the wear leveling processing unit is A table update unit that performs a table update process for updating the mapping information in the address translation table with a first probability for each access is included.
  • the wear leveling processing unit is In the case where the access controlled by the access control unit is a write access for writing data to some memory cells corresponding to the data storage area, the data is written to the memory cell with a second probability for each write access. Includes a data inversion processing unit that performs data inversion processing that inverts the bits in the write data.
  • the non-volatile memory is a cross-point / resistance change type RAM.
  • the plurality of memory cells have a resistance changing element that can reversibly change into a low resistance state and a high resistance state.
  • the wear leveling processing unit is Among the resistance changing elements of some of the memory cells corresponding to the data storage area to be accessed, the resistance changing element in the low resistance state has a third probability for each access to the data storage area. Includes a resistance state changing unit that performs a resistance state changing process that changes the resistance to the high resistance state.
  • the semiconductor storage device according to any one of (14) to (16). (18)
  • Access to the data storage area according to an address translation table that holds mapping information indicating the correspondence between the physical address and the logical address that identifies the data storage area based on some of the plurality of memory cells in the non-volatile memory.
  • To control and The wear leveling process for leveling the wear of the plurality of memory cells caused by the access is performed with a predetermined probability for each access.
  • Including Performing the wear leveling process includes performing a table update process for updating the mapping information in the address translation table with a first probability for each access. Wear leveling treatment method.
  • the non-volatile memory is a cross-point / resistance change type RAM.
  • Performing the wear leveling treatment A resistance change that can be reversibly changed to a low resistance state and a high resistance state of some of the memory cells corresponding to the data storage area to be accessed with a third probability for each access to the data storage area.
  • the resistance state changing element for changing the resistance changing element in the low resistance state to the high resistance state is performed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

Xp-ReRAMの特性に応じてメモリ内におけるセルの摩耗の局在化を解消することで書込み不良を低減し、メモリの使用寿命の最大化を図ることを目的とする。本技術は、書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラである。コントローラは、前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う。

Description

コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法
 本技術は、コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法に関する。
 従来、不揮発性を備える書き換え可能な半導体記憶装置が知られているが、近年では、不揮発性を備えつつ、DRAMを超える記憶容量及びDRAMに匹敵する高速性を備える書き換え可能な半導体記憶装置として、抵抗変化型RAM(ReRAM(Resistive RAM))が注目されている。ReRAMは、電圧の印加によって変化するセルの抵抗値の状態により情報を記録する。とりわけ、Xp-ReRAM(クロスポイントReRAM)は、ワード線とビット線との交差部に、記憶素子として機能する抵抗変化素子(VR:Variable Resistor)と双方向ダイオード特性を有する選択素子(SE:Selector Element)とが直列に接続されたセル構造を有する。
 このような書き換え可能な半導体記憶装置は、その動作時に、所定の動作不良が希に起きることが知られている。このため、このような動作不良に対処するための技術が提案されている。
 例えば、下記特許文献1は、メモリコントローラが、論理ブロックカウンタにおいて、データの書き込み先の論理ブロックアドレスの記録回数が相対的に多い場合、論物変換テーブルにおいて論理ブロックアドレスが割り当てられていない物理ブロックであるスペアブロックの中で、物理ブロックカウンタの消去回数が相対的に少ない物理ブロックアドレスを割り当てることで、物理ブロックの消去回数を平均化する技術を開示する。
 また、下記特許文献2は、Xp-ReRAMにおいて、所定の低抵抗状態LRと高抵抗状態HRとの間を電気信号の印加に応じて可逆的に変化する抵抗変化素子を有する参照セルの抵抗値を、例えば、低抵抗状態における抵抗分布の上限値(LRmax)や、高抵抗状態における抵抗分布の下限値(HRmin)といった、メモリセルアレイ内の各メモリセルが情報を保持している状態の境界的な条件(最悪状態)に設定した上で、当該参照セルの抵抗値の経時変化を観察し、当該参照セルにおいて、各メモリセルよりも先に情報の保持状態の劣化を検出してリフレッシュ動作を行う技術を開示する。
 また、下記特許文献3は、ReRAMにおいて、ページサイズにより分割されたページを単位としてアクセスされる不揮発メモリの書込み回数である書込み回数情報を保持し、保持された前記書込み回数情報に基づいて前記ページを構成する全てのメモリセルの値を反転させるリフレッシュが必要か否かを判断し、リフレッシュが必要となる場合には書込みに加えてリフレッシュをさらに行う技術を開示する。
 また、下記特許文献4は、ReRAMにおいて、ライト処理(書込み処理)時に2値(「0」「1」)のうちの一方の値への書換えと他方の値への書換えとを順に実行するメモリセルに対する入力データの少なくとも一部において前述の2値のうちの特定の値のビット数が基準値(例えば、半数)を超えるか否かを判定して当該判定の結果を示す判定データを生成し、前述のビット数が基準値を超えると判定された場合には少なくとも一部を反転した入力データをライトデータとして判定データとともにメモリセルへ出力する技術を開示する。
特開2016-184402号公報 国際公開2012/140903号 国際公開2016/067846号 特開2013-239142号公報
 動作不良には、例えば記憶素子へのデータの書込みに失敗する書込み不良が含まれる。書込み不良は、上述のXp-ReRAMを有する半導体記憶装置においても発生することが確認されており、動作の信頼性の低減や使用寿命が短くなるといった影響が生じる。Xp-ReRAMにおける書込み不良には、Xp-ReRAMの特性によりメモリ内においてセルの摩耗が局在化することに起因するものがある。
 しかしながら、特許文献1-4に示されるような技術は、Xp-ReRAMの特性を考慮した上でメモリ内におけるセルの摩耗の局在化を解消し、書込み不良の低減を図るものではなかった。
 そこで、本技術の目的は、Xp-ReRAMの特性に応じてメモリ内におけるセルの摩耗の局在化を解消することで書込み不良を低減し、メモリの使用寿命の最大化を図ることができるコントローラ、半導体記憶装置及び該装置における摩耗平準化処理方法を提供することである。
 上記課題を解決するための本技術は、以下に示す発明特定事項乃至は技術的特徴を含んで構成される。
 ある観点に従う本技術は、書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラであって、前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う。
 なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、1つの手段が有する機能が2つ以上の物理的手段により実現されても、2つ以上の手段の機能が1つの物理的手段により実現されてもよい。
 また、「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことをいい、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
 本技術の他の技術的特徴、目的、及び作用効果乃至は利点は、添付した図面を参照して説明される以下の実施形態により明らかにされる。また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
本技術の一実施形態に係る半導体記憶装置の概略的構造の一例を示す図である。 本技術の一実施形態に係る半導体記憶装置内のダイの概略的構造を示す図である。 本技術の一実施形態に係る半導体記憶装置内のバンクの概略的構造の一例を示す図である。 本技術の一実施形態に係る半導体記憶装置内のメモリセルアレイの概略的構造を示す図である。 本技術の一実施形態に係る半導体記憶装置におけるセクタデータの構造の一例を示す図である。 本技術の一実施形態に係る半導体記憶装置の機能的構成の一例を示すブロックダイアグラムである。 本技術の一実施形態に係る半導体記憶装置におけるマッピング情報のデータ構造の一例を示す図である。 本技術の一実施形態におけるセクタグループ管理情報に基づく論理セクタと物理セクタとの対応付け一例を説明する図である。 本技術の一実施形態におけるセクタグループ管理情報に基づく論理セクタと物理セクタとの対応付け一例を説明する図である。 本技術の一実施形態に係る不揮発性メモリの情報空間を示す図である。 本技術の一実施形態に係る半導体記憶装置におけるデータの書込み処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるデータの書込み処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるアドレスリマッピング処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるアドレスリマッピング処理でのセクション更新処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるデータの読出し処理の一例を示すフローチャートである。 本技術の一実施形態に係る半導体記憶装置におけるアドレスリマッピング処理のシミュレーション結果を示す図である。 本技術の一実施形態に係る半導体記憶装置におけるリフレッシュ処理の検証結果を示す図である。
 以下、図面を参照して本技術の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。本技術は、その趣旨を逸脱しない範囲で種々変形(例えば各実施形態を組み合わせる等)して実施することができる。また、以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付して表している。図面は模式的なものであり、必ずしも実際の寸法や比率等とは一致しない。図面相互間においても互いの寸法の関係や比率が異なる部分が含まれていることがある。
 図1は、本技術の一実施形態(以下、「本実施形態」と略記する)に係る半導体記憶装置1の概略的構造の一例を示す図である。同図に示すように、半導体記憶装置1は、例えば、コントローラ10と、複数の書換え可能な不揮発性メモリ(以下「不揮発性メモリ」という)20と、ワークメモリ30と、ホストインターフェース40とを含み構成され、これらは例えば1つのボード50上に配置され得る。
 コントローラ10は、半導体記憶装置1の動作を統括的に制御するコンポーネントである。本技術におけるコントローラ10は、後述するように、メモリセルMCの摩耗の局在に対処するための処理を行い得るように構成されている。
 不揮発性メモリ20は、図示しないホストから受信したユーザデータや各種の制御データを記憶するためのコンポーネントであり、本例では、10個の不揮発性メモリパッケージ20(1)~20(10)が設けられている。ReRAMは、不揮発性メモリの一例である。制御データは、例えば、メタデータ、アドレス管理データ、及びエラー訂正データ等を含む。1つの不揮発性メモリパッケージ20は、例えば8ギガバイト×8ダイの64ギガバイトのメモリ容量を有する。したがって、10個のうち8個の不揮発性メモリパッケージに有効データを記憶可能な不揮発性メモリ20は、64ギガバイト×8パッケージの512ギガバイトのメモリ容量を実現する。また、図2に示すように、各ダイDは、例えば16個のバンクBと、各バンクBに対応するマイクロコントローラ70(図2中、「μC」と略記)と、周辺回路/インターフェース回路60とを含み構成される。また、図3に示すように、各バンクBは、1ビットのアクセス単位をそれぞれ有するメモリセルアレイ(本例では256個)からなるタイルTと、これらのタイルTを制御するマイクロコントローラ70とを含み構成される。各バンクBは、マイクロコントローラ70の制御の下、タイルT群を協調動作させ、全体で所定バイトサイズ(本例では256バイト)のデータブロックのアクセスを実現する。
 タイルTは、例えば、図4に示すように、2層のメモリセルアレイ構造となっている。本例において2層メモリセルアレイは、上部ワード線UWLとビット線BLとの各交点及び下部ワード線LWLとビット線BLとの各交点に1ビットのメモリセルMCを有する。メモリセルMCは、抵抗値の高低の状態により1ビットの情報を記録する抵抗変化素子VR(Variable Resistor)と、双方向ダイオード特性を有する選択素子SE(Selector Element)の直列構造となっている。なお、以下では、「メモリセル」を単に「セル」と称することもある。
 図1に戻り、ワークメモリ30は、半導体記憶装置1の高速化や摩耗低減等のために設けられ、不揮発性メモリ20に格納された管理データの全部又は一部を一時的に保持するコンポーネントである。ワークメモリ30は、例えば高速アクセス可能なDRAM等の書換え可能な揮発性メモリにより構成される。ワークメモリ30のサイズは、不揮発性メモリ20のサイズに応じて設定され得る。
 ホストインターフェース40は、半導体記憶装置1が、コントローラ10の制御下、図示しないホストとデータ通信をするためのインターフェース回路である。ホストインターフェース40は、例えば、PCI Express規格に従って構成される。
 上述したように、Xp-ReRAMにおいては、セルの摩耗が局在化することで書き込み不良が発生し得る。書込み不良には、以下のようなものがある。
(1)書込み摩耗による書込み不良
 メモリセルMCの抵抗変化素子VRは、物理的特性から、抵抗値をHRS(高抵抗状態)からLRS(低抵抗状態)に変化させるセット、又はLRSからHRSに変化させるリセットを繰り返すこと、つまりデータ(ビットデータ)の書込みないしは書換えにより摩耗する。これを書込み摩耗(Write Endurance Wore-out)という。メモリセルMCに対する書込みないしは書き換えには、書込み摩耗に基づく限度がある。一のメモリセルMCは、データの消去および書込み(セット又はリセット)を1回として計測する書き換え回数(書込み回数)が書き込み耐用回数(Write Endurance)に達すると書込み摩耗が限度となり、最終的に、スタック不良を引き起こす。本実施形態による半導体記憶装置1において、メモリセルMCの書込み耐用回数は、例えば120万(1.2e6)回である。
 スタック不良とは、メモリセルMCにおいて抵抗変化素子VRの抵抗値がHRSからLRSに、又はLRSからHRSに変化しなくなるエラーであって、これにより書き込み不良が生じる。スタック不良には、抵抗変化素子VRがLRSにスタックするスタック-LRS及び抵抗変化素子VRがHRSにスタックするスタック-HRS(以下これらをまとめて「スタック-LRS/HRS」と表記することもある。)がある。スタック-LRS及びスタック-HRSの何れにスタックするかは、メモリセルMCの特性や書込まれるデータのパターンに依存し、また、不定であり得る。
(2)読出し摩耗による書込み不良
 メモリセルMCの選択素子SEは、書込みのみならず読出しを繰り返すことによっても摩耗する。これを読出し摩耗(Read Endurance Wore-out)という。読出し摩耗はLRSのメモリセルMCからの読出しの繰り返しによって生じる。具体的には、読出しの対象となるメモリセルMCがLRSである場合、選択状態(オン状態)の選択素子SEの両端(ワード線とビット線BL)の電圧が低下して当該両端の間に急激に電流が流れる現象(スナップ)が生じる。このスナップが繰り返されることで読出し摩耗が生じる。メモリセルMCに対するデータの読出しには、読出し摩耗に基づく限度があり、LRSでの読出し回数が読出し耐用回数(Read Endurance)に達すると、スナップによる読出し摩耗が限度となり、最終的にディスターブ不良を引き起こす。本例において、メモリセルMCの読出し耐用回数は、例えば600万(6.0e6)回である。
 読出し摩耗によってディスターブ不良が発生すると、選択素子SEのしきい値電圧が通常より低くなり、メモリセルMCには低電圧の電流が流れる。これにより、ディスターブ不良が発生したメモリセルMCと同一ワード線(上部ワード線UWL、下部ワード線LWL)及びビット線BL上の他のメモリセルMCも書込み不良となる。
 ディスターブ不良は、Xp-ReRAM特有の不良であり、スタック不良と異なり、ワード線及びビット線BLを共有する多数の正常なメモリセルMCにも書込み不良を引き起こす。このため、読出し摩耗を防止することにより、不揮発性メモリ20の動作信頼性や使用寿命の大幅な向上が期待できる。
(3)連続読出しによる書込み不良
 また、LRSにあるメモリセルMCからの読出し回数が上述の読出し耐用回数に達していなくても、連続読出し(Read-induced Over-SET)によって書込み不良が発生し得る。連続読出しは、LRSにあるメモリセルMCを、HRSに変化させることなく連続して読出す回数(連続読出し回数)が連続読出し基準回数(Over-Set Criteria)に達することにより、スタック-LRSを引き起こす現象である。本例では、連続読出し基準回数は例えば1万(1.04e)回程度である。連続読出しによる書込み不良は、選択素子SEの特性および抵抗変化素子VRの特性の両方に起因しており、Xp-ReRAM特有の不良である。
 このように、本技術における3種類の書込み不良は、特定のメモリセルMCに対するアクセス(書き込み、書き換えまたは読出し等)が繰り返されること、つまりアクセスが集中することによって、不揮発性メモリ20内においてメモリセルMCの摩耗(抵抗変化素子VR、選択素子SEの摩耗)が局在的することに起因する。そこで、本技術によるコントローラ10は、不揮発性メモリ20において発生する書込み不良に対処する処理として、不揮発性メモリ20に対するアクセス時において所定の確率で、各メモリセルMCの摩耗を平準化する摩耗平準化処理を行い得るように構成されている。摩耗平準化処理は不揮発性メモリ20内全体でメモリセルMCへのアクセスを分散させ得る処理である。
 摩耗平準化処理の一例としては、例えばアドレスリマッピング処理、データ反転処理、リフレッシュ処理がある。アドレスリマッピング処理は、アドレスリマッピング(Address Remapping)技術により不揮発性メモリ20内の各メモリセルMCの書込み(書き換え含む)回数を平均化するための処理である。また、データ反転処理は、メモリセルMCに書込むデータ(書込みデータ)を反転させて、不揮発性メモリ20内における各メモリセルMCのセット処理回数とリセット処理回数とを平均化する処理である。また、リフレッシュ処理は、不揮発性メモリ20内においてアクセス対象のメモリセルMCのうちLRSにある全てのメモリセルMCを一旦HRSに変化させて、LRSでの連続読み出しを防止する処理である。これらの摩耗平準化処理の詳細は後述する。
 本技術における半導体記憶装置1では、これらの摩耗平準化処理によって、不揮発性メモリ20内全体でメモリセルMCの摩耗が平準化されてメモリセルMCの摩耗の局在が解消され、書込み不良が防止可能となる。また、不揮発性メモリ20は、摩耗平準化処理によって書込み不良が防止されることで、使用寿命が最大化される。
 本技術に係る半導体記憶装置1では、メモリアクセスは、例えば、セクション、セクタ及びページというデータブロックの単位で管理される。すなわち、セクションは、不揮発性メモリ20のメモリ容量(512ギガバイト)を8キロバイト単位に区切って管理するデータブロックである。セクションは、例えば320バイト(実データは256バイト)のデータブロックであるセクタを32個格納する。セクタは320バイトのセクタデータを格納するデータブロックであり、図示しないホストとの基本アクセス単位である。セクタデータは、半導体記憶装置1上で、例えば32バイトのデータブロックであるページに10分割され、それぞれ異なる10チャネルを通じて不揮発性メモリ20に書き込まれて記憶される。ページは、不揮発性メモリ20の1つのダイDにおける1つのバンクへのアクセス単位であり、各ページ中の各ビットには、各バンクB中のタイルTの各ビット(メモリセルMC)が対応する。
 本技術に係る半導体記憶装置1においてセクタは、不揮発性メモリ20内の複数のメモリセルMCに基づくデータ記憶領域に相当する物理セクタと、コントローラ10におけるアクセス制御のために物理セクタにマッピング(対応付け)された仮想的なデータ記憶領域に相当する論理セクタとに分けて管理される。また、32個の物理セクタを格納するセクションを物理セクションとし、物理セクタにマッピングされた32個の論理セクタを格納するセクションを論理セクションとする。また、詳しくは後述するが、半導体記憶装置1では、物理セクション及び物理セクタを特定する物理アドレス(後述する物理セクションアドレス、物理セクタアドレス)と、論理セクション及び論理セクタを特定する論理アドレス(後述する論理セクションアドレス、論理セクタアドレス)とがセクション単位でマッピングされている。つまり、半導体記憶装置1においてセクションは、論理アドレスと物理アドレスとのマッピングに用いられるアクセス単位である。これにより、半導体記憶装置1におけるメモリアクセスにおいて、コントローラ10はデータ記憶領域である物理セクタにアクセス可能となる。
 図5は、本技術の一実施形態に係る半導体記憶装置1におけるセクタデータの構造の一例を示す図である。すなわち、同図に示すように、セクタデータは、例えば、256バイトの実データと、8バイトのメタデータと、4バイトの論理セクションアドレス・反転フラグ(以下「LA/IV」という)と、45バイトのECCパリティ(以下「パリティ」という)と、7バイトのパッチとから構成される320バイトのデータである。メタデータは、実データを管理するための二次的なデータであり、例えばアドレス情報、CRCチェックサム、バージョン番号及びタイムスタンプ等を含む。実データ及びメタデータは、図示しないホストから受信されるユーザデータに相当する。パリティは、例えば、実データ、メタデータ及びLA/IVをペイロードとして生成されるパリティデータである。パッチは、セクタ内に発生したスタック不良及びディスターブ不良のメモリセルMCに本来記録されるべき正しい値を格納する。なお、セクタデータは、図示しないホストと半導体記憶装置1との間のアクセス単位でもある。320バイトのセクタデータは、半導体記憶装置1上で、例えば10チャネルに分割されて記憶される。LA/IV、パリティ及びパッチは、ユーザデータに対してコントローラ10によって付加されるデータである。
 ここで、通常、半導体記憶装置に対しては相対的に小さいアクセス単位でのパフォーマンス向上やビットコストの低減といったことがユーザから望まれている。一方でエラー訂正の観点では、相対的に大きなアクセス単位でパリティを生成することによってエラー訂正能力の向上が見込まれる。これらの状況に鑑み、本例の半導体記憶装置1は、実データサイズを256バイトとしている。なお、セクタデータにおける実データのサイズは、求められる条件(パフォーマンスやエラー訂正の精度等)に応じて適宜設計され得る。
 図6は、本技術の一実施形態に係る半導体記憶装置1の機能的構成の一例を示すブロックダイアグラムである。同図は、図1に示した半導体記憶装置1の構成を機能的に示したものである。
 同図において、コントローラ10は、不揮発性メモリ20を有する半導体記憶装置1の動作を統括的に制御する。例えば、コントローラ10は、ホストインターフェース部40を介して、図示しないホストからアクセスコマンドを受信すると、当該アクセスコマンドに応じて、後述のアクセス制御部110によって不揮発性メモリ20に対してアクセスし、その結果をホストに発行ないしは送信するように制御を行う。
 本例では、コントローラ10は、不揮発性メモリ20に対するアクセスによって生じるメモリセルMCの摩耗の局在化を解消し、書き込み不良の発生を低減するための様々な処理(摩耗平準化処理)を行う。コントローラ10は、同図に示すように、アクセス制御部110と、摩耗平準化処理部130と、ECC処理部120と、を含み構成され得る。
 アクセス制御部110は、不揮発性メモリ20における物理セクタを特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、物理セクタに対するアクセスを制御する。ここで、物理セクタは、不揮発性メモリ20における複数のメモリセルMCの幾つか(本例では、320バイト分(320個)のメモリセルMC)に基づくデータ記憶領域の一形態である。
 アクセス制御部110は、コントローラ10がホストから受信したアクセスコマンドに基づいて、不揮発性メモリ20へのアクセスを制御する。アクセスコマンドは、上述のセクタデータ(図5参照)のうち、ユーザデータ(実データ及びメタデータ)とともにコントローラ10に受信される。アクセスコマンドには、少なくとも不揮発性メモリ20のセクタ(物理セクタ)へのデータ書込みを要求する書込みアクセスコマンドと、物理セクタからのデータ読出しを要求する読出しアクセスコマンドがある。アクセス制御部110は、書込みアクセスコマンドを受信すると、物理セクタに対してデータを書込む書込みアクセスを行う。また、アクセス制御部110は、読出しアクセスコマンドを受信すると、物理セクタからデータを読出す読出しアクセスを行う。
 アクセス制御部110は、不揮発性メモリ20のセクタ(物理セクタ)へのアクセスにあたり、図示しないホストから受信された論理アドレスを不揮発性メモリ20上の物理アドレスに変換するアドレス変換処理を行う。具体的には、論理アドレスは、図示しないホストからアクセスコマンドとともに送信されたユーザデータ(実データ及びメタデータ(図5参照))のうちメタデータにアドレス情報として格納されている。アクセス制御部110は、受信した論理アドレスに基づき、後述するワークメモリ30上の作業用アドレス変換テーブル310が保有するマッピング情報を参照し、アドレス変換処理を行う。アドレス変換処理では、ホストから受信した論理アドレスに対応する半導体記憶装置1の論理アドレス(本例では論理セクションアドレス)を、不揮発性メモリ20上の物理アドレスに変換する。なお、コントローラ10は、アクセス制御部110とは独立した機能構成として、アドレス変換処理を実行するアドレス変換部を有していてもよい。
 図7は、アドレス変換処理に用いられるマッピング情報を構成するアドレスのデータ構造の一例を示す図である。マッピング情報は、物理セクションアドレスと、物理セクションアドレスにマッピング(対応付け)された論理セクションアドレスと、論理セクションアドレスに付随するセクタ管理情報とで構成され、作業用アドレス変換テーブル310に格納される。本実施形態においてマッピング情報は、セクション単位で作業用アドレス変換テーブル310に保持されている。つまり、マッピング情報は、作業用アドレス変換テーブル310において、32個の物理セクタを格納する物理セクションごとに保持されている。詳しくは後述するが、本実施形態において、マッピング情報における物理セクションアドレスと論理セクションアドレスとの対応付けは可変となっている。
 物理セクションアドレスは、不揮発性メモリ20上のデータ記憶領域である物理セクタを格納する物理セクションを特定するためのアドレスであり、例えば、2ビットのダイID、13ビットのワード線アドレス、11ビットのビット線アドレスの合計26ビットからなる。ダイIDは不揮発性メモリ20(1)~(10)のそれぞれにおけるダイDを識別する情報であり、ワード線アドレスは、ダイDにおける各バンクB内の各タイルTにおける各上部ワード線UWL、各下部ワード線LWLを特定するアドレスであり、ビット線アドレスは、各タイルTにおける各ビット線BLを特定するアドレスである。本実施形態による半導体記憶装置1において、各タイルTは、8192(2^13)本のワード線(上部ワード線UWL及び下部ワード線LWLがそれぞれ4096本ずつ)と、2048(2^11)本のビット線BLとを有する。物理セクションアドレスでは、各不揮発性メモリ20内のダイDと、当該ダイDが有するバンクB内のメモリセルMCとが特定される。
 半導体記憶装置1において、物理セクションには、アクセス制御部110におけるアクセス制御に用いるデータブロックである論理セクションがマッピングされている(後述の図8A及び図8B参照)。論理セクションアドレスは、物理セクションアドレスと同様に26ビットのビット列であり、物理セクションにマッピングされた論理セクションを特定するためのアドレスである。論理セクションアドレスは、コントローラ10によって任意の物理セクションアドレスにマッピングされる。
 セクタ管理情報は、2ビットのセクタグループ管理情報と12ビットのグループ内管理情報の合計14ビットからなり、論理セクション内の32個のセクタ(論理セクタ)と物理セクション内の32個のセクタ(物理セクタ)とのマッピングを管理する情報である。本技術では、メモリセルMCの摩耗の平準化とマッピング情報の肥大化防止との両立に鑑み、アドレス変換テーブル(後述のアドレス変換テーブル210及び作業用アドレス変換テーブル310)において、論理セクション内の32個の論理セクタを8個単位の4つのセクタグループに区切り、このセクタグループ単位で、論理セクタと物理セクタとのマッピングを管理している。なお、本例においてセクタグループは、マッピング情報における論理セクタの管理に用いるグループであり、半導体記憶装置1におけるデータブロックではない。2ビットのセクタグループ管理情報は、セクタグループ単位(8個単位)で論理セクタと物理セクタとのマッピングを管理する情報である。さらに、アドレス変換テーブル(アドレス変換テーブル210、作業用アドレス変換テーブル310)では、各セクタグループ内の8個の論理セクタそれぞれと、各セクタグループにマッピングされた8個の物理セクタそれぞれとの一対一のマッピングを、3ビットのグループ内管理情報によって管理する。後述する図8に示すように、12ビットのグループ内管理情報には、4セクタグループ(本例ではグループ00~03)分の各3ビットのグループ内管理情報が含まれる。
 31ビットの論理アドレス情報(論理セクションアドレス及び1セクタグループ分のセクタ管理情報)は、ホストから受信された論理アドレスによって特定可能である。したがって、アクセス制御部110は、アクセスコマンドを受信すると、アドレス変換処理においてアドレス変換テーブル(例えば作業用アドレス変換テーブル310)を参照し、受信した論理アドレスに基づいて、マッピング情報から論理セクションアドレス(アクセス先論理セクションアドレス)を取得する。アクセス制御部110は取得したアクセス先論理セクションアドレスから、論理セクション内の論理セクタを一意に特定するための論理セクタアドレスを生成する。論理セクタアドレスは、受信した論理アドレスに対応する26ビットの論理セクションアドレスと、5ビットのセクション内セクタアドレスからなる。ここで、セクション内セクタアドレスは、セクタ管理情報における2ビットのセクタ管理情報と、4セクタグループのうち一のセクタグループに対応する3ビットのグループ内管理情報から生成される。アクセス制御部110は、受信した論理アドレスに基づいて、取得したアクセス先論理セクションアドレスに対応する4セクタグループから一のセクタグループを特定する。
 アクセス制御部110は、論理セクタアドレスを生成すると、生成した論理セクタアドレスを、物理セクタアドレスに変換する。物理セクタアドレスは、物理セクタを特定するアドレスであって、物理セクション内に格納された32個の物理セクタを区別するために用いられる。
 物理セクタアドレスは、取得した論理セクションアドレスに対応する26ビットの物理セクションアドレスと、1ビットのチャネルグループID、及び4ビットのバンクアドレスの合計31ビットからなる。チャネルグループID及びバンクアドレスは、論理セクタアドレスにおける5ビットのセクション内セクタアドレスを変換して生成される。チャネルIDは、コントローラ10と不揮発性メモリ20(1)~(10)のそれぞれとを接続するチャネルを特定する情報である。本実施形態において、コントローラ10と10パッケージの不揮発性メモリ20とは、10チャネル×2系統の計20チャネルで接続される。具体的には、各不揮発性メモリ20は系統の異なる2チャネルでコントローラ10と接続されており、各不揮発性メモリ20内の8つのダイDは、4ダイずつ異なる系統のチャネルに接続されている。また、バンクアドレスは、各ダイDが有する16個のバンクBのそれぞれを特定するアドレスであって、各ダイD内のバンクBには異なるアドレスが割り当てられている。
 このように本技術による半導体記憶装置1は、ホストから受信した論理アドレスを、アドレス変換テーブル(アドレス変換テーブル210、作業用アドレス変換テーブル310)に保持されたマッピング情報に基づいて、物理アドレス(本例では物理セクタアドレス)に変換することができる。
 アクセス制御部110は、アドレス変換処理において取得した物理セクタアドレスを含むアクセス対象の物理セクタに対応するマッピング情報を、摩耗平準化処理部130に出力する。これにより、摩耗平準化処理部130は、アクセス対象の物理セクタに属するメモリセルMCについて、摩耗の局在化を解消するための摩耗平準化処理を行うことができる。
 摩耗平準化処理部130は、アクセス(書込みアクセス又は読出しアクセス)によって生じる不揮発性メモリ20内のメモリセルMCの摩耗を平準化する摩耗平準化処理を行う。本実施形態によるコントローラ10において、摩耗平準化処理部130が、アクセス対象の物理セクタに属するメモリセルMCについて摩耗平準化処理を行うことで、不揮発性メモリ20全体においてメモリセルMCの摩耗の局在化が解消される。これにより、コントローラ10は、不揮発性メモリ20内のメモリセルMCの摩耗を平準化して、書込み不良の発生を低減することができる。
また、本実施形態による摩耗平準化処理部130は、アクセス制御部110による物理セクタへのアクセスごとに所定の確率で、摩耗平準化処理を行う。つまり、摩耗平準化処理部130は、物理セクタに属するメモリセルMCへのデータの書込み回数や、メモリセルMCにおけるデータの消去回数、メモリセルMCからのデータの読出し回数等の計測(カウント)を行うことなく、確率論的に摩耗平準化処理を実行する。
 通常、不揮発性メモリを有する半導体記憶装置は、突然の電源遮断時にもデータ信頼性を維持することが望まれる。従って、上述のような各種回数に基づくカウンタベースでのアルゴリズムでは、カウンタ情報を逐次不揮発性メモリに保存する必要が生じる。しかしながら、頻繁にカウンタ情報を不揮発性メモリへ記録すると、ホストとの間のアクセス速度を低下させる場合があり、アクセス速度の低下は、半導体記憶装置におけるアクセス頻度(iops:秒間入出力回数)が高いほど、半導体記憶装置の動作性能への影響が大きくなる。ここで、Xp-ReRAMでは、10メガiopsを超えるアクセス頻度が標榜される。したがって、従来のフラッシュメモリベースの半導体記憶装置(アクセス頻度が100キロiops以下程度)では顕在化しないカウンタ情報の記録コストが顕著になる。そこで、本技術によるコントローラ10は、カウンタベースではなく、上述のように確率論的に摩耗平準化処理を実行する。これにより、コントローラ10は、半導体記憶装置1におけるアクセス速度を低下させることなく要求される動作性能を維持しながら、摩耗平準化処理を行うことができる。
 摩耗平準化処理部130は、例えば摩耗平準化処理としてアドレスリマッピング処理を行うアドレスリマッピング部132と、データ反転処理を行うデータ反転部134と、リフレッシュ処理を行うリフレッシュ部136と、所定数値範囲の乱数を生成する乱数生成部138と、を含み構成され得る。アドレスリマッピング部132はテーブル更新部の一形態であり、データ反転部134はデータ反転処理部の一形態であり、リフレッシュ部136は抵抗状態変更部の一形態である。
 アドレスリマッピング部132は、アドレスリマッピング(Address Remapping)技術により不揮発性メモリ20内の各メモリセルMCの書き換え回数(書込み回数)を平均化するためのアドレスリマッピング処理を行う。このアドレスリマッピング処理がテーブル更新処理の一例である。具体的には、アドレスリマッピング部132は、アドレスリマッピング処理として、アクセス制御部110による物理セクタへのアクセスごとに所定のアドレスリマッピング確率で、作業用アドレス変換テーブル310内のマッピング情報を更新する。この所定のアドレスリマッピング確率が第1の確率の一例である。つまり、本実施形態におけるアドレスリマッピング処理は、不揮発性メモリ20へのアクセスごとに確率論的に実行される。
 本実施形態においてアドレスリマッピング部132は、アドレスリマッピング処理として、作業用アドレス変換テーブル310におけるマッピング情報をセクション単位で更新するセクション更新処理と、当該マッピング情報を上述のセクタグループ単位で更新するセクタグループ更新処理とを行い得る。
 アドレスリマッピング部132は、セクション更新処理において、アクセス制御部110による物理セクタへのアクセス(書込みアクセス及び読出しアクセス)ごとに、所定のアドレスリマッピング確率でマッピング情報を更新し、アクセス先論理セクションアドレスにマッピングされる物理セクションアドレスを更新する。これにより、アクセス対象の物理セクタと論理セクタとのマッピングが、セクションごとに更新される。すなわち、アドレスリマッピング部132は、アドレスリマッピング処理によるマッピング情報の更新を、アクセス対象の物理セクタが格納されるセクション(物理セクション)ごとに行うことができる。
 また、アドレスリマッピング部132は、セクタグループ更新処理において、アクセス制御部110による物理セクタへのアクセス(書込みアクセス及び読出しアクセス)ごとに、所定のアドレスリマッピング確率でマッピング情報を更新し、アクセス先論理セクションアドレスに付随するセクタ管理情報(図7参照)を更新する。セクタグループ更新処理には、アクセス対象の物理セクタのマッピング情報においてセクタグループ管理情報を更新する第1グループ更新処理と、アクセス対象の物理セクタのマッピング情報においてグループ内管理情報を更新する第2グループ更新処理とが含まれる。
 ここで、図8A及び図8Bを用いてセクタ管理情報におけるセクタグループ管理情報及びグループ内管理情報について、セクション内における物理セクタと論理セクタとのマッピングと合わせて説明する。
 図8A中の1段目には、8キロバイト相当のデータブロックである物理セクションPS内に格納された32個の物理セクタの並び順を図示している。本例において、物理セクションPS内に格納された物理セクタは、物理セクタアドレスPST0~31で特定される。物理セクションPS内において、32個の物理セクタは、例えば物理セクタアドレスの昇順に格納されている。図8A中の1段目では、物理セクタアドレスPST0の物理セクタを先頭として、物理セクタアドレスPST31の物理セクタまでの32個のセクタがこの順に並んでいる。本実施形態において、物理セクション内における物理セクタの割り付けは固定であり、物理セクション内での物理セクタの並び順も固定である。したがって、例えば物理セクションPS内の32個の物理セクタは全て、同じ論理セクション(本例では、論理セクションLS)に対応付けられる。
 また、図8A中の2~4段目には、物理セクションPSとマッピングされた論理セクションLS内の32個の論理セクタの並び順を図示している。本例において、論理セクションLS内に格納された論理セクタは、論理セクタアドレスLST0~31で特定される。上述のように、セクタ管理情報は、論理セクタを8個単位の4つのセクタグループに区切り、このセクタグループ単位で、論理セクタと物理セクタとのマッピングを管理している。図8A中2~4段目では、理解を容易にするため、論理セクションLS内の32個の論理セクタを8個×4セクタグループ(セクタグループ00~03)に分けて図示している。
 本例において、セクタグループ00は、論理セクションLS内の論理セクタアドレスの上位8番目まで(論理セクタアドレスLST0~7)に対応する論理セクタを含み、セクタグループ01は、論理セクタアドレスの上位9番目から16番目まで(論理セクタアドレスLST8~15)に対応する論理セクタを含み、セクタグループ02は、論理セクタアドレスの上位17番目から24番目まで(論理セクタアドレスLST16~23)に対応する論理セクタを含み、セクタグループ03は、論理セクタアドレスの上位25番目から32番目まで(論理セクタアドレスLST24~31)に対応する論理セクタを含んでいる。また、セクタグループ内の論理セクタの割り付けは固定である。
 また本実施形態において、論理セクション内の論理セクタの割り付けは、物理セクタと同様に固定であり、さらに各セクタグループ内の論理セクタの割り付けも固定である。一方で、論理セクション内における論理セクタの並び順は、セクタグループごと又はセクタグループ内の個々の論理セクタについて可変となっている。本実施形態においてマッピング情報におけるセクタ管理情報は、物理セクタの並び順(固定)に対する論理セクタのセクタグループ単位での並び順(可変)のシフト数(並び順)を示しており、これにより物理セクタと論理セクタとのセクタグループ単位でのマッピングが可能となっている。
 本例において、図8A中の2段目の左側に記載したセクタ管理情報1において、セクタグループ管理情報=「0」、グループ内管理情報=「0,0,0,0」である。セクタグループ管理情報及びグループ内管理情報は実際にはビットデータであるが、理解を容易にするため、図8A及び図8B中では10進数の数値に置き換えて図示している。セクタグループ管理情報及びグループ内管理情報における各データ(数値)は、論理セクタの並び順に係るシフト数を示している。例えば、シフト数が「0」であることは、物理セクタの並び順に対して、論理セクタの並び順がシフトされていないことを示す。具体的には、セクタグループ管理情報=「0」は、物理セクタの並び順に対して、セクタグループ00~03のセクタグループ単位の並び順がシフトされていないことを示している。
 また、グループ内管理情報=「0,0,0,0」は、セクタグループ00~03内のいずれの論理セクタも、物理セクタの並び順に対して配置がシフトされていないことを示している。図8A及び図8B中では、理解を容易にするため、セクタグループ00~03に対応するグループ内管理情報をカンマ区切りで示している。グループ内管理情報の4つデータは、この順に、セクタグループ00~03それぞれのシフト数を示している。グループ内管理情報は、実際はセクタグループ00~03に対応する3ビットのデータが連続する12ビットのビット列である。12ビットのグループ内管理情報は、冒頭から3ビットがセクタグループ00に対応し、以下3ビットずつセクタグループ01~03に対応している。グループ内管理情報はセクタグループごとに3ビットで、セクタグループ内の8個の論理セクタのシフト数を示している。
 このように、セクタグループ管理情報=「0」かつグループ内管理情報=「0,0,0,0」のセクタ管理情報1は、物理セクションPS内の物理セクタの並び順と、論理セクションLS内の論理セクタの並び順が一致していることを示している。この並び順が一致している状態を、シフト基準状態という。
 図8A中の3段目において、セクタ管理情報2は、セクタグループ管理情報=「1」かつグループ内管理情報=「0,0,0,0」となっている。セクタグループ管理情報=「1」は、論理セクタの並び順、具体的にはシフト基準状態に対するセクタグループ00~03の並び順が、一方向(本例では論理セクタアドレスの先頭方向)に1つシフトされている1シフト状態であることを示している。本例においてセクタグループ管理情報の1シフト状態では、論理セクションLS内におけるセクタグループの並び順が、セクタグループ01、02、03、00の順に循環的にシフトしている。このように、セクタグループ管理情報は、シフト基準状態に対する4セクタグループのシフト数を示している。なお、セクタ管理情報2において、グループ内管理情報=「0,0,0,0」であるため、各セクタグループ内における各論理セクタの並び順はシフト基準状態から変更されていない。これは、セクタ管理情報3でも同様である。
 シフト基準状態に対して、セクタグループ内の論理セクタの並び順が1シフト状態となることは、すなわち、物理セクタの固定された並び順に対して、論理セクタの並び順がグループ単位で1シフト状態であることを示す。したがって、セクタグループの並び順が1シフト状態の場合、例えばセクタグループ01内の論理セクタを特定する論理セクタアドレスLST8~15は物理セクタアドレスPST0~7に、この順でマッピングされ、セクタグループ02内の論理セクタを特定する論理セクタアドレスLST16~23は、物理セクタアドレスPST8~15に、この順でマッピングされ、セクタグループ03内の論理セクタを特定する論理セクタアドレスLST24~32は物理セクタアドレスPST16~23に、この順でマッピングされ、セクタグループ00内の論理セクタを特定する論理セクタアドレスLST0~7は物理セクタアドレスPST24~31に、この順でマッピングされる。
 また、図示は省略するが、セクタグループ管理情報=「2」は、シフト基準状態に対するセクタグループ00~03の並び順が、論理セクタアドレスの先頭方向に2つシフトされている2シフト状態であることを示す。本例においてセクタグループの2シフト状態では、論理セクションLS内におけるセクタグループの並び順が、セクタグループ02、03、00、01の順に循環的にシフトしている。
 また、図8A中の4段目において、セクタ管理情報3は、セクタグループ管理情報=「3」かつグループ内管理情報=「0,0,0,0」となっている。セクタグループ管理情報=「3」は、シフト基準状態に対するセクタグループ00~03の並び順が、論理セクタアドレスの先頭方向に3つシフトされている1シフト状態であることを示している。本例においてセクタグループの3シフト状態では、論理セクションLS内におけるセクタグループの並び順が、セクタグループ03、00、01、02の順に循環的にシフトしている。
 このように、本実施形態において、セクタグループ管理情報は、セクタグループごとの論理セクション内の論理セクタの並び順(シフト数)を示している。上述のように、セクタグループ管理情報では、物理セクタと論理セクタとのセクタグループ単位でのマッピングを、物理セクタの並び順に対する論理セクタのセクタグループ単位での並び順のシフト数を示すセクタグループ管理情報(2ビット)によって特定することができる。
 つまり、アドレスリマッピング部132は、第1グループ更新処理によりセクタグループ管理情報を更新することで、マッピング情報の更新を物理セクション内の幾つかの物理セクタごとに行うことができる。ここで、物理セクション内の幾つかの物理セクタとは、セクタグループ内の論理セクタと対応する8個の物理セクタに相当する。すなわち、第1グループ更新処理では、論理セクション内における論理セクタの並び順、つまり物理セクタと論理セクタとのマッピングが、セクタグループ単位(8セクタ単位)で更新される。また、セクタグループ管理情報における並び順のシフト数は、常にシフト基準状態を基準としている。したがって、例えばセクタグループ管理情報が「0」から「3」に更新された場合と、セクタグループ管理情報が「1」から「3」更新された場合とでは、同様に、論理セクタの並び順は3シフト状態(図8A中の4段目参照)となる。
 図8B中の1段目は、図8Aと同様に、物理セクションPS内に格納された32個の物理セクタの並び順を図示している。図8B中の2段目の左側に記載したセクタ管理情報4において、セクタグループ管理情報=「0」、グループ内管理情報=「2,0,0,0」である。グループ内管理情報=「2,0,0,0」は、セクタグループ内の論理セクタの並び順が、セクタグループ00内のみ2シフト状態であり、他のセクタグループ01~03内ではシフト基準状態のままである(シフトしていない)ことを示している。このため、セクタグループ00内における論理セクタの並び順は、シフト基準状態(図8A中2段目参照)に対して、論理セクタアドレスの先頭方向に2つシフトされた2シフト状態となっている。具体的には、2シフト状態では、セクタグループ00内における論理セクタの並び順が、論理セクタアドレスLST2~7,0,1の順に循環的にシフトしている。
 なお、セクタ管理情報4においてセクタグループ管理情報は、「0」である。つまり、セクタグループ単位での物理セクタと論理セクタとのマッピングがシフト基準状態のままである。このため、本例において、セクタ管理情報4では、論理セクタと物理セクタとのマッピングは、セクタグループ00にマッピングされた物理セクタアドレスPST0~7の8個の物理セクタそれぞれについてのみ更新される。具体的には、セクタ管理情報4によれば、セクタグループ00内の論理セクタを特定する論理セクタアドレスLST2~7,0,1は、この順に、それぞれ図8B中1段目に示す物理セクタアドレスPST0~7で特定される物理セクタにマッピングされる。
 また、図8B中の3段目の左側に記載したセクタ管理情報5において、セクタグループ管理情報=「0」、グループ内管理情報=「5,0,5,0」である。これは、セクタグループ00,02内では論理セクタの並び順が5シフト状態であり、他のセクタグループ01,03内では論理セクタの並び順がシフト基準状態のままである(シフトしていない)ことを示している。このため、セクタグループ00内における論理セクタの並び順は、シフト基準状態(図8A中2段目参照)に対して、論理セクタアドレスの先頭方向に5つシフトされた5シフト状態となっている。具体的には、セクタグループ00内における論理セクタの並び順が、論理セクタアドレスLST5~7,0~4の順に循環的にシフトしている。また、同様に、セクタグループ02内における論理セクタの並び順は5シフト状態となっている。このため、具体的には、セクタグループ02内における論理セクタの並び順が、論理セクタアドレスLST21~23,16~20の順に循環的にシフトしている。
 なお、管理情報5では、管理情報4と同様に、セクタグループ管理情報は、「0」である。つまり、セクタグループ00~03の並び順はシフト基準状態のままである。このため、セクタグループ00内の論理セクタとセクタグループ00にマッピングされた物理セクタアドレスPST0~7の8個の物理セクタそれぞれ、及びセクタグループ02内の論理セクタとセクタグループ02にマッピングされた物理セクタアドレスPST16~23の8個の物理セクタそれぞれについて、マッピングが更新される。具体的には、セクタグループ00内の論理セクタアドレスLST5~7,0~4で特定される8個の論理セクタは、この順に、図8B中1段目に示す物理セクタアドレス00~07で特定される物理セクタにそれぞれマッピングされる。また、セクタグループ02内の論理セクタアドレスLST21~23,16~20で特定される8個の論理セクタは、この順に、図8B中1段目に示す物理セクタアドレスPST16~23で特定される物理セクタにそれぞれマッピングされる。
 このように、本実施形態において、グループ内管理情報は、セクタグループ内の論理セクタの循環状態(シフト数)を示している。上述のように、グループ内管理情報は、各セクタグループ内の8個の論理セクタそれぞれと、各セクタグループにマッピングされた8個の物理セクタそれぞれとの一対一のマッピングを、3ビットずつのグループ内管理情報によって管理する。
 なお、本技術においてセクタグループの数は、4個に限られず、各セクタグループに同数の論理セクタが含まれていれば4個以下であっても、4個以上であってもよい。セクタグループ単位でのシフト数を示すセクタグループ管理情報は、セクタグループの個数(n個)-1を最大値とする第1数値範囲に設定されていればよい。ただし、セクタグループ管理情報の数値範囲が増えると、セクタグループ管理情報のビット数を増やす必要がある。したがって、マッピング情報の肥大化抑制の観点では、セクタグループ数は4個以下であるとよい。また、セクタグループの数に応じて、セクタグループ内の論理セクタ数も変化する。セクタグループ内での論理セクタのシフト数を示すグループ内管理情報は、セクタグループ内の論理セクタ個数(m個)-1を最大値とする第2数値範囲に設定されればよい。
 アドレスリマッピング部132は、第2グループ更新処理によりグループ内管理情報を更新することで、マッピング情報の更新を物理セクション内の幾つかの物理セクタ(セクタグループにマッピングされた8個の物理セクタ)それぞれについて行うことができる。すなわち、第2グループ更新処理では、セクタグループ内における論理セクタそれぞれの並び順が更新される。また、グループ内管理情報における並び順のシフト数は、常にシフト基準状態を基準としている。したがって、一のグループ内管理情報(例えばセクタグループ00のグループ内管理情報)が「0」から「2」に更新された場合と、当該グループ内管理情報が「1」から「2」に更新された場合とでは、同様に、セクタ内の論理セクタの並び順は2シフト状態(図8B中の2段目参照)となる。
 本実施形態では、アドレスリマッピング部132がセクタグループ管理情報とグループ内管理情報との組合せ(セクタ管理情報)を更新することによって、セクタグループ単位での論理セクタの並び順と、セクタグループ内での論理セクタの並び順とをそれぞれ個別に制御することができる。
 セクタグループ更新処理(第1更グループ新処理及び第2グループ更新処理)によって、セクタ管理情報(図7参照)におけるセクタグループ管理情報及びグループ内管理情報が更新されると、セクタグループ管理情報とグループ内管理情報とで生成されるセクション内セクタアドレスが更新される。つまり、アクセス先論理セクションアドレスに基づく論理セクタアドレスから変換される物理セクタアドレスが更新される。
 本実施形態においてアドレスリマッピング部132は、セクション更新処理と同時に、セクタグループ更新処理(第1グループ更新処理および第2グループ更新処理)を行い得る。つまり、アドレスリマッピング部132は、セクション単位でのマッピング情報の更新時には、セクタグループ単位、及びセクタグループ内のそれぞれの論理セクタについてのマッピング情報の更新も合わせて行い得る。したがって、本実施形態によるコントローラ10においてアドレスリマッピング部132は、マッピング情報におけるマッピングの階層(セクション、セクション内のセクタグループ、セクタグループ内のセクタ)が異なる、複数種類のアドレスリマッピング処理を合わせて実行可能に構成される。またマッピングの階層の違いは、マッピング情報の更新規模の違いにも相当する。マッピング情報の更新規模は、セクション→セクタグループ→セクタグループ内の各セクタ、の順に小さくなっている。
 アドレスリマッピング部132は、セクタグループ更新処理における第2グループ更新処理のみを単独で実行し、アクセス対象の物理セクタのマッピング情報においてグループ内管理情報を単独で更新する場合もある。
 本実施形態において、セクション更新処理とセクタグループ更新処理(第1グループ更新処理及び第2グループ更新処理)のいずれも、不揮発性メモリ20へのアクセス(書込みアクセス及び読出しアクセス)ごとに確率論的に実行される。
 本実施形態に係るコントローラ10において、アドレスリマッピング確率のうち、第2グループ更新処理を実行する確率である第2アドレスリマッピング確率は、書込みアクセスごとに0.025%であればよく、読出しアクセスごとに0.01%であればよい。これに対し、アドレスリマッピング確率のうち、セクション更新処理を実行する確率である第1アドレスリマッピング確率は、アクセス(書込みアクセス及び読出しアクセス)ごとに第2アドレスリマッピング確率の8分の一の確率であればよい。具体的には、第1アドレスリマッピング確率は、書込みアクセスごとに0.003125%であればよく、読出しアクセスごとに0.00125%であればよい。
 このように、アドレスリマッピング部132がアドレスリマッピング処理を行うアドレスリマッピング確率の値は、アクセス制御部110が行うアクセスが書込みアクセス又は読出しアクセスのいずれであるかによって異なっていてもよい。
 データ反転部134は、メモリセルMCに書込むデータ(書込みデータ)を反転させて、不揮発性メモリ20内における各メモリセルMCのセット処理回数とリセット処理回数とを平均化するデータ反転処理を行う。具体的には、データ反転部134は、データ反転処理として、書込みアクセス対象の物理セクタに属するメモリセルMCに書込まれる書込みデータ内のビットを反転する。本実施形態においてデータ反転部134は、アクセス制御部110による書込みアクセスごとに、所定の反転実行確率で、データ反転処理を行う。この所定の反転実行確率が、第2の確率の一例である。つまり、本実施形態におけるデータ反転処理は、不揮発性メモリ20へのアクセス(本例では、書込みアクセス)ごとに確率論的に実行される。
 本実施形態に係るコントローラ10において、反転実行確率は40%以上60%以下の範囲であればよく、50%であるとさらに好適である。
 また、データ反転部134は、書込みアクセス時において、データ反転処理を行ったか否かを示すデータ反転情報を書込みデータに付加する。具体的には、データ反転部134は、データ反転処理を実行したか否か示す1ビットの反転フラグ(IV)を生成する。例えば、IV=「0」はデータ反転処理が実行されず、書込みデータが反転されていないことを示す。また、IV=「1」は、データ反転処理が実行され、書き込みデータが反転されていることを示す。書込みデータにIVが付加されて不揮発性メモリ20内に記憶されることで、読出し時において当該セクタデータを反転前の状態に復号することができる。IVは、データ反転処理の処理結果、つまりデータ反転の実行有無に基づいて生成されていればよい。IVは、例えばデータ反転部134によって書込みデータに付加されてもよいし、データ反転処理結果(例えば、データ反転実行無し=「0」、データ反転実行有り=「1」)に基づいて、アクセス制御部110、またはコントローラ10によって書込みデータに付加されてもよい。
 リフレッシュ部136は、不揮発性メモリ20内においてアクセス対象のメモリセルMCのうちLRSにある全てのメモリセルMCを一旦HRSに変化させて、LRSでの連続読み出しを防止するリフレッシュ処理を行う。このリフレッシュ処理が、抵抗状態変更処理の一例である。具体的には、本実施形態においてリフレッシュ部136は、リフレッシュ処理として、コントローラ10による不揮発性メモリ20へのアクセス(書込みアクセス及び読出しアクセス)ごとに、所定のリフレッシュ実行確率でアクセス対象の物理セクタに対応するメモリセルMCをリフレッシュする処理を行う。この所定のリフレッシュ実行確率が、第3の確率の一例である。つまり、本実施形態におけるリフレッシュ処理は、不揮発性メモリ20へのアクセス(本例では、書込みアクセス)ごとに確率論的に実行される。本実施形態におけるリフレッシュ処理は、アクセス対象の物理セクタに対応するメモリセルMCが有する抵抗変化素子VRのうち、LRS(低抵抗状態)の抵抗変化素子VRを、HRS(高抵抗状態)に変化させる処理である。
 本実施形態による半導体記憶装置1における不揮発性メモリ20の特性、すなわち、連続読出し基準回数が1万回程度であることを考慮すると、本技術に係るコントローラ10において、リフレッシュ実行確率は例えば0.25%であるとよい。
 乱数生成部138は、所定の数値範囲内で乱数を生成する乱数生成処理を実行する。乱数生成部138が生成した乱数は、摩耗平準化処理部130の各処理部(アドレスリマッピング部132、データ反転部134及びリフレッシュ部136)において、摩耗平準化処理(アドレスリマッピング処理、データ反転処理、及びリフレッシュ処理)の実行有無の決定に用いられる。
 ECC処理部120は、パリティチェックにより、データに発生したエラー(符号誤り)を検出し、これを訂正するための処理を行う。本例では、ECC処理部120は、アドレス指定された、複数のバンクBからなる物理セクタへのアクセス時に、セクタデータに対してECC符号化/復号化処理を行う。ECC処理部120は、例えば、ECCエンコーダ122とECCデコーダ124とを含む。ECC処理部120は、典型的には、ランダムエラー及び少数ビットのスタック不良及びRD不良によるエラーに対処する。
 ECCエンコーダ122は、物理セクタに対してデータを書き込む際に、パリティビットを生成し、これを該データに付加する。例えば、コントローラ10が、図示しないホストから実データ及びメタデータからなる書込みデータを受信すると、該データに基づいてLA/IVを生成する。これを受けて、ECCエンコーダ122は、実データ、メタデータ及びLA/IVをペイロードとして、BCH符号に基づいて、パリティを生成する。このパリティにより、コントローラ10は、例えば313バイトあたり合計30ビットまでのエラーを訂正し得る。本例では、書込み時のエラーは、例えば313バイトあたり12ビットまで訂正されるものとし、したがって、ランダムエラーは18ビットまで訂正され得る。
 ECCデコーダ124は、セクタからデータを読み出す際に、付加されているパリティに基づいて、エラーチェックを行い、検出されたエラーを訂正して、データを復旧する。本例では、読み出し時のエラーは、例えば313バイトあたり18ビットまで訂正し得る。
 本技術の不揮発性メモリ20は、上述したように、タイルT群をマイクロコントローラ70のアクセス制御単位とした複数のメモリパッケージから構成される。不揮発性メモリ20は、例えば、ユーザデータ220と各種の管理データとを格納する。各種の管理データは、例えば、バックアップされたアドレス変換テーブル210と、スペアデータ240とを含む。各種の管理データは、後述する。
 アドレス変換テーブル210は、図示しないホストから受信されたアクセスコマンドが示す論理アドレスを、不揮発性メモリ20上の物理セクタアドレスに変換するためのマッピング情報を格納したテーブルである。アドレス変換テーブル210はバックアップ用のアドレス変換テーブルであって、半導体記憶装置1の動作中、ワークメモリ30に展開され、作業用アドレス変換テーブル310として保持される。なお、アドレス変換テーブル210のダウンサイジングのため、アドレス変換テーブル210において扱われるアドレス単位は、ECC処理に適合したセクタサイズ(本例では320バイト)よりも大きくても良い。本例では、アドレス変換テーブル210のアドレス単位を8キロバイトのセクション単位とし、アドレス変換テーブル210における1アドレスに、32組の実データ(各256バイト)と、パリティと、パッチとを含んでも良い。
 アドレス変換テーブル210と作業用アドレス変換テーブル310とは、半導体記憶装置1の動作中、コントローラ10の制御の下、同期される。これにより、コントローラ10は、作業用アドレス変換テーブル310を参照することで、アドレス変換テーブル210に格納されているマッピング情報と同等の情報を高速で参照可能となる。さらに、半導体記憶装置1は、アドレス変換テーブル210と作業用アドレス変換テーブル310との同期により、突発的な電源断時にもアドレス変換テーブル310内のマッピング情報を復旧可能であり、動作信頼性を向上することができる。
 バックアップ用のアドレス変換テーブル210には、インデックスとエントリで構成されるマッピング情報(図7参照)が複数保持されている。アドレス変換テーブル210は、マッピング情報における物理セクションアドレスをインデックス(索引)とし、インデックスに紐つくエントリとして、物理セクションアドレスにマッピング(対応付け)された論理セクションアドレス及びセクタ管理情報を保持している。つまり、アドレス変換テーブル210は、論理アドレスを索引として物理アドレスを取得する形式のアドレス変換テーブルに対して、物理セクションアドレスを索引とする逆引きテーブルである。アドレス変換テーブル210は、例えばエントリの参照時において、テーブル内を探索することなく、インデックス(物理セクションアドレス)によってエントリの格納位置を特定し、その格納位置を直接アクセスすることで、効率的にエントリ(論理セクションアドレス及びセクタ管理情報)を取得することができる。
 スペアデータ240は、セクタ内の固定不良の発生数に応じて、当該セクタごと代替するために用いるデータである。より具体的には、例えばセクタ内の不良セルのエラーを訂正するECPエンジン(不図示)により訂正され得るエラーの所定のビット数(例えば56ビット)を超えるビット数のエラーが発生した場合、当該セクタに格納されるべきデータがスペアデータとして記憶される。
 本例のワークメモリ30は、上述したように、不揮発性メモリ20に格納された管理データの全部又は一部を一時的に保持する。ワークメモリ30は、半導体記憶装置1の高速化及び摩耗防止のため、設けられている。ワークメモリ30は、少なくとも作業用アドレス変換テーブル310を含み構成され得る。
 作業用アドレス変換テーブル310は、不揮発性メモリ20に保持されたバックアップ用のアドレス変換テーブル210の実質的なコピーである。ここでいう「実質的なコピー」とは、データフォーマットを問わず、元データの内容に意味的に同じであるデータをいう。例えば、作業用アドレス変換テーブル310が、圧縮形式や冗長形式のデータのアドレス変換テーブル210から復元されたものである場合、それは、実質的なコピーであるといえる。半導体記憶装置1の起動により、アクセス制御部110の制御の下、不揮発性メモリ20から読み出されたアドレス変換テーブル210は、ワークメモリ30上に作業用アドレス変換テーブル310として保持される。本実施形態において、マッピング情報の参照は通常、ワークメモリ30上の作業用アドレス変換テーブル310に対して行われる。バックアップ用のアドレス変換テーブル210は、作業用アドレス変換テーブル310が更新された場合のみ更新される。
 図9は、本技術の一実施形態に係る不揮発性メモリの情報空間を説明するための図である。同図に示すように、不揮発性メモリ20の物理セクションは、アドレス変換テーブル210を介して論理セクションにマッピングされ、論理セクションは、データコンテンツに関連付けられる。
 同図に示すように、データコンテンツは、複数のセクタ(本例では32個)の何れかにセクタデータとして格納される。ユーザセクションは、データコンテンツのうちのユーザデータ(実データ及びメタデータ)を関連付けて格納している。スペアセクションは、代替されるべきスペアセクタを関連付けて格納している。不良セクションは、固定不良(ハードエラー)が発生した物理アドレスが示していたデータを関連付けて格納している。アドレス変換テーブルセクションは、アドレス変換テーブル210を関連付けて格納している。なお、アドレス変換テーブルセクションと物理セクションとのマッピングは固定されている。つまり、物理セクションは、アドレス変換テーブル210によって通常の論理セクション(ユーザセクション、スペアセクション及び不良セクション)と任意にマッピング可能な通常の物理セクションと、アドレス変換テーブル自体を格納し、アドレス変換テーブルセクションとのマッピングが固定されたマッピング固定の格納用の物理セクションとに分けられる。
 アドレス変換テーブルセクションと物理セクションとのマッピングが固定されていることで、半導体記憶装置1の起動時においてコントローラ10は、アドレス変換テーブルを参照することなく物理セクションからバックアップ用のアドレス変換テーブル210読み出して、ワークメモリ30上に作業用アドレス変換テーブル310を展開することができる。マッピング固定の物理セクションにマッピングされたアドレス変換テーブルセクションは、図示しないホストにおいて利用可能な論理アドレスとマッピングされていないため、ホスト側からは参照できない。したがって、アドレス変換テーブルセクションと物理セクションとのマッピングが固定されてもホスト側からの悪意あるアクセス等による影響は受けない。
 なお、本実施形態において、セクション(物理セクション、論理セクション)のサイズは、8キロバイトとしたが、本技術はこれに限られない。セクションのサイズは、半導体記憶装置1の仕様や、不揮発性メモリ20とワークメモリ30とのコスト比に応じて、適宜変更され得る。例えば、セクションのサイズが大きい程、作業用アドレス変換テーブル310のデータ量が小さくなり、容量の小さいワークメモリ30に展開することができる。一方、セクションのサイズが小さい程、アドレスリマッピング処理における1回のマッピング更新時に、アクセスするデータ量が小さくなり、アドレスリマッピング処理の実行に伴う、パフォーマンス低下を抑制できる。さらに、セクションのサイズが小さい場合には、スペアセクションの単位を小さくできるため、例えば書込み不良時の救済率が向上する。
 図10A及び図10Bは、本実施形態に係る半導体記憶装置1におけるデータの書込み処理の一例を説明するためのフローチャートである。
 当該書込み処理は、以下で説明されるように、摩耗平準化処理(アドレスリマッピング処理、データ反転処理及びリフレッシュ処理)を含む。
 当該書込み処理は、例えば、コントローラ10が図示しないホストから通常の書込みアクセスコマンドを受信した場合に実行される。すなわち、図10Aに示すように、コントローラ10が書込みコマンドを受信すると、アクセス制御部110がアドレス変換処理により、書き込み先の物理セクタの物理セクタアドレスを取得する。具体的には、アクセス制御部110は、ワークメモリ30上の作業用アドレス変換テーブル310を参照し、アクセス先論理セクションアドレス(ここでは、書込み先の論理セクションアドレス)を変換して書込み先の物理セクタアドレスを取得する(S1001)。
 アクセス制御部110は、例えばアクセス先論理セクションアドレスと、書込み先の物理セクタアドレスを摩耗平準化処理部130に出力する。この出力に基づいて、摩耗平準化処理部130に含まれるアドレスリマッピング部132は、アドレスリマッピング処理の制御を行う(S2000)。データの書込み処理に伴うアドレスリマッピング処理の制御については、後述する。アドレスリマッピング部132は、アドレスリマッピング処理の制御を行うと、処理結果を摩耗平準化処理部130に出力する。アドレスリマッピング処理の処理結果は、例えばアドレスリマッピング処理の実行有無を示すフラグ情報である。
 アドレスリマッピング処理結果の出力に基づいて、摩耗平準化処理部130に含まれるデータ反転部134はデータ反転処理の制御を開始する。具体的には、データ反転部134は、乱数生成部138からデータ反転処理の実行有無を決定するためのデータ反転決定乱数を取得する(S1002)。データ反転乱数を取得すると、データ反転部134は、取得した乱数が実行数値範囲に含まれるか否かを判定する(S1003)。ここで、実行数値範囲とは、乱数生成部138が生成可能なデータ反転乱数の数値範囲(0~n)と同一の数値範囲のうち、反転実行確率(例えば50%)に相当する個数の数値からなる数値範囲である。データ反転部134は、取得したデータ反転決定乱数が実行数値範囲内に含まれると判定すると(S1003のYes)、書込みデータのデータ反転処理を行う(S1004)。これにより、書込みアクセスごとに例えば50%の反転実行確率に基づいて、確率論的にデータ反転処理が実行される。
 具体的には、データ反転部134は、書込みデータのデータ反転処理として、書込みデータ内のビット値を反転(「1」→「0」、「0」→「1」)する処理を行う。データ反転時において、書込みデータは、書込みアクセスコマンドとともにホストから受信した256バイトの実データ及び8バイトのメタデータからなるデータである。本実施形態においてデータ反転部134は、データ反転処理において書込みデータの全ビット値を反転する。
 なお、データ反転部134は、データ反転処理において書込みデータのうち一部のビットを反転するように構成されてもよい。この場合、いずれのビットを反転するかは、例えば乱数生成部138が生成する乱数に基づいて無作為に決定されてもよい。
 データ反転部134は、データ反転処理を行うと、データ反転処理が実行され、書き込みデータが反転されていることを示す反転フラグIV(例えば「1」)を生成する(S1005)。一方、データ反転部134は、取得したデータ反転決定乱数が実行数値範囲内に含まれていないと判定すると(S1003のNo)、データ反転処理が実行されておらず書き込みデータが反転していないことを示す反転フラグIV(例えば「0」)を生成する(S1006)。生成された反転フラグIVは、摩耗平準化処理部130を介してアクセス制御部110に出力される。
 以上のようにして、データ反転部134は確率論的にデータ反転処理の制御(S1002~S1006)を実行し、書込みデータのアクセスパターンに偏りがある場合でも、メモリセルMCの書き換え回数を改善するとともに、各メモリセルMCがLRSとなる確率を低減して、書込み摩耗及び読出し摩耗に対処する。
 アクセス制御部110は、反転フラグIVが出力されると31ビットの論理セクタアドレスLAと合わせて、反転フラグIVを書込みデータに付加する(S1007)。これにより書込みデータには新たに4バイト(32ビット)のデータ(LA+IV)が付加される。
 書込みデータに付加された論理セクタアドレスは、半導体記憶装置1内の通信路やワークメモリ30上におけるデータの不具合(例えばデータ化け)の検出、訂正に用いられる。例えば、アクセス制御部110は物理セクタへのアクセス時において、アクセス対象の物理セクタ内のデータに付加された論理セクタアドレスと、受信した論理アドレスに基づいて作業用アドレス変換テーブル310から取得した論理セクタアドレスとが一致するか否かを判定する。ここで、当該2つの論理セクタアドレスが一致しない場合、アクセス制御部110は半導体記憶装置1内の通信路やワークメモリ30上にデータの不具合(例えばデータ化け)があると判定し、データ不具合を訂正することができる。
 次に、アクセス制御部110は、ECCエンコーダ122に書込みデータを出力して、書込みデータにパリティを付加する(図10BのS1008)。ECCエンコーダ122は、出力された書込みデータについて、実データ、メタデータ及びLA/IVをペイロードとして、BCH符号に基づいて、パリティを生成する。アクセス制御部110は、書込みデータにパリティが付加されると、書込みデータを摩耗平準化処理部130に出力する。これに基づいて、摩耗平準化処理部130のリフレッシュ部136は、リフレッシュ処理の制御を開始する。
 具体的には、リフレッシュ部136は、乱数生成部138からリフレッシュ処理の実行有無を決定するためのリフレッシュ決定乱数を取得する(S1009)。リフレッシュ部136は、リフレッシュ決定乱数を取得すると、取得した乱数が実行数値範囲に含まれるか否かを判定する(S1010)。ここで、実行数値範囲は、乱数生成部138が生成可能なデータ反転乱数の数値範囲(0~n)と同一の数値範囲のうち、リフレッシュ実行確率(例えば0.25%)に相当する個数の数値からなる数値範囲である。リフレッシュ部136は、取得したリフレッシュ決定乱数が実行数値範囲内に含まれると判定すると(S1010のYes)、不揮発性メモリ20にリフレッシュコマンドを発行する(S1011)。これにより、アクセス対象の物理セクタに属するメモリセルMCに書込みデータが書き込まれる書込みアクセスごとに例えば0.25%のリフレッシュ実行確率に基づいて、確率論的にリフレッシュ処理が実行される。リフレッシュ処理を実行すると、リフレッシュ部136は、摩耗平準化処理部130を介してアクセス制御部110に、リフレッシュ処理を行った旨の処理結果(例えば「1」)を出力する。
 本実施形態において、リフレッシュコマンドは、LRSにあるメモリセルMCを、一旦HRSに変化させた上で、データを書込むためのコマンドである。リフレッシュコマンドの発行に伴い、リフレッシュ部136は、書込みデータを不揮発性メモリ20に発行する。これにより、リフレッシュ処理とともに書込みデータが不揮発性メモリ20に書込まれる。書込みデータは、例えば320バイトである。具体的には、書込みデータは32バイトのページに10分割され、アクセス対象の物理セクタに属する複数のメモリセルMCに書込まれる。
 一方、リフレッシュ部136は、取得したリフレッシュ決定乱数が実行数値範囲内に含まれないと判定すると(S1010のNo)、摩耗平準化処理部130を介してアクセス制御部110に、リフレッシュ処理を行っていない旨の処理結果(例えば「0」)を出力する。アクセス制御部110は、当該処理結果に基づいて、書込みデータとともに書込みコマンドを不揮発性メモリ20に発行する(S1012)。これにより、書込みコマンドによって書込みデータがアクセス対象の物理セクタに属する複数のメモリセルMCに書込まれる。
 本実施形態において、リフレッシュコマンドは、リフレッシュ処理専用のコマンドとしてコントローラ10に実装されていることが望ましい。具体的には、リフレッシュコマンドは、アクセス対象の物理セクタに対応するメモリセルMCにデータを書き込む書込みアクセス時に、アクセス制御部110が発行する書込みコマンド及びアクセス対象の物理セクタに対応するメモリセルMCからデータを読出す読出しアクセス時にアクセス制御部110が発行する読出しコマンドとは別個のコマンドであるとよい。これにより、コントローラ10は、リフレッシュ処理の高速化を図ることができる。なお、本技術はこれに限られず、リフレッシュ処理は、例えば、通常の読出しコマンドまたは書込みコマンドに、データ装填コマンドを組み合わせて発行することで実現してもよい。ここで、データ装填コマンドは、コントローラ10からのデータ入力なしに、所定のデータ(全ビット「0」または全ビット「1」))をメモリセルに書込むコマンドである。
 以上のようにして、リフレッシュ部136は、確率論的にリフレッシュ処理の制御(S1009~S1011)を実行して、各メモリセルMCの連続読出し回数が連続読出し基準回数に達する確率を低減し、連続読出しによる書込み不良に対処する。
 次に、不揮発性メモリ20へのデータ書き込みが行われると、アクセス制御部110は、エラー数の確認を行う(S1013)。アクセス制御部110は、リフレッシュコマンドまたは書込みコマンドの発行後、所定の時間の経過を待って、モードレジスタ読出しコマンドを発行して、書込みデータ中の書込みできなかったビット数(エラー数)を確認する。つまり、モードレジスタ読出しコマンドにより、直前の書込みコマンドまたはリフレッシュコマンドの実行によって物理セクタ内の書込み不良が発生したメモリセルMCの数が取得される。
 次に、アクセス制御部110は、確認したエラー数が、所定数(例えば13ビット数)以上であるか否かを判定する(S1014)。エラー数が12ビット数以下の場合(S1014のNo)、当該エラーは、ECC処理により訂正されることになる、エラー訂正後、アクセス制御部110は、書込み処理を終了する。一方、アクセス制御部110は、エラー数が所定数以上であると判定した場合(S1014のYes)、代替処理を実行する(S1015)。代替処理においてアクセス制御部110は、書込みデータの書込み先をスペアデータ240に格納されているスペアセクタを示す物理セクタアドレスに割り当てる。アクセス制御部110は、代替処理後、再度書込みデータへのパリティ付加(S1008)以降の処理を実行する。
 以上のようにして、コントローラ10のアクセス制御部110は、ある物理セクタについて、摩耗平準化処理を実行した上で、データ書込み処理を実行する。
 図11Aは本実施形態に係る半導体記憶装置1におけるアドレスリマッピング処理の一例を説明するためのフローチャートである。また、図11Bは、本実施形態に係る半導体記憶装置1におけるアドレスリマッピング処理のうち、セクション更新処理の一例を説明するためのフローチャートである。ここで、図11A及び図11Bを参照して、上述のデータ書込み処理時における、アドレスリマッピング処理の制御(S2000)について説明する。
 アドレスリマッピング部132は、アクセス制御部110がアクセス先論理セクションアドレスと、書込み先の物理セクタアドレスを摩耗平準化処理部130に出力すると(図10AのS1001)、この出力に基づいて、セクション更新処理の実行有無を決定するためのセクション更新決定乱数を取得する(S2001)。セクション更新決定乱数を取得すると、アドレスリマッピング部132は、取得した乱数が実行数値範囲に含まれるか否かを判定する(S2002)。ここで、実行数値範囲とは、乱数生成部138が生成可能なセクション更新決定乱数の数値範囲(0~n)と同一の数値範囲のうち、書込みアクセス時における第1アドレスリマッピング確率(例えば0.003125%)に相当する個数の数値からなる数値範囲である。アドレスリマッピング部132は、取得したセクション更新決定乱数が実行数値範囲内に含まれると判定すると(S2002のYes)、セクション更新処理を行う(S3000)。これにより、書込みアクセスごとに例えば0.003125%の第1アドレスリマッピング確率に基づいて、確率論的にセクション更新処理の制御が実行される。
 このように、アドレスリマッピング部132は、アクセスごと(本例では、書込みアクセスごと)に、乱数生成部138が生成した乱数に基づいてアドレスリマッピング処理(本例では、セクション更新処理)を行うか否かを決定する。
 ここで、図11Bを参照してセクション更新処理について説明する。アドレスリマッピング部132は、セクション更新処理において、まず作業用アドレス変換テーブル310から、無作為に、一のマッピング情報を取得する(S3001)。ここで取得するマッピング情報は、アクセス制御部110のアクセス対象の物理セクタに対応するマッピング情報でなければよい。ここで、アドレスリマッピング部132は、例えば乱数生成部138が生成する乱数に基づいて、取得対象の一のマッピング情報を決定してもよい。例えばアドレスリマッピング部132は、作業用アドレス変換テーブル310内の論理セクションアドレスに相当する数値範囲の乱数を乱数生成部138から取得し、取得した乱数値が示す論理セクションアドレスに紐付くマッピング情報を取得してもよい。
 続いて、アドレスリマッピング部132は、作業用アドレス変換テーブル310を更新して、セクションアドレスのマッピングを更新する(S3002)。具体的には、アドレスリマッピング部132は、アクセス先論理セクションアドレス(例えば「LS001」)にマッピングされた物理セクションアドレス(例えば、「PS001」)を、無作為に取得した一のマッピング情報における物理セクションアドレス(例えば「PS002」)にマッピングする。さらに、アドレスリマッピング部132は、アクセス先論理セクションアドレス(LS001)にマッピングされていた物理セクションアドレス(「PS001」)を、無作為に取得した一のマッピング情報における論理セクションアドレス(例えば「LS002」)にマッピングする。これにより、アクセス対象の物理セクタを特定する一の論理セクションアドレス(LS001)に対応付く一の物理セクションアドレス(PS001)が、一の物理セクションアドレスと異なる無作為に選択した他の物理セクションアドレス(PS002)で置き換えられる。
 アドレスリマッピング部132は、セクションアドレスのマッピングを更新すると、セクション単位でのデータの入れ替えを行い(S3003)、アドレスリマッピング更新処理の制御に戻る。具体的には、アドレスリマッピング部132はアクセス先論理セクションアドレス(「LS001」)にマッピングされていた更新前の物理セクションアドレス(「PS001」)が示す物理セクション内の物理セクタのデータと、新たにマッピングされた更新後の物理セクションアドレス(「PS002」)が示す物理セクション内の物理セクタのデータとを入れ替える。これにより、無作為に選択した他の物理セクションアドレス(PS002)で特定される物理セクタに記憶されたデータが、更新前の物理セクションアドレス(「PS001」)で特定される物理セクタに記憶されたデータに置き換えられる。
 図11Aに戻って、アドレスリマッピング部132はセクション更新処理を実行すると、上述の第1グループ更新処理を実行して、作業用アドレス変換テーブル310のマッピング情報におけるセクタグループ管理情報を更新する(S2003)。具体的には、アドレスリマッピング部132は、アクセス先論理セクションアドレス(「LS001」)に対応するセクタグループ管理情報を更新する。アドレスリマッピング部132は、第1グループ更新処理におけるセクタグループ管理情報の更新値を無作為に決定する。アドレスリマッピング部132は、第1グループ更新処理時において、上述の第1数値範囲内の乱数を乱数生成部138から取得し、取得された乱数を、セクタグループ管理情報の更新値としてもよい。アドレスリマッピング部132は第1グループ更新処理を実行すると、上述の第2グループ更新処理を実行して、作業用アドレス変換テーブル310のマッピング情報におけるグループ内管理情報を更新する(S2006)。
 一方、アドレスリマッピング部132は、取得したセクション更新決定乱数が実行数値範囲内に含まれていないと判定すると(S2002のNo)、第2グループ更新処理の実行有無を決定するための第2グループ更新処理決定乱数を取得する(S2004)。第2グループ更新処理決定乱数を取得すると、アドレスリマッピング部132は、取得した乱数が実行数値範囲に含まれるか否かを判定する(S2005)。ここで、実行数値範囲とは、乱数生成部138が生成可能な第2グループ更新処理決定乱数の数値範囲(0~n)と同一の数値範囲のうち、書込みアクセス時における第2アドレスリマッピング確率(例えば0.025%)に相当する個数の数値からなる数値範囲である。アドレスリマッピング部132は、取得した第2グループ更新処理決定乱数が実行数値範囲内に含まれると判定すると(S2005のYes)、上述の第2グループ更新処理を実行して、作業用アドレス変換テーブル310のマッピング情報におけるグループ内管理情報を更新する(S2006)。
 第2グループ更新処理におけるグループ内管理情報の更新値は、無作為に決定される。例えば、アドレスリマッピング部132は、第2グループ更新処理時において、上述の第2数値範囲内の乱数を乱数生成部138から取得し、取得された乱数を、グループ内管理情報の更新値としてもよい。
 アドレスリマッピング部132は、グループ内管理情報を更新すると、不揮発性メモリ20上のバックアップ用のアドレス変換テーブル210を更新して、作業用アドレス変換テーブル310と同期する(S2007)。本例においてアドレスリマッピング部132は、アドレス変換テーブル210を更新すると、データ書込み処理のS1002(図10A参照)に戻る。
 逆引きテーブルであるバックアップ用のアドレス変換テーブル210は、アドレスリマッピング処理によってアクセス対象の物理セクタが平準化されることに伴い、参照回数が平準化される。このため、図9に示すように、マッピングが固定された領域に格納されていても、アドレス変換テーブル210のデータを記憶するメモリセルMCの摩耗を平準化することができる。
 以上のようにして、アドレスリマッピング部132は、アドレス変換テーブル210を更新して、セクション単位、セクタグループ単位、またはセクタグループ内の論理セクタ単位で、特定のセクタへのアクセス集中によるメモリセルMCの書込み摩耗に対処するためのアドレスリマッピング処理を実行する。
 図12は、本技術の一実施形態に係る半導体記憶装置1におけるデータの読出し処理の一例を説明するためのフローチャートである。当該読出し処理は、以下で説明されるように、摩耗平準化処理を含む。当該読出し処理は、例えば、コントローラ10が図示しないホストから通常の読出しアクセスコマンドを受信した場合に実行される。
 すなわち、同図に示すように、コントローラ10が読出しコマンドを受信すると、アクセス制御部110がアドレス変換処理により、読出し先の物理セクタの物理セクタアドレスを取得する。具体的には、アクセス制御部110は、ワークメモリ30上の作業用アドレス変換テーブル310を参照し、アクセス先論理セクションアドレス(ここでは、読出し先の論理セクションアドレス)を変換して読出し先の物理セクタアドレスを取得する(S1201)。
 次に、アクセス制御部110は、読出しコマンドに基づく読出し先の物理セクタアドレスからデータの読み出しを行う(S1202)。アクセス制御部110が発行した読出しコマンドによって不揮発性メモリ20の読出し先の物理セクタからデータが読み出されると、これを受けて、アクセス制御部110は、ECC処理部120のECCデコーダ124に読出しデータを出力してECC復号化を行う(S1203)。ECCデコーダ124は、読出しデータに付加されているパリティに基づいてECC復号化処理を行う。例えば、ECCデコーダ124は読出しデータに付加されているパリティに基づいて、エラーチェックを行い、検出されたエラーを訂正して、データを復旧する。ECC復号化を行うと、アクセス制御部110は読出しデータに付加された反転フラグ(IV)を確認する。アクセス制御部110は、反転フラグ(IV)が「1」であると判定すると(S1204のYes)、当該読出しデータが書き込み時にデータ反転されていると判定し、読出しデータについて反転復号化処理を行う(S1205)。具体的には、アクセス制御部110は、読出しデータにおける実データ及びメタデータの全ビットを反転する。一方、アクセス制御部110は、反転フラグ(IV)が「0」であると判定すると(S1204のNo)、当該読出しデータが書き込み時にデータ反転されていないと判定し、反転復号化処理をスキップする。
 続いて、アクセス制御部110は、読出しデータをホストに送信する(S1206)。アクセス制御部110は読出しデータをホストに送信すると、摩耗平準化処理部130に、送信結果を出力する。これに基づいて、摩耗平準化処理部130におけるリフレッシュ部136は、リフレッシュ処理の制御を行う(S1207)。ここで、リフレッシュ処理の制御内容は、書込み処理時と同様である(図10BのS1009~S1011)なお、データ読出し処理時のリフレッシュ処理において、リフレッシュ部136は、取得したリフレッシュ決定乱数が実行数値範囲内に含まれないと判定すると(S1010のNo)、リフレッシュ処理の制御を終了する。また、データ読出し処理時のリフレッシュ処理においてリフレッシュ部136は、リフレッシュコマンドとともに、ECC復号化処理を行った読出しデータを不揮発性メモリ20に発行する。これにより、読出し先の物理セクタアドレスに、ECC復号化処理後の読出しデータが書き戻される。また、リフレッシュ部136は、データ読出し処理時においてリフレッシュコマンドを発行しない場合、書込みコマンドとともにECC復号化処理後の読出しデータを不揮発性メモリ20に発行してもよい。
 続いて、摩耗平準化処理部130におけるアドレスリマッピング部132は、アドレスリマッピング処理の制御を行う(S2000)。ここで、データ読出し処理時におけるアドレスリマッピング処理の制御内容は、データ書込み処理時と同様である(図11A参照)。ただし、データ読出し処理におけるアドレスリマッピング処理において、セクション更新処理の実行に係る第1アドレスリマッピング確率は、0.00125%である。また、読出し処理におけるアドレスリマッピング処理において、第2グループ更新処理の実行に係る第2アドレスリマッピング確率は、0.01%である。アドレスリマッピング部132におけるアドレスリマッピング処理が終了すると、アクセス制御部110はデータ読出し処理を終了する。
 以下、本実施形態によるコントローラ10が実行する摩耗平準化処理の効果について、シミュレーション結果を交えながら説明する。図13は、本実施形態によるアドレスリマッピング処理のシミュレーション結果を示すヒストグラムである。本例では、アドレスリマッピング処理におけるセクション更新処理及びセクタグループ更新処理をソフトウェア実装し、各メモリセルMCに対するアクセスの平均化効果をシミュレーションした。本シミュレーションには、モンテカルロ法を用いた。本シミュレーションでは、不揮発性メモリの構成を16,384セクタ=512セクション×32セクタと仮定した。また、本シミュレーションのソフトウェア実装では、擬似乱数を発生させることで、上述の第1アドレスリマッピング確率(書込みアクセスごとに0.003125%、読出しアクセスごとに0.00125%)に従って、セクション更新処理を実行した。当該セクション更新処理時には、セクタグループ更新処理(第1グループ更新処理、第2グループ更新処理)も合わせて実行した。さらに、本シミュレーションのソフトウェア実装では、擬似乱数を発生させることで、第2アドレスリマッピング確率(書込みアクセスごとに0.025%、読出しアクセスごとに0.01%)に従って、セクタグループ更新処理のうち第2グループ更新処理を実行した。
 まず、アドレスリマッピング処理のシミュレーションとして、特定の論理セクタに対して集中的に書込みアクセスを行い、各物理セクタへのデータの書込み(セット又はリセット)回数を算出した。具体的には、特定の論理セクタを示す論理セクタアドレスに対して、16,384×4.0e6回(本実施形態における物理セクタごとの生涯書込み回数の平均値)の書込みアクセスを集中させ、各物理セクタへのデータの書込み回数を算出した。図13上段は、本シミュレーションにおいて算出された書込み回数に対するセクタ(本例では物理セクタ)数の分布を示すヒストグラムである。なお、生涯書込み回数の平均値は、不揮発性メモリ20において想定される生涯書込み容量(2エクサバイト)/不揮発性メモリ20の容量(512ギガバイト)として求めた。
 さらに、アドレスリマッピング処理のシミュレーションとして、特定の論理セクタに対して集中的に読出しアクセスを行い、各物理セクタからのデータの読出し回数を算出した。具体的には、特定の論理セクタを示す論理セクタアドレスに対して、16,384×1.0e7回(本実施形態における物理セクタごとの生涯読出し回数の平均値)の読出しアクセスを集中させ、各物理セクタからのデータの読出し回数を算出した。図13下段は、本シミュレーションにおいて算出された読出し回数に対するセクタ(本例では物理セクタ)数の分布を示すヒストグラムである。なお、生涯読出し回数の平均値は、不揮発性メモリ20において想定される生涯読出し容量(5エクサバイト)/不揮発性メモリ20の容量(512ギガバイト)として求めた。
 上述のシミュレーションの結果、図13上段に示すように、特定の論理セクタを示す論理セクタアドレスに対して極端に偏った書込みアクセスを行った場合であっても、不揮発性メモリ上の物理セクタのうち99.9%が想定される生涯書込み回数の平均値(4.0e6)+20%=4.8e6以下の書込み回数となるように、アドレスリマッピング処理によって書込み回数を平均化できることが確かめられた。
 また、上述のシミュレーションの結果、図13下段に示すように、特定の論理セクタを示す論理セクタアドレスに対して極端に偏った読出しアクセスを行った場合であっても、不揮発性メモリ上の物理セクタのうち99.9%が想定される生涯読出し回数の平均値(1.0e7)+20%=1.2e7以下の読出し回数となるように、アドレスリマッピング処理によって読出し回数を平均化できることが確かめられた。
 このように、本技術によるコントローラ10は、摩耗平準化処理として、アドレスリマッピング処理のうちセクション更新処理を、例えば書込みアクセスごとに0.003125%、読出しアクセスごとに0.00125の確率でセクタグループ更新処理とともに実行し、アドレスリマッピング処理のうち第2グループ更新処理を、例えば書込みアクセスごとに0.025%、読出しアクセスごとに0.01%の確率で実行することで、各物理セクタに属する各メモリセルMCへの書込み回数、読出し回数を平均化することができる。
 また、本技術によるコントローラ10は、摩耗平準化処理として、確率論的にデータ反転処理を行う。例えば、書込みアクセス時に50%の確率でデータ反転することで、書込みごとにビット値が変わる確率は50%とみなすことができる。これにより、コントローラ10は、偏りのあるデータパターン(例えば、全ビット「0」又は全ビット「1」)においても、メモリセルMCの書き換え回数を平均化して、書込み摩耗を平準化することができる。また、書込みアクセス時に50%の確率でデータ反転が行われ、かつ読出しアクセスごとに所定確率(例えば0.00125%)でセクション更新処理及びセクタグループ更新処理が実行されることで、各メモリセルMCの生涯LRS読出し回数、つまり生涯読出し回数のうち各メモリセルMCがLRSである回数を50%程度にすることができる。これは、偏りのあるデータパターンにおいても同様である。
 また、図14は、本実施形態によるリフレッシュ処理の検証結果を示す図である。本実施形態による不揮発性メモリ20において、例えば連続読出し基準回数が10000回である場合、読出しアクセスごとのリフレッシュ実行確率(図14中では「実行確率/読出しアクセス」と表記)を0.30%、0.25%、0.20%としてリフレッシュ処理の検証を行った。図14に示すように、リフレッシュ実行確率を0.30%とすると、連続読出しによる書込み不良の発生率は、0.001%未満(図14中では「0.000%」と表記)となり、リフレッシュ実行確率を0.25%とすると連続読出しによる書込み不良の発生率は0.013%となり、リフレッシュ実行確率を0.20%とすると連続読出しによる書込み不良の発生率は2.020%となった。なお図14中では、連続読出しによる書込み不良の発生率を「不良発生率」と表記した。また「不良発生率」は、セクタ数比(全物理セクタ数のうち、連続読出しによる書込み不良が発生した物理セクタ数の割合)として求めた。
 本例において、リフレッシュ実行確率を0.30%とした場合、連続読出しによる書込み不良の発生率は0.001%未満と大幅に低減されるものの、一方で、半導体記憶装置1の動作性能への影響(例えば動作性能の低下)が大きい。また、リフレッシュ実行確率を0.20%とした場合、上述のように連続読出しによる書込み不良の発生率は2%以上となり、書込み不良の低減が十分ではない。これに対し、当該リフレッシュ実行確率を0.25%とした場合、上述のように連続読出しによる書込み不良の発生率を0.01%程度にまで抑えることができるため、スペアセクション内のわずかなスペアアドレスで書込み不良に対する補償(救済)が可能であり、さらに半導体記憶装置1の動作性能への影響もごくわずかである。したがって、連続読出し基準回数が10000回の場合、リフレッシュ実行確率は0.25%が最適である。
 また、不揮発性メモリ20において、例えば連続読出し基準回数が5000回である場合、読出しアクセスごとのリフレッシュ実行確率を0.60%、0.50%、0.40%としてリフレッシュ処理の検証を行った。図14に示すように、本例においてリフレッシュ実行確率を0.60%とすると、連続読出しによる書込み不良の発生率は0.001%未満となり、リフレッシュ実行確率を0.50%とすると連続読出しによる書込み不良の発生率は0.013%となり、リフレッシュ実行確率を0.40%とすると連続読出しによる書込み不良の発生率は1.980%となった。
 本例において、読出しアクセスごとのリフレッシュ実行確率を0.60%とすると、書込み不良の発生率は0.001%未満となるものの、半導体記憶装置1の動作性能への影響が大きくなる。また、当該リフレッシュ実行確率を0.40%とすると、連続読出しによる書込み不良の発生率が2%程度となるため、書込み不良の低減が十分ではない。これに対し、当該リフレッシュ実行確率を0.50%とすると、連続読出しによる書込み不良の発生率を0.01%程度にまで抑えることができ、さらに半導体記憶装置1の動作性能への影響も比較的小さいため、好適である。
 また、不揮発性メモリ20において、例えば連続読出し基準回数が2000回である場合、読出しアクセスごとのリフレッシュ実行確率を1.30%、1.20%、1.10%としてリフレッシュ処理の検証を行った。図14に示すように、リフレッシュ実行確率を1.30%とすると、連続読出しによる書込み不良の発生率は0.004%となり、リフレッシュ実行確率を1.20%とすると、連続読出しによる書込み不良の発生率は0.033%となり、リフレッシュ実行確率を1.10%とすると、連続読出しによる書込み不良の発生率は0.247%となった。
 本例において、読出しアクセスごとのリフレッシュ実行確率を1.30%とすると書込み不良の発生率は0.004%まで低減されるものの、半導体記憶装置1の動作性能への影響が大きくなる。また、当該リフレッシュ実行確率を1.10%とすると、連続読出しによる書込み不良の発生率が0.2%以上となるため、書込み不良の低減が十分ではない。これに対し、当該リフレッシュ実行確率を1.20%とすると、連続読出しによる書込み不良の発生率を0.03%程度に抑えることができ、さらに半導体記憶装置1の動作性能への影響も比較的小さいため、好適である。
 以上のように、本技術によれば、Xp-ReRAMの特性に応じてメモリ内におけるセルの摩耗の局在化を解消することで書込み不良を低減し、メモリの使用寿命の最大化を図ることができるコントローラ、半導体記憶装置及び該装置における摩耗平準化処理方法を提供することができるようになる。
 上記各実施形態は、本技術を説明するための例示であり、本技術をこれらの実施形態にのみ限定する趣旨ではない。本技術は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。
 例えば、本明細書に開示される方法においては、その結果に矛盾が生じない限り、ステップ、動作又は機能を並行して又は異なる順に実施しても良い。説明されたステップ、動作及び機能は、単なる例として提供されており、ステップ、動作及び機能のうちのいくつかは、発明の要旨を逸脱しない範囲で、省略でき、また、互いに結合させることで一つのものとしてもよく、また、他のステップ、動作又は機能を追加してもよい。
 また、本明細書では、さまざまな実施形態が開示されているが、一の実施形態における特定のフィーチャ(技術的事項)を、適宜改良しながら、他の実施形態に追加し、又は該他の実施形態における特定のフィーチャと置換することができ、そのような形態も本技術の要旨に含まれる。
 また、本技術は、以下のような技術的事項を含み構成されても良い。
(1)
 書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラであって、
 前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
 前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、
 前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う、
 コントローラ。
(2)
 前記摩耗平準化処理部は、
 前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
 前記(1)に記載のコントローラ。
(3)
 前記テーブル更新部は、
 前記アクセス対象の前記データ記憶領域を特定する一の前記論理アドレスに対応付く一の前記物理アドレスを、前記一の物理アドレスと異なる無作為に選択した他の前記物理アドレスで置き換える、
 前記(2)記載のコントローラ。
(4)
 前記テーブル更新部は、前記他の物理アドレスで特定される前記データ記憶領域に記憶されたデータを、前記一の物理アドレスで特定される前記データ記憶領域に記憶されたデータで置き換える、
 前記(3)記載のコントローラ。
(5)
 乱数を生成する乱数生成部を備え、
 前記テーブル更新部は、
 前記アクセスごとに前記乱数生成部が生成した乱数に基づいて前記テーブル更新処理を行うか否かを決定する、
 前記(2)乃至(4)の何れか一つに記載のコントローラ。
(6)
 前記アドレス変換テーブルは、所定個数の前記データ記憶領域を格納する格納領域ごとに前記マッピング情報を保持し、
 前記テーブル更新部は、前記テーブル更新処理を前記アクセス対象の前記データ記憶領域が格納される前記格納領域ごとに行う
 前記(2)から(5)の何れか一つに記載のコントローラ。
(7)
 前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域ごとに行う
 前記(6)に記載のコントローラ。
(8)
 前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域のそれぞれについて行う
 前記(7)記載のコントローラ。
(9)
 前記アクセス制御部が制御する前記アクセスは、前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス及び前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読み出す読出しアクセスを含み、
 前記テーブル更新部が前記テーブル更新処理を行う前記第1の確率の値は、前記アクセスが前記書込みアクセス又は前記読出しアクセスのいずれであるかによって異なる
 前記(2)から前記(8)のいずれか一つに記載のコントローラ。
(10)
 前記摩耗平準化処理部は、
 前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
 前記(1)から(9)の何れか一つに記載のコントローラ。
(11)
 前記データ反転処理部は、前記書込みアクセス時において、前記データ反転処理を行ったか否かを示すデータ反転情報を前記書込みデータに付加する、
 前記(10)に記載のコントローラ。
(12)
 前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
 複数の前記メモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
 前記摩耗平準化処理部は、
 前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
 前記(1)から(11)の何れか一つに記載のコントローラ。
(13)
 前記抵抗状態変更部は、
 前記抵抗状態変更処理を実行するための抵抗状態変更コマンドを前記アクセス対象の前記データ記憶領域を有する前記不揮発性メモリに発行して、前記抵抗状態変更処理を実行し、
 前記抵抗状態変更コマンドは、
 前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス時に前記アクセス制御部が発行する書込みコマンド及び前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読出す読出しアクセス時に前記アクセス制御部が発行する読出しコマンドとは別個のコマンドである、
 前記(12)記載のコントローラ。
(14)
 書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリと、
 前記不揮発性メモリを制御するコントローラと、を備える半導体記憶装置であって、
 前記コントローラは、
 前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
 前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を実行する摩耗平準化処理部と、を有し、
 前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で実行する、
 半導体記憶装置。
(15)
 前記摩耗平準化処理部は、
 前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
 前記(14)記載の半導体記憶装置。
(16)
 前記摩耗平準化処理部は、
 前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
 前記(14)または(15)に記載の半導体記憶装置。
(17)
 前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
 前記複数のメモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
 前記摩耗平準化処理部は、
 前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
 前記(14)から(16)のいずれか1項に記載の半導体記憶装置。
(18)
 書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリを備える半導体記憶装置において、前記複数のメモリセルの摩耗を平準化する摩耗平準化処理方法であって、
 前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御することと、
 前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を、前記アクセスごとに所定の確率で行うことと、
 を含み、
 前記摩耗平準化処理を行うことは、前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うことを含む、
 摩耗平準化処理方法。
(19)
 前記摩耗平準化処理を行うことは、
 前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うことを含む、
 前記(18)記載の摩耗平準化処理方法。
(20)
 前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
 前記摩耗平準化処理を行うことは、
 前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行うことを含む、
 前記(18)または(19)記載の摩耗平準化処理方法。
 1…半導体記憶装置
 10…コントローラ
 110…アクセス制御部
 120…ECC処理部
 122…ECCエンコーダ
 124…ECCデコーダ
 130…摩耗平準化処理部
 132…アドレスリマッピング部
 134…データ反転部
 136…リフレッシュ部
 138…乱数生成部
 20…不揮発性メモリ(不揮発性メモリパッケージ)
 210…アドレス変換テーブル
 220…ユーザデータ
 240…スペアデータ
 30…ワークメモリ
 310…作業用アドレス変換テーブル
 40…ホストインターフェース、ホストインターフェース部
 B…バンク
 D…ダイ
 T…タイル

Claims (20)

  1.  書込み可能な不揮発性メモリを有する半導体記憶装置の動作を制御するコントローラであって、
     前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
     前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を行う摩耗平準化処理部と、を備え、
     前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で行う、
     コントローラ。
  2.  前記摩耗平準化処理部は、
     前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
     請求項1記載のコントローラ。
  3.  前記テーブル更新部は、
     前記アクセス対象の前記データ記憶領域を特定する一の前記論理アドレスに対応付く一の前記物理アドレスを、前記一の物理アドレスと異なる無作為に選択した他の前記物理アドレスで置き換える、
     請求項2記載のコントローラ。
  4.  前記テーブル更新部は、前記他の物理アドレスで特定される前記データ記憶領域に記憶されたデータを、前記一の物理アドレスで特定される前記データ記憶領域に記憶されたデータで置き換える、
     請求項3記載のコントローラ。
  5.  乱数を生成する乱数生成部を備え、
     前記テーブル更新部は、
     前記アクセスごとに前記乱数生成部が生成した乱数に基づいて前記テーブル更新処理を行うか否かを決定する、
     請求項2に記載のコントローラ。
  6.  前記アドレス変換テーブルは、所定個数の前記データ記憶領域を格納する格納領域ごとに前記マッピング情報を保持し、
     前記テーブル更新部は、前記テーブル更新処理を前記アクセス対象の前記データ記憶領域が格納される前記格納領域ごとに行う
     請求項2に記載のコントローラ。
  7.  前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域ごとに行う
     請求項6に記載のコントローラ。
  8.  前記テーブル更新部は、前記テーブル更新処理を前記格納領域内の幾つかの前記データ記憶領域のそれぞれについて行う
     請求項7記載のコントローラ。
  9.  前記アクセス制御部が制御する前記アクセスは、前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス及び前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読み出す読出しアクセスを含み、
     前記テーブル更新部が前記テーブル更新処理を行う前記第1の確率の値は、前記アクセスが前記書込みアクセス又は前記読出しアクセスのいずれであるかによって異なる
     請求項2に記載のコントローラ。
  10.  前記摩耗平準化処理部は、
     前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
     請求項1に記載のコントローラ。
  11.  前記データ反転処理部は、前記書込みアクセス時において、前記データ反転処理を行ったか否かを示すデータ反転情報を前記書込みデータに付加する、
     請求項10に記載のコントローラ。
  12.  前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
     複数の前記メモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
     前記摩耗平準化処理部は、
     前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
     請求項1に記載のコントローラ。
  13.  前記抵抗状態変更部は、
     前記抵抗状態変更処理を実行するための抵抗状態変更コマンドを前記アクセス対象の前記データ記憶領域を有する前記不揮発性メモリに発行して、前記抵抗状態変更処理を実行し、
     前記抵抗状態変更コマンドは、
     前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセス時に前記アクセス制御部が発行する書込みコマンド及び前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルからデータを読出す読出しアクセス時に前記アクセス制御部が発行する読出しコマンドとは別個のコマンドである、
     請求項12記載のコントローラ。
  14.  書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリと、
     前記不揮発性メモリを制御するコントローラと、を備える半導体記憶装置であって、
     前記コントローラは、
     前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御するアクセス制御部と、
     前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を実行する摩耗平準化処理部と、を有し、
     前記摩耗平準化処理部は、前記摩耗平準化処理を、前記アクセスごとに所定の確率で実行する、
     半導体記憶装置。
  15.  前記摩耗平準化処理部は、
     前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うテーブル更新部を含む、
     請求項14記載の半導体記憶装置。
  16.  前記摩耗平準化処理部は、
     前記アクセス制御部が制御する前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うデータ反転処理部を含む、
     請求項14記載の半導体記憶装置。
  17.  前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
     前記複数のメモリセルは、低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子を有し、
     前記摩耗平準化処理部は、
     前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する前記抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行う抵抗状態変更部を含む、
     請求項14記載の半導体記憶装置。
  18.  書き込み可能な不揮発性の複数のメモリセルを備える不揮発性メモリを備える半導体記憶装置において、前記複数のメモリセルの摩耗を平準化する摩耗平準化処理方法であって、
     前記不揮発性メモリにおける複数のメモリセルの幾つかに基づくデータ記憶領域を特定する物理アドレスと論理アドレスとの間の対応関係を示すマッピング情報を保持するアドレス変換テーブルに従って、前記データ記憶領域に対するアクセスを制御することと、
     前記アクセスによって生じる前記複数のメモリセルの摩耗を平準化する摩耗平準化処理を、前記アクセスごとに所定の確率で行うことと、
     を含み、
     前記摩耗平準化処理を行うことは、前記アクセスごとに第1の確率で前記アドレス変換テーブル内の前記マッピング情報を更新するテーブル更新処理を行うことを含む、
     摩耗平準化処理方法。
  19.  前記摩耗平準化処理を行うことは、
     前記アクセスが前記データ記憶領域に対応する幾つかの前記メモリセルにデータを書き込む書込みアクセスの場合に、前記書込みアクセスごとに第2の確率で、前記メモリセルに書き込まれる書込みデータ内のビットを反転するデータ反転処理を行うことを含む、
     請求項18記載の摩耗平準化処理方法。
  20.  前記不揮発性メモリは、クロスポイント・抵抗変化型RAMであって、
     前記摩耗平準化処理を行うことは、
     前記データ記憶領域に対する前記アクセスごとに第3の確率で、前記アクセス対象の前記データ記憶領域に対応する幾つかの前記メモリセルが有する低抵抗状態および高抵抗状態に可逆的に変化可能な抵抗変化素子のうち、前記低抵抗状態の前記抵抗変化素子を、前記高抵抗状態に変化させる抵抗状態変更処理を行うことを含む、
     請求項18記載の摩耗平準化処理方法。
PCT/JP2020/026700 2019-08-19 2020-07-08 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法 WO2021033445A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/627,984 US20220276957A1 (en) 2019-08-19 2020-07-08 Controller, semiconductor storage device, and a wear-leveling processing method in the device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-149894 2019-08-19
JP2019149894A JP2021033423A (ja) 2019-08-19 2019-08-19 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法

Publications (1)

Publication Number Publication Date
WO2021033445A1 true WO2021033445A1 (ja) 2021-02-25

Family

ID=74660866

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/026700 WO2021033445A1 (ja) 2019-08-19 2020-07-08 コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法

Country Status (4)

Country Link
US (1) US20220276957A1 (ja)
JP (1) JP2021033423A (ja)
TW (1) TW202127256A (ja)
WO (1) WO2021033445A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002533810A (ja) * 1998-12-22 2002-10-08 ジェムプリュス 摩耗防止を備えたメモリ制御手段を有する記憶システムとメモリの摩耗防止制御法
JP2008181203A (ja) * 2007-01-23 2008-08-07 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US10228878B1 (en) * 2017-10-30 2019-03-12 Western Digital Technologies, Inc. Wear leveling in non-volatile storage
US11023150B2 (en) * 2019-07-01 2021-06-01 International Business Machines Corporation Block mode toggling using hybrid controllers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002533810A (ja) * 1998-12-22 2002-10-08 ジェムプリュス 摩耗防止を備えたメモリ制御手段を有する記憶システムとメモリの摩耗防止制御法
JP2008181203A (ja) * 2007-01-23 2008-08-07 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法

Also Published As

Publication number Publication date
JP2021033423A (ja) 2021-03-01
TW202127256A (zh) 2021-07-16
US20220276957A1 (en) 2022-09-01

Similar Documents

Publication Publication Date Title
US8762622B2 (en) Enhanced MLC solid state device
US10417124B2 (en) Storage system that tracks mapping to a memory module to be detached therefrom
US9176817B2 (en) Data management in solid state storage devices
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
US9136020B2 (en) Semiconductor memory device
JP6077673B2 (ja) ランタイム可変raid保護スキームを有する方法、ソリッドステートドライブコントローラー、及びデータ格納装置
JP5026213B2 (ja) ストレージ装置及びデータ重複排除方法
KR101459861B1 (ko) 스트라이프 기반 메모리 작동
US9575844B2 (en) Mass storage device and method of operating the same to back up data stored in volatile memory
TWI484334B (zh) 非揮發記憶體的區域式管理方法
US11200162B2 (en) Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
KR20130078973A (ko) 메모리 장치의 불량 저장 영역 관리 방법 및 이를 이용한 저장 장치
US8370680B2 (en) Solid state storage system for controlling reserved area and method of controlling the same
CN111767235A (zh) 存储器系统、存储器控制器以及存储器控制器的操作方法
JP2012058770A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
WO2021033445A1 (ja) コントローラ、半導体記憶装置、及び該装置における摩耗平準化処理方法
JP7302497B2 (ja) メモリコントローラ及びフラッシュメモリシステム
CN106297881B (zh) 非挥发性存储器的健康管理
JP2012068764A (ja) メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法
WO2021029143A1 (ja) 半導体記憶装置及び該装置における不良メモリセルに対するエラー処理方法
US20230153038A1 (en) Storage device performing self-diagnosis and storage system including the same

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

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

Country of ref document: EP

Kind code of ref document: A1