CN103493440A - 集成电路装置和执行直通转发的方法 - Google Patents
集成电路装置和执行直通转发的方法 Download PDFInfo
- Publication number
- CN103493440A CN103493440A CN201180070254.5A CN201180070254A CN103493440A CN 103493440 A CN103493440 A CN 103493440A CN 201180070254 A CN201180070254 A CN 201180070254A CN 103493440 A CN103493440 A CN 103493440A
- Authority
- CN
- China
- Prior art keywords
- thread
- request
- priority
- controller unit
- integrated circuit
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/623—Weighted service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1546—Non-blocking multistage, e.g. Clos using pipelined operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/251—Cut-through or wormhole routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/256—Routing or path finding in ATM switching fabrics
- H04L49/257—Cut-through or wormhole routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/40—Wormhole routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
集成电路装置(205)包括至少一个直通转发模块(200)。所述直通转发模块(200)包括至少一个被布置成接收要被转发的数据的接收器组件(210),并且一旦接收到,产生用于传输数据块的请求(212),以及至少一个控制器单元(220)被布置成执行用于处理所述至少一个接收器组件(210)生成的请求的至少一个线程(225、310、320、330、340、350)。所述至少一个控制器单元(220)被布置成设置所述至少一个线程(225、310、320、330、340、350)的优先级上下文,并且至少部分基于所述优先级上下文调度所述至少一个线程。
Description
技术领域
本发明涉及集成电路装置和执行分组数据的直通转发的方法。
背景技术
在计算机网络领域中,直通转发,也被称为直通交换,是一种用于分组交换系统的交换方法,其中网络交换机在整个帧被网络交换机接收之前开始转发帧(或分组)。在目的地地址被处理后,这种转发操作通常尽可能早被执行。以这种方式,直通转发显著降低了通过交换机的等待时间。使用直通转发是分组导向的确定性自动化系统的重要特征。此外,这种系统的实施在工业市场中不断拓展,并且该项技术也日益渗透到家庭、医疗和汽车应用的解决方案。
直通转发系统通常要求严格控制交换机的等待时间(即在交换机接收的数据和该数据随后被交换机传输(转发)之间的延迟)和抖动(即连续帧的传输之间时间段的方差)以确保确定的行为和可伸缩性。通常,这种等待时间/抖动要求在不同的直通“模式”(例如不同的数据分组交换协议)之间是不同的。例如,这种直通模式可能包括,例如EtherNet协议,诸如EtherCAT(控制自动化技术的EtherNet)、ProfiNET、Ethernet/IP、DLR(装置级环网技术)或IP业务的直通交换。控制等待时间和抖动对于包括EtherNet帧等等的直通转发模式特别重要,其中帧不可预知地被间隔并且可以是按秒间隔或背靠背,这有别于有可预知帧间隔的IP语音(VoIP)。为了使直通交换机在市场上更有竞争力,它必须能够在多个直通交换模式中支持这种确定性的行为和可伸缩性。
传统上,等待时间和抖动的紧密控制是由专用硬件块提供的,其被布置成满足特定等待时间和抖动要求。在单一的装置上使用这种专用硬件块导致了相对昂贵和不灵活的解决方案。特别是,为了使给定交换机能够满足一个以上的直通模式的要求,每个直通模式就需要分离的专用硬件块,从而对于交换机来说,导致了显著的成本增加、功耗以及不动产需求。
发明内容
正如附属权利要求中所描述的,本发明提供了一种集成电路装置和一种执行分组数据的直通确定性转发的方法。
本发明的具体实施例在附属权利要求中被陈述。
根据下文中描述的实施例,本发明的这些或其它方面将会很明显并且被阐述。
附图说明
根据附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的符号被用于表示相同的或功能相似的元素。为了简便以及清晰,附图中的元素不一定按比例绘制。
图1显示了分组交换系统的例子的简化方框图。
图2显示了直通转发模式的例子的简化方框图。
图3显示了直通转发模式中的线程调度的简化例子。
图4-图8说明了一种执行分组数据的直通转发的方法的例子的一部分的简化流程图。
具体实施方式
现在将参照直通转发模式的例子描述本发明的例子,例如可以在分组交换系统中实施的直通转发模式。然而,本发明不限定于参照附图所描述的特定指令直通转发体系结构,并且可以同样适用于替代体系结构。例如,对于所说明的例子,直通转发模式被说明为包括用于控制直通转发操作的单一的、一元化的控制器单元。然而,本发明所描述的控制器的功能可以同样地在多个这种控制器之间被提供,和/或这种控制器的功能可以平等地分布于多个功能模式。此外,由于本发明说明的实施例可能大部分是通过使用本领域所属技术人员所熟知的电子元件和电路被实施,细节不会在比上述所说明的认为有必要的程度大的任何程度上进行解释。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
现在参照图1,图1说明了直通转发可以在其中被实施的分组交换系统100的例子的简化方框图。正如图1所说明的,分组数据通常在系统主装置110、115之间传输。在顶部数据流例子中,要发送的数据被布置成数据分组,或源主装置110的“帧”,然后通过分组交换系统100传输到目的地主装置115。数据帧通过从属交换模块120通过分组交换系统100路由/转发。为了降低分组交换系统100内的等待时间(即在数据被源主装置110传输和该数据被目的地主装置115接收之间的时间),在从属装置120内实施直通转发是众所周知的。
直通转发,也被称为直通交换,是一种用于分组交换系统的交换方法,其中在整个帧被接收之前,网络交换机(例如,图1中的从属装置120)开始转发数据帧(或分组);通常但不是唯一的,在目的地地址被处理不久之后。以这种方式,直通转发能够显著降低通过每个交换机的等待时间。直通转发交换机(即图1的从属装置120)的等待时间被定义为从属装置120接收数据与相同从属装置120随后传输(即转发)该数据之间的时间。因此,通过在开始传输数据帧之前没有等待直到完整帧被接收,交换机的传播等待时间可以被降低。由于在完整的数据帧已被接收之前数据帧的传输就开始了,数据帧可能在传输期间传遍分组交换系统100内的多个主/从装置110、115、120。例如,考虑1000字节长的帧,以及包括从属装置120的交换系统100,该从属装置120在接收了例如16字节帧之后开始传输(重新传输)/转发数据帧。该帧(理论上)可能跨越超过60个从属装置120。因此,与其中在整个帧被转发之前整个帧被每个从属装置接收的系统进行比较,直通转发能够使得穿过系统100的等待时间显著降低。
现在参照图2,图2说明了直通转发模块200的例子的简化方框图,例如可以在图1的分组交换系统100的从属装置120内实施的直通转发模块200。对于所说明的例子,直通转发模块200在通常在205被说明的集成电路装置中被实施,并且包括一个或多个接收器组件210和一个或多个发射器组件215。每个接收器组件210包括FIFO(先入先出)缓冲器211,其中接收的数据存储在其中。当B字节数据的块已被接收器组件210接收的时候,接收器组件210被布置成生成要被传输的那个数据块的请求,例如正如通常在212被说明的。请求212被提供给控制器单元220,其被布置成处理该请求、导致那个数据块被转移到合适的发射器组件215的FIFO216,以及通过发射器组件215触发数据块的传输。
因此,在直通转发模块200接收数据和随后转发该数据之间的时间(即等待时间)取决于块的大小(B字节)以及数据被接收的输入信道206的数据速率(即直通转发模块200接收数据所使用的速率)。因此,如果输入信道206的数据速率是已知的,那么所需的最大等待时间可以通过配置块的大小B来实施,使得:
B<data_rate_in*等待时间[表达式1]
其中data_rate_in表示输入信道206的数据速率,以及等待时间表示要达到的所需的最大等待时间。
根据一些实施例,块的大小B是能配置的。例如,每个接收器组件210可能包括例如在214被说明的可编程寄存器,其中在该寄存器内可以能配置地设置值,以定义块的大小B。以这种方式,直通转发模块200的等待时间根据它所支持的直通转发模式的特定要求可以被配置。特别是,如果(一个或多个)输入信道206的数据速率是已知的,则块的大小B可以被配置成满足特定等待时间要求。对于一些例子,设想块的大小B可以是由控制器单元220配置的,例如以响应于其中的一个或多个软件配置,或响应于其中的一个或多个关于要被支持的直通转发模式的数据输入(未显示)。
正如将要认识到的,如果块的大小B配置的过小,则在由接收器组件210生成的请求之间的时间对于由控制器单元220连续处理请求来说过短,从而导致提供给发射器组件215的数据块的下运行(under-run),从而潜在地导致相应数据帧被终止。因此,在一些例子中,应该使直通转发模块200所支持的最小的块大小B遵守在由接收器组件210生成的请求之间提供充足的时间,以使请求能够被控制器单元220处理。通常,这样最小的块大小可能取决于要求被该(或每个)控制器硬件处理器(未显示)服务的发射器/接收器组件的数目,以及对于所提供的每一项服务所需的处理量。
例如,控制器单元220可能包括一个或多个硬件处理器,例如RISC(精简指令集计算机)处理器,每个被布置成执行一个或多个线程,每个线程被布置成服务例如直通转发模块的一个发射器/接收器组件(例如,在接收器组件210情况下的处理请求等等)。处理来自接收器组件210的请求所需的时间取决于所需的处理的数目(例如,需要执行的操作数目和复杂性)以及执行该处理的相应处理器硬件的处理速度/频率。相应处理器硬件的处理速度/频率取决于直通转发模块实施,并且通常是固定的量。所需的处理的数目通常取决于被支持的直通转发模式等等。因此,为了使得请求被控制器单元220处理,在由接收器组件210生成的请求之间所需的最小时间量、以及由此可以被直通转发模块200所支持的最小的块大小B,取决于特定直通转发模块硬件实施,以及由此被支持的特定直通转发模式。
由于(一个或多个)控制器硬件处理器的处理能力以及由特定直通转发模式的接收器组件210生成的处理要求通常在实施之前是已知的或者是可以预测的,因此最小的块大小B可以被预定并且被配置为基本上任何硬件实施和直通转发模式组合。以这种方式,直通转发模块200的等待时间可以被精确地控制,从而能够使直通转发模块200的等待时间最小化,同时确保避免直通转发模块内的下运行。
直通转发模式不仅要求严格控制等待时间,而且要求严格控制抖动,即在连续帧的传输之间时间段的方差。特别是,通常期望在数据帧流的传输内最小化抖动。然而,通过直通转发模块最小化抖动通常包括最小的等待时间,其中该等待时间是通过该模块实施的。这种抖动还要求在不同的直通转发模式之间也有所不同。因此,为了直通转发模块(例如图2的直通转发模块200)能够支持多个直通模式,直通转发模块有必要能够根据由此被支持的直通模式的各种不同要求来控制通过那里的数据的等待时间和抖动。
正如前面所提到的,图2的直通转发模块200的控制器单元220被布置成执行用于处理由接收器组件生成的请求的线程。此外,控制器单元220被布置成设置每个线程的优先级上下文,并且至少部分基于所述优先级上下文调度线程。
例如,参照图3,图3说明了执行多个线程310、320、330、340(在这种情况下是四个)的第一简化例子300,例如可以在图2的控制器单元220的硬件处理器(未显示)内实施的线程。在所说明的例子中,每个线程310、320、330、340被布置成服务接收器或发射器组件210、215中的一个。在该第一例子中,所有线程被指配了相同的优先级上下文(例如,“正常”),并且因此被调度,以按照从它们相应接收器或发射器组件210、215接收到请求的顺序等等来执行。因此,对于图3中所说明的第一个例子的时间段,按照Rx_0310(例如,服务第一接收器组件210)、Tx_0320(例如,服务第一发射器组件215)、Rx_1330(例如服务第二接收器组件210)、以及Tx_1340(例如服务第二发射器组件215)的顺序来执行线程。任务的调度因此通常以这种方式循环。例如,线程Rx_0310在线程Tx_1340之后再次被调度,并且线程被调度的顺序是基于请求等等从其相应组件被接收的顺序来确定的。正如图3中所说明的,执行连续线程310、320、330、340可以被管理进程(supervisorprocess)的简要执行分离开,例如被图2中所说明的线程调度器230分离开,其中该线程调度器负责要被执行的线程的调度。
图3还说明了执行四个线程310、320、330、340的第二简化例子350。最初在该第二简化例子350中,所有四个线程被指配相同的优先级上下文(例如,“正常”),并且因此被调度,以按照从它们相应接收器或发射器组件210、215接收到请求等等的顺序来执行。因此,线程Rx_0310再次可以首先被调度,其后跟随有线程Tx_0320。然而,对于该第二例子350,线程Rx_0310的优先级上下文被设置为较高优先级,例如在该第一说明的执行之后(或期间)设置为“优先化(prioritised)”。以这种方式,从线程Rx_0310的相应接收器组件210接收的请求相比于与“正常”优先级线程相关的请求等等被给予优先级。在所说明的例子中,没有来自线程Rx_0310的接收器组件210的这种请求最初是未决的。这样,线程Tx_0320根据线程的正常顺序被调度和执行。然而,一旦线程Tx_0320返回到线程调度器230,来自线程Rx_0310的接收器组件210的请求就是未决的。因此,因为线程Rx_0310具有高于其它线程的优先级,因此它在其它线程之前被调度,以加速未决请求的处理,正如通常在355被说明的。
因此,以这种方式,通过至少部分基于所述优先级上下文调度线程的执行,特定线程的处理请求可以被优先化,从而实现了加速处理。通过实现加速处理来自接收器组件210的请求,与此相关的数据块的处理的传输可以被加速。以这种方式,对等待时间以及特别是抖动的附加控制水平可以提供给分组数据的直通转发。具体地,是通过将下述线程的优先级上下文设定为较高优先级:针对该线程,与“对抖动敏感”的块(例如,数据帧的第一块)有关的请求正在等待处理。因此,处理这样的请求可以被加速,从而实现更好的控制了相关数据流的抖动。
图4说明了执行分组数据的直通转发的方法的例子的简化流程图400,例如可以在图2的控制器单元220内实施。该方法开始于410,并移至420,其中图2的直通转发模块200在该处例如,根据要被支持的所需的直通转发模式被进行初始化。这种初始化可能包括配置接收器组件210内的块的大小B和/或用于控制等待时间和/或抖动的任何其它参数,例如在下面更详细描述的。此外,初始优先级上下文可以为线程225设置(例如,设置为“正常”优先级),其中该线程被布置成支持直通转发模块200的接收器和/或发射器组件210、215。例如,控制器单元220可能包括存储在例如在235被说明的存储器区域中的线程上下文查找表(LUT)中,并且优先级上下文可以在其中存储和更新。然后,该方法移至430,其中在该处确定针对线程225是否有具有被设置为较高优先级(例如,设置为“优先化”)的优先级上下文的任何请求是未决的。在这个例子中,由于所有优先上下文已被初始化到“正常”优先级,因此没有线程225具有被设置为“较高”优先级的优先上下文,并且该方法移至440,其中来自接收器/发射器组件210、215的下一个(或这种情况下是第一个)是未决的请求的线程225被调度执行。例如,线程调度器可以被布置成通常是“轮转调度”(round robin)的顺序调度线程执行。例如,如果线程A、B和C包括相等的优先级上下文(例如设置为“正常”),如果在当前线程A的执行期间,对应于线程B的请求被接收,其后跟随有对应于线程C的另一个请求,则下面的调度可能适用:
-如果对应于线程B和C的请求先前没有被接收,那么线程调度器230可能任意选择线程B或C在线程A完成之后被服务,否则:
-如果线程B已经在先前被调度和执行,并且在A之前被执行以及在先前执行的线程C之后,那么线程调度器230可能调度在线程A完成之后线程C被服务,否则:
-如果线程C已经在先前被调度和执行,并且在A之前被执行以及在先前执行的线程B之后,那么线程调度器230可能调度在线程A完成之后线程B被服务。
一旦在450从已调度的线程返回,该方法循环回430。当所有线程225包括被设置为“正常”优先级的优先级上下文的时候,该方法通过上述步骤循环,从而实现了例如以通常是“轮转调度”的方式用于处理接收的请求的线程执行。
然而,如果在430确定了其中请求是未决的一个或多个线程225包括被设置为较高优先级的优先级上下文,该方法移至470,其中请求是未决的较高优先级线程225在该处被调度执行。一旦在450从已调度的线程返回,该方法循环回430。
因此,以这种方式,图2的控制器单元220可以被布置成调度较高优先级线程,针对该较高优先级线程的请求要求在较低优先级线程之前处理。根据一些例子,控制器单元220可以被布置成占先地设置线程225的优先级上下文,以用于处理即将到来的请求。例如,在控制器单元220内执行的线程225可以被布置成占先地将其优先级上下文设置为较高优先级,以用于处理即将到来的请求。
正如先前所提到的,抖动控制是直通转发模块的重要方面。特别是,可以通过加速对数据帧开始的处理和转发来降低抖动。因此,通过加速处理与来自接收器组件210的数据帧中第一数据块相对应的请求,该第一数据块的后续重新传输(转发)可以被加速。
图5说明了一种占先地设置线程225内的优先级上下文的方法的例子的简化流程图500,例如正如在控制器单元220内执行的。该方法开始于505,例如开始于要被执行以用于处理来自接收器组件210的请求的线程225的调度。然后,该方法移至510,其中伴随着(由线程)对来自例如要被线程225处理的请求队列245中未决请求的检索。线程225然后在520处理检索的请求。已经处理了请求,线程225然后在530确定请求是否涉及数据帧的最后数据块。如果该请求不涉及数据帧的最后数据块,该方法移至540,其中线程225在该处将其优先级上下文设置为较高优先级,例如设置为“优先化”。然后,该方法移至550,其中线程225在该处触发数据块的传输,针对该数据块的检索的请求也因此在560清除(例如来自请求队列240的)处理的请求之前在520被处理。该方法然后在570返回(即把对硬件处理器的控制归还到线程调度器230)。以这种方式,一旦接收到针对该线程的下一个请求(将涉及下一个数据帧的第一数据块),该线程的调度被优先化在其它较低优先级线程之前。
返回参照530,如果处理的请求不涉及数据帧的最后数据块,该方法移至580,其中线程225在该处确定请求是否涉及数据帧的第一数据块。如果请求不涉及数据帧的第一数据块,该方法移至590,其中线程225在该处将其优先级上下文设置为较低优先级,例如“正常”。然后,该方法移至550,其中线程225在该处触发了数据块的传输,针对该数据块的检索的请求也因此在560清除处理的请求之前在520被处理,然后在570返回。以这种方式,由于已被优先化以加速处理数据帧的第一数据块,线程225将其优先级上下文重新设置为“正常”。返回参照580,如果处理的请求不涉及数据帧的第一数据块,该方法直接移至550而不改变其优先级上下文。
因此,可以设想,一旦在该线程225内处理来自相应接收器组件的针对数据帧中最后数据块的请求,在控制器单元220内执行的线程225可以被布置成将其优先级上下文设置为较高优先级。以这种方式,由于可以假定通过在数据帧的最后数据块的处理期间占先地将优先级上下文设置为较高优先级,由此被接收的下一个数据块将是下一个数据帧的第一数据块,那么下一个数据帧中第一块的处理可以被加速,从而降低了两个帧之间的抖动。随后,一旦处理来自相应接收器组件210的针对(随后的)数据帧中第一数据块的请求,线程225随后可能将其优先级上下文重新设置回较低优先级。
除了为了降低抖动(正如上述参照图5所描述的)的优先级上下文的“帧间”占先设置,优先级上下文的“帧内”占先设置也可以被实施。例如,对于运行大量线程225的控制器单元220,或对于包括有限(例如,较慢的)处理资源的控制器单元220,负责处理由接收器组件210生成的请求的线程可以在例如数据帧内的N块之后,或在数据帧内的每个第N块之后布置成优先化,以帮助确保由接收器组件210生成的请求即时被控制器单元220处理,以避免下运行。
在一些例子中,帧内占先可以被用于实现包括了直通转发模块200的从属装置(例如从属装置120)的输入/输出(I/O)的即时触发。在一些例子中,信号或标识例如基于直通模式的需要可以被确定性生成。例如,这种从属装置120的I/O触发往往在许多工业应用中实施以控制工业机械。命令(例如I/O触发)从主装置110、115到从属装置120的传输通常从从属装置120的应用解除耦合。例如,主装置110、115可能将命令放置在数据分组内,例如,指令从属装置执行功能,使得开启机器,或减速或加速电动机等等。对如何以及何时传输和执行这样的命令控制的越多,这样的功能可以就会更有效和更准确地实施。I/O触发可能构成对从属装置120的应用的中断,或从“低”到“高”跳转的线以在例如被连接到从属装置120的处理器(未显示)的现场可编程门阵列(FPGA)中启用一些功能。可替代的,一个以上的I/O线可以在命令中被更新,例如,8比特输入到被用于控制例如电动机速度的数字模拟转换器。
在一些实时应用的例子中,将从属装置120的应用同步到主装置110、115的需要的应用可以取决于提供I/O触发确定性传输等等的能力。通过能够优先化直通转发模块200的线程,其中该线程负责处理数据分组的接收的数据块,那么这样的数据块的处理,并且因此这样的命令的传输可能对这样的命令的等待时间和抖动提供更大的控制权,其中该数据分组包括这样的I/O触发、信号、标识等等。结果,这样的命令的传输可以被确定地实现,并有更精细的粒度、更多的控制和增加的准确度。
例如,图6说明了一种占先地设置线程225内的优先级上下文的替代方法的例子的简化流程图600,例如正如在图2的控制器单元220内执行的。该方法开始于605,例如开始于要被执行以用于处理来自接收器组件210的请求的线程225的调度。然后,该方法移至610,其中伴随着(由线程)对例如来自要被线程225处理的请求队列245的未决请求的检索。线程225然后在620处理检索的请求。已经处理了请求,线程225然后在530确定请求是否涉及数据帧的第(M*N)数据块,其中N包括为该数据帧接收的预定义数目的数据块,以及M包括整数值。如果该请求不涉及数据帧的第(M*N)数据块,该方法移至640,其中线程225在该处将其优先级上下文设置为较高优先级,例如设置为“优先化”。然后,该方法移至650,其中线程225在该处触发数据块的传输,针对该数据块的检索的请求也因此在660清除(例如来自请求队列240的)处理的请求之前在620被处理。该方法然后在670返回(即把对硬件处理器的控制归还到线程调度器230)。以这种方式,一旦接收到该线程的下一个请求(将涉及下一个数据帧内的第(M*N)+1数据块),该线程的调度被优先化在其它较低优先级线程之前。
返回参照630,如果处理的请求不涉及数据帧的第(M*N)数据块,该方法移至680,其中线程225在该处确定请求是否涉及数据帧的第(M*N)+1数据块。如果请求不涉及数据帧的第(M*N)数据块,该方法移至690,其中线程225在该处将其优先级上下文设置为较低优先级,例如“正常”。然后,该方法移至650,其中线程225在该处触发了数据块的传输,针对该数据块的检索的请求也因此在660清除处理的请求之前在620被处理,然后在670返回。以这种方式,由于已被优先化以加速处理数据帧的第(M*N)+1数据块,线程225将其优先级上下文重新设置为“正常”。返回参照680,如果处理的请求不涉及数据帧的第(M*N)+1数据块,该方法直接移至650而不改变其优先级上下文。
因此,在控制器单元220内执行的线程225可以被布置成:一旦在该线程225内处理来自相应接收器组件210的数据帧内的第N块、或数据帧内的每个第N块、或数据帧内的多个任意间隔开的块的请求,就将其优先级上下文设置为较高优先级。根据一些例子,N可能包括能配置参数。以这种方式,线程的帧内优先化可以根据下面的一个或多个被配置:被直通转发模块200和/或其等待时间/抖动要求所支持的直通处理模式、相应接收器组件210被配置的块大小B、控制器单元220所支持的线程数目、线程在其上被执行的(一个或多个)硬件处理器(未显示)的处理能力(例如,处理速度/频率)等等。因此,通过以这种方式实现参数N的配置、对优先化并且因此数据转发和/或I/O触发的等待时间/抖动的进一步控制可以在图2的直通转发模块200内被提供。
根据一些例子,图2的控制器单元220可以被布置成:在预定义数目X的处理周期内在第一、活动线程225内处理请求之后,确定一个或多个另外的、非活动线程是否包括设置为较高优先级的优先级上下文,以及如果确定至少一个另外的线程包括设置为高优先级的优先级上下文,那么暂停在所述第一、非活动线程内处理请求212。以这种方式,如果,例如,活动线程正在执行相对长的例程,例如处理请求所需的大量命令,该线程在预定数目的处理周期之后可能确定其它线程是否已经被优先化,并且因此处于下运行或导致过高抖动的危险中。因此,该线程可能使控制器单元220切换到较高优先级线程,而无需等待活动线程完成其处理。以这种方式,对等待时间和抖动的进一步控制也可以在直通转发模块200内提供。
例如,图7说明了一种在线程225内处理请求的方法的例子的简化流程图,例如正如在图2的控制器单元220内执行的。该方法开始于705,例如开始于要被执行以用于处理请求的线程225的调度。然后,该方法移至710,其中伴随着(由线程)对来自例如要被线程225处理的图2的请求队列245的未决请求的检索。线程225然后在720,在X的处理周期内处理检索的请求,或者直到完成处理。如果该请求的处理在730完成,该方法移至770,其中例如在有来自接收器组件210的请求的情况下,线程225触发了数据块的传输,针对该数据块的检索的请求也因此在780清除(例如来自请求队列240的)处理的请求之前在720被处理。该方法然后在760返回(即把对硬件处理器的控制归还到线程调度器230)。
然而,如果在该请求的处理在X的处理周期内处理检索的请求之后未完成,该方法移至740,其中线程在该处确定具有被设置为较高优先级(例如,“被优先化”)的优先级上下文的其它线程的一个或多个请求是否是未决的。例如,对于图2中所说明的例子,线程的优先级上下文被存储在查找表235中以及未决请求被存储在请求队列245中,这对被执行的线程是可见的。以这种方式,控制器单元220的一个线程的优先级上下文对控制器单元220内的其它线程是可见的。特别是,740内所有未决优先请求(例如相对于优先级线程的未决请求)可以对活动线程是可见的。因此,活动线程能够确定其它(不活动)线程是否有被设置为较高优先级的优先级上下文,以及这些线程的请求是否是未决的。因此,活动线程有可能看到所有未决的优先请求,以及活动线程有可能引起上下文切换,例如,带有帧的第一块的优先化线程,或带有高帧内块优先级的优先化线程,这取决于直通模式要求。如果740内没有被设置为较高优先级的优先级上下文的请求是未决的其它线程,该方法循环回720,其中线程在该处在另外X的处理周期内继续处理检索的请求,或者直到完成处理。如果确定另一个(不活动)线程确实具有被设置为较高优先级的优先级上下文,以及请求在740是未决的,该方法移至750,其中正在处理的请求在该处暂停,并且线程在760返回。以这种方式,较高优先级线程可以被执行以处理,例如,抖动关键请求。一旦较高优先级线程完成处理其请求,先前的线程可能会再次被调度(因为其请求仍然在请求队列245的“前面”)以完成处理被暂停的请求。
因此,在控制器单元220内执行的线程225可以被布置成:在预定义数目X的处理周期内在第一、活动线程225内处理请求之后,确定一个或多个另外的、非活动线程是否包括设置为较高优先级的优先级上下文,以及如果确定至少一个另外的线程包括设置为高优先级的优先级上下文,那么暂停在所述第一、非活动线程内处理请求212。根据一些例子,X可能包括能配置参数。以这种方式,线程所使用的用于检查是否存在较高优先级线程的频率可以根据包括以下内容的组中的一个或多个而被配置:被直通转发模块200和/或I/O触发和/或等待时间/抖动要求支持的直通处理模式、相应接收器组件210被配置的块的大小B、被控制器单元220支持的线程的数目、线程在其上被执行的(一个或多个)硬件处理器(未显示)的处理能力(例如,处理速度/频率)等等。因此,通过以这种方式实现参数N的配置,对优先化并且因此数据转发和/或I/O触发的等待时间/抖动的进一步控制可以在图2的直通转发模块200内被提供。然而,在替代实施例中,在图7中的730至740执行的检查可以替代地被编码到长例程,该长例程在由程序员决定的方便点处被线程执行,这与在图7的例子中的X的处理周期的规则间隔处的截然相反。
对于以上本发明所描述的例子,线程的优先级上下文在线程内已被占先地设置。然而,在其它例子中,线程的优先级上下文可以被图2的直通转发模块200内的其它元件设置。例如,一旦接收到来自接收器组件210的请求,控制器单元220内的请求处置器240可以被布置成初始化请求定时器250,以及例如如果所述请求在请求定时器期满之后未被处理,则将负责处理所述请求的线程225的优先级上下文设置为较高优先级。
例如,图8说明了处理来自接收器组件的请求的例子的简化流程图800,例如正如被图2中的请求处置器240实施的。该方法开始于810,其中接收到了来自接收器组件的请求,然后,该方法移至820,其中例如通过被添加到图2的请求队列245,接收的请求在该处排队等待处理。请求定时器,例如图2中所说明的请求定时器250,然后被初始化,例如从预定值设置为向上计数或向下计数。一旦定时器期满,在840,确定启动定时器的请求是否已被处理。如果该请求已被处理,那么该方法在870结束。然而,如果请求没有被处理,那么该方法移至860,其中负责处理请求的线程的优先级上下文在该处被设置为较高优先级(例如,“优先化”状态),并且该方法然后在870结束。
在一些例子中,定时器,例如定时器250,可以被附加地用于将I/O操作的触发例如从正常块处理流程解除耦合。例如,在一些例子中,与块处理无关的另外的线程可以被用于此目的,以及定时器250可以从特定值设置为向上计数或向下计数,以在特定时间导致I/O被触发。定时器期满之后,该线程的优先级上下文可以被设置为较高优先级,以确定性地触发I/O。这个例程,如果长的话,也可能考虑其它线程的任何处理,例如,帧的第一块。以这种方式,如果在包括了已接收的命令的帧之后(可能在后)接收了在将来的某点触发I/O的命令,那么定时器250使负责触发I/O优先级的线程优先化,以实现更好控制I/O的触发。例如,这样的命令可能规定一些类似于“在5秒时间内、或今天下午6点、或在20字节的时间内跳转I/O线”。当定时器250期满的时候,相应线程的优先级上下文则可以被设置为较高优先级,或定时器250可以被用于屏蔽来自线程的请求,直到定时器250期满,期满之后,相应线程被解除屏蔽,并且以基于直通模式和/或I/O触发要求的优先级上可用于选择。在一些例子中,多个定时器可以用于支持多个线程。
因此,以这种方式,如果相应请求被屏蔽或在预定时间限制内没有被处理,则控制器单元220内的线程可以被优先化,因此,实现了那个线程的调度以处理被加速的请求,以满足等待时间/抖动和I/O触发要求。在一些例子中,请求定时器250的持续时间可以是能配置的。以这种方式,对于处理在其相应线程将被优先化之后的请求的时间限制可以例如根据包括以下内容的组中的一个或多个被配置:被直通转发模块200和/或等待时间/抖动要求支持的直通处理模式、相应接收器组件210被配置的块的大小B、被控制器单元220支持的线程的数目、线程在其上被执行的(一个或多个)硬件处理器(未显示)的处理能力(例如,处理速度/频率)等等。因此,通过以这种方式实现请求定时器250的持续时间的配置,对优先化并且因此数据转发和/或I/O触发的等待时间/抖动的进一步控制可以在图2的直通转发模块200内被提供。
因此,在一些例子中,直通转发模块,例如以上参照附图所描述的可能允许设计装这样的置,该装置可以基本上有多个直通模式要求的优化配置、尺寸、加电状态以及价格。
本发明的至少一部分可以在计算机程序中被实施。该程序用于在计算机系统上运行,至少包括用于当在可编程的设备上,例如计算机系统或启动可编程的设备以执行根据本发明的装置或系统的功能,运行时,执行一种根据本发明的方法的代码部分。
计算机程序是一系列指令例如特定应用和/或操作系统。计算机程序可能例如包括一个或多个:子程序、函数、程序、对象方法、对象实施、可执行的应用、小程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或设计用于在计算机系统上的执行的其它指令序列。
计算机程序可以在计算机可读存储介质上被内部地存储或通过计算机可读传输介质传输到计算机系统。或者一些计算机程序可以被永久地、可移除地提供在计算机可读介质或远程地耦合于信息处理系统。计算机可读介质可能包括,例如但不限于以下的任何数目:磁存储介质包括磁盘和磁带存储介质;光学存储介质例如光盘介质(例如,CD-ROM、CD-R等等)以及数字视盘存储介质;非易失性存储器存储介质包括半导体存储单元例如FLASH存储、EEPROM、EPROM、ROM;铁磁数字存储;MRAM;易失性存储介质包括寄存器、缓冲或缓存、主存储器、等等;以及数字传输介质包括计算机网络、点对点通信装置、以及载波传输介质,仅举几例。
计算机处理通常地包括执行(运行)程序或程序的部分,现有的程序值和状态信息,以及通过操作系统用于管理处理的执行的资源。操作系统(OS)是管理一台计算机的资源共享以及提供给程序员用于访问这些资源的界面的软件。操作系统处理系统数据和用户输入,以及通过配置和管理任务以及内部系统资源作为系统对用户和程序员的一项服务响应。
计算机系统可能,例如,包括至少一个处理单元、关联内存和大量的输入/输出(I/O)装置。当执行计算机程序时,计算机系统根据计算机程序处理信息并且通过I/O装置生产生成的输出信息。
在前面的说明中,参照本发明实施例的特定例子已经对本发明进行了描述。然而,很明显各种修改和变化可以在不脱离附属权利要求中所陈述的本发明的宽范围精神及范围的情况下被做出。
本发明所讨论的连接可以是任何类型的连接。该连接适于将信号从或传输到相应节点、单元或装置,例如通过穿孔中间装置。因此,除非暗示或说明,连接,例如,可能是直接连接或间接连接。连接可以被说明或描述,涉及到是单一连接、多个连接、单向连接、或双向连接。然而,不同实施例可能改变连接的实施。例如,可以使用单独单向连接而不是双向连接,反之亦然。此外,多个连接可以被替换为连续地或以时间多路复用方式传输多个信号的单一连接。同样地,携带多个信号的单一连接可以被分离成各种不同的携带这些信号的子集的连接。因此,存在传输信号的许多选项。
本领域所属技术人员将认识到逻辑块之间的界限仅仅是说明性的并且替代实施例可能合并逻辑块或电路元素或在各种逻辑块或电路元素上强加替代的分解功能。因此,应了解本发明描述的架构仅仅是示范的,并且事实上实施相同功能的很多其它架构可以被实施。例如,为了便于理解,单一的一体化控制器单元220在图2中被说明。然而,应了解该控制器单元的功能可以分布在直通转发模块220内的多个硬件和/或软件组件中。此外,为了便于理解,线程调度器230和请求处理器240被说明为控制器单元220内的离散功能组件。然而,应了解这些组件的每个的功能可以在控制器单元220内的任何数目的离散硬件和/或软件组件中被一起或单独平等地被实施。
为实施相同功能的任何元件的排列是有效地“关联”使得所需的功能得以实施。因此,为实施特定功能,本发明中结合在一起的任何两个元件可以被看作彼此“相关联”使得所需的功能得以实施,不论架构还是中间元件。同样地,如此关联的任何两个元件还可以被认为是彼此被“可操作连接”或“可操作耦合”以实施所需的功能。
此外,本领域所属技术人员将认识到上述描述的操作之间的界限只是说明性的。多个操作可以组合成单一的操作,单一的操作可以分布在附加操作中,并且操作可以至少在时间上部分重叠被执行。而且,替代实施例可能包括特定操作的多个实例,并且操作的顺序在各种其它实施例中会改变。
又如,例子或其中的一部分可能作为物理电路的软或代码表征被实施,或作为能够转化成物理电路的逻辑表征,例如在任何合适类型的硬件描述语言中被实施。
此外,本发明不限定在非程序化硬件中被实施的物理装置或单元,但也可以应用在可编程装置或单元中。这些装置或单元通过操作能够执行所需的装置功能。该执行是根据合适的程序代码,例如,主机、微型计算机、服务器、工作站、个人电脑、笔记本、个人数字助理、电子游戏、汽车和其它嵌入式系统、手机和其它无线装置,在本申请中通常表示“计算机系统”。
然而,其它修改、变化和替代也是可能的。说明书和附图相应地被认为是从说明性的而不是严格意义上来讲的。
在权利要求中,放置在括号之间的任何参考符号不得被解释为限定权利要求。单词“包括”不排除其它元素或然后在权力要求中列出的那些步骤的存在。此外,本发明所用的“a”或“aN”被定义为一个或多个。并且,在权利要求中所用词语如“至少一个”以及“一个或多个”不应该被解释以暗示通过不定冠词“a”或“aN”引入的其它权利要求元素限定任何其它特定权利要求。所述特定权利要求包括这些所介绍的对发明的权利元素,所述权利元素不仅仅包括这样的元素。即使当同一权利要求中包括介绍性短语“一个或多个”或“至少一个”以及不定冠词,例如“a”或“aN”。使用定冠词也是如此。除非另有说明,使用术语如“第一”以及“第二”是用于任意区分这些术语描述的元素的。因此,这些术语不一定表示时间或这些元素的其它优先化。某些措施在相互不同的权利要求中被列举的事实并不表示这些措施的组合不能被用于获取优势。
Claims (20)
1.一种集成电路装置(205),包括至少一个直通转发模块(200),所述直通转发模块(200)包括:
至少一个接收器组件(210),所述至少一个接收器组件(210)被布置成接收要被转发的数据,并且一旦其接收到,就产生用于传输数据块的请求(212);以及
至少一个控制器单元(220),所述至少一个控制器单元(220)被布置成执行至少一个线程(225、310、320、330、340、350),所述至少一个线程(225、310、320、330、340、350)用于处理由所述至少一个接收器组件(210)生成的请求,
其中所述至少一个控制器单元(220)被布置成:设置所述至少一个线程(225、310、320、330、340、350)的优先级上下文,并且至少部分基于所述优先级上下文来调度所述至少一个线程的执行。
2.根据权利要求1所述的集成电路装置(205),其中所述控制器单元(220)还被布置成:调度较高优先级线程(225、310、320、330、340、350),针对所述较高优先级线程(225、310、320、330、340、350)的请求(212)要求在较低优先级线程(225、310、320、330、340、350)之前处理。
3.根据权利要求1或2所述的集成电路装置(205),其中所述控制器单元(220)被布置成:在所述至少一个线程(225、310、320、330、340、350)的执行期间,占先地设置该线程(225、310、320、330、340、350)的所述优先级上下文。
4.根据权利要求3所述的集成电路装置(205),其中所述控制器单元(220)被布置成:一旦在所述至少一个线程(225、310、330、350)内处理了来自所述至少一个接收器组件(210)的针对数据帧中最后块的请求(212),就将该线程的所述优先级上下文设置为较高优先级。
5.根据权利要求4所述的集成电路装置(205),其中所述控制器单元(220)还被布置成:一旦在线程(225、310、330、350)内处理了来自所述至少一个接收器组件(210)的针对数据帧中第一块的请求(212),就将该线程的优先级上下文设置为较低优先级。
6.根据权利要求3-5中任何一项所述的集成电路装置(205),其中,所述控制器单元(220)被布置成:一旦在线程(225、310、330、350)内处理了来自所述至少一个接收器组件(210)的针对数据帧中第N块的请求(212),就将该线程的优先级上下文设置为较高优先级,其中N包括为该数据帧接收的多个数据块。
7.根据权利要求6所述的集成电路装置(205),其中,所述控制器单元(220)被布置成:一旦在线程(225、310、330、350)内处理了来自所述至少一个接收器组件的针对数据帧中第(M*N)块的请求(212),就将该线程的优先级上下文设置为较高优先级,其中M包括整数值。
8.根据权利要求6或7所述的集成电路装置(205),其中,所述控制器单元(220)被布置成:一旦在线程(225、310、330、350)内处理了来自所述至少一个接收器组件的针对数据帧中第((M*N)+1)块的请求(212),就将该线程的优先级上下文设置为较低优先级。
9.根据权利要求6-8中任何一项所述的集成电路装置(205),其中N包括为该数据帧接收的能配置的预定义数目的数据块。
10.根据任何一项前述权利要求所述的集成电路装置(205),其中所述控制器单元(220)还被布置成:一旦接收到来自所述至少一个接收器组件(210)的请求(212),就初始化请求定时器(250),以及如果请求(212)在所述请求定时器(250)期满之后未被处理,则将针对该请求(212)的线程(225、310、330、350)的优先级上下文设置为较高优先级。
11.根据权利要求10所述的集成电路装置(205),其中所述请求定时器(250)的持续时间是能配置的。
12.根据任何一项前述权利要求所述的集成电路装置(205),其中所述控制器单元(220)还被布置成:在预定数目X的处理周期中在第一线程(225、310、330、350)内处理请求(212)之后,
确定至少一个另外的线程(225、310、330、350)是否包括被设置为较高优先级的优先级上下文;以及
如果确定所述至少一个另外的线程(225、310、330、350)包括被设置为高优先级的优先级上下文,则暂停在所述第一线程(225、310、330、350)内处理所述请求(212)。
13.根据权利要求12所述的集成电路装置(205),其中所述X包括能配置的预定义数目的处理周期。
14.根据任何一项前述权利要求所述的集成电路装置(205),其中所述控制器单元(220)的一个线程的所述优先级上下文对所述控制器单元220内的其它线程是可见的。
15.根据任何一项前述权利要求所述的集成电路装置(205),其中,所述至少一个接收器组件(210)被布置成:一旦接收到B字节数据的块,就生成用于传输数据块的请求(212);其中数据块的大小B是能配置的。
16.根据权利要求15所述的集成电路装置(205),其中,所述控制器单元(220)还被布置成:一旦接收到所述至少一个接收器组件(210)将要生产用于其传输的请求,就配置数据块的大小B。
17.一种用于执行分组数据的直通转发的方法(400、800),所述方法包括:
从接收器组件接收用于传输数据块的至少一个请求(810);以及
执行至少一个线程(500、600、700),所述至少一个线程用于处理从所述至少一个接收器组件接收的所述至少一个请求;
其中所述方法还包括:
设置所述至少一个线程的优先级上下文,以及
至少部分基于所述优先级上下文,调度所述至少一个线程的执行。
18.根据权利要求17所述的方法(400,800),其中,所述方法还包括:调度较高优先级线程的执行,针对所述较高优先级线程的请求(212)要求在较低优先级线程之前处理(430、470)。
19.根据权利要求18所述的方法(400,800),其中,在线程的执行期间,占先地设置该线程的优先级上下文(540、580、640、680)。
20.根据权利要求17-19中任何一项所述的方法(400,800),其中,所述方法还包括:
一旦接收到来自所述至少一个接收器组件的请求,就初始化请求定时器(830);以及
如果在所述请求定时器(250)期满之后该请求未被处理,则将该请求的线程的优先级上下文设置为较高优先级(860)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2011/051716 WO2012143757A1 (en) | 2011-04-20 | 2011-04-20 | Integrated circuit device and methods for performing cut-through forwarding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103493440A true CN103493440A (zh) | 2014-01-01 |
CN103493440B CN103493440B (zh) | 2016-08-24 |
Family
ID=47041095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180070254.5A Active CN103493440B (zh) | 2011-04-20 | 2011-04-20 | 集成电路装置和执行直通转发的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9258246B2 (zh) |
EP (1) | EP2700202B1 (zh) |
CN (1) | CN103493440B (zh) |
WO (1) | WO2012143757A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800064A (zh) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | 一种处理器和线程处理方法 |
CN112579278A (zh) * | 2020-12-24 | 2021-03-30 | 海光信息技术股份有限公司 | 用于同步多线程的中央处理单元、方法、设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013160730A1 (en) | 2012-04-26 | 2013-10-31 | Freescale Semiconductor, Inc. | A cut-through forwarding module and a method of receiving and transmitting data frames in a cut-through forwarding mode |
WO2014070321A1 (en) | 2012-11-01 | 2014-05-08 | Maruti Gupta | Signaling qos requirements and ue power preference in lte-a networks |
JP5817785B2 (ja) * | 2013-05-29 | 2015-11-18 | 株式会社安川電機 | 産業用デバイス、コントローラ、データ転送方法及びデータ送信方法 |
US10404625B2 (en) * | 2013-10-29 | 2019-09-03 | Intel Corporation | Ethernet enhancements |
US10176012B2 (en) * | 2014-12-12 | 2019-01-08 | Nxp Usa, Inc. | Method and apparatus for implementing deterministic response frame transmission |
US10505757B2 (en) | 2014-12-12 | 2019-12-10 | Nxp Usa, Inc. | Network interface module and a method of changing network configuration parameters within a network device |
US10628352B2 (en) | 2016-07-19 | 2020-04-21 | Nxp Usa, Inc. | Heterogeneous multi-processor device and method of enabling coherent data access within a heterogeneous multi-processor device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999027688A1 (en) * | 1997-11-24 | 1999-06-03 | Ascend Communications, Inc. | Method and apparatus for performing cut-through virtual circuit merging |
US6556571B1 (en) * | 1999-05-25 | 2003-04-29 | Nec Usa, Inc. | Fast round robin priority port scheduler for high capacity ATM switches |
US20030208521A1 (en) * | 2002-05-02 | 2003-11-06 | International Business Machines Corporation | System and method for thread scheduling with weak preemption policy |
US20050117575A1 (en) * | 2003-10-30 | 2005-06-02 | Venkat Konda | Nonblocking and deterministic unicast packet scheduling |
CN101304374A (zh) * | 2008-03-28 | 2008-11-12 | 武汉烽火网络有限责任公司 | 一种基于Clos网络交换结构的贯序匹配调度算法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928470B1 (en) * | 2000-07-31 | 2005-08-09 | Western Digital Ventures, Inc. | Transferring scheduling data from a plurality of disk storage devices to a network switch before transferring data associated with scheduled requests between the network switch and a plurality of host initiators |
US20020118692A1 (en) * | 2001-01-04 | 2002-08-29 | Oberman Stuart F. | Ensuring proper packet ordering in a cut-through and early-forwarding network switch |
US7310352B2 (en) | 2001-10-31 | 2007-12-18 | Juniper Networks, Inc. | Context-dependent scheduling through the use of anticipated grants for broadband communication systems |
US6671275B1 (en) * | 2002-08-02 | 2003-12-30 | Foundry Networks, Inc. | Cross-point switch with deadlock prevention |
US7304587B2 (en) * | 2003-02-14 | 2007-12-04 | Energy Technology Group, Inc. | Automated meter reading system, communication and control network for automated meter reading, meter data collector program product, and associated methods |
US7391787B1 (en) * | 2003-09-11 | 2008-06-24 | Pmc-Sierra, Inc. | System and method for opportunistic request-grant switching |
US7103683B2 (en) * | 2003-10-27 | 2006-09-05 | Intel Corporation | Method, apparatus, system, and article of manufacture for processing control data by an offload adapter |
US7657706B2 (en) * | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US20060114907A1 (en) * | 2004-11-30 | 2006-06-01 | Broadcom Corporation | Cut-through switching in a network device |
KR20080011209A (ko) * | 2005-04-21 | 2008-01-31 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 데이터 통신 네트워크를 갖는 집적 회로 및 ic 설계 방법 |
US8081626B2 (en) * | 2006-07-19 | 2011-12-20 | 4472314 Canada Inc. | Expedited communication traffic handling apparatus and methods |
US9003410B2 (en) * | 2007-01-30 | 2015-04-07 | Hewlett-Packard Development Company, L.P. | Abstracting a multithreaded processor core to a single threaded processor core |
US7769015B2 (en) | 2007-09-11 | 2010-08-03 | Liquid Computing Corporation | High performance network adapter (HPNA) |
US8358589B2 (en) | 2008-02-08 | 2013-01-22 | Freescale Semiconductor, Inc. | Buffer module, receiver, device and buffering method using windows |
EP2216965B1 (en) * | 2009-02-05 | 2015-08-12 | Thomson Licensing | Method for managing data transmission between peers according to levels of priority of transmitted and received data and associated management device |
US7970963B2 (en) * | 2009-06-29 | 2011-06-28 | Oracle America, Inc. | Efficient buffer management in a multi-threaded network interface |
US8392562B2 (en) * | 2009-12-23 | 2013-03-05 | Citrix Systems, Inc. | Systems and methods for managing preferred client connectivity to servers via multi-core system |
US20120066683A1 (en) * | 2010-09-09 | 2012-03-15 | Srinath Nadig S | Balanced thread creation and task allocation |
-
2011
- 2011-04-20 CN CN201180070254.5A patent/CN103493440B/zh active Active
- 2011-04-20 EP EP11863817.0A patent/EP2700202B1/en active Active
- 2011-04-20 US US14/007,861 patent/US9258246B2/en active Active
- 2011-04-20 WO PCT/IB2011/051716 patent/WO2012143757A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999027688A1 (en) * | 1997-11-24 | 1999-06-03 | Ascend Communications, Inc. | Method and apparatus for performing cut-through virtual circuit merging |
US6556571B1 (en) * | 1999-05-25 | 2003-04-29 | Nec Usa, Inc. | Fast round robin priority port scheduler for high capacity ATM switches |
US20030208521A1 (en) * | 2002-05-02 | 2003-11-06 | International Business Machines Corporation | System and method for thread scheduling with weak preemption policy |
US20050117575A1 (en) * | 2003-10-30 | 2005-06-02 | Venkat Konda | Nonblocking and deterministic unicast packet scheduling |
CN101304374A (zh) * | 2008-03-28 | 2008-11-12 | 武汉烽火网络有限责任公司 | 一种基于Clos网络交换结构的贯序匹配调度算法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109800064A (zh) * | 2017-11-17 | 2019-05-24 | 华为技术有限公司 | 一种处理器和线程处理方法 |
CN109800064B (zh) * | 2017-11-17 | 2024-01-30 | 华为技术有限公司 | 一种处理器和线程处理方法 |
CN112579278A (zh) * | 2020-12-24 | 2021-03-30 | 海光信息技术股份有限公司 | 用于同步多线程的中央处理单元、方法、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103493440B (zh) | 2016-08-24 |
EP2700202B1 (en) | 2017-11-08 |
EP2700202A4 (en) | 2015-09-09 |
WO2012143757A1 (en) | 2012-10-26 |
US20140029625A1 (en) | 2014-01-30 |
US9258246B2 (en) | 2016-02-09 |
EP2700202A1 (en) | 2014-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103493440A (zh) | 集成电路装置和执行直通转发的方法 | |
US20170329632A1 (en) | Device scheduling method, task manager and storage medium | |
US20060010446A1 (en) | Method and system for concurrent execution of multiple kernels | |
CN102455940B (zh) | 一种定时器和异步事件的处理方法及系统 | |
JP7394986B2 (ja) | データパケットを送信する方法、及びこの方法を実施する装置 | |
CN116016371A (zh) | 一种发送报文的方法、设备和系统 | |
Carvajal et al. | Evaluation of communication architectures for switched real-time ethernet | |
KR101466501B1 (ko) | 네트워크 트래픽 제어 장치 | |
US9438537B2 (en) | Method for cut through forwarding data packets between electronic communication devices | |
WO2011131010A1 (zh) | 定时方法和装置 | |
Yuan et al. | Conceptual model of real-time IoT systems | |
TWI539273B (zh) | 用於減少電力消耗之並行網路應用程式排程技術 | |
JP2018516489A (ja) | マルチチャネルネットワークにおけるアービトレーションおよび適応的電力サイクリングのための方法 | |
CN104255004B (zh) | 直通转发模块及在直通转发模式下接收和发射数据帧的方法 | |
CN109525315B (zh) | 基于时间触发的光纤通道网络端系统 | |
CN114661433A (zh) | 事件任务的调度方法及装置、存储介质、电子设备 | |
Carvajal et al. | Atacama: An open FPGA-based platform for mixed-criticality communication in multi-segmented Ethernet networks | |
US9507654B2 (en) | Data processing system having messaging | |
Elshuber et al. | Dependable and predictable time-triggered Ethernet networks with COTS components | |
CN116737673B (zh) | 嵌入式操作系统中文件系统的调度方法、设备及存储介质 | |
CN116737672B (zh) | 嵌入式操作系统中文件系统的调度方法、设备及存储介质 | |
CN114024916B (zh) | 数据传输方法、装置、计算机可读存储介质及处理器 | |
CN107621974B (zh) | 中断请求分配装置和对此的运行方法 | |
Lu et al. | TS-DDS: Data Distribution Service (DDS) Over In-Vehicle Time-Sensitive Networking (TSN) Mechanism Research | |
CN112579317A (zh) | 一种系统广播消息的处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Texas in the United States Patentee after: NXP America Co Ltd Address before: Texas in the United States Patentee before: Fisical Semiconductor Inc. |
|
CP01 | Change in the name or title of a patent holder |