CN111338980B - 预测性数据存储分级存储器系统及方法 - Google Patents
预测性数据存储分级存储器系统及方法 Download PDFInfo
- Publication number
- CN111338980B CN111338980B CN201911275498.1A CN201911275498A CN111338980B CN 111338980 B CN111338980 B CN 111338980B CN 201911275498 A CN201911275498 A CN 201911275498A CN 111338980 B CN111338980 B CN 111338980B
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- block
- level
- predicted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
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)
- Software Systems (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供预测性数据存储分级存储器系统及方法。所述存储器系统包含:高速缓冲存储器,其实施第一存储器层级;及存储器阵列,其实施第二存储器层级,所述第二存储器层级高于所述第一存储器层级。另外,所述存储器系统包含一或多个存储器控制器,所述一或多个存储器控制器至少部分地基于将存储在所述存储器子系统中的第一数据的第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定预期在即将到来的控制时程期间出现的所预测数据存取型式,且至少部分地基于所述所预测数据存取型式来控制在实施在所述存储器系统中的多个分级存储器层级中的哪一或多个存储器层级中存储所述第一数据、所述第二数据或这两者。
Description
技术领域
本发明大体来说涉及存储器系统(例如子系统),且更确切来说涉及跨越实施在存储器系统中的多个分级存储器层级(例如,层)预测性地控制(例如,调整)数据存储。
背景技术
通常,计算系统包含处理子系统及存储器子系统,所述存储器子系统可存储可由处理子系统的处理电路系统存取的数据。举例来说,为执行操作,处理电路系统可执行从实施在存储器子系统中的存储器装置检索到的对的指令。在一些实例中,也可从所述存储器装置检索所述输入到所述操作的数据。另外或另一选择为,可将从操作输出(例如,所得)的数据存储在所述存储器装置中以例如能够供后续检索。然而,至少在一些实例中,计算系统的操作效率可受其架构限制,举例来说,所述架构管控在计算系统中执行的操作顺序。
发明内容
在一个方面中,本申请案涉及一种设备,所述设备包括:处理系统,其包括处理电路系统以及一或多个寄存器;及存储器系统,其经由一或多个通信总线通信耦合到所述处理系统且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器系统包括:第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;第一存储器阵列,其经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级;及一或多个存储器控制器,其经配置以:至少部分地基于将存储在所述存储器系统中的第一数据的第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定预期在即将到来的控制时程期间出现的所预测数据存取型式;且至少部分地基于所述所预测数据存取型式来控制在实施在所述存储器系统中的所述多个分级存储器层级中的哪一或多个存储器层级中存储所述第一数据、所述第二数据或这两者。
在另一方面中,本申请案涉及一种操作存储器系统的方法,所述方法包括:使用一或多个存储器控制器来随写入存储器存取请求一起接收将存储在所述存储器系统中的第一数据块,所述写入存储器存取请求指示与所述第一数据块相关联的第一一或多个上下文识别符;使用所述一或多个存储器控制器至少部分地基于与所述第一数据块相关联的所述第一一或多个上下文识别符、与先前存储在所述存储器系统中的第二数据块相关联的第二一或多个上下文识别符、与所述第一数据块相关联的第一数据存取信息、与所述第二数据块相关联的第二数据存取信息、第一先前预测误差或其任何组合来确定所述第一数据块的第一所预测的下一目标时间;使用所述一或多个存储器控制器来确定当前时间与所述第一数据块的所述第一下一所预测目标时间之间的持续时间是否小于与实施在所述存储器系统的处理器侧中的第一中间存储器层级相关联的第一中间持续时间阈值;在所述当前时间与所述第一数据块的所述第一下一所预测目标时间之间的所述持续时间小于与实施在所述存储器系统的所述处理器侧中的所述第一中间存储器层级相关联的所述第一中间持续时间阈值时,使用所述一或多个存储器控制器指挥所述存储器系统将所述第一数据块的实例存储在实施在所述存储器系统的所述处理器侧中的一或多个存储器层级中;及使用所述一或多个存储器控制器指挥所述存储器系统将所述第一数据块存储在实施在所述存储器系统的存储器侧中的最高存储器层级中,所述存储器侧经由存储器总线通信耦合到所述存储器系统的所述处理器侧。
在另一方面中,本申请案涉及一种计算系统,所述计算系统包括:处理子系统,其包括处理电路系统及一或多个寄存器,其中所述处理子系统经配置以在所述处理电路系统将第一数据块定为目标且所述第一数据块引起寄存器未命中时输出将所述第一数据块定为目标的读取存储器存取请求;以及存储器子系统,其通信耦合到所述处理子系统,其中所述存储器子系统包括:多个分级存储器层;及一或多个存储器控制器,其经配置以:指挥所述存储器子系统至少部分地基于所述读取存储器存取请求中所指示的读取存取参数、所述第一数据块的第一上下文识别符或这两者来将所述第一数据块供应到所述处理子系统;更新与所述第一数据块相关联的第一数据存取信息;至少部分地基于与所述第一数据块相关联的所述第一上下文识别符、与所述第二数据块相关联的第二上下文识别符及与所述第一数据块相关联的所述第一数据存取信息来确定所预测数据存取型式,所述所预测数据存取型式指示预期先前存储在所述存储器子系统中的第二数据块接下来将被定为目标;且在预期所述第二数据块接下来将被定为目标且所述当前存储器层不是所述多个分级存储器层的最低存储器层时,指挥所述存储器子系统将所述第二数据块从当前存储器层复制到较低存储器层中。
附图说明
在读取以下详细说明且在参考图式之后,可更好地本理解发明的各个方面,在图式中:
图1是根据本发明的实施例的包含处理子系统及存储器子系统的计算系统的框图;
图2是根据本发明的实施例的图1的存储器子系统的示例性存储器侧部分的框图;
图3是根据本发明的实施例的图1的可实施在存储器子系统中的示例性存储器阵列的框图;
图4是可存储在根据本发明的实施例的图1的存储器子系统中的示例性数据对象的图示;
图5是可实施在根据本发明的实施例的图1的存储器子系统中的示例性高速缓冲存储器(例如,处理器侧高速缓冲存储器或存储器侧高速缓冲存储器)的框图;
图6是可由根据本发明的实施例的图1的存储器子系统跟踪及/或使用的示例性数据存取信息的图示;
图7是根据本发明的实施例的示例性机器学习块的框图,所述机器学习块实施神经网络技术以有助于预测性地控制图1的存储器子系统中的数据存储;
图8是根据本发明的实施例的图1的存储器子系统的示例性处理器侧部分的框图;
图9是根据本发明的实施例的用于产生数据对象的示例性过程的流程图;
图10是根据本发明的实施例的用于操作图1的存储器子系统以存储所接收的数据的示例性过程的流程图;
图11是根据本发明的实施例的用于预测后续数据存取型式的示例性过程的流程图;
图12是根据本发明的实施例的用于预测性地控制将存储在图1的存储器子系统中的数据的存储的示例性过程的流程图;
图13是根据本发明的实施例的用于操作图1的计算系统的示例性过程的流程图;
图14是根据本发明的实施例的用于产生存储器存取请求的示例性过程的流程图;
图15是根据本发明的实施例的用于预测性地控制图1的存储器子系统中的数据存储的示例性过程的流程图;
图16是根据本发明的实施例的用于预测性地控制先前存储在图1的存储器子系统中的数据的存储的另一示例性过程的流程图;且
图17是根据本发明的实施例的用于预测性地控制先前存储在图1的存储器子系统中的数据的存储的另一示例性过程的流程图。
具体实施方式
本发明提供有助于(举例来说)通过削弱本可能会限制操作效率的架构特征来提高计算系统的操作效率的技术。通常,计算系统可包含各种子系统,例如处理子系统及/或存储器子系统。确切来说,处理子系统可包含(举例来说)使用一或多个处理器及/或一或多个处理器核心实施的处理电路系统。存储器子系统可包含一或多个存储器装置(例如,芯片或集成电路),所述一或多个存储器装置例如实施在存储器模块(例如,双列直插式存储器模块(DIMM))上。
通常,在计算系统的操作期间,实施在处理子系统中的处理电路系统可通过执行对应的指令来执行各种操作,举例来说,通过对输入数据执行数据处理操作来确定输出数据。在一些实例中,处理子系统可包含一或多个寄存器,所述一或多个寄存器提供可由所述处理子系统的处理电路系统直接存取的存储位置。然而,寄存器的存储容量通常是有限的。
如此,可将存储器子系统通信耦合到处理子系统以例如经由实施在一或多个存储器装置中的存储器阵列来为处理子系统提供额外的存储位置。换句话说,继续说明以上例子,存储器子系统可存储输入到数据处理操作的数据、从数据处理操作输出(例如,所得)的数据、指示可执行指令的数据或其任何组合。如此,在计算系统的操作期间,处理子系统可存取存储器子系统(举例来说)以将数据存储(例如,写入)到存储器子系统及/或检索(例如,读取)先前存储在存储器子系统中的数据。
为存取存储器子系统,处理子系统可输出一或多个存储器存取请求,所述一或多个存储器存取请求指示将由存储器子系统使用的存取参数。举例来说,为将数据块存储(例如,写入)到存储器子系统,处理子系统可输出指示一或多个写入存取参数的写入存储器存取请求,例如由处理电路系统用于识别所述数据块的虚拟存储器地址、存储器子系统中将存储数据块的物理存储器地址、数据块的大小(例如,位深度)及/或写入启用指示符(例如,位)。另外或另一选择为,为从存储器子系统检索(例如,读取)数据块,处理子系统可输出指示读取存取参数的读取存储器存取请求,例如由处理电路系统用于识别目标数据块的虚拟存储器地址、存储器子系统中预期存储数据块的物理存储器地址、数据块的大小(例如,位深度)及/或读取启用指示符(例如,位)。
响应于接收到读取存储器存取请求,存储器子系统可至少部分地基于读取存储器存取请求中所指示的读取存取参数来搜索读取存储器存取请求所定为目标的数据块。举例来说,存储器子系统可至少部分地基于读取存储器存取请求中所指示的虚拟存储器地址及/或物理存储器地址来确定预期与目标数据块相关联的目标标签值(例如,块识别符元数据)。另外,存储器子系统可依据目标标签值通过连续地搜索与存储器子系统中所存储的有效数据块相关联的标签值来识别(例如,寻找)目标数据块。一旦检测到匹配,则存储器子系统可识别相关联数据块作为目标数据块,且因此将相关联数据块传回到处理子系统以(举例来说)由其处理电路系统处理及/或执行。因此,至少在一些实例中,计算系统的操作效率可取决于由其存储器子系统提供的数据检索等待时间(例如,在传回目标数据之前的持续时间)。
为有助于改善(例如,减小或缩短)数据检索等待时间,在一些实例中,可将存储器子系统的总存储容量分布在多个分级存储器层级(例如,层)上。通常,分级存储器子系统可包含最靠近处理电路系统的最低(例如,第一)存储器层级及距处理电路系统最远的最高(例如,最后)存储器层级。另外,在一些实例中,分级存储器子系统可包含在最低存储器层级与最高存储器层级之间的一或多个中间存储器层级。换句话说,中间存储器层级可被实施成与最低存储器层级相比距处理电路系统较远且与最高存储器层级相比距处理电路系统较近。
通常,当将数据定位目标(例如,被请求)时,如果目标数据不存在(例如,目标标签值不与任何有效标签值相匹配),那么分级存储器子系统可试图从最低级别开始检索目标数据再连续地推进到较高存储器层级。举例来说,存储器子系统可检查目标数据块当前是否存储在最低(例如,第一)存储器层级中。当目标数据块在最低存储器层级中不存在时,然后存储器子系统可检查目标数据块当前是否存储在下一最低(例如,第二)存储器层级中等等。
因此,为有助于改善数据检索等待时间,可实施分级存储器子系统,以使得与较高存储器层级相比较低存储器层级通常提供更快的(例如,较短)数据检索等待时间。然而,由存储器层级提供的数据检索等待时间可通常取决于其存储容量,举例来说,由于增大存储容量可使得存储器层级中所存储的有效数据块的数目增大,且因此可增大在识别且传回目标数据块之前所执行的搜索量。如此,为有助于提供更快的数据检索等待时间,可将较低存储器层级实施成与较高存储器层级相比存储容量减少(例如,较小)。
然而,将较低存储器层级实施成具有较少的存储容量可限制由存储器子系统提供的总存储容量。如此,为有助于维持或甚至增大由存储器子系统提供的总存储容量,可将较高存储器层级实施为具有比较低存储器层级更多(例如,更大)的存储容量。换句话说,可将存储器子系统实施为具有多个分级存储器层级以助于平衡平均数据检索等待时间(例如,操作效率)与所提供的总存储容量之间的折衷。
为有助于实现所述平衡,在一些实例中,可将存储器子系统实施为具有多个不同的存储器类型,这些不同的存储器类型提供影响操作效率及/或实施相关成本的不同折衷。举例来说,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)等易失性存储器可提供比非易失性存储器更快的数据传送(例如,读取及/或写入)速度。因此,为有助于提供更快的数据检索等待时间,在一些实例中,可使用易失性存储器来实施较低存储器层级。举例来说,可使用一或多个DRAM模块来实施较低存储器层级,所述一或多个DRAM模块经由存储器(例如,外部)总线通信耦合到处理电路系统。
另一方面,例如快闪存储器(例如,NAND)存储器、相变存储器(例如,3D XPointTM)存储器或铁电随机存取存储器(FeRAM)等非易失性存储器可提供比易失性存储器高(例如,大)的数据存储密度。另外,与易失性存储器单元相比,非易失性存储器单元即使在断电状态下仍可维持其所存储的值或数据位。因此,在一些实例中,可使用非易失性存储器来实施较高存储器层级以有助于(举例来说)通过能够将存储器子系统实施成具有增大的总存储容量、减小的物理占用面积(例如,大小)及/或在无连续供电时留存数据来降低实施相关成本。举例来说,可使用一或多个非易失性存储器(例如,硬盘或固态)驱动器来实施较高存储器层级,所述一或多个非易失性存储器(例如,硬盘或固态)驱动器经由存储器(例如,外部)总线通信耦合到处理电路系统。
然而,至少在一些实例中,由于存储器总线的处理器侧上的组件与存储器总线的存储器侧上的组件之间存在时序差、存储器总线与其它计算子系统共享及/或由于沿着存储器总线的通信距离,经由存储器总线进行的数据传达通常比经由内部总线进行的数据传达慢(举例来说)。换句话说,处理器侧组件内(例如,内部)的数据传达可比处理器侧组件与存储器侧组件之间经由存储器总线进行的数据传达快。
因此,为有助于改善数据检索等待时间,在一些实例中,存储器子系统可包含实施在存储器总线的处理器侧上的一或多个高速缓冲存储器。举例来说,存储器子系统可包含与处理子系统的处理电路系统集成在一起的L1高速缓冲存储器、L2高速缓冲存储器及/或L3高速缓冲存储器。换句话说,在这些实例中,存储器子系统的第一(例如,存储器侧)部分可实施在存储器总线的存储器侧上,而存储器子系统的第二(例如,处理器侧)部分实施在f所述存储器总线的处理器侧上。
此外,在这些实例中,可将存储器子系统的处理器侧实施成与存储器子系统的存储器侧相比,提供一或多个较低的存储器层级。换句话说,与由存储器子系统的存储器侧上的存储器装置实施的存储器层级相比,可将处理器侧(例如,L1、L2或L3)高速缓冲存储器实施为较低存储器层级。因此,至少在一些实例中,举例来说,可使用静态随机存取存储器(SRAM)实施一或多个处理器侧高速缓冲存储器,而使用动态随机存取存储器(DRAM)实施存储器侧存储器装置。
此外,在从存储器子系统的存储器侧检索目标数据之前,计算系统可试图先从存储器子系统的处理器侧检索目标数据。换句话说,在当前存储在处理器侧高速缓冲存储器中时,存储器子系统可将包含目标数据的实例(例如,复本)的高速缓冲存储器线提供(例如,输出)到处理电路系统,举例来说,而不是从也存储目标数据块的存储器侧存储器装置来提供。如上文所描述,至少在一些实例中,与从存储器侧存储器装置相比,将目标数据从处理器侧高速缓冲存储器提供到处理电路系统可(举例来说)因避免经由存储器总线进行通信及/或由于更快的存储器实施在处理器侧高速缓冲存储器中而有助于改善(例如,缩短)数据检索等待时间且因此提高计算系统的操作效率。
然而,当目标数据当前未存储在存储器子系统的处理器侧中时,计算系统可从存储器子系统的存储器侧检索目标数据。此外,在一些实例中,在从存储器子系统的存储器侧检索之后,计算系统可将目标数据的复本(例如,实例)存储到一或多个较低存储器层级(例如高速缓冲存储器存储器层级)中,(举例来说)以在目标数据随后再次被定位目标(例如,被请求)的情况下有助于缩短小数据检索等待时间。因此,至少在一些实例中,与直接从存储器子系统的存储器侧检索目标数据相比,处理器侧错失可实际上导致数据检索等待时间更慢(例如,更高)。换句话说,利用多个分级存储器层级来实施存储器子系统而带来的对操作效率的影响可在很大程度上取决于在数据实际上被定为目标时所述存储数据的存储器层级。
如此,为有助于提高计算系统操作效率,本发明提供以下技术:用于实施及/或操作存储器子系统以预测性地控制(例如,调整)数据存储位置,(举例来说)以使得在数据实际上被定为目标(例如,被请求)时将所述数据存储在最优存储器层级处。为有助于控制数据存储,在一些实施例中,存储器子系统可包含一或多个存储器控制器(例如,控制电路系统)。举例来说,当在存储器总线的处理器侧及存储器总线的存储器侧上实施时,存储器子系统可包含:第一(例如,存储器侧)存储器控制器,其经实施以控制存储器子系统的存储器侧上的数据存储;及第二(例如,处理器侧)存储器控制器,其经实施以控制存储器子系统的处理器侧上的数据存储。
另外或另一选择为,存储器子系统可包含经实施以控制存储器子系统的处理器侧中的数据存储、存储器子系统的存储器侧中的数据存储或控制这两者的存储器控制器。换句话说,本文中所使用的“存储器控制器”旨在描述控制存储器系统(例如,子系统)中的操作(例如,数据存储)的控制器。事实上,在一些实施例中,可使用多个控制器来实施存储器控制器,例如使用控制高速缓冲存储器存储器层级中的数据存储的高速缓冲存储器控制器及控制DRAM存储器层级中的数据存储的DRAM存储器控制器。
为有助于预测性地控制数据存储,在一些实施例中,存储器控制器可预测预期随后出现的数据存取型式并据此控制(例如,调整)存储器子系统中的数据存储。举例来说,存储器控制器可通过预测处理电路系统随后将把何种数据定位目标(例如,请求)及/或处理电路系统随后将在何时把所述数据定位目标来确定所预测数据存取型式。尽管看似随机,但处理电路系统的数据存取型式通常有些周期性可寻。
如此,在一些实施例中,存储器控制器可至少部分地基于一或多个先前数据存取型式来确定预期在即将到来的(例如,后续)控制时程(例如,时间周期或一或多个时钟循环)期间出现的所预测数据存取型式。为有助于预测后续数据存取型式,存储器控制器可包含实施机器学习技术的机器学习块(例如,电路系统或模块)。举例来说,机器学习块可以是实施神经网络技术的神经网络块。
在一些实施例中,机器学习块可接收指示先前数据存取型式的输入参数并输出指示预期随后出现的所预测数据存取型式的参数。举例来说,所述输入参数可包含识别先前定为目标的数据的块识别符、数据存取信息及/或先前所预测数据存取型式相对于实际数据存取型式的预测误差。另外或另一选择为,输出参数可包含所预测的下一目标数据时间、下一目标数据的预测及/或存储(例如,存储器层级、刷新及/或替换)推荐。
为有助于改善后续数据检索等待时间,在一些实施例中,存储器控制器可在最初接收到要存储在存储器子系统中的数据时(举例来说)通过识别存储数据的存储器层级至少部分地基于预期在即将到来的控制时程期间出现的所预测数据存取型式来预测性地控制(例如,调整)数据存储。在一些实施例中,存储器控制器可至少部分地基于预期接下来数据将被定为目标(例如,被请求)的时间来选择用于存储数据的存储器层级。举例来说,在当前时间与数据块的所预测的下一目标时间之间的持续时间小于第一(例如,最低)持续时间阈值时,存储器控制器可选择与第一持续时间阈值相关联的第一(例如,最低或L1)存储器层级来存储数据块。另一方面,在当前时间与所预测的下一目标时间之间的持续时间不小于第一持续时间阈值时,存储器控制器可确定所述持续时间是否小于与第二(例如,下一最低或L2)存储器层级相关联的第二(例如,下一最低)持续时间阈值,且在所述持续时间小于第二持续时间阈值时选择所述第二存储器层级来存储数据块。类似地,存储器控制器可在最初接收到要存储数据块时穿过在实施在存储器子系统中的其它(例如,较高)存储器层级中推进。
另外或另一选择为,当存取(例如读取、检索及/或定为目标)先前存储在存储器子系统中的数据时,存储器控制器可预测性地控制(例如,调整)存储器子系统中的数据存储。确切来说,在一些实施例中,每当存取数据块时可更新数据存取信息(例如,存储在存储器控制器中)以(举例来说)更新与所述数据块相关联的存取计数及/或最近目标时间。换句话说,在这些实施例中,存储器控制器可将已更新的数据存取信息输入到其机器学习块中以确定预期在即将到来的控制时程期间出现的所预测数据存取型式且据此控制存储器子系统中的数据存储。
在一些实施例中,与最初将数据存储在存储器子系统中时类似,存储器控制器可至少部分地基于预期接下来数据将被定为目标的时间来预测性地控制先前存储在存储器子系统中的数据的存储。举例来说,在当前时间与所预测的下一目标时间之间的持续时间不小于与当前存储器层级相关联的当前持续时间阈值时,存储器子系统可试图在较高存储器层级处存储数据。另一方面,在当前时间与所预测的下一目标时间之间的持续时间小于当前持续时间阈值及与较低存储器层级相关联的较低持续时间阈值时,存储器子系统可试图在较低存储器层级处存储数据。另外,在当前时间与所预测的下一目标时间之间的持续时间小于当前持续时间阈值且当前存储器层级是最低存储器层级时,在当前时间与所预测的下一目标时间之间的持续时间不小于当前持续时间阈值且当前存储器层级是最高存储器层级时,或在当前时间与所预测的下一目标时间之间的持续时间小于当前持续时间阈值但不小于较低持续时间阈值时,存储器子系统可维持将数据存储在当前存储器层级处。
另外或另一选择为,存储器控制器可至少部分地基于接下来何种数据将被定为目标的预测来预测性地控制先前存储在存储器子系统中的数据的存储。举例来说,存储器控制器可控制存储器子系统中的数据存储,以使得预测接下来将被定为目标的数据块存储在较低(例如,最低)存储器层级中。如此,当随后被实际上定为目标时,存储器子系统可从较低存储器层级(举例来说)而不是从较高存储器层级传回数据块,至少在一些实例中,这可有助于改善由存储器子系统提供的数据检索等待时间。
在任何情形中,如上文所描述,在一些实施例中,可将预测误差(例如,先前所预测数据存取型式与实际数据存取型式之间的差异)输入到机器学习块。换句话说,在这些实施例中,机器学习块可使用预测误差来通知(例如,训练及/或校准)后续预测。如此,至少在一些实例中,机器学习块的预测准确度以及因此预测性数据存储技术的有效性可随时间而提高。
为有助于改善预测准确度,在一些实施例中,可预先训练或预先校准机器学习块。举例来说,存储器子系统可利用从制造商及/或系统集成商接收到的权重来将机器学习块所实施的神经网络初始化。另外或另一选择为,为有助于改善预测准确度,机器学习块可至少部分地基于存储在或将存储在存储器子系统中的数据上下文来预测预期在随后出现的数据存取型式。
在一些实施例中,可经由一或多个上下文识别符指示数据块的上下文。举例来说,类型识别符可指示数据块中所包含的数据的类型。举说明性例子,类型识别符可指示数据块是包含图像数据、虚拟机器数据、可执行指令、音频数据还是其任何组合。另外或另一选择为,关联性识别符可指示产生数据块及/或预期将数据块定位目标或使用所述数据块的计算系统的方面。举例来说,过程识别符可指示在计算系统中运行而使得产生数据块的过程及/或预期当在计算系统中运行时将数据块定位目标的过程。
另外,在一些实施例中,用户识别符可指示产生数据块的计算系统的用户及/或预期将数据块定为目标的计算系统的用户。此外,在一些实施例中,线程识别符可指示产生数据块的处理器线程及/或预期将数据块定位目标的处理器线程。此外,在一些实施例中,核心识别符可指示产生数据块的处理器核心及/或预期将数据块定为目标的处理器核心。另外,在一些实施例中,虚拟机器识别符可指示当在计算系统运行时使得产生数据块的虚拟机器及/或预期将数据块定为目标的虚拟机器。此外,在一些实施例中,应用识别符可指示在计算系统中运行而使得产生数据块的应用及/或预期当在计算系统中运行时将数据块定为目标的过程。
在一些实施例中,可通过经由元数据指示一或多个上下文识别符来将数据块与其上下文相关联,所述元数据与数据块分组在一起(例如,串联在一起)以形成数据对象。换句话说,数据对象可包含数据块及指示一或多个上下文识别符的元数据,所述上下文识别符指示数据块的上下文。举例来说,元数据可指示类型识别符、过程识别符、应用识别符、用户识别符、虚拟机器识别符、线程识别符、核心识别符、自定义识别符或其任何组合。此外,在一些实施例中,元数据可包含识别对应数据块的标签元数据(例如,块识别符)。举例来说,所述标签元数据可指示数据块的虚拟存储器地址、数据块的物理存储器地址或基于虚拟存储器地址及物理存储器地址确定的值。
为有助于改善预测准确度,在一些实施例中,存储器控制器可将上下文识别符输入到其机器学习块中,(举例来说)以使得机器学习块能够考量先前数据存取的上下文。举说明性例子,在计算系统中运行的应用可引发第一存储器存取请求及第二存储器存取请求。然而,在第一存储器存取请求与第二存储器存取请求之间,系统中断可引发干预性存储器存取请求。
通过输入与应用对应的应用识别符及/或与系统中断对应的线程识别符,机器学习块可确定由运行应用引发的第一存储器存取请求及第二存储器存取请求以及由系统中断引发的干预性存储器存取请求。如此,为确定预期由运行应用引发的所预测数据存取型式,机器学习块可对第一存储器存取请求及第二存储器存取请求比对第三存储器存取请求加更大的权重。
事实上,在一些实施例中,机器学习块可包含出于不同目的而实施的多个神经网络。举例来说,机器学习块可包含:神经网络,其经实施以输出下一目标数据的预测的指示及另一神经网络,其经实施以输出特定数据的所预测的下一目标时间的指示。另外或另一选择为,机器学习块可包含用于计算系统的不同方面的神经网络。
举例来说,机器学习块可包含:神经网络,其经实施以输出预期由运行在计算系统中运行的第一应用或过程引发的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由运行在计算系统中运行的第二应用或过程引发的预测数据存取型式的指示。另外,在一些实施例中,机器学习块可包含:神经网络,其经实施以输出预期由计算系统中的第一处理器核心或线程引发的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由计算系统中的第二处理器核心或线程引发的预测数据存取型式的指示。
此外,在一些实施例中,机器学习块可包含:神经网络,其经实施以输出预期由在计算系统中运行第一虚拟机器引发的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由在计算系统中运行第二虚拟机器引发的所预测数据存取型式的指示。此外,在一些实施例中,机器学习块可包含:神经网络,其经实施以输出预期由第一用户使用计算系统引发的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由第二用户使用计算系统引发的所预测数据存取型式的指示。在任何情形中,至少在一些实例中,将上下文输入到机器学习块中可有助于(举例来说)通过使得机器学习块能够滤除本可能对其预测产生影响的噪声(例如,不相关的存储器存取请求)来提高预测准确度。
为便于识别上下文,在一些实施例中,可(举例来说)在存储器存取请求中随一或多个存取参数一起指示一或多个上下文识别符。换句话说,在这些实施例中,处理子系统可输出存储器存取请求,所述存储器存取请求随存取参数一起指示与数据块相关联的一或多个上下文识别符,例如处理电路系统用于识别数据块的虚拟存储器地址、用于或将用于存储存储器子系统中的数据块的物理存储器地址、数据块的大小及/或存取(例如,写入或读取)启用指示符(例如,位)。举例来说,处理子系统可将指示一或多个上下文识别符的存储器存取请求输出到存储器子系统的处理器侧及/或存储器子系统的存储器侧。
如上文所描述,在一些实施例中,存储器子系统的第一(例如,存储器侧)部分可实施在存储器总线的存储器侧上,而存储器子系统的第二(例如,处理器侧)部分实施在存储器总线的处理器侧上。另外,如上文所描述,在一些实施例中,第一(例如,存储器侧)存储器控制器可控制存储器子系统的存储器侧中的数据存储,而第二(例如,处理器侧)存储器控制器可控制存储器子系统的处理器侧中的数据存储。因此,在一些实施例中,处理器侧存储器控制器可通过经由存储器总线及/或专门(例如,单独或不同)的数据总线转发存储器从处理器子系统接收到的存取请求来将一或多个上下文识别符传达到存储器侧存储器控制器,(举例来说)。另外或另一选择为,,存储器侧存储器控制器(举例来说)即使在未从处理器侧明确地接收到上下文识别符时仍可至少部分地基于数据对象(例如,元数据+数据块)中所包含的上下文识别符来预测性地控制数据存储。
这样一来,如下文更详细地描述,可根据本发明实施及/或操作存储器子系统以有助于预测性地控制存储器子系统中的数据存储。举例来说,以此方式实施存储器子系统可使得存储器子系统能够更好地优化平均数据检索等待时间与多个分级存储器层级所提供的存储容量之间的折衷。换句话说,至少在一些实例中,以此方式实施及/或操作存储器子系统可有助于改善由存储器子系统提供的数据检索等待时间,且因此提高实施有存储器子系统的计算系统的操作效率。
为有助于图解说明,图1中展示计算系统10(例如,设备)的例子,计算系统10包含处理子系统12(例如,系统)及存储器子系统14(例如,系统)。应了解,所描绘例子仅旨在说明并不具限制性。确切来说,计算系统10可另外或替代地包含其它计算子系统。举例来说,计算系统10可另外包含联网子系统、射频子系统、用户输入子系统及/或显示子系统。
此外,在一些实施例中,计算系统10可实施在单个电子装置中,例如桌上型计算机、工作站计算机、膝上型计算机、服务器、移动电话、虚拟现实头戴机等。在其它实施例中,计算系统10可分布在多个电子装置之间。举例来说,处理子系统12及存储器子系统14可实施在主机装置中,而其它计算子系统(例如,用户输入子系统及/或显示子系统)可实施在客户端(例如,远程)装置中。事实上,在一些实施例中,计算子系统可分布在多个电子装置之间。举例来说,处理子系统12的第一部分及/或存储器子系统14的第一部分可实施在主机装置中,而处理子系统12的第二部分及/或存储器子系统14的第二部分可实施在客户端装置中。
在任何情形中,在计算系统10操作期间,处理子系统12通常通过按照处理器线程执行指令来执行各种操作(举例来说)以确定输出数据,从而对输入数据执行对应的数据处理操作。因此,如在所描绘的例子中,处理子系统12可包含处理电路系统16。在一些实施例中,处理电路系统16可包含一或多个中央处理单元(CPU)、一或多个图形处理单元(GPU)、一或多个处理器核心或其任何组合。
另外,如在所描绘的例子中,处理子系统12可包含一或多个寄存器22。在一些实施例中,寄存器22可提供可由处理电路系统16直接存取的一或多个存储位置。然而,寄存器22的存储容量通常是有限的。如此,处理子系统12可经由一或多个通信总线20通信耦合到存储器子系统14,所述存储器子系统14提供额外数据存储容量。在一些实施例中,通信总线20可包含一或多个缆线、一或多个导线、一或多个导电迹线、一或多个通信网络或其任何组合。
换句话说,处理子系统12与存储器子系统14可经由一或多个通信总线20通信。举例来说,处理子系统12可随要存储在存储器子系统14中的数据一起传达(例如,输出)写入存储器存取请求及/或传达将先前存储在存储器子系统14中的数据定为目标的读取存储器存取请求。另外或另一选择为,存储器子系统14可(举例来说)响应于读取存储器存取请求而传达(例如,输出)其中先前所存储的目标数据,以使得实施在处理子系统12中的处理电路系统16能够处理及/或执行。
为提供数据存储,如在所描绘的例子中,存储器子系统14可包含一或多个存储器装置18(例如,芯片或集成电路)。如下文将更详细地描述,在一些实施例中,存储器装置18可包含组织成一或多个存储器阵列28的存储器单元(例如,电路系统),且因此可包含一或多个有形非暂时性计算机可读媒体。举例来说,存储器子系统14可包含经由存储器(例如,外部)总线20通信耦合到处理子系统12的一或多个存储器装置18。
然而,如上文所描述,经由外部通信总线20进行的数据传达通常比外部通信总线20的处理器侧内的数据传达及/或外部通信总线20的存储器侧内的数据传达慢。至少在一些实例中,数据传达速度的差异及因此带来的数据检索等待时间的差异可至少部分地由于与其它计算子系统共享外部通信总线20、外部通信总线20的处理器侧上的组件与外部通信总线20的存储器侧上的组件之间的时序差及/或外部通信总线20的处理器侧与外部通信总线20的存储器侧之间的通信距离。
为有助于改善数据检索等待时间,存储器子系统14可包含一或多个高速缓冲存储器24,一或多个高速缓冲存储器24提供比存储器装置18更快的数据传达速度。如下文将更详细地描述,在一些实施例中,高速缓冲存储器24可提供组织成一或多个高速缓冲存储器线30的存储位置,(举例来说)以存储也存储在实施在一或多个存储器装置18中的存储器阵列28中的数据的实例(例如,复制)。因此,在一些实施例中,高速缓冲存储器24可通信耦合在存储器装置18与处理子系统12的处理电路系统16之间及/或用于实施比存储器装置18低的存储器层。
举例来说,存储器子系统14可包含实施在外部通信总线20的处理器侧上的一或多个处理器侧高速缓冲存储器24。在一些实施例中,处理器侧高速缓冲存储器24中的一或多者可与处理电路系统16集成在一起。举例来说,处理器侧高速缓冲存储器24可包含层级1(L1)高速缓冲存储器、层级2(L2)高速缓冲存储器及/或层级3(L3)高速缓冲存储器。另外或另一选择为,存储器子系统14可包含实施在外部通信总线20的存储器侧上的一或多个存储器侧高速缓冲存储器24。换句话说,在一些实施例中,存储器子系统14可包含实施在外部通信总线20的存储器侧上的第一(例如,存储器侧)部分及实施在外部通信总线20的处理器侧上的第二(例如,处理器侧)部分。
为有助于控制数据存储,如在所描绘的例子中,存储器子系统14可包含一或多个存储器控制器26,举例来说,一或多个存储器控制器26经由一或多个指令总线20A通信耦合到高速缓冲存储器24及/或存储器装置18。如上文所描述,在一些实施例中,可使用多个控制器(例如,控制高速缓冲存储器存储器层级中的数据存储的高速缓冲存储器控制器及控制DRAM存储器层级中的数据存储的DRAM控制器)来实施存储器控制器26。另外,如上文所描述,在一些实施例中,存储器控制器26可预测性地控制数据存储以有助于改善存储器子系统14所提供的数据检索等待时间且因此提高计算系统10的操作效率。为有助于预测性地控制数据存储,如在所描绘的例子中,存储器子系统14可包含一或多个机器学习块(例如,电路系统或模块)32。
如下文将更详细地描述,在一些实施例中,机器学习块32可实施机器学习(例如,神经网络)技术以有助于预测预期在即将到来(例如,后续)的控制时程(例如,时间周期或一或多个时钟循环)期间出现的数据存取型式。举例来说,使用机器学习块32、存储器控制器26可至少部分地基于指示先前数据存取型式的数据存取信息34确定预期随后出现的所预测数据存取型式。另外,至少部分地基于所预测数据存取型式,存储器控制器26可预测性地控制(例如,调整)数据在存储器子系统14中的存储位置,举例来说,以使得预期在即将到来的控制时程期间被定为目标(例如,存取)的数据存储在较低(例如,较快且较小)存储器层级处,及/或以使得预期在即将到来的控制时程期间未被定为目标的数据存储在较高(例如,较低且较大)存储器层级处。
在任何情形中,如上文所描述,在一些实施例中,存储器子系统14可包含由存储器(例如,外部)总线20分隔开的处理器侧部分与存储器侧部分。在一些实施例中,然而,存储器子系统14可包含中心存储器控制器26,所述中心存储器控制器26经实施以控制存储器子系统14的处理器侧及存储器子系统14的存储器侧两者中的数据存储。在其它实施例中,存储器子系统14可包含:处理器侧存储器控制器26,其经实施以控制存储器子系统14的处理器侧中的数据存储;及存储器侧存储器控制器26,其经实施以控制存储器子系统14的存储器侧中的数据存储。
为有助于图解说明,图2中展示存储器侧存储器子系统14A的例子,存储器侧存储器子系统14A包含存储器侧存储器控制器26A。如在所描绘的例子中,存储器侧存储器子系统14A可通信耦合到存储器总线20B。另外,存储器侧存储器子系统14A可包含一或多个存储器侧高速缓冲存储器24A、一或多个易失性存储器装置18A及/或一或多个非易失性存储器装置18B。然而,应了解,所描绘的例子仅旨在说明并不具限制性。举例来说,在其它实施例中,可不使用存储器侧高速缓冲存储器24A(例如,任选的)。
在任何情形中,非易失性存储器装置18B可通常提供数据存储使用非易失性存储器。举例来说,非易失性存储器装置18B可包含快闪存储器(例如,NAND)存储器装置、相变存储器(例如,3D XPointTM)装置、铁电随机存取存储器(FeRAM)装置、固态驱动器(SSD)、硬盘驱动器(HDD)或其任何组合。另一方面,易失性存储器装置18A可通常使用易失性存储器来提供数据存储。举例来说,易失性存储器装置18A可包含动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置或这两者。
此外,在一些实施例中,多个存储器装置18可实施在存储器模块上,例如双列直插式存储器模块(DIMM)或单列直插式存储器模块(SIMM)。举例来说,存储器模块可包含印刷电路板(PCB)以及安置在印刷电路板的平直或平坦(例如,前或后)表面上的多个存储器装置18。另外,存储器装置18可经由形成在印刷电路板上的导电迹线耦合到外部引脚,所述外部引脚沿着印刷电路板的(例如,底部)边缘形成。
应了解,可使用其它包装技术实施存储器装置18中的一或多者。举例来说,存储器装置18可耦合到(例如,硅)中阶层以实施2.5D配置。另外或另一选择为,可堆叠存储器装置18以实施3D配置。此外,在一些实施例中,可使用有机封装技术实施存储器装置18。换句话说,可将本发明中所描述的技术实施为基于封装的解决方案。
在任何情形中,如上文所描述,不同的存储器类型通常提供影响存储器子系统14的且因此影响实施有所述存储器子系统14的计算系统10的操作效率及/或实施相关成本的各种折衷,例如组件计数、制造步骤及/或物理占用面积。举例来说,非易失性存储器通常提供比易失性存储器高(例如,大)的数据存储密度。另外,与易失性存储器单元形成对比,非易失性存储器单元即使在处于断电状态时仍可维持数据存储。另一方面,易失性存储器通常提供比非易失性存储器更快的数据传达(例如,读取及/或写入)速度。事实上,静态随机存取存储器(SRAM)通常提供比动态随机存取存储器(DRAM)更快的数据传达速度。
因此,为有助于改善数据检索等待时间,在一些实施例中,易失性存储器装置18A可用于实施较低(例如,较小且较快)的存储器层级,举例来说与实施最高(例如,最大且最慢)存储器层级的非易失性存储器装置18B形成对比。在任何情形中,如上文所描述,存储器装置18通常提供(举例来说)经由一或多个存储器单元实施的数据存储位置。另外,如上文所描述,实施在一或多个存储器装置18中的存储器单元可组织成存储器阵列28。
为有助于图解说明,图3中展示存储器阵列28A的例子,存储器阵列28A可实施在一或多个存储器装置18中。如在所描绘的例子中,存储器阵列28A可耦合行选择(例如,解码器)电路系统36及列选择(例如,解码器)电路系统38。另外,如在所描绘的例子中,存储器阵列28A可包含:存储器单元40,其经由形成在第一(例如,水平)方向上的字线42耦合到行选择电路系统36;经由形成在第二(例如,垂直)方向上的位线46耦合到放大器电路系统44。
在一些实施例中,每一存储器单元40可包含例如金属氧化物场效晶体管(MOSFET)等切换组件及例如电容器等存储组件。举例来说,存储器单元40可经实施以使得其MOSFET耦合在位线46与其存储电容器之间,且其MOSFET的栅极耦合到字线42。如此,在一些实施例中,每一存储器单元40可用于存储数据的一个位。
举例来说,当存储在存储器单元40中的电荷使得电压大于阈值电压时,存储器单元40可指示1位。另一方面,当存储在存储器单元40中的电荷使得电压小于阈值电压时,存储器单元40可指示0位。在其它实施例中,存储器单元40可经实施以存储数据的多个位。举例来说,四层级单元(QLC)NAND存储器中的存储器单元40可经实施以存储数据的两个位。
在任何情形中,如在所描绘的例子中,存储器单元40可组织成:一或多个存储器单元行48,其可各自由对应的行地址(例如,物理存储器地址)识别;及一或多个存储器单元列50,其可各自由对应的列地址(例如,物理存储器地址)识别。在一些实施例中,存储器单元行48可包含耦合到(例如,一个)字线42中的存储器单元40中的每一者。举例来说,第一存储器单元行48A可包含耦合到第一字线42A的存储器单元40中的每一者,且第L存储器单元行48L可包含耦合到第L字线42L的存储器单元40中的每一者。
如在所描绘的例子中,以此方式组织存储器阵列28A可使得存储器单元40能够分组成存储位置,所述存储位置各自适合于存储数据对象52。举例来说,第一数据对象52A可存储在第一存储位置处,所述第一存储位置包含位于第一存储器单元行48A及第一存储器单元列50A中的存储器单元40;第二数据对象52B可存储在第二存储位置处,所述第二存储位置包含位于第L存储器单元行48L及第二存储器单元列50B中的存储器单元40,且第K数据对象52K可存储在第K存储位置处,所述第K存储位置包含位于第一存储器单元行48A及第K存储器单元列50K中的存储器单元40。如上文所描述,在一些实施例中,数据对象52可包含数据块及元数据,举例来说,所述元数据指示数据块的上下文。
为有助于图解说明,图4中展示数据对象52的例子。如在所描绘的例子中,数据对象52可包含串联在数据块56之前(例如,附加在数据块56之前)的元数据54。然而,应了解,所描绘例子仅旨在说明并不具限制性。举例来说,在其它实施例中,元数据54可串联在数据块56之后(例如,附加在数据块56之后)或者与数据块56相关联(例如,多路复用及/或交错)。
在任何情形中,数据块56通常包含相关数据,举例来说,所述相关数据预期会与数据块56一起得到处理(例如,分析及/或解译)。为便于识别数据块56,如在所描绘的例子中,元数据54可包含标签元数据57。在一些实施例中,标签元数据57可指示数据块56及/或数据对象52在地址空间中的存储位置,且因此可用于识别数据块56及/或数据对象52。换句话说,在一些实施例中,标签元数据57可指示数据块56的虚拟存储器地址、数据块56的物理存储器地址或基于数据块56的虚拟存储器地址及物理存储器地址而确定的值。
另外,如在所描绘的例子中,元数据54可包含有效性元数据59,其指示数据块56的有效性。在一些实施例中,有效性元数据59可包含有效性位,所述有效性位指示数据块56在被设定(例如,“1”位)时是有效,且未被设定时是无效的(例如,“0”位)。另外或另一选择为,有效性元数据59可有助于检测数据块56是否有效,及/或在无效时校正数据块56。举例来说,有效性元数据59可包含一或多个错误检查码,例如反转位、有害位、奇偶校验位、误差检测码(EDC)、误差校正码(ECC)、博斯乔赫里霍克文黑姆(Bose-Chaudhuri-Hocquenghem,BCH)码、消息鉴别码(MAC)、循环冗余检查(CRC)码或其任何组合。
此外,如在所描绘的例子中,元数据54可包含上下文元数据58,上下文元数据58指示与数据块56相关联的一或多个上下文识别符。举例来说,上下文元数据58可包含类型识别符,所述类型识别符指示数据块56中所包含的数据的类型。举例来说,类型识别符可指示数据块56是包含图像数据、虚拟机器数据、可执行指令、音频数据还是其任何组合。另外,在一些实施例中,上下文元数据58可包含一或多个关联性识别符,所述一或多个关联性识别符指示计算系统10的与数据块56的产生及/或处理相关联的方面。
举例来说,上下文元数据58可包含过程识别符,所述过程识别符指示在计算系统10上运行而使得产生数据块56的过程及/或当在计算系统10中运行时预期将数据块56定为目标的过程。另外,在一些实施例中,上下文元数据58可包含用户识别符,所述用户识别符指示产生了数据块56的计算系统10的用户及/或预期将数据块56定为目标的计算系统10的用户。此外,在一些实施例中,上下文元数据58可包含线程识别符,所述线程识别符指示产生了数据块56的处理器线程及/或预期将数据块56定为目标的处理器线程。
此外,在一些实施例中,上下文元数据58可包含核心识别符,所述核心识别符指示产生了数据块56的处理器核心及/或预期将数据块56定为目标的处理器核心。另外,在一些实施例中,上下文元数据58可包含虚拟机器识别符,所述虚拟机器识别符指示当在计算系统10中运行时使得产生数据块56的虚拟机器及/或预期将数据块56定为目标的虚拟机器。此外,在一些实施例中,上下文元数据58可包含应用识别符,所述应用识别符指示在计算系统10上运行而使得产生数据块56的应用及/或预期当在计算系统10中运行时将数据块56定为目标的过程。
类似地,上下文元数据58可另外或替代地经实施以指示其它上下文识别符,例如自定义识别符。此外,在一些实施例中,数据块56可与计算系统10的多个不同的方面相关联。举例来说,数据块56可由特定处理器核心产生以为特定用户提供特定虚拟机器。因此,在一些实施例中,上下文元数据58可指示与数据块56相关联的多个上下文识别符。举例来说,第一上下文识别符可指示特定处理器核心,第二上下文识别符可指示特定用户,且第三上下文识别符可指示特定虚拟机器。这样一来,数据块56可与指示数据块56的上下文的元数据54相关联而作为数据对象52。
返回到图3的存储器阵列28A,如上文所描述,数据对象52可存储在存储器阵列28A中的存储位置处及/或从所述存储位置处检索。如上文所描述,行选择电路系统36可经由对应的字线42连接到存储器阵列28A的行。因此,为能够对存储器单元74进行读取及/或写入,行选择电路系统36可(举例来说)通过经由对应的字线42输出激活(例如,逻辑高)信号来激活存储器单元74,所述对应的字线42使得存储器单元40的切换组件将存储器单元40的存储组件电耦合到对应的位线46。
此外,如上文所描述,列选择电路系统38可耦合到存储器阵列28A的列。换句话说,列选择电路系统38可经由第一位线46A及第一放大器电路系统44A耦合到第一存储器单元列50A,经由第二位线46B及第二放大器电路系统44B耦合到第二存储器单元列50B,且经由第K位线46K及第K放大器电路系统44K耦合到第K存储器单元列50K。在一些实施例中,放大器电路系统44可包含有助于将数据存储(例如,写入)到存储器单元40中的驱动器及/或有助于从存储器单元40输出(例如,读取)数据的读出放大器。
另外,在一些实施例中,列选择电路系统38可(举例来说)通过将列选择输出到放大器电路系统44选择性地启用对存储器单元列50的读取及/或写入。换句话说,为从第一存储器单元列50A读取数据(例如,第一数据对象52A)及/或将数据写入到第一存储器单元列50A,列选择电路系统38可将列选择(例如,逻辑高)信号输出到第一放大器电路系统44A。类似地,为从第二存储器单元列50B读取数据(例如,第二数据对象52B)及/或将数据写入到第二存储器单元列50B,列选择电路系统38可将列选择信号输出到第二放大器电路系统44B。此外,为从第K存储器单元列50K读取数据(例如,第O数据对象52O)及/或将数据写入到第K存储器单元列50K,列选择电路系统38可将列选择信号输出到第K放大器电路系统44K。这样一来,一或多个存储器装置18中的存储器单元40可经组织以在存储器子系统14中实施存储器阵列28。
返回到图2的存储器侧存储器子系统14A,如上文所描述,除存储器装置18之外,在一些实施例中,存储器侧存储器子系统14A可包含一或多个存储器侧高速缓冲存储器24A。另外,如上文所描述,高速缓冲存储器24可实施在存储器子系统14中以提供比实施在存储器子系统14中的存储器阵列28低的存储器层级。换句话说,在一些实施例中,存储器侧高速缓冲存储器24A可经实施以通常提供比存储器阵列28更快的数据传达速度。
因此,在一些实施例中,也可使用易失性存储器来实施存储器侧高速缓冲存储器24A。举例来说,可利用静态随机存取存储器(SRAM)来实施存储器侧高速缓冲存储器24A,利用动态随机存取存储器(DRAM)来实施易失性存储器装置18A。另外或另一选择为,可使用相同的存储器类型(例如,DRAM)来实施存储器侧高速缓冲存储器24及易失性存储器装置18A。事实上,在一些实施例中,可通过易失性存储器装置18A来实施一或多个存储器侧高速缓冲存储器24A。在任何情形中,如上文所描述,高速缓冲存储器24可经实施以提供组织成一或多个高速缓冲存储器线30的存储位置,(举例来说)以存储也存储在存储器阵列28中的数据的实例(例如,复本)。
为有助于图解说明,图5中展示高速缓冲存储器(例如,存储器侧高速缓冲存储器24A及/或处理器侧高速缓冲存储器)的例子。如在所描绘的例子中,高速缓冲存储器24可提供组织成多个高速缓冲存储器线30(即,第一高速缓冲存储器线30A、第F高速缓冲存储器线30F等等)的存储位置。另外,如在所描绘的例子中,可分配高速缓冲存储器线30中所包含的存储位置以能够存储一或多个数据对象52(例如,50A到50N)。举例来说,第一高速缓冲存储器线30A可被实施成具有能够存储N个有效数据对象52的线宽度。然而,应了解,所描绘例子仅旨在说明并不具限制性。举例来说,在其它实施例中,高速缓冲存储器线30可被分配成具有能够存储单个有效数据对象52或两个以上有效数据对象52的线宽度。
在任何情形中,如上文所描述,数据对象52可包含数据块56及元数据54(如图4中所图解说明)。举例来说,如上文所描述,元数据54可包含有效性元数据59,有效性元数据59指示数据块56是否有效且因此指示数据对象52是否有效。另外,如上文所描述,在一些实施例中,元数据54可包含数据块56的指示上下文的上下文元数据58。举例来说,上下文元数据58可包含类型识别符及/或一或多个关联性识别符,此过程识别符、应用识别符、用户识别符、虚拟机器识别符、线程识别符、核心识别符、自定义识别符或其任何组合。
此外,如上文所描述,在一些实施例中,元数据54可包含标签元数据57,标签元数据57指示数据块56及/或数据对象52在地址空间中的存储位置。举例来说,可至少部分地基于处理电路系统16用于识别数据块56的虚拟存储器地址及/或数据块56已存储或将存储在存储器阵列28中的物理存储器地址来确定与数据块56相关联的标签元数据57。如此,在一些实施例中,标签元数据57可用于识别数据块56及/或数据对象52。
事实上,在一些实施例中,存储器子系统14可至少部分地基于预期与数据相关联的标签元数据57的目标值来搜索由读取存储器存取请求定为目标的数据。举例来说,存储器子系统14可至少部分地基于读取存储器存取请求中所指示的虚拟存储器地址及/或物理存储器地址来确定预期与目标数据块56相关联的标签元数据57的目标值。至少部分地基于所述目标值,所述存储器子系统14可通过搜索与当前存储在高速缓冲存储器24中的有效数据块56相关联的标签元数据57来确定目标数据块56引起高速缓冲存储器未命中。
举例来说,当目标标签元数据57和与高速缓冲存储器24中所存储的有效数据块56相关联的标签元数据57匹配时,存储器子系统14可确定目标数据块56当前存储在高速缓冲存储器24中,且因此目标数据块56在高速缓冲存储器中被命中。另一方面,当目标标签元数据57不和与高速缓冲存储器24中所存储的任何有效数据块56相关联的标签元数据57匹配时,存储器子系统14可确定目标数据块56当前不存储在高速缓冲存储器24中,且因此目标数据块56引起高速缓冲存储器未命中。因此,通常,举例来说,由于增大存储容量使得更多的有效数据对象52能够存储在高速缓冲存储器24中,因此高速缓冲存储器24所提供的数据检索等待时间可随其存储容量而变化。
事实上,为有助于改善数据检索等待时间,在一些实施例中,可使用不同的高速缓冲存储器24来实施具有不同存储容量的不同的分级存储器层级。举例来说,不同的存储器层级可被实施有不同数目的高速缓冲存储器线30。举说明性例子,与用于提供较高存储器层级的高速缓冲存储器24相比,用于提供较低存储器层级的高速缓冲存储器24可实施少的高速缓冲存储器线30。另外或另一选择为,与实施在较高存储器层级中的高速缓冲存储器线30相比,实施在较低存储器层级中的高速缓冲存储器线30的线宽度可经分配以能够存储较少的有效数据对象52。在任何情形中,这样一来,可将高速缓冲存储器24(例如,存储器侧高速缓冲存储器24A及/或处理器侧高速缓冲存储器)实施在存储器子系统14中以提供组织成一或多个高速缓冲存储器线30的存储位置。
返回到图2的存储器侧存储器子系统14A,如上文所描述,存储器侧存储器控制器26A可(举例来说)通过控制数据对象52是存储在存储器侧高速缓冲存储器24A中、存储在易失性存储器装置18A中、存储在非易失性存储器装置18B还是存储在其任何组合中来控制存储器侧存储器子系统14A中的数据存储。换句话说,存储器侧存储器控制器26A可控制数据对象52是存储在实施在存储器侧高速缓冲存储器24A中的(例如,较低中间)存储器层级中、实施在易失性存储器装置18A中的(例如,较高中间)存储器层级、实施在非易失性存储器装置18B中的(例如,最高)存储器层级还是存储在其任何组合中。如上文所描述,在一些实施例中,存储器控制器26可至少部分地基于数据存取信息34来控制数据存储。
为有助于图解说明,图6中展示数据存取信息34A的例子,数据存取信息34A可由存储器控制器26更新及/或使用。如在所描绘的例子中,数据存取信息34A可包含表,所述表具有多个行60、识别符列62、最后存取时间列64及存取计数列66。应了解,所描绘的例子仅旨在说明并不具限制性。举例来说,在其它实施例中,数据存取信息34可另外或替代地包含其它类型的信息及/或参数。
关于所描绘的例子,块识别符列62可(举例来说)经由与数据块56相关联的标签元数据57、虚拟存储器地址及/或物理存储器地址来识别存储在存储器子系统14中的数据块56。另外,数据存取信息34A中的每一行60可使块识别符列62中所识别的数据块56与最后存取时间列64中所指示的最后存取时间参数及存取计数列66中所指示的存取计数参数相关联。举例来说,第一行60A可使块识别符列62中所识别的第一数据块56与最后存取时间列64中所识别的最后存取时间参数(其指示第一数据块56最近被存取(例如,定为目标)的时间)及存取计数列66中所识别的存取计数参数(其指示第一数据块56先前已被存取的次数)相关联。类似地,第二行60B可使块识别符列62中所识别的第二数据块56与最后存取时间列64中所识别的最后存取时间参数(其指示第二数据块56最近被存取的时间)及存取计数列66中所识别的存取计数参数(其指示第二数据块56先前已被存取的次数)相关联。这样一来,存储器子系统14中所存储的一或多个数据块56可与数据存取信息34相关联。
返回到图2的存储器侧存储器子系统14A,如上文所描述,存储器侧存储器控制器26A可至少部分地基于数据存取信息34来控制存储器侧存储器子系统14A中的数据存储。另外,如上文所描述,为有助于改善数据检索等待时间,在一些实施例中,存储器控制器26可(举例来说)通过确定预期在即将到来(例如,后续)的控制时程(例如,时间周期或一或多个时钟循环)期间出现的所预测数据存取型式且据此控制(例如,调整)存储器子系统14中存储数据的存储器层级来预测性地控制存储器子系统14中的数据存储。此外,如上文所描述,在一些实施例中,存储器控制器26可利用机器学习技术来有助于预测即将到来的数据存取型式。举例来说,存储器侧存储器控制器26A可使用实施机器学习技术(例如神经网络技术)的存储器侧机器学习块32A(例如,电路系统或模块)来预测后续(例如,即将到来的)数据存取型式。
为有助于图解说明,图7中展示神经网络块68的例子,神经网络块68可实施在存储器控制器26(例如,存储器侧存储器控制器26A或处理器侧存储器控制器)中。如在所描绘的例子中,神经网络块68可包含经由一或多个层互连件72连接的一或多个隐藏(例如,卷积)层70。另外,如在所描绘的例子中,隐藏层70可包含一或多个节点74,一或多个节点74各自应用一个权重。举例来说,第一隐藏层70A中的节点74可将权重应用到一或多个输入参数76并经由一或多个层互连件72将加权结果输出到下游隐藏层70。另外,第H隐藏层70H中的节点74可将权重应用到输入(例如,从上游隐藏层70接收到的结果)以确定一或多个输出参数78。
如上文所描述,在一些实施例中,机器学习块32的输出参数78可指示预期在即将到来的控制时程期间出现的数据存取型式。举例来说,输出参数78可包含所预测的下一目标时间参数80,其指示预期一或多个数据块56接下来将被定为目标(例如,存取)的时间。另外或另一选择为,输出参数78可包含所预测的下一目标数据参数82,其指示预期接下来被定为目标的一或多个数据块56。
此外,在一些实施例中,输出参数78可包含存储推荐参数84,存储推荐参数84指示一或多个存储器层级推荐及/或一或多个刷新(例如,替换)推荐。举例来说,存储推荐参数84可推荐存储数据块56的存储器层级。由于较低存储器层级的存储容量通常是有限的,因此在一些实施例中,存储推荐参数84可推荐从较低存储器层级刷新(例如,替换)一或多个其它数据块56以为随后存储在所述较低存储器层级中的另一数据块56留出空间。
另一方面,如上文所描述,在一些实施例中,机器学习块32的输入参数76可指示一或多个先前数据存取型式。举例来说,输入参数76可包含块识别符参数86,其(举例来说)经由相关联标签元数据57、虚拟存储器地址及/或物理存储器地址识别一或多个先前定为目标数据块56。另外,输入参数76可包含数据存取信息参数88,其指示与一或多个数据块56相关联的数据存取信息34。
此外,在一些实施例中,输入参数76可包含上下文识别符参数90,其指示与一或多个数据块56相关联的上下文(例如,类型及/或关联性)识别符。换句话说,在这些实施例中,一或多个数据块56中所包含的数据类型可被输入且因此由机器学习块32(例如,神经网络块68)考量。另外或另一选择为,在这些实施例中,计算系统的一或多个方面与(例如,产生及/或预期定位目标)数据块56相关联且因此由机器学习块32加以考量。
如上文所描述,在一些实施例中,可在预测后续数据存取型式通过使得机器学习块32能够考量数据的上下文及/或对应的存取请求来提高机器学习技术的预测准确度。举例来说,当预测预期由在计算系统10中运行特定应用引起的数据存取型式时,与在计算系统10中运行的不同应用所产生的另一数据块56相比,机器学习块32可对先前定位目标的由所述特定应用产生的数据块56加更重的权重。另外或另一选择为,当预测预期由所述特定应用引起的数据存取型式时,与由在计算系统10中运行不同应用引起的另一先前存储器存取请求相比,机器学习块32可对由在计算系统10中运行所述特定应用引起的先前存储器存取请求加更重的权重。
事实上,为有助于至少部分地基于上下文加不同的权重,在一些实施例中,神经网络块68可包含络为不同目的而实施的多个神经网。举例来说,神经网络块68可包含经实施以输出接下来将被定为目标的数据块56的预测的神经网络及经实施以输出特定数据块56的所预测的下一目标时间的另一神经网络。另外或另一选择为,神经网络块68可包含用于计算系统10的不同方面的神经网络。
举例来说,神经网络块68可包含:第一神经网络,其经实施以输出预期从在计算系统10中运行第一应用而引起的所预测数据存取型式的指示;及第二神经网络,其经实施以输出预期从在计算系统10中运行第二应用而引起的预测数据存取型式的指示。另外,在一些实施例中,神经网络块68可包含:神经网络,其经实施以输出预期由计算系统10中的第一处理器引起的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由计算系统10中的第二处理器核心引起的预测数据存取型式的指示。此外,在一些实施例中,神经网络块68可包含:神经网络,其经实施以输出预期由在计算系统10中运行第一虚拟机器引起的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由在计算系统10中运行第二虚拟机器引起的所预测数据存取型式的指示。
此外,在一些实施例中,神经网络块68可包含:神经网络,其经实施以输出预期由在计算系统10中运行第一过程引起的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由在计算系统10中运行第二应用引起的预测数据存取型式的指示。另外,在一些实施例中,神经网络块68可包含:神经网络,其经实施以输出预期由计算系统10中的第一处理器线程引起的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由计算系统10中的第二处理器线程引起的预测数据存取型式的指示。此外,在一些实施例中,神经网络块68可包含神经网络去,其经实施以输出预期由第一用户使用计算系统10引起的所预测数据存取型式的指示;及另一神经网络,其经实施以输出预期由第二用户使用计算系统10引起的所预测数据存取型式的指示。
如此,为有助于提高准确度,在一些实施例中,神经网络块68可至少部分地基于对应的上下文而将输入参数76选择性地路由到神经网络块68的不同部分(例如,神经网络)。举例来说,当第一上下文识别符指示第一数据块56是由于第一应用在计算系统10中运行而产生时,神经网络块68可将与第一数据块56相关联的数据存取信息88路由到与第一应用对应的第一神经网络。另一方面,当第二上下文识别符指示第二数据块56是由于第二应用在计算系统10中运行而产生时,神经网络块68可将与第二数据块56相关联的数据存取信息88路由到与第二应用对应的第二神经网络。
为有助于解释上下文,在一些实施例中,存储器控制器26可包含多个神经网络块68,举例来说而不是单个神经网络块68,其中多个神经网络用于计算系统10的不同方面。举说明性例子,存储器控制器26可包含:第一神经网络块68,其经实施以输出预期由在计算系统10中运行第一应用引起的所预测数据存取型式的指示;及第二神经网络块68,其经实施以输出预期由在计算系统10中运行第二应用引起的所预测数据存取型式的指示。因此,在这些实施例中,存储器控制器26可至少部分地基于对应的上下文而将输入参数76选择性地路由到不同的神经网络块68。
在任何情形中,在一些实施例中,供应到机器学习块32的输入参数76可包含预测误差参数92,预测误差参数92指示一或多个先前所预测数据存取型式与对应的实际数据存取型式之间的误差。举例来说,预测误差参数92可指示数据块56的由所预测的下一目标时间参数80识别的所预测的下一目标时间相对于数据块56的实际目标时间的误差。另外或另一选择为,预测误差参数92可指示由所预测的下一目标数据参数82识别的所预测的下一目标数据块56与接下来实际上被定为目标的数据块56之间是否存在误差。
如上文所描述,在一些实施例中,将预测误差参数92反馈到机器学习块32可有助于提高后续预测准确度。举例来说,至少部分地基于预测误差参数92,神经网络块68可调整机器学习参数,例如隐藏层70的数目、每一隐藏层70的节点74的数目、一或多个节点74所应用权重及/或层互连件72的配置(例如,数目及/或互连节点74)。这样一来,存储器控制器26(例如,处理器侧存储器控制器及/或存储器侧存储器控制器26)可使用机器学习块32(例如神经网络块68)来确定预期在即将到来的控制时程期间出现的所预测数据存取型式。
返回到图2的存储器侧存储器子系统14A,如上文所描述,存储器侧存储器控制器26A可在控制时程期间至少部分地基于所预测数据存取型式控制存储器侧存储器子系统14A中的数据存储。举例来说,至少部分地基于所预测数据存取型式,存储器侧存储器控制器26A可确定是将数据块56存储在由一或多个存储器侧高速缓冲存储器24A实施的第一存储器侧存储器层级中、由一或多个易失性存储器阵列28实施的第二存储器侧存储器层级中还是由一或多个非易失性存储器阵列28实施的第三存储器侧存储器层级中。在任何情形中,如上文所描述,在一些实施例中,另外或另一选择为,存储器子系统14的一部分可实施在存储器总线20B的处理器侧上。
为有助于图解说明,图8中展示处理器侧存储器子系统14B的例子,处理器侧存储器子系统14B包含处理器侧存储器控制器26B。如在所描绘的例子中,处理器侧存储器子系统14B可通信耦合到存储器总线20B。另外,如在所描绘的例子中,处理器侧存储器子系统14B可经由内部总线20C通信耦合到处理子系统12A。
如上文所描述,在一些实施例中,可使用一或多个处理器核心94来实施处理子系统12的处理电路系统16。举例来说,处理电路系统16A可包含第一处理器核心94A及第P处理器核心94P。另外,如上文所描述,在一些实施例中,处理子系统12可包含一或多个寄存器22,所述一或多个寄存器22提供可由其处理电路系统16直接存取的存储位置。举例来说,第一寄存器22A可提供可由第一处理器核心94A直接存取的存储位置,且第P寄存器22P可提供可由第P处理器核心94P直接存取的存储位置。
为有助于增大存储器总线20B的处理器侧上提供的存储,如在所描绘的例子中,处理器侧存储器子系统14B可包含一或多个处理器侧高速缓冲存储器24B。在一些实施例中,可使用例如静态随机存取存储器(SRAM)及/或动态随机存取存储器(DRAM)等易失性存储器来实施处理器侧高速缓冲存储器24B。另外,在一些实施例中,处理器侧高速缓冲存储器24B可经组织以实施一或多个分级存储器层级96。举例来说,第一一或多个处理器侧高速缓冲存储器24可用于实施第一(例如,较低)存储器层级96A,且第L一或多个处理器侧高速缓冲存储器可用于实施第L(例如,较高)存储器层级96L。
此外,在一些实施例中,处理器侧高速缓冲存储器24B可包含一或多个专用处理器侧高速缓冲存储器24B,其可专门用于对应的处理器核心94。举例来说,第一存储器层级96A可包含专门用于第一处理器核心94A的第一一或多个专用处理器侧高速缓冲存储器24B(例如,L1及/或L2高速缓冲存储器)以及专门用于第P处理器核心94P的第P一或多个专用处理器侧高速缓冲存储器24B。此外,在一些实施例中,处理器侧高速缓冲存储器24B可包含一或多个共享处理器侧高速缓冲存储器24B,其可由多个处理器核心94共享。举例来说,第L存储器层级96L可包含由第一处理器核心94A与第P处理器核心94P共享的一或多个处理器侧高速缓冲存储器24B(例如,L3高速缓冲存储器)。
在任何情形中,如上文所描述,处理器侧存储器控制器26B可(举例来说)至少部分地基于数据存取信息34来控制处理器侧存储器子系统14B中的数据存储。换句话说,处理器侧存储器控制器26B可控制数据是存储在第一存储器层级96A中、存储在第L存储器层级96L中、存储在第一存储器层级96A与第L存储器层级96L之间的中间存储器层级96中还是存储在其任何组合中。为有助于改善数据检索等待时间,在一些实施例中,处理器侧存储器控制器26B可(举例来说)通过确定预期在即将到来的(例如,后续)控制时程(例如,时间周期或一或多个时钟循环)期间出现的所预测数据存取型式并据此控制(例如,调整)存储器子系统14中存储数据的存储器层级来预测性地控制处理器侧存储器子系统14B中的数据存储。另外,在一些实施例中,所述处理器侧存储器控制器26B可利用机器学习技术来有助于预测所述即将到来的数据存取型式。举例来说,处理器侧存储器控制器26B可使用实施机器学习技术(例如,神经网络技术)的处理器侧机器学习块32B(例如,电路系统或模块)来预测即将到来的数据存取型式。
为有助于提高预测准确度且因此提高预测性数据存储技术的有效性,如上文所描述,在一些实施例中,可考量存储在存储器子系统14中的数据的上下文、存储在存储器子系统14中的数据、一或多个先前数据存取型式、一或多个先前存储器存取请求或其任何组合来预测即将到来的数据存取型式。另外,如上文所描述,在一些实施例中,可经由存储器存取请求中所包含的一或多个上下文识别符指示数据的上下文及因此指示对应的存储器存取请求。另外或另一选择为,如上文所描述,一或多个上下文识别符可与数据块56相关联(例如,分组在一起)而作为数据对象52。
为有助于图解说明,图9中描述用于产生数据对象52的过程100的例子。通常,过程100包含确定数据块的上下文(过程方框102),确定指示上所述下文的元数据(过程方框104)及将所述元数据与所述数据块相关起来以作为数据对象(过程方框106)。尽管以表示特定实施例的特定次序描述,但应注意可按照任何适合的次序执行过程100。另外,过程100的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器及/或处理子系统12)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器及/或处理子系统12)中的指令来实施过程100。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可确定数据块56的上下文(过程方框102)。如上文所描述,在一些实施例中,数据块56的上下文可包含数据块56中所包含的数据的类型。举例来说,存储器控制器26可分析数据块56以确定数据块56是包含图像数据、虚拟机器数据、可执行指令、音频数据还是其任何组合。另外或另一选择为,存储器控制器26可(举例来说)经由用户输入及/或从处理子系统12接收数据块56中所包含的数据的类型的指示。
此外,如上文所描述,在一些实施例中,数据块56的上下文可包含计算系统10的与数据块56相关联(例如,产生及/或预期定为目标)的方面。举例来说,上下文可包含在计算系统10上运行而使得产生数据块56的过程、在计算系统10上运行而使得产生数据块56的应用、产生数据块56的处理器线程、产生数据块56的计算系统10的用户及/或使得产生数据块56的虚拟机器。另外或另一选择为,上下文可包含预期当在计算系统10中运行时将数据块56定为目标的过程、预期将数据块56定为目标的处理器线程、预期将数据块56定为目标的处理器核心94、预期将数据块56定为目标的计算系统10的用户及/或预期当在计算系统10中运行时将数据块56定为目标的虚拟机器。
至少部分地基于数据块56的上下文、存储器控制器26可确定与数据块56相关联的元数据54(过程方框104)。如上文所描述,在一些实施例中,元数据54可包含识别数据块56的标签元数据57。举例来说,存储器控制器26可至少部分地基于与数据块56相关联的虚拟存储器地址及/或物理存储器地址来确定与数据块56相关联的标签元数据57。另外,如上文所描述,在一些实施例中,元数据54可包含指示数据块56的有效性的有效性元数据59。举例来说,存储器控制器26可至少部分地通过分析数据块56以确定其有效性及/或通过一或多个错误检查码来确定与数据块56相关联的有效性元数据59,所述一或多个错误检查码稍后可用于确定数据块56是否有效及/或在无效时校正数据块56。
此外,如上文所描述,元数据54可包含指示数据块56的上下文的上下文元数据58。换句话说,上下文元数据58可指示一或多个上下文识别符。举例来说,存储器控制器26可将类型识别符包含在上下文元数据58中,以指示数据块56是包含图像数据、虚拟机器数据、可执行指令、音频数据还是其任何组合。
另外或另一选择为,存储器控制器26可将一或多个关联性识别符包含在上下文元数据58中,以指示计算系统10的与数据块56相关联的方面。举例来说,存储器控制器26可将过程识别符包含在上下文元数据58中,以指示运行在计算系统10上而使得产生数据块56的过程及/或预期当在计算系统10中运行时将数据块56定为目标的过程。另外,在一些实施例中,存储器控制器26可将用户识别符包含在上下文元数据58中以指示产生数据块56的计算系统10的用户及/或预期将数据块56定为目标的计算系统10的用户。此外,在一些实施例中,存储器控制器26可将线程识别符包含在上下文元数据58中以指示产生数据块56的处理器线程及/或预期将数据块56定为目标的处理器线程。
此外,在一些实施例中,存储器控制器26可将核心识别符包含在上下文元数据58中以指示产生数据块56的处理器核心94及/或预期将数据块56定为目标的处理器核心94。另外,在一些实施例中,存储器控制器26可将虚拟机器识别符包含在上下文元数据58中以指示当在计算系统10中运行时使得产生数据块56的虚拟机器及/或预期将数据块56定为目标的虚拟机器。此外,在一些实施例中,存储器控制器26可将应用识别符包含在上下文元数据58中以指示在计算系统10上运行而使得产生数据块56的应用及/或预期当在计算系统10中运行时将数据块56定为目标的过程。
为形成数据对象52,存储器控制器26可使元数据54与数据块56相关联(过程方框106)。举例来说,存储器控制器26可至少部分地通过将包含上下文元数据58的元数据54链接到数据块56来产生数据对象52。这样一来,可使数据与上下文相关联以作为数据对象52。
如上文所描述,为有助于改善由存储器子系统14提供的后续数据检索等待时间,在一些实施例中,存储器控制器26可至少部分地基于存储在及/或将存储在存储器子系统14中的数据的上下文并据此控制存储器子系统14中的数据存储来预测即将到来的数据存取型式。举例来说,当先前存储在存储器子系统14中的第一数据被定为目标时,存储器控制器26可更新与第一数据相关联的数据存取信息34,并至少部分地基于第一数据的上下文及/或第二数据的上下文来预测先前存储在存储器子系统14中的第二数据接下来将被定为目标、第二数据接下来将被定为目标的时间及/或第一数据将再次被定为目标的时间。然后,存储器控制器26可至少部分地基于所述预测,(举例来说)通过指挥存储器子系统14调整存储第一数据及/或第二数据的实例(例如,复本)的存储器层级96来控制存储器子系统14中的数据存储。
另外或另一选择为,存储器控制器26可在最初接收到要存储的数据时,(举例来说)通过以下方式来预测性地控制存储器子系统14中的数据存储:至少部分地基于数据的上下文、存储在存储器子系统14中的其它数据的上下文及/或先前存储器存取请求的上下文来预测数据接下来将被定为目标的时间,且至少部分地基于所述预测来选择存储器子系统14中用以存储所述数据的存储器层级96。为有助于图解说明,图10中描述用于操作存储器子系统14的过程108的例子。通常,过程108包含接收要存储在存储器子系统中的数据(过程方框110),预测后续数据存取型式(过程方框112),及基于所预测后续数据存取型式来控制数据在存储器子系统中的存储(过程方框114)。
尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程108。另外,过程108的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器)中的指令来实施过程108。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可接收将存储在存储器子系统14中的数据(过程方框110)。举例来说,存储器子系统14可经由存储器总线20B从处理子系统12随写入存储器存取请求一起接收数据。另外,在一些实施例中,数据对象52的数据块56中可包含将存储在存储器子系统14中的数据,所述数据对象52包含指示数据块56的上下文的元数据54。此外,响应于接收到要存储在存储器子系统14中的数据,存储器控制器26可确定预期在即将到来的(例如,后续)控制时程期间出现的所预测数据存取型式(过程方框112)。
为有助于图解说明,图11中描述用于确定所预测数据存取型式的过程116的例子,可在过程方框112中使用所述所预测数据存取型式。通常,过程116包含确定先前数据存取型式(过程方框118)及基于所述先前数据存取型式来预测后续数据存取型式(过程方框120)。尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程116。另外,过程116的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器)中的指令来实施过程116。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可确定先前数据存取型式(过程方框118)。如上文所描述,在一些实施例中,去往机器学习块32的输入参数76可指示先前数据存取型式。举例来说,所述输入参数76可包含:块识别符参数86,其识别一或多个先前被定为目标的数据块56(例如,经由标签元数据);数据存取信息参数88,其指示与一或多个先前被定为目标的数据块56相关联的数据存取信息34;上下文识别符参数90,其指示一或多个上下文识别符,其指示一或多个数据块56的上下文;及/或预测误差参数92,其指示一或多个先前所预测数据存取型式与对应的实际数据存取型式之间的误差。
因此,在一些实施例中,确定先前数据存取型式可包含确定先前所存取(例如,定为目标及/或请求)的数据(过程方框122)。举例来说,所述存储器控制器26可至少部分地基于相关联的标签元数据57识别一或多个先前所存取的数据块56。为有助于预测后续数据存取型式,在一些实施例中,存储器控制器26可经由块识别符参数86指示与先前存取的数据块56相关联的标签元数据57,所述块识别符参数86可被输入到机器学习块32。
另外,在一些实施例中,确定先前数据存取型式可包含确定数据存取信息34(过程方框124)。举例来说,存储器控制器26可确定与识别一或多个先前存取数据块56的标签元数据57相关联的数据存取信息34。另外或另一选择为,存储器控制器26可确定与识别当前接收到的要存储在存储器子系统14中的数据块56的标签元数据57相关联的数据存取信息34。为有助于预测后续数据存取型式,在一些实施例中,存储器控制器26可经由数据存取信息参数88指示与相关(例如,当前及/或一或多个先前存取)的数据块56相关联的数据存取信息34,所述数据存取信息参数88可被输入到机器学习块32。
此外,在一些实施例中,确定先前数据存取型式可包含确定数据的上下文(过程方框126)。举例来说,所述存储器控制器26可至少部分地基于一或多个对应的数据对象52的上下文元数据58中所指示的上下文识别符来确定一或多个先前存取的数据块56的上下文。类似地,当接收到将存储在存储器子系统14中的数据块56以作为数据对象52时,存储器控制器26可至少部分地基于数据对象52的上下文元数据58中所指示的一或多个上下文识别符来确定数据块56的上下文。另外或另一选择为,存储器控制器26可至少部分地基于(举例来说)随数据块56一起从处理子系统12接收到的对应的写入存储器存取请求中所指示的上下文识别符来确定将存储在存储器子系统14中的数据块56的上下文。为有助于预测后续数据存取型式,在一些实施例中,存储器控制器26可经由上下文识别符参数90指示与相关(例如,当前及/或一或多个先前存取)的数据块56相关联的上下文识别符,所述上下文识别符参数90可被输入到机器学习块32。
此外,在一些实施例中,确定先前数据存取型式可包含确定一或多个先前预测误差(过程方框128)。举例来说,存储器控制器26可基于数据块56的先前所预测的下一目标时间与数据块的实际目标时间之间的差来确定预测误差。另外或另一选择为,存储器控制器26可确定预测误差以指示所预测的下一目标数据块56接下来是否为实际上被定为目标。为有助于预测后续数据存取型式,在一些实施例中,存储器控制器26可经由预测误差参数92指示一或多个先前预测误差,预测误差参数92可被输入到机器学习块32。
至少部分地基于先前数据存取型式,存储器控制器26可预测预期在即将到来的控制时程期间出现的后续数据存取型式(过程方框120)。如上文所描述,在一些实施例中,来自机器学习块32的输出参数78可指示所预测数据存取型式。举例来说,输出参数78可包含:所预测的下一目标时间参数80,其指示预期接下来一或多个数据块56将被定为目标的时间;所预测的下一目标数据参数82,其指示预期接下来将被定为目标的一或多个数据块56;及/或存储推荐参数84,其指示一或多个存储器层级推荐及/或一或多个刷新(例如,替换)推荐。
因此,在一些实施例中,确定后续数据存取型式可包含确定一或多个数据块56的所预测的下一目标时间(过程方框130)。举例来说,存储器控制器26可通过读取从机器学习块32输出的所预测的下一目标时间参数80来确定数据块56的所预测的下一目标时间。另外,在一些实施例中,确定后续数据存取型式可包含确定预测接下来被定为目标的数据(过程方框132)。举例来说,存储器控制器26可通过读取从机器学习块32输出的所预测的下一目标数据参数82来确定所预测的下一目标数据块56。
此外,在一些实施例中,确定后续数据存取型式可包含确定一或多个存储推荐(过程方框134)。举例来说,存储器控制器26可通过读取从机器学习块32输出的存储推荐参数84来确定存储推荐。在一些实施例中,存储推荐可指示存储数据块56的推荐存储器层级。另外或另一选择为,由于较低存储器层级的存储容量通常是有限的,因此在一些实施例中,存储推荐可指示推荐从较低存储器层级刷新(例如,替换)一或多个其它数据块56以为随后存储在较低存储器层级中的一或多个数据块56留出空间。这样一来,可预测预期在即将到来的控制时程期间出现的后续数据存取型式。
返回到图10的过程108,至少部分地基于所预测的后续数据存取型式,存储器控制器26可控制存储器子系统14中的数据存储(过程方框114)。为有助于图解说明,图12中描述由于预测性地控制接收到的要存储在存储器子系统14中的数据的存储的过程136的例子。通常,过程136包含确定当前时间与数据块的所预测的下一目标时间之间的持续时间(过程方框138),确定持续时间是否小于最低持续时间阈值(决策块140),及当持续时间小于最低持续时间阈值时将数据块存储在最低存储器层级处(过程方框142)。当持续时间不小于最低持续时间阈值时,过程136包含确定下一较高存储器层级是否为最高存储器层级(决策块144);及当下一较高存储器层级是最高存储器层级时将数据块存储在所述最高存储器层级处(过程方框146)。当下一较高存储器并非最高存储器层级时,过程136包含确定持续时间是否小于下一较高持续时间阈值(决策块148);及当所述持续时间小于下一持续时间阈值时将数据块存储在对应的中间存储器层级处(过程方框150)。
尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程136。另外,过程136的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器)中的指令来实施过程136。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可确定当前时间与接收到的要存储在存储器子系统14中的数据块56的所预测的下一目标时间之间的持续时间(过程方框138)。如上文所描述,在一些实施例中,存储器控制器26可通过读取从机器学习块32输出的所预测的下一目标时间参数80来确定数据块56的所预测的下一目标时间。另外,存储器控制器26可至少部分地基于当前时间与数据块56的所预测的下一目标时间之间的差来确定持续时间。
如上文所描述,在一些实施例中,可使用多个分级存储器层级实施存储器子系统14。举例来说,存储器子系统14可包含使用一或多个处理器侧(例如,L1)高速缓冲存储器24B实施的最低存储器层级96及使用一或多个非易失性存储器装置18B中的存储器阵列28实施的最高存储器层级96。另外,在一些实施例中,存储器子系统14可包含在最低存储器层级96与最高存储器层级之间的一或多个中间存储器层级96。举例来说,存储器子系统14可包含:第一中间存储器层级96,其是使用另一一或多个处理器侧(例如,L2)高速缓冲存储器24B实施;第二中间存储器层级96(例如,高于第一中间存储器层级96),其是使用另一一或多个处理器侧(例如,L3)高速缓冲存储器24B实施;第三中间存储器层级96(例如,高于第二中间存储器层级96),其是使用一或多个存储器侧高速缓冲存储器24A实施;及/或第四中间存储器层级96(例如,高于第三中间存储器层级96),其是使用一或多个易失性存储器装置18A中的存储器阵列28实施。
为有助于预测性地控制数据存储,在一些实施例中,实施在存储器子系统14中的每一存储器层级96可与对应的持续时间阈值相关联。举例来说,最低存储器层级96可与1纳秒的最低持续时间阈值相关联,及/或最高存储器层级96可与1000纳秒的最高持续时间阈值相关联。另外,第一中间存储器层级96可与5纳秒的第一中间持续时间阈值相关联,第二中间存储器层级96可与20纳秒的第二中间持续时间阈值相关联,第三中间存储器层级96可与50纳秒的第三中间持续时间阈值相关联,及/或第四中间存储器层级96可与100纳秒的第四中间持续时间阈值相关联。
如此,存储器控制器26可然后确定当前时间与所预测的下一目标时间之间的持续时间是否小于与最低存储器层级96相关联的最低持续时间阈值(决策块140)。举例来说,存储器控制器26可确定当前时间与所预测的下一目标时间之间的持续时间是否小于1纳秒。另外,当所述持续时间小于最低持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在最低存储器层级96中(过程方框142)
另一方面,在当前时间与所预测的下一目标时间之间的持续时间不小于最低持续时间阈值时,存储器控制器26可确定下一较高存储器层级96是否是最高存储器层级96(决策块144)。举例来说,存储器控制器26可确定下一较高存储器层级96是否是由一或多个非易失性存储器装置18B中的存储器阵列28实施存储器层级96。另外,当下一较高存储器层级96是最高存储器层级96时,存储器控制器26可指挥存储器子系统14将数据块存储在最高存储器层级96处(过程方框146)。
当下一较高存储器层级96并非最高存储器层级96时,存储器控制器26可确定当前时间与所预测的下一目标时间之间的持续时间是否小于与下一较高存储器层级96相关联的下一持续时间阈值(决策块148)。举例来说,在当前时间与所预测的下一目标时间之间的持续时间不小于最低持续时间阈值时,存储器控制器26可确定持续时间是否小于与第一中间存储器层级96相关联的第一中间持续时间阈值。类似地,在当前时间与所预测的下一目标时间之间的持续时间不小于第一中间持续时间阈值时,存储器控制器26可确定持续时间是否小于与第二中间存储器层级96相关联的第二中间持续时间阈值等等。
另外,当持续时间小于下一持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在与下一持续时间阈值对应的中间存储器层级96处(过程方框150)。举例来说,在当前时间与所预测的下一目标时间之间的持续时间小于第一中间持续时间阈值但不小于最低持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在与第一中间持续时间阈值相关联的第一中间存储器层级96处。类似地,在当前时间与所预测的下一目标时间之间的持续时间小于第二中间持续时间阈值但不小于第一中间持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在与第二中间持续时间阈值相关联的第二中间存储器层级96处等等。
当选择较低存储器层级96时,在一些实施例中,举例来说由于较低存储器层级96在断电时可不具备数据留存能力及/或由于数据块56可随后从较低存储器层级96被刷新(例如,替换)以为其它数据留出空间,因此存储器控制器26可指挥存储器子系统14也将数据块56的实例存储在较高(例如,最高)存储器层级96中。换句话说,在这些实施例中,存储器控制器26可指挥存储器子系统14将相同的数据存储在多个不同的存储器层级96中。举例来说,存储器控制器26可指挥存储器子系统14将数据块56存储在由一或多个非易失性存储器装置18B中的存储器阵列28实施的最高存储器层级96及由处理器侧高速缓冲存储器24B实施的较低存储器层级96处,存储在存储器侧高速缓冲存储器24A及/或一或多个易失性存储器装置18A中的存储器阵列28处。
此外,如上文所描述,在一些实施例中,存储器子系统14可包含存储器侧存储器子系统14A及处理器侧存储器子系统14B。另外,如上文所描述,在一些实施例中,实施在处理器侧存储器子系统14B中的存储器层级96可低于所实施的存储器层级96。换句话说,在这些实施例中,实施在处理器侧存储器子系统14B中的最高(例如,L3)存储器层级96可仍低于实施在存储器侧存储器子系统14A中的最低存储器层级96。
因此,在一些实施例中,实施在存储器子系统14中的一或多个存储器控制器26可至少部分地基于与实施在处理器侧存储器子系统14B中的最高存储器层级96相关联的持续时间阈值来确定是否将数据块56的实例存储在处理器侧存储器子系统14B中。举例来说,在当前时间与数据块56的所预测的下一目标时间之间的持续时间小于与实施在处理器侧存储器子系统14B中的最高存储器层级96相关联的持续时间阈值时,处理器侧存储器控制器26A可指挥处理器侧存储器子系统14B将数据块56的实例存储在实施在处理器侧存储器子系统14B中的一或多个存储器层级96中。如上文所描述,在一些实施例中,数据块56的一或多个实例可仍存储在存储器侧存储器子系统14A中。
为有助于将数据块56存储在存储器侧存储器子系统14A中,在一些实施例中,处理器侧存储器子系统14B可举例来说经由存储器总线20B将数据块56随从处理子系统12接收到的写入存储器存取请求及/或所预测数据存取型式一起输出到存储器侧存储器子系统14A。作为响应,如上文所描述,存储器侧存储器控制器26A可举例来说通过将当前时间与所预测的下一目标时间之间的持续时间和与实施在存储器侧存储器子系统14A中的存储器层级96相关联的持续时间阈值进行比较指挥存储器侧存储器子系统14A将数据块56的实例存储在实施在存储器侧存储器子系统14A中的一或多个存储器层级96中。为有助于提高操作效率,在一些实施例中,存储器侧存储器控制器26A可在数据块56的实例已存储在处理器侧存储器子系统14B中时仅指挥存储器侧存储器子系统14A将数据块56存储在其最高存储器层级96,借此避免本来将由存储器侧存储器控制器26A执行的比较。这样一来,存储器子系统14可在接收到要存储在其中的数据时预测性地控制数据存储。
另外或另一选择为,当计算系统10存取(例如,定为目标及/或请求)先前存储在存储器子系统14中的数据时,存储器子系统14可预测性地控制(例如,调整)数据存储。为有助于图解说明,图13中描述用于操作计算系统10的过程152的例子。通常,过程152包含确定由处理电路系统定为目标的数据(过程方框154);及确定目标数据引起寄存器未命中(决策块156)。当所述目标数据引起寄存器未命中时,过程152包含从处理器侧存储器子系统请求目标数据(过程方框158),确定所述目标数据引起处理器侧未命中(决策块160),及当目标数据引起处理器侧未命中时从存储器侧存储器子系统请求目标数据(过程方框162)。另外,过程152包含将目标数据供应到处理电路系统(过程方框166),预测后续数据存取型式(过程方框168),及基于所预测后续数据存取型式控制存储器子系统中的数据存储(过程方框170)。
尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程152。另外,所述过程152的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器及/或处理子系统12)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器及/或处理子系统12)中的指令来实施过程152。
因此,在一些实施例中,处理子系统12可确定由其处理电路系统16定为目标以(举例来说)加以处理及/或执行的数据(过程方框154)。为有助于定位目标数据块56,处理子系统12可确定预期与目标数据块56相关联且因此识别目标数据块56的目标标签值(例如,标签元数据57)。举例来说,处理子系统12可至少部分地基于由处理子系统12用于识别目标数据块56的目标虚拟存储器地址及/或目标数据块56预期存储在存储器子系统14中的目标物理存储器地址来确定目标标签值。
因此,至少部分地基于所述目标标签值,处理子系统12可确定目标数据当前是否存储在处理子系统12的寄存器22中且因此确定目标数据引起寄存器未命中(决策块156)。举例来说,处理子系统12可至少部分地基于预期与目标数据块56相关联的目标标签值来搜索与当前存储在寄存器22中的有效数据块56相关联的标签元数据57。确切来说,当在寄存器22中识别到匹配时,处理子系统12可确定目标数据不引起寄存器未命中,且因此将所述目标数据从寄存器22供应到其处理电路系统16(过程方框166)。
另一方面,当寄存器22中的任一者中皆不包含目标标签值时,处理子系统12可确定目标数据引起寄存器未命中,且因此请求从处理器侧存储器子系统14B目标数据(过程方框158)。如上文所描述,处理子系统12可通过将存储器存取请求输出到存储器子系统14请求存取存储器子系统14。举例来说,为将数据存储(例如,写入)在存储器子系统14中,处理子系统12可将数据随写入存储器存取请求一起输出到存储器子系统14。另外或另一选择为,处理子系统12可通过将读取存储器存取请求输出到存储器子系统14来检索(例如,读取)先前存储在存储器子系统14中的数据。
为有助于图解说明,图14中描述用于产生存储器存取请求的过程172的例子。通常,过程172包含确定用于存取数据的存取参数(过程方框174),确定数据的上下文(过程方框176),及确定指示所述存取参数及所述上下文的存储器存取请求(过程方框178)。尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程172。另外,过程172的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器及/或处理子系统12)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器及/或处理子系统12)中的指令来实施过程172。
因此,在一些实施例中,处理子系统12可确定用于存取数据的存取参数(过程方框174)。在一些实施例中,确定存取参数可包含确定存储器与数据相关联的地址(过程方框180)。举例来说,当在存储器子系统14中存储数据块56时,写入存取参数可包含由处理电路系统16用于识别数据块56的虚拟存储器地址及/或存储器子系统14中存储数据块56的物理存储器地址。另外或另一选择为,当从存储器子系统14检索数据块56时,读取存取参数可包含由处理电路系统16用于识别数据块56的虚拟存储器地址及/或存储器子系统14中预期存储数据块56的物理存储器地址。在一些实施例中,处理子系统12也可至少部分地基于存储器地址来确定与数据相关联的标签值(例如,标签元数据57)。
另外,在一些实施例中,确定存取参数可包含确定数据的大小(例如,位深度)(过程方框182)。举例来说,当将在存储器子系统14中存储数据块56时,写入存取参数可指示数据块56的大小及/或包含数据块56的数据对象52的大小。另外或另一选择为,当将从存储器子系统14检索数据块56时,读取存取参数可指示数据块56的预期大小及/或包含数据块56的数据对象52的预期大小。
此外,在一些实施例中,确定存取参数可包含确定存取类型(过程方框184)。举例来说,当将在存储器子系统14中存储数据块56时,写入存取参数可包含写入启用指示符(例如,位)。另外或另一选择为,当将从存储器子系统14检索数据块56时,读取存取参数可包含读取启用指示符(例如,位)。
为有助于预测性地控制存储器子系统14中的数据存储,处理子系统12可确定将存储在存储器子系统14中及/或从存储器子系统14检索的数据的上下文(过程方框176)。如上文所描述,在一些实施例中,数据块56的上下文可包含数据块56中所包含的数据的类型。举例来说,处理子系统12可分析数据块56以确定数据块56是包含图像数据、虚拟机器数据、可执行指令、音频数据还是其任何组合。另外或另一选择为,处理子系统12可(举例来说)从不同的计算子系统及/或经由用户输入接收数据块56中所包含的数据的类型的指示。
如上文所描述,在一些实施例中,另外或另一选择为,数据块56的上下文可包含计算系统10的与数据块56相关联的方面。举例来说,为确定数据块56的上下文,处理子系统12可识别在计算系统10上运行而使得产生数据块56的过程、在计算系统10上运行而使得产生数据块56的应用、产生数据块56的处理器线程、产生数据块56的计算系统10的用户及/或使得产生数据块56的虚拟机器。另外或另一选择为,处理子系统12可识别当在计算系统10中运行时预期将数据块56定为目标的过程、预期将数据块56定为目标的处理器线程、预期将数据块56定为目标的处理器核心94、预期将数据块56定为目标的计算系统10的用户及/或当在计算系统10中运行时预期将数据块56定为目标的虚拟机器。
然后,处理子系统12可产生并输出存储器存取请求,所述存储器存取请求指示将存储在存储器子系统14中及/或从存储器子系统14检索的数据的存取参数及上下文(过程方框178)。举例来说,当将在存储器子系统14中存储数据块56时,处理子系统12可产生并输出写入存储器存取请求,所述写入存储器存取请求指示与数据块56相关联的写入存取参数及一或多个上下文识别符。另外或另一选择为,当将从存储器子系统14检索数据块56时,处理子系统12可产生并输出读取存储器存取请求,所述读取存储器存取请求指示与数据块56相关联的读取存取参数及一或多个上下文识别符。这样一来,处理子系统12可请求存取存储器子系统14,(举例来说)以请求存储数据及/或传回(例如,检索)先前存储在存储器子系统14中的数据。
返回到图13的过程152,至少部分地基于从处理子系统12接收到的读取存储器存取请求,处理器侧存储器控制器26B可确定目标数据当前是否存储在处理器侧高速缓冲存储器24B中,且因此目标数据引起处理器侧高速缓冲存储器未命中(决策块160)。举例来说,处理器侧存储器控制器26B可至少部分地基于预期与目标数据块56相关联的目标标签值(例如,标签元数据57)来搜索与当前存储在一或多个处理器侧高速缓冲存储器24B中的有效数据块56相关联的标签元数据57。确切来说,当目标标签值包含在处理器侧高速缓冲存储器24B中时,处理器侧存储器控制器26B可确定目标数据不引起处理器侧未命中,且因此指挥处理器侧高速缓冲存储器24B将所述目标数据供应到处理子系统12的处理电路系统16(过程方框166)。
另一方面,当处理器侧高速缓冲存储器24B中的任一者中皆不包含目标标签值时,处理器侧存储器控制器26B可确定目标数据引起处理器侧未命中,且因此从存储器侧存储器子系统14A请求目标数据(过程方框162)。在一些实施例中,处理器侧存储器控制器26B可通过(举例来说)经由存储器总线20B将从处理子系统12接收到的读取存储器存取请求转发到存储器侧存储器子系统14A来从存储器侧存储器子系统14A请求目标数据。至少部分地基于读取存储器存取请求,存储器侧存储器控制器26A可定位目标数据且指挥存储器侧存储器子系统14A经由存储器总线20B将所述目标数据输出到(举例来说)处理子系统12及/或处理器侧存储器子系统14B(过程方框166)。
如上文所描述,在一些实施例中,与实施在存储器侧存储器子系统14A中的一或多个存储器装置18中的存储器阵列28相比,存储器侧存储器子系统14A可包含用于实施较低存储器层级的一或多个存储器侧高速缓冲存储器24A。因此,当存储器侧存储器子系统14A包含存储器侧高速缓冲存储器24A时,存储器侧存储器控制器26A可确定目标数据当前是否存储在存储器侧高速缓冲存储器24A中,且因此确定目标数据是否引起存储器侧高速缓冲存储器未命中。举例来说,存储器侧存储器控制器26A可至少部分地基于预期与目标数据块56相关联的目标标签值(例如,标签元数据57)来搜索与当前存储在存储器侧高速缓冲存储器24A中的有效数据块56相关联的标签元数据57。确切来说,当所述目标标签值包含在存储器侧高速缓冲存储器24A中时,存储器侧存储器控制器26A可确定目标数据不引起存储器侧高速缓冲存储器未命中,且因此指挥一或多个存储器侧高速缓冲存储器24A输出所述目标数据。
当目标数据引起存储器侧高速缓冲存储器未命中或存储器侧存储器子系统14A不包含存储器侧高速缓冲存储器24A时,存储器侧存储器控制器26A可在实施在一或多个存储器装置18中的存储器阵列28中定位目标数据且指挥存储器阵列28输出所述目标数据。举例来说,存储器侧存储器控制器26A可指挥行选择电路系统36以激活存储有目标数据的存储器阵列28的存储器单元行48。在一些实施例中,行选择电路系统36可激活由与目标数据相关联的行地址识别的存储器单元行48。另外,在一些实施例中,行选择电路系统36可通过将激活(例如,逻辑高)信号输出到耦合到存储器单元行48的存储器单元40的字线42来激活存储器单元行48。此外,在一些实施例中,列选择电路系统38可通过选择耦合到由与目标数据相关联的列地址识别的存储器单元列50的放大器电路系统44来从激活的存储器单元行48读取目标数据。另外或另一选择为,列选择电路系统38可基于与目标数据相关联的列地址来多路复用来自每一存储器单元列50的输出。
为有助于改善后续数据检索等待时间,在一些实施例中,存储器子系统14可将从较高存储器层级96检索的目标数据的实例(例如,复本)存储在较低存储器层级96中。举例来说,当从存储器阵列28检索到目标数据时,存储器侧存储器控制器26A可指挥存储器侧存储器子系统14A将所述目标数据的实例存储在一或多个存储器侧高速缓冲存储器24A中。另外或另一选择为,当从存储器侧存储器子系统14A检索到目标数据时,处理器侧存储器控制器26B可指挥处理器侧存储器子系统14B将所述目标数据的实例存储在一或多个处理器侧高速缓冲存储器24B中。
在任何情形中,在将目标数据供应到处理电路系统16时,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B可预测预期在即将到来的控制时程期间出现的后续数据存取型式(过程方框168)。如上文所描述,在一些实施例中,存储器控制器26可使用图11中所描述的过程116来预测后续数据存取型式。另外,至少部分地基于所预测后续数据存取型式,存储器侧存储器控制器26A可预测性地控制存储器侧存储器子系统14A中的数据存储及处理器侧存储器控制器26B可预测性地控制处理器侧存储器子系统14B中的数据存储。
为有助于图解说明,图15中描述用于预测性地控制先前存储在存储器子系统14中的数据的存储的过程186的例子。通常,过程186包含确定当数据块的前时间与所预测的下一目标时间之间的持续时间(过程方框188),确定用于存储数据块的当前存储器层级(过程方框190),确定持续时间是否小于当前持续时间阈值(决策块192),当持续时间不小于当前持续时间阈值时确定当前存储器层级是否是最高存储器层级(决策块194),及在当前存储器层级并非最高存储器层级时将数据块存储在较高存储器层级(过程方框196)。当持续时间小于当前持续时间阈值时,过程186包含确定当前存储器层级是否是最低存储器层级(决策块198),在当前存储器层级并非最低存储器层级时确定持续时间是否小于较低持续时间阈值(决策块200),及当持续时间小于较低持续时间阈值时将数据块存储在较低存储器层级处(过程方框202)。另外,当持续时间不小于当前持续时间阈值且当前存储器层级是最高存储器层级时,当持续时间小于当前持续时间阈值且当前存储器层级是最低存储器层级时,或当持续时间小于当前持续时间阈值且持续时间不小于较低持续时间阈值时,过程186包含维持将数据块存储在当前存储器层级处(过程方框204)。
尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程186。另外,过程186的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器)中的指令来实施过程186。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可确定先前存储在存储器子系统14中的数据块56的当前时间与所预测的下一目标时间之间的持续时间(过程方框188)。如上文所描述,在一些实施例中,存储器控制器26可通过读取从机器学习块32输出的所预测的下一目标时间参数80来确定数据块56的所预测的下一目标时间。另外,存储器控制器26可至少部分地基于当前时间与数据块56的所预测的下一目标时间之间的差来确定持续时间。
如上文所描述,在一些实施例中,可使用多个分级存储器层级来实施存储器子系统14。另外,如上文所描述,在一些实施例中,实施在存储器子系统14中的每一存储器层级96可与对应的持续时间阈值相关联。举例来说,最低存储器层级96可与1纳秒的最低持续时间阈值相关联,及/或最高存储器层级96可与1000纳秒的最高持续时间阈值相关联。另外,第一中间存储器层级96可与5纳秒的第一中间持续时间阈值相关联,第二中间存储器层级96可与20纳秒的第二中间持续时间阈值相关联,第三中间存储器层级96可与50纳秒的第三中间持续时间阈值相关联,及/或第四中间存储器层级96可100纳秒的第四中间持续时间阈值相关联。
此外,存储器控制器26可确定用于存储数据块56的当前存储器层级(过程方框190)且确定当前时间与所预测的下一目标时间之间的持续时间是否小于与当前存储器层级相关联的当前持续时间阈值(决策块192)。举例来说,在当前存储器层级96是最高存储器层级96时,存储器控制器26可确定持续时间是否小于1000纳秒的最高持续时间阈值。另外,在当前存储器层级96是最低存储器层级96时,存储器控制器26可确定持续时间是否小于1纳秒的最低持续时间阈值。此外,在当前存储器层级96是第四中间存储器层级96时,存储器控制器26可确定持续时间是否小于100纳秒的第四中间持续时间阈值等等。
在当前时间与所预测的下一目标时间之间的持续时间不小于当前持续时间阈值时,存储器控制器26可确定存储数据块56的当前存储器层级96是否是最高存储器层级96(决策块194)。换句话说,在一些实施例中,存储器控制器26可确定当前存储器层级96是否是使用一或多个非易失性存储器装置18B中的存储器阵列28实施。举例来说,在当前存储器层级96是使用一或多个非易失性存储器装置18B中的存储器阵列28实施时,存储器控制器26可确定当前存储器层级96是最高存储器层级96。另一方面,在当前存储器层级96并非是使用一或多个非易失性存储器装置18B中的存储器阵列28实施时,存储器控制器26可确定当前存储器层级96并非是最高存储器层级96。
另外,在当前存储器层级96并非是最高存储器层级96时,存储器控制器26可指挥存储器子系统14将数据块56存储在较高存储器层级处(过程方框196)。举例来说,在数据块56当前存储在第四中间存储器层级96中且持续时间不小于第四中间持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在最高存储器层级96处。类似地,当数据块56当前存储在最低中间存储器层级96中且持续时间不小于最低持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在第一中间存储器层级96处等等。另一方面,在当前存储器层级96是最高存储器层级96时,存储器控制器26可指挥存储器子系统14维持将数据块56存储在所述高存储器层级96中(过程方框204)。
在当前时间与所预测的下一目标时间之间的持续时间小于当前持续时间阈值时,存储器控制器26可确定存储数据块56的当前存储器层级96是否是最低存储器层级96(决策块198)。换句话说,在一些实施例中,存储器控制器26可确定当前存储器层级96是否是使用一或多个L1处理器侧高速缓冲存储器24B实施。举例来说,在当前存储器层级96是使用一或多个L1处理器侧高速缓冲存储器24B实施时,存储器控制器26可确定当前存储器层级96是最低存储器层级96。另一方面,在当前存储器层级96并非是使用一或多个L1处理器侧高速缓冲存储器24B实施时,存储器控制器26可确定当前存储器层级96并非是最低存储器层级96。
另外,在当前存储器层级96并非是最低存储器层级96时,存储器控制器26可确定当前时间与所预测的下一目标时间之间的持续时间是否小于与下一较低存储器层级96相关联的较低持续时间阈值(决策块200)。举例来说,当数据块56当前存储在第四中间存储器层级96中且持续时间小于第四中间持续时间阈值时,存储器控制器26可确定持续时间是否小于与第三中间存储器层级96相关联的第三中间持续时间阈值。类似地,当数据块56当前存储在最高存储器层级中且持续时间小于最高持续时间阈值时,存储器控制器26可确定持续时间是否小于与第四中间存储器层级96相关联的第四中间持续时间阈值等等。另一方面,当持续时间小于当前持续时间阈值且当前存储器层级96是最低存储器层级96时,存储器控制器26可指挥存储器子系统14维持将数据块56存储在最低存储器层级96处(过程方框204)。
在当前时间与所预测的下一目标时间之间的持续时间小于较低持续时间阈值时,存储器控制器26可指挥存储器子系统14将数据块56存储在较低存储器层级处(过程方框202)。举例来说,当数据块56当前存储在第四中间存储器层级96中且持续时间小于第三中间持续时间阈值时,存储器控制器26可指挥存储器子系统14调整数据存储,以使得将数据块56存储在第三中间存储器层级96处。类似地,当数据块56当前存储在最高存储器层级中且持续时间小于第四中间持续时间阈值时,存储器控制器26可指挥存储器子系统14调整数据存储,以使得数据块存储在第四中间存储器层级96处等等。另一方面,当持续时间小于当前持续时间阈值且不小于较低持续时间阈值时,存储器控制器26可指挥存储器子系统14维持将数据块56存储在当前存储器层级96处(过程方框204)。
这样一来,存储器控制器26可至少部分地基于预测接下来数据被定为目标的时间来预测性地控制(例如,调整)先前存储在存储器子系统14中的数据的存储。如上文所描述,在一些实施例中,所预测的数据的下一目标时间及/或所预测的下一目标数据可指示预期在即将到来的控制时程出现的所预测数据存取型式。因此,在一些实施例中,另外或另一选择为,存储器控制器26可至少部分地基于预测接下来何种数据被定为目标来预测性地控制先前存储在存储器子系统14中的数据的存储。
为有助于图解说明,图16中描述基于对下一目标数据的预测预测性地控制数据存储的过程206的例子。通常,过程206包含确定所预测的下一目标数据块(过程方框208),确定用于存储数据块的当前存储器层级(过程方框210),及确定当前存储器层级是否是最低存储器层级(决策块212)。另外,过程206包含在当前存储器层级是最低存储器层级时,维持将数据块存储在当前存储器层级处(过程方框214);及在当前存储器层级并非是最低存储器层级时,将数据块存储在较低存储器层级处(过程方框216)。
尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程206。另外,过程206的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器)中的指令来实施过程206。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可确定预测接下来被定为目标的数据块56(过程方框208)。举例来说,存储器控制器26可通过读取从机器学习块32输出的所预测的下一目标数据参数82来确定所预测的下一目标数据块56。另外,存储器控制器26可确定用于存储所预测的下一目标数据块56的当前存储器层级96(过程方框210)。
此外,存储器控制器可确定当前存储器层级96是否是最低存储器层级(决策块212)。换句话说,在一些实施例中,存储器控制器26可确定当前存储器层级96是否是使用一或多个L1处理器侧高速缓冲存储器24B来实施。举例来说,在当前存储器层级96不是使用一或多个L1处理器侧高速缓冲存储器24B实施时,存储器控制器26可确定当前存储器层级96不是最低存储器层级96。另一方面,在当前存储器层级96是使用一或多个L1处理器侧高速缓冲存储器24B实施时,存储器控制器26可确定当前存储器层级96是最低存储器层级96。
当所预测的下一目标数据块56当前存储在最低存储器层级96中时,存储器控制器26可确定所预测的下一目标数据块56的存储已得到优化(例如,有助于改善数据检索等待时间),且因此指挥存储器子系统14维持将所预测下一目标块56存储在最低存储器层级96处(过程方框214)。另一方面,当所预测的下一目标数据块56当前未存储在最低存储器层级96中时,存储器控制器26可指挥存储器子系统14调整所预测的下一目标数据块56的存储,以使得所预测的下一目标数据块56存储在较低存储器层级96处。举例来说,当所预测下一目标块56当前存储在第四中间存储器层级96中时,存储器控制器26可指挥存储器子系统14将所预测下一目标块56的实例存储在第三中间存储器层级96中。另外或另一选择为,存储器控制器26可指挥存储器子系统14将所预测下一目标块56的实例存储在最低存储器层级96中。这样一来,存储器控制器26可至少部分地基于(举例来说)由机器学习块32的输出参数78指示的接下来何种数据将被定为目标的预测来预测性地控制先前存储在存储器子系统14中的数据的存储。
如上文所描述,在一些实施例中,机器学习块32可另外或替代地输出一或多个存储推荐。举例来说,存储推荐可指示存储数据块56的推荐存储器层级。由于较低存储器层级的存储容量通常是有限的,因此在一些实施例中,存储推荐可另外推荐从较低存储器层级刷新(例如,替换)一或多个其它数据块56以为后续存储在较低存储器层级中的一或多个其它数据块56留出空间。
然而,至少在一些实例中,存储器层级可无法同时地(例如,同步)从所述存储器层级读取数据及将数据写入到存储器层级96。换句话说,至少在一些实例中,当可从当前存储器层级96读取数据及/或将数据写入到当前存储器层级96时,实施刷新推荐可延迟。此外,至少在一些实例中,实施刷新推荐可耗用电力。因此,在一些实施例中,可选择性地实施刷新推荐以有助于改善存储器子系统14的数据检索等待时间及/或提高其操作效率,且因此提高实施有存储器子系统的计算系统10的效率。
为有助于图解说明,图17中描述选择性地实施刷新(例如,替换)推荐的过程218的例子。通常,过程218包含确定刷新推荐(过程方框220),确定当前存储器层级已耗用的存储容量(过程方框222),确定已耗用的存储容量是否大于容量阈值(决策块224)。另外,过程218包含:当已耗用的存储容量大于容量阈值时,实施刷新推荐(过程方框226);及当已耗用的存储容量不大于容量阈值时,维持将数据存储在当前存储器层级中(过程方框228)。
尽管按照表示特定实施例的特定次序加以描述,但应注意可按照任何适合的次序执行过程218。另外,过程218的实施例可省略过程方框及/或包含额外过程方框。此外,在一些实施例中,可使用处理电路系统(例如,实施在存储器控制器26中的处理器)至少部分地通过执行存储在有形非暂时性计算机可读媒体(例如,实施在存储器控制器26中的存储器)中的指令来实施过程218。
因此,在一些实施例中,存储器控制器26(例如,存储器侧存储器控制器26A及/或处理器侧存储器控制器26B)可确定一或多个存储推荐,所述存储推荐包含存储数据块56的推荐存储器层级96及所推荐的存储器层级96的刷新(例如,替换)推荐(过程方框220)。如上文所描述,在一些实施例中,存储器控制器26可至少部分地基于从机器学习块32输出的存储推荐参数84来确定一或多个存储推荐。另外,存储器控制器26可指挥存储器子系统14调整数据存储,以使得数据块56当前存储在所推荐的存储器层级96中。
然后,存储器控制器26可确定将数据块56存储在当前存储器层级中是否会致使当前存储器层级96中被有效数据耗用的存储容量超过容量阈值(决策块224)。在一些实施例中,可将容量阈值设定成减小超额占用当前存储器层级96的可能性,且因此设定成小于当前存储器层级96的全(例如,最大)存储容量。举例来说,可将容量阈值设定成使得在达到所述容量阈值之前,当前存储器层级96中的可用(例如,空闲)存储容量足以存储特定数目(例如,一或多个)个数据块56或数据对象52。事实上,在一些实施例中,与不同的分级存储器层级96相关联的容量阈值可有所不同,以(举例来说)应对存储容量的差异。举说明性例子,可将与存储器层级96相关联的容量阈值设定为由存储器层级96提供的总存储容量的一定百分比。
在任何情形中,在当前存储器层级中由有效数据耗用的存储容量大于容量阈值时,存储器控制器26可指挥存储器子系统14实施刷新推荐(过程方框226)。在一些实施例中,刷新推荐可指示当前存储在当前存储器层级96中的预期在与当前存储器层级96对应的持续时间阈值内不会被定为目标的一或多个数据块56。换句话说,在当前存储器层级已耗用的存储容量大于对应的容量阈值时,存储器控制器26可指挥存储器子系统14刷新预期在当前存储器层级96的持续时间阈值内不会被定为目标的一或多个数据块56。
然而,如上文所描述,至少在一些实例中,存储器层级96可无法同时(例如,同步)读取及写入数据。因此,当可从当前存储器层级96读取数据及/或将所述数据写入到当前存储器层级96时,至少在这些实例中,实施刷新推荐可延迟。此外,至少在一些实例中,实施刷新推荐可耗用电力。因此,在当前存储器层级中由有效数据耗用的存储容量不大于容量阈值时,存储器控制器26可指挥存储器子系统14维持将数据存储在当前存储器层级96处,至少在一些实例中,这可有助于改善后续数据检索等待时间及/或提高存储器子系统14的操作效率,且因此提高实施有存储器子系统14的计算系统10的操作效率。
本文中描述且在对应的图中描绘了本发明的一或多个特定实施例。所描述的这些实施例仅是目前所揭示技术的例子。另外,为提供对这些实施例的简洁说明,说明书中并未描述实际实施方案的所有特征。应了解,在开发任何此种实际实施方案时,如在任何工程或设计项目中,必须做出众多实施方案特定决策以实现开发者的特定目标,例如符合系统相关及商业相关的约束条件(约束条件在不同的实施方案之间可能不同)。此外,应了解,此类开发工作可能是复杂且耗时的,然而,其对于受益于本发明的所属领域的技术人员来说,则不过是一项常规的设计、制作及制造任务。
当介绍本发明的各种实施例的元件时,冠词“一(a/an)”及“所述”旨在意指存在一或多个元件。术语“包括”、“包含”及“具有”旨在具有包含性且意指除所列举要素之外可能还有额外的要素。另外,应理解,提及本发明的“一个实施例”或“实施例”不旨在解释为排除也包括所述特征的额外实施例的存在。
通过举例展示了上文所描述的特定实施例,且应理解可易于对这些实施例进行各种修改及替代形式。还应理解,权利要求书并不旨在限于所揭示的特定形式,而是涵盖在本发明的精神及范围内的所有的修改、等效内容及替代方案。
Claims (49)
1.一种存储器设备,其包括:
处理系统,其包括处理电路系统以及一或多个寄存器;及
存储器系统,其经由一或多个通信总线通信耦合到所述处理系统且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器系统包括:
第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;
第一存储器阵列,其经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级;及
一或多个存储器控制器,其经配置以:
至少部分地基于将存储在所述存储器系统中的第一数据的第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定预期在即将到来的控制时程期间出现的所预测数据存取型式;且
至少部分地基于所述所预测数据存取型式来控制在实施在所述存储器系统中的所述多个分级存储器层级中的哪一或多个存储器层级中存储所述第一数据、所述第二数据或这两者,其中:
所述处理系统经配置以输出将存储在所述存储器系统中的所述第一数据及写入存储器存取请求,所述写入存储器存取请求指示所述第一数据的所述第一上下文;且
响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以:
至少部分地通过以下方式来确定所述所预测数据存取型式:至少部分地基于所述写入存储器存取请求中所指示的所述第一数据的所述第一上下文、先前存储在所述存储器系统中的所述第二数据的所述第二上下文或这两者来确定所述第一数据的下一所预测目标时间;且
在当前时间与所述第一数据的所述下一所预测目标时间之间的持续时间小于与所述第一存储器层级相关联的第一持续时间阈值时,至少部分地通过指挥所述存储器系统将所述第一数据存储在使用所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中来控制在哪一或多个存储器层级中存储所述第一数据。
2.根据权利要求1所述的设备,其中:
所述存储器系统包括高于所述第一存储器层级且低于所述第二存储器层级的中间存储器层级;且
响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以:
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间不小于与所述第一存储器层级相关联的所述第一持续时间阈值时,确定所述持续时间是否小于与所述中间存储器层级相关联的中间持续时间阈值;且
至少部分地通过以下步骤来控制在哪一或多个存储器层级中存储所述第一数据:
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间小于与所述中间存储器层级相关联的所述中间持续时间阈值时,指挥所述存储器系统将所述第一数据存储在所述中间存储器层级中;及
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间不小于与所述中间存储器层级相关联的所述中间持续时间阈值时,指挥所述存储器系统将所述第一数据存储在使用所述第一存储器阵列实施的所述第二存储器层级中。
3.一种存储器设备,其包括:
处理系统,其包括处理电路系统以及一或多个寄存器;及
存储器系统,其经由一或多个通信总线通信耦合到所述处理系统且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器系统包括:
第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;
第一存储器阵列,其经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级;及
一或多个存储器控制器,其经配置以:
至少部分地基于将存储在所述存储器系统中的第一数据的第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定预期在即将到来的控制时程期间出现的所预测数据存取型式;且
至少部分地基于所述所预测数据存取型式来控制在实施在所述存储器系统中的所述多个分级存储器层级中的哪一或多个存储器层级中存储所述第一数据、所述第二数据或这两者,其中:
所述处理系统经配置以在所述处理电路系统将所述第二数据定为目标且所述第二数据引起寄存器未命中时,输出指示所述第二数据的所述第二上下文及读取存取参数的读取存储器存取请求;且
响应于接收到所述读取存储器存取请求,所述一或多个存储器控制器经配置以:
至少部分地基于所述读取存储器存取请求中所指示的所述读取存取参数来将所述第二数据定位并输出到所述处理系统;
更新与所述第二数据相关联的数据存取信息;且
至少部分地基于所述读取存储器存取请求中所指示的所述第二数据的所述第二上下文、先前存储在所述存储器系统中的第三数据的第三上下文、所述数据存取信息或其任何组合来确定所述所预测数据存取型式。
4.根据权利要求3所述的设备,其中所述一或多个存储器控制器经配置以:
至少部分地通过以下方式来确定所述所预测数据存取型式:至少部分地基于所述读取存储器存取请求中所指示的所述第二数据的所述第二上下文、先前存储在所述存储器系统中的所述第三数据的所述第三上下文、所述数据存取信息或其任何组合来确定由所述读取存储器存取请求定为目标的所述第二数据的下一所预测目标时间;
确定当前时间与所述第二数据的所述下一所预测目标时间之间的持续时间是否小于与所述存储器系统中存储所述第二数据的当前存储器层级相关联的当前持续时间阈值;
在所述当前时间与所述第二数据的所述下一所预测目标时间之间的所述持续时间小于与所述当前存储器层级相关联的所述当前持续时间阈值且所述当前存储器层级不是实施在所述存储器系统中的所述多个分级存储器层级中的最低存储器层级时,确定所述持续时间是否小于与所述第一存储器层级相关联的较低持续时间阈值;
在所述当前时间与所述第二数据的所述下一所预测目标时间之间的所述持续时间不小于与所述当前存储器层级相关联的所述当前持续时间阈值且所述当前存储器层级不是实施在所述存储器系统中的所述多个分级存储器层级中的最高存储器层级时,确定所述持续时间是否小于与所述第二存储器层级相关联的较高持续时间阈值;且
至少部分地通过以下步骤来控制在哪一或多个存储器层级中存储所述第二数据:
在所述当前时间与所述第二数据的所述下一所预测目标时间之间的所述持续时间小于与所述第一存储器层级相关联的所述较低持续时间阈值时,指挥所述存储器系统将所述第二数据的实例从所述当前存储器层级复制到由所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中;
在所述当前时间与所述第二数据的所述下一所预测目标时间之间的所述持续时间小于与所述第二存储器层级相关联的所述较高持续时间阈值且不小于与所述当前存储器层级相关联的所述当前持续时间阈值时,指挥所述存储器系统将所述第二数据的所述实例从所述当前存储器复制到由所述第一存储器阵列实施的所述第二存储器层级中;且
在所述当前时间与所述第二数据的所述下一所预测目标时间之间的所述持续时间小于与所述当前存储器层级相关联的所述当前持续时间阈值且不小于与所述第一存储器层级相关联的所述较低持续时间阈值时,指挥所述存储器系统维持将所述第二数据存储在所述当前存储器层级中。
5.根据权利要求3所述的设备,其中所述一或多个存储器控制器经配置以:
确定先前存储在所述第一存储器阵列中的数据对象,其中所述数据对象包括所述第三数据及上下文元数据,所述上下文元数据指示所述第三数据的所述第三上下文;
至少部分地通过以下方式来确定所述所预测数据存取型式:至少部分地基于所述读取存储器存取请求中所指示的所述第二数据的所述第二上下文、所述数据对象中所指示的所述第三数据的所述第三上下文、所述数据存取信息或其任何组合来确定先前存储在所述存储器系统中的所述第三数据的下一所预测目标时间;
确定当前时间与所述第三数据的所述下一所预测目标时间之间的持续时间是否小于与所述存储器系统中存储所述第三数据的当前存储器层级相关联的当前持续时间阈值;
在所述当前时间与所述第三数据的所述下一所预测目标时间之间的所述持续时间小于所述当前持续时间阈值且所述当前存储器层级不是实施在所述存储器系统中的所述多个分级存储器层级中的最低存储器层级时,确定所述持续时间是否小于与所述第一存储器层级相关联的较低持续时间阈值;
在所述当前时间与所述第三数据的所述下一所预测目标时间之间的所述持续时间不小于所述当前持续时间阈值且所述当前存储器层级不是实施在所述存储器系统中的所述多个分级存储器层级中的最高存储器层级时,确定所述持续时间是否小于与所述第二存储器层级相关联的较高持续时间阈值;且
至少部分地通过以下步骤来控制在哪一或多个存储器层级中存储所述第三数据:
在所述当前时间与所述第三数据的所述下一所预测目标时间之间的所述持续时间小于与所述第一存储器层级相关联的所述较低持续时间阈值时,指挥所述存储器系统将所述第三数据的实例从所述当前存储器层级复制到由所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中;
在所述当前时间与所述第三数据的所述下一所预测目标时间之间的所述持续时间小于与所述第二存储器层级相关联的所述较高持续时间阈值且不小于与所述当前存储器层级相关联的所述当前持续时间阈值时,指挥所述存储器系统将所述第三数据的所述实例从所述当前存储器层级复制到由所述第一存储器阵列实施的所述第二存储器层级中;且
在所述当前时间与所述第三数据的所述下一所预测目标时间之间的所述持续时间小于与所述当前存储器层级相关联的所述当前持续时间阈值且不小于与所述第一存储器层级相关联的所述较低持续时间阈值时,指挥所述存储器系统维持将所述第三数据存储在所述当前存储器层级中。
6.根据权利要求1所述的设备,其中所述一或多个存储器控制器包括机器学习块,所述机器学习块经配置以至少部分地基于指示一或多个先前数据存取型式的输入参数来确定指示预期在所述即将到来的控制时程期间出现的所述所预测数据存取型式的输出参数。
7.一种存储器设备,其包括:
处理系统,其包括处理电路系统以及一或多个寄存器;及
存储器系统,其经由一或多个通信总线通信耦合到所述处理系统且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器系统包括:
第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;
第一存储器阵列,其经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级;及
一或多个存储器控制器,其经配置以:
至少部分地基于将存储在所述存储器系统中的第一数据的第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定预期在即将到来的控制时程期间出现的所预测数据存取型式;且
至少部分地基于所述所预测数据存取型式来控制在实施在所述存储器系统中的所述多个分级存储器层级中的哪一或多个存储器层级中存储所述第一数据、所述第二数据或这两者;
其中所述一或多个存储器控制器包括机器学习块,所述机器学习块经配置以至少部分地基于指示一或多个先前数据存取型式的输入参数来确定指示预期在所述即将到来的控制时程期间出现的所述所预测数据存取型式的输出参数,其中:
所述机器学习块包括神经网络;
所述输出参数包括所述第一数据的第一所预测的下一目标时间、所述第二数据的第二所预测的下一目标时间、下一目标数据的预测或其任何组合;且
所述输入参数包括识别所述第一数据的第一块识别符、识别所述第二数据的第二块识别符、所述第一数据的所述第一上下文、所述第二数据的所述第二上下文、与所述第一数据相关联的数据存取信息、与所述第二数据相关联的数据存取信息、先前所预测数据存取型式与对应的实际数据存取型式之间的预测误差或其任何组合。
8.一种存储器设备,其包括:
处理系统,其包括处理电路系统以及一或多个寄存器;及
存储器系统,其经由一或多个通信总线通信耦合到所述处理系统且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器系统包括:
第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;
第一存储器阵列,其经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级;及
一或多个存储器控制器,其经配置以:
至少部分地基于将存储在所述存储器系统中的第一数据的第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定预期在即将到来的控制时程期间出现的所预测数据存取型式;且
至少部分地基于所述所预测数据存取型式来控制在实施在所述存储器系统中的所述多个分级存储器层级中的哪一或多个存储器层级中存储所述第一数据、所述第二数据或这两者,
其中所述存储器系统包括耦合在存储器总线的处理器侧上的第一部分,其中所述存储器系统的所述第一部分包括:
所述第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的所述第一存储器层级;
第二一或多个高速缓冲存储器,其经配置以实施高于所述第一存储器层级且低于由所述第一存储器阵列实施的所述第二存储器层级的第一中间存储器层级;及
第一存储器控制器,其经配置以至少部分地通过控制是将数据存储在由所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中、存储在由所述第二一或多个高速缓冲存储器实施的所述第一中间存储器层级中还是存储在这两者中来预测性地控制所述存储器系统的所述第一部分中的数据存储。
9.根据权利要求8所述的设备,其中:
所述存储器系统的所述第一部分包括第三一或多个高速缓冲存储器,所述第三一或多个高速缓冲存储器经配置以实施高于所述第一中间存储器层级且低于由所述第一存储器阵列实施的所述第二存储器层级的第二中间存储器层级;且
所述第一存储器控制器经配置以至少部分地通过控制是将数据存储在由所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中、存储在由所述第二一或多个高速缓冲存储器实施的所述第一中间存储器层级中、存储在由所述第三一或多个高速缓冲存储器实施的所述第二中间存储器层级中还是存储在其任何组合中来预测性地控制所述存储器系统的所述第一部分中的数据存储。
10.根据权利要求8所述的设备,其中所述存储器系统包括耦合在所述存储器总线的存储器侧上的第二部分,其中所述存储器系统的所述第二部分包括:
所述第一存储器阵列,其经配置以实施所述多个分级存储器层级中的所述第二存储器层级;
第二存储器阵列,其经配置以实施高于实施在所述存储器系统的所述第一部分中的所述第一中间存储器层级且低于由所述第一存储器阵列实施的所述第二存储器层级的第二中间存储器层级;及
第二存储器控制器,其经配置以至少部分地通过控制是将数据存储在由所述第一存储器阵列实施的所述第二存储器层级中、存储在由所述第二存储器阵列实施的所述第二中间存储器层级中还是存储在这两者中来预测性地控制所述存储器系统的所述第二部分中的数据存储。
11.根据权利要求10所述的设备,其中:
所述第一存储器阵列包括非易失性存储器阵列;且
所述第二存储器阵列包括易失性存储器阵列。
12.根据权利要求10所述的设备,其中:
所述存储器系统的所述第二部分包括第三一或多个高速缓冲存储器,所述第三一或多个高速缓冲存储器经配置以实施高于实施在所述存储器系统的所述第一部分中的所述第一中间存储器层级且低于由所述第二存储器阵列实施的第二中间存储器层级的第三中间存储器层级;且
所述第二存储器控制器经配置以通过控制是将数据存储在由所述第一存储器阵列实施的所述第二存储器层级中、存储在由所述第二存储器阵列实施的所述第二中间存储器层级中、存储在由所述第三一或多个高速缓冲存储器实施的所述第三中间存储器层级中还是存储在其任何组合中来预测性地控制所述存储器系统的所述第二部分中的数据存储。
13.根据权利要求12所述的设备,其中:
实施在所述存储器系统的所述第一部分中的所述第一一或多个高速缓冲存储器及所述第二一或多个高速缓冲存储器包括静态随机存取存储器;且
实施在所述存储器系统的所述第二部分中的所述第三一或多个高速缓冲存储器包括动态随机存取存储器。
14.根据权利要求1所述的设备,其包括:
中央处理单元,其中所述中央处理单元包括与所述第一一或多个高速缓冲存储器集成在一起的所述处理电路系统;及
一或多个存储器装置,其包括经组织以实施所述第一存储器阵列的多个存储器单元。
15.一种用于操作存储器系统的方法,其包括:
使用一或多个存储器控制器来随写入存储器存取请求一起接收将存储在所述存储器系统中的第一数据块,所述写入存储器存取请求指示与所述第一数据块相关联的第一一或多个上下文识别符;
使用所述一或多个存储器控制器至少部分地基于与所述第一数据块相关联的所述第一一或多个上下文识别符、与先前存储在所述存储器系统中的第二数据块相关联的第二一或多个上下文识别符、与所述第一数据块相关联的第一数据存取信息、与所述第二数据块相关联的第二数据存取信息、第一先前预测误差或其任何组合来确定所述第一数据块的第一所预测的下一目标时间;
使用所述一或多个存储器控制器来确定当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的持续时间是否小于与实施在所述存储器系统的处理器侧中的第一中间存储器层级相关联的第一中间持续时间阈值;
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于与实施在所述存储器系统的所述处理器侧中的所述第一中间存储器层级相关联的所述第一中间持续时间阈值时,使用所述一或多个存储器控制器指挥所述存储器系统将所述第一数据块的实例存储在实施在所述存储器系统的所述处理器侧中的一或多个存储器层级中;及
使用所述一或多个存储器控制器指挥所述存储器系统将所述第一数据块存储在实施在所述存储器系统的存储器侧中的最高存储器层级中,所述存储器侧经由存储器总线通信耦合到所述存储器系统的所述处理器侧。
16.根据权利要求15所述的方法,其中指挥所述存储器系统将所述第一数据块的所述实例存储在实施在所述存储器系统的所述处理器侧中的所述一或多个存储器层级中包括:
确定所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间是否小于与由所述存储器系统的所述处理器侧中的第一一或多个高速缓冲存储器实施的最低存储器层级相关联的最低持续时间阈值;
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于与所述最低存储器层级相关联的所述最低持续时间阈值时,指挥所述存储器系统将所述第一数据块的所述实例存储在由所述第一一或多个高速缓冲存储器实施的所述最低存储器层级中;及
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间不小于与所述最低存储器层级相关联的所述最低持续时间阈值时,指挥所述存储器系统将所述第一数据块的所述实例存储在由所述存储器系统的所述处理器侧中的第二一或多个高速缓冲存储器实施的所述第一中间存储器层级中。
17.根据权利要求16所述的方法,其中指挥所述存储器系统将所述第一数据块的所述实例存储在实施在所述存储器系统的所述处理器侧中的所述一或多个存储器层级中包括:
确定所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间是否小于与由所述存储器系统的所述处理器侧中的第三一或多个高速缓冲存储器实施的第二中间存储器层级相关联的第二中间持续时间阈值,其中所述第二中间存储器层级高于所述最低存储器层级且低于所述第一中间存储器层级;
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于与所述第二中间存储器层级相关联的所述第二中间持续时间阈值时,指挥所述存储器系统将所述第一数据块的所述实例存储在由所述第三一或多个高速缓冲存储器实施的所述第二中间存储器层级中;及
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间不小于与所述第二中间存储器层级相关联的所述第二中间持续时间阈值时,指挥所述存储器系统将所述第一数据块的所述实例存储在由所述存储器系统的所述处理器侧中的所述第二一或多个高速缓冲存储器实施的所述第一中间存储器层级中。
18.根据权利要求15所述的方法,其包括:
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间不小于与实施在所述存储器系统的所述处理器侧中的所述第一中间存储器层级相关联的所述第一中间持续时间阈值时,使用所述一或多个存储器控制器来确定所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间是否小于与实施在所述存储器系统的所述存储器侧中的第二中间存储器层级相关联的第二中间持续时间阈值,其中所述第二中间存储器层级高于所述第一中间存储器层级且低于所述最高存储器层级;及
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于与所述第二中间存储器层级相关联的所述第二中间持续时间阈值时,使用所述一或多个存储器控制器来指挥所述存储器系统将所述第一数据块的所述实例存储在实施在所述存储器系统的所述处理器侧中的所述第二中间存储器层级中。
19.根据权利要求15所述的方法,其中确定所述第一数据块的所述第一所预测的下一目标时间包括:
将以下各项输入到机器学习电路系统:识别所述第一数据块的第一块识别符、识别所述第二数据块的第二块识别符、与所述第一数据块相关联的所述第一一或多个上下文识别符、与所述第二数据块相关联的所述第二一或多个上下文识别符、与所述第一数据块相关联的所述第一数据存取信息、与所述第二数据块相关联的所述第二数据存取信息、所述第一先前预测误差或其任何组合;及
读取所述机器学习电路系统的输出,所述输出指示所述第一数据块的所述第一所预测的下一目标时间。
20.根据权利要求15所述的方法,其中使用所述一或多个存储器控制器指挥所述存储器系统将所述第一数据块存储在所述最高存储器层级中包括:
确定包括所述第一数据块及元数据的数据对象,所述元数据至少指示与所述第一数据块相关联的所述第一一或多个上下文识别符;及
指挥所述存储器系统至少部分地基于所述写入存储器存取请求中所指示的存储器地址来将所述数据对象存储在用于实施所述最高存储器层级的存储器阵列中。
21.根据权利要求15所述的方法,其包括:
在将所述第一数据块存储在所述存储器系统中之后,使用所述一或多个存储器控制器接收将所述第二数据块定为目标的读取存储器存取请求;
使用所述一或多个存储器控制器指挥所述存储器系统至少部分地基于所述读取存储器存取请求中所指示的读取存取参数来定位并输出所述第二数据块;
使用所述一或多个存储器控制器至少部分地通过更新与所述第二数据块相关联的存取计数参数及与所述第二数据块相关联的最后存取时间参数来更新与所述第二数据块相关联的所述第二数据存取信息;及
使用所述一或多个存储器控制器至少部分地基于与所述第二数据块相关联的所述第二数据存取信息来重新确定所述第一数据块的所述第一所预测的下一目标时间。
22.根据权利要求21所述的方法,其包括响应于重新确定所述第一数据块的所述第一所预测的下一目标时间:
使用所述一或多个存储器控制器来确定所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间是否小于与所述存储器系统中存储所述第一数据块的实例的当前存储器层级相关联的当前持续时间阈值;
在所述当前存储器层级不是实施在所述存储器系统中的最低存储器层级且所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于所述当前持续时间阈值时:
使用所述一或多个存储器控制器来确定所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间是否小于与实施在所述存储器系统中的较低存储器层级相关联的较低持续时间阈值;且
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于与所述较低存储器层级相关联的所述较低持续时间阈值时,使用所述一或多个存储器控制器来指挥所述存储器系统将所述第一数据块的所述实例存储在所述较低存储器层级中;及
在所述当前存储器层级不是实施在所述存储器系统中的最高存储器层级,所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间不小于所述当前持续时间阈值时:
使用所述一或多个存储器控制器确定所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间是否小于与实施在所述存储器系统中的较高存储器层级相关联的较高持续时间阈值;且
在所述当前时间与所述第一数据块的所述第一所预测的下一目标时间之间的所述持续时间小于与所述较低存储器层级相关联的所述较高持续时间阈值时,使用所述一或多个存储器控制器指挥所述存储器系统将所述第一数据块的所述实例存储在所述较高存储器层级中。
23.根据权利要求21所述的方法,其包括:
在接收所述读取存储器存取请求之前,使用所述一或多个存储器控制器至少部分地基于与所述第二数据块相关联的所述第二一或多个上下文识别符、与所述第二数据块相关联的第二数据存取信息、第二先前预测误差或其任何组合来确定所述第二数据块的第二所预测的下一目标时间;及
使用所述一或多个存储器控制器至少部分地基于所述第二数据块的所述第二所预测的下一目标时间与所述读取存储器存取请求将所述第二数据块实际上定为目标的时间之间的差来确定所述第一先前预测误差。
24.一种计算系统,其包括:
处理子系统,其包括处理电路系统及一或多个寄存器,其中所述处理子系统经配置以在所述处理电路系统将第一数据块定为目标且所述第一数据块引起寄存器未命中时输出将所述第一数据块定为目标的读取存储器存取请求;以及
存储器子系统,其通信耦合到所述处理子系统,其中所述存储器子系统包括:
多个分级存储器层;及
一或多个存储器控制器,其经配置以:
指挥所述存储器子系统至少部分地基于所述读取存储器存取请求中所指示的读取存取参数、所述第一数据块的第一上下文识别符或这两者来将所述第一数据块供应到所述处理子系统;
更新与所述第一数据块相关联的第一数据存取信息;
至少部分地基于与所述第一数据块相关联的所述第一上下文识别符、与先前存储在所述存储器子系统中的第二数据块相关联的第二上下文识别符及与所述第一数据块相关联的所述第一数据存取信息来确定所预测数据存取型式,所述所预测数据存取型式指示预期所述第二数据块接下来将被定为目标;且
在预期所述第二数据块接下来将被定为目标且当前存储器层不是所述多个分级存储器层中的最低存储器层时,指挥所述存储器子系统将所述第二数据块从所述当前存储器层复制到较低存储器层中。
25.根据权利要求24所述的计算系统,其中:
所述存储器子系统经配置以:
存储包括所述第一数据块及第一元数据的第一数据对象,所述第一元数据指示识别所述第一数据块的第一标签元数据及与所述第一数据块相关联的所述第一上下文识别符;且
存储包括所述第二数据块及第二元数据的第二数据对象,所述第二元数据指示识别所述第二数据块的第二标签元数据及与所述第二数据块相关联的所述第二上下文识别符;且
所述一或多个存储器控制器经配置以:
至少部分地基于所述第二数据对象中所包含的所述第二元数据来确定与所述第二数据块相关联的所述第二上下文识别符;
至少部分地基于所述第一数据对象中所包含的所述第一元数据、所述读取存储器存取请求或这两者来确定与所述第一数据块相关联的所述第一上下文识别符;且
通过至少部分地基于识别所述第一数据块的所述第一标签元数据连续地搜索与存储在所述多个分级存储器层中的有效数据相关联的标签元数据来在所述存储器子系统中定位所述第一数据块。
26.根据权利要求24所述的计算系统,其中所述一或多个存储器控制器包括神经网络电路系统,所述神经网络电路系统经配置以在输入识别所述第一数据块的第一块识别符、识别所述第二数据块的第二块识别符、与所述第一数据块相关联的所述第一上下文识别符、与所述第二数据块相关联的所述第二上下文识别符、与所述第一数据块相关联的所述第一数据存取信息、与所述第二数据块相关联的第二数据存取信息、先前预测误差或其任何组合时输出预期所述第二数据块接下来将被定为目标的第一指示。
27.根据权利要求26所述的计算系统,其中所述神经网络电路系统经配置以在输入识别所述第一数据块的所述第一块识别符、识别所述第二数据块的所述第二块识别符、与所述第一数据块相关联的所述第一上下文识别符、与所述第二数据块相关联的所述第二上下文识别符、与所述第一数据块相关联的所述第一数据存取信息、与所述第二数据块相关联的所述第二数据存取信息、所述先前预测误差或其任何组合时输出所述第二数据块的所预测的下一目标时间的第二指示。
28.根据权利要求24所述的计算系统,其中在所述处理电路系统将所述第一数据块定为目标且所述第一数据块引起寄存器未命中时,所述处理子系统经配置以:
确定所述计算系统的产生所述第一数据块、预期将所述第一数据块定为目标或这两者的方面;
确定用以指示所述计算系统的所述方面的所述第一上下文识别符;且
产生所述读取存储器存取请求,所述读取存储器存取请求至少指示与所述第一数据块相关联的所述第一上下文识别符、与所述第一数据块相关联的存储器地址、所述第一数据块的大小及读取启用位。
29.根据权利要求24所述的计算系统,其中:
在所述处理电路系统将所述第一数据块定为目标之前,所述处理子系统经配置以:
确定所述计算系统的产生所述第一数据块、预期将所述第一数据块定为目标或这两者的方面;
确定用以指示所述计算系统的所述方面的所述第一上下文识别符;
产生写入存储器存取请求,所述写入存储器存取请求至少指示与所述第一数据块相关联的所述第一上下文识别符、与所述第一数据块相关联的存储器地址、所述第一数据块的大小及写入启用位;且
将所述第一数据块随所述写入存储器存取请求一起输出到所述存储器子系统;且
响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以:
至少部分地基于所述写入存储器存取请求中所指示的所述存储器地址来确定用于识别所述第一数据块的标签元数据;
确定指示所述写入存储器存取请求中所指示的所述第一上下文识别符的上下文元数据;且
将使所述第一数据块与所述标签元数据及所述上下文元数据相关联的数据对象存储在实施在所述存储器子系统中的所述多个分级存储器层中的一或多个存储器层中。
30.一种存储器设备,其包括:
处理系统;及
存储器系统,其经由一或多个通信总线通信耦合到所述处理系统且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器系统包括:
第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;及
一或多个存储器控制器,其中:
所述处理系统经配置以输出将存储在所述存储器系统中的第一数据和指示所述第一数据的第一上下文的写入存储器存取请求;且
响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以:
至少部分地通过以下方式来确定所预测数据存取型式:至少部分地基于所述写入存储器存取请求中所指示的所述第一数据的所述第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定所述第一数据的下一所预测目标时间;且在当前时间与所述第一数据的所述下一所预测目标时间之间的持续时间小于与所述第一存储器层级相关联的第一持续时间阈值时,至少部分地通过指挥所述存储器系统将所述第一数据存储在使用所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中来控制在哪一或多个存储器层级中存储所述第一数据。
31.根据权利要求30所述的设备,其中所述存储器系统包括第一存储器阵列,所述第一存储器阵列经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级。
32.根据权利要求31所述的设备,其中:
所述存储器系统包括高于所述第一存储器层级且低于所述第二存储器层级的中间存储器层级。
33.根据权利要求32所述的设备,其中响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以至少部分地通过以下步骤来控制在哪一或多个存储器层级中存储所述第一数据:
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间小于与所述中间存储器层级相关联的中间持续时间阈值时,指挥所述存储器系统将所述第一数据存储在所述中间存储器层级中;及
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间不小于与所述中间存储器层级相关联的所述中间持续时间阈值时,指挥所述存储器系统将所述第一数据存储在使用所述第一存储器阵列实施的所述第二存储器层级中。
34.根据权利要求30所述的设备,其中所述一或多个存储器控制器包括机器学习块,所述机器学习块经配置以至少部分地基于指示一或多个先前数据存取型式的输入参数来确定指示预期在即将到来的控制时程期间出现的所述所预测数据存取型式的输出参数,其中:
所述机器学习块包括神经网络;
所述输出参数包括所述第一数据的第一所预测的下一目标时间、所述第二数据的第二所预测的下一目标时间、下一目标数据的预测或其任何组合;且
所述输入参数包括识别所述第一数据的第一块识别符、识别所述第二数据的第二块识别符、所述第一数据的所述第一上下文、所述第二数据的所述第二上下文、与所述第一数据相关联的数据存取信息、与所述第二数据相关联的数据存取信息、先前所预测数据存取型式与对应的实际数据存取型式之间的预测误差或其任何组合。
35.根据权利要求30所述的设备,其中所述存储器系统包括耦合在存储器总线的处理器侧上的第一部分,其中所述存储器系统的所述第一部分包括经配置以实施所述多个分级存储器层级中的所述第一存储器层级的所述第一一或多个高速缓冲存储器。
36.根据权利要求35所述的设备,其中所述一或多个存储器控制器中的第一存储器控制器经配置以至少部分地通过控制是否将数据存储在由所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中来预测性地控制所述存储器系统的所述第一部分中的数据存储。
37.根据权利要求30所述的设备,其中所述处理系统经配置以在所述处理系统将所述第一数据定为目标且所述第一数据的读取存储器存取请求引起寄存器未命中时,输出指示所述第一数据的所述第一上下文及读取存取参数的所述读取存储器存取请求;且
响应于接收到所述读取存储器存取请求,所述一或多个存储器控制器经配置以:
至少部分地基于所述读取存储器存取请求中所指示的所述读取存取参数来将所述第一数据定位并输出到所述处理系统;
更新与所述第一数据相关联的数据存取信息;且
至少部分地基于所述第一数据的所述第一上下文、第二数据的第二上下文、所述数据存取信息或其任何组合来确定所预测数据存取型式。
38.一种用于操作存储器系统的方法,其包括:
使用处理系统输出将存储在存储器系统中的第一数据和指示所述第一数据的第一上下文的写入存储器存取请求;
由所述存储器系统接收所述第一数据和所述写入存储器存取请求;以及
使用所述存储器系统的一或多个存储器控制器执行操作,其包括:
至少部分地通过以下方式来确定所预测数据存取型式:至少部分地基于所述写入存储器存取请求中所指示的所述第一数据的所述第一上下文、先前存储在所述存储器系统中的第二数据的第二上下文或这两者来确定所述第一数据的下一所预测目标时间;且
在当前时间与所述第一数据的所述下一所预测目标时间之间的持续时间小于与使用第一一或多个高速缓冲存储器实施的第一存储器层级相关联的第一持续时间阈值时,至少部分地通过指挥所述存储器系统将所述第一数据存储在所述第一存储器层级中来控制所述存储器系统的一或多个存储器层级中的哪一层级存储所述第一数据。
39.根据权利要求38所述的方法,其中确定所述第一数据的所述下一所预测目标时间包括:
将以下各项输入到机器学习电路系统:识别所述第一数据的第一块识别符、识别所述第二数据的第二块识别符、所述第一数据的所述第一上下文、所述第二数据的所述第二上下文、与所述第一数据相关联的第一数据存取信息、与所述第二数据相关联的第二数据存取信息、第一先前预测误差或其任何组合;及
读取所述机器学习电路系统的输出,所述输出指示所述第一数据的所述下一所预测目标时间。
40.根据权利要求38所述的方法,其包括:
使用所述存储器系统中的所述一或多个存储器控制器指示除了将所述第一数据存储在所述第一存储器层级之外,还将所述第一数据存储在第二存储器层级中,其中所述第二存储器层级高于所述第一存储器层级。
41.根据权利要求38所述的方法,其包括至少部分地通过控制是否将数据存储在所述第一存储器层级中、第一中间存储器层级中、第二中间存储器层级中、第二存储器层级中或其任何组合中而由一或多个存储器控制器中的第一存储器控制器预测性地控制所述存储器系统的数据存储,其中:
所述第二存储器层级高于由第一存储器阵列实施的所述第一存储器层级;
所述第一中间存储器层级高于所述第一存储器层级且低于由第二一或多个高速缓冲存储器实施的所述第二存储器层级;以及
所述第二中间存储器层级高于所述第一中间存储器层级且低于由第二存储器阵列实施的所述第二存储器层级。
42.根据权利要求41所述的方法,其中所述存储器系统包括第一部分和第二部分,其中所述第一部分耦合至存储器总线的处理器侧且所述第二部分耦合至所述存储器总线的存储器侧,且其中所述第一部分包括所述第一存储器层级且所述第二部分包括所述第二存储器层级、所述第一中间存储器层级和所述第二中间存储器层级。
43.根据权利要求41所述的方法,其中所述第一存储器阵列包括非易失性存储器阵列且所述第二存储器阵列包括易失性存储器阵列。
44.根据权利要求38所述的方法,其中控制所述存储器系统的一或多个存储器层级中的哪一层级存储所述第一数据包括确定数据对象,所述数据对象包括第一块和第二块,所述第一块包括所述第一数据,所述第二块包括指示与所述第一数据相关联的一或多个上下文识别符的元数据。
45.一种存储器系统,其包括:
处理组件;及
存储器组件,其经由一或多个通信总线通信耦合到所述处理组件且经配置以经由多个分级存储器层级提供数据存储,其中所述存储器组件包括:
第一一或多个高速缓冲存储器,其经配置以实施所述多个分级存储器层级中的第一存储器层级;及
一或多个存储器控制器,其中:
所述处理组件经配置以输出将存储在所述存储器组件中的第一数据和指示所述第一数据的第一上下文的写入存储器存取请求;且
响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以:
至少部分地通过以下方式来确定所预测数据存取型式:至少部分地基于所述写入存储器存取请求中所指示的所述第一数据的所述第一上下文、先前存储在所述存储器组件中的第二数据的第二上下文或这两者来确定所述第一数据的下一所预测目标时间;且
在当前时间与所述第一数据的所述下一所预测目标时间之间的持续时间小于与所述第一存储器层级相关联的第一持续时间阈值时,至少部分地通过指挥所述存储器组件将所述第一数据存储在使用所述第一一或多个高速缓冲存储器实施的所述第一存储器层级中来控制在哪一或多个存储器层级中存储所述第一数据。
46.根据权利要求45所述的系统,其中所述存储器组件包括第一存储器阵列,所述第一存储器阵列经配置以实施所述多个分级存储器层级中的第二存储器层级,所述第二存储器层级高于所述第一存储器层级。
47.根据权利要求46所述的系统,其中:
所述存储器组件包括高于所述第一存储器层级且低于所述第二存储器层级的中间存储器层级。
48.根据权利要求47所述的系统,其中响应于接收到所述写入存储器存取请求,所述一或多个存储器控制器经配置以至少部分地通过以下步骤来控制在哪一或多个存储器层级中存储所述第一数据:
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间小于与所述中间存储器层级相关联的中间持续时间阈值时,指挥所述存储器组件将所述第一数据存储在所述中间存储器层级中;及
在所述当前时间与所述第一数据的所述下一所预测目标时间之间的所述持续时间不小于与所述中间存储器层级相关联的所述中间持续时间阈值时,指挥所述存储器组件将所述第一数据存储在使用所述第一存储器阵列实施的所述第二存储器层级中。
49.根据权利要求45所述的系统,其中所述一或多个存储器控制器包括机器学习块,所述机器学习块经配置以至少部分地基于指示一或多个先前数据存取型式的输入参数来确定指示预期在即将到来的控制时程期间出现的所述所预测数据存取型式的输出参数,其中:
所述机器学习块包括神经网络;
所述输出参数包括所述第一数据的第一所预测的下一目标时间、所述第二数据的第二所预测的下一目标时间、下一目标数据的预测或其任何组合;且
所述输入参数包括识别所述第一数据的第一块识别符、识别所述第二数据的第二块识别符、所述第一数据的所述第一上下文、所述第二数据的所述第二上下文、与所述第一数据相关联的数据存取信息、与所述第二数据相关联的数据存取信息、先前所预测数据存取型式与对应的实际数据存取型式之间的预测误差或其任何组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210939605.1A CN115509955A (zh) | 2018-12-19 | 2019-12-12 | 预测性数据存储分级存储器系统及方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/226,244 US10691593B1 (en) | 2018-12-19 | 2018-12-19 | Predictive data storage hierarchical memory systems and methods |
US16/226,244 | 2018-12-19 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210939605.1A Division CN115509955A (zh) | 2018-12-19 | 2019-12-12 | 预测性数据存储分级存储器系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338980A CN111338980A (zh) | 2020-06-26 |
CN111338980B true CN111338980B (zh) | 2022-08-16 |
Family
ID=71097073
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911275498.1A Active CN111338980B (zh) | 2018-12-19 | 2019-12-12 | 预测性数据存储分级存储器系统及方法 |
CN202210939605.1A Withdrawn CN115509955A (zh) | 2018-12-19 | 2019-12-12 | 预测性数据存储分级存储器系统及方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210939605.1A Withdrawn CN115509955A (zh) | 2018-12-19 | 2019-12-12 | 预测性数据存储分级存储器系统及方法 |
Country Status (2)
Country | Link |
---|---|
US (3) | US10691593B1 (zh) |
CN (2) | CN111338980B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11221782B1 (en) * | 2019-03-27 | 2022-01-11 | Amazon Technologies, Inc. | Customizable progressive data-tiering service |
KR102351087B1 (ko) * | 2019-06-04 | 2022-01-14 | 주식회사 딥엑스 | 인공신경망의 데이터 로컬리티 기반의 데이터 캐슁을 이용하여 고속의 인공신경망 오퍼레이션을 지원하는 데이터 관리 장치 |
US20210026686A1 (en) * | 2019-07-22 | 2021-01-28 | Advanced Micro Devices, Inc. | Chiplet-integrated machine learning accelerators |
US11514317B2 (en) * | 2020-03-25 | 2022-11-29 | EMC IP Holding Company LLC | Machine learning based resource availability prediction |
US11037269B1 (en) * | 2020-03-27 | 2021-06-15 | Intel Corporation | High-speed resume for GPU applications |
US11397681B2 (en) * | 2020-12-21 | 2022-07-26 | Aux Mode Inc. | Multi-cache based digital output generation |
US11321171B1 (en) * | 2021-03-19 | 2022-05-03 | Microsoft Technology Licensing, Llc | Memory operations management in computing systems |
US11599415B2 (en) * | 2021-07-09 | 2023-03-07 | Microsoft Technology Licensing, Llc | Memory tiering techniques in computing systems |
CN116126750B (zh) * | 2023-02-24 | 2023-08-22 | 之江实验室 | 一种基于硬件特性的数据处理的方法及装置 |
CN116737605B (zh) * | 2023-08-11 | 2023-11-14 | 上海燧原科技有限公司 | 基于芯片多级存储的数据预取方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610903A (zh) * | 2015-10-21 | 2017-05-03 | 株式会社东芝 | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4050225B2 (ja) * | 2001-06-26 | 2008-02-20 | サン・マイクロシステムズ・インコーポレイテッド | マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置 |
US8127184B2 (en) * | 2008-11-26 | 2012-02-28 | Qualcomm Incorporated | System and method including built-in self test (BIST) circuit to test cache memory |
US8645631B2 (en) * | 2010-03-29 | 2014-02-04 | Via Technologies, Inc. | Combined L2 cache and L1D cache prefetcher |
US20110295587A1 (en) * | 2010-06-01 | 2011-12-01 | Eeckhout Lieven | Methods and systems for simulating a processor |
US8914580B2 (en) * | 2010-08-23 | 2014-12-16 | Apple Inc. | Reducing cache power consumption for sequential accesses |
US9384131B2 (en) * | 2013-03-15 | 2016-07-05 | International Business Machines Corporation | Systems and methods for accessing cache memory |
US9710173B2 (en) * | 2014-05-20 | 2017-07-18 | Micron Technology, Inc. | Read cache memory with DRAM class promotion |
-
2018
- 2018-12-19 US US16/226,244 patent/US10691593B1/en active Active
-
2019
- 2019-12-12 CN CN201911275498.1A patent/CN111338980B/zh active Active
- 2019-12-12 CN CN202210939605.1A patent/CN115509955A/zh not_active Withdrawn
-
2020
- 2020-05-27 US US16/884,815 patent/US11113193B2/en active Active
-
2021
- 2021-08-25 US US17/411,719 patent/US11748262B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106610903A (zh) * | 2015-10-21 | 2017-05-03 | 株式会社东芝 | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111338980A (zh) | 2020-06-26 |
US10691593B1 (en) | 2020-06-23 |
US11113193B2 (en) | 2021-09-07 |
US20200285577A1 (en) | 2020-09-10 |
US20210382821A1 (en) | 2021-12-09 |
CN115509955A (zh) | 2022-12-23 |
US20200201759A1 (en) | 2020-06-25 |
US11748262B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338980B (zh) | 预测性数据存储分级存储器系统及方法 | |
US11461011B2 (en) | Extended line width memory-side cache systems and methods | |
US11934317B2 (en) | Memory-aware pre-fetching and cache bypassing systems and methods | |
US10789177B2 (en) | Multiple memory type memory module systems and methods | |
US20200073809A1 (en) | Forward caching memory systems and methods | |
US11354246B2 (en) | Memory-side transaction context memory interface systems and methods based on clock cycles and wires | |
US10877889B2 (en) | Processor-side transaction context memory interface systems and methods | |
US11755488B2 (en) | Demand delay and data value correlated memory pre-fetching systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |