CN114639419A - 用于部分写入的技术改进 - Google Patents

用于部分写入的技术改进 Download PDF

Info

Publication number
CN114639419A
CN114639419A CN202111533929.7A CN202111533929A CN114639419A CN 114639419 A CN114639419 A CN 114639419A CN 202111533929 A CN202111533929 A CN 202111533929A CN 114639419 A CN114639419 A CN 114639419A
Authority
CN
China
Prior art keywords
data
volatile memory
buffer
data set
size
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.)
Pending
Application number
CN202111533929.7A
Other languages
English (en)
Inventor
宋泽尚
C·巴拉普拉姆
S·S·马利克
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 CN114639419A publication Critical patent/CN114639419A/zh
Pending 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请案是针对用于部分写入的技术改进。存储器装置可包含非易失性存储器和被配置成用作所述非易失性存储器的高速缓存器的易失性存储器。所述存储器装置可从主机装置接收所述主机装置所提供的针对第一数据集的写入命令。基于所述写入命令,存储器装置可将所述第一数据集存储于与易失性存储器耦合的缓冲器中。在将所述第一数据集存储于所述缓冲器中之后,所述存储器装置可将包含所述第一数据集和第二数据集的数据集传达给所述易失性存储器。所述第一数据集和所述第二数据可与所述易失性存储器的相邻地址相关联并且可各自具有小于与所述易失性存储器相关联的阈值大小的大小。

Description

