CN110321070B - 存储器控制器及其操作方法 - Google Patents

存储器控制器及其操作方法 Download PDF

Info

Publication number
CN110321070B
CN110321070B CN201910013013.5A CN201910013013A CN110321070B CN 110321070 B CN110321070 B CN 110321070B CN 201910013013 A CN201910013013 A CN 201910013013A CN 110321070 B CN110321070 B CN 110321070B
Authority
CN
China
Prior art keywords
memory
data
purge
memory device
command
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
CN201910013013.5A
Other languages
English (en)
Other versions
CN110321070A (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 CN110321070A publication Critical patent/CN110321070A/zh
Application granted granted Critical
Publication of CN110321070B publication Critical patent/CN110321070B/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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0604Improving or facilitating administration, e.g. storage 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
    • 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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0656Data buffering 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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/60Details of cache 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/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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

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)

Abstract

本发明可以提供一种存储器控制器及该存储器控制器的操作方法。存储器控制器可包括:命令处理器,被配置为响应于从外部主机输入的清除请求生成清除命令,并且分配与清除命令对应的槽编号;序列发生器,被配置为确定响应于清除命令将被存储的清除数据,并且基于清除数据的大小和多个存储器装置的分配的装置序列生成清除数据将被存储的写入序列;以及存储器操作控制器,被配置为控制多个存储器装置以将清除数据存储在多个存储器装置中。

Description

存储器控制器及其操作方法
相关申请的交叉引用
本申请要求于2018年3月28日提交的申请号为10-2018-0036108的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本公开的各种实施例涉及一种电子装置。特别地,实施例涉及一种存储器控制器以及操作该存储器控制器的方法。
背景技术
存储装置是在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据的装置。根据存储数据的装置,存储装置的示例包括诸如将数据存储在磁盘中的硬盘驱动器(HDD)、固态驱动器(SSD)、或者将数据存储在半导体存储器特别地存储在非易失性存储器中的存储卡的装置。
存储装置可包括存储数据的存储器装置以及控制将数据存储在存储器装置中的存储器控制器。存储器装置可被分类成易失性存储器以及非易失性存储器。非易失性存储器的代表性示例可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。
发明内容
本公开的各种实施例涉及一种用于处理清除请求的存储器控制器以及该存储器控制器的操作方法。
本公开的实施例可提供一种用于控制多个存储器装置的存储器控制器。该存储器控制器可以包括命令处理器,被配置成响应于从外部主机输入的清除请求生成清除命令,并且分配与清除命令对应的槽编号;序列发生器,被配置成在写入高速缓存缓冲器中存储的多个写入数据之中确定清除数据,该清除数据是响应于清除命令将被存储的数据,并且基于清除数据的大小和多个存储器装置的分配的装置序列生成清除数据将被存储的写入序列;以及存储器操作控制器,被配置成控制多个存储器装置使得根据写入序列执行将清除数据存储在多个存储器装置中的编程操作并且将与清除命令对应的槽编号提供至命令处理器。
本公开的实施例可提供一种操作用于控制多个存储器装置的存储器控制器的方法。该方法可包括响应于从外部主机接收的清除请求生成清除命令,并且将槽编号分配至清除命令;确定清除数据,该清除数据是响应于清除命令将被存储在多个存储器装置中的数据;基于清除数据的大小和多个存储器装置的分配的装置序列生成清除数据将被存储的写入序列;并且控制多个存储器装置使得根据写入序列执行将清除数据存储在多个存储器装置中的编程操作。
本公开的实施例可提供一种存储器系统的操作方法。该方法可包括:响应于一个或多个请求,缓冲分别具有命令序列的一个或多个命令;缓冲写入数据;响应于清除请求,在缓冲的写入数据中识别清除数据;基于清除数据的大小来选择多个存储器装置中的一个或多个,存储器装置具有装置序列;并且控制所选择的存储器装置以响应于所缓冲的清除命令并根据装置序列对清除数据执行清除操作。
附图说明
图1是示出根据本公开的实施例的存储装置的框图。
图2是示出图1的存储器控制器和多个存储器装置之间的联接关系的示例的框图。
图3A和图3B是解释根据数据交织的编程操作和读取操作的时序图。
图4是示出在功能上划分图1的存储器控制器的配置的示例的示图。
图5是示出根据本公开的实施例的存储器控制器的配置的框图。
图6是解释图5的存储器控制器处理清除请求的方法的示图。
图7是示出根据本公开的实施例的操作存储器控制器的方法的流程图。
图8是示出图1的存储器装置的结构的示图。
图9是示出图8的存储器单元阵列的实施例的示图。
图10是示出图9的存储块BLK1至BLKz之中的任意一个存储块BLKa的电路图。
图11是示出图9的存储块BLK1至BLKz之中的任意一个存储块BLKb的示例的电路图。
图12是示出图1的存储器控制器的实施例的示图。
图13是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。
图14是示出应用根据本公开的实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
图15是示出应用根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
在这个说明书或应用中介绍的本公开的实施例的具体结构描述和/或功能描述仅用于描述本公开的实施例的目的。描述不应被解释为限于在说明书或应用中描述的实施例。
现在将基于本公开中描述的实施例更详细地描述本公开。然而,本公开可以许多不同的形式来实现,并且不应被解释为仅限于本文阐述的实施例,而是应被理解为涵盖落入本发明的构思和技术范围内的修改、等同方案或替代方案。描述的实施例不旨在将本公开限制于特定的实践模式,并且应当理解的是,不脱离本公开的精神和技术范围的所有改变、等同方案或替代方案都包含在本公开中。相反,提供描述的实施例使得本公开将是彻底的并且完整的,并且将本发明完全传达给本发明所属领域的技术人员。注意的是,对“实施例”的参考不一定仅指一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。
在整个说明书中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。
将理解的是,虽然术语“第一”和“第二”可以用于描述各种元件,但是这些元件不一定被理解为由上述术语限制。这些术语仅用于将一个元件与另一元件区分。例如,在不脱离本公开的教导的情况下,下面讨论的第一元件可以被称为第二元件。类似地,第二元件可以被称为第一元件。
将理解的是,当一个元件被称为“连接”或“联接”至另一元件时,它可以直接连接或联接至其它元件,或者在它们之间也可以存在中间元件。相反,应该理解的是,当一个元件被称为“直接连接”或“直接联接”至另一元件时,则不存在中间元件。同时,可以相同的方式理解诸如“在.....之间”、“直接在......之间”或“与......相邻”和“与......直接相邻”的解释元件之间的关系的其它表达。
本文使用的术语仅用于描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在说明书中使用时,“包括”或“具有”等术语指定陈述的特征、整数、操作、元件、组件或其组合的存在,但并不排除一个或多个其它特征、整数、操作、元件、组件或其组合的存在或添加。
除非另有定义,否则本文使用的包括技术或科学术语的全部术语具有本公开所属领域的技术人员通常理解的含义。将进一步理解的是,除非在本文中明确定义,否则本文使用的术语应该被理解为具有与本说明书的上下文和相关领域的含义一致的含义,并且将不以理想化或过于形式化的含义解释。也就是说,本文使用的术语仅用于描述特定实施例的目的,而不是要限制本发明。
如本文所用,除非上下文另有明确说明,否则单数形式也可包括复数形式,反之亦然。
将省略对本领域技术人员公知的功能和结构的详细描述,以避免使本公开的主题模糊。这旨在省略不必要的描述,以使本公开的主题清楚。
在下文中,现在将参照附图更全面地描述本公开的各种实施例,在附图中示出了本公开的优选实施例,使得本领域普通技术人员能够容易地实现本公开的技术思想。
图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)SRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式RAM(RRAM或ReRAM)、相变随机存取存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,为了方便起见,将在存储器装置100是NAND闪速存储器的假设情况下进行描述。
在实施例中,存储器装置100可以二维或三维(3D)阵列结构实施。本发明不但可以应用于电荷存储层由导电浮栅(FG)形成的闪速存储器装置,而且还可以应用于电荷存储层由绝缘层形成的电荷撷取闪存(CTF)。
在实施例中,包括在存储器装置100中的存储器单元中的每一个可以被实施为存储一个数据位的单层单元(SLC)。可选地,包括在存储器装置100中的存储器单元中的每一个可以被实施为存储两个数据位的多层单元(MLC)、存储三个数据位的三层单元(TLC)或存储四个数据位的四层单元(QLC)。
存储器装置100可从存储器控制器200接收命令和地址且可访问存储器单元阵列中由地址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行与命令对应的操作。例如,存储器装置100可以执行写入操作(即,编程操作)、读取操作以及擦除操作。在编程操作中,存储器装置100可将数据编程到由地址选择的区域。在读取操作中,存储器装置100可从由地址选择的区域读取数据。在擦除操作中,存储器装置100可擦除存储在由地址选择的区域中的数据。
存储器控制器200可控制存储装置50的全部操作。
当电力被供应至存储装置50时,存储器控制器200可运行固件(FW)。当存储器装置100是闪速存储器装置时,存储器控制器200可运行用于控制主机400和存储器装置100之间的通信的诸如闪存转换层(FTL)的FW。
在实施例中,存储器控制器200可从主机400接收数据和逻辑块地址(LBA),并且可将逻辑块地址LBA转换为物理块地址(PBA),该物理块地址表示存储数据且被包括在存储器装置100中的存储器单元的地址。此外,存储器控制器200可将逻辑-物理地址映射表存储在缓冲存储器300中,该逻辑-物理地址映射表配置逻辑块地址(LBA)和物理块地址(PBA)之间的映射关系。
存储器控制器200可控制存储器装置100以响应于从主机400接收的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可将编程命令、物理块地址(PBA)和数据提供至存储器装置100。在读取操作期间,存储器控制器200可将读取命令和物理块地址(PBA)提供至存储器装置100。在擦除操作期间,存储器控制器200可将擦除命令和物理块地址(PBA)提供至存储器装置100。
在实施例中,存储器控制器200可在从主机400未接收到请求的情况下自主地生成编程命令、地址和数据,并且可将生成的命令、地址和数据提供至存储器装置100。例如,存储器控制器200可将命令、地址和数据提供至存储器装置100,以执行诸如磨损均衡操作和垃圾收集操作的后台操作。
在实施例中,存储器控制器200可控制主机400和缓冲存储器300之间的数据交换。可选地,存储器控制器200可将用于控制存储器装置100的系统数据临时存储在缓冲存储器300中。例如,存储器控制器200可将从主机400输入的数据临时存储在缓冲存储器300中,然后将临时存储在缓冲存储器300中的数据传输至存储器装置100。
在各种实施例中,缓冲存储器300可用作存储器控制器200的工作存储器或高速缓冲存储器。缓冲存储器300可存储由存储器控制器200运行的代码或命令。可选地,缓冲存储器300可存储由存储器控制器200处理的数据。
通过示例而非限制的方式,在实施例中,缓冲存储器300可被实施为诸如双倍数据速率同步动态随机存取存储器DRAM(DDR SDRAM)、低功率双倍数据速率第4代(LPDDR4)SDRAM、图形双数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM或Rambus DRAM(RDRAM)的动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。
虽然本公开的图1示出缓冲存储器300包括在存储装置50中,但是本公开不限于此。例如,在各种实施例中,存储装置50可不包括缓冲存储器300。如果存储装置50不包括缓冲存储器300,则设置在存储装置50外部的易失性存储器装置可以用作缓冲存储器300。
在实施例中,存储器控制器200可控制至少两个存储器装置100。在这种情况下,存储器控制器200可以交织方式控制存储器装置100,以便提高操作性能。
主机400可使用诸如下列的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe或PCI-e)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
根据作为与主机400的通信方案的主机接口,存储装置50可被实施为各种类型的存储装置中的任意一种。通过示例而非限制的方式,存储装置50可被实施为诸如下列的各种类型存储器系统中的任意一种:固态硬盘(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储卡国际协会(PCMCIA)卡型存储装置、外围组件互连(PCI)卡型存储装置、高速PCI(PCI-e或PCIe)卡型存储装置、紧凑型闪存(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可同时执行它们自己的内部操作。
使用多个存储器装置例如存储器装置_00至存储器装置_33的存储装置可通过利用作为使用交织方案的数据通信的数据交织来提高性能。数据交织可被配置成在两种或更多种通路共享单个通道的结构中移动至通路(例如WAY0至WAY3)时执行数据读取操作或写入操作。对于数据交织,可以通路和通道为单位管理存储器装置(可以与通道一起基于通路来管理存储器装置)。为了使与每个通道联接的存储器装置的并行性最大化,存储器控制器200可将连续的逻辑存储器区域分发并分配给通道和通路。
例如,存储器控制器200可以通过通道0CH0将命令、包括地址的控制信号和数据传输至存储器装置_00。当存储器装置_00正在将接收的数据编程在该存储器装置_00中的存储器单元时,存储器控制器200可执行将命令、包括地址的控制信号和数据传输至存储器装置_01的操作。
在图2中,多个存储器装置可使用四个通路WAY0至WAY3来配置。第一通路WAY0可包括存储器装置_00、存储器装置_10、存储器装置_20和存储器装置_30。第二通路WAY1包括存储器装置_01、存储器装置_11、存储器装置_21和存储器装置_31。第三通路WAY2包括存储器装置_02、存储器装置_12、存储器装置_22和存储器装置_32。第四通路WAY3包括存储器装置_03、存储器装置_13、存储器装置_23和存储器装置_33。
通道CH0至CH3中的每一个可以是由与相应通道联接的存储器装置共享和使用的信号的总线。
虽然图2示出了4-通道/4-通路结构的数据交织,但是当通道的数量和通路的数量增加时,数据交织可能更高效。
图3A和图3B是解释根据数据交织的编程操作和读取操作的时序图。具体地,图3A是解释编程操作的示图,而图3B是解释读取操作的示图。在图3A和图3B中,为方便描述,假设对共同地联接至图2的通道0CH0的存储器装置_00至存储器装置_03执行图3A中所示的编程操作以及图3B中所示的读取操作。
参照图3A,在从t0至t1的时段期间,可对存储器装置_00执行数据输入DIN#00。当正在执行数据输入DIN#00时,存储器装置_00可通过通道0CH0接收编程命令、地址和数据。由于存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同地联接至通道0CH0,因此当正在对存储器装置_00执行数据输入DIN#00时,其余存储器装置,即存储器装置_01、存储器装置_02和存储器装置_03不能使用通道0CH0。
在从t1至t2的时段期间,可对存储器装置_01执行数据输入DIN#01。当正在执行数据输入DIN#01时,存储器装置_01可通过通道0CH0接收编程命令、地址和数据。由于存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同地联接至通道0CH0,因此当正在对存储器装置_01执行数据输入DIN#01时,其余存储器装置,即存储器装置_00、存储器装置_02和存储器装置_03不能使用通道0CH0。然而,由于存储器装置_00在从t0至t1的时段期间接收数据(数据输入DIN#00),因此可从t1对存储器装置_00执行编程操作tPROG#00。
在从t2至t3的时段期间,可对存储器装置_02执行数据输入DIN#02。当正在执行数据输入DIN#02时,存储器装置_02可通过通道0CH0接收编程命令、地址和数据。由于存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同地联接至通道0CH0,因此当正在对存储器装置_02执行数据输入DIN#02时,其余存储器装置,即存储器装置_00、存储器装置_01和存储器装置_03不能使用通道0CH0。然而,由于存储器装置_00在从t0至t1的时段期间接收数据(数据输入DIN#00),因此可从t1对存储器装置_00执行编程操作tPROG#00。另外,由于存储器装置_01在从t1至t2的时段期间接收数据(数据输入DIN#01),因此可从t2对存储器装置_01执行编程操作tPROG#01。
在从t3至t4的时段期间,可对存储器装置_03执行数据输入DIN#03。当正在执行数据输入DIN#03时,存储器装置_03可通过通道0CH0接收编程命令、地址和数据。由于存储器装置_00、存储器装置_01、存储器装置_02和存储器装置_03共同地联接至通道0CH0,因此当正在对存储器装置_03执行数据输入DIN#03时,其余存储器装置,即存储器装置_00、存储器装置_01和存储器装置_02不能使用通道0CH0。然而,由于存储器装置_00在从t0至t1的时段期间接收数据(数据输入DIN#00),因此可从t1对存储器装置_00执行编程操作tPROG#00。此外,由于存储器装置_01在从t1至t2的时段期间接收数据(数据输入DIN#01),因此可从t2对存储器装置_01执行编程操作tPROG#01。此外,由于存储器装置_02在从t2至t3的时段期间接收到数据(数据输入DIN#02),因此可从t3对存储器装置_02执行编程操作tPROG#02。
在t4时,对存储器装置_00执行的编程操作tPRO#00可以完成。
随后,在从t4至t8的时段期间,可以与在t0至t4的时段期间对存储器装置_00至存储器装置_03执行的方式相同的方式对存储器装置_00至存储器装置_03执行数据输入DIN#00、DIN#01、DIN#02和DIN#03。
参照图3B,在从t'0至t'2的时段期间,存储器装置_00至存储器装置_03可在内部读取与特定地址对应的数据(表示为tR#00、tR#01、tR#02以及tR#03)。在实施例中,存储器装置_00至存储器装置_03可以逐页面读取数据。存储器装置_00可在t'0至t'1的时段期间读取数据(表示为tR#00),并且可在从t'1至t'3的时段期间通过通道0CH0将读取的数据输出至存储器控制器(表示为DOUT#00)。
由于在从t'1至t'3的时段期间,存储器装置_00通过通道0CH0输出数据(DOUT#00),因此存储器装置_01、存储器装置_02和存储器装置_03不能使用通道0CH0。
在从t'3至t'4的时段期间,存储器装置_01可通过通道0CH0将读取的数据输出到存储器控制器(表示为DOUT#01)。由于在从t'3至时间t'4的时段期间,存储器装置_01通过通道0CH0输出数据(DOUT#01),所以存储器装置_00、存储器装置_02和存储器装置_03不能使用通道0CH0。
在从t'4至t'5的时段期间,存储器装置_02可通过通道0CH0将读取的数据输出到存储器控制器(表示为DOUT#02)。由于在从t'4至t'5的时段期间,存储器装置_02通过通道0CH0输出数据(DOUT#02),因此存储器装置_00、存储器装置_01和存储器装置_03不能使用通道0CH0。
在从t'5至t'6的时段期间,存储器装置_03可通过通道0CH0将读取的数据输出到存储器控制器200(表示为DOUT#03)。由于在从t'5至t'6的时段期间,存储器装置_03通过通道0CH0输出数据(DOUT#03),因此存储器装置_00、存储器装置_01和存储器装置_02不能使用通道0CH0。
图4是示出在功能上划分图1的存储器控制器例如图1的存储器控制器200的配置的示例的示图。
参照图4,存储器控制器200可包括闪存转换器201、主机控制器202以及闪存控制器203。在图4中,将通过示例的方式描述存储器控制器200控制闪速存储器装置的情况。也就是说,如上参照图1描述的存储器装置100可以是闪速存储器装置。
存储器控制器200可在功能上被划分为三层。详细地,存储器控制器200可被划分为用于管理与主机的接口的主机接口层(下文中被称为“HIL”)、用于管理与闪速存储器装置接口的闪存接口层(以下被称为“FIL”)以及用于管理两层之间的转换的闪存转换层(以下被称为“FTL”)。
存储器控制器200可运行用于控制存储器装置100的操作的固件(FW)。在实施例中,由存储器装置运行的固件(FW)可被划分成与HIL、FTL和FIL分别对应的多个固件,HIL、FTL和FIL可与指定那些固件的术语互换使用。
HIL可被实施为主机控制器202。主机控制器202可与主机通信。主机控制器202可使用诸如下列的各种通信方法中的至少一种与主机通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe或PCI-e)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式内存模块(DIMM)、寄存式DIMM(RDIMM)以及低负荷DIMM(LRDIMM)通信方法。主机控制器202可将从主机接收的请求提供至闪存转换器201。主机控制器202可将从主机接收的请求的执行结果提供至主机。在实施例中,主机控制器202可使用硬件来实施。
FTL可以是执行用于控制主机和闪速存储器装置之间的通信的全部操作的固件。FTL可被实施为闪存转换器201。
闪存转换器201可将包括在来自主机(例如,图1的主机400)的每个请求中的逻辑地址转换为物理地址。在实施例中,物理地址可以是指示包括在闪速存储器装置中的特定存储器区域的地址。
在实施例中,闪存转换器201可以控制磨损均衡的操作。例如,闪存转换器201可管理包括在闪速存储器装置中的存储块的磨损级别。闪速存储器装置的存储器单元可能由于对存储块执行的编程操作和擦除操作而老化。老化或磨损的存储器单元可能导致故障(例如,物理故障)。因此,闪存转换器201可管理磨损均衡,使得各个存储块的擦除-写入周期均等,以便防止闪速存储器装置的特定存储块比其它存储块更早磨损。
在实施例中,闪存转换器201可控制用于垃圾收集的操作。垃圾收集可以是将分别包括在多个存储块中的多个有效数据收集在具有相同地址的存储块中以便保证可用空闲块的后台操作。
FIL可被实施为闪存控制器203。闪存控制器203可与每个闪速存储器装置通信。在实施例中,闪存控制器203可通过与NAND闪速存储器和NOR闪速存储器中的任何一个对应的通信接口与闪速存储器装置通信。闪存控制器203可将与从闪存转换器201接收的请求对应的命令提供至闪速存储器装置。闪存控制器203可接收由闪速存储器装置执行的命令的结果。闪存控制器203可使用硬件来实施。
图5是示出根据本公开的实施例的存储器控制器例如图1的存储器控制器200的配置的框图。
图6是解释图5的存储器控制器200处理清除请求的方法的示图。
参照图5和图6,存储器控制器200可包括命令处理器210、序列发生器220、写入高速缓存缓冲器230以及存储器操作控制器240。
命令处理器210可通过上面参照图4描述的主机控制器202从主机(例如,图1的主机400)接收请求,并且可生成与接收到的请求对应的命令。命令处理器210可针对生成的命令分配槽编号,并且将分配槽编号的命令存储在包含其中的命令存储装置211中。
当从主机输入的请求是写入请求时,命令处理器210可将写入命令和槽编号存储在命令存储装置211中。
写入高速缓存缓冲器230可临时存储从主机与写入请求一起输入的写入数据。当从命令处理器210向序列发生器220输入清除命令时,存储在写入高速缓存缓冲器230中的写入数据可存储在存储器装置DIE1至DIE8中。
命令处理器210可从主机接收清除请求。清除请求可以是命令临时存储在写入高速缓存缓冲器230中的数据存储在存储器装置DIE1至DIE8中的请求。
当清除请求被输入时,命令处理器210可以生成清除命令,将槽编号分配至清除命令、并且然后将分配槽编号的清除命令存储在命令存储装置211中。
在图6中,假设从主机向存储器控制器200提供与槽编号1至槽编号5对应的写入请求,之后从主机输入清除请求。命令处理器210可将槽编号6分配至清除命令,然后可将分配槽编号6的清除命令存储在命令存储装置211中。
写入高速缓存缓冲器230可利用分配的逻辑块地址存储与分配的槽编号1至槽编号5的写入请求分别对应的多个写入数据。例如,与针对槽编号1的写入请求对应的写入数据是DATA1,并且具有8KB的大小。例如,与针对槽编号2的写入请求对应的写入数据是DATA2,并且具有16KB的大小。例如,与针对槽编号3的写入请求对应的写入数据是DATA3,并且具有24KB的大小。例如,与针对槽编号4的写入请求对应的写入数据是DATA4,并且具有8KB的大小。例如,与针对槽编号5的写入请求对应的写入数据是DATA5,并且具有16KB的大小。
命令处理器210可以将清除命令的槽编号(例如,槽编号6)提供至序列发生器220。
序列发生器220可在存储在写入高速缓存缓冲器230中的多个写入数据之中确定清除数据,该清除数据是响应于清除命令待存储在存储器装置DIE1至DIE8中的数据。
具有槽编号6的清除命令可以是用于指示与具有槽编号1至槽编号5的写入命令对应的多个写入数据存储在存储器装置中的命令。因此,在写入高速缓存缓冲器230中存储的多个数据之中与具有槽编号1至槽编号5的写入命令对应的数据可被确定为清除数据。
在图5中,为了便于描述,假设存储器控制器200控制与第一至第八管芯DIE1至DIE8对应的存储器装置。第一至第四管芯DIE1至DIE4共同联接至通道1CH1,并且第五至第八管芯DIE5至DIE8共同联接至通道2CH2。
序列发生器220可基于存储在其中的装置序列信息221生成清除数据将被存储在存储器装置中的写入序列。例如,序列发生器220可基于装置序列信息221生成清除数据将被存储在存储器装置中的写入序列。装置序列信息221可包括存储器装置DIE1至DIE8存储清除数据的序列SECQ。存储器控制器200可根据装置序列选择存储器装置DIE1至DIE8,并控制选择的存储器装置以对清除数据执行写入操作。
序列发生器220可生成清除数据将被存储在第一至第八管芯DIE1至DIE8中的写入序列。序列发生器220可基于清除数据的大小和存储器装置的装置序列来确定指示根据写入序列最后存储清除数据的存储器装置的最后装置序列SEQC#。
返回参照图6,清除数据可具有72KB的数据大小。假设数据被存储在单个存储器装置中的编程单元是页面,并且该页面具有8KB的大小。然后,清除数据可以存储在各个存储器装置DIE1至DIE8中的总共九个页面中,并且当假设清除数据首先存储在作为装置序列中的第一个的第一存储器装置DIE1中时,指示最后存储清除数据的存储器装置的最后装置序列SEQC#是9。在由于写入序列,清除数据首先存储在除第一存储器装置DIE1之外的存储器装置中的情况下,最后装置序列SEQC#也可参考首先存储清除数据的存储器装置来改变。例如,当由于写入序列,清除数据首先存储在第五存储器装置DIE5中时,最后装置序列SEQC#可以是13,因此第五存储器装置DIE5也可以是最后存储清除数据的存储器装置。
也就是说,可以确定用于处理与各个写入命令对应的多个清除数据的装置序列(图6中的“所需SEQ”)的大小,并且针对清除命令的最后装置序列SEQC#(例如,9)可以是通过将针对具有与多个清除数据对应的槽编号1至槽编号5的各个写入命令的装置序列的大小求和而获得的值。最后装置序列SEQC#是9,因此可以看出当假设清除数据首先存储在作为装置序列中的第一个的第一存储器装置DIE1中时,根据装置序列信息221,最后存储数据的存储器装置是管芯#1DIE1。例如,当清除数据首先存储在第五存储器装置DIE5中时,最后装置序列SEQC#可以是13。
序列发生器220可以将最后装置序列SEQC#和清除命令的槽编号Slot#提供至存储器操作控制器240。
存储器操作控制器240可将多个清除数据顺序地存储在存储器装置DIE1至DIE8中,直到根据写入序列对与最后装置序列SEQC#对应的存储器装置执行写入操作为止。
当对与最后装置序列SEQC#对应的存储器装置执行写入操作时,存储器操作控制器240可为命令处理器210提供写入操作已经完成的清除命令的槽编号作为对清除命令的响应。
命令处理器210可根据已经完成操作的清除命令的槽编号,为主机提供处理清除请求的结果。
当序列发生器220和存储器操作控制器240响应于清除命令将清除数据存储在存储器装置DIE1至DIE8中时,可以输入写请求。由于在正输入清除命令时,传统存储器控制器执行停止将数据存储在写入高速缓存缓冲器230中的阻挡操作,因此已经发生性能的劣化。
然而,根据本公开的实施例,当存储器操作控制器240响应于清除命令使用装置序列将清除数据存储在存储器装置DIE1至DIE8中时,命令处理器210可以继续生成用于随后输入写入请求的命令,并且可以将生成的命令存储在命令存储装置211中。此外,由于根据清除命令以及在清除命令之前的写入命令的槽编号已经确定了作为响应于清除命令而待处理的数据的清除数据,因此,随后待输入的写入数据也可存储在写入高速缓存缓冲器230中。
在图5中,存储器操作控制器240可包括在如上参照图4所述的闪存控制器203中。在实施例中,命令处理器210和序列发生器220可包括在上面参照图4描述的闪存转换层(FTL)中。因此,根据本公开的实施例,FTL可不参与响应于清除命令而执行的写入操作,因此存储器控制器200不会响应于清除命令的输入执行停止将数据输入到写入高速缓存缓冲器中的阻挡操作。
图7是示出根据本公开的实施例的操作存储器控制器例如图1、图4和图5的存储器控制器200的方法的流程图。在描述操作存储器控制器200的方法时,将参照图1、图4和图5。
参照图7,在步骤S701,主机控制器202(在图7中表示为“HCT202”)可以从外部主机(例如,图1的主机400)接收清除请求。
在步骤S703,主机控制器202可响应于从外部主机接收的清除请求生成清除命令,并且可将槽编号分配至生成的清除命令。
主机控制器202可将已经输入了清除命令的指示传送至闪存转换器201。
在步骤S705,闪存转换器201可在存储在写入高速缓存缓冲器中的多个写入数据之中确定清除数据,该清除数据是响应于清除命令待存储在存储器装置中的写入数据。
在步骤S707,闪存转换器201可将装置序列分配至各个写入请求,并且可根据装置序列确定最后装置序列SEQC#。
在步骤S709中,闪存转换器201可将清除命令的槽编号和最后装置序列SEQC#提供至闪存控制器203(在图7中表示为“FCT 203”)。
在步骤S711中,闪存控制器203可控制多个存储器装置,使得清除数据根据输入的清除命令的槽编号和最后装置序列SEQC#被编程到多个存储器装置。
在步骤S713中,闪存控制器203可为主机控制器202提供编程操作已经完成的指示。闪存控制器203可为主机控制器202提供完成清除命令的槽编号。
在步骤S715中,主机控制器202可为外部主机提供指示清除请求已经执行完成的清除响应。
图8是示出存储器装置例如图1的存储器装置100的配置的示图。
参照图8,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110可包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接至地址解码器121。存储块BLK1至BLKz通过位线BL1至BLm联接至读取和写入电路123。存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元。在多个存储器单元中,联接至相同字线的存储器单元被定义为单个页面。也就是说,存储器单元阵列110由多个页面组成。在实施例中,包括在存储器单元阵列110中的多个存储块BLK1至BLKz中的每一个可包括多个虚拟单元。作为虚拟单元,一个或多个虚拟单元可以串联联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
存储器单元阵列110中的存储器单元中的每一个可被实施为能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
外围电路120可包括地址解码器121、电压发生器122、读取和写入电路123、以及数据输入/输出电路124。
外围电路120可驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110从而执行编程操作、读取操作以及擦除操作。
地址解码器121通过行线RL联接至存储器单元阵列。行线RL可包括漏极选择线、字线、源极选择线以及共源线。在实施例中,字线可包括普通字线和虚拟字线。在实施例中,行线RL可以进一步包括管道选择线。
地址解码器121被配置成在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收行地址ADDR。
地址解码器121被配置成解码接收的地址ADDR的块地址。地址解码器121响应于解码的块地址选择存储块BLK1至BLKz中的至少一个存储块。地址解码器121被配置成解码接收的地址ADDR的行地址。地址解码器121可通过响应于解码的行地址将由电压发生器122提供的电压施加到至少一个字线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包括用于接收内部电源电压的多个泵电容器,并且可在控制逻辑130的控制下通过选择性地激活泵电容器来生成多个电压。
生成的电压可通过地址解码器121被供应至存储器单元阵列110。
读取和写入电路123可包括第一至第m页面缓冲器PB1至PBm页面缓冲器。第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm联接至存储器单元阵列110。第一至第m页面缓冲器PB1至PBm在控制逻辑130的控制下操作。
第一至第m页面缓冲器PB1至PBm与数据输入/输出电路124进行数据通信。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲施加到每个选择的字线时,第一至第m页面缓冲器PB1至PBm可以将通过输入/输出电路125接收的数据DATA传送至选择的存储器单元。根据传送的数据DATA对选择的页面中的存储器单元进行编程。与施加有编程允许电压(例如,接地电压)的位线联接的存储器单元可具有增加的阈值电压。可以保持与施加有编程禁止电压(例如,电源电压)的位线联接的存储器单元的阈值电压。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可通过位线BL1至BLm从选择的存储器单元读取页面数据。
在读取操作期间,读取和写入电路123可通过位线BL从选择的页面中的存储器单元读取数据DATA,并且可将读取的数据DATA输出至数据输入/输出电路124。
在擦除操作期间,读取和写入电路123可使位线BL浮置。在实施例中,读取和写入电路123可包括列选择电路。
数据输入/输出电路124通过数据线DL联接至第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124在控制逻辑130的控制下操作。
数据输入/输出电路124可包括用于接收输入数据的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124将从包括在读取和写入电路123中的第一至第m页面缓冲器PB1至PBm接收的数据输出至外部控制器。
控制逻辑130可联接至地址解码器121、电压发生器122、读取和写入电路123以及数据输入/输出电路124。控制逻辑130可控制存储器装置100的全部操作。控制逻辑130可响应于从外部装置接收的命令CMD而操作。
图9是示出图8的存储器单元阵列110的实施例的示图。
参照图9,存储器单元阵列110可包括多个存储块BLK1至BLKz。每个存储块可具有二维或三维(3D)结构。在图9中所述的实施例中,描述了三维结构。当存储块具有3D结构时,每个存储块包括堆叠在衬底上的多个存储器单元。这种存储器单元沿正(+)X方向、正(+)Y方向和正(+)Z方向布置。下面将参照图10和图11更详细地描述每个存储块的结构。
图10是示出存储块BLKa的电路图。存储块BLKa可对应于图9的存储块BLK1至BLKz之中的任意一个。
参照图10,存储块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,多个单元串CS11至CS1m和CS21至CS2m中的每一个可形成为“U”型。在存储块BLKa中,m个单元串布置在行方向(即正(+)X方向)。在图10中,示出在列方向(即正(+)Y)布置两个单元串。然而,这个图示仅是为了清楚;将理解的是,可以在列方向布置三个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可分别具有类似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可为每个单元串设置用于提供沟道层的柱(pillar)。在实施例中,可在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在同一行中的单元串的源极选择晶体管联接至在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接至不同的源极选择线。在图10中,第一行中的单元串CS11至CS1m的源极选择晶体管联接至第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接至第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同地联接至单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp以及第(p+1)至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地布置在与正(+)Z方向相反的方向上,并且串联连接在源极选择晶体管SST和管道晶体管PT之间。第(p+1)至第n存储器单元MCp+1至MCn顺序地布置在+Z方向上,并且串联连接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn通过管道晶体管PT联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接至第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接至管线PL。
每个单元串的漏极选择晶体管DST连接在相应位线与存储器单元MCp+1至MCn之间。在行方向上的单元串联接至在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接至第二漏极选择线DSL2。
布置在列方向上的单元串联接至在列方向上延伸的位线。在图10中,第一列中的单元串CS11和CS21联接至第一位线BL1。第m列中的单元串CS1m和CS2m联接至第m位线BLm。
布置在行方向上的单元串中、联接至相同字线的存储器单元构成单个页面。例如,在第一行中的单元串CS11至CS1m中,联接至第一字线WL1的存储器单元构成单个页面。在第二行中的单元串CS21至CS2m中,联接至第一字线WL1的存储器单元构成单个附加页面。在单个行方向上布置的单元串可通过选择漏极选择线DSL1和DSL2中的任意一个来选择。可通过选择字线WL1至WLn中的任意一个来在选择的单元串中选择单个页面。
在实施例中,可设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。此外,布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中,偶数编号的单元串可以分别联接至偶数位线,且布置在行方向上的单元串CS11至CS1m或CS21至CS2m之中,奇数编号的单元串可以分别联接至奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚拟存储器单元。例如,可设置一个或多个虚拟存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCp之间的电场。可选地,可以设置一个或多个虚拟存储器单元以减小漏极选择晶体管DST和存储器单元MCp+1至MCn之间的电场。当设置更多的虚拟存储器单元时,存储块BLKa的操作可靠性提高,但是,存储块BLKa的大小增大。当设置更少的虚拟存储器单元时,存储块BLKa的大小减小,但是,存储块BLKa的操作可靠性可能劣化。
为了有效地控制一个或多个虚拟存储器单元,虚拟存储器单元中的每一个可具有所需的阈值电压。在对存储块BLKa执行擦除操作之前或之后,可以对全部或一些虚拟存储器单元执行编程操作。在编程操作已经执行之后执行擦除操作时,虚拟存储器单元的阈值电压控制施加到与各自的虚拟存储器单元联接的虚拟字线的电压,因此虚拟存储器单元可以具有所需的阈值电压。
图11是示出存储块BLKb的电路图。存储块BLKb可对应于图9的存储块BLK1至BLKz之中的任意一个。
参照图11,存储块BLKb包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个沿正(+)Z方向延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括堆叠在衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST,其中该衬底设置在存储块BLKb的下方。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCn之间。布置在同一行中的单元串的源极选择晶体管联接至相同的源极选择线。布置在第一行中的单元串CS11'至CS1m'的源极选择晶体管联接至第一源极选择线SSL1。布置在第二行中的单元串CS21'至CS2m'的源极选择晶体管联接至第二源极选择线SSL2。在实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同地联接至单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接至第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST连接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接至在行方向上延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管联接至第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管联接至第二漏极选择线DSL2。
因此,图11的存储块BLKb可具有与图10的存储块BLKa的电路类似的电路,除了管道晶体管PT不包括在图11的存储块BLKb的每个单元串中。
在实施例中,可设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。另外,布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可以分别联接至偶数位线,并且布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可以分别联接至奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚拟存储器单元。例如,设置一个或多个虚拟存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCn之间的电场。可选地,可设置一个或多个虚拟存储器单元以减小漏极选择晶体管DST和存储器单元MC1至MCn之间的电场。当设置更多的虚拟存储器单元时,存储块BLKb的操作可靠性提高,但是,存储块BLKb的大小增大。当设置更少的虚拟存储器单元时,存储块BLKb的大小减小,但是,存储块BLKb的操作可靠性可能劣化。
为了有效地控制虚拟存储器单元,虚拟存储器单元可具有所需的阈值电压。在对存储块BLKb执行擦除操作之前或之后,可以对全部或一些虚拟存储器单元执行编程操作。在编程操作已经执行之后执行擦除操作时,虚拟存储器单元的阈值电压控制施加到与各自的虚拟存储器单元联接的虚拟字线的电压,因此虚拟存储器单元可以具有所需的阈值电压。
图12是示出图1的存储器控制器200的实施例的示图。
存储器控制器1000联接至主机和存储器装置。响应于来自主机的请求,存储器控制器1000可访问存储器装置。例如,存储器控制器1000可被配置为控制存储器装置的读取操作、编程操作、擦除操作和后台操作。存储器控制器1000可提供存储器装置和主机之间的接口连接。存储器控制器1000可运行用于控制存储器装置的固件。
参照图12,存储器控制器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可使从存储器装置接收的数据去随机化。例如,处理器1010可使用去随机化种子使从存储器装置接收的数据去随机化。去随机化数据可被输出至主机。
在实施例中,处理器1010可运行软件或固件来执行随机化操作和去随机化操作。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓冲存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC组件1030可执行错误校正。ECC组件1030可对通过存储器接口1060待写入至存储器装置的数据执行错误校正码(ECC)编码。ECC编码的数据可通过存储器接口1060被传送至存储器装置。ECC组件1030可基于通过存储器接口1060从存储器装置接收的数据执行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)通信方法。在实施例中,主机接口1040可以被包括在主机控制器202中,如图4所示。
缓冲器控制电路1050可在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道将命令、地址和数据传输至存储器装置/从存储器装置接收命令、地址和数据。在实施例中,存储器接口1060可包括在如上参照图4描述的闪存控制器203中。
在实施例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。
在实施例中,处理器1010可使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可被划分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线可彼此分离,并且可以不相互干扰或影响。数据总线可以联接至主机接口1040、缓冲器控制电路1050、ECC组件1030和存储器接口1060。控制总线可以联接至主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图13是示出应用根据本公开的实施例的存储装置的存储卡系统的框图。
参照图13,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接至存储器装置2200。存储器控制器2100可访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可提供存储器装置2200和主机之间的接口连接。存储器控制器2100可运行用于控制存储器装置2200的固件。存储器装置2200可以与参照图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(EPROM)、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)。
图14是示出应用根据本公开的实施例的存储装置的固态硬盘(SSD)系统的示例的框图。
参照图14,SSD系统3000可包括主机3100和SSD 3200。SSD3200可通过信号连接器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与SSD 3200之间的接口的信号。例如,信号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并且可以被充电。当来自主机3100的电力供应不平稳时,辅助电源3230可以供应SSD3200的电力。在实施例中,辅助电源3230可设置在SSD 3200中,或者设置在SSD 3200的外部。例如,辅助电源3230可被设置在主板上,并且可将辅助电力供应至SSD3200。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和GRAM的易失性存储器或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图15是示出应用根据本公开的实施例的存储装置的用户系统的框图。
参照图15,用户系统4000可包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可以被提供为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器。存储器模块4200可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRM、DDR3SDRAM、LPDDR SDRAM和LPDDR3SDRAM的易失性RAM或诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可基于堆叠式封装(PoP)来封装并且然后被提供为单个半导体封装。
网络模块4300可与外部装置通信。例如,网络模块4300可支持诸如下列的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和无线通信。在实施例中,网络模块4300可被包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将存储在存储模块4400中的数据传输至应用处理器4100。在实施例中,存储模块4400可被实施为诸如下列的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被提供为诸如存储卡的可移动存储介质(即可移动驱动器)或用户系统4000的外部驱动器。
在实施例中,存储模块4400可包括多个非易失性存储器装置,多个非易失性存储器装置中的每一个可以与参照图8至图11描述的存储器装置的方式相同的方式操作。存储模块4400可以与参照图1描述的存储装置50的方式相同的方式操作。
用户接口4500可包括用于将数据或命令输入至应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置的用户输入接口。用户接口4500可进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机的用户输出接口。
根据本发明公开,提供了一种用于处理清除请求的存储器控制器以及该存储器控制器的操作方法。
虽然为了示出的目的,已经公开了本公开的示例性实施例,但是本领域技术人员将理解的是,可以进行各种改变、添加和替代。因此本公开的范围必须由所附权利要求书以及权利要求书的等同方案来限定而不是由权利要求书之前的描述来限定。
虽然已经公开了本公开的实施例,但是本领域技术人员将理解的是,在不脱离本公开的范围和精神的情况下可以进行各种改变、添加和替代。
因此本公开的范围必须由所附权利要求书以及权利要求书的等同方案来限定而不是由权利要求书之前的描述来限定。
在上述实施例中,可以选择性地执行或者跳过全部步骤。另外,在每个实施例中的步骤不一定按照所描述的顺序执行,而是可以随机执行。此外,本说明书和附图中公开的实施例仅是为了帮助本领域的普通技术人员更清楚地理解本公开,而并不旨在限制本公开的界线。换言之,本公开所属领域的普通技术人员能够容易理解的是,可以基于本发明公开的技术范围进行各种修改。
已经参照附图描述了本公开的实施例,并且应当根据本公开的精神解释在说明书中使用的特定术语或词语,而不限制其主题。应当理解的是,本文描述的基本发明构思的许多变化和修改仍将落入所附权利要求书及其等同方案中限定的本公开的精神和范围内。

Claims (13)

1.一种用于控制多个存储器装置的存储器控制器,包括:
命令处理器,响应于从外部主机输入的清除请求生成清除命令,并且分配与所述清除命令对应的槽编号;
序列发生器,在写入高速缓存缓冲器中存储的多个写入数据之中确定清除数据,所述清除数据是响应于所述清除命令将被存储的数据,并且基于所述清除数据的大小和所述多个存储器装置的分配的装置序列生成所述清除数据将被存储的写入序列;以及
存储器操作控制器,控制所述多个存储器装置使得根据所述写入序列执行将所述清除数据存储在所述多个存储器装置中的编程操作并且将与所述清除命令对应的所述槽编号提供至所述命令处理器,
其中所述序列发生器确定最后装置序列,所述最后装置序列是基于所述写入序列最后存储数据的存储器装置的装置序列。
2.根据权利要求1所述的存储器控制器,其中在所述编程操作正在被执行时,所述命令处理器将与输入的写入请求对应的数据存储在所述写入高速缓存缓冲器中。
3.根据权利要求1所述的存储器控制器,其中所述命令处理器生成与从所述外部主机输入的写入请求对应的写入命令,将槽编号分配至所述写入命令,并且存储分配所述槽编号的所述写入命令。
4.根据权利要求3所述的存储器控制器,其中所述命令处理器包括命令存储装置,所述命令存储装置存储所述写入命令以及所述槽编号。
5.根据权利要求1所述的存储器控制器,其中所述清除请求是将与先前输入的写入请求对应的数据存储在所述多个存储器装置中的请求。
6.根据权利要求1所述的存储器控制器,其中所述写入高速缓存缓冲器是静态随机存取存储器,即SRAM。
7.根据权利要求1所述的存储器控制器,其中所述序列发生器包括多条装置序列信息,所述多条装置序列信息是所述多个存储器装置的分配的装置序列。
8.根据权利要求1所述的存储器控制器,其中所述存储器操作控制器将所述清除数据存储在所述多个存储器装置中,直到对与所述最后装置序列对应的存储器装置执行所述编程操作为止。
9.根据权利要求1所述的存储器控制器,其中当从所述存储器操作控制器接收到与所述清除命令对应的所述槽编号时,所述命令处理器将处理所述清除请求的结果提供至所述外部主机。
10.根据权利要求1所述的存储器控制器,其中使用数据交织方案执行所述编程操作。
11.一种操作存储器控制器的方法,所述存储器控制器控制多个存储器装置,所述方法包括:
响应于从外部主机接收的清除请求生成清除命令,并且将槽编号分配至所述清除命令;
确定清除数据,所述清除数据是响应于所述清除命令将被存储在所述多个存储器装置中的数据;
基于所述清除数据的大小和所述多个存储器装置的分配的装置序列生成所述清除数据将被存储的写入序列;并且
控制所述多个存储器装置使得根据所述写入序列执行将所述清除数据存储在所述多个存储器装置中的编程操作,
其中生成所述写入序列确定最后装置序列,所述最后装置序列是基于所述写入序列最后存储数据的存储器装置的装置序列。
12.根据权利要求11所述的方法,进一步包括:当对与所述最后装置序列对应的存储器装置执行的编程操作完成时,将处理所述清除请求的结果提供至所述外部主机。
13.根据权利要求11所述的方法,其中使用数据交织方案执行所述编程操作。
CN201910013013.5A 2018-03-28 2019-01-07 存储器控制器及其操作方法 Active CN110321070B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180036108A KR102535627B1 (ko) 2018-03-28 2018-03-28 메모리 컨트롤러 및 그 동작 방법
KR10-2018-0036108 2018-03-28

Publications (2)

Publication Number Publication Date
CN110321070A CN110321070A (zh) 2019-10-11
CN110321070B true CN110321070B (zh) 2023-11-03

Family

ID=68056177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910013013.5A Active CN110321070B (zh) 2018-03-28 2019-01-07 存储器控制器及其操作方法

Country Status (3)

Country Link
US (2) US10761728B2 (zh)
KR (1) KR102535627B1 (zh)
CN (1) CN110321070B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102649169B1 (ko) 2018-12-12 2024-03-20 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210000877A (ko) * 2019-06-26 2021-01-06 에스케이하이닉스 주식회사 메모리 시스템의 입출력 성능을 향상시키는 장치 및 방법
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11282567B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
CN112667529B (zh) * 2019-10-16 2024-02-13 戴尔产品有限公司 网络织物存储系统
KR102456176B1 (ko) * 2020-05-21 2022-10-19 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20220104486A (ko) * 2021-01-18 2022-07-26 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작 방법 및 컴퓨팅 시스템
KR20220105890A (ko) * 2021-01-21 2022-07-28 삼성전자주식회사 커맨드가 삽입된 데이터를 공유된 채널 양방향으로 전송할 수 있는 스토리지 장치 및 그것의 동작 방법
US11899941B2 (en) * 2021-11-11 2024-02-13 Samsung Electronics Co., Ltd. Storage device and operating method thereof

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118784A (ja) * 2010-12-01 2012-06-21 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
KR20120108339A (ko) * 2011-03-23 2012-10-05 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR101295210B1 (ko) * 2012-04-27 2013-08-12 엔에이치엔비즈니스플랫폼 주식회사 데이터베이스 관리 방법 및 장치
CN104778016A (zh) * 2015-04-23 2015-07-15 深圳市美贝壳科技有限公司 一种多存储设备环境下的自动存储控制方法
CN105989885A (zh) * 2015-03-18 2016-10-05 爱思开海力士有限公司 存储系统及其操作方法
KR20160150478A (ko) * 2015-06-22 2016-12-30 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20170059658A (ko) * 2015-11-23 2017-05-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN107111456A (zh) * 2015-01-21 2017-08-29 闪迪技术有限公司 用于生成与主机命令相关联的提示信息的系统和方法
KR20170111196A (ko) * 2016-03-25 2017-10-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581155B1 (en) * 1999-08-25 2003-06-17 National Semiconductor Corporation Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same
US20110145489A1 (en) * 2004-04-05 2011-06-16 Super Talent Electronics, Inc. Hybrid storage device
US7934069B2 (en) * 2007-04-27 2011-04-26 Hewlett-Packard Development Company, L.P. Enabling and disabling cache in storage systems
KR20090102192A (ko) 2008-03-25 2009-09-30 삼성전자주식회사 메모리 시스템 및 그것의 데이터 저장 방법
KR20100082185A (ko) 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
US9727493B2 (en) * 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
KR102612003B1 (ko) * 2016-07-11 2023-12-08 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
KR102426107B1 (ko) * 2017-12-20 2022-07-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118784A (ja) * 2010-12-01 2012-06-21 Toshiba Corp データ記憶装置、メモリ制御装置及びメモリ制御方法
KR20120108339A (ko) * 2011-03-23 2012-10-05 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
KR101295210B1 (ko) * 2012-04-27 2013-08-12 엔에이치엔비즈니스플랫폼 주식회사 데이터베이스 관리 방법 및 장치
CN107111456A (zh) * 2015-01-21 2017-08-29 闪迪技术有限公司 用于生成与主机命令相关联的提示信息的系统和方法
CN105989885A (zh) * 2015-03-18 2016-10-05 爱思开海力士有限公司 存储系统及其操作方法
CN104778016A (zh) * 2015-04-23 2015-07-15 深圳市美贝壳科技有限公司 一种多存储设备环境下的自动存储控制方法
KR20160150478A (ko) * 2015-06-22 2016-12-30 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
KR20170059658A (ko) * 2015-11-23 2017-05-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20170111196A (ko) * 2016-03-25 2017-10-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템

Also Published As

Publication number Publication date
CN110321070A (zh) 2019-10-11
US20190303007A1 (en) 2019-10-03
KR20190113430A (ko) 2019-10-08
US20200356273A1 (en) 2020-11-12
US10761728B2 (en) 2020-09-01
KR102535627B1 (ko) 2023-05-24
US11137912B2 (en) 2021-10-05

Similar Documents

Publication Publication Date Title
CN110321070B (zh) 存储器控制器及其操作方法
CN110069212B (zh) 存储装置及存储装置的操作方法
CN110275673B (zh) 存储装置及其操作方法
CN109388578B (zh) 存储装置及其操作方法
CN110287130B (zh) 存储装置及其操作方法
CN111258919B (zh) 储存设备及其操作方法
US20200310958A1 (en) Memory controller and method of operating the same
US10776027B2 (en) Storage device and method of operating the same
CN110399092B (zh) 存储装置以及操作存储装置的方法
US10910045B2 (en) Storage device having improved cache performance and method of operating the same
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
US20190259457A1 (en) Storage device and method of operating the same
CN111105836B (zh) 存储装置及其操作方法
CN110175133B (zh) 存储装置及其操作方法
KR20210151374A (ko) 스토리지 장치 및 그 동작 방법
CN111445939B (zh) 存储装置及其操作方法
CN111338979B (zh) 存储器控制器及其操作方法
CN110827873B (zh) 存储器控制器
CN110619912B (zh) 存储装置以及该存储装置的操作方法
CN111258931A (zh) 存储器控制器及操作该存储器控制器的方法
CN111506515B (zh) 存储器控制器及其操作方法
CN110413219B (zh) 存储器控制器、存储器系统及其操作方法
CN111796962A (zh) 存储装置以及存储装置的操作方法
US11551762B2 (en) Memory device and method of operating the same
US11688464B2 (en) Storage device and method of operating the same

Legal Events

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