CN110287130B - 存储装置及其操作方法 - Google Patents

存储装置及其操作方法 Download PDF

Info

Publication number
CN110287130B
CN110287130B CN201811300759.6A CN201811300759A CN110287130B CN 110287130 B CN110287130 B CN 110287130B CN 201811300759 A CN201811300759 A CN 201811300759A CN 110287130 B CN110287130 B CN 110287130B
Authority
CN
China
Prior art keywords
memory
data
read
cache
memory device
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.)
Active
Application number
CN201811300759.6A
Other languages
English (en)
Other versions
CN110287130A (zh
Inventor
朴淙柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN110287130A publication Critical patent/CN110287130A/zh
Application granted granted Critical
Publication of CN110287130B publication Critical patent/CN110287130B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/305Providing cache or TLB in specific location of a processing system being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

本发明提供了一种存储装置以及该存储装置的操作方法,该存储装置包括各种存储器装置。一种存储装置,包括:多个存储器装置,多个存储器装置中的每个包括至少一个或多个读取高速缓存存储块和多个主存储块;以及存储器控制器,用于将多个主存储块中存储的数据之中的、存储在相同存储器装置中且具有超过阈值的读取计数的数据分散并存储至多个存储器装置中的每个中包括的至少一个或多个读取高速缓存存储块,该读取计数表示读取请求次数。

Description

存储装置及其操作方法
相关申请的交叉引用
本申请要求2018年3月19日提交的申请号为10-2018-0031751的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
本公开的各种实施例总体涉及一种电子装置,更具体地,涉及一种存储装置及该存储装置的操作方法。
背景技术
通常,存储装置是在诸如计算机、智能电话或智能平板的主机的控制下存储数据的装置。根据被提供用来存储数据的装置的类型,存储装置的示例可以分类成诸如将数据存储在磁盘中的硬盘驱动器(HDD)的装置,以及诸如将数据存储在半导体存储器,特别是非易失性存储器中的固态硬盘(SSD)或存储卡的装置。
存储装置可以包括其中存储数据的存储器装置、以及配置成将数据存储至存储器装置的存储器控制器。存储器装置可以分类为易失性存储器和非易失性存储器。非易失性存储器的代表性示例包括:只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(PRAM)、铁电RAM(FRAM)等。
发明内容
本公开的各种实施例涉及一种包括读取高速缓存存储块的存储装置以及该存储装置的操作方法。
本公开的实施例可以提供一种存储装置,其包括:多个存储器装置,多个存储器装置中的每个包括至少一个或多个读取高速缓存存储块和多个主存储块;以及存储器控制器,配置成将多个主存储快中存储的数据之中的、存储在相同存储器装置中且具有超过阈值的读取计数的数据分散(spread)并存储至多个存储器装置中的每个中包括的至少一个或多个读取高速缓存存储块,其中读取计数表示读取请求次数。
本公开的实施例可以提供一种操作存储装置的方法,该存储装置包括多个存储器装置和存储器控制器,多个存储器装置联接至相同的通道并且多个存储器装置中的每个包括至少一个或多个读取高速缓存存储块和多个主存储块,存储器控制器配置成控制多个存储器装置,该方法包括:检测多个主存储块中存储的数据之中的、具有超过阈值的读取计数的数据,其中读取计数表示读取请求次数;以及根据具有超过阈值的读取计数的数据是否存储在相同的存储器装置中,将具有超过阈值的读取计数的数据分散并存储至多个存储器装置中的每个中包括的至少一个或多个读取高速缓存存储块。
本公开的实施例可以提供一种存储器***,其包括:多个存储器装置,多个存储器装置中的每个包括读取高速缓存存储块和主存储块;以及控制器,其适于:将多个存储器装置的主存储块的每个中存储的数据之中的、具有大于阈值的读取计数的数据检测为高速缓存数据;并且当在多个存储器装置的一个中检测到多个高速缓存数据片段时,将多个高数缓存数据片段分散至存储器装置的读取高速缓存存储块中,使得以数据交叉方式对所分散的多个高速缓存数据片段执行后续读取操作。
附图说明
图1是示出根据本公开的实施例的存储装置的框图。
图2是示出图1的多个存储器装置和存储器控制器之间的连接关系的实施例的框图。
图3是示出根据本公开实施例的根据数据交叉的编程操作和读取操作的时序图。
图4是示出根据本公开实施例的超级块和超级页面的示图。
图5是示出根据本公开实施例的将数据存储至多个存储器装置的操作的示图。
图6是示出了图1的存储器控制器的配置的示图。
图7是示出了根据本公开实施例的将高速缓存数据存储至读取高速缓存存储块的操作的示图。
图8是示出了根据本公开实施例的存储装置的操作的流程图。
图9是示出了根据本公开实施例的存储装置的操作的流程图。
图10是示出了图1的存储器装置的配置的示图。
图11是示出了图10的存储器单元阵列110的实施例的示图。
图12是示出了根据本公开实施例的图11的存储块BLK1至BLKz中的任一个存储块BLKa的电路图。
图13是示出了根据本公开实施例的图11的存储块BLK1至BLKz中的任一个存储块BLKb的电路图。
图14是示出根据本公开实施例的在图10的存储器单元阵列110中包括的存储块BLK1至BLKz中的任一个存储块BLKc的电路图。
图15是示出图1的存储器控制器的实施例的示图。
图16是示出了应用根据本公开实施例的存储装置的存储卡***的框图。
图17是示出了应用根据本公开实施例的存储装置的固态硬盘(SSD)***的框图。
图18是示出了应用根据本公开实施例的存储装置的用户***的框图。
具体实施方式
下文将参照附图更全面地描述示例性实施例,然而,这些实施例可以以不同形式实施并且不应被解释为限制本文中阐述的实施例。相反地,提供这些实施例使得本公开将是彻底且完全的,并且将全面地将示例性实施例的范围传递给本领域技术人员。
在附图中,为了图示清楚可以放大尺寸。将理解的是,当元件被称为在两个元件“之间”时,可以是在两个元件之间仅有一个元件,或者可以存在一个或多个中间元件。
下文中,将参照附图描述实施例。本文中将参照作为实施例以及中间结构的示意图的截面图来描述实施例。因此,例如由于制造技术和/或公差而导致的图示形状的变型是可预期的。因此,实施例不应被解释为限于本文中示出的区域的特定形状,而是可以包括例如由于制造导致的形状偏差。在附图中,层和区域的长度和尺寸可以为了清楚性而放大。附图中相似的附图标记表示相似的元件。
诸如“第一”和“第二”的术语可以用来描述各种部件,但是这些术语不应限制各种部件。这些术语仅用于将部件与另一个部件区分开的目的。例如,在不脱离本公开的精神和范围的情况下,第一部件可以称为第二部件,并且第二部件可以称为第一部件。此外,“和/或”可以包括提及的部件中的任意一个或其组合。
此外,只要没有在语句中特别提及,则单数形式可以包括复数形式。此外,说明书中使用的“包括/包含”或“包括有/包含有”表示存在或增加一个或多个部件、步骤、操作和元件。
此外,除非另有定义,否则本说明书中使用的包括技术术语和科学术语的全部术语具有与相关领域技术人员通常理解的含义相同的含义。通用字典中定义的术语应被解释为具有与相关领域背景下解释的含义相同的含义,并且除非在说明书中另外有清楚的定义,否则这些术语不应被解释为具有理想化或过于正式的含义。
还应注意,在本说明书中,“连接/联接”不仅表示一个部件直接联接另一个部件,而且表示一个部件通过中间部件间接联接另一个部件。另一方面,“直接连接/直接联接”表示一个部件直接联接另一个部件而没有中间部件。
图1是示出了根据本公开实施例的存储装置50的框图。
参照图1,存储装置50可以包括存储器装置100、存储器控制器200和缓冲存储器300。
存储装置50可以是配置成在诸如以下的主机400的控制下存储数据的装置:蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐***。
存储器装置100可以在其中存储数据。存储器装置100可以在存储器控制器200的控制下操作。存储器控制器100可以包括存储器单元阵列,存储器单元阵列包括被配置为在其中存储数据的多个存储器单元。存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储单元。每个存储块可以包括多个页面。在实施例中,每个页面可以是将数据存储至存储器装置100或者从存储器装置100读取所存储数据的单位。每个存储块可以是擦除数据的单位。在实施例中,存储器装置100可以是:双倍数据速率同步动态随机存取存储器(DDR SDRAM),低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻式随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)、或自旋转移矩随机存取存储器(STT-RAM)。在本说明书中,存储器装置100是NAND闪速存储器,然而,可以使用其他存储器装置。
在实施例中,存储器装置100可以以三维阵列结构实施。本公开不仅可以应用于其中电荷存储层由导电浮栅(FG)形成的闪速存储器,而且可以应用于其中电荷存储层由绝缘层形成的电荷捕获闪速(CTF)存储器。
存储器装置100中包括的多个存储块可以被划分主存储块101和读取高速缓存存储块102。在实施例中,存储器装置100可以包括至少一个或多个主存储块101以及至少一个或多个读取高速缓存存储块102。
在实施例中,读取高速缓存存储块102中包括的存储器单元中的每一个可以由能够存储一个数据位的单层单元(SLC)形成。主存储块101中包括的存储器单元中的每一个可以由能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)形成。
待存储至读取高速缓存存储块102的数据可以是高速缓存数据。在实施例中,高速缓存数据可以是主存储块101中存储的数据之中的读取计数或数据读取请求次数超过阈值(TH)的数据。
在实施例中,存储器控制器200可以控制多个存储器装置100。在各种实施例中,高速缓存数据可以是相同主存储块101中存储的数据之中的读取计数超过阈值(TH)的数据。
存储器装置100可以从存储器控制器200接收命令和地址并且访问存储器单元的由地址选择的区域。换言之,存储器控制器100可以对由地址选择的区域执行与命令对应的操作。例如,存储器装置100可以执行写入(编程)操作、读取操作以及擦除操作。在编程操作期间,存储器装置100可以将数据编程至由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。
存储器控制器200可以控制存储装置50的全部操作。
当电力被施加至存储装置50时,存储器控制器200可以运行(execute)固件。在存储器装置100为闪速存储器装置的情况下,存储器控制器200可以运行诸如闪存转换层(FTL)的固件以控制主机400和存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机400接收数据和逻辑块地址LBA,并且将逻辑块地址转换成物理块地址PBA,该物理块地址PBA表示存储器装置100中包括的、待存储数据的存储器单元的地址。存储器控制器200可以将表示LBA和PBA之间的映射关系的逻辑到物理地址映射表存储在缓冲存储器300中。
存储器控制器200可以控制存储器装置100响应于来自主机400的请求来执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、PBA和数据提供至存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和PBA提供至存储器装置100。在读取操作期间,存储器控制器200可以将擦除命令和PBA提供至存储器装置100。
在各种实施例中,存储器控制器200可以从主机400接收读取请求,并且对与该读取请求对应的LBA的读取请求次数进行计数。
在实施例中,存储器控制器200可以存储高速缓存数据信息。高速缓存数据信息可以包括读取计数和对应于各个LBA的PBA,其中读取计数是多个LBA的读取请求次数。
存储器控制器200可以基于高速缓存数据信息来确定高速缓存数据,其中高速缓存数据为主存储块101中存储的数据之中的待被传输至读取高速缓存存储块102的数据。
详细地,存储器控制器200可以将主存储块101中存储的数据之中的读取计数或数据读取请求次数超过阈值(TH)的数据确定为高速缓存数据。
在实施例中,存储器控制器200可以控制多个存储器装置100。存储器控制器200可以在多个存储器装置100中的每一个中,确定主存储块101中存储的数据之中的读取计数超过阈值(TH)的数据为高速缓存数据。在此,当与多个原始数据片段(pieces of data)对应的高速缓存数据被存储在单个相同的存储器装置中时,与多个原始数据片段对应的高速缓存数据不可以以数据交叉方式被读取。
存储器控制器200可以将高速缓存数据传输至读取高速缓存存储块102。详细地,存储器控制器200可以控制存储器装置100从主存储块101读取待被传输至读取高速缓存存储块102的高速缓存数据,并且将读取的数据编程至读取高速缓存存储块102。
在实施例中,存储器控制器200可以将存储在多个存储器装置中的一个存储器装置中的多个原始数据片段的高速缓冲数据分散并编程至多个存储器装置中包括的读取高速缓存存储块102。在本实施例中,因为与多个原始数据片段对应的高速缓存数据被分散在不同的存储器装置中,所以可以以数据交叉方式读取高速缓存数据。
在实施例中,存储器控制器200可以在没有来自主机400的请求的情况下,自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传输至存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供至存储器装置100以执行后台操作,诸如用于损耗均衡的编程操作或用于垃圾收集的编程操作。
在实施例中,存储器控制器200可以控制主机400和缓冲存储器300之间的数据交换。可选地,存储器控制器200可以将用于控制存储器装置100的***数据临时存储至缓冲存储器300。例如,存储器控制器200可以将从主机400输入的数据临时存储至缓冲存储器300,随后将临时存储在缓冲存储器300中的数据传输至存储器装置100。
在各个实施例中,缓冲存储器300可以用作存储器控制器200的工作存储器或高速缓存存储器。缓冲存储器300可以存储待由存储器控制器200执行的代码或命令。可选地,缓冲存储器300可以存储待由存储器控制器200处理的数据。
在实施例中,缓冲存储器300可以使用SRAM或DRAM来实施,其中DRAM诸如双倍数据速率同步动态随机存取存储器(DDRSDRAM)、DDR4SDRAM、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)或Rambus动态随机存取存储器(RDRAM)。
在各种实施例中,存储器装置50可以不包括缓冲存储器300。在这种情况下,设置在存储器500外部的易失性存储器装置可以执行缓冲存储器300的功能。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以以交叉方式控制存储器装置100以增强操作性能。
主机400可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速片间(HSIC)、小型计算机***接口(SCSI)、***组件互联(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)、低负载DIMM(LRDIMM)通信方法。
根据主机接口,即与主机400通信的通信***,存储装置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)型。
图2是示出了图1的多个存储器装置与存储器控制器200之间的连接关系的实施例的框图。
参考图2,存储器控制器200可以通过多个通道CH0至CH3与多个存储器装置(存储器装置_00至存储器装置_33)联接。在实施例中,应注意的是,通道的数量或联接至每个通道的存储器装置的数量可以以各种方式改变。在本说明书中,存储器控制器200通过四个通道联接至存储器装置,并且四个存储器装置联接至每个通道,然而也可以使用更多或更少的通道。
存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03可以共同联接至通道0CH0。存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03可以通过通道0CH0与存储器控制器200通信。由于储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同联接至通道0CH0,因此同一时间仅一个存储器装置可与存储器控制器200通信。然而,存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03各自的内部操作可以被同时执行。
存储器装置_10、存储器装置_11、存储器装置_12和存储器装置_13可以共同联接至通道1CH1。存储器装置_10、存储器装置_11、存储器装置_12和存储器装置_13可以通过通道1CH1与存储器控制器200通信。由于储器装置_10、存储器装置_11、存储器装置_12和存储器装置_13共同联接至通道1CH1,因此同一时间仅一个存储器装置可与存储器控制器200通信。然而,存储器装置_10、存储器装置_11、存储器装置_12和存储器装置_13各自的内部操作可以被同时执行。
存储器装置_20、存储器装置_21、存储器装置_22和存储器装置_23可以共同联接至通道2CH2。存储器装置_20、存储器装置_21、存储器装置_22和存储器装置_23可以通过通道2CH2与存储器控制器200通信。由于储器装置_20、存储器装置_21、存储器装置_22和存储器装置_23共同联接至通道2CH2,因此同一时间仅一个存储器装置可与存储器控制器200通信。然而,存储器装置_20、存储器装置_21、存储器装置_22和存储器装置_23各自的内部操作可以被同时执行。
存储器装置_30、存储器装置_31、存储器装置_32和存储器装置_33可以共同联接至通道3CH3。存储器装置_30、存储器装置_31、存储器装置_32和存储器装置_33可以通过通道3CH3与存储器控制器200通信。由于储器装置_30、存储器装置_31、存储器装置_32和存储器装置_33共同联接至通道3CH3,因此同一时间仅一个存储器装置可与存储器控制器200通信。然而,存储器装置_30、存储器装置_31、存储器装置_32和存储器装置_33各自的内部操作可以被同时执行。
在使用多个存储器装置的存储装置中,可以通过使用数据交叉来增强性能,其中数据交叉为使用交叉方案的数据通信。在两个或更多个路(way)共享单个通道的结构中,数据交叉可以在改变路的同时执行读取或写入操作。对于数据交叉,可以基于通道和路来管理存储器装置。为了使联接至各个通道的存储器装置的并行性最大化,存储器控制器200可以将连续的逻辑存储器区域分散并分配至通道和路。
例如,存储器控制器200可以通过通道0CH0将命令、包括地址的控制信号和数据传输至存储器装置_00。数据交叉可以是下述操作:在存储器装置_00将传输的数据编程至其包括的存储器单元的同时,存储器控制器200将命令、包括地址的控制信号和数据传输至存储器装置_01。
参照图2,多个存储器装置可以由四个路WAY0至WAY3配置。路0WAY0可以包括存储器装置_00、存储器装置_10、存储器装置_20和存储器装置_30。路1WAY1可以包括存储器装置_01、存储器装置_11、存储器装置_21和存储器装置_31。路2WAY2可以包括存储器装置_02、存储器装置_12、存储器装置_22和存储器装置_32。路3WAY3可以包括存储器装置_03、存储器装置_13、存储器装置_23和存储器装置_33。
通道CH0至CH3中的每一个可以是由联接至对应通道的存储器装置共享的信号总线。
尽管在图2中已经描述了将数据交叉应用于4通道/4路结构的情况,但是随着通道数量和路的数量的增加,交叉效率可以增加。
图3是示出了根据本公开实施例的根据数据交叉的编程操作和读取操作的时序图。
参照图3,(a)示出了编程操作并且(b)示出了读取操作。在图3中,将对以下示例进行说明:对共同联接至图2的通道0CH0的存储器装置_00至存储器装置_03执行编程操作(a)和读取操作(b)。
参照图3的(a),在从t0至t1的时段期间,可以对存储器装置_00执行数据输入DIN#00。在数据输入DIN#00期间,存储器装置_00可以通过通道0CH0接收编程命令、地址和数据。存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同联接至通道0CH0。因此,在从t0至t1的时段期间对存储器装置_00执行数据输入DIN#00的同时,其他存储器装置,即存储器装置_01、存储器装置_02和存储器装置_03不能使用通道0CH0。
在从t1至t2的时段期间,可以对存储器装置_01执行数据输入DIN#01。在数据输入DIN#01期间,存储器装置_01可以通过通道0CH0来接收编程命令、地址和数据。存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同联接至通道0CH0。因此,在在从t1至t2的时段期间对存储器装置_01执行数据输入DIN#01的同时,其他存储器装置,即存储器装置_00、存储器装置_02和存储器装置_03不能使用通道0CH0。然而,由于存储器装置_00已经在从t0至t1的时段期间接收数据(DIN#00),因此存储器装置_00可以从t1开始执行编程操作(tPROG#00)。
在从t2至t3的时段期间,可以对存储器装置_02执行数据输入DIN#02。在数据输入DIN#02期间,存储器装置_02可以通过通道0CH0来接收编程命令、地址和数据。存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同联接至通道0CH0。因此,在从t2至t3的时段期间对存储器装置_02执行数据输入DIN#02的同时,其他存储器装置,即存储器装置_00、存储器装置_01和存储器装置_03不能使用通道0CH0。然而,由于存储器装置_00已经在从t0至t1的时段期间接收数据(DIN#00),因此存储器装置_00可以从t1开始执行编程操作(tPROG#00)。此外,由于存储器装置_01已经在从t1至t2的时段期间接收数据(DIN#01),因此存储器装置_01可以从t2开始执行编程操作(tPROG#01)。
在从t3至t4的时段期间,可以对存储器装置_03执行数据输入DIN#03。在数据输入DIN#03期间,存储器装置_03可以通过通道0CH0来接收编程命令、地址和数据。存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同联接至通道0CH0。因此,在从t3至t4的时段期间对存储器装置_03执行数据输入DIN#03的同时,其他存储器装置,即存储器装置_00、存储器装置_01和存储器装置_02不能使用通道0CH0。然而,由于存储器装置_00已经在从t0至t1的时段期间接收数据(DIN#00),因此存储器装置_00可以从t1开始执行编程操作(tPROG#00)。此外,由于存储器装置_01已经在从t1至t2的时段期间接收数据(DIN#01),因此存储器装置_01可以从t2开始执行编程操作(tPROG#01)。另外,由于存储器装置_02已经在从t2至t3的时段期间接收数据(DIN#02),因此存储器装置_02可以从t3开始执行编程操作(tPROG#02)。
在t4,存储器装置_00的编程操作可以完成(tPROG#00)。
随后,在从t4至t8的时段期间,可以以与从t0至t4的时段期间所执行的相同方式来对存储器装置_00至存储器装置_03执行数据输入DIN#00、DIN#01、DIN#02和DIN#03。
参照图3的(b),在从t’0至t’2的时段期间,存储器装置_00至存储器装置_03中的每一个可以内部地读取与具体地址对应的数据(tR#00至tR#03)。在实施例中,存储器装置_00至存储器装置_03可以基于页面读取数据。存储器装置_00可以在从t’0至t’1的时段期间读取数据(tR#00),并且可以在从t’1至t’3的时段期间,通过通道0CH0将读取的数据输出至存储器控制器(DOUT#00)。
在从t’1至t’3的时段期间,存储器装置_01、存储器装置_02和存储器装置_03不能使用通道0CH0,因为存储器装置_00通过通道0CH0输出数据(DOUT#00)。
在从t’3至t’4的时段期间,存储器装置_01可以通过通道0CH0将读取的数据输出至存储器控制器(DOUT#01)。在从t’3至t’4的时段期间,存储器装置_00、存储器装置_02和存储器装置_03不能使用通道0CH0,因为存储器装置_01通过通道0CH0输出数据(DOUT#01)。
在从t’4至t’5的时段期间,存储器装置_02可以通过通道0CH0将读取的数据输出至存储器控制器(DOUT#02)。在从t’4至t’5的时段期间,存储器装置_00、存储器装置_01和存储器装置_03不能使用通道0CH0,因为存储器装置_02通过通道0CH0输出数据(DOUT#02)。
在从t’5至t’6的时段期间,存储器装置_03可以通过通道0CH0将读取的数据输出至存储器控制器(DOUT#03)。在从t’5至t’6的时段期间,存储器装置_00、存储器装置_01和存储器装置_02不能使用通道0CH0,因为存储器装置_03通过通道0CH0输出数据(DOUT#03)。
图4是示出了根据本公开实施例的超级块和超级页面的示图。
参照图4,包括存储器装置_00至存储器装置_03的四个存储器装置可以共同联接至通道0CH0。
参照图4,存储器装置(存储器装置_00至存储器装置_03)中的每一个可包括第0存储块BLK0至第n存储块BLKn。每个存储块可以包括第0页面Page 0至第k页面Page k。
存储器控制器可以基于超级块来控制共同联接至每个通道的多个存储器装置中包括的存储块。例如,存储器装置_00至存储器装置_03中包括的第0存储块BLK0可以形成第0超级块Super Block 0。因此,联接至通道0CH0的存储器装置_00至存储器装置_03可以包括第0超级块Super Block 0至第n超级块Super Block n。
每个超级块可以包括多个超级页面。超级页面也可称为“条带”。
每个超级页面可以包括多个页面。例如,第0超级块Super Block 0的多个第0存储块BLK 0中包括的第0页面Page 0可以形成第0超级页面Super Page 0。
因此,每个超级块可以包括第0超级页面Super Page 0至第k超级页面Super Pagek。
在将数据存储至存储器装置_00至存储器装置_03或读取存储的数据时,存储器控制器可以基于超级页面来存储或读取数据。
在这种情况下,将数据存储至单个超级页面的编程操作或读取存储的数据的读取操作可以以参照图3描述的数据交叉方式来执行。
图5是示出了根据本公开实施例的将数据存储至多个存储器装置的操作的示图。
参照图5,根据主机输入的写入请求的输入顺序,可以将对应于写入请求的数据存储至共同联接至通道0CH0的存储器装置_00至存储器装置_03。
在实施例中,将数据存储在存储器装置_00至存储器装置_03中的编程操作可以基于页面来执行。
详细地,存储器装置_00至存储器装置_03中的每一个可以包括第一页面Page 1至第k页面Page k。每个页面可以存储96KB大小的数据。
根据存储器控制器响应于从主机输入的写入请求而生成的写入命令序列,分别对应于第一请求req1至第十一请求req11的数据可以被顺序地存储在存储器装置_00至存储器装置_03。
第一请求可以是用于4KB大小数据的写入请求,第二请求可以是用于64KB大小数据的写入请求,第三请求可以是用于4KB大小数据的写入请求,第四请求可以是用于4KB大小数据的写入请求,第五请求可以是用于4KB大小数据的写入请求,第六请求可以是用于64KB大小数据的写入请求,第七请求可以是用于64KB大小数据的写入请求,第八请求可以是用于4KB大小数据的写入请求,第九请求可以是用于32KB大小数据的写入请求,第十请求可以是用于4KB大小数据的写入请求,并且第十一请求可以是用于4KB大小数据的写入请求。
存储器装置_00至存储器装置_03中包括的页面中的每一个可以存储96KB的数据。因此,存储器控制器200可以以96KB为单位,将与一系列请求对应的数据存储至存储器装置_00至存储器装置_03,而非以请求为单位来存储数据。
在实施例中,存储器控制器200可以以数据交叉方式来对存储器装置_00至存储器装置_03执行编程操作。此外,可以参照图4描述的,基于超级块或超级页面来管理存储器装置_00至存储器装置_03中包括的存储器单元。
因此,对应于第一请求至第五请求的数据和对应于第六请求的64KB数据的一部分可以存储至存储器装置_00。对应于第六请求的64KB数据的剩余部分和对应于第七请求的64KB数据的一部分可以存储至存储器装置_01。对应于第七请求的64KB数据的剩余部分和对应于第八请求至第十一请求的数据可以存储至存储器装置_02。
在已经根据图5的实施例存储数据之后,可以输入用于每个数据的读取请求。根据读取请求中包括的逻辑块地址(LBA),存储器控制器200可以检测与相应逻辑块地址(LBA)对应的物理块地址(PBA),并且读取相应物理块地址(PBA)中存储的数据。
假设频繁地输入主机的用于响应于第三请求req3至第五请求req5中的每一个而输入的4KB数据的读取请求。此外,假设频繁地输入主机的用于响应于第八请求req8、第十请求req10和第11请求req11中的每一个而输入的4KB数据的读取请求。
由于响应于第三请求req3至第五请求req5中的每一个而输入的4KB数据被存储在单个存储器装置_00中,因此对这些4KB数据(即,对应于第三请求req3至第五请求req5的数据)的读取操作不能以数据交叉方式来执行。存储器控制器200可以将分别对应于第三请求req3至第五请求req5的读取命令提供至存储器装置_00,以读取与第三请求req3至第五请求req5对应的数据。换言之,存储器控制器200可以响应于第三请求req3至第五请求req5将三个读取命令提供至存储器装置_00。存储器装置_00可以执行与三个读取命令对应的三次读取操作。
由于响应于第八请求req8、第十请求req10和第十一请求req11的每一个而输入的4KB数据被存储在单个存储器装置_02中,因此对这些4KB数据(即,对应于第八请求req8、第十请求req10和第十一请求req11的数据)的读取操作不能以数据交叉方式来执行。存储器控制器200可以将分别对应于第八请求req8、第十请求req10和第十一请求req11的读取命令提供至存储器装置_02,以读取与第八请求req8、第十请求req10和第十一请求req11对应的数据。换言之,存储器控制器200可以响应于第八请求req8、第十请求req10和第十一请求req11将三个读取命令提供至存储器装置_02。存储器装置_02可以执行与三个读取命令对应的三次读取操作。
在根据图5的实施例来存储数据的情况下,不能以数据交叉方式读取数据,因为具有高读取频率和较小大小的数据以较大大小(96KB)为单位被存储在单个存储器装置(例如,上述示例中的存储器装置_00和存储器装置_02的每一个)中。因此,可能引起性能劣化。
因此,在本公开的实施例中,具有高读取频率且不能以数据交叉方式读取的数据可以被分散并存储至多个存储器装置的读取高速缓存存储块中,以便能更快速地读取具有高读取频率的数据。
在本公开的各种实施例中,每个存储器装置中包括的页面数量或每个页面中能够存储的数据大小不限于图5的实施例中的那些。换言之,每个存储器装置可以包括多个存储块,其中每个存储块包括第一页面至第k页面。每个页面中能够存储的数据容量可以设置为各种值,例如4KB、8KB、16KB、64KB、128KB或1024KB。
图6是示出了图1的存储器控制器200的配置的示图。
参照图6,存储器控制器200可以包括操作控制单元210和读取高速缓存块控制单元220。
读取高速缓存块控制单元220可以包括高速缓存数据管理单元221和高速缓存数据信息存储单元222。
操作控制单元210可以接收从主机输入的请求。在实施例中,每个请求可以是写入请求Write或读取请求Read。操作控制单元210可以是诸如参照图1描述的FTL的固件的部件。
在输入写入请求时,操作控制单元210可以将与相关写入请求对应的数据存储至存储器装置100的主存储块101。
在输入读取请求时,操作控制单元210可以从主存储块101读取与相关读取请求对应的数据。操作控制单元210可以将读取的数据提供至主机。
在实施例中,在已经执行了读取请求之后,操作控制单元210可以将与读取请求对应的逻辑块地址LBA的读取计数提供至高速缓存数据信息存储单元222。
高速缓存数据信息存储单元122可以存储高速缓存数据信息。
高速缓存数据信息可以包括读取计数和对应于各个LBA的物理块地址(PBA),其中读取计数是多个逻辑块地址(LBA)的读取请求次数。
高速缓存数据信息存储单元222可以将存储的高速缓存数据信息CACHE DATAINFO提供至高速缓存数据管理单元221。
高数缓存数据管理单元221可以基于高速缓存数据信息来确定高速缓存数据,即主存储块101中存储的数据之中的、待被传输至读取高速缓存存储块102的数据。
详细地,高速缓存数据管理单元221可以将主存储块101中存储的数据之中的、读取计数或数据读取请求次数超过阈值(TH)的数据确定为高速缓存数据。
在实施例中,存储器控制器200可以控制多个存储器装置100。高速缓存数据管理单元221可以在多个存储器装置100中的每一个中,将主存储块101中存储的数据之中的、读取计数超过阈值(TH)的数据确定为高速缓存数据。在此,当与多个原始数据片段对应的高速缓存数据被存储在单个存储器装置中时,不可以以数据交叉方式来读取与多个原始数据片段对应的高速缓存数据。
高速缓存数据管理单元221可以将高速缓存数据的物理块地址(PBA)提供至操作控制单元210,其中高速缓存数据的物理块地址(PBA)为关于高速缓存数据的信息。操作控制单元210可以从主存储块101读取与高速缓存数据的PBA对应的数据,并且执行将读取的数据存储至读取高速缓存存储块102的高速缓存写入操作。
在实施例中,读取高速缓存存储块102的编程或读取速度可以高于主存储块101的编程或读取速度。在实施例中,读取高速缓存存储块102可以由每一个存储一位数据的SLC形成。可选地,主存储块101可以由每一个存储两位数据的MLC、每一个储存三位数据的TLC或每一个存储四位数据的QLC形成。
在各种实施例中,在高速缓存写入操作期间,操作控制单元210可以将数据分散并编程至多个存储器装置100中包括的读取高速缓存存储块102。换言之,操作控制单元210可以将单个存储器装置的高速缓存数据分散并存储至多个存储器装置100,以能够根据数据交叉方案来读取高速存取存储块102。
图7是示出了根据本公开实施例的将高速缓存数据存储至读取高速缓存存储块102的操作的示图。
参照图7,存储器装置_00至存储器装置_03中的每一个可以包括主存储块和读取高速缓存存储块。
在实施例中,存储器装置_00至存储器装置_03中的每一个可以包括主存储块1至主存储块n。在实施例中,每个主存储块中包括的存储器单元可以由每一个存储两位数据的MLC、每一个存储三位数据的TLC或每一个均存储四位数据的QLC形成。
在实施例中,读取高速缓存存储块的编程或读取速度可以高于主存储块的编程或读取速度。在实施例中,读取高速缓存存储块可以由每一个存储一位数据的SLC形成。
存储器控制器200可以在存储器装置中的每个(即,存储器装置_00至存储器装置_03)中,根据高速缓存数据信息存储单元222中存储的高速缓存数据信息来确定高速缓存数据,即主存储块中存储的数据之中的、待被传输至读取高速缓存存储块的数据。
高速缓存数据信息存储单元222可以存储逻辑块地址(LBA)、数据大小、读取计数(RC)和物理块地址(PBA)。在实施例中,PBA可以是表示存储器装置(即,存储器装置_00至存储器装置_03)之中的存储了与相关LBA对应的数据的存储器装置的管芯编号。
参照图7,存储器控制器200可以基于高速缓存数据信息来确定高速缓存数据。高速缓存数据可以是LBA的读取计数值超过阈值(TH)的数据。在图7中,假设阈值(TH)为100。
与第四LBA LBA4至第六LBA LBA6中的每一个对应的数据可以是具有4KB大小且读取计数超过阈值(TH)的数据。与第四LBA LBA4至第六LBA LBA6对应的数据可以存储在存储器装置_03(管芯3)的主存储块中。
因此,存储器控制器200可以将与第四LBA LBA4至第六LBA LBA6对应的数据确定为高速缓存数据。
存储器控制器200可以读取存储器装置_03的主存储块中存储的、与第四LBA LBA4至第六LBA LBA6对应的数据。存储器控制器200可以将读取的与第四LBA LBA4至第六LBALBA6对应的数据(即,存储器装置_03的高速缓存数据)存储至存储器装置(即,存储器装置_00至存储器装置_03)的读取高速缓存存储块。也就是说,存储器控制器200可以将读取的数据(即,存储器装置_03的高速缓存数据)分散并存储至存储器装置(即,存储器装置_00至存储器装置_03),以便可以数据交叉方式来读取与每个LBA对应的数据。例如,对应于第四LBALBA4的4KB数据可以存储至存储器装置_00的读取高速缓存存储块,对应于第五LBALBA5的4KB数据可以存储至存储器装置_01的读取高速缓存存储块,并且对应于第六LBALBA6的4KB数据可以存储至存储器装置_02的读取高速缓存存储块。
图8是示出了根据本公开实施例的存储装置50的操作的流程图。
参照图8,在步骤S801,存储装置50可以从主机接收读取请求。读取请求可以包括LBA,LBA是待读取数据的逻辑块地址。
在步骤S803,存储装置50可以对相应LBA执行读取操作。例如,存储装置50可以检测与读取请求的LBA对应的PBA,读取存储在相应PBA处的数据,并且随后将读取的数据提供至主机。
在步骤S805,存储装置50可以更新已经执行了读取请求的LBA的读取计数。详细地,存储装置50可以增加相应LBA的读取计数并且存储增加的读取计数值。
在步骤S807,存储装置50可以确定是否存在每一个的读取计数超过阈值TH的两个或更多个LBA。如果存在每一个的读取计数超过阈值TH的两个或更多个LBA,则存储装置50可以进行至步骤S809,如果不存在每一个的读取计数超过阈值TH的两个或更多个LBA,则存储装置50可以终止进程。
在步骤S809,存储装置50可以将与每一个的读取计数超过阈值TH的LBA对应的数据传输至读取高速缓存存储块。将参照图9更详细地描述步骤S809。
图9是示出了根据本公开实施例的存储装置50的操作的流程图。
参照图9,在步骤S903,存储装置50可以确定与每一个的读取计数均超过阈值TH的两个或更多个LBA分别对应的两个或更多个数据片段是否存储在相同的存储器装置中。如果与每一个的读取计数均超过阈值TH的两个或更多个LBA分别对应的两个或更多个数据片段没有存储在相同的存储器装置中,则进程可以终止,因为对主数据块的读取操作可以以数据交叉方式执行。然而,如果与每一个读取计数均超过阈值TH的两个或更多个LBA分别对应的两个或更多个数据片段存储在相同的存储器装置中,则进程进行到步骤S909,因为不能以数据交叉方式对存储在相同存储器装置中的两个或更多个数据片段执行读取操作。
在步骤S909,存储装置50可以将与每一个的读取计数均超过阈值TH的两个或更多个LBA分别对应的两个或更多个数据片段的高速缓存数据分散并存储至不同存储器装置中包括的读取高速缓存存储块。在实施例中,每个主存储块中包括的存储器单元可以由每一个存储两个数据位的MLC、每一个存储三个数据位的TLC、或每一个存储四个数据位的QLC形成。在实施例中,读取高速缓存存储块的编程或读取速度可以高于主存储块的编程或读取速度。在实施例中,读取高速缓存存储块可以有每一个存储一位数据的SLC形成。
图10是示出了图1的存储器装置100的配置的示图。
参照图10,存储器装置100可以包括存储器单元阵列110、***电路120和控制逻辑130。
存储器单元阵列110可以包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接至地址解码器121。多个存储块BLK1至BLKz通过位线BL1至BLm联接至读取/写入电路123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元中的联接至相同字线的存储器单元可以定义为一个页面。换言之,存储器单元阵列110由多个页面形成。在实施例中,存储器单元阵列110中包括的存储块BLK1至BLKz中的每一个可以包括多个虚拟单元。在此,一个或多个虚拟单元可以串联联接在漏极选择晶体管和存储器单元之间以及串联联接在源极选择晶体管和存储器单元之间。
存储器装置100的每一个存储器单元可以由能够存储单个数据位的SLC、能够存储两个数据位的MLC、能够存储三个数据位的TLC或能够存储四个数据位的QLC形成。
***电路120可以包括地址解码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。
***电路120可以驱动存储器单元阵列110。例如,***电路120可以驱动存储器单元阵列110来执行编程操作、读取操作或擦除操作。
地址解码器121通过行线RL联接至存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。在实施例中,字线可以包括正常字线和虚拟字线。在实施例中,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下操作。地址解码器121可以从控制逻辑130接收地址ADDR。
地址解码器121可以对接收的地址ADDR中的块地址进行解码。地址解码器121可以根据所解码块地址来在存储块BLK1至BLKz中选择至少一个存储块。地址解码器121可以对所接收地址ADDR中的行地址进行解码。地址解码器121可以根据所解码的行地址,通过将从电压发生器122供应的电压施加至少一个字线WL来选择所选择存储块的至少一个字线WL。
在编程操作期间,地址解码器121可以将编程电压施加至所选择字线并且将电平低于编程电压的电平的通过电压施加至未选择字线。在编程验证操作期间,地址解码器121可以将验证电压施加至所选择字线并且将高于验证电压的验证通过电压施加未选择字线。
在读取操作期间,地址解码器121可以将读取电压施加至所选择字线并且将高于读取电压的通过电压施加至未选择字线。
在实施例中,可以基于存储块来执行存储器装置100的擦除操作。在操作操作期间,待输入至存储器装置100的地址ADDR包括块地址。地址解码器121可以解码块地址并且根据解码的块地址来选择相应存储块。在擦除操作期间,地址解码器121可以将接地电压施加至与所选择存储块联接的字线。
在实施例中,地址解码器121可以对传输的地址ADDR中的列地址进行解码。解码的列地址DCA可以被传输至读取/写入电路123。在实施例中,地址解码器121可以包括诸如行解码器、地址解码器和地址缓冲器的部件。
电压发生器122可以使用提供至存储器装置100的外部供应电压来生成多个电压。电压发生器122可以在控制逻辑130的控制下操作。
在实施例中,电压发生器122可以通过调节外部供应电压来生成内部供应电压。从电压发生器122生成的内部供应电压可以用作存储器装置100的操作电压。
在实施例中,电压发生器122可以通过使用外部供应电压或内部供应电压来生成多个电压。电压发生器122可以生成存储器装置100中所需的各种电压。例如,电压发生器122可以生成多个编程电压、多个通过电压、多个选择读取电压和多个未选择读取电压。
例如,电压发生器122可以包括用于接收内部供应电压的多个泵电容器(pumpingcapacitors),并且在控制逻辑130的控制下通过选择性地激活多个泵电容器来生成多个电压。
生成的电压可以通过地址解码器121被供应至存储器单元阵列110。
读取/写入电路123可以包括第一页面缓冲器PB1至第m页面缓冲器PBm。第一页面缓冲器PB1至第m页面缓冲器PBm分别通过第一位线BL1至第m位线BLm而联接至存储器单元阵列110。第一页面缓冲器PB1至第m页面缓冲器可以在控制逻辑130的控制下操作。
第一页面缓冲器PB1至第m页面缓冲器PBm可以执行与数据输入/输出电路124的数据通信。在编程操作期间,第一页面缓冲器PB1至第m页面缓冲器PBm可以通过数据输入/输出电路124和数据线DL来接收待存储的数据DATA。
在编程操作期间,在编程脉冲被施加至所选择字线时,第一页面缓冲器PB1至第m页面缓冲器PBm可以将通过数据输入/输出电路124接收的数据DATA通过位线BL1至BLm而传输至所选择存储器单元。所选择页面中的存储器单元基于传输的数据DATA被编程。联接至被施加编程许可电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。联接至被施加编程禁止电压(例如,供应电压)的位线的存储器单元的阈值电压可以被保持。在编程验证操作期间,第一页面缓冲器PB1至第m页面缓冲器PBm可以通过位线BL1至BLm从所选择存储器单元读取页面数据。
在读取操作期间,读取/写入电路123可以通过位线BL从所选择页面中的存储器单元读取数据DATA,并且将读取数据DATA输出至数据输入/输出电路124。
在擦除操作期间,读取/写入电路123可以使位线BL浮置(float)。在实施例中,读取/写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接至第一页面缓冲器PB1至第m页面缓冲器PBm。数据输入/输出电路124可以在控制逻辑130的控制下操作。
数据输入/输出电路124可以包括用于接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124可以将从读取/写入电路123中包括的第一页面缓冲器PB1至第m页面缓冲器PBm接收的数据输出至外部控制器。
控制逻辑130可以联接至地址解码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传输的命令CMD而操作。
图11是示出了图10的存储器单元阵列110的实施例的示图。
参照图11,存储器单元阵列110可以包括多个存储块BLK1至BLKz。每个存储块可以具有三维结构。每个存储块可以包括堆叠在衬底上的多个存储单元。这些存储单元在+X方向、+Y方向和+Z方向上布置。将参照图12和图13更详细地描述每个存储块的结构。
图12是示出了根据本公开实施例的图10的存储块BLK1至BLKz中的任一个存储块BLKa的电路图。
参照图12,存储块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为“U”形。在存储块BLKa中,m个单元串可以在行方向(即,+X方向)上布置。在图12中,两个单元串被示出为在列方向(即,+Y方向)上布置。然而,该图示仅是为了便于说明,应理解的是可以在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可以包括至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以各自具有相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可以在每个单元串中设置用于提供沟道层的柱(pillar)。在实施例中,可以在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的每一个的柱。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接至在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接至不同的源极选择线。在图12中,第一行中的单元串CS11至CS1m的源极选择晶体管联接至第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接至第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同联接至单个源极选择线。
每个单元串中的第一存储器单元MC1至第n存储器单元MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一存储器单元MC1至第n存储器单元MCn可以划分成第一存储器单元MC1至第p存储器单元MCp以及第p+1存储器单元MCp+1至第n存储器单元MCn。第一存储器单元MC1至第p存储器单元MCp被顺序地布置在与+Z方向相反的方向上并且串联联接在源极选择晶体管SST和管道晶体管PT之间。第p+1存储器单元MCp+1至第n存储器单元MCn被顺序地布置在+Z方向上并且串联联接在管道晶体管PT和漏极选择晶体管DST之间。第一存储器单元MC1至第p存储器单元MCp以及第p+1存储器单元MCp+1至第n存储器单元MCn通过管道晶体管PT彼此联接。每个单元串的第一存储器单元MC1至第p存储器单元MCn的栅极分别联接至第一字线WL1至第n字线WLn。
各个单元串的管道晶体管PT的栅极联接至管线PL。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MCp+1至MCn之间。行方向上布置的单元串联接至在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接至第二漏极选择线DSL2。
列方向上布置的单元串可以联接至在列方向上延伸的位线。在图12中,第一行中的单元串CS11和CS21联接至第一位线BL1。第m列中的单元串CS1m和CS2m联接至第m位线BLm。
行方向上布置的单元串中的、联接至相同字线的存储器单元形成单个页面。例如,第一行中的单元串CS11至CS1m中的、联接至第一字线WL1的存储器单元形成单个页面。第二行中的单元串CS21至CS2m中的、联接至第一字线WL1的存储器单元形成另一单个页面。当选择漏极选择线DSL1和DSL2中的任何一个时,可以选择布置在单个行方向上的相应单元串。当选择字线WL1至WLn中的任何一个时,可以从选择的单元串中选择相应单个页面。
在实施例中,可以设置偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。在行方向上布置的单元串CS11至CS1m或CS21至C2m中的、偶数编号的单元串可以联接至各自的偶数位线。在行方向上布置的单元串CS11至CS1m或CS21至C2m中的、奇数编号的单元串可以联接至各自的奇数位线。
在实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚拟存储器单元。例如,可以设置至少一个或多个虚拟存储器单元来减小源极选择晶体管SST和存储器单元MC1至MCp之间的电场。可选地,可以设置至少一个或多个虚拟存储器单元来减小漏极选择晶体管DST和存储器单元MCp+1至MCn之间的电场。随着虚拟存储器单元的数量增加,存储块BLKa的操作可靠性可以增加,同时存储块BLKa的大小可被增大。随着虚拟存储器单元的数量减少,存储块BLKa的大小可以减小,但是存储块BLKa的操作可靠性可能降低。
为了高效地控制至少一个虚拟存储器单元,虚拟存储器单元中的每一个可以具有所需的阈值电压。在存储块BLKa执行擦除操作之前或之后,可以对虚拟存储器单元中的全部或一些执行编程操作。在已经执行编程操作之后来执行擦除操作的情况下,通过控制待施加至与各个虚拟存储器单元联接的虚拟字线的电压,虚拟存储器单元可以具有所需的阈值电压。
图13是示出了根据本公开实施例的图11的存储块BLK1至BLKz中的任意一个存储块BLKb的电路图。
参照图13,存储块BLKb可以包括多个单元串CS11’至CS1m’和CS21’至CS2m’。单元串CS11’至CS1m’和CS21’至CS2m’中的每一个在+Z方向上延伸。单元串CS11’至CS1m’和CS21’至CS2m’中的每一个可以包括堆叠在衬底(未示出)上的至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn、以及至少一个漏极选择晶体管DST,其中衬底位于存储块BLKb的下方。
每个单元串的源极选择晶体管SST联接在公共源极线CSL和存储器单元MC1至MCn之间。布置在相同行中的单元串的源极选择晶体管联接至相同的源极选择线。布置在第一行中的单元串CS11’至CS1m’的源极选择晶体管可以联接至第一源极选择线SSL1。布置在第二行中的单元串CS21’至CS2m’的源极选择晶体管可以联接至第二源极选择线SSL2。在实施例中,单元串CS11’至CS1m’和CS21’至CS2m’的源极选择晶体管可以共同联接至单个源极选择线。
每个单元串中的第一存储器单元MC1至第n存储器单元MCn串联联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一存储器单元MC1至第n存储器单元MCn的栅极分别联接至第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MC1至MCn之间。在行方向上布置的单元串的漏极选择晶体管可以联接至在行方向上延伸的漏极选择线。第一行中的单元串CS11’至CS1m’的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21’至CS2m’的漏极选择晶体管可以联接至第二漏极选择线DSL2。
因此,除了每个单元串中不具有管道晶体管PT之外,图13的存储块BLKb可以具有与图12的存储块BLKa的电路相似的等效电路。
在实施例中,可以设置偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。在行方向上布置的单元串CS11’至CS1m’或CS21’至CS2m’中的偶数编号的单元串可以联接至各自的偶数位线,在行方向上布置的单元串CS11’至CS1m’或CS21’至CS2m’中得奇数编号的单元串可以联接至各自的的奇数位线。
在实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚拟存储器单元。例如,可以设置至少一个或多个虚拟存储器单元来减小源极选择晶体管SST和存储器单元MC1至MCn之间的电场。可选地,可以提供至少一个或多个虚拟存储器单元来减小漏极选择晶体管DST和存储器单元MC1至MCn之间的电场。随着虚拟存储器单元的数量增加,存储块BLKb的操作可靠性可以增加,同时存储块BLKb的大小可被增大。随着虚拟存储器单元的数量减少,存储块BLKb的大小可以减小,但是存储块BLKb的操作可靠性可能降低。
为了高效地控制至少一个虚拟存储器单元,虚拟存储器单元中的每一个可以具有所需的阈值电压。在对存储块BLKb执行擦除操作之前或之后,可以对虚拟存储器单元中的全部或一些执行编程操作。在编程操作已经执行之后来执行擦除操作的情况下,通过控制待施加至与各个虚拟存储器单元联接的虚拟字线的电压,虚拟存储器单元可以具有所需的阈值电压。
图14是示出了根据本公开实施例的图10的存储器单元阵列110中包括的存储块BLK1至BLKz中的任意一个存储块BLKc的电路图。
参照图14,存储块BLKc可以包括多个串SR。多个串SR可以分别联接至多个位线BL1至BLn。每个串SR可以包括源极选择晶体管SST、存储器单元MC和漏极选择晶体管DST。
每个串SR的源极选择晶体管SST可以联接在存储器单元MC和公共源极线CSL之间。多个串SR的源极选择晶体管SST可以共同联接至公共源极线CSL。
每个串SR的漏极选择晶体管DST可以联接在存储器单元MC和对应的位线BL之间。串SR的漏极选择晶体管DST可以分别联接至位线BL1至BLn。
在每个串SR中,可以在源极选择晶体管SST和漏极选择晶体管DST之间设置多个存储器单元MC。在每个串SR中,存储器单元MC可以彼此串联联接。
在每个串SR中,被设置为在距公共源极线CSL的相同圈(turn)中的存储器单元MC可以共同联接至单个字线。多个串SR的存储器单元MC可以联接至多个字线WL1至WLm。
在存储块BLKc中,可以基于存储块执行擦除操作。当基于存储块执行擦除操作时,可以响应于擦除请求同时擦除存储块BLKc中的全部存储器单元。
图15是示出了图1的存储器控制器200的实施例的示图。
存储器控制器1000联接至主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口。存储器控制器1000可以驱动用于控制存储器装置的固件。
参照图15,存储器控制器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。使用FTL的地址映射方法可以根据映射单位而以各种方式修改。代表性的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以将从主机接收的数据随机化。例如,处理器1010可以使用随机化种子将从主机接收的数据随机化。随机化数据可以作为待处理的数据被提供至存储器装置并且可以被编程至存储器单元阵列。
在读取操作期间,处理器1010可以将从存储器装置100接收的数据去随机化。例如,处理器1010可以使用去随机化种子将从存储器装置接收的数据去随机化。去随机化数据可以输出至主机。
在实施例中,处理器1010可以驱动软件或固件以执行随机化操作或去随机化操作。
存储器缓冲电路1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲电路1020可以存储待被处理器1010执行的代码和命令。存储器缓冲电路1020可以存储待由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行错误校正。ECC电路1030可以基于待通过存储器接口1060而写入存储器装置100的数据来执行ECC编码操作。经ECC编码的数据可以通过存储器接口1060而被传输至存储器装置100。ECC电路1030可以对通过存储器接口1060而从存储器装置100接收的数据执行ECC解码操作。例如,ECC电路1030可以被包括在存储器接口1060中而作为存储器接口1060的部件。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速片间(HSIC)、小型计算机***接口(SCSI)、***组件互联(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置100通信。存储器接口1060可以通过通道与存储器装置100通信命令、地址和数据。
例如,存储器控制器1000可以既不包括存储器缓冲器1020也不包括缓冲器控制电路1050。
例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器)加载代码。可选地,处理器1010可以通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可以划分成控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据。控制总线可以在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线可以彼此分离并且既不相互干扰也不相互影响。数据总线可以联接至主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接至主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图16是示出了应用根据本公开实施例的存储装置的存储卡***2000的框图。
参照图16,存储卡***2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接至存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2100和主机之间的接口。存储器控制器2100可以驱动用于控制存储器装置2200的固件。存储器控制器2100可以以与参照图1描述的存储器控制器200相同的方式来实施。
在实施例中,存储器控制器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可以集成到单个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、标准闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC或微型MMC)、SD卡(SD、迷你SD、微型SD、或SDHC)、或通用闪存(UFS)。
图17是示出了应用根据本公开实施例的存储装置的固态硬盘(SSD)***3000的框图。
参照图17,SSD***3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过电源连接器3002接收电力PWR。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
在实施例中,SSD控制器3210可以执行如上文参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在实施例中,信号SIG可以为基于主机3100的接口和SSD3200之间的接口的信号。例如,信号SIG可以是由诸如以下的各种接口中的至少一个定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、***组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(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可以设置在主板中并且可以将辅助电力供应至SSD 3200。
缓冲存储器3240用作SSD3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图18是示出了应用根据本公开实施例的存储装置的用户***4000的框图。
参照图18,用户***4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户***4000、操作***(OS)或用户程序中包括的部件。在实施例中,应用处理器4100可以包括用于控制用户***4000中的部件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上***(SoC)。
存储器模块4200可以用作用户***4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDRSDRAM和LPDDR3SDRAM的易失性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闪速存储器或具有三维结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为用户***4000的可移除存储介质(即,可移除驱动器),诸如存储卡或外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置中的每一个可以以与上述参照图10至图14描述的存储器装置100相同的方式操作。存储模块4400可以以与上述参照图1描述的存储装置50相同的方式操作。
用户界面4500可以包括用于将数据或指令输入至应用处理器4100或者将数据输出至外部装置的接口。在实施例中,用户界面4500可以包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触控板、触控球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户界面4500可以进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED))显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机。
本公开的各种实施例可以提供一种包括读取高速缓存存储块的存储装置和该存储装置的操作方法。
根据本公开,具有高读取频率并且由于被存储在相同存储器装置中而不能以数据交叉方式读取的数据可以被分散并存储至读取高速缓存数据块,使得可以更快速地读取具有高读取频率的数据。
尽管已经描述了本公开的实施例,但是本领域技术人员将理解的是在不背离本公开的范围和精神的情况下,各种变型、增加和替换是可能的。
因此,本公开的范围必须由所附权利要求及其等同物而非由此前的描述来限定。
在上述实施例中,所有步骤可以选择性地执行或被略过。此外,每个实施例中的步骤并不总是以给定的顺序顺次执行,而是可以随机执行。此外,本说明书和附图中公开的实施例和附图旨在帮助本领域的普通技术人员更清楚地理解本公开而非旨在限制本公开的范围。换言之,本公开所述领域的普通技术人员中将能够基于本公开的技术范围容易地理解各种变型是可能的。
已经参照附图描述了本公开的实施例,说明书中使用的具体术语或词语应根据本公开的精神来解释而不应限制本公开的主题。应理解的是,本文中描述的基础发明构思的多种变型和修改仍将落在如所附权利要求及其等同物限定的本公开的精神和范围内。

Claims (13)

1.一种存储装置,包括:
多个存储器装置,所述多个存储器装置中的每个包括至少一个读取高速缓存存储块和多个主存储块,其中所述多个存储器装置联接至相同的通道;以及
存储器控制器,从所述多个存储器装置之中的单个相同存储器装置中包括的主存储块中存储的数据选择多个高速缓存数据片段,将所述多个高速缓存数据片段分散并存储至所述多个存储器装置的每个中包括的至少一个读取高速缓存存储块,每个高速缓存数据片段具有表示读取请求次数并超过阈值的读取计数,
其中以数据交叉方式对被分散之后的多个高速缓存数据片段执行后续读取操作,
其中所述至少一个读取高速缓存存储块由每个存储单个位数据的单层单元形成,
其中所述多个主存储块由每个包括以下中的任何一个的存储器单元形成:存储两个数据位的多层单元、存储三个数据位的三层单元和存储四个数据位的四层单元。
2. 根据权利要求1所述的存储装置,其中所述存储器控制器包括:
操作控制单元,响应于从主机接收的读取请求而控制所述多个存储器装置;以及
读取高速缓存块控制单元,基于所述多个主存储块中存储的数据的逻辑块地址中的每一个的读取计数来确定所述多个高速缓存数据片段。
3. 根据权利要求2所述的存储装置,其中所述读取高速缓存块控制单元包括:
高速缓存数据信息存储单元,存储所述多个主存储块中存储的数据的逻辑块地址中的每一个的读取计数以及包括与所述多个主存储块中存储的数据的各个逻辑块地址对应的物理块地址的高速缓存数据信息;以及
高速缓存数据管理单元,基于所述高速缓存数据信息来确定所述多个高速缓存数据片段。
4.根据权利要求3所述的存储装置,其中所述高速缓存数据管理单元基于所述高速缓存数据信息,来检测所述多个主存储块中存储的数据的逻辑块地址之中具有超过所述阈值的读取计数的至少两个逻辑块地址。
5.根据权利要求4所述的存储装置,其中所述高速缓存数据管理单元从与所述至少两个逻辑块地址对应的数据之中的所述多个存储器装置中的单个相同存储器装置中包括的主存储块中存储的数据选择所述多个高速缓存数据片段。
6.根据权利要求5所述的存储装置,其中所述高速缓存数据管理单元将所述多个高速缓存数据片段的物理块地址提供至所述操作控制单元。
7.根据权利要求6所述的存储装置,其中所述操作控制单元基于所述物理块地址,将所述多个高速缓存数据片段分散并存储至所述至少一个读取高速缓存存储块。
8.根据权利要求7所述的存储装置,其中所述多个高速缓存数据片段是在被分散并存储至所述至少一个读取高速缓存存储块之前所述多个主存储块中存储的数据之中的以数据交叉方式不可读取的数据。
9. 一种操作存储装置的方法,所述存储装置包括多个存储器装置和存储器控制器,所述多个存储器装置联接至相同的通道并且所述多个存储器装置的每个包括至少一个读取高速缓存存储块和多个主存储块;所述存储器控制器控制所述多个存储器装置,所述方法包括:
从所述多个存储器装置之中的单个相同存储器装置中包括的主存储块中存储的数据选择多个高速缓存数据片段,每一条高速缓存数据具有表示读取请求次数并超过阈值的读取计数;以及
将所述多个高速缓存数据片段分散且存储至所述多个存储器装置的每个中包括的至少一个读取高速缓存存储块,
其中以数据交叉方式对被分散之后的多个高速缓存数据片段执行后续读取操作,
其中所述至少一个读取高速缓存存储块由每个存储单个数据位的单层单元形成,
其中所述多个主存储块由每个包括以下中的任何一个的存储器单元形成:存储两个数据位的多层单元、存储三个数据位的三层单元和存储四个数据位的四层单元。
10. 根据权利要求9所述的方法,其中所述选择包括:
将所述多个主存储块中存储的数据的逻辑块地址中的每一个的读取计数与所述阈值比较;以及
检测具有超过所述阈值的读取计数的至少两个逻辑块地址。
11. 根据权利要求10所述的方法,其中所述分散和存储包括:
在与所述至少两个逻辑块地址对应的数据之中确定多个高速缓存数据片段;以及
将所述多个高速缓存数据片段复制至所述多个存储器装置的每个中包括的至少一个读取高速缓存存储块。
12. 根据权利要求11所述的方法,其中所述复制包括:
检测所述多个高速缓存数据片段的物理块地址;以及
对所述物理块地址执行读取操作,并且将所读取的数据编程至所述多个存储器装置的每个中包括的至少一个读取高速缓存存储块。
13.一种存储器***,包括:
第一存储器装置,包括第一读取高速缓存存储块和第一主存储块;
第二存储器装置,包括第二读取高速缓存存储块和第二主存储块,其中所述第一存储器装置和所述第二存储器装置联接至相同的通道;以及
控制器,所述控制器:
在第一主存储块和第二主存储块中的每个中存储的数据之中,检测多个高速缓存数据片段,每个高速缓存数据片段具有大于阈值的读取计数;
将所述多个高速缓存数据片段分散至所述第一读取高速缓存存储块中包括的一个页面和所述第二读取高速缓存存储块中包括的一个页面,
其中以数据交叉方式对被分散之后的多个高速缓存数据片段执行后续读取操作,
其中所述第一读取高速缓存存储块和所述第二读取高速缓存存储块中的每一个由每个存储单个位数据的单层单元形成,
其中所述第一主存储块和所述第二主存储块中的每一个包括以下中的任何一个的存储器单元形成:存储两个数据位的多层单元、存储三个数据位的三层单元和存储四个数据位的四层单元。
CN201811300759.6A 2018-03-19 2018-11-02 存储装置及其操作方法 Active CN110287130B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0031751 2018-03-19
KR1020180031751A KR102535104B1 (ko) 2018-03-19 2018-03-19 저장 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
CN110287130A CN110287130A (zh) 2019-09-27
CN110287130B true CN110287130B (zh) 2024-03-08

Family

ID=67905591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811300759.6A Active CN110287130B (zh) 2018-03-19 2018-11-02 存储装置及其操作方法

Country Status (3)

Country Link
US (1) US10853236B2 (zh)
KR (1) KR102535104B1 (zh)
CN (1) CN110287130B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016081192A1 (en) 2014-11-20 2016-05-26 Rambus Inc. Memory systems and methods for improved power management
KR20190090635A (ko) * 2018-01-25 2019-08-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20210046481A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 전자 장치 및 그 제어 방법
US11645006B2 (en) * 2020-04-30 2023-05-09 Macronix International Co., Ltd. Read performance of memory devices
CN111739455A (zh) * 2020-05-21 2020-10-02 昆明物理研究所 一种自适应任意帧频数字视频信号和vga转换装置和方法
KR20220073017A (ko) * 2020-11-26 2022-06-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20230018831A (ko) * 2021-07-30 2023-02-07 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1624802A (zh) * 1998-07-01 2005-06-08 株式会社日立制作所 半导体存储器和高速缓存器
CN101069211A (zh) * 2004-11-23 2007-11-07 高效存储技术公司 分页存储器及其智能存储器区段的交错寻址的多次缩略的方法和装置
CN101349963A (zh) * 2007-07-19 2009-01-21 三星电子株式会社 固态盘控制器及其数据处理方法
JP2009037317A (ja) * 2007-07-31 2009-02-19 Panasonic Corp メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
CN103562883A (zh) * 2011-05-31 2014-02-05 美光科技公司 存储器装置中的动态存储器高速缓存大小调整
CN103839584A (zh) * 2012-11-20 2014-06-04 爱思开海力士有限公司 半导体存储器件、包括其的存储***及其制造方法
CN107025177A (zh) * 2016-02-01 2017-08-08 爱思开海力士有限公司 存储器***及其操作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272594B1 (en) * 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
WO2001018703A1 (en) * 1999-09-10 2001-03-15 Portogo, Inc. Systems and method for insuring correct data transmission over the internet
EP1607879A1 (en) * 2004-06-14 2005-12-21 Dialog Semiconductor GmbH Memory interleaving in a computer system
US7287122B2 (en) * 2004-10-07 2007-10-23 International Business Machines Corporation Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing
US8190809B2 (en) * 2004-11-23 2012-05-29 Efficient Memory Technology Shunted interleave for accessing plural memory banks, particularly those having partially accessed cells containing data for cache lines
US11244727B2 (en) * 2006-11-29 2022-02-08 Rambus Inc. Dynamic memory rank configuration
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP5520747B2 (ja) * 2010-08-25 2014-06-11 株式会社日立製作所 キャッシュを搭載した情報装置及びコンピュータ読み取り可能な記憶媒体
KR101861170B1 (ko) * 2011-08-17 2018-05-25 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
US9697134B2 (en) * 2015-06-10 2017-07-04 Micron Technology, Inc. Memory having a static cache and a dynamic cache

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1624802A (zh) * 1998-07-01 2005-06-08 株式会社日立制作所 半导体存储器和高速缓存器
CN101069211A (zh) * 2004-11-23 2007-11-07 高效存储技术公司 分页存储器及其智能存储器区段的交错寻址的多次缩略的方法和装置
CN101349963A (zh) * 2007-07-19 2009-01-21 三星电子株式会社 固态盘控制器及其数据处理方法
JP2009037317A (ja) * 2007-07-31 2009-02-19 Panasonic Corp メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
CN103562883A (zh) * 2011-05-31 2014-02-05 美光科技公司 存储器装置中的动态存储器高速缓存大小调整
CN103839584A (zh) * 2012-11-20 2014-06-04 爱思开海力士有限公司 半导体存储器件、包括其的存储***及其制造方法
CN107025177A (zh) * 2016-02-01 2017-08-08 爱思开海力士有限公司 存储器***及其操作方法

Also Published As

Publication number Publication date
KR102535104B1 (ko) 2023-05-23
KR20190109985A (ko) 2019-09-27
US20190286555A1 (en) 2019-09-19
US10853236B2 (en) 2020-12-01
CN110287130A (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN110069212B (zh) 存储装置及存储装置的操作方法
KR102535627B1 (ko) 메모리 컨트롤러 및 그 동작 방법
CN110287130B (zh) 存储装置及其操作方法
CN110275673B (zh) 存储装置及其操作方法
CN111104059B (zh) 存储器控制器及操作该存储器控制器的方法
CN109388578B (zh) 存储装置及其操作方法
US11360900B2 (en) Storage device and method of operating the same
KR102620255B1 (ko) 저장 장치 및 그 동작 방법
KR20200114149A (ko) 메모리 컨트롤러 및 그 동작 방법
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
US20190259457A1 (en) Storage device and method of operating the same
CN110175133B (zh) 存储装置及其操作方法
CN111445939B (zh) 存储装置及其操作方法
CN110619912B (zh) 存储装置以及该存储装置的操作方法
CN110827873B (zh) 存储器控制器
CN110648698B (zh) 储存装置、存储器件及操作该存储器件的方法
CN110413219B (zh) 存储器控制器、存储器***及其操作方法
CN111190535B (zh) 存储装置及其操作方法
KR102688483B1 (ko) 저장 장치 및 그 동작 방법
KR20230012334A (ko) 메모리 장치 및 그 동작 방법
KR20210017908A (ko) 저장 장치 및 그 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant