CN114860622A - 存储装置及操作存储装置的方法 - Google Patents
存储装置及操作存储装置的方法 Download PDFInfo
- Publication number
- CN114860622A CN114860622A CN202111084207.8A CN202111084207A CN114860622A CN 114860622 A CN114860622 A CN 114860622A CN 202111084207 A CN202111084207 A CN 202111084207A CN 114860622 A CN114860622 A CN 114860622A
- Authority
- CN
- China
- Prior art keywords
- memory
- mapping
- segment
- host
- read count
- 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
Images
Classifications
-
- 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
- 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
-
- 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/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/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/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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or 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/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
- 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/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
Abstract
本技术涉及一种能够通过将映射段存储在主机中来缩短读取操作所需的时间的存储器控制器,该映射段基于对调用映射条目的次数进行计数的结果而输出。控制存储器装置的存储器控制器包括:中央处理装置,被配置为从主机接收读取请求并且执行将与读取请求相对应的数据输出到主机的操作;以及闪存转换层,被配置为通过从中央处理装置接收与读取请求相对应的逻辑块地址,来搜索指示逻辑块地址和物理块地址之间的映射关系的映射条目,并且基于搜索到映射条目的结果来存储读取计数表。
Description
相关申请的交叉引用
本申请要求于2021年2月5日提交的、申请号为10-2021-0017004的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用而并入本文。
技术领域
本公开涉及一种电子装置,并且更特别地,涉及一种存储装置及操作该存储装置的方法。
背景技术
存储装置是在诸如计算机、智能电话或智能平板电脑的主机装置的控制下存储数据的装置。存储装置包括将数据存储在磁盘中的装置,诸如硬盘驱动器(HDD),和将数据存储在半导体存储器中的装置,诸如固态驱动器(SSD),或存储卡,特别是非易失性存储器。
存储装置可以包括存储数据的存储器装置,以及将数据存储在存储器装置中的存储器控制器。存储器装置可以分类为易失性存储器和非易失性存储器。这里,非易失性存储器包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。
发明内容
本公开的实施例提供一种存储装置及操作存储装置的方法,其通过将映射段存储在主机中来缩短读取操作所需的时间,该映射段基于对映射条目被调用的次数进行计数的结果而输出。
根据本公开的实施例,一种存储器控制器,该存储器控制器控制存储器装置,可以包括:中央处理装置,被配置为从主机接收读取请求,并且执行将与读取请求相对应的数据输出到主机的操作;以及闪存转换层,被配置为通过从中央处理装置接收与读取请求相对应的逻辑块地址,搜索指示逻辑块地址和物理块地址之间的映射关系的映射条目,基于搜索到映射条目的结果来存储读取计数表。闪存转换层可以在每次搜索到映射条目时,增加读取计数表中包括的读取计数,并且基于读取计数来选择包括待输出到主机中包括的主机存储器缓冲器的映射条目的映射段。
根据本公开的实施例,一种操作控制存储器装置的存储器控制器的方法可以包括:从主机接收读取请求,搜索指示与读取请求相对应的物理块地址和逻辑块地址之间的映射关系的映射条目,基于搜索到映射条目的结果来存储读取计数表。在存储读取计数表时,每次搜索到映射条目时,可以增加读取计数表中包括的读取计数,并且可以基于读取计数来选择包括待输出到主机中包括的主机存储器缓冲器的映射条目的映射段。
根据本公开的实施例,一种存储装置可以包括存储器装置和控制该存储器装置的存储器控制器。存储器控制器可以从主机接收读取请求,并且基于搜索指示与读取请求相对应的物理块地址和逻辑块地址之间的映射关系的映射条目的结果来存储读取计数表。存储器装置可以在每个预设周期存储和更新从存储器控制器输出的读取计数表。
根据本公开的实施例,一种主机和存储装置的操作方法,该操作方法可以包括:由存储装置向主机提供映射段,该映射段被以预设次数或更多次数访问以识别与从主机提供的逻辑地址相对应的物理地址;并且由主机向存储装置提供所提供的映射段中包括的物理地址,其中物理地址用于访问存储装置内的存储空间。
根据本技术,通过针对每个映射段对与读取请求相对应的映射条目被调用的次数进行计数,并且基于计数的值而将映射段输出到主机,可以缩短搜索和读取映射数据的时间。
附图说明
图1是示出根据本公开的实施例的存储装置的框图。
图2是示出根据本公开的实施例的图1的存储器装置的结构的示图。
图3是示出根据本公开的实施例的图2的存储器单元阵列的示图。
图4是示出根据本公开的实施例的通过存储器控制器获得映射数据的方法的示图。
图5是示出根据本公开的实施例的映射数据、映射段和映射条目的示图。
图6是示出根据本公开的实施例的选择待输出到主机的映射段的方法的示图。
图7A和图7B示出根据本公开的实施例的闪存转换层中存储的读取计数表。
图8示出本公开的的实施例,其中在突然断电(SPO)发生之后的恢复期间映射段被输出到主机。
图9是示出根据本公开的实施例的存储器控制器的操作的示图。
图10是示出根据本公开的实施例的存储器控制器的操作的示图。
图11是示出根据本公开的实施例的图1的存储器控制器的示图。
图12是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
图13是示例性地示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
图14是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
仅示出根据本说明书中公开的构思的实施例的特定结构或功能描述以描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式实施并且不应被解释为限于本说明书中描述的实施例。
图1是示出根据本公开的实施例的存储装置的框图。
参照图1,存储装置50可以包括存储器装置100和存储器控制器200。
存储装置50可以是在诸如以下的主机300的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板电脑或车载信息娱乐系统。
根据作为与主机300的通信方法的主机接口,存储装置50可以被制造为各种类型的存储装置中的一种。例如,存储装置50可以被配置为诸如以下的各种类型的存储装置中的任意一个:SSD,以MMC、eMMC、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可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元阵列可包括多个存储块。存储块中的每一个可以包括多个存储器单元,并且多个存储器单元可以配置多个页面。在实施例中,页面可以是用于将数据存储在存储器装置100中或者读取存储器装置100中存储的数据的单位。存储块可以是用于擦除数据的单位。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率第4代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM),自旋转移力矩随机存取存储器(STT-RAM)等。在本说明书中,为了方便描述,存储器装置100是NAND闪速存储器。
存储器装置100被实施为二维阵列结构或三维阵列结构。在下文中,三维阵列结构被描述为实施例,但本公开不限于三维阵列结构。本公开不仅可以应用于电荷存储层由导电浮栅(FG)配置的闪速存储器装置,还可以应用于电荷存储层由绝缘膜配置的电荷撷取闪存(CTF)。
在实施例中,存储器装置100可以以在一个存储器单元中存储一个数据位的单层单元(SLC)方法操作。可选地,存储器装置100可以以在一个存储器单元中存储至少两个数据位的方法操作。例如,存储器装置100可以以在一个存储器单元中存储两个数据位的多层单元(MLC)方法、在一个存储器单元中存储三个数据位的三层单元(TLC)方法或在一个存储器单元中存储四个数据位的四层单元(QLC)方法操作。
存储器装置100被配置成从存储器控制器200接收命令和地址,并且访问存储器单元阵列中由该地址选择的区域。也就是说,存储器装置100对由该地址选择的区域执行与该命令相对应的操作。例如,存储器装置100可以根据接收到的命令来执行写入操作(编程操作)、读取操作或擦除操作。例如,当接收到编程命令时,存储器装置100可以将数据编程到由地址选择的区域。当接收到读取命令时,存储器装置100可以从由地址选择的区域读取数据。当接收到擦除命令时,存储器装置100可以擦除由地址选择的区域中存储的数据。
存储器控制器200可以控制存储装置50的全部操作。
当向存储装置50施加电压时,存储器控制器200可以运行固件。当存储器装置100为闪速存储器装置100时,存储器控制器200可以操作诸如闪存转换层(FTL)的固件,以用于控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可以包括固件(未示出),该固件可以从主机300接收数据和逻辑块地址(LBA)并且将LBA转换为物理块地址(PBA),该物理块地址(PBA)指示待存储存储器装置100中包括的数据的存储器单元的地址。另外,存储器控制器200可以将配置LBA与PBA之间的映射关系的逻辑-物理地址映射表存储在缓冲存储器中。
存储器控制器200可以根据主机300的请求而控制存储器装置100执行编程操作、读取操作、擦除操作等。例如,当从主机300接收到编程请求时,存储器控制器200可以将编程请求转换为编程命令,并且可以将编程命令、PBA和数据提供到存储器装置100。当从主机300接收到读取请求和LBA时,存储器控制器200可以将读取请求改变为读取命令,选择与LBA相对应的PBA,然后将读取命令和PBA提供到存储器装置100。当从主机300接收到擦除请求和LBA时,存储器控制器200可以将擦除请求改变为擦除命令,选择与LBA相对应的PBA,然后将擦除命令和PBA提供到存储器装置100。
在实施例中,存储器控制器200可以在没有来自主机300的请求的情况下生成编程命令、地址和数据,并且将其传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据,以执行诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在实施例中,存储器控制器200可以包括中央处理装置210和闪存转换层220。在图1中,存储器控制器被示出为包括中央处理装置210和闪存转换层220,但是闪存转换层220可以是中央处理装置210中包括的固件并且由中央处理装置210驱动。
在实施例中,存储器控制器200可以包括中央处理装置210。中央处理装置210可以从主机300接收请求并且执行一系列操作,以便由存储器装置100执行与接收到的请求相对应的操作。
例如,中央处理装置210可以从主机300接收读取请求。读取请求可以是指示读取存储器装置100中存储的数据的请求。此时,中央处理装置210可以从主机300接收与读取请求相对应的LBA和读取请求。为了将与LBA相对应的PBA输出到存储器装置100,当中央处理装置210从主机300接收到LBA时,中央处理装置210可以将接收到的LBA输出到闪存转换层220。
在实施例中,当包括指示从主机300接收到的LBA与PBA之间的映射关系的映射条目的映射数据没有被存储在闪存转换层220中时,可以从存储器装置100接收包括指示LBA与PBA之间的映射关系的映射条目的映射数据。这里,映射数据可以由多个映射段构成,并且映射段可以由多个映射条目构成。
在实施例中,当包括指示从主机300接收的LBA与PBA之间的映射关系的映射条目的映射数据被存储在闪存转换层220中时,中央处理装置210可以从闪存转换层220接收相应映射数据中包括的PBA。
此后,中央处理装置210可以将与LBA相对应的PBA连同与从主机300接收到的读取请求相对应的读取命令一起输出到存储器装置100。具体地,中央处理装置210可以基于从闪存转换层220接收到的映射数据的映射段中的每一个中包括的映射条目之中的、指示从主机300接收到的LBA与PBA之间的映射关系的映射条目来输出PBA。
当存储器装置100从中央处理装置210接收读取命令和PBA时,存储器装置100可以响应于该读取命令而将与PBA相对应的位置中存储的数据输出到存储器控制器200。
在实施例中,存储器控制器200可以包括闪存转换层220。闪存转换层220可以将与请求一起从主机300接收的LBA转换为PBA。另外,闪存转换层220可以存储LBA与PBA之间的映射关系,即LBA与PBA之间的映射数据。
在实施例中,当闪存转换层220从中央处理装置210接收到与请求相对应的LBA时,闪存转换层220可以在将LBA转换为PBA之前,确定是否存储包括与LBA相对应的映射条目的映射数据。当相应的映射数据存储在闪存转换层220中时,闪存转换层220可以将映射数据中包括的PBA输出到中央处理装置210。当映射数据没有存储在闪存转换层220中并且没有从存储器装置100接收到相应的映射数据时,闪存转换层220可以将LBA转换为PBA。在将LBA转换为PBA之后,闪存转换层220可以存储指示LBA与PBA之间的映射关系的映射数据。
在实施例中,可以存储在闪存转换层220中的映射数据的大小可能是有限的。也就是说,由于其中映射数据存储在闪存转换层220中的存储器(例如,DRAM或SRAM)的大小是有限的,因此仅经转换的映射数据中的一些可以存储在闪存转换层220中。另外,由于空间和成本问题,其中映射数据存储在闪存转换层220中的存储器的大小可能是有限的。
因此,在本公开中,提出一种由存储器控制器200使用主机存储器缓冲器310的方法,而不是保持或减小其中映射数据存储在闪存转换层220中的存储器的大小。也就是说,提出一种主机300分配主机存储器缓冲器310以存储映射数据并且存储器控制器200访问主机存储器缓冲器310的方法。
在实施例中,当发生突然断电(SPO)时,闪存转换层220可以将存储的映射数据输出到存储器装置100,并且存储器装置100可以存储接收到的映射数据。此时,映射数据可以以映射段为单位输出到存储器装置100,并且可以按照映射段中包括的映射条目被调用的次数较大的顺序输出。
此后,在针对SPO的恢复操作期间,闪存转换层220可以从存储器装置100接收所存储的映射数据并且存储所存储的映射数据。
在本公开中,闪存转换层220可以通过中央处理装置210,将从存储器装置100接收的映射数据中的每一个中包括的映射段之中的、与被频繁读取到主机300的数据相对应的映射段输出到主机300。主机300可以在输出读取请求和与读取请求相对应的LBA之前,通过存储接收到的映射段,搜索包括指示与相应LBA相对应的PBA的映射条目的映射段。
在实施例中,存储装置50可以进一步包括缓冲存储器(未示出)。存储器控制器200可以控制主机300与缓冲存储器(未示出)之间的数据交换。可选地,存储器控制器200可以将用于控制存储器装置100的系统数据临时存储在缓冲存储器中。例如,存储器控制器200可以将从主机300输入的数据临时存储在缓冲存储器中,然后将临时存储在缓冲存储器中的数据传输到存储器装置100。
在各个实施例中,缓冲存储器可以用作存储器控制器200的操作存储器和高速缓存存储器。缓冲存储器可以存储由存储器控制器200运行的代码或命令。可选地,缓冲存储器可以存储由存储器控制器200处理的数据。
在实施例中,缓冲存储器可以被实施为诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、DDR4 SDRAM、低功率双倍数据速率第4代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功耗DDR(LPDDR)或Rambus动态随机存取存储器(DRAM)的动态随机存取存储器(DRAM),或可以被实施为静态随机存取存储器(SRAM)。
在各个实施例中,缓冲存储器可以从存储装置50的外部连接。在这种情况下,连接到存储装置50外部的易失性存储器装置可以用作缓冲存储器。
在实施例中,存储器控制器200可以控制至少两个或更多个存储器装置。在这种情况下,存储器控制器200可以根据交错方法来控制存储器装置以提高操作性能。
主机300可以使用诸如以下的各种通信标准或接口中的至少一种来与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
在实施例中,主机300可以包括主机存储器缓冲器310。在SPO之后的恢复操作期间,主机存储器缓冲器310可以将从存储器控制器200输出的映射数据存储在映射段单元中。
此后,在主机300输出读取请求和与读取请求相对应的LBA之前,主机300可以确定包括指示与相应的LBA相对应的PBA的映射条目的映射段是否存储在主机存储器缓冲器310中。当相应的映射段存储在主机存储器缓冲器310中时,主机300可以将由搜索到的映射条目指示的PBA和读取请求一起输出到存储器控制器200。因此,可以省略存储器控制器200搜索与从主机300接收到的LBA相对应的映射数据或将LBA转换为PBA的过程。
因此,通过在将读取请求输出到存储器控制器200之前,将映射段存储在主机存储器缓冲器310中并且首先搜索主机存储器缓冲器310中存储的映射段,可以缩短搜索指示与读取请求一起输出的PBA和LBA之间的映射关系的映射数据所需的时间。因此,可以缩短读取操作所消耗的时间。
图2是示出根据本公开的实施例的图1的存储器装置的结构的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL连接到行解码器121。多个存储块BLK1至BLKz可以通过位线BL1至BLn连接到页面缓冲器组123。多个存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。连接到同一字线的存储器单元可以被定义为一个页面。因此,一个存储块可以包括多个页面。
行线RL可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。
存储器单元阵列110中包括的存储器单元中的每一个可以被配置为存储一个数据位的SLC、存储两个数据位的MLC、存储三个数据位的TLC或存储四个数据位的QLC。
外围电路120可以被配置成在控制逻辑130的控制下对存储器单元阵列110的所选择的区域执行编程操作、读取操作或擦除操作。外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以在控制逻辑130的控制下向行线RL和位线BL1至BLn施加各种操作电压或释放所施加的电压。
外围电路120可以包括行解码器121、电压生成器122、页面缓冲器组123、列解码器124、输入/输出电路125以及感测电路126。
行解码器121通过行线RL连接到存储器单元阵列110。行线RL可以包括至少一条源极选择线、多条字线和至少一条漏极选择线。在实施例中,字线可以包括正常字线和虚设字线。在实施例中,行线RL可以进一步包括管道选择线。
行解码器121被配置成对从控制逻辑130接收到的行地址RADD进行解码。行解码器121根据经解码的地址在存储块BLK1至BLKz之中选择至少一个存储块。另外,行解码器121可以根据经解码的地址选择所选择的存储块的至少一条字线,以将电压生成器122生成的电压施加到至少一条字线WL。
例如,在编程操作期间,行解码器121可以将编程电压施加到所选择的字线,并且将电平低于编程电压的电平的编程通过电压施加到未选择的字线。在编程验证操作期间,行解码器121可以将验证电压施加到所选择的字线,并且将高于验证电压的验证通过电压施加到未选择的字线。在读取操作期间,行解码器121可以将读取电压施加到所选择的字线,并且将高于读取电压的读取通过电压施加到未选择的字线。
在实施例中,以存储块为单位执行存储器装置100的擦除操作。在擦除操作期间,行解码器121可以根据经解码的地址来选择一个存储块。在擦除操作期间,行解码器121可以将接地电压施加到连接到所选择的存储块的字线。
电压生成器122响应于控制逻辑130的控制而操作。电压生成器122被配置成使用供应到存储器装置100的外部电源电压来生成多个电压。具体地,电压生成器122可以响应于操作信号OPSIG而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。例如,电压生成器122可以响应于控制逻辑130的控制而生成编程电压、验证电压、通过电压、读取电压、擦除电压等。
在实施例中,电压生成器122可以通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压用作存储器装置100的操作电压。
在实施例中,电压生成器122可以使用外部电源电压或内部电源电压来生成多个电压。
例如,电压生成器122可以包括接收内部电源电压的多个泵浦电容器,并且可以响应于控制逻辑130的控制而选择性地激活多个泵浦电容器来生成多个电压。
所生成的多个电压可以由行解码器121供应到存储器单元阵列110。
页面缓冲器组123包括第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn分别通过第一至第n位线BL1至BLn连接到存储器单元阵列110。第一至第n页面缓冲器PB1至PBn响应于控制逻辑130的控制而操作。具体地,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIGNALS而操作。例如,在读取操作或验证操作期间,第一至第n页面缓冲器PB1至PBn可以临时存储通过第一至第n位线BL1至BLn接收的数据,或者可以感测位线BL1至BLn的电压或电流。
具体地,在编程操作期间,当将编程电压施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可以将通过输入/输出电路125接收的数据DATA通过第一至第n位线BL1至BLn传送到所选择的存储器单元。根据所传送的数据DATA对所选择的页面的存储器单元进行编程。在编程验证操作期间,第一至第n页面缓冲器PB1至PBn可以通过感测利用第一至第n位线BL1至BLn从所选择的存储器单元接收的电压或电流来读取页面数据。
在读取操作期间,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn从所选择的页面的存储器单元读取数据DATA,并且在列解码器124的控制下将读取的数据DATA输出到输入/输出电路125。
在擦除操作期间,第一至第n页面缓冲器PB1至PBn可以使第一至第n位线BL1至BLn浮置或施加擦除电压。
列解码器124可以响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间传送数据。例如,列解码器124可以通过数据线DL与第一至第n页面缓冲器PB1至PBn交换数据,或者可以通过列线CL与输入/输出电路125交换数据。
输入/输出电路125可以将从参照图1描述的图1的存储器控制器200接收的命令CMD和地址ADDR传送到控制逻辑130,或者可以与列解码器124交换数据DATA。
感测电路126可以在读取操作或验证操作期间响应于许可位信号VRYBIT而生成参考电流,并且将从页面缓冲器组123接收的感测电压VPB与由参考电流生成的参考电压进行比较以输出通过信号PASS或失败信号FAIL。
控制逻辑130可以响应于命令CMD和地址ADDR而输出操作信号OPSIG、行地址RADD、页面缓冲器控制信号PBSIGNALS以及许可位信号VRYBIT以控制外围电路120。例如,控制逻辑130可以响应于子块读取命令和地址而控制所选择的存储块的读取操作。另外,控制逻辑130可以响应于子块擦除命令和地址而控制所选择的存储块中包括的所选择的子块的擦除操作。另外,控制逻辑130可以响应于通过信号PASS或失败信号FAIL而确定验证操作是通过还是失败。
图3是示出根据本公开的实施例的图2的存储器单元阵列的实施例的示图。
参照图2和图3,图3是示出图2的存储器单元阵列110中包括的多个存储块BLK1至BLKz之中的存储块BLKa的电路图。
彼此平行布置的第一选择线、字线和第二选择线可以连接到存储块BLKa。例如,字线可以彼此平行布置在第一选择线和第二选择线之间。这里,第一选择线可以是源极选择线SSL,第二选择线可以是漏极选择线DSL。
更具体地,存储块BLKa可以包括连接在位线BL1至BLn与源极线SL之间的多个串。位线BL1至BLn可以分别连接到串,并且源极线SL通常可以连接到串。由于串可以被配置为彼此相同,因此作为示例具体描述连接到第一位线BL1的串ST。
串ST可以包括串联连接在源极线SL与第一位线BL1之间的源极选择晶体管SST、多个存储器单元F1至F16以及漏极选择晶体管DST。一个串ST可以包括源极选择晶体管SST和漏极选择晶体管DST中的至少一个或多个,并且可以包括多于附图所示的数量的存储器单元F1至F16。
源极选择晶体管SST的源极可以连接到源极线SL,漏极选择晶体管DST的漏极可以连接到第一位线BL1。存储器单元F1至F16可以串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。不同串中包括的源极选择晶体管SST的栅极可以连接到源极选择线SSL,漏极选择晶体管DST的栅极可以连接到漏极选择线DSL,并且存储器单元F1至F16的栅极可以连接到多条字线WL1至WL16。不同串中包括的存储器单元之中的、连接到同一字线的一组存储器单元可以称为物理页面PPG。因此,存储块BLKa可以包括与字线WL1至WL16的数量相对应的数量的物理页面PPG。
一个存储器单元可以存储一位数据。这通常称为SLC。在这种情况下,一个物理页面PPG可以存储一个逻辑页面(LPG)数据。一个逻辑页面(LPG)数据可以包括与一个物理页面PPG中包括的存储器单元的数量相对应的数量的数据位。另外,一个存储器单元可以存储两位或更多位数据。这通常称为MLC。在这种情况下,一个物理页面PPG可以存储两个或更多个逻辑页面(LPG)数据。
在一个存储器单元中存储两位或更多位数据的存储器单元称为MLC,但是最近,随着一个存储器单元中存储的数据的位数增加,MLC是指存储两位数据的存储器单元,存储三位或更多位数据的存储器单元称为TLC,存储四位或更多位数据的存储器单元称为QLC。另外,已经开发了存储多位数据的存储器单元方法,并且本实施例可以应用于存储两位或更多位数据的存储器装置100。
在另一实施例中,存储块可以具有三维结构。每个存储块包括堆叠在衬底上的多个存储器单元。这些存储器单元沿X方向、Y方向和Z方向布置。
图4是示出根据本公开的实施例的通过存储器控制器获得映射数据的方法的示图。
参照图4,图4示出执行用于对存储器装置100执行与从主机300接收的读取请求READ_REQ相对应的读取操作的操作的过程。图4的存储器控制器200可以包括中央处理装置210和闪存转换层220。
在实施例中,中央处理装置210可以从主机300接收读取请求READ_REQ和与读取请求READ_REQ相对应的LBA LBA_R。当中央处理装置210接收到读取请求READ_REQ和LBALBA_R时,中央处理装置210可以执行用于对存储器装置100执行与读取请求READ_REQ相对应的读取操作的操作。
例如,中央处理装置210可以将与读取请求READ_REQ相对应的LBA LBA_R输出到闪存转换层220。此时,当包括与LBA LBA_R相对应的映射条目的映射数据MAP_DATA存储在闪存转换层220中时,中央处理装置210可以从闪存转换层220接收映射条目中包括的PBAPBA_R。这里,映射条目可以指示LBA与PBA之间的映射关系。另外,相应的映射条目可以是映射数据MAP_DATA中包括的多个映射条目中的任意一个。
然而,当由于映射数据MAP_DATA没有存储在闪存转换层220中而没有从闪存转换层220接收到PBA PBA_R时,中央处理装置210可以输出映射数据读取命令MR_CMD。映射数据读取命令MR_CMD可以是指示输出包括与LBA LBA_R相对应的映射条目的映射数据MAP_DATA的命令。
在实施例中,存储器装置100可以响应于映射数据读取命令MR_CMD,读取包括与从主机300输出的LBA LBA_R相对应的映射条目的映射数据MAP_DATA并且将其输出到闪存转换层220。闪存转换层220可以存储从存储器装置100输出的映射数据MAP_DATA,然后将映射数据MAP_DATA输出到中央处理装置210。
此后,中央处理装置210可以将与读取请求READ_REQ相对应的读取命令以及由映射数据MAP_DATA中包括的映射条目之中的与LBA LBA_R相对应的映射条目所指示的PBA输出到存储器装置100。存储器装置100可以响应于从中央处理装置210接收到的读取命令而读取与PBA相对应的位置中存储的数据,并且将读取数据输出到存储器控制器200。
在实施例中,可能发生SPO。当SPO发生时,为了防止闪存转换层220中存储的映射数据MAP_DATA丢失,可以将闪存转换层220中存储的映射数据MAP_DATA输出到存储器装置100。
然而,在SPO期间,可能不能将闪存转换层220中存储的所有映射数据MAP_DATA输出到存储器装置100并且存储在存储器装置100中。因此,闪存转换层220中存储的所有映射数据MAP_DATA中的一些可能丢失。
因此,在本公开中,为了防止闪存转换层220中存储的映射数据MAP_DATA丢失,提出一种方法:在主机300内分配待存储映射数据MAP_DATA的区域,并且在SPO的恢复期间选择映射数据MAP_DATA中的每一个中包括的一些映射段并且将所选择的映射段传输到主机300。
图5是示出根据本公开的实施例的映射数据、映射段和映射条目的示图。
参照图5,图5示出图4的闪存转换层220中存储的映射数据MAP_DATA。
在实施例中,映射数据MAP_DATA可以包括至少一个或多个映射段MAP_SEGMENT。另外,映射段MAP_SEGMENT可以包括至少一个或多个映射条目MAP_ENTRY。这里,映射条目MAP_ENTRY可以是指示LBA与PBA之间的映射关系的数据。
在图5中,每个映射数据MAP_DATA配置两个映射段,并且每个映射段MAP_SEGMENT配置四个映射条目MAP_ENTRY,但是映射数据MAP_DATA可以配置更少数量或更多数量的映射段MAP_SEGMENT,或者映射段MAP_SEGMENT可以配置更少数量或更多数量的映射条目MAP_ENTRY。
在图5中,第一映射数据MAP_DATA1和第二映射数据MAP_DATA2可以存储在图4的闪存转换层220中。
具体地,图4的闪存转换层220中存储的第一映射数据MAP_DATA1可以配置第一映射段MAP_SEGMENT1和第二映射段MAP_SEGMENT2,并且第二映射数据MAP_DATA2可以配置第三映射段MAP_SEGMENT3和第四映射段MAP_SEGMENT4。另外,第一映射段MAP_SEGMENT1可以配置第一至第四映射条目MAP_ENTRY1至MAP_ENTRY4,第二映射段MAP_SEGMENT2可以配置第五至第八映射条目MAP_ENTRY5至MAP_ENTRY8,第三映射段MAP_SEGMENT3可以配置第九至第十二映射条目MAP_ENTRY9至MAP_ENTRY12,第四映射段MAP_SEGMENT4可以配置第十三至第十六映射条目MAP_ENTRY13至MAP_ENTRY16。
在实施例中,当SPO发生时,可以将图4的闪存转换层220中存储的一些映射数据MAP_DATA输出到图4的存储器装置100。此后,在SPO的恢复期间,图4的存储器装置100中存储的映射数据MAP_DATA可以被输出并且存储在图4的闪存转换层220中。
然而,由于图4的闪存转换层220中存储映射数据MAP_DATA的存储器的大小是有限的,因此,在本公开中,图4的闪存转换层220可以从图4的存储器装置100接收映射数据MAP_DATA中包括的一些映射段MAP_SEGMENT,并且将一些映射段MAP_SEGMENT输出到图4的主机300。
在实施例中,被分配以将映射数据MAP_DATA存储在图4的主机300中的主机存储器缓冲器的大小也可能是有限的,并且图4的存储器控制器200访问图4的主机300可能出现延迟。因此,图4的闪存转换层220可以仅将映射数据MAP_DATA中包括的一些映射段MAP_SEGMENT输出到图4的主机300。
具体地,在SPO的恢复期间,图4的闪存转换层220可以接收图4的存储器装置100中存储的映射数据MAP_DATA中的每一个中包括的映射段MAP_SEGMENT之中的、与频繁输出到图4的主机300的数据相对应的映射条目MAP_ENTRY的映射段MAP_SEGMENT。图4的闪存转换层220可以接收映射段MAP_SEGMENT并且将映射段MAP_SEGMENT输出到图4的主机300。
例如,与频繁输出到图4的主机300的数据相对应的映射条目MAP_ENTRY可以是第一映射条目MAP_ENTRY1。在这种情况下,在SPO的恢复期间,图4的闪存转换层220可以从图4的存储器装置100接收映射数据MAP_DATA中的每一个中包括的映射段MAP_SEGMENT之中的、包括第一映射条目MAP_ENTRY1的第一映射段MAP_SEGMENT1,并且将第一映射段MAP_SEGMENT1输出到图4的主机300。图4的主机300可以接收第一映射段MAP_SEGMENT1,并且将第一映射段MAP_SEGMENT1存储在主机存储器缓冲器中。
因此,在图4的存储器控制器200的读取操作中使用的映射段MAP_SEGMENT可以存储在图4的主机300中。因此,在读取操作时,可以省略搜索与LBA相对应的PBA或者将LBA转换为PBA的操作,从而可以提高读取操作速度。
参照以下附图描述选择待输出到图4的主机300的映射段MAP_SEGMENT的方法。
图6是示出根据本公开的实施例的选择待输出到主机的映射段的方法的示图。
参照图6,图6示出在SPO之后的恢复期间,在从存储器装置100输出的映射数据中包括的映射段之中选择待输出到主机300的映射段的方法。图6的存储器控制器200可以包括中央处理装置210和闪存转换层220。
在实施例中,中央处理装置210可以从主机300接收读取请求READ_REQ以及与读取请求READ_REQ相对应的LBA LBA_R。读取请求READ_REQ可以是指示读取存储器装置100中存储的数据的请求。
当中央处理装置210从主机300接收到读取请求READ_REQ和LBA LBA_R时,中央处理装置210可以将LBA LBA_R输出到闪存转换层220。闪存转换层220可以在接收到LBA LBA_R之后搜索映射数据MAP_DATA。
具体地,为了使中央处理装置210将与LBA LBA_R相对应的PBA输出到存储器装置100,闪存转换层220可以搜索映射数据MAP_DATA。
例如,闪存转换层220可以搜索包括存储的映射数据中的每一个中包括的映射条目MAP_ENTRY之中、与从主机300接收到的LBA LBA_R相对应的映射条目MAP_ENTRY的MAP_DATA。与从主机300接收到的LBA LBA_R相对应的映射条目MAP_ENTRY可以是指示相应的LBALBA_R与PBA之间的映射关系的数据。
在实施例中,当包括与从主机300接收到的LBA LBA_R相对应的映射条目MAP_ENTRY的映射数据MAP_DATA存储在闪存转换层220中时,闪存转换层220可以将相应的映射数据MAP_DATA中包括的PBA PBA_R输出到中央处理装置210。
在实施例中,闪存转换层220可以包括读取计数表RC_TABLE。在读取计数表RC_TABLE中,可以为每个映射段MAP_SEGMENT存储调用映射段MAP_SEGMENT中包括的映射条目MAP_ENTRY的次数和标志。
具体地,当闪存转换层220将与LBA LBA_R相对应的映射数据MAP_DATA输出到中央处理装置210时,闪存转换层220可以增加映射数据MAP_DATA中包括的映射段之中的、包括与LBA LBA_R相对应的映射条目MAP_ENTRY的映射段MAP_SEGMENT的读取计数。
另外,当读取计数等于或大于参考值时,闪存转换层220可以在读取计数表RC_TABLE中设置与映射段MAP_SEGMENT相对应的标志的值。可以选择设置了标志的映射段MAP_SEGMENT作为待输出到主机300的映射段。
在实施例中,可以在每个预设周期将闪存转换层220中包括的读取计数表RC_TABLE输出到存储器装置100并且存储在存储器装置100中。此时,读取计数表RC_TABLE可以存储在存储器装置100中的非易失性存储器中。因此,可以在每个预设周期更新存储器装置100中存储的读取计数表RC_TABLE。
在读取计数表RC_TABLE存储在存储器装置100中之后,在SPO的恢复期间,存储器装置100可以将读取计数表RC_TABLE输出到闪存转换层220。闪存转换层220可以通过参考读取计数表RC_TABLE来向存储器装置100请求映射段MAP_SEGMENT之中待输出到主机300的映射段MAP_SEGMENT。此后,从存储器装置100输出的映射段MAP_SEGMENT可以高速缓存在存储器控制器200中包括的高速缓存存储器中或闪存转换层220中,并且高速缓存的映射段MAP_SEGMENT可以被输出到主机300并且存储在主机300中。
因此,在SPO的恢复期间,可以通过读取计数表RC_TABLE中存储的读取计数或标志来选择待输出到主机300的映射段MAP_SEGMENT。也就是说,在存储器装置100中存储的映射数据MAP_DATA中的每一个中包括的映射段MAP_SEGMENT之中,可以将具有等于或大于参考值的读取计数的映射段MAP_SEGMENT,即,设置了标志的映射段MAP_SEGMENT,输出到主机300并且存储在主机300中。
参照以下附图描述闪存转换层220中包括的读取计数表RC_TABLE中存储的读取计数和标志。
图7A和图7B示出根据本公开的实施例的闪存转换层中存储的读取计数表RC_TABLE。
参照图7A和图7B,图7A示出图6的闪存转换层220中包括的读取计数表RC_TABLE中存储的读取计数READ_CNT,图7B示出读取计数表RC_TABLE中存储的标志FLAG。图7A和图7B的映射数据可以是图6的闪存转换层220中存储的数据,并且映射数据中的每一个可以包括多个映射段,并且映射段中的每一个可以包括多个映射条目。
在图7A和图7B中,图6的闪存转换层220中存储的映射数据可以是第一映射数据MAP_DATA1和第二映射数据MAP_DATA2,第一映射数据MAP_DATA1可以包括第一映射段MAP_SEGMENT1和第二映射段MAP_SEGMENT2,并且第二映射数据MAP_DATA2可以包括第三映射段MAP_SEGMENT3和第四映射段MAP_SEGMENT4。第一至第四映射段MAP_SEGMENT1至MAP_SEGMENT4中的每一个可以包括多个映射条目。多个映射条目中的每一个可以是指示LBA与PBA之间的映射关系的数据。
在实施例中,可以通过图6的中央处理装置210将与读取请求READ_REQ一起从图6的主机300接收的LBA LBA_R输出到图6的闪存转换层220。当图6的闪存转换层220接收到LBA LBA_R时,图6的闪存转换层220可以搜索存储的映射数据之中的指示从图6的主机300接收的LBA LBA_R与PBA之间的映射关系的映射条目。
在图7A中,当搜索到映射段中包括的映射条目中的任意一个时,与包括相应映射条目的映射段相对应的读取计数READ_CNT可能增加。也就是说,读取计数READ_CNT可以指示搜索到映射段中包括的映射条目的次数。
例如,在图7A中,第一映射段MAP_SEGMENT1中包括的映射条目的搜索次数可能为“1000”,第二映射段MAP_SEGMENT2中包括的映射条目的搜索次数可能为“500”,第三映射段MAP_SEGMENT3中包括的映射条目的搜索次数可能为“1500”,并且第四映射段MAP_SEGMENT4中包括的映射条目的搜索次数可能为“2000”。
因此,与第一映射段MAP_SEGMENT1相对应的读取计数READ_CNT可以是“1000”,与第二映射段MAP_SEGMENT2相对应的读取计数READ_CNT可以是“500”,与第三映射段MAP_SEGMENT3相对应的读取计数READ_CNT可以是“1500”,并且与第四映射段MAP_SEGMENT4相对应的读取计数READ_CNT可以是“2000”。
在实施例中,当与映射段MAP_SEGMENT相对应的读取计数READ_CNT等于或大于参考值时,可以在读取计数表RC_TABLE中设置与映射段MAP_SEGMENT相对应的标志FLAG。此时,标志FLAG的默认值可以是“0”,并且当读取计数READ_CNT等于或大于参考值时,标志FLAG可以被设置为“1”。
在图7A和图7B中,参考值为“2000”。
因此,在图7B中,由于与第四映射段MAP_SEGMENT4相对应的读取计数READ_CNT是“2000”,因此与第四映射段MAP_SEGMENT4相对应的标志FLAG可以被设置为“1”。
在实施例中,可以在每个预设周期将存储读取计数READ_CNT和标志FLAG的读取计数表RC_TABLE输出到图6的存储器装置100并且存储在图6的存储器装置100中。此时,读取计数表RC_TABLE可以存储在图6的存储器装置100中的非易失性存储器中。因此,可以在每个预设周期更新图6的存储器装置100中存储的读取计数表RC_TABLE。
另外,在SPO之后的恢复期间,可以将图6的存储器装置100中存储的读取计数表RC_TABLE输出到图6的闪存转换层220。图6的闪存转换层220可以基于读取计数表RC_TABLE中存储的读取计数READ_CNT或标志FLAG来向图6的存储器装置100请求映射段。
参照图7A和图7B,由于第四映射段MAP_SEGMENT4的读取计数READ_CNT是“2000”并且第四映射段MAP_SEGMENT4的标志FLAG是“1”,因此图6的闪存转换层220可以在SPO之后的恢复期间向图6的存储器装置100请求输出第四映射段MAP_SEGMENT4。可以通过图6的闪存转换层220和图6的中央处理装置210将从图6的存储器装置100输出的第四映射段MAP_SEGMENT4输出到图6的主机300并且存储在图6的主机300中。
图8示出本公开的实施例,其中在SPO发生之后的恢复期间映射段被输出到主机。
参照图8,图8示出在SPO期间将映射数据MAP_DATA输出到存储器装置100之后,在SPO的恢复期间将从存储器装置100输出的映射段MAP_SEGMENT输出到主机300的过程。图8的存储器控制器200可以包括中央处理装置210和闪存转换层220。
在实施例中,可能发生SPO。当SPO发生时,可以将闪存转换层220中存储的映射数据MAP_DATA输出到存储器装置100并且存储在存储器装置100中,以防止闪存转换层220中存储的映射数据MAP_DATA丢失。
此后,在SPO的恢复期间,闪存转换层220可接收到存储器装置100中存储的读取计数表RC_TABLE。读取计数表RC_TABLE可以是存储读取计数READ_CNT和标志FLAG的表,并且可以在每个预设周期存储在存储器装置100中。读取计数READ_CNT可以指示映射段MAP_SEGMENT中包括的映射条目被搜索的次数,并且标志FLAG可以指示读取计数READ_CNT等于或大于参考值。
闪存转换层220可以接收读取计数表RC_TABLE并且选择待输出到主机300的映射段MAP_SEGMENT。具体地,可以选择读取计数表RC_TABLE中包括的读取计数READ_CNT等于或大于参考值或者读取计数表RC_TABLE中包括的标志FLAG被设置为“1”的映射段MAP_SEGMENT作为待输出到主机300的映射段MAP_SEGMENT。
当选择了待输出到主机300的映射段MAP_SEGMENT时,闪存转换层220可以将请求输出相应的映射段MAP_SEGMENT的映射段请求MS_REQ输出到存储器装置100。此时,闪存转换层220可以通过读取请求来读取映射段MAP_SEGMENT。
存储器装置100可以响应于映射段请求MS_REQ或读取请求而将映射段MAP_SEGMENT输出到闪存转换层220。此时,与映射段MAP_SEGMENT相对应的标志可以被设置为“1”。
在实施例中,当闪存转换层220从存储器装置100接收到映射段MAP_SEGMENT时,闪存转换层220可以通过中央处理装置210将映射段MAP_SEGMENT输出到主机300。主机300可以存储接收到的映射段MAP_SEGMENT。
因此,可以将包括频繁输出到主机300的映射条目的映射段MAP_SEGMENT输出到主机300并且存储在主机300中。当映射段MAP_SEGMENT存储在主机300中时,此后,在读取操作期间,主机300可以在输出读取请求和LBA之前确定是否存储了包括与LBA相对应的映射条目的映射段MAP_SEGMENT。
当包括与LBA相对应的映射条目的映射段MAP_SEGMENT存储在主机300中时,主机300可以将由映射条目指示的PBA输出到存储器控制器200。然而,当包括与LBA相对应的映射条目的映射段MAP_SEGMENT没有存储在主机300中时,主机300可以将LBA输出到存储器控制器200。
因此,包括频繁输出到主机300的映射条目的映射段MAP_SEGMENT可以存储在主机300中。因此,可以省略搜索与LBA相对应的PBA或者将LBA转换为PBA的操作,从而可以提高读取操作的性能。
另外,闪存转换层220中存储的映射数据MAP_DATA中可以不包括输出到主机300的映射段MAP_SEGMENT。也就是说,由于主机300中存储的映射段MAP_SEGMENT不需要存储在闪存转换层220中,因此可以从闪存转换层220中存储的映射数据MAP_DATA中排除映射段MAP_SEGMENT。因此,可以增加存储在闪存转换层220中的映射数据的大小。
图9是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图9,在操作S901中,存储器控制器可以对映射条目被搜索到的次数进行计数。具体地,存储器控制器可以搜索指示LBA与PBA之间的映射关系的映射条目,以将与从主机接收到的LBA具有映射关系的PBA与读取请求一起输出到存储器装置。当搜索到映射条目时,存储器控制器可以增加与包括映射条目的映射段相对应的读取计数。读取计数可以存储在读取计数表中。
在操作S903中,存储器控制器可以确定与映射段相对应的读取计数是否等于或大于参考值。当与映射段相对应的读取计数等于或大于参考值(是)时,操作可以进行到操作S905以设置与映射段相对应的标志。该标志可以存储在读取计数表中。当与映射段相对应的读取计数小于参考值(否)时,操作可以再次进行到操作S901以对映射条目被搜索到的次数进行计数。
在实施例中,当设置了与映射段相对应的标志时,可以选择相应的映射段作为待输出到主机的映射段。当选择了待输出到主机的映射段时,在SPO之后的恢复期间,存储器控制器可以从存储器装置接收映射段并且将映射段输出到主机。
在操作S907中,存储器控制器可以确定是否达到预设周期。
当达到预设周期(是)时,存储器控制器可以进行到操作S909,以将读取计数表输出到存储器装置,并且存储器装置可以存储读取计数表。读取计数表可以包括与映射段相对应的读取计数和标志。也就是说,在每个预设周期内,存储器装置可以通过将读取计数表输出到存储器装置来更新读取计数表。
当未达到预设周期(否)时,操作可以再次进行到操作S901,并且存储器控制器可以对映射条目被搜索到的次数进行计数。
图10是示出根据本公开的实施例的存储器控制器的操作的示图。
参照图10,在操作S1001中可能发生SPO。当发生SPO时,存储在存储器控制器中的映射数据可以输出到存储器装置并且存储在存储器装置中。
在操作S1003中,存储器控制器可以在接通电源之后从存储器装置接收读取计数表。读取计数表可以包括与映射段相对应的读取计数和标志。读取计数可以指示映射段中包括的映射条目被搜索到的次数,并且标志可以指示与映射段相对应的读取计数等于或大于参考值。映射条目可以是指示LBA和PBA之间的映射关系的数据。
在操作S1005中,存储器控制器可以基于读取计数表将映射段请求输出到存储器装置。
具体地,为了将读取计数表中包括的读取计数等于或大于参考值的映射段或者设置了标志的映射段输出到主机,存储器控制器可以输出映射段请求,以获得相应的映射段。存储器装置可以响应于映射段请求而将映射段输出到存储器控制器。
在操作S1007中,当存储器控制器从存储器装置接收到映射段时,存储器控制器可以将接收到的映射段输出到主机。主机可以存储接收到的映射段。
此后,在主机将读取请求和与读取请求相对应的LBA输出到存储器控制器之前,主机可以在所存储的映射段之中搜索包括与LBA相对应的映射条目的映射段。当搜索到包括与LBA相对应的映射条目的映射段时,主机可以将读取请求和由该映射条目指示的PBA输出到存储器控制器。
因此,由于可以省略存储器控制器搜索与LBA相对应的PBA的操作或将LBA转换为PBA的操作,因此可以减少读取操作所消耗的时间。由于减少了读取操作所消耗的时间,因此可以提高读取操作的性能。
图11是示出根据本公开的实施例的图1的存储器控制器的示图。
存储器控制器1000连接到主机和存储器装置。存储器控制器1000被配置为响应于来自主机的请求而访问存储器装置。例如,存储器控制器1000被配置为控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000被配置为提供存储器装置与主机之间的接口。存储器控制器1000被配置为驱动用于控制存储器装置的固件。
参照图11,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正电路(ECC)1030、主机接口1040、缓冲器控制器(或缓冲器控制电路)1050、存储器接口1060以及总线1070。
总线1070可以被配置为提供存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的全部操作,并且可以执行逻辑运算。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。另外,处理器1010可以通过缓冲器控制器1050与存储器缓冲器1020通信。处理器1010可以将存储器缓冲器1020用作工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行FTL的功能。处理器1010可以通过FTL将由主机提供的LBA转换为PBA。FTL可以接收LBA并且通过使用映射表将LBA转换为PBA。闪存转换层的地址映射方法包括根据映射单元的多种映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以被配置成使从主机接收到的数据随机化。例如,处理器1010可以使用随机化种子来使从主机接收到的数据随机化。经随机化的数据被提供到存储器装置110作为待存储的数据,并且被编程到存储器单元阵列中。
处理器1010可以通过驱动软件或固件来执行随机化和去随机化。
存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
错误校正电路1030可以执行错误校正。错误校正电路1030可以基于待通过存储器接口1060写入到存储器装置的数据来执行错误校正编码(ECC编码)。可以通过存储器接口1060将经错误校正编码的数据传送到存储器装置。错误校正电路1030可以对通过存储器接口1060从存储器装置接收的数据执行错误校正解码(ECC解码)。例如,错误校正电路1030可以被包括在存储器接口1060中,作为存储器接口1060的组件。
主机接口1040被配置成在处理器1010的控制下与外部主机通信。主机接口400可以被配置成使用诸如以下的各种通信标准或接口中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、高速外围组件互连(高速PCI)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)。
缓冲器控制器1050被配置成在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060被配置成在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道与存储器装置通信命令、地址和数据。
例如,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制器1050。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000内部的非易失性存储器装置(例如,只读存储器)加载代码。再例如,处理器1010可以通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以被配置成在存储器控制器1000内传输数据,控制总线可以被配置成在存储器控制器1000内传输诸如命令和地址的控制信息。数据总线和控制总线可以相互分离,并且可以互不干扰或互不影响。数据总线可以连接到主机接口1040、缓冲器控制器1050、错误校正电路1030和存储器接口1060。控制总线可以连接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020和存储器接口1060。
在实施例中,处理器1010可以从图1的主机300接收读取请求和与读取请求相对应的LBA。在接收到读取请求和LBA之后,处理器1010可以确定包括与LBA相对应的映射条目的映射数据是否存储在处理器1010中或存储器缓冲器1020中。映射数据可以配置多个映射段,并且映射段可以配置多个映射条目。此时,映射条目可以是指示LBA与PBA之间的映射关系的数据。
在实施例中,处理器1010可以包括读取计数表。读取计数表可以包括与映射段相对应的读取计数和标志。在搜索到与LBA相对应的映射条目之后,处理器1010可以增加包括映射条目的映射段的读取计数或者设置与映射段相对应的标志。
具体地,当包括与从图1的主机300接收到的LBA相对应的映射条目的映射段存储在处理器1010中或存储器缓冲器1020中时,处理器1010可以增加与相应映射段相对应的读取计数。另外,当与相应映射段相对应的读取计数等于或大于参考值时,处理器1010可以设置与该映射段相对应的标志。
在实施例中,处理器1010可以在每个预设周期将读取计数表输出到图1的存储器装置100,以将读取计数表存储在图1的存储器装置100中。也就是说,可以在每个预设周期更新图1的存储器装置100中存储的读取计数表。
在实施例中,当图1的存储器装置100正在操作的同时发生SPO时,可以将处理器1010和/或存储器缓冲器1020中存储的映射数据输出到图1的存储器装置100并且存储在图1的存储器装置100中。
此后,在SPO的恢复期间,处理器1010可以从图1的存储器装置100接收读取计数表。处理器1010可以执行将与读取计数表中包括的读取计数之中的等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段输出到图1的主机300的操作。例如,处理器1010可以将映射段请求输出到图1的存储器装置100,以便将映射段输出到图1的主机300。图1的存储器装置100可以响应于映射段请求而将相应的映射段输出到处理器1010。
处理器1010可以从图1的存储器装置100接收与等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段,并且将接收到的映射段输出到图1的主机300,并且图1的主机300可以将接收到的映射段存储在主机存储器缓冲器中。
因此,包括频繁从图1的主机300输出的映射条目的映射段可以存储在主机存储器缓冲器中。因此,处理器1010可以省略搜索用于输出与LBA相对应的PBA的映射数据的操作或将LBA转换为PBA的操作。因此,可以缩短读取操作所消耗的时间。
图12是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
参照图12,存储卡系统2000包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100连接到存储器装置2200。存储器控制器2100被配置成访问存储器装置2200。例如,存储器控制器2100可以被配置成控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100被配置成提供存储器装置2200与主机之间的接口。存储器控制器2100被配置成驱动用于控制存储器装置2200的固件。存储器装置2200可以与参照图1描述的存储器装置100完全相同地实施。
例如,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以根据特定通信标准与外部装置(例如,主机)通信。例如,存储器控制器2100被配置成通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(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)。
在实施例中,存储器控制器2100可以从图1的主机300接收读取请求和与读取请求相对应的LBA。在接收到读取请求和LBA之后,存储器控制器2100可以确定包括与LBA相对应的映射条目的映射数据是否存储在存储器控制器2100中。映射数据可以配置为多个映射段,并且映射段可以配置为多个映射条目。此时,映射条目可以是指示LBA与PBA之间的映射关系的数据。
在实施例中,存储器控制器2100可以包括读取计数表。读取计数表可以包括与映射段相对应的读取计数和标志。在搜索与LBA相对应的映射条目之后,存储器控制器2100可以增加包括映射条目的映射段的读取计数或者设置与映射段相对应的标志。
具体地,当包括与从图1的主机300接收的LBA相对应的映射条目的映射段存储在存储器控制器2100中时,存储器控制器2100可以增加与相应映射段相对应的读取计数。另外,当与相应映射段相对应的读取计数等于或大于参考值时,存储器控制器2100可以设置与该映射段相对应的标志。
在实施例中,存储器控制器2100可以在每个预设周期将读取计数表输出到存储器装置2200,以将读取计数表存储在存储器装置2200中。也就是说,可以在每个预设周期更新存储器装置2200中存储的读取计数表。
在实施例中,当存储器装置2200正在操作的同时发生SPO时,可以将存储器控制器2100中存储的映射数据输出到存储器装置2200并且存储在存储器装置2200中。
此后,在SPO的恢复期间,存储器控制器2100可以从存储器装置2200接收读取计数表。存储器控制器2100可以执行将与读取计数表中包括的读取计数之中的等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段输出到图1的主机300的操作。例如,存储器控制器2100可以将映射段请求输出到存储器装置2200,以便将映射段输出到图1的主机300。存储器装置2200可以响应于映射段请求而将相应的映射段输出到存储器控制器2100。
存储器控制器2100可以从存储器装置2200接收与等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段,并且将接收到的映射段输出到图1的主机300,并且图1的主机300可以将接收到的映射段存储在主机存储器缓冲器中。
因此,包括频繁从图1的主机300输出的映射条目的映射段可以存储在主机存储器缓冲器中。因此,存储器控制器2100可以省略搜索用于输出与LBA相对应的PBA的映射数据的操作或将LBA转换为PBA的操作。因此,可以缩短读取操作所消耗的时间。
图13是示例性地示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的框图。
参照图13,SSD系统3000包括主机3100和SSD 3200。SSD 3200通过信号连接器3001与主机3100交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3200包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源装置3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以执行参照图1描述的图1的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。作为示例,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由诸如以下通信标准或接口中的至少一种定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及NVMe。
辅助电源装置3230通过电源连接器3002连接到主机3100。辅助电源装置3230可以接收来自主机3100的电力PWR并且可以给电源充电。当来自主机3100的电力供应不平稳时,辅助电源装置3230可以为SSD3200供电。作为示例,辅助电源装置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的非易失性存储器。
在实施例中,SSD控制器3210可以从主机3100接收读取请求和与读取请求相对应的LBA。在接收到读取请求和LBA之后,SSD控制器3210可以确定包括与LBA相对应的映射条目的映射数据是否存储在SSD控制器3210或缓冲存储器3240中。映射数据可以配置多个映射段,并且映射段可以配置多个映射条目。此时,映射条目可以是指示LBA与PBA之间的映射关系的数据。
在实施例中,SSD控制器3210可以包括读取计数表。读取计数表可以包括与映射段相对应的读取计数和标志。在搜索到与LBA相对应的映射条目之后,SSD控制器3210可以增加包括映射条目的映射段的读取计数或者设置与映射段相对应的标志。
具体地,当包括与从主机3100接收的LBA相对应的映射条目的映射段存储在SSD控制器3210或缓冲存储器3240中时,SSD控制器3210可以增加与相应映射段相对应的读取计数。另外,当与相应映射段相对应的读取计数等于或大于参考值时,SSD控制器3210可以设置与该映射段相对应的标志。
在实施例中,SSD控制器3210可以在每个预设周期将读取计数表输出到多个闪速存储器3221至322n,以将读取计数表存储在多个闪速存储器3221至322n中。也就是说,可以在每个预设周期更新多个闪速存储器3221至322n中的任意一个中存储的读取计数表。
在实施例中,当多个闪速存储器3221至322n正在操作的同时发生SPO时,可以将SSD控制器3210和/或缓冲存储器3240中存储的映射数据输出到多个闪速存储器3221至322n并且存储在多个闪速存储器3221至322n中。
此后,在SPO的恢复期间,SSD控制器3210可以从多个闪速存储器3221至322n接收读取计数表。SSD控制器3210可以执行将与读取计数表中包括的读取计数之中的等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段输出到主机3100的操作。例如,SSD控制器3210可以将映射段请求输出到多个闪速存储器3221至322n,以便将映射段输出到主机3100。多个闪速存储器3221至322n可以响应于映射段请求而将相应的映射段输出到SSD控制器3210。
SSD控制器3210可以从多个闪速存储器3221至322n接收与等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段,并且将接收到的映射段输出到主机3100,并且主机3100可以将接收到的映射段存储在主机存储器缓冲器中。
因此,包括频繁从主机3100输出的映射条目的映射段可以存储在主机存储器缓冲器中。因此,SSD控制器3210可以省略搜索用于输出与LBA相对应的PBA的映射数据的操作或将LBA转换为PBA的操作。因此,可以缩短读取操作所消耗的时间。
图14是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
参照图14,用户系统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的易失性随机存取存储器,或诸如FRAM、ReRAM、MRAM和PRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)被封装并且被设置为一个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、WiMAX、WLAN、UWB、蓝牙和Wi-Fi。例如,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将在存储模块4400中存储的数据传输到应用处理器4100。例如,存储模块4400可以被实施为诸如以下的非易失性半导体存储器元件:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存和三维NAND闪存。例如,存储模块4400可以被设置为可移动存储装置(可移动驱动器),诸如用户系统4000的存储卡和外部驱动器。
例如,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以以与参照图2和图3描述的存储器装置相同的方式操作。存储模块4400可以以与参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于向外部装置输出数据的接口。例如,用户接口4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器。
在实施例中,应用处理器4100可以从图1的主机300接收读取请求和与读取请求相对应的LBA。在接收到读取请求和LBA之后,应用处理器4100可以确定包括与LBA相对应的映射条目的映射数据是否存储在应用处理器4100或存储器模块4200中。映射数据可以配置多个映射段,并且映射段可以配置多个映射条目。此时,映射条目可以是指示LBA与PBA之间的映射关系的数据。
在实施例中,应用处理器4100可以包括读取计数表。读取计数表可以包括与映射段相对应的读取计数和标志。在搜索到与LBA相对应的映射条目之后,应用处理器4100可以增加包括映射条目的映射段的读取计数或者设置与映射段相对应的标志。
具体地,当包括与从图1的主机300接收的LBA相对应的映射条目的映射段存储在应用处理器4100中或存储器模块4200中时,应用处理器4100可以增加与相应映射段相对应的读取计数。另外,当与相应映射段相对应的读取计数等于或大于参考值时,应用处理器4100可以设置与该映射段相对应的标志。
在实施例中,应用处理器4100可以在每个预设周期将读取计数表输出到存储模块4400,以将读取计数表存储在存储模块4400中。也就是说,可以在每个预设周期更新存储模块4400中存储的读取计数表。
在实施例中,当存储模块4400正在操作的同时发生SPO时,可以将应用处理器4100和/或存储器模块4200中存储的映射数据输出到存储模块4400并且存储在存储模块4400中。
此后,在SPO的恢复期间,应用处理器4100可以从存储模块4400接收读取计数表。应用处理器4100可以执行将与读取计数表中包括的读取计数之中的等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段输出到图1的主机300的操作。例如,应用处理器4100可以将映射段请求输出到存储模块4400,以便将映射段输出到图1的主机300。存储模块4400可以响应于映射段请求而将相应的映射段输出到应用处理器4100。
应用处理器4100可以从存储模块4400接收与等于或大于参考值的读取计数相对应的映射段或设置了标志的映射段,并且将接收到的映射段输出到图1的主机300,并且图1的主机300可以将接收到的映射段存储在主机存储器缓冲器中。
因此,包括频繁从图1的主机300输出的映射条目的映射段可以存储在主机存储器缓冲器中。因此,应用处理器4100可以省略搜索用于输出与LBA相对应的PBA的映射数据的操作或将LBA转换为PBA的操作。因此,可以缩短读取操作所消耗的时间。
尽管出于说明的目的已经用特定的详情和变化的细节描述了所公开技术的各个实施例,但是本领域技术人员将理解的是,可以基于本公开中公开或说明的内容进行各种修改、添加和替换。因此,本公开不限于上述实施例,并且在本公开和所附权利要求的构思和范围内可能存在许多变型。进一步,可以组合实施例以形成其他实施例。
Claims (20)
1.一种存储器控制器,所述存储器控制器控制存储器装置,所述存储器控制器包括:
中央处理装置,从主机接收读取请求,并且执行将与所述读取请求相对应的数据输出到所述主机的操作;以及
闪存转换层:
通过从所述中央处理装置接收与所述读取请求相对应的逻辑块地址,搜索指示所述逻辑块地址和物理块地址之间的映射关系的映射条目,
基于搜索到所述映射条目的结果来存储读取计数表,
每次搜索到所述映射条目时,增加所述读取计数表中包括的读取计数,并且
基于所述读取计数来选择包括待输出到所述主机中包括的主机存储器缓冲器的所述映射条目的映射段。
2.根据权利要求1所述的存储器控制器,其中所述闪存转换层进一步增加与包括所述映射条目的所述映射段相对应的所述读取计数。
3.根据权利要求1所述的存储器控制器,其中所述闪存转换层进一步在所述读取计数等于或大于参考值时,设置与包括所述映射条目的所述映射段相对应的标志。
4.根据权利要求1所述的存储器控制器,其中所述闪存转换层进一步通过在每个预设周期将所述读取计数表输出到所述存储器装置来更新所述读取计数表。
5.根据权利要求3所述的存储器控制器,
其中所述闪存转换层进一步在突然断电之后的恢复期间从所述存储器装置接收所述读取计数表,并且
其中所述闪存转换层基于所述读取计数表中包括的所述读取计数或所述标志来选择待输出到所述主机存储器缓冲器的所述映射段。
6.根据权利要求5所述的存储器控制器,其中所述闪存转换层选择与等于或大于所述参考值的所述读取计数相对应的映射段或者设置了所述标志的映射段。
7.根据权利要求6所述的存储器控制器,其中所述闪存转换层进一步将映射段请求输出到所述存储器装置以选择所述映射段,并且从所述存储器装置接收所选择的映射段。
8.根据权利要求7所述的存储器控制器,其中所述闪存转换层进一步通过所述中央处理装置将所选择的映射段输出到所述主机存储器缓冲器。
9.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置,所述方法包括:
从主机接收读取请求;
搜索指示与所述读取请求相对应的物理块地址和逻辑块地址之间的映射关系的映射条目,
基于搜索到所述映射条目的结果来存储读取计数表,
每次搜索到所述映射条目时,增加所述读取计数表中包括的读取计数;并且
基于所述读取计数来选择包括待输出到所述主机中包括的主机存储器缓冲器的所述映射条目的映射段。
10.根据权利要求9所述的方法,其中所述读取计数对应于包括所述映射条目的所述映射段。
11.根据权利要求9所述的方法,进一步包括:在所述读取计数等于或大于参考值时,设置与包括所述映射条目的所述映射段相对应的标志。
12.根据权利要求9所述的方法,进一步包括:通过在每个预设周期将所述读取计数表输出到所述存储器装置来更新所述读取计数表。
13.根据权利要求11所述的方法,
进一步包括:在突然断电之后的恢复期间从所述存储器装置接收所述读取计数表,并且
其中基于所述读取计数表中包括的所述读取计数或所述标志来选择待输出到所述主机存储器缓冲器的所述映射段。
14.根据权利要求13所述的方法,其中选择与等于或大于所述参考值的所述读取计数相对应的映射段或者设置了所述标志的映射段。
15.根据权利要求14所述的方法,进一步包括:
将映射段请求输出到所述存储器装置以选择所述映射段;并且
从所述存储器装置接收所选择的映射段。
16.根据权利要求15所述的方法,进一步包括:将所选择的映射段输出到所述主机存储器缓冲器。
17.一种存储装置,包括:
存储器控制器:
从主机接收读取请求,并且
基于搜索指示与所述读取请求相对应的物理块地址和逻辑块地址之间的映射关系的映射条目的结果,来存储读取计数表;以及
存储器装置,在每个预设周期存储和更新从所述存储器控制器输出的所述读取计数表。
18.根据权利要求17所述的存储装置,其中所述存储器控制器进一步:
每次搜索到所述映射条目时,增加所述读取计数表中包括的读取计数,并且
当所述读取计数等于或大于参考值时,设置与包括所述映射条目的映射段相对应的标志,所述读取计数对应于所述映射段。
19.根据权利要求18所述的存储装置,
其中在突然断电之后的恢复期间,所述存储器装置进一步将所述读取计数表输出到所述存储器控制器,并且
其中所述存储器控制器进一步选择与所述读取计数表中包括的、等于或大于所述参考值的读取计数相对应的映射段或设置了所述标志的映射段,作为待输出到所述主机的映射段。
20.根据权利要求19所述的存储装置,其中所述存储器控制器进一步将映射段请求输出到所述存储器装置以选择所述映射段,并且将所选择的映射段从所述存储器装置输出到所述主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210017004A KR20220113159A (ko) | 2021-02-05 | 2021-02-05 | 저장 장치 및 그 동작 방법 |
KR10-2021-0017004 | 2021-02-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860622A true CN114860622A (zh) | 2022-08-05 |
Family
ID=82628515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111084207.8A Withdrawn CN114860622A (zh) | 2021-02-05 | 2021-09-16 | 存储装置及操作存储装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11614895B2 (zh) |
KR (1) | KR20220113159A (zh) |
CN (1) | CN114860622A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11886741B2 (en) * | 2021-04-16 | 2024-01-30 | Samsung Electronics Co., Ltd. | Method and storage device for improving NAND flash memory performance for intensive read workloads |
US20220393975A1 (en) * | 2021-06-07 | 2022-12-08 | Microsoft Technology Licensing, Llc | Transmitting multi-dimensional data between devices |
US11809742B2 (en) * | 2021-09-20 | 2023-11-07 | Western Digital Technologies, Inc. | Recovery from HMB loss |
US20230418482A1 (en) * | 2022-06-27 | 2023-12-28 | Western Digital Technologies, Inc. | Storage device pool management based on storage device logical to physical (l2p) table information |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037786B2 (en) * | 2011-09-23 | 2015-05-19 | Avalanche Technology, Inc. | Storage system employing MRAM and array of solid state disks with integrated switch |
US9244858B1 (en) * | 2014-08-25 | 2016-01-26 | Sandisk Technologies Inc. | System and method of separating read intensive addresses from non-read intensive addresses |
KR20180016679A (ko) | 2016-08-04 | 2018-02-19 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
KR20190086921A (ko) | 2018-01-15 | 2019-07-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP2019168937A (ja) * | 2018-03-23 | 2019-10-03 | 東芝メモリ株式会社 | メモリシステム、制御方法及びコントローラ |
KR20200091199A (ko) * | 2019-01-22 | 2020-07-30 | 에스케이하이닉스 주식회사 | 저장 장치, 저장 장치를 포함하는 컴퓨팅 시스템 및 그 동작 방법 |
KR20210051644A (ko) * | 2019-10-31 | 2021-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
-
2021
- 2021-02-05 KR KR1020210017004A patent/KR20220113159A/ko unknown
- 2021-07-20 US US17/380,557 patent/US11614895B2/en active Active
- 2021-09-16 CN CN202111084207.8A patent/CN114860622A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11614895B2 (en) | 2023-03-28 |
KR20220113159A (ko) | 2022-08-12 |
US20220253245A1 (en) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11614895B2 (en) | Data storage device for read operation and method of the same | |
CN112905502A (zh) | 存储装置及其操作方法 | |
US11481272B2 (en) | Memory controller and method of operating the same | |
US11449417B2 (en) | Memory controller performing host-aware performance booster mode and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
US11327897B2 (en) | Memory controller for performing a dummy read operation and method of operating the same | |
CN111444115B (zh) | 存储装置及其操作方法 | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN112463664A (zh) | 存储装置及其操作方法 | |
CN113223573A (zh) | 存储器控制器及其操作方法 | |
CN115588451A (zh) | 存储装置及其操作方法 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
US10996881B2 (en) | Storage device and method of operating the same | |
CN112309446A (zh) | 存储设备和操作存储设备的方法 | |
US20220129192A1 (en) | Memory controller and method of operating the same | |
US11500768B2 (en) | Storage device performing garbage collection and method of operating the same | |
US11868658B2 (en) | Memory controller including first processor for generating commands and second processor for generating logging information and method of operating the memory controller | |
US11928056B2 (en) | Memory controller for allocating cache lines and method of operating the same | |
US20230244607A1 (en) | Memory controller and method of operating the same | |
US20220413753A1 (en) | Host device, storage device, and method of operating the same | |
CN112306386A (zh) | 存储装置及其操作方法 | |
KR20210151372A (ko) | 저장 장치 및 그 동작 방법 | |
CN114512168A (zh) | 存储装置及操作存储装置的方法 | |
CN115132252A (zh) | 存储装置及其操作方法 | |
CN116804909A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220805 |