用于部分写入的技术改进
交叉引用
本专利申请案主张宋(Song)等人在2020年12月15日申请的标题为“用于部分写入的技术改进(IMPROVED TECHNIQUES FOR PARTIAL WRITES)”的第63/125,827号美国专利申请案的优先权,所述美国专利申请案转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及用于部分写入的技术改进。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可以被编程为两个支持状态中的一个,经常由逻辑1或逻辑0表示。在一些实例中,单个存储器单元可以支持超过两个状态,其中的任一状态可存储。为了存取所存储信息,组件可以读取或感测存储器装置中的至少一个所存储状态。为了存储信息,组件可在存储器装置中写入状态或对状态进行编程。
存在各种类型的存储器装置和存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选存储器、硫属化物存储器技术和其它。存储器单元可为易失性的或非易失性的。非易失性存储器,例如FeRAM,可维持其所存储的逻辑状态很长一段时间,即使无外部电源存在也是这样。例如DRAM的易失性存储器装置在与外部电源断开连接时可能会丢失其所存储的状态。
发明内容
描述一种设备。所述设备可包含非易失性存储器;易失性存储器,其被配置成操作为用于所述非易失性存储器的高速缓存器;缓冲器,其与所述易失性存储器耦合;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合。所述接口控制器可为可操作的以致使所述设备:从主机装置接收针对第一数据集的写入命令;至少部分地基于所述写入命令,将所述第一数据集存储于所述缓冲器中;和至少部分地基于所述写入命令,将包括所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联并且至少部分地基于所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
描述了一种方法。所述方法可由存储器装置执行。所述方法可包含从主机装置接收所述主机装置所提供的针对第一数据集的写入命令;至少部分地基于所述写入命令,将所述第一数据集存储于与易失性存储器耦合的缓冲器中,所述易失性存储器被配置成操作为用于非易失性存储器的高速缓存器;和至少部分地基于所述写入命令,将包括所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联并且至少部分地基于所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
描述一种设备。所述设备可包含非易失性存储器;易失性存储器,其被配置成操作为用于所述非易失性存储器的高速缓存器;缓冲器,其与所述易失性存储器耦合;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合。所述接口控制器可为可操作的以致使所述设备:至少部分地基于接收到的写入命令,将第一数据集存储于所述缓冲器中;确定所述第一数据集的大小是否小于用于存取所述易失性存储器的阈值大小;和至少部分地基于所述写入命令以及所述第一数据集的所述大小小于所述阈值大小,将包括所述第一数据集和具有小于所述阈值大小的大小的第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少具有所述阈值大小。
附图说明
图1说明根据本文所公开的实例的支持用于部分写入的技术改进的系统的实例。
图2说明根据本文公开的实例支持用于部分写入的技术改进的存储器子系统的实例。
图3说明根据本文所公开的实例的支持用于部分写入的技术改进的装置的实例。
图4说明根据本文所公开的实例的支持用于部分写入的技术改进的过程流的实例。
图5示出根据本文所公开的实例的支持用于部分写入的技术改进的存储器装置的框图。
图6和7示出说明根据本文所公开的实例的支持用于部分写入的技术改进的一或多种方法的流程图。
具体实施方式
例如电子装置的装置可包含非易失性存储器(例如,用于存储信息以及其它操作的主存储器)和易失性存储器(例如,辅助存储器),所述易失性存储器可操作为用于非易失性存储器的高速缓存器以及其它方面。这类配置可允许所述装置在通过易失性存储器维持与主机装置的兼容性的同时受益于非易失性存储器的优点(例如,非易失性和永久性存储、高存储容量、低电力消耗)。当这类装置接收到针对数据的写入命令时,所述装置可在将数据从缓冲器传达给非易失性存储器或易失性存储器之前,将所述数据暂时存储于缓冲器中。如果数据的大小对于可具有用于存取的阈值大小的易失性存储器来说是足够的,那么所述装置可将所述数据传达给易失性存储器进行存储;如果数据对于易失性存储器来说并不足够(例如,太小),那么所述装置可将所述数据传达给非易失性存储器进行存储。但在一些实例中,将数据写入到非易失性存储器与将数据写入到易失性存储器相比可花费更长时间并且消耗更多电力。
根据本文中所描述的技术,装置可组合不足大小(例如,各自小于阈值大小)的两个或更多个数据集以用于存取易失性存储器,使得所得数据集具有足以启用易失性存储器的存取的大小。所述装置可基于例如数据集与易失性存储器的相邻存储器地址相关联来组合数据集。在将数据集传达给易失性存储器之后,所述装置即刻可将数据集写入到易失性存储器,这在一些实例中,相较于将数据集写入到非易失性存储器可更快速并且消耗较少电力。
首先在如参考图1和2所描述的系统和存储器子系统的上下文中描述本公开的特征。在如参考图3所描述的装置和如参考图4所描述的过程流程的上下文中描述本公开的特征。通过涉及参考图5-7所描述的用于部分写入的技术改进的设备图和流程图进一步说明并且参考所述设备图和流程图进一步描述本公开的这些和其它特征。
图1说明根据本文所公开的实例的支持用于部分写入的技术改进的系统100的实例。
系统100可以包含在例如计算机或电话的电子装置中。系统100可包含主机装置105和存储器子系统110。主机装置105可为与接口控制器115介接的处理器或芯片上系统(SoC)以及包含系统100的电子装置的其它组件。存储器子系统110可存储用于主机装置105的电子信息(例如,数字信息、数据)并且提供对所述电子信息的存取。存储器子系统110可包含接口控制器115、易失性存储器120和非易失性存储器125。在一些实例中,接口控制器115、易失性存储器120和非易失性存储器125可包含在例如封装130的同一物理封装中。然而,接口控制器115、易失性存储器120和非易失性存储器125可安置于不同的相应裸片(例如,硅裸片)上。
系统100中的装置可以通过各种导线(例如,迹线、印刷电路板(PCB)布线、再分布层(RDL)布线)耦合,所述导线可以实现装置之间的信息(例如,命令、地址、数据)传送。导线可以构成信道、数据总线、命令总线、地址总线等。
存储器子系统110可被配置成提供非易失性存储器125的益处同时维持与支持用于不同的类型的存储器的协议的主机装置105的兼容性,所述存储器例如易失性存储器120,以及其它实例。例如,非易失性存储器125可以提供(例如,相对于易失性存储器120的)益处,例如非易失性、较高容量,或较低功耗。但主机装置105可为与非易失性存储器125的各种方面不兼容的或低效配置的。举例来说,主机装置105可支持与非易失性存储器125不兼容的电压、存取等待时间、协议、页大小等。为了补偿主机装置105与非易失性存储器125之间的不兼容性,存储器子系统110可被配置成具有易失性存储器120,其可与主机装置105兼容且充当非易失性存储器125的高速缓存器。因此,主机装置105可使用易失性存储器120支持的协议,同时受益于非易失性存储器125的优点。
在一些实例中,系统100可以包含在计算装置、电子装置、移动计算装置或无线装置中,或与计算装置、电子装置、移动计算装置或无线装置耦合。装置可为便携式电子装置。例如,装置可以是计算机、手提式计算机、平板计算机、智能电话、蜂窝电话、可穿戴装置、因特网连接装置等。在一些实例中,装置可被配置成用于经由基站或存取点的双向无线通信。在一些实例中,与系统100相关联的装置能够进行机器类型通信(MTC)、机器对机器(M2M)通信或装置对装置(D2D)通信。在一些实例中,与系统100相关联的装置可称作用户设备(UE)、站(STA)、移动终端等。
主机装置105可被配置成使用接口控制器115所支持的第一协议(例如,低功率双数据速率(LPDDR))与存储器子系统110介接。因此,在一些实例中,主机装置105可与接口控制器115直接介接并且与非易失性存储器125和易失性存储器120间接介接。在替代性实例中,主机装置105可与非易失性存储器125和易失性存储器120直接介接。主机装置105还可以与包含系统100的电子装置的其它组件介接。主机装置105可以是或包含SoC、通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其可以是这些类型的组件的组合。在一些实例中,主机装置105可以被称作主机。
接口控制器115可以被配置成代表主机装置105与易失性存储器120和非易失性存储器125介接(例如,基于主机装置105发出的一或多个命令或请求)。举例来说,接口控制器115可以代表主机装置105促进易失性存储器120和非易失性存储器125中的数据的检索和存储。因此,接口控制器115可促进各种子组件之间的数据传送,如在主机装置105、易失性存储器120或非易失性存储器125中的至少一些之间的数据传送。接口控制器115可使用第一协议与主机装置105和易失性存储器120介接且可使用由非易失性存储器125支持的第二协议与非易失性存储器125介接。
非易失性存储器125可被配置成存储数字信息(例如,数据)用于包含系统100的电子装置。因此,非易失性存储器125可包含一或多个存储器单元阵列以及被配置成操作存储器单元阵列的本地存储器控制器。在一些实例中,存储器单元可为或包含FeRAM单元(例如,非易失性存储器125可为FeRAM)。非易失性存储器125可以被配置成使用不同于在接口控制器115与主机装置105之间使用的第一协议的第二协议与接口控制器115介接。在一些实例中,非易失性存储器125可能比易失性存储器120具有更长的存取操作时延。举例来说,从非易失性存储器125检索数据与从易失性存储器120检索数据相比可能需要更久。类似地,将数据写入到非易失性存储器125可能比将数据写入到易失性存储器120花费更长的时间。在一些实例中,非易失性存储器125可能具有比易失性存储器120小的页大小,如本文中所描述。
易失性存储器120可被配置成用作一或多个组件(例如,非易失性存储器125)的高速缓存器。举例来说,易失性存储器120可存储信息(例如,数据)用于包含系统100的电子装置。因此,易失性存储器120可以包含一或多个存储器单元阵列以及被配置成操作存储器单元阵列的本地存储器控制器。在一些实例中,存储器单元可为或包含DRAM单元(例如,易失性存储器可为DRAM)。非易失性存储器125可以被配置成使用在接口控制器115与主机装置105之间使用的第一协议与接口控制器115介接。
在一些实例中,易失性存储器120可能比非易失性存储器125具有更短的存取操作时延。举例来说,从易失性存储器120检索数据与从非易失性存储器125检索数据相比可能需要较少时间。类似地,将数据写入到易失性存储器120可能比将数据写入到非易失性存储器125花费更少的时间。在一些实例中,易失性存储器120可能比非易失性存储器125具有更大页大小。举例来说,易失性存储器120的页大小可为2千字节(2kB)且非易失性存储器125的页大小可为64字节(64B)或128字节(128B)。
虽然非易失性存储器125可以是比易失性存储器120更高密度的存储器,但存取非易失性存储器125可能要比存取易失性存储器120花费更长的时间(例如,由于不同架构和协议,以及其它原因)。因此,将易失性存储器120用作高速缓存器可减少系统100中的时延。作为实例,通过从易失性存储器120而不是从非易失性存储器125检索数据,可以相对快速地满足对来自主机装置105的数据的存取请求。为了促进易失性存储器120作为高速缓存器的操作,接口控制器115可包含多个缓冲器135。缓冲器135可以与接口控制器115安置在同一裸片上并且可被配置成临时存储数据以用于在一或多个存取操作(例如,存储和检索操作)期间在易失性存储器120、非易失性存储器125或主机装置105(或其任何组合)之间传送。
存取操作还可被称作存取过程或存取程序且可涉及由存储器子系统110的组件中的一或多个执行的一或多个子操作。存取操作的实例可包含:存储操作,其中将由主机装置105提供的数据存储在(例如,写入到)易失性存储器120或非易失性存储器125(或两者)中;和检索操作,其中从易失性存储器120或非易失性存储器125获得(例如,读取)由主机装置105请求的数据且将其返回到主机装置105。
为了将数据存储在存储器子系统110中,主机装置105可通过将存储命令(也被称为存储请求、写入命令,或写入请求)发射到接口控制器115来发起存储操作(或“存储过程”)。存储命令可以非易失性存储器125中的非易失性存储器单元集为目标。在一些实例中,存储器单元集也可以被称作存储器的一部分。主机装置105还可以将待写入到非易失性存储器单元集的数据提供到接口控制器115。接口控制器115可将数据暂时存储在缓冲器135-a中。在将数据存储在缓冲器135-a中之后,接口控制器115可以将数据从缓冲器135-a传送到易失性存储器120或非易失性存储器125或这两者。在直写模式中,接口控制器115可以将数据传送到易失性存储器120和非易失性存储器125这两者。在写回模式中,接口控制器115可仅将数据传送到易失性存储器120(其中在稍后的逐出过程期间将数据传送到非易失性存储器125)。
在任一模式中,接口控制器115可以标识易失性存储器120中的一或多个易失性存储器单元的适当集,以用于存储与存储命令相关联的数据。为此,接口控制器115可实施集关联映射,其中可将非易失性存储器125中的一或多个非易失性存储器单元的每个集(例如,区块)映射到易失性存储器120中的易失性存储器单元的多个集。举例来说,接口控制器115可实施n向关联映射,这允许来自非易失性存储器单元集的数据存储在易失性存储器120中的n个易失性存储器单元集中的一个中。因此,接口控制器115可通过参考与目标非易失性存储器单元集相关联的n个易失性存储器单元集来管理易失性存储器120作为非易失性存储器125的高速缓存器。如本文中所使用,除非以其它方式描述或提及,否则对象的“集”可以指对象中的一或多个。虽然参考集相联映射进行描述,但接口控制器115可以通过实施一或多种其它类型的映射(例如直接映射或相联映射,以及其它实例)来管理易失性存储器120作为高速缓存器。
在确定哪n个易失性存储器单元集与目标非易失性存储器单元集相关联之后,接口控制器115可以将数据存储在n个易失性存储器单元集中的一或多个中。因此,通过从较低时延易失性存储器120检索数据而不是从较高时延非易失性存储器125检索数据,可高效地满足来自主机装置105的针对数据的后续检索命令。接口控制器115可基于与存储在n个易失性存储器集120中的数据相关联的一或多个参数(如数据的有效性、时效或修改状态)来确定n个易失性存储器120集中的哪一个存储数据。因此,通过主机装置105的存储命令可以通过将数据存储在易失性存储器120中而完全地(例如,在写回模式中)或部分地(例如,在直写模式中)得到满足。为了追踪存储在易失性存储器120中的数据,接口控制器115可以为一或多个易失性存储器单元集(例如,为每个易失性存储器单元集)存储标签地址,所述标签地址以存储在给定易失性存储器单元集中的数据指示非易失性存储器单元。
为了从存储器子系统110检索数据,主机装置105可通过将检索命令(也被称为检索请求、读取命令或读取请求)发射到接口控制器115来起始检索操作(也被称为检索过程)。检索命令可以非易失性存储器125中的一或多个非易失性存储器单元集为目标。在接收到检索命令之后,接口控制器115可在易失性存储器120中检查所请求的数据。举例来说,接口控制器115可在与目标非易失性存储器单元集相关联的n个易失性存储器单元集中检查所请求数据。如果n个易失性存储器单元集中的一个存储所请求的数据(例如,为目标非易失性存储器单元集存储数据),那么接口控制器115可将数据从易失性存储器120传送到缓冲器135-a(例如,响应于确定n个易失性存储器单元集中的一个存储所请求的数据,如图4和5中所描述)使得其可以发射到主机装置105。
一般来说,术语“命中”可用于指代其中易失性存储器120存储被主机装置105定为目标的数据的情境。如果一或多个易失性存储器单元的n个集不存储所请求的数据(例如,n个易失性存储器单元集存储用于除目标非易失性存储器单元集以外的非易失性存储器单元集的数据),那么接口控制器115可将所请求的数据从非易失性存储器125传送到缓冲器135-a(例如,响应于确定n个易失性存储器单元集不存储所请求的数据,如参考图4和5所描述)以使得其可发射到主机装置105。一般来说,术语“未命中”可用于指代其中易失性存储器120不存储被主机装置105定为目标的数据的情境。
更具体地,写入命中可指其中易失性存储器120中的数据与被来自主机装置的写入命令定为目标的非易失性存储器地址相关联(例如,匹配存储于被来自主机装置的写入命令定为目标的非易失性存储器地址处的数据)的情境;而写入未命中可指其中易失性存储器120中不存在与非易失性存储器地址相关联的数据的情境。
在未命中情境中,在将所请求的数据传送到缓冲器135-a之后,接口控制器115可将所请求的数据从缓冲器135-a传送到易失性存储器120,使得对数据的后续读取请求可以通过易失性存储器120而不是非易失性存储器125得到满足。举例来说,接口控制器115可在与目标非易失性存储器单元集相关联的n个易失性存储器单元集中的一个中存储数据。但n个易失性存储器单元集可能已为其它非易失性存储器单元集存储数据。因此,为了保留此其它数据,接口控制器115可以将其它数据传送到缓冲器135-b以便所述数据可以传送到非易失性存储器125以用于存储。这种过程可以被称作“逐出”,并且从易失性存储器120传送到缓冲器135-b的数据可以被称作“受害”数据。在一些情况下,接口控制器115可将受害数据的子集从缓冲器135-b传送到非易失性存储器125。举例来说,接口控制器115可以传送自从数据最初存储在非易失性存储器125中以来已改变的一或多个受害数据子集。在易失性存储器120与非易失性存储器125之间不一致的数据(例如,由于在一个存储器中的更新而不是在其它存储器中的更新)在一些情况下可以被称作“经修改”或“脏”数据。在一些实例中(例如,当接口控制器在例如写回模式的一种模式中操作时),脏数据可以是存在于易失性存储器120中但不存在于非易失性存储器125中的数据。
在一些实例中,易失性存储器120可与定义用于存取易失性存储器的数据的最小粒度、或脏信息维持在其中的数据的最小粒度或这两者的阈值大小(或“高速缓存线”大小)相关联。举例来说,易失性存储器120可具有64B的阈值大小,这意指在64B基础上存储信息(例如有效性信息和脏信息)且每存取程序(例如,每读取/写入操作)涉及至少64B的数据。因此,易失性存储器120可期望来自其它组件的存取请求遵守(例如,等于)易失性存储器120的阈值大小。
但主机装置105可发出针对不同数据大小的命令,其中的一些可能不满足易失性存储器120的阈值大小。举例来说,主机装置105可发出针对32B的数据的写入命令而不管易失性存储器120具有64B的阈值大小。针对小于易失性存储器120的阈值大小的写入命令可被称为部分写入命令或部分写入,而针对满足阈值大小的数据的写入命令可被称为完整写入命令或完整写入。当接口控制器115接收到是未命中的部分写入命令时,接口控制器115可将相关联的写入数据从缓冲器135-a传达给非易失性存储器125(例如,原因是所述数据对于易失性存储器120来说太小)。但在一些实例中,将数据写入到非易失性存储器125而非易失性存储器120可为不利的,原因是例如与写入到非易失性存储器125相关联的时延和电力消耗可大于与写入到易失性存储器120相关联的时延和电力消耗。
根据本文中所描述的技术,接口控制器115可通过将来自部分写入命令的数据与额外数据组合以使得所得组合满足易失性存储器的阈值大小,以此有效地处置部分写入命令。在满足阈值大小下,接口控制器115可将组合数据集传达给易失性存储器120而非非易失性存储器125,这可减少时延并节约电力。写入请求在本文中也可被称作写入命令、存储命令,或其它合适的术语。
图2说明根据本文公开的实例支持用于部分写入的技术改进的存储器子系统200的实例。存储器子系统200可为参考图1所描述的存储器子系统110的实例。因此,存储器子系统200可以与如参考图1所描述的主机装置交互。存储器子系统200可包含接口控制器202、易失性存储器204和非易失性存储器206,其可分别是如参考图1所描述的接口控制器115、易失性存储器120和非易失性存储器125的实例。因此,接口控制器202可以代表如参考图1所描述的主机装置与易失性存储器204和非易失性存储器206介接。举例来说,接口控制器202可将易失性存储器204用作用于非易失性存储器206的高速缓存器。将易失性存储器204用作高速缓存器可允许子系统提供非易失性存储器206的益处(例如,非易失性、高密度存储),同时维持与支持不同于非易失性存储器206的协议的主机装置的兼容性。
在图2中,组件之间的虚线表示数据流或数据的传达路径,并且组件之间的实线表示命令流或命令的传达路径。在一些情况下,存储器子系统200是可以包含在电子装置中的多个相似或相同子系统之一。在一些实例中,每个子系统可以被称作切片且可以与主机装置的相应信道相关联。
非易失性存储器206可以被配置成用作用于主机装置的主存储器(例如,用于长期数据存储的存储器)。在一些情况下,非易失性存储器206可以包含FeRAM单元的一或多个阵列。每一FeRAM单元可包含选择组件和铁电电容器,并且可通过将适当电压施加到例如字线、板线和数字线的一或多个存取线来存取。在一些实例中,可以例如并行地或同时地感测到与被激活字线耦合的FeRAM单元的子集,而无须必须感测与被激活字线耦合的所有FeRAM单元。因此,FeRAM阵列的页大小可以不同于(例如,小于)DRAM页大小。在存储器装置的上下文中,页可指成一行的存储器单元(例如,具有共同行地址的存储器单元的群组),并且页大小可指成一行的存储器单元或列地址的数目,或在存取操作期间存取的列地址的数目。替代地,页大小可指由各种接口处置的数据的大小,或行能够存储的数据量。在一些情况下,不同的存储器装置类型可以具有不同的页大小。举例来说,DRAM页大小(例如,2kB)可以是非易失性存储器(例如,FeRAM)页大小(例如,64B)的超集。
FeRAM阵列的较小页大小可以提供各种效率益处,这是因为与单独的DRAM单元相比单独的FeRAM单元可能需要更多功率来读取或写入。举例来说,用于FeRAM阵列的较小页大小可促进有效能量使用,这是因为较小数目个FeRAM单元可在信息的相关联改变微小时激活。在一些实例中,取决于利用FeRAM操作的数据和命令的本质,FeRAM单元阵列的页大小可以例如动态地改变(例如,在FeRAM单元阵列的操作期间)。
虽然与单独的DRAM单元相比单独的FeRAM单元可能需要更多功率来读取或写入,但是在不存在外部电源的情况下FeRAM单元可以维持其所存储逻辑状态持续延长的时间段,这是因为FeRAM单元中的铁电材料可以在不存在电场的情况下维持非零电极化。因此,在非易失性存储器206中包含FeRAM阵列因为可减少或消除对执行刷新操作的需求,所以可相对于易失性存储器单元(例如,在易失性存储器204中的DRAM单元)提供电力和效率益处。
易失性存储器204可被配置成用作非易失性存储器206的高速缓存器。在一些情况下,易失性存储器204可包含DRAM单元的一或多个阵列。每个DRAM单元可以包含电容器,所述电容器包含介电材料以存储表示可编程状态的电荷。易失性存储器204的存储器单元可以在逻辑上分组或布置成一或多个存储器组(如本文中称为“组”)。举例来说,易失性存储器204可包含十六个组。组的存储器单元可以布置在栅格或相交列和行的阵列中,并且每个存储器单元可以通过将适当的电压施加到用于所述存储器单元的数字线(例如,列线)和字线(例如,行线)来存取或刷新。组的行可称为页,且页大小可指行中的列或存储器单元的数目(且因此,行能够存储的数据量)。如所提及,易失性存储器204的页大小可以不同于(例如,大于)非易失性存储器206的页大小。
接口控制器202可包含用于与例如主机装置、易失性存储器204和非易失性存储器206的其它装置介接(例如,通信)的各种电路。举例来说,接口控制器202可包含数据(DA)总线接口208、命令和地址(C/A)总线接口210、数据总线接口212、C/A总线接口214、数据总线接口216,以及C/A总线接口264。数据总线接口可支持使用一或多个通信协议来传达信息。例如,数据总线接口208、C/A总线接口210、数据总线接口216和C/A总线接口264可以支持使用第一协议(例如,LPDDR信令)传送的信息,而数据总线接口212和C/A总线接口214可以支持使用第二协议传送的信息。因此,与接口控制器202耦合的各种总线接口可支持不同的数据量或数据速率。
数据总线接口208可以与数据总线260、事务总线222和缓冲电路系统224耦合。数据总线接口208可被配置成在数据总线260上发射和接收数据并且在事务总线222上发射和接收控制信息(例如,应答/否定应答)或元数据。数据总线接口208还可以被配置成在数据总线260与缓冲电路系统224之间传送数据。数据总线260和事务总线222可与接口控制器202和主机装置耦合,使得在接口控制器202与主机装置之间建立导电路径。在一些实例中,事务总线222的引脚可以被称作数据掩蔽反转(DMI)引脚。虽然展示为具有一条数据总线260和一条事务总线222,但可能存在与一或多个数据总线接口208耦合的任何数目个数据总线260和任何数目个事务总线222。
C/A总线接口210可与C/A总线226和解码器228耦合。C/A总线接口210可以被配置成通过C/A总线226发射和接收命令和地址。通过C/A总线226接收到的命令和地址可与通过数据总线260接收到的或发射的数据相关联。C/A总线接口210还可被配置成将命令和地址发射到解码器228,使得解码器228可对命令进行解码且将已解码命令和相关联地址转送到命令电路系统230。
数据总线接口212可与数据总线232和存储器接口电路系统234耦合。数据总线接口212可被配置成在数据总线232上发射和接收数据,所述数据总线可以与非易失性存储器206耦合。数据总线接口212还可被配置成在数据总线232与存储器接口电路系统234之间传送数据。C/A总线接口214可与C/A总线236和存储器接口电路系统234耦合。C/A总线接口214可被配置成从存储器接口电路系统234接收命令和地址并且在C/A总线236上将命令和地址转送到非易失性存储器206(例如,转送到非易失性存储器206的本地控制器)。通过C/A总线236发射的命令和地址可与通过数据总线232接收到的或发射的数据相关联。数据总线232和C/A总线236可与接口控制器202和非易失性存储器206耦合,使得在接口控制器202与非易失性存储器206之间建立导电路径。
数据总线接口216可与数据总线238和存储器接口电路系统240耦合。数据总线接口216可以被配置成通过数据总线238发射和接收数据,所述数据总线可以与易失性存储器204耦合。数据总线接口216还可被配置成在数据总线238与存储器接口电路系统240之间传送数据。C/A总线接口264可以与C/A总线242和存储器接口电路系统240耦合。C/A总线接口264可被配置成从存储器接口电路系统240接收命令和地址并且通过C/A总线242将命令和地址转送到非易失性存储器204(例如,转送到非易失性存储器204的本地控制器)。通过C/A总线242发射的命令和地址可与通过数据总线238接收到的或发射的数据相关联。数据总线238和C/A总线242可与接口控制器202和易失性存储器204耦合,以使得在接口控制器202与易失性存储器204之间建立导电路径。
除了用于与所耦合装置通信的总线和总线接口之外,接口控制器202还可以包含电路系统以用于将非易失性存储器206用作主存储器并且将易失性存储器204用作高速缓存器。例如,接口控制器202可以包含命令电路系统230、缓冲电路系统224、高速缓存器管理电路系统244、一或多个引擎246以及一或多个调度器248。
命令电路系统230可以与缓冲电路系统224、解码器228、高速缓存管理电路系统244和调度器248以及其它组件耦合。命令电路系统230可被配置成从解码器228接收命令和地址信息且将命令和地址信息存储在队列250中。命令电路系统230可包含逻辑262,所述逻辑处理命令信息(例如,来自主机装置)且存储来自其它组件(例如,高速缓存管理电路系统244、缓冲电路系统224)的信息并且使用所述信息以生成用于调度器248的一或多个命令。命令电路系统230还可被配置成将地址信息(例如,地址位)传送到高速缓存管理电路系统244。在一些实例中,逻辑262可以是被配置成用作有限状态机(FSM)的电路。
缓冲电路系统224可以与数据总线接口208、命令电路系统230、存储器接口电路系统234和存储器接口电路系统234耦合。缓冲电路系统224可包含用于易失性存储器204的至少一些组(如果不是每个组)的一或多个缓冲电路的集。缓冲电路系统224还可包含用于存取缓冲电路的组件(例如,存储器控制器)。在一个实例中,易失性存储器204可以包含十六个组并且缓冲电路系统224可以包含缓冲电路的十六个集。每个缓冲电路集可被配置成从易失性存储器204的相应组存储数据或为所述相应组存储数据(或这两者)。作为实例,用于组0(BK0)的缓冲电路集可配置成存储来自易失性存储器204的第一组的数据或存储用于易失性存储器204的第一组的数据(或这两者),且用于组15(BK15)的缓冲电路可配置成存储来自易失性存储器204的第十六组的数据或存储用于易失性存储器204的第十六组的数据(或这两者)。
缓冲电路系统224中的每个缓冲电路集可以包含一对缓冲器。所述对缓冲器可以包含:一个缓冲器(例如,打开页数据(OPD)缓冲器),其被配置成存储被来自主机装置的存取命令(例如,写入命令或读取命令)定为目标的数据;以及另一缓冲器(例如,受害页数据(VPD)缓冲器),其被配置成存储数据以用于存取命令所引起的逐出过程。例如,用于BK0的缓冲电路集可以包含缓冲器218和缓冲器220,其可以分别是缓冲器135-a和135-b的实例。缓冲器218可以被配置成存储由来自主机装置的存取命令定为目标的BK0数据。并且缓冲器220可以被配置成存储从BK0传送的数据,作为存取命令所触发的逐出过程的一部分。缓冲电路集中的每个缓冲器可配置有对应于易失性存储器204的页大小的大小(例如,存储容量)。举例来说,如果易失性存储器204的页大小是2kB,那么每一缓冲器的大小可以是2kB。因此,在一些实例中,缓冲器的大小可以等同于易失性存储器204的页大小。
高速缓存管理电路系统244可与命令电路系统230、引擎246和调度器248以及其它组件耦合。高速缓存器管理电路系统244可以包含用于易失性存储器的一或多个组(例如,每一组)的高速缓存器管理电路集。作为实例,高速缓存管理电路系统244可以包含用于BK0到BK15的十六个高速缓存管理电路集。每个高速缓存器管理电路集可以包含两个存储器阵列,所述存储器阵列可以被配置成存储用于易失性存储器204的存储信息。作为实例,用于BK0的高速缓存管理电路集可包含存储器阵列252(例如,高速缓存器DRAM标签阵列(CDT-TA))和存储器阵列254(例如,CDRAM有效(CDT-V)阵列),其可被配置成存储用于BK0的存储信息。在一些实例中,存储器阵列也可以被称作阵列或缓冲器。在一些情况下,存储器阵列可以是或包含易失性存储器单元,例如静态RAM(SRAM)单元。
存储信息(或“元数据”)可包含与易失性存储器204相关联的内容信息、有效性信息和/或脏信息(或其任何组合),以及其它实例。内容信息(其也可称为标签信息或地址信息)可指示哪个数据存储在易失性存储器单元集中。举例来说,易失性存储器204的行的内容信息(例如,标签地址)可指示当前一或多个非易失性存储器单元的哪一集具有存储在所述行中的数据。如所提到,有效性信息可指示存储在易失性存储器单元集中的数据是实际数据(例如,具有预期次序或形式的数据)还是占位符数据(例如,随机或虚拟的数据,不具有预期或重要次序)。并且脏信息可以指示存储在易失性存储器204的一或多个易失性存储器单元的集中的数据是否不同于存储在非易失性存储器206的一或多个非易失性存储器单元的集中的对应的数据。举例来说,脏信息可指示存储在易失性存储器单元集中的数据是否已相对于存储在非易失性存储器206中的数据而更新。
存储器阵列252可包含存储器单元,其存储易失性存储器204的相关联组(例如,BK0)的存储信息(例如,标签信息、有效性信息、脏信息)。存储信息可在每行基础上存储(例如,可存在用于相关联的非易失性存储器组的每一行的相应存储信息)。接口控制器202可以通过参考存储器阵列252中的存储信息来检查易失性存储器204中的所请求数据。举例来说,接口控制器202可从主机装置接收针对非易失性存储器206中的非易失性存储器单元集中的数据的检索命令。接口控制器202可使用被存取请求定为目标的一或多个地址位的集(例如,行地址位集)以参考存储器阵列252中的存储信息。举例来说,使用集相关联映射,接口控制器202可参考存储器阵列252中的内容信息以确定易失性存储器单元的哪个集(如果存在的话)存储所请求的数据。
除存储用于易失性存储器单元的内容信息之外,存储器阵列252也可以存储有效性信息,所述有效性信息指示易失性存储器单元集中的数据是实际数据(也被称作有效数据)还是随机数据(也被称作无效数据)。举例来说,易失性存储器204中的易失性存储器单元可最初存储随机数据并且继续这样做直至易失性存储器单元被写入来自主机装置或非易失性存储器206的数据。为了追踪哪些数据是有效的,存储器阵列252可被配置成针对每个易失性存储器单元集(例如,行),当实际数据存储在那个易失性存储器单元集中时设置那个易失性存储器单元集的位。这一位可称为有效性位或有效性旗标。如同内容信息,存储在存储器阵列252中的有效性信息可在每行基础上存储。因此,在一些实例中,每一有效性位可指示存储在相关联行中的数据的有效性。
在一些实例中,存储器阵列252可存储指示易失性存储器单元集(例如,行)是否存储任何脏数据的脏信息。类似于有效性信息,存储在存储器阵列252中的脏信息可在每行基础上存储。
存储器阵列254可类似于存储器阵列252且还可包含存储器单元,所述存储器单元存储用于与存储器阵列252相关联的易失性存储器204的组(例如,BK0)的存储信息。举例来说,存储器阵列254可存储易失性存储器204的组的有效性信息和脏信息。然而,存储在存储器阵列254中的存储信息可在子块基础而不是每行基础上存储。举例来说,存储在存储器阵列254的存储器单元中的有效性信息可指示用于易失性存储器204的行中的易失性存储器单元的子集的数据的有效性。
作为实例,存储器阵列254中的有效性信息可指示存储在易失性存储器204的BK0的行中的每个数据子集(例如,32B或64B)的有效性。类似地,存储在存储器阵列254的存储器单元中的脏信息可指示易失性存储器204的行中的易失性存储器单元的哪一子集存储脏数据。举例来说,存储器阵列254中的脏信息可指示存储在易失性存储器204的BK0的行的数据的每一子集(例如,32B或64B)的脏状态。在存储器阵列252中在每行基础上存储存储信息(例如,标签信息、有效性信息)可允许接口控制器202确定易失性存储器204中的数据是存在命中还是未中。在存储器阵列254中在子块基础上存储存储信息(例如,有效性信息、脏信息)可允许接口控制器202确定数据的哪些子集返回到主机装置(例如,在检索过程期间)且数据的哪些子集保存在非易失性存储器206中(例如,在逐出过程期间)。
每个高速缓存器管理电路集还可以包含相应一对寄存器,所述相应一对寄存器与命令电路系统230、引擎246、存储器接口电路系统234、存储器接口电路系统240和用于所述高速缓存器管理电路集的存储器阵列以及其它组件耦合。举例来说,高速缓存管理电路集可包含第一寄存器(例如,寄存器256,其可以是打开页标签(OPT)寄存器),所述第一寄存器被配置成从存储器阵列252或调度器248-b或这两者接收存储信息(例如,标签信息、有效性信息或脏信息、其它信息或任何组合的一或多个位)。高速缓存管理电路系统集还可包含第二寄存器(例如,可以是受害页标签(VPT)寄存器的寄存器258),所述第二寄存器配置成从存储器阵列254和调度器248-a或这两者接收存储信息(例如,有效性信息和/或脏信息或这两者)。寄存器256和寄存器258中的信息可以传送到命令电路系统230和引擎246以实现由这些组件作出决策。举例来说,命令电路系统230可基于寄存器256和/或寄存器258或这两者中的存储信息来发出读取非易失性存储器206或易失性存储器204的命令。
引擎246-a可与寄存器256、寄存器258和调度器248耦合。引擎246-a可被配置成从各种组件接收存储信息且基于存储信息来将命令发出到调度器248。例如,当接口控制器202在例如直写模式的第一模式中时,引擎246-a可将命令发出到调度器248-b,并且作为响应调度器248-b起始或促进从缓冲器218到易失性存储器204和非易失性存储器206这两者的数据传送。替代地,当接口控制器202处于例如写回模式的第二模式下时,引擎246-a可以将命令发到调度器248-b,并且作为响应调度器248-b可以发起或促进从缓冲器218到易失性存储器204的数据传送。在写回操作的情况下,在后续逐出过程期间存储在易失性存储器204中的数据可最终被传送到非易失性存储器206。
引擎246-b可与寄存器258和调度器248-a耦合。引擎246-b可以被配置成从寄存器258接收存储信息并且基于存储信息将命令发到调度器248-a。例如,引擎246-b可以将命令发到调度器248-a以发起或促进从缓冲器220到非易失性存储器206的脏数据传送(例如,作为逐出过程的一部分)。如果缓冲器220保留从易失性存储器204传送的数据集(例如,受害数据),则引擎246-b可指示缓冲器220中的数据集的哪一或多个子集(例如,哪些64B)应传送到非易失性存储器206。
调度器248-a可以与接口控制器202的各种组件耦合并且可以通过将命令发出到存储器接口电路系统234来促进存取非易失性存储器206。调度器248-a发出的命令可以基于来自命令电路系统230、引擎246-a、引擎246-b或这些组件的组合的命令。类似地,调度器248-b可与接口控制器202的各种组件耦合,且可通过将命令发出到存储器接口电路系统240而促进存取易失性存储器204。由调度器248-b发出的命令可基于来自命令电路系统230或引擎246-a或这两者的命令。
存储器接口电路系统234可以经由数据总线接口212和C/A总线接口214中的一或多个与非易失性存储器206通信。举例来说,存储器接口电路系统234可提示C/A总线接口214在C/A总线236上将由存储器接口电路系统234发出的命令转送到非易失性存储器206中的本地控制器。并且存储器接口电路系统234可经由数据总线232将数据发射到非易失性存储器206或从所述非易失性存储器接收数据。在一些实例中,由存储器接口电路系统234发出的命令可以由非易失性存储器206而非易失性存储器204支持(例如,由存储器接口电路系统234发出的命令可以不同于由存储器接口电路系统240发出的命令)。
存储器接口电路240可经由数据总线接口216和C/A总线接口264中的一或多个与易失性存储器204通信。例如,存储器接口电路系统240可提示C/A总线接口264在C/A总线242上将由存储器接口电路系统240发出的命令转送到易失性存储器204的本地控制器。而且存储器接口电路系统240可在一或多个数据总线238上将数据发射到易失性存储器204或从所述易失性存储器接收数据。在一些实例中,由存储器接口电路系统240发出的命令可以由易失性存储器204而非非易失性存储器206支持(例如,由存储器接口电路系统240发出的命令可以不同于由存储器接口电路系统234发出的命令)。
总之,接口控制器202的组件可以将非易失性存储器206用作主存储器且将易失性存储器204用作高速缓存器。此操作可以由从主机装置接收到的一或多个存取命令(例如,读取/检索命令/请求和写入/存储命令/请求)提示。
在一些实例中,接口控制器202可以从主机装置接收存储命令。存储命令可通过C/A总线226接收到且经由C/A总线接口210和解码器228中的一或多个传送到命令电路系统230。存储命令可包含或伴随有地址位,所述地址位以非易失性存储器206的存储器地址为目标。待存储的数据可通过数据总线260接收到且经由数据总线接口208传送到缓冲器218。在直写模式中,接口控制器202可以将数据传送到非易失性存储器206和易失性存储器204这两者。在写回模式中,接口控制器202可仅将数据传送到易失性存储器204。
在任一模式下,接口控制器202可以首先检查以查看易失性存储器204是否具有可用于存储数据的存储器单元。为了这样做,命令电路系统230可参考存储器阵列252(例如,使用存储器地址位的集)以确定与存储器地址相关联的n个易失性存储器单元集(例如,行)中的一或多个是否是空的(例如,存储随机或无效数据)。举例来说,命令电路系统230可基于存储在存储器阵列252中的标签信息和有效性信息来确定n个易失性存储器单元(例如,行)集中的一或多个是否可用。在一些情况下,易失性存储器204中的易失性存储器单元集可称为线、高速缓存线或行。
如果n个相关联易失性存储器单元集中的一个可供用于存储信息,则接口控制器202可以将数据从缓冲器218传送到易失性存储器204以用于存储在所述易失性存储器单元集中。但如果相关联易失性存储器单元集不是空的,那么接口控制器202可起始逐出过程以在易失性存储器204中为数据腾出空间。逐出过程可涉及将受害数据从n个相关联的易失性存储器单元集中的一个传送到缓冲器220。用于受害数据的脏信息可从存储器阵列254传送到寄存器258以用于受害数据的脏子集的识别。在将受害数据存储在缓冲器220中之后,可将新数据从缓冲器218传送到易失性存储器204且可将受害数据从缓冲器220传送到非易失性存储器206。在一些情况下,将旧数据的脏子集传送到非易失性存储器206且丢弃干净子集(例如,未经修改子集)。可由引擎246-b基于在逐出过程期间从存储器阵列254传送到寄存器258的脏信息来识别脏子集。
在另一实例中,接口控制器202可以从主机装置接收检索命令。检索命令可通过C/A总线226接收到并且经由C/A总线接口210和解码器228中的一或多个传送到命令电路系统230。检索命令可以包含地址位,所述地址位以非易失性存储器206的存储器地址为目标。在尝试存取非易失性存储器206的目标存储器地址之前,接口控制器202可进行检查以发现易失性存储器204是否存储数据。为了这样做,命令电路系统230可参考存储器阵列252(例如,使用存储器地址位的集)以确定与存储器地址相关联的易失性存储器单元的n个集(例如,行)中的一或多个是否存储所请求数据。如果所请求数据存储在易失性存储器204中,则接口控制器202可以将所请求数据传送到缓冲器218以用于通过数据总线260发射到主机装置。
如果所请求数据不存储在易失性存储器204中,则接口控制器202可以从非易失性存储器206检索数据并且将数据传送到缓冲器218以用于通过数据总线260发射到主机装置。另外,接口控制器202可以将所请求数据从缓冲器218传送到易失性存储器204,以便在后续检索操作期间可以较低时延存取数据。然而,在传送所请求数据之前,接口控制器202可首先确定n个相关联的易失性存储器单元集中的一或多个是否可用于存储所请求数据。接口控制器202可以通过与相关的高速缓存器管理电路集通信来确定n个相关联的易失性存储器单元集的可用性。如果相关联易失性存储器单元集可用,则接口控制器202可以将缓冲器218中的数据传送到易失性存储器204而不执行逐出过程。否则,接口控制器202可以在进行逐出过程之后将数据从缓冲器218传送到易失性存储器204。
存储器子系统200可以实施于一或多个配置中,包含单芯片版本和多芯片版本。多芯片版本可在与包含存储器子系统200的一或多个其它组成部分的芯片分开的芯片上包含存储器子系统200的一或多个组成部分,包含接口控制器202、易失性存储器204和非易失性存储器206(以及其它组成部分或组成部分的组合)。举例来说,在一个多芯片版本中,相应分开的芯片可包含接口控制器202、易失性存储器204和非易失性存储器206中的每一个。相比之下,单芯片版本可在单个芯片上包含接口控制器202、易失性存储器204和非易失性存储器206。
如所提及,存储器子系统200可在行基础上并在每子集基础上维持用于易失性存储器204的存储信息(例如,有效性信息、脏信息)。关于易失性存储器204,维持存储信息所针对的最小数据大小(或最小粒度)可对应于易失性存储器204的高速缓存线大小,其可为行的可个别存取的最小部分。作为说明,易失性存储器204可具有64B的高速缓存线大小,这意味着1)易失性存储器204的每个脏信息位对应于64B的数据,以及2)每存取命令涉及至少64B的数据。易失性存储器204的高速缓存线大小也可被称作易失性存储器204的阈值大小或粒度。易失性存储器204的阈值大小可大于非易失性存储器206的阈值大小。
为了将易失性存储器204的开销(例如,存储信息)保持在可管理水平,易失性存储器204的高速缓存线大小可相对为大(例如,大于来自主机装置的存取命令的最小大小)。举例来说,易失性存储器204可具有64B高速缓存线大小,而主机装置可发出针对32B以及其它大小的数据的存取命令。一般来说,当待存取数据的大小小于易失性存储器204的高速缓存线大小时,所述存取可被称为部分存取。举例来说,继续以上论述,当易失性存储器120具有大于32B的阈值大小(例如64B阈值大小)时,针对32B的数据的写入命令可被称为部分写入命令或部分写入。不满足易失性存储器204的阈值大小的数据可被称为过小数据、大小不足的数据,或其它合适的术语。
在接收到为未命中的部分写入命令(例如,其中在易失性存储器120中不存在与非易失性存储器地址相关联的数据)之后,接口控制器202即刻可将相关联数据暂时存储于缓冲器218中,之后将数据传达给非易失性存储器206进行存储。接口控制器202可将数据传达给非易失性存储器206并将数据存储于非易失性存储器206中,原因是所述数据太小而不能存储于易失性存储器204中。这类技术可被称为直写策略,原因是所述数据存储于非易失性存储器206中而不存储于易失性存储器204中。但使用直写策略可增加存取非易失性存储器206的时间量,这在非易失性存储器206具有较长存取时间、在存取操作期间比易失性存储器204消耗更多电力或这两者的情况下又可不利地影响系统性能。
根据本文中所描述的技术,接口控制器202可通过使用例如缓冲器218或另一组件将与部分写入命令相关联的第一数据集与第二数据集组合以使得所得数据包满足易失性存储器204的高速缓存线大小,以此提高系统性能。第二数据集可为与另一部分写入命令相关联的数据或从非易失性存储器206检索的数据。第一数据集和第二数据集可与易失性存储器204的相邻地址相关联(例如,以遵守易失性存储器的存取限制并且因此易失性存储器204的有效性信息和脏信息对于包中的全部数据来说准确准确的)。因此,接口控制器202可将与部分写入命令相关联的数据存储于易失性存储器204中,这与将数据存储于非易失性存储器206中形成对照。这类技术在本文中可以被称为写回策略,原因是数据初始存储于易失性存储器204中且可不存储于非易失性存储器206中直到执行后续逐出过程为止。
因此,接口控制器202可支持用于写入命令的多个策略(例如,模式)。因此,应了解,接口控制器202可基于各种因素和条件,动态地在策略(例如,模式)之间切换。举例来说,接口控制器202可针对可与其它数据组合的部分写入命令并且针对完整写入命令(例如,满足易失性存储器204的阈值大小的写入命令)使用写回策略并且可针对无法与其它数据组合的部分写入命令使用直写策略。
图3说明根据本文所公开的实例的支持用于部分写入的技术改进的装置300的实例。装置300可为参考图1所描述的存储器子系统110或参考图2所描述的存储器子系统200的实例。所述装置可包含接口控制器302、易失性存储器315和非易失性存储器320,其可经由一或多个发射线或总线或这两者与彼此耦合。接口控制器302可包含缓冲器305,可为参考图1所描述的缓冲器135-a或参考图2所描述的缓冲器218的实例。如本文所描述,装置300可策略性地组合缓冲器305中的数据以使得所述装置可针对部分写入命令使用写回策略。
参考其中与易失性存储器315相关联的阈值大小是64B的实例描述装置300的操作。然而,还涵盖其它阈值大小,例如32B、128B、256B。
控制器310可控制缓冲器305的本地操作,包含例如读取操作和写入操作的存取操作。控制器310可基于从主机装置接收的存取命令以及来自其它组件的其它命令来控制缓冲器305。作为实例,控制器310可从主机装置接收写入命令并将主机装置提供的相关联数据存储于缓冲器305中。作为另一实例,控制器310可从非易失性存储器320接收数据并将来自非易失性存储器320的数据存储于缓冲器305中。控制器310也可控制进出缓冲器305的数据传达。
缓冲器305可充当存储正在主机装置、易失性存储器315和非易失性存储器320之间路由的数据的中间存储装置。易失性存储器315的每组(可包含组B0到BN)可存在一个缓冲器305,且在一些实例中,每个缓冲器305可与易失性存储器315的对应组相关联。在一些实例中,与组相关联的缓冲器305可专为那个组所独有,这意指缓冲器305用以传送数据进出所述特定组(且无易失性存储器315的其它组)。举例来说,与组B0相关联的缓冲器305-a可用于存储进出组B0的数据。替代地,在一些实例中,与组相关联的缓冲器305可并非专为给定组所独有,这意指缓冲器305用以传送数据进出多个组。存储于缓冲器305中的数据可包含主机装置提供的数据(例如,写入数据)或非易失性存储器320提供的数据或这两者。举例来说,主机装置为组B0提供的数据可累积在缓冲器305-a中,且作为本文所描述的写回策略的部分,非易失性存储器320为组B0提供的数据可拉到缓冲器305-a中。在一些实例中,累积于缓冲器305中的数据可与缓冲器305专用于的那个组的同一行相关联。
在所说明实例中,缓冲器305-a可暂时存储数据A到数据G。存储于缓冲器305-a中的数据的大小可变化或可为相同大小。举例来说,数据A到数据f可各自为32B且数据G可为64B。另外,存储于缓冲器305-a中的数据的来源可变化。举例来说,数据A到数据E和数据G可为主机装置提供的数据(例如,写入数据)且数据F可为非易失性存储器320提供的数据(反之亦然),以及其它实例。控制器310可存储用于易失性存储器315的数据而不考虑数据的大小并且可跟踪与每个数据相关联的地址。举例来说,接口控制器302可确定数据A与易失性存储器204的地址(B0、R0、C0)相关联,其中B0是组地址,R0是行地址,且C0是开始列地址。并且如所说明,依次类推。
当方便时,在接收到完整写入命令(例如,针对64B的写入命令)之后,接口控制器302即刻可通过将写入命令和相关联数据传达给易失性存储器315来实施写回策略,原因是数据满足易失性存储器315的阈值大小。举例来说,在存储数据G之后,接口控制器302可将数据G(和针对数据G的写入命令)传达给易失性存储器315,原因是数据G是64B,其为易失性存储器315的阈值大小。应了解,针对数据G的写入命令可指示与数据G相关联的易失性存储器地址(例如,B0、R0、C25)以使得易失性存储器315可将数据G写入到正确的存储器单元。
在接收到为未命中的针对过小数据(例如,32B)的部分写入命令之后,接口控制器302即刻可寻找实施写回策略并且在不可能实施写回策略的情况下后退到直写策略。为了针对过小数据实施写回策略,接口控制器302可将过小数据与缓冲器中的来自另一部分写入命令的现有数据组合,等待来自另一部分写入命令的可与过小数据组合的数据,或从非易失性存储器320检索用于与过小数据组合的适当数据。
因此,作为用于过小数据的写回程序的部分,接口控制器302可使用缓冲器305累积用于组合的数据。应了解,两个数据集在与相邻地址相关联的情况下可组合。如果与地址中的一个相关联的存储器单元与另一地址的存储器信元相接,那么所述地址相邻。举例来说,如果与第一地址相关联的存储器单元和与第二地址相关联的存储器单元相接,那么所述第一地址和第二地址可相邻。在一些实例中,如果地址具有相同组地址、行地址和相连列地址,那么所述地址可为相邻的。
为了说明用于过小数据的写回操作,考虑与部分写入命令相关联的数据B。因为数据B与和关联于数据C的地址(例如,B0、R0、C7)相邻的地址(例如,B0、R0、C8)相关联,所以接口控制器302可将数据B和数据C组合成满足易失性存储器315的阈值大小的更大数据包。因此,数据B可传达给易失性存储器315并存储于易失性存储器315中,即使数据B的大小对于存取易失性存储器315来说是不足的。包括数据B和数据C的包可响应于与数据B和数据C相关联的预充电命令(例如,行0)或在接收到预充电命令之前瞅机会传达给易失性存储器315。预充电命令可为停用(或“关闭”)行的命令。
作为用于过小数据的写回的第二实例,考虑也与部分写入命令相关联的数据D。如果缓冲器305-a中没有数据可与数据D组合(例如,归因于不相邻地址),那么接口控制器302可从非易失性存储器320检索可与数据D组合的数据。举例来说,接口控制器302可从非易失性存储器320检索数据F,原因是数据F具有与关联于数据D的地址(B0、R0、C5)相邻的地址(例如,B0、R0、C4)。因此,接口控制器302可组合数据D和数据F并将满足阈值大小的所得包传达给易失性存储器315进行存储。从非易失性存储器320检索数据F可为可能的,原因是非易失性存储器320的阈值大小可小于易失性存储器315的阈值大小(例如,非易失性存储器320的阈值大小可32B或甚至更小)。在一些实例中,在希望接收到可与数据D组合的数据时,接口控制器302可在从非易失性存储器320检索数据之前等待直到接收到针对敞开行的预充电命令。
在接收到为命中的针对32B的部分写入命令之后,接口控制器302可即刻实施写回策略而无需组合。举例来说,接口控制器302可将数据和相关联写入命令传达给易失性存储器315,使得易失性存储器315可使用掩蔽写入(MWR)操作存储数据。在掩蔽写入操作中,存取整个高速缓存线(例如,相当于64B的数据)。然而,高速缓存线的仅一部分被写入新数据,而高速缓存线的剩余部分被重写现有数据。可准许这类写入技术杀因为其不破坏数据的有效性信息的准确度。作为命中情境中的写回策略的实例,如果易失性存储器315中的存储器的64B组块已经具有数据A的旧版本(加将维持现状的另32B的数据),那么数据A可传达给易失性存储器315以用于掩蔽写入。在掩蔽写入之后,存储器的64B组块可存储数据A的经更新版本加在掩蔽写入之前存在的另32B的数据。
虽然掩蔽写入技术可用以实施针对部分写入命中的写回策略,但应了解,在一些实例中,针对部分写入未命中使用掩蔽写入技术可为不可能的,原因是这样做可影响(例如,破坏、不利地影响)存储信息(例如有效性信息)的准确度。当用于未命中上下文中时,掩蔽写入更新数据集(64B)的最初完全无效的子集(例如,32B)。这意味着在掩蔽写入之后,所得数据集一半有效且一半无效。因为在64B基础上存储有效性信息(在给定实例中),所以用于数据集的有效性信息对于所述数据集的一半(例如,32B)是不准确的。因此,本文中所描述的组合技术可允许接口控制器302针对部分写入未命中使用写回策略而不会破坏有效性信息的准确度。
如所提及,在一些实例中,组合缓冲器305中的过小数据可归因于地址不一致而为不可能的。举例来说,接口控制器302可能无法将数据E与其它数据组合,原因是没有可用于接口控制器302的数据与相邻地址(B0、R0、C13)相关联。如果数据E到接收到针对行0的预充电命令时仍不成对,那么接口控制器302可通过将数据E传达给非易失性存储器320进行存储来实施针对数据E的直写策略。
虽然参考组合两个数据集以形成大小足够的包进行描述,但可通过组合任何数量的数据集来实施本文中所描述的技术,其条件是所得包大小等于易失性存储器315的阈值大小或为易失性存储器315的阈值大小的整数倍。
图4说明根据本文所公开的实例的支持用于部分写入的技术改进的过程流400的实例。过程流400可由参考图1所描述的存储器子系统110或接口控制器115、参考图2所描述的存储器子系统200或接口控制器202或参考图3所描述的装置300或接口控制器302实施。然而,其它类型的装置可实施过程流程400。过程流400可说明策略性地组合过小数据以实施针对部分写入命令的写回策略的装置的操作。
为了便于参考,参考装置描述过程流程400。举例来说,过程流400的方面可由包含与易失性存储器耦合的缓冲器的装置实施,所述易失性存储器被配置成用作非易失性存储器的高速缓存器。另外或替代地,过程流程400的方面可被实施为存储在存储器中的指令(例如,存储在易失性存储器120或非易失性存储器125或这两者中的固件)。例如,指令在由控制器执行时可使得控制器执行过程流程400的操作。
在405处,可接收到针对第一数据集的第一写入命令。举例来说,所述装置可(例如,从主机装置)接收针对小于所述装置的易失性存储器的阈值大小的第一数据集的部分写入命令。第一数据集可针对易失性存储器中的组(例如,组y)的行(例如,行x)。可从与所述装置耦合的主机装置接收部分写入命令和第一数据集。第一写入命令和第一数据集可与易失性存储器的第一地址相关联。在一些实例中,第一地址可指示组、行和列。
在410处,可将第一数据集存储于缓冲器中。举例来说,所述装置可至少部分地基于第一写入命令,将第一数据集存储于与组(例如,组y)相关联的缓冲器中。
在415处,可确定第一数据集是否满足易失性存储器的阈值大小。如果第一数据集具有等于或大于阈值大小的大小,那么第一数据集可满足阈值大小。如果在425处,确定第一数据集满足阈值大小,那么在430处,可将第一数据集传达给易失性存储器进行存储。因此,可针对完整写入命令实施写回策略。如果在425处,确定第一数据集不满足阈值大小,那么所述过程可转到435。
在435处,可确定第一写入命令是命中还是未命中。如果在435处,确定第一写入命令是命中,那么在440处,可将第一数据集传达给易失性存储器以使用例如掩蔽写入操作的操作进行存储。因此,写回策略可用于为命中的部分写入命令(例如,当易失性存储器315存储与被部分写入命令定为目标的非易失性存储器地址相关联的数据时)。如果在435处,确定第一写入命令是未命中(例如,当在易失性存储器315中不存在与被部分写入命令定为目标的非易失性存储器地址相关联的数据时),那么所述过程可转到445。
在445处,可接收到第二数据集。所述第二数据集可与易失性存储器的第二地址相关联并且和第一数据集可与相同的行(例如,行x)和相同的组(例如,组y)相关联。可从主机装置或从非易失性存储器(例如,响应于来自所述装置的请求)接收第二数据集。如果从主机装置接收到第二数据集,那么所述装置也可接收针对第二数据集的第二写入命令。如果从非易失性存储器接收到第二数据集,那么第二数据集可为由所述装置起始的检索过程的部分。在450处,可将第二数据集存储于缓冲器(例如,写入到缓冲器)中。
在455处,可确定第二数据集是否满足易失性存储器的阈值大小。当从主机装置接收到第二数据集时,可执行455的操作。如果在455处,确定第二数据集满足阈值大小,那么在460处,可将第二数据集传达给易失性存储器进行存储。因此,可针对完整写入命令实施写回策略。如果在455处,确定第二数据集不满足阈值大小,那么所述过程可转到465。
在465处,可确定第二写入命令是命中还是未命中。当从主机装置接收到第二数据集时,可执行465的操作。如果在465处,确定第二写入命令为命中,那么在470处,可将第二数据集传达给易失性存储器以使用掩蔽写入操作进行存储。因此,写回策略可用于是命中的部分写入命令。如果在465处,确定第二写入命令是未命中,那么所述过程可转到475。
在475处,可确定第一数据集和第二数据集是否与易失性存储器的相邻(例如,相连、相接)地址相关联。举例来说,所述装置可确定第一地址和第二地址是否相邻。当从主机装置接收到第二数据集时,可执行475的操作。如果在475处,确定第一数据集和第二数据集不与相邻地址相关联,那么在480处,可将第一数据集和第二数据集传达给非易失性存储器进行存储。因此,可针对不可组合的多个部分写入命令实施直写策略。如果在475处,确定第一数据集和第二数据集与相邻地址相关联,那么所述过程可转到485。
在485处,可将第一数据集和第二数据集传达给易失性存储器以使得第一数据集和第二数据集可存储于易失性存储器中。第一数据集和第二数据集可作为具有等于或大于易失性存储器的阈值大小的大小的组合数据集进行传达。在490处,可将针对数据集的写入命令传达给易失性存储器。写入命令可指示第一地址、第二地址或其组合。可在彼此的阈值时间量内传达写入命令和数据集。因此,可针对至少一个部分写入命令(例如,第一写入命令)实施写回策略。
在495处,可接收针对行(例如,行x)的预充电命令。在接收到预充电之后,所述装置即刻可将缓冲器中的任何现有的过小的脏数据传达给非易失性存储器。因此,可针对在接收到预充电命令时不被服务的部分写入命令以及其它实例实施直写策略。如果缓冲器还具有来自在接收到预充电命令时不被服务的完整写入命令的数据,那么所述装置可将此数据传达给易失性存储器。因此,可针对在接收到预充电命令时不被服务的完整写入命令以及其它实例实施写回策略。
可实施上文的替代性实例,其中一些操作以不同于描述的次序的次序执行、并行执行或完全不执行。在一些情况下,操作可包含下文未提及的额外特征,或可添加另外的操作。另外,某些操作可执行多次,或可重复或循环某些操作组合。
图5示出根据本文所公开的实例的支持用于部分写入的技术改进的存储器装置520的框图500。存储器装置520可为如参考图1到4描述的存储器装置的方面的实例。存储器装置520或其各种组件可以是用于执行如本文中所描述的用于部分写入的技术改进的各个方面的装置的实例。举例来说,存储器装置520可包含接收电路525、缓冲器控制器530、发射电路535、易失性存储器控制器540或其任何组合。这些组件中的每一个可直接或间接地(例如经由一或多个总线)彼此通信。
接收电路525可以是或包含数据总线、数据总线接口、逻辑、电路系统、处理器、控制器,或其它能够执行本文所描述的功能的组件。缓冲器控制器530可以是或包含逻辑、电路系统、处理器、控制器,或其它能够执行本文所描述的功能的组件。发射电路535可以是或包含数据总线、数据总线接口、逻辑、电路系统、处理器、控制器,或其它能够执行本文所描述的功能的组件。易失性存储器控制器540可以是或包含逻辑、电路系统、处理器、控制器,或其它能够执行本文所描述的功能的组件。
在第一实例中,接收电路525可配置为或以其它方式支持用于从主机装置接收所述主机装置所提供的针对第一数据集的写入命令的装置。缓冲器控制器530可配置为或以其它方式支持用于至少部分地基于所述写入命令,将所述第一数据集存储于与易失性存储器耦合的缓冲器中的装置,所述易失性存储器被配置成用作非易失性存储器的高速缓存器。发射电路535可配置为或以其它方式支持用于至少部分地基于所述写入命令,将包含所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器的装置,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联并且至少部分地基于所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
在一些实例中,所述阈值大小包含维持所述易失性存储器的元数据所针对的数据的最小大小、用于存取所述易失性存储器的数据的最小大小,或其组合。
在一些实例中,所述写入命令与所述易失性存储器的第一地址相关联,且接收电路525可配置为或以其它方式支持用于从所述主机装置接收针对所述第二数据集的第二写入命令的装置,所述第二写入命令与所述易失性存储器的第二地址相关联。在一些实例中,所述写入命令与所述易失性存储器的第一地址相关联,且易失性存储器控制器540可配置为或以其它方式支持用于至少部分地基于所述第一地址和所述第二地址,确定所述第一数据集和所述第二数据集是否与所述易失性存储器的相邻存储器地址相关联的装置。
在一些实例中,缓冲器控制器530可配置为或以其它方式支持用于至少部分地基于所述第二写入命令并且在接收到针对所述第一数据集的所述命令之前,将所述第二数据集存储于所述缓冲器中的装置。
在一些实例中,发射电路535可配置为或以其它方式支持用于至少部分地基于所述第一数据集具有小于所述阈值大小的大小并且至少部分地基于所述第一数据集和所述第二数据集与相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器的装置。在一些实例中,缓冲器控制器530可配置为或以其它方式支持用于在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中的装置。
在一些实例中,所述第一数据集和所述第二数据集与所述易失性存储器的组中的行相关联,且接收电路525可配置为或以其它方式支持用于从所述主机装置接收针对易失性存储器的行的预充电命令的装置,其中在接收到所述预充电命令之前,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
在一些实例中,易失性存储器被配置成用作与存储器装置耦合的非易失性存储器的高速缓存器,且发射电路535可配置为或以其它方式支持用于至少部分地基于所述预充电命令以及与所述易失性存储器的所述行相关联的第三数据集具有小于所述阈值大小的大小,将所述第三数据集从所述缓冲器传达给所述非易失性存储器的装置。
在一些实例中,易失性存储器控制器540可配置为或以其它方式支持用于确定在所述易失性存储器中不存在对应于所述第一数据集的数据的装置,其中至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
在一些实例中,所述易失性存储器的所述相邻地址包含所述易失性存储器中的组的同一行中的列地址。在一些实例中,所述数据集具有等于所述阈值大小或为所述阈值大小的整数倍的大小。
在第二实例中,缓冲器控制器530可配置为或以其它方式支持用于至少部分地基于接收到的写入命令,将第一数据集存储于所述缓冲器中的装置。易失性存储器控制器540可配置为或以其它方式支持用于确定所述第一数据集的大小是否小于用于存取所述易失性存储器的阈值大小的装置。发射电路535可配置为或以其它方式支持用于至少部分地基于所述写入命令以及所述第一数据集的所述大小小于所述阈值大小,将包含所述第一数据集和具有小于所述阈值大小的大小的第二数据集的数据集从所述缓冲器传达给所述易失性存储器的装置,所述数据集至少具有所述阈值大小。
在一些实例中,易失性存储器控制器540可配置为或以其它方式支持用于确定所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联的装置,其中至少部分地基于所述确定来传达所述数据集。
在一些实例中,缓冲器控制器530可配置为或以其它方式支持用于至少部分地基于接收到的第二写入命令,将所述第二数据集存储于所述缓冲器中的装置,其中在接收到针对所述第一数据集的所述写入命令之前,将所述第二数据集存储于所述缓冲器中。在一些实例中,易失性存储器控制器540可配置为或以其它方式支持用于确定所述第二数据集的所述大小小于所述阈值大小的装置,其中至少部分地基于所述第二数据集的所述大小小于所述阈值大小来传达所述数据集。
在一些实例中,发射电路535可配置为或以其它方式支持用于至少部分地基于所述第一数据集具有小于所述阈值大小的大小且所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器的装置。在一些实例中,缓冲器控制器530可配置为或以其它方式支持用于在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中的装置。
在一些实例中,易失性存储器控制器540可配置为或以其它方式支持用于确定在所述易失性存储器中不存在对应于所述第一数据集的数据的装置,其中至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。在一些实例中,易失性存储器控制器540可配置为或以其它方式支持用于确定在易失性存储器中不存在来自与写入命令相关联的非易失性存储器地址的数据的装置。
图6示出说明根据本文所公开的实例的支持用于部分写入的技术改进的方法600的流程图。方法600的操作可由如本文中所描述存储器装置或其组件实施。举例来说,方法600的操作可由参考图1到5所描述的存储器装置执行。在一些实例中,存储器装置可以执行指令集以控制所述装置的功能元件执行所描述的功能。另外或替代地,存储器装置可以使用专用硬件执行所描述的功能的方面。
在605处,所述方法可包含从主机装置接收所述主机装置所提供的针对第一数据集的写入命令。可根据本文所公开的实例执行605的操作。在一些实例中,可由参考图5所描述的接收电路525执行605的操作的方面。
在610处,所述方法可包含至少部分地基于所述写入命令,将所述第一数据集存储于与易失性存储器耦合的缓冲器中,所述易失性存储器被配置成用作非易失性存储器的高速缓存器。可根据本文所公开的实例执行610的操作。在一些实例中,可由参考图5所描述的缓冲器控制器530执行610的操作的方面。
在615处,所述方法可包含至少部分地基于所述写入命令,将包含所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联并且至少部分地基于所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。可根据本文所公开的实例执行615的操作。在一些实例中,可由参考图5所描述的发射电路535执行615的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法600。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置意指或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):从主机装置接收所述主机装置所提供的针对第一数据集的写入命令;至少部分地基于所述写入命令,将所述第一数据集存储于与易失性存储器耦合的缓冲器中,所述易失性存储器被配置成操作为用于非易失性存储器的高速缓存器;和至少部分地基于所述写入命令,将包含所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联并且至少部分地基于所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
在本文所描述的方法600和设备的一些实例中,所述阈值大小包含可维持所述易失性存储器的元数据所针对的数据的最小大小、用于存取所述易失性存储器的数据的最小大小,或其组合。
在本文所描述的方法600和设备的一些实例中,所述写入命令可与所述易失性存储器的第一地址相关联,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从所述主机装置接收针对所述第二数据集的第二写入命令,所述第二写入命令与所述易失性存储器的第二地址相关联;和至少部分地基于所述第一地址和所述第二地址,确定所述第一数据集和所述第二数据集是否可与所述易失性存储器的相邻存储器地址相关联。
本文所描述的方法600和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于所述第二写入命令并且在接收到针对所述第一数据集的所述写入命令之前,将所述第二数据集存储于所述缓冲器中。
本文所描述的方法600和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于所述第一数据集具有小于所述阈值大小的大小并且至少部分地基于所述第一数据集和所述第二数据集与相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
在本文所描述的方法600和设备的一些实例中,所述第一数据集和所述第二数据集可与所述易失性存储器的行相关联,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从所述主机装置接收针对所述易失性存储器的所述行的预充电命令,其中在可接收到所述预充电命令之前,可将所述第一数据集和所述第二数据集传达给所述易失性存储器。
在本文所描述的方法600和设备的一些实例中,易失性存储器可被配置成用作与存储器装置耦合的非易失性存储器的高速缓存器,且所述方法、设备和非暂时性计算机可读媒体可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于所述预充电命令以及与所述易失性存储器的所述行相关联的第三数据集具有小于所述阈值大小的大小,将所述第三数据集从所述缓冲器传达给所述非易失性存储器。
本文所描述的方法600和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:确定在所述易失性存储器中可不存在对应于所述第一数据集的数据,其中可至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
在本文所描述的方法600和设备的一些实例中,所述易失性存储器的所述相邻地址包含所述易失性存储器中的组的同一行中的列地址。
在本文所描述的方法600和设备的一些实例中,所述数据集可具有可等于所述阈值大小或为所述阈值大小的整数倍的大小。
图7示出说明根据本文所公开的实例的支持用于部分写入的技术改进的方法700的流程图。方法700的操作可由如本文所描述的存储器装置或其组件实施。举例来说,可由如参考图1到5描述的存储器装置执行方法700的操作。在一些实例中,存储器装置可执行指令集以控制装置的功能元件执行下文所描述的功能。另外或替代地,存储器装置可使用专用硬件执行所描述的功能的方面。
在705处,所述方法可包含至少部分地基于接收到的写入命令,将第一数据集存储于所述缓冲器中。可根据本文所公开的实例执行705的操作。在一些实例中,可由参考图5所描述的缓冲器控制器530执行705的操作的方面。
在710处,所述方法可包含确定所述第一数据集的大小是否小于用于存取所述易失性存储器的阈值大小。可根据本文所公开的实例执行710的操作。在一些实例中,可由参考图5所描述的易失性存储器控制器540执行710的操作的方面。
在715处,所述方法可包含至少部分地基于所述写入命令以及所述第一数据集的所述大小小于所述阈值大小,将包含所述第一数据集和具有小于所述阈值大小的大小的第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少具有所述阈值大小。可根据本文所公开的实例执行715的操作。在一些实例中,可由参考图5所描述的发射电路535执行715的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法700。所述设备可包含用于以下操作的特征、电路系统、逻辑、意指或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):至少部分地基于接收到的写入命令,将第一数据集存储于所述缓冲器中;确定所述第一数据集的大小是否小于用于存取所述易失性存储器的阈值大小;和至少部分地基于所述写入命令以及所述第一数据集的所述大小小于所述阈值大小,将包括所述第一数据集和具有小于所述阈值大小的大小的第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少具有所述阈值大小。
本文所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:确定所述第一数据集和所述第二数据集可与所述易失性存储器的相邻地址相关联,其中可至少部分地基于所述确定来传达所述数据集。
本文所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于接收到的第二写入命令,将所述第二数据集存储于所述缓冲器中,其中在可接收到针对所述第一数据集的所述写入命令之前,可将所述第二数据集存储于所述缓冲器中;和确定所述第二数据集的所述大小可小于所述阈值大小,其中可至少部分地基于所述第二数据集的所述大小小于所述阈值大小来传达所述数据集。
本文所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:至少部分地基于所述第一数据集具有小于所述阈值大小的大小且所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
本文所描述的方法700和设备的一些实例可另外包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:确定在所述易失性存储器中可不存在对应于所述第一数据集的数据,其中可至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
应注意,本文中所描述的方法描述可能的实施方案,且操作和步骤可以重新布置或以其它方式加以修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
描述一种设备。所述设备可包含非易失性存储器;易失性存储器,其被配置成操作为用于所述非易失性存储器的高速缓存器;缓冲器,其与所述易失性存储器耦合;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器是可操作的以致使所述设备:从主机装置接收针对第一数据集的写入命令;至少部分地基于所述写入命令,将所述第一数据集存储于所述缓冲器中;和至少部分地基于所述写入命令,将包括所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联并且至少部分地基于所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
在所述设备的一些实例中,所述阈值大小包含可维持所述易失性存储器的元数据所针对的数据的最小大小、用于存取所述易失性存储器的数据的最小大小,或其组合。
在所述设备的一些实例中,所述接口控制器可进一步可操作以致使所述设备从所述主机装置接收针对所述第二数据集的第二写入命令,所述第二写入命令与所述易失性存储器的第二地址相关联;和至少部分地基于所述第一地址和所述第二地址,确定所述第一数据集和所述第二数据集是否可与所述易失性存储器的相邻存储器地址相关联。
在所述设备的一些实例中,所述接口控制器可进一步可操作以致使所述设备至少部分地基于所述第二写入命令并且在可接收到针对所述第一数据集的所述写入命令之前,将所述第二数据集存储于所述缓冲器中。
在所述设备的一些实例中,所述接口控制器可进一步可操作以致使所述设备至少部分地基于所述第一数据集具有小于所述阈值大小的大小且所述第一数据集和所述第二数据集与相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
在所述设备的一些实例中,接口控制器可进一步可操作以致使所述设备从主机装置接收针对行的预充电命令,其中在可接收到预充电命令之前,可将第一数据集和第二数据集传达给易失性存储器。
在所述设备的一些实例中,接口控制器可进一步可操作以致使所述设备至少部分地基于所述预充电命令以及与所述易失性存储器的所述行相关联的第三数据集具有小于所述阈值大小的大小,将所述第三数据集从所述缓冲器传达给所述非易失性存储器。
在所述设备的一些实例中,接口控制器可进一步可操作以致使所述设备确定在所述易失性存储器中可不存在对应于所述第一数据集的数据,其中可至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
在所述设备的一些实例中,所述易失性存储器的所述相邻地址包含所述易失性存储器中的组的同一行中的列地址。
在所述设备的一些实例中,所述数据集可具有可等于所述阈值大小或为所述阈值大小的整数倍的大小。
描述另一种设备。所述设备可包含非易失性存储器;易失性存储器,其被配置成操作为用于所述非易失性存储器的高速缓存器;缓冲器,其与所述易失性存储器耦合;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合。所述接口控制器可为可操作的以致使所述设备:至少部分地基于接收到的写入命令,将第一数据集存储于所述缓冲器中;确定所述第一数据集的大小是否小于用于存取所述易失性存储器的阈值大小;和至少部分地基于所述写入命令以及所述第一数据集的所述大小小于所述阈值大小,将包括所述第一数据集和具有小于所述阈值大小的大小的第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少具有所述阈值大小。
在所述设备的一些实例中,接口控制器可为可操作的以致使所述设备确定所述第一数据集和所述第二数据集可与所述易失性存储器的相邻地址相关联,其中可至少部分地基于所述确定来传达所述数据集。
在所述设备的一些实例中,接口控制器可为可操作的以致使所述设备至少部分地基于接收到的第二写入命令,将所述第二数据集存储于所述缓冲器中,其中在可接收到针对所述第一数据集的所述写入命令之前,可将所述第二数据集存储于所述缓冲器中;和确定所述第二数据集的所述大小可小于所述阈值大小,其中可至少部分地基于所述第二数据集的所述大小小于所述阈值大小来传达所述数据集。
在所述设备的一些实例中,所述接口控制器可为可操作的以致使所述设备至少部分地基于所述第一数据集具有小于所述阈值大小的大小且所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
在所述设备的一些实例中,接口控制器可为可操作的以致使所述设备确定在所述易失性存储器中可不存在对应于所述第一数据集的数据,其中可至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
描述另一种设备。所述设备可包含非易失性存储器;易失性存储器,其被配置成操作为用于所述非易失性存储器的高速缓存器;缓冲器,其与所述易失性存储器耦合;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器为可操作的以致使所述设备:至少部分地基于来自主机装置的写入命令,将与易失性存储器的第一地址相关联的第一数据集存储于所述缓冲器中;至少部分地基于所述第一数据集具有小于与易失性存储器相关联的阈值大小的大小,将来自非易失性存储器的第二数据集存储于缓冲器中,所述第二数据集具有小于所述阈值大小的大小并且与易失性存储器的和第一地址相邻的第二地址相关联;和至少部分地基于所述写入命令,将包括第一数据集和第二数据集的数据集从缓冲器传达给易失性存储器。
应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。此外,可以组合来自方法中的两个或更多个的部分。
如果用于描述条件性动作或过程,术语“如果……,那么……”、“当……时”、“基于……”、“至少部分地基于……”和“响应于……”可互换。
可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信令说明为单个信号;然而,所属领域的一般技术人员应理解,信号可表示信号的总线,其中总线可具有各种位宽度。
协议可定义支持以供装置或组件使用的一或多个通信程序和一或多个通信参数。例如,协议可以定义各种操作、用于那些操作的定时和频率、各种命令或信号或这两者的含义、用于一或多个存储器的一或多个寻址方案、其中保留引脚的类型的通信、在例如接口的各种组件处处置的数据的大小、由例如接口的各种组件支持的数据速率,或由例如接口的各种组件支持的带宽,以及其它参数和度量,或其任何组合。共享协议的使用可以实现装置之间的交互,这是因为每个装置可以另一装置所期望、辨识和理解的方式来操作。例如,支持相同协议的两个装置可以根据由协议定义的策略、程序和参数来交互,而支持不同协议的两个装置可能是不兼容的。
为了说明,支持不同协议的两个装置可能是不兼容的,这是因为协议定义不同的寻址方案(例如,不同数量的地址位)。作为另一说明,支持不同协议的两个装置可以是不兼容的,这是因为协议定义不同发射程序以用于响应于单个命令(例如,响应于命令所准许的字节的丛发长度或数量可以是不同的)。仅将命令转换为动作不应被理解为两个不同协议的使用。实际上,如果由两个协议限定的对应的程序或参数发生改变,则协议可以被视为是不同的。例如,如果装置支持不同寻址方案或不同传送程序以用于响应于命令,则装置可以称为支持两个不同协议。
术语“电子连通”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件起始允许信号通过先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。当控制器分隔开两个组件时,所述控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(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两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源发射软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字影音光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各者的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。

Claims (25)

1.一种设备,其包括:
非易失性存储器;
易失性存储器,其被配置成用作所述非易失性存储器的高速缓存器;
缓冲器,其与所述易失性存储器耦合;和
接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器可操作以致使所述设备:
从主机装置接收针对第一数据集的写入命令;
至少部分地基于所述写入命令,将所述第一数据集存储于所述缓冲器中;和
至少部分地基于所述写入命令,将包括所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联且所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
2.根据权利要求1所述的设备,其中所述阈值大小包括维持所述易失性存储器的元数据所针对的数据的最小大小、用于存取所述易失性存储器的数据的最小大小,或其组合。
3.根据权利要求1所述的设备,其中所述写入命令与所述易失性存储器的第一地址相关联,且其中所述接口控制器进一步可操作以致使所述设备:
从所述主机装置接收针对所述第二数据集的第二写入命令,所述第二写入命令与所述易失性存储器的第二地址相关联;和
至少部分地基于所述第一地址和所述第二地址,确定所述第一数据集和所述第二数据集是否与所述易失性存储器的相邻存储器地址相关联。
4.根据权利要求3所述的设备,其中所述接口控制器进一步可操作以致使所述设备:
至少部分地基于所述第二写入命令并且在接收到针对所述第一数据集的所述写入命令之前,将所述第二数据集存储于所述缓冲器中。
5.根据权利要求1所述的设备,其中所述接口控制器进一步可操作以致使所述设备:
至少部分地基于所述第一数据集具有小于所述阈值大小的大小且所述第一数据集和所述第二数据集与相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和
在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
6.根据权利要求1所述的设备,其中所述第一数据集和所述第二数据集与所述易失性存储器的组中的同一行相关联,且其中所述接口控制器进一步可操作以致使所述设备:
从所述主机装置接收针对所述行的预充电命令,其中在接收到所述预充电命令之前,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
7.根据权利要求6所述的设备,其中所述接口控制器进一步可操作以致使所述设备:
至少部分地基于所述预充电命令以及与所述易失性存储器的所述行相关联的第三数据集具有小于所述阈值大小的大小,将所述第三数据集从所述缓冲器传达给所述非易失性存储器。
8.根据权利要求1所述的设备,其中所述接口控制器进一步可操作以致使所述设备:
确定在所述易失性存储器中不存在对应于所述第一数据集的数据,其中至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
9.根据权利要求1所述的设备,其中所述易失性存储器的所述相邻地址包括所述易失性存储器中的组的同一行中的列地址。
10.根据权利要求1所述的设备,其中所述数据集具有等于所述阈值大小或为所述阈值大小的整数倍的大小。
11.一种由存储器装置执行的方法,所述方法包括:
从主机装置接收所述主机装置所提供的针对第一数据集的写入命令;
至少部分地基于所述写入命令,将所述第一数据集存储于与易失性存储器耦合的缓冲器中,所述易失性存储器被配置成用作非易失性存储器的高速缓存器;和
至少部分地基于所述写入命令,将包括所述第一数据集和第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少部分地基于所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联且所述第一数据集和所述第二数据集各自具有小于与所述易失性存储器相关联的阈值大小的大小。
12.根据权利要求11所述的方法,其中所述阈值大小包括维持所述易失性存储器的元数据所针对的数据的最小大小、用于存取所述易失性存储器的数据的最小大小,或其组合。
13.根据权利要求11所述的方法,其中所述写入命令与所述易失性存储器的第一地址相关联,所述方法另外包括:
从所述主机装置接收针对所述第二数据集的第二写入命令,所述第二写入命令与所述易失性存储器的第二地址相关联;和
至少部分地基于所述第一地址和所述第二地址,确定所述第一数据集和所述第二数据集是否与所述易失性存储器的相邻存储器地址相关联。
14.根据权利要求13所述的方法,其另外包括:
至少部分地基于所述第二写入命令并且在接收到针对所述第一数据集的所述命令之前,将所述第二数据集存储于所述缓冲器中。
15.根据权利要求11所述的方法,其另外包括:
至少部分地基于所述第一数据集具有小于所述阈值大小的大小并且至少部分地基于所述第一数据集和所述第二数据集与相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和
在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
16.根据权利要求11所述的方法,其中所述第一数据集和所述第二数据集与所述易失性存储器的行相关联,所述方法另外包括:
从所述主机装置接收针对所述易失性存储器的所述行的预充电命令,其中在接收到所述预充电命令之前,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
17.根据权利要求16所述的方法,其另外包括:
至少部分地基于所述预充电命令以及与所述易失性存储器的所述行相关联的第三数据集具有小于所述阈值大小的大小,将所述第三数据集从所述缓冲器传达给所述非易失性存储器。
18.根据权利要求11所述的方法,其另外包括:
确定所述易失性存储器中不存在对应于所述第一数据集的数据,其中至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
19.根据权利要求11所述的方法,其中针对所述易失性存储器的所述相邻地址包括所述易失性存储器中的组的同一行中的列地址。
20.根据权利要求11所述的方法,其中所述数据集具有等于所述阈值大小或为所述阈值大小的整数倍的大小。
21.一种设备,其包括:
非易失性存储器;
易失性存储器,其被配置成用作所述非易失性存储器的高速缓存器;
缓冲器,其与所述易失性存储器耦合;和
接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器可操作以致使所述设备:
至少部分地基于接收到的写入命令,将第一数据集存储于所述缓冲器中;
确定所述第一数据集的大小是否小于用于存取所述易失性存储器的阈值大小;和
至少部分地基于所述写入命令以及所述第一数据集的所述大小小于所述阈值大小,将包括所述第一数据集和具有小于所述阈值大小的大小的第二数据集的数据集从所述缓冲器传达给所述易失性存储器,所述数据集至少具有所述阈值大小。
22.根据权利要求21所述的设备,其中所述接口控制器可操作以致使所述设备:
确定所述第一数据集和所述第二数据集与所述易失性存储器的相邻地址相关联,其中至少部分地基于所述确定来传达所述数据集。
23.根据权利要求21所述的设备,其中所述接口控制器可操作以致使所述设备:
至少部分地基于接收到的第二写入命令,将所述第二数据集存储于所述缓冲器中,其中在接收到针对所述第一数据集的所述写入命令之前,将所述第二数据集存储于所述缓冲器中;和
确定所述第二数据集的所述大小小于所述阈值大小,其中至少部分地基于所述第二数据集的所述大小小于所述阈值大小来传达所述数据集。
24.根据权利要求21所述的设备,其中所述接口控制器可操作以致使所述设备:
至少部分地基于所述第一数据集具有小于所述阈值大小的大小且所述第一数据集和所述第二数据集与针对所述易失性存储器的相邻地址相关联,将所述第二数据集从所述非易失性存储器传达给所述缓冲器;和
在将所述数据集从所述缓冲器传达给所述易失性存储器之前,将所述第二数据集存储于所述缓冲器中。
25.根据权利要求21所述的设备,其中所述接口控制器可操作以致使所述设备:
确定在所述易失性存储器中不存在对应于所述第一数据集的数据,其中至少部分地基于所述确定,将所述第一数据集和所述第二数据集传达给所述易失性存储器。
CN202111533929.7A 2020-12-15 2021-12-15 用于部分写入的技术改进 Pending CN114639419A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063125827P 2020-12-15 2020-12-15
US63/125,827 2020-12-15

Publications (1)

Publication Number Publication Date
CN114639419A true CN114639419A (zh) 2022-06-17

Family

ID=81942471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111533929.7A Pending CN114639419A (zh) 2020-12-15 2021-12-15 用于部分写入的技术改进

Country Status (2)

Country Link
US (1) US20220188029A1 (zh)
CN (1) CN114639419A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847348B2 (en) * 2021-08-24 2023-12-19 Apple Inc. Multi-activation techniques for partial write operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748496B1 (en) * 2000-04-18 2004-06-08 Ati International Srl Method and apparatus for providing cacheable data to a peripheral device
US20070041050A1 (en) * 2005-08-17 2007-02-22 Bing-Yu Wang Memory management method and system
WO2012117435A1 (en) * 2011-02-28 2012-09-07 Hitachi, Ltd. Storage apparatus and data processing method of the same
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US9117032B2 (en) * 2011-06-01 2015-08-25 International Business Machines Corporation Facilitating routing by selectively aggregating contiguous data units
US9081606B2 (en) * 2012-11-13 2015-07-14 International Business Machines Corporation Asynchronous persistent stores for transactions
KR102636444B1 (ko) * 2016-10-04 2024-02-15 에스케이하이닉스 주식회사 프리차지 제어 장치 및 이를 포함하는 반도체 장치
US11636893B2 (en) * 2020-10-19 2023-04-25 Micron Technology, Inc. Memory device with multiple row buffers

Also Published As

Publication number Publication date
US20220188029A1 (en) 2022-06-16

Similar Documents

Publication Publication Date Title
US20220188029A1 (en) Techniques for partial writes
US12008265B2 (en) Quality-of-service information for a multi-memory system
US11630781B2 (en) Cache metadata management
US11899975B2 (en) Machine learning for a multi-memory system
CN115910176A (zh) 用于高速缓存元数据的后错误校正码寄存器
US11954358B2 (en) Cache management in a memory subsystem
US11526442B2 (en) Metadata management for a cache
US11586557B2 (en) Dynamic allocation of buffers for eviction procedures
US11797231B2 (en) Hazard detection in a multi-memory device
US11841796B2 (en) Scratchpad memory in a cache
US11972145B2 (en) Opportunistic data movement
CN115114197B (zh) 多存储器装置中的战略性电力模式转变
US11747992B2 (en) Memory wear management
US20210397380A1 (en) Dynamic page activation
US11995011B2 (en) Efficient turnaround policy for a bus
US11853609B2 (en) Power mode control in a multi-memory device based on queue length
CN114063904B (zh) 使用元数据的事务管理
US20220066698A1 (en) Efficient command scheduling for multiple memories
CN114822671A (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