CN101129033A - 控制对共享资源的访问的方法和*** - Google Patents
控制对共享资源的访问的方法和*** Download PDFInfo
- Publication number
- CN101129033A CN101129033A CNA2006800061634A CN200680006163A CN101129033A CN 101129033 A CN101129033 A CN 101129033A CN A2006800061634 A CNA2006800061634 A CN A2006800061634A CN 200680006163 A CN200680006163 A CN 200680006163A CN 101129033 A CN101129033 A CN 101129033A
- Authority
- CN
- China
- Prior art keywords
- data item
- priority
- wait
- flit
- data
- 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/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- 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/02—Topology update or discovery
- H04L45/06—Deflection routing, e.g. hot-potato routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/15—Flow control; Congestion control in relation to multipoint traffic
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了控制数据项对共享资源的访问的方法和***,其中,每个数据项被分配了多个优先级之一,以及其中,当已经将某个优先级的预定数量数据项发送到共享资源时,那个优先级将等待,即,不发送具有那个优先级的进一步数据项,直到所有较低的非等待优先级将一个或多个数据项发送到共享资源。以此方式,可以为所有优先级获得保证服务。
Description
技术领域
本发明涉及控制对共享资源的访问,尤其涉及为到共享资源的数据传输提供预定保证的控制。
背景技术
这种类型的技术可以参见:US 2004/001502,“An asynchronouson-chip network router with quality-of-service(QoS)support”,Felicijan T等人,SOC conference,2004,proceedings,IEEE,International Santa Clara,CA,USA,Sept.12-15,2004,Piscataway,NJ,USA,IEEE,pp 274-77,“An asynchronous low latency arbiter forq uality of service(qos)applica-tions”,Felicij an T等人,microelectronics,2003,ICM 2003,Procee-dings of the 15thinternational conference on Cairo,Egypt,Dec.9-11,2003,Piscataway,NJ,USA,IEEE,pp 123-26,“Virtual channel designs for guaranteeingbandwidth in asynchronous network-on-chip”,Bjerre-gaard T等人,Norchip conference,2004,proceedings,Oslo,Norway,8-9Nov.2004,Piscataway,NJ,USA,IEEE,pp 269-272,“Rate-controlledstatic-priority queueing”,以及参见Zhang H等人,Networking:founda-tion for the future,San Francisco,March 28-April 1,1993,Proceedings of the annual joint conference,on the computer andcommunication societies(INFOCOM),Los Alamitos,IEEE Comp.Soc.Press,US,vol.2,conf.12,pp 227-236。
在许多数据传输应用中看到的问题是,数据量要传输到诸如链路或存储器的共享资源,以及可能不同时发送所有数据。因此,必须决定首先发送什么数据和哪些数据必须等待。不用说,这种决定影响数据到共享资源的传输,譬如,等待时间,随后影响资源所参与的应用的性能。本发明提供了调度引向共享资源的数据的新方式,使得可以获得与等待时间和带宽有关的保证。
发明内容
在第一方面中,本发明涉及一种控制对共享资源的访问的方法,该方法包含:
-接收与要发送的一个或多个数据项有关的信息,每个数据项被分配多个不同预定优先级之一;和
-通过如下步骤重复地将项目提供给资源:
o将具有最高非等待优先级的待发送数据项发送给资源,以及
o那个优先级随后等待来自已经接收到与待发送数据项有关的信息的每个非等待较低优先级的数据项的发送。
一般说来,这些数据项可以是任何类型的数据项,譬如,以太网分组、flit(流控制单元)、或它们的组成部分。每个数据项可以单独管理和按优先级排列,或者,可以按优先级排列较大量数据,随后将它们分解成数据项。
数据的优先级可以是预先确定的,从数据项或从中导出数据项的较大量数据的内容中确定。可替代地,优先级可以从其源或其接收者中确定。
在当前上下文中,优先级可以用任何希望的方式来表示。由于本发明一般以电路形式实现,一般使用诸如整数的数字来代表优先级。但是,即使对于电路,这也不是必需的。
一般说来,确定优先级的顺序以便能够从任何优先级对中确定哪个较高以及哪个较低。这与代表优先级的实际方式无关。在当前上下文中,优先级可以以任何方式表示,以及其顺序(一个比另一个高)可以用任何方式确定。
接收步骤可以单独接收数据(然后确定它的优先级)、只接收优先级、或接收数据和分配的优先级两者。下面进一步描述了这些信息接收方式的不同方面。
当前,共享资源可以是诸如存储器、链路、处理器和/或交叉开关的适用于接收数据的任何类型的资源。
本发明涉及控制将数据项发送到共享资源的方式,不关心各个数据项,而是根据优先级来控制数据项的流动。
优先级可以是等待或非等待。等待意味着在这个时刻不将具有那个优先级的数据发送到共享资源。即使没有具有那个优先级的数据项希望发送到共享资源(也就是说,已经接收到指示这样的数据项准备好发送的信息),优先级也可以是等待。
最好,某个优先级必须等待的非等待较低优先级是在发送具有相关优先级的数据项的那一刻是非等待的那些优先级。
在任何时刻,要发送到资源的下一个数据项是下列数据项:
-准备好发送(即,接收到相关信息),
-具有非等待的优先级,以及
-具有数据项已准备好的非等待优先级的最高优先级。
一旦发送了数据项,那个优先级将等待,直到非等待的并且数据准备好发送的所有较低优先级有机会将数据项发送到共享资源。
应该注意到,在优先级是等待时,与低于等待优先级的其它优先级有关的数据项可能变成准备好发送。等待优先级无需等待也来自这种优先级的发送。
人们可能希望在当前优先级可再次发送之前,与哪个较低优先级必须发送有关地为每个优先级保存记录。
请注意,即使每当所有较低(所有其它优先级)的非等待优先级发送了数据项时,最好只允许最高优先级至少发送一次,也可以为所有优先级获得与等待时间和可获得的带宽两者有关的某种保证。另外,请注意,到共享资源的数据项发送与哪个优先级实际发送数据项无关可能是最佳的(譬如,链路的整个容量)。这可以从如果准备好发送分配了其它优先级的数据项,则某个优先级只能等待中看出。如果只有单个优先级具有要发送的数据项,则这个优先级就不是等待的,并且可以将数据项逐个发送给共享资源。
提供数据项的一种方式进一步包含提供多个队列的步骤,每一个队列与优先级之一有关,以及其中:
-接收步骤包含接收与分配给数据项的优先级有关的队列中的每个数据项,
-发送步骤包含发送来自具有最高优先级的非等待队列的数据项,以及
-等待步骤包含那个队列然后等待来自具有较低优先级的所有非空非等待队列的数据项的发送。
因此,数据项被接收并提供到与相关优先级有关的队列中。
关于这一方面,等待步骤接着可包含:当将来自每个较低优先级非空非等待队列的数据项从数据提供者发送到共享资源时,将来自队列的下一个数据项转发到存储器,以及其中,所述发送步骤包含发送存储器中具有最高优先级的那个数据项。
这样就简化了进一步分离等待状态和确定发送哪个数据项的过程。在本实施例中,存储器简单地保存非等待的每个非空队列的数据项。因此,可以简单地确定要发送哪些数据项。
事实上,同一存储器结构可能不是用于实际数据项,而是用于与数据项有关的信息,以便使得可以看出哪些优先级是等待,并便于容易地确定适用于发送的下一个优先级。
可以防止等待队列将数据项发送到存储器,使得存储器中不具有数据项的非空队列将是等待队列。
在另一个实施例中,该方法进一步包含提供多个数据提供者的步骤,多个数据提供者的每一个适用于:
-提供每一个都分配了优先级之一的数据项,
-提供与准备从数据提供者发送到共享资源的一个或多个数据项有关的信息,以及
其中:
-发送步骤包含:数据提供者将数据项发送给资源,以及
-等待步骤包含:防止从任何数据提供者发送具有等待优先级的准备好的数据项,直到来自每个非等待较低优先级的数据项已经从数据提供者发送到共享资源。
在这种状况下,该方法或实现该方法的***可能不具有或接收数据,而适用于指示数据提供者(通知发送数据项的方法)何时发送数据项(最好还有其优先级的标识,以便提供者确定发送许多数据项中的哪些)。
在一种方式中,等待步骤譬如通过发送防止信号,积极地防止数据提供者发送等待优先级的数据项。可替代地,提供者适用于在被命令这样做之前不发送数据项。这可能是何时数据提供者进一步适用于在因此受到指令时转发数据,以及其中:
-发送步骤包含指令具有最高非等待优先级的准备好数据项的数据提供者将数据项转发给共享资源,以及
-等待步骤包含不指令具有等待优先级的准备好数据项的数据提供者发送等待优先级的任何数据项。
一般说来,接收步骤最好包含接收数据项并将数据项提供给存储设备或存储器,以及其中,发送步骤包含发送来自存储设备或存储器的数据项。
在一个实施例中,等待步骤包含:对于预定优先级,只有当预定优先级发送了多个数据项时,才等待数据项的发送。这样,在这个优先级进入等待阶段之前,这个预定优先级将被提供比每次只发送单个数据项时更大的到资源的带宽。
在这种状态下,为非等待队列保存要发送到资源的数据项的任何存储器可以为预定优先级留出多个数据项的空间并为其它优先级留出较少数据项的空间。
在另一个方面中,本发明涉及一种控制对共享资源的访问的方法,该方法包含:
-接收与要发送的一个或多个数据项有关的信息,每个数据项被分配多个不同预定优先级之一;
-为每个优先级定义一个或多个发送过程,与数据项有关的每段信息被分配相关优先级的发送过程;和
-通过如下步骤重复地将项目提供给资源:
o将已经将与其有关的信息分配给为最高优先级定义的非等待发送过程的数据项发送给资源,以及
o那个发送过程随后等待来自每个较低优先级的数据项的发送,所述每个较低优先级已经被分配与待发送数据项有关的信息,并且所述每个较低优先级的至少一个发送过程是非等待的。
这个方面与第一方面密切相关,但在这个方面中,可以为一个或多个优先级定义服从第一方面的发送特性的几种发送手段。这样,那个优先级可以获得较大的带宽,同时仍然可以为其它优先级提供可确定和实际的服务保证。
并且,通过控制将接收信息分配给哪个发送过程以及选择哪个发送过程来发送数据项,可以获得各种各样的行为。此外,将接收信息分配给发送过程的时刻将确定***的行为。最好,将信息分配给将使相关数据项最早发送的发送过程。
在一个实施例中,那个发送过程随后实际等待来自较低优先级的每个非等待发送过程的数据项的发送,所述较低优先级已经被分配与待发送数据项有关的信息。
一般说来,在第一和第二方面中,优先级/队列/发送过程最好等待只发送在发送时刻发送的数据项当中在该发送时刻已经接收到其信息的数据项。因此,在这些方面中,最好在数据项的发送时刻进行哪些队列、发送过程或优先级是非等待和非空的确定。在一种方式中,将存储器分配给每个优先级,并将应该在这个优先级再次非等待之前发送数据项的非空等待较低优先级的信息供应给那个存储器。然后,在每次发送数据项时更新这个存储器。
本发明的另一个方面涉及一种控制对共享资源的访问的***,该***包含:
-适用于接收与要发送的一个或多个数据项有关的信息的接收装置,每个数据项被分配了多个不同预定优先级之一;和
-适用于通过如下步骤重复地将数据项提供给资源的发送装置:
o将待发送并具有最高非等待优先级的数据项发送给资源,以及
o随后让来自那个优先级的数据项的发送等待,直到已经通过已经接收到与待发送数据项有关的信息的每个非等待较低优先级发送了数据项。
如上所述,接收装置可以接收实际数据项,以及自已确定相关优先级,可以接收数据项和优先级两者,或可以只接收优先级。
在一个总实施例中,该***进一步包含每一个与优先级之一有关的多个队列,以及其中:
-接收装置适用于将每个数据项提供给与分配给数据项的优先级有关的队列,
-发送装置适用于发送来自具有最高优先级的任何非等待队列的具有最高非等待优先级的数据项,随后让那个队列等待来自与较低优先级有关的所有非等待队列的数据项的发送。
然后,发送装置可以适用于,当已经将来自每个非等待较低优先级的数据项从队列发送到共享资源时,将来自队列的下一个数据项转发到存储器,以及将存储器中具有最高优先级的那个数据项发送给资源。
如上所述,另外或可替代地,那种类型的存储器可以另外或替换用于以这样方式接收的信息,使得仅在存储器中接收用于非等待优先级的信息,以便快速确定要发送数据项的下一个优先级。
在同一个或另一个实施例中,该***可以进一步包含多个数据提供者,多个数据提供者的每一个适用于:
-提供每一个都分配了优先级之一的数据项,以及
-提供与准备从数据提供者发送到共享资源的一个或多个数据项有关的信息,
其中,发送装置适用于指令数据提供者将具有最高非等待优先级的数据项发送给资源,以及随后防止从任何数据提供者发送具有等待优先级的准备好数据项,直到来自每个非等待较低优先级的数据项已经从数据提供者发送到共享资源。
关于这一点,数据提供者可以适用于当因此受到指令时转发数据项,以及其中,发送装置适用于指令具有最高非等待优先级的准备好数据项的数据提供者将数据项转发给共享资源,以及随后不指令具有等待优先级的准备好数据项的数据提供者发送等待优先级的任何数据项,直到已经指令数据提供者发送来自每个非等待较低优先级的数据项。
一般说来,接收装置最好适用于接收数据项并将数据项提供给存储设备或存储器,以及其中,发送装置适用于发送来自存储设备或存储器的数据项。
在当前上下文中,共享资源可以是诸如链路、存储器、处理器、集成电路或交叉开关的适用于接收数据项的任何类型资源或接收器。
如上所述,当发送装置适用于只有在来自优先级的多个数据项已经发送到资源之后才让优先级等待时,可以将较大带宽提供给预定优先级。
在第四方面中,本发明涉及一种控制对共享资源的访问的***,该***包含:
-适用于接收与要发送的一个或多个数据项有关的信息的接收装置,每个数据项被分配了多个不同预定优先级之一;
-对于每个优先级、一个或多个发送过程,与数据项有关的每段信息被分配给相关优先级的发送过程;以及
-适用于通过如下步骤重复地将数据项提供给资源的发送装置:
o将与其有关的信息已经被分配给最高优先级的非等待发送过程的待发送数据项发送给资源,以及
o随后让那个发送过程随后等待来自每个较低优先级的数据项的发送,所述每个较低优先级已经被分配与待发送数据项有关的信息并且其至少一个发送过程是非等待。
如上所述,这提供了控制数据项的流动并将可确定和可控制发送保证提供给优先级的附加方式。
在一个实施例中,发送装置适用于随后让那个发送过程随后等待来自较低优先级的每个非等待发送过程的数据项的发送,所述较低优先级已经被分配与待发送数据项有关的信息。
此外,在第三和第四方面中,发送装置最好适用于让优先级/队列/发送过程等待只发送在发送时刻发送的数据项当中在发送时刻接收到其信息的数据项。当确定时刻固定时,这使过程更易于控制。
附图说明
在下文中,将参照附图描述本发明的优选实施例,其中:
图1例示了连接独立计时核心的异步网络便于大规模SoC设计中的模块化;
图2例示了虚拟信道A到D共享物理链路的基本链路;
图3例示了基于优选实施例的完整链路,其中,静态优先级队列(SPQ)按优先级排列对链路的访问以提供等待时间保证,许可控制确保flit的流动服从SPQ所需条件,以及VC控制保证无堵塞行为;
图4例示了图3的链路的操作例子;
图5是通过连接预留的一系列VC的一部分的模型;
图6例示了基于共享的VC控制;
图7例示了共享和非共享盒的示意图;
图8例示了许可控制示意图;
图9例示了flit等待时间分布与网络负载:(a)慢速路径,(b)快速路径;以及
图10例示了SPQ判优器的优选异步实施和伴随的合并数据路径。
具体实施方式
本实施例示出了本发明(在下文中,称为ALG-异步等时时间保证)如何可用作异步片上网络(Network-on-Chip,NoC)中的链路调度器。ALG所提供的保证服务(GS,guaranteed services)不是相反地相互依赖,因此ALG克服了基于时分多路复用(TDM)的带宽(BW)分配方案的局限性,并且支持通过不同GS要求表征的各种各样业务类型。在GS谱的相对端,ALG不仅支持诸如中断的等待时间关键的低BW业务,而且支持没有严格的等待时间要求,但在BW方面要求GS的流式数据。另外,ALG在完全异步环境下工作。我们利用浅区0.12μm CMOS标准单元实施来演示。
其余的描述按如下组织。第1部分考察GS的背景,提出当前解决方案,并为NoC中的最佳解决方案规定要求。第2部分说明ALG调度的概念并提供其功能的证明,以及第4部分将在第3部分中给出的证明推广到也计及缓冲器限制。第4部分涉及这个方案下的带宽分配。在第5部分中,给出片上ALG链路的实施,以及在第6部分中提供模拟结果。
1.保证服务
在下文中,首先讨论网络性能参数并建立分类法。然后,我们议论面向连接的路由的需要并讨论用在当前NoC中和宏观网络中的GS方案,最后我们为NoC中的GS提出一组要求。
1.1.性能参数
服务保证是用一个或多个性能参数来量化的。为了适当地规定服务限制,必须指明BW和等待时间两者。如果可以维持的吞吐量太小,则等待时间保证是无用的,同样,没有对引起的等待时间的限制,BW保证也是无用的。
虽然flit流的BW限制由其路径中的瓶颈确定,但网络中flit的总等待时间通过遇到的等待时间的总和来表征。这些等待时间包括访问所需网络连接的网络许可等待时间tadmit和许多跳跃等待时间,跳跃是从一个路由节点中的缓冲器穿过链路到达相邻路由节点中的缓冲器的flit移动。跳跃等待时间包括访问等待时间taccess,即,授权flit访问共享路由资源(例如链路)所用的时间,加上发送等待时间tlink,即一旦授权访问,将flit发送到下一个路由节点中的缓冲器所用的时间。因此,flit穿过X跳长的路径的总等待时间是ttotal=tadmit+taccess1+tlink1+...+taccessX+tlinkX。
1.2.面向连接的GS
为了提供硬服务保证,面向连接的路由是绝对必要的。在少连接路由中,所有数据在相同逻辑网络上行进,以及任何传输都潜在地使另一个传输延迟。GS业务必须是逻辑独立于网络中的其它业务。从***级的观点来看,对服务保证的硬限制是有益的,因为它们促进了模块设计流程。没有这样的保证,***的改变可能需要广泛的顶级重新验证。因此,NoC中的GS有可能缩短大型SoC设计的周期。此外,虽然BE路由网络的性能的形式验证往往是不可能的-如在关键性实时***中所希望的那样,但GS使它成为可能。
1.3.GS方案
提供BW保证的基本解决方案基于公平流体排队(FFQ,fair fluidqueuing)。FFQ是为每条连接实现分离队列的队列头处理器共享(HOL-PS,head-of-line processor sharing)的一般形式。队列头以这样的方式得到服务,那就是,提供对共享媒体(例如链路)的公平共享访问。
在异步NoC中,FFQ型访问方案存在非常长的最坏情况等待时间的令人不愉快的缺点。树形判优器可以近似FFQ,但是,由于没有任何有关彼此之间的输入定时,到达给定信道的任何分组在得到服务之前可能不得不等待所有其它输入。因此,跨越实现这种链路访问方案的异步NoC中的一系列链路累积起来的最坏情况等待时间非常长。此外,访问时间与BW预留成反比。为了获得短的等待时间,必须预留BW的大部分。在全局异步NoC中,可以保证经过网络的等待时间为每跳一个时钟周期,但是,访问源的连接的等待时间仍然与预留的BW成反比。此外,为了实现这样的短的每跳等待时间,由于连接不是独立缓冲的,需要显式的端到端流量控制机构。为了对与BW保证分离的等待时间提供更好限制,需要不同的方案。
由于显而易见,不可能在广域网中实现网络节点之间的时钟级同步,宏观网络具有全局异步性质。这使它们有点类似于异步NoC。在将FFQ型解决方案应用于GS时,异步NoC像上述那样的等待时间问题是众所周知的缺点。为了克服这些缺点,往往使用速率控制静态优先级(RCSP,rate controlled static priority)调度。在RCSP中,许可控制器将合适发送时间分配给所有输入分组。当这个时刻到来时,分组在静态优先级队列(SPQ,static priority queue)中排队。这种方式可以相互独立地不仅提供BW保证,而且提供等待时间保证。但是,许可控制要求节点具有局部时间观念。这使其不适合在异步NoC中实施。该方法的另一个缺点是无工作保留,这意味着,即使在信道队列中存在等待它们的合适发送时间的分组,路由器也可能处在空闲状态。这降低了使用可用网络资源的效率,并且,即使考虑了等待时间限制,也减少了平均连接等待时间和链路使用。
1.4.对NoC中的GS的要求
我们对NoC中的GS的解决方案的要求的建议是:(i)简单,以便于高工作速度和低硬件开销;(ii)工作保留,以便有效利用网络资源;以及(iii)可以对分离的或至少不是相反地相互依赖的等待时间和BW提供限制。另外,对异步NoC中的GS的解决方案的要求是:(iv)不需要时间观念,无论是局部的还是全局的。ALG符合所有这些要求,并因此是在同步和异步***两者中提供GS的有效解决方案。
在第3部分中,我们将说明ALG调度规则,演示在它在共享链路上提供等待时间和BW保证的用途。但是,请注意,基于ALG的访问可以应用于任何共享媒体。此外,尽管我们的实施基于异步电路,但AGL不局限于这样的电路。但是,ALG不需要时间观念的事实使它特别适合异步***。
2.基本ALG调度
在这个部分中,我们将说明基本ALG调度规则。我们首先直观地了解它的工作,然后正式证明它的工作。如下的所有时间指示都利用单位时间flit-time来量化。flit-time被定义为在物理链路上完成一次握手循环所用的时间。VC控制措施保证了没有flit停在链路上,因此,这样的握手的持续时间被明确定义。由于电路是异步,自然flit-time在整个网络中不是恒定的。但是,我们假设flit-time相当一致。
图3示出了完整ALG链路。ALG许可控制和静态优先级队列(SPQ)实施ALG调度器。VC控制围绕着它们。下文将清楚说明这三个子***如何一起工作,以便跨越共享物理链路的多个VC提供等待时间和BW保证。ALG调度的原理可以从里到外得到很好理解。SPQ按优先级排列VC以据此提供等待时间保证,但只能在某些条件下。许可控制确保了这些条件得到满足。VC控制机构保证了只有在接收端存在自由缓冲空间时才在共享链路上发送flit,因此防止了flit停在链路上以及使等待时间和BW保证失效。
2.1.按优先级排列信道
为了提供等待时间保证,需要提供对于链路访问时间的限制。考察图2,想像flit随机地但大间隔地到达信道A到D。现在考虑按优先级服务的信道,A具有最高优先级。到达A的flit总是立即得到服务,因此保证了最大链路访问时间是一个flit-time,即,完成潜在正在进行的发送所用的时间。由于我们此刻作出了在到达A的flit之间存在大间隔的简化假设,到达B的flit在它们得到服务之前等待A不多于一次。因此,B上的flit将最多延迟两个flit-time,因为它们将最多等待正在进行的发送完成以及等待A上的发送。同样,C将等待最多三个flit-time,以此类推。其结果是,最大链路访问时间与信道的优先级成正比。这就是图3中通过SPQ实现的功能。
2.2.许可控制
上面说明的规则要求大的flit间隔。这未必可以保证,尤其在具有分布式路由控制的异步网络中。即使在源提供了特定flit间隔,网络也可能将抖动引入数据流中,使间隔要求在网络内的某处失效。这使调节对SPQ的许可的许可控制级成为必需。在图3中,ALG许可控制被例示成SPQ前面的框。这有点类似于用在宏观网络中的RCSP,因为它也实现许可控制级和SPQ。但是,在RCSP中,许可是基于信道的局部定时(为每个优先级调度合适发送时间)。在根本没有时间观念的完全异步***中,这是不可能的。
通过ALG许可控制对未失效的SPQ的等待时间限制实现的条件是给定(较高优先级)VC上的flit只能延迟另一个(较低优先级)VC中的flit一次。这可以通过当flit争夺对给定VC的访问时考察在SPQ中等待的flit来实现。为了不使较低优先级VC上的flit的等待时间保证失效,在许可新的flit之前,必须为在将给定VC上的在前flit按优先级排列在SPQ中的同时正在等待的所有flit服务。当正在链路上发送flit时,这是通过取样SPQ的占用来保证的。一旦这个时刻在SPQ中等待的所有flit都得到服务,就可以许可同一VC上的新的flit。因此,较低优先级的VC上的flit将被每个较高优先级VC上的flit最多延迟一个flit_time。请注意,当授权给定flit访问链路时,只存在在较低优先级VC上等待的flit,这是因为按照SPQ功能的定义,较高优先级VC上的所有flit都已经得到服务。
图4通过例子例示了ALG。可以看到B和C队列的等待时间保证是如何得到满足的。A队列有太多flit进入,并因此被许可控制禁止。由于在前一链路上非常迅速地发送A flit(比保证等待时间限制快),可以在网络中的较早点找到在A上出现突发的原因。
2.3.ALG的等待时间和带宽保证
在这个部分中,我们将陈述由基本ALG连接提供的等待时间和带宽保证。这些结果将在第3.4部分中推断出。ALG的服务保证通过为连接预留的每个VC的优先级以及每条链路上的总VC数量来表征。考虑在一系列ALG链路1,2,...,X上预留了具有优先级Q1,Q2,...,QX的VC的连接。每条链路实现N个VC。这些链路提供对链路访问时间的Q1,Q2,...,QX flit-time的限制。在源处考虑flit间隔tinterval≥N+Qmax-1个flit-time的条件下,就是这样,Qmax是一系列VC上的最大Q值。这就是在第4.4部分中导出的所谓间隔条件。间隔条件也是连接的访问速率保证,这样,用总链路容量的分数:BWmin=BWmin[Qmax]=BWlink/(N+Qmax-1)来表征连接的BW保证。
重要的是注意到这样的事实:由ALG提供的等待时间保证与BW保证是分离的。当N(即链路上VC的数量)增加时,可以使BW保证任意小,而仍然保持链路访问时间小到一个flit-time。因此,支持具有低BW需要(例如中断)的等待时间关键连接,而无需过分分配BW。
尽管基于TDM型BW分配的NoC的现有(异步)GS规则实现了每跳一个flit-time的等待时间,但最初连接访问等待时间仍然使得总的端到端等待时间与BW保证成反比。只要满足间隔条件,ALG就提供对GS连接的瞬时访问。此外,可以注意到,可以使异步网络中的每级正向等待时间非常小,远小于可比同步电路的时钟周期。因此,在ALG保证对等待时间的限制的同时,异步NoC也可能具有短得多的最小等待时间。利用异步与同步电路来实现NoC的主要优点就在于此。
2.4.证明
在下文中我们将证明,如果在源考虑间隔条件,则可以规定端到端连接等待时间的限制。许可控制可能保持flit,但只有当flit早于其全局调度时,才使局部观察的flit间隔缩短。该证明由两个部分组成。在第一部分中,证明ALG规则工作于单条链路。首先证明在连接上发送的第一个flit满足它的等待时间要求,或规定它的期限。然后证明在规定了其期限并符合间隔条件的flit之后的任何一个flit也规定它的期限,并且从中获得间隔的值。按照归纳法,符合间隔条件的所有flit都规定它们的期限。在证明的第二部分中证明,对于一系列ALG链路,如果在源考虑间隔条件,则flit将在每条链路上规定它的期限。因此,与间隔条件在网络内失效无关,连接的端到端等待时间受每条链路上的等待时间保证的总和的限制。
单条链路定理:在实现N个VC的ALG链路上,在tinterval≥N+Q-1个flit-time的flit间隔条件下,保证VC Q上的所有flit将具有Q个flit-time的最大链路访问时间。
证明:采用实现每一个对应于SPQ中的优先级1,2,3,...,N的N个VC的给定链路。到达给定VC Q∈{1,...,N}的第1个flit将被允许立即访问SPQ。在SPQ中,在被允许访问链路之前最长等待Q个flit-time。因此,规定其期限由Q个flit-time的最大链路访问时间来限制。
现在考虑Q上,允许立即访问SPQ并因此规定其期限的flit A、以及也在Q上接在flit A之后的flit B。flit B比flit A晚tinterval个flit-time到达。flit A访问SPQ等待了0个flit-time,以及在SPQ中最多Q个flit-time。当允许flit A访问链路时,在SPQ中最多N-Q个flit(即,优先级比Q低的VC的数量)正在等待。根据ALG规则,必须在允许Q上的下一个flit访问SPQ之前发送所有这些flit。在最坏情况的情形中,最多Q-1个flit(即,优先级比Q高的VC的数量)可以采用比必须在Q的许可控制许可flit B进入SPQ之前发送的N-Q个flit高的优先级。这些部分延迟的总和指示可在Q上的一个flit和许可进入SPQ的下一个flit之间经过的最长时间Q+(N-Q)+(Q-1)=N+Q-1。这意味着,如果tinterval≥N+Q-1个flit-time,那么,flit B必定被允许立即访问SPQ,并且,当在SPQ中最多等待Q个flit-time时,它也规定其期限。因此,在间隔条件下,由于接在规定了其期限的flit之后的任何一个flit本身都将规定其期限,并由于第1个flit规定其期限,按照归纳法,所有flit都将规定它们的期限。
我们现在证明,对于一系列ALG链路,即使由于在网络中引入了抖动而间隔条件局部失效,ALG也保证所有flit在每条链路上都规定它们的期限。因此,端到端等待时间限制是每条链路的等待时间限制的总和。在这一点上,我们仍然假设在节点中总是存在足够的缓冲空间。在第5部分中,我们通过计算缓冲要求来加强该证明。
链路系列推论:在总是存在足够的缓冲空间的假设下,对于在每条实现N个VC的一系列(X条)ALG链路上预留了VC Q1,Q2,...,QX的给定连接,在源处遵守flit间隔tinterval≥N+Qmax-1个flit-time的条件下,等待时间限制是每条链路上的等待时间限制的总和。这里,Qmax是{Q1,Q2,...,QX}的最大值。
证明:考虑在其上预留了VC Q∈{Q1,Q2,...,QX}的所涉及连接上的链路、以及在那条链路上已经规定了其期限的连接上的flit A。由于flit A已规定了它的期限,根据上面单条链路定理的证明,许可控制将许可同一VC上的前进flit B在flit A被允许访问SPQ之后的最多N+Q-1个flit-time进入SPQ。由于flit A已规定了它的期限,它会准时或超前其时间表。如果flit B比flit A更超前其时间表,它将在flit A被允许访问SPQ之后不到N+Q-1个flit-time到达,以及许可控制将不允许它立即访问SPQ。在flit A被允许访问之后最晚N+Q-1个flit-time,flit B必定被允许访问。在源处它们的间距是N+Qmax-1个flit-time。现在是这个值或更小,因此,flit B至少与flit A一样远超前其时间表。因此,它也规定其期限。另一方面,如果flit B由于网络中较前级的拥塞而不如flit A超前其时间表,它将在flit A被允许访问SPQ之后多于N+Qmax-1个flit-time到达。因此,它将被允许立即访问,并且规定其期限。
在连接上发送的第1个flit规定其期限,因为它在任何链路的许可控制中都未受到阻碍。由于接在规定其期限的flit之后的任何一个flit本身规定其期限,按照归纳法,连接上的所有flit在所有链路都规定它们的期限。
最小可维持BW按如下得出:
最小带宽推论:在对每条提供总带宽BWlink和每条实现N个VC的一系列(X条)ALG链路预留了VC Q1,Q2,...,QX的给定连接上,维持的最小带宽将是BWmin=BWlink/(N+Qmax-1)。这里,Qmax是{Q1,Q2,...,QX}的最大值。
证明:根据链路系列推论,符合间隔条件tinterval≥N+Qmax-1个flit-time的ALG连接上的所有flit都具有限制的等待时间。因此,可以链路所支持的总flit速率的至少1/(N+Qmax-1)的flit速率来发送flit流而不会引起拥塞。从中可以直接得出,可维持带宽至少是:BWmin=BWlink/(N+Qmax-1)。
3.缓冲器
在前一部分中,我们假设了flit在网络中自由流动,只受ALG链路访问调度规则的约束。由于这个工作以决不会丢掉flit的无损网络为目标,每条链路也必须实现反压流控制,保证只能在接收端具有空闲缓冲空间时才在VC上发送flit。这样就引入了许可控制,即图3所示的VC控制的额外层。VC控制围绕ALG许可控制和SPQ,仅在接收VC缓冲器指示其具有空闲空间时才让flit通过。如果它可以自由移动到链路的接收端,则flit必须仅呈现给ALG许可控制。否则,通过ALG规则提供的等待时间保证可能因flit停在链路上而失效。另一方面,flit必须不因VC控制而过度延迟,致使失去其期限,再次使ALG等待时间保证失效。
在这个工作中,我们应用了基于共享的VC控制。例示在图6中的方案使用每个VC单条导线来实现对共享媒体(例如链路)的无堵塞访问。在许可flit之后,锁定共享盒,不允许进一步的flit通过。flit穿过媒体到达远侧的非共享盒。非共享盒实现接受flit的锁存器。当flit再离开非共享盒时,转换到解锁控制线。这样就解锁了共享盒,许可另一个flit到达媒体。只要媒体未锁死,就不会有flit停在其内。
如图5所示,我们将连接模型化为一系列ALG链路,在输入端和为连接预留的VC缓冲器之间存在直接电路。这个假设对实现无堵塞切换的路由器结构有效。图中的VC缓冲器分别在它们的输入端和输出端上实现非共享盒和共享盒。涉及的等待时间是作为允许flit访问链路所用的时间的链路访问等待时间taccess、作为一旦授权访问链路flit穿过链路、经过路由器并进入下一个VC缓冲器的等待时间的链路转发等待时间tlink、和作为解锁信号传送回到前一个VC缓冲器中的共享盒、指示可以允许另一个flit访问链路所用的时间的解锁等待时间tunlock。当没有发生拥塞时,除了链路访问等待时间之外的其它所有等待时间都是恒定的。由每一条实现N个VC的一系列(X条)ALG链路组成的连接的端到端等待时间限制与在第3部分中引入的ttotal类似:tend2end=taccess1+tlink1+taccess2+tlink2+...+taccessX+tlinkX。为了简单起见,这里认为N在所有链路上都相同。链路访问时间由在每条链路上预留的优先级Q1,Q2,...,QX决定:taccess1=Q1个flit-time,taccess2=Q2个flit-time,以此类推。根据第4.3部分,连接上的最大Q,即Qmax指示连接的BW保证,因为这是路径上的瓶颈:BWmin=BWlink/(N+Qmax-1)。
我们现在需要确定当flit已到访问SPQ的时间时,即,当比其时间表超前0时间时总是解锁共享盒的要求。如果是这样,flit将面对ALG许可控制,并且,根据ALG规则,将规定它的期限。在下文中,我们将证明在flit间隔条件和链路周期条件tlink+tunlock<N-1个flit-time的情况下,单元件VC缓冲器足以使ALG调度规则适当地工作。
单个缓冲器定理:在flit间隔条件tinterval≥N+Qmax-1个flit-time和链路周期条件tlink+tunlock<N-1个flit-time下,每个节点中的每个VC的单元件flit缓冲器足以保证一系列链路推论的有效性。
证明:如图5所示,考虑对每一条实现N个VC的一系列ALG链路预留了VC(...,Qi,Qj,...)的连接部分。VC缓冲器VCbufi和VCbufj的每一个都具有一个flit的缓冲空间。在重置时它们是空的,因此,在连接上发送的第1个flit不受VC控制的限制并将根据ALG规则来规定其期限。现在考虑正在规定其期限的flit A之后的flit B。由于flit A正在规定其期限,它将访问在与比其时间表超前0时间相对应的时间0最近的SPQj。此时,VCbufj将发信号通知VCbufi它已经准备好接收另一个flit。因此,VCbufi将在以后的时间tunlock,向下一个flit,即flit B开放它的输出端。flit A必须不晚于时间0-tlink离开SPQi,因此,adm1将允许flit B不晚于0-tlink+N-1=N-1-tlink个flit-time进入SPQi。如果这个时间晚于所述时间,VCbufl让flit B经过,那么,VCbufi将不是流的限制代理。因此,VC控制不是***中的限制代理的要求是:N-1-tlink>tunlock=>tlink+tunlock<N-1个flit-time。这构成了链路周期条件。如果链路周期条件成立,flit B将在如下时刻到达VCbufj:Q1+tlink+N-1-tlink=Q1+N-1个flit-time,它小于或等于Qmax+N-1个flit-time的所需flit间隔。因此,flit B在到达admj时规定它的时间表。
在源处Qmax+N-1个flit-time的最小flit间隔的间隔条件下,以及在tlink+tunlock<N-1个flit-time的链路周期条件下,在规定了其期限的flit之后的任何一个flit也将规定其期限。由于第1个flit规定了它的期限,按照归纳法,连接上的所有flit都规定它们的期限。
4.带宽分配
在其基本形式下,如直到现在所述的,ALG链路提供灵活的等待时间保证。可以选择其优先级与要建立的连接的等待时间要求相对应的VC。但是,根据所选VC的优先级,带宽保证是固定的。并且,在不同优先级之间,BW不是非常不同,范围从用于最高优先级的1/N到用于最低优先级的1/(2N-1)。在下文中,我们将描述在仍然满意基本ALG配置的灵活等待时间保证的同时,获得对连接的灵活BW分配的三种方法。
第一种方法(多信道方法)是普通的:在每条链路上将几个VC分配给单条连接。这有效地创建了事实上是几条‘平行’连接的连接,因此增加了数据容量。虽然可以在每条链路上局部地管理使用,但也可以在网络适配器上基于端到端来管理。这种分配BW的方法优点在于易于理解和实现。此外,flit以突发(具有小的间隔)的形式到达。在分开、独立缓冲的VC序列上发送前X个flit,X是在每条链路上为连接分配的VC的数量。因此,通过选择高优先级VC,可以使所有这些的等待时间非常短。这是小分组的主要优点,因为可以给予整个分组以非常低的总等待时间保证。在带有诸如OCP接口的总线型(存储器映射的)访问套接字的网络中,传输简单OCP命令的大多数分组在32位网络中由2-3个flit组成。通过分配与这种分组中的flit个数相对应的多个VC系列或组,这些命令的转发等待时间缩短至分配的最慢VC组的ALG等待时间。这种方法的缺点是链路的区域要求或多或少随着BW粒度而线性增加,该区域主要由flit缓冲器确定;由于每个VC需要一个flit缓冲器,BW粒度大致上与VC的数量成反比。此外,还需要宽的SPQ。这降低了SPQ的性能,在本实施例中,由于SPQ是链路的瓶颈,所以缩短了flit-time。
第二和第三种方法围绕通过基本ALG许可控制方案-无需实现更多缓冲空间,允许比正常允许更多地访问一个优先级的基本概念演化。因此,允许一个VC更频繁地访问SPQ,并因此,这个VC的吞吐量将增加。但是,由于flit不能独立开始,连接上的多flit分组的总等待时间比第一种方法更长。它们在整个网络中使用相同的缓冲器系列,因此,由于flit必须等待前一个flit离开连接的正在进行节点中的缓冲器,它们在连接上将具有不可忽略的间距。
根据第二种方法(多许可控制方法),每个VC具有许多许可控制。如果这些许可控制的任何一个是非等待的,则可以许可flit。然后,一旦发送许可的flit,许可flit的许可控制(如果更多许可控制是非等待的,可以选择这些许可控制的任何一个作为许可flit的‘那一个’)将根据前面针对基本ALG调度方案描述的方法来取样SPQ的较低优先级的占用。可以看出,对于实现的每个许可控制级(或活动的每一个),每个VC可以潜在地堵塞一次较低优先级VC的发送,因此,相应地缩短这些VC的等待时间保证。VC的等待时间保证因此与较高优先级的VC的数量无关,而是与较高优先级VC的活动许可控制级的总数有关。该方法对应于flit缓冲器利用基本ALG链路中的两个或更多个不同优先级来访问,然后仅仅选择对许可开放的那一个。但是,由于优先级决不会同时使用(由于只有一个flit缓冲器),它们将受到相等的等待时间保证,根据两个优先级的最高优先级,它们决不会相互堵塞。
在每条链路上,只有当下一个节点中的flit缓冲器空闲时,才可以发送flit。也就是说,只有在正在进行链路上发送了前一个flit之后,才可以在链路上发送flit。这赋予我们分离条件。假设在下一个节点中flit将不被许可控制堵塞,即,flit不超前其时间表t_(separation)=t_(link)+Q_(proceeding_link)+t_(unlock)。请注意,与如前所示的间隔条件不同,分离条件独立于N。间隔条件仍然适用于每个许可控制级,但它独立于应用于连接上的flit流的分离条件。因此,如果VC实现两个许可控制级:如果t_(interval)>=2*t_(separation),我们为给定VC获得加倍的BW。这对应于第5部分的链路周期条件。如果t_(interval)<2*t_(separation),将保证不到两倍的BW,因为flit将受到比间隔条件更严格的分离条件的限制。因此,可获得的最大带宽由链路周期条件来确定,以及通过间隔条件来‘平衡’这个条件的倍数。
请注意,这里提及的Q不等效于SPQ的优先级,而是根据较高优先级VC的活动许可控制级的总数加1计算的Q。
根据第三种方法(计数许可控制方法),每当按其优先级发送flit时,许可控制级不取样占用(以及随后如果有较低优先级的任何VC在等待,则关闭访问),而只在每个第X次上取样占用。实际上,每当许可控制打开(变成非等待)时,可以发送flit的突发。在突发的最后flit之后,许可控制关闭,取样较低优先级VC的占用,并等待发送等待flit所占用的那些VC。因此,较低优先级VC的每个flit潜在地不得不等待这个特定(较高优先级)VC X次。它的等待时间保证将相应地缩短。与多许可控制方法一样,获得可用于VC的带宽的增加,以较低优先级的VC的等待时间为代价。
5.实现
根据图3,基本ALG链路由三个基本子***组成:VC控制、许可控制和SPQ。
5.1.VC控制
应用的VC控制方案的功能描述在第4部分中。图7示出了一个VC的共享盒和非共享盒的实现的示意图。单线解锁信号起双相确认作用。pulse_gen生成的脉冲必须足够长以重置C元件c_clock。在共享盒的输出端的output_decouple电路将共享媒体与VC分离。因此,与慢的各个无关地保证了flit的自由流动。
5.2.许可控制
ALG调度的新颖性在于许可控制级,它控制flit的流动,使SPQ可以提供适当的等待时间限制。
许可控制的每个信道为较低优先级的每个信道实现一位的状态寄存器。当设置了给定信道的一个或多个状态位时,许可控制停止许可flit在那个信道上到SPQ。当允许信道上的flit访问链路时,根据SPQ的占用的瞬像来设置状态位。占用指示在允许给定信道访问链路(按优先级排列)时,哪些信道具有在SQP中等待的flit。当这些等待flit被授权访问链路时,状态位随后被重置。当全部得到发送时,清除所有状态位,以及许可控制许可给定信道上的另一个flit。
图8示出了信道n的许可控制的示意图。每个较低优先级信道一个的状态位寄存器[n-1...0]被实现成RS锁存器。将信道n当作在给定时间争夺对链路的访问的最高优先级信道。SPQ生成占用向量,以及它的值在n的确认是高电平时是稳定的。状态位寄存器的set输入是n的确认和占用向量的逻辑和(AND)。这样,当允许信道访问链路(由其变高的确认来指示)时,根据SPQ的占用来设置适当状态位。状态位寄存器reset输入端简单地与相应信道的确认信号连接。当允许信道访问链路时,它的确认变高,于是,在每个较高优先级信道的许可控制中,与这个信道相对应的状态位被重置。当所有状态位都是低电平时,输入请求被允许传播到输出端。由于局部确认使状态位得到设置,在请求路径中需要C元件,而不是AND门。这保证了输出请求不降低,直到输入请求降低。
请注意,状态位寄存器的set和reset是互斥的,因为在给定时刻只有一个信道可以访问链路。
5.3.静态优先级队列
SPQ判优器的异步实现和伴随的合并数据路径显示在图10中。关键控制信号是‘使能(enable)’。在重置时,‘enable’是低电平。输入端上的非对称C元件保证了在‘enable’是高电平时,由于这指示判优器的活动阶段,内部请求信号不降低。mutex实现所谓的锁定寄存器。当一个或多个输入请求传播到这些锁定寄存器的输出端时,这由OR门检测到,生成‘any_req’,使enable变成高电平。这又使锁定寄存器锁定,并且,只要‘enable’是高电平,新到达的输入请求被阻塞。此后,正好一个输出C元件启动,确认适当信道,以及在输出锁存器中捕获那个特定信道的数据。现在‘enable’降低,指示按优先级排列阶段结束。只要‘enable’是低电平,没有一个输出C元件可以启动,但一旦确认信道撤消其请求,以及链路确认了输出请求,相应C元件重置,使‘enable’开始另一个按优先级排列阶段。
通过假设mutex的‘g1’输出不过度慢于‘g2’输出,可以实现快RTZ阶段。RTZ所需的一切是使按优先级排列信道的‘r2’输入传播经过‘g2’端到输出C元件。只要在降低的‘g2’传播通过输出C元件返回到输入端并重新启动enable之前‘g1’降低,该假设就是安全的。包含‘g1’和‘g2’的两条RTZ定时路径从‘enable’变低开始。每当VC的数量加倍时,SPQ的周期只增加了三个双输入门深度(在0.12微米技术中约30-40ps)-一个在非对称C元件中,以及两个在完整检测OR门中。
许可控制用于设置其状态位的占用向量构成使能和锁定输入请求的逻辑AND。如最后部分所指出的,要求这个向量在确认是高电平时是稳定的。通过对锁定请求向量和使能进行AND运算,保证了当确认是高电平时,占用向量的位是稳定的或低的。由于状态位寄存器由高占用位来设置,这是足够好的。
6.结果
利用商用0.12μm CMOS标准元件来实现16位8-VC ALG链路。当应用典型定时参数时,该设计以与1.4ns的flit-time相对应的702MDI/s的速度进行模拟。共享物理链路实现了3级流水线。整个链路的元件区,即,预布局是0.012mm2,ALG调度器的核心(许可控制和SPQ)只花费0.004mm2。这表明ALG的好处就占地而言一点也不昂贵。
模拟了模仿一系列(3条)ALG链路上的连接的测试装置。观察到两种连接:预留高优先级VC的快连接,和预留低优先级VC的慢连接。在所有其它VC上引起随机背景业务的同时记录flit的等待时间。图9示出了对于不同网络负载,记录超过10000个flit的flit等待时间的分布。可以看出,甚至在100%的网络负载下,连接上的flit也规定它们的期限。随着负载增加,等待时间分布图推向等待时间限制,但决不会与它相交。可获得从3.6ns/跳开始以1.4ns(一个flit-time)为单位向上递增的转发等待时间限制。这包括ALG访问等待时间和跨越链路(共享盒、合并、流水线、分解和非共享盒-大约2.2ns)的恒定转发等待时间。快连接上的BW保证是1/8*702MDI/s=88MDI/s,而在慢连接上,它是1/15*702MDI/s=47MDI/s。
表1将ALG的保证与在NoC中使用的现有调度方案的那些作了比较。在该表中,N是每条链路上VC的数量,以及h是给定连接跨越的跳的数量。TDM用在同步NoC中,并在实现某种类型的端到端流控制的情况下,提供小到N+h的连接等待时间的限制。如果不是,等待时间限制缩短到异步公平共享的水平,即,(N+1)*h。该表表明,ALG提供了好得多的等待时间限制,并且,就可以示例的各种类型连接而言,一般更加灵活。
同步 | 异步 | |||
TDM | 公平共享 | ALG快速路径 | ALG慢速路径 | |
tedmittaccesstlink | N11 | 0N1 | 011 | 0N1 |
等待时间 | N+h | (N+1)*h | h | (N+1)*h |
带宽 | 1/N | 1/N | 1/N | 1/(2N-1) |
表1.不同GS方案的等待时间和带宽保证
Claims (20)
1.一种控制对共享资源的访问的方法,该方法包含:
-接收与要发送的一个或多个数据项有关的信息,每个数据项被分配了多个不同预定优先级之一;以及
-通过如下步骤来重复地将数据项提供给资源:
o将具有最高非等待优先级的待发送数据项发送给资源,以及
o那个优先级随后等待来自每个非等待较低优先级的数据项的发送,与所述非等待较低优先级的待发送数据项有关的信息已经被接收到。
2.根据权利要求1所述的方法,进一步包含提供每一个与优先级之一有关的多个队列的步骤,以及其中:
-所述接收步骤包含:在与分配给数据项的优先级有关的队列中接收每个数据项,
-所述发送步骤包含:发送来自具有最高优先级的非等待队列的数据项,以及
-所述等待步骤包含:那个队列然后等待来自具有较低优先级的所有非空非等待队列的数据项的发送。
3.根据权利要求2所述的方法,其中,所述等待步骤包含:当来自每个非等待较低优先级的数据项已经从数据提供者发送到共享资源时,将来自队列的下一个数据项转发到存储器,以及其中,所述发送步骤包含发送存储器中具有最高优先级的那个数据项。
4.根据权利要求1-3的任何一项所述的方法,进一步包含提供多个数据提供者的步骤,多个数据提供者的每一个适用于:
-提供每一个被分配优先级之一的数据项,
-提供与准备从数据提供者发送到共享资源的一个或多个数据项有关的信息,以及
其中:
-所述发送步骤包含数据提供者将数据项发送给资源,以及
-所述等待步骤包含防止从任何数据提供者发送具有等待优先级的准备好数据项,直到来自每个非等待较低优先级的数据项已经从数据提供者发送到共享资源。
5.根据权利要求4所述的方法,其中,所述数据提供者适用于在因此受到指令时转发数据项,以及其中:
-所述发送步骤包含指令具有最高非等待优先级的准备好数据项的数据提供者将数据项转发给共享资源,以及
-所述等待步骤包含不指令具有等待优先级的准备好数据项的数据提供者发送等待优先级的任何数据项。
6.根据前面权利要求的任何一项所述的方法,其中,所述接收步骤包含接收数据项并将数据项提供到存储设备或存储器中,以及其中,所述发送步骤包含发送来自存储设备或存储器的数据项。
7.根据前面权利要求的任何一项所述的方法,其中,所述共享资源是链路、存储器、处理器、集成电路或交叉开关。
8.根据前面权利要求的任何一项所述的方法,其中,所述预定优先级的等待步骤包含:只有当预定优先级发送了多个数据项时才等待数据项的发送。
9.一种控制对共享资源的访问的方法,该方法包含:
-接收与要发送的一个或多个数据项有关的信息,每个数据项被分配多个不同预定优先级之一;
-为每个优先级定义一个或多个发送过程,与数据项有关的每段信息被分配相关优先级的发送过程;以及
-通过如下步骤重复地将数据项提供给资源:
o将与其有关的信息已经被分配给为最高优先级定义的非等待发送过程的数据项发送给资源,以及
o那个发送过程随后等待来自每个较低优先级的数据项的发送,所述每个较低优先级已经被分配与待发送数据项有关的信息并且其至少一个发送过程是非等待的。
10.根据前面权利要求的任何一项所述的方法,其中,所述优先级/队列/发送过程只等待在发送时刻发送的数据项当中在该发送时刻接收到其信息的数据项的发送。
11.一种控制对共享资源的访问的***,该***包含:
-适用于接收与要发送的一个或多个数据项有关的信息的接收装置,每个数据项被分配多个不同预定优先级之一;以及
-适用于通过如下步骤重复地将数据项提供给资源的发送装置:
o将待发送并具有最高非等待优先级的数据项发送给资源,以及
o随后让来自那个优先级的数据项的发送等待,直到通过已经接收到与待发送数据项有关的信息的每个非等待较低优先级发送了数据项。
12.根据权利要求11所述的***,进一步包含每一个与优先级之一有关的多个队列,以及其中:
-接收装置适用于将每个数据项提供到与分配给数据项的优先级有关的队列中,
-发送装置适用于发送来自具有最高优先级的任何非等待队列的具有最高非等待优先级的数据项,以及随后让那个队列等待来自与较低优先级有关的所有非等待队列的数据项的发送。
13.根据权利要求12所述的***,其中,所述发送装置适用于当来自每个非等待较低优先级的数据项已经从队列发送到共享资源时,将来自队列的下一个数据项转发到存储器,并将存储器中具有最高优先级的那个数据项发送给资源。
14.根据权利要求11-13的任何一项所述的***,进一步包含多个数据提供者,多个数据提供者的每一个适用于:
-提供每一个被分配优先级之一的数据项,以及
-提供与准备从数据提供者发送到共享资源的一个或多个数据项有关的信息,
其中,所述发送装置适用于指令数据提供者将具有最高非等待优先级的数据项发送给资源,以及随后防止从任何数据提供者发送具有等待优先级的准备好数据项,直到来自每个非等待较低优先级的数据项已经从数据提供者发送到共享资源。
15.根据权利要求14所述的***,其中,所述数据提供者适用于当因此被指令时转发数据项,以及其中,所述发送装置适用于指令具有最高非等待优先级的准备好数据项的数据提供者将数据项转发给共享资源,以及随后不指令具有等待优先级的准备好数据项的数据提供者发送等待优先级的任何数据项,直到已经指令数据提供者发送来自每个非等待较低优先级的数据项。
16.根据权利要求11-15的任何一项所述的***,其中,所述接收装置适用于接收数据项并将数据项提供给存储设备或存储器,以及其中,所述发送装置适用于发送来自存储设备或存储器的数据项。
17.根据权利要求10-16的任何一项所述的***,其中,所述共享资源是链路、存储器、处理器、集成电路或交叉开关。
18.根据权利要求11-17的任何一项所述的***,其中,所述发送装置适用于只有在来自优先级的多个数据项已被发送到资源之后才让所述优先级等待。
19.一种控制对共享资源的访问的***,该***包含:
-适用于接收与要发送的一个或多个数据项有关的信息的接收装置,每个数据项被分配了多个不同的预定优先级之一;
-对于每个优先级、一个或多个发送过程,与数据项有关的每段信息被分配相关优先级的发送过程;以及
-适用于通过如下步骤重复地将数据项提供给资源的发送装置:
o将与其有关的信息已经被分配给最高优先级的非等待发送过程的待发送数据项发送给资源,以及
o随后让那个发送过程随后等待来自每个较低优先级的数据项的发送,所述较低优先级已经被分配与待发送数据项有关的信息并且其至少一个发送过程是非等待的。
20.根据权利要求11-19的任何一项所述的***,其中,所述发送装置适用于让优先级/队列/发送过程只等待在发送时刻发送的数据项当中在该发送时刻已经接收到其信息的数据项的发送。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US65637705P | 2005-02-28 | 2005-02-28 | |
US60/656,377 | 2005-02-28 | ||
DKPA200500304 | 2005-02-28 | ||
DKPA200500304 | 2005-02-28 | ||
PCT/DK2006/000119 WO2006089560A1 (en) | 2005-02-28 | 2006-02-28 | A method of and a system for controlling access to a shared resource |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101129033A true CN101129033A (zh) | 2008-02-20 |
CN101129033B CN101129033B (zh) | 2012-10-10 |
Family
ID=35057004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800061634A Expired - Fee Related CN101129033B (zh) | 2005-02-28 | 2006-02-28 | 控制对共享资源的访问的方法和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101129033B (zh) |
AT (1) | ATE510385T1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347891A (zh) * | 2010-08-06 | 2012-02-08 | 高通创锐讯通讯科技(上海)有限公司 | 共享缓存的使用方法 |
CN103348640A (zh) * | 2011-07-22 | 2013-10-09 | 松下电器产业株式会社 | 中继装置 |
CN112540841A (zh) * | 2020-12-28 | 2021-03-23 | 智慧神州(北京)科技有限公司 | 任务调度的方法、装置、处理器与电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1181438C (zh) * | 2001-01-18 | 2004-12-22 | 深圳市中兴集成电路设计有限责任公司 | 异步时钟域设备对共享存储装置访问的控制方法 |
JP2005018224A (ja) * | 2003-06-24 | 2005-01-20 | Matsushita Electric Ind Co Ltd | 競合制御装置 |
-
2006
- 2006-02-28 AT AT06706090T patent/ATE510385T1/de not_active IP Right Cessation
- 2006-02-28 CN CN2006800061634A patent/CN101129033B/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102347891A (zh) * | 2010-08-06 | 2012-02-08 | 高通创锐讯通讯科技(上海)有限公司 | 共享缓存的使用方法 |
CN103348640A (zh) * | 2011-07-22 | 2013-10-09 | 松下电器产业株式会社 | 中继装置 |
CN103348640B (zh) * | 2011-07-22 | 2016-11-23 | 松下知识产权经营株式会社 | 中继装置 |
CN112540841A (zh) * | 2020-12-28 | 2021-03-23 | 智慧神州(北京)科技有限公司 | 任务调度的方法、装置、处理器与电子设备 |
CN112540841B (zh) * | 2020-12-28 | 2021-11-12 | 智慧神州(北京)科技有限公司 | 任务调度的方法、装置、处理器与电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101129033B (zh) | 2012-10-10 |
ATE510385T1 (de) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7827338B2 (en) | Method of and a system for controlling access to a shared resource | |
US8223650B2 (en) | Express virtual channels in a packet switched on-chip interconnection network | |
Feliciian et al. | An asynchronous on-chip network router with quality-of-service (QoS) support | |
Bauer et al. | Applying Trajectory approach with static priority queuing for improving the use of available AFDX resources | |
DE602006000516T2 (de) | Architektur eines Kommunikationsknoten in einem global asynchronen Netzwerk on-chip-System | |
US20030163593A1 (en) | Method and system for implementing a fair, high-performance protocol for resilient packet ring networks | |
CN103238302A (zh) | 中继器、中继器的控制方法、以及程序 | |
Zhou et al. | Insight into the IEEE 802.1 Qcr asynchronous traffic shaping in time sensitive network | |
CN1614956B (zh) | 调度高优先级分组的方法和设备 | |
CN109639560A (zh) | 改善实时计算机网络的可用性的方法 | |
Kostrzewa et al. | Supervised sharing of virtual channels in Networks-on-Chip | |
Fan et al. | Guaranteed real-time communication in packet-switched networks with FCFS queuing | |
CN101129033B (zh) | 控制对共享资源的访问的方法和*** | |
Kranich et al. | NoC switch with credit based guaranteed service support qualified for GALS systems | |
CN102611924A (zh) | 一种视频云平台的流量控制方法及*** | |
Liu et al. | Highway in tdm nocs | |
Cobb et al. | A theory of multi‐channel schedulers for quality of service | |
US7839774B2 (en) | Data processing circuit wherein data processing units communicate via a network | |
Berejuck et al. | Adding mechanisms for QoS to a network-on-chip | |
CUI et al. | A hybrid service scheduling strategy of satellite data based on TSN | |
Jiang | Per-domain packet scale rate guarantee for Expedited Forwarding | |
Nguyen et al. | A novel priority-driven arbiter for the router in reconfigurable Network-on-Chips | |
Tobuschat et al. | Selective congestion control for mixed-critical networks-on-chip | |
KR102644302B1 (ko) | 패킷형 광 신호 스위치의 제어 장치 및 방법 | |
Wang et al. | Curbing aggregate member flow burstiness to bound end-to-end delay in networks of TDMA crossbar real-time switches |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121010 Termination date: 20150228 |
|
EXPY | Termination of patent right or utility model |