首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

用于对非受信任互连代理进行限流的机制 

申请/专利权人:超威半导体公司

申请日:2017-06-29

公开(公告)日:2024-07-02

公开(公告)号:CN109564611B

主分类号:G06F21/55

分类号:G06F21/55;H04L43/0888;H04L43/062

优先权:["20160806 US 15/230,388"]

专利状态码:有效-授权

法律状态:2024.07.02#授权;2019.08.30#实质审查的生效;2019.04.02#公开

摘要:一种主机片上系统SoC,包括片上网络NoC,所述NoC用于在所述SoC的内部块之间传输本地流量;外部处理器链路,所述外部处理器链路用于在所述主机SoC处从非受信任装置接收消息。所述主机SoC中的与所述外部处理器链路耦合的流量控制器监测在一组一个或多个时间间隔内来自所述非受信任装置的外部流量的量,基于外部流量的所述量而检测对流量策略的违反,并且响应于检测到所述违反,减少所述NoC中因来自所述非受信任装置的所述消息产生的流量。

主权项:1.一种计算设备,所述设备包括:主机片上系统,所述主机片上系统包括片上网络,所述片上网络被配置为在所述主机片上系统的内部块之间传输本地流量;外部处理器链路,所述外部处理器链路被配置为在所述主机片上系统处从非受信任装置接收消息,其中所接收的消息包括指向与所述主机片上系统耦合的存储器的一个或多个存储器访问请求;流量控制器,所述流量控制器与所述外部处理器链路耦合并被配置为:监测在一组时间间隔内通过所述片上网络传输的来自所述非受信任装置的外部流量的量,通过确定在所述一组时间间隔中的第一时间间隔期间从所述非受信任装置传输到所述主机片上系统的消息数目是否超过所述第一时间间隔的最大阈值来基于外部流量的所述量而检测对流量策略的违反,以及响应于检测到所述违反,减少所述片上网络中因来自所述非受信任装置的所述消息产生的流量。

全文数据:用于对非受信任互连代理进行限流的机制背景技术一些现代计算机系统利用多个处理单元,诸如中央处理单元CPU、图形处理单元GPU或其它片上系统SoC,它们能够通过通信接口诸如HyperTransportHT彼此通信。作为一个示例,HT是高带宽双向串行并行总线,其允许多个处理器以点对点方式彼此通信,或与其它装置通信。然而,在这样的系统中,系统中的SoC或其它装置中的一者或多者的不合作行为无论是因为不良设计、错误还是恶意意图可能不利地影响合作的SoC或装置的性能。例如,如果允许这些装置在没有任何约束的情况下通过外部接口例如,HT向其它SoC中发出过多存储器请求或其它流量,那么这些装置可能导致拒绝服务DOS攻击和其它问题。附图说明在所附附图中通过示例的方式而非通过限制的方式示出了本公开。图1示出了计算设计的实施方案。图2示出了根据一个实施方案的包括处理单元和存储器的计算系统的一部分。图3示出了流量控制器模块的实施方案。图4示出了根据一个实施方案的用于实现流量计数值的时间加权的平均的逻辑。图5是示出用于对来自非受信任外部装置的流量进行限流的过程的流程图。具体实施方式以下描述阐述了许多具体细节诸如具体系统、部件、方法等等的示例,以便提供对实施方案的良好理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节的情况下实践至少一些实施方案。在其它情况中,不详细地描述或以简单框图格式呈现所熟知的部件或方法,以便避免不必要地模糊实施方案。因而,阐述的具体细节仅是示例性的。特定实现方式可以与这些示例性细节不同,并且仍然被设想为在实施方式的范围内。在一个实施方案中,计算系统中的主机处理器或其它片上系统SoC包括外部接口诸如HyperTransportHT,以实现与计算系统中的其它SoC、装置和模块的通信。然而,通常无法保证这些外部装置的行为,特别是当它们由第三方提供时。因此,当无法确保外部装置的合作时,主机SoC可以将这些装置视为非受信任代理,以防止性能下降、拒绝服务DOS攻击以及在非受信任装置或在允许非受信任装置上运行的软件执行某些操作而不受任何约束的情况下可能出现的其它问题。例如,通过外部接口向主机SoC中发出过量存储器请求的外部装置可能加重主机SoC的片上网络NoC负担,从而影响限制主机SoC的内部块之间的本地流量免于进行服务的DOS情况。在一个实施方案中,外部处理器链路接口实现流控制机制例如,基于信用的流控制;然而,这种机制仅确保本地硬件结构和资源例如,缓冲器不会超额订阅或溢出。对于基于信用的流控制机制,一旦请求在网络中向前移动,那么释放信用,并且可以发送更多请求。虽然这种流控制机制确保短期流量突发不会压制硬件资源,但是它不一定提供对总流量的长期管理。在一个实施方案中,主机SoC还实现流量控制器机制,该流量控制器机制监测来自非受信任外部装置的流量,并且在检测到来自外部装置的外部流量的量如由消息、字节等数目测量的违反流量策略时对来自外部装置的流量进行限流。在一个实施方案中,流量控制器在一组一个或多个时间间隔内对来自非受信任装置的消息或字节数目进行计数以确定来自非受信任装置的流量的量是否违反策略。如果是,那么流量控制器限制在多个后续时间间隔内从非受信任装置接受的流量的量。图1示出了计算系统100的实施方案,计算系统100实现用于非受信任装置的流量控制机制,如上所述。一般地,计算系统100可以被体现为许多不同类型的装置中的任一种,包括但不限于膝上型或台式计算机、移动电话、服务器等。计算系统100包括多个部件102至108,这些部件通过总线101彼此通信。在计算系统100中,部件102至108中的每一者能够直接地通过总线101或经由其它部件102至108中的一者或多者与其它部件102至108中的任一者通信。计算系统100中的部件101至108包含在单个物理外壳内,诸如膝上型或台式计算机箱,或移动电话外壳。在可选实施方案中,计算系统100的一些部件可以被体现为外围装置,使得整个计算系统100不驻留在单个物理外壳内。计算系统100还包括用户接口装置,以用于从用户接收或向用户提供信息。具体地,计算系统100包括输入装置102,诸如键盘、鼠标、触摸屏或用于从用户接收信息的其它装置。计算系统100经由显示器105向用户显示信息,诸如监测器、发光二极管LED显示器、液晶显示器或其它输出装置。计算系统100另外包括网络适配器107以用于经由有线网络或无线网络传输和接收数据。计算系统100还包括一个或多个外围装置108。外围装置108可以包括大容量存储装置、位置检测装置、传感器、输入装置或由计算系统100使用的其它类型的装置。计算系统100包括处理单元104,处理单元104被配置为接收和执行存储在存储器子系统106中的指令106a。在一个实施方案中,处理单元104包括多个处理元件,其中每个处理元件可以是图形处理单元GPU、加速处理单元APU、现场可编程门阵列FPGA、数字信号处理器DSP或任何其它专用集成电路ASIC或SoC。存储器子系统106包括由计算系统100使用的存储器装置,诸如随机存取存储器RAM模块、只读存储器ROM模块、硬盘和其它非暂时性计算机可读介质。包括在存储器子系统106中的存储器用作计算系统100中的主存储器。其它类型的存储器可以包括在计算系统100中的存储器子系统106中或其它地方。例如,高速缓存存储器和寄存器也可以存在于处理单元104中或计算系统100的其它部件上。图2示出了实现为双插槽系统的处理单元104的实施方案,以及包括在存储器子系统106中的存储器230。在处理单元104中,插槽201和202中的每一者包含SoC例如,多核心芯片、APU等并通过外部处理器链路240彼此连接。在一个实施方案中,用于实现外部处理器链路240的接口可以是开放标准诸如HyperTransport、专有接口诸如QuickPath互连QPI或一些其它类似接口。当插槽201和202两者包含来自同一个设计者的SoC时,SoC可以被设计成彼此合作以公平地共享链路240的带宽。然而,在一个实施方案中,双插槽系统将主机SoC210与来自不同的设计者的非受信任外部装置220连接。因此,可能不会保证装置220的关于可用带宽的公平消耗的合作行为。然而,非受信任装置220仍然能够跨链路240发出存储器请求例如,存储器读出和写入请求和其它消息或事务例如,存储器转换请求。在一个实施方案中,主机SoC210连接到存储器230。存储器230是存储器子系统106的一部分。在一些实施方案中,存储器230可以表示外围装置中的存储器,诸如输入装置或通信装置。存储器230由外部装置220经由指向存储器230的存储器请求和通过主机SoC210传输的其它消息来访问。例如,外部装置220向主机SoC210发出存储器请求,以致使主机SoC210从存储器230读出或向存储器230写入。对于来自外部装置220的读出请求,主机SoC210通过将从存储器230读出的数据返回到外部装置220来响应读出请求。外部装置220还使用相同路径来执行对存储器230的存储器转换请求,其中主机SoC210通过将转换的存储器地址返回到外部装置来响应存储器转换请求。外部装置220与主机SoC210之间的这些通信通过外部处理器链路240传输,外部处理器链路240使用HT、QPI或其它技术实现。外部处理器链路还包括流控制逻辑211以用于调节来自外部装置220的流量。在一个实施方案中,主机SoC210包括输入缓冲器或其它硬件资源,以用于管理来自外部装置220的传入消息;因此,流控制逻辑211基于输入缓冲器和其它硬件资源的容量而调节来自外部装置220的消息流量,以防止外部装置220超过这些硬件资源的容量。在一个实施方案中,流控制逻辑211实现基于信用的流控制机制,基于信用的流控制机制将信用传输到外部装置220,以指示在主机SoC210处的可用输入缓冲器数目。然后外部装置220发送对应于接收到的信用数目的多个消息。主机SoC210包括片上网络NoC213,NoC213是用于在主机SoC210的内部块例如,块214和215之间传输本地流量的片上互连。NoC213还载送来自外部装置220的指向存储器230的消息例如,存储器请求和来自存储器230的正返回到外部装置220的数据。例如,在来自外部装置220的指向存储器230的消息接收在存储器230处之前,通过外部处理器链路240、流控制逻辑211、流量控制器212和NoC213传输这些消息。来自存储器230的数据例如,响应于读出请求而读出的数据通过相同路径返回到外部装置220。因此,如果外部装置220发出太多存储器请求,那么NoC213可能变得拥塞。因此,来自主机SoC210的内部块例如,块214至215的本地流量可能因NoC213中的拥塞和或因存储器230处的排队延迟而经历性能下降。因此,一个实施方案可以包括与主机SoC210在相同集成电路芯片上的流量控制器212。流量控制器212连接到外部处理器链路240并执行若干功能,包括监测在一组一个或多个时间间隔内从非受信任外部装置220接收到的消息或字节数目,基于消息数目而检测对流量策略的违反,并且当已经违反流量策略时,减少NoC213中因来自非受信任装置220的消息产生的流量。图3示出了流量控制器212的一个实施方案。流量控制器212包括:监测模块310,该监测模块310用于经由外部处理器链路240动态地监测通向外部装置220和来自外部装置220的流量;估计模块320,该估计模块320用于确定观察到的流量是否违反预定义流量策略;以及限流逻辑330,该限流逻辑330用于进行限流或以其它方式减少由源自外部装置220的过量流量导致的不期望的影响。通过模块310、320和330的操作,流量控制器212通过确定从非受信任外部装置220传输到主机SoC210的消息或字节数目是否超过多个连续时间间隔中的每一者的最大阈值来检测对预定流量策略的违反。监测模块310监测跨外部处理器链路240通向外部装置220和来自外部装置220的流量。在一个实施方案中,监测模块310对由外部装置220发送的消息数目进行计数;或者,监测模块310可以跟踪一些其它度量,诸如所发送的字节数目。因此,计数器311对在连续时间间隔中的每一者内由外部装置220经由外部处理器链路240发送的消息或字节数目进行计数。监测模块310包括用于定义时间间隔的计时器313。在每个间隔的开始,计时器313将计数器311重置为零。随着经过时间间隔,计数器311监测通向外部装置220和来自外部装置220的总流量;例如,计数器311可以针对在外部处理器链路240处从外部装置接收到的每个消息递增。在可选实施方案中,计数器311可以针对向外部装置传输和从外部装置接收的消息递增。计数寄存器312包括寄存器312-1、312-2、……、312-N是逻辑上作为循环移位缓冲器操作的移位寄存器,每个寄存器用于存储时间间隔中的一个时间间隔的计数值。因此,当计时器313指示已经经过时间间隔时,计数器311中的计数值其指示针对当前时间间隔观察到的消息或字节数目存储在计数寄存器312中的当前选定一者中。在将当前计数值存储在当前选定寄存器例如,寄存器312-1中之后,计时器313选择一组计数寄存器312中的下一寄存器例如,寄存器312-2。在选择最后一个寄存器312-N之后,经过时间间隔致使第一寄存器312-1被再次选择并重写。因此,计数寄存器312中的每一者存储一组N个最近时间间隔中的一个最近时间间隔的计数值。估计模块320包括加法器逻辑321,加法器逻辑321基于寄存器312中的计数值而计算和、平均值或其它度量。然后将加法器逻辑321的输出与对应时间间隔的阈值进行比较。在一个实施方案中,加法器逻辑321可以仅选择寄存器312中的一者例如,对应于最近经过的时间间隔的寄存器以与该间隔的阈值进行比较。或者,加法器逻辑321可以被配置为计算在N个最近时间间隔的滑动窗内来自非受信任外部装置220的平均消息数目。例如,在连续时间间隔中的每一者到期时,加法器逻辑321可以由计时器313触发以计算这个基于时间的移动平均值。因此,对于每个时间间隔,加法器逻辑321计算当前存储在寄存器312中的N个计数值的平均值。对于N是2的幂的实现方式,计算平均值是简单的,因为通过仅降寄存器的和的log2N最低有效位来有效地完成除以N。在一些情况下,过去行为不如最近行为重要;因此,对早期时间间隔的测量的计数值进行加权以减少它们对总和的输入。在一种配置中,加法器逻辑321计算寄存器312中的计数值的时间加权的平均值。如果N个最近计数值被表示为x0、x1、……、xN-1,那么未加权的移动平均值可以被表达为:指数加权的移动平均值是由以下等式表达,其中α是大于零且小于一的值:在α是2的幂例如12的情况下,硬件开销可以从N个寄存器减少到只有两个寄存器。图4示出了根据一个实施方案的实现时间加权的平均值的加法器逻辑321和两个寄存器312-1和312-2,其中α=12。寄存器312-1存储N-1个先前间隔的时间加权和,并且寄存器312-2存储最近第N时间间隔的计数值,如计数器311所确定。在当前时间间隔结束时,寄存器312-1中的值由位移位器401除以2并经由加法器402加到来自寄存器312-2的计数值。将来自加法器402的新的时间加权和存储回寄存器312-1。然后将寄存器312-2重置为零以开始对下一间隔进行计数。然后通过将寄存器312-1中的新的时间加权和除以N来计算新的时间加权的平均值。返回参考图3,估计模块320包括比较逻辑324,比较逻辑324具有连接到配置寄存器322的输入,配置寄存器322存储N个时间间隔中的每一者的最大阈值。在替代实施方案中,配置寄存器322存储所有N个时间间隔的一个阈值。给定时间间隔的最大阈值指示在不违反流量策略的情况下在时间间隔期间可跨外部处理器链路240从非受信任外部装置220接收的最大消息数目或最大字节数目。在替代实施方案中,最大阈值也适用于从主机SoC210传输到外部装置220的消息或字节数目,或可适用于向外部装置220传输和从外部装置220接收的消息或字节数目。在流量控制器212中,最大阈值可由软件编程例如,由固件设定,或由在计算系统100上执行的操作系统指定。在替代实施方案中,阈值可以在制造时进行编程,或可以是硬连线值。配置寄存器322中的阈值可器经由配置模块326编程,配置模块326包括用于配置存储在寄存322中的值的配置逻辑。配置模块326响应于接收到指示一个或多个新的最大阈值的重新配置请求325而将一个或多个新的阈值存储在配置寄存器322中。重新配置请求325是由主机SoC210发出,或可以可选地由外部装置或过程发出,诸如计算系统100中的另一个SoC或在另一个SoC上执行的过程。在一个实施方案中,阈值仅可由受信任装置或软件编程。因此,配置模块326验证请求325以确保请求325来自受信任实体,并且响应于成功验证而仅更新配置寄存器322。因此,配置模块326响应于无法验证请求325而丢弃或忽略请求325。受信任软件的示例包括固件、操作系统或由其它受信任系统加密地签名和验证的其它软件。在一个实施方案中,流量控制器212的其它参数,诸如时间间隔的持续时间,也由类似的请求和验证机制配置。比较逻辑324将加法器逻辑321的输出表示和、平均值、时间加权的平均值或从寄存器312计算的其它度量与对应于最近完成的时间间隔的最大阈值进行比较,如配置寄存器322所提供。如果加法器逻辑321输出超过最大阈值,那么比较逻辑324断言其输出。比较逻辑324的输出连接到限流逻辑330。在一个实施方案中,比较逻辑324的输出向限流逻辑330指示超过阈值的消息或字节数目。当比较逻辑324的输出因此指示因通向和或来自非受信任外部装置220的过多流量而导致的对流量策略的违反时,限流逻辑330限制在预定时段内通向和或来自外部装置220的流量。一种用于限制外部装置220的流量的方法是将来自外部装置220的流量限流到预定义低水平,从而仅允许来自外部装置220的少量消息访问NoC213。这使得外部装置220能够继续转发进度,但是其使用通向来自主机SoC的外部处理器链路220接口的能力降低。确切限流水平还可通过来自受信任装置或软件的经过验证的重新配置请求进行配置。在一些实施方案中,可以设定限流水平,使得不向外部装置220发送或从外部装置220接收消息,直到经过当前间隔。特别地,可以在流量控制器212使用相对短的间隔长度时使用该方法,以便避免外部装置的长期匮乏。在使用基于信用的流控制机制的一个实施方案中,主机SoC210通过限制返回到外部装置220的信用数目来对来自外部装置220的流量进行限流,直到已经经过当前时间间隔。在一个实施方案中,外部装置220不仅针对当前间隔的剩余部分进行限流,而还针对下面M个间隔进行限流。在一个实施方案中,限流水平逐渐地放宽并在M个间隔内变得不太受限,以允许来自外部装置220的流量最终地返回到其正常的不受限制的水平。类似于其它参数,M的值和放宽速率可通过来自受信任装置或过程的经过验证的重新配置请求来配置。在一个实施方案中,限流逻辑330通过使下一后续时间间隔的最大阈值减小了对应于当前时间间隔的计数值和最大阈值之间的差值的量来对来自外部装置220的流量进行限流。在一个实施方案中,限流逻辑330使对应于下一时间间隔的阈值递减了计算的差值。或者,用于实现相同效果的另一种方法是,在当前时间间隔结束时,使计数器311递减了阈值量,而不是将计数器重置为零。例如,计数值12超过阈值量10,以造成违反。因此,使计数值12递减了阈值量10,以留下下一间隔的初始计数值2。在下一间隔中,外部装置220可以在超过阈值之前发送多于8个消息。实际上,超过流量阈值的外部装置220将在下一间隔中更快地达到阈值,因为其计数器以大于零的值开始。因此,在当前时间间隔中对流量策略的违反有效地造成下一后续时间间隔的阈值的减小,使得外部装置能够从下一间隔“借用”流量信用。然后在下一间隔开始时偿还欠偿。在一个实施方案中,流量控制器212允许外部装置220即使在违反流量策略之后也继续与主机SoC210通信,但是对在达到阈值之后已经接受的流量的量消息、字节等的数目进行计数。超过阈值的该量被记录为外部装置在后续时间间隔期间偿还的欠偿。当NoC213或存储器230在后续时间间隔期间变得拥塞时,流量控制器212对来自外部装置220的流量进行限流。对于来自外部装置220的消息因限流而被主机SoC210延迟的每个时间间隔,外部装置220的欠偿减少了可配置量R.流量控制器212还实现基于时间的欠偿免除以防止外部装置220陷入不可恢复的欠偿。在一个实施方案中,流量控制器212每隔C个时间间隔使当前欠偿减少了因数β。例如,其中β是0.5,并且C是10,欠偿将每隔十分之一间隔就减半。除了监测跨外部处理器链路240接口通向外部装置220和来自外部装置220的流量之外,流量控制器212还包括本地流量监测器340,本地流量监测器340监测因本地流量造成的NoC213中的流量水平。监测到的本地流量包括主机SoC210的内部块例如,内部块214和215之间的流量、从主机SoC210的计算单元例如,中央处理单元或图形处理单元到NoC213中的流量、通向主机SoC210的存储器系统或来自主机SoC210的存储器系统的流量,或其它本地流量度量。本地流量监测器340向限流逻辑330提供关于本地流量水平的信息,使得在NoC213具有足够的带宽来服务本地流量和来自外部装置220的流量时的时间期间,限流逻辑330能够避免不必要地对来自外部装置220的流量进行限流。例如,如果主机SoC210在很大程度上空闲例如,它已经将工作卸载到外部装置220,那么该机制允许外部装置220以尽可能高的速率将流量注入回主机SoC210,以允许外部装置220最大化其性能。换句话说,如果主机SoC210的本地流量需求足够低,那么流量控制器212允许外部装置220继续以高速率发出请求,即使外部装置220本来是会超过正常每一间隔时间或移动平均值阈值。在一个实施方案中,本地流量监测器340包括一个或多个计数器以用于对在每个时间间隔内源自主机SoC210的经由NoC213传输的消息和或字节数目进行计数。基于这些本地流量计数值,本地流量监测器340然后确定NoC213中的本地流量是否超过本地流量阈值。当本地流量超过本地流量阈值时,本地流量监测器使得限流逻辑330能够在外部装置220违反流量策略时减少因外部装置220产生的流量。如上所述,流量控制器212调节通向外部装置220和来自外部装置220的流量,外部装置220在与主机SoC210分开的集成电路封装中实现。在替代实施方案中,在流量控制器212中实现的机制用于调节通向与主机系统相同的集成电路封装内的非受信任块和来自该非受信任块的流量。例如,一些SoC设计包含来自第三方设计者的非受信任块,其中不能保证这些块的合作行为。在这种情况下,由流量控制器212实现的相同监测和限制机制被应用于将非受信任内部块连接到NoC213的片上互连,以确保非受信任块不会导致因过量消息造成的性能问题诸如像DOS的行为。在替代实施方案中,使用多芯片模块MCM技术和或基于硅插入器的集成2.5D堆叠将多个芯片封装在一起,其中可以从第三方设计者供应一个或多个芯片。这种封装将在芯片例如,HT、高级可扩展接口AXI等之间提供某种形式的互连,流量控制器212的流量控制机制应用在这种互连上。图5是示出用于对来自非受信任外部装置的流量进行限流的过程500的流程图。过程500的操作由流量控制器212和计算系统100的其它部件执行。过程500开始于框501。在框501处,主机SoC210的内部块例如,块214和215通过在NoC213上彼此传输本地流量来彼此通信。NoC213还用于在外部装置220与存储器230之间、或在外部装置220与主机SoC210的内部块之间载送消息。从框501,过程500在框511处继续。在框511处,流量控制器212确定是否已经在配置模块326处接收到重新配置请求325。重新配置请求325源自主机SoC210、连接到主机SoC210的外部装置或一些其它装置或过程。重新配置请求325指定流量控制器212的一个或多个操作参数的新的值,诸如本地流量阈值、外部装置220的最大流量阈值、在流量策略违反之后对外部装置220进行限流的间隔数目M等。重新配置请求325还用于选择由流量控制器212实现的限流方法例如,M个间隔的限流、欠偿应计和偿还等。在框513处,配置模块326验证重新配置请求325以确定请求325是否源自被允许重新配置流量控制器212的受信任装置。如果验证成功,那么配置模块326根据请求325来改变配置框515。例如,当配置模块326成功地验证请求来自外部装置220的流量的最大阈值的变化的重新配置请求325时,配置模块326在成功地验证请求325之后用请求325中指示的新的值更新存储在寄存器322中的阈值。在框513处,如果重新配置请求325未被成功地验证,那么配置模块326忽略请求517并且不更新寄存器322。从框515或框517,过程500在框521处继续。在框521处,本地流量监测器340确定NoC213中的本地流量即,主机SoC210的内部块之间的流量是否超过本地流量阈值。本地流量监测器对本地消息的数目、或所传输的字节数目进行计数;如果该计数值不超过本地流量阈值,那么在框523处禁用限流逻辑。由于本地流量需求低,因此NoC213具有足够的带宽来服务来自外部装置220的流量,而不必监测来自外部装置220的过量流量并对其进行限流。因此,在框501处继续经由NoC213从外部装置220传输消息,其中禁用限流。在框521处,如果本地流量计数值超过本地流量阈值,那么在框531处,本地流量监测器340启用限流逻辑330。在框533处,继续传输本地流量和来自外部装置220的流量,其中启用限流逻辑330。在启用限流逻辑330的情况下,流量控制器212监测来自外部装置220的流量,并且响应于检测到对流量策略的违反而减少NoC213中因外部装置220产生的流量的量。从框533,过程500在框535处继续。在框535处,如果没有在主机SoC210处经由外部处理器链路240从外部装置220接收到消息,那么过程500继续回到框521。如果在框535处,一个或多个消息来自外部装置220,那么计数器311递增了接收到的消息或字节的数目框537。从框537,过程500在框539处继续。在框539处,如果尚未到达当前时间间隔结束,那么过程500继续回到框533;因此,框533至539重复,直到当前时间间隔结束。通过重复框533至539,流量控制器212监测当前时间间隔的从非受信任外部装置220接收到的消息数目。在时间间隔结束时,如计时器313所指示,过程500从框539继续到框541。在框541处,流量控制器212的各种部件针对最近经过的时间间隔更新它们的计算值。例如,加法器逻辑321计算在N个最近时间间隔的窗内来自非受信任外部装置220的消息的和或平均数目。取决于所使用的限流方法,还针对每个经过的时间间隔执行其它计算;例如,在寄存器312中的一者中存储该间隔的最终计数值,在加法器逻辑321中计算N个时间间隔的计数值的和或平均值,计算过去违反的剩余欠偿和剩余限流时间。从框541,过程500在框543处继续。在框543处,比较逻辑324基于N个间隔的计数值的所计算的和或平均值而检测是否已经发生对流量策略的违反。比较逻辑324将和或平均值与对应于经过的时间间隔的最大阈值进行比较,如配置寄存器322所提供。如果超过最大阈值,那么已经发生对流量策略的违反,并且过程500在框545处继续。在框545处,流量控制器212通过开始对来自非受信任外部装置220的流量进行限流来响应违反。限流减少NoC213中因在预定时段例如,M个间隔内来自非受信任外部装置220的消息产生的流量。由限流逻辑330执行的特定动作取决于所使用的限流机制;在一个实施方案中,在配置寄存器322中指定限流机制。如前所述,一种节流机制使下一后续时间间隔的最大阈值减小了对应于该间隔的计数的消息或字节数目与该时间间隔的最大阈值之间的差值的量。根据该方案,限流逻辑330使计数器311递减了阈值量而不是将计数器311重置为零。先前描述的另一种限流机制是欠偿应计和偿还机制。根据该方案,在框545处的限流逻辑330分别响应于流量政策违反和经过的时间而开始应计和减少欠偿。在替代配置和实施方案中,在框545处执行用于减少NoC213中因来自外部装置220的消息产生的流量的其它动作。在框543处,如果尚未超过最近经过的时间间隔的最大阈值,那么过程500在框547处继续。在框547处,限流逻辑估计多个状况中的任一者取决于所使用的限流机制以确定是否结束限流。例如,当在已经发生流量策略违反之后实现限制M个时间间隔的来自外部装置220的流量的限流方法时,如果已经经过M个间隔,那么限流逻辑330结束限流。当实现包括欠偿应计和偿还机制的限流方法时,如果已经偿还与外部装置220相关联的欠偿,那么限流逻辑330结束限流。因此,对于其它限流方法,基于其它标准而结束限流。如果不满足结束限流的标准,那么在框545处继续限流。从框545,过程500还在框501处继续,其中继续传输本地流量和来自外部装置220的流量,其中限流生效。如果在框547处满足标准,那么在框549处结束限流,并且过程500还在框501处继续,其中继续传输本地流量和来自外部装置220的流量而不对外部装置220进行限流。因此,当本地流量低即,低于本地流量阈值时,过程500循环通过框501、511、521和523,以服务本地流量和来自非受信任外部装置220的外部流量而不监测外部流量并对其进行限流。当本地流量高即,高于本地流量阈值时,过程500循环通过框501、511、521和531至549,以监测在一组一个或多个时间间隔内来自外部装置220的外部流量,并且响应于检测到外部流量对流量策略的违反而减少NoC213中的流量。因此,如上所述的处理单元包括:主机片上系统SoC,该SoC包括片上网络NoC,该NoC被配置为在SoC的内部块之间传输本地流量;外部处理器链路,该外部处理器链路被配置为在主机SoC处从非受信任装置接收消息;以及流量控制器,该流量控制器连接到外部处理器链路。流量控制器被配置为监测在一组时间间隔内来自非受信任装置的外部流量的量,基于外部流量的量而检测对流量策略的违反,并且响应于检测到违反,减少NoC中因来自非受信任装置的消息产生的流量。特别地,流量控制器通过确定在给定时间间隔期间从非受信任装置传输到主机SoC的消息数目是否超过该时间间隔的最大阈值来检测对流量策略的违反。流量控制器包括消息计数器,该消息计数器响应于经由外部处理器链路从非受信任装置接收到的每个消息而递增,并且响应于经过给定时间间隔而重置。流量控制器另外包括配置逻辑,该配置逻辑可以接收对改变最大阈值的请求。配置逻辑响应于验证请求而根据请求来改变最大阈值,或响应于无法验证请求而忽略请求。流量控制器还被配置为响应于确定从非受信任装置传输到主机SoC的消息数目超过给定时间间隔的最大阈值,减小后续时间间隔的最大阈值。流量控制器使后续时间间隔的最大阈值减小了对应于在给定时间间隔期间接收到的消息数目与给定时间间隔的最大阈值之间的差值的量。流量控制器通过以下方式来检测对流量策略的违反:计算在N个最近时间间隔的窗内来自非受信任装置的平均消息数目,并且确定平均数目超过最大阈值。流量控制器另外包括在移位缓冲器中的多个寄存器。寄存器中的每一者存储在与寄存器相关联的N个最近时间间隔中的一个时间间隔内的消息数目。流量控制器还包括加法器以对寄存器中的存储的数目求和。流量控制器包括第一寄存器和第二寄存器,第一寄存器存储在N个最近时间间隔中的N-1个先前时间间隔中的每一者内检测到的消息数目的时间加权和,第二寄存器存储在N个最近时间间隔中的一个最近时间间隔内检测到的消息数目。流量控制器还包括逻辑以通过将第二寄存器中的数目与第一寄存器中的时间加权和的位移位版本相加来计算新的时间加权和。流量控制器还包括限流逻辑,该限流逻辑通过限制在预定时段内来自非受信任装置的流量来减少NoC中的流量。流量控制器还包括本地流量监测器,该本地流量监测器确定本地流量是否超过本地流量阈值。流量控制器响应于在本地流量超过本地流量阈值时检测到违反而减少NoC中的流量。一种用于对来自非受信任装置的流量进行限流的方法包括:经由主机片上系统SoC中的片上网络NoC在主机SoC的内部块之间传输本地流量;经由外部处理器链路在主机SoC处从非受信任装置接收消息;监测在一组一个或多个时间间隔内来自非受信任装置的外部流量的量;基于外部流量的量而检测对流量策略的违反,以及响应于检测到违反,减少NoC中因来自非受信任装置的消息产生的流量。检测对流量策略的违反另外包括确定在一组时间间隔中的歌顶时间间隔期间从非受信任装置传输到主机SoC的消息数目是否超过该时间间隔的最大阈值。用于对来自非受信任装置的流量进行限流的方法另外包括:从外部装置接收对改变最大阈值的请求;响应于验证请求而根据请求来改变最大阈值;以及响应于无法验证请求而忽略请求。该方法另外包括响应于确定从非受信任装置传输到主机SoC的消息数目超过给定时间间隔的最大阈值,使后续时间间隔的最大阈值减小了对应于消息数目与给定时间间隔的最大阈值之间的差值的量。检测对流量策略的违反包括:计算在一组时间间隔中的N个最近时间间隔的窗内来自非受信任装置的平均消息数目,并且确定平均数目超过最大阈值。用于对来自非受信任装置的流量进行限流的方法另外包括通过限制在预定时段内来自非受信任装置的流量来减少NoC中的流量。该方法另外包括确定本地流量是否超过本地流量阈值,并且响应于在本地流量超过本地流量阈值时检测到违反而减少NoC中的流量。包括非受信任装置的计算机系统另外包括存储器、连接到存储器并经由外部处理器链路连接到非受信任装置的主机片上系统SoC,外部处理器链路在主机SoC处从非受信任装置接收消息。主机SoC响应于来自非受信任装置的消息而将数据从存储器传输到非受信任装置。主机SoC另外包括:片上网络NoC,该NoC被配置为在SoC的内部块之间传输本地流量;以及流量控制器,该流量控制器与外部处理器链路耦合。流量控制器监测在一组一个或多个时间间隔内来自非受信任装置的外部流量的量,基于外部流量的量而检测对流量策略的违反,并且响应检测到违反,减少NoC中因来自非受信任装置的消息产生的流量。流量控制器与主机SoC位于单个集成电路芯片上。外部处理器链路另外包括流控制逻辑,该流控制逻辑基于外部处理器链路的缓冲容量而调节来自非受信任装置的流量。来自非受信任装置的消息包括读出请求、写入请求和指向存储器的地址转换请求。如本文所使用,术语“耦合到”可以表示通过一个或多个居间部件直接地或间接地耦合。通过本文所述的各种总线提供的信号中的任一者可以用其它信号来进行时间复用并通过一个或多个公共总线提供。另外,电路部件或块之间的互连可以被示出为总线或单信号线。总线中的每一者可以可选地是一个或多个单信号线,并且单信号线中的每一者可以可选地是总线。某些实施方案可以被实现为计算机程序产品,其可以包括存储在非暂时性计算机可读介质上的指令。这些指令可以用于对通用或专用处理器进行编程以执行所描述的操作。计算机可读介质包括用于存储或传输以机器例如,计算机可读形式例如,软件、处理应用程序的信息的任何机构。非暂时性计算机可读存储介质可以包括但不限于:磁性存储介质例如,软盘;光学存储介质例如,CD-ROM;磁光存储介质;只读存储器ROM;随机存取存储器RAM;可擦除可编程存储器例如,EPROM和EEPROM;快闪存储器;适用于存储电子指令的其它类型的介质。另外,一些实施方案可以在分布式计算环境中实践,其中计算机可读介质存储在多于一个计算机系统上和或由多于一个计算机系统执行。另外,可以跨连接计算机系统的传输媒体来拉或推在计算机系统之间传送的信息。一般地,在计算机可读存储介质上承载的表示主机SoC210和或其部分的数据结构可以是数据库或其它数据结构,其可以由程序读出并直接地或间接地用于制造包括主机SoC210的硬件。例如,数据结构可以是以高级设计语言HDL诸如Verilog或VHDL对硬件功能性的行为级描述或寄存器传送级RTL描述。描述可以由综合工具读出,综合工具可以将描述综合以产生包括来自综合库的门列表的网表。网表包括一组门,它们也代表包括主机SoC210的硬件的功能性。然后可以放置并路由网表以产生描述要应用于掩模的几何形状的数据集。然后可以将掩模用于各种半导体制造步骤中以产生对应于主机SoC210的一个或多个半导体电路。或者,按照需要,计算机可读存储介质上的数据库可以是网表有或没有综合库或数据集,或是图形数据系统GDSII数据。虽然本文中的方法的操作以特定顺序示出和描述,但是每种方法的操作的顺序可以更改,使得能够以逆序执行某些操作,或使得可以与其它操作至少部分地同时执行某些操作。在另一个实施方案中,不同操作的指令或子操作可以以间歇方式和或交替方式进行。在前述的说明书中,已经参考其特定示例性实施方案对实施方案进行描述。然而,将清楚,在不脱离如所附权利要求中阐述的实施方案的更广泛的范围的情况下,可以对其做出各种修改和改变。因此,本说明书和附图应被视为说明性意义而不是限制性意义。

权利要求:1.一种设备,所述设备包括:主机片上系统SoC,所述SoC包括片上网络NoC,所述NoC被配置为在所述SoC的内部块之间传输本地流量;外部处理器链路,所述外部处理器链路被配置为在所述主机SoC处从非受信任装置接收消息;流量控制器,所述流量控制器与所述外部处理器链路耦合并被配置为:监测在一组一个或多个时间间隔内来自所述非受信任装置的外部流量的量,基于外部流量的所述量而检测对流量策略的违反,以及响应于检测到所述违反,减少所述NoC中因来自所述非受信任装置的所述消息产生的流量。2.如权利要求1所述的设备,其中所述流量控制器被配置为通过确定在所述一组时间间隔中的第一时间间隔期间从所述非受信任装置传输到所述主机SoC的消息数目是否超过所述第一时间间隔的最大阈值来检测对所述流量策略的所述违反。3.如权利要求2所述的设备,其中所述流量控制器包括消息计数器,所述消息计数器被配置为:响应于在所述外部处理器链路处接收到的来自所述非受信任装置的每个消息而递增,以及响应于经过所述第一时间间隔而重置。4.如权利要求2所述的设备,其中所述流量控制器还包括配置逻辑,所述配置逻辑被配置为:接收对改变所述最大阈值的请求,响应于验证所述请求而根据所述请求来改变所述最大阈值,以及响应于无法验证所述请求而忽略所述请求。5.如权利要求2所述的设备,其中所述流量控制器还被配置为:响应于确定从所述非受信任装置传输到所述主机SoC的所述消息数目超过所述第一时间间隔的所述最大阈值,使后续时间间隔的最大阈值减小了对应于所述消息数目与所述第一时间间隔的所述最大阈值之间的差值的量。6.如权利要求1所述的设备,其中所述流量控制器被配置为通过以下方式来检测对所述流量策略的所述违反:计算在所述一组时间间隔中的N个最近时间间隔的窗内来自所述非受信任装置的平均消息数目,并且确定所述平均数目超过最大阈值。7.如权利要求6所述的设备,其中所述流量控制器包括:在移位缓冲器中的多个寄存器,其中所述多个寄存器中的每个寄存器被配置为存储在所述N个最近时间间隔中的与所述寄存器相关联的一个时间间隔内的消息数目,以及加法器,所述加法器被配置为对所述多个寄存器中的存储的数目求和。8.如权利要求6所述的设备,其中所述流量控制器包括:第一寄存器,所述第一寄存器被配置为存储在所述N个最近时间间隔中的N-1个先前时间间隔中的每一者内检测到的消息数目的时间加权和;第二寄存器,所述第二寄存器被配置为存储在所述N个最近时间间隔中的一个最近时间间隔内检测到的消息数目;以及逻辑,所述逻辑被配置为通过将所述第二寄存器中的数目与所述第一寄存器中的所述时间加权和的位移位版本相加来计算新的时间加权和。9.如权利要求1所述的设备,其中所述流量控制器还包括限流逻辑,所述限流逻辑被配置为通过限制在预定时段内来自所述非受信任装置的流量来减少所述NoC中的所述流量。10.如权利要求1所述的设备,其中:所述流量控制器还包括本地流量监测器,所述本地流量监测器被配置为确定所述本地流量是否超过本地流量阈值,并且所述流量控制器还被配置为响应于在所述本地流量超过所述本地流量阈值时检测到所述违反而减少所述NoC中的所述流量。11.一种方法,所述方法包括:经由主机片上系统SoC中的片上网络NoC在所述主机SoC的内部块之间传输本地流量;经由外部处理器链路在所述主机SoC处从非受信任装置接收消息;监测在一组一个或多个时间间隔内来自所述非受信任装置的外部流量的量;基于外部流量的所述量而检测对流量策略的违反;以及响应于检测到所述违反,减少所述NoC中因来自所述非受信任装置的所述消息产生的流量。12.如权利要求11所述的方法,其中检测对所述流量策略的所述违反还包括确定在所述一组时间间隔中的第一时间间隔期间从所述非受信任装置传输到所述主机SoC的消息数目是否超过所述第一时间间隔的最大阈值。13.如权利要求12所述的方法,所述方法还包括:从外部装置接收对改变所述最大阈值的请求,响应于验证所述请求而根据所述请求来改变所述最大阈值,以及响应于无法验证所述请求而忽略所述请求。14.如权利要求12所述的方法,所述方法还包括响应于确定从所述非受信任装置传输到所述主机SoC的所述消息数目超过所述第一时间间隔的所述最大阈值,使后续时间间隔的最大阈值减小了对应于所述消息数目与所述第一时间间隔的所述最大阈值之间的差值的量。15.如权利要求11所述的方法,其中检测对所述流量策略的所述违反包括:计算在所述一组时间间隔中的N个最近时间间隔的窗内来自所述非受信任装置的平均消息数目,以及确定所述平均数目超过最大阈值。16.如权利要求15所述的方法,所述方法还包括通过限制在预定时段内来自所述非受信任装置的流量来减少所述NoC中的所述流量。17.如权利要求11所述的方法,所述方法还包括:确定所述本地流量是否超过本地流量阈值;以及响应于在所述本地流量超过所述本地流量阈值时检测到所述违反而减少所述NoC中的所述流量。18.一种系统,所述系统包括:非受信任装置;存储器;主机片上系统SoC,所述SoC与所述存储器耦合并经由外部处理器链路与所述非受信任装置耦合,其中所述外部处理器链路被配置为在所述主机SoC处从所述非受信任装置接收消息,并且其中所述主机SoC被配置为响应于来自所述非受信任装置的消息而将数据从所述存储器传输到所述非受信任装置,所述主机SoC还包括:片上网络NoC,所述NoC被配置为在所述SoC的内部块之间传输本地流量;以及流量控制器,所述流量控制器与所述外部处理器链路耦合并被配置为:监测在一组一个或多个时间间隔内来自所述非受信任装置的外部流量的量,基于外部流量的所述量而检测对流量策略的违反,以及响应于检测到所述违反,减少所述NoC中因来自所述非受信任装置的所述消息产生的流量。19.如权利要求18所述的系统,其中所述外部处理器链路还包括流控制逻辑,所述流控制逻辑被配置为基于所述外部处理器链路的缓冲容量而调节来自所述非受信任装置的所述流量。20.如权利要求18所述的系统,其中所述流量控制器与所述主机SoC位于单个集成电路芯片上。21.如权利要求18所述的系统,其中来自所述非受信任装置的所述消息包括读出请求、写入请求和指向所述存储器的地址转换请求。

百度查询: 超威半导体公司 用于对非受信任互连代理进行限流的机制

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。