用于过滤事务的装置和方法与流程

文档序号:11279188阅读:155来源:国知局
用于过滤事务的装置和方法与流程

本技术涉及用于过滤事务的装置和方法。



背景技术:

已知提供用于将多个主设备与多个从设备互连的互连电路,来使能在主设备和从设备之间执行事务从而在主设备和从设备之间传送数据。主设备和从设备之间的每个事务将包括一个或多个传输。通常,预定的总线协议被用于定义针对通过互连电路路由以表示传输的各种信号的要求以及那些信号中允许的转换。

在由主设备和从设备之间的互连电路提供的连接路径中的一个或多个位置处,可能想要执行过滤操作以选择性地阻断某些传输。例如,考虑到规定的标准,过滤操作可确定一个或多个传输不应当被允许开展。例如,考虑基于安全性的过滤操作,可确定特定传输将会违反某些安全要求并因此应当被阻断。

为了确保高性能,期望任何这样的过滤操作不对每个传输的各种信号经过互连的路由引入显著的延迟。然而,确保所做出的过滤决策被仔细地管理从而确保它们不会引发关于互连电路内采用的总线协议的任何违反也是重要的。



技术实现要素:

在一个示例配置中,提供了一种装置,包括:与主设备耦合的第一接口;与从设备耦合的第二接口,事务在主设备和从设备之间被执行,其中每个事务包括一个或多个传输;路由电路,该路由电路在第一接口和第二接口之间路由表示一个或多个传输的信号;以及过滤决策生成电路,该过滤决策生成电路执行组合运算以生成依据一个或多个接收的输入变量的当前值的过滤决策;响应于过滤决策指示当前传输的阻断条件,路由电路通过阻止表示此当前传输的信号中的一个或多个信号在第一接口和第二接口之间传递来阻断当前传输;响应于装置内对当前传输的断言,过滤决策生成电路生成过滤决策并且在所述当前传输被断言的时间持续期间维护此过滤决策而不管所述输入变量的值如何改变。

在第二示例配置中,提供了一种操作过滤装置以对在主设备和从设备之间执行的事务进行过滤的方法,每个事务包括一个或多个传输,过滤装置具有用于耦合至主设备的第一接口、用于耦合至从设备的第二接口、以及路由电路,该路由电路在第一接口和第二接口之间路由表示一个或多个传输的信号,方法包括:执行组合运算以生成依据一个或多个接收的输入变量的当前值的过滤决策;响应于过滤决策指示当前传输的阻断条件,使得路由电路通过阻止表示此当前传输的信号中的一个或多个信号在第一接口和第二接口之间传递来阻断当前传输;以及响应于过滤装置内对当前传输的断言,生成过滤决策并且在所述当前传输被断言的时间持续期间维护此过滤决策而不管所述输入变量的值如何改变。

在又一示例配置中,提供了一种装置,包括:用于耦合至主设备的第一接口装置;用于耦合至从设备的第二接口装置,事务在主设备和从设备之间被执行,其中每个事务包括一个或多个传输;用于在第一接口装置和第二接口装置之间路由表示一个或多个传输的信号的路由装置;以及用于执行组合运算以生成依据一个或多个接收的输入变量的当前值的过滤决策的过滤决策生成装置;路由装置用于响应于过滤决策指示当前传输的阻断条件而通过阻止表示此当前传输的信号中的一个或多个信号在第一接口装置和第二接口装置之间传递来阻断当前传输;过滤决策生成装置用于响应于装置内对当前传输的断言而生成过滤决策并且在所述当前传输被断言的时间持续期间维护此过滤决策而不管所述输入变量的值如何改变。

附图说明

仅通过示例的方式,本技术将参照其在附图中示出的实施例进行进一步描述,其中:

图1是根据一个实施例包括多个过滤电路的实例的系统的框图;

图2是根据一个实施例提供过滤电路的更多细节的框图;

图3是示意性地示出非突发事务和突发事务的形式的图示,其中所述实施例的过滤技术可被应用于非突发事务和突发事务;

图4a和4b是示出当未采用所述实施例的过滤技术时会出现的两个潜在的总线协议违反的时序图;

图5根据一个实施例更详细地示出来自过滤逻辑的过滤决策如何能够用于选择性地阻断表示个体传输的一个或多个信号;

图6是根据一个实施例示意性地示出图5的过滤逻辑的操作的图示;

图7是根据一个实施例示意性地示出图5的过滤逻辑的操作的流程图;

图8a至图8c是示出当使用所述实施例的过滤电路时对三个示例传输序列的处置的时序图;

图9a示出在过滤电路不执行图7的步骤420的替换性实施例中可被置于过滤器电路内的某一额外电路;以及

图9b是根据一个实施例示出由图9a的突发控制电路执行的步骤的流程图。

具体实施方式

在参考附图论述实施例之前,提供了实施例的以下描述。

在一个实施例中,提供了一种装置,该装置具有耦合于主设备的第一接口和耦合于从设备的第二接口。事务在主设备和从设备之间被执行,其中每个事务包括一个或多个传输。

装置还具有在第一接口和第二接口之间路由表示每个传输的信号的路由电路。过滤器决策生成电路然后被用于执行组合运算以生成依据一个或多个接收的输入变量的当前值的过滤决策。如果过滤决策指示当前传输的阻断条件,则路由电路被布置为通过阻止表示此当前传输的信号中的一个或多个信号在第一接口和第二接口之间传递来阻断当前传输。这些信号可在第一接口和第二接口之间在任一方向上传递,并且在典型的传输中实际上将有一些信号从第一接口传递到第二接口,以及一些信号从第二接口传递到第一接口。在一些实施例中,被阻断的传输的所有这样的信号可被阻断,而在其它实施例中一个或多个信号仍然可被传播(例如由于总线协议的原因)。例如,在一个实施例中提供地址的信号仍然可被传播,尽管标识实际的传输请求的存在的一个或多个信号未被传播并因而有效地阻断传输。

根据所述实施例,过滤决策生成电路响应于装置内对每个传输的断言而生成过滤决策,并此后在每个当前传输被断言的时间持续期间维护此过滤决策,而不管输入变量的值如何改变。

发明人认识到:为了减少过滤决策生成处理对传输在装置内的传播造成的任何性能影响,以下操作将会是有用的:将过滤决策生成电路布置为使得它执行组合运算,因而允许它的输出响应于接收的输入变量中的一个或多个输入变量的值的改变而没有延迟地改变。然而,一个或多个输入变量的值可相对于装置内执行的处理步骤在任意时间处改变,发明人认识到这会潜在地导致路由通过装置的某些信号的转换,而这些转换会违反总线协议要求。

为了减轻这一问题,过滤决策生成电路被布置为使得:当使用组合运算生成过滤决策时,过滤决策生成电路响应于对当前传输的断言而生成此过滤决策,并且然后在当前传输在装置内保持被断言的同时维护此过滤决策。这使得能够实现利用组合运算的性能益处,同时确保由路由电路采用的过滤决策在每个传输被断言的时段期间不被改变。已经发现这样的方法使得某些总线协议违反场景能够被避免。

在一个实施例中,过滤决策生成电路包括过滤决策存储元件,该过滤决策存储元件存储响应于对当前传输的断言而生成的过滤决策,该存储的过滤决策然后被用于当前传输被断言的剩余时间持续期。这提供了用于确保在当前传输被断言的时间持续期间维护过滤决策的有效机制。

在主设备和从设备之间执行的事务可采取多种形式。在一个实施例中,至少一个事务是包括多个传输的突发事务。在处置这样的突发事务时,当执行组合运算以生成过滤决策时,过滤决策生成电路可被布置为响应于装置内对突发事务的第一个传输的断言,根据输入变量中的至少一者来确定以供使用的配置值。存储此配置值的配置存储元件可被提供,并且存储的配置值然后在为突发事务的每个剩余传输生成过滤决策时被过滤决策生成电路使用。这确保针对突发事务中的每个个体传输,配置值是不变的。因而,尽管仍然针对突发事务的每个传输做出过滤决策,并且过滤决策可能确实针对突发事务内的不同传输是不同的,但是任何这样的改变不是因为被用于确定配置值的一个或多个输入变量中的改变,因而在突发事务的执行期间那些输入变量中的任何改变将不影响针对突发事务的每个传输做出的过滤决策。已经发现这样的方法减轻了另一潜在的总线协议违反场景发生的可能性。

如前文提到的那样,当处置突发事务时,过滤决策生成电路可针对突发事务的不同传输生成不同的过滤决策。然而,在一个实施例中,过滤决策生成电路可被布置为:当过滤决策指示突发事务中的一个传输的阻断条件时,维护该过滤决策以指示突发事务中的任何剩余传输的阻断条件。因而,在这样的实施例中,一旦当前传输已被阻断,那么不会针对突发事务的任何剩余传输重新评估过滤决策,而是替代地此当前阻断过滤决策被重复用于突发事务的所有剩余的传输。这样的方法能够使装置内处置突发事务中跟随在已经被阻断的传输之后的后续传输所需的电路的面积和复杂度更低。

然而,根据可替换的实施例,如果期望的话,装置可被布置为使得继续针对突发事务的任何这样的剩余传输做出过滤决策,并且如果那些过滤决策中的一个或多个允许相关联的传输被传播(即,未被阻断),那么任何这样的附加传输被允许通过装置进行传播。然而,在一个实施例中,额外的步骤被采取以确保对任何这样的传输的适当处置考虑到总线协议要求。具体地,过滤决策生成电路可被布置为:当过滤决策指示突发事务中的一个或多个传输的阻断条件时,使得路由电路输出与未被阻断的第一个后续传输相关联的一个或多个控制信号,以标识此第一个后续传输是新的突发事务的第一个传输。因而,一旦突发事务中的一个传输已经被阻断,那么如果一后续传输要被允许,则新的突发事务被有效地创建,其中此后续传输形成此新创建的突发事务的第一个传输。将认识到,依据使用的总线协议,众多不同的控制信号可能需要被改变以使得新的事务被创建,并且规定此新创建的突发事务的适当的突发长度。

每个事务的传输可采取多种形式,但是在一个实施例中每个传输包括地址阶段和数据阶段,并且过滤决策生成电路被布置为在对地址阶段进行断言时生成过滤决策。在一个具体实施例中,地址阶段和数据阶段可被流水线化,从而使得在任何具体时间点处,当前传输的地址阶段可正在被装置处理,同时前一传输的数据阶段也正在被处理。应用于地址阶段和数据阶段的信号的过滤决策是为相关传输确定的过滤决策,因此在以上示例中装置可对它当前正在处理的地址阶段应用一个过滤决策并且对它同时也正在处理的数据阶段应用不同的过滤决策。

在一个实施例中,在预定条件下,地址阶段保持被断言多个时钟周期,并且过滤决策生成电路被布置为在地址阶段被断言的第一时钟周期生成过滤决策并且对于地址阶段保持被断言的至少多个时钟周期维护过滤决策。通过确保针对表示扩展的地址阶段的多个时钟周期的持续期间使用相同的过滤决策,这避免了否则在一些情形中将会出现的潜在的总线协议违反。

使得地址阶段被扩展的预定条件可采用多种形式,但是在一个实施例中是等待条件,该等待条件指示对先前传输的数据阶段的处置仍然在进行中。在一个具体实施例中,从设备可发出指示它是否准备好接收下一传输的地址阶段的准备信号,并且可在它仍然处于处置前一传输的数据阶段的过程中时对此准备信号清零,从而引发上文提到的等待条件发生。

在一个实施例中,当过滤决策指示阻断条件时,地址阶段信号(或者至少定义存在实际的传输请求的一个或多个信号-如前文提到的那样,在一个实施例中地址信号可仍然被传播)将不经由第二接口被传播至从设备。因此,此从设备将不生成任何数据阶段响应信号用于通过装置路由回去以经由第一接口向前传播至主设备。然而,在一个实施例中,当过滤决策指示阻断条件时,路由电路被布置为内部地生成从第一接口发出的一个或多个信号用于数据阶段。那些信号采取的形式可依据实施例而变化。例如,如果期望向主设备标识传输尚未被处理,那些信号可采取错误响应的形式,这向主设备表明传输尚未被处理。然而,在一些情形中(例如,在某些安全性过滤情应用中),向主设备表明传输尚未发生可能被视为是不希望的,替代地虚假的数据阶段响应信号可被生成以用于返回至主设备以有效地提供假数据响应。

尽管在一个实施例中装置的第一接口可被直接连接至主设备,在替换性实施例中第一接口可经由一个或多个中间组件与主设备耦合。类似地,尽管第二接口可被直接连接至从设备,在替换性实施例中第二接口可经由一个或多个中间组件与从设备耦合。

在一个示例实施例中,可提供一种互连电路,该互连电路包括用于把多个主设备和多个从设备互连的连接路径的网络,该网络使得事务能够在主设备和从设备之间被执行。然后一个或多个过滤电路位于网络的选定连接路径中,每个过滤电路包括如上文所述的过滤装置。

现在将参考图示描述具体实施例。

图1是根据一个实施例包括多个过滤电路的实例的系统的框图。更具体地,图1示意性地示出用于将多个主设备10、15、20、25与多个从设备30、35、40、45、50、55互连的互连电路。主设备可采取多种形式,例如,主设备中的一者或多者可以是中央处理单元(cpu),而其它主设备可以是图形处理单元(gpu)、直接存储器访问(dma)单元等等。类似地,从设备可采取多种形式,例如,诸如sram或flash之类的存储器设备、通用i/o设备(gpio)、显示缓冲器等等。在一个实施例中,图1中所示的系统形成片上系统(soc),其中各种主设备、从设备、和互连电路被集成到单个芯片中。在这样的布置中,从设备中的一者或多者可实际形成到片外组件的接口电路。

图1中除了主设备10、15、20、25与从设备30、35、40、45、50、55之外的所有组件可被视为形成把主设备和从设备互连的互连电路。为了简便起见,仅分离的过滤器电路和任何相关联的复用器被分离地示出,并且互连电路中的所有其它组件由图1中的互连区块60示意性示出。

如图1中所示,过滤器电路可被置于互连电路内的多个位置。例如,一些过滤器电路可被置于与特定主设备相关联,例如过滤器电路62与主设备15相关联并且过滤器电路64与主设备20相关联。类似地,某些过滤器电路可与具体的从设备相关联,例如过滤器电路72与从设备30相关联并且过滤器电路76与从设备45相关联。如图1中所示,使得一个过滤器电路与多个从设备相关联也是可能的,例如过滤器电路78与从设备50、55相关联,其中中间的从复用器80被用于在过滤器电路78和适合的从设备50、55之间路由信号。

还如图1中所示,在主侧(如主复用器和过滤器电路66所示)或者在从侧(如从复用器和过滤器电路74所示)将过滤器电路集成到复用器中是可能的。例如考虑从复用器和过滤器电路74,过滤器电路可被提供于来自互连60的输入处。如将在下文参考余下图示更详细地讨论的那样,作为形成目的是从主设备传递到从设备的传输的一部分的一个或多个信号将被阻断到从设备的向前传播的结果,过滤器电路可选择性地阻断某些传输。此外,过滤器电路然后将内部地生成某一形式的(一个或多个)响应信号以返回至主设备,来取代由传输未被阻断的从设备将会生成的响应信号。在从复用器和过滤器电路74内,除了真实的从目标40和45之外,可提供针对复用器电路的额外的内部目标,并且在过滤器电路决定阻断一传输的情况下,从复用器将选择该内部目标。此内部从目标然后将负责为阻断的传输生成合适的响应信号以返回至主设备。

考虑主复用器和过滤器电路66,在一个实施例中此单元将包含与每个主设备相关联的分离的过滤器电路,从而使得仅不被阻断的传输将经受复用操作。这样的方法能够避免被阻断的传输会潜在地延迟来自不同主设备的不被阻断的传输的向前传播的可能性。

尽管图1示出了在互连电路内提供的各种不同过滤器电路,但将认识到在任何实际的实现中提供了精确数目的过滤器电路,并且它们在互连电路内的特定布置可按照想要的方式改变。另外,尽管图1示出了过滤器电路的多种不同的可能位置,但这并不旨在显示过滤器电路位置的每个可能的变体。仅仅通过例证的方式,例如在来自从复用器80的输出中的一者或多者上提供过滤器电路将会是可能的。

图2是更详细地示出在图1所示的过滤器电路内提供的组件的框图。具体地,过滤器电路105被示出位于主侧组件100和从侧组件110之间。尽管在一些实例中主侧组件110可以是主设备本身(例如在图1中所示的过滤器电路62的示例中),在其它实施例中主设备可经由一个或多个中间组件被耦合至过滤器105(并且那些中间组件可能确实包括一个或多个其它过滤器电路)。例如,考虑图1的过滤器电路72,主侧组件100可实际上是互连60内的组件(例如,用于处置来自上游的主组件的传输的向前传播的锁存级)。

类似地,尽管在一些实例中从侧组件110可以是从设备本身(例如在图1中所示的过滤器电路72的示例中),在其它实施例中过滤器电路可经由一个或多个中间组件被耦合至从设备(例如针对区块74内的过滤器用于去往从设备45的传输的情形,其中会存在中间的又一过滤器电路76)。

