CN109032963B - 访问控制 - Google Patents

访问控制 Download PDF

Info

Publication number
CN109032963B
CN109032963B CN201810569933.0A CN201810569933A CN109032963B CN 109032963 B CN109032963 B CN 109032963B CN 201810569933 A CN201810569933 A CN 201810569933A CN 109032963 B CN109032963 B CN 109032963B
Authority
CN
China
Prior art keywords
memory
physical
memory address
address
circuit
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
Application number
CN201810569933.0A
Other languages
English (en)
Other versions
CN109032963A (zh
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 CN109032963A publication Critical patent/CN109032963A/zh
Application granted granted Critical
Publication of CN109032963B publication Critical patent/CN109032963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] 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/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
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

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)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本技术涉及访问控制。访问控制电路包括:检测器,检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,存储器地址转换是响应于另外的电路的转换请求而提供的;地址转换存储器,响应于另外的电路的转换请求而存储表示先前提供给该另外的电路的一组物理存储器地址的数据;接口,从另外的电路接收供该另外的电路进行存储器访问的物理存储器地址;比较器,将从另外的电路接收到的物理存储器地址与由地址转换存储器存储的一组物理地址进行比较,并且允许另外的电路访问包括在那组的一个或多个物理存储器地址中的物理地址。

Description

访问控制
技术领域
本技术涉及访问控制领域。
背景技术
在数据处理装置中,能够使用所谓的片外加速器或协处理器,其可以以更有效的方式执行特定的功能。一种方法是使用FPGA(现场可编程门阵列)加速器,使得FPGA可以重新编程以执行不同的加速任务。
为了改善片外加速器的性能,可以在加速器和主机设备之间使用一致性接口。这允许在数据结构共享时加速器在本地缓存的存储器上运行,而无需软件缓存维护。
完全一致性加速器和IO一致性加速器(不本地缓存数据)之间的区别在于:完全一致性加速器应使用物理地址(PA)来进行本地缓存。这是必需的,以便来自主机芯片的任何监听事务将检测到加速器中正确的缓存行并执行正确的动作。
发明内容
在示例布置中,提供了访问控制电路,该访问控制电路包括:
检测器,检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,存储器地址转换响应于另外的电路的转换请求而提供;
地址转换存储器,响应于另外的电路的转换请求,存储表示先前提供给该另外的电路的一组物理存储器地址的数据;
接口,从另外的电路接收供该另外的电路进行存储器访问的物理存储器地址;以及
比较器,将从另外的电路接收到的物理存储器地址与由地址转换存储器所存储的一组物理地址进行比较,并且允许另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理地址。
在另一示例布置中,提供了访问控制电路,该访问控制电路包括:
用于检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换的装置,存储器地址转换响应于另外的电路的转换请求而提供;
用于响应于另外的电路的转换请求而存储表示先前提供给该另外的电路的一组物理存储器地址的数据的装置;
用于从另外的电路接收供该另外的电路进行存储器访问的物理存储器地址的装置;
用于将从另外的电路接收到的物理存储器地址与由存储装置所存储的所述一组物理地址进行比较的装置;以及
用于允许另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理地址的装置。
在另一示例布置中,提供了一种方法,该方法包括:
检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,存储器地址转换响应于另外的电路的转换请求而提供;
响应于另外的电路的转换请求,存储表示先前提供给该另外的电路的一组物理存储器地址的数据;
从另外的电路接收供该另外的电路进行存储器访问的物理存储器地址;
将从另外的电路接收到的物理存储器地址与由地址转换存储器所存储的一组物理地址进行比较;以及
允许另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理地址。
根据以下结合所附附图阅读对示例的描述,本技术的其他方面、特征和优点将变得很明显。
附图说明
仅借助于示例并通过参照如附图所示的实施例来进一步描述本技术,在附图中:
图1示意性地示出了数据处理装置;
图2是示出了一种方法的示意性流程图;
图3示意性地示出了物理地址检查缓存;
图4至图6示意性地示出了数据结构;
图7至图10是示出各个方法的示意流程图;
图11至图16示意性地示出了包括访问控制电路的各个实现方式;以及
图17是示出了一种方法的示意性流程图。
具体实施方式
在参考附图讨论实施例之前,提供对实施例的以下描述。
示例实施例提供了访问控制电路,该访问控制电路包括:
检测器,检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,存储器地址转换响应于另外的电路的转换请求而提供;
地址转换存储器,响应于另外的电路的转换请求,存储表示先前提供给该另外的电路的一组物理存储器地址的数据;
接口,从另外的电路接收供该另外的电路进行存储器访问的物理存储器地址;以及
比较器,将从另外的电路接收到的物理存储器地址与由地址转换存储器所存储的一组物理地址进行比较,并且允许另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理地址。
本公开的示例可以提供一种访问控制技术,该访问控制技术可以允许另外的电路访问物理存储器地址,其中定义该物理存储器地址的有效地址转换先前已经被提供给另外的电路(并且在示例中当前由地址转换存储器保存)。本公开的示例还可以提供一种访问控制技术,该访问控制技术可以禁止(例如,拒绝)另外的电路访问物理存储器地址,其中定义该物理存储器地址的有效地址转换先前未被提供给另外的电路。
这样的布置可以提供针对另外的电路(其具有用于根据物理存储器地址进行存储器访问(恶意地或由于故障或错误)的接口)试图通过接口访问该另外的电路未被授权访问的物理存储器地址的预防措施。
这种布置的优点在于可以提供潜在改进的保护,而不一定需要改变操作系统和/或管理程序布置。
在示例布置中,检测器可连接到存储器管理电路并被配置为检测由存储器管理电路发出的存储器地址转换响应。这为检测器提供了一种方便的技术,用于获取定义先前已经发出的存储器地址转换的数据,以便提供供地址转换存储器存储的数据。
为了检测访问应该被允许(准许)还是被禁止,地址转换存储器仅存储一组物理地址就足够了。然而,为了提供更大的灵活性,例如为了允许对存储器地址转换的选择性无效,在示例布置中,地址转换存储器的布置被配置为针对由地址转换存储器所存储的数据表示的每个物理存储器地址而存储定义相应的虚拟存储器地址的数据。例如,在提供了多个另外的电路实例的情况下,在地址转换存储器被配置为针对由地址转换存储器所存储的数据表示的每个物理存储器地址而存储指示另外的电路的标识符的数据的示例中,可以实现在无效特定存储器地址转换方面的更大灵活性。
可以通过例如存储器管理电路或访问控制电路本身来使地址转换无效。在示例实施例中,响应于到另外的电路的使给定存储器地址转换无效的无效请求,地址转换存储器被配置为删除表示至少与给定存储器地址转换对应的物理存储器地址的数据。这意味着存储器地址转换的无效导致从地址转换存储器中删除相应的数据,继而导致了对该物理存储器地址的访问被访问控制电路禁止。
为了避免在启动无效时访问正在进行的访问事务的物理存储器地址被禁止,在示例布置中,地址转换存储器被配置为响应于由另外的电路对于给定存储器地址转换的无效的确认而删除表示至少与给定存储器地址转换相对应的物理存储器地址的数据。通过这种方式,物理存储器地址仍然可供另外的电路进行访问,直到另外的电路已经确认此无效为止。
如上所述,在一些示例布置中,访问控制电路本身可以发起无效。例如,在一些布置中,检测器被配置为检测地址转换存储器的当前可用容量是否小于阈值;并且响应于检测到地址转换存储器的当前可用容量是小于阈值的,访问控制电路被配置为向另外的电路发出针对一个或多个存储器地址转换的无效请求。通过这种方式,使得能够为新存储的数据腾出空间而删除先前存储的数据,但是为了避免与另外的电路保持的有效转换对应的对物理地址的访问被禁止而例如使用上面讨论的一种或多种技术将对应于被删除的数据的地址转换同样被无效。阈值可以是零(空间剩余),但是在示例布置中,考虑到从地址转换存储器移除条目(例如使用无效技术)而涉及的任何等待时间,阈值可以大于零,例如20%的空间剩余。
平坦存储器结构可以用于地址转换存储器,或者在其他示例中,地址转换存储器被配置为两层或更多层的缓存存储器层次结构。在一些示例中,地址转换存储器可以通过物理地址来索引,以便允许关于另外的电路尝试的物理存储器访问的低等待时间。
示例配置可以提供数据处理装置,包括:如上定义的访问控制电路;以及存储器管理电路,用于响应于来自另外的电路的转换请求而提供虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的地址转换。例如,这些组件可以或可以不被实现为公共集成电路的部分。
数据处理装置的示例布置还可以提供响应于另外的电路的存储器访问的数据存储,该存储器访问定义了访问控制电路已允许该存储器访问进行访问的物理存储器地址。例如,数据处理装置的这些组件可以或可以不被实现为公共集成电路的部分。
数据处理装置的示例布置还可以提供其他电路,其他电路包括:地址转换请求电路,向存储器管理电路发出存储器地址转换请求;以及存储器访问电路,根据物理存储器地址发起存储器访问。例如,数据处理装置的这些组件可以或可以不被实现为公共集成电路的部分。
作为示例,其他电路可以包括可在虚拟存储器地址空间中操作的处理器单元和可在物理地址空间中操作的存储器。然而,虽然本技术适合于这种布置,但是本技术不需要特定配置的其他电路。
这样其他电路可以是有用的情况是如下情况:数据处理装置包括一致性控制器;并且(其他电路的)能在物理地址空间中操作的存储器是一致性缓存存储器。然而,无论是否使用一致性存储器系统,本技术都是适用的。
本技术在其他电路的性质或行为不是直接或永久地处于系统设计者的控制下的情况下特别有用,例如在如下一种布置中:其他电路包括可配置逻辑电路,该可配置逻辑电路具有可根据配置数据配置的一组逻辑元件和逻辑元件之间的一组互连。
另一示例实施例提供访问控制电路,该访问控制电路包括:
用于检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换的装置,存储器地址转换响应于另外的电路的转换请求而提供;
用于响应于另外的电路的转换请求而存储表示先前提供给另外的电路的一组物理存储器地址的数据的装置;
用于从另外的电路接收供另外的电路进行存储器访问的物理存储器地址的装置;
用于将从另外的电路接收到的物理存储器地址与由存储装置所存储的所述一组物理地址进行比较的装置;以及
用于允许另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理地址的装置。
另一示例实施例提供一种方法,该方法包括:
检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,存储器地址转换是响应于另外的电路的转换请求而提供的;
响应于另外的电路的转换请求而存储表示先前提供给另外的电路的一组物理存储器地址的数据;
从另外的电路接收供该另外的电路进行存储器访问的物理存储器地址;
将从另外的电路接收到的物理存储器地址与由地址转换存储器所存储的一组物理地址进行比较;以及
允许另外的电路访问包括在该组一个或多个物理存储器地址中的物理地址。
图1示意性地示出了数据处理装置。在该示例中,该装置被形成为两个分离的集成电路或芯片,即主机芯片100和加速器芯片110。两个集成电路100、110例如可以在公共电路板上连接在一起。为了图1的清晰起见而未示出的其他设备或集成电路也可以设置在电路板上。
主机芯片包括中央处理单元(CPU)120、存储器管理单元(MMU)122、主存储器124、家庭节点(HN)126和一个或多个外围设备128。
物理地址检查缓存(PACC)130也被提供。下面将详细讨论PACC130的操作。
加速器芯片110形成在本文中另外的电路的示例并且可以通过(例如)PCIe互连连接到主机芯片100,并且可以例如形成为现场可编程门阵列(FPGA)或其他可配置逻辑设备。(下面讨论的其他示例不一定使用可配置的逻辑设备,并且下面讨论的其他示例不一定被实现为分离的集成电路设备)。通常,另外的电路可以(在示例实施例中)被认为是提供用于存储器访问的物理地址的电路,并且对此物理地址的访问响应于由PACC130存储的数据而进行控制的。
FPGA是可配置逻辑设备的示例,其可配置为在制造后执行特定功能。这可以将FPGA与专用集成电路(ASIC)区分开来,后者是为了执行特定功能而制造的。
FPGA通常包括可配置逻辑元件的阵列(其每一个可以通过配置数据单独控制以执行选择的逻辑功能中的相应一个),逻辑元件具有与其他逻辑元件的可配置互连。各种类型的FPGA包括具有与逻辑元件相关联的非易失性存储器单元(例如,基于闪存技术)的FPGA以及具有与逻辑元件(例如基于SRAM的元件)相关联的易失性存储器单元的FPGA。具有易失性存储器的FPGA通常使用外部存储器(如非易失性存储器)来保存其配置信息。配置信息(例如)在初始化时串行传输到基于SRAM的存储器中。
在加速器芯片110的情况下,FPGA的逻辑元件和/或可配置互连可以被配置以便提供加速器或协处理器132、转换缓冲器单元(TBU)134和一致性缓存存储器136。FPGA可以根据配置信息138进行操作,该配置信息例如由配置数据存储器(诸如非易失性存储器)存储并且由配置数据接口140提供给该装置。
图1的示例是在两个集成电路设备上组织的所谓的一致性系统。然而,本公开并不要求使用一致性数据存储。不要求一致性数据存储的其他示例将在下面讨论。类似地,并不要求使用双芯片布置,或者甚至并不要求图1中被绘制作为主机芯片100的组件部件中许多组件部件以这种方式来实现。再次,其他配置将在下面讨论。
在本讨论中,术语“一致性”是指维护跨整个一致性系统所存储的相同数据的多个副本之间的正确关系。例如,数据可以存储在存储器124中。其他处理节点(诸如CPU 120和加速器132)可以是具有其各自的缓存的处理元件,并且取决于处理元件操作的性质,这样的缓存可以存储也被存储在存储器124中的数据的一个或更多副本。在应对一个节点对这种信息的访问的数据的情况下,需要确保访问节点正在访问所存储信息的最新版本,并且如果它对存储的信息进行了任何更改,其他版本可以自行正确更改,或者其他版本被删除或无效(至少在被单独访问之前)。家庭节点126包括用于提供一致性操作的各种机制和电路。因此,在示例中,数据处理装置包括一致性控制器126;以及可在物理地址空间中操作的诸如缓存136的存储器是一致性缓存存储器。存储器124提供响应于另外的电路的存储器访问的数据存储的示例,该存储器访问定义了已由访问控制电路允许进行该存储器访问的物理存储器地址。
因此,与缓存一致性功能相关联的逻辑的作用是确保在发生数据处理事务之前,如果要访问的数据项的版本过时(由于对相同数据的另一副本进行了修改),要访问的副本首先被更新到最新。类似地,如果数据处理事务涉及修改数据项,则缓存一致性逻辑避免了与该数据项的其他现有副本的冲突。
一些缓存一致性系统(其中一致性被维护,或至少在相同数据的多个潜在副本上监控了一致性)利用缓存一致性控制器(如窥探过滤器)。缓存一致性控制器或“一致性点”或(在此示例中)“家庭节点”负责监视对存储器地址的访问,并可使用所谓的窥探过滤器来检查要被访问的存储器地址的缓存版本是否被缓存一致性系统中的另一缓存保存。术语“窥探过滤器”是历史的,并且在这里用于指代具有关联的“目录”的控制设备,其中目录存储指示哪个数据存储在哪个缓存中的信息,并且窥探过滤器自身至少有助于处理对缓存的信息的数据访问以提供缓存一致性功能。窥探过滤器可以和与缓存存储器相关联的代理交互。在典型的一致性系统中有两种类型的代理,即“完全一致性”和“I/O(输入/输出)一致性”。完全一致性代理是那些具有缓存结构(可以从互连电路窥探数据)的处理单元。I/O一致性代理没有缓存,因此无法被窥探,但是他们仍然需要读取存储在完全一致性代理的缓存中的数据。
回到加速器芯片110的讨论,这是一种完全一致性加速器,因此它包括一致性缓存存储器。为了允许执行上述窥探功能,一致性缓存136的本地缓存使用物理地址而不是与相关位置相关联的虚拟地址。该配置是另外的电路根据使用物理存储器地址的接口来执行(或者至少尝试)存储器访问的情况的示例。
然而,系统一致性并不是示例实施例的要求。可以使用其中由另外的电路根据物理存储器地址进行访问的其他布置。
数据处理装置通常为每个正在运行的程序提供对由虚拟存储器地址定义的虚拟地址空间的访问。每个程序或设备都会看到自己的虚拟地址空间,该空间中包含了供该程序使用的指令和数据。在其他已建立的优点以外,虚拟寻址的使用允许操作系统通过禁止一个程序或设备访问或破坏由另一程序或设备使用的信息来控制存储器访问。
当需要访问虚拟存储器地址时,首先需要将虚拟存储器地址转换为物理存储器地址,使得可以从物理存储器或物理存储器缓存中获取或写入所需的信息。在图1的示例中,转换由MMU 122处理。MMU 122提供存储器管理电路的示例,其响应于来自另外的电路的转换请求而提供虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的地址转换。
TBU 134存储近期或常用的虚拟存储器地址和物理存储器地址之间的转换,这些转换可适用于加速器132的操作。因此,作为加速器芯片110处的地址转换过程中的第一步,TBU被查阅以检测TBU是否已经包含所需的地址转换。如果不是,则可以使用更多涉及转换的过程,例如包含向MMU 122发送转换请求和将接收到的转换存储在TBU处。
在某些情况下使用多阶段MMU。在该布置中,事实上使用了两阶段转换。执行程序或诸如图形处理单元(GPU)之类的其他系统模块所需的虚拟地址(VA)由第一MMU阶段转换为中间物理地址(IPA)。IPA通过第二MMU阶段转换为物理地址(PA)。为什么使用多阶段转换的一个原因是为了在多个操作系统(OS)可以在运行在相同处理器上的相应“虚拟机”上使用时的信息处理的安全性。特定OS暴露于VA到IPA的转换,而只有管理程序(监督虚拟机运行的软件)监督第二阶段(IPA到PA)转换。
图1中示出的两个重要特征如下。
一个重要特征是加速器芯片110(并且在所示的特定示例中,即TBU 134)从MMU122请求所谓的存储器地址转换。这些提供了虚拟存储器地址(例如由加速器设备132使用的地址)和用于访问系统中真实存储器存储的物理存储器地址之间的转换。
另一个重要特征是加速器芯片110可以通过主访问接口142根据它们的物理存储器地址访问(或者至少尝试访问)存储器地址。
就PACC 130的操作而言,这两个特征与PACC的使用有关。加速器芯片110(或实际上与PACC 130交互的另外的设备或另外的电路)的实际结构或内部操作不是相关的;其可能如图1所示(示例)或可能不同。实际上,PACC的一个特征是针对与PACC 130所交互的另外的电路的恶意或不正确的操作提供至少部分保护。现在将讨论此功能。
如上所述,加速器芯片110或其他另外的电路(无论是作为单独的集成电路实现还是作为同一集成电路的部分实现)可以是可配置的,例如是FPGA。使用可配置电路的优点在于其提供的灵活性,因为它可以在制造之后配置以执行特定的所需功能。但是,这种灵活性再加上设备对物理存储器地址的访问还会带来设备被恶意配置以访问不打算由该设备访问的物理地址的风险。或者该设备可能只是被不正确地配置,例如其操作包括毛病或错误,这导致该设备对物理地址的尝试访问不被允许。这些风险由于如下特征而得到增强:可配置设备实际上可能在不同的数据处理系统之间共享,使得配置的FPGA的部分功能可能完全不受图1的数据处理系统的设计者的控制,但FPGA仍然具有通向数据处理系统中的物理地址接口。
事实上,这些风险并不限制对可配置硬件的使用。
已知通过将所谓的IP块链接在一起来组装大型集成电路数据处理系统,每个IP块表示设计或相应的处理模块,并且可以从第三方设计者购买或授权。一个非常大的系统可能具有相当数量的这种IP块,其中一些可能形成上面讨论的那种另外的电路的示例,因为它们具有通向系统的物理地址接口。为了避免上述类型的风险,例如涉及IP块的错误操作,可以使用PACC。换言之,这里讨论的技术即使在另外的电路本身在操作上不可配置的情况下也适用。
图2是示出图1的装置有关获得和使用存储器地址转换的操作的示意性流程图。在图2中,虚线205左侧示出的操作由加速器芯片执行,并且虚线205右侧示出的操作由主机芯片执行。
在步骤200中,加速器芯片(例如加速器132)需要存储器访问。如上所述,加速器设备132根据虚拟存储器地址进行操作。这些被映射或转换成物理存储器地址以用于实际存储器访问。为了进行这种访问,转换是需要的。
TBU 134充当缓冲器以保存最近使用且仍然有效的存储器地址转换。因此,在步骤210,如果所需的转换已经存在于TBU中,则控制转到下面将讨论的步骤250。如果否,则控制转到步骤220,在步骤220,TBU 134经由图1中的转换接口144从MMU 122请求转换。
在步骤230中,假设加速器132具有在该地址处进行存储器访问的许可,MMU 122产生所需的转换。在步骤230处生成的转换包括物理存储器地址,其是供加速器芯片110使用的对构成转换请求的一部分的虚拟存储器地址的映射。
在步骤235中,物理存储器地址以及可能的其他数据(以下讨论)被存储在PACC130中,并且在步骤240,包括物理地址的转换被返回到请求设备(在该示例中,加速器芯片110并且特别是其TBU 134)。在步骤245,转换由TBU 134存储。
然后控制转到步骤250,在步骤250中,使用先前存储在TBU中或新存储在TBU中的物理地址,通过物理地址进行的存储器存取由加速器芯片110产生并经由接口142,到主机芯片100。
在主机芯片100中,步骤260包括检查该物理地址当前是否由PACC 130保持。下面将讨论在PACC中保持物理地址的方式,但是一般而言,PACC 130存储一组先前已经由MMU122向加速器芯片110提供了有效转换的物理地址。
如果在步骤270处,形成当前访问的一部分的物理地址由PACC保存,则控制转到步骤280,在步骤280,访问请求(例如,读取请求或写入请求被服务,或者至少允许被服务。但是,如果在步骤270中当前的物理地址未被PACC保存,则控制转到步骤290,在该步骤290当前访问被拒绝或至少被禁止。
图3示意性地示出了PACC 130的示例配置,其包括响应从MMU 122接收的信息的检测器300;响应经由接口142(作为用于从另外的电路接收物理存储器地址以供该另外的电路进行存储器访问的接口的示例)接收的信息的比较器310以及控制电路320,用以控制主芯片100和/或加速器芯片110的某些操作。并且,提供PACC存储器330以例如以图4-图6中的任何一个所示的形式存储PACC信息。注意,存储器330可以被实现为保存所有PACC数据的单个平坦存储器设备,或者其可以使用多个(两个或更多个)级别的高速缓存存储器层级来实现,从而提供(例如)就最近较多使用的物理地址而言更快速的性能,以及就最近较少使用的物理地址而言可能不太快的性能。
因此,在示例布置中,检测器300可连接到存储器管理电路122并且被配置为检测由存储器管理电路发出的存储器地址转换响应。检测器300提供检测器的示例以检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,所述物理存储器地址空间是响应于另外的电路的转换请求而提供的。与控制电路320协同工作的比较器310提供了比较器的示例,用于将从另外的电路接收到的物理存储器地址与地址转换存储器存储的一组物理地址进行比较,并禁止另外的电路访问不包括在该组一个或多个物理存储器地址中的物理地址。类似地,与控制电路320协作工作的比较器310提供比较器的示例,以比较从另外的电路接收的物理存储器地址与地址转换存储器存储的一组物理地址,并且允许该另外的电路访问包括在该组一个或多个物理存储器地址中的物理地址。换句话说,在示例实施例中,通过这种方式执行的比较可以导致仅允许对该组中的物理地址的访问并且被禁止对不在该组中的物理地址的访问。当从另外的电路接收到的物理地址被包括在所述组中时,(在示例实施例中)从另外的电路接收的物理地址进行的访问被允许;并且(在示例实施例中),当从另外的电路接收到的物理地址未被包括在所述组中时,从另外的电路接收到的物理地址进行的访问被禁止。
图4-图6示意性地示出了由存储器330存储的PACC数据的示例格式。
在最低级别,图4示出了一组物理地址(PA)的存储,该物理地址是之前作为由MMU122生成的转换的一部分而被提供的物理地址。这提供了查找表或物理地址列表,因此,如果在图4形式的查找列表中找到了构成加速器芯片尝试进行当前存储器访问的一部分的物理地址,则PACC允许进行访问事务。如果不是,访问被禁止或拒绝。通过这种方式,物理地址列表提供了在图2的步骤270处的简单是/否结果所需的所有信息。因此,根据图4操作的PACC存储器330提供了一个示例,其中提供地址转换存储器以响应于另外的电路的转换请求而存储表示先前提供给该另外的电路的一组物理存储器地址的数据。
然而,在诸如图5和图6所示的其他示例中,还提供了其他信息。这可以允许从PACC存储器中更有效地进行失效或删除。这些技术将在下面进一步讨论。
在图5的示例中,再次将多个PA值存储为各个地址对500的一部分,使得每个地址对包括PA和对应的虚拟地址(VA),该虚拟地址被转换成该PA。这提供了一个示例,其中地址转换存储器被配置为针对由地址转换存储器存储的数据表示的每个物理存储器地址来存储定义对应的虚拟存储器地址的数据。
在图6中,每个PA与一组数据600相关联,该组数据例如包括PA、相应的VA、以及与转换涉及转换请求的在此处将该VA转换为PA的一个或多个设备相关的一个或多个标识符(ID)。这提供了一个示例,其中地址转换存储器被配置为针对由地址转换存储器所存储的数据所表示的每个物理存储器地址来存储指示该另外的电路的标识符的数据。
注意,示例实施例中的转换请求不涉及单独的单个存储器地址,而是可以涉及组或页,例如,4千字节的连续存储器地址页,其具有存储器地址上的共有的更多有效位。因此,在这样的示例中,每个条目或数据组500、600(或者甚至指示图4中的PA值的数据)可以表示页面或其他地址范围。
图7是示出了在PACC中存储数据并且涉及图3的检测器300的操作的示意性流程图。
如上所述,检测器300响应于从MMU 122接收的信息。在例如图1所示的实例中,其中PACC 130和MMU 122被实现为单个集成电路的部分,PACC 130并且具体地检测器300可以被提供来自MMU 122的直接连接,或者可以经由诸如图1中的互连146的互连或总线布置来接收数据。在任一情况下,检测器300响应于由MMU 122执行的事务。
在其他实施例中,诸如以下讨论的其中PACC 130被实现为与包括MMU 122的存储器系统分开,再次地,检测器300仅需要被连接以便能够响应由MMU服务的转换请求事务122。
在至少一些实施方式中,单个MMU 122可以服务来自多个源的存储器地址转换事务,并且促成这一点的一种技术是:对于这些事务,设置关联的标识符,该标识符标识至少是作为存储器地址转换请求的源的设备,以及在一些示例中,将MMU 12标识为请求的目标。在简单的示例中,这些源标识符和目标标识符可以在由MMU 122提供的响应中互换,以便将该响应路由回发端设备。
在步骤710中,检测器300检测PACC的存储器存储装置330中是否有足够的空间来存储所需的与新检测到的转换有关的数据(例如图4情况下的PA,图5情况下的PA/VA和等等)。如果答案为否,则控制转到步骤720,在步骤720中,至少建立或开始对存储器330中当前保存的一个或多个条目删除的过程。这些过程的示例将在下面讨论。如果答案是肯定的,或者在步骤720结束时,则控制转到步骤730,在步骤730中,合适的数据(根据存储器330使用的格式)被存储在PACC存储器中。
步骤710中的检测可以检测PACC存储器是全部满的还是可以检测PACC存储器330中是否剩余少于特定阈值量的空间。例如,检测可以是判断是否有小于(假设)20%的PACC存储器330的容量尚还可用。将该阈值设置为低于PACC存储器330的完整容量的原因是考虑到执行步骤720及其结论(删除条目)可能需要的处理时间或等待时间。这提供了一个示例,其中检测器被配置为检测地址转换存储器的当前可用容量是否小于阈值;并且响应于检测到小于地址转换存储器的阈值容量当前可用,访问控制电路被配置为向另外的电路发出针对一个或多个存储器地址转换的无效请求。例如,可以以轮询法为基础、以最近较少使用为基础或以其他类似方式来选择要失效的一个或多个转换。
下面将进一步讨论用于实施由步骤720发起的删除的示例过程。
现在转到图8,示意性流程图示出了比较器310和控制电路320的操作。
在步骤800中,比较器310接收执行加速器芯片110的当前存储器访问请求的一部分的PA。例如,可以从接口142检测该地址。在步骤810中,比较器310将刚刚从接口142接收的物理地址与保存在PACC存储器330中的物理地址进行比较。如果新接收的物理地址保存在PACC存储器330内,则控制转到步骤820,在该步骤中,当前的存储器访问是允许的。如果不是,则控制转到步骤830,在该步骤中,当前访问被禁止。
术语“禁止”可以包含完全被拒绝的请求。然而,在其他示例中,术语“禁止”可以包含在执行该存储器请求时施加的另外的不同条件或附加条件,诸如传送要求该另外的电路再次尝试获得适合于该地址的地址转换的要求。
可选地,控制可以转到步骤840,在步骤840中也可以响应于PACC中的当前PA的元素(atom)执行其他措施。例如,可以向CPU 120提供处理器中断,可以将消息或故障状况发送给加速器芯片110等。
在图4-图6的示例格式中,可以通过物理地址对PACC存储器进行索引,以允许对进入的物理地址进行相对快速的检查。这可以对处理存储器访问事务(对其而言,避免额外的延迟是至关重要的)施加较低的延迟或额外的等待时间,但是可能会导致在诸如下面讨论的无效操作中搜索PACC存储器330中的适当条目时潜在的较高等待时间。但是,这些操作的延迟并不那么重要。
图9是示出可以通过例如图7的步骤720触发的步骤的示意性流程图,即,启动删除PACC中的条目的过程。在图9中,虚线900左边的步骤由PACC 130(例如通过控制电路320)执行,虚线900右边的步骤由加速器芯片110执行,例如由TBU 134进行。
在步骤910中,PACC向加速器芯片110发送所谓的无效请求或指令。这指示PACC使TBU 134保存的条目无效,使得一旦条目被无效,则在转换时不会更长时间地保持在加速器芯片上。无效请求可以包括相关PA(或者在页面或其他类似范围转换的情况下的PA范围)以及在一些示例中相关的VA或VA范围,以帮助在TBU 134处对该转换的识别。可选地,并且如果该信息在PACC处被保持或可导出,则可以将其他数据包括在无效请求中,例如其他电路的标识符。例如,如果加速器132在无效处理完成之后需要访问该存储器地址,则图2的步骤220...245所示的操作将不得不再次执行。然而,在无效过程发生时,可能存在“飞行中”事务(正在进行中的事务)访问该存储器地址,因此该条目不会从PACC中删除,直到TBU 134的无效处理结束。换句话说,在时间段920期间,有关的物理地址保持在PACC中,使得PACC仍然允许对该物理地址进行访问。
在步骤930中,TBU 134接收无效请求并对其进行处理,以便在步骤940使该条目无效或从TBU删除。TBU将作为其正常操作的一部分推迟完成无效,直到任何相关的飞行中存储器访问事务已完成。然后,在步骤950中,TBU 134向PACC 130发回对地址转换已在TBU134处被无效的确认。最后,在步骤960中,响应于该确认,PACC 130从PACC存储器330删除(例如,由控制电路320)相关条目。该步骤960具有禁止随后访问该物理地址的效果,除非并且直到用该物理地址重新填充PACC存储器330。步骤960提供了一个示例,其中响应于到另外的电路的无效请求以使给定的存储器地址转换无效,地址转换存储器被配置为删除表示至少与给定的存储器地址转换对应的物理存储器地址的数据。通过在步骤950之后安排步骤960,产生周期920,这提供了一个示例,其中地址转换存储器被配置为响应于确认由另外的电路执行的对给定存储器地址转换的无效而删除表示至少与给定存储器地址转换相对应的物理存储器地址的数据。
使TBU 134条目无效的另一个原因是所谓的存储器用途改变。通常这是由于诸如存储器分页(memory paging)之类的原因所引起的,其中当前存储器副本(或其一部分)被复制到磁盘或其他非易失性存储器,并且指向该部分存储器的VA到PA转换被无效。然后存储器(或至少可以)用于不同的用途。该部分存储器不再可用于加速器芯片110的有效使用。在这种情况下,在操作系统和/或管理程序软件的控制下,主机芯片100的另一部分(例如CPU 120)可以生成使TBU 134保存的与用途重设部分有关的那些转换无效的的无效请求。图10中示出了与该过程相对应的步骤,
图10是示出主机芯片100的操作的示意图,例如左侧列中的CPU 120,中央列中的PACC 130的操作以及加速器芯片的操作110在右侧列中。该过程的部分与图9中所示的相似,并且在此不再详细描述。
在步骤1000中,CPU 120为特定存储器地址转换和/或特定物理地址生成无效请求。在步骤1010中,CPU 120向加速器芯片110(例如TBU 134)和PACC 130发送与无效请求有关的信息。这两者在相应的步骤1020、1030处接收信息。
在TBU 134处,步骤1020、1040和1050对应于图9的步骤930、940、950,并且将不在这里详细讨论。同样,在TBU 134正在处理无效的时间段1035期间,由于PACC尚未删除物理地址,所以仍然允许PACC访问该物理地址。
当确认由TBU134提供时,它在步骤1060中被起始节点(例如CPU 120)接收,并且在类似于上述步骤960的步骤1070处由PACC发起对该条目的删除。
现在将描述上面示出的示例的各种配置。
示例性配置在图11中示意性地示出,其中PACC 1100设置在包括MMU 1120和可选的存储器存储装置1130的存储器系统1110与另外的电路1140之间。该另外的电路可以是图1中所示的类型的加速器芯片,但更一般地,如上所述,另外的电路简单地包括(可能还有若干其他特征,未示出)转换请求电路1150,其请求从MMU 1120的虚拟地址到物理地址的存储器地址转换,以及存储器访问电路1160,其通过它们的物理地址来访问或至少试图访问存储器地址。使用上面讨论的技术,PACC 1100响应于由MMU 1120发出的存储器地址转换,并且还被布置为检测另外的电路1140的存储器访问请求是否是可允许的。
因此,图11提供了包括另外的电路1140的数据处理设备的示例,该另外的电路包括:地址转换请求电路1150,用于向存储器管理电路发出存储器地址转换请求;以及存储器访问电路1160以根据物理存储器地址发起存储器访问。在一些示例中,如图1所示,该另外的电路可以包括可在虚拟存储器地址空间中操作的处理器单元132和可在物理地址空间中操作的存储器136。尽管这不是本技术的要求,但是这些技术可适用于其中诸如FPGA之类的具有一组逻辑元件以及可根据配置数据配置的逻辑元件之间的一组互连的其他电路可配置逻辑电路的示例。
因此,在一些示例实施例中,例如如图3所示的PACC 1100可以自己构成示例实施例。
参考图12,PACC 1200可以布置在存储器系统1210和另外的电路的多个实例1220、1230……之间。例如,多个实例可以被实现为单个FPGA内的子单元,或者可以是单独的集成电路或单独的功能单元,例如所谓的IP块。使用图12中所示的布置,PACC可以以上面讨论的形式提供对通过任何另外的电路对存储器系统1210的访问或企图访问提供保护,但不一定提供关于这些另外的电路之间的访问的保护。
图13示意性地示出了多个PACC 1300、1310……。其中的每一个负责保护相应的另外的电路(或者相应的其他电路组)到存储器系统1340进行的访问或尝试访问。
在物理实现方面,在图14中,PACC被图示为可连接到存储器系统1410和另外的电路1420的独立式设备1400。
在图15中,诸如集成电路的系统,例如所谓的芯片上系统(“SoC”)或片上网络(“NoC”)1500包括PACC 1510和存储器系统1520,该存储器系统至少包括可连接到另外的电路1530的MMU,。
在图16中示意性示出的另一示例中,单个集成电路(例如SoC,NoC等1600)包括PACC 1610、具有至少MMU 1620和另外的电路1630的存储器系统。
图17是示出了包括以下的方法的示意性流程图:
检测(在步骤1700中)虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,所述物理存储器地址转换是响应于另外的电路的转换请求而提供的;
在地址转换存储器中响应于另外的电路的转换请求而存储(在步骤1710中)表示先前提供给该另外的电路的一组物理存储器地址的数据;
从另外的电路接收(在步骤1720中)物理存储器地址,用以由另外的电路进行的存储器访问;
将从另外的电路接收的物理存储器地址与由地址转换存储器存储的一组物理地址进行比较(从步骤1730中);以及
(在步骤1740中)允许另外的电路访问包括在一组一个或多个物理存储器地址中的物理地址(例如,允许仅访问包括在这组一个或多个物理地址中的物理地址;和/或例如,禁止访问未包括在这组一个或多个物理地址中的物理地址;和/或例如,当从另外的电路接收到的物理地址被包括在这组一个或多个物理地址中时,允许对从另外的电路接收的物理地址进行访问;和/或例如,当从另外的电路接收到的物理地址未被包括在这组一个或多个物理地址中时,禁止对从另外的电路接收的物理地址进行访问)。
在本申请中,词语“被配置为……”用于表示装置的元件具有能够执行所定义的操作的配置。在这种情况下,“配置”是指硬件或软件互连的安排或方式。例如,该装置可以具有提供所定义的操作的专用硬件,或者处理器或其他程序可被编程以执行该功能。“被配置为”并不意味着设备元件需要以任何方式改变以提供所定义的操作。
尽管本文已参考所附附图详细地描述本发明的说明性实施例,但应理解,本发明并不限于这些精确实施例且本领域技术人员可在不脱离如所附权利要求所定义的本发明的范围和精神的情况下在其中实施各种改变、添加及修改。例如,在不脱离本发明的范围的情况下,可以利用独立权利要求的特征对从属权利要求的特征进行各种组合。

Claims (16)

1.一种集成电路,包括:
访问控制电路,包括:
检测器,检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,所述存储器地址转换是响应于不同的第二集成电路的另外的电路的转换请求而提供的;
地址转换存储器,响应于所述不同的第二集成电路的另外的电路的转换请求而存储表示先前提供给所述不同的第二集成电路的另外的电路的一组物理存储器地址的数据;
接口,从所述不同的第二集成电路的另外的电路接收供所述不同的第二集成电路的另外的电路进行存储器访问的物理存储器地址;以及
比较器,将从所述不同的第二集成电路的另外的电路接收到的物理存储器地址与由所述地址转换存储器所存储的所述一组物理存储器地址进行比较,并且允许所述不同的第二集成电路的另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理存储器地址,并禁止所述不同的第二集成电路的另外的电路访问并不包括在所述一组的一个或多个物理存储器地址中的物理存储器地址。
2.根据权利要求1所述的访问控制电路,其中,所述检测器能连接到存储器管理电路并且被配置为检测由所述存储器管理电路发出的存储器地址转换响应。
3.根据权利要求1所述的访问控制电路,其中,所述地址转换存储器被配置为针对由所述地址转换存储器所存储的数据表示的每个物理存储器地址,存储定义对应的虚拟存储器地址的数据。
4.根据权利要求3所述的访问控制电路,其中,所述地址转换存储器被配置为针对由所述地址转换存储器所存储的数据表示的每个物理存储器地址,存储指示所述另外的电路的标识符的数据。
5.根据权利要求1所述的访问控制电路,其中,响应于到所述另外的电路的使给定存储器地址转换无效的无效请求,所述地址转换存储器被配置为删除表示至少与所述给定存储器地址转换对应的所述物理存储器地址的所述数据。
6.根据权利要求5所述的访问控制电路,其中,所述地址转换存储器被配置为响应于由所述另外的电路对所述给定存储器地址转换的无效的确认,删除表示至少与所述给定存储器地址转换相对应的所述物理存储器地址的所述数据。
7.根据权利要求5所述的访问控制电路,其中:
所述检测器被配置为检测所述地址转换存储器的当前可用容量是否小于阈值;以及
响应于检测到所述地址转换存储器的当前可用容量是小于所述阈值的,所述访问控制电路被配置为向所述另外的电路发出针对一个或多个存储器地址转换的无效请求。
8.根据权利要求1所述的访问控制电路,其中,所述地址转换存储器被配置为两层或更多层的缓存存储器层次结构。
9.一种数据处理装置,包括:
根据权利要求1所述的访问控制电路;以及
存储器管理电路,响应于来自另外的电路的转换请求,提供虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的地址转换。
10.根据权利要求9所述的数据处理装置,包括:
响应所述另外的电路的存储器访问的数据存储,所述存储器访问定义了由所述访问控制电路允许进行所述存储器访问的物理存储器地址。
11.根据权利要求9所述的数据处理装置,包括:
其他电路,包括:
地址转换请求电路,向所述存储器管理电路发出存储器地址转换请求;以及
存储器访问电路,根据物理存储器地址发起存储器访问。
12.根据权利要求11所述的数据处理装置,其中,所述其他电路包括能在所述虚拟存储器地址空间中操作的处理器单元和能在物理地址空间中操作的存储器。
13.根据权利要求12所述的数据处理装置,其中:
所述数据处理装置包括一致性控制器;以及
能在所述物理地址空间中操作的所述存储器是一致性缓存存储器。
14.根据权利要求11所述的数据处理装置,其中,所述其他电路包括可配置逻辑电路,所述可配置逻辑电路具有一组逻辑元件和这些逻辑元件之间的能根据配置数据配置的互连。
15.一种集成电路,包括:
用于控制访问的装置,包括:
用于检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换的装置,所述存储器地址转换是响应于不同的第二集成电路的另外的电路的转换请求而提供的;
用于响应于所述不同的第二集成电路的另外的电路的转换请求而存储表示先前提供给所述不同的第二集成电路的另外的电路的一组物理存储器地址的数据的装置;
用于从所述不同的第二集成电路的另外的电路接收供所述不同的第二集成电路的另外的电路进行存储器访问的物理存储器地址的装置;
用于将从所述不同的第二集成电路的另外的电路接收到的物理存储器地址与由所述存储所存储的所述一组物理存储器地址进行比较的装置;以及
用于允许所述不同的第二集成电路的另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理存储器地址并禁止所述不同的第二集成电路的另外的电路访问并不包括在所述一组的一个或多个物理存储器地址中的物理存储器地址的装置。
16.一种集成电路中实现的方法,包括:
检测虚拟存储器地址空间中的虚拟存储器地址与物理存储器地址空间中的物理存储器地址之间的存储器地址转换,所述存储器地址转换是响应于不同的第二集成电路的另外的电路的转换请求而提供的;
响应于所述不同的第二集成电路的另外的电路的转换请求,存储表示先前提供给所述不同的第二集成电路的另外的电路的一组物理存储器地址的数据;
从所述不同的第二集成电路的另外的电路接收供所述不同的第二集成电路的另外的电路进行存储器访问的物理存储器地址;
将从所述不同的第二集成电路的另外的电路接收到的物理存储器地址与由所述地址转换存储器所存储的所述一组物理存储器地址进行比较;
允许所述不同的第二集成电路的另外的电路访问包括在所述一组的一个或多个物理存储器地址中的物理存储器地址;以及
禁止所述不同的第二集成电路的另外的电路访问并不包括在所述一组的一个或多个物理存储器地址中的物理存储器地址。
CN201810569933.0A 2017-06-12 2018-06-05 访问控制 Active CN109032963B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/620,017 2017-06-12
US15/620,017 US10324858B2 (en) 2017-06-12 2017-06-12 Access control

Publications (2)

Publication Number Publication Date
CN109032963A CN109032963A (zh) 2018-12-18
CN109032963B true CN109032963B (zh) 2023-09-05

Family

ID=62812186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810569933.0A Active CN109032963B (zh) 2017-06-12 2018-06-05 访问控制

Country Status (3)

Country Link
US (1) US10324858B2 (zh)
CN (1) CN109032963B (zh)
GB (1) GB2565188B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6198967B2 (ja) * 2014-02-28 2017-09-20 フィリップス ライティング ホールディング ビー ヴィ バスアドレス割当て
US10817441B2 (en) * 2019-03-29 2020-10-27 Intel Corporation Shared accelerator memory systems and methods
US10915456B2 (en) 2019-05-21 2021-02-09 International Business Machines Corporation Address translation cache invalidation in a microprocessor
CN117851281A (zh) * 2022-09-30 2024-04-09 成都华为技术有限公司 一种数据的访问方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1896972A (zh) * 2005-07-14 2007-01-17 中国科学院计算技术研究所 用于虚实地址变换及读写高速缓冲存储器的方法及装置
CN101398787A (zh) * 2007-09-28 2009-04-01 英特尔公司 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善
CN102023932A (zh) * 2009-09-18 2011-04-20 英特尔公司 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持
CN108228485A (zh) * 2016-12-09 2018-06-29 Arm 有限公司 存储器管理

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326501B (zh) 2006-04-06 2010-12-15 索尼株式会社 电桥、处理器单元、信息处理装置以及存取控制方法
US8719543B2 (en) 2009-12-29 2014-05-06 Advanced Micro Devices, Inc. Systems and methods implementing non-shared page tables for sharing memory resources managed by a main operating system with accelerator devices
US9218278B2 (en) * 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9749319B2 (en) 2015-05-20 2017-08-29 Google Inc. Address validation using signatures
US10599569B2 (en) * 2016-06-23 2020-03-24 International Business Machines Corporation Maintaining consistency between address translations in a data processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1896972A (zh) * 2005-07-14 2007-01-17 中国科学院计算技术研究所 用于虚实地址变换及读写高速缓冲存储器的方法及装置
CN101398787A (zh) * 2007-09-28 2009-04-01 英特尔公司 虚拟化环境中地址转换缓存操作和i/o高速缓存性能的改善
CN102023932A (zh) * 2009-09-18 2011-04-20 英特尔公司 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持
CN108228485A (zh) * 2016-12-09 2018-06-29 Arm 有限公司 存储器管理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARM MMU中虚拟地址到物理地址转换的研究;王宏宇;《2008年研究综述与技术论坛专刊》;全文 *

Also Published As

Publication number Publication date
US10324858B2 (en) 2019-06-18
GB201808722D0 (en) 2018-07-11
GB2565188B (en) 2019-07-24
CN109032963A (zh) 2018-12-18
US20180357178A1 (en) 2018-12-13
GB2565188A (en) 2019-02-06

Similar Documents

Publication Publication Date Title
CN109032963B (zh) 访问控制
CN108154054B (zh) 过滤一致性协议事务
US9753868B2 (en) Memory management device and non-transitory computer readable storage medium
US6449699B2 (en) Apparatus and method for partitioned memory protection in cache coherent symmetric multiprocessor systems
US10169244B2 (en) Controlling access to pages in a memory in a computing device
JP6434168B2 (ja) スイッチへのアドレスキャッシュ
JP3987577B2 (ja) システム管理モード情報を他の情報と共にキャッシュに入れる方法および装置
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
KR20130076696A (ko) 정보 처리 장치 및 부정 액세스 방지 방법
CN106227674B (zh) 缓存一致性控制器及方法
US10733111B2 (en) Memory management
TW201337938A (zh) 資訊處理裝置及控制方法
WO2021048518A1 (en) Memory access transaction with security check indication
EP3295316A1 (en) Management of memory resources in a programmable integrated circuit
JP2021535470A (ja) 有界ポインタの使用を制御するための装置及び方法
TWI605336B (zh) 監督記憶體管理單元
US20200081771A1 (en) Bit Error Protection in Cache Memories
JP7444853B2 (ja) メモリ・アクセスを制御するための装置及び方法
CN117063165A (zh) 迁移由输入-输出设备能够访问的存储器页面
EP4272081A1 (en) Migrating pages of memory accessible by input-output devices
US10379944B2 (en) Bit error protection in cache memories
US20050033979A1 (en) Method and system for secure direct memory access
EP3408749A1 (en) Memory address translation management
TW201629764A (zh) 具有外部故障回應處理功能之中央處理單元
JP6680973B2 (ja) 情報処理装置、情報処理装置の制御方法及び演算処理装置

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