桥接的总线间通信的制作方法

文档序号:12142051阅读:394来源:国知局
桥接的总线间通信的制作方法与工艺

本申请大体涉及总线之间的桥接通信。



背景技术:

总线是互连的子系统或电路,其在电子电路内的不同设备之间传输数据。总线定义了一组规则和连接,被连接至该总线的每个设备都必须遵守该规则和连接,以便有效地通过该总线进行通信。被连接至总线的设备的示例例如包括但不限于:处理器、存储器以及外部系统的网桥等。不同于点到点的连接,总线可以在相同的一组电线上连接一些外围设备。

许多电子系统都包括多个总线以便于在多个设备之间并联地传送数据。在一些系统中,可能从执行某一协议的总线将数据传送至执行另一不同协议的总线。连接执行不同协议的总线会产生兼容性的问题。例如,用于高级微处理器总线架构(AMBA)的高级可扩展接口(Advanced eXtensible Interface,AXI)支持对连接至该总线的安全和不安全的资源的隔离,并且该隔离是软件控制和硬件实施的。相反地,外围部件互连-快速(PCIe)总线架构不提供相似的安全性。当不同的总线具有不同的特征时,连接这些总线就会有问题。



技术实现要素:

在一个实施例中,一种用于在第一和第二总线之间桥接通信的方法包括:在存储器中存储地址转译信息和相关联的安全指示符。从所述第一总线接收的每个第一访问请求均包括第一请求者安全指示符和第一地址。响应于每个第一访问请求,所述方法响应于所述第一请求者安全指示符指示不安全的请求者以及与用于所述第一地址的所述地址转译信息相关联的安全指示符指示安全地址范围,拒绝所述第一访问请求。响应于所述第一请求者安全指示符指示安全的请求者,使用所述地址转译信息将所述第一访问请求转译成用于所述第二总线的第二访问请求,并且将所述第二访问请求通信至所述第二总线。从所述第二总线接收的每个第三访问请求均包括第三地址。响应于每个第三访问请求,所述方法使用所述地址转译信息将所述第三访问请求转译成用于所述第一总线的第四访问请求;并且将所述第四访问请求以及与用于第四地址的所述地址转译信息相关联的所述安全指示符通信至所述第一总线。

在另一实施例中,用于在第一总线和第二总线之间通信的桥接电路包括:存储器,其被配置成存储地址转译信息和相关联的安全指示符。出口电路被耦接至所述存储器以及所述第一和第二总线。所述出口电路被配置成接收来自所述第一总线的第一访问请求,每个第一访问请求均包括第一请求者安全指示符和第一地址。对于每个第一访问请求,所述出口电路被配置成:响应于所述第一请求者安全指示符指示不安全的请求者以及与用于所述第一地址的所述地址转译信息相关联的安全指示符指示安全的地址范围,拒绝所述第一访问请求。响应于所述第一请求者安全指示符指示安全的请求者,所述出口电路使用所述地址转译信息将所述第一访问请求转译成用于所述第二总线的第二访问请求,并且将所述第二访问请求通信至所述第二总线。入口电路被耦接至所述存储器以及所述第一和第二总线。所述入口电路被配置成接收来自所述第二总线的第三访问请求,每个第三访问请求均包括第三地址。所述入口电路进一步被配置成:使用所述地址转译信息将所述第三访问请求转译成用于所述第一总线的第四访问请求;并且将所述第四访问请求以及与用于第四地址的所述地址转译信息相关联的所述安全指示符通信至所述第一总线。

在另一实施例中提供了一种系统。该系统包括:第一总线;被耦接至所述第一总线的第一组主从电路;第二总线;在所述第一总线和所述第二总线之间耦接的桥接电路;被耦接至所述第二总线的第二组主从电路。所述桥接电路包括:存储器,其被配置成存储地址转译信息和相关联的安全指示符。出口电路被耦接至所述存储器以及所述第一和第二总线。所述出口电路被配置成接收来自所述第一总线的第一访问请求,每个第一访问请求均包括第一请求者安全指示符和第一地址。对于每个第一访问请求,所述出口电路被配置成:响应于所述第一请求者安全指示符指示不安全的请求者以及与用于所述第一地址的所述地址转译信息相关联的安全指示符指示安全的地址范围,拒绝所述第一访问请求。响应于所述第一请求者安全指示符指示安全的请求者,所述出口电路使用所述地址转译信息将所述第一访问请求转译成用于所述第二总线的第二访问请求,并且将所述第二访问请求通信至所述第二总线。入口电路被耦接至所述存储器以及所述第一和第二总线。所述入口电路被配置成接收来自所述第二总线的第三访问请求,每个第三访问请求均包括第三地址。所述入口电路进一步被配置成:使用所述地址转译信息将所述第三访问请求转译成用于所述第一总线的第四访问请求;并且将所述第四访问请求以及与用于第四地址的所述地址转译信息相关联的所述安全指示符通信至所述第一总线。

通过考虑具体实施方式和权利要求书可以理解其它特征。

附图说明

通过阅读下面的具体实施方式以及参考附图,所述方法和系统的各种方面和特征将会变得更加清晰。

图1示出了一种系统,该系统包括用于在第一总线和第二总线之间通信的桥接电路,其中第一总线对安全和不安全的资源提供硬件实施的控制,第二总线不识别(recognize)该第一总线的安全机制;

图2是用于在第一总线和第二总线之间进行桥接通信的示例过程的流程图;并且

图3示出了可编程集成电路(IC),可以在该可编程IC上执行图1的桥接电路和图2的过程。

具体实施方式

在下面的描述中,详述的许多具体细节对在此描述的具体实施例进行了更为透彻的描述。然而,本领域技术人员很显然可以在不使用所有下述具体细节的情况下实践这些实施例的一个或多个其它的实施例和/或变化。在其它实例中,没有详细描述众所周知的特征,以防止模糊本申请中的示例的描述。为了便于展示,在不同的图表中使用了相同的数字标号来指代相同的项目;然而,在可选的实施例中,这些项目可以不同。

公开的桥接电路能够将在桥接通信中由第一总线实施的安全措施适应不实施第一总线的安全机制的第二总线。根据某一方法,该桥接电路能够存储地址转译信息和相关的安全指示符。地址转译信息被用于在第一总线的地址空间和第二总线的地址空间之间转译地址。与地址转译信息相关联的安全指示符是可配置的,以使得不同的地址范围可以具有不同的安全标志(security designation)。

通过桥接电路从第一总线接收的访问请求参考了请求地址,并且具有相关联的请求者安全指示符。请求地址参考了第一总线的第一地址空间内的地址,并且请求者安全指示符指示了请求者的安全设置。例如,请求者的安全设置可能是安全的或者不安全的。

响应于请求者安全指示符指示了请求者是不安全的,以及与用于请求地址的地址转译信息相关联的安全指示符指示了安全的地址范围,桥接电路拒绝来自在第一总线上的请求者的、到第二总线的访问请求。如果请求者的安全指示符指示出请求者是不安全的,并且请求地址的范围是不安全的,那么桥接电路会使用地址转译信息来将访问请求转译成用于第二总线的访问请求。如果请求者安全指示符指示出请求者是安全的,那么桥接电路对于安全的和不安全的地址范围都会使用地址转译信息将访问请求转译成用于第二总线的访问请求。转译的访问请求被通信至第二总线。

通过桥接电路从第二总线接收的访问请求参考了请求地址,但是其中没有相关联的请求者安全指示符。被请求地址参考了第二总线的第二地址空间内的地址。对于通过第二总线接收的请求,桥接电路使用地址转译信息来将该请求转译成用于第一总线的访问请求。桥接电路然后将转译的访问请求以及与地址转译信息相关联的安全指示符通信至第一总线上。

图1示出了系统100,系统100包括用于在第一总线和第二总线之间通信的桥接电路,其中第一总线提供对安全和不安全的资源的硬件实施的控制,第二总线不识别该第一总线的安全机制。虽然没有显示,但是应当理解的是,除了示出的地址通道外,该桥接和总线还提供了数据通道。

系统100包括第一组主从电路102和第二组主从电路112,其中第一组主从电路102被耦接至第一总线104、桥接电路106、总线控制器108和第二总线110,而第二组主从电路112被耦接至第二总线。第一组主从电路102包括一个或多个主电路和一个或多个从电路,并且第二组主从电路112包括一个或多个主电路和一个或多个从电路。主电路的示例包括微处理器、直接存储器存取(DMA)电路和/或数字信号处理器(DSP)。从电路的示例包括闪存器件、固态硬盘或者硬盘驱动器。桥接电路106是在第一总线104上的从电路的一个示例。

