CN108959112A - 存储系统及使用其的损耗均衡方法 - Google Patents
存储系统及使用其的损耗均衡方法 Download PDFInfo
- Publication number
- CN108959112A CN108959112A CN201810419393.8A CN201810419393A CN108959112A CN 108959112 A CN108959112 A CN 108959112A CN 201810419393 A CN201810419393 A CN 201810419393A CN 108959112 A CN108959112 A CN 108959112A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- address
- memory block
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Debugging And Monitoring (AREA)
- Communication Control (AREA)
- Memory System (AREA)
Abstract
一种存储系统,可以包括:存储器件,其包括多个存储体;以及存储器控制器,其适用于将连续逻辑地址的数据分配至相应存储体,并且控制数据读取/写入操作;其中,存储器控制器对相应存储体的页进行分组,并且基于对页的每个组的数据的读取/写入操作来执行损耗均衡操作。
Description
相关申请的交叉引用
本申请要求2017年5月8日提交的申请号为10-2017-0057542的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
本发明的各种示例实施例涉及包括非易失性存储器件的存储系统,更具体地,涉及对非易失性存储器件执行损耗均衡的存储系统及其操作方法。
背景技术
存储器件大致分为易失性存储器件和非易失性存储器件。
易失性存储器件具有较高的写入/读取速度,但是在电源被去除时易丢失储存于其中的数据。易失性存储器件包括动态随机存取存储器(DRAM)、静态RAM(SRAM)等。另一方面,非易失性存储器件具有相对较低的写入/读取速度,但是即使电源被去除也保留储存于其中的数据。因此,非易失性存储器件用于储存无论是否提供电源都必须被保留的数据。非易失性存储器件可以包括:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、相变随机存取存储器(PCRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)和铁电式RAM(FRAM)。
在非易失性存储器件之中,RRAM和PCRAM具有有限的写入耐久性。写入耐久性可以定义为:在储存介质失去其可靠性之前可以施加至存储块的写入(即,编程)周期的数量。可以通过估算存储器使用的频率和整个存储器的使用量来计算写入耐久性。
因此,当写入操作集中在特定的存储单元区域上时,存储器件的寿命可能会迅速缩短。为了防止写入操作集中在特定存储单元区域上,存储器件执行损耗均衡操作,以便可以在存储器件的整个存储单元区域中均匀地执行写入操作。损耗均衡操作用于延长储存介质的写入耐久性。这种技术是要将存储单元区域均匀地选择为储存介质的写入操作的目标区域。因此,当减少储存介质中的特定存储单元区域的重复使用时,可以均匀使用所有存储单元区域。
通常,损耗均衡操作由存储器控制器执行。例如,当针对储存介质的写入请求被输入时,存储器控制器计算与写入请求对应的存储单元区域上的重写计数。通过参考重写计数而改变数据的逻辑地址与物理地址之间的映射关系,存储器控制器控制储存介质,以对存储单元区域中相对较少使用的区域执行写入操作。
在包括多个存储器件的存储系统中,存储器控制器必须有效地控制多个存储器件以高速处理数据。为了有效地控制多个存储器件,存储器控制器例如通过交叉存取方案(interleaving scheme)以并行的方式控制存储器件。即,存储器控制器并行地控制多个存储器件以处理数据,并且使相应存储器件的空闲时间最小化。
当在多个存储器件之中并行地调度上述损耗均衡操作时,可以增强包括多个存储器件的存储系统的性能。交叉存取方案可以通过在从主机请求的数据的逻辑地址与存储器件的物理地址之间的映射(比如损耗均衡操作)来实现。因此,存储器控制器需要将数据的逻辑地址映射至物理地址,以便可以反映这种操作。
发明内容
各种实施例针对能够在多个存储区域之中并行执行损耗均衡操作的存储系统及其操作方法。
根据本发明的一个实施例,一种存储系统,包括:存储器件,其包括多个存储体;以及存储器控制器,其适用于将连续逻辑地址的数据分配至相应存储体,控制数据的读取/写入操作,对相应存储体的页进行分组,并且根据以页的每个组为基础的数据的读取/写入操作来执行损耗均衡操作。
根据本发明的一个实施例,一种存储系统的操作方法,其通过交叉存取操作来从存储器件读取数据以及将数据写入存储器件,该操作方法包括:对包括在存储器件中的多个存储体的相应页进行分组;对所分组的数据的读取/写入操作进行检查;根据读取/写入操作的检查的结果来选择所分组中的一个组;以及对选中的组执行损耗均衡操作。
根据本发明的一个实施例,一种存储系统,包括:存储体,每个存储体包括多个块并且适用于储存数据;以及控制器,其适用于控制多个存储体逐页地执行具有连续逻辑地址的数据的写入操作,其中,控制器将逻辑地址依次映射至相应存储体中的页的物理地址并且将相应存储体的页设置为存储块,以及其中,一旦写入操作完成,控制器就对存储块执行损耗均衡操作。
附图说明
图1是示出根据本公开的一个实施例的包括存储系统的数据处理系统的示图。
图2是示出图1的存储器控制器的框图。
图3是示出图2的存储器的框图。
图4是示出图3的损耗均衡模块的框图。
图5是描述图4的损耗均衡模块的操作的示图。
图6是示出根据本公开的一个实施例的存储系统的损耗均衡操作的流程图。
具体实施方式
下面将参考附图更详细地描述各种示例性实施例。然而,本发明可以以不同的形式来实施,并且不应被解释为限于本文所阐述的实施例。相反,提供这些实施例使得本公开将是全面和完整的,并且将本发明的范围充分地传达给本领域技术人员。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。
图1是示出根据本公开的一个实施例的包括存储系统120的数据处理系统100的示图。参考图1,数据处理系统100还可以包括主机110。
主机110可以包括便携式电子设备,诸如移动电话和MP3播放器,或者其他电子设备,诸如笔记本电脑、台式计算机、游戏机、电视和光束投影仪。
存储系统120可以响应于来自主机110的请求而操作。存储系统120可以储存被主机110访问的数据。即,存储系统120可以用作主机110的主存储单位或辅助存储单位。存储系统120可以包括存储器控制器130和存储器件140。
存储器控制器130可以响应于来自主机110的请求而控制存储器件140。例如,存储器控制器130可以将从存储器件140读取的数据DATA提供给主机110。针对另一个示例,存储器控制器130可以将从主机110提供的数据DATA储存至存储器件140中。对于此操作,存储器控制器130可以将命令CMD和地址ADD以及数据DATA传输至存储器件140,并且控制读取操作或写入(编程)操作。
存储器件140可以包括具有多个存储单元的非易失性存储器件。根据本实施例,存储器件140可以包括PCRAM。尽管本实施例不限于此,但是存储器件140还可以包括可变电阻存储器件,诸如MRAM、PRAM和FRAM。可选地,存储器件140可以包括诸如NAND或NOR快闪存储器的非易失性存储器件。
存储器件140可以包括多个存储体BANK0至BANK7。为了便于描述,图1示出了八个存储体BANK0至BANK7,但是本实施例不限于此。尽管未示出,但是存储体BANK0至BANK7中的每个存储体都包括由包括在存储器件140中的存储面划分的多个页。页可以表示用于划分被执行读取操作或写入操作的存储单元的单位,而存储面可以表示用于划分共享页缓冲器的存储单元块的单位。
因此,存储器控制器130可以控制在存储器件140的存储体BANK0至BANK7中的交叉存取操作。存储器控制器130可以并行地访问相应存储体BANK0至BANK7的页,以便处理(读取/写入)数据。
图2是示出图1的存储器控制器130的框图。参考图2,存储器控制器130可以包括处理器210和存储器220。然而,存储器控制器130的组件不限于此。例如,存储器控制器130还可以包括:主机接口、存储器接口、纠错码(ECC)单元等。
处理器210可以包括微处理器或者CPU。处理器210可以控制存储器控制器130的总体操作。处理器210可以驱动固件以控制存储器控制器130的总体操作。固件被加载至存储器220,然后被驱动。
存储器220可以用作存储器控制器130的工作存储器,并且储存用于驱动存储系统120的数据。更具体地,存储器220可以储存存储器控制器130响应于来自主机110的请求而执行存储器件140的读取操作或写入操作所需的固件和数据。
存储器220可以包括易失性存储器。如上所述,存储器220不仅可以储存执行存储器件140的各种操作所需的数据,而且也可以暂时地储存在主机110与存储器件140之间所读取/写入的数据。为了这种储存操作,存储器220可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、映射缓冲器/高速缓存等。
图3是示出图2的存储器220的框图。参考图3,加载至存储器220的固件可以包括多个模块和管理数据。
根据本实施例,固件可以包括交叉存取模块310、地址映射表320和损耗均衡模块330。然而,存储器220的配置不限于此。例如,固件还可以包括:坏块管理模块,其用于管理包括有缺陷存储单元的块;以及突然掉电管理模块,其用于为意外掉电做准备。
交叉存取模块310可以在存储器件140的多个存储体BANK0至BANK7之中执行交叉存取操作。交叉存取模块310可以通过交叉存取操作来管理要被写入存储器件140中的数据。例如,交叉存取模块310可以将要被写入存储器件140中的数据划分成预定大小,并且混合所划分的数据以将所划分的数据重新配置成实际要被写入存储器件140中的交叉存取数据。交叉存取模块310可以将交叉存取数据并行地写入到存储器件140的存储体BANK0至BANK7中。
当主机110访问存储系统120时,主机110可以提供数据的逻辑地址。存储器控制器130可以将所提供的逻辑地址转换为存储器件140的物理地址,并且通过参考物理地址来执行所请求的操作。对于地址转换操作,固件可以包括地址映射表320,并且储存或管理逻辑地址与物理地址之间的转换(映射)关系。
通过交叉存取操作,交叉存取模块310将连续逻辑地址的数据分配至存储器件140的相应存储体BANK0至BANK7,并且控制数据读取/写入操作。对于此操作,交叉存取模块310可以将数据的逻辑地址依次映射至在相应存储体BANK0至BANK7中的页的物理地址,并且将映射关系储存在映射表320中。因此,存储器控制器130可以通过交叉存取操作在存储器件140的存储体BANK0至BANK7之中并行地处理数据。
损耗均衡模块330可以管理构成存储器件140的存储单元的损耗水平。当存储器件140包括可变电阻存储器件时,存储器件140可以支持数据重写。换言之,存储器件140的存储单元可以因写入操作而老化,并且老化了的存储单元(即,损耗的存储单元)可以引起缺陷(例如,物理缺陷)。
因此,损耗均衡模块330可以通过写入操作的单位或者根据写入操作的方案来对存储器件140执行损耗均衡操作。根据一个实施例,可以在存储器件140的多个存储体BANK0至BANK7之中以交叉存取方式来处理数据。因而,损耗均衡模块330也可以在多个存储体BANK0至BANK7之中以交叉存取方式执行损耗均衡操作。
对于此操作,损耗均衡模块330可以对相应存储体BANK0至BANK7中的页进行分组。例如,当存储体BANK0至BANK7中的每个存储体包括N个页(其中,N是自然数)时,相应存储体BANK0至BANK7中的第K页可以被分组以形成第K组(其中,K是小于N的自然数)。损耗均衡模块330可以根据对每个页组的数据的读取/写入操作来执行损耗均衡操作。
图4是示出图3的损耗均衡模块330的框图。参考图4,损耗均衡模块330可以包括地址转换单元410、损耗均衡单元420和设置单元430。图4示出了损耗均衡模块330中包括地址转换单元410。然而,本公开不限于此,并且地址转换单元410可以被独立地配置或者由交叉存取模块310共享。
地址转换单元410可以将从主机110输入的数据的逻辑地址映射至存储器件140的物理地址。通过交叉存取操作,地址转换单元410可以将数据的逻辑地址依次映射至相应存储体BANK0至BANK7中的页的物理地址。此时,为了以被依次映射的页为基础来执行损耗均衡,地址转换单元410可以将相应存储体BANK0至BANK7中的对应页分组为使用相同物理块地址的存储块。地址转换单元410可以将映射关系储存在地址映射表320中,并且通过参考地址映射表320将逻辑地址转换成物理地址。
损耗均衡单元420可以对由地址转换单元设置的存储块的写入操作的完成进行检查,根据检查结果来选择存储块中的一个存储块,以及对选中的存储块执行损耗均衡操作。损耗均衡单元420可以对存储块的数据的写入操作进行计数,并且将该计数与参考计数进行比较。
响应于读取/写入命令R/W,损耗均衡单元420可以在从主机110请求写入操作时增大写入操作的目标存储块的计数。此外,损耗均衡单元420可以将增大的计数与参考计数进行比较。此时,当增大的计数等于或大于参考计数或者写入操作的计数等于或大于参考计数时,损耗均衡单元420可以将对应的存储块选择为损耗均衡操作的目标存储块。
参考图4,损耗均衡单元420可以包括块交换单元421和页交换单元422。
块交换单元421可以将选中的存储块的数据与另一存储块的数据进行交换,选中的存储块表示计数等于或大于参考计数的存储块。此时,另一个存储块可以包括对其的写入操作从未进行计数的存储块或计数相对较低的存储块。
此时,可以通过交叉存取操作在存储体BANK0至BANK7之中并行处理通过损耗均衡操作而被交换的数据。地址转换单元410还可以通过交叉存取操作将数据的逻辑地址重新映射至物理地址。通过重新映射操作,地址转换单元410可以改变储存在地址映射表320中的地址映射关系。将参照图5示出的实施例更详细地描述通过交叉存取操作的数据交换或地址重新映射。
页交换单元422可以对包括在选中的存储块或计数等于或大于参考计数的存储块中的页的数据进行交换。页交换单元422可以对包括在选中的存储块中的全部页或部分页的数据进行交换。此时,页交换单元422可以选择选中的存储块中的任意页。块交换单元421和页交换单元422可以具有不同的参考计数。
设置单元430可以储存用于决定损耗均衡操作的基础信息。例如,设置单元430可以设置损耗均衡操作的参考值,诸如存储器件140中包括的存储体的数量、相应页组中页的数量和物理块地址的比特位的数量。设置单元430可以设置块交换单元421的参考计数和页交换单元422的参考计数,并且地址转换单元410可以通过参考由设置单元430设置和储存的信息来将数据的逻辑地址映射至存储器件140的物理地址。
图5是描述图4的损耗均衡模块330的操作的示图。
地址转换单元410可以将从主机110输入的逻辑地址映射成存储器件140的物理地址。此时,逻辑地址可以包括逻辑块地址LBA和内部地址LA。逻辑块地址LBA可以表示对应数据的逻辑块,而内部地址LA可以表示逻辑块中的逻辑页的位置。
如上所述,可以将数据分配到存储器件140中包括的相应存储体中,并且通过存储器件140的交叉存取操作来并行处理数据。因此,存储器件140的物理地址可以包括存储体地址,该存储体地址表示数据被分配到其中的存储体。图5示出了存储器件140包括四个存储体BANK0至BANK3。因而,存储体地址BA可以包括2-比特位地址。
地址转换单元410可以进一步地分配物理块地址PBA和内部地址PA,以便表示储存有数据的页。物理块地址PBA可以表示包括页的存储块,而内部地址PA可以表示存储块中的页的位置。图5示出了相应存储体BANK0至BANK3中的每个存储体中的存储块BLK0至BLK4中的每个存储块包括四个页。因此,内部地址PA也可以包括2-比特位地址。然而,应当注意的是,本实施例不限于此,并且可以根据实施例来改变这种配置。
图5示出了通过损耗均衡操作来将第一存储块BLK0的数据与第三存储块BLK2的数据进行交换。参考图5,将更详细地描述根据本实施例的损耗均衡操作。在图5中,相应存储体BANK0至BANK3的内部方框表示页,并且在页中所呈现的数字可以表示储存在对应页中的数据的逻辑地址。即,可以将逻辑地址0至79的数据依次储存在相应存储体BANK0至BANK3的对应页中。
对于此操作,地址转换单元410可以将数据的逻辑地址依次映射至相应存储体BANK0至BANK3的对应页的物理地址。例如,地址转换单元410可以将数据的逻辑地址0至3依次映射至相应存储体BANK0至BANK3的第一页的物理地址。如图5所示,当相应存储体BANK0至BANK3的第K页被全部映射时,相应存储体BANK0至BANK3的第(K+1)页可以被依次映射。
为了以被依次映射的页为基础来执行损耗均衡,地址转换单元410可以将相应存储体BANK0至BANK3的对应页分组为使用相同物理块地址的存储块BLK0至BLK4。例如,图5示出了存储体BANK0至BANK3的前四页被分组为具有第一存储块BLK0的相同物理块地址。同样,图5示出了存储体BANK0至BANK3的第二个四页被分组为具有第二存储块BLK1的相同物理块地址。
然后,根据损耗均衡操作,损耗均衡单元420可以对存储块BLK0至BLK4中的每个存储块的写入操作进行计数。损耗均衡单元420将该计数与参考计数进行比较,并且将存储块BLK0至BLK4之中计数等于或大于参考计数的存储块选择为损耗均衡操作的目标存储块。
在存储块BLK0至BLK4之中,可以将选中的存储块的数据与计数相对较低的另一个存储块的数据进行交换。例如,可以将第一存储块BLK0的数据与第三存储块BLK2的数据进行交换。此时,可以通过交叉存取操作在存储体BANK0至BANK3之中并行处理所交换的数据。
在第一存储体BANK0中,可以将第一存储块BLK0的逻辑地址0、4、8和12的数据与第三存储块BLK2的逻辑地址32、36、40和44的数据进行交换。类似地,在第四存储体BANK3中,可以将第一存储块BLK0的逻辑地址3、7、11和15的数据与第三存储块BLK2的逻辑地址35、39、43和47的数据进行交换。结果,可以维持内部地址PA以及所交换的数据的存储体地址BA。因此,地址转换单元410可以仅将与第一存储块BLK0和第三存储块BLK2相对应的物理块地址PBA进行交换,由此完成通过交叉存取操作的地址重新映射。
图6是示出根据本实施例的存储系统120的损耗均衡操作的流程图。
参考图6,在步骤S610中,存储器控制器130的损耗均衡模块330可以对与包括在如图1所示例的存储器件140中的相应存储体BANK0至BANK7相对应的页进行分组。如上所述,存储系统120可以通过交叉存取操作从存储器件140读取数据以及将数据写入存储器件140。换言之,地址转换单元410可以将数据的逻辑地址依次映射至相应存储体BANK0至BANK7中的对应页的物理地址。因此,连续逻辑地址的数据可以被分配至相应存储体BANK0至BANK7并且被并行处理。为了以被依次映射的页为基础来执行损耗均衡,地址转换单元410可以将相应存储体BANK0至BANK7的对应页分组为使用相同物理块地址的存储块。
在步骤S620和S630中,损耗均衡模块330可以对页组的读取/写入操作的完成进行检查。具体地,在步骤S620中,损耗均衡单元420可以对页组或存储块的写入操作进行计数。当从主机110请求写入操作时,损耗均衡单元420可以增大与所请求的写入操作相对应的存储块的计数。此外,在步骤S630中,损耗均衡单元420可以将该计数与参考计数进行比较。即,当存储块的计数增大时,损耗均衡单元420可以将增大的计数与参考计数进行比较。
根据在步骤S620和S630中的读取/写入操作的检查的结果,在步骤S640和S650中,损耗均衡模块330将页组中的一个页组选择为目标页组并且对选中的页组执行损耗均衡操作。即,当损耗均衡单元420的比较结果表示该计数等于或大于参考计数(在步骤S630中为“是”)时,在步骤S640中,损耗均衡单元420可以选择对应的存储块,并且将选中的存储块的数据与存储块之中计数相对较低的另一个存储块的数据进行交换。此时,可以通过交叉存取操作在存储体BANK0至BANK7之中并行处理所交换的数据。因此,地址转换单元410可以通过仅将所交换的数据的物理块地址进行交换来执行重新映射。在另一个实施例中,在步骤S650中,损耗均衡单元420可以将包括在选中的存储块中的页的数据进行交换。
根据本实施例,可以在包括在存储系统中的多个存储区域之中并行地执行损耗均衡操作。即,可以在多个存储区域之中以交叉存取方式来执行用于损耗均衡操作的数据读取/写入操作。对于此操作,存储系统可以跨多个存储区域设置损耗均衡操作的单位,根据所设置的操作单位来将数据的逻辑地址映射至存储区域的物理地址。因此,存储系统可以减少损耗均衡操作所需的数据处理时间,并且提高损耗均衡性能。
虽然出于说明目的已经描述了各种实施例,但是对于本领域技术人员明显的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (21)
1.一种存储系统,包括:
存储器件,其包括多个存储体;以及
存储器控制器,其适用于:将连续逻辑地址的数据分配至相应存储体,控制数据的读取/写入操作,对相应存储体的页进行分组,并且基于对页的每个组的数据的读取/写入操作来执行损耗均衡操作。
2.根据权利要求1所述的存储系统,其中,存储器控制器将数据的逻辑地址依次映射至相应存储体的对应页的物理地址,并且通过交叉存取操作来控制存储体之中的数据的读取/写入操作。
3.根据权利要求2所述的存储系统,其中,存储器控制器通过交叉存取操作在存储体之中并行处理数据。
4.根据权利要求2所述的存储系统,其中,物理地址具有存储体地址、物理块地址和内部地址。
5.根据权利要求2所述的存储系统,其中,存储器控制器通过对相应存储体的对应页进行分组来设置使用一个物理块地址的存储块。
6.根据权利要求5所述的存储系统,其中,存储器控制器包括:
地址转换单元,其适用于将逻辑地址映射至物理地址并且设置存储块;
损耗均衡单元,其适用于对存储块的数据的写入操作进行检查,根据检查结果来选择存储块中的一个存储块,并且对选中的存储块执行损耗均衡操作;以及
设置单元,其适用于设置损耗均衡操作的参考值。
7.根据权利要求6所述的存储系统,其中,损耗均衡单元对每个存储块的数据的写入操作进行计数,并且选择存储块之中计数值等于或大于参考值的存储块。
8.根据权利要求7所述的存储系统,其中,损耗均衡单元包括块交换单元,所述块交换单元适用于将选中的存储块的数据与存储块之中计数相对较低的另一个存储块的数据进行交换。
9.根据权利要求8所述的存储系统,其中,所交换的数据通过交叉存取操作在存储体之中被并行处理。
10.根据权利要求8所述的存储系统,其中,地址转换单元对所交换的数据的物理块地址进行重新映射。
11.根据权利要求7所述的存储系统,其中,损耗均衡单元包括页交换单元,所述页交换单元适用于将包括在选中的存储块中的页的数据进行交换。
12.一种存储系统的操作方法,其通过交叉存取操作来从存储器件读取数据以及将数据写入存储器件,所述操作方法包括:
对包括在存储器件中的多个存储体的相应页进行分组;
对所分组的数据的读取/写入操作进行检查;
根据读取/写入操作的检查的结果来选择所分组中的一个组;以及
对选中的组执行损耗均衡操作。
13.根据权利要求12所述的操作方法,还包括:将数据的逻辑地址依次映射至相应存储体的对应页的物理地址,并且通过交叉存取操作来读取/写入数据。
14.根据权利要求12所述的操作方法,其中,对相应页进行分组包括:通过对相应存储体的对应页进行分组来设置使用一个物理块地址的存储块。
15.根据权利要求14所述的操作方法,其中,对所分组的数据的读取/写入操作进行检查包括:
对每个存储块的数据写入操作进行计数;以及
将计数值与参考值进行比较。
16.根据权利要求15所述的操作方法,其中,选择所分组中的一个组并执行损耗均衡操作包括:
基于比较的结果而选择存储块之中计数值等于或大于参考值的存储块;以及
将选中的存储块的数据与存储块之中计数值相对低的另一个存储块的数据进行交换。
17.根据权利要求16所述的操作方法,其中,所交换的数据通过交叉存取操作在存储体之中被并行处理。
18.根据权利要求16所述的操作方法,其中,交换选中的存储块的数据包括对所交换的数据的物理块地址进行重新映射。
19.根据权利要求15所述的操作方法,其中,选择所分组中的一个组并执行损耗均衡操作包括:
基于比较的结果而选择存储块之中计数值等于或大于参考值的存储块;以及
对包括在选中的存储块中的页的数据进行交换。
20.根据权利要求12所述的操作方法,其中,连续逻辑地址的数据通过交叉存取操作被分配至相应存储体并且被并行处理。
21.一种存储系统,包括:
存储体,每个存储体包括多个块并且适用于储存数据;以及
控制器,其适用于控制所述多个存储体逐页地执行具有连续逻辑地址的数据的写入操作,
其中,控制器将逻辑地址依次映射至相应存储体中的页的物理地址并且将相应存储体的页设置为存储块,以及
其中,一旦写入操作完成,控制器就对存储块执行损耗均衡操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170057542A KR20180123385A (ko) | 2017-05-08 | 2017-05-08 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
KR10-2017-0057542 | 2017-05-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959112A true CN108959112A (zh) | 2018-12-07 |
CN108959112B CN108959112B (zh) | 2023-08-04 |
Family
ID=64014656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810419393.8A Active CN108959112B (zh) | 2017-05-08 | 2018-05-04 | 存储系统及使用其的损耗均衡方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10871919B2 (zh) |
KR (1) | KR20180123385A (zh) |
CN (1) | CN108959112B (zh) |
TW (1) | TWI778028B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837444A (zh) * | 2019-09-30 | 2020-02-25 | 华为技术有限公司 | 一种存储器故障处理方法及装置 |
CN112230845A (zh) * | 2019-07-15 | 2021-01-15 | 美光科技公司 | 存储器子系统中基于子组写计数的损耗均衡 |
CN112835513A (zh) * | 2019-11-22 | 2021-05-25 | 财团法人工业技术研究院 | 控制数据读写装置与方法 |
CN113535078A (zh) * | 2020-03-31 | 2021-10-22 | 爱思开海力士有限公司 | 控制器、控制器的操作方法以及存储器系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102500618B1 (ko) * | 2017-12-12 | 2023-02-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11188461B2 (en) | 2019-06-19 | 2021-11-30 | Micron Technology, Inc. | Garbage collection adapted to memory device life expectancy |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060053254A1 (en) * | 2002-10-04 | 2006-03-09 | Koninklijke Philips Electronics, N.V. | Data processing system and method for operating the same |
US20080313505A1 (en) * | 2007-06-14 | 2008-12-18 | Samsung Electronics Co., Ltd. | Flash memory wear-leveling |
US20130304965A1 (en) * | 2012-05-08 | 2013-11-14 | Phison Electronics Corp. | Storage unit management method, memory controller and memory storage device using the same |
US20150347292A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
CN106462500A (zh) * | 2014-05-28 | 2017-02-22 | 美光科技有限公司 | 用于执行损耗均衡操作的设备及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3507132B2 (ja) * | 1994-06-29 | 2004-03-15 | 株式会社日立製作所 | フラッシュメモリを用いた記憶装置およびその記憶制御方法 |
KR100974215B1 (ko) | 2008-10-02 | 2010-08-06 | 주식회사 하이닉스반도체 | 반도체 스토리지 시스템 및 그 제어 방법 |
US9063874B2 (en) * | 2008-11-10 | 2015-06-23 | SanDisk Technologies, Inc. | Apparatus, system, and method for wear management |
US20110161553A1 (en) * | 2009-12-30 | 2011-06-30 | Nvidia Corporation | Memory device wear-leveling techniques |
US9594675B2 (en) * | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
CN103488578B (zh) * | 2012-12-28 | 2016-05-25 | 晶天电子(深圳)有限公司 | 虚拟存储设备(vmd)应用/驱动器 |
CN104008061B (zh) * | 2013-02-22 | 2018-01-23 | 华为技术有限公司 | 内存回收方法及装置 |
KR102042859B1 (ko) * | 2013-10-14 | 2019-11-08 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
US9465537B2 (en) * | 2014-05-16 | 2016-10-11 | Kabushiki Kaisha Toshiba | Memory system and method of controlling memory system |
KR20160096435A (ko) * | 2015-02-05 | 2016-08-16 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
-
2017
- 2017-05-08 KR KR1020170057542A patent/KR20180123385A/ko unknown
-
2018
- 2018-03-08 US US15/915,147 patent/US10871919B2/en active Active
- 2018-03-08 TW TW107107876A patent/TWI778028B/zh active
- 2018-05-04 CN CN201810419393.8A patent/CN108959112B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060053254A1 (en) * | 2002-10-04 | 2006-03-09 | Koninklijke Philips Electronics, N.V. | Data processing system and method for operating the same |
US20080313505A1 (en) * | 2007-06-14 | 2008-12-18 | Samsung Electronics Co., Ltd. | Flash memory wear-leveling |
US20130304965A1 (en) * | 2012-05-08 | 2013-11-14 | Phison Electronics Corp. | Storage unit management method, memory controller and memory storage device using the same |
CN106462500A (zh) * | 2014-05-28 | 2017-02-22 | 美光科技有限公司 | 用于执行损耗均衡操作的设备及方法 |
US20150347292A1 (en) * | 2014-05-29 | 2015-12-03 | International Business Machines Corporation | Writing an address conversion table for nonvolatile memory wear leveling |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230845A (zh) * | 2019-07-15 | 2021-01-15 | 美光科技公司 | 存储器子系统中基于子组写计数的损耗均衡 |
CN110837444A (zh) * | 2019-09-30 | 2020-02-25 | 华为技术有限公司 | 一种存储器故障处理方法及装置 |
CN110837444B (zh) * | 2019-09-30 | 2022-10-18 | 超聚变数字技术有限公司 | 一种存储器故障处理方法及装置 |
CN112835513A (zh) * | 2019-11-22 | 2021-05-25 | 财团法人工业技术研究院 | 控制数据读写装置与方法 |
CN113535078A (zh) * | 2020-03-31 | 2021-10-22 | 爱思开海力士有限公司 | 控制器、控制器的操作方法以及存储器系统 |
CN113535078B (zh) * | 2020-03-31 | 2024-04-02 | 爱思开海力士有限公司 | 控制器、控制器的操作方法以及存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
US20180321878A1 (en) | 2018-11-08 |
TWI778028B (zh) | 2022-09-21 |
TW201907288A (zh) | 2019-02-16 |
KR20180123385A (ko) | 2018-11-16 |
CN108959112B (zh) | 2023-08-04 |
US10871919B2 (en) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959112A (zh) | 存储系统及使用其的损耗均衡方法 | |
US20210081315A1 (en) | Reconstruction of address mapping in a host of a storage system | |
CN112470113B (zh) | 存储器系统中的隔离性能域 | |
US9478315B2 (en) | Bit error rate mapping in a memory system | |
KR102530369B1 (ko) | 저장 장치 및 그 동작 방법 | |
US11461228B2 (en) | Multilevel addressing | |
CN102436406A (zh) | 半导体装置及其数据存取方法 | |
US10719272B2 (en) | Data storage device and control method for non-volatile memory | |
US11714752B2 (en) | Nonvolatile physical memory with DRAM cache | |
US20180107391A1 (en) | Storage system having a host that manages physical data locations of storage device | |
CN108735253A (zh) | 非易失性存储器存储系统 | |
US11868643B2 (en) | Background memory scan block selection | |
US11605439B2 (en) | Remapping bad blocks in a memory sub-system | |
CN109800178A (zh) | 垃圾收集方法以及用于混合地址映射的存储器系统 | |
CN111352854B (zh) | 存储装置、控制器及操作存储装置的方法 | |
US11782788B2 (en) | Error-correction-detection coding for hybrid memory module | |
CN113946283B (zh) | 存储器装置的分区命名空间中的部分区存储器单元处置 | |
US10025724B1 (en) | Address mapping method of memory system | |
CN112230843A (zh) | 限制热-冷交换磨损均衡 | |
CN109933467A (zh) | 存储器系统及其操作方法 | |
CN113515466A (zh) | 用于多内核之间动态逻辑块地址分布的系统和方法 | |
CN105589810A (zh) | 数据储存器件及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |