CN115640161A - 存储器控制器、其操作方法以及包括其的计算机系统 - Google Patents
存储器控制器、其操作方法以及包括其的计算机系统 Download PDFInfo
- Publication number
- CN115640161A CN115640161A CN202210676017.3A CN202210676017A CN115640161A CN 115640161 A CN115640161 A CN 115640161A CN 202210676017 A CN202210676017 A CN 202210676017A CN 115640161 A CN115640161 A CN 115640161A
- Authority
- CN
- China
- Prior art keywords
- physical address
- data
- address
- memory
- data stored
- 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.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 249
- 238000011017 operating method Methods 0.000 title description 7
- 238000013507 mapping Methods 0.000 claims abstract description 165
- 238000013500 data storage Methods 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 13
- 238000012937 correction Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 24
- 239000010410 layer Substances 0.000 description 12
- 239000000872 buffer Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 8
- 230000008859 change Effects 0.000 description 8
- 238000011084 recovery Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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/061—Improving I/O performance
-
- 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/0658—Controller construction arrangements
-
- 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/1016—Performance improvement
-
- 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
- G06F2212/2022—Flash 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种存储器控制器,该存储器控制器包括:映射数据存储装置,用于存储映射数据;以及读取操作控制器,用于从主机接收读取请求和与读取请求相对应的目标逻辑地址,基于映射数据获取被映射到目标逻辑地址的第一物理地址,并且获取存储在第一物理地址处的数据。当存储在第一物理地址处的数据中存在不可校正错误时,读取操作控制器获取在第一物理地址之前的先前被映射到目标逻辑地址的第二物理地址,获取存储在第二物理地址处的数据,并且向主机提供存储在第二物理地址处的数据和表示发生不可校正错误的信息。
Description
相关申请的交叉引用
本申请要求于2021年7月19日提交的申请号为10-2021-0094463的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文,以用于所有目的。
技术领域
本公开总体上涉及一种电子装置,并且更具体地,涉及一种存储器控制器、该存储器控制器的操作方法以及包括该存储器控制器的计算系统。
背景技术
存储装置是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储装置可以包括用于存储数据的存储器装置和用于控制存储器装置的存储器控制器。存储器装置可以分类为易失性存储器装置或非易失性存储器装置。
易失性存储器装置是仅在供应电力时存储数据并在电力的供应中断时丢失所存储数据的存储器装置。易失性存储器装置的示例可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器装置是即使在电力供应中断时数据也不丢失的存储器装置。非易失性存储器装置的示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEROM)、闪速存储器等。
发明内容
实施例提供了一种具有改进的读取操作性能的存储器控制器、该存储器控制器的操作方法以及包括该存储器控制器的计算系统。
根据本公开的一方面,提供了一种用于控制存储器装置的读取操作的存储器控制器,该存储器控制器包括:映射数据存储装置,被配置成存储映射数据,映射数据包括从主机提供的逻辑地址与被映射到该逻辑地址的物理地址之间的映射信息;以及读取操作控制器,被配置成从主机接收读取请求和与该读取请求相对应的目标逻辑地址,基于映射数据获取被映射到该目标逻辑地址的第一物理地址,并且获取存储在第一物理地址处的数据,其中当存储在第一物理地址处的数据具有不可校正错误时,读取操作控制器获取在第一物理地址被映射之前被映射到目标逻辑地址的第二物理地址,获取存储在第二物理地址处的数据,并且向主机提供存储在第二物理地址处的数据和表示发生不可校正错误的信息。
根据本公开的另一方面,提供了一种计算系统,该计算系统包括:主机,被配置成提供读取请求和与该读取请求相对应的目标逻辑地址;以及存储装置,被配置成接收读取请求和目标逻辑地址,获取被映射到目标逻辑地址的第一物理地址,确定存储在第一物理地址处的数据具有不可校正错误,获取在第一物理地址之前先前被映射到目标逻辑地址的第二物理地址,并且向主机提供存储在第二物理地址处的数据和关于发生不可校正错误的信息,其中主机基于存储在第二物理地址处的数据来恢复与目标逻辑地址相对应的数据。
根据本公开的另一方面,提供了一种操作存储器控制器的方法,该方法包括:从主机接收读取请求和与该读取请求相对应的目标逻辑地址;获取被映射到目标逻辑地址的第一物理地址;从存储器装置接收存储在第一物理地址处的数据;从存储在第一物理地址处的数据中检测不可校正错误;获取在第一物理地址之前先前被映射到目标逻辑地址的第二物理地址;从存储器装置接收存储在第二物理地址处的数据;并且向主机提供存储在第二物理地址处的数据和表示发生不可校正错误的信息。
附图说明
现在将在下文中参照附图更充分地描述示例实施例;然而,这些实施例可以以不同的形式实现,并且不应当被解释为限于本文阐述的实施例。相反,提供这些实施例以使得本公开将是彻底且完整的,并且将示例实施例的范围充分传达给本领域技术人员。
在附图中,为了清楚地说明,尺寸可能被放大。将理解的是,当元件被称为在两个元件“之间”时,该元件可能是这两个元件之间的唯一元件,或者也可能存在一个或多个中间元件。相同的附图标记始终指代相同的元件。
图1是示出根据本公开的实施例的计算系统的示图。
图2是示出图1所示的存储器装置的示图。
图3是示出图2所示的存储块之中的任意一个存储块的结构的示图。
图4是示出根据本公开的实施例的映射数据的示图。
图5是示出根据本公开的实施例的先前映射数据的示图。
图6A和图6B是示出根据本公开的实施例的获取第二物理地址的操作的示图。
图7A和图7B是示出根据本公开的实施例的主机的恢复操作的示图。
图8是示出根据本公开的实施例的计算系统的读取操作的流程图。
图9是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图10是示出根据本公开的实施例的当错误校正操作失败时存储器控制器的操作方法的流程图。
图11是示出根据本公开的实施例的存储器控制器的示图。
图12是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
图13是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
图14是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
本文公开的特定结构或功能描述仅是说明性的,用于描述根据本公开的构思的实施例的目的。根据本公开的构思的实施例可以以各种形式实施,并且不能被解释为限于本文阐述的实施例。
图1是示出根据本公开的实施例的计算系统10的示图。
参照图1,计算系统10可以包括存储装置50和主机300。
存储装置50可以包括存储器装置100和用于控制存储器装置100的操作的存储器控制器200。存储装置50可以是在诸如以下的主机300的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载式信息娱乐系统。
根据提供与主机300通信的通信方案的主机接口,存储装置50可以被制造为各种类型的存储装置中的任意一种。例如,存储装置50可以利用诸如以下的各种类型的存储装置中的任意一种来实施:固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC(micro-MMC)、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、记忆棒等。
存储装置50可以被制造为各种封装类型中的任意一种。例如,存储装置50可以被制造为诸如以下的各种封装类型中的任意一种:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100可以在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列包括用于存储数据的多个存储器单元。
存储器单元中的每一个可以被配置为以下中的任意一种:存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器单元阵列(未示出)可以包括多个存储块。每个存储块可以包括多个存储器单元。一个存储块可以包括多个页面。在实施例中,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻式随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、自旋转移扭矩随机存取存储器(STT-RAM)等。在本说明书中,为了便于描述,假设并描述了存储器装置100是NAND闪速存储器的情况。
存储器装置100可以从存储器控制器200接收命令CMD和地址ADDR,并且访问存储器单元阵列中由地址ADDR选择的区域。存储器装置100可以对由地址ADDR选择的区域执行由命令CMD指示的操作。例如,存储器装置100可以执行写入操作(编程操作)、读取操作和擦除操作。在编程操作中,存储器装置100可以将数据编程在由地址ADDR选择的区域。在读取操作中,存储器装置100可以从由地址ADDR选择的区域中读取数据。在擦除操作中,存储器装置100可以擦除由地址ADDR选择的区域中存储的数据。
另一方面,在图1中,示出设置了一个存储器装置100。然而,在一些实施例中,存储装置50可以包括多个存储器装置。将参照图2描述多个存储器装置与存储器控制器200之间的连接关系。
存储器控制器200可以控制存储装置50的全部操作。
当向存储装置50施加电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,FW可以包括:主机接口层(HIL),用于控制与主机300的通信;闪存转换层(FTL),用于控制主机300和存储器装置100之间的通信;以及闪存接口层(FIL),用于控制与存储器装置100的通信。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为物理块地址(PBA),物理块地址(PBA)表示存储器装置100中包括的待存储数据的存储器单元的地址。在该说明书中,LBA和“逻辑地址”或“逻辑性地址”可以具有相同含义。在该说明书中,PBA和“物理地址”可以具有相同含义。
存储器控制器200可以响应于来自主机300的请求而控制存储器装置100执行编程操作、读取操作、擦除操作等。在编程操作中,存储器控制器200可以将写入命令、PBA和数据提供到存储器装置100。在读取操作中,存储器控制器200可以将读取命令和PBA提供到存储器装置100。在擦除操作中,存储器控制器200可以将擦除命令和PBA提供到存储器装置100。
在实施例中,存储器控制器200可以通过通道连接到存储器装置100。例如,存储器控制器200可以通过凭借通道向存储器装置100提供命令和地址来控制存储器装置100执行编程操作、读取操作、擦除操作等。
在实施例中,存储器控制器200可以自主地生成命令、地址和数据而不考虑来自主机300的任何请求,并且将该命令、地址和数据传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供用于伴随执行损耗均衡、读取回收、垃圾收集等执行的读取操作和编程操作的命令、地址和数据。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可以根据交错方案来控制存储器装置,以便提高操作性能。交错方案可以是控制对至少两个存储器装置100的操作以彼此重叠的方案。
在实施例中,存储器控制器200可以包括映射数据存储装置210、读取操作控制器220和错误校正器230。
映射数据存储装置210可以存储映射数据。该映射数据可以包括从主机300提供的逻辑地址与被映射到该逻辑地址的物理地址之间的映射信息。
而且,在实施例中,映射数据存储装置210可以存储系统数据。该系统数据可以包括用于处理在存储装置50中执行的操作的信息。系统数据可以包括映射数据、与存储映射数据的地址相关联的信息、0层映射数据、用于管理存储器装置的可靠性和寿命的读取计数数据/编程计数数据/擦除计数数据等。在实施例中,0层映射数据可以包括存储装置50中使用的多个映射信息之中的关于顶层数据的映射信息。顶层数据可以包括用于操作存储装置50的特定数据。
读取操作控制器220可以控制存储器装置100的读取操作。
例如,读取操作控制器220可以从主机300接收读取请求和与读取请求相对应的目标逻辑地址。
而且,读取操作控制器220可以基于映射数据来获取被映射到目标逻辑地址的第一物理地址。例如,读取操作控制器220可以通过使用映射数据来将目标逻辑地址转换为第一物理地址。
而且,读取操作控制器220可以生成指示存储器装置100读取存储在第一物理地址处的数据的读取命令。读取操作控制器220可以向存储器装置100提供第一物理地址和读取命令。存储器装置100可以响应于读取命令而读取存储在第一物理地址处的数据。存储器装置100可以向存储器控制器200提供存储在第一物理地址处的数据。
错误校正器230可以校正从存储器装置100读取的数据的错误。
例如,存储器装置100中存储的数据可能由于温度引起的劣化而改变,或者从存储器装置读取的数据可能由于读取干扰而改变。错误校正器230可以校正发生错误的数据的错误。
在实施例中,错误校正器230可以校正存储在第一物理地址处的数据的错误。
然而,可能发生错误校正器230不可校正的错误。当发生不可校正错误时,存储器控制器200可以向主机300提供发生不可校正错误的数据以及表示发生不可校正错误的信息。当发生不可校正错误的数据包括与主机300中的系统文件相关联的信息时,该错误可能导致计算系统10无法正常操作。
因此,根据本公开的实施例,在当前读取的数据中存在不可校正错误时,将与目标逻辑地址相对应的旧数据提供给主机300,使得计算系统10即使在发生不可校正错误时也可以继续正常运行。旧数据可能包括与读取的数据相同但已预先存储在与读取的数据不同位置的信息。将该信息预先存储在不同位置可以发生在将读取的数据存储在存储器装置100中的其当前位置之前。例如,当执行诸如读取回收和垃圾收集的操作时,存储数据的位置可能改变。旧数据可以对应于在根据诸如读取回收和垃圾收集的操作将特定数据移动到新位置之前已经预先存储在存储器装置100中的数据。
在实施例中,当存储在第一物理地址处的数据的错误是不可校正错误时,读取操作控制器220可以基于一个或多个先前映射数据来获取被映射到目标逻辑地址的第二物理地址。一个或多个先前映射数据可以是在生成当前映射数据之前存储在存储器装置中的映射数据。换言之,一个或多个先前映射数据可以是在映射信息已被更新为当前映射信息之前的映射数据。
第二物理地址可以是在第一物理地址被映射之前被映射到目标逻辑地址的物理地址。也就是说,第一物理地址和第二物理地址是不同的物理地址,但可以是被映射到相同逻辑地址的物理地址。
例如,当存储在第一物理地址处的数据的错误是不可校正错误时,读取操作控制器220可以控制存储器装置100读取一个或多个先前系统数据。一个或多个先前系统数据可以是在生成当前系统数据之前存储在存储器装置100中的先前系统数据。换言之,一个或多个先前系统数据可以是在被更新为当前正使用的系统数据之前的系统数据。而且,一个或多个先前系统数据可以包括一个或多个先前映射数据。
存储器装置100可以将一个或多个先前系统数据提供给存储器控制器200。映射数据存储装置210可以移除已经存储在其中的系统数据,并且存储从存储器装置100提供的一个或多个先前系统数据。
在实施例中,读取操作控制器220可以从一个或多个先前系统数据之中任意一个先前系统数据中检测一个或多个先前映射数据之中的先前映射数据中的一个。而且,读取操作控制器220可以从一个先前映射数据中获取被映射到目标逻辑地址的物理地址。
在实施例中,读取操作控制器220可以将第一物理地址与从一个先前映射数据中获取的物理地址进行比较。读取操作控制器220可以根据第一物理地址与从一个先前映射数据中获取的物理地址是否相同,再次获取被映射到目标逻辑地址的物理地址或者将从一个先前映射数据中获取的物理地址确定为第二物理地址。
在实施例中,当第一物理地址与从一个先前映射数据中获取的物理地址相同时,读取操作控制器220可以再次获取被映射到目标逻辑地址的物理地址。例如,读取操作控制器220可以从一个或多个先前系统数据之中的与该一个先前系统数据不同的先前系统数据中检测一个或多个先前映射数据之中的与该一个先前映射数据不同的先前映射数据。不同的先前系统数据可以是在被更新为该一个先前系统数据之前的系统数据。不同的先前映射数据可以是在被更新为该一个先前映射数据之前的映射数据。而且,读取操作控制器220可以从不同的先前映射数据中获取被映射到目标逻辑地址的物理地址。读取操作控制器220可以重复执行检测不同的先前映射数据的操作以及获取被映射到目标逻辑地址的物理地址的操作,直到通过获取被映射到目标逻辑地址的物理地址的操作获取第二物理地址为止。换言之,读取操作控制器220可以检查不同的先前映射数据,直到发现先前映射数据具有不同于第一物理地址并且被映射到与第一物理地址相同的目标逻辑地址的物理地址。在一些实施例中,按照从最近的先前映射数据到最旧的先前映射数据的顺序来检查先前映射数据,并且该过程可以继续直到已经检查了所有可用的先前映射数据或者在进行特定数量的迭代之后为止。
在实施例中,当第一物理地址和从一个先前映射数据中获取的物理地址彼此不同时,读取操作控制器220将从该一个先前映射数据中获取的物理地址确定为第二物理地址。读取操作控制器220可以控制存储器装置100读取存储在第二物理地址处的数据。存储器装置100可以读取存储在第二物理地址处的数据并将读取的数据提供给存储器控制器200。
在实施例中,错误校正器230可以校正存储在第二物理地址处的数据的错误。当存储在第二物理地址处的数据的错误是不可校正错误时,读取操作控制器220可以向主机300提供存储在第一物理地址处的数据和表示发生不可校正错误的信息。也就是说,当存储在第二物理地址处的数据的错误是不可校正错误时,主机300无法通过使用存储在第二物理地址处的数据执行数据恢复,并且因此读取操作控制器220可以将存储在第一物理地址处的数据原样提供给主机300。可选地,当对存储在第二物理地址处的数据的错误校正操作能够校正第二物理地址处的错误时,读取操作控制器220可以向主机300提供存储在第二物理地址处的数据和表示在第一物理地址处发生不可校正错误的信息。
另外,当存储在第二物理地址处的数据是擦除数据时,读取操作控制器220可以向主机300提供存储在第一物理地址处的数据和表示发生不可校正错误的信息。也就是说,当在第二物理地址处存储的数据是擦除数据时,存储装置50中不存在要替代存储在第一物理地址处的数据而提供的任何数据,并且因此读取操作控制器220可以将存储在第一物理地址处的数据原样提供给主机300。
另一方面,映射数据存储装置210可以读取存储在第二物理地址处的数据,移除已经存储的一个或多个先前系统数据,并且然后从存储器装置100接收和存储系统数据。
在实施例中,错误校正器230可以校正一个先前系统数据和一个先前映射数据的错误。当一个先前系统数据和一个先前映射数据中的至少一个的错误为不可校正错误时,读取操作控制器230可以向主机300提供表示存储在具有第一物理地址的页面中的数据的信息以及表示发生不可校正错误的信息。也就是说,当一个先前系统数据或一个先前映射数据的错误是不可校正错误时,第二物理地址无法被获取,并且因此读取操作控制器220可以将存储在第一物理地址处的数据原样提供给主机300。
而且,当一个先前系统数据和一个先前映射数据中的至少一个为擦除数据时,读取操作控制器220可以向主机300提供存储在具有第一物理地址的页面中的数据以及表示发生不可校正错误的信息。也就是说,当一个先前系统数据或一个先前映射数据是擦除数据时,第二物理地址无法被获取,并且因此读取操作控制器220可以将存储在第一物理地址处的数据原样提供给主机300。
主机300可以使用诸如以下的各种通信方式中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、火线、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载的DIMM(LRDIMM)。
在实施例中,主机300可以包括恢复管理器310。
当从存储器控制器200接收到表示发生不可校正错误的信息时,恢复管理器310可以恢复与目标逻辑地址相对应的数据。恢复数据的操作可以是重新生成相应数据使得该数据中不存在错误的操作。例如,恢复管理器310可以基于在从存储器控制器200接收到的第二物理地址处存储的数据来恢复与目标逻辑地址相对应的数据。
在实施例中,存储在第二物理地址处的数据可以包括头信息(headerinformation)、主引导记录信息等。头信息可以包括表示相应数据的内容和特征的信息。例如,头信息可以包括相应数据的数据类型、时间数据、地址数据等。主引导记录信息可以包括被分区的存储器装置100的第一扇区。例如,主引导记录信息可以包括关于如何组织将包括文件系统的相应存储器装置100进行分区的信息、作为用于加载已安装操作系统的运行代码的引导加载器等。
在实施例中,恢复管理器310可以从存储在第二物理地址处的数据中检测头信息和主引导记录信息中的至少一个。恢复管理器310可以通过使用检测到的头信息和/或主引导记录信息来恢复与目标逻辑地址相对应的数据。
主机300可以通过使用所恢复的数据来执行通常通过与目标逻辑地址相对应的数据来执行的操作。
图2是示出图1所示的存储器装置的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、电压生成器120、地址解码器130、输入/输出电路140和控制逻辑150。
存储器单元阵列110可以包括多个存储块BLK1至BLKi。多个存储块BLK1至BLKi可以通过行线RL连接到地址解码器130。多个存储块BLK1至BLKi可以通过列线CL连接到输入/输出电路140。在实施例中,行线RL可以包括字线、源极选择线和漏极选择线。在实施例中,列线CL可以包括位线。
多个存储块BLK1至BLKi中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。可以将多个存储器单元之中的连接到相同字线的存储器单元定义为一个物理页面。也就是说,存储器单元阵列110可以包括多个物理页面。存储器装置100的存储器单元中的每一个可以被配置为存储一个数据位的单层单元(SLC)、存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
多个存储块BLK1至BLKi中的一些存储块可以是存储参照图1描述的映射数据的映射数据块。多个存储块BLK1至BLKi中的其它存储块可以是存储主机300请求的数据的正常块。
在实施例中,电压生成器120、地址解码器130和输入/输出电路140可以被共同指定为外围电路。外围电路可以在控制逻辑150的控制下驱动存储器单元阵列110。外围电路可以驱动存储器单元阵列110执行编程操作、读取操作和擦除操作。
电压生成器120可以通过使用供应到存储器装置100的外部电源电压来生成多个操作电压。电压生成器120可以在控制逻辑150的控制下操作。
在实施例中,电压生成器120可以通过调节外部电源电压来生成内部电源电压。由电压生成器120生成的内部电源电压可以用作存储器装置100的操作电压。
在实施例中,电压生成器120可以通过使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器120可以生成存储器装置100中所需的各种电压。例如,电压生成器120可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
为了生成具有各个电压电平的多个工作电压,电压生成器120可以包括接收内部电源电压的多个泵浦电容器。电压生成器120可以在控制逻辑150的控制下通过选择性地激活多个泵浦电容器来生成多个操作电压。
可以通过地址解码器130将由电压生成器120生成的多个操作电压供应到存储器单元阵列110。
地址解码器130可以通过行线RL连接到存储器单元阵列110。地址解码器130可以在控制逻辑150的控制下操作。地址解码器130可以从控制逻辑150接收地址ADDR。地址解码器130可以对所接收的地址ADDR之中的块地址进行解码。地址解码器130可以根据经解码的块地址在存储块BLK1至BLKi之中选择至少一个存储块。地址解码器130可以对所接收的地址ADDR之中的行地址进行解码。地址解码器130可以根据经解码的行地址在所选择的存储块的字线之中选择至少一条字线。在实施例中,地址解码器130可以对所接收的地址ADDR中的列地址进行解码。地址解码器130可以根据经解码的列地址将输入/输出电路140和存储器单元阵列110彼此连接。
根据本公开的实施例,在读取操作中,地址解码器130可以将读取电压施加到所选择的字线,并且将电平高于该读取电压的电平的读取通过电压施加到未选择的字线。
示例性地,地址解码器130可以包括诸如行解码器、列解码器和地址解码器的组件。
输入/输出电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线连接到存储器单元阵列110。在编程操作中,可以通过位线将多个页面缓冲器中存储的数据提供到所选择的物理页面,并且可以将所提供的数据存储在所选择的物理页面中包括的存储器单元中。在读取操作中,可以通过位线来感测所选择的物理页面中包括的存储器单元中存储的数据,并且可以将所感测的数据存储在页面缓冲器中。
控制逻辑150可以控制地址解码器130、电压生成器120和输入/输出电路140。控制逻辑150可以响应于从外部装置传送的命令CMD而操作。控制逻辑150可以通过响应于命令CMD和地址ADDR而生成控制信号来控制外围电路。
图3是示出图2所示的存储块之中的任意一个存储块的结构的示图。
存储块BLKi表示图2所示的存储块BLK1至BLKi之中的任意一个存储块BLKi。
参照图3,在存储块BLKi中,彼此平行布置的多个字线可以连接在第一选择线和第二选择线之间。第一选择线可以是源极选择线SSL,并且第二选择线可以是漏极选择线DSL。更具体地,存储块BLKi可以包括连接在位线BL1至BLm与源极线SL之间的多个串ST。位线BL1至BLm可以分别连接到串ST,并且源极线SL可以共同连接到串ST。串ST可以彼此相同地配置,并且因此将作为示例来详细描述连接到第一位线BL1的串ST。
串ST可以包括彼此串联连接在源极线SL与第一位线BL1之间的源极选择晶体管SST、多个存储器单元MC1至MC16以及漏极选择晶体管DST。一个串ST可以包括至少一个漏极选择晶体管DST,并且一个串ST可以包括数量大于附图中所示的源极选择晶体管SST的数量的源极选择晶体管和数量大于附图中所示的存储器单元MC1至MC16的数量的存储器单元。
源极选择晶体管SST的源极可以连接到源极线SL,并且漏极选择晶体管DST的漏极可以连接到第一位线BL1。存储器单元MC1至MC16可以串联连接在源极选择晶体管SST与漏极选择晶体管DST之间。不同串ST中包括的源极选择晶体管SST的栅极可以连接到源极选择线SSL,并且不同串ST中包括的漏极选择晶体管DST的栅极可以连接到漏极选择线DSL。存储器单元MC1至MC16的栅极可以连接到多个字线WL1至WL16。不同的串ST中包括的存储器单元之中的连接到相同字线的一组存储器单元可以被称为物理页面PG。因此,存储块BLKi中可以包括与字线WL1至WL16的数量相对应的物理页面PG。
一个存储器单元可以存储一位数据。在这种实施方案中,一个存储器单元通常被称为单层单元(SLC)。一个物理页面PG可以存储一个逻辑页面(LPG)数据。一个LPG数据可以包括与一个物理页面PG中包括的单元的数量相对应的数据位。
在一些实施方案中,一个存储器单元可以存储两位或更多位数据。在这种实施方案中,一个物理页面PG可以存储两个或更多个LPG数据。
图4是示出根据本公开的实施例的映射数据的示图。
参照图4,映射数据存储装置210可以存储映射数据211。而且,映射数据存储装置210可以存储系统数据,并且系统数据可以包括映射数据211。
映射数据211可以包括多个逻辑地址LADD与多个物理地址PADD之间的映射信息。
例如,逻辑地址1LADD1可以具有逻辑地址1LADD1与物理地址1PADD1映射的关系。另外,逻辑地址2LADD2可以具有逻辑地址2LADD2与物理地址2PADD2映射的关系。另外,逻辑地址n LADDn可以具有逻辑地址n LADDn与物理地址n PADDn映射的关系。
读取操作控制器220可以通过使用映射数据存储装置210中存储的映射数据211将从主机300接收的目标逻辑地址转换为相应物理地址。例如,当从主机300接收到与读取请求相对应的逻辑地址1LADD1时,读取操作控制器220可以通过使用映射数据211获取被映射到逻辑地址1LADD1的物理地址1PADD1。另外,当从主机300接收到与读取请求相对应的逻辑地址2LADD2时,读取操作控制器220可以通过使用映射数据211获取被映射到逻辑地址2LADD2的物理地址2PADD2。另外,当从主机300接收到与读取请求相对应的逻辑地址nLADDn时,读取操作控制器220可以通过使用映射数据211获取被映射到逻辑地址n LADDn的物理地址n PADDn。
图5是示出根据本公开的实施例的先前映射数据的示图。
参照图5,存储器装置100可以包括映射数据211和多个先前映射数据101-1至101-n。
多个先前映射数据101-1至101-n可以是在生成映射数据211之前存储在存储器装置100中的映射数据。也就是说,多个先前映射数据101-1至101-n可以是在被更新为映射数据211之前的映射数据。例如,当执行诸如根据主机300的写入请求的写入操作、读取回收或垃圾收集的操作时,逻辑地址与物理地址之间的映射关系可能改变。因此,多个先前映射数据101-1至101-n可以是每当逻辑地址与物理地址之间的映射关系改变时被更新和生成的映射数据。例如,多个先前映射数据101-1至101-n之中具有最小编号的先前映射数据可以是最近更新的映射数据。
在实施例中,第n先前映射数据101-n可以是多个先前映射数据101-1至101-n之中最旧的映射数据。因为此时尚未发生针对逻辑地址2LADD2的写入请求,所以第n先前映射数据101-n可以不包括例如关于逻辑地址2LADD2的映射信息。
随后,存储器控制器200可以接收与写入请求相对应的逻辑地址2LADD2,并且将逻辑地址2LADD2映射到物理地址5PADD5。存储器装置100可以根据写入命令将写入数据存储在物理地址5LADD5。而且,存储器控制器200可以更新第n先前映射数据101-n以反映改变后的映射关系。例如,根据更新生成的第二先前映射数据101-2可以包括逻辑地址2LADD2与物理地址5PADD5的映射信息。
随后,存储器控制器200可以执行垃圾收集操作。因此,映射到逻辑地址n LADDn的物理地址可以从物理地址k LADDk改变为物理地址n PADDn。存储器控制器200可以更新第一先前映射数据101-1以反映改变后的映射关系。根据更新生成的映射数据211可以包括逻辑地址n LADDn与物理地址n PADDn之间的映射信息。
另外,存储器装置100可以包括系统数据和多个先前系统数据。多个先前系统数据可以是在生成当前使用的系统数据之前存储在存储器装置100中的系统数据。也就是说,多个先前系统数据可以是在被更新为当前使用的系统数据之前的系统数据。例如,当执行诸如根据主机300的写入请求的写入操作、读取回收或垃圾收集的操作时,逻辑地址与物理地址之间的映射关系可能改变。因此,多个先前系统数据可以是每当逻辑地址与物理地址之间的映射关系改变时更新和生成的系统数据。多个先前系统数据可以包括多个先前映射数据101-1至101-n。
图6A和图6B是示出根据本公开的实施例的获取第二物理地址的操作的示图。
参照图6A,读取操作控制器220可以接收与读取请求相对应的逻辑地址2LADD2,并且控制存储器装置100对被映射到逻辑地址2LADD2的物理地址2PADD2执行读取操作。
当存储在物理地址2PADD2的数据的错误是不可校正错误时,映射数据存储装置210可以移除映射数据211,并且从存储器装置100接收并存储第一先前映射数据101-1。读取操作控制器220可以基于第一先前映射数据101-1来获取被映射到逻辑地址2LADD2的物理地址2PADD2。因为从映射数据211中获取的物理地址A与从第一先前映射数据101-1中获取的物理地址B相同,所以读取操作控制器220可以通过使用与第一先前映射数据101-1不同的先前映射数据再次获取物理地址。
参照图6B,映射数据存储装置210可以移除第一先前映射数据101-1,并且从存储器装置100接收并存储第二先前映射数据101-2。读取操作控制器220可以基于第二先前映射数据101-2来获取被映射到逻辑地址2LADD2的物理地址5PADD5。因为从映射数据211中获取的物理地址A与从第二先前映射数据101-2中获取的物理地址C彼此不同,所以读取操作控制器220可以生成针对物理地址5PADD5的读取命令并将所生成的读取命令提供给存储器装置100。存储器装置100可以根据读取命令来读取存储在物理地址5PADD5的数据,并且将读取的数据提供给读取操作控制器220。
图7A和图7B是示出根据本公开的实施例的主机的恢复操作的示图。
在实施例中,图7A和图7B所示的附图示出了与主机300的逻辑地址相对应的数据。
参照图7A,从逻辑地址X LADD X至逻辑地址Y LADD Y的第一数据DATA1可以是由主机300更新的数据。例如,第一数据DATA1可以是根据主机300的请求而改变并存储在存储装置50中的数据。从逻辑地址Y LADD Y至逻辑地址Z LADD Z的第二数据DATA2可以是未由主机300更新的数据。例如,第二数据DATA2可以是在不考虑主机300的请求的情况下根据存储装置50的内部操作来存储的数据。
在实施例中,主机300可以向存储装置50提供用于请求与目标逻辑地址相对应的数据的读取请求。根据目标逻辑地址的数据可以是第二数据DATA2。当存储在被映射到目标逻辑地址的第一物理地址的数据中发生不可校正错误(即,UECC)时,主机300可以从存储装置50接收存储在被映射到目标逻辑地址的第二物理地址的数据以及表示发生不可校正错误的信息。主机300可以通过使用存储在第二物理地址处的数据来执行正常通过与目标逻辑地址相对应的数据执行的操作。也就是说,由于第二数据DATA2是未由主机300改变的数据,所以主机300可以通过原样使用旧数据来执行正常操作。
参照图7B,在实施例中,主机300可以向存储装置50提供用于请求与目标逻辑地址相对应的数据的读取请求。与目标逻辑地址相对应的数据可以是第一数据DATA1。当存储在被映射到目标逻辑地址的第一物理地址的数据中发生不可校正错误(即,UECC)时,主机300可以从存储装置50接收存储在被映射到目标逻辑地址的第二物理地址的数据以及表示发生不可校正错误的信息。
在实施例中,主机300可以基于在从存储装置50接收到的第二物理地址处存储的数据来恢复与目标逻辑地址相对应的数据。存储在第二物理地址处的数据可以包括头信息、主引导记录信息等中的至少一个。在实施例中,主机300可以从存储在第二物理地址处的数据中检测头信息和主引导记录信息中的至少一个。主机300可以通过使用检测到的头信息和主引导记录信息中的至少一个来恢复与目标逻辑地址相对应的数据。例如,主机300可以通过头信息中包括的数据的数据类型、时间数据、地址数据等中的至少一个来生成与目标逻辑地址相对应的数据。而且,主机300可以通过使用主引导记录信息中包括的分区的组织信息、引导加载器等中的至少一个来生成与目标逻辑地址相对应的数据。随后,主机300可以通过使用恢复后的数据来执行正常操作。
另一方面,虽然在上述实施例中已经描述了主机300通过使用头信息和主引导记录信息中的至少一个来恢复数据的方法,但是本发明并不一定限于此,而是可以利用存储在第二物理地址处的数据中包括的各种信息来恢复数据。
图8是示出根据本公开的实施例的计算系统的读取操作的流程图。
在实施例中,图8是示出当读取的数据中存在不可校正错误时计算系统的读取操作的示图。
参照图8,主机300可以向存储器控制器200提供读取请求(801)。
随后,存储器控制器200可以向存储器装置100提供针对第一物理地址的读取命令(803)。例如,存储器控制器200可以基于映射数据来获取被映射到目标逻辑地址的第一物理地址。而且,存储器控制器200可以生成针对第一物理地址的读取命令,并且将第一物理地址和读取命令提供给存储器装置100。
随后,存储器装置100可以根据读取命令读取存储在第一物理地址处的数据(805)。
随后,存储器装置100可以向存储器控制器200提供存储在第一物理地址处的数据(807)。
随后,存储器控制器200可以从存储在第一物理地址处的数据中检测不可校正错误(809)。
随后,存储器控制器200可以向存储器装置100提供针对第二物理地址的读取命令(811)。例如,存储器控制器200可以基于先前映射数据来获取被映射到目标逻辑地址的第二物理地址。而且,存储器控制器200可以生成针对第二物理地址的读取命令,并且将第二物理地址和读取命令提供给存储器装置100。
随后,存储器装置100可以根据读取命令读取存储在第二物理地址处的数据(813)。
随后,存储器装置100可以向存储器控制器200提供存储在第二物理地址处的数据(815)。
随后,存储器控制器200可以向主机300提供存储在第二物理地址处的数据以及表示发生不可校正错误的信息(817)。
随后,主机300可以基于存储在第二物理地址处的数据来恢复与目标逻辑地址相对应的数据(819)。
图9是示出根据本公开的实施例的存储器控制器的操作方法的流程图。
图9所示的操作方法可以由例如图1所示的存储器控制器200来执行。
参照图9,在步骤S901,存储器控制器200可以从主机300接收读取请求和与读取请求相对应的目标逻辑地址。
在步骤S903,存储器控制器200可以获取被映射到目标逻辑地址的第一物理地址。例如,存储器控制器200可以基于映射数据来获取第一物理地址。
在步骤S905,存储器控制器200可以从存储器装置100接收存储在第一物理地址处的数据。
在步骤S907,如果存储在第一物理地址处的数据中存在可校正错误,则存储器控制器200可以执行校正存储在第一物理地址处的数据的错误的可选步骤。
在步骤S909,存储器控制器200可以确定存储在第一物理地址处的数据中是否发生不可校正错误。当未发生不可校正错误时,存储器控制器200可以执行步骤S911。在步骤S911,存储器控制器200可以向主机300提供存储在第一物理地址处的数据。
可选地,存储器控制器200可以从存储在第一物理地址处的数据中检测不可校正错误。存储器控制器200可以执行步骤S913。在步骤S913,存储器控制器200可以获取在第一物理地址被映射之前被映射到目标逻辑地址的第二物理地址。例如,存储器控制器200可以基于在生成映射数据之前存储在存储器装置100中的一个或多个先前映射数据来获取第二物理地址。
在步骤S915,存储器控制器200可以从存储器装置100接收存储在第二物理地址处的数据。
在步骤S917,存储器控制器200可以向主机300提供存储在第二物理地址处的数据以及表示发生不可校正错误的信息。
图10是示出根据本公开的实施例的当错误校正操作失败时存储器控制器的操作方法的流程图。
图10所示的操作方法可以由例如图1所示的存储器控制器200来执行。
参照图10,在步骤S1001,存储器控制器200可以从存储器装置100接收被更新为当前使用的系统数据之前的先前系统数据。
在步骤S1003,存储器控制器200可以确定该先前系统数据的错误是否是不可校正错误。例如,存储器控制器200可以尝试校正先前系统数据的错误。当先前系统数据的错误是不可校正错误时,存储器控制器200可以执行步骤S1021。而且,在一些实施例中,当先前系统数据是擦除数据时,存储器控制器200可以执行步骤S1021。可选地,当先前系统数据的错误不是不可校正错误时,存储器控制器200可以执行步骤S1005。而且,在一些实施例中,当先前系统数据不是擦除数据时,存储器控制器200可以执行步骤S1005。
在步骤S1005,存储器控制器200可以从先前系统数据中检测被更新为当前使用的映射数据之前的先前映射数据。
在步骤S1007,存储器控制器200可以确定该先前映射数据的错误是否是不可校正错误。例如,存储器控制器200可以尝试校正先前映射数据的错误。当先前映射数据的错误是不可校正错误时,存储器控制器200可以执行步骤S1021。而且,在一些实施例中,当先前映射数据是擦除数据时,存储器控制器200可以执行步骤S1021。可选地,当先前映射数据的错误不是不可校正错误时,存储器控制器200可以执行步骤S1009。而且,在一些实施例中,当先前映射数据不是擦除数据时,存储器控制器200可以执行步骤S1009。
在步骤S1009,存储器控制器200可以从先前映射数据中获取被映射到目标逻辑地址的物理地址。
在步骤S1011,存储器控制器200可以确定第一物理地址与从先前映射数据中获取的物理地址是否相同。当第一物理地址与从先前映射数据中获取的物理地址相同时,存储器控制器200可以再次执行步骤S1001。存储器控制器200可以从存储器装置100接收与该先前系统数据不同的先前系统数据。该不同的先前系统数据可以是在被更新为步骤S1001的先前迭代的先前系统数据之前的系统数据。可选地,当第一物理地址与从先前映射数据中获取的物理地址彼此不同时,存储器控制器200可以执行步骤S1013。也就是说,存储器控制器200可以重复执行步骤S1001至S1011,直到获取第二物理地址为止。
在步骤S1013,存储器控制器200可以将从先前映射数据中获取的物理地址确定为第二物理地址。
在步骤S1015,存储器控制器200可以从存储器装置100接收存储在第二物理地址处的数据。例如,存储器控制器200可以向存储器装置100提供第二物理地址和与第二物理地址相对应的读取命令,并且响应于读取命令而从存储器装置100接收存储在第二物理地址处的数据。
在步骤S1017,存储器控制器200可以确定存储在第二物理地址处的数据的错误是否是不可校正错误。例如,存储器控制器200可以校正存储在第二物理地址处的数据的错误。当存储在第二物理地址处的数据的错误是不可校正错误时,存储器控制器200可以执行步骤S1021。而且,在一些实施例中,当存储在第二物理地址处的数据是擦除数据时,存储器控制器200可以执行步骤S1021。可选地,当存储在第二物理地址处的数据的错误不是不可校正错误时,存储器控制器200可以执行步骤S1019。而且,在一些实施例中,当存储在第二物理地址处的数据不是擦除数据时,存储器控制器200可以执行步骤S1019。
在步骤S1019,存储器控制器200可以向主机300提供存储在第二物理地址处的数据以及表示发生不可校正错误的信息。
在步骤S1021,存储器控制器200可以向主机300提供存储在第一物理地址处的数据以及表示发生不可校正错误的信息。
图11是示出根据本公开的实施例的存储器控制器的示图。
图11所示的存储器控制器1000可以是图1所示的存储器控制器200。
参照图1和图11,存储器控制器1000可以包括处理器1010、RAM1020、错误校正电路1030、ROM 1040、主机接口1050和闪存接口1060。
处理器1010可以控制存储器控制器1000的全部操作。在实施例中,图1所示的读取操作控制器220可以被实施为处理器1010的一个组件。
RAM 1020可以用作存储器控制器1000的缓冲存储器、高速缓存存储器、工作存储器等。在实施例中,图1所示的映射数据存储装置210可以被实施为RAM 1020的一个组件。
错误校正电路1030可以执行错误校正。错误校正电路1030可以对待通过闪存接口1060写入到存储器装置的数据执行错误校正码(ECC)编码。经ECC编码的数据可以通过闪存接口1060被传送到存储器装置。错误校正电路1030可以对通过闪存接口1060从存储器装置接收的数据执行ECC解码。示例性地,错误校正电路1030可以作为闪存接口1060的组件而被包括在闪存接口1060中。图1所示的错误校正器230可以被实施为错误校正电路1030的一个组件。
ROM 1040可以以固件的形式存储存储器控制器1000的操作中所需的各种信息。
存储器控制器1000可以通过主机接口1050与外部装置(例如,主机300、应用处理器等)通信。
存储器控制器1000可以通过闪存接口1060与存储器装置100通信。存储器控制器1000可以通过闪存接口1060将命令、地址、控制信号等传输到存储器装置100,并且可以接收数据DATA。示例性地,闪存接口1060可以包括NAND接口。
图12是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
参照图12,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100提供存储器装置2200与主机之间的接口。存储器控制器2100驱动用于控制存储器装置2200的固件。存储器控制器2100可以与参照图1描述的存储器控制器200相同地实施。存储器装置2200可以与参照图1描述的存储器装置100相同地实施。
示例性地,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定的通信协议与外部装置(例如,主机)通信。示例性地,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和/或NVMe。示例性地,连接器2300可以由上述各种通信协议中的至少一种来定义。
示例性地,存储器装置2200可以利用诸如以下的各种非易失性存储器装置来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移扭矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中以构成存储卡。例如,存储器控制器2100和存储器装置2200可以构成诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存(CF)卡、智能媒体卡(SM和SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC和eMMC)、SD卡(SD、迷你SD、微型SD和SDHC)和通用闪存(UFS)。
图13是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
参照图13,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号,并且通过电源连接器3002接收电力。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以用作参照图1所描述的存储器控制器200。
SSD控制器3210可以响应于从主机3100接收到的信号而控制多个闪速存储器3221至322n。示例性地,该信号可以是基于主机3100与SSD 3200之间的接口的信号。例如,该信号可以是由诸如以下的接口中的至少一种来定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WI-FI、蓝牙和NVMe。
辅助电源3230通过电源连接器3002连接到主机3100。辅助电源3230可以接收从主机3100输入的电力PWR并且可以利用电力PWR充电。当来自主机3100的电力供应不平稳时,辅助电源3230可以提供SSD 3200的电力。示例性地,辅助电源3230可以位于SSD 3200中或者位于SSD 3200的外部。例如,辅助电源3230可以位于主板上,并且将辅助电力提供到SSD3200。
缓冲存储器3240作为SSD 3200的缓冲存储器来操作。例如,缓冲存储器3240可以临时地存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时地存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图14是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
参照图14,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中包括的组件、操作系统(OS)、用户程序等。示例性地,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器而操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器或诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。示例性地,应用处理器4100和存储器模块4200可以通过基于堆叠封装(PoP)来进行封装而被设置为一个半导体封装。
网络模块4300可以与外部装置通信。示例性地,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和Wi-Fi。示例性地,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将其中存储的数据传输到应用处理器4100。示例性地,存储模块4400可以利用诸如以下的非易失性半导体存储器装置来实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维结构的NAND闪存。示例性地,存储模块4400可以被设置为可移动驱动器,诸如用户系统4000的存储卡或外部驱动器。
示例性地,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以与参照图1描述的存储器装置100相同地操作。存储模块4400可以与参照图1描述的存储装置50相同地操作。
用户接口4500可以包括用于向应用处理器4100输入数据或命令或者向外部装置输出数据的接口。示例性地,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,可以提供一种具有改进的读取操作性能的存储器控制器,该存储器控制器的操作方法以及包括该存储器控制器的计算系统。
虽然已经参照本公开的某些示例性实施例示出和描述了本公开,但是本领域技术人员将理解的是,在不脱离由所附权利要求及其等同方案所限定的本公开的精神和范围的情况下,可以进行形式和细节上的各种改变。因此,本公开的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求书确定而且还应由其等同方案确定。
在上述实施例中,所有步骤都可以被选择性地执行或可以省略部分步骤。在每个实施例中,这些步骤不一定按照所描述的顺序执行,并且可以重新排列。在本说明书和附图中公开的实施例仅是便于对本公开的理解的示例,并且本公开不限于此。也就是说,对于本领域技术人员应当显而易见的是,可以基于本公开的技术范围进行各种修改。
另一方面,已经在附图和说明书中描述了本公开的示例性实施例。虽然本文使用了特定术语,但是这些仅是为了解释本公开的实施例。因此,本公开不限于上述实施例,并且在本公开的精神和范围内可以存在许多变型。对于本领域技术人员应当显而易见的是,除了本文公开的实施例之外,还可以基于本公开的技术范围进行各种修改。
Claims (20)
1.一种控制存储器装置的读取操作的存储器控制器,所述存储器控制器包括:
映射数据存储装置,存储映射数据,所述映射数据包括从主机提供的逻辑地址与被映射到所述逻辑地址的物理地址之间的映射信息;以及
读取操作控制器,从所述主机接收读取请求和与所述读取请求相对应的目标逻辑地址,基于所述映射数据获取被映射到所述目标逻辑地址的第一物理地址,并且获取存储在所述存储器装置的所述第一物理地址处的数据,
其中,当存储在所述第一物理地址处的数据的错误是不可校正错误时,所述读取操作控制器获取在所述第一物理地址之前先前被映射到所述目标逻辑地址的第二物理地址,获取存储在所述第二物理地址处的数据,并且向所述主机提供存储在所述第二物理地址处的数据和表示发生所述不可校正错误的信息。
2.根据权利要求1所述的存储器控制器,其中所述映射数据存储装置存储系统数据,所述系统数据包括用于处理利用所述存储器装置或所述存储器控制器执行的操作的信息,并且
其中所述系统数据包括所述映射数据。
3.根据权利要求2所述的存储器控制器,其中,当存储在所述第一物理地址处的数据的错误是不可校正错误时,所述映射数据存储装置移除所述系统数据,并且接收并存储所述存储器装置中存储的一个或多个先前系统数据,并且
其中所述一个或多个先前系统数据包括一个或多个先前映射数据。
4.根据权利要求3所述的存储器控制器,其中所述映射数据存储装置在所述映射数据存储装置读取存储在所述第二物理地址处的数据之后移除所述一个或多个先前系统数据。
5.根据权利要求3所述的存储器控制器,其中所述读取操作控制器从所述一个或多个先前系统数据之中的一个先前系统数据中的所述一个或多个先前映射数据之中的一个先前映射数据中获取与所述目标逻辑地址相对应的物理地址。
6.根据权利要求5所述的存储器控制器,其中当所述第一物理地址与从所述一个先前映射数据中获取的物理地址不同时,所述读取操作控制器将从所述一个先前映射数据中获取的所述物理地址确定为所述第二物理地址。
7.根据权利要求5所述的存储器控制器,其中当所述第一物理地址与从所述一个先前映射数据中获取的物理地址相同时,所述读取操作控制器从不同的先前系统数据中的另一先前映射数据中获取被映射到所述目标逻辑地址的另一物理地址。
8.根据权利要求7所述的存储器控制器,其中所述不同的先前系统数据是在所述一个先前系统数据之前被使用的系统数据。
9.根据权利要求7所述的存储器控制器,其中所述不同的先前映射数据是在所述一个映射系统数据之前被生成的映射数据。
10.根据权利要求7所述的存储器控制器,其中所述读取操作控制器重复执行从不同的先前映射数据中获取被映射到所述目标逻辑地址的物理地址的操作,直到获取到所述第二物理地址为止。
11.根据权利要求5所述的存储器控制器,进一步包括:错误校正器,对所述一个先前系统数据、所述一个先前映射数据或存储在所述第二物理地址处的数据执行错误校正,并且
其中当所述一个先前系统数据、所述一个先前映射数据或存储在所述第二物理地址处的数据中的至少一个的错误是不可校正错误时,所述读取操作控制器向所述主机提供存储在具有所述第一物理地址的页面中的数据以及表示发生所述不可校正错误的信息。
12.根据权利要求5所述的存储器控制器,其中当所述一个先前系统数据、所述一个先前映射数据和存储在所述第二物理地址处的数据中的至少一个是擦除数据时,所述读取操作控制器向所述主机提供存储在具有所述第一物理地址的页面中的数据以及表示发生所述不可校正错误的信息。
13.一种计算系统:包括:
主机,提供读取请求和与所述读取请求相对应的目标逻辑地址;以及
存储装置,接收所述读取请求和所述目标逻辑地址,获取被映射到所述目标逻辑地址的第一物理地址,确定存储在所述第一物理地址处的数据具有不可校正错误,获取在所述第一物理地址之前先前被映射到所述目标逻辑地址的第二物理地址,并且向所述主机提供存储在所述第二物理地址处的数据和关于发生所述不可校正错误的信息,
其中所述主机基于存储在所述第二物理地址处的数据来恢复与所述目标逻辑地址相对应的数据。
14.根据权利要求13所述的计算系统,其中存储在所述第二物理地址处的数据包括头信息和主引导记录信息。
15.根据权利要求14所述的计算系统,其中所述主机从存储在所述第二物理地址处的数据中获取所述头信息和所述主引导记录信息中的至少一个,并且通过使用所述头信息和所述主引导记录信息中的至少一个来恢复与所述目标逻辑地址相对应的数据。
16.根据权利要求13所述的计算系统,其中所述存储装置基于映射数据获取所述第一物理地址,所述映射数据包括从所述主机提供的所述目标逻辑地址与被映射到所述目标逻辑地址的物理地址之间的映射信息。
17.根据权利要求16所述的计算系统,其中所述存储装置基于在生成所述第一物理地址的所述映射数据之前存储在所述存储装置中的一个或多个先前映射数据来获取所述第二物理地址。
18.一种操作存储器控制器的方法,所述方法包括:
从主机接收读取请求和与所述读取请求相对应的目标逻辑地址;
获取被映射到所述目标逻辑地址的第一物理地址;
从存储器装置接收存储在所述第一物理地址处的数据;
在存储在所述第一物理地址处的所述数据中检测不可校正错误;
获取在所述第一物理地址之前先前被映射到所述目标逻辑地址的第二物理地址;
从所述存储器装置接收存储在所述第二物理地址处的数据;并且
向所述主机提供存储在所述第二物理地址的数据和表示发生所述不可校正错误的信息。
19.根据权利要求18所述的方法,其中基于映射数据来获取所述第一物理地址,所述映射数据包括从所述主机提供的所述目标逻辑地址与被映射到所述目标逻辑地址的物理地址之间的映射信息。
20.根据权利要求19所述的方法,其中基于在生成所述第一物理地址的所述映射数据之前存储在所述存储器装置中的一个或多个先前映射数据来获取所述第二物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0094463 | 2021-07-19 | ||
KR1020210094463A KR20230013558A (ko) | 2021-07-19 | 2021-07-19 | 메모리 컨트롤러, 이의 동작 방법 및 이를 포함하는 컴퓨팅 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115640161A true CN115640161A (zh) | 2023-01-24 |
Family
ID=84890917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210676017.3A Withdrawn CN115640161A (zh) | 2021-07-19 | 2022-06-15 | 存储器控制器、其操作方法以及包括其的计算机系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11989089B2 (zh) |
KR (1) | KR20230013558A (zh) |
CN (1) | CN115640161A (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839826B2 (en) | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
KR101999288B1 (ko) | 2014-07-15 | 2019-07-11 | 에스케이하이닉스 주식회사 | 메모리 데이터의 에러 보정 장치 및 방법 |
US10078567B2 (en) * | 2016-03-18 | 2018-09-18 | Alibaba Group Holding Limited | Implementing fault tolerance in computer system memory |
TWI639917B (zh) * | 2017-04-25 | 2018-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及映射表重建方法 |
US11663081B2 (en) * | 2021-05-10 | 2023-05-30 | Western Digital Technologies, Inc. | Storage system and method for data recovery after detection of an uncorrectable error |
-
2021
- 2021-07-19 KR KR1020210094463A patent/KR20230013558A/ko unknown
-
2022
- 2022-04-13 US US17/659,161 patent/US11989089B2/en active Active
- 2022-06-15 CN CN202210676017.3A patent/CN115640161A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11989089B2 (en) | 2024-05-21 |
KR20230013558A (ko) | 2023-01-26 |
US20230020521A1 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562649B (zh) | 存储器系统及其操作方法 | |
CN108121665B (zh) | 存储器系统及其操作方法 | |
CN109947358B (zh) | 存储器系统及其操作方法 | |
CN109656837B (zh) | 存储器系统及其操作方法 | |
CN107450845B (zh) | 存储器系统及其操作方法 | |
CN108108308B (zh) | 存储器系统及其操作方法 | |
CN107562653B (zh) | 存储器系统及其操作方法 | |
US11599268B2 (en) | Storage device and method of operating the same | |
CN113342566A (zh) | 存储器控制器及其操作方法 | |
CN114443507A (zh) | 存储器系统及其操作方法 | |
CN111208936A (zh) | 存储装置及其操作方法 | |
CN113495810A (zh) | 存储装置及其操作方法 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
CN107436730B (zh) | 数据处理系统及其操作方法 | |
CN113409854A (zh) | 数据存储装置及其操作方法 | |
CN109710174B (zh) | 数据处理系统及其操作方法 | |
CN109947360B (zh) | 存储器系统及其操作方法 | |
US11880274B2 (en) | Host device, memory controller, and computing system including the same | |
CN110262981B (zh) | 控制器及该控制器的操作方法 | |
CN114510371A (zh) | 存储装置及操作存储装置的方法 | |
CN109753388B (zh) | 控制器及其操作方法 | |
CN112711377A (zh) | 分布式存储系统的存储节点及其操作方法 | |
US11989089B2 (en) | Memory controller, operating method thereof, and computing system including the same | |
US11797444B2 (en) | Storage device for storing address information and data in memory device in response to occurrence of power loss and operating method of the storage device | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20230124 |