CN114860153A - 系统及其操作方法 - Google Patents
系统及其操作方法 Download PDFInfo
- Publication number
- CN114860153A CN114860153A CN202110928757.7A CN202110928757A CN114860153A CN 114860153 A CN114860153 A CN 114860153A CN 202110928757 A CN202110928757 A CN 202110928757A CN 114860153 A CN114860153 A CN 114860153A
- Authority
- CN
- China
- Prior art keywords
- data
- host
- memory
- command
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1443—Transmit or communication errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
- Selective Calling Equipment (AREA)
Abstract
本公开的实施例涉及一种系统及其操作方法。根据本公开的实施例,存储器系统可以在从主机接收到请求写入第一数据的第一命令时,将指示已经将第一数据高速缓存在高速缓存中的第一类型响应传输到主机,并且可以在将第一类型响应传输到主机之后将指示将第一数据存储在存储器装置中的操作成功或失败的第二类型响应传输到主机。进一步地,主机可以在将第一数据存储在存储器装置中的操作成功之后从写入缓冲器中删除第一数据。
Description
相关申请的交叉引用
本申请要求于2021年1月20日提交的申请号为10-2021-0007846的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
实施例涉及一种系统及其操作方法。
背景技术
存储器系统包括数据存储装置,该数据存储装置基于来自诸如计算机、服务器、智能电话、平板PC或其他电子装置的主机的请求来存储数据。存储器系统的示例涵盖从传统的基于磁盘的硬盘驱动器(HDD)到诸如固态驱动器(SSD)、通用闪存装置(UFS)或嵌入式MMC(eMMC)装置的基于半导体的数据存储装置。
存储器系统可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且可以基于所接收的命令对存储器系统中的存储器装置运行命令或控制读取/写入/擦除操作。存储器控制器可以用于运行固件操作,以执行用于控制这些操作的逻辑运算。
一般来说,为了快速处理从主机接收到的写入命令,存储器系统首先将待写入的数据存储在高速缓存中,然后向主机传输写入成功的响应,并且然后将高速缓存中存储的数据清除到存储器装置中。
发明内容
本公开的实施例可以提供一种能够减小存储器系统中的高速缓存大小的系统以及该系统的操作方法。
另外,本公开的实施例可以提供一种在写入数据的操作期间发生失败时,能够简化处理失败的操作的系统及其操作方法。
此外,本公开的实施例可以提供一种在将数据写入存储器系统之前,能够支持主机读取高速缓存中的高速缓存的数据的系统及其操作方法。
一方面,本公开的实施例可以提供一种系统,该系统包括能够存储数据的存储器系统和请求将数据写入存储器系统的主机。
该存储器系统可以包括用于存储数据的存储器装置和用于高速缓存待存储在存储器装置中的数据的高速缓存。
存储器系统可以在从主机接收到请求写入第一数据的第一命令时,向主机传输指示已经将第一数据高速缓存在高速缓存中的第一类型响应。
存储器系统可以在向主机传输第一类型响应之后,将指示将第一数据存储在存储器装置中的操作成功或失败的第二类型响应传输到主机。
主机可以包括用于存储第一数据的写入缓冲器。
主机可以在将第一数据存储在存储器装置中的操作成功之后,从写入缓冲器中删除第一数据。
另一方面,本公开的实施例可以提供一种系统的操作方法,该系统包括能够存储数据的存储器系统和请求将数据写入存储器系统的主机。
该系统的操作方法可以包括由主机将请求写入第一数据的第一命令传输到存储器系统。
另外,该系统的操作方法可以包括由存储器系统将指示已经将第一数据高速缓存在存储器系统中包括的高速缓存中的第一类型响应传输到主机。
进一步地,该系统的操作方法可以包括在将第一类型响应传输到主机之后,由存储器系统将指示将第一数据存储在存储器系统中包括的存储器装置中的操作成功或失败的第二类型响应传输到主机。
另一方面,本公开的实施例可以提供一种包括主机和存储器系统的系统的操作方法。
该系统的操作方法可以包括由主机向存储器系统提供请求和数据,同时将数据保存在主机中。
该系统的操作方法可以包括在成功将数据存储在存储器系统中后,由存储器系统向主机提供存储完成响应。
该系统的操作方法可以包括响应于存储完成响应,由主机移除所保存的数据。
该系统的操作方法可以进一步包括在存储数据之前在存储器系统中高速缓存该数据后,由存储器系统向主机提供高速缓存完成响应。在这种情况下,高速缓存的数据可以存储在存储器系统中。
该系统的操作方法可以进一步包括在数据的存储失败后由主机重复提供请求和数据。
另外,该系统的操作方法可以包括在将第一数据存储在存储器装置中的操作成功之后,由主机从主机中包括的写入缓冲器中删除第一数据。
根据本公开的实施例,可以减少存储器系统内的高速缓存的大小,简化处理在数据写入操作期间发生的失败的操作,并且在将数据写入存储器系统之前支持主机读取高速缓存中的高速缓存的数据。
附图说明
图1是示出基于所公开技术的实施例的存储器系统的配置的示意图。
图2是示意性地示出基于所公开技术的实施例的存储器装置的框图。
图3是示出基于所公开技术的实施例的存储器装置的字线和位线的结构的示图。
图4是示出根据本公开的实施例的系统的示意结构的示图。
图5是示出根据本公开的实施例的系统的操作示例的序列图。
图6是示出根据本公开的实施例的存储器系统向主机传输第二类型响应的示例的序列图。
图7至图8是示出根据本公开的实施例的存储器系统将第一数据存储在存储器装置中的操作失败的情况的序列图。
图9是示出根据本公开的实施例的在接收到第二类型响应之后由主机执行的操作的示例的序列图。
图10是示出根据本公开的实施例的在接收到第二类型响应之后由主机执行的操作的另一示例的序列图。
图11是示出根据本公开的实施例的在接收到第二类型响应之后由主机执行的操作的另一示例的序列图。
图12是示出根据本公开的实施例的系统的操作方法的示图。
图13是示出基于所公开技术的一些实施例的计算系统的配置的示图。
具体实施方式
在下文中,参照附图详细地描述了本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。在本文中使用的术语“实施例”不一定指所有实施例。
图1是示出基于所公开技术的实施例的存储器系统100的示意性配置的示图。
在一些实施方案中,存储器系统100可以包括被配置为存储数据的存储器装置110,以及被配置为控制存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块,每个存储块包括用于存储数据的多个存储器单元。存储器装置110可以被配置为响应于从存储器控制器120接收的控制信号而操作。存储器装置110的操作可以包括,例如读取操作、编程操作(也称为“写入操作”)、擦除操作等。
存储器装置110中的存储器单元用于存储数据并且可以布置在存储器单元阵列中。存储器单元阵列可以被划分为存储器单元的存储块,并且每个块包括存储器单元的不同页面。在NAND闪速存储器装置的典型实施方案中,存储器单元的页面是可以被编程或写入的最小存储器单位,并且可以以块级别擦除存储器单元中存储的数据。
在一些实施方案中,存储器装置110可以被实施为诸如以下的各种类型:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。
存储器装置110可以以三维阵列结构来实施。所公开技术的一些实施例可以应用于具有电荷存储层的任何类型的闪速存储器装置。在实施方案中,电荷存储层可以由导电材料形成,并且这样的电荷存储层可以被称为浮置栅极。在另一实施方案中,电荷存储层可以由绝缘材料形成,并且这样的闪速存储器装置可以被称为电荷撷取闪存(CTF)。
存储器装置110可以被配置为从存储器控制器120接收命令和地址,以使用该地址访问所选择的存储器单元阵列的区域。也就是说,存储器装置110可以对具有与从存储器控制器120接收的地址相对应的物理地址的存储器装置的存储器区域执行与所接收的命令相对应的操作。
在一些实施方案中,存储器装置110可以执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器装置110可以将数据写入通过地址选择的区域中。在读取操作期间,存储器装置110可以从通过地址选择的存储器区域中读取数据。在擦除操作期间,存储器装置110可以擦除通过地址选择的存储器区域中存储的数据。
存储器控制器120可以控制对存储器装置110执行的写入(编程)操作、读取操作、擦除操作和后台操作。后台操作可以包括,例如被实施以优化存储器装置110的整体性能的操作,诸如垃圾收集操作(GC)、损耗均衡(WL)操作和坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,当存储器控制器120执行存储器装置的这种后台操作时,即使在没有来自主机的请求的情况下,存储器控制器120也可以控制存储器装置110的操作。
存储器控制器120和主机可以是分开的装置。在一些实施方案中,存储器控制器120和主机可以被集成并实施为单个装置。在下面的描述中,将以存储器控制器120和主机将作为分开的装置作为示例进行讨论。
参照图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机HOST接收命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理所接收的命令的操作。
存储器接口122可以直接地或间接地连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为向存储器装置110和存储器控制器120提供用于存储器控制器120基于来自控制电路123的控制信号和指令对存储器装置110执行存储器操作的接口。
控制电路123可以被配置为通过存储器控制器120来控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测/校正电路(ECC电路)126等。
处理器124可以控制存储器控制器120的整体操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机HOST通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可以用于执行与闪存转换层(FTL)相关联的操作,以有效地管理对存储器系统100的存储器操作。处理器124可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且通过使用映射表将LBA转换为PBA。
基于映射单位,FTL可以采用各种地址映射方法。典型的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
处理器124可以被配置为将从主机接收的数据随机化,以将随机化后的数据写入存储器单元阵列。例如,处理器124可以通过使用随机化种子将从主机接收的数据随机化。随机化后的数据被提供给存储器装置110,并且被写入存储器单元阵列。
处理器124可以被配置为在读取操作期间将从存储器装置110接收的数据去随机化。例如,处理器124可以通过使用去随机化种子来将从存储器装置110接收的数据去随机化。可以将去随机化后的数据输出到主机HOST。
处理器124可以运行指令,例如固件(FW),以控制存储器控制器120的操作。换言之,处理器124可以控制存储器控制器120的整体操作,并且为了执行逻辑运算,可以在启动期间运行(驱动)加载到工作存储器125中的固件。
固件是指存储在某个非易失性存储器上并且在存储器系统100内部运行的程序或软件。
在一些实施方案中,固件可以包括各种功能层。例如,固件可以包括以下之中的至少一个:被配置为将主机HOST请求中的逻辑地址转换为存储器装置110的物理地址的闪存转换层(FTL),被配置为解译主机HOST发出到诸如存储器系统100的数据存储装置的命令并且将该命令传递到FTL的主机接口层(HIL),以及被配置为将由FTL发出的命令传递到存储器装置110的闪存接口层(FIL)。
例如,固件可以被存储在存储器装置110中,然后被加载到工作存储器125中。
工作存储器125可以存储固件、程序代码、命令或数据以操作存储器控制器120。工作存储器125可以包括,例如作为易失性存储器的静态RAM(SRAM)、动态RAM(DRAM)和同步RAM(SDRAM)之中的至少一个。
错误检测/校正电路126可以被配置为通过使用错误检测和校正码来检测和校正数据中的一个或多个错误位。在一些实施方案中,经过错误检测和校正的数据可以包括工作存储器125中存储的数据以及从存储器装置110检索的数据。
错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。可以通过使用各种解码方案来实施错误检测/校正电路126。例如,可以使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
在一些实施方案中,错误检测/校正电路126可以基于扇区检测一个或多个错误位。也就是说,每条读取数据可以包括多个扇区。在该专利文件中,扇区可以指小于闪速存储器的读取单位(例如,页面)的数据单位。可以基于地址来映射构成每条读取数据的扇区。
在一些实施方案中,错误检测/校正电路126可以计算位错误率(BER),并且逐个扇区地确定数据中的错误位的数量是否在错误校正能力之内。例如,如果BER大于参考值,则错误检测/校正电路126可以确定相应的扇区中的错误位不可校正,并且将相应的扇区标记为“失败”。如果BER小于或等于参考值,则错误检测/校正电路126可以确定相应的扇区可校正,或者可将相应的扇区标记为“通过”。
错误检测/校正电路126可以对所有读取数据依次地执行错误检测和校正操作。当读取数据中包括的扇区可校正时,错误检测/校正电路126可以继续到下一扇区,以检查是否需要对下一扇区进行错误校正操作。在以此方式完成对所有读取数据的错误检测和校正操作后,错误检测/校正电路126可以获取关于读取数据中的哪个扇区被认为不可校正的信息。错误检测/校正电路126可以将这种信息(例如,不可校正位的地址)提供给处理器124。
存储器系统100还可以包括总线127,以在存储器控制器120的构成元件121、122、124、125和126之间提供通道。总线127可以包括,例如用于传递各种类型的控制信号和命令的控制总线,以及用于传递各种类型的数据的数据总线。
通过示例的方式,图1示出了存储器控制器120的上述构成元件121、122、124、125和126。注意的是,可以省略附图中示出的某些构成元件,或者可以将存储器控制器120的上述构成元件121、122、124、125和126中的一些集成为单个元件。另外,在一些实施方案中,可以向存储器控制器120的上述构成元件添加一个或多个其他构成元件。
图2是示意性地示出基于所公开技术的实施例的存储器装置110的框图。
在一些实施方案中,基于所公开技术的实施例的存储器装置110可以包括存储器单元阵列210、地址解码器220、读取/写入电路230、控制逻辑240以及电压生成电路250。
存储器单元阵列210可以包括多个存储块BLK1至BLKz,其中z是等于或大于2的自然数。
在多个存储块BLK1至BLKz中,可以按行和列设置多个字线WL和多个位线BL,并且可以布置多个存储器单元MC。
可以通过多个字线WL将多个存储块BLK1至BLKz连接到地址解码器220。可以通过多个位线BL将多个存储块BLK1至BLKz连接到读取/写入电路230。
多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。例如,多个存储器单元是非易失性存储器单元。在一些实施方案中,这种非易失性存储器单元可以以垂直沟道结构布置。
存储器单元阵列210可以被配置为具有二维结构的存储器单元阵列。在一些实施方案中,存储器单元阵列210可以以三维结构布置。
存储器单元阵列210中包括的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(SLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储两位数据的多层单元(MLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储三位数据的三层单元(TLC)。又例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储四位数据的四层单元(QLC)。又例如,存储器单元阵列210可以包括多个存储器单元,多个存储器单元中的每一个可以被配置为每个存储器单元存储至少五位数据。
参照图2,地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以作为被配置为驱动存储器单元阵列210的外围电路而操作。
地址解码器220可以通过多个字线WL连接到存储器单元阵列210。
地址解码器220可以被配置为响应于控制逻辑240的命令和控制信号而操作。
地址解码器220可以通过存储器装置110内部的输入/输出缓冲器接收地址。地址解码器220可以被配置为对所接收的地址之中的块地址进行解码。地址解码器220可以基于所解码的块地址选择至少一个存储块。
地址解码器220可以从电压生成电路250接收读取电压Vread和通过电压Vpass。
地址解码器220可以在读取操作期间,将读取电压Vread施加到所选择存储块内的所选择字线WL,并且将通过电压Vpass施加到剩余的未选择字线WL。
地址解码器220可以在编程验证操作期间将由电压生成电路250生成的验证电压施加到所选择存储块内的所选择字线WL,并且可以将通过电压Vpass施加到剩余的未选择字线WL。
地址解码器220可以被配置为对所接收的地址之中的列地址进行解码。地址解码器220可以将经解码的列地址传输到读取/写入电路230。
存储器装置110可以逐个页面地执行读取操作和编程操作。当请求读取操作和编程操作时所接收的地址可以包括块地址、行地址和列地址中的至少一个。
地址解码器220可以基于块地址和行地址选择一个存储块和一个字线。列地址可以由地址解码器220进行解码,并且被提供给读取/写入电路230。
地址解码器220可以包括块解码器、行解码器、列解码器和地址缓冲器中的至少一个。
读取/写入电路230可以包括多个页面缓冲器PB。当存储器单元阵列210执行读取操作时,读取/写入电路230可以作为“读取电路”来操作,并且当存储器单元阵列210执行写入操作时,读取/写入电路230可以作为“写入电路”来操作。
上述读取/写入电路230也被称为页面缓冲器电路或数据寄存器电路,该页面缓冲器电路包括多个页面缓冲器PB。读取/写入电路230可以包括参与数据处理功能的数据缓冲器,并且在一些实施方案中,可以进一步包括用于数据高速缓存的高速缓存缓冲器。
多个页面缓冲器PB可以通过多个位线BL连接到存储器单元阵列210。为了在读取操作和编程验证操作期间检测或感测存储器单元的阈值电压Vth,多个页面缓冲器PB可以连续地向连接到存储器单元的位线BL供应感测电流,以在感测节点处检测与电流量成比例的变化并且可以将相应的电压保持或锁存为感测数据,其中该电流量根据相应的存储器单元的编程状态而变化。
读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元的电压值,并且该电压值作为数据被读出。读取/写入电路230临时存储所检索到的数据,并且将数据DATA输出到存储器装置110的输入/输出缓冲器。在实施例中,除了页面缓冲器PB或页面寄存器之外,读取/写入电路230还可以包括列选择电路。
控制逻辑240可以连接到地址解码器220、读取/写入电路230和电压生成电路250。控制逻辑240可以通过存储器装置110的输入/输出缓冲器接收命令CMD和控制信号CTRL。
控制逻辑240可以被配置为响应于控制信号CTRL而控制存储器装置110的整体操作。控制逻辑240可以输出用于将多个页面缓冲器PB的感测节点的电压电平调节到预充电电压电平的控制信号。
控制逻辑240可以控制读取/写入电路230在存储器单元阵列210中执行读取操作。电压生成电路250可以响应于从控制逻辑240输出的电压生成电路控制信号来生成在读取操作期间使用的读取电压Vread和通过电压Vpass。
存储器装置110中包括的存储块BLK可以包括多个页面PG。在一些实施方案中,按列布置的多个存储器单元形成存储器单元串,并且按行布置的多个存储器单元形成存储块。多个页面PG中的每一个联接到一个字线WL,并且存储器单元串STR中的每一个联接到一个位线BL。
在存储块BLK中,可以将多个字线WL和多个位线BL按行和列布置。例如,多个字线WL中的每一个可以沿行方向布置,并且多个位线BL中的每一个可以沿列方向布置。又例如,多个字线WL中的每一个可以沿列方向布置,并且多个位线BL中的每一个可以沿行方向布置。
在一些实施方案中,多个字线WL和多个位线BL可以彼此相交,从而寻址多个存储器单元MC的阵列中的单个存储器单元。在一些实施方案中,每个存储器单元MC可以包括晶体管TR,该晶体管TR包括可以保持电荷的材料层。
例如,布置在每个存储器单元MC中的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR连接到相应的位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR连接到源极线(可以是地)。晶体管TR的栅极可以包括由绝缘体围绕的浮置栅极(FG)和从字线WL向其施加栅极电压的控制栅极(CG)。
在多个存储块BLK1至BLKz的每一个中,第一选择线(也称为源极选择线或漏极选择线)可以另外地布置在两个最外字线之中的、更靠近读取/写入电路230的第一最外字线的外侧,并且第二选择线(也称为漏极选择线或源极选择线)可以另外地布置在另一个第二最外字线的外侧。
在一些实施方案中,可以在第一最外字线和第一选择线之间另外地布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间另外地布置至少一个虚设字线。
可以逐个页面地执行存储块的读取操作和编程操作(写入操作),并且可以逐个存储块地执行擦除操作。
图3是示出基于所公开技术的实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图3,存储器装置110具有布置有存储器单元MC的内核区域,以及辅助区域(除内核区域以外的剩余区域),以包括用于执行存储器单元阵列210的操作的电路。
在内核区域中,在一个方向上布置的一定数量的存储器单元可以被称为“页面”PG,并且串联联接的一定数量的存储器单元可以被称为“存储器单元串”STR。
字线WL1至WL9可以连接到行解码器310。位线BL可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可以存在于多个位线BL和列解码器320之间。
多个字线WL1至WL9可以对应于多个页面PG。
例如,如图3所示,多个字线WL1至WL9中的每一个可以对应于一个页面PG。当多个字线WL1至WL9中的每一个具有较大的大小时,多个字线WL1至WL9中的每一个可以对应于至少两个(例如,两个或四个)页面PG。每个页面PG是编程操作和读取操作中的最小单位,并且在进行编程操作和读取操作时,相同的页面PG内的所有存储器单元MC可以同时执行操作。
多个位线BL可以连接到列解码器320。在一些实施方案中,可以将多个位线BL划分为奇数编号位线BL和偶数编号位线BL,使得一对奇数编号位线和偶数编号位线共同联接到列解码器320。
在访问存储器单元MC时,行解码器310和列解码器320用于基于地址来定位期望的存储器单元。
在一些实施方案中,数据寄存器330发挥重要作用,因为存储器装置110进行的包括编程操作和读取操作的所有数据处理均经由数据寄存器330发生。如果数据寄存器330的数据处理被延迟,则所有其他区域需要等待,直到数据寄存器330完成数据处理为止,从而降低了存储器装置110的整体性能。
参照图3所示的示例,在一个存储器单元串STR中,多个晶体管TR1至TR9可以分别连接到多个字线WL1至WL9。在一些实施方案中,多个晶体管TR1至TR9对应于存储器单元MC。在该示例中,多个晶体管TR1至TR9包括控制栅极CG和浮置栅极FG。
多个字线WL1至WL9包括两个最外字线WL1和WL9。第一选择线DSL可以另外地布置在第一最外字线WL1的外侧,第一最外字线WL1与另一个最外字线WL9相比更靠近数据寄存器330并且具有更短的信号路径。第二选择线SSL可以另外地布置在另一个第二最外字线WL9的外侧。
由第一选择线DSL控制以导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但是不包括浮置栅极FG。由第二选择线SSL控制以导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但是不包括浮置栅极FG。
第一选择晶体管D-TR用作将相应的存储器单元串STR连接到数据寄存器330的开关电路。第二选择晶体管S-TR用作将相应的存储器单元串STR连接到源极线SL的开关。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR可以用于启用或禁用相应的存储器单元串STR。
在一些实施方案中,存储器系统100向第一选择晶体管D-TR的栅电极施加预定的导通电压Vcc,从而导通第一选择晶体管D-TR,并且向第二选择晶体管S-TR的栅电极施加预定的关断电压(例如,0V),从而关断第二选择晶体管S-TR。
在读取操作或验证操作期间,存储器系统100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,在读取操作或验证操作期间,电流可以流过相应的存储器单元串STR并且流到与地相对应的源极线SL,从而可以测量位线BL的电压电平。然而,在读取操作期间,在第一选择晶体管D-TR和第二选择晶体管S-TR之间的导通/关断时刻可能存在时间差。
在擦除操作期间,存储器系统100可以通过源极线SL将预定电压(例如,+20V)施加到衬底。存储器系统100施加一定的电压以允许第一选择晶体管D-TR和第二选择晶体管S-TR两者在擦除操作期间浮置。因此,所施加的擦除电压可以从所选择存储器单元的浮置栅极FG移除电荷。
图4是示出根据本公开的实施例的系统10的示意结构的示图。
参照图4,系统10可以包括主机20和存储器系统30。
主机20可以请求存储器系统30写入数据。为此,主机20可以传输写入命令和待写入存储器系统30的数据。
当接收到来自主机的写入命令时,存储器系统30可以存储由写入命令请求写入的数据。在这种情况下,存储器系统30可以利用上面参照图1描述的存储器系统100来实施。
在图4中,主机20可以包括写入缓冲器21。写入缓冲器21是用于临时存储待写入存储器系统30的数据的存储器区域,并且可以被实施为,例如易失性存储器(例如SRAM、DRAM)。
另外,存储器系统30可以包括高速缓存31和存储器装置32。高速缓存31是能够临时存储相应数据的存储器区域,直到完成将数据存储在存储器装置32中的操作为止。存储器装置32是能够存储数据的存储器区域。在这种情况下,高速缓存31可以由图1中描述的工作存储器125或单独的易失性存储器来实施,并且存储器装置32可以由图1中描述的存储器装置110来实施。
在图4中,当主机20请求存储器系统30写入数据时,存储器系统30可以在将数据存储在存储器装置32中之前,先将数据高速缓存在高速缓存31中(①)。
另外,当满足特定条件时,存储器系统30可以将高速缓存在高速缓存31中的数据写入存储器装置32(②)。例如,当高速缓存在高速缓存31中的数据的总大小等于或大于设置的单位大小时,存储器系统30可以将高速缓存在高速缓存31中的数据写入存储器装置32。又例如,当从最近将数据写入存储器装置32的时间起经过预定时间或更长时间时,存储器系统30可以将高速缓存在高速缓存31中的数据写入存储器装置32。
在下文中,将通过序列图描述图4中所述的主机20和存储器系统30的操作。
图5是示出根据本公开的实施例的系统10的操作示例的序列图。
参照图5,主机20可以将请求写入第一数据的第一命令传输到存储器系统30。例如,第一命令与第一数据被一起提供给存储器系统30。响应于第一命令,存储器系统30将第一数据高速缓存到高速缓存31中,然后将高速缓存的第一数据存储在存储器装置32中。
在这种情况下,存储器系统30可以将对第一命令的响应划分为两种不同类型的响应(第一类型响应和第二类型响应),并将该响应传输到主机20。
当接收到来自主机20的第一命令时,存储器系统30可以首先将第一数据高速缓存在高速缓存31中。当将第一数据高速缓存在高速缓存31中的操作完成时,存储器系统30可以向主机20传输指示第一数据已经高速缓存在高速缓存31中的第一类型响应。这时候,当接收到第一类型响应时,主机20可以不从写入缓冲器21中删除第一数据并保持将第一数据存储在写入缓冲器21中的状态,或者将第一数据从写入缓冲器21移动到以慢于写入缓冲器21的速度操作的另一缓冲器。
此外,在向主机传输第一类型响应之后,存储器系统30可以向主机20传输指示将第一数据存储在存储器装置32中的操作成功或失败的第二类型响应。根据主机的请求或存储在存储器装置32中的操作是成功还是失败,存储器系统30可以仅向主机20传输一次第二类型响应或可以多次向主机20传输第二类型响应。
在接收到来自存储器系统30的第一类型响应之后,主机20可以检查指示将第一数据存储在存储器装置32中的操作已经成功的信息。在这种情况下,主机20可以例如通过上述第二类型响应来检查将第一数据存储在存储器装置32中的操作已经成功的信息。
在检查到将第一数据存储在存储器装置32中的操作已经成功之后,主机20可以从写入缓冲器21中删除第一数据。也就是说,主机20可以将第一数据保持在写入缓冲器21中,直到将第一数据存储在存储器装置32中的操作成功的时间,而不是第一数据被高速缓存在高速缓存31中的时间。
将在下面描述存储器系统30通过将对从主机20传输的第一命令的响应划分为第一类型响应和第二类型响应来传输该响应,并且将第一数据保持在写入缓冲器21中直到将第一数据存储在存储器装置32中的操作成功为止的原因。
如果在将数据高速缓存在高速缓存31中之后,存储器系统30传输指示将数据写入存储器装置32的操作已经成功的响应,则存储器系统30确保高速缓存的数据正常存储在存储器装置32中而没有错误。另外,存储器系统30确保读取高速缓存的数据的读取操作正常地执行而没有错误。
作为示例,当从主机20接收到请求写入数据的命令时,存储器系统30可以将数据高速缓存在高速缓存31中并且传输指示将该数据写入存储器装置32的操作已经成功的响应。此后,存储器系统30可以接收请求读取该数据的命令。
在这种情况下,即使在将高速缓存在高速缓存31中的数据写入存储器装置32失败时,存储器系统30也会传输主机20所请求的数据。这是因为存储器系统30已经传输了指示向存储器装置32写入数据的操作已经成功的响应。
因此,在处理来自主机20的数据读取请求之前,存储器系统30从L2P(逻辑到物理)映射中移除对应于所改变的LBA的映射信息,并且执行将高速缓存在高速缓存31中的数据重新写入存储器装置32的操作,以传输针对来自主机20的数据读取请求的数据。另外,为了比起数据读取请求首先执行将高速缓存在高速缓存31中的数据重新写入存储器装置32的操作,存储器系统30应首先将指示数据读取请求的命令从命令队列中出列。
因此,存储器系统30处理来自主机20的数据读取请求的时刻可能被延迟。
另外,为了执行上述操作,存储器系统30将数据保持在高速缓存31中,直到数据正常地存储在存储器装置32中而没有错误为止。因此,保持高速缓存31中的数据的高速缓存状态的时间增加,并且为了长时间保持高速缓存31中的数据的高速缓存状态,增加了高速缓存31的大小。因此,存在实施存储器系统30的高速缓存31所需的成本增加的问题。
因此,存储器系统可以通过由主机20保持写入缓冲器21中的数据,而不是保持高速缓存31中数据的高速缓存状态直到数据被正常地存储在存储器装置32中而没有错误为止,来减小高速缓存31的大小。
在这种情况下,即使存储器系统30在数据被正常地存储在存储器装置32中之前从高速缓存31中删除数据,主机20也可以通过将数据重新写入存储器系统30来使用存储在写入缓冲器21中的数据执行恢复操作。因此,存储器系统30可以减小高速缓存31的大小并且实施存储器系统30的高速缓存31所需的成本可以降低。在这种情况下,将数据存储在写入缓冲器21中的状态被长时间保持,然而,一般来说,由于写入缓冲器21的大小远大于高速缓存31的大小,并且空闲空间的大小也较大,因此实施写入缓冲器21所需的额外成本小于实施高速缓存31所需的成本。
然而,为此,主机20确定存储器系统30的状态,即,数据是否已经被高速缓存在高速缓存31中以及被高速缓存之后数据是否已经被正常地写入存储器装置32。为此,存储器系统30可以向主机20传输第一类型响应和第二类型响应,使得主机20可以基于第一类型响应和第二类型响应执行操作以将数据正常地写入存储器系统30。
作为示例,当从主机20接收到请求写入数据的命令时,存储器系统30可以通过第二类型响应将指示在将数据高速缓存在高速缓存31中之后写入数据的操作已经失败的信息传输到主机20。
此后,即使存储器系统30接收到在主机20已经接收到将数据写入存储器系统30的操作已经失败的信息之前由主机20传输的命令,请求读取从主机20被写入数据的地址中所存储的数据,也不需要传输由主机20请求写入的数据。这是因为主机20已经接收到将数据写入存储器系统30的操作已经失败的信息。
因此,存储器系统30无需在移除LBA过程中,首先将指示数据读取请求的命令从命令队列中出列,该LBA在将高速缓存31中高速缓存的数据写入存储器装置32失败的过程中被改变。因此,在由存储器系统30写入数据的操作失败的情况下,可以简化处理失败的操作。
图6是示出根据本公开的实施例的存储器系统30向主机20传输第二类型响应的示例的序列图。
参照图6,存储器系统30可以从主机20接收请求写入第一数据的第一命令,将第一数据高速缓存在高速缓存31中,然后向主机20传输第一类型响应。
在接收到来自存储器系统30的第一类型响应之后,主机20可以清除第一命令的门铃信息。第一命令的门铃信息是指示第一命令的处理是否已经完成的信息,并且在第一命令的门铃信息被清除之前,主机20不能向存储器系统30传输另一命令,并可以在第一命令的门铃信息被清除之后向存储器系统30传输另一命令。在这种情况下,由于主机20在从存储器系统30接收到第一类型响应之后可以立即向存储器系统30传输另一命令,因而不会出现由于第一命令而延迟处理其他命令的问题。在这种情况下,清除门铃信息意味着将门铃信息初始化为重置状态。
主机20可以在清除第一命令的门铃信息之后,将第二命令传输到存储器系统30。在这种情况下,第二命令是与第一命令不同的命令并且不一定是写入命令。例如,第二命令可以是读取命令。
在这种情况下,存储器系统30可以通过在响应消息中包括指示将第一数据存储在存储器装置32中的操作成功或失败的第二类型响应来传输针对第二命令的响应消息。这是因为已经清除了第一命令的门铃信息,使得存储器系统30无法独立地将第一命令的响应消息传输到主机20。
在这种情况下,为了指示包括在针对第二命令的响应消息中的第二类型响应是针对第一命令的响应,存储器系统30可以将对应于第一命令的标签信息一起包括在针对第二命令的响应消息中。
在从存储器系统30接收到第二命令的响应消息之后,主机20可以通过检查第二命令的响应消息中的第二类型响应来检查将第一数据存储在存储器装置32中的操作是成功还是失败。
同时,当主机20从存储器系统30接收到第二类型响应时,主机20和存储器系统30的操作可以根据第二类型响应指示将第一数据存储在存储器装置32中的操作已经成功还是失败而不同。
在下文中,将描述主机20从存储器系统30接收到指示将第一数据存储在存储器装置32中的操作已经失败的第二类型响应的情况下的序列。
图7至图8是示出根据本公开实施例的存储器系统30将第一数据存储在存储器装置中的操作失败的情况的序列图。
作为示例,在图7中,存储器系统30可以从主机20接收请求写入第一数据的第一命令,将第一数据高速缓存在高速缓存31中,并且向主机20传输第一类型响应。另外,主机20可以清除第一命令的门铃信息。
此后,在存储器系统30未能将高速缓存31中高速缓存的第一数据存储在存储器装置32中的情况下,存储器系统30可以向主机20传输指示在存储器装置中存储第一数据的操作已经失败的第二类型响应。
在接收到第二类型响应并确认其未能将第一数据存储在存储器装置32中之后,主机20可以向存储器系统30重新传输第一命令。在这种情况下,由于已经清除了第一命令的门铃信息并且第一数据尚未从写入缓冲器21中删除,所以主机20可以将第一命令重新传输到存储器系统30。同时,在向存储器系统30重新传输第一命令时,主机20可以再次为第一命令设置门铃信息。
在这种情况下,主机20向存储器系统30重新传输第一命令的操作可以重复执行,直到存储器系统30向主机20传输指示在存储器装置中存储第一数据的操作已经成功的第二类型响应为止。
作为图8的另一示例,如同图7,存储器系统30可以从主机20接收请求写入第一数据的第一命令,将第一数据高速缓存在高速缓存31中,并且向主机20传输第一类型响应。另外,主机20可以清除第一命令的门铃信息。
此后,在存储器系统30未能将高速缓存31中高速缓存的第一数据存储在存储器装置32中的情况下,存储器系统30可以向主机20传输指示将第一数据存储在存储器装置中的操作已失败的第二类型响应。
在接收到第二类型响应并确认第一数据未能存储在存储器装置32中之后,主机20可以向存储器系统30传输新的第三命令,而不是将第一命令重新传输到存储器系统30。在这种情况下,由于已经清除了第一命令的门铃信息,因此主机20可以将第三命令传输到存储器系统30。如果主机20可以向存储器系统30传输第三命令,则可以删除高速缓存在高速缓存31中的第一数据。
第三命令是指示存储器系统30在将第一数据存储在存储器装置32中的操作完成的时间,而不是在第一数据被高速缓存在高速缓存31中的时间作出响应的命令。例如,第三命令可以是第一数据的写入缓冲命令。又例如,第三命令可以是强制单元访问(FUA)属性的写入命令,指示立即将第一数据写入存储器装置32。在这种情况下,由于尚未从写入缓冲器21中删除第一数据,因此第三命令可以指示写入第一数据。
图9是示出根据本公开的实施例的在接收到第二类型响应之后由主机20执行的操作的示例的序列图。
参照图9,存储器系统30可以从主机20接收请求写入第一数据的第一命令,将第一数据高速缓存在高速缓存31中,然后向主机20传输第一类型响应。
此后,在存储器系统30成功地将高速缓存31中高速缓存的第一数据存储在存储器装置32中的情况下,存储器系统30可以向主机20传输指示将第一数据存储在存储器装置32中的操作已经成功的第二类型响应。
在这种情况下,主机20可以在从存储器系统30接收到指示将第一数据存储在存储器装置的操作已经成功的第二类型响应之后,清除第一命令的门铃信息并从写入缓冲器21中删除第一数据。
图10是示出根据本公开的实施例的在接收到第二类型响应之后由主机20执行的操作的另一示例的序列图。
参照图10,存储器系统30可以从主机20接收请求写入第一数据的第一命令,将第一数据高速缓存在高速缓存31中,然后向主机20传输第一类型响应。
此后,在存储器系统30未能将高速缓存31中高速缓存的第一数据存储在存储器装置32中的情况下,存储器系统30可以向主机20传输指示将第一数据存储在存储器装置32中的操作已失败的第二类型响应。
在这种情况下,主机20可以在不清除第一命令的门铃信息的情况下将全部第一数据重新传输到存储器系统30。此时,由于尚未清除第一命令的门铃信息,主机20无法向存储器系统30重新传输第一命令或向存储器系统30传输另一命令。
为了向存储器系统30重新传输第一数据,主机20可以初始化传输状态信息,该传输状态信息在主机20和存储器系统30之间交换以检查第一数据的传输状态。为了初始化传输状态信息,主机20可以直接初始化传输状态信息或指示存储器系统30初始化传输状态信息。
作为示例,为了将全部第一数据重新传输到存储器系统30,主机20可以将从存储器系统30传输到主机20的准备传输(RTT)信息的值和从主机20传输到存储器系统30的数据输出信息的值初始化。
准备传输信息指示存储器系统30可以从主机20接收的数据的大小。另外,主机20可以基于准备传输信息通过数据输出信息将待写入存储器系统30的数据传输到存储器系统30。因此,主机20可以通过将准备传输信息和数据输出信息初始化,来从头开始将第一数据重新传输到存储器系统30。
当主机20执行将第一数据重新传输到存储器系统30的操作,然后接收到指示将第一数据存储在存储器装置中的操作已经成功的第二类型响应时,主机20可以清除第一命令的门铃信息,并且从写入缓冲器21中删除第一数据。在这种情况下,存储器系统30知道重新传输的第一数据与第一命令相匹配,因为RTT信息和数据输出信息的值被初始化了。由于RTT信息和数据输出信息的值被初始化,主机20应将第一数据重新传输到存储器系统30以完成第一命令。
图11是示出根据本公开的实施例的在接收到第二类型响应之后由主机20执行的操作的另一示例的序列图。
参照图11,存储器系统30可以从主机20接收请求写入第一数据的第一命令,将第一数据高速缓存在高速缓存31中,然后向主机20传输第一类型响应。
此后,在存储器系统30未能将高速缓存31中高速缓存的第一数据存储在存储器装置32中的情况下,存储器系统30可以向主机20传输指示将第一数据存储在存储器装置32中的操作已失败的第二类型响应。
在这种情况下,主机20可以清除第一命令的门铃信息并将第一命令重新传输到存储器系统30。由于已经清除了第一命令的门铃信息,并且第一数据被保持在写入缓冲器21中,所以主机20可以将第一命令重新传输到存储器系统30。同时,在向存储器系统30重新传输第一命令时,主机20可以再次设置第一命令的门铃信息。
在主机20执行将第一命令重新传输到存储器系统30的操作并接收到指示将第一数据存储在存储器装置中的操作已经成功的第二类型响应(已经接收到第一类型响应)之后,主机可以清除重新传输的第一命令的门铃信息,并且从写入缓冲器21中删除第一数据。在这种情况下,重新传输的第一数据可以被高速缓存在高速缓存31中,或者直接写入存储器装置32。当重新传输的第一数据被高速缓存在高速缓存31中时,可以移除高速缓存31中高速缓存的原始第一数据。
图12是示出根据本公开的实施例的系统10的操作方法的示图。
参照图12,系统10的操作方法可以包括由主机20向存储器系统30传输第一命令(S1210)。在这种情况下,第一命令是请求写入第一数据的命令。
另外,系统10的操作方法可以包括由存储器系统30向主机20传输第一类型响应(S1220)。在这种情况下,第一类型响应指示第一数据已经被高速缓存在存储器系统30的高速缓存31中。
进一步地,系统10的操作方法可以包括在存储器系统30向主机20传输第一类型响应之后,由存储器系统30向主机20传输第二类型响应(S1230)。在这种情况下,第二类型响应指示将第一数据存储在存储器系统30的存储器装置32中的操作是已经成功还是已经失败。
进一步地,系统10的操作方法可以包括在将第一数据存储在存储器系统30的存储器装置32中的操作成功之后,由主机20从主机20的写入缓冲器21中删除第一数据(S1240)。
作为示例,当主机20接收到第一类型响应时,可以清除与第一命令相对应的门铃信息,并且可以通过对存储器系统30从主机20接收到的第二命令的响应消息将第二类型响应传输到主机20。
在这种情况下,作为示例,系统10的操作方法可以进一步包括当主机20接收到指示将第一数据存储在存储器装置32中的操作已经失败的第二类型响应时,由主机20向存储器系统30重新传输第一命令。作为另一示例,系统10的操作方法可以进一步包括当主机20接收到指示将第一数据存储在存储器装置32中的操作已经失败的第二类型响应时,由主机20向存储器系统30传输指示在将第一数据存储在存储器装置中的操作完成之后作出响应的第三命令。
作为另一示例,当主机20接收到指示将第一数据存储在存储器装置32中的操作已经成功的第二类型响应时,可以清除与第一命令相对应的门铃信息。
在这种情况下,系统10的操作方法可以进一步包括当主机20接收到指示将第一数据存储在存储器装置中的操作已经失败的第二类型响应时,由主机20将所有第一数据重新传输到存储器系统30。
作为另一示例,系统10的操作方法可以进一步包括如下步骤:当主机20接收到指示将第一数据存储在存储器装置32中的操作已经失败的第二类型响应时,主机20清除与第一命令相对应的门铃信息,并将第一命令重新传输到存储器系统30。
图13是示出基于所公开技术的实施例的计算系统1300的配置的示图。
参照图13,基于所公开技术的实施例的计算系统1300可以包括:系统10,电连接到系统总线1360;CPU 1310,被配置为控制计算系统1300的整体操作;RAM 1320,被配置为存储与计算系统1300的操作有关的数据和信息;用户接口/用户体验(UI/UX)模块1330,被配置为向用户提供用户环境;通信模块1340,被配置为以有线和/或无线类型与外部装置通信;以及电源管理模块1350,被配置为管理由计算系统1300使用的电源。
计算系统1300可以是个人计算机(PC),或者可以包括诸如智能电话、平板电脑或各种电子装置的移动终端。
计算系统1300可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器和DRAM。其他元件对于本领域技术人员将是显而易见的。
系统10不仅可以包括被配置为将数据存储在磁盘中的装置,诸如硬盘驱动器(HDD),还可以包括被配置为将数据存储在非易失性存储器中的装置,诸如固态驱动器(SSD)、通用闪存装置或嵌入式MMC(eMMC)装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,系统10可以被实施为各种类型的存储装置并且被安装在各种电子装置内部。
基于上述所公开技术的实施例,可以有利地减少或最小化存储器系统的操作延迟时间。另外,基于所公开技术的实施例,可以有利地减少或最小化在调用特定功能的过程中引起的开销。尽管出于说明的目的已经以特定的详情和变化的细节描述了所公开技术的各个实施例,但是本领域技术人员将理解的是,可以基于本专利文件中公开或示出的内容进行各种修改、添加和替换。
Claims (14)
1.一种系统,包括:
存储器系统,能够存储数据;以及
主机,请求将所述数据写入所述存储器系统,
其中所述存储器系统包括存储所述数据的存储器装置和高速缓存待存储在所述存储器装置中的数据的高速缓存,
其中所述存储器系统进一步在从所述主机接收到请求写入第一数据的第一命令时,将指示已经将所述第一数据高速缓存在所述高速缓存中的第一类型响应传输到所述主机,并且进一步在将所述第一类型响应传输到所述主机之后,将指示将所述第一数据存储在所述存储器装置中的操作成功或失败的第二类型响应传输到所述主机,
其中所述主机包括存储所述第一数据的写入缓冲器,并且
其中所述主机进一步在将所述第一数据存储在所述存储器装置中的操作成功之后,从所述写入缓冲器中删除所述第一数据。
2.根据权利要求1所述的系统,
其中所述主机进一步在接收到所述第一类型响应时,清除与所述第一命令相对应的门铃信息,并且
其中所述存储器系统通过对从所述主机接收的第二命令的响应消息将所述第二类型响应传输到所述主机。
3.根据权利要求2所述的系统,其中所述主机进一步在接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,将所述第一命令重新传输到所述存储器系统。
4.根据权利要求2所述的系统,其中所述主机进一步在接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,将指示在将所述第一数据存储在所述存储器装置中的操作完成之后作出响应的第三命令传输到所述存储器系统。
5.根据权利要求1所述的系统,其中所述主机进一步在接收到指示将所述第一数据存储在所述存储器装置中的操作成功的所述第二类型响应时,清除与所述第一命令相对应的门铃信息。
6.根据权利要求5所述的系统,其中所述主机进一步在接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,将全部第一数据重新传输到所述存储器系统。
7.根据权利要求1所述的系统,其中所述主机进一步在接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,清除与所述第一命令相对应的门铃信息并且将所述第一命令重新传输到所述存储器系统。
8.一种系统的操作方法,所述系统包括能够存储数据的存储器系统和请求将所述数据写入所述存储器系统的主机,所述操作方法包括:
由所述主机将请求写入第一数据的第一命令传输到所述存储器系统;
由所述存储器系统将指示已经将所述第一数据高速缓存在所述存储器系统中包括的高速缓存中的第一类型响应传输到所述主机;
在将所述第一类型响应传输到所述主机之后,由所述存储器系统将指示将所述第一数据存储在所述存储器系统中包括的存储器装置中的操作成功或失败的第二类型响应传输到所述主机;并且
在将所述第一数据存储到所述存储器装置中的操作成功之后,由所述主机从所述主机中包括的写入缓冲器中删除所述第一数据。
9.根据权利要求8所述的操作方法,
进一步包括在所述主机接收到所述第一类型响应时,由所述主机清除与所述第一命令相对应的门铃信息,并且
其中通过对所述存储器系统从所述主机接收的第二命令的响应消息将所述第二类型响应传输到所述主机。
10.根据权利要求9所述的操作方法,进一步包括,在所述主机接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,由所述主机将所述第一命令重新传输到所述存储器系统。
11.根据权利要求9所述的操作方法,进一步包括,在所述主机接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,由所述主机将指示在将所述第一数据存储在所述存储器装置中的操作完成之后作出响应的第三命令传输到所述存储器系统。
12.根据权利要求8所述的操作方法,进一步包括,在所述主机接收到指示将所述第一数据存储在所述存储器装置中的操作成功的所述第二类型响应时,由所述主机清除与所述第一命令相对应的门铃信息。
13.根据权利要求12所述的操作方法,进一步包括,在所述主机接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时,由所述主机将全部第一数据重新传输到所述存储器系统。
14.根据权利要求8所述的操作方法,进一步包括,在所述主机接收到指示将所述第一数据存储在所述存储器装置中的操作失败的所述第二类型响应时:
由所述主机清除与所述第一命令相对应的门铃信息;并且
由所述主机将所述第一命令重新传输到所述存储器系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210007846A KR20220105304A (ko) | 2021-01-20 | 2021-01-20 | 시스템 및 시스템의 동작 방법 |
KR10-2021-0007846 | 2021-01-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860153A true CN114860153A (zh) | 2022-08-05 |
Family
ID=82406396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110928757.7A Withdrawn CN114860153A (zh) | 2021-01-20 | 2021-08-13 | 系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11561725B2 (zh) |
KR (1) | KR20220105304A (zh) |
CN (1) | CN114860153A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220118004A (ko) * | 2021-02-18 | 2022-08-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102608354B1 (ko) | 2023-06-05 | 2023-12-01 | 메티스엑스 주식회사 | 전자 장치 및 이를 포함하는 컴퓨팅 시스템 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984359B2 (en) * | 2006-05-01 | 2011-07-19 | Seagate Technology, Llc | Correction of data errors in a memory buffer |
US9037793B1 (en) * | 2011-09-30 | 2015-05-19 | Emc Corporation | Managing data storage |
US10346095B2 (en) * | 2012-08-31 | 2019-07-09 | Sandisk Technologies, Llc | Systems, methods, and interfaces for adaptive cache persistence |
US9348537B2 (en) * | 2013-09-10 | 2016-05-24 | Qualcomm Incorporated | Ascertaining command completion in flash memories |
KR101790728B1 (ko) | 2016-04-22 | 2017-11-20 | 충북대학교 산학협력단 | 가상화 환경의 하이퍼바이저에서의 데이터 입출력 방법 및 이를 기록한 기록 매체 |
KR20180043451A (ko) * | 2016-10-19 | 2018-04-30 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 동작 방법 |
KR20180081236A (ko) | 2017-01-06 | 2018-07-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템 |
US10613778B2 (en) * | 2018-03-21 | 2020-04-07 | Western Digital Technologies, Inc. | Dynamic host memory allocation to a memory controller |
TWI679538B (zh) * | 2018-03-31 | 2019-12-11 | 慧榮科技股份有限公司 | 資料儲存系統之控制單元以及邏輯至物理映射表更新方法 |
US10895997B2 (en) * | 2019-02-20 | 2021-01-19 | Nutanix, Inc. | Durable client-side caching for distributed storage |
US10802762B1 (en) * | 2020-06-08 | 2020-10-13 | Open Drives LLC | Systems and methods for asynchronous writing of synchronous write requests based on a dynamic write threshold |
-
2021
- 2021-01-20 KR KR1020210007846A patent/KR20220105304A/ko active Search and Examination
- 2021-06-29 US US17/362,289 patent/US11561725B2/en active Active
- 2021-08-13 CN CN202110928757.7A patent/CN114860153A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20220229585A1 (en) | 2022-07-21 |
US11561725B2 (en) | 2023-01-24 |
KR20220105304A (ko) | 2022-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230333932A1 (en) | Memory system and operating method thereof | |
CN114067870A (zh) | 存储器系统、存储器装置以及用于操作存储器装置的方法 | |
CN114863962A (zh) | 存储器系统及其操作方法 | |
US11561725B2 (en) | System and operating method thereof | |
CN113204312A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
CN113010095A (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN114664342A (zh) | Ufs装置及其操作方法 | |
CN113903384A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
CN113703662A (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN114968856B (zh) | 存储器系统及其操作方法 | |
CN115952115A (zh) | 基于融合链表控制同步操作的存储器控制器及其操作方法 | |
CN116136738A (zh) | 使用外部装置执行后台操作的存储器系统及其操作方法 | |
US20210382655A1 (en) | Memory device, memory system, and operation method of memory device | |
CN115206393A (zh) | 存储器装置及存储器装置的操作方法 | |
CN114090473A (zh) | 存储器系统、存储器控制器及操作存储器系统的方法 | |
CN114596898A (zh) | 存储器系统及其操作方法 | |
US11960359B2 (en) | Memory system, memory controller and operating method of memory system | |
US11404137B1 (en) | Memory system and operating method of memory system | |
US11355210B2 (en) | Memory system and operating method thereof | |
CN114968078A (zh) | 存储器装置及其操作方法 | |
CN115223635A (zh) | 存储器系统及存储器系统的操作方法 | |
CN115437968A (zh) | 存储器系统及存储器系统的操作方法 | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
CN114090330A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
CN114077385A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220805 |