CN105740199B - 芯片上网络的时序功率估算装置与方法 - Google Patents
芯片上网络的时序功率估算装置与方法 Download PDFInfo
- Publication number
- CN105740199B CN105740199B CN201410758548.2A CN201410758548A CN105740199B CN 105740199 B CN105740199 B CN 105740199B CN 201410758548 A CN201410758548 A CN 201410758548A CN 105740199 B CN105740199 B CN 105740199B
- Authority
- CN
- China
- Prior art keywords
- stage
- unit
- flit
- transfer
- router
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000005540 biological transmission Effects 0.000 claims abstract description 87
- 238000012546 transfer Methods 0.000 claims description 208
- 230000003068 static effect Effects 0.000 claims description 11
- 238000011156 evaluation Methods 0.000 claims description 9
- 230000005611 electricity Effects 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims 2
- 230000002776 aggregation Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 11
- 230000003139 buffering effect Effects 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009885 systemic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3278—Power saving in modem or I/O interface
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
Abstract
本发明公开了一种芯片上网络的时序功率估算方法包括:估算至少一封包的多个传输单位的多个传输时序,该多个传输时序指示该多个传输单位进/出该芯片上网络的多个路经元件的各自时间;依据该多个传输单位的该多个传输时序,估算该芯片上网络的多个路经元件的各自电路状态与各自功率状态,该电路状态代表该路经元件的操作状态,该功率状态有关于该电路状态;以及根据该芯片上网络的多个路经元件的该多个功率状态,估算该芯片上网络的功率消耗。
Description
技术领域
本发明涉及一种芯片上网络的时序功率估算装置与方法。
背景技术
因为高能量效率和可生产性的关系,多核心架构成为主流。随着系统核心数的增加,芯片上网络(Network-on-Chip,NoC)逐渐使用在多核心系统中。NoC的功率消耗可能相当可观,此外,NoC的动态功率的变异范围大。甚至,当进行数据传输时,NoC的动态功率可能达到静态功率的两倍以上。因此,NoC的动态功率分析对于系统规格的制定相当重要。
发明内容
本发明涉及一种芯片上网络的时序功率估算装置与方法,计算出NoC的周期时序,以进一步得到更精确的功率估算。
根据本发明一实施例,提出一种芯片上网络的时序功率估算方法,包括:估算至少一封包的多个传输单位的多个传输时序,该多个传输时序指示该多个传输单位进/出该芯片上网络的多个路经元件的各自时间;依据该多个传输单位的该多个传输时序,估算该芯片上网络的多个路经元件的各自电路状态与各自功率状态,该电路状态代表该路经元件的操作状态,该功率状态有关于该电路状态;以及根据该芯片上网络的多个路经元件的该多个功率状态,估算该芯片上网络的功率消耗。
根据本发明另一实施例,提出一种芯片上网络的时序功率估算装置,包括:传输时序计算单元、元件功率状态计算单元与功率估算单元。传输时序计算单元估算至少一封包的多个传输单位的多个传输时序,该多个传输时序指示该多个传输单位进/出该芯片上网络的多个路经元件的各自时间。依据该多个传输单位的该多个传输时序,元件功率状态计算单元估算该芯片上网络的多个路经元件的各自电路状态与各自功率状态。该电路状态代表该路经元件的操作状态。该功率状态有关于该电路状态。根据该芯片上网络的多个路经元件的该多个功率状态,功率估算单元估算该芯片上网络的功率消耗。
附图说明
图1显示根据本发明一实施例的芯片上网络(NoC)的时序功率估算流程;
图2显示基于一般NoC的多核心系统示意图;
图3显示一般NoC的部份架构图;
图4显示一般路由器示意图,其可适用于二维网状拓扑(2D Mesh topology);
图5A显示一实施例在相邻路由器之间加入同步缓冲器(FIFO)来缓冲数据;
图5B显示一实施例在相邻路由器之间加入双同步缓冲器来缓冲数据;
图6显示使用双同步缓冲器的NoC架构一实施例示意图;
图7显示双同步缓冲器的操作一实施例示意图;
图8与图9显示本发明计算传输单位的传输时序的两种实施例;
图10显示决定绕线路径的一实施例;
图11显示本发明一实施例中,如何决定/定义绕线路径上的路由器stage[i];
图12显示封包的第j个传输单位flit[j](j为正整数)进入路由器stage[i]的时间tstage[i]flit[j];
图13显示根据本发明的计算「FIFO通过时间」的两种实施例;
图14显示根据本发明的决定FIFO允许写入时间的一实施例;
图15A~图15C显示在本发明一实施例中,当FIFO被填满时,如何求出传输单位flit[j]进入路由器stage[i]的时间tstage[i]flit[j](其应用于单阶路由器架构);
图16显示根据本发明的将传输单位的传输时序转换为功率状态的一实施例;
图17显示本发明一实施例的种芯片上网络的时序功率估算装置的功能方块图;
图18A显示可能的单阶路由器架构一实施例;
图18B显示可能的两阶管线化路由器架构一实施例;
图19A~图19C显示在本发明一实施例中,当FIFO被填满时,如何求出传输单位flit[j]进入路由器stage[i]的时间tstage[i]flit[j](其应用于两阶管线化路由器架构)。
【附图标记说明】
110~130:步骤 210~260:智能器件
270:界面(NI) 280:NoC
R:路由器 FIFO:缓冲器
Rx0~Rx4:输入端口 Tx0~Tx4:输出端口
R0~R15:路由器
910~950、110’:步骤
1700:时序功率估算装置
1710:传输时序计算单元
1720:元件功率状态计算单元
1730:功率估算单元
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明的技术用语是参照本技术领域的习惯用语,如本发明对部分用语有加以说明或定义,该部分用语的解释以本发明的说明或定义为准。对于该领域常见的技术或原理,若不涉及本发明的技术特征,将不予赘述。
本发明的各个实施例分别具有一或多个技术特征。在可能实施的前提下,本技术领域的普通技术人员可选择性地实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技术特征加以组合。
本发明实施例提出芯片上网络(NoC)时序功率估算器,以估算出,当数据经过NoC时,功率消耗随时间的变化。
现请参考图1,其显示根据本发明一实施例的芯片上网络(network-on-chip,NoC)的时序功率估算流程。如图1所示,本发明一实施例的NoC时序功率估算流程包括下列步骤。于步骤110中,来估算得到,在NoC传输过程中,至少一输入封包的多个传输单位flit(flowcontrol digit)的多个传输时序(包括各传输单位进入路由器的时间、各传输单位离开路由器的时间、各传输单位进入缓冲器的时间与各flit离开缓冲器的时间)。步骤110的细节将于底下描述之。一个输入封包可包括多个传输单位。于一实施例,步骤110中还包括根据NoC电路架构,通过方程式的求解。
于步骤120中,依据步骤110所得到的该多个传输单位的该多个传输时序,估算NoC的多个或所有路经元件的各自电路状态与各自功率状态。在此,将NoC的路由器与FIFO等封包会经过的元件合称为路经元件。电路状态包括路由器动态电路率状态与缓冲器动态电路状态,其用以指示此路经元件在当下频率周期下,被读取及/或被写入及/或被驻停的状态。步骤120的细节将于底下描述之。路经元件的功率状态可由路经元件的电路状态推得。
于步骤130中,根据步骤120所估算出的多个或所有路经元件的该多个功率状态,估算NoC于每一个频率周期的功率消耗。于一实施例中,可通过预先定好的NoC功率模型来估算NoC于每一个频率周期的功率消耗。
为了更精确估算NoC在每一个频率周期的动态功率,一实施例还估算出,在传送封包的过程中,NoC在每一个频率周期的动态电路状态(如步骤120)。这是因为,NoC的元件动态电路状态密切相关于封包传送行为。故而,在本发明一实施例中,NoC动态功率状态(或者是,动态电路状态)的估算可以根据「传输单位传输时序」而来。亦即,NoC动态功率状态(或者是,动态电路状态)的估算可由转换传输单位的传输时序而得。但在本发明实施例中,各传输单位的传输时序则是利用对方程式求解而得。所以可推论的,本发明实施例的动态功率估算具有速度更快以及周期更精确的特性。
现将说明本发明实施例如何估算各传输单位的传输时序。在本发明实施例中,可通过方程式来计算出,在NoC传输过程中,各输入封包的每一个传输单位进入和离开路由器和缓冲器的时间。
本发明实施例所提出的计算方法可以支持非常多种的NoC电路架构。但当本发明实施例应用于不同的NoC架构时,则会影响时序功率估算方法,例如利用不同的时序方程式。
图2显示基于一般NoC的多核心系统示意图。智能器件(intelligent property,IP)210~260通过网络接口(network interface(NI))270而连接到NoC 280,以进行数据传输。在此,智能器件比如可以是中央处理器(CPU)、图形处理器(Graphics ProcessingUnit,GPU),数字信号处理器(DSP)、存储器、周边元件(peripheral)或加速器(accelerator)等。
图3显示一般NoC的部份架构图。一般来说,NoC包括多个路由器R,这些路由器由许多信号线来互相耦接。在任一个频率周期内,可能出现大量信号交换。此外,根据系统需求,路由器和路由器之间可以设置缓冲器(如先进先出(FIFO)缓冲器),以暂存封包的传输单位。如图3所示,路由器可通过接口NI而连接至智能器件IP。
图4显示一般路由器示意图,其可适用于二维网状拓扑(2D Mesh topology)。一般来说,路由器可以包括任意数量的输入端口(receive(Rx)port)与输出端口(transmit(Tx)port)。虽然在图4中,路由器R具有输入端口Rx0Rx5与输出端口Tx0Tx5,但当知本案并不受限于此。如图4所示,路由器可以连接上下左右四个方向的其它路由器(可能经过FIFO),以及连接至本地端(local)的接口NI,并通过接口NI连接至智能器件IP。比如,输入端口与输出端口依照方向来编号。Rx0/Tx0是本地端,可连接至本地端的接口,再通过接口而连接至IP。Rx1/Tx1可连接至上方路由器/FIFO,Rx2/Tx2可连接至右方路由器/FIFO,Rx3/Tx3可连接至下方路由器/FIFO,以及Rx4/Tx4可连接至左方路由器/FIFO。
此外,在符合本发明的一些实施例中,可将路由器的架构参数归纳如下。如果架构参数有所不同的话,则会影响时序功率估算方法,例如利用不同的封包时序方程式。参数“Topology”(拓扑)代表连接该多个路由器所形成的形状。常见的参数“Topology”有:环状(ring)、二维网状(2D Mesh)、三维网状(3D Mesh)、二维环面(2D torus)、三维环面(3Dtorus)、树状(tree)、八角状(Octagon)、k-ary n-fly butterfly等等。
参数“Routing algorithm”(绕线参数)决定封包由来源路由器到目标路由器的绕线路径。常见的绕线参数“Routing algorithm”有:X-Y、toggle X-Y、Valiant、ROMM、O1Turn、PROM、BSOR、适应性路由(adaptive routing)等等。
参数“Switching strategy”(切换策略)代表如何分配路由器的数据储存空间。常见的切换策略参数“Switching strategy”有:wormhole、virtual cut-through、store andforward等等。
参数“Flow control”(流动控制)代表路由器之间沟通是否可以传送资料。常见的流动控制参数“Flow control”有:Credit based、On/Off(STALL-GO)、ACK-NACK等。
参数“Arbitration policy”(仲裁政策)代表,当路由器同时收到的两个封包要经过同一条输出通道(输出端口)离开此路由器时,决定哪一个封包取得信道使用权的规则。常见的仲裁政策参数“Arbitration policy”有固定优先级(fixed priority)、循环制(round-robin)、最近最少使用(least recently used,LRU)、随机制(random)、先入先出制(FIFO)等。
参数“Router microarchitecture”(路由器微架构)代表路由器的内部实现细节。以管线化(pipeline)为例,路由器常用的管线化机制包括:单阶路由器(single-cyclerouter)、两阶管线化(2-stage pipeline)、三阶管线化(3-stage pipelined)、四阶管线化(4-stage pipelined)等等。单阶路由器代表路由器内部只有一级管线缓存器(pipelineregister)。
另外,NoC中可能会加入FIFO缓冲器。如图5A一实施例所示,在路由器R1与R2之间加入同步FIFO(synchronous(sync)FIFO)来缓冲数据。这样的话,路由器R1、同步FIFO与路由器R2属于同步的频率领域(clock domain),都操作于频率信号clock 1之下。
或者是,如另一实施例图5B所示,在路由器R1与R2之间加入双同步FIFO(bisynchronous(bisync)FIFO)来缓冲数据。这样的话,路由器R1、双同步FIFO与路由器R2被分成多个不同步的频率领域。路由器R1与双同步FIFO的输入端操作于频率信号clock 1之下,而双同步FIFO的输出端与路由器R2操作于频率信号clock 2之下。所以,需要双同步FIFO当中介,以确保数据传输的正确性。此外,FIFO输入端的clock称为clk_push,输出端的clock被称为clk_pop。由于FIFO架构会影响数据流过此FIFO的时序行为,故而,如果FIFO架构有所不同的话,本发明实施例相对应地使用不同的封包时序方程式。
为方便说明,本发明实施例比如可以应用于4x4 2D Mesh NoC,其使用双同步FIFO,如图6所示一实施例。图6显示使用双同步缓冲器的NoC架构示意图。在图6中的NoC的架构参数为:参数“Topology”:4x4 2D Mesh(4x4代表共有16个路由器R0~R15,由4行4列所组成);参数“Routing algorithm”:X-Y routing;参数“Arbitration policy”:Fixedpriority;参数“Switching strategy”:Wormhole;参数“Flow control”:On/Off;参数“Router microarchitecture”:single-cycle router。图6所用的双同步FIFO的深度比如为2-flit。
双同步FIFO可以被频率信号的正边缘与负边缘所触发,如图7一实施例所示。图7显示双同步FIFO的操作示意图。在频率信号clk_push的正边缘下,路由器R[i]将资料准备好(动作1)。在频率信号clk_push的负边缘处,双同步FIFO可以接收数据(动作2)。于频率信号clk_pop的正边缘处,FIFO将数据传送给路由器R[i+1](动作3)。此种设计可以增加数据传输的效率,然而,也会影响本发明实施例的封包时序方程式的参数。FIFO.Rx与FIFO.Tx分别代表FIFO的输入端与输出端的时序。R[i+1].Tx则代表路由器R[i+1]的输出端/输出端口的时序。
在本发明一实施例中,于计算传输单位的传输时序时,为了计算封包传输单位流过NoC的时序,需要知道至少4项封包参数。此4项封包参数分别是:参数“Time”(时间),代表这个封包何时进入NoC;参数“Source”(来源)代表这个封包是从哪个路由器开始传送,也就是,此封包进入NoC后,所经过的第一个路由器的编号(ID),各路由器有自己的编号;参数“Destination”(目的)代表这个封包要送到哪个路由器,也就是说,代表这个封包离开NoC之前,所经过的最后一个路由器的编号;参数“Size”(封包大小)代表这个封包的大小,以传输单位为单位,比如,一个封包包括4个传输单位的话,则此封包的size为“4”,第一个传输单位(flit 0)称为表头(header),最后一个传输单位(flit 3)则称为尾巴(tail)。
图8与图9显示计算传输单位的传输时序的两种实施例。于图8是动态绕线(dynamic routing)的一实施例。而图9则是静态绕线(static routing)的一实施例。动态绕线与静态绕线的区别在于,于动态绕线下,在更新电路状态后,需要重新计算绕线路径;但在静态绕线下,于封包进入NoC后,即决定绕线路径,且从此不再改变。
步骤110与110’包括5个步骤910~950,底下将分别说明之。
于步骤910中,根据输入封包的参数“source”和参数“destination”,以及根据NoC的绕线参数“routing algorithm”,来决定此封包的绕线路径(routing path)。图10一实施例显示NoC架构为4x4 2D Mesh且绕线算法为X-Y routing的情况下,决定绕线路径的一例。X-Y routing是一种简单的静态绕线,其规则为,先走X(水平)方向,再走Y(垂直)方向来到目的地。
在图10实施例中,封包Packet0的来源是路由器R0,目的是路由器R5,因此封包Packet0经过路由器R0→路由器R1→路由器R5。如果把封包所经过的Rx/Tx也注明于绕线路径当中的话,则封包Packet0的绕线路径Path(Packet0)=(R0.Rx0→R0.Tx2→R1.Rx4→R1.Tx3→R5.Rx1→R5.Tx0)。举例来说,“R0.Rx0→R0.Tx2”代表此封包由路由器R0的输入端口Rx0进入,并从路由器R0的输出端口Tx2离开。
同理,封包Packet1的绕线路径Path(Packet1)=(R2.Rx0→R2.Tx4→R1.Rx1→R1.Tx3→R5.Rx1→R5.Tx0)。
在步骤920中,当多个封包的多个绕线路径冲突时,进行仲裁,以决定哪一个封包取得一通道使用权。比如,当两个封包同时要从同一路由器的同一输出端口离开时,经由仲裁来决定哪一个封包取得绕线路径的信道使用权。以上述例子而言,可以看到,封包Packet0由路由器R1的输入端口Rx4进入路由器R1且封包Packet1由路由器R1的输入端口Rx1进入路由器R1,而且,这两个封包Packet0与Packet1都要同时通过路由器R1的输出端口Tx3来离开路由器R1。此两个封包发生路径冲突。故而,因此需要由路由器R1经由仲裁政策参数“arbitration policy”来决定从哪一个封包可以取得通道使用权。例如,仲裁政策是固定优先级(fixed priority),取得通道使用权的优先级是固定为(Rx0>Rx1>Rx2>Rx3>Rx4),也就是说,由输入端口Rx0进入的封包取得最高通道使用权,而由输入端口Rx4进入的封包取得最低通道使用权。以上例来看,由于封包Packet0由路由器R1的输入端口Rx4进入路由器R1且封包Packet1由路由器R1的输入端口Rx1进入路由器R1。所以,路由器R1裁定由封包Packet1取得通道使用权。
于步骤930中,计算该多个传输单位的该多个传输时序。如上述般,经过仲裁后,具有较高优先级的封包取得绕线路径的信道使用权。计算取得通道使用权的该(或该多个)封包的每个传输单位的传输时序(每个传输单位进入/离开其绕线路径上的FIFO/路由器的时间)。步骤930可以参考参数“Switching strategy”、“Flow control”与“Routermicroarchitecture”等。
以上述例子而言,封包Packet1取得绕线路径上的信道使用权,因此先计算封包Packet1的各个传输单位的传输时序,其计算细节将于底下详细说明之。
于步骤940中,更新该多个路经元件的各自电路状态,以及计算该通道使用权的释放时序,据以计算出其他封包得到该通道使用权的使用时序。以上述例子而言,于计算出封包Packet1的尾巴的传输时序后,可以得到封包Packet1的尾巴离开路由器R1的时序,以更新路由器R1的输出端口Tx3的释放时序。之后,来计算出封包Packet0被允许进入路由器R1的时序。至于如何计算出封包的传输时序,将于底下另外详细说明之。
于另一实施例中,可根据该绕线参数为动态绕线或静态绕线,决定该多个路经元件的各自电路状态的更新是否影响该封包的该绕线路径。进一步说明如后。
于步骤950中,判断是否已计算所有封包的所有传输单位。如果是的话,则步骤110/110’已结束。比较图8与图9实施例可以得知,在动态绕线(图8)中,如果尚未完成计算所有封包的所有传输单位的传输时序(步骤950为否),则流程回至步骤910,再次进行步骤910~950(也就是说,电路状态的更新会影响到封包的绕线路径)。但在静态绕线(图9)中,即便是电路状态有所更新,则不会影响到所有封包的绕线路径;如果尚未完成计算所有封包的所有传输单位的传输时序(步骤950为否),则流程回至步骤920,再次进行步骤920~950。也就是说,封包的绕线路径一旦决定好,就不会受到电路状态更新的影响。
现将说明如何计算封包的各传输单位的传输时序。首先,决定/定义绕线路径。由绕线步骤(图9的步骤910)所决定出的绕线路径被称为参数Path()。为了说明上的方便,在本发明一实施例中,将位于绕线路径Path()上的该多个路由器展开并重新将这些路由器命名为stage[0],stage[1]...。stage[i](i为正整数)的意义是在此绕线路径Path()上的第i路由器。图11显示根据本发明一实施例中,如何决定/定义出绕线路径Path()上的路由器stage[i]。
如图11所示,假设封包经过这些路由器的先后顺序是R0→R1→R5,则此封包的绕线路径Path()包括路由器R0、R1与R5。将封包所经过的路由器依封包经过顺序进行虚拟展开后,将这些路由器重新命名为路由器stage[0]、路由器stage[1]与路由器stage[2],其中,路由器stage[0]、路由器stage[1]与路由器stage[2]分别为路由器R0、路由器R1与路由器R5。
接着,在本发明一实施例中,决定/定义参数tstage[i]flit[j],其代表封包的第j个传输单位flit[j](j为正整数)进入路由器stage[i]的时间,即路由器stage[i]内的最后一级缓存器取样到此封包的第j个传输单位flit[j]的时间。以单阶(single-cycle)路由器为例,其内部包括单一个缓存器。假设此缓存器是被正边缘所触缘,则tstage[i]flit[j]如图12所示。图12显示封包的第j个传输单位flit[j](j为正整数)进入路由器stage[i]的时间tstage[i]flit[j]。
缓存器与输出端口Tx之间存在由组合电路(combinational circuit,comb)所造成的延迟。但在本发明实施例中,根据缓存器取样时间,原则上应可符合频率精确(cycle-accurate)的需求。
接着,本发明一实施例决定/定义参数tstage[i]release,其代表路由器stage[i]被封包的尾巴释放的时间(亦即此封包的尾巴进入下一级路由器/FIFO的时间)。以图10的封包Packet0和Packet1为例,路由器R1仲裁封包Packet1取得路由器R1的输出端口Tx3(R1.Tx3)的通道使用权。对于封包Packet0而言,tstage[1]release为封包Packet1的tstage[2]tail(=tstage[2]flit[3]),也就是说,路由器R1的被释放时序就是封包Packet1的尾巴(tail)进入下一路由器(R5,stage[2])的时间tstage[2]tail(=tstage[2]flit[3])。
此外,在本发明实施例中,每个封包的绕线路径Path()有各自stage编号。以封包Packet0的绕线路径Path(Packet0)而言,stage[0]、stage[1]与stage[2]分别为路由器R0、R1与R5;而以封包Packet1的绕线路径Path(Packet1)而言,其stage[0]、stage[1]与stage[2]分别为路由器R2、R1与R5。
接着,本发明一实施例决定/定义参数ΔtpassFIFO,其代表,在没有阻塞的情况下,一个传输单位通过一个FIFO所需要花费的最少时间(也可以称为FIFO通过时间),此参数ΔtpassFIFO会因FIFO的架构会有所改变。此外,由于每一传输单位的位数基本是相同的,所以,每一个传输单位通过FIFO所花费的最少时间基本上也视为相同。
进一步说,ΔtpassFIFO为,在没有阻塞下,一传输单位被FIFO的前一级路由器所取样到的时间记为T1(但此时,此传输单位还没被FIFO收下),此传输单位被FIFO的下一级路由器所取样到的时间为T2,则ΔtpassFIFO=T2-T1。
在本发明一实施例中,ΔtpassFIFO相关于「FIFO架构」、「FIFO前(输入端)后(输出端)的频率周期」和「传输单位被FIFO前一级路由器的取样时间相位」,此取样时间相位是相对于FIFO输出端的频率信号(clk_push),将于底下另外详细说明之。
图13显示两种计算参数ΔtpassFIFO的实施例。假设频率信号clk_push的频率是频率信号clk_pop的两倍。图13分别显示传输单位被FIFO的前一级路由器在不同相位下取样的两种情况。于图13的左边的实施例中,传输单位flit 0被FIFO的前一级路由器取样的时间相位是clk_push的正边缘处,此传输单位花费频率信号clk_push的两个周期才通过FIFO;而在图13的右边的实施例中,此传输单位被FIFO的前一级路由器取样的时间相位是clk_push的负边缘处,其花费频率信号clk_push的一个周期即可通过FIFO。
接着,本发明一实施例决定/定义参数ΔtsyncFIFO,其代表,从全满FIFO读出一个传输单位后,到写入下一个传输单位至此FIFO之间的最小时间(亦可称为是FIFO允许写入时间)。当FIFO被填满时,前一级路由器已取样到的传输单位不被允许进入此全满FIFO。
图14一实施例显示从全满FIFO读出一个传输单位后,到写入下一个传输单位至此FIFO之间所经过的最小时间ΔtsyncFIFO。由于FIFO已被写入传输单位flit 0和flit 1,FIFO已全满。在T1时,下一级路由器stage[i+1]在频率信号clk_pop的正边缘从FIFO取样到/读出传输单位flit 0。接着在T2时,FIFO在频率信号clk_push的负边缘取样到由前一级路由器stage[i]所传来的传输单位flit 2。在T3时,前一级路由器stage[i]在频率信号clk_push的正边缘取样到下一传输单位flit3。ΔtsyncFIFO=T3-T1。信号FIFO stage 1 full与FIFO stage 2 full分别代表此FIFO的第一阶与第二阶是否被写入。
底下说明本发明实施例的计算封包的传输单位的传输时序的一实施例。所用的算法如下,至于参数tstage[i]flit[j]的计算则利用稍后介绍的公式(1)和公式(2)。
公式(1)用以计算出封包的表头(flit[O])到达路由器stage[i]的时间tstage[i]flit[0](亦可称为表头进入时间,其代表表头进入此路由器的时间)。公式(1)包括公式(1.1)与(1.2)。在本说明中,flit[i]与flit i所代表的意思是相通的。
公式(1):
于计算过程中,要考虑是否发生阻塞(congestion)。
阻塞的发生条件为(tstage[i-1]flit[0]+ΔtpassFIFO≤tstage[i]release)。先求出传输单位flit[0]进入路由器stage[i-1]的时间(tstage[i-1]flit[0])与此传输单位flit[0]通过FIFO(位于路由器stage[i-1]和路由器stage[i]之间)所花费的时间ΔtpassFIFO之的总和(此总和代表传输单位flit[0]预计应该到达路由器stage[i]的时间)。如果此总和小于路由器stage[i]被前一个封包的尾巴释放的时间(tstage[i]release),则目前封包被前一个封包挡在路由器stage[i]之前,无法进入stage[i],所以发生阻塞。亦即,如果传输单位flit[0]预计应该到达路由器stage[i]时,路由器stage[i]尚未被释放,则发生阻塞。
公式(1.1):因为阻塞发生,传输单位flit[0]进入路由器stage[i]的时间是tstage[i]release之后的下一个频率周期。也就是说,如果阻塞发生,则利用公式(1.1)来求得封包的表头(flit[0])到达路由器stage[i]的时间tstage[i]flit[0]。
公式(1.2):如果没有阻塞发生,则传输单位flit[0]进入路由器stage[i]的时间等于传输单位flit[0]进入前一级路由器stage[i-1]的时间(tstage[i-1]flit[0])加上此传输单位通过FIFO的时间(ΔtpassFIFO)。也就是说,如果没有阻塞发生,则利用公式(1.2)来求得封包的表头(flit[0])到达路由器stage[i]的时间tstage[i]flit[0]。
接着,本发明一实施例要求出公式(2)来求出此封包的后续传输单位flit[j](j=1,2,...)进入路由器stage[i]的时间(tstage[i]flit[j])(也可称为第j传输单位进入时间)。公式(2)包括公式(2.1)、(2.2)与(2.3)。
公式(2):
在上述中,参数d代表路由器stage[i]与路由器stage[i+1]之间的该FIFO的深度。
计算上,我们取满足公式(2.2)和(2.3)的最小正整数k,代入(2.1)求得tstage[i]flit[j]。也就是说,先得到k=1时的tstage[i]flit[j](公式2.1),来代入公式(2.2)~(2.3),看tstage[i]flit[j](k=1)是否能同时满足公式(2.2)~(2.3)。如果可以的话,则tstage[i]flit[j](k=1)即为所想要的tstage[i]flit[j]。否则,令k=2,重复上述,直到找出满足条件的最小k值为止。
以下解释各个公式的物理意义。
公式(2.1)代表的物理意义为:传输单位flit[j]进入路由器stage[i]的时间tstage[i]flit[j]等于前一个传输单位(flit[j-1])进入路由器stage[i]的时间tstage[i]flit[j-1]再加上k个频率周期clkstage[i]。也就是说,在前一个传输单位(flit[j-1])进入路由器stage[i]之后,再过了k个频率周期(k即为待解出的参数),才能允许传输单位flit[j]进入路由器stage[i]。
公式(2.2)代表的物理意义为:传输单位flit[j]进入路由器stage[i]的时间tstage[i]flit[j]超过(≥)传输单位flit[j]进入前一级路由器stage[i-1]的时间tstage[i-1]flit[j]加上此传输单位flit[j]通过FIFO(位于前一级路由器stage[i-1]和路由器stage[i]之间)所花费的时间(ΔtpassFIFO)。也就是说,当传输单位flit[j]由前一级路由器stage[i-1]被送往FIFO并通过FIFO之后,此传输单位flit[j]才被允许进入路由器stage[i]。
公式(2.3)代表的物理意义为:如果路由器stage[i]和路由器stage[i+1]之间的FIFO(深度为d)被填满(亦即,FIFO中停驻了传输单位flit[j-2]、...、flit[i-d-1]),则这将会造成传输单位flit[i-1]阻塞在路由器stage[i]。所以,传输单位flit[j]进入路由器stage[i]的时间tstage[i]flit[j]超过(≥)传输单位flit[j-d-1]进入路由器stage[i+1]的时间tstage[i+1]flit[j-d-1]加上传输单位flit[j-1]被允许写入此FIFO的时间(ΔtsynFIFO)。也就是说,当FIFO被填满时,等待FIFO的输出端将传输单位flit[j-d-1]送入至下一级路由器stage[i+1]之后(此时,FIFO已空出一个储存空间,能够被写入传输单位flit[j-1]),且要等到前一传输单位flit[j-1]真正写入至FIFO之后,传输单位flit[j]才能被允许进入路由器stage[i]。
图15A~图15C显示在本发明一实施例中,当FIFO被填满时,如何求出tstage[i]flit[i](其应用于单阶路由器架构,亦即,路由器包括单一管线缓存器)。如图15A所示的初始状态代表FIFO被填满,且路由器stage[i+1]的输入通道也被占据,所以发生阻塞。接着,在图15B中,于路由器stage[i+1]被释放后且传输单位flit 0从FIFO写入至路由器stage[i+1]之后,FIFO空出一个储存空间。接着,在图15C中,传输单位flit 3被允许写入至路由器stage[i]。
接着,将说明,在本发明一实施例中,如何根据传输单位的传输时序来得到NoC的电路状态。在本发明一实施例中,将功率状态视为电路状态的子集合。因为电路状态可能非常多种,因此,在本发明一实施例中,消耗同样或差不多功率的该多个电路状态视为属于同一功率状态。故而,在本发明一实施例中,功率状态由一组可以被观察的电路特征所决定,且此可被观察的电路特征乃是来自传输单位的传输时序。底下说明,本发明一实施例如何从传输单位的传输时序得到功率状态/电路特征。
功率状态的实施方式一:根据FIFO是否被写入/是否被读出(FIFO的电路状态)来得到FIFO功率状态。
在一个频率周期内,FIFO可能被写入0或1个传输单位,及/或,FIFO可能被读出0或1个传输单位(读/写操作是独立的)。故而,如下表1所示,根据FIFO是否被写入与是否被读出(FIFO的电路状态)来得到FIFO功率状态。
表1 (F代表FALSE,T代表TRUE)
是否被写入 | 是否被读出 | FIFO功率状态 |
F | F | S0_FIFO_1 |
F | T | S1_FIFO_1 |
T | F | S2_FIFO_1 |
T | T | S3_FIFO_1 |
如上表1所示,以FIFO是否被写入/是否被读出作为电路特征/电路状态,本发明一实施例可以得到4种FIFO功率状态S0_FIFO_1~S1_FIFO_1。
功率状态实施方式二:根据FIFO是否被写入、是否被读出与停驻数(FIFO的电路状态)来求出FIFO功率状态。
在一个频率周期内,深度为d的FIFO可能被写入0或1个传输单位,及/或可能被读出0或1个传输单位,及/或,停驻在FIFO中传输单位数量可能为{0,1,2,...,d}(读/写/停驻操作是独立的)。故而,如下表2所示,根据FIFO是否被写入、是否被写入与停驻数(FIFO的电路状态)来得到FIFO功率状态。为方便了解,底下以d=2为例做说明,但当知本案并不受限于此。
表2 (d=2)
是否被写入 | 是否被读出 | 停驻数 | FIFO功率状态 |
F | F | 0 | S0_FIFO_2 |
F | F | 1 | S1_FIFO_2 |
F | F | 2 | S2_FIFO_2 |
F | T | 0 | S3_FIFO_2 |
F | T | 1 | S4_FIFO_2 |
F | T | 2 | S5_FIFO_2 |
T | F | 0 | S6_FIFO_2 |
T | F | 1 | S7_FIFO_2 |
T | F | 2 | S8_FIFO_2 |
T | T | 0 | S9_FIFO_2 |
T | T | 1 | S10_FIFO_2 |
T | T | 2 | S11_FIFO_2 |
如上表2所示,以深度为2的FIFO为例,以是否被写入、是否被读出与停驻数作为电路特征,可以得到12种功率状态S0_FIFO_2~S11_FIFO_2。
功率状态实施方式三:根据路由器的写入数与读出数(路由器的电路状态)来得到路由器功率状态。
在一个频率周期内,N进N出的路由器(亦即此路由器具有N个输入端口与N个输出端口)可能被写入0~N个传输单位,及/或可能被读出0~N个传输单位(读/写操作是独立的)。如下表3所示,以5进5出的路由器为例,利用写入数与读出数作为电路特征,可以得到36种功率状态。
表3
写入数 | 读出数 | 路由器功率状态 |
0 | 0 | S0_R_1 |
0 | 1 | S1_R_1 |
0 | 2 | S2_R_1 |
0 | 3 | S3_R_1 |
0 | 4 | S4_R_1 |
0 | 5 | S5_R_1 |
1 | 0 | S6_R_1 |
1 | 1 | S7_R_1 |
... | ... | ... |
5 | 5 | S35_R_1 |
功率状态实施方式四:根据路由器的输入端口是否被写入与输出端口是否被读出(路由器的电路状态)来决定路由器的功率状态。
在一个频率周期内,N进N出的路由器的每个输入端口都可能被写入与否,及/或每个输出端口都可能被读出与否(读/写操作是独立的)。如下表4所示,以5进5出的路由器为例,根据输入端口/输出端口是否被写入/读出,可以得到1024(25+5)种功率状态。
表4
Rx0 | Rx1 | ... | Rx4 | Tx0 | Tx1 | ... | Tx4 | 路由器功率状态 |
F | F | ... | F | F | F | ... | F | S0_R_2 |
F | F | ... | F | F | F | ... | T | S1_R_2 |
F | F | ... | F | F | F | ... | 0 | S2_R_2 |
F | F | ... | F | F | F | ... | T | S3_R_2 |
F | F | ... | F | F | F | ... | 0 | S4_R_2 |
F | F | ... | F | F | F | ... | T | S5_R_2 |
F | F | ... | F | F | F | ... | 0 | S6_R_2 |
F | F | ... | F | F | F | ... | T | S7_R_2 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
T | T | T | T | T | T | T | S1023_R_2 |
图16显示根据本发明的将传输单位的传输时序转换为功率状态的一实施例。在图16,以传送包括3个传输单位的封包为例做说明。此封包的绕线路径假设为经过路由器R0→FIFO缓冲器F(深度为2)→路由器R1。
每个传输单位停驻在路由器R0及/或FIFO缓冲器F及/或路由器R1的时序可以整理为时序图,如图16所示。在周期0时,第一个传输单位flit 0进入至路由器R0,第二个传输单位flit 1与第三个传输单位flit 3尚未进入至路由器R0。所以,在周期0时,路由器R0为1进0出;FIFO缓冲器F为0进0出;以及路由器R1为0进0出。也就是说,在本发明一实施例中,由于先求出第一个传输单位flit 0进入至路由器R0的时间(tstage[0]flit[0]),故而,由此可以得知,路由器R0、FIFO缓冲器F与路由器R1的电路状态。
接着,在周期1时,求出传输单位flit 0与传输单位flit 1的各自传输时序,然后,可以得知,第一个传输单位flit 0进入至FIFO缓冲器F;第二个传输单位flit 1进入至路由器R0;以及第三个传输单位flit 2尚未进入至路由器R0。所以,在周期1时,经由传输单位flit 0与传输单位flit 1的各自传输时序可以判断出,路由器R0为1进1出;FIFO缓冲器F为1进0出;以及路由器R1为0进0出。其余可依此类推。
上述以传送一个封包为例做说明。将于NoC上传输的所有封包所造成的所有功率状态综合考虑,即可得到完整的功率状态。
功率模型将「功率状态」映射至「功率」。在本发明一实施例中,功率表示为如下的式子:
PNoC=∑Prouter+∑PFIFO (3.1)
PNoC表示整个NoC的功率消耗,由所有路由器的总功率消耗(Prouter)和所有FIFO的总功率消耗(PFIFO)加总而成。另一实施例,NoC的功率消耗,由部分路由器的总功率消耗(Prouter)和部分FIFO的总功率消耗(PFIFO)加总而成。
函数Frouter和FFIFO分别是路由器和FIFO的功率模型函数,和分别是路由器和FIFO的功率状态。
功率模型可以用不同的方式实现。例如查表或方程式(线性及/或非线性)。底下分别说明以查表法所实现的功率模型查表和以线性方程式所实现的功率模型。
以查表法所实现的FIFO功率模型查表适用于功率状态互斥(这些功率状态不会同时发生)。一个功率状态可对应到一个功率值。比如,以上表1的FIFO的功率状态(实施方式一),可以得到如下表5的功率索引表。相同地,FIFO/路由器功率状态(实施方式二、三、四)所对应的功率模型也可以用查表实现。
表5
是否被写入 | 是否被读出 | 功率状态 | 功率 |
F | F | S0_FIFO_1 | P0_FIFO_1 |
F | T | S1_FIFO_1 | P1_FIFO_1 |
T | F | S2_FIFO_1 | P2_FIFO_1 |
T | T | S3_FIFO_1 | P3_FIFO_1 |
此外,本发明一实施例也可利用线性方程式来实现功率模型。比如,以路由器的功率状态(如上述的实施方式四-根据路由器的输入端口是否被写入与输出端口是否被读出来决定路由器的电路状态)为例,查上表4可得到各输入端口/输出端口的功率状态,将之编码为[Rx0,Rx1,Rx2,Rx3,Rx4,Tx0,Tx1,Tx2,Tx3,Tx4](Rx0代表对输入端口Rx0在此频率周期下的功率状态的编码结果,其余可依此类推)。
之后,可以将路由器的功率模型表示为:
其中Pstatic代表静态功率。代表Rxi因写入操作所造成的功率增加,代表Txi因读出操作造成的功率增加。
由上述实施例的说明可以得知,在本发明一实施例中,(1)估算出封包的各传输单位的传输时序;(2)依据各传输单位所对应的传输时序,来估算NoC的各元件的功率状态(路由器功率状态及/或FIFO功率状态);以及(3)根据各元件功率状态,来估算出NoC在每个频率周期的功率消耗值。
此外,本发明一实施例还提出一种芯片上网络的时序功率估算装置,如图17所示。在图17中,时序功率估算装置1700至少包括:传输时序计算单元1710,用以计算封包的各别传输单位进/出各元件的各别传输时序;元件功率状态计算单元1720,用以根据各别传输单位的各别传输时序,来得到各元件的各别功率状态;以及功率估算单元1730,根据各元件的各别功率状态,来估算出该NoC在各频率周期下的功率消耗。至于单元1710~1730的实施细节则可如上所述,于此不重述。另外,单元1710~1730可以利用集成电路来实现,或可包含至少一处理器来完成,即可以由软件、硬件或韧体方式来实施,此皆在本发明的精神范围内。
关于管线化的路由器微架构(router micro-architecture),路由器的工作可分为五个阶段:链接穿越和输入缓冲(Link Traversal and Input Buffering(LT&IB))、绕径计算(Route Calculation(RC))、虚通道配置(Virtual Channel Allocation(VCA))、交换器配置(Switch Allocation(SA))、交换器穿越和输出缓冲(Switch Traversal andOutput Buffering(ST&OB))。不同的路由器微架构可以在会话之间插入缓存器(register(Reg)),通过打断电路上的关键路径,提高操作频率。
在本案实施例中,因应不同的路由器微架构,时序方程式将有所不同。图18A显示可能的单阶路由器架构一实施例(可应用上述公式(1)与(2))。图18B则显示可能的两阶管线化路由器架构一实施例(应用下面公式(5)与(6))。底下将分别说明公式(5)与(6)。公式(5)包括公式(5.1)与(5.2)
公式(5.1)相同于公式(1.1)。
公式(5.2)代表,如果没有阻塞发生,则传输单位flit[0]进入路由器stage[i]的时间(即路由器stage[i]内的最后一级缓存器取样到此传输单位的时间)等于下列三项的总和:(i)传输单位flit[0]进入前一级路由器stage[i-1]的时间(tstage[i-1]flit[0]);(ii)此传输单位通过FIFO的时间(ΔtpassFIFO);与(iii)路由器stage[i]的一个频率周期的长度(即本例中通过第一级缓存器的时间)。也就是说,如果没有阻塞发生,则利用公式(5.2)来求得封包的表头(flit[0])进入路由器stage[i]的时间tstage[i]flit[0]。
接着,本发明一实施例要利用公式(6)来求出此封包的后续传输单位flit[j](j=1,2,...)进入路由器stage[i]的时间(tstage[i]flit[j])(也可称为第j传输单位进入时间)。
公式(6)包括公式(6.1)、(6.2与(6.3)
公式(6.1与(6.2)相同于公式(6.1)与(6.2)。
公式(6.3)代表的物理意义为:如果路由器stage[i]和路由器stage[i+1]之间的FIFO(深度为d)被填满(亦即,FIFO中停驻了传输单位flit[j-2]、...、flit[j-d-1]),同时flit[j-d-2]停驻在stage[i+1]的第一级管线缓存器,则这将会造成传输单位flit[j-1]阻塞在路由器stage[i]的第二级管线缓存器。所以,传输单位flit[j]进入路由器stage[i]的时间tstage[i]flit[j]超过(≥)传输单位flit[j-d-2]进入路由器stage[i+1]的时间tstage[i+1]flit[j-d-2]加上传输单位flit[j-1]被允许写入此FIFO的时间(ΔtsynFIFO)。基本概念与单阶路由器相同,差别在于此两阶管线化路由器有两级管线缓存器,因此,传输单位flit[j-d-2]可以被额外缓冲储存。
图19A~图19C显示在本发明一实施例中,当FIFO被填满时,如何求出tstage[i]flit[j](其应用于两阶管线化路由器架构,亦即,路由器包括两级管线缓存器)。如图19A所示的初始状态代表FIFO被填满,且路由器stage[i+1]的输入通道也被占据,所以发生阻塞。接着,在图19B中,于路由器stage[i+1]的第二级管线缓存器被释放后,传输单位flit 0由stage[i+1]的第一级缓存器写入第二级缓存器,同时flit 1从FIFO写入至路由器stage[i+1]的第一级缓存器。故而,FIFO空出一个储存空间。接着,在图19C中,传输单位flit 4被允许写入至路由器stage[i]。
由上述实施例的说明可知,本发明一实施例可符合大规模NoC(可能包括数十或数百个路由器)的系统层级(system level)动态功率分析,而且,本发明一实施例的功率可达到频率周期更精确,且可更快速地动态估算出NoC的时序功率。因为本发明实施例是以解方程式来求出NoC的时序功率,故而,本发明实施例能够更快速地动态估算出NoC的时序功率。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种芯片上网络的时序功率估算方法,包括下列步骤:
估算至少一封包的多个传输单位的多个传输时序,该多个传输时序指示该多个传输单位进/出该芯片上网络的多个路经元件的各自时间;
依据该多个传输单位的该多个传输时序,估算该芯片上网络的多个路经元件的各自电路状态与各自功率状态,该电路状态代表该路经元件的操作状态,该功率状态有关于该电路状态;以及
根据该芯片上网络的多个路经元件的该多个功率状态,估算该芯片上网络的功率消耗。
2.如权利要求1所述的时序功率估算方法,其特征在于,估算该多个传输单位的该多个传输时序的该步骤包括:
根据至少一封包参数,以及该芯片上网络的绕线参数,决定该封包的绕线路径;
当多个封包的多个绕线路径冲突时,进行仲裁,以决定哪一个封包取得通道使用权;
计算该多个传输单位的该多个传输时序;以及
更新该多个路经元件的各自电路状态,以及计算该通道使用权的释放时序,据以计算出其他封包得到该通道使用权的使用时序。
3.如权利要求2所述的时序功率估算方法,其特征在于,
根据该绕线参数为动态绕线或静态绕线,决定该多个路经元件的各自电路状态的更新是否影响该封包的该绕线路径。
4.如权利要求2所述的时序功率估算方法,其特征在于,计算该多个传输单位的该多个传输时序的该步骤包括:
决定第i路由器stage[i]被该封包释放的该释放时序tstage[i]release,其中i为正整数;
决定,在没有阻塞的情况下,该封包的该多个传输单位之通过缓冲器所需要花费的FIFO通过时间ΔtpassFIFO;
决定,当该缓冲器为全满时,从该缓冲器读出该封包的该多个传输单位之一后,到写入该封包的该多个传输单位的下一个传输单位至该缓冲器之间的FIFO允许写入时间ΔtsyncFIFO;以及
决定是否发生缓冲器阻塞。
5.如权利要求4所述的时序功率估算方法,其特征在于,决定是否发生缓冲器阻塞的该步骤包括:
决定该封包的表头传输单位flit[0]进入第i-1路由器stage[i-1]的第一表头进入时间tstage[i-1]flit[0]与该表头传输单位flit[0]通过该缓冲器所花费的该FIFO通过时间ΔtpassFIFO的总和;以及
比较该总和与该第i路由器stage[i]被释放的该释放时序tstage[i]release,以决定是否发生缓冲器阻塞。
6.如权利要求5所述的时序功率估算方法,其特征在于,当为单阶路由器架构时,
如果发生缓冲器阻塞,则决定该表头传输单位flit[0]进入该第i路由器stage[i]的第二表头进入时间tstage[i]flit[0]等于该第i路由器stage[i]被释放的该释放时序tstage[i]release加上频率周期;
如果没有发生缓冲器阻塞,则该表头传输单位flit[0]进入该第i路由器stage[i]的该第二表头进入时间tstage[i]flit[0]等于该表头传输单位flit[0]进入该第i-1路由器stage[i-1]的该第一表头进入时间tstage[i-1]flit[0]加上该表头传输单位flit[0]通过该缓冲器所花费的该FIFO通过时间ΔtpassFIFO。
7.如权利要求6所述的时序功率估算方法,其特征在于,当为单阶路由器架构时,该封包的第j传输单位flit[j],其中j为正整数,进入该第i路由器stage[i]的第j传输单位进入时间tstage[i]flit[j]满足下列条件:
该第j传输单位进入时间tstage[i]flit[j]等于该封包的第j-1传输单位flit[j-1]进入该第i路由器stage[i]的第j-1传输单位进入时间tstage[i]flit[j-1]加上该第i路由器stage[i]的k个频率周期clkstage[i],其中k为正整数;
该封包的该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位进入时间tstage[i]flit[j]超过该第j传输单位flit[j]进入该第i-1路由器stage[i-1]的时间tstage[i-1]flit[j]加上该第j传输单位flit[j]通过该缓冲器FIFO所花费的该FIFO通过时间ΔtpassFIFO;以及
如果深度为d的该缓冲器被填满,其中,d为正整数,则该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位时间tstage[i]flit[j]超过第j-d-1传输单位flit[j-d-1]进入第i+1路由器stage[i+1]的时间tstage[i+1]flit[j-d-1]加上该第j-1传输单位flit[j-1]被允许写入该FIFO的该FIFO允许写入时间ΔtsynFIFO。
8.如权利要求5所述的时序功率估算方法,其特征在于,当为两阶路由器架构时,
如果发生缓冲器阻塞,则决定该表头传输单位flit[0]进入该第i路由器stage[i]的第二表头进入时间tstage[i]flit[0]等于该第i路由器stage[i]被释放的该释放时序tstage[i]release加上频率周期;以及
如果没有发生缓冲器阻塞,则该表头传输单位flit[0]进入该第i路由器stage[i]的该第二表头进入时间tstage[i]flit[0]等于该表头传输单位flit[0]进入该第i-1路由器stage[i-1]的该第一表头进入时间tstage[i-1]flit[0]加上该表头传输单位flit[0]通过该缓冲器所花费的该FIFO通过时间ΔtpassFIFO再加上该频率周期。
9.如权利要求8项所述的时序功率估算方法,其特征在于,当为两阶路由器架构时,
该封包的第j传输单位flit[j],其中j为正整数,进入该第i路由器stage[i]的第j传输单位进入时间tstage[i]flit[j]满足下列条件:
该第j传输单位进入时间tstage[i]flit[j]等于该封包的第j-1传输单位flit[j-1]进入该第i路由器stage[i]的第j-1传输单位进入时间tstage[i]flit[j-1]加上该第i路由器stage[i]的k个频率周期clkstage[i],其中,k为正整数;
该封包的该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位进入时间tstage[i]flit[j]超过该第j传输单位flit[j]进入该第i-1路由器stage[i-1]的时间tstage[i-1]flit[j]加上该第j传输单位flit[j]通过该缓冲器FIFO所花费的该FIFO通过时间ΔtpassFIFO;以及
如果深度为d的该缓冲器被填满,其中,d为正整数,则该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位时间tstage[i]flit[j]超过第j-d-2传输单位flit[j-d-2]进入第i+1路由器stage[i+1]的时间tstage[i+1]flit[j-d-1]加上该第j-1传输单位flit[j-1]被允许写入该FIFO的该FIFO允许写入时间ΔtsynFIFO。
10.如权利要求1项所述的时序功率估算方法,其特征在于,估算该芯片上网络的该多个路经元件的各自电路状态与各自功率状态的该步骤包括:
如果该多个路经元件之一为缓冲器,则根据该缓冲器是否被写入与是否被读出来决定该路经元件的功率状态;或者
如果该多个路经元件之一为该缓冲器,则根据该缓冲器是否被写入、是否被读出与该缓冲器的停驻数来决定该路经元件的该功率状态;或者
如果该多个路经元件之一为路由器,则根据该路由器的写入数与读出数来决定该路经元件的该功率状态;或者
如果该多个路经元件之一为该路由器,则根据该路由器的个别输入端口是否被写入与该路由器的个别输出端口是否被读出来决定该路经元件的该功率状态。
11.如权利要求1项所述的时序功率估算方法,其特征在于,估算该芯片上网络的该功率消耗的该步骤包括:
利用功率模型查表,从该多个路经元件的该多个功率状态得到该多个路经元件的个别消耗功率,以及加总该多个消耗功率以估算该芯片上网络的该功率消耗;或者
利用方程式,从该多个路经元件的该多个功率状态得到该多个路经元件的个别消耗功率,以及加总该多个消耗功率以估算该芯片上网络的该功率消耗。
12.一种芯片上网络的时序功率估算装置,包括:
传输时序计算单元,估算至少一封包的多个传输单位的多个传输时序,该多个传输时序指示该多个传输单位进/出该芯片上网络的多个路经元件的各自时间;
元件功率状态计算单元,依据该多个传输单位的该多个传输时序,估算该芯片上网络的多个路经元件的各自电路状态与各自功率状态,该电路状态代表该路经元件的操作状态,该功率状态有关于该电路状态;以及
功率估算单元,根据该芯片上网络的多个路经元件的该多个功率状态,估算该芯片上网络的功率消耗。
13.如权利要求12项所述的时序功率估算装置,其特征在于:
根据至少一封包参数,以及该芯片上网络的的绕线参数,该传输时序计算单元决定该封包的绕线路径;
当多个封包的多个绕线路径冲突时,该传输时序计算单元进行仲裁,以决定哪一个封包取得通道使用权;
该传输时序计算单元计算该多个传输单位的该多个传输时序;以及
该传输时序计算单元更新该多个路经元件的各自电路状态,以及计算该通道使用权的释放时序,以据以计算出其他封包得到该通道使用权的使用时序。
14.如权利要求13项所述的时序功率估算装置,其特征在于,
根据该绕线参数为动态绕线或静态绕线,该传输时序计算单元决定该多个路经元件的各自电路状态的更新是否影响该封包的该绕线路径。
15.如权利要求13项所述的时序功率估算装置,其特征在于:
该传输时序计算单元决定第i路由器stage[i]被该封包释放的该释放时序tstage[i]release,其中i为正整数;
该传输时序计算单元决定,在没有阻塞的情况下,该封包的该多个传输单位之一通过缓冲器所需要花费的FIFO通过时间ΔtpassFIFO;
该传输时序计算单元决定,当该缓冲器为全满时,从该缓冲器读出该封包的该多个传输单位之一后,到写入该封包的该多个传输单位的下一个传输单位至该缓冲器之间的FIFO允许写入时间ΔtsyncFIFO;以及
该传输时序计算单元决定是否发生缓冲器阻塞。
16.如权利要求15项所述的时序功率估算装置,其特征在于:
该传输时序计算单元决定该封包的表头传输单位flit[0]进入第i-1路由器stage[i-1]的第一表头进入时间tstage[i-1]flit[0]与该表头传输单位flit[0]通过该缓冲器所花费的该FIFO通过时间ΔtpassFIFO的总和;以及
该传输时序计算单元比较该总和与该第i路由器stage[i]被释放的该释放时序tstage[i]release,以决定是否发生缓冲器阻塞。
17.如权利要求16所述的时序功率估算装置,其特征在于,当为单阶路由器架构时,
如果发生缓冲器阻塞,则该传输时序计算单元决定该表头传输单位flit[0]进入该第i路由器stage[i]的第二表头进入时间tstage[i]flit[0]等于该第i路由器stage[i]被释放的该释放时序tstage[i]release加上频率周期;
如果没有发生缓冲器阻塞,则该传输时序计算单元决定该表头传输单位flit[0]进入该第i路由器stage[i]的该第二表头进入时间tstage[i]flit[0]等于该表头传输单位flit[0]进入该第i-1路由器stage[i-1]的该第一表头进入时间tstage[i-1]flit[0]加上该表头传输单位flit[0]通过该缓冲器所花费的该FIFO通过时间ΔtpassFIFO。
18.如权利要求17所述的时序功率估算装置,其特征在于,当为单阶路由器架构时,
该传输时序计算单元决定该封包的第j传输单位flit[j],其中j为正整数,进入该第i路由器stage[i]的第j传输单位进入时间tstage[i]flit[j]满足下列条件:
该第j传输单位进入时间tstage[i]flit[j]等于该封包的第j-1传输单位flit[j-1]进入该第i路由器stage[i]的第j-1传输单位进入时间tstage[i]flit[j-1]加上该第i路由器stage[i]的k个频率周期clkstage[i],其中k为正整数;
该封包的该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位进入时间tstage[i]flit[j]超过该第j传输单位flit[j]进入该第i-1路由器stage[i-1]的时间tstage[i-1]flit[j]加上该第j传输单位flit[j]通过该缓冲器FIFO所花费的该FIFO通过时间ΔtpassFIFO;以及
如果深度为d的该缓冲器被填满,d为正整数,则该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位时间tstage[i]flit[j]超过第j-d-1传输单位flit[j-d-1]进入第i+1路由器stage[i+1]的时间tstage[i+1]flit[j-d-1]加上该第j-1传输单位flit[j-1]被允许写入该FIFO的该FIFO允许写入时间ΔtsynFIFO。
19.如权利要求16所述的时序功率估算装置,其特征在于,当为两阶路由器架构时,
如果发生缓冲器阻塞,则决定该表头传输单位flit[0]进入该第i路由器stage[i]的第二表头进入时间tstage[i]flit[0]等于该第i路由器stage[i]被释放的该释放时序tstage[i]release加上频率周期;
如果没有发生缓冲器阻塞,则该表头传输单位flit[0]进入该第i路由器stage[i]的该第二表头进入时间tstage[i]flit[0]等于该表头传输单位flit[0]进入该第i-1路由器stage[i-1]的该第一表头进入时间tstage[i-1]flit[0]加上该表头传输单位flit[0]通过该缓
冲器所花费的该FIFO通过时间ΔtpassFIFO再加上该频率周期。
20.如权利要求19所述的时序功率估算装置,其特征在于,当为两阶路由器架构时,
该封包的第j传输单位flit[j],其中j为正整数,进入该第i路由器stage[i]的第j传输单位进入时间tstage[i]flit[j]满足下列条件:
该第j传输单位进入时间tstage[i]flit[j]等于该封包的第j-1传输单位flit[j-1]进入该第i路由器stage[i]的第j-1传输单位进入时间tstage[i]flit[j-1]加上该第i路由器stage[i]的k个频率周期clkstage[i],k为正整数;
该封包的该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位进入时间tstage[i]flit[j]超过该第j传输单位flit[j]进入该第i-1路由器stage[i-1]的时间tstage[i-1]flit[j]加上该第j传输单位flit[j]通过该缓冲器FIFO所花费的该FIFO通过时间ΔtpassFIFO;以及
如果深度为d的该缓冲器被填满,d为正整数,则该第j传输单位flit[j]进入该第i路由器stage[i]的该第j传输单位时间tstage[i]flit[j]超过第j-d-2传输单位flit[j-d-2]进入第i+1路由器stage[i+1]的时间tstage[i+1]flit[j-d-1]加上该第j-1传输单位flit[j-1]被允许写入该FIFO的该FIFO允许写入时间ΔtsynFIFO。
21.如权利要求12所述的时序功率估算装置,其特征在于:
如果该多个路经元件之一为缓冲器,则该元件功率状态计算单元根据该缓冲器的写入数与读出数来决定该路经元件的功率状态;或者
如果该多个路经元件之一为该缓冲器,则该元件功率状态计算单元根据该缓冲器的该写入数、该读出数与停驻数来决定该路经元件的该功率状态;或者
如果该多个路经元件之一为路由器,则该元件功率状态计算单元根据该路由器的写入数与读出数来决定该路经元件的该功率状态;或者
如果该多个路经元件之一为该路由器,则该元件功率状态计算单元根据该路由器的个别输入端口是否被写入与该路由器的个别输出端口是否被读出来决定该路经元件的该功率状态。
22.如权利要求12所述的时序功率估算装置,其特征在于:
利用功率模型查表,功率估算单元从该多个路经元件的该多个功率状态得到该多个路经元件的个别消耗功率,以及加总该多个消耗功率以估算该芯片上网络的该功率消耗;或者
利用方程式,功率估算单元从该多个路经元件的该多个功率状态得到该多个路经元件的个别消耗功率,以及加总该多个消耗功率以估算该芯片上网络的该功率消耗。
23.如权利要求12所述的时序功率估算装置,其特征在于,该传输时序计算单元、该元件功率状态计算单元、以及该功率估算单元以至少一处理器所完成。
24.如权利要求13所述的时序功率估算装置,其特征在于,该传输时序计算单元、该元件功率状态计算单元、以及该功率估算单元以至少一集成电路来实现。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103140607A TWI531187B (zh) | 2014-11-24 | 2014-11-24 | 晶片上網路之時序功率估算裝置與方法 |
TW103140607 | 2014-11-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740199A CN105740199A (zh) | 2016-07-06 |
CN105740199B true CN105740199B (zh) | 2019-01-11 |
Family
ID=56011337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410758548.2A Active CN105740199B (zh) | 2014-11-24 | 2014-12-11 | 芯片上网络的时序功率估算装置与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9842180B2 (zh) |
CN (1) | CN105740199B (zh) |
TW (1) | TWI531187B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015024680A1 (de) * | 2013-08-21 | 2015-02-26 | Siemens Ag Österreich | Verfahren und schaltungsanordnung zur zeitlichen eingrenzung und trennung von zugriffen in einem ein-chip-system |
KR102338266B1 (ko) * | 2015-09-15 | 2021-12-16 | 에스케이하이닉스 주식회사 | 메모리 네트워크 및 이를 포함하는 시스템 |
TWI627521B (zh) * | 2017-06-07 | 2018-06-21 | 財團法人工業技術研究院 | 時序估算方法與模擬裝置 |
CN109885512B (zh) * | 2019-02-01 | 2021-01-12 | 京微齐力(北京)科技有限公司 | 集成fpga和人工智能模块的系统芯片及设计方法 |
US11734174B2 (en) * | 2019-09-19 | 2023-08-22 | Intel Corporation | Low overhead, high bandwidth re-configurable interconnect apparatus and method |
CN111208972A (zh) * | 2019-12-25 | 2020-05-29 | 上海亮牛半导体科技有限公司 | 同源不同频的同步fifo |
US11657273B2 (en) * | 2019-12-27 | 2023-05-23 | Industrial Technology Research Institute | Hardware structure aware adaptive learning based power modeling method and system |
CN113839878B (zh) * | 2021-09-26 | 2023-05-23 | 南京宁麒智能计算芯片研究院有限公司 | 一种面向数据密集型应用的片上网络近似通信系统 |
CN115277563B (zh) * | 2022-06-07 | 2024-03-19 | 南京大学 | 一种基于离线强化学习的片上网络近似控制系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227298A (zh) * | 2008-01-09 | 2008-07-23 | 南京大学 | 基于片上网络的路由器功耗模型 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933358A (en) | 1997-09-30 | 1999-08-03 | Synopsys, Inc. | Method and system of performing voltage drop analysis for power supply networks of VLSI circuits |
CN1293502C (zh) * | 1999-06-30 | 2007-01-03 | 倾向探测公司 | 用于监控网络流量的方法和设备 |
US6865526B1 (en) | 2000-01-24 | 2005-03-08 | University Of California-Riverside | Method for core-based system-level power modeling using object-oriented techniques |
EP1296152A1 (de) * | 2001-09-21 | 2003-03-26 | Siemens Aktiengesellschaft | Elektronischer Baustein und Verfahren zu dessen Qualifizierungsmessung |
US20060080076A1 (en) | 2004-10-12 | 2006-04-13 | Nec Laboratories America, Inc. | System-level power estimation using heteregeneous power models |
WO2007066321A1 (en) | 2005-12-08 | 2007-06-14 | Mentor Graphics Corporation | Transaction-based power model in circuit designs |
JP5070785B2 (ja) | 2006-09-26 | 2012-11-14 | 富士通セミコンダクター株式会社 | 回路設計方法及び回路設計システム |
US7971082B2 (en) | 2007-01-31 | 2011-06-28 | Freescale Semiconductor, Inc. | Method and system for estimating power consumption of integrated circuit design |
EP2218024A1 (en) | 2007-10-03 | 2010-08-18 | University College Dublin | System level power evaluation method |
CN101458556A (zh) | 2007-12-14 | 2009-06-17 | 联想(北京)有限公司 | 网卡的功耗和连接模式的动态控制方法及装置 |
JP5387918B2 (ja) * | 2008-04-30 | 2014-01-15 | 日本電気株式会社 | ルータ、そのルータを有する情報処理装置及びパケットのルーティング方法 |
US8521868B2 (en) * | 2008-10-15 | 2013-08-27 | International Business Machines Corporation | Platform-level indicators of application performance |
CN102449965B (zh) * | 2010-03-05 | 2015-01-14 | 松下电器产业株式会社 | 中继器 |
US9636589B2 (en) * | 2010-11-02 | 2017-05-02 | Sony Interactive Entertainment America Llc | Detecting lag switch cheating in game |
TW201224748A (en) | 2010-12-06 | 2012-06-16 | Ind Tech Res Inst | Transaction level system power estimation method and system |
US9042397B2 (en) * | 2011-02-02 | 2015-05-26 | Futurewei Technologies, Inc. | Method and apparatus for achieving fairness in interconnect using age-based arbitration and timestamping |
US8930647B1 (en) * | 2011-04-06 | 2015-01-06 | P4tents1, LLC | Multiple class memory systems |
US9432298B1 (en) * | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US20120303322A1 (en) | 2011-05-23 | 2012-11-29 | Rego Charles W | Incorporating memory and io cycle information into compute usage determinations |
US9003017B2 (en) * | 2011-06-30 | 2015-04-07 | At&T Intellectual Property I, L.P. | Methods, devices, and computer program products for providing a computing application rating |
US8711867B2 (en) * | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
US20130080141A1 (en) | 2011-09-23 | 2013-03-28 | National Tsing Hua University | Power aware simulation system with embedded multi-core dsp |
WO2013054497A1 (ja) * | 2011-10-14 | 2013-04-18 | パナソニック株式会社 | 中継器、中継器の制御方法、およびコンピュータプログラム |
CN102437953B (zh) | 2011-12-14 | 2014-07-30 | 清华大学 | 片上网络中的低功耗自适应路由方法 |
US20140107999A1 (en) | 2012-10-12 | 2014-04-17 | Silicon Integration Initiative, Inc. | Multi-level abstract power modeling method |
IN2015DN02440A (zh) * | 2012-10-15 | 2015-09-04 | Ericsson Telefon Ab L M | |
WO2015031866A1 (en) * | 2013-08-30 | 2015-03-05 | Clearpath Networks, Inc. | System and method of network functions virtualization of network services within and across clouds |
US9629104B2 (en) * | 2013-11-27 | 2017-04-18 | At&T Intellectual Property I, Lp | Client-side scheduling for media transmissions according to client device states |
US9197717B2 (en) * | 2013-11-27 | 2015-11-24 | At&T Intellectual Property I, Lp | Server-side scheduling for media transmissions according to client device states |
US9473415B2 (en) * | 2014-02-20 | 2016-10-18 | Netspeed Systems | QoS in a system with end-to-end flow control and QoS aware buffer allocation |
-
2014
- 2014-11-24 TW TW103140607A patent/TWI531187B/zh active
- 2014-12-11 CN CN201410758548.2A patent/CN105740199B/zh active Active
- 2014-12-30 US US14/585,864 patent/US9842180B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227298A (zh) * | 2008-01-09 | 2008-07-23 | 南京大学 | 基于片上网络的路由器功耗模型 |
Non-Patent Citations (4)
Title |
---|
《Increasing NoC power estimation accuracy through a rate-based model》;G Guindani等;《Acm/ieee International Symposium on Networks-on-chip》;20091231;第89页 * |
《NoC Power Estimation at the RTL Abstraction Level》;G Guindani等;《IEEE Computer Society Symposium on Vlsi》;20081231;第475-478页 * |
《一种门级功耗的估算方法与优化策略研究》;严军;《中国优秀硕士学位论文全文数据库信息科技辑》;20121031;第I135-426页 * |
《基于S域RLC传输线模型的多芯片组件互连功耗计算》;董刚等;《计算物理》;20061130;第23卷(第6期);第753-756页 * |
Also Published As
Publication number | Publication date |
---|---|
US20160149780A1 (en) | 2016-05-26 |
TW201620273A (zh) | 2016-06-01 |
TWI531187B (zh) | 2016-04-21 |
US9842180B2 (en) | 2017-12-12 |
CN105740199A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105740199B (zh) | 芯片上网络的时序功率估算装置与方法 | |
US9515961B2 (en) | Credit flow control scheme in a router with flexible link widths utilizing minimal storage | |
US10074053B2 (en) | Clock gating for system-on-chip elements | |
US8819611B2 (en) | Asymmetric mesh NoC topologies | |
US9742630B2 (en) | Configurable router for a network on chip (NoC) | |
US9699079B2 (en) | Streaming bridge design with host interfaces and network on chip (NoC) layers | |
US8514889B2 (en) | Use of common data format to facilitate link width conversion in a router with flexible link widths | |
US10031878B2 (en) | Configurable mesh data bus in an island-based network flow processor | |
US9237095B2 (en) | Island-based network flow processor integrated circuit | |
US20180159786A1 (en) | Interface virtualization and fast path for network on chip | |
CN105306382B (zh) | 一种无缓存noc数据处理方法及noc电子元件 | |
US20130215792A1 (en) | Configurable Mesh Control Bus In An Island-Based Network Flow Processor | |
US9185026B2 (en) | Tagging and synchronization for fairness in NOC interconnects | |
Gharan et al. | A novel virtual channel implementation technique for multi-core on-chip communication | |
US8930872B2 (en) | Staggered island structure in an island-based network flow processor | |
US9401880B1 (en) | Flow control using a local event ring in an island-based network flow processor | |
US20130219094A1 (en) | Commonality of Memory Island Interface and Structure | |
US20130215899A1 (en) | Distributed Credit FIFO Link of a Configurable Mesh Data Bus | |
US8559436B2 (en) | Processing resource management in an island-based network flow processor | |
US9268600B2 (en) | Picoengine pool transactional memory architecture | |
US9626306B2 (en) | Global event chain in an island-based network flow processor | |
Escobar et al. | Performance evaluation of a Network on a Chip router using SystemC and TLM 2.0 | |
US9928204B2 (en) | Transaction expansion for NoC simulation and NoC design | |
Sahu | Bidirectional Network-on-Chip Router Implementation Using VHDL |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |