CN113448879A - 存储器管理 - Google Patents

存储器管理 Download PDF

Info

Publication number
CN113448879A
CN113448879A CN202110286651.1A CN202110286651A CN113448879A CN 113448879 A CN113448879 A CN 113448879A CN 202110286651 A CN202110286651 A CN 202110286651A CN 113448879 A CN113448879 A CN 113448879A
Authority
CN
China
Prior art keywords
memory address
memory
data
address
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.)
Pending
Application number
CN202110286651.1A
Other languages
English (en)
Inventor
安德鲁·布鲁克菲尔德·斯维尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ARM Ltd filed Critical ARM Ltd
Publication of CN113448879A publication Critical patent/CN113448879A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文涉及存储器管理。一种存储器管理装置,包括:输入电路,用于接收定义第一存储器地址空间内的第一存储器地址的转换请求;预测电路,用于在第二存储器地址空间内生成预测的第二存储器地址,来作为针对第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数;控制电路,用于发起对预测的第二存储器地址的处理;转换和许可电路,用于执行操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,该许可信息用于指示是否允许对转换后的第二存储器地址进行存储器访问;以及输出电路,用于当许可信息指示允许访问转换后的第二存储器地址时,提供转换后的第二存储器地址来作为对转换请求的响应。

Description

存储器管理
技术领域
本公开涉及存储器管理。
背景技术
数据处理装置可以向每个正在运行的程序或外围设备提供对由虚拟存储器地址定义的虚拟地址空间的访问。每个程序或设备看到其自己的虚拟地址空间,其中包含供该程序或设备使用的指令和数据。在其他已确立的优点中,虚拟寻址的使用允许操作系统通过禁止一个程序访问或破坏另一程序使用的信息来控制存储器访问。
当需要访问虚拟存储器地址时,首先需要将虚拟存储器地址转换为物理存储器地址,以便可以从物理存储器或物理存储器缓存获取或向其写入所需的信息。
称为转换后备缓冲器(TLB)的缓存可以用作地址转换过程的一部分。TLB存储最近或常用的虚拟和物理存储器地址之间的转换。因此,作为地址转换过程的第一步,可以查阅TLB以检测TLB是否已经包含所需的地址转换。如果否,则可以使用更复杂的转换过程(例如涉及查阅保存有地址转换信息的所谓的页表),这通常导致TLB被所需的转换填充。
在一些情况下使用多阶段转换。在示例中,使用了两个级别的转换。执行程序或其他系统模块(例如图形处理单元(GPU))所需的虚拟地址(VA)通过第一转换阶段转换为中间物理地址(IPA)。IPA通过第二转换阶段转换为物理地址(PA)。使用多阶段转换的一个原因是为了当可以在同一处理器上运行的多个“虚拟机”上使用各自的操作系统(OS)时信息处理的安全性。特定的OS接触VA到IPA的转换,而只有管理程序(hypervisor,监视虚拟机运行的软件)或其他管理过程监督阶段2(IPA到PA)的转换。
存储器地址转换可以与许可信息的检测相关联,该许可信息指示是否允许对转换后的存储器地址的访问。
发明内容
在示例布置中,提供了一种存储器管理装置,包括:
输入电路,接收定义第一存储器地址空间内的第一存储器地址的转换请求;
预测电路,在第二存储器地址空间内生成预测的第二存储器地址,来作为第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数;
控制电路,发起对预测的第二存储器地址的处理;
转换及许可电路,执行操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,所述许可信息指示是否允许对转换后的第二存储器地址进行存储器访问;以及
输出电路,用于当许可信息指示允许访问转换后的第二存储器地址时,提供转换后的第二存储器地址来作为对转换请求的响应。
在另一示例布置中,提供了一种方法,包括:
接收定义第一存储器地址空间内的第一存储器地址的转换请求;
在第二存储器地址空间内生成预测的第二存储器地址,来作为第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数;
发起对预测的第二存储器地址的处理;
执行操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,所述许可信息指示是否允许对转换后的第二存储器地址进行存储器访问;并且
当许可信息指示允许对转换后的第二存储器地址进行访问时,提供转换后的第二存储器地址来作为对转换请求的响应。
当许可信息指示允许访问转换后的第二存储器地址时,提供转换后的第二存储器地址来作为对转换请求的响应。
本技术的其他各个方面和特征由所附权利要求书限定。
附图说明
将仅通过示例的方式,参考如在附图中示出的本技术的实施例来进一步描述本技术,在附图中:
图1示意性地示出了数据处理装置;
图2至图5示意性地示出了存储器管理技术的各个示例;
图6示意性地示出了示例性存储器管理装置;
图7和图8示意性地示出了预测电路的各个示例;并且
图9至图12是示出各个方法的示意性流程图。
具体实施方式
在参考附图讨论实施例之前,提供以下实施例描述。
示例实施例提供了一种存储器管理装置,包括:
输入电路,接收定义第一存储器地址空间内的第一存储器地址的转换请求;
预测电路,在第二存储器地址空间内生成预测的第二存储器地址,来作为第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数;
控制电路,发起对预测的第二存储器地址的处理;
转换及许可电路,执行操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,所述许可信息指示是否允许对转换后的第二存储器地址进行存储器访问;以及
输出电路,用于当许可信息指示允许访问转换后的第二存储器地址时,提供转换后的第二存储器地址来作为对转换请求的响应。
示例实施例通过允许在转换及许可电路建立实际的转换后地址和相关联的许可信息之前例如基于推测地发起对转换后地址的预测版本的另外的处理,来允许潜在的性能改进。这样,可以执行诸如预取之类的另外处理任务中的至少一些,以潜在地加速后续的提取或其他处理。
由控制电路发起的处理可以是例如与存储器管理单元的许可阶段或后续转换有关的处理,但是在示例中,控制电路被配置成发起对预测的第二存储器地址处的数据的预取。如上文讨论,这可以通过发起对在假设下述情况中取回的数据的预取而潜在地提供性能改进:预测的转换是正确的且许可信息允许该转换。由于已经以这种方式发起了预取,因此这样的后续取回操作可以更快。
尽管可以在任何阶段发起该另外的处理,但是在发起的处理是(或包括)预取的布置中,则可以在下述示例布置中获得性能优势:在该示例布置中,控制电路配置成在转换及许可电路针对第一存储器地址执行的操作完成之前,发起对预测的第二存储器地址处的数据的预取。
尽管该布置可应用于单阶段存储器管理装置,但是在示例实施例中,该装置包括一个或多个连续的地址转换阶段;并且转换及许可电路提供所述一个或多个连续的转换阶段中的至少一个阶段。例如,转换及许可电路至少可以提供所述一个或多个连续地址转换阶段中的最后一个阶段;并且转换后的第二存储器地址可以表示物理存储器地址。实际上,在多阶段存储器管理布置中,该装置可以包括另一转换电路,用于生成作为针对虚拟存储器地址空间中的虚拟存储器地址的转换的第一存储器地址,第一存储器地址例如是中间物理地址和虚拟存储器地址中的一者。
预测可以是所谓的等同(identity)转换的预测,例如,其中预定函数使得预测的第二存储器地址等于第一存储器地址(在这种情况下,假设预测是正确的,则转换及许可电路可被视为执行了转换过程,但结果是最终没有转换)。但是,可以使用其他函数,例如增加偏移、位移位等。为了实现该函数,在示例中,预测电路包括下述电路:把预定函数应用于第一存储器地址,以生成对应的预测的第二存储器地址。
关于是否应使用预测,有各种选项(鉴于处理的预测和发起可能会使用至少一些处理资源和/或电能)。在一些示例中,可以基于历史结果来做出决定,其中,预测电路被配置成:取决于一个或多个先前预测的第二存储器地址是否等于相应转换的第二存储器地址,生成预测的第二存储器地址作为第一存储器地址的预定函数。这可以通过上下文(地址空间标识符、虚拟机标识符等)来处理,其中,预测电路被配置成:针对当前转换上下文,根据一个或多个先前预测的第二存储器地址是否等于相应转换的第二存储器地址,生成预测的第二存储器地址作为关于第一存储器地址的预定函数。为了实现这一功能,预测电路可以包括历史存储器,用于存储下述数据:该数据(一般地或根据上下文)针对一个或多个先前预测的第二存储器地址指示出这一个或多个先前预测的第二存储器地址是否等于相应转换的第二存储器地址。
在其他示例布置中,预测操作可以对例如由系统软件建立的配置设置进行响应。在这样的示例中,预测电路可以响应于配置数据而把预定函数选择性地应用于第一存储器地址,以生成对应的预测的第二存储器地址。
在其他示例中,可以针对每个适用的第一存储器地址执行预测。
示例实施例可以提供一种数据处理装置,包括:可根据物理存储器地址访问的一个或多个存储器;一个或多个数据处理节点,用于生成从该数据处理节点生成的虚拟存储器地址到物理存储器地址的转换请求,以访问一个或多个存储器;如上所述的存储器管理装置,用于把来自数据处理节点的虚拟地址转换为物理地址,以访问所述一个或多个存储器;以及预取电路,用于响应于控制电路发起预取,从所述一个或多个存储器预取数据。预取电路可通过上文描述的布置作用于预取的发起。
在示例实施例中,数据存储装置与预取电路相关联。为了处理预取的数据,数据存储装置可以被配置成存储由预取电路预取的数据;输出电路可以被配置成发起在转换后的第二存储器地址处的数据取回操作;并且预取电路可以被配置成提供来自数据存储装置的预取的数据,来作为对数据取回操作的响应。换句话说,当所需数据已经被预取并由数据存储装置(例如缓存)保存时,可以在实际提取或数据取回操作需要时将其从数据存储装置输出。在数据存储装置当前未保存所需数据的情况下(例如未发起预取,或虽已发起预取但在发起提取时预取尚未完成的情况下),则缓存可被填充并由缓存来输出数据,或者可以直接从存储器提供数据。换句话说,在这样的示例中,当数据取回操作在预取操作完成之前发起时,预取电路被配置成不把取回的数据存储在数据存储装置中。
因为可能已经在相关联的许可信息之前获得了预取的数据,所以为了避免违反许可数据的要求,在一些示例中,预取电路被配置成禁止访问数据存储装置中与给定的预测的第二存储器地址相对应的预取的数据,除非针对与预测的第二存储器地址相同的转换后的第二存储器地址发起了数据取回操作。
为了避免特别是在相干系统中保留数据项的多个潜在不正确副本,预取电路可以被配置成响应于向给定第二存储器地址写入的发起操作,使数据存储装置中针对该给定第二存储器地址存储的数据副本无效。
作为维护数据存储装置的技术的示例,在一些示例中,预取电路被配置成把响应于数据取回操作而从数据存储装置取回的任何数据从数据存储装置中驱逐出。在其他示例中,数据存储装置可以例如保留所存储的数据,直到需要驱逐来为要存储的新数据腾出空间为止。
另一个示例实施例提供了一种方法,包括:
接收定义第一存储器地址空间内的第一存储器地址的转换请求;
在第二存储器地址空间内生成预测的第二存储器地址,来作为第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数;
发起对预测的第二存储器地址的处理;
执行操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,许可信息指示是否允许对转换后的第二存储器地址进行存储器访问;并且
当许可信息指示允许对转换后的第二存储器地址进行访问时,提供转换后的第二存储器地址来作为对转换请求的响应。
装置概述
现在参考附图,图1示意性地示出了数据处理装置,包括诸如处理器核心(CPU或中央处理单元)之类的转换请求器100、诸如图形处理单元(GPU)之类的媒体处理器、显示处理器、外围设备等。转换是由请求器100请求的,作为请求器100发起的存储器访问事务的一部分。
请求器与存储器管理单元或装置(MMU)110相关联,该存储器管理单元或装置(MMU)针对请求器100的请求处理地址转换及许可信息。示意性示出其他请求器120、130;这些可以共享MMU 110,或者可以具有它们自己的相应MMU功能。
图1还示出了存储器140和连接各个组件的互连150。可以提供其他存储器(未示出),例如连接到互连150的存储器,和/或存储器140可以由多个存储器设备实现。在互连150和存储器140之间还示出了具有相关联数据存储装置的预取器160,例如缓存存储器170。然而,请注意,预取器160的功能可以可替换地实现为互连150、MMU 110、存储器140(或形成存储器140的一部分的存储器控制器,未示出)等的功能的一部分。因此,预取器160在电路中的位置仅是示意性示例,并且只是为了本说明的清楚而选择。
现在将讨论管理对存储器140的访问的两个方面。(第三方面的数据相干性将在下面讨论)。它们是地址转换的使用和存储器保护的使用。
关于地址转换,如上文所述,可以向每个运行的程序或外围设备提供对由虚拟存储器地址定义的虚拟地址空间的访问,以便每个程序或设备看到其自己的虚拟地址空间,该虚拟地址空间包含供该程序或设备使用的指令和数据。当需要访问由虚拟存储器地址表示的位置时,首先需要将虚拟存储器地址转换为物理存储器地址,以便可以从物理存储器(例如存储器140)或物理存储器缓存获取或向其写入所需的信息。
尽管可以使用从虚拟地址到物理地址的单阶段转换,但在一些情况下可以使用多阶段转换。在一些示例中,使用了两个级别的转换。执行程序或其他系统模块所需的虚拟地址(VA)通过第一转换阶段转换为中间物理地址(IPA)。IPA通过第二转换阶段转换为物理地址(PA)。
涉及源于每个数据处理节点或其他连接的设备对存储器140的访问,可以使用地址转换。
另一个方面是存储器保护。存储器保护可用于管理对存储器地址空间的各部分的访问。尽管可以在互连150和存储器140之间设置单独的存储器保护单元(MPU),但是在本示例中,可以由MMU 110执行存储器保护功能。在此情况下,MMU可以检测(与定义地址转换的数据相关联)许可信息,许可信息指示是否允许对转换后的地址进行访问(或所需形式的访问,例如读和/或写)。请注意,许可信息实际上可以被组织为与要转换的地址相关联,但是最终的效果是,它定义了是否允许对转换后的地址进行访问。许可信息的另一种形式通过存在/不存在有效的地址转换来提供。如果没有为要转换的给定地址定义有效的地址转换,则相当于缺少对该给定地址的转换版本的任何访问的许可。
请注意,在单阶段MMU的情况下或在下文将讨论的多阶段MMU的任何一个或多个阶段的情况下,都不需要转换过程生成必须与提供给该阶段或过程的输入地址不同的结果。“转换”或转换阶段可以表示等同转换,使得输出地址在数值上与输入地址相同。
如上文所述可以被实现为一个或多个物理存储设备的存储器140可以存储各种类型的数据,包括例如供CPU、GPU或显示处理器执行的程序代码,以及诸如视频数据之类的媒体数据。该存储器可以包括存储器控制器(未示出)。
预取概述
预取器160被设置成从存储器140预取数据。预取操作实际上并不将数据返回到请求设备(例如请求器100),而是执行获取该数据的至少一些初始阶段,例如进行到远至下述步骤:在数据存储装置170中存储副本,如果发起提取或数据取回操作,则可以(可能更快地)提供该副本。
在一些示例中,响应于数据取回操作而进行的从数据存储装置170提供数据可以通过预取电路来发起对该数据从数据存储装置170的删除或驱逐。在其他示例中,是否输出数据是响应于数据取回操作的,数据存储装置170中的数据可以随着它的存在时长被驱逐,也可以在对于要写入数据存储装置170中的其他数据需要空间时被驱逐,例如根据在需要空间时从数据存储装置中驱逐最近最少使用的数据的驱逐策略。另选的驱逐策略是随机驱逐策略。
示例MMU技术
图2示意性地示出了示例MMU 200,例如单阶段MMU,其中输入虚拟地址(VA)210被转换成表示物理地址(PA)以及许可信息的输出220。PA用于访问诸如上文描述存储器140之类的物理资源。许可信息指示是否允许特定类型的访问(例如,读访问或写访问)。
参照图3,用于生成图2所示类型的地址转换的示例技术是采用例如转换缓冲单元(TBU)300,该TBU 300可以包括转换信息的缓存,例如以所谓的转换后备缓冲器(TLB)(图3中未示出)的形式。对于待转换的诸如VA的输入地址,如果适当的转换信息被保存在TBU300中(例如在TLB中),则可以直接从该缓存的副本中提供输出PA及许可信息。如果不是这种情况,则需要通过参考转换控制单元(TCU)310来填充TBU300,在至少一些示例中,该转换控制单元访问存储在存储器中的所谓的页表,例如进行所谓的页表行走(PTW)过程。这可能涉及对存储器的重复访问320,其中一些访问本身需要转换,因此,与如果已经在TBU保存副本的情况相比,以这种方式获取信息的过程可能会稍慢。
到目前为止描述的示例涉及单阶段MMU。相反,图4示意性地表示了两阶段MMU,其中,在第一阶段400,输入VA被转换为中间物理地址(IPA)410,然后该中间物理地址通过第二阶段420转换为所需的PA。例如,每个阶段可以采用TBU和/或TCU。图4的MMU的阶段1和阶段2中的一者或两者可贡献于许可信息。在本技术适用于MMU的阶段2或更后阶段的情况下(例如,下文将讨论的第一存储器地址是IPA),过程中比其更早的一个或多个阶段可视为进一步的转换电路,用于生成第一存储器地址,作为虚拟存储器地址空间中的虚拟存储器地址的转换。
在图5中示意性示出的另一示例中,提供了三个阶段。此处,第一阶段500和第二阶段510在功能上与图4所示的相似,因为它们导致生成PA520。第三阶段530被设置为应用预定函数,诸如(例如)所谓的等同转换,也就是说,地址520未被更改以生成输出PA 540,第三阶段530的唯一功能是获得与该地址相关联的许可信息,尽管该阶段使用的机制通常与转换过程相关联(例如通过访问TBU和/或TCU)。因此,尽管第三阶段不执行最终转换,但是可以使用与获得转换相似的机制来提供第三阶段530的功能。
MMU电路示例
图6提供了存储器管理装置600的示例,该存储器管理装置600包括:输入电路610,用于接收定义第一存储器地址空间内的第一存储器地址的转换请求615;预测电路620,用于在第二存储器地址空间内生成预测的第二存储器地址,来作为第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数。控制电路630被设置为发起对所预测的第二存储器地址的处理。在一些示例(例如图6中所示的示例)中,这可以涉及发出用于由预取器160进行处理的预取请求635(以便至少发起预取)。其他示例将在下面讨论。
转换及许可电路640执行操作以生成针对第一存储器地址的转换后的第二存储器地址,它与许可信息相关联,该许可信息用于指示是否允许对转换后的第二存储器地址进行存储器访问。该操作可以是例如访问TBU、TCU、TLB或其他电路。
当许可信息指示允许对转换后的第二存储器地址进行访问时,输出电路650提供转换后的第二存储器地址(例如,PA)来作为对转换请求615的响应。请注意,这不排除即使相关联的许可信息拒绝了尝试的存储器访问也要输出转换后的地址的情况。但是在示例实施例中,转换后的地址的输出可以用来发起在该转换后的第二存储器地址处的提取或数据取回操作。
预测与推测
图6的布置允许使用地址的预测版本,例如,来作为推测的或提早发起的另外的处理的一部分,示例是在转换及许可电路640完成生成确定的输出地址655和许可信息之前发出预取请求。在一些情况下,这可以通过在下述两个前提下允许预取操作的发生来提高系统性能:对转换的验证、以及利用转换及许可电路640执行的可能较慢的过程或操作获得许可信息。
预测电路620执行的预测可以根据第一存储器地址的预定函数。
(a)预定的映射或函数可以和等同映射一样简单:
输出地址=输入地址
(b)或者在其他示例中,可以在两个地址之间应用预定的偏移,使得例如:
输出地址=输入地址+偏移
(c)或者在其他示例中,可以在两个地址之间应用预定移位(例如m位左移“<<m”),使得例如:
输出地址=输入地址<<1
(d)或者可以使用另一预定函数。
预定函数可以由配置数据定义,或者可以为预测电路预先编程或预先建立。一般而言,可以使用下述预定函数(在系统设计时或在系统软件控制下配置):该预定函数对于在使用中的第一地址空间内的至少一些第一地址的转换而言可能是正确的。
在等同映射(a)以外的情况下,将导致使用可用和/或有效第二地址(例如PA地址)范围之外的映射第二地址(例如PA)的映射可被视为(例如)转换错误或异常,或视为许可信息被认为指示“无权访问”的情况。
转换及许可电路可以应用由转换数据定义的转换,该转换数据定义的转换例如在页表(其也可以提供许可数据)中。对于至少一些第一地址,这样的转换可以定义与对应的第二地址的等同关系。或者这些第一地址本身可以应用预定函数以获得地址转换。在任何情况下,可以执行至少一些转换,以使得第二地址根据预定函数与第一地址相关(无论是否从页表等获得转换),从而可以证明预测电路使用该预定函数进行的至少一些预测是正确的。
图6的布置可以适用于MMU(本身可以是多阶段MMU)的任何一个或多个阶段。例如,图6的布置所适用的一个或多个阶段可以包括最后一个阶段,在这种情况下(如图6中示意性所示),由控制电路630基于推测地发起的另外的处理是发起预取操作,并且输出电路650的输出代表物理地址和许可信息。
但是,在其他示例中,预测可以是(例如)IPA的预测,在这种情况下,由控制电路630发起的早期或推测性处理可以是该IPA到PA的转换的另一阶段的发起(通过更后面的MMU阶段),类似地,输出电路的输出可以是确定的IPA。
虽然不必早期或推测地执行由控制电路630发起的操作,但是当控制电路630被配置成在转换及许可电路640完成针对第一存储器地址执行的操作之前发起对预测的第二存储器地址的处理时,可以获得性能优势。
总而言之,参考下表,该表至少概述了可用选项的子集:
Figure BDA0002980739240000121
在某些方面,根据预测(基于预测电路620)的推测处理的使用可能是相对较低的成本。例如,如果控制电路630被配置成发起预取操作,则即使预测不正确,通常也预计到最终的提取操作不会比没有使用推测性预取的情况慢,并且如果推测是正确的可以更快。在这种情况下,对于推测性操作被证明不正确的主要惩罚将是功耗惩罚而不是处理性能惩罚。但是,在其他情况下(例如,如果控制电路要发起不同的操作),对于不正确的预测可能会有更高或不同的惩罚。
因此,考虑到这些特征,各种选项可用于控制预测电路620。
在第一选项中,对输入电路610接收到的每个第一存储器地址615执行预测,并且控制电路630被配置成在所有情况下发起对第二存储器地址的预测的处理。
在图7中示意性地示出的第二选项中,预测电路620包括预测器700,该预测器700对存储在配置数据存储装置710中的配置数据进行响应,该配置数据存储装置可以像与预测器700相关联的指示“预测/不预测”的寄存器、和/或指示或以其他方式指定预定函数(例如,从一组预定的候选函数)的寄存器或其他存储一样简单,并且可以由系统软件、操作系统、系统管理程序(监督多个操作系统安全性的至少一些方面的软件)等写入720。当配置数据已经被设置为指示应当使用预测时,预测器700执行上文讨论的预测。否则就不会。如果提供一个由预测电路620生成的预测625,则控制电路630作用在该预测625上。
在图8中示意性地示出的另一选项中,预测器800对存储在历史数据存储装置810(作为历史存储器的示例)中的历史数据进行响应。在此,历史数据可以表示先前预测的结果,因为它可以表示一个或多个先前预测的第二存储器地址是否等于相应的转换后的第二存储器地址。这可能需要对下述两项进行比较:转换及许可次级电路640的输出(例如通过返回到预测电路620的示意性路径645)、以及由预测电路620做出的相应预测。
在一些示例中,历史数据可以针对先前的转换被简单地存储。在其他示例中,可以根据诸如应用程序空间或虚拟机标识符(ASID/VMID)之类的转换“上下文”来存储历史数据,其中在评估是否应使用预测时使用与当前或流行(prevailing)上下文有关的历史数据。
在一些示例中,历史数据可以记录例如多达预定数量的n个数据实例,这些数据实例指示n个最新预测的转换的结果(正确或不正确)(或在基于上下文的系统中,针对每个上下文存储的n个最新)。历史数据可以存储多达另一个预定数量的n2个不同上下文。
在其他示例中,历史数据可以记录例如多达预定数量的n个数据实例,这些数据实例指示n个最新预测的转换的结果(在推测性预取之后,是否在相同的转换地址处进行提取)(或在基于上下文的系统中,针对每个上下文存储的n个最新)。这不仅考虑了预测的转换是否正确,还考虑了允许访问的许可信息的(隐含)预测是否同样正确。
例如,是否采用预测的评估可以基于多数(例如,预测适合至少所存储的大多数实例?)。在其他示例中,可以使用类似于分支预测技术的多位状态机布置,以便历史数据在多个状态之间控制转换,例如:
强预测,弱预测,弱非预测,强非预测
状态之间的转换是根据历史数据进行的,并且仅允许上述列表中相邻状态之间的转换。在一些示例中,例如响应于少量先前预测的结果是正确的(例如,少于第一阈值数),执行列表中向右的转换,并且例如响应于大量先前预测的结果是正确的(例如,超过第二阈值数),执行列表中向左的转换。如果当前状态(可能如上所述按照上下文)是“强预测”或“弱预测”,则使用预测。
MMU和预取操作
图9是示出上述一些技术的示意性流程图。
在图9中,竖直虚线900左侧的操作与MMU 110的操作各方面有关,而线900右侧的操作表示预取器160的操作。虽然MMU可以是单阶段MMU,但在其他示例中,这里描述的技术可以与多阶段MMU的一个或多个阶段有关。在图9所示的示例中,此处描述的技术可以与MMU的至少一个阶段(在该示例中至少为最后一个阶段)有关,因为假设新的转换请求910与传入的VA或前一个另外的MMU阶段(例如,如上讨论的第一阶段)的输出有关。
图9的示例还假设由控制电路630推测性地发起的操作是与预测输出PA有关的预取操作。然而,如上讨论,取决于所考虑的MMU阶段,这样的操作可以是不同的操作。
响应于新的转换请求910,步骤920检测是否应当使用预测的。如上所提到的,各种选项可用,并假设正在使用图7或图8的预测布置,由预测电路620做出关于是否应当使用预测的决定。如果答案为是,则预测电路620在步骤925预测转换,并且控制电路930在步骤930发起预取操作。响应于此,预取器160在步骤935预取所需数据。
对于步骤920的否定结果,或在步骤930之后,控制转到步骤935,在该步骤,转换及许可电路640获得所需的转换及许可信息。请注意,尽管这是在步骤930之后示出的,但是转换及许可电路640的操作可以与步骤925、930中的一个或两个并行地开始。
(就时序而言,在示例实施例中,可以通过在完成获得确定的转换的操作之前基于预测的转换发起动作来获得潜在的性能改善。但这不是必须的)。
基于步骤935的结果,步骤940检测是否允许对转换后的存储器地址的所需访问。如果答案为否,则处理结束945。如果答案为是,则MMU在步骤950发起取回或数据取回操作。作为响应,预取器在步骤955中检测所需的数据当前是否被保存在数据存储装置或缓存170中。如果答案为是,则在步骤960从缓存170输出数据。如果答案为否,则在步骤965从存储器140取回所需的数据。如下文讨论的,可以甚至将其写入缓存,然后在步骤960从缓存输出,或者可以将其直接从预取器输出而不写入缓存。出于这个原因,以虚线示出了路由线970以说明它是可选的。
在基于预测的转换执行预取操作、但确定的许可信息指示实际上不允许相关访问的情况下,将不会发起后续的取回或数据取回操作,因此预取的数据将实际上从不从缓存170输出。
示例预取和后续提取操作
图10示意性地示出了与预取器160有关的、响应于在步骤1000处接收到的数据取回操作或事务的一些示例操作。
在步骤1010,进行关于事务是读还是写事务的检测。如果是写事务,则如果(在步骤1020处)所需地址处的数据被保存在数据存储装置170中,则该条目在步骤1030处无效,并且(在步骤1030之后或步骤1020为否定结果)在步骤1040,将所需数据写入存储器140。请注意,系统可以通过以下各项中的任一项或多项来处理写事务:
·不发起事务的预测
·预测转换并做出响应,采取一些步骤(不包括预取)来发起写操作
·预测转换并(为了过程的统一性)发起预取操作(即使实际上不需要预取的数据来执行写事务)
请注意,在预测的转换用于后续MMU阶段(例如,开始进行推测性的下一阶段转换或推测性地获得许可信息)而不是发起预取的情况下,这些动作与读和写事务都有关,因此不管事务的类型如何,都可以响应于预测做出相同的处理。
对于读事务,如果(在步骤1050)所需数据已经保存在缓存中,则在步骤1060中将其从缓存输出(预取电路提供从数据存储装置预取的数据来作为对数据取回操作的响应)。如果否,则在步骤1070将其取回到缓存,然后在步骤1060将其输出。
图11示出了几乎相同的布置,并且共同的特征将不再描述。与图10的实质区别在于,不是所需数据始终通过缓存进行路由,而是如果它在缓存中,则在步骤1100从缓存输出,但是如果在步骤1050它尚未存在于缓存中,则在步骤1110直接从存储器获得它并输出。在该示例中,当数据取回操作在预取操作完成之前发起时,预取电路被配置成不把取回的数据存储在数据存储装置中。
替代示例-涉及其他缓存的操作
可以在诸如图1中所示的系统内的各个位置处提供缓存存储器,该系统具有请求器设备(例如请求器100、120、130),用来服务请求的从设备(例如存储器140),并且可选地具有一个或多个互连,例如互连150。例如,互连150可以包括一个或多个缓存存储器154(图1)或与之相关联。在相干系统(例如下面将要讨论的示例系统)中,一个或多个缓存存储器可以与相干控制器152(图1)相关联。
在一些示例实施例中,代替由预取器160执行预取操作以把预取的数据存储到与预取器相关联的数据存储装置或缓存存储器170中,替代布置是使这种预取操作引起对现有缓存存储器(诸如缓存存储器154)的读取,其中术语“现有”仅表示特定的缓存存储器在系统内除了由预取器使用之外还具有一种或多种其他用途。换句话说,在这种替代布置中,不需要专门与预取器160相关联的数据存储装置170。因此,“与预取电路相关联的数据存储装置”可以由仅关于此处定义的预取操作使用的数据存储装置来实现,或者由用于系统内的预取操作和其他潜在操作的数据存储装置来实现。在后一种情况下,数据存储装置可以是根据其他先前提出的技术进行操作的缓存存储器,该技术包括上文讨论的任何示例驱逐策略。
因此,缓存存储器154或缓存存储器170可以表示与预取电路相关联的数据存储装置的示例,其中,数据存储装置被配置成存储由预取电路预取的数据。随后的访问(响应于如上讨论的确定的转换及许可信息)随后将有机会从根据先前提出的技术加载到缓存中的数据中受益。
相干性
在具有多个能够保存存储信息副本的节点的系统中,在一个节点对此类信息的数据处理访问的情况下,可能需要确保访问节点访问存储信息的最新版本,并且如果对存储的信息进行了任何更改,则其他版本本身将被正确更改,或者其他版本被删除或无效。一般而言,可以根据图1的总体示意图来实现这样的“相干”系统,因为至少各种请求器和互连可以具有相关联的缓存存储器,并且另外的副本可以被保存在存储器140和预取器缓存170处。
为了处理这种情况,可以在例如互连150处提供相干控制器152,以控制信息的存储和取回,使得由一个处理元件写入相干存储器电路中的存储器地址的数据与另一个处理元件从相干存储器电路中的该存储器地址读取的数据一致。
因此,与相干功能相关联的逻辑的作用是确保在进行数据处理事务之前,如果要访问的数据项的版本过时(因为对同一数据项的另一个副本进行了修改),则首先更新要访问的副本。同样,如果数据处理事务涉及修改数据项,则缓存相干逻辑避免与数据项的其他现有副本发生冲突。实现此目的的技术可以包括(例如)使用所谓的“探听过滤器(snoopfilter)”。在此,“探听过滤器”一词是有历史感的术语,在这里用于表示形成具有相关联“目录”的相干控制器152的一部分的控制设备,其中目录存储有指示哪些数据存储在哪个缓存中的信息,并且探听过滤器本身至少贡献于处理对缓存的信息的数据访问,以提供缓存相干功能。
相干控制器152处理过程的至少下述部分:在该过程部分中,当请求器100、120、130中的任一者打算访问或修改作为缓存行存储在任何缓存存储器中的数据时,该节点获得这样做的许可。
相干操作的这些方面已经很好地建立,并且除了参考上面关于步骤1030描述的操作之外,这里将不进行进一步描述,该步骤1030可以在相干控制器152的控制下执行以确保在对相干控制过程潜在重要的处理阶段,不会保留数据项的多个潜在不正确副本。
装置功能摘要
图1的装置提供了一种数据处理装置的示例,包括:
一个或多个存储器140,可根据物理存储器地址而被访问;
一个或多个数据处理节点100,用于生成从该数据处理节点生成的虚拟存储器地址到物理存储器地址的转换请求,以访问所述一个或多个存储器;
如上讨论的存储器管理装置110,用于把来自数据处理节点的虚拟地址转换为物理地址,以访问所述一个或多个存储器;以及
预取电路160、170,用于响应于所述控制电路发起预取而从所述一个或多个存储器预取数据。
摘要方法
图12是示出方法(可以例如由图1和/或图6的装置执行)的示意性流程图,包括:
接收(在步骤1200)定义第一存储器地址空间内的第一存储器地址的转换请求;
在第二存储器地址空间内生成(在步骤1210)预测的第二存储器地址,来作为第一存储器地址的预测转换,该预测的第二存储器地址是第一存储器地址的预定函数;
发起(在步骤1220)对预测的第二存储器地址的处理;
执行(在步骤1230)操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,许可信息指示是否允许对转换后的第二存储器地址进行存储器访问;并且
当许可信息指示允许对转换后的第二存储器地址进行访问时,提供(在步骤1240)转换后的第二存储器地址来作为对转换请求的响应。
在本申请中,词语“被配置成”用于表示装置的元件具有能够执行所定义的操作的配置。在本文中,“配置”是指硬件或软件的互连的布置或方式。例如,装置可以具有提供定义的操作的专用硬件,或者可以对处理器或其他处理设备(例如,如上讨论的处理元件)进行编程以执行功能。“被配置成”并不意味着需要以任何方式改变装置元件以提供所定义的操作。
尽管这里已经参考附图详细描述了本技术的说明性实施例,但是应该理解,本技术不限于那些精确的实施例,并且在不脱离所附权利要求所限定的技术的范围和精神的情况下,本领域技术人员可以在其中进行各种改变、增加和修改。例如,在不脱离本技术范围的情况下,可以将从属权利要求的特征与独立权利要求的特征进行各种组合。

Claims (19)

1.一种存储器管理装置,包括:
输入电路,接收定义第一存储器地址空间内的第一存储器地址的转换请求;
预测电路,用于在第二存储器地址空间内生成预测的第二存储器地址,来作为针对所述第一存储器地址的预测转换,所述预测的第二存储器地址是所述第一存储器地址的预定函数;
控制电路,用于发起对预测的第二存储器地址的处理;
转换及许可电路,用于执行操作来为所述第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,所述许可信息用于指示是否允许对转换后的第二存储器地址进行存储器访问;以及
输出电路,用于当所述许可信息指示允许访问转换后的第二存储器地址时,提供转换后的第二存储器地址来作为对所述转换请求的响应。
2.根据权利要求1所述的存储器管理装置,其中,所述控制电路被配置成发起对所述预测的第二存储器地址处的数据的预取。
3.根据权利要求2所述的存储器管理装置,其中,所述控制电路被配置成:在由所述转换及许可电路针对所述第一存储器地址执行的操作完成之前,发起对所述预测的第二存储器地址处的数据的预取。
4.根据权利要求1至3中的任一项所述的存储器管理装置,其中:
所述装置包括一个或多个连续的地址转换阶段;并且
所述转换及许可电路提供所述一个或多个连续的地址转换阶段中的至少一个阶段。
5.根据权利要求4所述的存储器管理装置,其中:
所述转换及许可电路至少提供所述一个或多个连续地址转换阶段中的最后一个阶段;并且
所述转换后的第二存储器地址表示物理存储器地址。
6.根据权利要求5所述的存储器管理装置,其中:
所述装置包括进一步的转换电路,用于生成所述第一存储器地址,作为虚拟存储器地址空间中的虚拟存储器地址的转换。
7.根据前述任一权利要求所述的存储器管理装置,其中,所述第一存储器地址是中间物理地址和虚拟存储器地址中的一者。
8.根据前述任一权利要求所述的存储器管理装置,其中,所述预定函数使得预测的第二存储器地址等于所述第一存储器地址。
9.根据前述任一权利要求中所述的存储器管理装置,其中,所述预测电路包括下述电路:该电路把所述预定函数应用于每个第一存储器地址,以生成对应的预测的第二存储器地址。
10.根据权利要求1至8中的任一项所述的存储器管理装置,其中,所述预测电路被配置成:取决于一个或多个先前预测的第二存储器地址是否等于相应转换后的第二存储器地址,生成预测的第二存储器地址作为所述第一存储器地址的预定函数。
11.根据权利要求10所述的存储器管理装置,其中,所述预测电路被配置成:针对当前转换上下文,取决于一个或多个先前预测的第二存储器地址是否等于相应转换后的第二存储器地址,生成预测的第二存储器地址作为所述第一存储器地址的预定函数。
12.根据权利要求10或11所述的存储器管理装置,其中,所述预测电路包括历史存储器,用于存储下述数据:该数据针对一个或多个先前预测的第二存储器地址指示出这一个或多个先前预测的第二存储器地址是否等于相应转换后的第二存储器地址。
13.根据权利要求1至8中的任一项所述的存储器管理装置,其中,所述预测电路响应于配置数据而把所述预定函数选择性地应用于所述第一存储器地址,以生成对应的预测的第二存储器地址。
14.一种数据处理装置,包括:
一个或多个存储器,能根据物理存储器地址而被访问;
一个或多个数据处理节点,用于生成从该数据处理节点生成的虚拟存储器地址到物理存储器地址的转换请求,以访问所述一个或多个存储器;
根据前述任一权利要求所述的存储器管理装置,用于把来自数据处理节点的虚拟地址转换为物理地址,以访问所述一个或多个存储器;以及
预取电路,用于响应于所述控制电路发起预取,从所述一个或多个存储器预取数据。
15.根据权利要求14所述的数据处理装置,包括与所述预取电路相关联的数据存储装置,其中:
所述数据存储装置被配置成存储由所述预取电路预取的数据;
所述输出电路被配置成发起在转换后的第二存储器地址处的数据取回操作;并且
所述预取电路被配置成提供来自所述数据存储装置的预取的数据,来作为对所述数据取回操作的响应。
16.根据权利要求15所述的数据处理装置,其中,所述预取电路被配置成:响应于向给定第二存储器地址发起的写入操作,使在所述数据存储装置中针对所述给定第二存储器地址存储的数据副本无效。
17.根据权利要求15和16中的任一项所述的数据处理装置,其中,当数据取回操作在预取操作完成之前发起时,所述预取电路被配置成不把所取回的数据存储在所述数据存储装置中。
18.根据权利要求15至17中的任一项所述的数据处理装置,其中,所述预取电路被配置成:把响应于数据取回操作而从所述数据存储装置取回的任何数据从所述数据存储装置中驱逐出。
19.一种方法,包括:
接收定义第一存储器地址空间内的第一存储器地址的转换请求;
在第二存储器地址空间内生成预测的第二存储器地址,来作为所述第一存储器地址的预测转换,所述预测的第二存储器地址是所述第一存储器地址的预定函数;
发起对预测的第二存储器地址的处理;
执行操作来为第一存储器地址生成与许可信息相关联的转换后的第二存储器地址,所述许可信息用于指示是否允许对转换后的第二存储器地址进行存储器访问;并且
当所述许可信息指示允许对转换后的第二存储器地址进行访问时,提供转换后的第二存储器地址来作为对所述转换请求的响应。
CN202110286651.1A 2020-03-24 2021-03-17 存储器管理 Pending CN113448879A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB2004256.0A GB2593484B (en) 2020-03-24 2020-03-24 Memory management
GB2004256.0 2020-03-24

Publications (1)

Publication Number Publication Date
CN113448879A true CN113448879A (zh) 2021-09-28

Family

ID=70546651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110286651.1A Pending CN113448879A (zh) 2020-03-24 2021-03-17 存储器管理

Country Status (4)

Country Link
US (1) US11755497B2 (zh)
CN (1) CN113448879A (zh)
GB (1) GB2593484B (zh)
TW (1) TW202143051A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114281720B (zh) * 2021-12-14 2022-09-02 海光信息技术股份有限公司 处理器、用于处理器的地址翻译方法、电子设备
CN114218132B (zh) * 2021-12-14 2023-03-24 海光信息技术股份有限公司 信息预取方法、处理器、电子设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4071942B2 (ja) * 2001-04-27 2008-04-02 株式会社ルネサステクノロジ データ処理装置及びデータプロセッサ
US8140769B2 (en) * 2009-04-20 2012-03-20 Oracle America, Inc. Data prefetcher
GB2551756B (en) * 2016-06-29 2019-12-11 Advanced Risc Mach Ltd Apparatus and method for performing segment-based address translation
US10048881B2 (en) * 2016-07-11 2018-08-14 Intel Corporation Restricted address translation to protect against device-TLB vulnerabilities
US10387320B2 (en) * 2017-05-12 2019-08-20 Samsung Electronics Co., Ltd. Integrated confirmation queues
US10437739B2 (en) * 2017-09-26 2019-10-08 Intel Corporation Low-latency accelerator
CN110765034B (zh) * 2018-07-27 2022-06-14 华为技术有限公司 一种数据预取方法及终端设备
GB2576528B (en) * 2018-08-22 2021-06-23 Advanced Risc Mach Ltd Performing address translation on predicted virtual memory address
US10740248B2 (en) * 2018-12-13 2020-08-11 International Business Machines Corporation Methods and systems for predicting virtual address

Also Published As

Publication number Publication date
GB202004256D0 (en) 2020-05-06
TW202143051A (zh) 2021-11-16
GB2593484B (en) 2022-09-28
US11755497B2 (en) 2023-09-12
US20210303478A1 (en) 2021-09-30
GB2593484A (en) 2021-09-29

Similar Documents

Publication Publication Date Title
US8433853B2 (en) Prefetching of next physically sequential cache line after cache line that includes loaded page table entry
US7739477B2 (en) Multiple page size address translation incorporating page size prediction
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US7493452B2 (en) Method to efficiently prefetch and batch compiler-assisted software cache accesses
US20180300258A1 (en) Access rank aware cache replacement policy
US10019377B2 (en) Managing cache coherence using information in a page table
US20140143502A1 (en) Predicting Outcomes for Memory Requests in a Cache Memory
CN113342709B (zh) 在多处理器系统中访问数据的方法和多处理器系统
US7363435B1 (en) System and method for coherence prediction
JP2021532468A (ja) メモリ・システム内に記憶されているメモリ保護テーブルを使用するメモリ保護ユニット
JP7397057B2 (ja) メモリ・システム内に記憶されている制御テーブルのための二分探索手順
US7039768B2 (en) Cache predictor for simultaneous multi-threaded processor system supporting multiple transactions
US20090106498A1 (en) Coherent dram prefetcher
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
CN110858181A (zh) 用于执行地址转换的装置和方法
US11520585B2 (en) Prefetch store preallocation in an effective address-based cache directory
JP2009528612A (ja) データ処理システム並びにデータ及び/又は命令のプリフェッチ方法
US11755497B2 (en) Memory management
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
JP2007058349A (ja) キャッシュシステム
KR101830136B1 (ko) 경량 아키텍쳐를 이용한 에일리어스 메모리 연산 방법
US7689776B2 (en) Method and system for efficient cache locking mechanism
US7353341B2 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
JP6249120B1 (ja) プロセッサ
US11455253B2 (en) Set indexing for first-level and second-level set-associative cache

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