CN114442921B - 用于存储器子系统中的高速缓存读取的高速缓存释放命令 - Google Patents
用于存储器子系统中的高速缓存读取的高速缓存释放命令 Download PDFInfo
- Publication number
- CN114442921B CN114442921B CN202111271432.2A CN202111271432A CN114442921B CN 114442921 B CN114442921 B CN 114442921B CN 202111271432 A CN202111271432 A CN 202111271432A CN 114442921 B CN114442921 B CN 114442921B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- cache
- requestor
- planes
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 394
- 238000000034 method Methods 0.000 claims description 35
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 claims 3
- 229940044442 onfi Drugs 0.000 claims 3
- 238000012545 processing Methods 0.000 description 47
- 239000003795 chemical substances by application Substances 0.000 description 20
- 239000000872 buffer Substances 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 239000010410 layer Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main 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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0828—Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
-
- 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
-
- 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/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/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/1008—Correctness of operation, e.g. memory ordering
-
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/28—Using a specific disk cache architecture
- G06F2212/283—Plural cache memories
- G06F2212/284—Plural cache memories being distributed
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- 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/7208—Multiple 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)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本申请涉及一种用于存储器子系统中的高速缓存读取的高速缓存释放命令。一种存储器装置包含包括高速缓存寄存器的页高速缓冲存储器,经配置以具有多个存储器平面的存储器阵列,以及以可操作方式与所述存储器阵列耦合的控制逻辑。所述控制逻辑从请求方接收第一高速缓存读取命令,其请求来自所述存储器阵列的遍布所述多个存储器平面的第一数据,并且将与所述多个存储器平面的第一子集相关联且关于先前的读取命令的数据传回所述请求方,同时将与所述多个存储器平面的第二子集相关联且关于所述先前的读取命令的数据复制到所述高速缓存寄存器。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器子系统中的高速缓存读取的高速缓存释放命令。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
在一方面中,本申请提供一种存储器装置,其包括:包括高速缓存寄存器的页高速缓冲存储器;经配置以具有多个存储器平面的存储器阵列;以及以可操作方式与所述存储器阵列耦合的控制逻辑,用以执行包括以下各项的操作:从请求方接收第一高速缓存读取命令,其请求来自所述存储器阵列的遍布所述多个存储器平面的第一数据;将与所述多个存储器平面的第一子集相关联且关于先前的读取命令的数据传回所述请求方,同时将与所述多个存储器平面的第二子集相关联且关于所述先前的读取命令的数据复制到所述高速缓存寄存器;从所述请求方接收高速缓存释放命令,其指示所述请求方接收到与所述多个存储器平面的所述第一子集相关联且关于所述先前的读取命令的所述数据;以及将与所述多个存储器平面的所述第二子集相关联且关于所述先前的读取命令的所述数据传回所述请求方,同时将与所述多个存储器平面的所述第一子集相关联且关于所述第一高速缓存读取命令的数据复制到所述高速缓存寄存器。
在另一方面中,本申请进一步提供一种方法,其包括:在多平面存储器装置处且从请求方接收指示第一数据的第一高速缓存读取请求;将来自包括所述多平面存储器装置的一或多个平面的第一平面组且与先前的读取请求相关联的数据发送到所述请求方,同时将来自包括所述多平面存储器装置的一或多个平面的第二平面组且与所述先前的读取请求相关联的数据重新定位在所述多平面存储器装置内部;在所述多平面存储器装置且从所述请求方接收高速缓存释放请求,其指示所述请求方接收到来自所述第一平面组且与所述先前的读取请求相关联的所述数据;以及将来自所述第二平面组且与所述先前的读取命令相关联的所述数据发送到所述请求方,同时将来自所述第一平面组且与所述第一高速缓存读取请求相关联的数据重新定位在所述多平面存储器装置内部。
在又一方面中,本申请进一步提供一种方法,其包括:在存储器装置处且从请求方接收第一高速缓存读取命令,其请求来自所述存储器装置的存储器阵列且遍布所述存储器装置的多个存储器平面的第一数据;将与所述多个存储器平面的第一子集相关联且关于先前的读取命令的数据传回所述请求方,同时将与所述多个存储器平面的第二子集相关联且关于所述先前的读取命令的数据复制到所述存储器装置的高速缓存寄存器;从所述请求方接收高速缓存释放命令,其指示所述请求方接收到与所述多个存储器平面的所述第一子集相关联且关于所述先前的读取命令的所述数据;以及将与所述多个存储器平面的所述第二子集相关联且关于所述先前的读取命令的所述数据传回所述请求方,同时将与所述多个存储器平面的所述第一子集相关联且关于所述第一高速缓存读取命令的数据复制到所述高速缓存寄存器。
附图说明
根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。
图1示出了根据本公开的一些实施例的包含存储器子系统的示例计算系统。
图2是示出根据本公开的一些实施例的实施用于高速缓存读取的高速缓存释放命令的存储器子系统的框图。
图3是示出根据本公开的一些实施例的经配置以用于并行平面存取的多平面存储器装置的框图。
图4是根据本公开的一些实施例的处理用于存储器子系统中的高速缓存读取的高速缓存释放命令的示例方法的流程图。
图5是示出根据本公开的一些实施例的处理用于存储器子系统中的高速缓存读取的高速缓存释放命令的时序图。
图6是本公开的实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及用于存储器子系统中的高速缓存读取的高速缓存释放命令的使用。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可以利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可以提供将要存储在存储器子系统处的数据并且可以请求将要从存储器子系统检索的数据。
存储器子系统可以包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可以由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由物理块集合组成。每一块由页的集合组成。每一页由存储器单元的集合(“单元”)组成。单元是存储信息的电子电路。取决于单元类型,单元可以存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值(例如,“0”和“1”)或此类值的组合表示。
存储器装置可以由布置在二维或三维网格中的位组成。将存储器单元蚀刻到列(下文也称为位线)和行(下文也称为字线)的阵列中的硅晶片上。字线可以指存储器装置的存储器单元的一或多个行,所述一或多个行与一或多个位线一起使用以生成存储器单元中的每一者的地址。位线和字线的相交点构成存储器单元的地址。下文中,块是指用于存储数据的存储器装置的单元,并且可以包含存储器单元的组、字线组、字线或个体存储器单元。可以将一或多个块分组在一起以形成存储器装置的平面,以便允许在每一平面上进行同时操作。存储器装置可以包含执行两个或更多个存储器平面的同时存储器页存取的电路系统。例如,存储器装置可以包含可以由存储器装置的平面共享的多个存取线驱动器电路和电力电路,以促进两个或更多个存储器平面的包含不同页类型的页的同时存取。为易于描述,这些电路通常可以称为独立的平面驱动器电路。取决于所采用的存储架构,可以跨越存储器平面(即,在条带中)存储数据。因此,读取数据的片段(例如,对应于一或多个数据地址)的一个请求可以产生对存储器装置的存储器平面中的两者或更多者执行的读取操作。
在某些存储器装置中,当从例如耦合到存储器装置的存储器子系统控制器等请求方接收到读取命令或高速缓存读取命令时,存在延迟时间段,其在本文中被称为高速缓存读取时延时间(tRCBSY),是在所请求的数据可以传回请求方之前发生的。在此延迟时间段内,将所请求的数据重新定位在存储器装置内部。例如,可以将数据从存储器装置的存储器阵列(例如,包含多个平面)复制到存储器装置的页高速缓冲存储器。可以首先将数据写入页高速缓冲存储器的数据寄存器、然后将数据从数据寄存器写入页高速缓冲存储器的高速缓存寄存器,数据可以从所述高速缓存寄存器输出到请求方。例如,如果在下一读取命令或高速缓存读取命令的延迟时间段(例如,tRCBSY)内,从阵列读取来自先前的读取命令或高速缓存读取命令的数据并将所述数据存储在数据寄存器中,则在数据输出到请求方之前从数据寄存器复制所述数据。为了允许内部数据传送,此延迟时间段延长读取操作的总体时延。这导致通信总线利用率低下(即,存储器装置与请求方之间的通信总线利用率),这是因为在没有数据被传送的情况下存在明显的时间段,这对存储器子系统的总体性能产生了负面影响。
本公开的方面通过实施用于存储器子系统中的高速缓存读取的高速缓存释放命令来解决上述和其它缺陷。在一个实施例中,高速缓存释放命令允许同时处理对应于在存储器装置上执行的读取操作的两个动作。例如,当响应于对应于遍布存储器装置的存储器阵列的多个存储器平面的数据的读取请求或高速缓存读取请求时,所述数据可以分成两个存储器平面组。在一个实施例中,每一存储器平面组包含存储器装置的存储器平面的二分之一。因此,如果存储器装置中存在四个存储器平面,则第一存储器平面组可以包含两个平面(例如,P0和P1),并且第二存储器平面组可以包含两个平面(例如,P2和P3)。高速缓存释放命令允许同时(例如,在时间上至少部分地重叠)处理来自每一平面组的数据。
在一个实施例中,存储器装置从请求方接收第一高速缓存读取命令,其请求来自存储器阵列的遍布多个存储器平面的第一数据。作为响应,存储器装置可以将来自第一存储器平面组且关于先前的读取命令的数据传回请求方。可以将此数据从存储器装置的页高速缓冲存储器的高速缓存寄存器传回。同时,存储器装置可以读取来自第二存储器平面组且关于第一高速缓存读取命令的数据并且将所述数据复制到高速缓存寄存器。在接收到来自先前的读取命令的数据之后,请求方可以发出高速缓存释放命令。如果存储器装置在读取操作期间接收到高速缓存释放命令,则存储器装置可以立即将来自第二存储器平面组且关于第一高速缓存读取命令的数据从高速缓存寄存器传回请求方,并行地将来自第一存储器平面组且关于第一高速缓存读取命令的数据复制到高速缓存寄存器。
此方法的优点包含但不限于存储器子系统中改进的性能。以本文中所描述的方式,传回高速缓存寄存器中的来自一个存储器平面组的数据可以与将来自另一存储器平面组的其它数据复制到高速缓存寄存器同时进行。因此,存储器装置无需等待延迟时间段,同时将数据重新定位在存储器装置内部。因此,提高了存储器装置与请求方之间的通信总线的有效利用率,这是因为在没有数据被传送的情况下不再存在明显的时间段。因此,存储器子系统的总体读取吞吐量增大。
图1示出了根据本公开的一些实施例的包含存储器子系统110的示例计算系统100。存储器子系统110可以包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、载具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可以包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管有线还是无线的,包含例如电气、光学、磁性等的连接。
主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件堆叠。处理器芯片组可以包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可以进一步利用NVM高速(NVMe)接口、开放NAND快闪接口(ONFI)接口或一些其它接口来存取组件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1示出了存储器子系统110作为实例。一般来说,主机系统120可以经由相同通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)类型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行就地写入操作,其中可以在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND类型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一者可以包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层单元(SLC)每单元可以存储一个位。其它类型的存储器单元,例如多层单元(MLC)、三层单元(TLC)、四层单元(QLC)和五层单元(PLC)每单元可以存储多个位。在一些实施例中,存储器装置130中的每一者可以包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可以包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可以分组为可指代用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,NAND)的情况下,页可以分组以形成块。
尽管描述了例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可以包含硬件,例如一个或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可以包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可以是处理装置,其包含经配置以执行存储于本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所示的实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可以包含用于存储微码的只读存储器(ROM)。虽然图1中的示例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可以替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可以进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成命令指令以存取存储器装置130,并且将与存储器装置130相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可以包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可以从存储器子系统控制器115接收地址并且对所述地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是受管理存储器装置,其包含具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一个实施例中,存储器子系统110包含存储器接口组件113,其包含高速缓存管理器114。存储器接口组件113负责处理存储器子系统控制器115与存储器子系统110的存储器装置(例如,存储器装置130)的交互。例如,存储器接口组件113可以将对应于从主机系统120接收到的请求的存储器存取命令发送到存储器装置130,所述存储器存取命令例如编程命令、读取命令或其它命令。另外,存储器接口组件113可以从存储器装置130接收数据,例如响应于读取命令或成功地执行程序命令的确认而检索到的数据。在一些实施例中,存储器子系统控制器115包含高速缓存管理器114的至少一部分。例如,存储器子系统控制器115可以包含处理器117(处理装置),其经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,存储器接口组件113是主机系统120、应用程序或操作系统的部分。在一个实施例中,存储器接口113包含高速缓存管理器114以及其它子组件。高速缓存管理器114可以将存储器存取命令,例如读取命令、高速缓存读取命令或高速缓存释放命令,引导到存储器装置130。在一个实施例中,存储器装置130包含经配置以响应于从高速缓存管理器114接收到存储器存取命令而实行对应的存储器存取操作的高速缓存代理134。在一些实施例中,本地媒体控制器135包含高速缓存代理134的至少一部分且经配置以执行本文中所描述的功能性。在一些实施例中,使用固件、硬件组件或上述组合在存储器装置130上实施高速缓存代理134。
在一个实施例中,高速缓存代理134从例如高速缓存管理器114的请求方接收第一高速缓存读取命令,其请求来自存储器装置130的存储器阵列的遍布多个存储器平面的第一数据。作为响应,高速缓存代理134可以将来自第一存储器平面组且关于先前的读取命令的数据传回请求方。可以将此数据从存储器装置130的页高速缓冲存储器的高速缓存寄存器传回。同时,高速缓存代理134可以读取来自第二存储器平面组且关于第一高速缓存读取命令的数据并且将所述数据复制到高速缓存寄存器。在接收到来自先前的读取命令的数据之后,高速缓存管理器可以发出高速缓存释放命令。如果高速缓存代理134在读取操作期间接收到高速缓存释放命令,则高速缓存代理134可以立即将来自第二存储器平面组且关于第一高速缓存读取命令的数据从高速缓存寄存器传回高速缓存管理器114,并行地将来自第一存储器平面组且关于第一高速缓存读取命令的数据复制到高速缓存寄存器。因此,可以在接收到第一高速缓存读取命令后立即将数据从存储器装置130计时输出,而不需要延迟时间段(例如,tRCBSY),同时将数据重新定位在存储器装置内部(例如,从数据寄存器复制到高速缓存寄存器)。下文描述了关于高速缓存管理器114和高速缓存代理134的操作的另外细节。
图2是示出根据本公开的一些实施例的实施用于高速缓存读取的高速缓存释放命令的存储器子系统的框图200。在一个实施例中,存储器接口113以可操作方式与存储器装置130耦合。在一个实施例中,存储器装置130包含页高速缓存器240和存储器阵列250。存储器阵列250可以包含在例如字线252的字线与位线(未示出)的相交点处形成的存储器单元阵列。在一个实施例中,存储器单元分组成块,所述块可以进一步分成子块,其中例如字线252的给定字线例如跨越多个子块254a、254b、254c、254d共享。在一个实施例中,每个子块对应于存储器阵列250中的单独平面。与子块内的字线相关联的存储器单元的组被称为物理页。子块中的一者中的每一物理页可以包含多个页类型。例如,由单层单元(SLC)形成的物理页具有被称为较下逻辑页(LP)的单个页类型。多层单元(MLC)物理页类型可以包含LP和较上逻辑页(UP),TLC物理页类型是LP、UP和额外逻辑页(XP),并且QLC物理页类型是LP、UP、XP和顶部逻辑页(TP)。例如,由QLC存储器类型的存储器单元形成的物理页可以具有总共四个逻辑页,其中每一逻辑页可以存储不同于存储在与所述物理页相关联的其它逻辑页中的数据的数据。
取决于所使用的编程方案,存储器单元的每一逻辑页可以在单独的编程遍次中进行编程,或者多个逻辑页可以一起进行编程。例如,在QLC物理页中,LP可以在一个遍次上进行编程,并且UP、XP及TP可以在第二遍次上进行编程。其它编程方案是可能的。然而,在此实例中,在于第二遍中对UP、XP和TP进行编程之前,首先从存储器阵列250中的物理页读取来自LP的数据,并且可以将所述数据存储在存储器装置130的页高速缓冲存储器240中。页高速缓冲存储器240是用于临时存储从存储器装置130的存储器阵列250读取或写入所述存储器阵列的数据的缓冲器,并且可以包含高速缓存寄存器242和一或多个数据寄存器244-246。对于读取操作,数据从存储器阵列250读取到数据寄存器244-246中的一者中,且接着读取到高速缓存寄存器242中。存储器接口113然后可以从高速缓存寄存器242读出数据。对于编程操作,存储器接口113将数据写入高速缓存寄存器242,所述数据然后被传递到数据寄存器244-246中的一者且最后被编程到存储器阵列250。如果编程操作包含多个页(例如,UP、XP及TP),则每一页可以具有容纳对应页数据的专用数据寄存器。
在一个实施例中,高速缓存管理器114发出第一高速缓存读取命令,其由高速缓存代理134接收。第一高速缓存读取命令可以标识要从存储器阵列250读取的数据,包含遍布多个存储器平面(例如,子块254a、254b、254c、254d)的数据。作为响应,高速缓存代理134可以将与第一存储器平面组相关联且关于先前的读取命令的数据从高速缓存寄存器242传回高速缓存管理器114。同时,高速缓存代理134可以读取来自第二存储器平面组且关于第一高速缓存读取命令的数据并且将所述数据(例如,从数据寄存器244)复制到高速缓存寄存器242。在接收到来自先前的读取命令的数据之后,高速缓存管理器114可以发出高速缓存释放命令。如果高速缓存代理134在读取操作期间接收到高速缓存释放命令,则高速缓存代理134可以立即将来自第二存储器平面组且关于第一高速缓存读取命令的数据从高速缓存寄存器242传回高速缓存管理器114,同时将来自第一存储器平面组且关于第一高速缓存读取命令的数据复制到高速缓存寄存器242。随着额外的高速缓存读取命令和高速缓存释放命令由高速缓存管理器114发出且由高速缓存代理134接收,后续数据也可能会发生类似的过程。
图3是示出根据本公开的一些实施例的经配置以用于独立的并行平面存取的多平面存储器装置130的框图。存储器平面372(0)-372(3)可以各自被分成数据块,其中在存储器存取操作期间可同时存取来自存储器平面372(0)-372(3)中的两者或更多者的不同相对数据块。例如,在存储器存取操作期间,可以各自同时存取存储器平面372(0)的数据块382、存储器平面372(1)的数据块383、存储器平面372(2)的数据块384和存储器平面372(3)的数据块385中的两者或更多者。
存储器装置130包含分成存储器平面372(0)-372(3)的存储器阵列370,所述存储器平面各自包含相应数目的存储器单元。多平面存储器装置130可以进一步包含本地媒体控制器135,包含用于针对不同的存储器平面372(0)-372(3)同时执行存储器存取操作的电力控制电路和存取控制电路。存储器单元可以是非易失性存储器单元,例如NAND快闪单元,或可以通常是任何类型的存储器单元。
存储器平面372(0)-372(3)可以各自被分成数据块,其中在存储器存取操作期间可同时存取来自存储器平面372(0)-372(3)中的每一者的不同相对数据块。例如,在存储器存取操作期间,可以各自同时存取存储器平面372(0)的数据块382、存储器平面372(1)的数据块383、存储器平面372(2)的数据块384和存储器平面372(3)的数据块385。
存储器平面372(0)-372(3)中的每一者可以耦合到相应的页缓冲器376(0)-376(3)。每一页缓冲器376(0)-376(3)可以经配置以将数据提供到相应存储器平面372(0)-372(3)或从所述相应存储器平面接收数据。页缓冲器376(0)-376(3)可以由本地媒体控制器135控制。例如,从相应存储器平面372(0)-372(3)接收到的数据可以分别锁存在页缓冲器376(0)-376(3)处,且由本地媒体控制器135检索,且经由ONFI接口提供到存储器子系统控制器115。
存储器平面372(0)-372(3)中的每一者可以进一步耦合到相应的存取驱动器电路374(0)-374(3),例如存取线驱动器电路。驱动器电路374(0)-374(3)可以经配置以调节相关联的存储器平面372(0)-372(3)的相应块的页以供进行存储器存取操作,例如对数据进行编程(即,写入数据)、读取数据或擦除数据。驱动器电路374(0)-374(3中的每一者可以耦合到与相应存储器平面372(0)-372(3)相关联的相应全局存取线。全局存取线中的每一者可以在与块内的页相关联的存储器存取操作期间选择性地耦合到平面的块内的相应本地存取线。可以基于来自本地媒体控制器135的信号来控制驱动器电路374(0)-374(3)。驱动器电路374(0)-374(3)中的每一者可以包含或耦合到相应电力电路,且可基于由相应电力电路提供的电压而将电压提供到相应存取线。由电力电路提供的电压可以基于从本地媒体控制器135接收到的信号。
本地媒体控制器135可以控制驱动器电路374(0)-374(3)和页缓冲器376(0)-376(3)以同时执行与(例如,从存储器子系统控制器115接收到的)存储器命令和地址对的组中的每一者相关联的存储器存取操作。例如,本地媒体控制器135可以控制驱动器电路374(0)-374(3)和页缓冲器376(0)-376(3)以执行同时存储器存取操作。本地媒体控制器135可以包含:电力控制电路,其针对同时存储器存取操作而以顺序排列方式配置驱动器电路374(0)-374(3)中的两者或更多者;以及存取控制电路,其经配置以控制页缓冲器376(0)-376(3)中的两者或更多者以感测并锁存来自相应存储器平面372(0)-372(3)的数据,或将数据编程到相应存储器平面372(0)-372(3)以执行同时存储器存取操作。
在操作中,本地媒体控制器135可以经由ONFI总线接收存储器命令和地址对的组,其中每一对并行地或以顺序排列方式到达。在一些实例中,存储器命令和地址对的组可以各自与存储器阵列370的不同相应存储器平面372(0)-372(3)相关联。本地媒体控制器135可以经配置以响应于存储器命令和地址对的组而执行用于存储器阵列370的不同存储器平面372(0)-372(3)的同时存储器存取操作(例如,读取操作或编程操作)。例如,对于基于相应页类型(例如,UP、MP、LP、XP、SLC/MLC/TLC/QLC页)的同时存储器存取操作,本地媒体控制器135的电力控制电路可以针对与存储器命令和地址对的组相关联的两个或更多个存储器平面372(0)-372(3)而以顺序排列方式配置驱动器电路374(0)-374(3)。在已配置存取线驱动器电路374(0)-374(3)之后,本地媒体控制器135的存取控制电路可以同时控制页缓冲器376(0)-376(3),以在同时存储器存取操作期间存取与存储器命令和地址对的组相关联的两个或更多个存储器平面372(0)-372(3)中的每一者的相应页,例如检索数据或写入数据。例如,存取控制电路可以同时(例如,并行地和/或并发地)控制页缓冲器376(0)-376(3)以对位线进行充电/放电、感测来自两个或更多个存储器平面372(0)-372(3)的数据和/或锁存所述数据。
基于从本地媒体控制器135接收到的信号,耦合到与存储器命令和地址命令对的组相关联的存储器平面372(0)-372(3)的驱动器电路374(0)-374(3)可以从相关联的存储器平面372(0)-372(3)选择存储器块或存储器单元,以供存储器操作,例如读取、编程和/或擦除操作。驱动器电路374(0)-374(3)可以耦合到与相应存储器平面372(0)-372(3)相关联的不同相应全局存取线。例如,驱动器电路374(0)可以在与存储器平面372(0)相关联的第一全局存取线上驱动第一电压,驱动器电路374(1)可以在与存储器平面372(1)相关联的第三全局存取线上驱动第二电压,驱动器电路374(2)可以在与存储器平面372(2)相关联的第七全局存取线上驱动第三电压等,并且可以在其余全局存取线中的每一者上驱动其它电压。在一些实例中,除了与要存取的存储器平面372(0)-372(3)的页相关联的存取线之外,可以在所有存取线上提供通过电压。本地媒体控制器135、驱动器电路374(0)-374(3)可以允许同时存取存储器单元的不同相应块内的不同相应页和页缓冲器376(0)-376(3)。例如,可以同时存取第一存储器平面的第一块的第一页以及第二存储器平面的第二块的第二页,而不管页类型如何。
页缓冲器376(0)-376(3)可以响应于来自本地媒体控制器135和相应存储器平面372(0)-372(3)的信号而在存储器存取操作期间将数据提供到本地媒体控制器135或从所述本地媒体控制器接收数据。本地媒体控制器135可以将接收到的数据提供到存储器子系统控制器115。
应了解,存储器装置130可以包含多于或少于四个存储器平面、驱动器电路和页缓冲器。还应了解,相应全局存取线可以包含8、16、32、64、128等个全局存取线。当不同相应页是不同页类型时,本地媒体控制器135和驱动器电路374(0)-374(3)可以同时存取不同存储器平面的不同相应块内的不同相应页。例如,本地媒体控制器135可以包含多个不同的处理线程,例如处理线程334(0)-334(3)。处理线程334(0)-334(3)中的每一者可以与存储器平面372(0)-372(3)中的相应一者相关联,并且可以管理在相应平面上执行的操作。例如,处理线程334(0)-334(3)中的每一者可以将控制信号提供到驱动器电路374(0)-374(3)和页缓冲器376(0)-376(3)中的相应一者,以同时(例如,在时间上至少部分地重叠)执行那些存储器存取操作。
在一个实施例中,高速缓存代理134接收并处理由请求方发送的存储器存取命令,例如读取命令、高速缓存读取命令和高速缓存释放命令。高速缓存释放命令允许同时处理对应于在存储器装置130上执行的读取操作的两个动作。例如,当响应于对应于遍布多个存储器平面的数据的读取请求或高速缓存读取请求时,所述多个存储器平面例如存储器装置130的存储器阵列370的存储器平面372(0)-372(3),数据可以被分成两个存储器平面组。在一个实施例中,每一存储器平面组包含存储器装置130的存储器平面的二分之一。因此,如果存储器装置130中存在四个存储器平面,则第一存储器平面组可以包含两个平面(例如,372(0)和372(1)),并且第二存储器平面组可以包含两个平面(例如,372(2)和372(3))。高速缓存释放命令允许同时处理来自每一平面组的数据(例如,至少部分地在时间上重叠),使得来自一个平面组的数据可以时钟输出到请求方,而来自另一平面组的数据正在存储器装置130内部重新定位。
图4是根据本公开的一些实施例的处理用于存储器子系统中的高速缓存读取的高速缓存释放命令的示例方法的流程图。可以通过处理逻辑执行方法400,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路,等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的高速缓存管理器114和高速缓存代理134执行。尽管以特定顺序或次序示出,但除非另外规定,否则可以修改过程的次序。因此,所示实施例应仅作为实例理解,并且所示过程可以不同次序执行,且一些过程可以并行执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作405,接收命令/请求。例如,处理逻辑(例如,高速缓存代理134)可以接收存储器存取命令/请求,例如第一高速缓存读取命令502,如图5所示。图5是示出根据本公开的一些实施例的处理用于存储器子系统中的高速缓存读取的高速缓存释放命令的时序图。在一个实施例中,从请求方接收第一高速缓存读取命令,所述请求方例如存储器子系统控制器115的高速缓存管理器114。在一个实施例中,第一高速缓存读取命令请求来自例如存储器阵列250或370的存储器阵列且遍布例如存储器平面372(0)-372(3)的多个存储器平面的第一数据。例如,第一数据可以存储在子块254a-d中且与字线252相关联。在其它实施例中,请求方可以包含存储器子系统110中的一些其它组件或主机系统120。
再次参考图4,在操作410,传回数据。例如,处理逻辑可以将数据传回请求方,例如与第一平面组(例如,多平面存储器装置130的多个存储器平面的第一子集)相关联且关于先前的读取命令/请求(即,在于操作405处接收到的第一高速缓存读取命令之前接收到的读取命令/请求)的数据。所述数据可以包含数据504,如图5所示。例如,在一个实施例中,第一平面组包含存储器装置130的多个存储器平面的二分之一,例如存储器平面372(0)和372(1)。在其它实施例中,第一平面组可以包含一些其它数目的存储器平面,例如一个存储器平面或更多个存储器平面。由于数据关于先前的读取命令/请求,因此数据可以先前已从存储器阵列检索到且复制到数据寄存器244、246中的一者、接着复制到高速缓存寄存器242。在一个实施例中,处理逻辑经由耦合在存储器装置130与存储器子系统控制器115之间的ONFI总线将数据从高速缓存寄存器242发送到请求方。
在操作415,将数据重新定位在存储器装置130内部。例如,处理逻辑可以将数据复制到高速缓存寄存器242,例如与第二平面组(例如,多平面存储器装置130的多个存储器平面的第二子集)相关联且关于先前的读取命令/请求的数据。所述数据可以包含数据506,如图5所示,所述数据可以是存储在存储器阵列中的第二平面组的存储器平面上的由先前的读取命令请求的第一数据的部分。例如,在一个实施例中,第二平面组包含存储器装置130的多个存储器平面的二分之一,例如存储器平面372(2)和372(3)。在其它实施例中,第二平面组可以包含一些其它数目的存储器平面,例如一个存储器平面或更多个存储器平面。在一个实施例中,处理逻辑执行阵列读取508以检索数据、将数据复制到数据寄存器244、246中的一者、接着将数据复制到高速缓存寄存器242。在一个实施例中,同时(即,在时间上至少部分地重叠)执行操作410和415。例如,一个处理线程可以管理将数据传回请求方,与此同时,另一处理线程可以管理将数据复制到高速缓存寄存器242。
在操作420,接收命令/请求。例如,处理逻辑可以接收高速缓存释放命令——例如高速缓存释放命令510,如图5所示。在一个实施例中,从请求方接收高速缓存释放命令,所述请求方例如存储器子系统控制器115的高速缓存管理器114。在一个实施例中,高速缓存释放命令指示请求方接收到与第一平面组相关联且关于先前的读取命令的数据。
在操作425,传回数据。例如,处理逻辑可以将数据传回请求方,所述数据例如与第二平面组相关联且关于先前的读取命令的数据。所述数据可以包含数据512,如图5所示。在一个实施例中,数据可以先前已从存储器阵列检索到且复制到数据寄存器244、246中的一者、接着复制到高速缓存寄存器242(即,在操作415)。取决于实施例,处理逻辑经由ONFI总线或一些其它通信信道将数据从高速缓存寄存器242发送到请求方。
在操作430,将数据重新定位在存储器装置130内部。例如,处理逻辑可以将数据复制到高速缓存寄存器242,所述数据例如与第一平面组相关联且关于第一高速缓存读取命令的数据。所述数据可以包含数据514,如图5所示,所述数据可以是存储在存储器阵列中的第一平面组的存储器平面上的由第一高速缓存读取命令请求的第一数据的部分。在一个实施例中,处理逻辑将数据复制到数据寄存器244、246中的一者、接着将数据复制到高速缓存寄存器242。在一个实施例中,同时(即,在时间上至少部分地重叠)执行操作425和430。例如,一个处理线程可以管理将数据传回请求方,与此同时,另一处理线程可以管理将数据复制到高速缓存寄存器242。
在操作435,接收命令/请求。例如,处理逻辑可以接收存储器存取命令/请求,例如第二高速缓存读取命令516,如图5所示。在一个实施例中,从请求方接收第二高速缓存读取命令,所述请求方例如存储器子系统控制器115的高速缓存管理器114。在一个实施例中,第二高速缓存读取命令请求来自例如存储器阵列250或370的存储器阵列且遍布例如存储器平面372(0)-372(3)的多个存储器平面的第二数据。在其它实施例中,请求方可以包含存储器子系统110中的一些其它组件或主机系统120。
在操作440,传回数据。例如,处理逻辑可以将数据传回请求方,所述数据例如与第一平面组相关联且关于第一高速缓存读取命令的数据。所述数据可以包含数据518,如图5所示。在一个实施例中,数据可以先前已从存储器阵列检索到且复制到数据寄存器244、246中的一者、接着复制到高速缓存寄存器242(即,在操作430)。取决于实施例,处理逻辑经由ONFI总线或一些其它通信信道将数据从高速缓存寄存器242发送到请求方。
在操作445,将数据重新定位在存储器装置130内部。例如,处理逻辑可以将数据复制到高速缓存寄存器242,所述数据例如与第二平面组相关联且关于第一高速缓存读取命令的数据。所述数据可以包含数据520,如图5所示,所述数据可以是存储在存储器阵列中的第二平面组的存储器平面上的由第一高速缓存读取命令请求的第二数据的部分。在一个实施例中,处理逻辑将数据复制到数据寄存器244、246中的一者、接着将数据复制到高速缓存寄存器242。在一个实施例中,同时(即,在时间上至少部分地重叠)执行操作440和445。例如,一个处理线程可以管理将数据传回请求方,与此同时,另一处理线程可以管理将数据复制到高速缓存寄存器242。当额外的高速缓存读取命令和高速缓存释放命令从请求方被接收且由存储器装置130的控制逻辑相应地处理,此序列可以类似的方式继续。
图6示出了计算机系统600的示例机器,所述示例机器内可以执行用于使得所述机器执行本文所论述的方法中的任何一或多种方法的指令集。在一些实施例中,计算机系统600可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可以用于执行控制器的操作(例如,执行操作系统以执行对应于图1的高速缓存管理器114和/或高速缓存代理134的操作)。在替代实施例中,所述机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可以作为点对点(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管示出了单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多种方法。
示例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统618。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行指令626,以用于执行本文中所论述的操作和步骤。计算机系统600可以进一步包含通过网络620通信的网络接口装置608。
数据存储系统618可以包含机器可读存储媒体624(也被称为计算机可读媒体,例如非暂时性计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可以在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可以对应于图1的存储器子系统110。
在一个实施例中,指令626包含用于实施对应于图1的高速缓存管理器114和/或高速缓存代理134的功能性的指令。尽管机器可读存储媒体624在示例实施例中示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储供机器执行的指令集或对所述指令集进行编码以及使机器执行本公开的方法中的任何一或多种方法的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其他技术人员的方式。算法在这里并且通常被认为是引起期望结果的操作的自洽序列。操作是需要物理量的物理操纵的那些操作。这些量通常但不一定呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数量等是方便的。
然而,应牢记,所有这些和类似术语应与恰当的物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指计算机系统或类似电子计算装置的操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数据并将所述数据变换为计算机系统的存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的动作和过程。
本公开还涉及用于执行本文中的操作的设备。可以出于预期目的而专门构造此设备,或所述设备可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或者适于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或其可以证明构造用以执行所述方法的更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可以使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其具体示例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
Claims (20)
1.一种存储器装置,其包括:
包括高速缓存寄存器的页高速缓冲存储器;
经配置以具有多个存储器平面的存储器阵列;以及
以可操作方式与所述存储器阵列耦合的控制逻辑,用以执行包括以下各项的操作:
从请求方接收第一高速缓存读取命令,其请求来自所述存储器阵列的遍布所述多个存储器平面的第一数据;
将与所述多个存储器平面的第一子集相关联且关于先前的读取命令的数据传回所述请求方,同时将与所述多个存储器平面的第二子集相关联且关于所述先前的读取命令的数据复制到所述高速缓存寄存器;
从所述请求方接收高速缓存释放命令,其指示所述请求方接收到与所述多个存储器平面的所述第一子集相关联且关于所述先前的读取命令的所述数据;以及
将与所述多个存储器平面的所述第二子集相关联且关于所述先前的读取命令的所述数据传回所述请求方,同时将与所述多个存储器平面的所述第一子集相关联且关于所述第一高速缓存读取命令的数据复制到所述高速缓存寄存器。
2.根据权利要求1所述的存储器装置,其中所述请求方包括存储器子系统的存储器子系统控制器,所述存储器子系统包括所述存储器装置。
3.根据权利要求2所述的存储器装置,其中将数据传回所述请求方包括经由耦合在所述存储器装置与所述存储器子系统控制器之间的开放NAND快闪接口ONFI总线将所述数据从所述高速缓存寄存器发送到所述请求方。
4.根据权利要求1所述的存储器装置,其中所述多个存储器平面的所述第一子集和所述第二子集各自包括所述存储器阵列的所述多个存储器平面的二分之一。
5.根据权利要求1所述的存储器装置,其中所述控制逻辑用以执行包括以下各项的进一步操作:
从所述请求方接收第二高速缓存读取命令,其请求来自所述存储器阵列的遍布所述多个存储器平面的第二数据。
6.根据权利要求5所述的存储器装置,其中所述控制逻辑用以执行包括以下各项的进一步操作:
将与所述多个存储器平面的所述第一子集相关联且关于所述第一高速缓存读取命令的数据传回所述请求方,同时将与所述多个存储器平面的所述第二子集相关联且关于所述第一高速缓存读取命令的数据复制到所述高速缓存寄存器。
7.根据权利要求1所述的存储器装置,其中所述页高速缓冲存储器进一步包括数据寄存器,并且其中将数据复制到所述高速缓存寄存器包括将数据从所述存储器阵列复制到所述数据寄存器且将数据从所述数据寄存器复制到所述高速缓存寄存器。
8.一种操作存储器装置的方法,其包括:
在多平面存储器装置处且从请求方接收指示第一数据的第一高速缓存读取请求;
将来自包括所述多平面存储器装置的一或多个平面的第一平面组且与先前的读取请求相关联的数据发送到所述请求方,同时将来自包括所述多平面存储器装置的一或多个平面的第二平面组且与所述先前的读取请求相关联的数据重新定位在所述多平面存储器装置内部;
在所述多平面存储器装置且从所述请求方接收高速缓存释放请求,其指示所述请求方接收到来自所述第一平面组且与所述先前的读取请求相关联的所述数据;以及
将来自所述第二平面组且与所述先前的读取命令相关联的所述数据发送到所述请求方,同时将来自所述第一平面组且与所述第一高速缓存读取请求相关联的数据重新定位在所述多平面存储器装置内部。
9.根据权利要求8所述的方法,其中所述请求方包括存储器子系统的存储器子系统控制器,所述存储器子系统包括所述多平面存储器装置。
10.根据权利要求9所述的方法,其中将数据发送到所述请求方包括经由耦合在所述存储器装置与所述存储器子系统控制器之间的开放NAND快闪接口ONFI总线将所述数据从高速缓存寄存器发送到所述请求方。
11.根据权利要求8所述的方法,其中所述第一平面组和所述第二平面组各自包括多平面存储器装置的多个存储器平面的二分之一。
12.根据权利要求8所述的方法,其进一步包括:
在所述多平面存储器装置处且从所述请求方接收指示第二数据的第二高速缓存读取请求。
13.根据权利要求12所述的方法,其进一步包括:
将来自所述第一平面组且与所述第一高速缓存读取请求相关联的数据发送到所述请求方,同时将来自所述第二平面组且与所述第一高速缓存读取请求相关联的数据重新定位在所述多平面存储器装置内部。
14.根据权利要求8所述的方法,其中所述存储器装置的页高速缓冲存储器包括数据寄存器和高速缓存寄存器,并且其中将数据重新定位在所述多平面存储器装置内包括将数据从所述多平面存储器装置的存储器阵列复制到所述数据寄存器且将数据从所述数据寄存器复制到所述高速缓存寄存器。
15.一种操作存储器装置的方法,其包括:
在存储器装置处且从请求方接收第一高速缓存读取命令,其请求来自所述存储器装置的存储器阵列且遍布所述存储器装置的多个存储器平面的第一数据;
将与所述多个存储器平面的第一子集相关联且关于先前的读取命令的数据传回所述请求方,同时将与所述多个存储器平面的第二子集相关联且关于所述先前的读取命令的数据复制到所述存储器装置的高速缓存寄存器;
从所述请求方接收高速缓存释放命令,其指示所述请求方接收到与所述多个存储器平面的所述第一子集相关联且关于所述先前的读取命令的所述数据;以及
将与所述多个存储器平面的所述第二子集相关联且关于所述先前的读取命令的所述数据传回所述请求方,同时将与所述多个存储器平面的所述第一子集相关联且关于所述第一高速缓存读取命令的数据复制到所述高速缓存寄存器。
16.根据权利要求15所述的方法,其中所述请求方包括存储器子系统的存储器子系统控制器,所述存储器子系统包括所述存储器装置。
17.根据权利要求16所述的方法,其中将数据传回所述请求方包括经由耦合在所述存储器装置与所述存储器子系统控制器之间的开放NAND快闪接口ONFI总线将所述数据从所述高速缓存寄存器发送到所述请求方。
18.根据权利要求15所述的方法,其中所述多个存储器平面的所述第一子集和所述第二子集各自包括所述存储器阵列的所述多个存储器平面的二分之一。
19.根据权利要求15所述的方法,其进一步包括:
从所述请求方接收第二高速缓存读取命令,其请求来自所述存储器阵列的遍布所述多个存储器平面的第二数据。
20.根据权利要求19所述的方法,其进一步包括:
将与所述多个存储器平面的所述第一子集相关联且关于所述第一高速缓存读取命令的数据传回所述请求方,同时将与所述多个存储器平面的所述第二子集相关联且关于所述第一高速缓存读取命令的数据复制到所述高速缓存寄存器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/949,512 | 2020-10-30 | ||
US16/949,512 US11188473B1 (en) | 2020-10-30 | 2020-10-30 | Cache release command for cache reads in a memory sub-system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114442921A CN114442921A (zh) | 2022-05-06 |
CN114442921B true CN114442921B (zh) | 2024-04-05 |
Family
ID=78767794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111271432.2A Active CN114442921B (zh) | 2020-10-30 | 2021-10-29 | 用于存储器子系统中的高速缓存读取的高速缓存释放命令 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11188473B1 (zh) |
CN (1) | CN114442921B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105593942A (zh) * | 2013-09-30 | 2016-05-18 | 美光科技公司 | 非易失性存储器装置中的易失性存储器架构及相关控制器 |
CN110442304A (zh) * | 2018-05-04 | 2019-11-12 | 美光科技公司 | 用以执行连续读取操作的设备和方法 |
CN111261211A (zh) * | 2018-12-03 | 2020-06-09 | 美光科技公司 | 操作存储器的方法及存储器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6931498B2 (en) * | 2001-04-03 | 2005-08-16 | Intel Corporation | Status register architecture for flexible read-while-write device |
US20030212865A1 (en) * | 2002-05-08 | 2003-11-13 | Hicken Michael S. | Method and apparatus for flushing write cache data |
US8683139B2 (en) * | 2006-10-31 | 2014-03-25 | Hewlett-Packard Development Company, L.P. | Cache and method for cache bypass functionality |
US7822926B2 (en) * | 2007-04-16 | 2010-10-26 | Arm Limited | Cache memory |
US10372353B2 (en) * | 2017-05-31 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods to control memory operations on buffers |
-
2020
- 2020-10-30 US US16/949,512 patent/US11188473B1/en active Active
-
2021
- 2021-10-28 US US17/452,764 patent/US11669456B2/en active Active
- 2021-10-29 CN CN202111271432.2A patent/CN114442921B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105593942A (zh) * | 2013-09-30 | 2016-05-18 | 美光科技公司 | 非易失性存储器装置中的易失性存储器架构及相关控制器 |
CN110442304A (zh) * | 2018-05-04 | 2019-11-12 | 美光科技公司 | 用以执行连续读取操作的设备和方法 |
CN111261211A (zh) * | 2018-12-03 | 2020-06-09 | 美光科技公司 | 操作存储器的方法及存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN114442921A (zh) | 2022-05-06 |
US11669456B2 (en) | 2023-06-06 |
US11188473B1 (en) | 2021-11-30 |
US20220138108A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113785278B (zh) | 用于避免并发写入流之间冲突的动态数据放置 | |
US11662939B2 (en) | Checking status of multiple memory dies in a memory sub-system | |
CN113795820A (zh) | 主机系统与存储器子系统之间的输入/输出大小控制 | |
US11709605B2 (en) | Storing zones in a zone namespace on separate planes of a multi-plane memory device | |
US11726690B2 (en) | Independent parallel plane access in a multi-plane memory device | |
CN113360089A (zh) | 用于存储器子系统的命令批处理 | |
US20240103770A1 (en) | Improved memory performance using memory access command queues in memory devices | |
US11681467B2 (en) | Checking status of multiple memory dies in a memory sub-system | |
US20230176972A1 (en) | Memory performance during program suspend protocol | |
US12019550B2 (en) | Concurrent page cache resource access in a multi-plane memory device | |
CN113590022B (zh) | 用于存储器装置的系统和方法 | |
CN113360091B (zh) | 用于存取操作的内部命令 | |
CN114442921B (zh) | 用于存储器子系统中的高速缓存读取的高速缓存释放命令 | |
CN114429777A (zh) | 在编程操作暂停期间的编程操作执行 | |
US11934686B2 (en) | Data reordering at a memory subsystem | |
CN113495695B (zh) | 用于存取命令的高速缓存标识符 | |
US11693597B2 (en) | Managing package switching based on switching parameters | |
US11886346B2 (en) | Cache read context switching in a memory sub-system | |
CN115705853A (zh) | 存储器装置中的独立平面架构 | |
CN115762604A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |