CN115712892A - 具有统一软件视图的物理分布式控制平面防火墙 - Google Patents

具有统一软件视图的物理分布式控制平面防火墙 Download PDF

Info

Publication number
CN115712892A
CN115712892A CN202210691217.6A CN202210691217A CN115712892A CN 115712892 A CN115712892 A CN 115712892A CN 202210691217 A CN202210691217 A CN 202210691217A CN 115712892 A CN115712892 A CN 115712892A
Authority
CN
China
Prior art keywords
firewall
initiator
target
transaction
memory address
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
CN202210691217.6A
Other languages
English (en)
Inventor
J·斯温
P·克里希纳尼
S·塔帕迪亚
H·杰恩
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.)
Nvidia Corp
Original Assignee
Nvidia Corp
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 Nvidia Corp filed Critical Nvidia Corp
Publication of CN115712892A publication Critical patent/CN115712892A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/0646Configuration or reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • H04L63/0218Distributed architectures, e.g. distributed firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • 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/1008Correctness of operation, e.g. memory ordering

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本公开涉及具有统一软件视图的物理分布式控制平面防火墙。各个实施例包括用于经由计算机系统与分布式防火墙互连来处理事务的技术。分布式防火墙包括用于事务的各个发起方的单独防火墙和用于那些事务的各个目标的单独防火墙。因此,例如,事务沿从发起方到目标的最短路径进行,而不是被路由通过集中式防火墙。此外,例如,防火墙事务可以被重新映射,使得发起方经由统一的地址空间寻址发起方防火墙和目标防火墙,而不必为每个发起方防火墙和目标防火墙维护单独的基地址。因此,与现有方法相比,应用程序例如可以在计算机系统上执行性能增加的事务。

Description

具有统一软件视图的物理分布式控制平面防火墙
技术领域
各个实施例总体上涉及并行处理计算架构,并且更具体地涉及具有统一软件视图的物理分布式控制平面防火墙。
背景技术
除其他事项之外,计算机系统通常包括一个或更多个处理单元,诸如中央处理单元(CPU)和/或图形处理单元(GPU)、一个或更多个存储器系统、寄存器、输入/输出(I/O设备)等。在操作中,计算机系统的各个组件充当发起方、充当目标、或充当发起方和目标两者。当组件充当发起方时,该组件通过互连系统并朝向计算机系统中的被称为目标的另一组件指引事务,诸如加载操作或存储操作。在一些示例中,发起方可执行加载操作以从目标中包括的存储器位置和/或寄存器检索一个或更多个数据值。类似地,在一些示例中,发起方可执行存储操作以将一个或更多个数据值存储到目标中包括的存储器位置和/或寄存器。从发起方到目标的寄存器配置空间或其他控制空间的物理路径在本文中被称为控制平面。用作发起方的典型组件包括CPU和GPU。用作目标的典型组件包括存储器系统、寄存器和I/O设备。用作目标的I/O设备包括通用异步接收器/发送器(UART)、串行外围接口(SPI)、以太网控制器等。进一步,CPU可发起指定GPU或另一CPU作为目标的事务。类似地,GPU可发起将CPU或另一GPU指定为目标的事务。
通常,包括多个发起方和多个目标的计算机系统可以采用防火墙机制,或更简单地,出于安全目的的防火墙。防火墙充当安全系统,其监视和控制跨互连系统的传入和传出事务,以确保每个发起方仅访问该发起方被允许访问的存储器地址空间和/或其他目标。防火墙防止在一个发起方上执行的应用程序不经意地或故意地干扰在另一个发起方上执行的应用程序。利用防火墙,由发起方生成的每个事务由防火墙接收,并且防火墙确定发起方是否被授权将事务指向由事务指定的存储器地址空间和/或其他目标。如果防火墙确定发起方没有被授权将事务指向存储器地址空间和/或其他目标,则防火墙阻止该事务。另一方面,如果防火墙确定发起方被授权将事务指向存储器地址空间和/或其他目标,则防火墙允许事务继续进行。
将所有事务汇集到防火墙的这种方法可以在小规模至中等大小的计算机系统下很好地工作。然而,一些较大的计算机系统可能具有数百或甚至数千个发起方和目标。在这样的大型计算机系统中,因为防火墙处理成百上千的发起方的事务,所以防火墙可能变成瓶颈,导致带宽减少、延迟增加和计算能力降低,从而导致计算机系统的性能显著降低。
如上所述,在本领域中所需要的是用于在计算机系统中实现防火墙的更有效的技术。
发明内容
本公开的各个实施例阐述了一种用于经由互连来处理第一事务的计算机实现的方法。该方法包括确定第一事务是指向防火墙。该方法还包括中止第一事务的执行。所述方法进一步包括修改在所述第一事务中包含的且呈第一存储器地址格式的存储器地址以生成呈第二存储器地址格式的经修改存储器地址。该方法还包括经由互连将包括经修改的存储器地址的第一事务传送到防火墙。
其他实施例包括但不限于实现所公开的技术的一个或更多个方面的系统、和包括用于执行所公开的技术的一个或更多个方面的指令的一个或更多个计算机可读介质、以及用于执行所公开的技术的一个或更多个方面的方法。
所公开的技术相对于现有技术的至少一个技术优点是,利用所公开的技术,防火墙被分布成使得每个发起方与单独的发起方防火墙相关联并且每个目标与目标防火墙相关联。每个事务沿着路径直接从与发起方相关联的发起方防火墙路由到与目标相关联的目标防火墙。因为事务不通过集中式防火墙进行路由,所以相对于现有方法,事务被更高效地处理。这些优点代表了对现有技术方法的一个或更多个技术改进。
附图说明
为了能够详细理解各个实施例的上述特征所阐述的方式,可以参考各个实施例得到以上简要概述的发明概念的更具体描述,在附图中示出了这些实施例中的一些实施例。然而,应注意,附图仅示出了本发明构思的典型实施例,并且因此不应被视为以任何方式限制范围,并且存在其他同样有效的实施例。
图1是被配置为实施各个实施例的一个或更多个方面的计算机系统的框图;
图2是根据各个实施例的用于图1的计算机系统的防火墙系统的框图;
图3A是根据各个实施例的防火墙系统的框图,该防火墙系统具有用于图1的计算机系统的集中式防火墙;
图3B是根据各个实施例的防火墙系统的框图,该防火墙系统具有用于图1的计算机系统的分布式防火墙;
图4A-4B示出了根据各个实施例的用于经由图3B的互连和分布式防火墙来处理事务的方法步骤的流程图。
具体实施方式
在以下描述中,阐述了许多具体细节以便提供对各个实施例的更彻底的理解。然而,对于本领域技术人员将显而易见的是,可以在没有这些具体细节中的一个或更多个的情况下实践本发明构思。
系统概述
图1是被配置为实施各个实施例的一个或更多个方面的计算机系统100的框图。如图所示,计算机系统100包括但不限于经由存储器桥105和通信路径113耦合到并行处理子系统112的中央处理单元(CPU)102和系统存储器104。存储器桥105进一步经由通信路径106耦合至I/O(输入/输出)桥107,并且I/O桥107进而耦合至交换机116。
在操作中,I/O桥107被配置为从输入设备108(如键盘或鼠标)接收用户输入信息,并且经由通信路径106和存储器桥105将该输入信息转发至CPU 102以便进行处理。交换机116被配置为在I/O桥107和计算机系统100的其他组件(诸如网络适配器118和各个附加卡120和121)之间提供连接。
还如所示,I/O桥107耦合至系统盘114,所述系统盘可以被配置为存储由CPU 102和并行处理子系统112使用的内容和应用和数据。一般而言,系统盘114为应用和数据提供非易失性存储,并且可包括固定或可移动硬盘驱动器、闪存设备、和CD-ROM(致密盘只读存储器)、DVD-ROM(数字通用盘-ROM)、蓝光、HD-DVD(高清晰度DVD)、或其他磁、光、或固态存储设备。最后,虽然未明确示出,但是其他组件(诸如通用串行总线或其他端口连接、致密盘驱动器、数字通用盘驱动器、胶片记录设备等)也可以连接到I/O桥107。
在各个实施例中,存储器桥105可以是北桥芯片,并且I/O桥107可以是南桥芯片。此外,可以使用任何技术上合适的协议来实现通信路径106和113以及计算机系统100内的其他通信路径,包括但不限于AGP(加速图形端口)、超传输或本领域中已知的任何其他总线或点对点通信协议。
在一些实施例中,并行处理子系统112包括将像素递送至显示设备110的图形子系统,该显示设备可以是任何常规阴极射线管、液晶显示器、发光二极管显示器等。在这种实施例中,并行处理子系统112结合了为图形和视频处理优化的电路,包括例如视频输出电路。此电路可跨并行处理子系统112内包括的一个或更多个并行处理单元(PPU)并入。在其他实施例中,并行处理子系统112结合了针对通用和/或计算处理而优化的电路。再次,此类电路可跨并行处理子系统112内包括的一个或更多个PPU并入,这些PPU被配置成执行此类通用和/或计算操作。在其他实施例中,在并行处理子系统112内包括的一个或更多个PPU可被配置成执行图形处理、通用处理和计算处理操作。系统存储器104包括被配置成管理并行处理子系统112内的一个或更多个PPU的处理操作的至少一个设备驱动器103。
在各个实施例中,并行处理子系统112可以与图1的一个或更多个其他元件集成以形成单个系统。例如,并行处理子系统112可与CPU 102和其他连接电路一起集成在单个芯片上以形成片上系统(SoC)。
将理解的是,在此所示的系统是说明性的,并且变化和修改是可能的。连接拓扑(包括桥的数目和布置、CPU 102的数目以及并行处理子系统112的数目)可根据需要修改。例如,在一些实施例中,系统存储器104可以直接连接至CPU 102而不是通过存储器桥105,并且其他设备将经由存储器桥105和CPU 102与系统存储器104通信。在其他替代拓扑中,并行处理子系统112可以连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。在其他实施例中,I/O桥107和存储器桥105可以集成到单个芯片中,而不是作为一个或更多个分立器件存在。最后,在某些实施例中,可以不存在图1中所示的一个或更多个组件。例如,可以消除交换机116,并且网络适配器118和附加卡120、121将直接连接到I/O桥107。
具有统一软件视图的物理分布式控制平面防火墙
各个实施例包括用于经由与分布式防火墙互连的计算机系统来处理事务的技术。利用所公开的技术,防火墙分布在计算机系统互连中的发起方和目标之间。将具有发起方亲和性的防火墙放置得更靠近对应的发起方。这些防火墙(被称为发起方防火墙)将来自对应发起方的事务限制在指定和有限的地址范围内。具有目标亲和性的防火墙被放置得更靠近对应目标。目标防火墙将事务限制为仅允许来自被授权访问对应目标的发起方的事务。一般而言,发起方之一负责配置发起方防火墙和目标防火墙。在配置之前,发起方防火墙和目标防火墙是透明的,使所有事务通过。在配置了发起方防火墙和目标防火墙之后,发起方防火墙和目标防火墙可以检测并授权或阻止来自其他发起方的访问。
此外,防火墙重新映射器在发起方防火墙和目标防火墙的初始化和配置过程中执行映射功能。防火墙重新映射器帮助发起方防火墙和目标防火墙的编程和配置。防火墙重新映射器将计算机系统互连中的各个发起方防火墙和目标防火墙映射到单个统一视图。该统一视图将各个发起方防火墙和目标防火墙的存储器地址空间合并到包括所有发起方防火墙和目标防火墙的存储器地址空间的单个地址空间中。结果,发起方不需要管理每个发起方防火墙和目标防火墙的单独的地址空间,而是从软件角度经由统一视图访问所有防火墙。
图2是根据各个实施例的用于图1的计算机系统100的防火墙系统200的框图。如图所示,防火墙系统200包括但不限于经由互连230彼此通信的发起方210和目标220。互连230在本文中也称为“网状网络”。发起方210包括但不限于CPU复合体242、引导处理器(bootprocessor)244、电源管理处理器246、相机处理器248、安全处理器250和调试处理器252。目标包括但不限于PCIe目标260和外围总线目标262。
CPU复合体242包括一个或更多个中央处理单元,如图1的CPU 102。在一些实施例中,CPU复合体242可以还包括一个或更多个并行处理器,诸如图1的并行处理子系统112。在操作中,CPU复合体242中包括的CPU102、并行处理子系统112和/或其他处理器执行操作系统、用户级应用程序和/或其他可执行软件应用。
在操作中,引导处理器244执行引导序列,该引导序列包括用于在防火墙系统200上电和/或重置时初始化防火墙系统200的各个功能。由引导处理器244执行的引导序列可包括用于初始化存储器、配置各个目标220、加载和执行一个或更多个操作系统和/或管理程序等的功能。在完成引导序列后,引导处理器244可向CPU复合体242中包括的CPU 102、并行处理子系统112和/或其他处理器通知引导序列完成,并且可以开始执行应用程序。
电源管理处理器246监测防火墙系统200的其他组件的活动。电源管理处理器246控制被配置成向防火墙系统200的各个组件提供或移除电力的各个电源门控控制信号。如果特定组件(无论是发起方210还是目标220)在一段时间内保持空闲,则电源管理处理器246改变对应电源门控控制信号的电平,以便移除对于特定组件的电力。作为响应,该组件从加电状态转换到掉电状态。随后,如果电源管理处理器246确定需要处于掉电状态的组件来支持防火墙系统200内的操作,则电源管理处理器246改变对应的电源门控控制信号的电平,以便将电力施加到该特定组件。作为响应,该组件从掉电状态转换到加电状态。另外或替代地,电源管理处理器246可提供控制信号以选通或移除各个闲置组件的时钟信号以减少功率消耗。以这种方式,当一个或更多个组件空闲时,电源管理处理器246降低防火墙系统200的功率消耗。
相机处理器248从静止图像相机和/或视频相机(未示出)接收图像数据。一般来说,图像数据可在大小上较大,且可涉及大量的预处理。因此,防火墙系统200包括检索和处理该图像数据的单独的相机处理器248。因此,CPU复合体242中包括的CPU 102、并行处理子系统112和/或其他处理器被释放以执行其他任务。
安全处理器250执行各个安全功能以检测恶意软件、软件病毒、存储器泄露和以其他方式展现可疑行为的应用程序。安全处理器250隔离这样的应用程序和/或执行这些应用程序的处理器,以便减轻可能由应用程序引起的任何损坏。
调试处理器252通过为CPU复合体242中包括的CPU 102、并行处理子系统112和/或其他处理器提供调试和跟踪功能来支持软件开发。调试处理器252可设置陷阱以在某些条件下或在检测到置于应用程序中的断点时停止应用程序的执行。调试处理器252可以生成包括执行应用程序的处理器的状态的跟踪。调试处理器252可允许软件开发人员在重新开始执行之前修改处理器的状态。调试处理器可进一步允许应用程序一次执行一个指令,然后在每个指令之后停止。这些功能使得软件开发人员能够监视应用程序的行为并且促进应用程序的调试。
CPU复合体242、引导处理器244、电源管理处理器246、相机处理器248、安全处理器250、调试处理器252和/或其他发起方210经由互连230与各个目标220进行通信。目标包括PCIe目标260和外围总线目标262。
PCIe目标260包括防火墙系统200的经由快速外围组件互连(PCIe)总线标准与发起方210通信的组件。PCIe目标260可包括但不限于辅助图形处理器、音频/声音处理器、显示处理器等。
外围总线目标262包括防火墙系统200的经由除PCIe总线标准之外的任何技术上可行的通信信道与发起方210通信的组件。外围总线目标262可以包括但不限于存储器系统、通用异步接收器/发送器(UART)、串行外围接口(SPI)、以太网控制器等。
为了提供跨在各个发起方210上执行的应用程序的安全隔离并且为了减轻从一个应用程序对其他应用程序的干扰,防火墙系统200可以实现防火墙232。防火墙232充当安全系统,其监视和控制跨互连230的传入和传出事务,以确保每个发起方210仅访问发起方210被允许访问的存储器地址空间和/或其他目标220。防火墙232被部署在互连230内,以便避免来自发起方的依赖性和/或干扰,诸如由于电源门控、时钟门控和重置循环引起的干扰。因此,防火墙232授权事务,而不考虑各个发起方210的活动如何。一般而言,防火墙232在需要时被安全复位信号复位,该安全复位信号对在发起方210上执行的非安全应用程序是不可访问的。
图3A是根据各个实施例的防火墙系统300的框图,该防火墙系统具有用于图1的计算机系统100的集中式防火墙。如图所示,防火墙系统300包括但不限于经由互连310彼此通信的发起方302和目标304。互连310在本文中也称为“网状网络”。互连310包括但不限于节点(A)306和集中式防火墙308。
互连310中的某些节点A 306与发起方302相关联但不与目标304相关联。例如,节点A(0,1)306(1)、A(0,2)306(2)和A(0,3)306(3)分别与发起方(0,1)302(1)、发起方(0,2)302(2)和发起方(0,3)302(3)相关联。类似地,节点A(3,1)306(1)、A(3,2)306(2)和A(3,3)306(1)分别与发起方(3,1)302(6)、发起方(3,2)302(7)和发起方(3,3)302(8)相关联。互连310中的某些节点A306与目标304相关联,但不与发起方302相关联。例如,节点A(1,0)306(5)和A(2,0)306(10)分别与目标(1,0)304(1)和目标(2,0)304(2)相关联。类似地,节点A(1,4)306(9)和A(2,4)306(14)分别与目标(1,4)304(5)和目标(2,4)304(6)相关联。
互连310中的某些节点A306与发起方302和目标方304两者相关联。例如,节点A(0,0)306(0)与发起方(0,0)302(0)和目标(0,0)304(0)两者相关联。节点A(0,4)306(4)与发起方(0,4)302(4)和目标方(0,4)304(4)相关联。节点A(3,0)306(15)与发起方(3,0)302(5)和目标方(3,0)304(3)相关联。节点A(3,4)306(19)与发起方(3,4)302(9)和目标方(3,4)304(7)相关联。互连310中的某些节点A306与其他节点306和/或集中式防火墙308互连,但不直接与任何发起方302或目标304相关联。例如,节点A(1,1)306(6)、A(1,3)306(8)、A(2,1)306(11)、A(2,2)306(12)和A(2,3)306(13)与其他节点306互连,但不直接与任何发起方302或目标304相关联。
为了提供跨在各个发起方302上执行的应用程序的安全隔离并且为了减轻从一个应用程序到其他应用程序的干扰,防火墙系统300所处理的所有事务都穿过集中式防火墙308。实际上,所有事务由各个发起方302传输并且在集中式防火墙308处合并。对于每个事务,集中式防火墙308执行授权功能以确定发起方302是否被授权访问由该事务指定的目标304。如果集中式防火墙308确定发起方302未被授权将事务指向与目标304相关联的存储器地址空间,则集中式防火墙308阻止该事务。另一方面,如果集中式防火墙308确定发起方302被授权将事务指向与目标304相关联的存储器地址空间,则集中式防火墙308允许事务继续进行。由集中式防火墙308授权的事务在集中式防火墙308的输出处分离并且前进到对应的目标304。
虽然特定的发起方302可以为散布在整个防火墙系统300中的各个目标304生成事务,但是集中式防火墙308以单个地址空间的形式向发起方302呈现用于目标的防火墙的统一软件视图,独立于各种目标304的防火墙的数量或互连310的结构和/或拓扑。利用统一的软件视图,发起方302通过将与针对目标304的防火墙相关联的偏移添加到单个防火墙基地址来寻址针对给定目标304的防火墙。例如,为了寻址目标(0,0)304(0)的防火墙,发起方302将事务指向防火墙基地址+目标防火墙偏移(0,0)。类似地,为了寻址目标(2,1)304(11)的防火墙,发起方302将事务指向防火墙基地址+目标防火墙偏移(2,1),以此类推。
一般而言,发起方之一负责经由防火墙的统一软件视图来配置目标的防火墙。在配置之前,防火墙是透明的,使所有事务都通过。在配置防火墙之后,防火墙可以检测并授权或阻止来自其他发起方的访问。
在一个特定示例中,发起方(0,0)302(0)执行指向目标(0,0)304(0)的事务。即使发起方(0,0)302(0)和目标(0,0)304(0)都与同一节点A(0,0)306(0)相关联,也不允许该事务经由节点A(0,0)306(0)从发起方(0,0)302(0)直接传递到目标(0,0)304(0)。事务沿着路径330从发起方(0,0)302(0)行进到集中式防火墙308。在这样做时,事务在到达集中式防火墙308之前行进经过节点A(0,0)306(0)、A(0,1)306(1)、A(0,2)306(2)和A(1,2)306(7)。集中式防火墙308执行授权功能以确定发起方(0,0)302(0)是否被授权访问由事务指定的目标(0,0)304(0)。如果集中式防火墙308确定发起方(0,0)302(0)未被授权将事务指向与目标(0,0)304(0)相关联的存储器地址空间,则集中式防火墙308阻止该事务。另一方面,如果集中式防火墙308确定发起方(0,0)302(0)被授权将事务指向与目标(0,0)304(0)相关联的存储器地址空间,则集中式防火墙308允许事务沿着路径332从集中式防火墙308行进到目标(0,0)304(0)。在这样做时,事务在到达目标(0,0)304(0)之前行进经过节点A(1,2)306(7)、A(1,1)306(6)、A(1,0)306(5)和A(0,0)306(0)。
上述方法对于小互连310是合理有效的。然而,由于各种原因,该方法对于较大的互连310不能很好地缩放。首先,通过互连310的所有事务被合并到集中式防火墙308中,然后在由集中式防火墙308授权之后分离。因此,互连310的大量带宽是被将事务从发起方302传输到集中式防火墙308以及从集中式防火墙308传输到目标304而消耗的。第二,经由集中式防火墙308(诸如经由路径330和路径332)将事务从发起方302传送到目标304,相对于将事务直接从发起方302传送到目标304,增加了事务的延迟。该增加的延迟导致互连310的性能降低。第三,因为所有事务都经过集中式防火墙308,所以集中式防火墙308的利用率可能变得非常高,从而从温度和功耗的角度在该区域中创建了热点。第四,因为所有事务被路由到集中式防火墙308以及从集中式防火墙308被路由,所以集中式防火墙308周围的区域可能具有高线路计数,这又可能导致布局期间的拥塞和路由困难。第五,集中式防火墙308可能难以满足定时要求,因为集中式防火墙308包括用于所有发起方302和目标304的防火墙。因此,具有集中式防火墙308的互连310更适用于相对小的防火墙系统300。
图3B是根据各个实施例的具有用于图1的计算机系统100的分布式防火墙的防火墙系统350的框图。如图所示,防火墙系统350包括但不限于经由互连320彼此通信的发起方302、目标304、发起方防火墙312和目标防火墙314。互连320在本文中也称为“网状网络”。互连320包括但不限于节点(A)306、防火墙捕获器(firewall trap)322和防火墙重新映射器324。图3B的防火墙系统350的发起方302、目标304和节点306的功能与图3A的防火墙系统300的发起方302、目标304和节点306相似,除了如下面进一步描述的以外。
利用图3B的防火墙系统350,防火墙通过防火墙系统350分布,而不是集中在互连320内。具有发起方亲和性的防火墙被称为发起方防火墙(IFW)312。发起方防火墙312被置于对应的发起方302附近,并用于将每个对应的发起方302限制或沙盒化以寻址有限的地址范围。在一些实施例中,多个发起方防火墙312可以合并和放置在公共节点306处,以便对多个发起方302进行沙盒化。
防火墙系统350的每个发起方302经由对应的发起方防火墙(IFW)312连接至相应的节点306。发起方(0,0)302(0)、发起方(0,1)302(1)、发起方(0,2)302(2)、发起方(0,3)302(3)和发起方(0,4)302(4)分别经由IFW(0,0)312(0)、IFW(0,1)312(1)、IFW(0,2)312(2)、IFW(0,3)312(3)和IFW(0,4)312(4)连接到节点A(0,0)306(0)、A(0,1)306(1)、A(0,2)306(2)、A(0,3)306(3)和A(0,4)306(4)。类似地,发起方(3,0)302(5)、发起方(3,1)302(6)、发起方(3,2)302(7)、发起方(3,3)302(8)和发起方(3,4)302(9)分别经由IFW(3,0)312(5)、IFW(3,1)312(6)、IFW(3,2)312(7)、IFW(3,3)312(8)和IFW(3,4)312(9)连接到节点A(3,0)306(15)、A(3,1)306(16)、A(3,2)306(17)、A(3,3)306(18)和A(3,4)306(19)。
具有目标亲和性的防火墙被称为目标防火墙(TFW)314。目标防火墙314放置在由相应目标防火墙314保护的对应目标304附近。在一些实施例中,目标防火墙314可以通过为由目标防火墙314保护的多个目标中的每个实现防火墙来保护多个目标。在这样的实施例中,目标防火墙314缩放到与对应节点306相关联的目标304的数量和每个目标304的各个功能。
防火墙系统350的每个目标304经由对应的目标防火墙(TFW)314连接到相应的节点306。目标(0,0)304(0)、目标(1,0)304(1)、目标(2,0)304(2)和目标(3,0)304(3)分别经由TFW(0,0)314(0)、TFW(1,0)314(1)、TFW(2,0)314(2)和TFW(3,0)314(3)连接到节点A(0,0)306(0)、A(1,0)306(5)、A(2,0)306(10)和A(3,0)306(3)。类似地,目标(0,4)304(4)、目标(1,4)304(5)、目标(2,4)304(6)和目标(3,4)304(7)分别经由TFW(0,4)314(4)、TFW(1,4)314(5)、TFW(2,4)314(6)和TFW(3,4)314(7)连接到节点A(0,4)306(4)、A(1,4)306(9)、A(2,4)306(14)和A(3,4)306(19)。
在一个特定示例中,发起方(0,0)302(0)执行针对目标(0,0)304(0)的事务。发起方(0,0)302(0)的IFW(0,0)312(0)执行授权功能以确定发起方(0,0)302(0)是否被授权访问由事务指定的目标(0,0)304(0)。在这样做时,发起方(0,0)302(0)的IFW(0,0)312(0)检查由事务指定的存储器地址。IFW(0,0)312(0)确定发起方(0,0)302(0)是否被授权将事务指向包括由事务指定的存储器地址的存储器地址空间。如果IFW(0,0)312(0)确定发起方(0,0)302(0)未被授权将事务指向存储器地址空间,则IFW(0,0)312(0)阻止该事务。另一方面,如果IFW(0,0)312(0)确定发起方(0,0)302(0)被授权将事务指向存储器地址空间,则IFW(0,0)312(0)允许事务继续进行。
事务经由节点306直接从发起方(0,0)302(0)的IFW(0,0)312(0)传输到目标(0,0)304(0)的TFW(0,0)314(0)。事务遵循从发起方(0,0)302(0)的IFW(0,0)312(0)到目标(0,0)304(0)的TFW(0,0)314(0)的最短路径。最短路径可以经由任何技术上可行的技术来确定,诸如曼哈顿(Manhattan)距离技术、欧几里得(Euclidian)距离技术等。如图所示,事务沿着路径340从IFW(0,0)312(0)经过节点A(0,0)306(0),然后到TFW(0,0)314(0)。
TFW(0,0)314(0)执行授权功能以确定发起方(0,0)302(0)是否被授权将事务指向受TFW(0,0)314(0)保护的目标(0,0)304(0)。如果TFW(0,0)314(0)确定发起方(0,0)302(0)未被授权将事务指向目标(0,0)304(0),则TFW(0,0)314(0)阻止该事务。另一方面,如果TFW(0,0)314(0)确定发起方(0,0)302(0)被授权将事务指向目标(0,0)304(0),则TFW(0,0)314(0)允许事务继续进行。TFW(0,0)314(0)将事务转发到目标(0,0)304(0)用于处理。
利用分布式防火墙,防火墙系统350不在集中式防火墙(如图3A的防火墙系统300的集中式防火墙308)处合并和分离事务。因此,防火墙系统350不经历单个防火墙处的瓶颈或结合图3A描述的延迟、热点和拥塞问题。每个事务穿过从相关IFW 312到相关TFW 314的最短路径。进一步,每个TFW 314仅包括用于由该TFW 314保护的特定目标304的防火墙。因此,结合图3A描述的定时问题被减少和/或消除。
利用用于分布式防火墙的这种方法,发起方防火墙312授权来自相关联的发起方302的事务。如果事务被授权,则发起方防火墙312经由通过互连320的最短路径将事务通过互连320的节点306传输到目标防火墙314,而不经过集中式防火墙。目标防火墙314为相关联的目标304授权事务。如果事务被授权,则目标防火墙314将事务转发到相关联的目标304。
虽然这种方法对于指向大多数目标的事务工作良好,但是这种方法对于其中目标为发起方防火墙312或目标防火墙314本身中的一个或更多个的事务提出了挑战,例如当引导处理器244初始化和配置发起方防火墙312和目标防火墙314时。在初始化期间,图2的引导处理器244或某一类似处理器用由相关联发起方302授权的存储器地址空间来配置发起方防火墙312。类似地,引导处理器244用被授权向受相关联的目标防火墙314保护的目标304传输事务的发起方302的列表来配置目标防火墙314。
利用分布式目标防火墙314,引导处理器244将事务指向不同的单独发起方防火墙312和目标防火墙314,其中每个发起方防火墙312和目标防火墙314与单独的地址空间相关联。因此,不以单个地址空间的形式向引导处理器244呈现统一软件视图,该单个地址空间包括用于所有发起方防火墙312和目标防火墙314的存储器地址空间。相反,引导处理器244通过将与发起方防火墙312或目标防火墙314相关联的偏移添加到发起方防火墙312或目标防火墙314的基地址来寻址给定的发起方防火墙312或目标防火墙314。此外,随着各个发起方防火墙312和目标防火墙314的数量和地址空间大小改变,每个发起方防火墙312或目标防火墙314的基地址可以随防火墙系统350的每次迭代而改变。例如,为了寻址目标防火墙(0,0)314(0),引导处理器244将事务指向目标防火墙(0,0)基地址+目标防火墙偏移(0,0)。类似地,为了寻址目标防火墙(2,1)304(11),引导处理器244将事务指向目标防火墙(2,1)基地址+目标防火墙偏移(2,1),等等。为了直接寻址分布式发起方防火墙312和目标防火墙314,引导处理器244将不得不维护各种发起方防火墙312和目标防火墙314的基地址列表。进一步,发起方防火墙312和目标防火墙314的数量和地址空间大小随着防火墙系统350的迭代而改变。
为了缓解这个问题,防火墙系统350包括防火墙捕获器322和防火墙重新映射器324。引导处理器244用统一的软件视图寻址发起方防火墙312和目标防火墙314的各个寄存器,就好像发起方防火墙312和目标防火墙314具有共同的基地址一样。由引导处理器244生成的存储器地址将发起方防火墙地址空间和目标防火墙地址空间的寄存器寻址为与单个防火墙基地址的偏移。这种形式的地址被称为基于发起方的地址。
防火墙捕获器322捕获指向发起方防火墙312和目标防火墙314的软件发起的事务,并且将访问转发到正确的发起方防火墙地址空间或目标防火墙地址空间。在这样做时,防火墙捕获器322暂时中止事务的执行。指定基于发起方的地址的事务不能被直接发送到发起方防火墙312或目标防火墙314,直到存储器地址被重新映射到指定与相关目标地址空间的基地址的偏移的地址。这种形式的地址被称为基于目标的地址。防火墙捕获器322捕获等待重新映射的事务。防火墙捕获器322将事务指向互连320中包括的防火墙重新映射器324。
防火墙重新映射器324通过将存储器地址从基于发起方的地址修改为基于目标的地址来重新映射在事务中包括的存储器地址。防火墙重新映射器324维护查找表,称为重映射表,其将各个发起方防火墙312和目标防火墙314的存储器地址空间的基地址映射到具有单个基地址的单个地址空间,反之亦然。在防火墙重新映射器324重新映射基于发起方的地址之后,重新映射的地址现在是基于目标的地址的形式。
重映射表在防火墙重新映射器324中被硬编码,并且可以随着防火墙系统350的迭代而改变。然而,这些改变对引导处理器244和其他发起方302是透明的。结果,引导处理器244和其他发起方302可使用相同的基地址来引用各个发起方防火墙312和目标防火墙314,即使通过防火墙系统350的迭代。
例如,为了寻址目标防火墙(0,0)314(0),引导处理器244将事务指向防火墙基地址+目标防火墙偏移(0,0)。防火墙重新映射器324将该地址重新映射至被指定为与用于目标防火墙314的基地址的偏移的地址,诸如目标防火墙(0,0)基地址+目标防火墙偏移(0,0)。类似地,为了寻址目标防火墙(2,1)314(11),引导处理器244将事务指向防火墙基地址+目标防火墙偏移(2,1)。防火墙重新映射器324将该地址重新映射至被指定为与用于目标防火墙314的基地址的偏移的地址,诸如目标防火墙(2,1)基地址+目标防火墙偏移(2,1)。防火墙重新映射器324类似地重新映射针对发起方防火墙312的事务的地址。
在防火墙重新映射器324通过将存储器地址从基于发起方的地址修改为基于目标的地址来重新映射事务中包括的存储器地址之后,现在可以处理事务以配置相关的发起方防火墙312或目标防火墙314。因此,防火墙捕获器322将事务转发到与经修改的存储器地址关联的地址空间,由此允许事务继续进行。
尽管防火墙重新映射器324可能在防火墙系统350中引入一些附加业务量,但当引导处理器244配置发起方防火墙312和目标防火墙314时,该附加业务量中的大部分仅在引导时发生一次。因此,在配置了发起方防火墙312和目标防火墙314之后,防火墙重新映射器324在运行时期间对防火墙系统350的性能引入很少甚至没有影响。此外,防火墙系统350上的用于配置发起方防火墙312和目标防火墙314的业务量仅被传输到相关的发起方防火墙312和目标防火墙314,而不是所有发起方防火墙312和目标防火墙314。结果,发起方防火墙312和目标防火墙314的配置在防火墙系统350上引入很少乃至不引入不必要的业务量。
将认识到,图2-3B中所示的互连是说明性的并且变化和修改是可能的。在一个示例中,图2-3B的互连被示出为具有特定数量的节点、发起方和目标。然而,在本公开的范围内,互连可以具有任何技术上可行的数量的节点、发起方和目标。在另一示例中,在图2-3B的互连中,互连的某些节点与发起方防火墙相关联,某些节点与目标防火墙相关联,某些节点与发起方防火墙和目标防火墙两者相关联,并且某些节点不与发起方防火墙或目标防火墙相关联。然而,在本公开的范围内,互连的任何节点可以与发起方防火墙、目标防火墙或发起方防火墙和目标防火墙两者相关联。在又一示例中,图3A-3B的互连的节点被示为具有彼此和/或与防火墙的某些连接。然而,在本公开的范围内,节点可以以任何技术上可行的方式并且经由任何技术上可行的互连结构和/或拓扑彼此互连和/或与防火墙互连。在又一示例中,图3B的发起方防火墙和目标防火墙被示为在防火墙系统350的互连320外部。然而,在本公开的范围内,发起方防火墙和目标防火墙可被包括在防火墙系统350的互连320内。
图4A-4B阐明了根据各个实施例的用于经由图3B的互连320和分布式防火墙处理事务的方法步骤的流程图。虽然结合图1-3B的系统来描述方法步骤,但所属领域的技术人员将理解,经配置以按任何次序执行方法步骤的任何系统都在本公开的范围内。
如图所示,方法400开始于步骤402,其中发起方302发出事务。发起方302包括可以发起针对目标的事务(诸如加载操作或存储操作)的任何系统组件。发起方302包括但不限于CPU复合体242、引导处理器244、电源管理处理器246、相机处理器248、安全处理器250和调试处理器252。目标包括但不限于PCIe目标260和外围总线目标262。发起方302执行指向目标304的事务。一般而言,发起方302通过互连320并向目标304指引事务(诸如加载操作或存储操作)。在一些示例中,发起方302可执行加载操作以从目标304中包括的存储器位置和/或寄存器检索一个或更多个数据值。类似地,在一些示例中,发起方302可执行存储操作以将一个或更多个数据值存储到目标304中包括的存储器位置和/或寄存器。
在步骤404,互连320中包括的防火墙捕获器322确定事务是否指向发起方防火墙312或目标防火墙314。如果防火墙捕获器322确定事务指向发起方防火墙312或目标防火墙314,则事务中包括的基于发起方的地址应当被重新映射至基于目标的地址。虽然发起方302可以生成指向散布在整个防火墙系统350中的各种目标304的事务,但是当发起方302生成指向发起方防火墙312或目标防火墙314的事务时,如在初始化和配置发起方防火墙312和目标防火墙314时,发起方302将目标地址空间寻址为与单个防火墙基地址的偏移,独立于目标304的数量或互连310的结构和/或拓扑。这种形式的地址被称为基于发起方的地址。例如,为了寻址目标(0,0)304(0)的防火墙,发起方302将事务指向防火墙基地址+目标防火墙偏移(0,0)。类似地,为了寻址目标(2,1)304(11)的防火墙,发起方302将事务指向防火墙基地址+目标防火墙偏移(2,1),等等。
在这样的情况下,方法400前进到步骤406,其中防火墙捕获器322捕获事务。在这样做时,防火墙捕获器322暂时中止事务的执行。指定基于发起方的地址的事务不能被直接发送到发起方防火墙312或目标防火墙314,直到存储器地址被重新映射到指定从相关防火墙地址空间的基地址的偏移的地址。这种形式的地址被称为基于目标的地址。防火墙捕获器322捕获等待重新映射的事务。在步骤408,防火墙捕获器322将事务指向互连320中包括的防火墙重新映射器324。
在步骤410,防火墙重新映射器324通过将存储器地址从基于发起方的地址修改为基于目标的地址来重新映射事务中包括的存储器地址。防火墙重新映射器324维护查找表,称为重映射表,其将各个发起方防火墙312和目标防火墙314的存储器地址空间的基地址映射到具有单个基地址的单个地址空间,反之亦然。以此方式,发起方302用统一的软件视图寻址各个发起方防火墙312和目标防火墙314,就好像发起方防火墙312和目标防火墙314具有共同的基地址一样。由发起方302生成的存储器地址寻址目标地址空间作为与单个防火墙基地址的偏移。这种形式的地址被称为基于发起方的地址。在防火墙重新映射器324重新映射基于发起方的地址之后,重新映射的地址现在寻址目标地址空间作为与相关目标地址空间的基地址的偏移。这种形式的地址被称为基于目标的地址。
重映射表在防火墙重新映射器324中被硬编码,并且可以随着防火墙系统350的迭代而改变。然而,这些变化对于发起方302是透明的。结果,发起方302可使用相同的基地址来引用不同发起方防火墙312和目标防火墙314,即使通过防火墙系统350的迭代。
例如,为了寻址目标(0,0)304(0)的防火墙,发起方302将事务指向防火墙基地址+目标防火墙偏移(0,0)。防火墙重新映射器324将该地址重新映射至被指定为从目标防火墙314的基地址的偏移的地址,诸如目标(0,0)基地址+目标防火墙偏移(0,0)。类似地,为了寻址目标(2,1)304(11)的防火墙,发起方302将事务指向防火墙基地址+目标防火墙偏移(2,1)。防火墙重新映射器324将该地址重新映射至被指定为与用于目标防火墙314的基地址的偏移的地址,诸如目标(2,1)基地址+目标防火墙偏移(2,1)。防火墙重新映射器324类似地重新映射针对发起方防火墙312的事务的地址。
在步骤412,防火墙捕获器322将事务转发至与经修改的存储器地址相关联的地址空间。在防火墙重新映射器324通过将存储器地址从基于发起方的地址修改为基于目标的地址来重新映射事务中包括的存储器地址之后,事务现在可以由相关的发起方防火墙312或目标防火墙314来处理。因此,防火墙捕获器322将事务转发到与经修改的存储器地址关联的地址空间,由此允许事务继续进行。
在步骤414,互连320将事务传送至防火墙系统350中包括的对应于该事务的发起方防火墙312或目标防火墙314。,互连320传输现在包括在步骤408由防火墙重新映射器324映射的基于目标的地址的事务。互连320经由互连320的节点306将事务从防火墙重新映射器324发送到目标304的目标防火墙314。
在步骤416,发起方302完成事务。方法400随后终止。可替代地,方法400前进到步骤402以处理附加事务。
返回步骤404,如果防火墙捕获器322确定事务不指向防火墙,则防火墙捕获器322不捕获该事务。相反,方法400前进到步骤418,其中防火墙系统350中包括的发起方防火墙312授权由发起方302发出的事务。发起方防火墙312进而授权该事务。具有发起方亲和性的防火墙被称为发起方防火墙312。发起方防火墙312被置于对应的发起方302附近,并用于将每个对应的发起方302限制或沙盒化以寻址有限的地址范围。在一些实施例中,多个发起方防火墙312可以合并和放置在公共节点306处,以便对多个发起方302进行沙盒化。
针对发起方302的发起方防火墙312执行授权功能以确定发起方302是否被授权访问由事务指定的目标304。在这样做时,发起方302的发起方防火墙312检查由事务指定的存储器地址。发起方防火墙312确定发起方302是否被授权将事务指向包括由事务指定的存储器地址的存储器地址空间。如果发起方防火墙312确定发起方302未被授权将事务指向存储器地址空间,则发起方防火墙312阻止该事务。另一方面,如果发起方防火墙312确定发起方302被授权将事务指向存储器地址空间,则发起方防火墙312允许事务继续进行。
在步骤420,互连320将事务传送至防火墙系统350中包括的对应于目标304的目标防火墙314。互连320经由互连320的节点306将事务从发起方302的发起方防火墙312直接传输到目标304的目标防火墙314。事务遵循从用于发起方302的发起方防火墙312到用于目标304的目标防火墙314的最短路径。最短路径可以经由任何技术上可行的技术来确定,诸如曼哈顿距离技术、欧几里得距离技术等。
在步骤422,目标防火墙314授权由发起方302生成的事务,如结合步骤416所描述的。具有目标亲和性的防火墙被称为目标防火墙314。目标防火墙314放置在由相应目标防火墙314保护的对应目标304附近。在一些实施例中,目标防火墙314可以通过为由目标防火墙314保护的多个目标中的每个实现防火墙来保护多个目标。在这样的实施例中,目标防火墙314缩放到与对应节点306相关联的目标304的数量和每个目标304的不同功能。
目标防火墙314执行授权功能以确定发起方302是否被授权将事务指向受目标防火墙314保护的目标304。如果目标防火墙314确定发起方302未被授权将事务指向目标304,则目标防火墙314阻止该事务。另一方面,如果目标防火墙314确定发起方302被授权将事务指向目标304,则目标防火墙314允许事务继续进行。目标防火墙314将事务转发到目标304以用于处理。在步骤424,发起方302完成该事务。方法400随后终止。可替代地,方法400前进到步骤402以处理附加事务。
总之,各个实施例包括用于经由与分布式防火墙互连的计算机系统来处理事务的技术。利用所公开的技术,防火墙分布在计算机系统互连中的发起方和目标之间。将具有发起方亲和性的防火墙放置得更靠近对应的发起方。这些防火墙(被称为发起方防火墙)将来自对应发起方的事务限制在指定和有限的地址范围内。具有目标亲和性的防火墙被放置得更靠近对应目标。目标防火墙将事务限制为仅允许来自被授权访问对应目标的发起方的事务。一般而言,发起方之一负责配置发起方防火墙和目标防火墙。在配置之前,发起方防火墙和目标防火墙是透明的,使所有事务通过。在配置了发起方防火墙和目标防火墙之后,发起方防火墙和目标防火墙可以检测并授权或阻止来自其他发起方的访问。
此外,防火墙重新映射器在发起方防火墙和目标防火墙的初始化和配置过程中执行映射功能。防火墙重新映射器帮助发起方防火墙和目标防火墙的编程和配置。防火墙重新映射器将计算机系统互连中的各个发起方防火墙和目标防火墙映射到单个统一视图。该统一视图将各个发起方防火墙和目标防火墙的存储器地址空间合并到包括所有发起方防火墙和目标防火墙的存储器地址空间的单个地址空间中。结果,发起方不需要管理每个发起方防火墙和目标防火墙的单独的地址空间,而是从软件角度经由统一视图访问所有防火墙。
所公开的技术相对于现有技术的至少一个技术优点是,利用所公开的技术,防火墙被分布成使得每个发起方与单独的发起方防火墙相关联并且每个目标与目标防火墙相关联。每个事务沿着路径直接从与发起方相关联的发起方防火墙路由到与目标相关联的目标防火墙。因为事务不通过集中式防火墙进行路由,所以相对于现有方法,事务被更高效地处理。所公开的技术的另一优点是事务被重新映射,使得在发起方上执行的应用被呈现有防火墙的统一视图,而不考虑互连的特定配置的改变。因此,程序员不需要在每次互连的架构改变时修改应用程序。这些优点代表了对于现有技术方法的一个或更多个技术改进。
以任何形式在任何权利要求中引用的任何权利要求要素和/或在本申请中描述的任何要素的任何和所有组合都落入本公开和保护的预期范围内。
已经出于说明的目的呈现了各个实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。
本实施例的多个方面可以具体化为系统、方法、或计算机程序产品。因此,本公开的各方面可采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在本文中可全部统称为“模块”或“系统”。此外,本公开的方面可以采取体现在一个或更多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质具有体现在其上的计算机可读程序代码。
可以使用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是,例如但不限于,电子、磁性、光学、电磁、红外或半导体系统、装置或设备,或者上述的任意合适的组合。计算机可读存储介质的更具体的示例(非穷举的列表)将包括以下:具有一个或更多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或者上述的任意合适的组合。在本文档的上下文中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以由指令执行系统、装置或设备使用或者与其结合使用。
以上参考根据本公开的实施例的方法、设备(系统)和计算机程序产品的流程图说明和/或框图描述了本公开的多个方面。应当理解,流程图图示和/或框图的每个方框以及流程图图示和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令,实现流程图和/或框图块或多个框图块中指定的功能/动作的实施。这样的处理器可以是,但不限于通用处理器、专用处理器、专用处理器或现场可编程门阵列。
图中的流程图和框图示出了根据本公开的各个实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可表示代码的模块、片段或部分,其包括用于实现指定的逻辑功能的一个或更多个可执行指令。还应注意,在一些替代实施例中,框中所指出的功能可不按图中所指出的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然前述内容针对本公开的实施例,但是在不背离其基本范围的情况下,可以设计本公开的其他和进一步的实施例,并且其范围由以下权利要求书确定。

Claims (20)

1.一种计算机实现的方法,用于经由互连处理第一事务,所述方法包括:
确定所述第一事务指向防火墙;
中止所述第一事务的执行;
修改在所述第一事务中包括并呈第一存储器地址格式的存储器地址以生成呈第二存储器地址格式的经修改的存储器地址;以及
经由所述互连将包括所述经修改的存储器地址的所述第一事务传送到所述防火墙。
2.根据权利要求1所述的计算机实现的方法,其中:
所述防火墙包括对第二事务执行第一授权功能的发起方防火墙,以及
目标防火墙对所述第二事务执行第二授权功能。
3.根据权利要求2所述的计算机实现的方法,其中所述第一授权功能包括确定与所述发起方防火墙相关联的发起方被授权将所述第二事务指向存储器地址空间,该存储器地址空间包括所述第二事务中包括的第二存储器地址。
4.根据权利要求2所述的计算机实现的方法,其中所述第二授权功能包括确定与所述发起方防火墙相关联的发起方是否被授权将所述第二事务指向由所述目标防火墙保护的目标。
5.根据权利要求1所述的计算机实现的方法,还包括:在中止所述第一事务的执行之后,将所述第一事务转发到防火墙重新映射器。
6.根据权利要求1所述的计算机实现的方法,还包括:在修改所述第一事务中包括的所述存储器地址以生成所述经修改的存储器地址之后,将所述第一事务转发至与所述经修改的存储器地址相关联的地址空间。
7.根据权利要求1所述的计算机实现的方法,其中所述防火墙包括发起方防火墙和目标防火墙,并且所述方法还包括:
确定发起方和所述发起方防火墙或所述目标防火墙中的至少一个之间的通过在所述互连中包括的多个节点的路径;以及
经由所述路径将所述第一事务从所述发起方传送至所述发起方防火墙或所述目标防火墙中的所述至少一个。
8.根据权利要求1所述的计算机实现的方法,其中所述第一存储器地址格式包括:
防火墙地址空间的基地址,所述防火墙地址空间包括与包括所述防火墙的多个防火墙相对应的多个地址空间;以及
与所述防火墙相关联的偏移。
9.根据权利要求1所述的计算机实现的方法,其中所述第二存储器地址格式包括:
对应于防火墙的防火墙地址空间的基地址;以及
与所述防火墙相关联的偏移。
10.根据权利要求1所述的计算机实现的方法,其中所述防火墙包括被配置为执行多个发起方的授权功能的发起方防火墙。
11.根据权利要求1所述的计算机实现的方法,其中所述防火墙包括被配置为执行多个目标的授权功能的目标防火墙。
12.根据权利要求1所述的计算机实现的方法,其中所述防火墙包括耦合至在所述互连内的多个节点中包括的第一节点的发起方防火墙,并且第二防火墙包括耦合至所述第一节点的目标防火墙。
13.根据权利要求1所述的计算机实现的方法,其中所述防火墙包括耦合至在所述互连内的多个节点中包括的第一节点的发起方防火墙,并且第二防火墙包括耦合至所述多个节点中包括的第二节点的目标防火墙。
14.一种系统,包括:
发起方防火墙;
目标防火墙;
防火墙捕获器,其:
确定第一事务指向所述发起方防火墙或所述目标防火墙,以及
中止所述第一事务的执行;
防火墙重新映射器,其:
修改在所述第一事务中包括并呈第一存储器地址格式的存储器地址以生成呈第二存储器地址格式的经修改的存储器地址;以及
互连,其将包括所述经修改的存储器地址的所述第一事务传送至所述发起方防火墙或所述目标防火墙。
15.根据权利要求14所述的系统,其中:
所述发起方防火墙对第二事务执行第一授权功能,以及
所述目标防火墙对所述第二事务执行第二授权功能。
16.根据权利要求15所述的系统,其中所述第一授权功能包括确定与所述发起方防火墙相关联的发起方被授权将所述第二事务指向存储器地址空间,所述存储器地址空间包括所述第二事务中包括的第二存储器地址。
17.根据权利要求15所述的系统,其中所述第二授权功能包括确定与所述发起方防火墙相关联的发起方是否被授权将所述第二事务指向由所述目标防火墙保护的目标。
18.根据权利要求14所述的系统,其中在中止所述第一事务的执行之后,所述防火墙捕获器进一步将所述第一事务转发到所述防火墙重新映射器。
19.根据权利要求14所述的系统,其中在所述防火墙重新映射器修改所述第一事务中包括的所述存储器地址以生成所述经修改的存储器地址之后,所述防火墙捕获器进一步将所述第一事务转发到与所述经修改的存储器地址相关联的地址空间。
20.根据权利要求14所述的系统,其中所述防火墙包括发起方防火墙和目标防火墙,并且其中所述互连进一步:
确定所述发起方与所述目标之间的通过所述互连中包括的多个节点的路径;以及
经由所述路径将第二事务从所述发起方传送至所述目标。
CN202210691217.6A 2021-08-23 2022-06-17 具有统一软件视图的物理分布式控制平面防火墙 Pending CN115712892A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/409,540 US20230057698A1 (en) 2021-08-23 2021-08-23 Physically distributed control plane firewalls with unified software view
US17/409,540 2021-08-23

Publications (1)

Publication Number Publication Date
CN115712892A true CN115712892A (zh) 2023-02-24

Family

ID=85132494

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210691217.6A Pending CN115712892A (zh) 2021-08-23 2022-06-17 具有统一软件视图的物理分布式控制平面防火墙

Country Status (3)

Country Link
US (1) US20230057698A1 (zh)
CN (1) CN115712892A (zh)
DE (1) DE102022121123A1 (zh)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734847A (en) * 1995-06-15 1998-03-31 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
US6425023B1 (en) * 1999-03-24 2002-07-23 International Business Machines Corporation Method and system for gathering and buffering sequential data for a transaction comprising multiple data access requests
US6629157B1 (en) * 2000-01-04 2003-09-30 National Semiconductor Corporation System and method for virtualizing the configuration space of PCI devices in a processing system
US6804741B2 (en) * 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
CN100524266C (zh) * 2005-07-11 2009-08-05 辉达公司 在总线上以包的形式传输数据传输请求的方法及设备
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US20080082622A1 (en) * 2006-09-29 2008-04-03 Broadcom Corporation Communication in a cluster system
US20080163358A1 (en) * 2007-01-03 2008-07-03 Texas Instruments Incorporated Initiator and target firewalls
US8307416B2 (en) * 2007-01-03 2012-11-06 Texas Instruments Incorporated Data structures for use in firewalls
US7562176B2 (en) * 2007-02-28 2009-07-14 Lsi Corporation Apparatus and methods for clustering multiple independent PCI express hierarchies
JP4854050B2 (ja) * 2009-09-24 2012-01-11 エヌイーシーコンピュータテクノ株式会社 ノード制御装置、ノード制御装置の制御方法、情報処理システム、及びコンピュータプログラム
US9727511B2 (en) * 2011-12-30 2017-08-08 Bedrock Automation Platforms Inc. Input/output module with multi-channel switching capability
US20140237156A1 (en) * 2012-10-25 2014-08-21 Plx Technology, Inc. Multi-path id routing in a pcie express fabric environment
WO2015100672A1 (zh) * 2013-12-31 2015-07-09 华为技术有限公司 一种扩展PCIe总线域的方法和装置
US9317446B2 (en) * 2014-09-23 2016-04-19 Cisco Technology, Inc. Multi-level paging and address translation in a network environment
US10042777B2 (en) * 2016-03-30 2018-08-07 Qualcomm Incorporated Hardware-based translation lookaside buffer (TLB) invalidation
US10180924B2 (en) * 2017-05-08 2019-01-15 Liqid Inc. Peer-to-peer communication for graphics processing units
US11115383B2 (en) * 2018-05-24 2021-09-07 Texas Instruments Incorporated System on chip firewall memory architecture
US10740265B1 (en) * 2018-09-27 2020-08-11 Amazon Technologies, Inc. PCI-based bus system having peripheral device address translation based on base address register (BAR) index
US11269526B2 (en) * 2020-04-23 2022-03-08 Next Silicon Ltd Interconnected memory grid with bypassable units

Also Published As

Publication number Publication date
US20230057698A1 (en) 2023-02-23
DE102022121123A1 (de) 2023-02-23

Similar Documents

Publication Publication Date Title
JP6746572B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
KR20220008833A (ko) Soc 및 fpga를 구비한 서버 오프로드 카드
JP5963282B2 (ja) 割り込み分配スキーム
US9122465B2 (en) Programmable microcode unit for mapping plural instances of an instruction in plural concurrently executed instruction streams to plural microcode sequences in plural memory partitions
US7913066B2 (en) Early exit processing of iterative refinement algorithm using register dependency disable and programmable early exit condition
US7921278B2 (en) Early exit processing of iterative refinement algorithm using register dependency disable
US9274591B2 (en) General purpose processing unit with low power digital signal processing (DSP) mode
US8286027B2 (en) Input/output device including a mechanism for accelerated error handling in multiple processor and multi-function systems
KR102413593B1 (ko) 교착상태 방지를 위한 방법들 및 회로들
US20140164464A1 (en) Vector execution unit with prenormalization of denormal values
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
US10037301B2 (en) Circuits and methods for inter-processor communication
CN107636630B (zh) 中断控制器
US20080163331A1 (en) Reconfiguring a secure system
EP4016309A1 (en) System, apparatus and method for handling multi-protocol traffic in data link layer circuitry
US10908987B1 (en) Handling memory errors in computing systems
US9330024B1 (en) Processing device and method thereof
US20110106522A1 (en) virtual platform for prototyping system-on-chip designs
KR20150019845A (ko) 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법
US7536694B2 (en) Exception handling in a multiprocessor system
US8127181B1 (en) Hardware warning protocol for processing units
US20180253238A1 (en) Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
US9990327B2 (en) Providing multiple roots in a semiconductor device
US20230057698A1 (en) Physically distributed control plane firewalls with unified software view
US20150220393A1 (en) Method and apparatus for storing trace data

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