CN114064519A - 高速缓存的元数据管理 - Google Patents

高速缓存的元数据管理 Download PDF

Info

Publication number
CN114064519A
CN114064519A CN202110862307.2A CN202110862307A CN114064519A CN 114064519 A CN114064519 A CN 114064519A CN 202110862307 A CN202110862307 A CN 202110862307A CN 114064519 A CN114064519 A CN 114064519A
Authority
CN
China
Prior art keywords
volatile memory
row
data
information
array
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
CN202110862307.2A
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 CN114064519A publication Critical patent/CN114064519A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/0877Cache access modes
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management

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

Abstract

本申请是针对高速缓存的元数据管理。接口控制器可包含存储高速缓存存储器的元数据的第一阵列和第二阵列。所述接口控制器可接收与所述高速缓存存储器的行相关联的激活命令。响应于所述激活命令,所述接口控制器可将所述易失性存储器的所述行的存储信息从第一阵列传达到第一寄存器。所述接口控制器可接收与所述高速缓存存储器的所述行相关联的存取命令。响应于所述存取命令且基于所述第一寄存器中的所述存储信息,所述接口控制器可将所述行的有效性信息从第二阵列传达到所述第一寄存器或将所述行的脏信息从所述第二阵列传达到第二寄存器。

Description

高速缓存的元数据管理
交叉引用
本专利申请要求2020年8月3日由巴拉普兰(Ballapuram)等人提交的标题为“高速缓存的元数据管理(METADATA MANAGEMENT FOR A CACHE)”的美国临时专利申请第63/060,398号的权益和优先权,所述申请转让给本受让人且明确地以全文引用的方式并入本文中。
技术领域
技术领域涉及高速缓存的元数据管理。
背景技术
下文大体上涉及一或多个存储器系统,且更具体来说,涉及高速缓存的元数据管理。
存储器装置广泛用于将信息存储在如计算机、无线通信装置、相机、数字显示器和其类似物的各种电子装置中。通过将存储器装置内的存储器单元编程到各种状态来存储信息。举例来说,二进制存储器单元可编程到两个所支持状态中的一个,通常由逻辑1或逻辑0标示。在一些实例中,单个存储器单元可支持多于两个状态,其中的任一个可存储。为了存取所存储信息,组件可读取或感测存储器装置中的至少一个所存储状态。为了存储信息,组件可写入或编程存储器装置中的状态。
存在各种类型的存储器装置和存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选存储器、硫属化物存储器技术和其它。存储器单元可以是易失性或非易失性的。例如FeRAM的非易失性存储器即使在不存在外部电源的情况下仍可维持其所存储逻辑状态持续延长的时间周期。例如DRAM的易失性存储器装置在与外部电源断开连接时可能丢失其所存储状态。
发明内容
描述一种设备。所述设备可包含:易失性存储器,其配置成操作为非易失性存储器的高速缓存;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器可操作以使得所述设备:从主机装置接收激活命令;至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的读取命令;和至少部分地基于所述寄存器中的所述存储信息来确定由所述读取命令请求的数据是否存储在所述易失性存储器的所述行中。
描述一种设备。所述设备可包含:易失性存储器,其配置成操作为非易失性存储器的高速缓存;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器可操作以使得所述设备:从主机装置接收激活命令;至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的写入命令;和至少部分地基于所述寄存器中的所述存储信息来确定所述易失性存储器的所述行是否存储来自所述非易失性存储器的与所述写入命令相关联的地址的数据。
描述一种设备。所述设备可包含:易失性存储器,其配置成操作为非易失性存储器的高速缓存;和接口控制器,其与所述易失性存储器和所述非易失性存储器耦合,所述接口控制器可操作以使得所述设备:从主机装置接收与所述易失性存储器的行相关联的激活命令;至少部分地基于所述激活命令将所述易失性存储器的所述行的存储信息从第一阵列传达到第一寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的存取命令;和至少部分地基于所述存取命令和所述第一寄存器中的所述存储信息将所述行的有效性信息从第二阵列传达到所述第一寄存器或将所述行的脏信息从所述第二阵列传达到第二寄存器。
附图说明
图1说明根据如本文中所公开的实例的支持高速缓存的元数据管理的系统的实例。
图2说明根据如本文中所公开的实例的支持高速缓存的元数据管理的存储器子系统的实例。
图3说明根据如本文中所公开的实例的支持高速缓存的元数据管理的装置的实例。
图4说明根据如本文中所公开的实例的支持高速缓存的元数据管理的过程流程的实例。
图5说明根据如本文中所公开的实例的支持高速缓存的元数据管理的过程流程的实例。
图6展示根据本公开的方面的支持高速缓存的元数据管理的装置的框图。
图7至9展示说明根据如本文中所公开的实例的支持高速缓存的元数据管理的一或多种方法的流程图。
具体实施方式
如电子装置的装置可包含主存储器(例如,用于存储信息以及其它操作的主存储器)和可操作为高速缓存的辅助存储器。为了操作辅助存储器作为高速缓存,装置可使用提供关于辅助存储器的一或多个部分中的数据的信息的元数据。举例来说,装置可使用标签信息作为指示将来自主存储器的哪些数据高速缓存于辅助存储器中的一种形式的元数据。装置还可使用有效性信息作为指示存储在辅助存储器的一部分中的数据是实际数据(例如,先前写入到所述部分的数据)还是垃圾数据(例如,在初始化、启动、复位或某一其它程序后由所述部分存储的如随机数据的数据)的一种形式的元数据。并且,装置可使用脏信息作为指示存储在辅助存储器的一部分中的数据是否已修改(由于其存储在主存储器中或完全从主存储器中遗失)的一种形式的元数据。
装置可将一个存储器(如辅助存储器)的元数据存储在不同于所述一个存储器(如辅助存储器)的一或多个存储器阵列中。但每当接收和服务存取命令时存取存储器阵列(如可用其它不同技术进行)可能增加等待时间且消耗过多处理资源,以及其它缺点。
根据本文中所描述的技术,装置可通过将元数据从一或多个存储器阵列策略性地传达到一或多个寄存器而减少等待时间且节省处理资源,以及其它优点。举例来说,响应于来自主机装置的激活命令,装置可将标签信息从第一存储器阵列传达到第一寄存器。当主机装置接收到对应读取命令或写入命令时,装置可参考第一寄存器(而不是第一存储器阵列)中的标签信息以能够快速确定是存在高速缓存命中还是未中。在高速缓存命中的情况下,装置可将有效性信息从第二存储器阵列传达到第一寄存器,使得装置可快速确定哪些数据是有效的(且因此应返回到主机装置)。在高速缓存未中的情况下,装置可将脏信息从第二存储器阵列传达到第二寄存器,使得装置可快速确定哪些数据是脏的(且因此应在逐出程序期间保存到主存储器)。
本公开的特征初始地在如参考图1和2所描述的存储器系统和子系统的上下文中进行描述。本公开的特征在如参考图3至5所描述的装置和过程流程的上下文中进行描述。本公开的这些和其它特征由如参考图6至9所描述的与高速缓存的元数据管理相关的设备图和流程图进一步说明且参考所述设备图和流程图进行描述。
图1说明根据如本文中所公开的实例的支持高速缓存的元数据管理的存储器系统100的实例。存储器系统100可包含在如计算机或电话的电子装置中。存储器系统100可包含主机装置105和存储器子系统110。主机装置105可以是与接口控制器115以及包含存储器系统100的电子装置的其它组件介接的处理器或系统芯片(SoC)。存储器子系统110可存储和提供对用于主机装置105的电子信息(例如,数字信息、数据)的存取。存储器子系统110可包含接口控制器115、易失性存储器120和非易失性存储器125。在一些实例中,接口控制器115、易失性存储器120和非易失性存储器125可包含在同一物理封装中,如封装130。然而,接口控制器115、易失性存储器120和非易失性存储器125可安置在不同的相应裸片(例如,硅裸片)上。
存储器系统100中的装置可由可实现装置之间的信息(例如,命令、地址、数据)的传达的各种导线(例如,迹线、印刷电路板(PCB)路由、重分布层(RDL)路由)耦合。导线可组成信道、数据总线、命令总线、地址总线,和其类似物。
存储器子系统110可配置成提供非易失性存储器125的益处,同时维持与主机装置105的兼容性,所述主机装置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可实施集合相联(set-associative)映射,其中可将非易失性存储器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请求的数据的情形。
在未中情形中,在将所请求数据传送到缓冲器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中的数据。
在一些实例中,接口控制器115可基于提供关于存储在易失性存储器120中的数据的信息的元数据来操作易失性存储器120作为高速缓存。举例来说,接口控制器115可使用元数据(如标签信息、有效性信息和/或脏信息,以及其它实例)来管理易失性存储器120作为高速缓存。在一些实例中,标签信息可包含指示来自非易失性存储器125的哪些数据存储在易失性存储器120中的信息。有效性信息可包含指示存储在易失性存储器120中的数据是有效数据(例如,基于来自主机装置105的命令存储在易失性存储器120中的实际数据)还是无效数据(例如,在初始化、启动或某一其它程序后,在易失性存储器120中无意地存储或存储为占位符的垃圾数据)的信息。因此,接口控制器115可通过参考易失性存储器120的标签信息和有效性信息来确定高速缓存命中或未中。
脏信息可包含指示存储在易失性存储器120中的数据是否与存储在非易失性存储器125中的数据不一致的信息。举例来说,脏信息可指示存储在易失性存储器120中的数据1)自从其存储在非易失性存储器125中以来是否已修改或2)是否不存在于非易失性存储器125中。因此,接口控制器115可通过参考易失性存储器120的脏信息而进行逐出过程(例如,在高速缓存未中的情况下)。
在一些实例中,存储器子系统110可将标签信息、有效性信息和脏信息存储在包含于接口控制器115中的一或多个阵列中。但如果接口控制器115多次存取存储器阵列以服务于存取命令,那么这一另一不同存储技术可增加与服务于存取命令相关联的等待时间。
根据本文中所描述的技术,存储器子系统110可通过将标签信息、有效性信息和脏信息从一或多个存储器阵列策略性地移动到相对于存储器阵列更容易和/或更快速存取的一或多个寄存器而减少等待时间,以及其它优点。
在一些实例中,有效性信息在本文中可称为有效性旗标、有效性位或其它合适的术语。类似地,脏信息在本文中可称为脏旗标、脏位或其它合适的术语。
图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传输和接收数据,所述数据总线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传输和接收数据,所述数据总线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,所述逻辑262处理命令信息(例如,来自主机装置)且存储来自其它组件(例如,高速缓存管理电路系统244、缓冲器电路系统224)的信息,且使用所述信息以产生用于调度器248的一或多个命令。命令电路系统230还可配置成将地址信息(例如,地址位)传送到高速缓存管理电路系统244。在一些实例中,逻辑26 2522可以是配置成操作为有限状态机(FSM)的电路。
缓冲器电路系统224可与数据总线接口208、命令电路系统230、存储器接口电路系统234和存储器接口电路系统234耦合。缓冲器电路系统224可包含用于易失性存储器204的至少一些组(如果不是每一组)的一或多个缓冲器电路的集合。缓冲器电路系统224还可包含用于存取缓冲器电路的组件(例如,存储器控制器)。在一个实例中,易失性存储器204可包含十六个组且缓冲器电路系统224可包含十六个缓冲器电路集合。每一缓冲器电路集合可配置成存储来自易失性存储器204的相应组的数据或存储用于易失性存储器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(例如,CDRAM标签阵列(CDT-TA))和存储器阵列254(例如,CDRAM有效(CDT-V)阵列),其可配置成存储BK0的存储信息。在一些实例中,存储器阵列也可称为阵列或缓冲器。在一些情况下,存储器阵列可以是或包含易失性存储器单元,如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将由存储器接口电路系统234发布的命令经由C/A总线236转送到非易失性存储器206中的本地控制器。且存储器接口电路系统234可经由数据总线232将数据传输到非易失性存储器206或从非易失性存储器206接收数据。在一些实例中,由存储器接口电路系统234发布的命令可由非易失性存储器206而不是易失性存储器204支持(例如,由存储器接口电路系统234发布的命令可不同于由存储器接口电路系统240发布的命令)。
存储器接口电路240可经由数据总线接口216和C/A总线接口264中的一或多个与易失性存储器204通信。举例来说,存储器接口电路系统240可提示C/A总线接口264将由存储器接口电路系统240发布的命令经由C/A总线242转送到易失性存储器204的本地控制器。且存储器接口电路系统240可经由一或多个数据总线238将数据传输到易失性存储器204或从易失性存储器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可将不同类型的元数据存储在存储器子系统200的不同存储器中。举例来说,存储器子系统200可将用于存储器阵列252中的易失性存储器204的行的标签信息、有效性信息和脏信息存储在存储器阵列252中。且存储器子系统200可将用于存储器阵列254中的行的子块的有效性信息和脏信息存储在存储器阵列254中。代替多次存取存储器阵列252、254以服务于存取命令,存储器子系统200可配置成将存储器阵列252、254中的存储信息策略性地传送到寄存器256、258,使得存取寄存器256、258而不是存储器阵列252、254。因为寄存器256、258比存储器阵列252、254更容易且更快速存取,所以这种技术可减少与参考存储信息以服务于存取命令相关联的复杂性和等待时间,以及其它优点。
图3说明根据如本文中所公开的实例的支持高速缓存的元数据管理的装置300的实例。装置300可以是分别参考图1和2所描述的存储器子系统110或存储器子系统200的实例。装置300可将存储在阵列315中的元数据(也称为“存储信息”)策略性地传达到寄存器320以减少参考元数据以服务于存取命令所花费的时间量,以及其它优点。
作为实例,装置300可参考寄存器320-a中的存储信息(例如,标签信息、有效性信息)以确定是存在高速缓存命中还是未中,且因此,是存取易失性存储器310还是非易失性存储器325。装置300可参考寄存器320-b中的存储信息(例如,脏信息)以识别应在逐出过程期间移动到非易失性存储器325的脏数据。且装置300可参考寄存器320-a中的有效性信息以识别应在检索过程期间返回到主机装置的有效数据。
虽然出于说明目的,本文中所描述的功能性可归于各种组件,但应了解,本文中所描述的一些功能性可在组件之间分布或共享,或归于除以所描述方式以外的组件。
阵列315-a可以是存储器阵列252的实例,且寄存器320-a可以是寄存器256的实例。类似地,阵列315-b可以是存储器阵列254的实例,且寄存器320-b可以是寄存器258的实例。阵列315-a和阵列315-b可以是存储器305中的阵列或子阵列。在一些实例中,阵列315-a、阵列315-b、寄存器320-a和寄存器320-b可专用于易失性存储器310的共同组(例如,组x),所述易失性存储器310可包含多个组(标示为组0到组N)。
作为阈值问题,应了解,易失性存储器310和非易失性存储器325可具有针对存取存储器单元的待遵循的某些协议。举例来说,在对任一存储器中的行进行读取操作或写入操作之前,装置300可通过将电压施加到所述行的存取线而激活(或“打开”)所述行。且在一些实例中,装置300可在激活同一组中的不同行之前去激活(或“关闭”)组中的激活的行。本文中所描述的从阵列到寄存器的元数据的策略性移动可促进且基于用于存储器的存取协议。举例来说,在接收到用于易失性存储器310的行的激活命令后,装置300可激活所述行且在预期用于所述行的后续存取命令(例如,读取命令或写入命令)时将用于所述行的存储信息从阵列315-a传达到寄存器320-a。
阵列315-a可存储易失性存储器310的组(例如,组x)的元数据。举例来说,如果易失性存储器310使用集合相联寻址方案,那么阵列315-a可存储用于易失性存储器行的每一集合的标签信息。可通过相应索引识别易失性存储器行的每一集合,且在n路集合相联寻址方案中,可包含准许存储来自非易失性存储器325的特定存储器地址(“非易失性存储器地址”)的数据的n个易失性存储器行。举例来说,准许存储用于非易失性存储器地址y的数据的易失性存储器行的集合可由索引0指示,且在16路集合相联寻址方案中,可包含十六个易失性存储器行。类似地,准许存储用于非易失性存储器地址z的数据的易失性存储器行的集合可由索引1指示,且在16路集合相联寻址方案中,可包含十六个易失性存储器行。继续实例,准许将来自非易失性存储器地址y的数据存储在用于索引0的集合中的行中的任一个中,而准许将来自非易失性存储器地址z的数据存储在用于索引1的集合中的行中的任一个中。因此,集合中的易失性存储器行可称为“与”非易失性存储器地址“相关联”。集合中的每一易失性存储器行可由“路识别符”(路ID)识别,其在16路集合相联寻址方案中可由四个位组成。
对于集合中的每一易失性存储器行,阵列315-a可存储易失性存储器行的标签信息。行的标签信息可识别与存储在行中的数据相关联的非易失性存储器地址。因此,装置300可通过参考用于与存取命令相关联的易失性存储器行的标签信息而确定针对存取命令是存在高速缓存命中还是未中。举例来说,如果装置300接收与由索引0识别的易失性存储器行的集合相关联的存取命令,那么装置300可通过参考所述集合中的十六个易失性存储器行的标签信息而确定是否存在高速缓存命中。也就是说,装置300可参考例如标签0到标签15以确定集合中的十六个易失性存储器行中的任一个是否存储与存取命令相关联的非易失性存储器地址的数据。
应了解,在一些实例中,与存取命令相关联的非易失性地址可基于与存取命令相关联的逻辑地址。逻辑地址可以是由主机装置产生且用于参考预期存储数据的概念性位置的虚拟地址,而物理地址可以是识别实际上存储数据的物理位置的实际地址。逻辑地址可由主机装置使用,使得各种程序(例如,耗损均衡程序)的影响从主机装置有效地隐藏,以及其它原因。然而,因为装置300在物理地址上操作,所以逻辑地址可映射到物理地址以促进主机装置与装置300之间的通信。举例来说,存取命令的逻辑地址可基于偏移指针映射到物理地址,所述偏移指针可以是指示逻辑地址与物理地址之间的偏移(例如,差)的位的集合。这种映射在本文中可称为平移或转换。
除存储每一易失性存储器行的标签信息之外,阵列315-a还可存储每一易失性存储器行的有效性位和脏位。因此,装置300可通过分别参考用于易失性存储器行的有效性位和脏位来确定所述易失性存储器行是否存储有效数据和/或脏数据。
如本文中所描述,当装置300从主机装置接收激活命令时,可将用于易失性存储器行的元数据从阵列315-a传达到寄存器320-a。如果易失性存储器行中的一个存储来自与激活命令相关联的非易失性存储器地址的数据,那么装置300可将所述易失性存储器行的元数据传达到寄存器320-a。如果易失性存储器行中没有一个存储来自与激活命令相关联的非易失性存储器地址的数据,那么装置300可将空易失性存储器行(如果存在空易失性存储器行)的元数据传达到寄存器320-a;否则,装置300可将满易失性存储器行的元数据传达到寄存器320-a。空(或“可用”)易失性存储器行(例如,存储随机或垃圾数据的行)可比满(或“不可用”)易失性存储器行(例如,存储有效、实际数据的行)优选,因为空易失性存储器行允许装置300在高速缓存未中的情况下在将所请求数据从非易失性存储器325传送到易失性存储器310之前避免逐出过程,所述逐出过程可能消耗时间和资源。
除将易失性存储器行的元数据从阵列315-a传达到寄存器320-a之外,装置300还可激活易失性存储器310中的易失性存储器行。虽然装置300可能尚未知道是存在高速缓存命中还是未中(因为可能尚未接收到读取或写入命令),但装置300仍可激活易失性存储器行,因为易失性存储器行可以某一方式存取(读取或写入)而不考虑高速缓存命中或未中。
当在装置300处接收到针对易失性存储器行的后续读取命令或写入命令时,装置300可存取寄存器320-a而不是阵列315-a以确定高速缓存命中或未中。因为寄存器320-a比阵列315-a存取更快,所以装置300可通过针对元数据信息存取寄存器320-a而不是存取阵列315-a来减少等待时间。使用寄存器320-a中的标签信息(和有效性信息),装置300确定是存在读取命中、读取未中、写入命中还是写入未中。基于这一确定的结果,装置300可采取如本文中所描述且参考图4和5的不同方法。
类似于阵列315-a,阵列315-b还可存储易失性存储器310的组(例如,组x)的元数据。然而,阵列315-b可在不同基础(如子块基础)上存储元数据,而不是在每行基础上存储元数据(类似于阵列315-a)。举例来说,阵列315-b可将用于数据的每一32B(或64B等)的有效性位存储在易失性存储器310的行中。另外或替代地,阵列315-b可将用于数据的每一32B(或64B等)的脏位存储在易失性存储器310的行中。作为实例,阵列315-b可将用于与路0相关联的行的三十二(32)个有效性位(标示为V0到V31)存储在由索引0指示的集合中。另外或替代地,阵列315-b可将用于与路0相关联的行的三十二(32)个脏位(标示为D0到D31)存储在由索引0指示的集合中。以此类推,且对于易失性存储器行的每一集合中的每一行也是这样。
如本文中所描述,当装置300确定高速缓存命中或未中时,易失性存储器行的元数据可从阵列315-b传达到寄存器320-a或寄存器320-b。举例来说,如果存在读取命中,那么装置300可将所述易失性存储器行的有效性信息传达到寄存器320-a。以这一方式,装置300可参考寄存器320-a中的有效性信息以确定哪些数据子块是有效的且应返回到主机装置。如果存在读取未中,那么装置300可将受害易失性存储器行的脏信息传达到寄存器320-b。以这一方式,装置300可参考寄存器320-b中的脏信息以确定哪些数据子块是脏的且应保存到非易失性存储器325(例如,在逐出过程期间)。
高速缓存命中可指读取命中或写入命中。当由主机装置请求的数据存储在易失性存储器310的行中的一个中时,可发生读取命中。装置可基于与用于读取命令的非易失性地址相关联的易失性存储器行的集合的标签信息来确定读取命中。当易失性存储器310的行中的一个存储来自与写入命令相关联的非易失性地址的数据时,可发生写入命中。装置300可基于与由写入命令指示的非易失性地址相关联的易失性存储器行的集合的标签信息来确定写入命中。
在读取命中的情况下,装置300可从易失性存储器310的命中行读取所请求数据,且将所请求数据从易失性存储器310传达到缓冲器330。缓冲器330可以是参考图2所描述的缓冲器218的实例。因此,缓冲器330可配置成将所请求数据转送或传达到主机装置。然而,易失性存储器310的行中的数据中的仅一些可以是有效数据。为了防止将无效数据传达到主机装置,装置300可参考寄存器320-a中的有效性信息以确定哪些数据子块是有效的且因此应返回到主机装置。如所提到,寄存器320-a中的有效性信息可包含用于来自阵列315-b的命中行的有效性信息。
在写入命中的情况下,装置300可将与写入命令相关联的数据(例如,由主机装置提供的数据)写入到易失性存储器310的命中行。所提供的数据可从缓冲器330传达到易失性存储器310。如所提到,缓冲器330可以是参考图2所描述的缓冲器218的实例。因此,缓冲器330可配置成将数据从主机装置转送或传达到易失性存储器310。如果装置300在写回模式中操作,那么装置300可制止将所提供的数据写入到非易失性存储器325(至少直到稍后的逐出过程为止)。因此,为准备稍后的逐出过程,装置300可更新寄存器320-a中的脏信息以指示命中行的现在存储脏数据的部分。如所提到,寄存器320-a中的脏信息可包含用于来自阵列315-b的命中行的脏信息。
高速缓存未中可指读取未中或写入未中。当由主机装置请求的数据不存在于易失性存储器310中时,可发生读取未中。装置可基于与用于读取命令的非易失性地址相关联的易失性存储器行的集合的标签信息来确定读取未中。当易失性存储器310不存储来自与写入命令相关联的非易失性地址的数据时,可发生写入未中。装置300可基于与由写入命令指示的非易失性地址相关联的易失性存储器行的集合的标签信息来确定写入未中。
在读取未中的情况下,装置300可将所请求数据从非易失性存储器325传达到缓冲器330,使得所请求数据可转送到主机装置和易失性存储器310。以这一方式,可满足读取命令,且可将所请求数据写入到易失性存储器310以用于在针对所请求数据的后续读取命令的情况下高效检索。除非易失性存储器310具有可用于所请求数据的空行,否则易失性存储器可在将所请求数据写入到易失性存储器310之前进行逐出过程。逐出过程可将来自易失性存储器310的脏数据保存到非易失性存储器325,使得当所请求数据写入到易失性存储器行时,脏数据不会丢失。受制于逐出过程的易失性存储器行可称为受害行,且受害行中的数据可称为受害数据。
为了进行逐出过程,装置300可将受害数据从受害行传达到缓冲器335,接着将脏受害数据从缓冲器335传达到非易失性存储器325。缓冲器335可以是参考图2所描述的缓冲器220的实例。装置可参考寄存器320-b中的易失性存储器行的脏信息以确定受害数据的哪些子集是脏的且因此应写回到非易失性存储器325。如所提到,寄存器320-b中的脏信息可包含用于来自阵列315-b的受害行的脏信息。另外,应了解,缓冲器330和缓冲器335可包含在缓冲器电路340中或可以是缓冲器电路系统340的部分,所述缓冲器电路系统340可与非易失性存储器325和易失性存储器310耦合。缓冲器电路系统340可以是参考图2所描述的缓冲器电路集合的实例且可包含用于传达、存储和检索数据的各种组件。
在写入未中的情况下,装置300可将与写入命令(例如,由主机装置提供的数据)相关联的数据写入到与非易失性存储器地址相关联的易失性存储器行的集合中的行中的一个。所提供的数据可从缓冲器330传达到易失性存储器310。如所提到,缓冲器330可以是参考图2所描述的缓冲器218的实例。因此,缓冲器330可配置成将数据从主机装置转送或传达到易失性存储器310。在将所提供的数据写入到易失性存储器行之前,装置300可使用缓冲器335进行易失性存储器行的逐出过程(例如,如果易失性存储器行是满的)。
在将所提供的数据写入到易失性存储器行后,装置300可更新寄存器320-a中的易失性存储器行的标签信息,使得指示与写入命令相关联的非易失性存储器地址。如果装置300在写回模式中操作,那么装置300可制止将所提供的数据写入到非易失性存储器325(至少直到稍后的逐出过程为止)。因此,为准备稍后的逐出过程,装置300可更新寄存器320-a中的脏信息以指示命中行的现在存储脏数据的部分。如所提到,寄存器320-a中的脏信息可包含用于来自阵列315-b的命中行的脏信息。
因此,装置300可将元数据从阵列315策略性地传达到寄存器320以高效地服务于来自主机装置的存取命令。
图4说明根据如本文中所公开的实例的支持高速缓存的元数据管理的过程流程400的实例。过程流程400可以是用于检索操作的过程流程的实例,其可包含服务于激活命令和读取命令。过程流程400可由如参考图1所描述的接口控制器115、如参考图2所描述的接口控制器202,或如参考图3所描述的装置300实施。
为了便于参考,参考装置300描述过程流程400。因此,过程流程400的方面可由控制器以及其它组件实施。另外或替代地,过程流程400的方面可实施为存储在存储器中的指令(例如,存储在易失性存储器120和/或非易失性存储器125中的固件)。举例来说,所述指令在由控制器(例如,接口控制器115)执行时可使得控制器进行过程流程400的操作。
可实施过程流程400的替代性实例,其中一些操作以与所描述不同的次序进行或根本不进行。在一些情况下,操作可包含下文中未提及的特征,或可添加额外操作。
在405处,可接收激活命令。举例来说,装置300可从主机装置接收与非易失性存储器地址相关联的激活命令。如果装置300使用集合相联高速缓存寻址方案,那么非易失性存储器地址可与易失性存储器行的集合(例如,n个易失性存储器行)相关联。在410处,可参考易失性存储器行的集合的存储信息。举例来说,装置300可使用阵列315-a参考与非易失性存储器地址相关联的易失性存储器行的集合的存储信息。可参考存储信息以确定应在准备后续存取命令时激活哪一易失性存储器行(且因此,当接收到后续存取命令时,将哪一存储信息传达到寄存器以用于高效参考)。
在415处,可选择易失性存储器行。举例来说,装置300可基于易失性存储器行的集合的存储信息来选择易失性存储器行(例如,行y)。如果存储信息(例如,标签信息、有效性信息)指示行y存储来自与存取命令相关联的非易失性存储器地址的数据,那么装置可基于所述条件选择行y。如果存储信息(例如,标签信息、有效性信息)指示与非易失性存储器地址相关联的行没有一个存储来自非易失性存储器地址的数据,那么可基于一或多个因素选择行y。举例来说,装置300可基于行y的存储状态(其中空的行比满的行更为优选,以避免逐出过程)、行y相对于集合中的其它行的存取频率和/或行y相对于集合中的其它行的时效以及其它因素而将行y优先于集合中的其它行排序以供选择。
在420处,可将行y的存储信息从阵列传达到寄存器。举例来说,装置300可将行y的存储信息从阵列315-a传达到寄存器320-a。存储信息可包含行y的标签信息、行y的有效性位和/或行y的脏位,以及其它信息。
在425处,可激活行y。举例来说,装置300可激活易失性存储器310中的行y。行y的激活可响应于在405处接收到的激活命令和/或基于将行y的存储信息从阵列315-a传达到寄存器320-a。可在接收到后续读取或写入命令之前激活行y,这是因为可不考虑接收到的命令类型而存取行y(例如,可存取行y以在读取命中的情况下读取所请求数据、在读取未中的情况下写入数据作为填充过程的部分、在写入命中的情况下写入数据,或在写入未中的情况下写入数据作为填充过程的部分)。填充过程可指将来自非易失性存储器325的数据存储在易失性存储器310中以使得可响应于对数据的稍后请求而从易失性存储器310存取数据的过程。
在430处,可接收读取命令。举例来说,装置300可接收与由激活命令瞄准的非易失性存储器地址相关联的读取命令。在435处,可参考行y的存储信息。举例来说,装置300可参考寄存器320-a中的行y的存储信息。在440处,确定读取命中或未中。举例来说,装置300可基于寄存器320-a中的行y的存储信息来确定是存在读取命中还是读取未中。
如果在440处确定读取命中,那么可在445处将行y的有效性信息从第二阵列传达到第一寄存器。举例来说,如果在440处,装置300确定存在读取命中(例如,行y存储所请求数据),那么装置300可在445处将行y的有效性信息从阵列315-b传达到寄存器320-a。在450处,可读取行y中的数据且将其传达到中间缓冲器。举例来说,装置300可从行y读取数据且将其传达到缓冲器330。在455处,可参考行y的有效性信息。举例来说,装置300可参考寄存器320-a中的行y的有效性信息,以确定行y中的哪些存储器单元存储有效数据。在460处,来自行y的有效数据可从中间缓冲器传达到主机装置。举例来说,装置300可基于寄存器320-a中的有效性信息将来自缓冲器330的有效数据传达到主机装置。因此,装置300可满足来自主机装置的读取命令。
如果在440处确定读取未中,那么可在465处将行y的脏信息从第二阵列传达到第二寄存器。举例来说,如果在440处,装置300确定存在读取未中(例如,行y不存储所请求数据),那么装置300可在465处将行y的脏信息从阵列315-b传达到寄存器320-b。装置300可参考寄存器320-a中的行y的有效性位和脏位,以确定是否进行465处的操作。举例来说,如果行y的有效性位和脏位指示1)行y存储无效(例如,垃圾)数据或2)行y存储干净有效数据,那么装置300可跳过465处的操作,因为在这种情形中,不需要逐出过程来准备行y用于填充过程。也就是说,可在不首先将行y中的数据保存到非易失性存储器325的情况下覆写所述数据。替代地,如果行y的有效性位和脏位指示行y存储脏有效数据,那么装置300可进行465处的操作,因为在这种情形下,需要逐出过程以在后续填充过程期间在覆写行y中的数据之前将行y中的数据保存到非易失性存储器。在一些实例中,装置300还可在470处将行y的有效性信息从阵列315-b传达到寄存器320-a或寄存器320-b中的一或多个。
在475处,可针对行y进行逐出过程。举例来说,装置300可针对行y进行逐出过程以为来自非易失性存储器325的所请求数据腾出空间。如所提到,如果行y存储无效数据或干净有效数据,那么可进行逐出过程,且如果行y存储脏有效数据,那么可跳过逐出过程。逐出过程可包含将存储在行y中的数据从易失性存储器310传达到缓冲器335、参考寄存器320-b中的行y的脏信息以确定脏数据,且基于行y的脏信息将脏数据从缓冲器335传达到非易失性存储器325。
在480处,来自非易失性存储器的数据可经由中间缓冲器传达到易失性存储器。举例来说,装置300可经由缓冲器330将所请求数据从非易失性存储器325传达(例如,作为填充过程的部分)到易失性存储器310。举例来说,所请求数据可从非易失性存储器325传达到缓冲器330,接着从缓冲器330传达到易失性存储器310。通过将所请求数据存储在易失性存储器310(其与非易失性存储器325相比具有更快存取时间)中,在主机装置再次请求数据的情况下,存储器装置可更快速地存取数据。另外,所请求数据可从缓冲器330传达到主机装置,使得满足读取命令。
在485处,可更新第二寄存器中的脏信息。举例来说,装置300可更新寄存器320-b中的行y的脏信息以反映填充过程之后的行y中的数据的脏状态。举例来说,装置300可更新行y的脏信息以反映没有行y的部分存储脏数据,因为行y存储与相关联的非易失性存储器地址相同的数据(归因于填充过程)。在更新寄存器320-b中的行y的脏信息之后,装置300可将行y的脏信息传达到阵列315-b,使得寄存器320-b可用于在后续逐出过程中使用。
在一些实例中,装置300可在490处更新寄存器320-a中的行y的有效性信息以反映填充过程之后行y中的数据的有效性状态的任何改变。在更新寄存器320-a中的行y的有效性信息之后,装置300可将行y的有效性信息传达到阵列315-b,使得寄存器320-a可用于在后续存取过程中使用。
图5说明根据如本文中所公开的实例的支持高速缓存的元数据管理的过程流程500的实例。过程流程500可以是用于存储操作的过程流程的实例,其可包含服务于激活命令和写入命令。过程流程500可由如参考图1所描述的接口控制器115、如参考图2所描述的接口控制器202,或如参考图3所描述的装置300实施。
为了便于参考,参考装置300描述过程流程500。因此,过程流程500的方面可由控制器以及其它组件实施。另外或替代地,过程流程500的方面可实施为存储在存储器中的指令(例如,存储在易失性存储器120和/或非易失性存储器125中的固件)。举例来说,所述指令在由控制器(例如,接口控制器115)执行时可使得控制器进行过程流程500的操作。
可实施过程流程500的替代性实例,其中一些操作以与所描述不同的次序进行或根本不进行。在一些情况下,操作可包含下文中未提及的特征,或可添加额外操作。
在505处,可接收激活命令。举例来说,装置300可从主机装置接收与非易失性存储器地址相关联的激活命令。如果装置300使用集合相联高速缓存寻址方案,那么非易失性存储器地址可与易失性存储器行的集合(例如,n个易失性存储器行)相关联。在510处,可参考易失性存储器行的集合的存储信息。举例来说,装置300可使用阵列315-a参考与非易失性存储器地址相关联的易失性存储器行的集合的存储信息。可参考存储信息以确定应在准备后续存取命令时激活哪一易失性存储器行(且因此,当接收到后续存取命令时,将哪一存储信息传达到寄存器以用于高效参考)。
在515处,可选择易失性存储器行。举例来说,装置300可基于易失性存储器行的集合的存储信息来选择易失性存储器行(例如,行y)。如果存储信息(例如,标签信息、有效性信息)指示行y存储来自与存取命令相关联的非易失性存储器地址的数据,那么装置可基于所述条件选择行y。如果存储信息(例如,标签信息、有效性信息)指示集合中没有行存储来自非易失性存储器地址的数据,那么可基于一或多个因素选择行y。举例来说,装置300可基于行y的存储状态(其中空的行比满的行更为优选,以避免逐出过程)、行y相对于集合中的其它行的存取频率和/或行y相对于集合中的其它行的时效而将行y优先于集合中的其它行排序以供选择。
在520处,可将行y的存储信息从阵列传达到寄存器。举例来说,装置300可将行y的存储信息从阵列315-a传达到寄存器320-a。存储信息可包含行y的标签信息、行y的有效性位和/或行y的脏位,以及其它信息。
在525处,可激活行y。举例来说,装置300可激活易失性存储器310中的行y。行y的激活可响应于在405处接收到的激活命令和/或基于将行y的存储信息从阵列315-a传达到寄存器320-a。可在后续读取或写入命令之前激活行y,这是因为将不考虑接收到的命令类型而存取行y(例如,在读取命中的情况下读取所请求数据、在读取未中的情况下写入数据作为填充过程的部分、在写入命中的情况下写入数据,或在写入未中的情况下写入数据作为填充过程的部分)。如所提到,填充过程可指将来自非易失性存储器325的数据存储在易失性存储器310中以使得可响应于对数据的稍后请求而从易失性存储器310存取数据的过程。
在530处,可接收写入命令。举例来说,装置300可接收与由激活命令瞄准的非易失性存储器地址相关联的写入命令。在535处,可参考行y的存储信息。举例来说,装置300可参考寄存器320-a中的行y的存储信息。在540处,确定写入命中或未中。举例来说,装置300可基于寄存器320-a中的行y的存储信息来确定是存在写入命中还是写入未中。
如果在540处确定写入命中,那么可在545处将行y的脏信息从第二阵列传达到寄存器。举例来说,如果在540处,装置300确定存在写入命中(例如,行y存储来自由写入命令瞄准的非易失性存储器地址的数据),那么装置300可在545处将行y的脏信息从阵列315-b传达到寄存器320-a,使得可容易地更新行y的脏信息以反映当将所提供的数据写入到行y时的任何改变。在550处,可将行y的有效性信息从第二阵列传达到第一寄存器。举例来说,装置300可将行y的有效性信息从阵列315-b传达到寄存器320-a,使得可容易地更新行y的有效性信息以反映当将由主机装置提供的数据写入到行y时的任何改变。
在555处,由主机装置提供的数据可写入到行y(例如,存储在行y中)。举例来说,装置300可将所提供的数据写入到易失性存储器310中的行y。为了这样做,装置300可将所提供的数据从缓冲器330传达到易失性存储器310。因此,装置300可满足来自主机装置的写入命令。
在560处,可更新行y的脏信息。举例来说,装置300可更新寄存器320-b中的行y的脏信息以反映将所提供的数据写入到行y之后的行y中的数据的脏状态。举例来说,装置300可更新行y的脏信息以反映行y的现在存储脏数据的部分。在更新寄存器320-a中的行y的脏信息之后,装置300可将行y的脏信息传达到阵列315-b,使得寄存器320-a可用于在后续存取过程中使用。
在一些实例中,装置300可在565处更新寄存器320-a中的行y的有效性信息以反映将所提供的数据写入到行y之后行y中的数据的有效性状态的任何改变。在更新寄存器320-a中的行y的有效性信息之后,装置300可将行y的有效性信息传达到阵列315-b,使得寄存器320-a可用于在后续存取过程中使用。
如果在540处确定写入未中,那么可在570处将行y的脏信息从第二阵列传达到第二寄存器。举例来说,如果在540处,装置300确定存在写入未中(例如,行y不存储来自由写入命令瞄准的非易失性存储器地址的数据),那么装置300可在570处将行y的脏信息从阵列315-b传达到寄存器320-b。装置300可参考寄存器320-a中的行y的有效性位和脏位,以确定是否进行570处的操作。举例来说,如果行y的有效性位和脏位指示1)行y存储无效(例如,垃圾)数据或2)行y存储干净有效数据,那么装置300可跳过570处的操作,因为在这种情形中,不需要逐出过程来准备行y用于写入过程。也就是说,可用所提供的数据覆写行y中的旧数据,而不首先将旧数据保存到非易失性存储器325。如果行y的有效性位和脏位指示行y存储脏有效数据,那么装置300可进行570处的操作,因为在这种情形下,需要逐出过程在用所提供的数据覆写行y中的数据之前将行y中的数据保存到非易失性存储器。在一些实例中,装置300还可在575处将行y的有效性信息从阵列315-b传达到寄存器320-a或寄存器320-b中的一或多个。
在580处,可针对行y进行逐出过程。举例来说,装置300可针对行y进行逐出过程以为所提供的数据腾出空间。如所提到,如果行y存储无效数据或干净有效数据,那么可跳过逐出过程,且如果行y存储脏有效数据,那么可进行逐出过程。逐出过程可包含将存储在行y中的数据从易失性存储器310传达到缓冲器335、参考寄存器320-b中的行y的脏信息以确定脏数据,且基于行y的脏信息将脏数据从缓冲器335传达到非易失性存储器325。
在585处,由主机装置提供的数据可写入到行y。举例来说,装置300可将所提供的数据写入到易失性存储器310中的行y。为了这样做,装置300可将所提供的数据从缓冲器330传达到易失性存储器310。因此,装置300可满足来自主机装置的写入命令。
在590处,可更新行y的存储信息。举例来说,装置300可更新寄存器320-a、320-b中的行y的存储信息。举例来说,装置300可更新寄存器320-a中的行y的标签信息以反映与写入命令相关联的非易失性存储器地址。装置还可更新寄存器320-a中的行y的有效性位以反映行y存储有效数据。装置300还可更新寄存器320-a中的行y的脏位以反映所述行y现在存储脏数据(例如,如果装置300在写回模式中操作)。在更新寄存器320-a中的行y的存储信息之后,装置300可将行y的更新后的存储信息传达到阵列315-a,使得寄存器320-a可用于在后续存取过程中使用。
在一些实例中,装置300可更新寄存器320-b中的行y的脏信息以反映写入所提供的数据之后的行y的部分的脏状态。在更新寄存器320-b中的行y的脏信息之后,装置300可将行y的更新后的脏信息传达到阵列315-b,使得寄存器320-b可用于在后续存取过程中使用。
图6展示根据如本文中所公开的实例的支持高速缓存的元数据管理的装置605的框图600。装置605可以是如本文中所描述的存储器子系统110、存储器子系统200、接口控制器115、接口控制器202或装置300的方面的实例。装置605可包含第一阵列610、接收组件615、高速缓存管理组件620、第二阵列625、第一缓冲器630、存储器存取组件635、第二缓冲器640和第一寄存器645。这些组件中的每一个可直接或间接地(例如,经由一或多个总线)彼此通信。
在第一实例中,接收组件615可从主机装置接收激活命令。在一些实例中,接收组件615可以是或包含总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的其它组件。第一阵列610可至少部分地基于与易失性存储器的行相关联的激活命令将所述行的存储信息从第一阵列610传达到第一寄存器645。第一阵列610可以是或包含阵列、子阵列、存储器、缓冲器、总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的另一组件。接收组件615可从主机装置接收与易失性存储器的行相关联的读取命令。高速缓存管理组件620可至少部分地基于第一寄存器645中的存储信息来确定由读取命令请求的数据是否存储在易失性存储器的行中。高速缓存管理组件620可以是或包含逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的其它组件。
在一些实例中,高速缓存管理组件620可确定由读取命令请求的数据存储在易失性存储器的行中(例如,高速缓存管理组件620可确定存在读取命中)。在一些实例中,第二阵列625可至少部分地基于确定数据存储在行中而将易失性存储器的行的有效性信息从第二阵列传达到第一寄存器645。第二阵列625可以是或包含阵列、子阵列、存储器、缓冲器、总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的另一组件。在一些实例中,高速缓存管理组件620可至少部分地基于第一寄存器645中的行的有效性信息来确定行中的存储数据的一或多个存储器单元子集。在一些实例中,第一缓冲器630可至少部分地基于确定行中的一或多个存储器单元子集存储数据而将存储在一或多个存储器单元子集中的数据传达到主机装置。第一缓冲器630可以是或包含阵列、子阵列、存储器、缓冲器、总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的另一组件。
在一些实例中,高速缓存管理组件620可确定由读取命令请求的数据不存在于易失性存储器的行中(例如,高速缓存管理组件620可确定读取未中)。在一些实例中,第二阵列625可至少部分地基于确定数据不存在于行中而将易失性存储器的行的脏信息从第二阵列传达到第二寄存器。第二寄存器可以是或包含寄存器、阵列、子阵列、存储器、缓冲器、总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的另一组件。在一些实例中,高速缓存管理组件620可至少部分地基于第二寄存器中的行的脏信息来确定行中的存储脏数据的一或多个存储器单元子集。在一些实例中,第二缓冲器640可至少部分地基于确定行中的一或多个存储器单元子集存储脏数据而将存储在一或多个存储器单元子集中的脏数据传达到非易失性存储器。第二缓冲器640可以是或包含阵列、子阵列、存储器、缓冲器、总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的另一组件。
在一些实例中,高速缓存管理组件620可至少部分地基于指示行存储来自由激活命令指示的非易失性存储器地址的数据的行的存储信息来选择行的存储信息以用于从第一阵列传达到第一寄存器645。
在一些实例中,高速缓存管理组件620可至少部分地基于第一阵列中的额外存储信息来确定所请求数据不存在于易失性存储器中。在一些实例中,高速缓存管理组件620可至少部分地基于指示行存储无效数据的行的存储信息来选择行的存储信息以用于从第一阵列传达到第一寄存器645。
在一些实例中,存储器存取组件635可至少部分地基于将行的存储信息从第一阵列传达到第一寄存器645来激活易失性存储器的行。存储器存取组件635可以是或包含逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的其它组件。
在一些实例中,激活命令以非易失性存储器的地址为目标。在一些实例中,高速缓存管理组件620可确定易失性存储器的与非易失性存储器的地址相关联的行的集合,其中易失性存储器的行是行集合中的行。
在第二实例中,接收组件615可从主机装置接收激活命令。第一阵列610可至少部分地基于与易失性存储器的行相关联的激活命令将所述行的存储信息从第一阵列传达到第一寄存器645。接收组件615可从主机装置接收与易失性存储器的行相关联的写入命令。高速缓存管理组件620可至少部分地基于第一寄存器645中的存储信息来确定易失性存储器的行是否存储来自非易失性存储器的与写入命令相关联的地址的数据。
在一些实例中,高速缓存管理组件620可确定易失性存储器的行存储来自非易失性存储器的与写入命令相关联的地址的数据(例如,高速缓存管理组件620可确定写入命中)。在一些实例中,第二阵列625可至少部分地基于确定所述行存储来自非易失性存储器的地址的数据而将易失性存储器的行的脏信息从第二阵列传达到第一寄存器645。在一些实例中,存储器存取组件635可至少部分地基于确定行存储来自非易失性存储器的地址的数据将与写入命令相关联的数据存储在易失性存储器的行中。在一些实例中,第一寄存器645可至少部分地基于将数据存储在行中而在将脏信息返回到第二阵列之前更新第一寄存器645中的行的脏信息。第一寄存器645可以是或包含寄存器、阵列、子阵列、存储器、缓冲器、总线接口、逻辑、电路系统、处理器、控制器或能够进行本文中所描述的功能的另一组件。在一些实例中,第二阵列625可至少部分地基于确定行存储来自非易失性存储器的地址的数据而将易失性存储器的行的有效性信息从第二阵列传达到第一寄存器645。在一些实例中,第一寄存器645可至少部分地基于将与写入命令相关联的数据存储在行中而在将有效性信息返回到第二阵列之前更新第一寄存器645中的行的有效性信息。
在一些实例中,高速缓存管理组件620可确定易失性存储器的行不存储来自非易失性存储器的与写入命令相关联的地址的数据(例如,高速缓存管理组件620可确定写入未中)。在一些实例中,第二阵列625可至少部分地基于确定行不存储数据而将易失性存储器的行的脏信息从第二阵列传达到第二寄存器。在一些实例中,高速缓存管理组件620可至少部分地基于第二寄存器中的行的脏信息来确定行中的存储脏数据的一或多个存储器单元集合。在一些实例中,第二缓冲器640可至少部分地基于确定行中的一或多个存储器单元集合存储脏数据而将存储在一或多个存储器单元集合中的脏数据传达到非易失性存储器。
在一些实例中,激活命令与非易失性存储器的地址相关联。在一些实例中,高速缓存管理组件620可至少部分地基于激活命令和第一阵列中的行的存储信息来确定行存储来自非易失性存储器的地址的数据。在一些实例中,高速缓存管理组件620可至少部分地基于指示行存储来自非易失性存储器地址的数据的行的存储信息来选择行的存储信息以用于从第一阵列传达到第一寄存器645。
在一些实例中,激活命令与非易失性存储器的地址相关联。在一些实例中,高速缓存管理组件620可至少部分地基于激活命令和第一阵列中的额外存储信息来确定没有易失性存储器中的行存储来自非易失性存储器的地址的数据。在一些实例中,高速缓存管理组件620可至少部分地基于指示行存储无效数据的行的存储信息来选择行的存储信息以用于从第一阵列传达到第一寄存器645。
在一些实例中,存储器存取组件635可至少部分地基于将行的存储信息从第一阵列传达到第一寄存器645来激活易失性存储器的行。
在一些实例中,激活命令以非易失性存储器的地址为目标。在一些实例中,高速缓存管理组件620可确定易失性存储器的与非易失性存储器的地址相关联的行的集合,其中易失性存储器的行是行集合中的行。
在第三实例中,接收组件615可从主机装置接收与易失性存储器的行相关联的激活命令。第一阵列610可至少部分地基于激活命令将易失性存储器的行的存储信息从第一阵列传达到第一寄存器645。接收组件615可从主机装置接收与易失性存储器的行相关联的存取命令。第二阵列625可至少部分地基于存取命令和第一寄存器645中的存储信息将行的有效性信息从第二阵列传达到第一寄存器645或将行的脏信息从第二阵列传达到第二寄存器。
在一些实例中,存取命令与非易失性存储器的地址相关联。在一些实例中,高速缓存管理组件620可至少部分地基于第一寄存器645中的行的存储信息来确定行存储来自非易失性存储器的地址的数据,其中至少部分地基于所述确定而将行的有效性信息从第二阵列传达到第一寄存器645。
在一些实例中,存取命令与非易失性存储器的地址相关联。在一些实例中,高速缓存管理组件620可至少部分地基于第一寄存器645中的行的存储信息来确定行不存储来自非易失性存储器的地址的数据,其中至少部分地基于所述确定而将行的脏信息从第二阵列传达到第二寄存器。
图7展示说明根据本公开的方面的支持高速缓存的元数据管理的一或多种方法700的流程图。方法700的操作可由如本文所描述的存储器装置或其组件实施。举例来说,可由如参考图1至6所描述的存储器装置进行方法700的操作。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件进行所描述功能。另外或替代地,存储器装置可使用专用硬件来进行所描述功能的方面。
在一些实例中,方法700的操作可由包含配置成操作为非易失性存储器的高速缓存的易失性存储器和与易失性存储器和非易失性存储器耦合的接口控制器的设备实施。接口控制器可操作以使得设备进行方法700的操作。
在705处,方法可包含从主机装置接收激活命令。可根据本文中所描述的方法来进行705的操作。在一些实例中,可由参考图6所描述的接收组件进行705的操作的方面。
在710处,方法可包含至少部分地基于与易失性存储器的行相关联的激活命令而将所述行的存储信息从阵列传达到寄存器。可根据本文中所描述的方法来进行710的操作。在一些实例中,可由如参考图6所描述的第一阵列通信组件进行710的操作的方面。
在715处,方法可包含从主机装置接收与易失性存储器的行相关联的读取命令。可根据本文中所描述的方法来进行715的操作。在一些实例中,可由如参考图6所描述的接收组件进行715的操作的方面。
在720处,方法可包含至少部分地基于寄存器中的存储信息来确定由读取命令请求的数据是否存储在易失性存储器的行中。可根据本文中所描述的方法来进行720的操作。在一些实例中,可由如参考图6所描述的高速缓存管理组件进行720的操作的方面。
在一些实例中,如本文中所描述的设备可进行一或多种方法,如方法700。所述设备可包含用于以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):从主机装置接收激活命令;至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的读取命令;和至少部分地基于所述寄存器中的所述存储信息来确定由所述读取命令请求的数据是否存储在所述易失性存储器的所述行中。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定由所述读取命令请求的所述数据存储在所述易失性存储器的所述行中。本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:至少部分地基于确定所述数据存储在所述行中而将所述易失性存储器的所述行的有效性信息从第二阵列传达到所述寄存器。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述寄存器中的所述行的所述有效性信息来确定所述行中的存储所述数据的一或多个存储器单元子集。本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述行中的所述一或多个存储器单元子集存储所述数据而将存储在所述一或多个存储器单元子集中的所述数据传达到所述主机装置。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定由所述读取命令请求的所述数据可不存在于所述易失性存储器的所述行中。本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述数据可不存在于所述行中而将所述易失性存储器的所述行的脏信息从第二阵列传达到第二寄存器。本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述第二寄存器中的所述行的所述脏信息来确定所述行中的存储脏数据的一或多个存储器单元子集。本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述行中的所述一或多个存储器单元子集存储所述脏数据而将存储在所述一或多个存储器单元子集中的所述脏数据传达到所述非易失性存储器。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述行的指示所述行存储来自由所述激活命令指示的非易失性存储器地址的数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述阵列中的额外存储信息来确定所请求数据可不存在于所述易失性存储器中。本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述行的指示所述行存储无效数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于将所述行的所述存储信息从所述阵列传达到所述寄存器来激活所述易失性存储器的所述行。
本文中所描述的方法700和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述易失性存储器的与所述非易失性存储器的所述地址相关联的行集合,其中所述易失性存储器的所述行可以是所述行集合中的行。
图8展示说明根据本公开的方面的支持高速缓存的元数据管理的一或多种方法800的流程图。方法800的操作可由如本文所描述的存储器装置或其组件实施。举例来说,可由如参考图1至6所描述的存储器装置进行方法800的操作。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件进行所描述功能。另外或替代地,存储器装置可使用专用硬件来进行所描述功能的方面。
在一些实例中,方法800的操作可由包含配置成操作为非易失性存储器的高速缓存的易失性存储器和与易失性存储器和非易失性存储器耦合的接口控制器的设备实施。接口控制器可操作以使得设备进行方法800的操作。
在805处,方法可包含从主机装置接收激活命令。可根据本文中所描述的方法来进行805的操作。在一些实例中,可由如参考图6所描述的接收组件进行805的操作的方面。
在810处,方法可包含至少部分地基于与易失性存储器的行相关联的激活命令而将所述行的存储信息从阵列传达到寄存器。可根据本文中所描述的方法来进行810的操作。在一些实例中,可由如参考图6所描述的第一阵列通信组件进行810的操作的方面。
在815处,方法可包含从主机装置接收与易失性存储器的行相关联的写入命令。可根据本文中所描述的方法来进行815的操作。在一些实例中,可由如参考图6所描述的接收组件进行815的操作的方面。
在820处,方法可包含至少部分地基于寄存器中的存储信息来确定易失性存储器的行是否存储来自非易失性存储器的与写入命令相关联的地址的数据。可根据本文中所描述的方法来进行820的操作。在一些实例中,可由如参考图6所描述的高速缓存管理组件进行820的操作的方面。
在一些实例中,如本文中所描述的设备可进行一或多种方法,如方法800。所述设备可包含用于以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):从主机装置接收激活命令;至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的读取命令;和至少部分地基于所述寄存器中的所述存储信息来确定由所述读取命令请求的数据是否存储在所述易失性存储器的所述行中。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:从主机装置接收激活命令;至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的写入命令;和至少部分地基于所述寄存器中的所述存储信息来确定所述易失性存储器的所述行是否存储来自所述非易失性存储器的与所述写入命令相关联的地址的数据。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述易失性存储器的所述行存储来自所述非易失性存储器的与所述写入命令相关联的所述地址的数据。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述行存储来自所述非易失性存储器的所述地址的数据而将所述易失性存储器的所述行的脏信息从第二阵列传达到所述寄存器。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述行存储来自所述非易失性存储器的所述地址的数据,所述数据与所述易失性存储器的所述行中的所述写入命令相关联。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于将所述数据存储在所述行中,在将所述寄存器中的所述行的所述脏信息返回到所述第二阵列之前更新所述脏信息。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述行存储来自所述非易失性存储器的所述地址的数据而将所述易失性存储器的所述行的有效性信息从所述第二阵列传达到所述寄存器。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于将与所述写入命令相关联的所述数据存储在所述行中,在将所述寄存器中的所述行的所述有效性信息返回到所述第二阵列之前更新所述有效性信息。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述易失性存储器的所述行不存储来自所述非易失性存储器的与所述写入命令相关联的所述地址的数据。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述行不存储所述数据而将所述易失性存储器的所述行的脏信息从第二阵列传达到第二寄存器。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述第二寄存器中的所述行的所述脏信息来确定所述行中的存储脏数据的一或多个存储器单元集合。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于确定所述行中的所述一或多个存储器单元集合存储所述脏数据而将存储在所述一或多个存储器单元集合中的所述脏数据传达到所述非易失性存储器。
在本文中所描述的方法800和设备的一些实例中,所述激活命令与所述非易失性存储器的所述地址相关联。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述激活命令和所述阵列中的所述行的所述存储信息来确定所述行存储来自所述非易失性存储器的所述地址的数据。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述行的指示所述行存储来自所述非易失性存储器的所述地址的数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
在本文中所描述的方法800和设备的一些实例中,所述激活命令与所述非易失性存储器的所述地址相关联。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述激活命令和所述阵列中的额外存储信息来确定没有所述易失性存储器中的行存储来自所述非易失性存储器的所述地址的数据。本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述行的指示所述行存储无效数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于将所述行的所述存储信息从所述阵列传达到所述寄存器来激活所述易失性存储器的所述行。
本文中所描述的方法800和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:确定所述易失性存储器的与所述非易失性存储器的所述地址相关联的行集合,其中所述易失性存储器的所述行可以是所述行集合中的行。
图9展示说明根据本公开的方面的支持高速缓存的元数据管理的一或多种方法900的流程图。方法900的操作可由如本文所描述的存储器装置或其组件实施。举例来说,可由如参考图1至6所描述的存储器装置进行方法900的操作。在一些实例中,存储器装置可执行指令集以控制存储器装置的功能元件进行所描述功能。另外或替代地,存储器装置可使用专用硬件来进行所描述功能的方面。
在一些实例中,方法900的操作可由包含配置成操作为非易失性存储器的高速缓存的易失性存储器和与易失性存储器和非易失性存储器耦合的接口控制器的设备实施。接口控制器可操作以使得设备进行方法900的操作。
在905处,方法可包含从主机装置接收与易失性存储器的行相关联的激活命令。可根据本文中所描述的方法来进行905的操作。在一些实例中,可由如参考图6所描述的接收组件进行905的操作的方面。
在910处,方法可包含至少部分地基于激活命令将易失性存储器的行的存储信息从第一阵列传达到第一寄存器。可根据本文中所描述的方法来进行910的操作。在一些实例中,可由如参考图6所描述的第一阵列通信组件进行910的操作的方面。
在915处,方法可包含从主机装置接收与易失性存储器的行相关联的存取命令。可根据本文中所描述的方法来进行915的操作。在一些实例中,可由如参考图6所描述的接收组件进行915的操作的方面。
在920处,方法可包含至少部分地基于存取命令和第一寄存器中的存储信息将行的有效性信息从第二阵列传达到第一寄存器或将行的脏信息从第二阵列传达到第二寄存器。可根据本文中所描述的方法来进行920的操作。在一些实例中,可由如参考图6所描述的第一阵列通信组件进行920的操作的方面。
在一些实例中,如本文中所描述的设备可进行一或多种方法,如方法900。所述设备可包含用于以下操作的特征、构件或指令(例如,存储可由处理器执行的指令的非暂时性计算机可读介质):从主机装置接收与所述易失性存储器的行相关联的激活命令;至少部分地基于所述激活命令将所述易失性存储器的所述行的存储信息从第一阵列传达到第一寄存器;从所述主机装置接收与所述易失性存储器的所述行相关联的存取命令;和至少部分地基于所述存取命令和所述第一寄存器中的所述存储信息将所述行的有效性信息从第二阵列传达到所述第一寄存器或将所述行的脏信息从所述第二阵列传达到第二寄存器。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述第一寄存器中的所述行的所述存储信息来确定所述行存储来自所述非易失性存储器的所述地址的数据,其中可基于所述确定将所述行的所述有效性信息从所述第二阵列传达到所述第一寄存器。
本文中所描述的方法900和设备的一些实例可进一步包含用于以下操作的操作、特征、构件或指令:基于所述第一寄存器中的所述行的所述存储信息来确定所述行不存储来自所述非易失性存储器的所述地址的数据,其中基于所述确定将所述行的所述脏信息从所述第二阵列传达到所述第二寄存器。
应注意,上文所描述的方法描述可能实施方案,且操作和步骤可重新布置或以其它方式加以修改,且其它实施方案是可能的。此外,可组合来自所述方法中的两种或更多种的部分。
可使用各种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,所属领域的一般技术人员应理解,所述信号可表示信号总线,其中总线可具有各种位宽度。
协议可定义支持由装置或组件使用的一或多个通信程序和一或多个通信参数。举例来说,协议可定义各种操作、用于那些操作的计时和频率、各种命令或信号或两者的含义、用于一或多个存储器的一或多个寻址方案、其中保留引脚的类型的通信、在如接口的各种组件处处置的数据的大小、由如接口的各种组件所支持的数据速率,或由如接口的各种组件所支持的带宽,以及其它参数和度量,或其任何组合。共享协议的使用可实现装置之间的交互,这是因为每一装置可以另一装置所预期、辨识和理解的方式来操作。举例来说,支持相同协议的两个装置可根据由协议定义的策略、程序和参数来交互,而支持不同协议的两个装置可以是不兼容的。
为了说明,支持不同协议的两个装置可以是不兼容的,这是因为协议定义不同寻址方案(例如,不同数量的地址位)。作为另一说明,支持不同协议的两个装置可以是不兼容的,这是因为协议定义不同传送程序以用于响应于单个命令(例如,响应于命令所准许的字节的丛发长度或数量可以是不同的)。仅将命令转换为动作不应理解为两个不同协议的使用。实际上,如果由两个协议定义的对应程序或参数发生改变,那么所述协议可视为不同。举例来说,如果装置支持不同寻址方案或不同传送程序以用于响应于命令,那么装置可称为支持两个不同协议。
术语“电子连通”、“导电接触”、“连接”和“耦合”可指支持信号在组件之间流动的组件之间的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么认为组件彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或彼此导电接触,或彼此连接,或彼此耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用如开关或晶体管的一或多个中间组件来中断所连接组件之间的信号的流动持续一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在所述开路关系中,信号当前无法通过导电路径在所述组件之间传达,在所述闭路关系中,信号能够通过所述导电路径在所述组件之间传达。当如控制器的组件将其它组件耦合在一起时,组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能够在组件之间流动的组件之间的关系。如果组件之间存在开路,则所述组件彼此隔离。举例来说,由定位在两个组件之间的开关分离的所述组件在开关断开时彼此隔离。当控制器将两个组件隔离时,控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
包含存储器阵列的本文中所论述的装置可形成于如硅、锗、硅锗合金、砷化镓、氮化镓等的半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(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 (22)

1.一种设备,其包括:
易失性存储器,其配置成操作为非易失性存储器的高速缓存;以及
接口控制器,其与所述易失性存储器以及所述非易失性存储器耦合,所述接口控制器可操作以使得所述设备:
从主机装置接收激活命令;
至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;
从所述主机装置接收与所述易失性存储器的所述行相关联的读取命令;以及
至少部分地基于所述寄存器中的所述存储信息来确定由所述读取命令请求的数据是否存储在所述易失性存储器的所述行中。
2.根据权利要求1所述的设备,其中所述接口控制器可操作以使得所述设备:
确定由所述读取命令请求的所述数据存储在所述易失性存储器的所述行中;以及
至少部分地基于确定所述数据存储在所述行中而将所述易失性存储器的所述行的有效性信息从第二阵列传达到所述寄存器。
3.根据权利要求2所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述寄存器中的所述行的所述有效性信息来确定所述行中的存储所述数据的一或多个存储器单元子集;以及
至少部分地基于确定所述行中的所述一或多个存储器单元子集存储所述数据而将存储在所述一或多个存储器单元子集中的所述数据传达到所述主机装置。
4.根据权利要求1所述的设备,其中所述接口控制器可操作以使得所述设备:
确定由所述读取命令请求的所述数据不存在于所述易失性存储器的所述行中;以及
至少部分地基于确定所述数据不存在于所述行中而将所述易失性存储器的所述行的脏信息从第二阵列传达到第二寄存器。
5.根据权利要求4所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述第二寄存器中的所述行的所述脏信息来确定所述行中的存储脏数据的一或多个存储器单元子集;以及
至少部分地基于确定所述行中的所述一或多个存储器单元子集存储所述脏数据而将存储在所述一或多个存储器单元子集中的所述脏数据传达到所述非易失性存储器。
6.根据权利要求1所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述行的指示所述行存储来自由所述激活命令指示的非易失性存储器地址的数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
7.根据权利要求1所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述阵列中的额外存储信息来确定所请求数据不存在于所述易失性存储器中;以及
至少部分地基于所述行的指示所述行存储无效数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
8.根据权利要求1所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于将所述行的所述存储信息从所述阵列传达到所述寄存器来激活所述易失性存储器的所述行。
9.根据权利要求1所述的设备,其中所述激活命令以所述非易失性存储器的地址为目标,且其中所述接口控制器可操作以使得所述设备:
确定所述易失性存储器的与所述非易失性存储器的所述地址相关联的行集合,其中所述易失性存储器的所述行是所述行集合中的行。
10.一种设备,其包括:
易失性存储器,其配置成操作为非易失性存储器的高速缓存;以及
接口控制器,其与所述易失性存储器以及所述非易失性存储器耦合,所述接口控制器可操作以使得所述设备:
从主机装置接收激活命令;
至少部分地基于与所述易失性存储器的行相关联的所述激活命令而将所述行的存储信息从阵列传达到寄存器;
从所述主机装置接收与所述易失性存储器的所述行相关联的写入命令;以及
至少部分地基于所述寄存器中的所述存储信息来确定所述易失性存储器的所述行是否存储来自所述非易失性存储器的与所述写入命令相关联的地址的数据。
11.根据权利要求10所述的设备,其中所述接口控制器可操作以使得所述设备:
确定所述易失性存储器的所述行存储来自所述非易失性存储器的与所述写入命令相关联的所述地址的数据;以及
至少部分地基于确定所述行存储来自所述非易失性存储器的所述地址的数据而将所述易失性存储器的所述行的脏信息从第二阵列传达到所述寄存器。
12.根据权利要求11所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于确定所述行存储来自所述非易失性存储器的所述地址的数据而将与所述写入命令相关联的所述数据存储在所述易失性存储器的所述行中;以及
至少部分地基于将所述数据存储在所述行中,在将所述寄存器中的所述行的所述脏信息返回到所述第二阵列之前更新所述脏信息。
13.根据权利要求12所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于确定所述行存储来自所述非易失性存储器的所述地址的数据而将所述易失性存储器的所述行的有效性信息从所述第二阵列传达到所述寄存器;以及
至少部分地基于将与所述写入命令相关联的所述数据存储在所述行中,在将所述寄存器中的所述行的所述有效性信息返回到所述第二阵列之前更新所述有效性信息。
14.根据权利要求10所述的设备,其中所述接口控制器可操作以使得所述设备:
确定所述易失性存储器的所述行不存储来自所述非易失性存储器的与所述写入命令相关联的所述地址的数据;以及
至少部分地基于确定所述行不存储所述数据而将所述易失性存储器的所述行的脏信息从第二阵列传达到第二寄存器。
15.根据权利要求14所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述第二寄存器中的所述行的所述脏信息来确定所述行中的存储脏数据的一或多个存储器单元集合;以及
至少部分地基于确定所述行中的所述一或多个存储器单元集合存储所述脏数据而将存储在所述一或多个存储器单元集合中的所述脏数据传达到所述非易失性存储器。
16.根据权利要求10所述的设备,其中所述激活命令与所述非易失性存储器的所述地址相关联,且其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述激活命令以及所述阵列中的所述行的所述存储信息来确定所述行存储来自所述非易失性存储器的所述地址的数据;以及
至少部分地基于所述行的指示所述行存储来自所述非易失性存储器的所述地址的数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
17.根据权利要求10所述的设备,其中所述激活命令与所述非易失性存储器的所述地址相关联,且其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述激活命令以及所述阵列中的额外存储信息来确定没有所述易失性存储器中的行存储来自所述非易失性存储器的所述地址的数据;以及
至少部分地基于所述行的指示所述行存储无效数据的所述存储信息来选择所述行的所述存储信息,以用于从所述阵列传达到所述寄存器。
18.根据权利要求10所述的设备,其中所述接口控制器可操作以使得所述设备:
至少部分地基于将所述行的所述存储信息从所述阵列传达到所述寄存器来激活所述易失性存储器的所述行。
19.根据权利要求10所述的设备,其中所述激活命令以所述非易失性存储器的地址为目标,且其中所述接口控制器可操作以使得所述设备:
确定所述易失性存储器的与所述非易失性存储器的所述地址相关联的行集合,其中所述易失性存储器的所述行是所述行集合中的行。
20.一种设备,其包括:
易失性存储器,其配置成操作为非易失性存储器的高速缓存;以及
接口控制器,其与所述易失性存储器以及所述非易失性存储器耦合,所述接口控制器可操作以使得所述设备:
从主机装置接收与所述易失性存储器的行相关联的激活命令;
至少部分地基于所述激活命令将所述易失性存储器的所述行的存储信息从第一阵列传达到第一寄存器;
从所述主机装置接收与所述易失性存储器的所述行相关联的存取命令;以及
至少部分地基于所述存取命令以及所述第一寄存器中的所述存储信息将所述行的有效性信息从第二阵列传达到所述第一寄存器或将所述行的脏信息从所述第二阵列传达到第二寄存器。
21.根据权利要求20所述的设备,其中所述存取命令与所述非易失性存储器的地址相关联,且其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述第一寄存器中的所述行的所述存储信息来确定所述行存储来自所述非易失性存储器的所述地址的数据,其中至少部分地基于所述确定将所述行的所述有效性信息从所述第二阵列传达到所述第一寄存器。
22.根据权利要求20所述的设备,其中所述存取命令与所述非易失性存储器的地址相关联,且其中所述接口控制器可操作以使得所述设备:
至少部分地基于所述第一寄存器中的所述行的所述存储信息来确定所述行不存储来自所述非易失性存储器的所述地址的数据,其中至少部分地基于所述确定将所述行的所述脏信息从所述第二阵列传达到所述第二寄存器。
CN202110862307.2A 2020-08-03 2021-07-29 高速缓存的元数据管理 Pending CN114064519A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063060398P 2020-08-03 2020-08-03
US63/060,398 2020-08-03

Publications (1)

Publication Number Publication Date
CN114064519A true CN114064519A (zh) 2022-02-18

Family

ID=80003332

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110862307.2A Pending CN114064519A (zh) 2020-08-03 2021-07-29 高速缓存的元数据管理

Country Status (2)

Country Link
US (1) US11526442B2 (zh)
CN (1) CN114064519A (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152237B2 (en) * 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US10339067B2 (en) * 2017-06-19 2019-07-02 Advanced Micro Devices, Inc. Mechanism for reducing page migration overhead in memory systems

Also Published As

Publication number Publication date
US11526442B2 (en) 2022-12-13
US20220035739A1 (en) 2022-02-03

Similar Documents

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