CN110795376A - 具有用于访问验证的基于查询的地址转换的系统架构 - Google Patents

具有用于访问验证的基于查询的地址转换的系统架构 Download PDF

Info

Publication number
CN110795376A
CN110795376A CN201910706926.5A CN201910706926A CN110795376A CN 110795376 A CN110795376 A CN 110795376A CN 201910706926 A CN201910706926 A CN 201910706926A CN 110795376 A CN110795376 A CN 110795376A
Authority
CN
China
Prior art keywords
address
peripheral
port
data processing
management unit
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.)
Granted
Application number
CN201910706926.5A
Other languages
English (en)
Other versions
CN110795376B (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 CN110795376A publication Critical patent/CN110795376A/zh
Application granted granted Critical
Publication of CN110795376B publication Critical patent/CN110795376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/1425Protection 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 physical, e.g. cell, word, block
    • G06F12/1441Protection 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 physical, e.g. cell, word, block for a range
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • 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/1072Decentralised address translation, e.g. in distributed shared memory systems
    • 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
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • 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/651Multi-level translation tables
    • 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
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

本公开涉及具有用于访问验证的基于查询的地址转换的系统架构。一种装置包括:第一设备,所述第一设备被配置为生成以第一地址为目标的事务请求;交换机,所述交换机耦合到所述第一设备并且被配置为路由所述事务请求;端口,所述端口耦合到所述交换机和所述数据处理网络;以及系统存储器管理单元,所述系统存储器管理单元耦合到所述端口。所述系统存储器管理单元被配置用于:从所述端口接收对所述第一地址的地址查询;将所述第一地址转换为第二地址;访问与所述第二地址相关联的设备的属性;以及对所述查询做出响应。第一设备可以是外围设备,交换机可以是外围交换机,并且端口可以是外围端口。

Description

具有用于访问验证的基于查询的地址转换的系统架构
背景技术
快速外围组件互连(PCIe)是针对用于计算机的高速串行扩展总线的标准。PCIe提供将每个端点耦合到根联合体或主机的单独的串行链路,并且支持端点之间的对等通信。
PCIe访问控制服务(ACS)要求PCIe根联合体或主机对于对等请求执行访问验证。例如,这种验证由操作系统和管理程序系统要求以进行设备和功能指派。访问验证通常涉及请求系统存储器管理单元(MMU)查找系统页面表,以检索虚拟地址到物理地址转换以及检查访问的请求者是否具有读取和/或写入的权限并且/或者执行请求了访问的位置的内容。访问验证被设计来防止从一个PCIe端点对另一PCI端点的虚假对等访问。访问验证提供不同的虚拟机之间和不同的容器之间的隔离。因此,在没有访问验证能力的情况下,不能安全地启用重要的PCIe使用模型,诸如基于设备指派和单根输入/输出虚拟化(SR-IOV)的功能指派。
在数据处理网络中,可以将PCIe根联合体附接到网络的处理节点,但是访问验证可以由网络的存储器管理单元执行。结果,在多个网络组件之间转移验证请求和响应,从而产生增加的网络拥塞和验证延迟。然而,因此,存在对于支持PCIe的数据处理网络中的改进的访问验证的需要。
附图说明
附图提供视觉表示,所述视觉表示将用于更充分地描述各种代表性实施例,并且可由本领域的技术人员使用来更好地理解所公开的代表性实施例及其固有优点。在这些附图中,相似的附图标记标识对应的元件。
图1是常规数据处理系统的框图。
图2是与各种代表性实施例一致的数据处理系统的框图。
图3是依照各种代表性实施例的访问验证的方法的流程图。
图4是依照各种代表性实施例的访问验证的另一个方法的流程图。
图5是依照各种代表性实施例的PCIe访问验证机制的框图。
具体实施方式
本文描述的各种装置和设备提供用于在数据处理系统中进行访问验证的机制。
依照本公开的某些代表性实施例,提供了一种用于在具有快速外围组件互连(PCIe)子系统的数据处理系统中执行访问验证的改进的架构。
虽然本发明能以许多不同的形式实现实施例,但是在附图中示出了并且将在本文中详细地描述具体实施例,应理解本公开将被视为本发明的原理的示例,而不旨在将本发明限于所示出和描述的具体实施例。在下面的描述中,相似的附图标记用于描述附图的若干视图中的相同的、类似的或对应的部分。
在本文件中,诸如第一和第二、顶部和底部等这样的关系术语可以仅用于将一个实体或动作与另一实体或动作区分开,而不一定要求或者暗示这样的实体或动作之间的任何实际这样的关系或顺序。术语“包括”、“包括有”或其任何其他变型旨在涵盖非排他性包含,使得包括元件的列表的过程、方法、物品或装置不仅包括那些元件,而且可以包括未明确地列举的或者这样的过程、方法、物品或装置固有的其他元件。在没有更多的约束的情况下,继之以“包括……一”的元件不排除在附加相同的元件存在于包括该元件的过程、方法、物品或装置中。
贯穿本文件对“一个实施例”、“某些实施例”、“实施例”或类似的术语的引用意味着连同该实施例一起描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,这样的短语贯穿本说明书中在各个地方中的出现不一定全部指代同一实施例。此外,可以在一个或多个实施例中以任何适合的方式组合这些特定特征、结构或特性而没有限制。
如本文所使用的术语“或”将被解释为意指任何一个或任何组合的包含性或。因此,“A、B或C”意指“下列中的任一个:A;B;C;A和B;A和C;B和C;A、B和C”。只有当元件、功能、步骤或行为的组合以某种方式固有地相互排斥时才会发生此定义的例外。
为了图示的简单和清楚,可以在图中重复附图标记以指示对应或类似的元件。阐述了许多细节以提供对本文描述的实施例的理解。可以在没有这些细节的情况下实践实施例。在其他情况下,尚未详细地描述众所周知的方法、程序和组件以避免模糊所描述的实施例。描述不应被认为限于本文描述的实施例的范围。
本公开涉及一种用于在数据处理网络的外围子系统(诸如PCIe子系统)中进行访问验证的改进的机制。在当前的数据处理网络中,使用数据处理网络的主要事务流程来执行访问验证。
图1是常规数据处理系统100的框图。系统100包括相干互连电路102,其耦合在诸如处理节点104(其例如可以是完全相干请求节点(RN-F))这样的许多节点与主节点106(HN-F)之间,并且耦合到存储器107。每个处理节点可以包括一个或多个处理核心。每个主节点作为用于一系列系统地址的相干和序列化点。主节点的功能是为了提供地址转换,诸如系统地址与物理地址之间的转换。数据处理系统还可以包括经由PCIe交换机112、PCIe根端口114、系统存储器管理单元(MMU)116、中断转换服务(ITS)电路118和桥节点(RN-D)120耦合到数据处理网络的PCIe外围设备108和110。PCIe通信是基于分组的。PCIe交换机112接收分组并且基于分组报头在端口之间引导它们。PCIe根端口114实现PCIe机制的事务层,并且例如,代表网络节点生成事务请求。中断转换服务(ITS)电路118提供用于转换消息信号中断的机制。
系统MMU执行地址转换并且使得虚拟机(VM)能够执行直接到和来自PCIe端点的直接存储器访问(DMA)事务。这可以例如通过使用查找表来映射VM正在访问的虚拟地址(从其读取或者写入到其)到物理位置来完成。ATS还使得PCIe端点(诸如PCIe外围设备108或110)中的虚拟机能够执行DMA事务以访问存储器107。
在一个实施例中,系统MMU 116与ITS 118之间的通信通过由英国Arm Limited指定的
Figure BDA0002152408130000031
高级可扩展接口(AXI)来提供。ITS118与桥节点120之间的通信还可以通过AXI接口来提供。
例如,桥节点120可以耦合到相干互连电路102和Arm Limited的
Figure BDA0002152408130000041
相干集线器接口(CHI)。
可以将数据处理网络的各种组件实现为片上系统(SoC)122。在图1中所示的实施例中,PCIe设备108和110及PCIe交换机112位于芯片外,然而其他元件位于芯片上。对于本领域的普通技术人员而言将显而易见的是,SoC将包含许多其他组件。为清楚起见,已从图1中省略了这些。
由于PCIe提供基于分组的网络架构,所以每个分组的源和目的地是已知的并且可以被用于控制由设备进行的访问和对设备的访问。PCIe提供被称为访问控制服务(ACS)的一组特征,所述ACS可用于在PCIe网络中提供一定级别的安全性。例如,针对请求的权限验证在下游组件之间提供安全性。在操作中,PCIe访问控制服务(ACS)要求将PCIe设备之间的任何对等事务重新路由到PCIe根端口以进行访问验证。一旦PCIe根端口接收到事务消息,就必须对地址进行转换并且必须检查各种消息属性以进行访问验证。在图1中所示的系统中,在数据处理网络中执行这种访问验证。结果,请求消息被输送到数据处理网络并且响应消息被从数据处理网络输送回到PCIe根端口。在每个阶段,消息被排队和序列化并且分配跟踪器。过程是复杂的,因为使用了多种通信协议,此外,使用了大量的资源,诸如读取和写入缓冲器。更进一步地,当消息遍历系统时引入了显著的延迟。
图2是与本公开的实施例一致的数据处理系统200的框图。系统200包括相干互连电路202,其耦合在诸如处理节点204(其例如可以是完全相干请求节点(RN-F))这样的许多节点与主节点206(HN-F)之间。每个处理节点可以包括一个或多个处理核心。每个主节点作为用于一系列系统地址的相干和序列化点。主节点的功能是为了提供地址转换,诸如系统地址与物理地址之间的转换。数据处理系统还可以包括经由PCIe交换机212和PCIe根端口214耦合到数据处理网络的PCIe外围设备208和210。虽然讨论了PCIe子系统的实施例,但是可以在其他外围子系统中利用所公开的机制。
PCIe外围设备208和210被称为端点并且作为事务的发起者和完成者。
PCIe交换机212使得多个设备能够被附接到单个根端口。交换机作为分组路由器并且基于分组地址或其他路由信息来识别给定分组将需要取哪一条路径。
例如,PCIe根端口214可以耦合到相干互连电路202和Arm Limited的
Figure BDA0002152408130000051
相干集线器接口(CHI)。同现有架构对比,不要求桥节点将PCIe根端口214耦合到相干互连电路202。
PCIe根端口214还耦合到系统存储器管理单元(MMU)216。依照本公开的一个方面,系统MMU 216被配置为向PCIe根端口提供虚拟地址转换和存储器属性检查/解析功能。以这种方式,对于由PCIe子系统生成的请求从主要事务流程路径中移除访问验证。系统MMU 216响应于来自PCIe根端口214的“转换查询”而提供经转换的地址和解析的属性。以这种方式,消除了由现有架构所要求的大多数缓冲、跟踪和冒险操作。
虽然示出了单个PCIe根端口,但是其他实施例可以包括具有多个根端口的根联合体。每个根端口定义单独的层次域。每个层次域可以由单个端点或包含一个或多个交换机组件和端点的子层次组成。
系统MMU 216基于内部寄存器和转换表中可用的地址映射和存储器属性信息来将输入地址转换为输出地址。从输入地址到输出地址的地址转换被描述为地址转换的阶段。系统MMU 216可执行将输入虚拟地址(VA)转换为输出物理地址(PA)或中间物理地址(IPA)的阶段1转换。可选地,系统MMU 216可执行将输入IPA转换为输出PA的阶段2转换。阶段1和阶段2转换当被组合时将输入VA转换为输出IPA,然后将该IPA转换为PA。在一个实施例中,系统MMU对于转换的每个阶段执行转换表查询。地址转换可要求多个转换表查找。除了将输入地址转换为输出地址之外,地址转换的阶段还可以定义输出地址的存储器属性。利用两阶段转换,例如,阶段2转换可修改通过阶段1转换所定义的属性。
系统MMU可以包括转换缓冲单元(TBU),其包括用于缓存页面表的转换后备缓冲器(TLB)、用于控制并管理地址转换的转换控制单元(TCU)以及用于将多个TBU连接到TCU的互连。系统MMU可以为每个连接的主控实现TBU。
系统200还包括中断转换服务(ITS)电路218。
可以将数据处理网络的各种组件实现为片上系统(SoC)222。在图2中所示的实施例中,PCIe设备208和210及PCIe交换机212位于芯片外,然而其他元件位于芯片上。对于本领域的普通技术人员而言将显而易见的是,SoC将包含许多其他组件。为了清楚起见,已从图2中省略了这些。
图2中的元件208、210、212、214和216形成PCIe子系统。然而,对于本领域的技术人员而言将显而易见的是,可以在要求访问验证的其他外围子系统中利用本文公开的机制。更一般地,PCIe设备208和210被称为外围设备,PCIe交换机212被称为外围交换机,并且PCIe根端口214被称为外围端口。
图3是依照本发明的实施例的访问验证的方法300的流程图。该方法利用图2中所示并在上面讨论的架构。在开始块302之后,在块304处由数据处理系统的PCIe子系统中的PCIe设备发出PCIe事务请求。在块306处,在PCIe交换机中将请求重新路由到PCIe根端口。对于从需要地址转换和/或属性解析或保护检查的PCIe链路进来的每一事务,PCIe根端口可经由“地址转换查询”接口向系统MMU请求地址转换。因此,在接收到请求时,PCIe根端口在块308处向耦合到PCI根端口的系统MMU发送地址转换查询。在块310处,PCIe根端口从系统MMU接收对查询的响应。对于成功的查询,响应将包括经转换的地址以及任何解析的属性。否则系统MMU可发信号通知故障/错误条件。在块312处,PCIe根端口使用由MMU针对根端口为了访问而发送的地址转换查询所给出的响应来执行访问验证。对于对等事务,当访问被验证即请求者被许可访问目的地位置并且目的地地址有效时,不发信号通知错误,如通过来自判定块314的否定分支所描绘的,在块316处所请求的事务被启用并转发到目标端点,并且方法在块318处终止。如果访问未被验证,或者发信号通知了某个其他故障或错误,如通过来自判定块314的肯定分支所描绘的,则在块320处阻塞事务并且在块322处记录或者报告错误。方法在块318处终止。图3中所示的方法使得能够用比先前方法更多的资源和更低的延迟执行访问验证。
图4是依照本发明的实施例的访问验证的另一个方法400的流程图。此方法还利用图2中所示并在上面讨论的架构。在开始块402之后,在块404处由数据处理系统的PCIe子系统中的PCIe设备发出PCIe事务请求。在块406处,PCIe交换机向PCIe根端口发送地址转换查询。在从交换机接收到请求时,PCIe根端口在块408处向耦合到PCI根端口的系统MMU发送地址转换查询。在块410处,PCIe根端口从系统MMU接收对查询的响应。对于成功的查询,响应将包括经转换的地址以及任何解析的属性。否则系统MMU可以发信号通知故障/错误条件。在块412处,PCIe根端口将响应转发到PCIe交换机。在块414处,PCIe交换机使用经转换的地址来执行访问验证。访问验证可以包括检查事务的属性(诸如源和接收器属性)。对于对等事务,如果访问被验证,如通过来自判定块416的肯定分支所描绘的,则在块418处启用所请求的事务,并且方法在块420处终止。如果访问未被验证,如通过来自判定块416的否定分支所描绘的,则在块422处启用事务并且方法在块420处终止。
图4中所示的方法使得能够在不用将访问重新路由到PCIe根端口的情况下执行对等访问验证。此结果是不太复杂并且具有较高性能的系统。
图5是依照本公开的实施例的PCIe访问验证机制500的框图。在操作中PCIe根端口214从PCIe子系统502接收消息。PCIe根端口214除了包括用于未完成的读取事务的跟踪缓冲器508和用于未完成的写入事务的跟踪缓冲器510之外还包括读取缓冲器504、写入缓冲器506。系统MMU216包括用于跟踪来自PCIe根端口214的在进行中的转换请求的缓冲器512。转换请求在转换缓冲器单元513中进行处理。相比之下,在先前的架构中,MMU要求读取和写入缓冲器以及用于未完成的写入操作的跟踪缓冲器。系统MMU 216可以在与转换请求吞吐量匹配的时钟频率下操作。
中断转换服务(ITS)模块218包括用于串行化中断消息的MSI(消息信号中断)缓冲器514以及将信号映射到输出518上提供的中断的中断映射器516。例如,消息信号中断使得PCIe设备能够通过执行存储器写入事务而不是使用基于行的机制来递送中断。ITS模块218可以在比在现有系统中更低的时钟频率下操作,因为它仅需要与中断吞吐量而不是例如数据吞吐量匹配。
对于本领域的普通技术人员而言将显而易见的是,图5中所示的机制比现有架构更更效,因为已消除了冗余缓冲、跟踪和冒险。此外,已消除了对桥节点的需要。此外,在许多情况下有显著的延迟节省,因为根端口可以预取从端点进来的给定事务的地址转换,然后才满足对该事务的PCIe排序要求并且该事务有资格被转发到SOC互连。
可以通过硬件描述语言的指令来描述上面公开的外围子系统或其组件。例如,这样的指令可以被存储在非暂时性计算机可读介质中。这样的组件可以与其他组件组合以形成一个或多个集成电路。
类似地,例如,可以通过存储在非暂时性计算机可读介质中的网络表来描述上面公开的外围子系统或其组件。
上面公开的外围子系统可以由没有存储的程序指令的状态机实现,或者用一个或多个专用集成电路(ASIC)加以实现,其中每个功能或某些功能的某些组合被实现为自定义逻辑。当然,能使用两种方法的组合。
因此,已在本文中描述了用于在外围子系统中进行访问验证的方法和手段。进一步地,不管可能显著的努力以及通过例如可用时间、当前技术和经济考虑事项所驱动的许多设计选择,预期普通技术人员都将容易地能够用最小实验实现这些方法和手段。
因此,在以下编号的条款中陈述所公开的实施例的一些方面和特征:
1.一种用于在数据处理网络的外围子系统中进行访问验证的方法,所述方法包括:从第一外围设备接收事务请求,所述请求以第一地址为目标;响应于所述事务请求,将针对所述第一地址的地址查询发送到系统存储器管理单元;从所述系统存储器管理单元接收响应,所述响应包括从所述第一地址转换的第二地址及与和所述第二地址相关联的设备相关联的属性;以及依赖于所述第二地址及与和所述第二地址相关联的所述设备相关联的所述属性来确认或者拒绝针对所述事务请求的访问验证。
2.根据条款1所述的方法,其中所述事务请求包括消息分组,并且其中从所述第一外围设备接收所述事务请求包括在所述外围子系统的分组交换机处接收所述事务请求。
3.根据条款2所述的方法,其中所述分组交换机通过所述外围子系统的外围端口耦合到所述数据处理网络,并且其中将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元包括:将所述事务请求路由到所述外围端口;以及所述外围端口将所述地址查询发送到所述系统存储器管理单元。
4.根据条款2所述的方法,其中所述分组交换机通过所述外围子系统的外围端口耦合到所述数据处理网络,并且其中将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元包括:所述分组交换机将所述地址查询发送到所述外围端口;以及所述外围端口将所述地址查询转发到所述系统存储器管理单元。
5.根据条款1所述的方法,其中与所述第二地址相关联的所述设备包括所述数据处理网络的设备,所述方法进一步包括:当访问验证被确认时将所述事务请求转发到所述数据处理网络的所述设备。
6.根据条款1所述的方法,其中与所述第二地址相关联的所述设备包括经由交换机耦合到所述第一外围设备的第二外围设备,并且其中所述事务请求包括对等通信,所述方法进一步包括:当访问验证被确认时将所述事务请求转发到所述第二外围设备。
7.根据条款1所述的方法,其中所述第一地址处的所述设备包括第二外围设备,其中所述第一外围设备和所述第二外围设备经由所述外围子系统的快速外围组件接口(PCIe)交换机和PCIe根端口耦合到所述数据处理网络,并且其中将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元是由所述PCIe根端口执行的。
8.根据条款1所述的方法,其中所请求的事务服从于PCIe排序要求,并且其中在满足所述PCIe排序要求之前,将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元。
9.根据条款1所述的方法,其中所述事务请求包括在第一读取请求之后接收的第二读取请求,所述方法进一步包括:当在来自系统存储器管理单元的对所述第一读取请求的响应之前接收到来自系统存储器管理单元的对所述第二读取请求的响应时,在处理所述第第一读取请求之前处理所述第二读取请求。
10.一种用于数据处理网络的外围子系统,所述外围子系统包括:第一外围设备,所述第一外围设备被配置为生成以第一地址为目标的事务请求;外围交换机,所述外围交换机耦合到所述第一外围设备并且被配置为路由所述事务请求;外围端口,所述外围端口耦合到所述外围交换机和所述数据处理网络;以及系统存储器管理单元,所述系统存储器管理单元耦合到所述外围端口;其中所述系统存储器管理单元被配置用于:从所述外围端口接收对所述第一地址的地址查询;将所述第一地址转换为第二地址;访问与所述第二地址相关联的设备的属性;以及对所述查询做出响应,并且其中依赖于所述第二地址及与所述第二地址相关联的所述设备的所述属性来确认或者拒绝针对所述事务请求的访问验证。
11.根据条款10所述的外围子系统,进一步包括耦合到所述外围交换机的第二外围设备,其中与所述第二地址相关联的所述设备包括所述第二外围设备。
12.根据条款10所述的外围子系统,进一步包括所述数据处理网络的处理节点,其中与所述第二地址相关联的所述设备包括所述数据处理网络的所述处理节点。
13.根据条款10所述的外围子系统,进一步包括所述数据处理网络的存储器,其中与所述第二地址相关联的所述设备包括所述数据处理网络的所述存储器。
14.根据条款10所述的外围子系统,其中所述外围子系统包括快速外围组件接口(PCIe)子系统。
15.根据条款10所述的外围子系统,其中:所述外围交换机被配置用于将所述事务请求路由到所述外围端口,并且所述外围端口被配置用于生成对所述第一地址的所述地址查询并且将所述地址查询发送到所述系统存储器管理单元。
16.根据条款10所述的外围子系统,其中:所述外围交换机被配置用于向所述外围端口生成对所述第一地址的所述地址查询并且将所述地址查询发送到所述外围端口,并且所述外围端口被配置用于将所述地址查询转发到所述系统存储器管理单元。
17.根据条款10所述的外围子系统,其中所述外围端口经由
Figure BDA0002152408130000111
Figure BDA0002152408130000112
相干集线器接口耦合到所述数据处理系统的互连。
18.根据条款10所述的外围子系统,进一步包括耦合到所述外围端口的中断转换服务(ITS)电路,其中所述ITS电路被配置用于将消息信号中断转换成基于行的中断。
19.根据条款10所述的外围子系统,进一步包括所述数据处理网络。
20.根据条款10所述的外围子系统,其中所述系统存储器管理单元被配置用于将虚拟存储器地址转换为物理存储器地址。
21.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包含描述根据条款10所述的外围子系统的硬件描述语言的指令。
22.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包含根据条款10所述的外围子系统的网络表描述。
已通过示例而不通过限制呈现了已在本文中详细地描述的各种代表性实施例。本领域的技术人员将理解的是,可以在所描述的实施例的形式和细节上做出各种变化,从而产生仍然在所附权利要求的范围内的等同实施例。

Claims (23)

1.一种用于访问验证的方法,包括:
从数据处理网络的第一设备接收事务请求,该请求以第一地址为目标;
响应于所述事务请求,将针对所述第一地址的地址查询发送到系统存储器管理单元;
从所述系统存储器管理单元接收响应,该响应包括从所述第一地址转换的第二地址以及与和所述第二地址相关联的设备相关联的属性;以及
根据所述第二地址以及与和所述第二地址相关联的所述设备相关联的所述属性来确认或者拒绝针对所述事务请求的访问验证。
2.根据权利要求1所述的方法,其中,所述事务请求包括消息分组,并且其中,从所述第一设备接收所述事务请求包括在所述数据处理系统的分组交换机处接收所述事务请求。
3.根据权利要求2所述的方法,其中,所述分组交换机通过外围端口耦合到所述数据处理网络,并且其中,将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元包括:
将所述事务请求路由到所述外围端口;以及
所述外围端口将所述地址查询发送到所述系统存储器管理单元。
4.根据权利要求2所述的方法,其中,所述分组交换机通过外围子系统的外围端口耦合到所述数据处理网络,并且其中,将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元包括:
所述分组交换机将所述地址查询发送到所述外围端口;以及
所述外围端口将所述地址查询转发到所述系统存储器管理单元。
5.根据权利要求1所述的方法,其中,和所述第二地址相关联的所述设备包括所述数据处理网络的设备,所述方法进一步包括:
当访问验证被确认时将所述事务请求转发到所述数据处理网络的所述设备。
6.根据权利要求1所述的方法,其中,所述第一设备包括第一外围设备,其中,和所述第二地址相关联的所述设备包括经由交换机耦合到所述第一外围设备的第二外围设备,并且其中,所述事务请求包括对等通信,所述方法进一步包括:
当访问验证被确认时将所述事务请求转发到所述第二外围设备。
7.根据权利要求1所述的方法,其中,所述第一设备包括第一外围设备,其中,所述第一地址处的设备包括第二外围设备,其中,所述第一外围设备和所述第二外围设备经由外围子系统的快速外围组件接口PCIe交换机和PCIe根端口耦合到所述数据处理网络,并且其中,将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元是由所述PCIe根端口执行的。
8.根据权利要求1所述的方法,其中,所请求的事务服从于PCIe排序要求,并且其中,在满足所述PCIe排序要求之前,将针对所述第一地址的所述地址查询发送到所述系统存储器管理单元。
9.根据权利要求1所述的方法,其中,所述事务请求包括在第一读取请求之后接收的第二读取请求,所述方法进一步包括:
当在来自系统存储器管理单元的对所述第一读取请求的响应之前接收到来自系统存储器管理单元的对所述第二读取请求的响应时,在处理所述第一读取请求之前处理所述第二读取请求。
10.一种装置,包括:
第一设备,所述第一设备被配置为生成以第一地址为目标的事务请求;
交换机,所述交换机耦合到所述第一设备并且被配置为路由所述事务请求;
端口,所述端口耦合到所述交换机和数据处理网络;以及
系统存储器管理单元,所述系统存储器管理单元耦合到所述端口;
其中,所述系统存储器管理单元被配置用于:
从所述端口接收对所述第一地址的地址查询;
将所述第一地址转换为第二地址;
访问与所述第二地址相关联的设备的属性;以及
对该查询做出响应;并且
其中,根据所述第二地址以及与所述第二地址相关联的所述设备的所述属性来确认或者拒绝针对所述事务请求的访问验证。
11.根据权利要求10所述的装置,其中,所述第一设备包括第一外围设备,所述装置进一步包括耦合到所述交换机的第二外围设备,其中,与所述第二地址相关联的所述设备包括所述第二外围设备。
12.根据权利要求10所述的装置,进一步包括所述数据处理网络的处理节点,其中,与所述第二地址相关联的所述设备包括所述数据处理网络的所述处理节点。
13.根据权利要求10所述的装置,进一步包括所述数据处理网络的存储器,其中,与所述第二地址相关联的所述设备包括所述数据处理网络的所述存储器。
14.根据权利要求10所述的装置,其中,所述装置包括快速外围组件接口PCIe子系统。
15.根据权利要求10所述的装置,其中,所述交换机包括外围交换机并且所述端口包括外围端口,并且其中:
所述外围交换机被配置用于将所述事务请求路由到所述外围端口,并且
所述外围端口被配置用于生成对所述第一地址的所述地址查询并且将所述地址查询发送到所述系统存储器管理单元。
16.根据权利要求10所述的装置,其中:
所述交换机被配置用于向所述端口生成对所述第一地址的所述地址查询并且将所述地址查询发送到所述端口,并且
所述端口被配置用于将所述地址查询转发到所述系统存储器管理单元。
17.根据权利要求10所述的装置,其中,所述端口包括外围端口,所述外围端口被配置用于经由
Figure FDA0002152408120000031
相干集线器接口耦合到所述数据处理系统的互连。
18.根据权利要求10所述的装置,进一步包括耦合到所述端口的中断转换服务ITS电路,其中,所述ITS电路被配置用于将消息信号中断转换成基于行的中断。
19.根据权利要求10所述的装置,进一步包括所述数据处理网络。
20.根据权利要求10所述的装置,其中,所述系统存储器管理单元被配置用于将虚拟存储器地址转换为物理存储器地址。
21.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包含描述根据权利要求10所述的装置的硬件描述语言的指令。
22.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质包含根据权利要求10所述的装置的网络表描述。
23.根据权利要求1所述的装置,其中:
第一设备包括第一外围设备;
所述交换机包括外围交换机;并且
所述端口包括外围端口。
CN201910706926.5A 2018-08-03 2019-08-01 具有用于访问验证的基于查询的地址转换的系统架构 Active CN110795376B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/053,899 US10853271B2 (en) 2018-08-03 2018-08-03 System architecture with query based address translation for access validation
US16/053,899 2018-08-03

Publications (2)

Publication Number Publication Date
CN110795376A true CN110795376A (zh) 2020-02-14
CN110795376B CN110795376B (zh) 2024-09-10

Family

ID=67990391

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910706926.5A Active CN110795376B (zh) 2018-08-03 2019-08-01 具有用于访问验证的基于查询的地址转换的系统架构

Country Status (3)

Country Link
US (1) US10853271B2 (zh)
CN (1) CN110795376B (zh)
GB (1) GB2580728B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153775A (zh) * 2021-12-10 2022-03-08 中国兵器工业集团第二一四研究所苏州研发中心 一种基于AXI总线的FlexRay控制器

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
US11914543B2 (en) 2021-12-06 2024-02-27 Arm Limited PCIe communications
US11741021B2 (en) * 2022-01-18 2023-08-29 Vmware, Inc. Trust domains for peripheral devices

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005297A1 (en) * 2006-05-16 2008-01-03 Kjos Todd J Partially virtualizing an I/O device for use by virtual machines
US20090083585A1 (en) * 2007-09-21 2009-03-26 Inventec Corporation Method of pressure testing for peripheral component interconnect (pci) bus stage
US20120047309A1 (en) * 2010-08-18 2012-02-23 Mahesh Natu Method, apparatus, and system for manageability and secure routing and endpoint access
US20130007332A1 (en) * 2011-06-30 2013-01-03 Chee Hak Teh Controllable transaction synchronization for peripheral devices
US20140068137A1 (en) * 2012-08-29 2014-03-06 Andrew G. Kegel Virtual Input/Output Memory Management Unit Within a Guest Virtual Machine
US20150052282A1 (en) * 2012-08-29 2015-02-19 Huawei Technologies Co., Ltd. System and Method for Virtual Machine Live Migration
US20160344731A1 (en) * 2015-05-20 2016-11-24 Google Inc. Address validation using signatures
US20170091013A1 (en) * 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling
US20170139721A1 (en) * 2015-11-18 2017-05-18 Oracle International Corporation Implementation of reset functions in an soc virtualized device
US20180101498A1 (en) * 2016-10-12 2018-04-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Pcie switch for aggregating a large number of endpoint devices
US10013388B1 (en) * 2016-12-19 2018-07-03 Amazon Technologies, Inc. Dynamic peer-to-peer configuration

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901451B1 (en) * 2000-10-31 2005-05-31 Fujitsu Limited PCI bridge over network
US7506084B2 (en) * 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US20110246686A1 (en) * 2010-04-01 2011-10-06 Cavanagh Jr Edward T Apparatus and system having pci root port and direct memory access device functionality
US8904078B2 (en) * 2012-10-22 2014-12-02 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. High speed serial peripheral interface system
US9959214B1 (en) * 2015-12-29 2018-05-01 Amazon Technologies, Inc. Emulated translation unit using a management processor
JP7081484B2 (ja) * 2016-06-28 2022-06-07 日本電気株式会社 パケット処理装置、及び、パケット処理方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005297A1 (en) * 2006-05-16 2008-01-03 Kjos Todd J Partially virtualizing an I/O device for use by virtual machines
US20090083585A1 (en) * 2007-09-21 2009-03-26 Inventec Corporation Method of pressure testing for peripheral component interconnect (pci) bus stage
US20120047309A1 (en) * 2010-08-18 2012-02-23 Mahesh Natu Method, apparatus, and system for manageability and secure routing and endpoint access
CN103069771A (zh) * 2010-08-18 2013-04-24 英特尔公司 用于可管理性、安全路由和端点访问的方法、装置和系统
US20130007332A1 (en) * 2011-06-30 2013-01-03 Chee Hak Teh Controllable transaction synchronization for peripheral devices
US20140068137A1 (en) * 2012-08-29 2014-03-06 Andrew G. Kegel Virtual Input/Output Memory Management Unit Within a Guest Virtual Machine
US20150052282A1 (en) * 2012-08-29 2015-02-19 Huawei Technologies Co., Ltd. System and Method for Virtual Machine Live Migration
US20160344731A1 (en) * 2015-05-20 2016-11-24 Google Inc. Address validation using signatures
US20170091013A1 (en) * 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling
US20170139721A1 (en) * 2015-11-18 2017-05-18 Oracle International Corporation Implementation of reset functions in an soc virtualized device
US20180101498A1 (en) * 2016-10-12 2018-04-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Pcie switch for aggregating a large number of endpoint devices
US10013388B1 (en) * 2016-12-19 2018-07-03 Amazon Technologies, Inc. Dynamic peer-to-peer configuration

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153775A (zh) * 2021-12-10 2022-03-08 中国兵器工业集团第二一四研究所苏州研发中心 一种基于AXI总线的FlexRay控制器
CN114153775B (zh) * 2021-12-10 2024-02-09 中国兵器工业集团第二一四研究所苏州研发中心 一种基于AXI总线的FlexRay控制器

Also Published As

Publication number Publication date
CN110795376B (zh) 2024-09-10
GB2580728B (en) 2021-02-03
US10853271B2 (en) 2020-12-01
GB201910811D0 (en) 2019-09-11
US20200042463A1 (en) 2020-02-06
GB2580728A (en) 2020-07-29

Similar Documents

Publication Publication Date Title
CN110795376B (zh) 具有用于访问验证的基于查询的地址转换的系统架构
US11954058B2 (en) System and method for extended peripheral component interconnect express fabrics
US8917734B1 (en) Method and apparatus for an aggregated non-transparent requester ID translation for a PCIe switch
CN105938459B (zh) 处理地址转换请求
US9396130B2 (en) System translation look-aside buffer integrated in an interconnect
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
CN102498478B (zh) 在外围互连上对i/o和计算卸载设备使用两级地址转换的iommu
US9146890B1 (en) Method and apparatus for mapped I/O routing in an interconnect switch
US11392528B2 (en) Methods and apparatus for DMA engine descriptors for high speed data systems
US10162780B2 (en) PCI express switch and computer system using the same
US20130163593A1 (en) Method of processing data packets
US20230009095A1 (en) Data transmission method and apparatus, and related assembly
GB2493195A (en) Address translation and routing between dies in a system in package.
US11995021B2 (en) Zoned accelerator embedded processing
US20240061768A1 (en) Multi-peripheral and/or multi-function export
CN116303195A (zh) Pcie通信
US20150127878A1 (en) Tunneled window connection for programmed input output transfers over a switch fabric
US20150220445A1 (en) Transactional memory that performs a programmable address translation if a dat bit in a transactional memory write command is set
KR20150063433A (ko) 네트워크 온 칩 소켓 프로토콜
US10228968B2 (en) Network interface device that alerts a monitoring processor if configuration of a virtual NID is changed
US20240211299A1 (en) Technique for handling request transfers from a peripheral device in a communication network
CN118535281A (zh) 在jailhouse实现MSI/MSIX中断的方法、装置及电子设备

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