桥接电路106转译在第一总线104和第二总线110之间的请求。总线可能具有不同的地址空间、不同的物理配置以及不同的安全机制。例如,总线104可能是并行总线,例如AXI总线,而总线110可能是串行总线,例如PCIe。AXI总线也能够隔离安全和不安全的资源。在AXI总线上,每个设备都被分配一个能够指示该设备是安全或是不安全的安全配置文件。内存访问事务(memory access transactions)被标记成指示请求者的安全等级,并且该标记贯穿整个互连系统进行传播。不安全的主设备或软件任务只允许访问不安全的存储区域或从设备。安全的主设备或软件任务允许访问安全和不安全的存储区域。在AXI总线上,事务安全由AxPROT[1]信号(x指代用于读通道的R和用于写通道的W)的状态所指示,其可以与安全指示符142相提并论。在PCIe总线上,没有与事务一起传输的相似的安全信息。

出口电路(egress circuit)122将来自在第一总线104上的请求者(主电路)的请求转译成适合于在第二总线110上的从电路的请求。入口电路(ingress circuit)124将来自在第二总线110上的请求者的请求转译成适合于在第一总线104上的从电路的请求。出口和入口转译电路在两个地址空间之间转译地址,并且使用地址范围映射图126来实施第一总线的安全机制。例如,可以在一个或多个双端口存储器128内实施地址范围映射图。在示例性的实现方式中,可以通过配置信号130来配置地址范围映射图126。

每个地址范围映射图均描述了各自的地址范围。在地址范围映射图内的信息指定了地址范围的大小132、远程基地址(base address)134、本地基地址136和安全指示符138。地址范围的大小指示了例如一范围内的可寻址的字的数量。远程基地址指示了在第二总线110的地址空间内的基地址,并且地址范围从该基地址开始;本地基地址指示了在第一总线104的地址空间内的基地址,并且地址范围从该基地址开始。安全指示符138指示了该地址范围是安全的还是不安全的。

出口电路接收来自第一总线104的访问请求。每个访问请求(在下面也会被称作事务)均包括请求者安全指示符142和地址144。安全指示符指定了发起请求的主电路的安全等级,例如安全或者不安全,而地址参考了第一总线104的地址空间的地址。响应于访问请求,出口电路基于请求者安全指示符和与请求地址相关联的安全指示符来确定该请求是否会被转译并且被通信至第二总线110。如果请求者安全指示符指示出请求者是安全的,那么出口电路将来自第一总线的访问请求转译成用于第二总线的访问请求。具体而言,使用对地址范围进行指定的地址映射图126中的一个来转译请求地址,其中请求地址落入该地址映射图内(本地基地址<=请求地址<=(本地基地址+大小))。由出口电路输出的地址146是第二总线110的地址空间内的地址,并且等于:(请求地址-本地基地址)+远程基地址。如果请求者安全指示符指示了不安全的请求者,并且用于请求地址的地址转译信息指示了不安全的地址范围,那么出口电路如上所指的那样对访问请求进行转译。响应于请求者安全指示符指示请求者是不安全的,而与地址范围相关联的安全指示符指示请求地址在安全地址范围之内,出口电路拒绝访问请求。可以用来自出口电路的拒绝信号148指示该拒绝。

入口电路124接收并处理来自在第二总线110上的请求者的请求,该请求被寻址到在第一总线104上的设备。来自第二总线的请求包括请求地址152,但是不包括像来自第一总线104的请求那样的请求者安全指示符。入口电路使用地址范围映射图中的一个以将来自第二总线110的访问请求转译成用于第一总线104的访问请求。该地址范围映射图是这样的:(远程基地址<=请求地址<=(远程基地址+大小))。通过入口电路输出的地址154是第一总线104的地址空间内的地址,并且是:(请求地址-远程基地址)+本地基地址。连同地址154一起,入口电路还对安全指示符156进行通信,该安全指示符156与用于请求地址的地址范围相关联。因此,与地址范围相关联的安全指示符指示出向第一总线104提交访问请求的所有主电路112的请求者安全等级。在信号线158上会将确认信号和拒绝信号提供至总线控制器108。

总线控制器提供了在桥接电路106和第二总线110之间的接口。在总线110提供串行链路的实现方式中,例如外围部件互连-快速(PCIe),总线控制器可以包括电路的事务层、链路层和物理层。

图2是用于在第一总线和第二总线之间桥接通信的示例性过程的流程图。在框202,地址映射图配置有地址转译信息,以用于转译在第一和第二总线之间的请求。每个地址范围映射图为各自的地址范围指定大小、远程基地址、本地基地址和安全指示符。

对于来自第一总线(执行安全措施的总线)的访问请求,该过程进入到框204。在图204,在访问请求内的地址的地址范围被确定。判定框206确定该指定的范围是否是安全的。如果该范围是安全的,那么判定框208确定请求者是否是安全的,如通过伴随该访问请求的信号所指示的。如果请求者是安全的,那么在框210,该过程将来自第一总线的地址空间的该请求的地址转译至第二总线的地址空间。在框212,用转译地址来准备访问请求,并且将其通信至第二总线。如果请求者是不安全的,并且请求地址被指定的地址范围是安全的,那么判定框208将该过程引导至框214,其中用发送至请求者的信号来拒绝访问请求。

对于来自第二总线的访问请求(不执行第一总线的安全措施的总线),在框220,确定在访问请求内的地址的地址范围。在框226,地址范围映射图被用于将来自第二总线的地址空间的地址转译成第一总线的地址空间的地址。在框228,用转译地址准备访问请求,并且该访问请求和来自地址范围映射图的安全指示符的状态被传递至第一总线。在第一总线上接收访问请求的设备能够判定是允许访问还是拒绝请求。

图3示出了可编程集成电路(IC),图1的桥接电路和图2的过程可以在该可编程IC上实施。图3的可编程IC展示了FPGA架构(300),其包括大量不同的可编程单元(tile),包括多千兆位收发器(“MGT”)301、可配置逻辑模块(“CLB”)302、随机存取存储器模块(“BRAM”)303、输入/输出模块(“IOB”)304、配置逻辑和时钟逻辑(“CONFIG/CLOCKS”)305、数字信号处理模块(“DSP”)306、专用输入/输出模块(“I/O”)307(例如,配置端口和时钟端口),以及其它可编程逻辑308,例如数字时钟管理器、模数转换器、系统监控逻辑等。一些FPGA也包括专用处理模块(“PROC”)310以及内部和外部重配置端口(未显示)。

在一些FPGA中,每个可编程单元均包括可编程逻辑互连元件(“INT”)311,INT311具有与每个相邻单元内的可编程互连元件之间的标准连接。因此,可编程互连元件合起来一起为展示的FPGA执行可编程互连资源。可编程互连元件311也可以包括与相同单元内的可编程逻辑元件的连接,如图3顶部包括的示例所示。

例如,CLB 302可以包括可配置逻辑元件(“CLE”)312,CLE 312可以被编程以实现用户逻辑加上单个可编程互连元件(“INT”)311。除了包括一个或多个可编程互连元件之外,BRAM 303可以包括BRAM逻辑元件(“BRL”)313。通常地,单元内包括的互连元件的数量取决于单元的高度。在图示的实施例中,BRAM单元具有的高度和5个CLB相同,但是也可以使用其他的数量(例如,4个)。除了包括合理数量的可编程互连元件之外,DSP单元306可以包括DSP逻辑元件(“DSPL”)314。除了一个可编程互连元件311的实例之外,IOB 304可以包括,例如,两个输入/输出逻辑元件(“IOL”)315的实例。本领域的技术人员十分清楚,诸如被连接至I/O逻辑元件315的实际的I/O焊盘,是使用覆盖于各种所述逻辑模块上的金属制造的,并且通常不会被局限于输入/输出逻辑元件315的区域。

在图示的示例中,靠近裸片(图3所示)中部的柱状区域被用作配置逻辑、时钟逻辑以及其他控制逻辑。从该柱状区域延伸出来的垂直纵列309被用于横跨FPGA的宽度来分配时钟信号和配置信号。

使用图3中展示的架构的一些FPGA包括额外的逻辑模块,这些逻辑模块拆散了组成FPGA很大一部分的常规的柱状结构。额外的逻辑模块可以是可编程模块和/或专用逻辑。例如,图3中显示的处理器模块310跨越了CLB和BRAM的一些纵列。

需要注意的是,图3只意图展示示例性的FPGA架构。例如,一列中逻辑模块的数量、列的相对宽度、列的数量和顺序、列中包括的逻辑模块的类型、逻辑模块的相对大小以及图3的顶部包括的互连/逻辑实现方式都仅仅是示例性的。例如,在实际的FPGA中,无论CLB出现在哪里,都通常包括不止一个相邻列的CLB,以便于用户逻辑的有效实现。

在此描述的示例性方法涉及在第一和第二总线之间的桥接通信。涉及桥接通信的该方法包括:在存储器中存储地址转译信息和相关联的安全指示符;响应于从所述第一总线接收的每个第一访问请求,其中每个第一访问请求包括第一请求者安全指示符和第一地址,执行下述步骤:响应于所述第一请求者安全指示符指示不安全的请求者以及与用于所述第一地址的所述地址转译信息相关联的安全指示符指示安全的地址范围,拒绝所述第一访问请求;响应于所述第一请求者安全指示符指示安全的请求者,使用所述地址转译信息将所述第一访问请求转译成用于所述第二总线的第二访问请求,并且将所述第二访问请求通信至所述第二总线;以及响应于从所述第二总线接收的、包括第三地址的每个第三访问请求,执行下述步骤:使用所述地址转译信息将所述第三访问请求转译成用于所述第一总线的第四访问请求;并且将所述第四访问请求以及与用于第四地址的所述地址转译信息相关联的所述安全指示符通信至所述第一总线。

在一些所述方法中,所述地址转译信息包括多个地址范围映射图,每个地址范围映射图均将所述第一总线的第一地址范围映射至所述第二总线的第二地址范围,并且所述安全指示符中的每一个均分别与所述地址范围映射图中的一个相关联。

一些所述方法进一步包括:响应于所述第一请求者安全指示符指示不安全的请求者以及用于所述第一地址的地址转译信息指示不安全的地址范围,将所述第一访问请求转译成用于所述第二总线的所述第二访问请求并且将所述第二访问请求通信至所述第二总线。

一些所述方法进一步包括:所述地址转译信息包括多个地址范围映射图,每个地址范围映射图均将所述第一总线的第一地址范围映射至所述第二总线的第二地址范围,并且所述安全指示符中的每一个均分别与所述地址范围映射图中的一个相关联;并且每个地址范围映射图均指定第一基地址和第二基地址。

一些所述方法进一步包括:每个地址范围映射图均指定大小。

一些所述方法进一步包括:所述第一基地址在所述第一总线的第一地址空间内,并且所述第二基地址在所述第二总线的第二地址空间内。

一些所述方法进一步包括:所述安全指示符是可编程的。

在此描述的示例性装置大致涉及桥接电路。在该装置中,用于在第一总线和第二总线之间通信的桥接电路包括:存储器,其被配置成存储地址转译信息和相关联的安全指示符;出口电路,其被耦接至所述存储器以及所述第一和第二总线,其中所述出口电路被配置成接收来自所述第一总线的第一访问请求,每个第一访问请求均包括第一请求者安全指示符和第一地址,并且对于每个第一访问请求,所述出口电路被配置成:响应于所述第一请求者安全指示符指示不安全的请求者以及与用于所述第一地址的所述地址转译信息相关联的安全指示符指示安全的地址范围,拒绝所述第一访问请求;响应于所述第一请求者安全指示符指示安全的请求者,使用所述地址转译信息将所述第一访问请求转译成用于所述第二总线的第二访问请求,并且将所述第二访问请求通信至所述第二总线;以及入口电路,其被耦接至所述存储器以及所述第一和第二总线,其中所述入口电路被配置成接收来自所述第二总线的第三访问请求,每个第三访问请求均包括第三地址,所述入口电路进一步被配置成:使用所述地址转译信息将所述第三访问请求转译成用于所述第一总线的第四访问请求;并且将所述第四访问请求以及与用于第四地址的所述地址转译信息相关联的所述安全指示符通信至所述第一总线。

在一些所述装置中,所述地址转译信息包括多个地址范围映射图,每个地址范围映射图均将所述第一总线的第一地址范围映射至所述第二总线的第二地址范围,并且所述安全指示符中的每一个均分别与所述地址范围映射图中的一个相关联。

在一些所述装置中,所述出口电路进一步被配置成:响应于所述第一请求者安全指示符指示不安全的请求者以及用于所述第一地址的地址转译信息指示不安全的地址范围,将所述第一访问请求转译成用于所述第二总线的所述第二访问请求并且将所述第二访问请求通信至所述第二总线。

在一些所述装置中,所述地址转译信息包括多个地址范围映射图,每个地址范围映射图均将所述第一总线的第一地址范围映射至所述第二总线的第二地址范围,并且所述安全指示符中的每一个均分别与所述地址范围映射图中的一个相关联;每个地址范围映射图均指定第一基地址和第二基地址。

在一些所述装置中,每个地址范围映射图均指定大小。

在一些所述装置中,所述第一基地址在所述第一总线的第一地址空间内,并且所述第二基地址在所述第二总线的第二地址空间内。

在一些所述装置中,所述安全指示符是可编程的。

现提供一种作为另一实施例的系统。该系统包括:第一总线;被耦接至所述第一总线的第一组主从电路;第二总线;在所述第一总线和所述第二总线之间耦接的桥接电路;被耦接至所述第二总线的第二组主从电路;其中所述桥接电路包括:存储器,其被配置成存储地址转译信息和相关联的安全指示符;出口电路,其被耦接至所述存储器以及所述第一和第二总线,其中所述出口电路被配置成接收来自所述第一总线的第一访问请求,每个第一访问请求均包括第一请求者安全指示符和第一地址,并且对于每个第一访问请求,所述出口电路被配置成:响应于所述第一请求者安全指示符指示不安全的请求者以及与用于所述第一地址的所述地址转译信息相关联的安全指示符指示安全的地址范围,拒绝所述第一访问请求;响应于所述第一请求者安全指示符指示安全的请求者,使用所述地址转译信息将所述第一访问请求转译成用于所述第二总线的第二访问请求,并且将所述第二访问请求通信至所述第二总线;以及入口电路,其被耦接至所述存储器以及所述第一和第二总线,其中所述入口电路被配置成接收来自所述第二总线的第三访问请求,每个第三访问请求均包括第三地址,所述入口电路进一步被配置成:使用所述地址转译信息将所述第三访问请求转译成用于所述第一总线的第四访问请求;并且将所述第四访问请求以及与用于第四地址的所述地址转译信息相关联的所述安全指示符通信至所述第一总线。

在一些所述系统中,所述地址转译信息包括多个地址范围映射图,每个地址范围映射图均将所述第一总线的第一地址范围映射至所述第二总线的第二地址范围,并且所述安全指示符中的每一个均分别与所述地址范围映射图中的一个相关联。

在一些所述系统中,所述出口电路进一步被配置成:响应于所述第一请求者安全指示符指示不安全的请求者以及用于所述第一地址的地址转译信息指示不安全的地址范围,将所述第一访问请求转译成用于所述第二总线的所述第二访问请求并且将所述第二访问请求通信至所述第二总线。

在一些所述系统中,所述地址转译信息包括多个地址范围映射图,每个地址范围映射图均将所述第一总线的第一地址范围映射至所述第二总线的第二地址范围,并且所述安全指示符中的每一个均分别与所述地址范围映射图中的一个相关联;每个地址范围映射图均指定第一基地址和第二基地址。

在一些所述系统中,每个地址范围映射图均指定大小。

在一些所述系统中,所述第一基地址在所述第一总线的第一地址空间内,并且所述第二基地址在所述第二总线的第二地址空间内。

虽然一些方面和特征在一些情况下会在单个附图中被描述,但是可以理解的是,来自一个附图的特征可以与另一附图的特征相结合,就算该结合没有明确地被显示或描述成一种结合。

这些方法和系统被认为能够应用于用于在不同总线之间桥接通信的多种系统。通过考虑说明书,其它方面和特征对于本领域的技术人员来说是明显的。所述方法和系统可以被实施成:配置成执行软件的一个或多个处理器、专用集成电路(ASIC)、或者在可编程逻辑器件上的逻辑。说明书和附图只作为实施例,本申请的范围由权利要求书指定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1