CN116348856A - 用于在基于处理器的系统中运行时检查存储器标签的方法、设备和系统 - Google Patents
用于在基于处理器的系统中运行时检查存储器标签的方法、设备和系统 Download PDFInfo
- Publication number
- CN116348856A CN116348856A CN202180068019.8A CN202180068019A CN116348856A CN 116348856 A CN116348856 A CN 116348856A CN 202180068019 A CN202180068019 A CN 202180068019A CN 116348856 A CN116348856 A CN 116348856A
- Authority
- CN
- China
- Prior art keywords
- memory
- storage
- tag
- address
- data
- 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
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
- 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/6022—Using a prefetch buffer or dedicated prefetch cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据处理系统包含存储数据路径,所述存储数据路径被配置成在存储操作中对与存储器中的高速缓存线相关联的存储地址执行标签检查。所述存储数据路径包含高速缓存查找电路,所述高速缓存查找电路被配置成预加载要在所述存储操作中更新的存储高速缓存线,其中所述存储高速缓存线包括所述存储器中的要在所述存储操作中更新的所述高速缓存线。所述存储数据路径还包含标签检查电路,所述标签检查电路被配置成将与所述存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。所述数据处理系统可以包含加载数据路径,所述加载数据路径被配置成通过将与加载地址相关联的加载地址标签和与加载操作相关联的加载操作标签进行比较,在所述加载操作中对所述存储器中的加载高速缓存线执行标签检查。
Description
优先权申请
本申请要求于2020年8月4日提交的并且题为“用于运行时检查存储器标签的方法、设备和系统(METHOD,APPARATUS,AND SYSTEM FOR Run-Time Checking of memorytags)”的美国临时专利申请序列号63/060,906和于2020年8月4日提交的并且题为“用于检索存储器标签的方法、设备和系统(METHOD,APPARATUS,AND SYSTEM FOR RETRIEVAL OFmemory tags)”的美国临时专利申请序列号63/060,898的优先权,所述美国临时专利申请通过引用整体并入本文。
技术领域
本公开的技术总体上涉及存储器标记,并且具体地涉及执行运行时检查存储器标签。
背景技术
微处理器通常可以执行涉及由微处理器访问存储器的代码。作为此类访问的一部分,可以允许代码执行指针运算。指针是指向特定存储器位置或存储器块的存储器地址。通常,在生产运行时期间可能不会检查指针运算以验证此类指针运算处于预期的存储器范围内。例如,这可能导致无法识别和响应难以识别的软件漏洞,所述漏洞表现为偶发的(即,难以复制的)崩溃或未观察到的数据损坏。另外,近年来,一些黑客攻击和存储器安全漏洞试图利用在生产运行时期间未验证的指针运算,以允许在微处理器上执行意外或恶意代码。特别是在微处理器处理敏感数据的应用中,这会产生安全问题,并且如果允许此类恶意代码在处理器上执行,则可能导致专有数据和代码丢失或被盗等。
解决上文所描述的调试和恶意代码问题的一种已知方法是存储器标记。存储器标记(有时也称为存储器着色)将标签与每个存储器分配相关联,使得相邻的标记存储器块具有不同的标签(颜色)。对分配的存储器的所有访问都依靠指针,所述指针包含用于验证的匹配标签。试图访问存储器中标签不匹配的存储器位置表明发生了错误,或者可能存在恶意或意外代码行为,并且操作系统或管理程序可能会基于不匹配采取措施(如向用户报告,标记试图访问的进程等),同时禁止访问标签不匹配的存储器位置。
虽然存储器标记可以解决上文所描述的问题中的一些问题,但是存储器标记的常规实施方案也对实施它的系统强加了成本。额外的物理存储被消耗,因为将标签与存储器分配相关联意味着标签必须存储在稀缺的物理存储资源中,可以访问所述稀缺的物理存储资源以与指针标签进行比较。然后那些资源无法用于程序代码或数据。进一步地,为了执行标签检查,处理器必须检索相关联的标签,这会消耗更多的存储器总线带宽。这可能会导致生产运行时环境中不可接受的性能下降,尤其是在涉及如加载和存储等存储器操作的情况下。在一些架构中,执行存储操作时性能下降可能特别严重,因为存在延迟提交存储的架构要求,直到数据写入到高速缓存中并且标签信息可用为止。暂停进一步的操作直到可以检查标签为止可能会造成显著的延迟。因此,期望开发一种存储器标记的实施方案,所述实施方案保留安全性和调试优势,同时减轻与执行存储器标记相关联的性能和其它损失。
发明内容
在详细描述中公开的各方面包含用于在基于处理器的系统中运行时检查存储器标签的方法、设备和系统。在不降低性能的情况下,数据处理系统中的存储操作中的运行时存储器标签检查包含将数据预加载到与存储地址相关联的高速缓存线中,所述存储地址在提交存储操作之前将被存储操作更新。预加载在高速缓存线中的数据字包含元数据字段,所述元数据字段包含与存储地址处的数据字中的数据组块相对应的地址标签。将地址标签和与存储操作相关联的操作标签与数据处理系统中通过指针运算计算的存储地址进行比较。响应于确定地址标签与操作标签不匹配,可以不完成存储操作。另一方面,数据处理系统中的加载操作中的运行时存储器标签检查包含访问与存储器中的高速缓存线相关联的加载地址相关联的数据和地址标签,并且将地址标签和与加载操作相关联的操作标签进行比较。高速缓存线中的数据字包含元数据字段,所述元数据字段包含存储器标签,所述存储器标签与数据字中的数据组块相对应。响应于确定地址标签与操作标签不匹配,可以不完成加载操作。
在这方面,一方面,公开了包括存储数据路径电路的示例性数据处理系统。存储数据路径被配置成预加载存储高速缓存线,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线。存储数据路径被配置成将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。
另一方面,公开了一种在数据处理系统中执行标签检查的示例性方法。所述方法包含:预加载存储高速缓存线,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;以及将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。
另一方面,公开了一种包括指令的示例性非暂时性计算机可读介质。所述指令在由处理器执行时使处理器预加载存储高速缓存线,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;并且将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。
另一方面,公开了包括存储数据路径电路的数据处理系统。所述数据处理电路包括:用于预加载存储高速缓存线的构件,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;以及用于将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较的构件。
附图说明
图1是基于处理器的系统中的数据处理系统的框图,所述基于处理器的系统被配置成在与高速缓存存储器中的高速缓存线相关联的存储和加载操作期间执行运行时存储器标签检查;
图2是在与高速缓存存储器中的高速缓存线相关联的存储操作期间执行标签检查的流程图;
图3是包含元数据的动态随机存取存储器(DRAM)数据字的框图,所述元数据包含纠错码(ECC)和标签信息;
图4是系统的框图,所述系统包含被配置成执行存储器标签检查的数据处理电路和用于存储和检索与数据字一起存储的标签信息的DRAM存储器;并且
图5是示例性基于处理器的系统的框图,所述基于处理器的系统被配置成在基于处理器的系统中执行运行时检查存储器标签。
具体实施方式
现在参考附图,描述了本公开的若干示例性方面。单词“示例性”在本文中意指“用作示例、实例或说明”。本文描述为“示例性”的任何方面不必被解释为优于或胜过其它方面。
在详细描述中公开的各方面包含用于在基于处理器的系统中运行时检查存储器标签的方法、设备和系统。在不降低性能的情况下,数据处理系统中的存储操作中的运行时存储器标签检查包含将数据预加载到与存储地址相关联的高速缓存线中,所述存储地址在提交存储操作之前将被存储操作更新。预加载在高速缓存线中的数据字包含元数据字段,所述元数据字段包含与存储地址处的数据字中的数据组块相对应的地址标签。将地址标签和与存储操作相关联的操作标签与数据处理系统中通过指针运算计算的存储地址进行比较。响应于确定地址标签与操作标签不匹配,可以不完成存储操作。另一方面,数据处理系统中的加载操作中的运行时存储器标签检查包含访问与存储器中的高速缓存线相关联的加载地址相关联的数据和地址标签,并且将地址标签和与加载操作相关联的操作标签进行比较。高速缓存线中的数据字包含元数据字段,所述元数据字段包含存储器标签,所述存储器标签与数据字中的数据组块相对应。响应于确定地址标签与操作标签不匹配,可以不完成加载操作。
在这方面,图1是下文更详细地讨论的数据处理系统100的框图,所述数据处理系统被配置成在与高速缓存存储器120相关联的加载操作和存储操作中执行运行时检查(“存储器标签检查”)存储器标签,所述高速缓存存储器在本文中也可以称为“高速缓存120”或“存储器120”。数据处理系统100包含被配置成执行加载操作的加载数据路径110和被配置成执行存储操作的存储数据路径130。例如,加载操作可以将与加载地址相关联的数据加载到数据处理系统100中的处理器中的寄存器中。如果数据的有效副本存储在高速缓存存储器120中的多个高速缓存线124(A)-124(Z)之一中,则可以从高速缓存存储器120加载数据。否则,可以从较高级别的高速缓存或存储器(例如,外部存储器)(未示出)检索数据。存储操作可以将与存储地址相关联的数据存储到高速缓存存储器120中的所述多个高速缓存线124(A)-124(Z)之一中。可替代地,存储操作可以写入到存储在较高高速缓存级别或存储器(未示出)处的数据的副本。在存储操作中写入数据可以包含将数据写入到数据字中的所有字节或选择的一组字节中,以更新数据字。应当注意的是,高速缓存存储器120不限于所述多个高速缓存线124(A)-124(Z)(即,不限于26个高速缓存线),这在本文仅用作实例。
加载数据路径110和存储数据路径130都耦接到高速缓存存储器120并且汇聚在提交电路138处。多个高速缓存线124(A)-124(Z)可以各自被格式化以存储数据字126。所述多个高速缓存线124(A)-124(Z)中的每个高速缓存线124包含数据部分124a和元数据部分124b以分别存储数据126a和元数据126b。元数据部分124b可以含有与数据部分124a中的数据126a相关联的标签信息128,其在本文中也可以称为存储器标签128。存储器标签128可以与存储在所述多个高速缓存线124(A)-124(Z)之一中的数据字126中的数据块或数据组块相关联。与加载操作相关联的所述多个高速缓存线124(A)-124(Z)之一在本文中可以称为加载高速缓存线124。
在一个实例中,数据部分124a可以存储至多六十四(64)字节的数据,其与四(4)个十六字节(16字节)的组块相对应并且数据部分124b可以为组块中的每个组块存储单独的存储器标签128。在另一个实例中,一个存储器标签128可以与存储在所述多个高速缓存线124(A)-124(Z)之一中的整个数据字126相对应。加载高速缓存线124中的数据部分124a可以存储任意数量的字节。应当理解,本文所指的64字节的数据部分124a只是一个实例。
图1中的加载数据路径110(也称为加载数据路径电路110)包含地址计算电路112、高速缓存查找电路114、标签检查电路116和数据返回电路118。为了加载数据路径110以对加载操作的最小性能影响(例如,在运行时期间)执行存储器标签检查,元数据126b(例如,包含标签信息128)贯穿加载操作的所有部分继续与数据字126相关联。在这方面,数据126a和元数据126b存储在与加载地址102相关联的高速缓存存储器120中的所述多个高速缓存线124(A)-124(Z)中的高速缓存线124(例如,加载高速缓存线124)中。地址计算电路112计算指向加载操作的目标存储器地址的加载地址102。地址计算电路112还可以向高速缓存查找电路114提供与加载操作相关联的加载操作标签104,然后将加载操作标签104传递到标签检查电路116。地址计算电路112还可以将加载操作标签104直接提供给标签检查电路116。
包含在加载数据路径110中的高速缓存查找电路114可以包含额外的数据路径宽度以解决在加载操作中与数据126a一起移动的元数据126b。高速缓存查找电路114从与加载地址102相关联的所述多个高速缓存线124(A)-124(Z)之一读取数据126a和存储器标签128,并且将存储器标签128提供给标签检查电路116。
标签检查电路116在加载数据路径110中执行存储器标签检查(“标签检查”),其包含确认与加载操作相关联的加载操作标签104和与加载地址102相关联的所述多个高速缓存线124(A)-124(Z)之一中的元数据部分124b中的存储器标签128(例如,加载地址标签128)相匹配。当加载数据路径110对数据126a的其它部分进行操作时,标签检查电路116可以执行数据126a的第一组块的标签检查。例如,标签检查电路116可以将加载操作标签与加载地址标签进行比较,以确定它们是否匹配,同时针对加载操作对齐数据和/或同时使用相关联的纠错码(ECC)位来检查从高速缓存存储器120读取的数据126a。在这方面,与未启用标签检查相比,启用标签检查的标签检查电路116可以不向完成加载操作的时间添加如另外时钟周期等延迟。标签检查电路116生成指示106以指示加载操作标签104与加载地址标签128匹配或者加载操作标签104与加载地址标签128不匹配。
加载数据路径110还包含数据返回电路118,所述数据返回电路执行加载从加载高速缓存线124读取的数据126a的操作。如上所述,加载操作可以包含,例如在数据126a根据需要对齐并检查错误之后,将数据126a加载到数据处理系统100中的寄存器(未示出)中。标签检查电路116向数据返回电路118提供指示106。如果启用存储器标签检查,则数据返回电路118可以响应于来自标签检查电路116的指示加载操作标签104与加载地址标签128匹配的指示106执行加载操作,并且响应于来自标签检查电路116的指示加载操作标签104与加载地址标签128不匹配的指示106,不执行加载操作。
存储数据路径130(也称为存储数据路径电路130)包含地址计算电路132、高速缓存查找电路134和标签检查电路136。地址计算电路132执行计算存储地址108的任务,所述存储地址是指向将由存储操作写入到或更新的存储器地址的指针。存储地址108与所述多个高速缓存线124(A)-124(Z)之一相关联,所述高速缓存线与高速缓存存储器120中的存储地址108相关联。关于存储操作,将由存储操作更新的所述多个高速缓存线124(A)-124(Z)之一可以被称为存储高速缓存线124。存储操作可以写入到存储在存储高速缓存线124中的数据126a的全部或仅一些字节。当写入数据字节时,存储高速缓存线124中的数据126a可以被认为要通过存储操作更新(例如,关于紧接在存储操作之前的指令更新)。
在常规的存储数据路径(未示出)中,高速缓存查找电路可以确定高速缓存存储器中是否存在含有与存储操作的存储地址相关联的数据的高速缓存线。如果数据不在高速缓存存储器中,此类高速缓存查找电路可以启动存储器操作,所述存储器操作可以将存储地址处的数据(例如,从外部存储器)复制到比高速缓存存储器120更远离处理电路的上级高速缓存存储器。然后,一旦存储操作被提交,存储操作可以更新与上级高速缓存存储器中的存储地址相关联的数据。如果高速缓存存储器中存在含有与存储地址相关联的数据的高速缓存线,存储操作将在存储操作被提交后将与存储地址相关联的数据写入到高速缓存存储器中(即,更新数据)。
相反,示例性高速缓存查找电路134通过在提交存储操作之前将数据126a预加载到高速缓存存储器120中来执行支持存储器标签检查的操作。地址计算电路132计算存储操作的存储地址108,并且将存储地址108和存储操作标签122提供给高速缓存查找电路134。存储操作标签122包含与对存储地址108的存储操作相关联的标签信息。在实例中,存储操作标签122可以由存储器系统分配给存储地址108并且用于检查存储操作。高速缓存查找电路134确定与存储地址相关联的数据126a是否已经存储在高速缓存存储器120中的存储高速缓存线124中。
在第一种情况下,高速缓存查找电路134确定与存储地址108相关联的数据126a存储在高速缓存存储器120中。在这种情况下,存储与存储地址108相关联的数据126a的所述多个高速缓存线124(A)-124(Z)之一可以称为存储高速缓存线124,其将由存储操作更新。响应于确定与存储地址108相关联的数据存储在高速缓存存储器120中,高速缓存查找电路134从存储高速缓存线124读取包含存储器标签128的元数据126b。关于存储操作,存储器标签128可以称为存储地址标签128。高速缓存查找电路134向标签检查电路136提供存储地址标签128。标签检查电路136将与存储地址108相关联的存储地址标签128(例如,来自元数据126b)和与存储操作相关联的存储操作标签122(例如,由地址计算电路132提供,其可以是通过高速缓存查找电路134)进行比较。基于所述比较,标签检查电路136生成指示142,所述指示指示存储地址标签128与存储操作标签122相匹配或指示存储地址标签128与存储操作标签122不匹配。当存储操作被提交时,数据返回电路118使用指示142来确定是否完成存储操作。
在第二种情况下,高速缓存查找电路134确定高速缓存存储器120中的所述多个高速缓存线124(A)-124(Z)不含有与用于存储操作的存储地址108相关联的数据126a和元数据126b。然而,需要与存储地址108相关联的元数据126b中的存储地址标签128来执行与存储操作标签122的比较。在示例性方面,为了避免增加存储操作的延迟,存储数据路径130在检索存储地址108处(例如,在外部存储器或较高级别的高速缓存中)的数据字126并且将数据字126存储到高速缓存存储器120中与存储地址108相关联的所述多个高速缓存线124(A)-124(Z)之一之前不等待直到存储操作提交为止。换句话说,响应于确定与存储地址108相关联的数据126a没有存储在高速缓存存储器120中的所述多个高速缓存线124(A)-124(Z)中的任何高速缓存线中,高速缓存查找电路134在通过存储操作更新存储高速缓存线124之前,预加载高速缓存存储器120中具有与存储地址108相关联的数据126a和元数据126b的存储高速缓存线124。在存储地址108的单个读取操作中,包含数据126a和元数据126b两者,包含与存储地址108相关联的存储地址标签128的数据字126被复制到高速缓存查找电路134中以存储在高速缓存存储器120中。在这种情况下,存储高速缓存线124是其中存储地址108处的数据字126被高速缓存的高速缓存线124。在地址计算电路132计算出用于存储操作的存储地址108之后,预加载将由高速缓存查找电路134执行。换句话说,通过从外部存储器或从较高级别的高速缓存中读取存储地址108处的数据126a并且在存储操作提交之前将(未更新的)数据126a的副本写入到存储高速缓存线124中,存储数据路径将与存储地址108相关联的数据126a预加载到存储高速缓存线124中。
为了支持本文所公开的存储器标签检查,较高级别的高速缓存和外部存储器还将存储器标签128存储在元数据126b中。响应于在存储高速缓存线124中预加载与存储地址108相关联的存储地址标签128,高速缓存查找电路134可以向标签检查电路136提供存储地址标签128。因此,存储地址标签128可以在实际提交存储操作之前在标签检查电路136中与存储操作标签122进行比较。因此,如果在运行时期间启用此类存储器标签检查,则对性能的影响最小或没有影响。
数据处理系统100包含耦接到加载数据路径110和存储数据路径130的提交电路138。响应于从标签检查电路136接收到存储地址标签128与存储操作标签122不匹配的指示142,提交电路138不完成更新存储高速缓存线124的存储操作。换句话说,如果为存储操作提供的存储操作标签122和与存储地址108相关联的所述多个存储高速缓存线124(A)-124(Z)之一的元数据部分124b中的标签信息128不匹配,则可能不完成存储操作。
可替代地,响应于接收到存储地址标签128与存储操作标签122相匹配的指示142,提交电路138完成更新存储高速缓存线124的存储操作。以这种方式针对存储操作执行存储器标签检查允许隐藏先前与存储操作和标签比较相关联的大部分延迟,并且可以在对数据处理系统的性能影响相对较小的情况下,为运行时生产代码启用存储器标记。
可以包含存储缓冲器140以跟踪和维护关于所有等待的存储操作的信息。由存储缓冲器140维护的信息可以包含存储地址108、数据126a和与存储操作相关联的标签信息128。当数据字126在单个读取操作中被复制到高速缓存查找电路134中时,包含数据126a和元数据126b的数据字126可以被复制到存储缓冲器140中。以此方式,在存储操作中由高速缓存查找电路134预加载的数据126a和标签信息128可以立即存储在存储高速缓存线124中或者预加载的数据126a和元数据126b可以保存在存储缓冲器140中,其中基于存储操作更新数据126a。在一个实例中,预加载存储高速缓存线124,并且响应于提交存储操作和存储地址标签128与存储操作标签122相匹配的指示142,通过更新存储高速缓存线124完成存储操作。可替代地,如果高速缓存查找电路134包含存储缓冲器140,则提交电路138可以在存储高速缓存线124被预加载之前基于存储操作更新存储缓冲器140中与存储地址108相关联的数据126a。然后,响应于提交存储操作和存储地址标签128与存储操作标签122相匹配的指示142,存储缓冲器140中的更新的数据126a被写入到存储高速缓存线124。
在另一个示例性方面,加载数据路径110和存储数据路径130的用于存储器标签检查的部分可以基于是否需要特定代码段或程序的存储器标签检查而被启用或禁用。因此,对于没有受益于存储器标记提供的增强调试能力或安全性的应用,可以最小化存储器标记的性能影响。
此外,本领域的技术人员将认识到可以进一步优化存储数据路径130以最小化启用存储器标记时的性能影响。例如,当预加载与存储相关联的数据时,可以将存储重新提交到“正常”存储数据路径130,或者可以直接提供数据(例如,通过转发网络或其它类似结构)。可以针对外部窥探操作进一步检查存储。
可以针对等待的存储检查加载以查看“较旧的”存储操作是否等待请求的加载地址。通常,为了避免在存储完成之前停止加载操作而导致的性能损失,与等待的存储相关联的数据将被转发到加载。然而,在实施存储器标记的系统中允许直接转发可能存在问题,因为存储操作标签是可用的,但存储地址标签可能尚未获得,因此尚未形成用于存储操作的存储器标签检查。在这种情况下,可以将加载操作标签与存储操作标签进行比较,并且如果这些标签不匹配,则禁用存储转发。虽然这意味着在标签不匹配的情况下存储转发的性能益处将无法实现,但在操作中这将不会导致显著的性能下降。这是因为,在存储操作标签与加载操作标签相匹配但存储地址的标签与存储操作的标签不匹配的情况下,存储操作将失败,并且将产生故障。在存储操作标签与加载操作标签不匹配的情况下,这些标签中的至少一个标签将导致故障。因此,所描述的方面保持了存储转发的大部分益处,同时保留了存储器标记的安全性和调试益处。
图2是展示了数据处理系统100中的在对性能影响最小(如果有的话)的情况下,在存储操作中对与存储地址相关联的存储器中的高速缓存线执行存储器标签检查的方法200的流程图。所述方法任选地包含确定与存储地址108相关联的数据126a是否存储在存储器120中的存储高速缓存线124中(框202)。所述方法包含预加载存储高速缓存线124,所述存储高速缓存线包括存储器120中的要在存储操作中更新的高速缓存线124(框204)。所述方法包含将与存储地址108相关联的存储地址标签128和与存储操作相关联的存储操作标签122进行比较(框206)。
图3是格式与图1中的高速缓存线124相对应的动态随机存取存储器(DRAM)数据字310的框图300,包含数据部分312和元数据部分314,其可以作为原子单元被检索和存储。包含对DRAM数据字310的讨论是为了更好地理解示例性数据处理系统100可以执行运行时存储器标签检查而具有很少或没有性能下降的方式。具体地,因为当访问DRAM数据字310时元数据部分314与数据部分312一起被检索,所以存储在元数据部分314中的标签信息可以被检索而不需要执行另外的存储器访问。
作为实例,元数据部分314可以包含ECC位314a。根据实施的ECC级别,数据处理系统100可以提供对DRAM数据字310中一定数量的错误的检测,并且还可以允许纠正一定数量的错误。由于例如DRAM数据字310遵守的DRAM规范(如DDR4)不需要特定级别的ECC,所以可以减少元数据部分314中的ECC位314a的位数。例如,通过改变与DRAM数据字310相关联的ECC算法(即,改变为比常规ECC算法需要更少ECC位的算法),不同位数的ECC位314a存储在元数据部分314中。因此,元数据部分314的剩余位可用于存储其它信息,包含存储器标签314b。以此方式,元数据部分314还可以包含存储器标签314b。由于存储器标签314b的位数可以变化,如上文所讨论的,数据处理系统100可以调整为ECC检查和存储器标签粒度的期望折衷。ECC位314a和存储器标签314b的总数小于或等于元数据部分314的位数。对于每次访问DRAM数据字310,元数据部分314将与数据部分312一起被检索。因此,每当检索到DRAM数据字310时,ECC位314a和存储器标签314b都会被检索而无需执行任何另外的存储器访问,这可以允许图1中的数据处理电路100使用存储器标签314b执行存储器标签检查以进行调试操作和安全性检查,而不会因将存储器标签与数据分开存储(例如,如在除了数据访问之外还必须检索的单独的存储器位置)的常规方式产生性能影响。
本领域技术人员将认识到ECC位数与标签位数之间的权衡是工程选择的问题。不同的系统可能具有不同的用例或要求,因此可以在较高级别的ECC(即,较多的可检测和可纠正错误)与较大粒度的存储器标签之间进行选择。所有这些不同的实施方案都在本公开的教导的范围内。进一步地,标签与数据之间的关系可以是基于不同架构要求、可用存储和类似因素的设计选择。例如,一些架构可以指定每个标签与16字节的数据组块相关联,使得64字节的DRAM字将在相关联的元数据部分中存储4个单独的标签(每个16字节的组块一个)。然而,标签与特定大小的存储器组块之间的其它关联粒度是可能的,并且具体地在本公开的教导内。
图4是包含可以与图1中的数据处理电路100相对应的处理器核410的系统400的框图。处理器核410包括具有如高速缓存线414等多个高速缓存线的高速缓存存储器412(“高速缓存412”)。高速缓存存储器412可以与图1中的高速缓存存储器120相对应并且具有图3中的DRAM数据字310的格式。处理器核410通过互连电路420(“互连420”)耦接到存储器控制器430。处理器核410被配置成通过互连电路420和存储器控制器430执行与DRAM 440的存储器事务。虽然所述系统已经用单个处理器核、互连、存储器控制器和DRAM进行了说明,但这仅仅是为了说明的目的,并且本公开的教导类似地适用于具有多个处理器核、互连电路、存储器控制器和DRAM的系统。
在图4的系统400中,DRAM 440可以包含如DRAM数据字444等多个DRAM数据字,其可以类似于上文图3中讨论的DRAM数据字310。DRAM数据字444可以包含数据部分444a和元数据部分444b,其可以包含ECC和标签信息。如上文参考图3所讨论的,图4的系统400采用使用不消耗元数据部分444b的所有位的算法的ECC级别,留下空间以在元数据部分444b中存储存储器标签。当处理器410检索如DRAM数据字444等DRAM数据字时,数据部分444a和元数据部分444b(包含ECC和存储器标签)都被存储在如高速缓存线414等高速缓存存储器412的线中。例如,数据部分444a可以存储在高速缓存线414的数据部分414a中,并且元数据部分444b可以存储在高速缓存线414的元数据部分414b中。
为了支持改变的ECC算法,存储器控制器430可以包含ECC逻辑电路432,其实施为系统400选择的特定ECC算法。尽管ECC逻辑电路432被展示为存储器控制器的一部分,但是本领域技术人员将认识到ECC解码和编码也可以在存储器控制器之前或之后进行,并且ECC逻辑电路的具体放置432是设计选择的问题。
虽然用于存储和检索存储器标签信息的本发明系统已经在双倍数据速率(DDR)DRAM的背景下进行了讨论,本公开的教导不限于所述存储介质,但可以应用于其它存储介质如非易失性存储器(NVM)、高带宽存储器(HBM)和其它已知存储介质,只要那些存储介质提供元数据的存储和检索以及可以如上文关于图3所述配置的数据。同样,虽然如本文所讨论的要存储的额外元数据包括存储器标签,但是本领域技术人员将认识到可以在其它方面存储其它类型的元数据。进一步地,虽然已经在常规存储ECC信息的相关联元数据区域的背景下讨论了用于存储和检索存储器标签信息的本发明系统,本领域的技术人员将认识到,也可以使用与存储器位置相关联的其它元数据区域,只要这些元数据区域连同对所述存储器位置的数据访问一起被检索,而不执行不检索数据的存储器访问操作。
可以在任何基于处理器的装置中提供或集成根据本文公开的各方面的被配置成执行运行时检查存储器标签的示例性处理器。实例包含但不限于服务器、计算机、便携式计算机、台式计算机、移动计算装置、机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝电话、智能手机、会话发起协议(SIP)电话、平板电脑、平板手机、可穿戴计算装置(例如,智能手表、健康或健身跟踪器、眼镜等)、个人数字助理(PDA)、监测器、计算机监测器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆组件、航空电子系统、无人驾驶飞机和多旋翼直升机。
在这方面,图5展示了可以执行运行时存储器标签检查的基于处理器的系统500的实例。在此实例中,基于处理器的系统500包含处理器501,所述处理器包含高速缓存502。处理器501与图1中的数据处理系统100和图4中的处理器核410相对应。高速缓存502与图1中的高速缓存存储器120和图4中的高速缓存存储器412相对应。处理器501耦接到系统总线510并且可以通过在系统总线510上交换地址、控制和数据信息来与其它装置通信。例如,处理器501可以将总线事务请求传送到存储器系统550中的存储器控制器551。存储器系统550中的存储器控制器551和存储器阵列552与图4中的存储器控制器430和DRAM 440相对应。处理器501可以包含图1的加载数据路径110、存储数据路径130和高速缓存存储器120的特征,并且可以访问以图3中的DRAM数据字310的格式存储在存储器系统550中的数据,从而执行基于处理器的系统500中的运行时存储器标签检查。尽管图5中未示出,但是可以提供多个系统总线510,其中每个系统总线510构成不同的结构。
其它装置可以连接到系统总线510。如图5中所展示的,作为实例,这些装置可以包含一个或多个输入装置520、一个或多个输出装置530、一个或多个网络接口装置540和一个或多个显示控制器560。输入装置520可以包含任何类型的输入装置,包含但不限于输入键、开关、语音处理器等。输出装置530可以包含任何类型的输出装置,包含但不限于音频、视频、其它视觉指示器等。网络接口装置540可以是被配置成允许将数据交换到网络545和从网络交换数据的任何装置。网络545可以是任何类型的网络,包含但不限于有线或无线网络、私有或公共网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络和互联网。网络接口装置540可以被配置成支持所期望的任何类型的通信协议。存储器系统550可以包含耦接到一个或多个存储器阵列552的存储器控制器551。
处理器501还可以被配置成通过系统总线510访问显示控制器560以控制发送到一个或多个显示器562的信息。显示控制器560通过一个或多个视频处理器561向显示器562发送待显示的信息,所述视频处理器将待显示的信息处理成适合于显示器562的格式。显示器562可以包含任何类型的显示器,包含但不限于阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、发光二极管(LED)显示器等。
本领域的技术人员将进一步理解,结合本文所公开的各方面描述的各种说明性逻辑块、模块、电路和算法可以被实施为电子硬件、存储在存储器或另一计算机可读介质中且由处理器或其它处理装置执行的指令或两者的组合。本文公开的存储器可以是任何类型和大小的存储器,并且可以被配置成存储所期望的任何类型的信息。为了清楚地示出这种可互换性,上文中已经根据它们的功能描述了各种说明性的组件、块、模块、电路和步骤。如何实施这种功能取决于特定的应用、设计选择和/或对整个系统的设计约束。熟练的技术人员可以针对每种特定的应用以不同的方式实施所描述的功能,但是此类实施方案决定不应该被解释为导致脱离本公开的范围。
结合本文公开的各方面描述的各种说明性逻辑块、模块和电路可以利用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、分立门或晶体管逻辑、分立硬件组件或被设计成执行本文描述的功能的它们的任意组合来实施或执行。处理器可以是微处理器,但是在替代性方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可以被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一个或多个微处理器与DSP核的组合或者任何其它此类配置)。
本文公开的各方面可以以硬件和存储在硬件中的指令实现,并且可以驻留在例如随机存取存储器(RAM)、闪存存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其它形式的计算机可读介质中。示例性存储介质耦接到处理器,使得处理器可以从存储介质读取信息,并且向存储介质写入信息。在替代性方案中,存储介质可以与处理器成一整体。处理器和存储介质可以存在于ASIC中。ASIC可以驻留在远程站中。在替代性方案中,处理器和存储介质可作为离散组件驻留在远程站、基站或服务器中。
还应注意,在本文中的示例性方面中的任何一个中描述的操作步骤是为了提供示例和讨论而描述的。所描述的操作可以以不同于所示的顺序的多种不同顺序来执行。另外,在单个操作步骤中描述的操作实际上可以在多个不同的步骤中执行。另外,可以组合在示例性方面中讨论的一个或多个操作步骤。应当理解的是,流程图中示出的操作步骤可以进行多种不同的修改,这对本领域技术人员来说是显而易见的。本领域的技术人员还将理解,可以使用各种不同的技术和方法中的任何一种来表示信息和信号。例如,贯穿以上描述可能提及的数据、指令、命令、信息、信号、位、码元和码片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任意组合来表示。
提供对本公开的以上描述以使本领域的任何技术人员能够实施或使用本公开。对本公开的各种修改对于所属领域的技术人员来说将是显而易见的,且本文中定义的一般原理可适用于其它变型。因此,本公开并非旨在受限于本文所描述的实例和设计,而是要符合与本文所公开的原理和新颖特征相一致的最广泛的范围。
以下带编号的条款描述了实施方案实例:
1.一种设备,其包括:
存储数据路径,所述存储数据路径包括高速缓存查找电路和标签检查电路,并且被配置成执行具有相关联存储器标签的存储操作;
所述高速缓存查找电路被配置成预加载与将写入数据的所述存储操作相关联的高速缓存线;并且
所述标签检查电路被配置成针对与存储器中的所述高速缓存线相关联的标签来检查包含在所述存储操作中的标签。
2.一种方法,其包括:
将与将写入数据的存储操作相关联的高速缓存线和相关联的存储器标签预加载到高速缓存中;以及
针对与预加载的高速缓存线相关联的所述标签检查与所述存储操作相关联的存储器标签。
3.一种非暂时性计算机可读介质,其包括指令,所述指令在由处理器执行时使所述处理器:
将与将写入数据的存储操作相关联的高速缓存线和相关联的存储器标签预加载到高速缓存中;并且
针对与预加载的高速缓存线相关联的所述标签检查与所述存储操作相关联的存储器标签。
Claims (36)
1.一种数据处理系统,其包括存储数据路径电路,所述存储数据路径电路被配置成:
预加载存储高速缓存线,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;并且
将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。
2.根据权利要求1所述的数据处理系统,其中所述存储数据路径电路被进一步配置成:
确定与所述存储地址相关联的数据是否存储在所述存储器中的所述存储高速缓存线中;并且
响应于确定与所述存储地址相关联的所述数据不在所述存储器中,预加载具有与所述存储地址相关联的所述数据和所述存储地址标签的所述存储高速缓存线。
3.根据权利要求2所述的数据处理系统,其中所述存储数据路径电路被进一步配置成响应于确定与所述存储地址相关联的所述数据存储在所述存储器中,从所述存储器中的所述存储高速缓存线读取所述存储地址标签。
4.根据权利要求3所述的数据处理系统,其被进一步配置成:
计算所述存储操作的所述存储地址;并且
获得与所述存储操作相关联的所述存储操作标签。
5.根据权利要求4所述的数据处理系统,其被进一步配置成:
响应于将所述存储地址标签与所述存储操作标签进行比较,指示所述存储地址标签是否与所述存储操作标签相匹配;并且
响应于所述存储地址标签与所述存储操作标签不匹配的所述指示,未完成更新所述存储高速缓存线的所述存储操作。
6.根据权利要求5所述的数据处理系统,其被进一步配置成:
响应于所述存储地址标签与所述存储操作标签相匹配的所述指示,完成更新所述存储高速缓存线的所述存储操作。
7.根据权利要求1所述的数据处理系统,其被进一步配置成:
基于所述存储操作更新所述存储器中的所述存储高速缓存线中的所述数据。
8.根据权利要求1所述的数据处理系统,其被进一步配置成:
将与所述存储地址相关联的数据和与所述存储地址相关联的所述存储地址标签预加载到存储缓冲器;
基于所述存储操作更新所述存储缓冲器中的与所述存储地址相关联的所述数据以生成更新的存储高速缓存线数据;并且
将所述更新的存储高速缓存线数据写入到所述存储高速缓存线。
9.根据权利要求8所述的数据处理系统,其中:
被配置成预加载与所述存储地址相关联的数据和与所述存储地址相关联的所述存储地址标签的所述数据处理系统被进一步配置成在读取操作中将包含与所述存储地址相关联的所述数据和存储地址标签的数据字读取到所述存储缓冲器中。
10.根据权利要求1所述的数据处理系统,其进一步包括:
加载数据路径,所述加载数据路径被配置成:
在加载操作中访问与来自加载高速缓存线的加载地址相关联的数据和加载地址标签;并且
将所述加载地址标签和与所述加载操作相关联的加载操作标签进行比较。
11.根据权利要求10所述的数据处理系统,所述加载数据路径被进一步配置成:
响应于所述加载地址标签与所述加载操作标签相匹配,返回与所述加载地址相关联的所述数据以完成所述加载操作;并且
响应于所述加载地址标签与所述加载操作标签不匹配,不返回与所述加载地址相关联的所述数据。
12.根据权利要求1所述的数据处理系统,其被集成到集成电路(IC)中。
13.根据权利要求12所述的数据处理系统,其被进一步集成到选自由以下组成的组的装置中:服务器、计算机、便携式计算机、台式计算机、移动计算装置、机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、全球定位系统(GPS)装置、移动电话、蜂窝电话、智能手机、会话发起协议(SIP)电话、平板电脑、平板手机、可穿戴计算装置(例如,智能手表、健康或健身跟踪器、眼镜等)、个人数字助理(PDA)、监测器、计算机监测器、电视、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器、汽车、车辆组件、航空电子系统、无人驾驶飞机和多旋翼直升机。
14.一种在数据处理系统中执行标签检查的方法,所述方法包括:
预加载存储高速缓存线,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;以及
将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。
15.根据权利要求14所述的方法,其进一步包括:
确定与所述存储地址相关联的数据是否存储在所述存储器中的所述存储高速缓存线中;以及
响应于确定所述存储高速缓存线没有存储在所述存储器中,预加载具有与所述存储地址相关联的所述数据和所述存储地址标签的所述存储高速缓存线。
16.根据权利要求15所述的方法,其进一步包括:
响应于确定与所述存储地址相关联的所述数据存储在所述存储器中,从所述存储器中的所述存储高速缓存线读取所述存储地址标签。
17.根据权利要求16所述的方法,其进一步包括:
计算所述存储操作的所述存储地址;以及
获得与所述存储操作相关联的所述存储操作标签。
18.根据权利要求17所述的方法,其进一步包括:
指示所述存储地址标签是否与所述存储操作标签相匹配;以及
响应于所述存储地址标签与所述存储操作标签不匹配的所述指示,未完成更新所述存储高速缓存线的所述存储操作。
19.根据权利要求18所述的方法,其进一步包括:
响应于所述存储地址标签与所述存储操作标签相匹配的所述指示,完成更新所述存储高速缓存线的所述存储操作。
20.根据权利要求14所述的方法,其进一步包括:
响应于所述存储操作,更新所述存储高速缓存线。
21.根据权利要求14所述的方法,其进一步包括:
将与所述存储地址相关联的所述数据和与所述存储地址相关联的所述存储地址标签预加载到存储缓冲器;
基于所述存储操作更新所述存储缓冲器中的与所述存储地址相关联的所述数据以生成更新的存储高速缓存线数据;以及
将所述更新的存储高速缓存线数据写入到所述存储高速缓存线。
22.根据权利要求21所述的方法,其中:
预加载与所述存储地址相关联的数据和与所述存储地址相关联的所述存储地址标签进一步包括在读取操作中将包含与所述存储地址相关联的所述数据和存储地址标签的数据字读取到所述存储缓冲器中。
23.根据权利要求14所述的方法,其进一步包括:
在加载操作中访问与来自加载高速缓存线的加载地址相关联的数据和加载地址标签;以及
将所述加载地址标签和与所述加载操作相关联的加载操作标签进行比较。
24.根据权利要求23所述的方法,其进一步包括:
响应于所述加载地址标签与所述加载操作标签相匹配,返回与所述加载地址相关联的所述数据以完成所述加载操作;以及
响应于所述加载地址标签与所述加载操作标签不匹配,不返回与所述加载地址相关联的所述数据。
25.一种非暂时性计算机可读介质,其包括指令,所述指令在由处理器执行时使所述处理器:
预加载存储高速缓存线,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;并且
将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较。
26.根据权利要求25所述的非暂时性计算机可读介质,其进一步使所述处理器:
确定与所述存储地址相关联的数据是否存储在所述存储器中的所述存储高速缓存线中;并且
响应于确定所述存储高速缓存线没有存储在所述存储器中,预加载具有与所述存储地址相关联的所述数据和所述存储地址标签的所述存储高速缓存线。
27.根据权利要求26所述的非暂时性计算机可读介质,其进一步使所述处理器:
响应于确定与所述存储地址相关联的所述数据存储在所述存储器中,从所述存储器中的所述存储高速缓存线读取所述存储地址标签。
28.根据权利要求27所述的非暂时性计算机可读介质,其进一步使所述处理器:
计算所述存储操作的所述存储地址;并且
获得与所述存储操作相关联的所述存储操作标签。
29.根据权利要求28所述的非暂时性计算机可读介质,其进一步使所述处理器:
指示所述存储地址标签是否与所述存储操作标签相匹配;并且
响应于所述存储地址标签与所述存储操作标签不匹配的所述指示,未完成更新所述存储高速缓存线的所述存储操作。
30.根据权利要求29所述的非暂时性计算机可读介质,其进一步使所述处理器:
响应于所述存储地址标签与所述存储操作标签相匹配的所述指示,完成更新所述存储高速缓存线的所述存储操作。
31.根据权利要求25所述的非暂时性计算机可读介质,其进一步使所述处理器:
响应于所述存储操作,更新所述存储高速缓存线。
32.根据权利要求25所述的非暂时性计算机可读介质,其进一步使所述处理器:
将与所述存储地址相关联的所述数据和与所述存储地址相关联的所述存储地址标签预加载到存储缓冲器;
基于所述存储操作更新所述存储缓冲器中的与所述存储地址相关联的所述数据以生成更新的存储高速缓存线数据;并且
将所述更新的存储高速缓存线数据写入到所述存储高速缓存线。
33.根据权利要求32所述的非暂时性计算机可读介质,其中使所述处理器:
预加载与所述存储地址相关联的数据和与所述存储地址相关联的所述存储地址标签进一步使所述处理器在读取操作中将包含与所述存储地址相关联的所述数据和存储地址标签的数据字读取到所述存储缓冲器中。
34.根据权利要求32所述的非暂时性计算机可读介质,其进一步使所述处理器:
在加载操作中访问与来自加载高速缓存线的加载地址相关联的数据和加载地址标签;并且
将所述加载地址标签和与所述加载操作相关联的加载操作标签进行比较。
35.根据权利要求25所述的非暂时性计算机可读介质,其进一步使所述处理器:
响应于所述加载地址标签与所述加载操作标签相匹配,返回与所述加载地址相关联的所述数据以完成所述加载操作;并且
响应于所述加载地址标签与所述加载操作标签不匹配,不返回与所述加载地址相关联的所述数据。
36.一种数据处理系统,其包括存储数据路径电路,数据处理电路包括:
用于预加载存储高速缓存线的构件,所述存储高速缓存线包括存储器中的要在存储操作中更新的高速缓存线;以及
用于将与存储地址相关联的存储地址标签和与所述存储操作相关联的存储操作标签进行比较的构件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063060898P | 2020-08-04 | 2020-08-04 | |
US202063060906P | 2020-08-04 | 2020-08-04 | |
US63/060,898 | 2020-08-04 | ||
US63/060,906 | 2020-08-04 | ||
PCT/US2021/044493 WO2022031813A1 (en) | 2020-08-04 | 2021-08-04 | Method, apparatus, and system for run-time checking of memory tags in a processor-based system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116348856A true CN116348856A (zh) | 2023-06-27 |
Family
ID=77519803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180068019.8A Pending CN116348856A (zh) | 2020-08-04 | 2021-08-04 | 用于在基于处理器的系统中运行时检查存储器标签的方法、设备和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11586537B2 (zh) |
EP (1) | EP4193262A1 (zh) |
CN (1) | CN116348856A (zh) |
WO (1) | WO2022031813A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7177985B1 (en) * | 2003-05-30 | 2007-02-13 | Mips Technologies, Inc. | Microprocessor with improved data stream prefetching |
US20190377580A1 (en) | 2008-10-15 | 2019-12-12 | Hyperion Core Inc. | Execution of instructions based on processor and data availability |
US9223705B2 (en) * | 2013-04-01 | 2015-12-29 | Advanced Micro Devices, Inc. | Cache access arbitration for prefetch requests |
US20150378900A1 (en) * | 2014-06-27 | 2015-12-31 | International Business Machines Corporation | Co-processor memory accesses in a transactional memory |
-
2021
- 2021-08-04 CN CN202180068019.8A patent/CN116348856A/zh active Pending
- 2021-08-04 US US17/393,715 patent/US11586537B2/en active Active
- 2021-08-04 WO PCT/US2021/044493 patent/WO2022031813A1/en active Application Filing
- 2021-08-04 EP EP21762231.5A patent/EP4193262A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022031813A1 (en) | 2022-02-10 |
EP4193262A1 (en) | 2023-06-14 |
US11586537B2 (en) | 2023-02-21 |
US20220043748A1 (en) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8145985B2 (en) | Error detection schemes for a unified cache in a data processing system | |
US8291305B2 (en) | Error detection schemes for a cache in a data processing system | |
US10236917B2 (en) | Providing memory bandwidth compression in chipkill-correct memory architectures | |
US9558120B2 (en) | Method, apparatus and system to cache sets of tags of an off-die cache memory | |
CN103544054A (zh) | 用于在事务性存储器系统中实现强原子性的方法、装置和系统 | |
US10671548B2 (en) | Memory initialization detection system | |
US20160224241A1 (en) | PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM | |
US10115444B1 (en) | Data bit inversion tracking in cache memory to reduce data bits written for write operations | |
US20140244932A1 (en) | Method and apparatus for caching and indexing victim pre-decode information | |
EP3132351B1 (en) | Cache memory error detection circuits for detecting bit flips in valid indicators in cache memory following invalidate operations and related methods | |
CN108780424B (zh) | 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 | |
US10152261B2 (en) | Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system | |
US11586537B2 (en) | Method, apparatus, and system for run-time checking of memory tags in a processor-based system | |
US8656214B2 (en) | Dual ported replicated data cache | |
US6546501B1 (en) | Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded | |
US11645148B2 (en) | Method and apparatus for caching MTE and/or ECC data | |
US20230409332A1 (en) | Devices transferring cache lines, including metadata on external links | |
US7624224B1 (en) | System and method for directly executing code from block-based memory |
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 |