CN111198656A - 用于数据迁移的系统、装置及方法 - Google Patents

用于数据迁移的系统、装置及方法 Download PDF

Info

Publication number
CN111198656A
CN111198656A CN201911097120.7A CN201911097120A CN111198656A CN 111198656 A CN111198656 A CN 111198656A CN 201911097120 A CN201911097120 A CN 201911097120A CN 111198656 A CN111198656 A CN 111198656A
Authority
CN
China
Prior art keywords
memory
data
command
controller
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
Application number
CN201911097120.7A
Other languages
English (en)
Inventor
R·M·沃克
P·罗森菲尔德
P·A·拉弗拉塔
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN111198656A publication Critical patent/CN111198656A/zh
Withdrawn legal-status Critical Current

Links

Images

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/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/0673Single storage device
    • G06F3/068Hybrid storage device

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)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请案是针对用于数据迁移的系统、装置和方法。描述用于使用存储器系统执行数据迁移操作的方法、系统和装置。所述存储器系统可包含例如控制器等用于促进可实施第一存储器技术(例如,具有相对较快存取速度)的第一存储器装置与可实施第二存储器技术(例如,具有相对较大容量)的第二存储器装置之间的数据传送的组件。所述组件可从主机装置接收所述数据迁移操作的指示,且可发起所述第一存储器装置与所述第二存储器装置之间的数据传送。所述控制器可包含一或多个缓冲区以存储在所述第一存储器装置与所述第二存储器装置之间传送的数据。在一些情况下,所述第一存储器装置与所述第二存储器装置之间的所述数据传送可在所述存储器系统内发生,而不经由所述主机装置进行传送。

Description

用于数据迁移的系统、装置及方法
交叉参考
本专利申请案要求2018年11月19日由Walker等人提交的标题为“用于数据迁移的系统、装置及方法(SYSTEMS,DEVICES,AND METHODS FOR DATA MIGRATION)”的第16/195,045号美国专利申请案的优先权,所述美国专利申请案让渡给本受让人且明确地以全文引用的方式并入本文中。
技术领域
本技术领域涉及用于数据迁移的系统、装置及方法。
背景技术
本申请案是针对用于数据迁移的系统、装置及方法。
以下内容大体上涉及操作存储器装置,且更具体地说,涉及数据迁移动态随机存取存储器。
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等各种电子装置中。通过对存储器装置的不同状态进行编程来存储信息。举例来说,二进制装置最常存储通常由逻辑1或逻辑0表示的两种状态中的一者。在其它装置中,可存储多于两个状态。为了存取所存储的信息,电子装置的组件可读取或感测存储器装置中的至少一个所存储状态。为了存储信息,电子装置的组件可写入或编程存储器装置中的逻辑状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(random accessmemory,RAM)、只读存储器(read only memory,ROM)、动态RAM(dynamic RAM,DRAM)、同步动态RAM(synchronous dynamic RAM,SDRAM)、铁电RAM(ferroelectric RAM,FeRAM)、磁性RAM(magnetic RAM,MRAM)、电阻式RAM(resistive RAM,RRAM)、快闪存储器、相变存储器(phasechange memory,PCM)等。存储器装置可为易失性或非易失性的。易失性存储器装置(例如,DRAM)除非被外部电源定期刷新,否则可能随时间推移而丢失其存储的状态。例如FeRAM的非易失性存储器可维持其所存储的逻辑状态很长一段时间,即使无外部电源存在也是这样。
一般来说,改善存储器装置可包含增加存储器单元密度、增加读取/写入速度、增加可靠性、增加数据保持、降低功率消耗或降低制造成本以及其它度量。一些存储器单元可经配置以存储多个状态。可能需要改善存储器装置的带宽(例如,在给定持续时间期间存取大资料量)。
发明内容
本公开的一个方面提供一种方法,其包括:接收第一命令以在存储器系统的第一存储器装置的第一存储体与所述存储器系统的第二存储器装置之间传送第一数据集;至少部分地基于所述第一命令向所述第一存储器装置发射待与存取命令同时执行的第二命令,以在主机装置与所述第一存储器装置的不同于所述第一存储体的第二存储体之间传送第二数据集;以及从所述第一存储器装置接收所述存取命令的执行以及与所述存取命令的所述执行同时的所述第二命令的执行的指示。
本公开的另一方面提供一种控制器,其包括:第一接口,其经配置以与存储器系统的第一存储器装置通信,所述第一存储器装置包括第一类型的存储器单元;第二接口,其经配置以与所述存储器系统的第二存储器装置通信,所述第二存储器装置包括不同于所述第一类型的第二类型的存储器单元;第一缓冲区,其与所述第一接口和所述第二接口耦合且经配置以存储待作为数据迁移操作的一部分而从所述第二存储器装置传送到所述第一存储器装置的数据;以及第二缓冲区,其与所述第一接口和所述第二接口耦合且经配置以存储待作为所述数据迁移操作的一部分而从所述第一存储器装置传送到所述第二存储器装置的数据。
本公开的另一方面提供一种设备,其包括:第一接口,其与存储器系统的第一存储器装置通信,所述第一存储器装置包括第一类型的存储器单元;第二接口,其与所述存储器系统的第二存储器装置通信,所述第二存储器装置包括不同于所述第一类型的第二类型的存储器单元;控制器,其可操作以:接收第一命令以在所述第一存储器装置的第一存储体与所述第二存储器装置之间传送第一数据集;至少部分地基于接收到所述第一命令而向所述第一存储器装置发射待与存取命令同时执行的第二命令,以在主机装置与不同于所述第一存储体的第二存储体之间传送第二数据集;以及从所述第一存储器装置接收所述存取命令的执行以及与所述存取命令的所述执行同时的所述第二命令的执行的指示。
附图说明
图1说明如本文中所公开的支持数据迁移的系统的实例。
图2说明如本文中所公开的支持数据迁移的存储器裸片的实例。
图3说明如本文中所公开的支持数据迁移的系统的实例。
图4说明如本文中所公开的支持数据迁移的系统的实例。
图5说明如本文中所公开的支持数据迁移的系统的实例。
图6和7说明如本文中所公开的支持数据迁移的时序图的实例。
图8A、8B和9说明如本文中所公开的支持数据迁移的状态寄存器的实例。
图10说明如本文中所公开的支持数据迁移的设备的框图。
图11说明如本文中所公开的支持数据迁移的一或多种方法。
具体实施方式
一些存储器装置可包含与主机装置耦合的接口,且所述接口可经配置以在存储器装置与主机装置(或主机装置的存储器控制器)之间传达命令及数据。接口可为双数据速率(DDR)接口,且可符合行业标准或规范,例如低功率DDR(LPDDR)规范、另一DRAM规范(例如,DDR4、DDR5,等),或针对于图形或高带宽存储器的不同存储器规范;或其可符合例如永久性存储器或存储级存储器规范。此类存储器系统与主机装置之间的信号接发性能可基于存储器系统的状态而变化。
举例来说,存储器系统的性能可基于所述存储器系统是否包含主机装置请求的数据(例如,在读取操作期间)或所述存储器系统是否包含存储主机装置作为存取操作的一部分而希望保存(例如,在写入操作期间)的数据的不足量空间。如果存储器系统的存储装置不包含数据或不包含足够的空间量来支持存取操作,则主机装置(或主机装置经由存储器装置)可能会将存储器装置上的数据中的一些传送到与主机装置相关联的存储装置(例如,固态驱动器(SSD))作为数据迁移操作的一部分。
在一些情况下,主机装置可使用文件系统传送数据。在使用文件系统时,数据可经由存储器系统(例如,存储器装置、存储装置)与主机装置之间的通道进行传送。经由这些通道传送数据可致使存储器装置的性能(例如,带宽或延时)在这些数据迁移操作期间降低。
在一些情况下,存储器装置可为包含至少两种类型的存储器装置的存储器系统的部分。所述存储器系统可包含具有相对较快存取速度的第一存储器装置及具有相对较大容量的第二存储器装置(例如,存储装置)。在一些情况下,第一存储器装置可包含实施易失性存储器技术的存储单元,且第二存储器装置可包含实施非易失性存储器技术的存储单元。在一些情况下,第一存储器装置可包含DRAM单元,且第二存储器装置可包含3维(3D)Not-AND(NAND)或3D XPointTM存储单元。第一存储器装置(例如,DRAM)可在第一存储器装置(例如,DRAM)与第二存储器装置(例如,3D NAND或3D XPointTM存储器装置)之间提供快速数据交换路径,可促进可用于主机装置的存储容量的增大。
当与可支持文件系统的存储装置相比时,双层存储器系统可提供改善的性能(例如,带宽),因为作为数据迁移操作的部分传送的数据一般可不经由连接主机装置与存储器系统的通道传送。通过将第二存储器装置并入到存储器系统中(而非与主机装置相关联),可减少在数据迁移操作期间经由主机装置与存储器系统之间的通道传输的数据量。因此,与存储器系统相关联的带宽和其它性能参数可改善。
本文中描述用于使用两层存储器系统执行数据迁移操作的技术。所述存储器系统可包含页面控制器,用于促进在实施第一存储器技术的第一存储器装置(例如,DRAM)与实施第二存储器技术的第二存储器装置(例如,NAND或3D XPointTM)之间的数据传送。控制器可从可与主机装置相关联的数据迁移驱动器接收数据迁移操作的指示。响应于所述指示,控制器可发起第一存储器装置与第二存储器装置之间的数据传送。控制器可包含一或多个数据缓冲区,以存储用于在第一存储器装置与第二存储器装置之间传送的数据。举例来说,控制器可包含用于存储从第二存储器装置传送到第一存储器装置的数据的数据缓冲区(例如,提交数据缓冲区)。控制器还可包含用于存储从第一存储器装置传送到第二存储器装置的数据的数据缓冲区(例如,收回数据缓冲区)。
数据迁移命令可指示第二存储器装置内的数据的地址。页面控制器可确定用于在第一存储器装置内存储数据的一或多个对应位置(例如,基于在指示数据迁移操作之前由驱动器指示的到第一存储器装置的地址映射)。在一些情况下,控制器可能会将所接收数据迁移命令分解为一或多个事务。可基于第一存储器内指示用于存储数据的一或多个位置来界定每一事务。举例来说,事务可对应于存储在第一存储器装置的单个存储体内的数据。在另一实例中,事务可对应于存储在单个存储体群集内的数据。
在一些情况下,数据迁移操作可在第一存储器装置的存储体群集中机会性地执行。在此情况下,控制器可能不会执行数据迁移命令,直到作为主机装置发起的存取操作的一部分已存取了特定存储体群集为止。在一些情况下,机会性数据迁移操作可能会在已经用于执行主机装置请求的存取操作的存取周期期间发生。存储器系统可包含用于支持数据迁移操作的额外接口,在所述数据迁移操作期间,可在已经用于存取由主机装置请求的数据的存取周期期间迁移数据的子集(例如,页面)。在此类实例中,数据迁移操作可与主机装置致使存储器装置作为存取操作的一部分被存取同时发生。在一些情况下,存储器系统可将数据迁移操作作为背景操作的一部分来执行,同时存储器装置可将对主机装置的存取操作作为前景操作的一部分来执行。
存储器装置的额外接口可与与存储器装置相关联且在一些情况下可与与存储器系统的其它存储器装置相关联的控制器耦合,所述控制器可经配置以结合存储器装置(在一些实例中,和主机装置)控制数据迁移操作的各个方面。额外接口可经配置以与控制器通信,例如交换数据、接收命令或发射状态更新。另外,存储器装置可包含一或多个缓冲区以支持数据迁移操作。举例来说,一或多个缓冲区可经配置以存储作为数据迁移操作的一部分而从存储器装置读取的数据(例如,数据页面)或被写入存储器装置的数据。在一些情况下,一或多个缓冲区可被称为数据传送缓冲区。
为促进机会性数据迁移操作,存储器装置可包含可与缓冲区(例如,数据传送缓冲区)耦合的存储体群集。存储体群集可包含存储器单元的两个或更多个存储体。主机装置可经配置以使用符合DDR规范(例如,LPDDR规范)或其它规范的接口来作为存取操作的一部分寻址存储体群集的存储体。主机装置可经配置以例如根据DDR规范作为存取操作的一部分来寻址存储体群集的单个存储体。当主机装置通过使用DDR接口发射一或多个命令和/或数据(例如,前景操作)来致使存储体群集的存储体被存取时,在一些情况下,控制器与存储器装置一起可作为数据迁移操作的一部分(例如,背景操作)在缓冲区与存储体群集的替代存储体之间传送数据(例如,读取数据、写入数据)。
以此方式,存储器装置可经配置以执行由主机装置发出的命令,且同时执行数据迁移命令。在一些情况下,存储器装置可减轻由数据迁移操作引起的性能(例如,带宽和/或延时)的降低。存储器装置可经配置以作为背景操作的一部分执行数据迁移操作,同时执行由主机装置请求的前景操作(例如,存取操作)。换句话说,主机装置可继续使用接口(例如,DDR4接口)来操作存储器装置,同时与存储器系统相关联的控制器可使用额外接口(其可从主机装置隐藏)来执行数据迁移操作,且支持存储器装置与主机装置之间的总体带宽提高。
首先在图1的存储器系统的上下文中描述本公开的各方面。接着,在图2中的存储器裸片(例如,存储器装置)的上下文中描述了本公开的特征。在图3到9中,在支持数据迁移的各种系统和状态寄存器的上下文中进一步描述本公开的特征。参考图10和11进一步说明和描述本公开的这些和其它特征,其包含与数据迁移有关的设备图和流程图。
图1说明如本文中所公开的利用一或多个存储器装置的系统100的实例。系统100可包含外部存储器控制器105、存储器装置110和耦合外部存储器控制器105与存储器装置110的多个通道115。系统100可包含一或多个存储器装置,但为易于描述,一或多个存储器装置可被描述为单个存储器装置110。
系统100可包含电子装置的各方面,例如计算装置、移动计算装置、无线装置或图形处理装置。系统100可为便携式电子装置的实例。系统100可为计算机、笔记本电脑、平板电脑、智能电话、蜂窝电话、可穿戴装置、因特网连接装置等等的实例。存储器装置110可为经配置以存储用于系统100的一或多个其它组件的数据的组件。在一些实例中,系统100经配置以用于使用基站或存取点与其它系统或装置进行双向无线通信。在一些实例中,系统100能够进行机器类型通信(MTC)、机器对机器(M2M)通信或装置对装置(D2D)通信。
系统100的至少一些部分可为主机装置的实例。此主机装置可为使用存储器来执行过程的装置的实例,所述装置例如计算装置、移动计算装置、无线装置、图形处理装置、计算机、笔记本电脑、平板计算机、智能电话、蜂窝电话、可穿戴装置、因特网连接装置、一些其它静止或便携式电子装置等等。在一些情况下,主机装置可指实施外部存储器控制器105的功能的硬件、固件、软件或其组合。在一些情况下,外部存储器控制器105可称为主机、主机装置或主机装置的存储器控制器。
在一些情况下,存储器装置110可为经配置以与系统100的其它组件通信且提供系统100可能使用或参考的物理存储器地址/空间的独立装置或组件。在一些实例中,存储器装置110可为可配置以对至少一种或多种不同类型的系统100起作用。系统100的组件与存储器装置110之间的信令可为可操作的以支持用以调制信号的调制方案、用于传达信号的不同引脚设计、系统100和存储器装置110的不同封装、系统100与存储器装置110之间的时钟信令和同步、时序惯例和/或其它因素。
存储器装置110可经配置以存储用于系统100的组件的数据。在一些情况下,存储器装置110可充当系统100的从属类装置(例如,对系统100通过外部存储器控制器105提供的命令作出响应和执行所述命令)。此类命令可包含用于存取操作的存取命令,例如用于写入操作的写入命令、用于读取操作的读取命令、用于刷新操作的刷新命令或其它命令。存储器装置110可包含两个或更多个支持用于数据存储的所需或指定容量的存储器裸片160(例如存储器芯片)。包含两个或更多个存储器裸片的存储器装置110可被称作多裸片存储器或封装(也被称作多芯片存储器或封装)。
在一些情况下,存储器装置110可支持多层存储器系统(例如,两层存储器系统)或如本文所描述的存储器系统。举例来说,多层存储器系统可包含:第一存储器裸片160-a,其可实施配置有至少两个接口(例如,如本文所描述的接口和数据端口接口)的第一类型的存储器技术(例如,DRAM或FeRAM);以及第二存储器管芯160-b,其可实施与第一类型不同的第二类型的存储器技术(例如,NAND或NAND或3D XPointTM)。第一存储器裸片160-a的接口可经配置以与支持工业标准规范(例如,LPDDR规范)的主机装置(例如,外部存储器控制器105)耦合。另外,第一存储器管芯160-a的数据端口接口可经配置以与控制器(例如,装置存储器控制器155)耦合。
存储器装置110可包含装置存储器控制器155(例如,页面控制器),用于促进第一存储器裸片160-a与第二存储器裸片160-b之间的数据传送。装置存储器控制器155可从数据迁移驱动器接收数据迁移操作的指示,所述数据迁移驱动器可与外部存储器控制器105(例如,主机装置)相关联。响应于所述指示,装置存储器控制器155可发起在第一存储器裸片160-a与第二存储器裸片160-b之间的数据传送。装置存储器控制器155可包含一或多个数据缓冲区,以存储用于在第一存储器裸片160-a与第二存储器裸片160-b之间传送的数据。举例来说,装置存储器控制器155可包含提交数据缓冲区,用于存储从第二存储器裸片160-b传送到第一存储器裸片160-a的数据。装置存储器控制器155还可包含逐出数据缓冲区,用于存储从第一存储器裸片160-a传送到第二存储器裸片160-b的数据。
数据迁移命令可指示第二存储器裸片160-b内的数据的地址。装置存储器控制器155可确定用于在第一存储器裸片160-a内存储数据的一或多个对应位置(例如,基于在指示数据迁移操作之前由驱动器指示的到第一存储器装置的地址映射)。在一些情况下,装置存储器控制器155可能会将所接收数据迁移命令分解为一或多个事务。可基于第一存储器裸片160-a内指示用于存储数据的一或多个位置来界定每一事务。举例来说,事务可对应于存储在第一存储器裸片160-a的单个存储体内的数据。在另一实例中,事务可对应于存储在单个存储体群集内的数据。
主机装置可包含数据迁移驱动器,用于促进存储器装置110内的数据传送。举例来说,数据传送可在第一存储器裸片160-a(例如DRAM)与实施第二存储器技术(例如,NAND或3D XPointTM)的第二存储器裸片160-b之间。驱动器可向存储器系统的控制器(例如,装置存储器控制器155、本地存储器控制器165)指示数据迁移操作。控制器可基于从驱动器接收到数据迁移操作指示来发起第一存储器裸片与第二存储器裸片之间的数据传送。控制器可经配置以结合第一存储器裸片160-a来控制数据迁移操作的各个方面,作为背景操作的一部分。此外,第二存储器裸片160-b可包含3D XPointTM存储器单元,且经配置以与装置存储器控制器155耦合。第二存储器裸片160-b可提供非易失性存储器容量,其可提供可供第一存储器裸片160-a(例如,DRAM)用于交换数据(例如,存储数据页面、检索数据页面)以支持提高的带宽的相对快速的存储器空间。
驱动器可将数据迁移请求分解为一或多个子命令、请求或子请求,且将那些子命令、请求或子请求发射到与具有正确存储器存储体的第一和第二存储器装置相关联的正确控制器以便促进通道交错。通道交错可增大存取操作的速度。举例来说,存取操作可经配置以并行使用多个存储器存储体,从而通过减少在给定存储器存储体上等待其它存取操作完成所花费的时间来提高存储器吞吐量。驱动器可确定交错的大小(例如,与一或多个子命令、请求或子请求中的每一者相关联的每一数据部分的大小),且相应地发射一或多个子命令、请求或子请求中的每一者。在一些情况下,驱动器可根据数据到第一存储器裸片的映射(例如,与数据相关联的地址到存储器阵列170内的位置的映射)来确定交错模式。在一些情况下,驱动器可在执行数据迁移操作之前(例如,在初始化程序期间、在配置期间)指示到控制器(例如,装置存储器控制器155或本地存储器控制器165)的映射。
系统100可进一步包含处理器120、基本输入/输出系统(BIOS)组件125、一或多个外围组件130和I/O控制器135。系统100的组件可使用总线140与彼此电子通信。
处理器120可经配置以控制系统100的至少部分。处理器120可为通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其可为这些类型的组件的组合。在此类情况下,处理器120可为中央处理单元(CPU)、图形处理单元(GPU)或系统芯片(SoC)的实例,以及其它实例。
BIOS组件125可为包含操作为固件的BIOS的软件组件,其可初始化且运行系统100的各种硬件组件。BIOS组件125还可管理处理器120与例如外围组件130、I/O控制器135等系统100的各种组件之间的数据流。BIOS组件125可包含存储于只读存储器(ROM)、快闪存储器或任何其它非易失性存储器中的程序或软件。
外围组件130可为任何输入装置或输出装置,或用于这类装置的接口,其可集成到系统100中或与所述系统集成。实例可包含磁盘控制器、声音控制器、图形控制器、以太网控制器、调制解调器、通用串行总线(USB)控制器、串行或并行端口,或外围卡插槽,例如外围组件互连(PCI)或加速图形端口(AGP)插槽。外围组件130可为所属领域的技术人员理解为外围设备的其它组件。
I/O控制器135可管理处理器120与外围组件130、输入装置145或输出装置150之间的数据通信。I/O控制器135可管理未集成到系统100中或未与所述系统集成在一起的外围装置。在一些情况下,I/O控制器135可表示与外部外围组件的物理连接或端口。
输入145可表示系统100外部的装置或信号,其将信息、信号或数据提供到系统100或其组件。这可包含用户接口或与其它装置的接口或在其它装置之间的接口。在一些情况下,输入145可为经由一或多个外围组件130与系统100介接的外围设备,或可由I/O控制器135管理。
输出150可表示在系统100外部的装置或信号,其配置成从系统100或其组件中的任一个接收输出。输出150的实例可包含显示器、音频扬声器、打印装置或印刷电路板上的另一处理器等。在一些情况下,输出150可为经由一或多个外围组件130与系统100介接的外围设备,或可由I/O控制器135管理。
系统100的组件可由经设计以执行其功能的通用或专用电路构成。这可包含配置成执行本文中所描述的功能的各种电路元件,例如,导线、晶体管、电容器、电感器、电阻器、放大器或其它有源或无源元件。
存储器装置110可包含装置存储器控制器155和一或多个存储器裸片160。每一存储器裸片160可包含本地存储器控制器165(例如,本地存储器控制器165-a、本地存储器控制器165-b,和/或本地存储器控制器165-N)和存储器阵列170(例如,存储器阵列170-a、存储器阵列170-b和/或存储器阵列170-N)。存储器阵列170可为存储器单元的集合(例如,栅格),其中每一存储器单元经配置以存储数字数据的至少一个位。参考图2更详细地描述存储器阵列170和/或存储器单元的特征。
在一些情况下,一或多个存储器裸片160可经配置以包含缓冲区(例如,如本文所描述的数据传送缓冲区)。在一些情况下,缓冲区可配置为一组较小大小的缓冲区,且所述组较小大小的缓冲区可分布在存储器阵列(例如,存储器阵列170-a)内。此类分布式缓冲区配置可促进所述组的每一较小大小的缓冲区位于可与所述组较小大小的缓冲区相关联的存储器阵列的一部分(例如,存储器阵列170-a的存储体群集)附近。在其它情况下,缓冲区可经配置以对于存储器阵列(例如,存储器阵列170-a)是共同的,且可位于存储器裸片(例如,存储器裸片160-a)内。
在一些情况下,存储器阵列170可经配置以包含可与缓冲区(例如,如本文所描述的数据传送缓冲区)耦合的一或多个存储体群集。每一存储体群集可经配置以包含两个或更多存储体。在一些情况下,主机装置(例如,外部存储器控制器105)可在存取操作(例如,读取操作、写入操作)的存取周期期间存取存储体群集的第一存储体。另外,存储体群集的第二存储体可经配置以在存取周期期间作为存取操作的一部分(例如,背景操作)与缓冲区传送数据,同时主机装置存取第一存储体(例如,前景操作)。在一些情况下,主机装置(例如,外部存储器控制器105)可经配置以在存取周期期间作为存取操作的部分存取存储体群集的单个存储体。
在一些情况下,可机会性地执行数据迁移操作。即,控制器可不执行数据迁移命令,直到已响应于来自主机装置(例如,外部存储器控制器105)的存取指令存取了第一存储器阵列(例如,存储器阵列170-a)的存储体群集为止。在一些情况下,存取指令可能与数据迁移操作或由主机装置发起的前景操作的一部分不同。在一些其它情况下,驱动器(例如,由外部存储器控制器105包含)可指示针对特定存储体群集的虚拟存取命令,以便促进在特定时间之前执行数据迁移操作。虚拟存取命令可用于与存储器系统的前景操作不相关联的存取操作。
在一些情况下,一或多个存储器裸片160可经配置以包含接口(例如,如本文所描述的页面端口接口),其经配置以作为数据迁移操作的一部分而与控制器(例如,装置存储器控制器155)通信。在一些情况下,存储器裸片(例如,存储器裸片160-a)的缓冲区可与接口耦合,且经配置以作为数据迁移操作的一部分而存储数据。在一些情况下,接口可包含经配置以在缓冲区与控制器之间发射和接收数据的数据通道、经配置以从控制器接收存取命令的命令通道、经配置以向控制器发射响应的响应通道,或数据总线,或其任何组合。
在一些情况下,一或多个存储器裸片160可经配置以包含第二接口(例如,如本文所描述的DDR接口),其可与存储体群集(例如,存储器裸片160-a的存储器阵列170-a的存储体群集)耦合。第二接口可经配置以作为数据迁移操作的一部分或在存取操作期间与主机装置(例如,外部存储器控制器105)就命令或数据进行通信。在一些情况下,一或多个存储器裸片160(例如,一或多个存储器裸片160的本地存储器控制器165)可使用第二接口从主机装置(例如,外部存储器控制器105)接收数据迁移命令。在一些情况下,一或多个存储器裸片160(例如,一或多个存储器裸片160的本地存储器控制器165)可使用第二接口来支持来自主机装置的存取命令。
存储器装置110可为存储器单元的二维(2D)阵列的实例,或可为存储器单元的三维(3D)阵列的实例。举例来说,2D存储器装置可包含单个存储器裸片160。3D存储器装置可包含两个或更多个存储器裸片160(例如,存储器裸片160-a、存储器裸片160-b和/或任何数量的存储器裸片160-N)。在3D存储器装置中,多个存储器裸片160-N可彼此堆叠。在一些情况下,3D存储器装置中的存储器裸片160-N可被称为叠组、层级、层或裸片。3D存储器装置可包含任何数量的堆叠的存储器裸片160-N(例如,两个高、三个高、四个高、五个高、六个高、七个高、八个高)。与单个2D存储器装置相比,此可增大可定位在衬底上的存储器单元的数量,继而可降低生产成本或提高存储器阵列的性能,或两者。
装置存储器控制器155可包含经配置以控制存储器装置110的操作的电路或组件。由此,装置存储器控制器155可包含使得存储器装置110能够执行命令的硬件、固件和软件,且可经配置以接收、发射或执行与存储器装置110有关的命令、数据或控制信息。装置存储器控制器155可经配置以与外部存储器控制器105、一或多个存储器裸片160或处理器120通信。
在一些实例中,装置存储器控制器155可经配置以结合一或多个存储器裸片160来控制数据迁移操作的各个方面。在一些情况下,装置存储器控制器155可称为页面控制器。在一些情况下,装置存储器控制器155可接收命令以在存储体群集的第一存储体(例如,存储器阵列170-a中的存储体群集的第一存储体)与不同的存储体(例如,存储器阵列170-b中的存储体群集的存储体)之间传送数据。装置存储器控制器155可确定在存取周期期间主机装置(例如,外部存储器控制器105)寻址存储体群集的第二存储体(例如,存储器阵列170-a中的存储体群集的第二存储体)。
另外,装置存储器控制器155(或装置存储器控制器155结合与存储器阵列170-a耦合的本地存储器控制器165-a可基于命令在主机装置(例如外部存储器控制器105)对存储体群集中的第二存储体(例如存储器阵列170-a中的存储体群集中的第二存储体)进行寻址的存取周期期间在存储体群集中的第一存储体(例如存储器阵列170-a中的存储体群集中的第一存储体)与缓冲区(例如存储器裸片160-a中的缓冲区)之间传送数据,其中所述缓冲区可经配置以存储与第一存储体相关联的数据(作为数据迁移操作的部分)。
存储器控制器可进一步向主机装置(例如,外部存储器控制器105)指示数据迁移操作的状态。所述状态可向主机装置指示数据迁移命令是否可被停止(例如,由于与数据迁移操作相关联的存储体群集未响应于来自主机装置的存取命令而被存取)或完成。在一些情况下,存储器控制器可在状态更新寄存器内指示对应数据传送缓冲区的状态(例如,存储器裸片160-a中的数据传送缓冲区是否包含有效数据)。
在一些情况下,存储器装置110可从外部存储器控制器105接收数据和/或命令。举例来说,存储器装置110可接收指示存储器装置110代表系统100的组件(例如,处理器120)存储特定数据的写入命令或指示存储器装置110要向系统100的组件(例如,处理器120)提供存储在存储器裸片160中的特定数据的读取命令。在一些情况下,装置存储器控制器155可结合存储器裸片160的本地存储器控制器165来控制本文中所描述的存储器装置110的操作。装置存储器控制器155和/或本地存储器控制器165中包含的组件的实例可包含用于解调从外部存储器控制器105接收的信号的接收器、用于调制信号且将信号发射到外部存储器控制器105的解码器、逻辑、解码器、放大器、滤波器等。
本地存储器控制器165(例如,在存储器裸片160的本地)可经配置以控制存储器裸片160的操作。而且,本地存储器控制器165可经配置以与装置存储器控制器155通信(例如,接收和传输数据和/或命令)。本地存储器控制器165可支持装置存储器控制器155以控制本文中所描述的存储器装置110的操作。在一些情况下,存储器装置110不包含装置存储器控制器155,且本地存储器控制器165或外部存储器控制器105可执行本文所描述的各种功能。由此,本地存储器控制器165可配置成与装置存储器控制器155通信,与其它本地存储器控制器165通信,或直接与外部存储器控制器105或处理器120通信。
外部存储器控制器105可经配置以实现系统100的组件(例如,处理器120)与存储器装置110之间的信息、数据和/或命令的通信。外部存储器控制器105可充当系统100的组件与存储器装置110之间的联络,使得系统100的组件可能不需要知道存储器装置的操作细节。系统100的组件可向外部存储器控制器105呈现外部存储器控制器105满足的请求(例如,读取命令或写入命令)。外部存储器控制器105可转换或转化在系统100的组件与存储器装置110之间交换的通信。在一些情况下,外部存储器控制器105可包含产生共同(源)系统时钟信号的系统时钟。在一些情况下,外部存储器控制器105可包含产生共同(源)数据时钟信号的共同数据时钟。
在一些情况下,外部存储器控制器105或系统100的其它组件或本文中所描述的其功能可由处理器120实施。举例来说,外部存储器控制器105可为由处理器120或系统100的其它组件实施的硬件、固件或软件或其某一组合。虽然外部存储器控制器105描绘为在存储器装置110外部,但在一些情况下,外部存储器控制器105或如本文中所描述的其功能可由存储器装置110实施。
举例来说,外部存储器控制器105可为由装置存储器控制器155或一或多个本地存储器控制器165实施的硬件、固件或软件或其某一组合。在一些情况下,外部存储器控制器105可跨越处理器120和存储器装置110分布,使得外部存储器控制器105的部分由处理器120实施,且其它部分由装置存储器控制器155或本地存储器控制器165实施。同样,在一些情况下,本文中归属于装置存储器控制器155或本地存储器控制器165的一或多个功能可在一些情况下由外部存储器控制器105(与处理器120分离或包含于所述处理器中)执行。
系统100的组件可使用多个通道115与存储器装置110交换信息。在一些实例中,通道115可使得能够在外部存储器控制器105与存储器装置110之间进行通信。每一通道115可包含在与系统100的组件相关联的端子之间大一或多个信号路径或传输媒体(例如,导体)。举例来说,通道115可包含第一端子,其包含外部存储器控制器105处的一或多个引脚或衬垫及存储器装置110处的一或多个引脚或衬垫。引脚可为系统100的装置的导电输入或输出点的实例,且引脚可经配置以充当通道的部分。在一些情况下,端子的引脚或衬垫可为通道115的信号路径的部分。
额外信号路径可与通道的端子耦合以在系统100的组件内路由信号。举例来说,存储器装置110可包含将信号从通道115的端子路由到存储器装置110的各种组件(例如,装置存储器控制器155、存储器裸片160、本地存储器控制器165、存储器阵列170)的信号路径(例如,在存储器装置110或其组件内部的信号路径,例如在存储器裸片160内部的信号路径)。
通道115(和相关联的信号路径和端子)可专用于传达特定类型的信息。在一些情况下,通道115可为聚合通道(aggregated channel),且因此可包含多个个别通道。举例来说,数据(DQ)通道190可为x4(例如,包含四个信号路径)、x8(例如,包含八个信号路径)、x16(包含十六个信号路径)等等。
在一些情况下,通道115可包含一或多个命令和地址(CA)通道186。CA通道186可经配置以在外部存储器控制器105与存储器装置110之间传达命令,包含与命令相关联的控制信息(例如,地址信息)。举例来说,CA通道186可包含关于所需数据的地址的读取命令。在一些情况下,CA通道186可寄存在上升时钟信号沿和/或下降时钟信号沿上。在一些情况下,CA通道186可包含八个或九个信号路径。
在一些情况下,通道115可包含一或多个时钟信号(CK)通道188。CK通道188可经配置以在外部存储器控制器105与存储器装置110之间传达一或多个共同时钟信号。每一时钟信号可经配置以在高状态与低状态之间振荡且协调外部存储器控制器105与存储器装置110的动作。在一些情况下,时钟信号可为差分输出(例如,CK_t信号和CK_c信号),并且CK通道188的信号路径可相应地予以配置。在一些情况下,时钟信号可为单端的。
在一些情况下,时钟信号可为1.5GHz信号。CK通道188可包含任何数量的信号路径。在一些情况下,时钟信号CK(例如,CK_t信号和CK_c信号)可提供用于存储器装置110的命令和寻址操作或用于存储器装置110的其它全系统操作的定时参考。时钟信号CK可因此不同地称为控制时钟信号CK、命令时钟信号CK或系统时钟信号CK。系统时钟信号CK可由系统时钟产生,所述系统时钟可包含一或多个硬件组件(例如,振荡器、晶体、逻辑门、晶体管或类似物)。
在一些情况下,通道115可包含一或多个数据(DQ)通道190。数据通道190可经配置以在外部存储器控制器105与存储器装置110之间传达数据和/或控制信息。举例来说,数据通道190可传达待写入到存储器装置110的信息(例如,双向)或从存储器装置110读取的信息。数据通道190可传达使用多种不同调制方案(例如,NRZ、PAM4)来调制的信号。
在一些情况下,通道115可包含可专用于其它目的的一或多个其它通道192。这些其它通道192可包含任何数量的信号路径。
在一些情况下,其它通道192可包含一或多个写入时钟信号(WCK)通道。虽然WCK中的‘W’在名义上可代表“写入”,但写入时钟信号WCK(例如,WCK_t信号和WCK_c信号)可提供通常用于存储器装置110的存取操作的时序参考(例如,用于读取和写入操作两者的时序参考)。因此,写入时钟信号WCK也可被称作数据时钟信号WCK。WCK通道可经配置以在外部存储器控制器105与存储器装置110之间传送共同数据时钟信号。数据时钟信号可经配置以协调外部存储器控制器105和存储器装置110的存取操作(例如,写入操作或读取操作)。在一些情况下,写入时钟信号可为差分输出(例如,WCK_t信号和WCK_c信号),并且WCK通道的信号路径可相应地予以配置。WCK通道可包含任何数量的信号路径。数据时钟信号WCK可由数据时钟产生,所述数据时钟可包含一或多个硬件组件(例如,振荡器、晶体、逻辑门、晶体管或类似物)。
在一些情况下,其它通道192可视情况包含一或多个错误检测码(EDC)通道。EDC通道可经配置以传送错误检测信号,例如校验和,以改进系统可靠性。EDC通道可包含任何数量的信号路径。
通道115可使用多种不同架构将外部存储器控制器105与存储器装置110耦合。各种架构的实例可包含总线、点对点连接、纵横开关、例如硅内插件的高密度内插件,或形成于有机衬底中的通道,或其某一组合。举例来说,在一些情况下,信号路径可至少部分地包含高密度内插件,例如硅内插件或玻璃内插件。
经由通道115传达的信号可使用多种不同调制方案进行调制。在一些情况下,二进制符号(或二进制层级)调制方案可用于调制在外部存储器控制器105与存储器装置110之间传达的信号。二进制符号调制方案可为M进制调制方案的实例,其中M等于二。二进制符号调制方案的每一符号可经配置以表示数字数据的一个位(例如符号可表示逻辑1或逻辑0)。二进制符号调制方案的实例包含(但不限于)不归零(NRZ)、单极编码、双极编码、曼彻斯特编码、具有两个符号(例如PAM2)的脉冲幅度调制(PAM)等等。
在一些情况下,多符号(或多层级)调制方案可用于调制在外部存储器控制器105与存储器装置110之间传达的信号。多符号调制方案可为M进制调制方案的实例,其中M大于或等于三。多符号调制方案的每一符号可经配置以表示数字数据的多于一个位(例如符号可表示逻辑00、逻辑01、逻辑10或逻辑11)。多符号调制方案的实例包含(但不限于)PAM4、PAM8等、正交幅度调制(QAM)、正交相移键控(QPSK)等等。多符号信号或PAM4信号可为使用包含用以编码多于一位信息的至少三个层级的调制方案来调制的信号。多符号调制方案及符号可替代地称为非二进制、多位或高阶调制方案及符号。
图2说明根据本公开的各种实例的存储器裸片200的实例。存储器裸片200可为参考图1所描述的存储器裸片160的实例。在一些情况下,存储器裸片200可称为存储器芯片、存储器装置或电子存储器设备。存储器裸片200可包含一或多个可编程以存储不同逻辑状态的存储单元205。每一存储器单元205可以可编程以存储两个或更多个状态。举例来说,存储器单元205可经配置以每次存储一位数字逻辑(例如,逻辑0和逻辑1)。在一些情况下,单个存储器单元205(例如,多电平存储器单元)可经配置以每次存储多于一位数字逻辑(例如,逻辑00、逻辑01、逻辑10或逻辑11)。
存储器单元205可将表示可编程状态的电荷存储在电容器中。如本文所用,电荷是指存在于组件或导体中或上的电荷的量,且不限于由单个质子或电子所携载的特定值。DRAM架构可包含电容器(例如电容器230),所述电容器包含介电材料以存储表示可编程状态的电荷。在一些实例中,存储器单元205可经由数字线215与感测组件245耦合。
可通过启动或选择例如字线210及/或数字线215的存取线来对存储器单元205执行例如读取和写入的操作。在一些情况下,数字线215也可称为位线。对存取线、字线和数字线或其类似物的引用可互换,而不影响理解或操作。启动或选择字线210或数字线215可包含将电压施加到相应线。
存储器裸片200可包含布置成网格状图案的存取线(例如,字线210和数字线215)。存储器单元205可定位在字线210与数字线215的交叉点处。通过偏置字线210及数字线215(例如,将电压施加到字线210或数字线215),可在其相交点处存取单个存储器单元205。
可通过行解码器220和列解码器225控制存取存储器单元205。举例来说,行解码器220可从本地存储器控制器260接收行地址且基于所接收的行地址而启动字线210。列解码器225可从本地存储器控制器260接收列地址,且可基于接收的列地址激活数字线215。举例来说,存储器裸片200可包含标记为WL_1至WL_M的多个字线210以及标记为DL_1至DL_N的多个数字线215,其中M和N取决于存储器阵列的大小。因此,通过启动字线210和数字线215,例如WL_1和DL_3,可存取其相交点处的存储器单元205。在二维或三维配置中的字线210和数字线215的相交点可称为存储器单元205的地址。
存储器单元205可包含逻辑存储组件,例如电容器230和单元开关组件235。电容器230可为介电电容器或铁电电容器的实例。电容器230的第一节点可与单元切换组件235耦合,且电容器230的第二节点可与电压源240耦合。在一些情况下,电压源240可为单元板参考电压,例如Vpl。在一些情况下,电压源240可为与板线驱动器耦合的板线的实例。单元切换组件235可为选择性地建立或取消建立两个组件之间的电子通信的晶体管或任何其它类型的开关装置的实例。
在一些情况下,一组存储器单元205可经配置以包含至少一个存储体群集,所述至少一个存储体群集可包含两个或更多个存储体的存储器单元205。在一些情况下,所述一组存储体群集各自可包含一组存储体和一组感测组件(例如,感测组件245)。在一些情况下,主机装置(例如,主机装置的存储器控制器)可在存取操作期间使用可符合DDR规范或其它规范(例如,LPDDR、DDR4、DDR5等)的接口存取存储体群集的存储体。主机装置可经配置以例如根据DDR规范存取存储体群集中的单个存储体。
当主机装置(例如,主机装置的存储器控制器)使用DDR接口存取存储体群集的存储体时,在一些情况下,控制器(例如,如本文所描述的页面控制器)结合存储器裸片200(例如,存储器裸片200的本地存储器控制器260)可使用另一接口(例如,如本文所描述的数据端口接口)作为数据迁移操作的一部分在缓冲区(例如,如本文所描述的数据传送缓冲区)与存储器群集的替代存储体之间传送数据(例如,读取数据、写入数据)。
在一些情况下,存储器裸片200可经配置以包含可经配置以与存储器裸片200的存储体群集耦合的缓冲区(例如,如本文所描述的数据传送缓冲区)。在一些情况下,缓冲区可经配置以包含一组较小大小的缓冲区,且所述一组较小大小的缓冲区可分布在包含存储器单元205的存储器阵列内。这类分布式缓冲区配置可有助于将所述组中的每一较小大小的缓冲区定位在存储器阵列的可与所述一组较小大小的缓冲区相关联的部分(例如存储体群集)附近。在其它情况下,缓冲区可经配置成为存储器裸片200的存储器阵列所共同的,且可位于存储器裸片(例如,存储器裸片200)内。
在一些实例中,缓冲区可用以在数据迁移操作期间在存储器裸片200与第二存储器裸片之间传送数据。缓冲区(例如,如本文所描述的数据传送缓冲区)可用控制器(例如,如本文所描述电页面控制器)耦合到一或多个缓冲区。页面控制器可指示(例如,经由存储于存储器裸片200内的传送寄存器)数据传送。缓冲区可经配置以在存储器裸片200与页面控制器处的数据缓冲区之间传送所指示数据。
在一些情况下,页面控制器可取决于数据迁移操作的类型而包含相异数据缓冲区(例如,分别对应于提交数据迁移操作和收回数据迁移操作的提交数据缓冲区和收回数据缓冲区)。缓冲区可经配置以在控制器处在对应于所指示的数据迁移的类型的类型的数据缓冲区之间传送数据。
选择或取消选择存储器单元205可通过启动或停用单元切换组件235来实现。电容器230可使用单元切换组件235与数字线215电子通信。举例来说,当停用单元切换组件235时,电容器230可与数字线215分离,且当启动单元切换组件235时,电容器230可与数字线215耦合。
在一些情况下,单元切换组件235为晶体管,且其操作可通过将电压施加到晶体管栅极来控制,其中晶体管栅极与晶体管源极之间的电压差可大于或小于晶体管的阈值电压。在一些情况下,单元切换组件235可为p型晶体管或n型晶体管。字线210可与单元切换组件235的栅极电子通信,且可基于施加到字线210的电压而启动/停用单元切换组件235。
字线210可为与用于对存储器单元205执行存取操作的存储器单元205电子通信的导线。在一些架构中,字线210可与存储器单元205的单元切换组件235的栅极电子通信,且可经配置以控制存储器单元的单元切换组件235。在一些架构中,字线210可与存储器单元205的电容器的节点电子通信,且存储器单元205可不包含切换组件。
数字线215可为将存储器单元205与感测组件245连接的导线。在一些架构中,存储器单元205可在存取操作的部分期间选择性地与数字线215耦合。举例来说,存储器单元205的字线210和单元切换组件235可经配置以耦合及/或分离存储器单元205的电容器230和数字线215。在一些架构中,存储器单元205可与数字线215电子通信(例如,持续的)。
感测组件245可经配置以检测存储在存储器单元205的电容器230上的电荷,且基于所存储电荷确定存储器单元205的逻辑状态。在一些情况下,由存储器单元205存储的电荷可能极小。由此,感测组件245可包含一或多个感测放大器以放大由存储器单元205输出的信号。感测放大器可在读取操作期间检测数字线215的电荷的小变化,且可基于所检测到的电荷产生对应于逻辑状态0或逻辑状态1的信号。在读取操作期间,存储器单元205的电容器230可输出信号(例如,排放电荷)到其对应的数字线215。所述信号可使数字线215的电压改变。
感测组件245可经配置以将跨越数字线215从存储器单元205接收的信号与参考信号250(例如,参考电压)进行比较。感测组件245可基于所述比较确定存储器单元205的存储状态。举例来说,在二进制信令中,如果数字线215具有比参考信号250高的电压,则感测组件245可确定存储器单元205的所存储状态为逻辑1,且如果数字线215具有比参考信号250低的电压,则感测组件245可确定存储器单元205的所存储状态为逻辑0。感测组件245可包含各种晶体管或放大器,以便检测和放大信号中的差值。
所检测到的存储器单元205的逻辑状态可作为输出255通过列解码器225输出。在一些情况下,感测组件245可为另一组件(例如,列解码器225、行解码器220)的部分。在一些情况下,感测组件245可与行解码器220或列解码器225电子通信。
本地存储器控制器260可通过各种组件(例如,行解码器220、列解码器225和感测组件245)控制存储器单元205的操作。本地存储器控制器260可为参考图1所描述的本地存储器控制器165的实例。在一些情况下,行解码器220、列解码器225及感测组件245中的一或多者可与本地存储器控制器260处于相同位置。本地存储器控制器260可经配置以从外部存储器控制器105(或参考图1所描述的装置存储器控制器155)接收命令及/或数据,将命令及/或数据转化成存储器裸片200可使用的信息,对存储器裸片200执行一个或多个操作,且响应于执行一个或多个操作将数据从存储器裸片200传达到外部存储器控制器105(或装置存储器控制器155)。
在一些情况下,本地存储器控制器260可通过更新对应于数据迁移操作对状态更新寄存器来向主机装置指示数据迁移操作的状态。所述状态可向主机装置指示数据迁移命令是否可被停止(例如,由于与数据迁移操作相关联的存储体群集未响应于来自主机装置的存取命令而被存取)或完成。在一些情况下,本地存储器控制器260可指示状态更新寄存器内的对应数据传送缓冲区的状态(例如,存储器裸片200的数据传送缓冲区是否含有有效数据)。
本地存储器控制器260可产生行和列地址信号以启动目标字线210和目标数字线215。本地存储器控制器260还可产生及控制在存储器裸片200的操作期间所使用的各种电压或电流。一般来说,本文中论述的所施加电压或电流的振幅、形状或持续时间可经调整或变化,并可针对操作存储器裸片200的过程中论述的各种操作而不同。
在一些情况下,本地存储器控制器260可经配置以对存储器裸片200的一或多个存储器单元205执行写入操作(例如编程操作)。在写入操作期间,存储器裸片200的存储器单元205可经编程以存储所需逻辑状态。在一些情况下,多个存储器单元205可在单个写入操作期间经编程。本地存储器控制器260可识别将执行写入操作的目标存储器单元205。本地存储器控制器260可识别与目标存储器单元205电子连通的目标字线210和目标数字线215(例如,目标存储器单元205的地址)。本地存储器控制器260可启动目标字线210和目标数字线215(例如,将电压施加到字线210或数字线215)以存取目标存储器单元205。本地存储器控制器260可在写入操作期间将特定信号(例如电压)施加到数字线215以将特定状态(例如电荷)存储在存储器单元205的电容器230中,所述特定状态(例如电荷)可指示所需逻辑状态。
在一些情况下,本地存储器控制器260可经配置以对存储器裸片200的一或多个存储器单元205执行读取操作(例如,感测操作)。在读取操作期间,可确定存储在存储器裸片200的存储器单元205中的逻辑状态。在一些情况下,可在单个读取操作期间感测多个存储器单元205。本地存储器控制器260可识别将执行读取操作的目标存储器单元205。本地存储器控制器260可识别与目标存储器单元205电子连通的目标字线210和目标数字线215(例如,目标存储器单元205的地址)。
本地存储器控制器260可启动目标字线210和目标数字线215(例如,将电压施加到字线210或数字线215)以存取目标存储器单元205。目标存储器单元205可响应于偏置存取线而将信号传送到感测组件245。感测组件245可放大所述信号。本地存储器控制器260可激发感测组件245(例如,锁存感测组件)且进而将从存储器单元205接收的信号与参考信号250进行比较。基于所述比较,感测组件245可确定存储在存储器单元205上的逻辑状态。作为读取操作的部分,本地存储器控制器260可将存储在存储器单元205上的逻辑状态传达到外部存储器控制器105(或装置存储器控制器155)。
在一些存储器架构中,存取存储器单元205可使存储在存储器单元205中的逻辑状态降级或毁坏。举例来说,在DRAM架构中执行的读取操作可部分或完全地将目标存储器单元的电容器放电。本地存储器控制器260可执行重写操作或刷新操作以将存储器单元恢复到其原始逻辑状态。本地存储器控制器260可在读取操作之后将逻辑状态重写到目标存储器单元。在一些情况下,重写操作可被视为读取操作的部分。另外,启动单个存取线(例如,字线210)可干扰存储在与所述存取线电子通信的一些存储器单元中的状态。因此,可对可能尚未存取的一或多个存储器单元执行重写操作或刷新操作。
图3说明如本文中所公开的支持数据迁移的系统300的实例。所述系统可包含如参考图1和2所描述的一个或多个组件。举例来说,主机装置305可为如参考图1描述的外部存储器控制器105的实例;存储器340和高密度存储器370可为如参考图1描述的存储器裸片160中的一或多者的实例;存储子系统控制器365和页面控制器315可为如参考图1所描述的装置存储器控制器155的实例;且媒体控制器320可为如参考图1所描述的本地存储器控制器165的实例,其可为如参考图2所描述的本地存储器控制器260的实例。
存储器装置310可包含多于一个的存储器裸片,如参考图1所论述。举例来说,存储器装置310可包含对应于存储器340-a和存储器340-b的多于一个的存储器裸片以及对应于高密度存储器370-a和370-b的多于一个的存储器裸片。在一些情况下,存储器芯片可能会分解为单独的双列直插式存储器模块(DIMM)。
在此情况下,存储器340-a和高密度存储器370-a可对应于DIMM或第一DIMM的第一直插式存储器模块,而存储器340-b和高密度存储器370-b可对应于DIMM或第二个DIMM的第二直插式存储模块。另外,对应于每一DIMM的路径(由路径335、355和375组成)可对应于相异通道,使得用于在高密度存储器370-a与高密度存储器370-b之间通信的路径可移动通过存储器装置310到达主机装置305(例如,分别经由路径375-a、355-a和335-a),且返回通过存储器装置310(例如,分别经由路径335-b、355-b和375-b)。
存储器装置310还可包含存储器子系统控制器365,所述存储器子系统控制器进一步包含页面控制器315和媒体控制器320。在一些情况下,页面控制器315可耦合到存储器340(例如,经由路径355和页面端口接口350)和媒体控制器320。媒体控制器320又可经由路径375耦合到高密度存储器370。
存储器装置310可支持两层存储器系统,所述两层存储器系统可包含具有相对快速存取速度的存储器340(例如,DRAM、FeRAM、PCM)。在一些情况下,存储器340可为页面迁移DRAM的实例,其经配置以在存储器装置310处存储具有相对快速存取的数据且与高密度存储器(例如,例如高密度存储器370)传送数据。存储器装置310可进一步包含具有相对大容量的高密度存储器370(例如3D NAND、3D XPointTM,或固态存储器装置)。存储器装置310可包含路径335,以经由接口345(例如,符合LPDDR、DDR3、DDR4、DDR5、GDDR3、GDDR4、GDDR5、GDDR6等的DDR接口)与主机装置305(或主机装置305的存储器控制器330)通信。
路径335可支持带宽,所述带宽可基于存储器340的状态而急剧变化,所述状态关于存储器340是否包含主机装置305请求的数据(例如,在读取操作期间)或存储器340是否包含足够空间以存储主机装置305想要在存取操作期间(例如,在写入操作期间)保存的数据。如果存储器340不包含数据或足够的空间来支持存取操作,则主机装置305(或主机装置305经由耦合到接口345的路径335)可能需要经由相同路径335存取高密度存储器370。接着,对于一些后续存取操作,到存储器装置310的路径335处的可用带宽可能会显著减小。
为了实现可变性较小的带宽(例如,防止带宽在数据迁移操作期间显著减小),可实施到存储器装置310额外接口以支持数据迁移操作,在此期间,数据子集(例如,数据页面)可作为背景操作(例如,数据迁移操作)的一部分被迁移,而主机装置305可作为前景操作的一部分来存取存储器装置310。存储器装置310的额外接口可将页面控制器315(和存储器子系统控制器365)耦合到接口345(例如,经由页面端口接口350)。
另外或替代地,页面控制器315可经由旁侧通道360耦合到主机装置305。页面控制器315可经配置以控制数据迁移操作的各个方面。另外,存储器装置310可在每一存储器340处包含缓冲区以支持数据迁移操作。举例来说,缓冲区可经配置以存储从存储器340读取的数据(例如,至少一部分数据作为数据迁移操作的一部分被传送)或作为数据迁移操作的一部分被写入到存储器340的数据。在一些情况下,缓冲区可称为数据传送缓冲区。另外或替代地,页面控制器315可包含一或多个缓冲区,用于在存储器340的数据传送缓冲区与媒体控制器320之间传送数据。在一些情况下,页面控制器315可包含用于提交数据迁移操作和收回数据操作中的每一者的相异缓冲区。
因此,系统300可使得主机装置305能够同时使用到页面控制器315和媒体控制器320的接口345-b(例如,作为前景操作的一部分)存取存储器340-b,从而在存储器340-b与高密度存储器370-b之间传送数据(例如读取数据、写入数据)(例如,作为背景数据迁移操作的一部分)。在一些情况下,存取操作可包含主机装置305通过向存储器340发出存取命令来存取存储器340,存储器340可使用所述存取命令来寻址或存取由主机装置305请求的位置。
在存取操作期间发生错误的情况下,主机装置305可向页面控制器315指示数据迁移操作。当存储器340不包含主机装置305请求的数据时(例如,在读取操作期间),可能发生错误。在此实例中,主机装置305可向页面控制器315指示对应于数据提交的数据迁移。数据提交可包含将数据从高密度存储器370传送到存储器340。在一些情况下,数据可对应于数据页面,使得页面错误可能导致用于页面提交的页面迁移。
另外或替代地,当存储器340不包含足够空间来存储主机装置305在存取操作期间想要保存的数据时(例如,在写入操作期间),可能发生错误。在此实例中,主机装置305可向页面控制器315指示对应于数据收回的数据迁移。数据收回可包含将数据从存储器340传送到高密度存储器370。在一些情况下,数据可对应于数据页面,使得页面错误可导致用于页面收回的页面迁移。在数据迁移操作期间,主机装置305可继续向存储器装置310发射存取命令,且存储器装置310可继续执行存取命令中的一或多者。
主机装置305可包含主机装置305的驱动器325和存储器控制器330。驱动器325可为页面迁移驱动器的实例,且可通过将数据迁移请求传达到存储器子系统控制器365来发起数据迁移。驱动器325可经由路径335、旁侧通道360或寄存器空间将请求发送到存储器子系统控制器365。举例来说,驱动器325可经由路径335-a和接口345-a将存储器控制器330的数据迁移请求发射到存储器340-a。存储器340-a可经由页面端口接口350-a和路径355-a向存储器子系统控制器365指示数据迁移请求。在另一实例中,驱动器325可在寄存器空间中指示数据迁移请求。在此实例中,存储器子系统控制器365可轮询寄存器空间以确定是否已请求数据迁移。
数据迁移请求可被分解为一或多个请求(例如,多于一个子请求)。即,驱动器325可确定发起数据迁移(例如,基于错误)且将数据(例如,数据基于错误)分解成数据的一或多个子区段。举例来说,驱动器325可将数据页面(例如,如由页面错误所指示)分成四个部分,且将用于数据迁移的指示分解为四个对应的相异子请求。可经由路径335-a或路径335-b发射四个子请求中的每一者(例如,可将四个子请求中的一或多者发射到相异存储器存储体)。
举例来说,可经由路径335-a发送两个子请求,同时可经由路径335-b发送两个子请求。这可被称为交错,其中驱动器325将数据分解成数据的多于一个部分。驱动器325可基于数据到存储器340的映射(例如,与数据相关联的地址到存储器340的位置的映射)来确定交错模式。在一些情况下,驱动器325可在指示执行数据迁移操作的请求之前(例如,在初始化程序期间、在配置期间)指示到页面控制器315的映射。
在接收到在存储器340与高密度存储器370之间执行数据迁移操作的请求(或执行数据迁移的一部分的子请求)之后,存储器子系统控制器365可促进传送数据(例如,由子请求指示为数据迁移操作的一部分的数据)。具体地说,页面控制器315可接收执行数据迁移操作的请求,且可通过与媒体控制器320通信来在存储器340与高密度存储器370之间传送所请求的数据。
在一些情况下,由子请求指示传送的数据可存储在存储器340-a或340-b内的多于一个存储体中。此处,页面控制器315可确定在多个事务中向或从存储器340传送数据。即,单个事务可对应于存储器340的单个存储体与页面控制器315处的数据缓冲区之间的数据传送。页面控制器315处的数据缓冲区可存储待在页面控制器315与媒体控制器320之间传送的数据(例如,对应于一或多个事务)。媒体控制器320可促进经由路径375在页面控制器315处的数据缓冲区与高密度存储器370之间的数据传送。
在存储器340与高密度存储器370之间已传送由子请求指示的数据之后,页面控制器315可更新对应于所述子请求的状态寄存器。主机装置305可轮询状态寄存器以确定何时完成数据迁移(例如,何时完成对应于数据迁移的子请求中的每一者)。在一些情况下,页面控制器315可直接经由旁侧通道360将子请求的完成传达给主机装置305。
图4说明如本文中所公开的支持数据迁移的系统400的实例。所述系统可包含如参考图1、2和3所描述的一个或多个组件。举例来说,页面控制器415可为参考图1所描述的装置存储器控制器155的实例,或可为如参考图3所描述的页面控制器315的实例。
页面控制器415可从主机装置(例如,如参考图3所描述)接收数据迁移操作的指示。页面控制器415可经由页面端口410接收指示,其可将页面端口410耦合到存储器装置(例如,如参考图3所描述的DRAM存储器装置,例如存储器340)。在此情况下,页面控制器415可经由寄存器空间或存储器映射区来接收数据迁移的指示。举例来说,页面控制器415可轮询存储器处的寄存器空间。另外或替代地,页面控制器415可经由旁侧通道420接收指示。在一些情况下,旁侧通道420可为用于页面控制器415与主机装置之间的数据迁移通信的通道。
页面端口410可为用于在第一存储器与页面控制器415之间传送的通信(例如,数据、命令、状态)的接口。页面控制器415可包含媒体控制器接口425。媒体控制器接口425可为页面控制器415在数据迁移操作期间使用一或多个通道430向或从第二存储器传送数据、命令和/或状态指示的接口。
页面控制器415可进一步包含提交队列445。提交队列445可存储与数据迁移操作相关联的一或多个请求。在一些情况下,请求可对应于在第一存储器(例如,如参考图3所论述的DRAM、存储器340)和第二存储器(例如,例如如参考图3所论述的高密度存储器370的高密度存储器)之间传送数据的命令。提交队列445可存储用于数据迁移操作的提交命令。
举例来说,在第一存储器不包含主机装置请求的数据的情况下(例如,在读取操作期间),提交队列445可存储提交命令。由提交命令指示的数据可包含从第二存储器传送到第一存储器的数据。另外或替代地,提交队列445可存储用于数据迁移操作的收回命令。举例来说,在第一不包含足够空间来存储主机装置在存取操作期间(例如,在写入操作期间)想要保存的数据的情况下,提交队列445可存储收回命令。由收回命令指示的数据可包含从第一存储器传送到第二存储器的数据。在一些情况下,提交队列445可存储状态寄存器的至少一部分。
页面控制器415可进一步包含一或多个数据缓冲区(例如,提交数据缓冲区435和/或收回数据缓冲区440),用于在数据迁移操作期间存储数据。举例来说,提交数据缓冲区435可存储在执行提交命令期间从第二存储器(例如,经由媒体控制器接口425)传送到第一存储器(例如,经由页面端口410)的数据。另外或替代地,收回数据缓冲区440可存储在执行收回命令期间从第一存储器传送到第二存储器的数据。在一些情况下,页面控制器415可利用单个数据缓冲区作为收回数据缓冲区440和提交数据缓冲区435两者。
在对应于提交命令的数据迁移操作期间,页面控制器415可接收提交命令的指示(例如,经由页面端口410、经由旁侧通道420)。页面控制器415可在提交队列445处存储提交命令。页面控制器415可经由媒体控制器接口425检索由提交命令指示的数据。在一些情况下,数据可对应于由第二存储器在提交命令内指示的地址处存储的数据页面。页面控制器415可将检索到的数据存储在提交数据缓冲区435中。
在一些情况下,页面控制器415可确定提交命令对应于一或多个事务。即,页面控制器415可将由提交命令指示的数据地址映射到第一存储器装置内的一或多个位置(例如,在接收到提交命令之前使用由主机装置指示的地址映射)。可基于第一存储器内指示用于存储数据的一或多个位置来界定每一事务。举例来说,事务可对应于存储在单个存储体内的数据。在另一实例中,事务可对应于存储在单个存储体群集内的数据。
页面控制器415可将提交命令分解成一或多个事务,其中每一事务包含在提交命令内指示的数据的相异部分。页面控制器415可将对应于第一事务的数据的第一部分从提交数据缓冲区435发射到第一存储器处的传送数据缓冲区(例如,经由页面端口410和一或多个通道405)。在一些情况下,页面控制器415可从第一存储器接收指示数据传送缓冲区可能不含有效数据的指示。这可对应于将数据的第一部分从传送数据缓冲区写入到第一存储器的第一存储体。在一些情况下,存储体群集的第一存储体可使用传送数据缓冲区传送数据,同时主机装置可能正在存取存储体群集中的第二存储体。
在页面控制器415接收到传送缓冲区不含有效数据的指示时,页面控制器415可将数据的第二部分(例如,对应于第二事务)从提交数据缓冲区435传送到第一存储器装置处的传送数据缓冲区。页面控制器可继续将数据从提交数据缓冲区435传送到第一存储器处的传送数据缓冲区,直到提交命令中包含的每一数据部分已经从提交数据缓冲区435传送到第一存储器装置为止。
在一些情况下,在数据的最后部分被传送到第一存储器装置时(例如,当页面控制器415接收到传送数据缓冲区不含有效数据的指示时),页面控制器415可向主机装置指示用于数据迁移操作的提交命令的完成。在一些情况下,指示可经由旁侧通道420直接发射到主机装置。在一些其它情况下,页面控制器415可指示在第一存储器处的完成(例如,在寄存器空间和/或第一存储器的存储器映射区内)。
在对应于收回命令的数据迁移操作期间,页面控制器415可接收收回命令的指示(例如,经由页面端口410、经由旁侧通道420)。收回命令可指示要从第一存储器传送到第二存储器的数据(例如,数据页面)。页面控制器415可在提交队列445处存储收回命令。在一些情况下,页面控制器415可确定收回命令对应于一或多个事务。即,页面控制器415可将由收回命令指示的数据地址映射到第一存储器装置内的一或多个位置(例如,在接收到收回命令之前使用由主机装置指示的地址映射)。可基于第一存储器内指示用于收回数据的一或多个位置来界定每一事务。举例来说,事务可对应于存储在单个存储体内的数据。在另一实例中,事务可对应于存储在单个存储体群集内的数据。
页面控制器415可将收回命令分解为一或多个事务,其中每一事务包含在收回命令内指示的数据的相异部分。页面控制器415可指示对应于第一存储器装置内的数据的第一部分的第一事务。在一些情况下,页面控制器415可从第一存储器接收指示数据传送缓冲区可能含有有效数据的指示。这可对应于将数据的第一部分从第一存储器的第一存储体写入到传送数据缓冲区。在一些情况下,主机装置可同时(例如,在读取或写入操作期间)存取第一存储器的相同存储体群集(例如,包含第一存储体),以将数据的第一部分从第一存储器写入到传送数据。页面控制器415可经由一或多个通道405和页面端口410将数据从传送数据缓冲区传送到收回数据缓冲区440。
在页面控制器415将数据从传送数据缓冲区传送到收回数据缓冲区440时,页面控制器415可指示对应于第一存储器内的数据的第二部分的第二事务。页面控制器可继续将数据从第一存储器处的传送数据缓冲区传送到收回数据缓冲区440,直到包含在收回命令中的每一数据部分已传送到收回数据缓冲区440为止。一旦将由收回命令指示的所有数据存储在收回数据缓冲区440中,页面控制器415就可经由媒体控制器接口425将收回命令所指示的数据发射到第二存储器。在一些情况下,数据可能对应于存储在收回命令内指示的地址处的数据页面。
在一些情况下,在数据传送到第二存储器装置时,页面控制器415可向主机装置指示用于数据迁移操作的收回命令的完成。在一些情况下,指示可经由旁侧通道420直接发射到主机装置。在一些其它情况下,页面控制器415可指示在第一存储器处的完成(例如,在寄存器空间和/或第一存储器的存储器映射区内)。
图5说明如本文中所公开的支持数据迁移的系统500。系统500说明根据本公开,驱动器525可如何支持通道交错以用于数据迁移。系统500可包含本文参考图1、2、3和4所描述的一或多个组件。举例来说,页面控制器515可为如参考图1所描述的装置存储器控制器155的实例,其可为如参考图3和4所描述的页面控制器315和415的实例。主机装置505可为如参考图1所描述的外部存储器控制器105的实例,其可为如参考图3所描述的主机装置305的实例;驱动器525可为如参考图3所描述的驱动器325的实例,其可为页面迁移驱动器的实例;存储器装置510可为如参考图3所描述的存储器装置310的实例,其可为如参考图1所描述的存储器装置110的实例。
系统500可利用两层存储器系统,其中每一DIMM 575-a包含存储器540(例如,具有相对快速存取的存储器)和高密度存储器570(例如,具有相对较高容量的存储器)。系统500还可经配置以在主机装置505同时存取存储器540时(例如,作为前景操作)作为背景操作执行数据迁移操作。
操作系统(OS)535可向驱动器525指示错误(例如,页面错误)。驱动器可将数据迁移请求发射到主机装置芯片组550处的CPU群集555。接着可将此数据迁移请求发射到主机装置芯片组550上的直接存储器存取(DMA)控制器,这可促进通道交错。DMA控制器可基于互连网络(ICN)560的硬连线连接将数据迁移请求分解为子请求。ICN 560可将命令、请求和/或子请求发射到存储器装置510的对应DIMM 575。由子请求中的每一者指示的数据可从存储器装置510传送到主机装置505。接着将数据传送回到存储器装置510。
一些存储器系统使用通道交错作为增大存取操作速度的方式。举例来说,存储器装置可通过跨越不同存储器存储体之间扩散存储器地址来增大存取操作的速度。在这些情况下,存取操作可经配置以并行地使用多个存储器存储体,从而通过减少在给定存储器存储体上等待其它存取操作完成所花费的时间来提高存储器吞吐量。ICN 560可经配置以通过包含将数据路由到多个不同存储器存储体的多个通道来支持存储器交错,以便它们可并行工作以执行单个存取操作。举例来说,主机装置可请求数据,但由于交错,所述数据可跨越多个存储器存储体扩散。在此类系统中存储或检索数据会更快,因为多个存储器存储体可能正在并行工作以执行单个存取操作。
在使用交错的系统中,主机装置可发出期望发生交错的命令(例如,数据迁移命令)。另外,主机装置可发出数据迁移命令,所述数据迁移命令期望高密度存储器位于存储器装置的外部。通过将高密度存储器570集成到存储器装置510中,由主机装置505发出的现有数据迁移命令可能被现有ICN 560错误地路由。为了解决此问题和其它问题,主机装置505可包含驱动器525以将数据迁移命令分解为子命令、请求或子请求,且使用现有ICN 560将那些子命令、请求或子请求发射到正确的位置。驱动器525可基于关于数据到存储器540的映射(例如,与数据相关联的地址到存储器540的位置的映射)确定交错模式。在一些情况下,驱动器525可在执行数据迁移操作之前(例如,在初始化程序期间、在配置期间)指示到页面控制器515的映射。
系统500可支持数据迁移作为背景进程,其中页面控制器515促进存储器540与高密度存储器570之间的数据传送。在此情况下,数据可在DIMM 575内传送,而非通过主机装置505(和可能在DIMM 575之间)传送。驱动器525通过将数据迁移请求分解为一或多个子请求且将子请求发射到页面控制器515-a来促进通道交错。
举例来说,驱动器525可将数据迁移分解为八个相异子请求(例如,每一子请求对应于页面数据的相异八分之一)。驱动器525可将八个子请求中的每一者发射到存储器装置510(例如,根据子请求路径580)。页面控制器515(例如,页面控制器515-a或515-b)接着可在存储器540与高密度存储器570之间在存储器装置510内部执行那些接收到的子请求,而非将要迁移的数据发送到主机装置505。在一些实例中,驱动器525可经由子请求路径580-a向DIMM 575-a发射四个子请求,且经由子请求路径580-b向DIMM575-b发送四个子请求。在一些情况下,DIMM 575可对应于相异通道,使得在DIMM之间划分子请求对应于通道交错。
子请求中的每一者可从驱动器525发射到页面控制器515。子请求可对应于如参考图4所论述的命令(例如,提交命令、收回命令)。在一些情况下,子请求可经由主机装置芯片组550处的CPU群集555进行通信,且经由ICN 560传达到存储器540。存储器540可将子请求传播到页面控制器515。在接收到执行在存储器540与高密度存储器570之间的数据迁移的一部分的子请求之后,页面控制器515可促进数据(例如,由子请求指示为数据迁移操作的一部分的数据)的传送。
在一些情况下,由子请求指示要传送的数据可存储在存储器540-a或550-b内的多于一个位置(例如,存储体、存储体群组、秩、行)中。此处,页面控制器515可在一或多个事务中向或从存储器540传送数据。可基于由子请求指示的存储器540内的一或多个位置来界定每一事务。举例来说,事务可对应于存储在存储器540的单个存储体内的数据。在另一实例中,事务可对应于存储在存储器540的单个存储体群集内的数据。页面控制器515可将子请求分解为一或多个事务,其中每一事务包含在子请求内指示的数据的相异部分。
页面控制器515可促进由子请求指示的一或多个事务中的每一者的执行。在子请求的执行期间,页面控制器515处的数据缓冲区(例如,提交数据缓冲区、收回数据缓冲区)可存储要在页面控制器515与媒体控制器520之间传送的数据(例如,对应于一或多个事务)。媒体控制器520又可将数据传送传达到高密度存储器570。
图6说明对应于如本文中所公开的数据迁移的时序图600。时序图600可对应于由用于数据迁移的提交命令所产生的过程。提交命令可包含一或多个命令以将数据从高密度存储器移动到存储器610。时序图600可包含本文中参考图1、2、3、4和5所描述的一或多个组件。举例来说,页面控制器615可为如参考图1所描述的装置存储器控制器155的实例,或可为如参考图3、4和5所描述的页面控制器315、415和515的实例;驱动器605可为如参考图3和5所描述的驱动器325和525的实例,其可为页面迁移驱动器的实例;存储器610可为如参考图1所描述的存储器裸片160的实例,其可为如参考图3和5所描述的存储器340和540的实例;且媒体控制器620可为如参考图1所描述的本地存储器控制器165的实例,其可为如参考图3和5所描述的媒体控制器320和520的实例。
在625处,驱动器605可从操作系统接收错误的指示。在一些情况下,在存储器610不包含操作系统请求的数据时(例如,在读取操作期间),可能发生错误。在一些情况下,所述错误可为页面错误的实例,其中所述错误指示存储器610中不包含数据页面。
响应于接收到错误指示,驱动器605可在630处将提交命令发射到存储器610。提交命令可指示待提交到存储器610的数据(例如,基于错误所指示的数据),其中提交命令可对应于数据迁移请求,以将数据从高密度媒体(例如3D NAND或3D XPointTM存储器装置)传送到存储器610。数据迁移请求可包含数据迁移请求(例如,指示对应于由错误指示的所有数据的数据传送的请求)或数据迁移子请求(例如,指示由于通道交错而导致的数据迁移的一部分的请求)。在一些情况下,所述指示可指示状态命令寄存器,其中状态命令寄存器指示待由提交命令传送的数据(例如,数据的页面或页面的一部分)。
存储器610可在635处发射提交命令。页面控制器615可接收由提交命令指示的请求(或子请求),且确定由提交命令指示的数据(例如,由错误指示的数据、由错误指示的数据的一部分)。
在640处,页面控制器615可接着向媒体控制器620发送指示以读取数据或数据的一部分(例如,如由在630或635处发射的提交命令所指示)。读取数据的指示可包含数据的地址。页面控制器615可基于提交命令来确定数据的地址(例如,对应于用于在高密度存储器处存储数据的地址的地址)。
媒体控制器620可通过将数据或数据的一部分从高密度存储器裸片读取到页面控制器615处的数据缓冲区(例如,如参考图4所描述的提交数据缓冲区)来在645处响应读取指示中的指示。
在650处,页面控制器615可确定数据缓冲区中的数据可存储在存储器610内的多于一个位置(例如,多于一个存储体、存储体群组、秩、行)中。页面控制器615可基于数据的地址到存储器610的映射来确定多于一个位置。可在625之前的时间从驱动器605接收所述映射(例如,作为配置过程的一部分)。页面控制器615可根据多于一个确定的位置来分解数据。举例来说,页面控制器615可将数据分解成一或多个数据部分,其中每一数据部分对应于存储器610处的相异位置。
页面控制器615可将提交命令划分为对应的事务。页面控制器615可将数据划分为待存储在存储器610内的不同位置的数据的第一数量的部分。页面控制器615还可将提交命令划分为第一数量的事务,每一事务指示数据的一部分到存储器610的传送。
在655处,页面控制器615可将一些数据(例如,对应于在650处确定的一或多个数据部分中的第一部分)从其数据缓冲区传送到存储器610处的传送数据缓冲区。控制器615可进一步在存储器610处的数据传送寄存器中向存储器610指示提交事务。在一些情况下,由页面控制器615向传送数据缓冲区传送一些数据可对应于由数据传送寄存器指示的单个事务。存储器610可将数据保持在其传送数据缓冲区中,直到出现将数据从传送数据缓冲区传送到存储器610的机会。
在一些情况下,传送数据的机会可对应于驱动器605存取存储器610的特定部分。举例来说,正在传送的数据可对应于特定位置(例如,存储体、存储体群组、秩、行)。在驱动器605在不同于特定位置的第二位置处存取存储器610时,可能出现将数据从传送数据缓冲区传送到特定位置的机会。在一些情况下,存取第二位置可向存储器610指示驱动器605可能不存取所述特定位置(例如,所述特定位置可能不能与第二位置同时存取)。
在660处,驱动器605可发射存取命令以存取存储器610。在660处,存取命令可建立机会来从传送数据缓冲区传送数据。存取命令可存取存储器610的第二位置,其可向存储器610指示可在不中断由主机装置请求的存储器610的存取操作(例如,写入操作、读取操作)的情况下将数据从传送数据缓冲区传送到特定位置。即,在存储器610响应于由主机装置提供的存取命令的同时,存储器610可同时将数据从传送数据缓冲区传送到存储器610的特定位置。在一些情况下,存储器610可等待将数据从传送数据缓冲区传送到特定位置,直到在660处接收到存取命令为止。
在665处,存储器610可更新传送数据缓冲区状态。所述状态可指示传送数据缓冲区可用于新数据(例如,页面控制器615可将新数据写入到传送数据缓冲区、传送数据缓冲区内的数据可能无效)。在一些情况下,页面控制器615可将第二部分数据传送到数据传送寄存器(例如,如在655处,对应于第二事务)。即,可将第二部分数据(例如,如在650处确定的)从页面控制器615处的数据缓冲区传送到存储器610处的传送数据缓冲区。在此情况下,可将第二部分数据传送到存储器610(例如,如参考660和665所论述)。此可继续(例如,在655处的数据传送、在660处的存取命令以及在665处的更新),直到页面控制器615处的数据缓冲区中的数据部分中的每一者已传送到存储器610为止。
在670处,页面控制器可将更新命令状态发射到存储器610。命令状态可指示由630和635处的提交命令指示的数据已从高密度存储器传送到存储器610(例如,由提交命令指示的子请求已完成)。
在675处,在一些情况下,驱动器605可轮询与存储器610相关联的寄存器(例如,状态就绪寄存器、存储器映射区)。所述寄存器可指示更新命令状态。在680处,存储器610可指示寄存器处的更新命令状态(例如,在670处从页面控制器615接收),从而向驱动器605传达子请求已经完成。在一些其它情况下,驱动器605可使用边带通道直接与页面控制器615就更新的命令状态进行通信,且可不执行轮询(例如,如在685处所指示)。
在690处,驱动器605可将指示子请求完成的通知发射到操作系统。
在625处的错误与在690处的通知之间的时间可对应于执行提交命令所花费的时间。在此时间期间,存储器610可在背景中将数据(例如,数据页面或数据页面的一部分)从高密度存储器迁移到存储器610,同时可在前景中在存储器610处执行一或多个存取命令。
图7说明对应于如本文中所公开的数据迁移的时序图700。时序图700可对应于由用于数据迁移的收回命令所产生的过程。收回命令可包含一或多个命令以将数据从存储器710移动到高密度存储器。时序图700可包含本文中参考图1、2、3、4和5所描述的一或多个组件。举例来说,页面控制器715可为如参考图1所描述的装置存储器控制器155的实例,或可为如参考图3到6所描述的页面控制器315、415、515和615的实例;驱动器705可为如参考图3、5和6所描述的驱动器325、525和605的实例,其可为页面迁移驱动器的实例;存储器710可为如参考图1所描述的存储器阵列170的实例,其可为如参考图3、5和6所描述的存储器340、540和610的实例;且媒体控制器720可为如参考图1所描述的本地存储器控制器175的实例,其可为如参考图3、5和6所描述的媒体控制器320、520和620的实例。
在725处,驱动器705可从操作系统接收错误的指示。在一些情况下,当存储器710不包含足够空间来存储操作系统在存取操作期间想要保存到存储器710的数据(例如,在写入操作期间)时,可能发生错误。在一些情况下,所述错误可为页面错误的实例,其中所述错误指示存储器710中不包含数据页面。
响应于接收到错误指示,驱动器705可在730处将收回命令发射到存储器710。收回命令可指示待从存储器710收回的数据(例如,基于错误所指示的数据),其中收回命令可对应于数据迁移请求,以将数据从高密度媒体(例如3D NAND或3D XPointTM存储器装置)传送到存储器710。数据迁移请求可包含页面迁移请求(例如,指示对应于由错误指示的所有数据的数据传送的请求)或页面迁移子请求(例如,指示由于通道交错而导致的数据迁移的一部分的请求)。在一些情况下,所述指示可指示状态命令寄存器,其中状态命令寄存器指示待由提交命令传送的数据(例如,页面或页面的一部分)。
存储器710可在735处发射收回命令。页面控制器515可接收由收回命令指示的请求(或子请求),且确定由收回命令指示的数据(例如,由错误指示的数据、由错误指示的数据的一部分)。在一些情况下,数据可由与数据相关联的地址(例如,对应于用于在高密度存储器处存储数据的地址的地址)指示。
在740处,页面控制器715可确定由收回命令指示的数据可存储在存储器710内的多于一个位置(例如,多于一个存储体、存储体群组、秩、行)中。页面控制器715可基于数据的地址到存储器710的映射来确定多于一个位置。可在725之前的时间(例如,作为配置过程的一部分)从驱动器705接收所述映射。页面控制器715可根据多于一个确定的位置来分解数据。举例来说,页面控制器715可将数据分解为一或多个数据部分,其中每一数据部分对应于存储器710处的相异位置。因此,页面控制器715可将请求(或子请求)分解为一或多个事务,其中每一事务对应于数据部分中的一者。
在745处,页面控制器715可对存储器710处的数据传送寄存器进行编程。即,页面控制器715可经由数据传送寄存器指示待从存储器710读取且随后写入到数据传送寄存器以传送到高密度存储器的数据的一部分。存储器710可等待将数据写入到其传送数据缓冲区,直到出现将数据从存储器710传送至传送数据的机会。在一些情况下,传送数据的机会可对应于驱动器705存取存储器710的特定部分。
举例来说,从存储器710传送的数据可对应于特定位置(例如,存储体、存储体群组、秩、行)。在驱动器705在不同于特定位置的第二位置处存取存储器710时,可能出现将数据从特定位置传送到传送数据缓冲区的机会。在一些情况下,存取第二位置可向存储器710指示驱动器705可能不存取特定位置(例如,特定位置可能不与第二位置同时存取)。
在750处,驱动器705可发射存取命令以存取存储器710。在750处,存取命令可建立机会来从数据缓冲区传送数据。存取命令可存取存储器710的第二位置,其可向存储器710指示可在不中断由主机装置请求的存储器710的操作的情况下将数据从特定位置传送到传送数据缓冲区。即,在存储器710响应于由主机装置提供的存取命令的同时,存储器710可同时将数据从存储器710的特定位置传送到传送数据缓冲区。在一些情况下,存储器710可等待将数据从特定位置传送到传送数据缓冲区,直到在750处接收到存取命令为止。
在755处,存储器710可用读取响应来更新传送缓冲区。传送数据缓冲区可含有从存储器710读取的数据的所指示部分。由此,页面控制器715可将数据从传送数据缓冲区传送到其自身的数据缓冲区。由此,传送数据缓冲区可用于新事务(例如,页面控制器715可指示待从存储器710读取到传送数据缓冲区的新数据部分)。在一些情况下,页面控制器715可将待读取的数据的第二部分指示给数据传送寄存器(例如,在745处)。在此情况下,数据的第二部分可从存储器710(例如,如参考750和755所论述)传送到页面控制器715处的数据缓冲区。此可继续(例如,745处的数据传送寄存器程序、750处的存取命令,和755处的读取响应),直到由收回命令的请求(或子请求)指示的存储器710中的数据部分中的每一者已从存储器710传送到页面控制器715处的数据缓冲区。
在760处,页面控制器715可将其数据缓冲区内的数据写入媒体控制器720。媒体控制器720可在765处以写入响应来响应于所述指示。写入响应可向页面控制器指示数据已传送到高密度存储器(例如,如在730或735处发射的收回命令所指示)。
在770处,页面控制器可将更新命令状态发射到存储器710。命令状态可指示由730和735处的收回命令指示的数据已从存储器710传送到高密度存储器(例如,由收回命令指示的子请求已完成)。
在775处,在一些情况下,驱动器705可轮询与存储器710相关联的寄存器(例如,状态就绪寄存器、存储器映射区)。寄存器可指示收回命令的状态。在780处,存储器710可指示寄存器处的更新命令状态(例如,在770处从页面控制器715接收),因此向驱动器705传达子请求已完成。在一些情况下,驱动器705可使用边带通道直接与页面控制器715就更新的命令状态785进行通信,且可不执行轮询。
在790处,驱动器705可将指示子请求完成的通知发射到操作系统。
错误725与在790处的通知之间的时间可对应于收回命令执行所花费的时间。在此时间期间,存储器710可在背景中将数据(例如,数据页面、数据页面的一部分)从存储器710迁移到高密度存储器,同时可在存储器710处在前景中执行一或多个存取命令。
图8A说明用于执行如本文中所公开的数据迁移的状态命令寄存器800-a。状态命令寄存器800-a可与图1、3、4和5中所描述的系统以及图6和7中所描述的时序图结合使用。举例来说,可使用状态命令寄存器(例如,由主机装置、由例如页面迁移驱动器等驱动器)来向存储器装置(例如,页面控制器)指示数据迁移操作。
状态命令寄存器800-a可对应于数据的子集(例如,数据页面或4096位的数据)。数据页面可分解为多个扇区。每一扇区可为状态命令寄存器800-a内的单个数据位,其指示针对数据子集的数据迁移操作是否完成。此处,状态命令寄存器800-a可表示64个数据扇区(例如,每一位可对应于4096位页面的64位)。每一位可存储逻辑‘0’或逻辑‘1’以指示是否对对应数据扇区执行数据迁移。举例来说,状态命令寄存器800-a的位8中的逻辑‘0’可指示(例如,向页面控制器)传送页面的第八数据扇区(例如,4096位页面的64位的第八扇区)。
在一些情况下,状态命令寄存器可组织为一或多个子请求805。子请求可对应于数据迁移的指示(例如,提交命令、收回命令),使得每一子请求可与相异数据迁移指示(例如,状态命令寄存器800-a内的位)相关联。在一些情况下,子请求805中的每一者可经由相异通道发射到页面控制器。然而,在一些情况下,可用的通道数量可能有限(例如,8个频道)。在此情况下,可跨越可用通道发布子请求805(例如,经由八个通道中的每一者发送到页面控制器的十六个子请求中的两个)。在一些情况下,页面控制器可接收子请求,且可进一步将所述子请求分解为一或多个事务。
在数据迁移操作期间为正在传送的数据子集产生的子请求的数量可对应于通道交错的类型。即,用于包含存储器和高密度存储器的单个存储器装置的数据迁移命令可含有一或多个子请求。在一些情况下,单个子请求可对应于4096位的交错(例如,对应于4096位数据迁移的单个子请求)。类似地,使用两个子请求可对应于2048位交错(例如,各自为2048位的两个子请求)。此处,整个状态命令寄存器800-a可在单个子请求805-a内发射。
在一些情况下,可以子请求粒度来发射指示。举例来说,单个位可用于指示针对由子请求805-a中包含的状态命令寄存器800-a的位指示的所有数据的页面迁移操作。即,指示逻辑值‘1’的单个位可指示页面控制器传送状态命令寄存器800-a指示的整个数据页面(以及对应的一或多个数据扇区)。
图8B说明用于执行如本文中所公开的数据迁移的状态命令寄存器800-b。状态命令寄存器800-b可与图1、3、4和5中所描述的系统以及图6和7中所描述的时序图结合使用。举例来说,可使用状态命令寄存器(例如,由主机装置、由例如页面迁移驱动器等驱动器)来向存储器装置(例如,页面控制器)指示页面迁移操作。
状态命令寄存器800-b可对应于数据的子集(例如,数据页面或4096位的数据)。数据页面可分解为多个扇区。每一扇区可为状态命令寄存器800-b内的单个数据位,其指示针对数据子集的数据迁移操作是否完成。此处,状态命令寄存器800-a可表示64个数据扇区(例如,每一位可对应于4096位页面的64位)。每一位可存储逻辑‘0’或逻辑‘1’以指示是否对对应数据扇区执行数据迁移。举例来说,状态命令寄存器800-b的位8中的逻辑‘0’可指示(例如,向页面控制器)传送页面的第八数据扇区(例如,4096位页面的64位的第八扇区)。状态命令寄存器800-a的每一扇区可表示将由单个存储器装置执行的单个数据迁移命令。意思是,扇区8可表示第一存储器装置将执行提交命令以将数据从第一存储器装置的高密度存储器移动到第一存储器装置的存储器。
在一些情况下,状态命令寄存器可组织为一或多个子请求805。子请求可对应于数据迁移的指示(例如,提交命令、收回命令),使得每一子请求可与相异数据迁移指示(例如,状态命令寄存器800-b内的位)相关联。在一些情况下,子请求805中的每一者可经由相异通道发射到页面控制器。然而,在一些情况下,可用的通道数量可能有限(例如,8个频道)。在此情况下,可跨越可用通道发布子请求805(例如,经由八个通道中的每一者发送到页面控制器的十六个子请求中的两个)。在一些情况下,页面控制器可接收子请求,且可进一步将所述子请求分解为一或多个事务。
在数据迁移操作期间为正在传送的数据子集产生的子请求的数量可对应于通道交错的类型。即,使用单个子请求可对应于4096位的交错(例如,对应于4096位数据迁移的单个子请求)。类似地,使用两个子请求可对应于2048位交错(例如,各自为对应于2048位的两个子请求)。此处,整个状态命令寄存器800-b可划分为对应于256位通道交错的16个子请求。
在一些情况下,可以子请求粒度来发射用于数据迁移的指示。举例来说,单个位可用于指示针对由每一子请求805中包含的每一位所指示的所有数据的页面迁移操作(例如,单个位可指示针对由子请求805-b的位0、1、2和3所指示的数据进行的数据传送迁移)。
图9说明与如本文中所公开的数据迁移操作相关联的状态命令流900。状态命令流900可包含本文参考图1到8所描述的一或多个方面。举例来说,状态命令寄存器905可为如参考图8A和8B所论述的状态命令寄存器800的实例。
状态命令寄存器905可用于存储关于待由主机装置(例如,由例如页面迁移驱动器等驱动器)和/或存储器装置(例如,存储器装置)使用的数据迁移操作的指示。页面控制器)。此处,状态命令寄存器905可包含对应于四个子请求的四个位。在一些情况下,可使用1024位交错来从4096位页面产生四个子请求。逻辑‘1’可对应于待处理的子请求的指示。逻辑‘0’可指示子请求已完成。
状态更新寄存器910可用于指示(例如,由存储器装置或由页面控制器向主机装置指示)数据迁移操作的完成。举例来说,页面控制器可在完成对应于数据迁移操作的一或多个事务时指示数据迁移操作的完成。数据迁移操作可对应于提交命令、收回命令、子请求或其组合。状态更新寄存器910可具有对应于状态命令寄存器905的许多位。状态更新寄存器的每一位可指示对应于由状态命令寄存器905的每一位所指示的子请求的完成状态。在一些实例中,逻辑‘0’可指示没有待决的数据迁移操作(例如,在数据传送缓冲区中可能不存在用于由子请求指示的数据迁移的数据),而逻辑‘1’可指示当前的数据迁移操作(例如,在数据传送缓冲区中可能存在用于由子请求指示的数据迁移的数据)。
时间t0可对应于数据迁移操作开始之前的时间。此处,状态命令寄存器905可能不指示对数据迁移操作的任何子请求(例如,状态命令寄存器905的每一位可含有逻辑‘0’)。另外,状态更新寄存器910可不指示任何当前数据迁移操作(例如,状态更新寄存器910的每一位可含有逻辑‘0’)。
在时间t1,状态命令寄存器905可通过存储逻辑'1来指示第一子请求[0],所述第一子请求[0]对应于第一数据迁移。在时间t2,状态命令寄存器可指示用于第二数据迁移的第二子请求(例如,子请求[1])。另外,状态更新寄存器910可经由逻辑‘1’指示由子请求[0]指示的数据(例如,数据的一部分)可在传送数据缓冲区中。
在时间t3,状态命令寄存器905可进一步指示对应于第三数据迁移操作相对应的第三子请求(例如,子请求[2])。在时间t3,状态更新寄存器910可能正在执行对应于第一子请求[0]的第一数据迁移操作。
在时间t4,状态命令寄存器905可指示第四子请求,即子请求[3],且状态更新寄存器910可指示对应于传送数据缓冲区中的子请求[2]的有效数据。另外,状态更新寄存器910可指示在传送数据缓冲区中不再存在对应于子请求[0]的有效数据,且状态命令寄存器905可指示子请求[0]已完成。在一些情况下,在时间t3与时间t4之间,主机装置可将存取命令发射到对应于由子请求[0]指示的数据的存储体群集。这可允许从传送数据缓冲区(例如,对应于提交命令和高密度存储器)传送数据。在一些情况下,存取命令可为由主机装置发射以便允许从传送数据缓冲区传送数据的虚拟存取命令。即,主机装置可确定在T=2与T=3之间的时间已超过某个阈值(例如,如由OS确定)。因此,主机装置可确定发射虚拟存取命令。
在时间t5,状态命令寄存器905可指示三个待决的子请求(例如,子请求[1]、子请求[2]和子请求[3])。状态更新寄存器910可指示对应于子请求[3]和子请求[2]的有效数据在传送数据缓冲区中。
在时间t6,状态更新寄存器910可指示传送数据缓冲区中当前没有任何数据待决,而状态命令寄存器905可指示可能仍在处理子请求[1]。
在时间t7,状态更新寄存器910可指示传送数据缓冲区中对应于子请求[1]的有效数据。在一些情况下,在时间t6与时间t7之间,主机装置可将存取命令发射到对应于由子请求[1]指示的数据的存储体群集。这可允许将数据传送到传送数据缓冲区(例如,对应于收回命令且从页面迁移DRAM)。
在一些情况下,可能无法及时地执行数据迁移命令(例如,子请求[1])。之所以会发生这种情况,是因为在主机装置由于其它原因致使存取同一存储体群集时,在存储体群集中机会性地执行数据迁移命令。如果主机装置未存取与子请求相关联的特定存储体群集,则可能不会执行子请求。在一些情况下,主机装置在正常操作期间可能不会存取相同的存储体群集(例如,与正常操作关联的存取命令可能不会指向相同的存储体群集)。在此情况下,数据迁移命令可能会停止。停止的数据迁移命令可对应于例如待从传送数据缓冲区传送到存储器(例如,页面迁移DRAM)的数据或待从存储器传送到传送数据缓冲区的数据。
主机装置或页面控制器可发出虚拟存取命令以允许用传送数据缓冲区传送数据。主机装置或页面控制器可通过确定从存储器装置已接收到子请求(例如,在t2处的子请求[1])以来的持续时间已满足对应于停止传送的阈值(例如,在时间t2与时间t6之间),来确定用于数据迁移命令的命令已停止。另外或替代地,存储器控制器(例如,页面控制器)可确定从存储器装置已接收到子请求以来的持续时间已满足阈值,且可向主机装置指示停止的数据迁移操作。因此,主机装置可确定发送虚拟存取命令。
在时间t8,状态命令寄存器905可指示可能没有待决的子请求(例如,状态命令寄存器905的每一位可为逻辑‘0’)。另外,在传送数据缓冲区中可能不存在由状态更新寄存器910指示有效数据。
图10展示如本文中所公开的支持数据迁移的装置1005的框图1000。装置1005可为控制器(例如,本文公开的页面控制器)的实例。装置1005可包含命令接收器1010、命令发射器1015、所接收状态管理器1020、状态发射组件1025、数据传送管理器1030和地址映射组件1035。这些模块中的每一者可直接或间接地彼此通信(例如,通过一或多个总线)。
命令接收器1010可接收第一命令,以在存储器系统的第一存储器装置的第一存储体与存储器系统的第二存储器装置之间传送第一数据集。在一些情况下,第一数据集对应于数据页面的一部分。在一些实例中,命令接收器1010可经由与用于数据、命令、状态或其组合的总线不同的边带通道从主机装置接收第一命令。在一些其它实例中,命令接收器1010可经由用于与第一存储器装置通信的接口从第一存储器装置接收第一命令。
命令发射器1015可基于第一命令将待与存取命令同时执行的第二命令发射到第一存储器装置,以在主机装置与第一存储器的不同于第一存储体的第二存储体之间传送第二数据集。在一些情况下,第一命令对应于提交命令。在此情况下,命令发射器1015可经由用于与第二存储器装置通信的接口将提交命令发射到第二存储器装置。在一些情况下,第一命令可对应于收回命令。在此实例中,命令发射器1015可将包含第二子命令的第三命令发射到第一存储器装置,其中发射第三命令是基于接收到存取命令的执行的指示。
所接收状态管理器1020可从第一存储器装置接收存取命令的执行以及与存取命令的执行同时的第二命令的执行的指示。
状态发射组件1025可经由边带通道向主机装置发射第一命令的执行的第二指示。
数据传送管理器1030可确定第一命令对应于多于一个数据传送,其中单个传送对应于第一存储器装置的单个存储体与第二存储器装置之间的数据传送。
在一些情况下,第一命令可对应于提交命令。此处,数据传送管理器1030可从第二存储器装置接收第一数据集。在一些实例中,数据传送管理器1030可基于确定存取命令对应于多于一个数据事务来将第一数据集划分为若干数据部分。在一些实例中,将数据部分中的每一者从控制器传送到与第一存储器装置相关联的缓冲区,其中发射第二命令包含传送数据部分中的至少一者。在一些情况下,传送数据部分中的每一者可包含数据传送管理器1030将数据的第一部分传送到缓冲区。传送数据部分中的每一者可进一步包含数据传送管理器1030基于接收到存取命令的执行的指示而将数据的第二部分传送至缓冲区,其中所述指示指示缓冲区是可用的。
在一些情况下,第一命令对应于收回命令。此处,数据传送管理器1030可基于发射第二命令而从第一存储器装置接收第一数据集。在一些实例中,数据传送管理器1030可基于接收到存取命令的执行的指示而将第一数据集从控制器传送到第二存储器装置,其中所述指示指示第一数据集的至少一部分已从第一存储器装置传送到与控制器相关联的缓冲区。在一些实例中,从第一存储器装置接收第一数据集可包含数据传送管理器1030将第一命令划分为对应于与单个存储体相关联的第一数据集的部分的子命令,其中第二命令包含用于从单个存储体收回数据的一部分的子命令。在一些实例中,数据传送管理器1030可从第一存储器装置接收第一数据集的第一部分。
地址映射组件1035可将与第一命令相关联的地址映射到第一存储器装置的第一存储体,其中确定第一命令对应于多于一个数据传送是基于将地址映射到第一存储体。
图11展示说明支持如本文中所公开的用于数据迁移的系统、装置和方法的方法1100的流程图。方法1100的操作可由如本文所描述的控制器(例如,如本文所描述的页面控制器)或其组件来实施。在一些实例中,控制器可执行一组指令以控制存储器系统的功能元件执行以下描述的功能。另外或替代地,控制器可使用专用硬件来执行以下描述的功能的各方面。
在1105处,控制器可接收第一命令,以在存储器系统的第一存储器装置的第一存储体与存储器系统的第二存储器装置之间传送第一数据集。1105的操作可根据本文中所描述的方法来执行。在一些实例中,1105的操作的方面可由如参考图10所描述的命令接收器执行。
在1110处,控制器可基于第一命令向第一存储器装置发射待与存取命令同时执行的第二命令,以在主机装置与第一存储器装置的不同于第一存储体的第二存储体之间传送第二数据集。1110的操作可根据本文中所描述的方法来执行。在一些实例中,1110的操作的方面可由如参考图10所描述的命令发射器执行。
在1115处,控制器可从第一存储器装置接收存取命令的执行以及与存取命令的执行同时的第二命令的执行的指示。1115的操作可根据本文中所描述的方法来执行。在一些实例中,1115的操作的方面可由如参考图10所描述的接收状态管理器执行。
描述一种用于执行例如方法1100等一或多种方法的设备。所述装置可包含用于进行以下操作的构件:接收第一命令以在存储器系统的第一存储器装置的第一存储体与所述存储器系统的第二存储器装置之间传送第一数据集;基于所述第一命令向所述第一存储器装置发射待与存取命令同时执行的第二命令,以在主机装置与第一存储器装置的不同于第一存储体的第二存储体之间传送第二数据集;以及从所述第一存储器装置接收存取命令的执行以及与存取命令的执行同时的第二命令的执行的指示。
在一些实例中,所述设备可包含用于接收第一命令的特征,可包含用于经由边带通道从主机装置接收第一命令的操作、特征、构件或指令,所述边带通道可不同于用于数据、命令、状态或其组合的总线。在一些实例中,所述设备可包含用于接收第一命令的特征,可包含用于经由不同于存储器系统的命令/地址总线或数据总线的边带通道从主机装置接收第一命令的操作、特征、构件或指令。在一些情况下,所述设备可包含用于经由边带通道向主机装置发射第一命令的执行的第二指示的特征。在一些实例中,所述设备可包含用于经由与第一存储器装置通信的接口从第一存储器装置接收第一命令的特征。
在一些实例中,所述设备可包含用于确定第一命令对应于多于一个数据传送的特征,其中单个传送对应于第一存储器装置的单个存储体与第二存储器装置之间的数据传送。
在一些实例中,所述设备可包含用于将与第一命令相关联的地址映射到第一存储器装置的第一存储体的特征,其中可基于将地址映射到第一个存储体来确定第一命令对应于多于一个数据传送。
在一些实例中,第一命令可对应于提交命令。在一些情况下,所述设备可包含用于以下操作的特征:经由与第二存储器装置通信的接口将提交命令发射到第二存储器装置;从第二存储器装置接收第一数据集;基于确定存取命令对应于多于一个数据事务而将第一数据集划分为若干数据部分;以及将数据部分中的每一者从控制器传送到与第一存储器装置相关联的缓冲区,其中发射第二命令包含传送所述数据部分中的至少一者。
在一些实例中,所述装置可包含用于基于接收到存取命令的执行的指示而将数据的第一部分传送到缓冲区且将数据的第二部分传送到缓冲区的特征,其中所述指示指示缓冲区可能可用。
在一些实例中,第一命令对应于收回命令。在一些情况下,所述设备可包含用于基于发射第二命令而从第一存储器装置接收第一数据集且基于接收到存取命令的执行的指示而将第一数据集从控制器传送到第二存储器装置的特征,其中所述指示指示第一数据集的至少一部分可能已从第一存储器装置传送到与控制器关联的缓冲区。
在一些实例中,所述设备可包含用于以下操作的特征:将第一命令划分为对应于与单个存储体相关联的第一数据集的部分的子命令的特征,其中第二命令包含用于从单个存储体收回数据的一部分的子命令;从第一存储器装置接收第一数据集的第一部分;以及将包含第二子命令的第三命令发射到第一存储器装置,其中发射第三命令可基于接收到存取命令执行的指示。在一些实例中,第一数据集对应于数据页面的一部分。
描述一种用于数据迁移的设备。所述设备可包含:第一接口,其经配置以与存储器系统的第一存储器装置通信,所述第一存储器装置包含第一类型的存储器单元;第二接口,其经配置以与所述存储器系统的第二存储器装置通信,所述第二存储器装置包含不同于所述第一类型的第二类型的存储器单元;第一缓冲区,其与所述第一接口和所述第二接口耦合且经配置以存储待作为数据迁移操作的一部分而从所述第二存储器装置传送到所述第一存储器装置的数据;以及第二缓冲区,其与所述第一接口和所述第二接口耦合且经配置以存储待作为所述数据迁移操作的一部分而从所述第一存储器装置传送到所述第二存储器装置的数据。
在一些实例中,所述设备可包含队列,其与所述第一接口耦合且经配置以接收用于在所述第一存储器装置与所述第二存储器装置之间传送数据的命令。在一些情况下,队列可经配置以通过第一接口接收命令。
在一些实例中,所述控制器可经配置以经由所述第一接口从所述第一存储器装置接收对用于在所述第一存储器装置与主机装置之间传送数据的存取命令的执行的指示。
在一些实例中,所述设备可包含第三接口,所述第三接口经配置以经由边带通道与主机装置通信,所述边带通道可不同于用于数据、命令、状态或其组合的总线,其中所述队列可经配置以经由所述边带通道从所述主机装置接收命令。在一些实例中,所述设备可包含第三接口,所述第三接口经配置以经由边带通道与主机装置进行通信,所述边带通道可不同于存储器系统的命令/地址总线或数据总线。在一些情况下,控制器可经配置以经由边带通道将指示命令的执行的更新命令状态传送到主机装置。在一些实例中,控制器可经配置以将由命令指示的地址映射到第一存储器装置内的一或多个存储体。
描述一种用于数据迁移的设备。所述设备可包含:第一接口,其与存储器系统的第一存储器装置通信,所述第一存储器装置包含第一类型的存储器单元;第二接口,其与所述存储器系统的第二存储器装置通信,所述第二存储器装置包含不同于所述第一类型的第二类型的存储器单元;控制器,其可操作以:基于接收到第一命令而向所述第一存储器装置发射待与存取命令同时执行东第二命令,以在主机装置与不同于所述第一存储体的第二存储体之间传送第二数据集;以及从第一存储器装置接收存取命令的执行以及与存取命令的执行同时的第二命令的执行的指示。
在一些实例中,所述控制器可以可操作以经由边带通道从主机装置接收第一命令。在一些情况下,所述控制器可以可操作以经由边带通道向主机装置发射第一命令的执行的第二指示。在一些情况下,控制器可以可操作以经由第一接口从第一存储器装置接收第一命令。在一些实例中,所述控制器可以可操作以确定第一命令对应于第一存储器装置的单个存储体与第二存储器装置之间的多个数据传送。
应注意,上文所描述的方法描述可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。此外,可组合来自方法的两个或多于两个的方面。
可使用多种不同技术和技艺中的任一者来表示本文中所公开的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,所属领域的一般技术人员将理解,所述信号可表示信号总线,其中总线可具有多种位宽度。
如本文所用,术语“虚拟接地”是指保持在大约零伏(0V)的电压下而不直接与接地耦合的电路节点。因此,虚拟接地的电压可在时间上为波动的且在稳定状态下返回到大致0V。可使用例如由运算放大器和电阻器组成的分压器的各种电子电路元件实施虚拟接地。其它实施方案也是可能的。“虚拟接地”或“虚拟地接地”意味着连接到大约0V。
术语“电子通信”、“导电接触”、“连接”和“耦合”可指代组件之间支持信号在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,则组件被视为彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可为开路或闭路。所连接组件之间的导电路径可为组件之间的直接导电路径,或所连接组件之间的导电路径可为可包含例如开关、晶体管或其它组件等中间组件的间接导电路径。在一些情况下,可例如使用例如开关或晶体管的一或多个中间组件将所连接组件之间的信号流动中断一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前无法在组件之间流动的组件之间的关系。如果组件之间存在断路,则它们彼此隔离。例如,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。当控制器隔离两个组件时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中所使用的术语“层”是指几何结构的分层或薄片。每一层可具有三个维度(例如,高度、宽度和深度)且可覆盖表面的至少一部分。举例来说,层可为三维结构,其中两个维度大于第三维度,例如薄膜。层可包含不同元件、组件和/或材料。在一些情况下,一个层可由两个或更多个子层组成。在附图中的一些中,出于说明的目的而描绘三维层的两个维度。然而,所属领域的技术人员将认识到,层在本质上为三维的。
如本文所用,术语“大体上”意指经修饰特征(例如由术语大体上修饰的动词或形容词)不必是绝对的但要足够接近以便获得特征的优点。
本文中所论述的包含存储器阵列的装置可形成于半导体衬底上,例如硅、锗、硅锗合金、砷化镓、氮化镓等。在一些情况下,衬底是半导体晶片。在一些情况下,衬底为半导体晶片。在其它情况下,衬底可为绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含(但不限于)磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂手段来执行掺杂。
本文所论述的开关组件或晶体管可表示场效应晶体管(FET),并且包括包含源极、漏极和栅极的三端装置。所述端子可通过例如金属的导电材料连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分隔开。如果通道是n型(即,大部分载体为电子),则FET可称为n型FET。如果通道是p型(即,大部分载体为电洞),则FET可称为p型FET。沟道可被绝缘栅极氧化物端封。可通过将电压施加到栅极来控制沟道导电性。例如,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。当大于或等于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“接通”或“启动”。当将小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“撤销启动”。
本文结合附图阐述的实施方式描述实例配置,且并不表示可实施或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”是指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节,以便提供对所描述技术的理解。然而,可在没有这些特定细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可具有相同的参考标记。此外,通过遵循虚线和第二标记的参考标记可以区分相同类型的各种组件,这些虚线和第二标记在相似组件当中予以区分。若在说明书中仅使用第一参考标记,则描述适用于具有相同第一参考标记而与第二参考标记无关的类似组件中之任一者。
可使用多种不同技术和技艺中的任一者来表示本文中所公开的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
结合本文中的公开内容所描述的各种说明性块和模块可使用经设计以执行本文中所描述的功能的通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置)。
本文中所描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果以由处理器执行的软体实施,则可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体发射。其它实例和实施方案在本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,本文中所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合来实施。实施功能的特征也可物理上位于各个位置处,包含经分布以使得功能的各部分在不同物理位置处实施。而且,如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一者”或“中的一或多者”的短语开始的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一者的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。并且,如本文中所使用,短语“基于”不应被理解为提及一组封闭条件。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文中所使用,短语“基于”应同样地解释为短语“至少部分地基于”。
提供本文中的描述使得所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将易于了解对本公开的各种修改,且本文中界定的一般原理可应用于其它变体而不脱离本公开的范围。因此,本公开不限于本文所述的实例和设计,而是被赋予与本文所揭示的原理和新颖特征一致的最宽范围。

Claims (25)

1.一种方法,其包括:
接收第一命令以在存储器系统的第一存储器装置的第一存储体与所述存储器系统的第二存储器装置之间传送第一数据集;
至少部分地基于所述第一命令向所述第一存储器装置发射待与存取命令同时执行的第二命令,以在主机装置与所述第一存储器装置的不同于所述第一存储体的第二存储体之间传送第二数据集;以及
从所述第一存储器装置接收所述存取命令的执行以及与所述存取命令的所述执行同时的所述第二命令的执行的指示。
2.根据权利要求1所述的方法,其中接收所述第一命令包括:
经由不同于所述存储器系统的命令/地址总线或数据总线的边带通道从所述主机装置接收所述第一命令。
3.根据权利要求2所述的方法,其进一步包括:
经由所述边带通道向所述主机装置发射所述第一命令的执行的第二指示。
4.根据权利要求1所述的方法,其中接收所述第一命令包括:
经由用于与所述第一存储器装置通信的接口从所述第一存储器装置接收所述第一命令。
5.根据权利要求1所述的方法,其进一步包括:
确定所述第一命令对应于多于一个数据传送,其中单个传送对应于所述第一存储器装置的单个存储体与所述第二存储器装置之间的数据传送。
6.根据权利要求5所述的方法,其进一步包括:
将与所述第一命令相关联的地址映射到所述第一存储器装置的所述第一存储体,其中所述确定所述第一命令对应于多于一个数据传送是至少部分地基于将所述地址映射到所述第一存储体。
7.根据权利要求1所述的方法,其中所述第一命令对应于提交命令。
8.根据权利要求7所述的方法,其进一步包括:
经由用于与所述第二存储器装置通信的接口将所述提交命令发射到所述第二存储器装置;
从所述第二存储器装置接收所述第一数据集;
至少部分地基于确定所述存取命令对应于多于一个数据事务而将所述第一数据集划分为若干数据部分;以及
将所述数据部分中的每一者从控制器传送到与所述第一存储器装置相关联的缓冲区,其中发射所述第二命令包括传送所述数据部分中的至少一者。
9.根据权利要求8所述的方法,其中将所述数据部分中的每一者从所述控制器传送到所述缓冲区进一步包括:
将数据的第一部分传送到所述缓冲区;以及
至少部分地基于接收到所述存取命令的所述执行的所述指示而将数据的第二部分传送到所述缓冲区,其中所述指示指示所述缓冲区可用。
10.根据权利要求1所述的方法,其中所述第一命令对应于收回命令。
11.根据权利要求10所述的方法,其进一步包括:
至少部分地基于发射所述第二命令而从所述第一存储器装置接收所述第一数据集;以及
至少部分地基于接收到所述存取命令的所述执行的所述指示而将所述第一数据集从控制器传送到所述第二存储器装置,其中所述指示指示所述第一数据集的至少一部分已从所述第一存储器装置传送到与所述控制器相关联的缓冲区。
12.根据权利要求11所述的方法,其中从所述第一存储器装置接收所述第一数据集进一步包括:
将所述第一命令划分为对应于与单个存储体相关联的所述第一数据集的部分的子命令,其中所述第二命令包括用于从所述单个存储体收回数据的一部分的子命令;
从所述第一存储器装置接收所述第一数据集的第一部分;以及
向所述第一存储器装置发射包含第二子命令的第三命令,其中发射所述第三命令是至少部分地基于接收到所述存取命令的所述执行的所述指示。
13.根据权利要求1所述的方法,其中所述第一数据集对应于数据页面的一部分。
14.一种控制器,其包括:
第一接口,其经配置以与存储器系统的第一存储器装置通信,所述第一存储器装置包括第一类型的存储器单元;
第二接口,其经配置以与所述存储器系统的第二存储器装置通信,所述第二存储器装置包括不同于所述第一类型的第二类型的存储器单元;
第一缓冲区,其与所述第一接口和所述第二接口耦合且经配置以存储待作为数据迁移操作的一部分而从所述第二存储器装置传送到所述第一存储器装置的数据;以及
第二缓冲区,其与所述第一接口和所述第二接口耦合且经配置以存储待作为所述数据迁移操作的一部分而从所述第一存储器装置传送到所述第二存储器装置的数据。
15.根据权利要求14所述的控制器,其进一步包括:
队列,其与所述第一接口耦合且经配置以接收用于在所述第一存储器装置与所述第二存储器装置之间传送数据的命令。
16.根据权利要求15所述的控制器,其中所述队列经配置以经由所述第一接口接收所述命令。
17.根据权利要求16所述的控制器,其中所述控制器经配置以经由所述第一接口从所述第一存储器装置接收对用于在所述第一存储器装置与主机装置之间传送数据的存取命令的执行的指示。
18.根据权利要求15所述的控制器,其进一步包括:
第三接口,其经配置以经由边带通道与主机装置通信,所述边带通道不同于所述存储器系统的命令/地址总线或数据总线,其中所述队列经配置以经由所述边带通道从所述主机装置接收所述命令。
19.根据权利要求18所述的控制器,其中所述控制器经配置以经由所述边带通道将指示所述命令的执行的更新命令状态传送到所述主机装置。
20.根据权利要求14所述的控制器,其中所述控制器经配置以将由命令指示的地址映射到所述第一存储器装置内的一或多个存储体。
21.一种设备,其包括:
第一接口,其与存储器系统的第一存储器装置通信,所述第一存储器装置包括第一类型的存储器单元;
第二接口,其与所述存储器系统的第二存储器装置通信,所述第二存储器装置包括不同于所述第一类型的第二类型的存储器单元;
控制器,其可操作以:
接收第一命令以在所述第一存储器装置的第一存储体与所述第二存储器装置之间传送第一数据集;
至少部分地基于接收到所述第一命令而向所述第一存储器装置发射待与存取命令同时执行的第二命令,以在主机装置与不同于所述第一存储体的第二存储体之间传送第二数据集;以及
从所述第一存储器装置接收所述存取命令的执行以及与所述存取命令的所述执行同时的所述第二命令的执行的指示。
22.根据权利要求21所述的设备,其中所述控制器进一步可操作以:
经由边带通道从所述主机装置接收所述第一命令。
23.根据权利要求22所述的设备,其中所述控制器进一步可操作以:
经由所述边带通道向所述主机装置发射所述第一命令的执行的第二指示。
24.根据权利要求21所述的设备,其中所述控制器进一步可操作以:
经由所述第一接口从所述第一存储器装置接收所述第一命令。
25.根据权利要求21所述的设备,其中所述控制器进一步可操作以:
确定所述第一命令对应于所述第一存储器装置的单个存储体与所述第二存储器装置之间的多个数据传送。
CN201911097120.7A 2018-11-19 2019-11-11 用于数据迁移的系统、装置及方法 Withdrawn CN111198656A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/195,045 US11182090B2 (en) 2018-11-19 2018-11-19 Systems, devices, and methods for data migration
US16/195,045 2018-11-19

Publications (1)

Publication Number Publication Date
CN111198656A true CN111198656A (zh) 2020-05-26

Family

ID=70727211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911097120.7A Withdrawn CN111198656A (zh) 2018-11-19 2019-11-11 用于数据迁移的系统、装置及方法

Country Status (2)

Country Link
US (2) US11182090B2 (zh)
CN (1) CN111198656A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115717A (zh) * 2020-08-31 2022-03-01 美光科技公司 多存储器系统中改进的存储器间移动

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210026871A (ko) 2019-09-02 2021-03-10 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11507310B2 (en) * 2019-09-02 2022-11-22 SK Hynix Inc. Memory controller and operating method thereof
KR20210061174A (ko) 2019-11-19 2021-05-27 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20210097938A (ko) 2020-01-31 2021-08-10 에스케이하이닉스 주식회사 클록변조를 통해 리드 데이터의 신뢰성을 검증하는 메모리 장치 및 메모리 장치를 포함하는 메모리 시스템
US11501808B2 (en) 2019-09-02 2022-11-15 SK Hynix Inc. Memory controller and operating method thereof
KR20220091794A (ko) 2020-12-24 2022-07-01 삼성전자주식회사 반도체 장치 및 이를 포함하는 전자 장치
WO2022212205A1 (en) * 2021-03-29 2022-10-06 Micron Technology, Inc. Sideband communication management

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020016551A (ko) * 2000-08-24 2002-03-04 존 비. 메이슨 컴퓨터 시스템에서 다른 저장 위치로의 객체의 부분 이송
JP2004213657A (ja) * 2003-01-03 2004-07-29 Hewlett-Packard Development Co Lp メモリ間でデータを移行する方法
US7500075B1 (en) * 2001-04-17 2009-03-03 Rambus Inc. Mechanism for enabling full data bus utilization without increasing data granularity
US20120226860A1 (en) * 2011-03-02 2012-09-06 Hitachi, Ltd. Computer system and data migration method
US20140254245A1 (en) * 2006-04-27 2014-09-11 Avalanche Technology, Inc. Hybrid non-volatile memory device
US20170177541A1 (en) * 2015-12-21 2017-06-22 Microsemi Storage Solutions (U.S.), Inc. Apparatus and method for transferring data and commands in a memory management environment

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442752A (en) 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US5996051A (en) 1997-04-14 1999-11-30 Advanced Micro Devices, Inc. Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array
GB2381622B (en) 1997-12-17 2003-06-25 Fujitsu Ltd Synchronous dynamic random access memory apparatus
US6880056B2 (en) 2002-03-28 2005-04-12 Hewlett-Packard Development, L.P. Memory array and method with simultaneous read/write capability
US20060294295A1 (en) 2005-06-24 2006-12-28 Yukio Fukuzo DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device
JP2007047892A (ja) 2005-08-08 2007-02-22 Hitachi Ltd 計算機システム及び計算機システムの状態管理方法
US7941624B2 (en) 2006-09-28 2011-05-10 Intel Corporation Parallel memory migration
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US9355119B2 (en) 2011-09-22 2016-05-31 Netapp, Inc. Allocation of absent data within filesystems
KR20130127274A (ko) 2012-05-14 2013-11-22 삼성전자주식회사 메모리 오퍼레이션 타이밍 제어 방법 및 이를 이용한 메모리 시스템
US20130329491A1 (en) 2012-06-12 2013-12-12 Jichuan Chang Hybrid Memory Module
US9135172B2 (en) 2012-08-02 2015-09-15 Qualcomm Incorporated Cache data migration in a multicore processing system
US9076530B2 (en) 2013-02-07 2015-07-07 Seagate Technology Llc Non-volatile write buffer data retention pending scheduled verification
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
CN104216837A (zh) 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
US9691452B2 (en) 2014-08-15 2017-06-27 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9477551B1 (en) 2014-12-01 2016-10-25 Datadirect Networks, Inc. Method and system for data migration between high performance computing architectures and file system using distributed parity group information structures with non-deterministic data addressing
US20180107552A1 (en) 2015-03-31 2018-04-19 International Business Machines Corporation Storage pool migration employing proxy slice requests
US10002072B2 (en) 2015-05-18 2018-06-19 Mediatek Inc. Method and apparatus for controlling data migration in multi-channel memory device
CN107111452B (zh) 2015-12-03 2020-01-10 华为技术有限公司 应用于计算机系统的数据迁移方法和装置、计算机系统
US10255955B2 (en) 2016-02-09 2019-04-09 Samsung Electronics Co., Ltd. Multi-port memory device and a method of using the same
US9936019B2 (en) 2016-03-16 2018-04-03 Google Llc Efficient live-migration of remotely accessed data
US10268405B2 (en) 2016-03-17 2019-04-23 Mediatek, Inc. Dynamic rank switching for low power volatile memory
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US9940980B2 (en) 2016-06-30 2018-04-10 Futurewei Technologies, Inc. Hybrid LPDDR4-DRAM with cached NVM and flash-nand in multi-chip packages for mobile devices
US10929059B2 (en) 2016-07-26 2021-02-23 MemRay Corporation Resistance switching memory-based accelerator
US10567006B2 (en) 2016-08-05 2020-02-18 Sandisk Technologies Llc Data relocation
CN108089814B (zh) 2016-11-23 2021-04-06 中移(苏州)软件技术有限公司 一种数据存储方法及装置
JP6955142B2 (ja) 2017-03-17 2021-10-27 富士通株式会社 情報処理装置、ストレージ制御方法およびストレージ制御プログラム
JP6905195B2 (ja) * 2017-11-16 2021-07-21 富士通株式会社 データ転送装置、演算処理装置及びデータ転送方法
US10678718B2 (en) 2018-01-16 2020-06-09 Marvell Israel (M.I.S.L) Ltd. Network device and method of operation
US11048645B2 (en) 2018-02-01 2021-06-29 Samsung Electronics Co., Ltd. Memory module, operation method therof, and operation method of host
US10360155B1 (en) 2018-04-05 2019-07-23 Western Digital Technologies, Inc. Multi-tier memory management
US11163473B2 (en) * 2018-11-19 2021-11-02 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
US10782911B2 (en) 2018-11-19 2020-09-22 Micron Technology, Inc. Data migration dynamic random access memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020016551A (ko) * 2000-08-24 2002-03-04 존 비. 메이슨 컴퓨터 시스템에서 다른 저장 위치로의 객체의 부분 이송
US7500075B1 (en) * 2001-04-17 2009-03-03 Rambus Inc. Mechanism for enabling full data bus utilization without increasing data granularity
JP2004213657A (ja) * 2003-01-03 2004-07-29 Hewlett-Packard Development Co Lp メモリ間でデータを移行する方法
US20140254245A1 (en) * 2006-04-27 2014-09-11 Avalanche Technology, Inc. Hybrid non-volatile memory device
US20120226860A1 (en) * 2011-03-02 2012-09-06 Hitachi, Ltd. Computer system and data migration method
WO2012117447A1 (en) * 2011-03-02 2012-09-07 Hitachi, Ltd. Computer system and data migration method
US20170177541A1 (en) * 2015-12-21 2017-06-22 Microsemi Storage Solutions (U.S.), Inc. Apparatus and method for transferring data and commands in a memory management environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115717A (zh) * 2020-08-31 2022-03-01 美光科技公司 多存储器系统中改进的存储器间移动

Also Published As

Publication number Publication date
US20200159435A1 (en) 2020-05-21
US11182090B2 (en) 2021-11-23
US20220050616A1 (en) 2022-02-17
US11853578B2 (en) 2023-12-26

Similar Documents

Publication Publication Date Title
US11853578B2 (en) Systems, devices, and methods for data migration
US11782626B2 (en) Systems, devices, techniques, and methods for data migration
US11709613B2 (en) Data migration for memory operation
CN111199761B (zh) 数据迁移动态随机存取存储器
WO2021041003A1 (en) Architecture-based power management for a memory device
US11934705B2 (en) Truth table extension for stacked memory systems
CN111312310A (zh) 相位电荷共享
US11907546B2 (en) Memory system and operations of the same
CN115427925A (zh) 用于堆叠存储器系统的主机技术
CN113228176A (zh) 配置存储器的命令/地址信道
CN113939877B (zh) 用于存储器装置的可重新配置信道接口
US10908823B2 (en) Data transfer for wear leveling with bank clusters

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: 20200526