过滤器电路105具有用于耦合至主侧组件100的从接口115以及用于耦合至从侧组件110的主接口120。如前面提到的那样,在主设备和从设备之间执行事务从而在任一方向上传输主设备和从设备之间的数据,并且每个事务将由一个或多个传输组成。针对每个传输有多个信号将通过互连电路。如图2中所示,信号可被总地视为有三种类型。具体地,可从主侧组件发出主控制信号,该主控制信号标识传输的本质、被访问的地址等等。还将生成数据信号,用于写入操作的数据信号将自主侧传递至从侧,并且用于读取操作的数据信号将自从侧传递至主侧。此外,可自从侧向主侧发出某些从响应信号,例如来提供关于传输的状态的信息(例如它是否已经成功完成),例如当从设备仍然正在处置前一传输时使得主设备延长传输等等。所生成的信号的确切形式将取决于互连电路内采用的总线协议,总线协议定义了对于路由通过互连电路以表示传输的各种信号的要求,并且通常还标识那些信号中的一个或多个信号中允许的转换。尽管这里描述的技术可应用于各种不同的总线协议,但为了描述的目的,实施例将参考在由英国剑桥的arm有限公司研发的高级微控制器总线架构(amba)中规定的高级高性能总线(ahb)协议进行描述。

如图2中所示,过滤器电路105包括路由电路125,路由电路125也将在这里被称作选择性阻断电路。路由电路负责在从接口115和主接口120之间路由每个传输的各种信号,从而使得从主侧组件100呈现给从接口115的传输能够从主接口120传播到从侧组件110。此外,提供了过滤逻辑130,该过滤逻辑接收各种输入变量,并且使用那些输入变量执行组合运算从而生成过滤决策,该过滤决策然后作为控制信号被提供至路由电路125。当过滤决策指示阻断条件时,路由电路125被布置为阻断传输的一个或多个信号在从接口115和主接口120之间传播。在一个实施例中,这涉及阻断自从接口115接收的、去往主接口120的信号中的一个或多个,可选地用默认值信号替换它们,并然后内部生成合适的信号用于路由回从接口115以向前传播至主侧组件,该合适的信号替代了如果传输被传播到主接口120以提供给从侧组件那么将会由从侧组件110生成的信号。如前面提到的那样,在一些实施例中,并不是所有自从接口115接收的、去往主接口120的信号都需要被阻断从而阻断传输,但是为了便于描述,剩余的实施例描述将假设所有这样的信号被阻断。

图3示出了可由所述实施例的装置处理的两种类型的事务。如图示的上半部分所示,非突发事务可被处理,非突发事务包括单个传输150。根据ahb协议,每个这样的传输包括地址阶段155和随后的数据阶段160。图2中所示的主控制信号在地址阶段期间有效,而数据信号和从响应信号在数据阶段160期间有效。在地址阶段期间,提供了标识所访问的地址的地址信号。此外,在地址阶段中发出各种其它控制信号,并且在上文提及的ahb协议中一个这样的信号是“htrans”信号,该信号指示当前传输的传输类型。对于非突发事务,传输将被标记为非顺序(nonseq)传输,如针对图3的传输150的地址阶段155所示。

还如图3中所示,个体事务可以流水线的方式被处置,从而使得在传输150的地址阶段160正被处置的同时,下一事务的地址阶段也可处于被处置的过程中。因而,考虑过滤器电路105,它可同时被布置为处理一个事务的地址阶段以及在前事务的数据阶段,并且来自过滤逻辑的分离的过滤决策可应用于那些不同的传输。

还如图3中所示,装置可被用于处置突发事务,突发事务包括多个传输,例如图3中所示的传输165、170、175。这些个体传输还可被称作突发事务的“跳动(beat)”。非突发事务因而可被视为具有单个跳动的事务。如图3中的下半部分所示,突发事务的第一个传输也具有它的被设定为nonseq的htrans信号来标识它是非顺序的传输,但是后续传输中的每一者具有被设定为“seq”的htrans信号来标识它们是顺序的传输,即发生于在前传输中规定的地址的相邻地址处的传输。再次,个体传输可被流水线化从而使得一个传输的地址阶段与突发内的在前传输的数据阶段同时正在被处置。

根据ahb协议,可由htrans信号指定的其它传输类型是“busy(忙)”类型和“idle(空闲)”类型,“busy”类型使得主设备能够在突发中间插入空闲周期,而主设备可输出“idle”类型以标识它此刻不想要执行数据传输。

根据ahb协议,从设备不能阻止主设备对传输进行断言(assert),但是所提供的从响应信号中的一个信号是“hready”信号,该信号被从设备置位以指示传输已经完成了由从侧组件进行的处理。如果替代地,此准备(ready)信号被清零,这指示从设备仍然正在处理当前传输的数据传输,并且将使得主设备把它针对下一传输的地址阶段的断言延长一个或多个更远的时钟周期直至准备信号被断言并因此从设备准备好接受此下一传输。

在所述实施例中,互连电路在总线时钟的控制下操作,总线时钟被称作hclk信号,其控制所有总线传输的时序。在一个实施例中,所有的信号时序与hclk的上升边沿有关。因此,通过示例的方式,主侧组件100和从侧组件110二者均在hclk时钟信号的上升边沿上对它们的信号进行采样,过滤器105被形成为位于主侧组件和从侧组件之间的组合电路。与在hclk时钟信号的上升边沿上采样的信号相比,至过滤逻辑的各种输入变量未被约束在由总线时钟信号管理的时间处改变它们的值,而实际上它们的值可在相对于hclk信号的任意时间处改变。这些输入变量可自互连外部的组件提供,例如来自寄存器组或者来自系统中的其它模块。鉴于过滤逻辑主要被布置为组合电路,只要到过滤逻辑的任何输入改变那么过滤决策就被更新。这提供了用于生成过滤决策的高性能机制,该机制确保过滤逻辑的操作本身未对传输通过过滤器105的传播引入延迟。对互连电路内个体传输的处置中的任何延迟可对整个总线系统的性能具有总体影响。这在根据总线协议(例如,ahb协议)操作的互连中是特别有问题的,其中每个事务必须在下一个事务能够启动之前完成,因而每个个体事务被尽可能快速地处置是重要的。

然而,尽管布置过滤逻辑130以基于输入变量执行组合运算从而生成过滤决策确保了当输入值改变时在生成过滤决策中不存在延迟,但是已经发现过滤逻辑使用的各种输入变量的值的潜在的任意变化可导致使用这样的过滤决策的过滤器电路的输出上的ahb协议违反。如将在这里更详细地论述地那样,所述实施例的过滤器电路提供了额外的结构来减轻这样的问题。然而,首先为了描述当未使用所述实施例的过滤技术时会发生的协议违反问题,将参考图4a和4b的时序图。

图4a示出由空闲传输220分隔的两个非顺序传输200和230。htrans输入信号代表由从接口115提供的htrans信号,并且htrans输出信号代表来自路由电路125并使得在主接口120可用的等同输出。

如图2中所示,过滤逻辑130将接收定义了当前配置的一个或多个配置输入并且另外可以可选地接收传输从属控制数据。在图4a的示例中,假设第一时钟周期期间的配置输入采用cfg1的形式,并且未引发过滤逻辑生成阻断条件,即那些配置输入允许路由发生。假设任何传输从属控制数据也允许传输发生,那么路由至路由电路125的过滤决策将允许htrans输入被传播至htrans输出,因而使得非顺序传输200表现为呈现至主接口120的非顺序传输205。地址阶段的其它主控制信号(未示出在图4a中)也被传播。在时间t1210处,hready输入被设定为高,指示从设备准备好接收事务,因此非顺序事务205在时间t1处被从侧组件110采样。此时,hready输入可转换至清零状态,如转换215所示,这指示从侧组件现在正忙于处置传输。

在下一周期,主设备使出空闲传输220。在此时钟周期期间,假设配置已经改变为cfg2,从而使得由过滤逻辑输出的过滤决策指示阻断条件。这可使得路由电路阻断由从接口115提供的传输,并把它替换以默认信号提供至主接口,在图4a的描述中假设默认信号代表空闲传输225。因而,在此特定实例中,对传输220的阻断不具有任何具体效果,因为此传输在任何情形中是空闲传输。

在下一时钟周期,从接口115呈现非顺序传输230。然而,在时间t3处,hready信号仍然是低,因此此非顺序传输不能在此时被及时采样,而是替代地一旦hready信号已经被设定为高,仅在上升边沿t4245处被采样。

因而,非顺序传输的地址阶段已经被扩展至两个时钟周期,并且如果到过滤逻辑130的输入在此时段期间改变那么这可导致潜在的协议违反事宜。具体地,在此示例中假设配置输入在第一个时钟周期期间采用cfg3的形式并且这使得过滤决策指示传输被允许(在此实例中假设任何附加的传输从属控制数据也允许传输发生)。因此,非顺序传输230作为非顺序传输235被呈现给主接口120。

然而,在非顺序传输的扩展的地址阶段的第二个时钟周期期间,配置改变为cfg4,这使得过滤决策改变至阻断条件,因而使得路由电路用空闲传输240替代非顺序传输230。因此,在上升边沿245处空闲传输240被采样。

然而,ahb总线协议要求主设备必须继续断言非顺序传输直至它被从侧组件接受,因此在上升边沿t2和上升边沿t4之间的时段期间从非顺序传输235至空闲传输240的改变不被ahb协议所允许并且表示协议违反。

因而,可以看出此特定形式的协议违反可发生于输入变量在传输的加长地址阶段期间改变的时候。

图4b示出了在处置突发事务时可发生的另一形式的协议违反。具体地,突发事务包括三个传输250、265、280,第一个传输是非顺序传输并且剩余的传输是顺序传输。然后传输295指示新的突发事务(或者实际上非突发事务)。在此示例中,假设hready在示出的整个时段间保持被置位,因此每个传输在上升时钟边沿260、275、290、305处被采样。然而,再次假设配置输入在每个时钟周期期间改变,因此尽管非顺序传输250被允许传播以形成呈现给主接口120的非顺序传输255,但顺序传输265被空闲传输270替代,这是因为过滤逻辑在此时钟周期期间生成指示阻断条件的过滤决策。然而,在第三个周期期间配置再次改变,这允许顺序传输280作为顺序传输285被传播至主接口120。然而,根据ahb协议规范,顺序传输不能跟随在空闲传输之后,因此这表示协议违反。

仅为了全面性,应当注意的是在图4b中假设此实例中的配置cfg4允许传播非顺序传输295。在一个实施例中,配置输入与传输从属控制数据一起用于做出最终的过滤决策。输入变量的实际形式将取决于由过滤逻辑执行的功能。例如,过滤逻辑可被用于提供安全过滤器以确保不安全的主设备不访问被标识为安全的存储器地址。在此上下文中,配置cfg4例如可标识请求传输的主设备是不安全的。然后,此具体配置是否产生阻断传输的过滤决策可依据传输从属控制数据而改变,该传输从属控制数据例如可指示由此传输访问的具体地址是安全地址还是非安全地址。因而,在这样的实施例中,配置输入本身对于过滤决策是否允许传播传输还是使得传输被阻断不是最终决定性的。然而,将认识到在一些实施例中可能不存在传输从属控制数据,并且配置输入本身将确定过滤决策。

图5是根据一个实施例更详细地示出可在过滤器电路105内提供的路由电路的图示。如同所示,一系列复用元件320、325、330、335可被放置在ahb从接口115和ahb主接口120之间的路径中,这些元件可允许各种主控制信号、写入和读取数据信号、和从响应信号被传播或被阻断。在它们被阻断的情况中,那些信号可被默认值替代,为了描述的目的,默认值在此示例中被示出为逻辑0值。

如将参考剩余图示更详细地论述地那样,为了减轻上文所述的协议违反情形,过滤逻辑的操作被修改为使得针对每个传输(这里也被称作每个跳动)采样控制数据(即,传输从属数据)以产生然后针对此传输的完整性维护的过滤决策。相比而言,对于突发事务,可每个突发采样一次配置输入,从而使得尽管为这样的突发事务的每个传输生成的过滤决策仍然可依据跳动从属控制数据而改变,用于突发事务的跳动的那些个体的过滤决策将不会由于在突发事务的持续期间发生的配置输入中的任何变化而改变。

如前文提到的那样,在传输的地址阶段期间传送主控制信号,因而当过滤逻辑不阻断该传输时,主控制信号将经由复用器320自从接口115被路由至主接口120,然后它们可从主接口120被提供至从侧组件110。然而,如果过滤逻辑产生指示此传输的阻断条件的过滤决策,那么那些主控制信号不被传播,因此不存在要自主接口120传播到从设备的地址阶段。从设备因而不对此传输进行处理。然而在一个实施例中,通过从接口115向主设备提供对于此传输的某一形式的数据阶段响应仍被视为是适当的。此响应的性质可依据实施例而改变,并且具体地可依据由过滤器执行的功能而改变。例如,考虑前文提及的基于安全性的过滤器,在一些实例中明确地向主设备表示它发起的传输已导致安全性问题可能被视为是不恰当的。在此实例中,从响应信号可在过滤器内被内部地生成并且经由复用器335被路由回从接口115以向前传播至主设备,在此实例中那些响应信号有效地提供了假响应。它们例如可指示传输已经成功地完成,并且如果传输是读取传输,还可经由复用器330输出一些虚假的读取数据。

然而,在其它实例中可确定告知主设备已经发生错误是适当的。例如,在非安全性的场景中,仍然可基于主标识符值执行某一过滤。具体地,每个主设备可被给予不同的标识符值,并且可被布置为使得某些从设备不是某些主设备可访问的,或者至少那些从设备内的地址范围的某些子集不是某些主设备可访问的。在此实例中,由过滤逻辑接收到的配置输入可标识关于哪些主设备可访问哪些地址范围/从设备的规则,并且然后过滤逻辑可生成适当的过滤决策以允许传播传输或者阻断传输,这取决于发起当前传输的主设备的主标识符以及寻求访问的地址。例如,(一个或多个)配置输入可标识哪些主设备被允许访问哪些从设备,其中在传输的地址阶段期间由主设备提供的主标识符和地址信息用于基于此配置信息来识别此传输是否应当被阻断。在这样的示例中,可能不存在跳动从属控制数据。在传输被阻断的情况中,下述操作可被视为是适当的:设定从响应信号以标识错误条件,从而使得主设备意识到它所发起的传输已经失败。再者,此错误信号可在过滤器内被内部地生成,并且经由复用器335返回至从接口115用于向前传播至主侧组件100。

图6是更详细地示出图5的过滤逻辑130的图示。电路350被提供以执行对配置输入的分析,该分析使得经由复用器335输出配置以供应给过滤决策确定电路365。在一些实施例中,可存在规定配置数据的多个输入,这多个输入需要经受电路350内的一些组合运算,而在其它实施例中可提供仅单项配置数据,在此情形中可不需要电路350。如前文所述,配置可采取多种形式,但在一个实施例中配置可标识执行事务的主设备的本质。例如,在基于安全性的过滤器中,配置可标识主设备是安全性设备还是非安全性设备。

还如图6中所示,过滤决策确定逻辑365接收跳动从属控制数据。这可再次采取多种形式,但仅通过描述的方式,例如可提供控制数据,该控制数据依据每个个体传输访问的地址而改变。因而,对于前文提及的与安全性相关的示例,跳动从属控制数据可标识所访问的地址是安全地址还是非安全地址。

基于这各种输入,过滤决策确定电路生成经由复用器370路由至路由电路125的过滤决策。

为了解决可由于传输的地址阶段(在等待hready信号被断言的同时)被扩展至多个周期而出现的潜在的协议违反,存储元件375被提供以在接收到特定控制信号时选择性地锁存当前的过滤决策。存储元件可采用多种形式,例如寄存器、触发器等等。如图6中所示,存储元件375可由控制信号控制,该控制信号使得它锁存在每个跳动(即,每个传输)的地址阶段的第一时钟周期期间在它的输入端接收的过滤决策。这与事务是突发事务(包括多个跳动)还是非突发事务(包括单个跳动)无关。复用器370然后被控制为使得它输出在每个跳动的地址阶段的第一时钟周期期间直接由过滤决策确定电路365生成的过滤决策,否则设置复用器以输出在存储元件375中的存储值作为过滤决策。这确保了在每个跳动的持续期间维护相同的过滤决策,因此前面通过示例的方式参考图4a描述的协议违反问题不会出现,因为不管配置输入值或跳动从属控制数据有任何变化,过滤决策不会在传输的中途改变。

考虑配置输入,存储元件360(类似于存储元件375,可采用多种形式,例如寄存器、触发器等等)被控制为使得锁存它在突发事务的nonseq传输的地址阶段的第一时钟周期期间(即,在突发事务的第一个传输的第一时钟周期期间)的输入。

复用器355然后可被控制为使得:对于突发事务,除了在此突发事务的nonseq传输的地址阶段的第一时钟周期期间之外,来自复用器355的配置数据输出是存储在存储元件360中的值。因而,在突发事务的第一个传输的仅第一时钟周期期间,配置直接由配置输入分析电路350的输出提供,但对于突发事务的所有后续传输的所有后续时钟周期,使用的配置输入是存储在寄存器360中的值。

尽管在一个实施例中,存储元件还可被配置为锁存在非突发事务的地址阶段的第一时钟周期期间生成的配置数据(这不是要求的),在图6所示的实施例中,对于非突发事务,复用器355一直选择它的顶部输入。具体地,非突发事务将仅包含单个传输,并且元件370、375将确保针对此传输维护相同的过滤决策。因此,不要求在存储元件360内存储非突发事务的配置数据。

通过使用存储元件360为整个突发事务维护相同的配置数据,这确保了不会由于配置输入中的任意改变而出现用于突发事务的分离的跳动的过滤决策中的任何改变。具体地,一旦在突发事务的第一个传输的仅第一时钟周期期间已经确定了配置,此相同的配置被维护用于突发事务的持续期间。这降低了先前参考图4b论述的协议违反的发生的可能性。

然而,仍然有必要允许过滤器对突发事务的每个跳动做出单独的过滤决策。例如,考虑前文提及的基于安全性的过滤示例,可以是非安全性设备发布突发事务以访问一系列存储器地址,其中存储器地址开始于非安全地址空间中,但是由于突发事务的长度,一些后来的传输实际寻求访问安全地址空间。那些后来的传输仍然需要被阻断。将认识到图6的电路允许这样的操作,因为仍然对突发事务的每个跳动做出过滤决策。

如将参考图7更详细地论述的那样,为了移除图4b中所示的该类型的协议违反的任何剩余机会,突发覆写控制电路380可被提供,在某些情形中该电路可覆写用于复用器370的控制信号和存储元件375以确保一旦突发事务的一个跳动已经被阻断,那么所有剩余跳动也被阻断。因此,在htrans信号中将决不存在对于顺序转换的空闲。

图7是根据一个实施例示出过滤电路的操作的流程图。在步骤400处,等待时钟的上升边沿,此后在步骤405处确定过滤电路当前是否在突发事务的非顺序传输的第一个时钟周期中操作。如果是,则配置输入被评估以产生在存储元件360内锁存的配置。处理然后前进至步骤415,或者当过滤器电路不在突发事务的非顺序传输的第一个时钟周期中操作时直接从步骤405前进到步骤415。在步骤415处,确定过滤器电路是否正在跳动(如前文提到的那样,突发事务将具有多个跳动(即,多个传输),而非突发事务将具有单个跳动(即,单个传输))的第一个时钟周期中操作。根据图6的先前描述,将认识到:如果过滤电路未在跳动的第一个时钟周期中操作,那么在存储元件375中将已经存在经锁存的过滤决策,因此处理前进至步骤440,其中选择性阻断电路(即,路由电路125)依据经锁存的过滤决策而被控制。处理然后返回至步骤400。

然而,如果过滤电路正在跳动的第一个时钟周期中操作,那么在步骤420处确定当前的跳动是否是已经开始的突发事务的一部分并且当前锁存的过滤决策是否指示阻断条件。具体地,如果当前跳动不是突发事务的第一个跳动,那么将存在针对事务的先前跳动的当前锁存的过滤决策,并且如果此当前锁存的过滤决策指示阻断条件,那么如前所述,在一个实施例中突发事务的所有后续跳动也被阻断。因此,此时处理从步骤420前进至步骤440,以使得当前考虑的跳动被阻断。

如果在步骤420处确定当前跳动不是突发事务的跳动,或者是突发事务的一部分但是当前锁存的过滤决策未指示阻断条件,那么处理前进至步骤425,其中使用跳动从属控制数据以及自复用器355输出的配置数据来评估过滤决策。然后在步骤430处依据此过滤决策来控制选择性阻断电路,此外过滤决策在步骤435被锁存在存储元件375内。处理然后返回至步骤400。

图8a至8c是三个示例传输序列的时序图,示出了上文描述的过滤电路的操作如何避免某些协议违反场景发生。如图8a中所示,非顺序传输505发生于第一个时钟周期期间,并且在点500处基于配置值cfg1和任何跳动从属控制数据做出过滤决策。在此实例中,假设这引发做出允许传输通过的过滤决策,因此如nonseq传输515所示非顺序传输出现在htrans输出路径上,并且由于被置位的hready信号而在时钟的上升边沿517被采样。

在下一周期中,主设备发出空闲传输520。如前文提到的那样,这有效地意味着主设备在此周期期间未作出活动的传输,因此不需要任何过滤决策。因此,尽管配置已经改变至配置cfg2,但所用的变量未被改变,因而存储元件375中经锁存的过滤决策未被改变。

在第三个时钟周期中,主设备断言非顺序传输535,并且在点530处基于配置cfg3和任何相关联的跳动从属控制数据做出过滤决策。假设这产生允许传输的过滤决策,此过滤决策被锁存在存储元件375中。由于传输被允许传播,这引起nonseq传输545在htrans输出路径上的输出。

由于hready信号在上升边沿t3仍然被解除断言,非顺序传输的地址阶段被扩展至第二个时钟周期,并且仅在时间t4550处被采样。然而,尽管配置已经在此下一时钟周期改变至配置cfg4(会使得过滤决策引起阻断条件),寄存器375内经锁存的过滤决策(其是基于配置cfg3的)继续被使用,因此非顺序传输545对于此第二个时钟周期在htrans输出路径上继续被断言。因此,未发生nonseq到idle的转换,因此不会出现任何协议违反。

为了描述,图8a还指示hresp信号,该信号向主设备提供关于传输的状态的附加信息。此信号在数据阶段发出,因此通过示例的方式第二个时钟周期中的hresp信号与第一个时钟周期中示出的地址阶段所关联的传输有关。在图8a的示例中,假设所有的传输已经成功地进行。

图8b示出了可替换的示例,其中错误发生于处置非顺序传输552时。对于此非顺序传输552,在点554处基于配置cfg1做出过滤决策,该过滤决策允许传输作为非顺序传输555被传播,该非顺序传输555然后在时间t1处由于此时的hready信号的置位状态而被采样。然而,在此传输的后续数据阶段期间,当处理该传输时在从设备内发生错误,该错误由被断言的hresp信号556指示。过滤器电路传播来自从设备的此错误响应。根据ahb协议,错误信号被断言达两个周期,其中hready在第一个周期为低并且然后在第二周期为高。这给与主设备以时间来决定它希望采用什么动作来回应错误。例如,它可决定插入空闲传输,或者替代地继续它原始计划的下一传输。在此示例中,假设它继续它原始计划的下一非顺序传输560,对于传输560在点565处基于配置cfg2做出过滤决策,该过滤决策使得此传输被阻断,因而idle传输567被呈现在htrans输出上。由于hready信号在时间t2处被解除断言,此非顺序传输560需要被扩展至两个周期。在那些周期中的第二个周期中,尽管配置改变至cfg3(该配置结合任何传输从属控制数据将允许传输进行),但是先前基于配置cfg2做出的过滤决策继续被使用,因此传输继续被阻断因而idle传输567继续被断言。

当idle传输567在时间t3处被采样时,主设备然后发出又一非顺序传输570,此传输570的过滤决策在点572处基于配置cfg4被做出。在此实例中假设这使得传输被阻断,引起idle传输575。

图8c示出了突发事务的处理。这始于非顺序传输580,此传输的过滤器决策在点582处基于配置cfg1被做出。假设此配置结合跳动从属控制数据允许传输进行,因此非顺序传输在htrans输出上表现为nonseq传输584。在此示例中,假设hready信号在示出的整个时段间保持被断言,并且所有的hresp信号指示传输被正确地处置。因此,在下一周期中,顺序传输586被发布,并且在点588做出过滤决策。尽管传输从属控制数据可改变,但配置cfg1在此时间期间仍然被使用。再者,假设传输被允许,因此顺序传输590显现在htrans输出上。类似地,下一顺序传输592具有在点594处做出的过滤决策,该决策再次允许传输进行(也基于配置cfg1和任何传输从属控制数据),这使得顺序传输596显现在htrans输出上。

突发传输然后结束并且新的事务始于非顺序传输597,该传输的过滤决策在点598处被做出。在此点处,新的配置信息可被使用,并且在此实例中此配置是cfg4,该配置与任何传输从属控制数据结合使得传输被阻断,因此idle传输599显现在htrans输出上。

如前文提到的那样,在突发事务期间,如果主设备未准备好开始突发事务的下一跳动,那么它可插入忙的传输以延迟此下一活动的跳动。从设备被要求对忙的传输回应以okhresp信号。尽管htrans信号被设定为忙,根据ahb规范,所有其它主控制信息(地址、突发类型等等)反映了下一跳动的合适值,所以当主设备准备好执行此跳动时,仅htrans信号需要从busy改变为seq,并且此时不允许改变其它控制信息。因此,这实质意味着突发事务的跳动可以是以下三个选项中的一者:

非顺序跳动(即,第一个跳动);

顺序跳动(紧跟在前一跳动之后的后续跳动);或者

一个或多个忙的传输以及然后的顺序传输(即,延时的后续跳动)。

关于最后的选项,由于busy信号和跟在它之后的seq信号具有所有相同的控制信息,那么在一个实施例中busy传输被视为跳动的开始,并且然后在此busy传输的第一个时钟周期期间做出的决策在后续的seq传输期间被维护。

图9a示出了在过滤器电路未执行图7的步骤420的情形中可被置于过滤器电路105内的某一额外电路。如果步骤420未被执行,那么显然可以看出当处置突发事务时,(由于做出的与跳动相关的过滤决策)被阻断的传输跟随在未被阻断的传输之后是可能的。当使用图7的步骤420的方法时,这允许在构造过滤器时的更小面积和复杂性,因为事务中跟随在被阻断的跳动之后的所有后续跳动在任何情况下被阻断。然而,如果期望不以此方式约束操作,那么诸如电路600之类的额外电路可被添加以在这样的情形中执行特殊情况处置。具体地,突发控制电路600接收用于当前考虑的跳动的当前过滤决策,以及关于此当前跳动是否是顺序传输的指示。它还额外地接收突发中的先前跳动的先前经锁存的过滤决策,并且基于此信息执行图9b中所示的处理从而选择性地生成额外控制信息用于路由电路。

具体地,如图9b中所示,在步骤605处确定当前跳动是否是顺序传输,并且如果不是,则处理前进至步骤625,其中不需要任何额外控制。然而,如果当前跳动是顺序传输,则在步骤610处确定对于此当前跳动的过滤决策是否指示传输被允许。如果不被允许,则不需要任何额外控制,如步骤625中所示的那样。

然而,如果当前过滤决策指示当前跳动被允许,那么在步骤615处确定突发的先前跳动是否被阻断。如果未被阻断,则不需要任何额外控制。然而,否则的话,需要由突发控制电路600发出控制信号从而避免前面参考图4b描述的协议违反。具体地,在前传输将由于它被阻断而被输出为idle传输,并且不允许发布立即跟随在idle传输之后的顺序传输。在一个实施例中,在步骤620处突发控制电路600发出控制信号以使得新的突发开始。这将涉及把seq传输转化成指示新的突发的开始的nonseq传输,并且潜在地更新诸如突发类型信号、突发长度等等其它控制信号。

从上面描述的实施例中,将可以看出这样的实施例提供了用于基于组合运算做出过滤决策的高性能解决方案,从而使得过滤决策的生成不对通过互连电路的传输的传播造成任何延迟。然而,此外,它允许对过滤决策的细心控制从而避免某些潜在的协议违反场景,这些场景可在使用基于输入变量的组合逻辑生成的过滤决策时出现,输入变量在相对于互连电路的操作时序的任意时间处改变。

在本申请中,词语“被配置为…”被用于表示装置中的元件具有能够执行定义的操作的配置。在此上下文中,“配置”意味着硬件或软件的互连的布置或方式。例如,装置可具有提供所定义的操作的专用硬件,或者处理器或其它处理设备可被编程以执行功能。“被配置为”并不暗示装置元件需要以任何方式被改变从而提供所定义的操作。

尽管本文已参照附图详细描述本技术的说明性实施例,但要理解,本技术不限于那些精确实施例,且本领域技术人员可在不脱离由所附权利要求定义的技术的范围和精神的情况下实行各种变化、添加及修改。举例而言,可在不脱离本技术的范围的情况下对独立权利要求的特征与从属权利要求的特征进行各种组合。

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