CN115509966A - 存储器控制器及包括存储器控制器的存储器系统 - Google Patents
存储器控制器及包括存储器控制器的存储器系统 Download PDFInfo
- Publication number
- CN115509966A CN115509966A CN202210194368.0A CN202210194368A CN115509966A CN 115509966 A CN115509966 A CN 115509966A CN 202210194368 A CN202210194368 A CN 202210194368A CN 115509966 A CN115509966 A CN 115509966A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer
- memory
- read
- retention
- 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 332
- 239000000872 buffer Substances 0.000 claims abstract description 398
- 230000014759 maintenance of location Effects 0.000 claims abstract description 126
- 238000013507 mapping Methods 0.000 claims description 81
- 238000012937 correction Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 8
- 238000000034 method Methods 0.000 description 35
- 239000010410 layer Substances 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000000717 retained effect Effects 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
- 230000006870 function Effects 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 239000002356 single layer Substances 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
- 230000009977 dual effect 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
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0656—Data buffering arrangements
-
- 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
- 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/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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/064—Management of blocks
-
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1014—One time programmable [OTP] memory, e.g. PROM, WORM
-
- 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
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储器系统。该存储器系统可以包括存储器装置、缓冲存储器装置和存储器控制器,存储器装置包括多个存储块。缓冲存储器装置包括读取缓冲区和保持缓冲区,读取缓冲区被配置为存储从存储器装置读取的数据,保持缓冲区被配置为存储读取数据的一部分。存储器控制器操作以根据在从存储器装置读取数据时保持数据中的错误位数量来识别读取缓冲区中存储的数据之中的保持数据,将保持数据存储在保持缓冲区中,并且从读取缓冲区中移除保持数据。存储器控制器可以基于与保持数据相关的信息将保持数据存储在多个存储块的任意一个存储块中。
Description
相关申请的交叉引用
本申请要求于2021年6月7日提交的申请号为10-2021-0073674的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例涉及一种电子装置,并且更特别地,涉及一种存储器控制器以及包括存储器控制器的存储器系统。
背景技术
存储器系统是在诸如计算机或智能电话的主机装置的控制下存储数据的装置。存储器系统可以包括存储数据的存储器装置以及控制存储器装置的存储器控制器。这种存储器装置分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供电时存储数据并且在供电中断时会丢失所存储的数据的存储器装置。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置是即使在供电中断时也可以保留所存储的数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例涉及一种可以减少从存储器装置读取的数据中的错误位数量的存储器控制器以及包括该存储器控制器的存储器系统。
本公开的实施例可以提供一种存储器系统。存储器系统可以包括:存储器装置,包括多个存储块;缓冲存储器装置,包括被配置为存储从存储器装置读取的数据的读取缓冲区以及被配置为存储读取数据的一部分的保持缓冲区;以及存储器控制器,被配置为控制存储器装置和缓冲存储器装置,将从存储器装置读取的数据存储在读取缓冲区中,通过确定存储在读取缓冲区中的数据中的错误位数量是否大于预设的第一参考错误位数量来识别存储在读取缓冲区中的数据中包括的保持数据,将保持数据从读取缓冲区传送到保持缓冲区,并且当与保持数据相关的信息满足标准时,将保持数据存储在多个存储块的任意一个存储块中。
本公开的实施例可以提供一种存储器控制器,用于控制缓冲存储器装置和存储器装置,存储器装置包括多个存储块。存储器控制器可以包括:操作控制器,被配置为响应于主机读取数据的请求,控制存储器装置以从存储器装置读取数据;错误校正器,被配置为检测读取数据中包括的错误位,并对读取数据执行错误校正操作以产生经错误校正的数据;以及缓冲控制器,被配置为控制缓冲存储器装置将读取数据存储在缓冲存储器装置中包括的读取缓冲区中,并且在从存储器装置读取数据时,当数据中包括的错误位数量大于参考错误位数量时,确定读取缓冲区中存储的数据是保持数据,并且将保持数据从读取缓冲区传送到缓冲存储器装置中包括的保持缓冲区;并且操作控制器进一步被配置为将经错误校正的数据提供到主机,且当与保持数据相关的信息满足标准时,将保持数据存储在多个存储块的任意一个存储块中。
本公开的实施例可以提供一种存储器系统。存储器系统可以包括:存储器装置,被配置为存储数据;缓冲存储器装置,被配置为存储从存储器装置读取的数据;以及存储器控制器,被配置为将读取数据提供到主机,并随后控制存储器装置和缓冲存储器装置,使得将读取数据的一部分存储在存储器装置中,并且将读取数据的该一部分之外的剩余数据从缓冲存储器装置中移除。
附图说明
图1示出了根据本公开实施例的存储器系统。
图2示出了根据本公开实施例的将保持数据存储在保持缓冲区中的操作。
图3示出了缓冲区映射信息。
图4示出了根据本公开实施例的更新缓冲区映射信息的操作。
图5示出了根据本公开实施例的将存储在保持缓冲区中的保持数据存储在存储器装置中的操作。
图6示出了根据本公开实施例的将从其读取保持数据的存储块中存储的数据存储在另一个存储块中的操作。
图7示出了根据本公开实施例的从保持缓冲区中移除具有与主机请求写入的数据相同的逻辑地址的保持数据的操作。
图8是示出根据本公开实施例的操作存储器系统的过程的流程图。
图9是示出根据本公开实施例的将保持数据存储在保持缓冲区中的过程的流程图。
图10是示出根据本公开实施例的将保持数据存储在存储器装置中的过程的流程图。
图11是示出根据本公开实施例的将保持数据存储在存储器装置中的过程的示例的流程图。
图12是示出根据本公开实施例的将保持数据存储在存储器装置中的过程的示例的流程图。
图13是示出根据本公开实施例的将从其读取保持数据的存储块中存储的数据存储在另一个存储块中的过程的流程图。
图14示出了根据本公开实施例的存储器控制器。
图15示出了图1的存储器装置。
图16是示出应用了根据本公开实施例的存储器系统的存储卡系统的框图。
图17是示出应用了根据本公开实施例的存储器系统的固态驱动器(SSD)系统的框图。
图18是示出应用了根据本公开实施例的存储器系统的用户系统的框图。
具体实施方式
提供了本说明书或申请中引入的本公开实施例中的特定结构或功能描述,以描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式来实践,并且不应被解释为限于说明书或申请中描述的实施例。
图1示出了根据本公开的实施例的存储器系统50。
存储器系统50可以包括存储器装置100、缓冲存储器装置300以及存储器控制器200,存储器控制器200控制存储器装置100和缓冲存储器装置300的操作。存储器系统50可以是在主机400的控制下存储数据的装置。主机400可以是例如移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视、平板电脑或车载信息娱乐系统。
根据作为与主机400通信的方案的主机接口,存储器系统50可以被制造为各种类型的存储装置中的任意一种。例如,存储器系统50可以被实现为例如以下的任意一种:固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储器系统50可以以各种类型的封装形式中的任何一种来制造。例如,存储器系统50可以以堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)中的任何一种来制造。
存储器装置100可以存储数据。存储器装置100可以响应于存储器控制器200的控制而操作。存储器装置100可以包括存储器单元阵列(未示出),该存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可以被实现为能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
存储器单元阵列(未示出)可以包括多个存储块。每个存储块可以包括多个存储器单元。单个存储块可以包括多个页面。在实施例中,页面可以是将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可以包括例如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)、自旋转移力矩RAM(STT-RAM)或者其组合。在本说明书中,为了便于描述,将在存储器装置100为NAND闪速存储器的假设下进行描述。
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问存储器单元阵列中由该地址选择的区域。存储器装置100可以对由该地址选择的区域执行由该命令所指示的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作和擦除操作。在写入操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
在实施例中,存储器装置100可以存储映射数据,该映射数据包括主机400所提供的逻辑地址与对应于逻辑地址的物理地址之间的映射信息。
存储器控制器200可以控制存储器系统50的全部操作。
当向存储器系统50施加电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,固件可以包括控制与主机400的通信的主机接口层(HIL)、控制主机400与存储器装置100之间的通信的闪存转换层(FTL)以及控制与存储器装置100的通信的闪存接口层(FIL)。
在实施例中,存储器控制器200可以从主机400接收数据和逻辑块地址(LBA),并且可以将逻辑块地址(LBA)转换为物理块地址(PBA),物理块地址(PBA)指示存储器装置100中包括的并且存储了数据或待存储数据的存储器单元的地址。在本说明书中,术语“逻辑块地址(LBA)”和“逻辑地址”可以互换使用。在本说明书中,术语“物理块地址(PBA)”和“物理地址”可以互换使用。
存储器控制器200可以控制存储器装置100,以便响应于从主机400接收的请求执行写入操作、读取操作或擦除操作。在写入操作期间,存储器控制器200可以将写入命令、物理块地址和数据提供到存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和物理块地址提供到存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和物理块地址提供到存储器装置100。
在实施例中,存储器控制器200可以不管是否接收到来自主机400的请求而自主地生成命令、地址和数据,并且可以将它们传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据,以执行在执行损耗均衡、读取回收、垃圾收集等过程中涉及的读取操作和写入操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以根据交错方案来控制存储器装置100以提高操作性能。交错方案可以是控制存储器装置100使得至少两个存储器装置100的操作在时间上彼此重叠的方案。
在实施例中,存储器控制器200可以包括缓冲控制器210、保持数据信息存储装置220、地址映射信息存储装置230、操作控制器240和错误校正器250。
缓冲控制器210可以控制缓冲存储器装置300临时存储已经从存储器装置100读取的数据或由主机400所提供的待写入存储器装置100的数据。
在实施例中,缓冲控制器210可以存储缓冲区映射信息。缓冲区映射信息可以是指示读取缓冲区地址、保持缓冲区地址和写入缓冲区地址中的每一个与存储(或待存储)在缓冲存储器装置300中的数据的相应物理地址之间的映射关系的信息。缓冲控制器210可以将数据存储在读取缓冲区310、保持缓冲区320和写入缓冲区330的任意一个中,或者可以通过更新缓冲区映射信息来释放所存储的数据。
在实施例中,缓冲控制器210可以控制缓冲存储器装置300,使得从存储器装置100读取的数据被存储在读取缓冲区310中。当将读取数据存储在读取缓冲区310中时,缓冲控制器210可以将与读取数据相对应的读取缓冲区地址存储在缓冲区映射信息中。
在实施例中,缓冲控制器210可以控制缓冲存储器装置300,使得存储在读取缓冲区310中的数据的一部分存储在保持缓冲区320中。详细地,缓冲控制器210可以从存储在读取缓冲区310中的数据确定保持数据。例如,缓冲控制器210可以将存储在读取缓冲区310中的、在被错误校正器250校正之前所包含的错误位数量大于预设的第一参考错误位数量的数据确定为保持数据。缓冲控制器210可以控制缓冲存储器装置300,使得存储在读取缓冲区310中的保持数据被移动到保持缓冲区320。例如,当保持数据被存储在保持缓冲区320中时,缓冲控制器210可以更新缓冲区映射信息,以便将与保持数据相对应的读取缓冲区地址转换为与保持数据相对应的保持缓冲区地址。
此后,缓冲控制器210可以控制缓冲存储器装置300移除存储在读取缓冲区310中的数据。缓冲控制器210可以更新缓冲区映射信息,以便移除与保持数据相对应的读取缓冲区地址。
缓冲控制器210可以控制缓冲存储器装置300,使得将主机400已经请求写入的数据存储在写入缓冲区330中。在实施例中,缓冲控制器210可以控制缓冲存储器装置300,以便从保持缓冲区320中移除具有与请求写入的数据相对应的逻辑地址相同的逻辑地址的保持数据。
保持数据信息存储装置220可以存储与保持数据相关的信息。此处,与保持数据相关的信息可以包括关于保持缓冲区320的剩余空间的信息、关于自保持数据存储在保持缓冲区320中起所经过的时间的信息、关于保持数据中包含的错误位被校正之前错误位数量的信息等。保持数据信息存储装置220可以将与保持数据相关的信息提供到操作控制器240。
地址映射信息存储装置230可以存储地址映射信息。此处,地址映射信息可以包括主机400所提供的逻辑地址与物理地址之间的映射关系,该物理地址指示存储器装置100的多个存储块中包括的存储器单元的地址。当从主机400接收到读取请求或写入请求时,地址映射信息存储装置230可以向操作控制器240提供地址映射信息。操作控制器240可以基于地址映射信息获取映射到由主机400所提供的逻辑地址的物理地址。操作控制器240可以基于所获取的物理地址执行与来自主机的请求相对应的操作。
进一步地,当新数据被存储在存储器装置100中时或者当存储在存储器装置100中的数据被再次存储在另一位置时,地址映射信息存储装置230可以更新地址映射信息。
在实施例中,当保持数据被存储在存储器装置100中时,地址映射信息存储装置230可以更新地址映射信息,以便将与保持数据相对应的逻辑地址映射到与正在存储保持数据的存储器单元相对应的物理地址。在示例中,当保持数据被存储在存储器装置100中包括的多个存储块的任意一个存储块中时,地址映射信息存储装置230可以从操作控制器240接收与保持数据相对应的逻辑地址。进一步地,地址映射信息存储装置230可以更新地址映射信息,以便将与保持数据相对应的物理地址映射到与任意一个存储块中包括的存储器单元之中的正在存储保持数据的存储器单元相对应的物理地址。
操作控制器240可以响应于从主机400接收到的请求,将数据存储在存储器装置100中或者读取存储在存储器装置100中的数据。
例如,响应于从主机400接收到的读取请求,操作控制器240可以读取存储在存储器装置100中的数据并将读取数据提供到错误校正器250。然后,操作控制器240可以接收来自错误校正器250的经错误校正的数据,并且可以将经错误校正的数据提供到主机400。此外,操作控制器240可以将读取数据提供到缓冲存储器装置300。缓冲存储器装置300可以将读取数据存储在读取缓冲区310中。
此外,操作控制器240可以响应于从主机400接收到的写入请求而将数据存储在存储器装置100中。操作控制器240可以将请求写入的数据提供到缓冲存储器装置300。缓冲存储器装置300可以将请求写入的数据存储在写入缓冲区330中。
在实施例中,操作控制器240可以控制存储器装置100,以便将保持缓冲区320中存储的保持数据存储在存储器装置100中。可以将与保持数据相关的信息从保持数据信息存储装置220提供到操作控制器240。操作控制器240可以基于与保持数据相关的信息来确定是否将保持数据存储在存储器装置100中。例如,当与保持数据相关的信息超过预设阈值时,操作控制器240可以控制存储器装置100,以便将保持数据存储在存储器装置100的多个存储块的任意一个存储块中。
在实施例中,操作控制器240可以控制存储器装置100,以便在空闲时间期间,使用后台操作等将保持数据存储在多个存储块的任意一个存储块中。
错误校正器250可以检测从存储器装置100读取的数据中包括的错误位,并且可以对读取数据执行错误校正操作。错误校正器250可以向操作控制器240提供经错误校正的数据。错误校正器250可以向缓冲控制器210提供关于读取数据中包括的错误位数量的信息。
缓冲存储器装置300可以在存储器控制器200的控制下临时存储从存储器装置100读取的数据或者主机400已经请求写入的数据。
在实施例中,缓冲存储器装置300可以包括读取缓冲区310、保持缓冲区320和写入缓冲区330。
读取缓冲区310可以临时存储从存储器装置100读取的数据。存储在读取缓冲区310中的读取数据可以是错误校正器250所产生的经错误校正的读取数据。
保持缓冲区320可以存储保持数据。在实施例中,保持缓冲区320可以存储读取缓冲区310中存储的数据中包括的保持数据。
写入缓冲区330可以临时存储主机400已经请求写入的数据。
在实施例中,缓冲存储器装置300可以由异构(heterogeneous)存储器组成。例如,读取缓冲区310、保持缓冲区320和写入缓冲区330可以被实现为不同类型的存储器。
随着时间的推移,存储在存储器装置100中的数据中的错误位数量可以与数据被存储的时间成比例地增加。错误位数量增加的原因可以包括例如存储在存储器装置中的电子随时间从存储器装置中射出的现象,或者在读取操作期间电子被注入到不执行读取操作的存储器单元中的现象。在这种情况下,存储器系统50可以通过诸如读取回收操作的刷新操作,将当前存储在存储器装置100的存储块中的数据存储在存储器装置100的另一个存储块中,从而降低读取操作期间发生错误的概率。然而,当数据中包含的错误位数量较少时,可以不执行刷新操作。然而,当刷新操作频繁发生时,存储器系统的性能可能会劣化。因此,需要一种能够降低读取操作期间发生错误的概率并提高存储器系统的性能的方案。
因此,根据本公开的实施例,与在被校正之前具有大量错误位的读取数据相对应的保持数据可以被临时存储在保持缓冲区320中,并且可以随后被存储回存储器装置100中。以这种方式,可以降低随后读取操作期间发生错误的概率。
主机400可以使用诸如以下的各种通信技术中的至少一种与存储器系统50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和负载减少的DIMM(LRDIMM)通信技术。
图2示出了根据本公开实施例的将保持数据存储在保持缓冲区中的操作。
图2所示的存储器装置100、存储器控制器200和缓冲存储器装置300可以分别代表图1所示的存储器装置100、存储器控制器200和缓冲存储器装置300。
参照图2,操作控制器240可以从主机400接收读取请求R_REQ。操作控制器240可以响应于该读取请求而生成指定读取操作的读取命令R_CMD。操作控制器240可以向存储器装置100输出读取命令R_CMD。可以向操作控制器240提供从存储器装置100读取的数据R_DATA。进一步地,操作控制器240可以向错误校正器250提供读取数据R_DATA。错误校正器250可以检测读取数据R_DATA中包含的错误位,并且可以对读取数据R_DATA执行错误校正操作。错误校正器250可以向操作控制器240提供通过错误校正操作而获得的经错误校正的数据EC_DATA。操作控制器240可以向主机400提供经错误校正的数据EC_DATA。
在实施例中,操作控制器240可以将读取数据R_DATA提供到读取缓冲区310,并且缓冲控制器210可以控制缓冲存储器装置300使得将读取数据R_DATA存储在读取缓冲区310中。在这种情况下,缓冲控制器210可以更新缓冲区映射信息以存储与读取数据R_DATA相对应的读取缓冲区地址。在实施例中,操作控制器240可以将经错误校正的数据EC_DATA提供到读取缓冲区310,缓冲控制器210可以控制缓冲存储器装置300使得将经错误校正的数据EC_DATA存储在读取缓冲区310中,并且可以更新缓冲区映射信息以存储与经错误校正的数据EC_DATA相对应的读取缓冲区地址。在实施例中,与读取数据R_DATA相对应的数据仅在读取数据R_DATA被错误校正器250成功校正时才存储在读取缓冲区310中。
错误校正器250可以向缓冲控制器210提供关于读取数据R_DATA中包含的错误位数量的信息EC_INFO。
缓冲控制器210可以基于关于错误位数量的信息EC_INFO来确定存储在读取缓冲区310中的数据之中的保持数据。例如,缓冲控制器210可以将存储在读取缓冲区310中的数据之中的、包含的错误位数量(在被校正之前)比预设的第一参考错误位数量多的数据确定为保持数据K_DATA。缓冲控制器210可以控制缓冲存储器装置300,使得将临时存储在读取缓冲区310中的保持数据K_DATA存储在保持缓冲区320中。在这种情况下,缓冲控制器210可以控制缓冲存储器装置300,使得与保持数据相对应的逻辑地址K_LBA以及关于从其读取保持数据的存储块的信息连同保持数据K_DATA一起存储在保持缓冲区320中,并且缓冲控制器210可以将与保持数据相关的信息(例如,经校正的错误位数量、时间戳或保持数据的大小)提供到保持数据信息存储装置220。缓冲控制器210可以控制缓冲存储器装置300,使得将临时存储在读取缓冲区310中、已经存储在保持缓冲区320中的数据从读取缓冲区310中移除。
图3示出了缓冲区映射信息。
参照图3,缓冲区映射信息可以包括读取缓冲区映射信息和保持缓冲区映射信息。
在实施例中,读取缓冲区映射信息可以指示读取缓冲区地址和缓冲区地址之间的映射关系。此处,读取缓冲区地址可以指示存储在读取缓冲区310中的数据的地址。缓冲区地址可以指示存储在缓冲存储器装置300中的数据的物理地址。
例如,第0读取缓冲区地址RB_ADDR 0可以映射到第A缓冲区地址B_ADDR A。在这种情况下,存储在第A缓冲区地址B_ADDR A的数据可以是存储在读取缓冲区310中的数据,并且可以具有第0读取缓冲区地址RB_ADDR 0。进一步地,第一读取缓冲区地址RB_ADDR 1可以映射到第B缓冲区地址B_ADDR B。在这种情况下,存储在第B缓冲区地址B_ADDR B的数据可以是存储在读取缓冲区310中的数据,并且可以具有第一读取缓冲区地址RB_ADDR1。进一步地,第二读取缓冲区地址RB_ADDR 2可以映射到第C缓冲区地址B_ADDR C。在这种情况下,存储在第C缓冲区地址B_ADDR的数据C可以是存储在读取缓冲区310中的数据,并且可以具有第二读取缓冲区地址RB_ADDR 2。此外,第三读取缓冲区地址RB_ADDR3可以映射到第D缓冲区地址B_ADDR D。在这种情况下,存储在第D缓冲区地址B_ADDR D的数据可以是存储在读取缓冲区310中的数据,并且可以具有第三读取缓冲区地址RB_ADDR 3。
在实施例中,保持缓冲区映射信息可以指示保持缓冲区地址和缓冲区地址之间的映射关系。保持缓冲区地址可以指示存储在保持缓冲区320中的数据的地址。
在实施例中,当保持数据存储在保持缓冲区320中时,与保持数据相对应的保持缓冲区地址可以存储在缓冲区映射信息中。保持缓冲区地址与缓冲区地址之间的映射关系可以按照与上述读取缓冲区地址和缓冲区地址之间的映射关系相同的方式应用。
另一方面,尽管在图3所示的示例中未示出,但是缓冲区映射信息可以进一步包括指示写入缓冲区地址与缓冲区地址之间的映射关系的写入缓冲区映射信息。写入缓冲区地址可以指示存储在写入缓冲区中的数据的地址。写入缓冲区地址和缓冲区地址之间的映射关系可以按照与上述读取缓冲区地址和缓冲区地址之间的映射关系相同的方式应用。
图4示出了根据本公开实施例的更新缓冲区映射信息的操作。
在图4的示例中,最初将第0读取缓冲区地址RB_ADDR 0映射到第A缓冲区地址B_ADDR A,将第一读取缓冲区地址RB_ADDR 1映射到第B缓冲区地址B_ADDR B,将第二读取缓冲区地址RB_ADDR 2映射到第C缓冲区地址B_ADDR C,将第三读取缓冲区地址RB_ADDR 3映射到第D缓冲区地址B_ADDR D。
在实施例中,当保持数据存储在保持缓冲区320中时,缓冲控制器210可以将与保持数据相对应的读取缓冲区地址转换为与保持数据相对应的保持缓冲区地址。在该示例中,存储在第C缓冲区地址B_ADDR C的数据是保持数据。在实施例中,假设保持数据最初没有被存储在保持缓冲区320中。因此,缓冲控制器210可以将与保持数据相对应的第二读取缓冲区地址RB_ADDR 2转移到第0保持缓冲区地址KB_ADDR0。因此,缓冲控制器210可以更新保持缓冲区映射信息,以便将与保持数据相对应的第0保持缓冲区地址KB_ADDR 0映射到第二读取缓冲区地址RB_ADDR 2已被映射到的第C缓冲区地址B_ADDR C。此外,缓冲控制器210可以移除读取缓冲区映射信息中包括的第二读取缓冲区地址RB_ADDR 2和第C缓冲区地址B_ADDR C之间的映射关系。
因此,根据本公开的实施例,在不移动数据的情况下,将与保持数据相对应的读取缓冲区地址转换为保持缓冲区地址,从而可以缩短将保持数据存储在保持缓冲区320中所需的时间。
图5示出了根据本公开实施例的将存储在保持缓冲区中的保持数据存储在存储器装置中的操作。
图5所示的存储器装置100、存储器控制器200和缓冲存储器装置300可以分别表示图1所示的存储器装置100、存储器控制器200和缓冲存储器装置300。
参照图5,保持数据信息存储装置220可以向操作控制器240提供与保持数据相关的信息。此处,与保持数据相关的信息可以包括关于保持缓冲区320的剩余空间的信息、关于自保持数据存储在保持缓冲区320中起所经过的时间的信息、关于在错误校正之前与保持数据相对应的读取数据中包含的错误位数量的信息等。
可以将与保持数据相对应的逻辑地址K_LBA以及保持数据K_DATA一起从保持缓冲区320提供到操作控制器240。操作控制器240可以确定与保持数据相关的信息是否超过预设阈值。当与保持数据相关的信息超过预设阈值时,操作控制器240可以生成指示将保持数据K_DATA存储在多个存储块的任意一个存储块中的写入命令W_CMD。操作控制器240可以向存储器装置100提供写入命令W_CMD和保持数据K_DATA。存储器装置100可以响应于写入命令W_CMD而将保持数据K_DATA存储在任意一个存储块中。
在实施例中,与保持数据相关的信息可以包括存储在保持缓冲区320中的保持数据的大小,并且操作控制器240可以确定存储在保持缓冲区320中的保持数据的大小是否大于预设大小。当确定存储在保持缓冲区320中的保持数据的大小大于预设大小时,操作控制器240可以控制存储器装置100,使得将保持缓冲区320中存储的保持数据K_DATA存储在任意一个存储块中。
在实施例中,与保持数据相关的信息可与自保持数据K_DATA存储在保持缓冲区320中起所经过的时间有关,并且操作控制器240可以确定自保持数据K_DATA存储在保持缓冲区320中起所经过的时间是否超过预设时间。此处,各个实施例可以应用各种技术来确定自保持数据K_DATA的存储起所经过的时间是否超过预设时间。例如,操作控制器240可以确定从最早的保持数据K_DATA存储在保持缓冲区320中的时间点起所经过的时间是否超过预设时间。在示例中,操作控制器240可以确定从最近一条保持数据K_DATA存储在保持缓冲区320中的时间点起所经过的时间是否超过预设时间。在示例中,当从多条保持数据K_DATA存储在保持缓冲区320中的时间点起所经过的时间的平均值超过预设时间时,操作控制器240可以控制存储器装置100,使得将多条保持数据K_DATA存储在任意一个存储块中。
在实施例中,与保持数据相关的信息可与对应于保持缓冲区320中的保持数据K_DATA的错误位数量(例如,与保持数据K_DATA相对应的读取数据R_DATA中的错误位数量)有关,并且操作控制器240可以确定与存储在保持缓冲区320中的保持数据K_DATA相对应的错误位数量是否大于预设的第二参考错误位数量。在实施例中,当确定与存储在保持缓冲区320中的保持数据K_DATA相对应的错误位数量大于预设的第二参考错误位数量时,操作控制器240可以控制存储器装置100,使得将保持缓冲区320中存储的保持数据K_DATA存储在任意一个存储块中。
在实施例中,操作控制器240可以将与保持数据相对应的逻辑地址K_LBA以及与待存储保持数据的一个存储块相对应的物理地址都提供到地址映射信息存储装置230。地址映射信息存储装置230可以更新地址映射信息,使得对应于保持数据的逻辑地址K_LBA与对应于一个存储块的物理地址相互映射。
图6示出了根据本公开实施例的将从其读取保持数据的存储块中存储的数据存储在另一个存储块中的操作。
图6所示的存储器装置100、操作控制器240和保持缓冲区320可以分别表示图1所示的存储器装置100、操作控制器240和保持缓冲区320。
在图6的示例中,保持数据对应于从存储块BLK_A读取的数据。也就是说,假设在从存储块BLK_A读取的数据存储在读取缓冲区之后(在本实施例中,在错误校正之后),将读取缓冲区中存储的数据中的保持数据存储在保持缓冲区中。
参照图6,在步骤S601,可以向操作控制器240提供关于从其读取产生保持数据的数据的存储块的信息BLK_NUM。在实施例中,关于从其读取产生保持数据的数据的存储块的信息BLK_NUM可以是关于从其读取产生保持数据的数据的存储块的位置的信息。例如,关于存储块的信息BLK_NUM可以指示分配给相应存储块的编号。
在步骤S603,操作控制器240可以向存储器装置100输出读取命令R_CMD。例如,操作控制器240可以基于关于存储块的信息BLK_NUM生成读取命令R_CMD,该读取命令R_CMD指示对从其读取保持数据的存储块BLK_A执行测试读取操作。操作控制器240可以将所生成的读取命令R_CMD输出到存储器装置100。
在步骤S605,可以将存储块BLK_A中存储的数据DATA从存储器装置100提供到操作控制器240。例如,存储器装置100可以响应于读取命令R_CMD,读取存储在存储块BLK_A中的数据DATA。存储器装置100可以将读取数据DATA提供到操作控制器240。操作控制器240可以确定数据DATA包含的错误位数量是否大于预设的第三参考错误位数量。
当确定数据DATA包含比预设的第三参考错误位数量大的错误位数量时,在步骤S607,操作控制器240可以控制存储器装置100,使得将从其读取保持数据的存储块BLK_A中存储的数据DATA存储在多个存储块之中的存储块BLK_B中,存储块BLK_B与从其读取保持数据的存储块不同。例如,操作控制器240可以将写入命令与数据DATA一起提供到存储器装置100。在实施例中,数据DATA是经错误校正的,并且经错误校正的数据与写入命令一起被提供。存储器装置100可以响应于写入命令,将与写入命令一起提供的数据存储在另一个存储块BLK_B中。
图7示出了根据本公开实施例的从保持缓冲区中移除具有与主机请求写入的数据相同的逻辑地址的保持数据的操作。
图7所示的存储器装置100、存储器控制器200和缓冲存储器装置300可以分别表示图1所示的存储器装置100、存储器控制器200和缓冲存储器装置300。
参照图7,主机400可以将请求写入的数据W_DATA以及与请求写入的数据W_DATA相对应的逻辑地址W_LBA连同写入请求W_REQ一起提供到操作控制器240。
操作控制器240可以从主机400接收写入请求W_REQ,并且可以将请求写入的数据W_DATA提供到写入缓冲区330。操作控制器240可以将与请求写入的数据W_DATA相对应的逻辑地址W_LBA提供到缓冲控制器210。操作控制器240可以生成写入命令W_CMD,该写入命令W_CMD指示使用请求写入的数据W_DATA来执行写入操作。操作控制器240可以将写入命令W_CMD和请求写入的数据W_DATA都提供到存储器装置100。存储器装置100可以响应于写入命令W_CMD而存储请求写入的数据W_DATA。
可以将与保持数据相对应的逻辑地址K_LBA从保持缓冲区320提供到缓冲控制器210。缓冲控制器210可以确定与请求写入的数据相对应的逻辑地址W_LBA和与保持数据相对应的逻辑地址K_LBA是否为相同的逻辑地址。当确定与请求写入的数据相对应的逻辑地址W_LBA和与保持数据相对应的逻辑地址K_LBA是相同的逻辑地址时,缓冲控制器210可以向保持缓冲区320输出控制信号D_CTRL,使得从保持缓冲区320中移除具有与请求写入的数据相对应的逻辑地址W_LBA相同的逻辑地址的保持数据。从保持缓冲区320中移除具有与逻辑地址W_LBA相同的逻辑地址的保持数据可以包括从保持缓冲区映射信息中移除与保持数据相对应的保持缓冲区地址与缓冲区地址之间的映射关系。
图8是示出根据本公开实施例的操作存储器系统的过程的流程图。
图8所示的过程可以由例如图1所示的存储器系统50来执行。
参照图8,在步骤S801,存储器系统50从主机400接收读取请求。
在步骤S803,存储器系统50可以读取主机400的读取请求所请求读取的数据。例如,操作控制器240可以向存储器装置100输出读取命令,并且可以将请求读取的数据从存储器装置100提供到操作控制器240。
在步骤S805,存储器系统50可以将读取数据存储在读取缓冲区310中。例如,缓冲控制器210可以控制缓冲存储器装置300使得将读取数据临时存储在读取缓冲区310中。在实施例中,读取数据在被错误校正之后存储在读取缓冲区中。
在步骤S807,存储器系统50可以将读取数据中包括的保持数据存储在保持缓冲区320中。例如,缓冲控制器210可以控制缓冲存储器装置300使得将临时存储在读取缓冲区310中的数据中包括的保持数据K_DATA存储在保持缓冲区320中。
在步骤S809,存储器系统50可以从读取缓冲区310中移除读取数据。
在步骤S811,存储器系统50可以将保持数据存储在存储器装置100中。在示例中,操作控制器240可以控制存储器装置100使得将存储在保持缓冲区320中的保持数据存储在多个存储块的任意一个存储块中。
图9是示出根据本公开实施例的将保持数据存储在保持缓冲区中的过程的流程图。
在实施例中,图9所示的过程可以是例如图8所示的步骤S807的详细实施例。
图9所示的过程可以由例如图1所示的存储器系统50来执行。
参照图9,在步骤S901,存储器系统50可以确定从存储器装置100读取的数据中的错误位数量。
在步骤S903,存储器系统50可以确定读取数据中的错误位数量是否大于预设的第一参考错误位数量。例如,当确定读取数据中的错误位数量大于预设的第一参考错误位数量时,操作控制器240可以执行步骤S905。相反,当确定读取数据中的错误位数量不大于预设的第一参考错误位数量时,图9的过程可以终止。
在步骤S905,存储器系统50可以将读取数据确定为保持数据。
在步骤S907,存储器系统50可以将保持数据存储在保持缓冲区320中。在实施例中,保持数据可以在被存储在保持缓冲区320中之前进行错误校正。
图10是示出根据本公开实施例的将保持数据存储在存储器装置中的过程的流程图。
在实施例中,图10所示的过程可以是例如图8所示的步骤S811中包括的详细实施例。
图10所示的过程可以由例如图1所示的存储器系统50来执行。
参照图10,在步骤S1001,存储器系统50可以确定存储在保持缓冲区320中的保持数据的大小是否大于预设大小。当确定存储在保持缓冲区320中的保持数据的大小大于预设大小时,可以执行步骤S1003。相反,当确定存储在保持缓冲区320中的保持数据的大小不大于预设大小时,图10的过程可以终止。
在步骤S1003,存储器系统50可以将保持数据存储在存储器装置100中。
图11是示出根据本公开实施例的将保持数据存储在存储器装置中的过程的示例的流程图。
在实施例中,图11所示的过程可以是例如图8所示的步骤S811中包括的详细实施例。
图11所示的过程可以由例如图1所示的存储器系统50来执行。
参照图11,在步骤S1101,存储器系统50可以确定自保持数据存储在保持缓冲区320中起所经过的时间是否超过预设时间。例如,当确定自保持数据存储在保持缓冲区320中起所经过的时间超过预设时间时,可以执行步骤S1103。在实施例中,自保持数据存储在保持缓冲区320中起所经过的时间可以基于自存储保持缓冲区320中存储的最早一条(least recent piece)保持数据起所经过的时间。在实施例中,自保持数据存储在保持缓冲区320中起所经过的时间可以基于自存储保持缓冲区320中存储的最近一条(mostrecent piece)保持数据起所经过的时间。在实施例中,自保持数据存储在保持缓冲区320中起所经过的时间可以基于自将多条保持数据存储在保持缓冲区320中起所经过的各个时间的平均值。在实施例中,自保持数据存储在保持缓冲区320中起所经过的时间和预设时间在各个实施例中可以不同。
相反,当确定自保持数据存储在保持缓冲区320中起所经过的时间没有超过预设时间时,图11的过程可以终止。
在步骤S1103,存储器系统50可以将保持数据存储在存储器装置100中。
图12是示出根据本公开实施例的将保持数据存储在存储器装置中的过程的示例的流程图。
在实施例中,图12所示的过程可以是例如图8所示的步骤S811中包括的详细实施例。
图12所示的过程可以由例如图1所示的存储器系统50来执行。
参照图12,在步骤S1201,存储器系统50可以确定与存储在保持缓冲区320中的保持数据相对应的错误位数量是否大于预设的第二参考错误位数量。例如,当确定与存储在保持缓冲区320中的保持数据相对应的错误位数量大于预设的第二参考错误位数量时,可以执行步骤S1203。相反,当确定与存储在保持缓冲区320中的保持数据相对应的错误位数量不大于预设的第二参考错误位数量时,图12的过程可以终止。
在步骤S1203,存储器系统50可以将保持数据存储在存储器装置100中。
图13是示出根据本公开实施例的将从其读取保持数据的存储块中存储的数据存储在另一个存储块中的过程的流程图。
图13所示的过程可以由例如图1所示的存储器系统50来执行。
参照图13,在步骤S1301,存储器系统50可以将关于从其读取保持数据的存储块的信息存储在保持缓冲区320中。例如,当保持数据被存储在保持缓冲区320中时,保持缓冲区320可以存储关于与多个存储块之中的、从其读取保持数据的存储块相对应的位置的信息。例如,关于存储块的信息可以指示分配给相应存储块的编号。
在步骤S1303,存储器系统50可以向从其读取保持数据的存储块施加测试读取电压。例如,存储器系统50可以从施加了测试读取电压的存储块读取数据。例如,测试读取电压是用于确定从其读取保持数据的存储块的错误位数量的电压。
在步骤S1305,存储器系统50可以通过向存储块施加测试读取电压来确定从存储块读取的数据中的错误位数量。
在步骤S1307,存储器系统50可以确定读取数据中的错误位数量是否大于预设的第三参考错误位数量。例如,当确定读取数据中的错误位数量大于预设的第三参考错误位数时,可以执行步骤S1309。相反,当读取数据中的错误位数量不大于预设的第三参考错误位数量时,图13的过程可以终止。
在步骤S1309,存储器系统50可以将从其读取保持数据的存储块中存储的数据存储在另一个存储块中。在实施例中,存储在存储块中的数据可以是经错误校正的数据。在实施例中,存储在另一个存储块中的数据是先前存储在保持缓冲区320中的保持数据。
图14示出了根据本公开实施例的存储器控制器。
例如,图14的存储器控制器1400可以被实现为包括图1的存储器控制器200和缓冲存储器装置300的装置。
参照图14,存储器控制器1400可以包括处理器1410、RAM 1420、错误校正电路1430、主机接口1440、ROM 1450和闪存接口1460。
处理器1410可以控制存储器控制器1400的整体操作。图1所示的缓冲控制器210和操作控制器240可以被实现为图14的处理器1410的一个组件。
RAM 1420可以用作存储器控制器1400的缓冲存储器、高速缓存存储器或工作存储器。图1所示的缓冲存储器装置300可以被实现为图14的RAM 1420的一个组件。
在实施例中,RAM 1420可以包括存储从存储器装置100读取的数据的读取缓冲区域、存储保持数据的保持缓冲区域以及存储主机400请求写入的数据的写入缓冲区域。此处,读取缓冲区域可以对应于图1的读取缓冲区310,保持缓冲区域可以对应于图1的保持缓冲区320,写入缓冲区域可以对应于图1的写入缓冲区330。
在实施例中,处理器1410可以控制RAM 1420存储从存储器装置100读取的数据。RAM 1420可以在处理器1410的控制下将读取数据存储在读取缓冲区域中。此外,在实施例中,处理器1410可以控制RAM1420,使得将读取缓冲区域中存储的数据中的保持数据存储在保持缓冲区域中。RAM 1420可以在处理器1410的控制下将保持数据存储在保持缓冲区域中并且移除存储在读取缓冲区域中的数据。
进一步地,图1的保持数据信息存储装置220和地址映射信息存储装置230可以被实现为图14的RAM 1420的一个组件。例如,RAM 1420可以存储与保持数据和地址映射信息相关的信息。
在实施例中,处理器1410可以执行闪存转换层的功能。处理器1410可以通过闪存转换层(FTL)将主机400所提供的逻辑块地址转换为物理块地址。闪存转换层可以接收逻辑块地址,并使用存储在RAM 1420中的地址映射信息将逻辑块地址转换为物理块地址。通过FTL执行的地址映射过程的示例可以根据映射单元而包括各种过程。代表性的地址映射过程包括页面映射过程、块映射过程和混合映射过程。进一步地,当新数据被存储在存储器装置100中或者当存储在存储器装置100中的数据被再次存储在另一个位置时,处理器1410可以控制RAM 1420更新地址映射信息。
错误校正电路1430可以执行错误校正。错误校正电路1430可以基于通过闪存接口1460待写入存储器装置100的数据执行错误校正码(ECC)编码。经ECC编码的数据可以通过闪存接口1460传送到存储器装置100。错误校正电路1430可以对通过闪存接口1460从存储器装置100接收的数据执行错误校正码解码(ECC解码)。在示例中,图1所示的错误校正器250可以被实现为图14的错误校正电路1430的一个组件。
在实施例中,错误校正电路1430可以检测从存储器装置100读取的数据中包含的错误位。错误校正电路1430可以向处理器1410提供关于读取数据中包含的错误位数量的信息。在实施例中,错误校正电路1430可以作为闪存接口1460的组件被包括在闪存接口1460中。
ROM 1450可以以固件的形式存储存储器控制器1400的操作所需的各种类型的信息。
存储器控制器1400可以通过主机接口1440与外部装置(例如,主机400、应用处理器等)通信。
存储器控制器1400可以通过闪存接口1460与存储器装置100通信。存储器控制器1400可以通过闪存接口1460将命令、地址、控制信号等传输到存储器装置100并且从存储器装置100接收数据。在示例中,闪存接口1460可以包括NAND接口。
在实施例中,处理器1410可以基于与存储在RAM 1420中的保持数据相关的信息来确定是否将保持数据存储在存储器装置100中。当与保持数据相关的信息超过预设阈值时,处理器1410可以通过闪存接口1460向存储器装置100传输用于控制将保持数据存储在多个存储块的任意一个存储块中的命令、地址、控制信号等。
图15示出了图1的存储器装置100。
参照图15,存储器装置100可以包括存储器单元阵列110、电压生成器120、地址解码器130、输入/输出(I/O)电路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所述的存储映射数据的映射数据块。剩余的存储块可以是存储主机400请求的数据的普通块。
在实施例中,电压生成器120、地址解码器130和输入/输出电路140可以被统称为外围电路。外围电路可以在控制逻辑150的控制下驱动存储器单元阵列110。外围电路可以驱动存储器单元阵列110,以执行编程操作、读取操作和擦除操作。
电压生成器120可以使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器120可以在控制逻辑150的控制下进行操作。
在实施例中,电压生成器120可以通过调节外部电源电压来生成内部电源电压。电压生成器120所生成的内部电源电压可以用作存储器装置100的操作电压。
在实施例中,电压生成器120可以使用外部电源电压或内部电源电压来生成多个操作电压。电压生成器120可以生成存储器装置100所需的各种电压。例如,电压生成器120可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
电压生成器120可以包括用于接收内部电源电压的多个泵浦电容器,以生成具有各种电压电平的多个操作电压,并且可以在控制逻辑150的控制下,通过选择性地启用多个泵浦电容器来生成多个操作电压。
所生成的操作电压可以通过地址解码器130供应到存储器单元阵列110。
地址解码器130通过行线RL耦合到存储器单元阵列110。地址解码器130可以在控制逻辑150的控制下操作。地址解码器130从控制逻辑150接收地址ADDR。地址解码器130可以对接收到的地址ADDR之中的块地址进行解码。地址解码器130可以根据经解码的块地址来选择存储块BLK1至BLKi中的至少一个。地址解码器130可以对接收到的地址ADDR之中的行地址进行解码。地址解码器130可以根据经解码的行地址来选择所选择存储块的字线中的至少一个。在实施例中,地址解码器130可以对接收到的地址ADDR之中的列地址进行解码。地址解码器130可以根据经解码的列地址将输入/输出电路140耦合到存储器单元阵列110。
根据本公开的实施例,在读取操作期间,地址解码器130可以将读取电压施加到所选择的字线,并将电平高于读取电压的电平的读取通过电压施加到未选择的字线。
在实施例中,地址解码器130可以包括诸如行解码器、列解码器和地址缓冲器的组件。
输入/输出(I/O)电路140可以包括多个页面缓冲器。多个页面缓冲器可以通过位线耦合到存储器单元阵列110。在编程操作期间,可以基于多个页面缓冲器中存储的数据将数据存储在所选择的存储器单元中。
在读取操作期间,可以通过位线来感测所选择的存储器单元中存储的数据,并且可以将所感测的数据存储在页面缓冲器中。
控制逻辑150可以控制地址解码器130、电压生成器120和输入/输出电路140。控制逻辑150可以响应于从外部装置传送的命令CMD进行操作。控制电路150可以响应于命令CMD和地址ADDR,通过生成各种类型的信号来控制外围电路。
图16是示出应用了根据本公开实施例的存储器系统的存储卡系统的框图。
参照图16,存储卡系统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(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(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)。
图17是示出应用了根据本公开实施例的存储器系统的固态驱动器(SSD)系统的框图。
参照图17,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和SSD3200的接口的信号。例如,信号可以是通过诸如以下的各种接口中的至少一种来定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002耦合到主机3100。可以从主机3100向辅助电源3230供应电力并且可以对辅助电源3230进行充电。当来自主机3100的电力供应不平稳地执行时,辅助电源3230可以供应SSD 3200的电力。在实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以被设置在主板中并且可以向SSD 3200供应辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图18是示出应用了根据本公开实施例的存储器系统的用户系统的框图。
参照图18,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装,然后可以被设置为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在实施例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。在实施例中,存储模块4400可以被实现为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的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.根据权利要求1所述的存储器系统,其中将所述保持数据从所述读取缓冲区传送到所述保持缓冲区包括:将与所述保持数据相对应的逻辑地址以及关于从其读取与所述保持数据相对应的数据的存储块的信息连同所述保持数据存储在所述保持缓冲区中。
5.根据权利要求4所述的存储器系统,
其中所述存储器控制器存储地址映射信息,所述地址映射信息包括主机提供的逻辑地址与指示所述多个存储块中包括的存储器单元的地址的物理地址之间的映射关系,并且
其中将所述保持数据存储在所述多个存储块的任意一个存储块中包括更新所述地址映射信息,使得将与存储在所述保持缓冲区中的所述保持数据相对应的逻辑地址映射到指示存储所述保持数据的任意一个存储块中的存储器单元的地址的物理地址。
6.根据权利要求4所述的存储器系统,
其中所述缓冲存储器装置进一步包括写入缓冲区,所述写入缓冲区存储主机已请求写入的数据,并且
其中当所述保持数据的逻辑地址对应于请求写入的数据的逻辑地址时,所述存储器控制器从所述保持缓冲区中移除所述保持数据。
7.根据权利要求1所述的存储器系统,其中当存储在所述保持缓冲区中的保持数据的大小大于预设大小时,与所述保持数据相关的信息满足所述标准。
8.根据权利要求1所述的存储器系统,其中当自所述保持数据被移动到所述保持缓冲区起已经经过预设时间时,与所述保持数据相关的信息满足所述标准。
9.根据权利要求1所述的存储器系统,其中当存储在所述保持缓冲区中的所述保持数据中包括的错误位数量大于预设的第二参考错误位数量时,与所述保持数据相关的信息满足所述标准。
10.根据权利要求4所述的存储器系统,其中所述存储器控制器:
使用测试读取电压对从其读取所述保持数据的存储块执行测试读取操作,
当通过所述测试读取操作从所述存储块读取的数据中包括比预设的第三参考错误位数量大的错误位数量时,将从其读取所述保持数据的存储块中存储的数据存储在所述多个存储块之中的、与从其读取所述保持数据的存储块不同的存储块中。
11.根据权利要求1所述的存储器系统,其中所述读取缓冲区和所述保持缓冲区被实现为不同类型的存储器。
12.一种存储器控制器,所述存储器控制器控制缓冲存储器装置以及包括多个存储块的存储器装置,所述存储器控制器包括:
操作控制器,响应于主机读取数据的请求,控制所述存储器装置以从所述存储器装置读取数据;
错误校正器,检测读取数据中包括的错误位,并且对所述读取数据执行错误校正操作以产生经错误校正的数据;以及
缓冲控制器,控制所述缓冲存储器装置:
将所述读取数据存储在所述缓冲存储器装置中包括的读取缓冲区中,
在从所述存储器装置读取数据时,当所述数据中包括的错误位数量大于参考错误位数量时,确定所述读取缓冲区中存储的数据是保持数据,并且
将所述保持数据从所述读取缓冲区传送到所述缓冲存储器装置中包括的保持缓冲区;并且
所述操作控制器进一步:
将所述经错误校正的数据提供到所述主机,并且
当与所述保持数据相关的信息满足标准时,将所述保持数据存储在所述多个存储块的任意一个存储块中。
13.根据权利要求12所述的存储器控制器,其中所述缓冲控制器存储缓冲区映射信息,所述缓冲区映射信息包括指示存储在所述读取缓冲区中的数据的地址的读取缓冲区地址以及指示存储在所述保持缓冲区中的保持数据的地址的保持缓冲区地址,并且
其中将所述读取数据存储在所述读取缓冲区中包括更新所述缓冲区映射信息,使得将与所述读取数据相对应的所述读取缓冲区地址存储在所述缓冲区映射信息中。
14.根据权利要求13所述的存储器控制器,其中将所述保持数据从所述读取缓冲区传送到所述保持缓冲区包括:将存储在所述缓冲区映射信息中的、与所述保持数据相对应的读取缓冲区地址转换为与所述保持数据相对应的保持缓冲区地址。
15.根据权利要求12所述的存储器控制器,进一步包括:
保持数据信息存储装置,存储与所述保持数据相关的信息;以及
地址映射信息存储装置,存储地址映射信息,所述地址映射信息包括主机提供的逻辑地址与指示所述多个存储块中包括的存储器单元的地址的物理地址之间的映射关系。
16.根据权利要求15所述的存储器控制器,其中所述保持数据信息存储装置存储关于所述保持缓冲区的剩余空间的信息、与自所述保持数据存储在所述保持缓冲区中起所经过的时间相关的信息、以及关于所述保持数据中包括的错误位数量的信息中的至少一者。
17.根据权利要求15所述的存储器控制器,其中当与所述保持数据相关的信息超过预设阈值时,与所述保持数据相关的信息满足所述标准。
18.根据权利要求15所述的存储器控制器,其中将所述保持数据存储在任意一个存储块中包括更新所述地址映射信息存储装置中的所述地址映射信息,使得将与存储在所述保持缓冲区中的所述保持数据相对应的逻辑地址映射到指示正存储所述保持数据的任意一个存储块中包括的存储器单元的地址的物理地址。
19.根据权利要求12所述的存储器控制器,其中:
所述操作控制器控制所述存储器装置,使得存储所述主机请求写入的数据,并且
所述缓冲控制器控制所述缓冲存储器装置,使得当存储在所述保持缓冲区中的保持数据具有与请求写入的数据相对应的逻辑地址相同的逻辑地址时,从所述保持缓冲区中移除所述保持数据。
20.一种存储器系统,包括:
存储器装置,存储数据;
缓冲存储器装置,存储从所述存储器装置读取的数据;以及
存储器控制器,将读取数据提供到主机,并随后控制所述存储器装置和所述缓冲存储器装置,使得将所述读取数据的一部分存储在所述存储器装置中,并且将所述读取数据的一部分之外的剩余数据从所述缓冲存储器装置中移除。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0073674 | 2021-06-07 | ||
KR1020210073674A KR20220165106A (ko) | 2021-06-07 | 2021-06-07 | 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115509966A true CN115509966A (zh) | 2022-12-23 |
Family
ID=84285135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210194368.0A Withdrawn CN115509966A (zh) | 2021-06-07 | 2022-03-01 | 存储器控制器及包括存储器控制器的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220391133A1 (zh) |
KR (1) | KR20220165106A (zh) |
CN (1) | CN115509966A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2299363B1 (fr) * | 2009-09-21 | 2013-01-09 | STMicroelectronics (Rousset) SAS | Procédé de nivellement de l'usure dans une mémoire non volatile |
TWI524179B (zh) * | 2014-04-22 | 2016-03-01 | 新唐科技股份有限公司 | 儲存單元控制器及其控制方法、以及儲存裝置 |
US20190114236A1 (en) * | 2017-10-12 | 2019-04-18 | Electronics And Telecommunications Research Institute | Fault tolerant network on-chip |
US11972361B2 (en) * | 2020-01-29 | 2024-04-30 | Samsung Electronics Co., Ltd. | Performance optimization of object grouping schema in a network key-value storage device using adaptive regression |
-
2021
- 2021-06-07 KR KR1020210073674A patent/KR20220165106A/ko active Search and Examination
- 2021-12-14 US US17/551,061 patent/US20220391133A1/en active Pending
-
2022
- 2022-03-01 CN CN202210194368.0A patent/CN115509966A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20220165106A (ko) | 2022-12-14 |
US20220391133A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11561785B2 (en) | Storage device and method of operating the same | |
CN112905502A (zh) | 存储装置及其操作方法 | |
US11853202B2 (en) | Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN113721835A (zh) | 数据存储装置及其操作方法 | |
US11599268B2 (en) | Storage device and method of operating the same | |
US11055020B2 (en) | Data storage device sharing operations with another data storage device and method of operating the same | |
US11960733B2 (en) | Memory controller and method of operating the same | |
CN113126896A (zh) | 具有数据压缩器的存储器控制器及其操作方法 | |
CN111309246A (zh) | 存储装置及其操作方法 | |
CN115708042A (zh) | 储存装置、存储器装置及其操作方法 | |
CN114510371A (zh) | 存储装置及操作存储装置的方法 | |
CN112711377A (zh) | 分布式存储系统的存储节点及其操作方法 | |
US20220391133A1 (en) | Memory controller and memory system including the same | |
US11914891B2 (en) | Storage device and operating method thereof | |
US20230305741A1 (en) | Storage device and operating method thereof | |
US20240045590A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
CN110737403B (zh) | 存储装置及操作该存储装置的方法 | |
CN115376592A (zh) | 存储装置及其操作方法 | |
TW202316273A (zh) | 記憶體控制器及其操作方法 | |
CN115602229A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20221223 |
|
WW01 | Invention patent application withdrawn after publication |