CN112363612A - 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 - Google Patents
一种降低片上网络功耗的方法、装置、cpu芯片及服务器 Download PDFInfo
- Publication number
- CN112363612A CN112363612A CN202011135779.XA CN202011135779A CN112363612A CN 112363612 A CN112363612 A CN 112363612A CN 202011135779 A CN202011135779 A CN 202011135779A CN 112363612 A CN112363612 A CN 112363612A
- Authority
- CN
- China
- Prior art keywords
- mean
- niu
- rreq
- core
- rrsp
- 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
-
- 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/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
-
- 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/781—On-chip cache; Off-chip memory
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明的实施例公开了一种降低片上网络功耗的方法、装置、CPU芯片及服务器,涉及计算机技术领域,能够有效降低片上网络的功耗。所述方法包括:获取片上网络NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。本发明适用于降低片上网络功耗的场合。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种降低片上网络功耗的方法、装置、CPU芯片及服务器。
背景技术
随着集成电路的发展和工艺的提升,芯片的集成度在不断提升,大规模SOC(System on Chip,***级芯片)设计已成为主流。NoC(Network on Chip,片上网络)用于实现SOC中各个设备的片上互联,主要包括多个网络接口单元(Network Interface Unit,NIU)和路由单元(Router Unit,RU),如图1所示,NIU在NoC的边界,每个NIU用于连接一个挂载设备,并负责管理该设备发出的所有请求和发送给该设备的所有请求。对于设备发送的每个请求,NIU均会记录相关信息并转发给RU,在收到RU转发的响应后,NIU将响应转发给设备并清除相关记录。对于从RU发送给设备的每个请求,NIU均会记录相关信息并转发给设备,在收到设备的响应之后,NIU将响应转发给RU并清除相关记录。RU在NoC的内部,实现NIU之间的互联,负责将NIU转发的每一笔请求或响应按照预设的路由规则转发给指定的NIU,RU的拓扑结构可根据设计需求制定,包括网状拓扑、环状拓扑等,RU会暂存收到的每笔请求或响应,在转发之后删除相关记录。
考虑到NoC的性能决定了整个SOC片上通信的效率,与SOC的性能息息相关,NoC一般都具有高带宽低延时的特性,而且NoC分布在SOC各处,占SOC设计比重大,因此NoC消耗了SOC相当大比例的功耗,降低NoC设计的功耗显得尤为重要。
现有的SOC设计中,由于NoC能耗较高,一般都会在NoC中加入门控电源设计,在NoC处于空闲状态时,通过控制电路将NoC整体断电,以达到降低功耗的目的。然而,考虑到将NoC整体从断电状态恢复到工作状态会需要较长时间,为了保证***的性能,设计时会对NoC整体进入断电状态附加较多要求,实际***工作时,即使NoC的工作负荷非常低,NoC也很少有机会能够进入整体断电状态,导致了大量无效能耗。
发明内容
有鉴于此,本发明实施例提供一种降低片上网络功耗的方法、装置、CPU芯片及服务器,能够有效降低片上网络的功耗。
第一方面,本发明实施例提供一种降低片上网络功耗的方法,所述片上网络NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,所述NIU和RU中的缓存均独立控制,所述方法包括:
获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;
根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
结合第一方面,在第一方面的一种实施方式中,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
结合第一方面,在第一方面的另一种实施方式中,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
所述方法还包括:
当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
结合第一方面,在第一方面的再一种实施方式中,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
结合第一方面,在第一方面的又一种实施方式中,所述步骤A3中下电评估值Pi的计算公式为:
其中,c为相关联的核心RU的序号,Ac,i,Bc,i,Cc,i,Dc,i,Ec,i和Fc,i为参数且与NoC拓扑和配置相关。
结合第一方面,在第一方面的又一种实施方式中,所述方法还包括:
当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
结合第一方面,在第一方面的又一种实施方式中,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
第二方面,本发明实施例提供一种降低片上网络功耗的装置,所述片上网络NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,所述NIU和RU中的缓存均独立控制,所述装置包括:
获取模块,用于获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;
计算模块,用于根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
关闭模块,用于根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
结合第二方面,在第二方面的一种实施方式中,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
结合第二方面,在第二方面的另一种实施方式中,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
所述装置还包括:
下电触发模块,用于当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
结合第二方面,在第二方面的再一种实施方式中,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
结合第二方面,在第二方面的又一种实施方式中,所述步骤A3中下电评估值Pi的计算公式为:
其中,c为相关联的核心RU的序号,Ac,i,Bc,i,Cc,i,Dc,i,Ec,i和Fc,i为参数且与NoC拓扑和配置相关。
结合第二方面,在第二方面的又一种实施方式中,所述装置还包括:
上电触发模块,用于当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
结合第二方面,在第二方面的又一种实施方式中,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
第三方面,本发明实施例提供一种CPU芯片,包括:处理器核心和片上网络NoC,所述NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,所述NIU和RU中的缓存均独立控制;
所述处理器核心用于:获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
结合第三方面,在第三方面的一种实施方式中,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
结合第三方面,在第三方面的另一种实施方式中,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
所述处理器核心还用于:当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
结合第三方面,在第三方面的再一种实施方式中,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
结合第三方面,在第三方面的又一种实施方式中,所述步骤A3中下电评估值Pi的计算公式为:
其中,c为相关联的核心RU的序号,Ac,i,Bc,i,Cc,i,Dc,i,Ec,i和Fc,i为参数且与NoC拓扑和配置相关。
结合第三方面,在第三方面的又一种实施方式中,所述处理器核心还用于:当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
结合第三方面,在第三方面的又一种实施方式中,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
第四方面,本发明实施例提供一种服务器,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述服务器的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的方法。
本发明实施例提供的降低片上网络功耗的方法、装置、CPU芯片及服务器,首先获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种,然后根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量,最后根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。这样,通过实现对NoC内缓存进行动态调整,可以在保证NoC的性能与工作负荷相匹配,动态关闭暂时不用的逻辑单元,减少NoC的无效功耗,优化NoC的能效比,有效降低片上网络的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中片上网络的连接结构原理图;
图2为本发明的降低片上网络功耗的方法一个实施例的流程示意图;
图3为本发明中片上网络的网络接口单元NIU的结构示意图;
图4为本发明中片上网络的路由单元RU的结构示意图;
图5为本发明的降低片上网络功耗的方法另一实施例的流程示意图;
图6为本发明的降低片上网络功耗的装置一个实施例的结构示意图;
图7为本发明的降低片上网络功耗的装置另一实施例的结构示意图;
图8为本发明的服务器一个实施例的结构示意图;
图9为本发明中片上网络的示例图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
一方面,本发明实施例提供一种降低片上网络功耗的方法,所述片上网络NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,所述NIU和RU中的缓存均独立控制,如图2所示,本实施例的方法可以包括:
步骤101:获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;
NIU和RU中为了缓存和记录各类请求和响应会设计各类缓存单元。这些缓存单元的配置与NoC能达到的最大带宽密切相关,因此都是参照NoC在满带宽时的性能需求来设计的。然而***在实际运行过程中,大部分场景下NoC的带宽并未得到充分的利用,这就意味着NIU和RU中部分缓存在大部分情况下是冗余的,这部分缓存消耗能源对于***毫无价值。
本发明实施例中,NIU和RU中的缓存均独立控制,是指可以通过使用门控电源的方式进行控制以降低暂时冗余缓存的功耗,也可以通过使用门控时钟的方式进行控制以降低暂时冗余缓存的功耗;后续实施例中暂时均以使用门控电源的方式予以描述。
NIU和RU均会记录NoC中相应的请求和响应信息,通过分析各个NIU/RU中的记录信息和NIU/RU的缓存设计参数,可以在不影响NoC性能的基础上,对NIU/RU中缓存的电源进行动态门控管理,使NIU/RU中暂时冗余的缓存下电,降低能耗。
本步骤中,最近一段时间可根据***配置进行灵活设定,例如设置为最近10毫秒、20毫秒、30毫秒等。
步骤102:根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
步骤103:根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
为了降低NIU和RU中暂时冗余的缓存单元的功耗,可以引入缓存动态门控电源设计,根据NIU和RU的工作负荷,动态管理NIU和RU中缓存的上下电,当NIU/RU工作负荷变低时,关闭部分冗余缓存的电源,当NIU/RU工作负荷变高时,恢复部分下电缓存的供电。
NIU的结构框图如图3所示,通常包括请求缓存模块、路由模块、仲裁模块和响应缓存模块,其中请求缓存模块为Nreq_M个,响应缓存模块为Nrsp_M个;为实施本发明实施例的技术方案,可以在此基础增设缓存动态调节模块,每个请求缓存模块和响应缓存模块均设计独立门控电源,由缓存动态调节模块控制电源的开启和关闭。
作为一种可选的实施例,所述步骤102中,为快速准确的计算NIU中需要开启的缓存的数量,可以采用以下公式:
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
这样,根据最近一段时间内NIU中使用的缓存的最大数量即可计算得到NIU中需要开启的缓存的数量,具体实施时,缓存动态调节模块统计在最近时间窗Tm内被使用的请求缓存模块数目的最大值Nreq_max来预估需要开启的请求缓存模块数目Nreq_e,如公式一所示;同理,缓存动态调节模块统计在最近时间窗Tm内被使用的响应缓存模块数目的最大值Nrsp_max来预估需要开启的响应缓存模块数目Nrsp_e,如公式二所示。
RU的结构框图如图4所示,通常包括请求缓存模块、请求路由模块、请求转发模块、响应缓存模块、响应路由模块和响应转发模块,其中请求缓存模块为Rreq_M个,响应缓存模块为Rrsp_M个;为实施本发明实施例的技术方案,可以在此基础上增设缓存动态调节模块,每个请求缓存模块和响应缓存模块均设计独立门控电源,由缓存动态调节模块控制电源的开启和关闭。
作为另一可选的实施例,所述步骤102中,为快速准确的计算RU中需要开启的缓存的数量,可以采用以下公式:
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数;
这样,根据最近一段时间内RU中使用的缓存的最大数量即可计算得到RU中需要开启的缓存的数量,具体实施时,缓存动态调节模块统计在最近时间窗Tm内被使用的请求缓存模块数目的最大值Rreq_max来预估需要开启的请求缓存模块数目Rreq_e,如公式三所示;同理,缓存动态调节模块统计在最近时间窗Tm内被使用的响应缓存模块数目的最大值Rrsp_max来预估需要开启的响应缓存模块数目Rrsp_e,如公式四所示。
在***运行时,可以每经过一段时间/一个时间窗口的时长,对NIU和RU中缓存的开启或关闭进行一次调整。
为了保证整个***的性能,现有NoC设计一般都是按照***最高带宽需求来设计缓存和路由拓扑的,然而实际工作中,***并不会一直运行在满带宽状态,因此NoC中很大一部分暂时冗余逻辑处于既消耗了能源,又无法带来收益的状态。基于这类情况,很多***在设计时,会在NoC处于空闲状态时对NoC整体进行下电以降低能耗。这类设计在一定程度上改善了***能效,但是NoC完全处于空闲状态的情况并不多,因此还有很大的优化空间。
本发明实施例通过实现对NoC内缓存进行动态调整,可以在保证NoC的性能与工作负荷相匹配,动态关闭暂时不用的逻辑单元,减少NoC的无效功耗,优化NoC的能效比,有效降低片上网络的功耗。
发明人在研究过程中还发现,在设计NoC时,拓扑网络的设计主要考虑的是如何满足***的带宽和延时需求,由于设计是以NoC满带宽时性能为标准的,因此,当***实际带宽需求小于NoC能提供的最高带宽时,NoC中的RU是存在冗余的,可以通过修改路由以更少的RU满足NoC的实际带宽需求。
根据NoC拓扑,可以将RU分为两类:核心RU和普通RU。核心RU是指为了保持NoC的拓扑的连接性而必须工作的RU,核心RU必须保持在工作状态,只有当NoC整体下电时核心RU才能下电。普通RU是指在NoC拓扑中为了提升带宽或减小延时而存在的RU,当NoC工作负荷较低时,可以将普通RU下电以降低功耗。SOC设计中通常由***控制单元(SCU)(或其它控制逻辑)负责配置门控电源和NoC路由表。SCU通过实时监控NoC中各个RU的工作负荷,可以关闭工作负荷较低的RU并相应修改路由表,可以在不影响NoC性能的基础上降低NoC能耗。
为了保持NoC拓扑的连接性,核心RU不能单独断电,但是普通RU可以基于NoC的工作负荷,在不影响NoC带宽的情况下动态上下电,因此对普通RU可以以RU为整体采用门控电源设计。
每个普通RU的上下电都会对与其相关的核心RU的带宽产生影响,因此,每一个核心RU需要记录所有会对其带宽产生影响的普通RU的状态,每个普通RU对核心RU的带宽影响与NoC拓扑和路由有关。
因此,在本发明另一实施例中,RU分为核心RU和普通RU,所述普通RU均独立控制(含义与前相同,既可以门控电源的方式进行控制,也可以门控时钟的方式进行控制),所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
具体实施时,继续如图4所示,每个RU中可以增设负荷统计模块。核心RU的负荷统计模块用于统计该核心RU最近一段时间(具体可以是最近一个时间窗口Tr)内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)。普通RU的负荷统计模块用于统计该普通RU最近一段时间(具体可以是最近一个时间窗口Tr)内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c);
如图5所示,本实施例的方法可以包括:
步骤201:获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的数量、最近一段时间内RU中使用的缓存的数量中的一种或多种;
步骤202:根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
步骤203:根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存;
上述步骤201-203与前述步骤101-103相同,此处不再赘述。
步骤204:当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
本步骤中,在***运行时,每个核心RU和未下电的普通RU均实时监控统计的Rreq_mean(c)和Rrsp_mean(c),当任意一个核心RU或普通RU的两项统计值均小于预设的阈值下限时,触发普通RU下电流程。
普通RU下电流程优选如下,包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
在步骤A4中,若所述下电评估值Pi大于等于预设阈值,则在随后时间Tf内触发下电流程的RU不可再次触发下电流程。
优选的,步骤A3中下电评估值Pi的计算公式为:
其中,c为相关联的核心RU的序号,Ac,i,Bc,i,Cc,i,Dc,i,Ec,i和Fc,i为参数且与NoC拓扑和配置相关。
在进一步的实施例中,继续如图5所示,本实施例的方法还可以包括:
步骤205:当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
本步骤中,在***运行时,每个核心RU均实时监控统计Rreq_mean(c)、Rrsp_mean(c),当任意一个核心RU的这两项统计值中的任意一项大于阈值上限时,触发普通RU上电流程。
进一步的,所述工作状态数据还可以包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
具体实施时,继续如图4所示,核心RU的负荷统计模块还用于统计该均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),该两个统计值的含义是:由于普通RU下电导致核心RU工作负荷提高,此处的统计值表示每个已下电的普通RU分别导致核心RU的工作负荷提高了多少。
普通RU上电流程优选如下,包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
上述步骤B2、B3的目的在于选择出能够最大限度减轻核心RU负荷的普通RU,以在后续步骤中进行上电。
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
下面以一个具体的实施例对本发明的技术方案进行详细说明。
以图9所示的NoC设计为例,NoC中一共有10个NIU和20个RU,其中12个深色(黑色背景)RU为核心RU,另外8个浅色(白色背景)RU为普通RU。每个NIU配置了64个请求缓存模块和64个响应缓存模块,每个RU配置了16个请求缓存模块和16个响应缓存模块。
针对NIU中的缓存动态门控电源,考虑到NIU的Nreq_M和Nrsp_M均为64,可以将NIU的Nreq_m和Nrsp_m均设置为8。根据公式一和公式二,分别动态调整请求缓存模块和响应缓存模块的门控电源。
针对RU中的缓存动态门控电源,考虑到RU的Rreq_M和Rrsp_M均为16,可以将RU的Rreq_m和Rrsp_m均设置为4。根据公式三和公式四,分别动态调整请求缓存模块和响应缓存模块的门控电源。
针对RU的动态门控电源设计,以RU2的上下电流程为例进行说明。
如图9所示,从RU1至RU4的路由方式有两种:a)RU1-RU2-RU3-RU4;b)RU1-RU5-RU9-RU10-RU11-RU12-RU8-RU4。NoC路由表在同一时刻只能选择a和b中的一种路由路径。当RU2和RU3均处于工作状态时,应选择路由路径a以提升NoC性能,当RU2或RU3处于下电状态时应选择路由路径b以保证NoC拓扑连接性。
配置RU的请求缓存模块和响应缓存模块的预设下电阈值为4,上电阈值为12,下面以RU2的具体下电和上电流程为例进行介绍。
RU2下电流程:
1.当RU2的Rreq_mean(2)和Rrsp_mean(2)均小于下电阈值4时,RU2为待下电RU,进入下电流程;
2.根据公式五计算RU2的下电评估值P2,RU2下电后应该将路由路径a修改为路由路径b,因此路由路径b中所有核心RU均是与RU2相关的核心RU,相关参数如表1所示。
根据公式五计算得到P2<0,那么先修改路由表,将路由路径a移除,增加路由路径b,之后再将RU2下电。
表1
c | A | B | C | D | E | F |
1 | 1 | 1 | -12 | 1 | 1 | -12 |
4 | 1 | 1 | -12 | 1 | 1 | -12 |
5 | 1 | 1 | -12 | 1 | 1 | -12 |
8 | 1 | 1 | -12 | 1 | 1 | -12 |
9 | 1 | 1 | -12 | 1 | 1 | -12 |
10 | 1 | 1 | -12 | 1 | 1 | -12 |
11 | 1 | 1 | -12 | 1 | 1 | -12 |
12 | 1 | 1 | -12 | 1 | 1 | -12 |
RU2上电流程:
1.核心RU9的Rreq_mean(9)超过阈值上限12,触发普通RU上电流程;
2.检查核心RU9在最近Tr时间窗口内的各个统计值Rreq_mean_each(9,i)(i={2,3,6,7,14,15,18,19}),选择其中最大值Rreq_mean_each(9,2),RU2即为待上电RU;
3.检查路由表,查找与RU2相关路由路径,发现需要将路由路径b修改为路由路径a,因此需要将路由路径a上所有已下电RU(RU2和RU3)恢复上电;
4.将RU2和RU3上电,在RU2和RU3上电之后更新路由表(删除路由路径b,增加路由路径a)。
考虑到在NoC工作负载较低时,NIU和RU中大量缓存都处于空闲状态,同时部分RU的路由工作可以由其他RU完成,因此这部分缓存和RU对NoC来说暂时是冗余的。因此,本发明实施例通过实时监控NoC工作负荷,在NoC工作负荷较低时,关闭部分冗余的缓存和RU,在NoC工作负荷上升时再逐步开启被关闭的缓存和RU,该设计在有效保证NoC性能的基础上,能够极大地降低NoC无效能耗。
另一方面,本发明实施例提供一种降低片上网络功耗的装置,所述片上网络NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,所述NIU和RU中的缓存均独立控制,如图6所示,该装置可以包括:
获取模块11,用于获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;
计算模块12,用于根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
关闭模块13,用于根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
优选的,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
优选的,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
如图7所示,所述装置还可以包括:
下电触发模块14,用于当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
优选的,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
优选的,所述步骤A3中下电评估值Pi的计算公式为:
其中,c为相关联的核心RU的序号,Ac,i,Bc,i,Cc,i,Dc,i,Ec,i和Fc,i为参数且与NoC拓扑和配置相关。
优选的,如图7所示,所述装置还可以包括:
上电触发模块15,用于当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
优选的,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
再一方面,本发明实施例提供一种CPU芯片,包括:处理器核心和片上网络NoC,所述NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,所述NIU和RU中的缓存均独立控制;
所述处理器核心用于:获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
本实施例的CPU芯片,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
优选的,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
优选的,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
所述处理器核心还用于:当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
优选的,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
优选的,所述步骤A3中下电评估值Pi的计算公式为:
其中,c为相关联的核心RU的序号,Ac,i,Bc,i,Cc,i,Dc,i,Ec,i和Fc,i为参数且与NoC拓扑和配置相关。
优选的,所述处理器核心还用于:当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
优选的,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
又一方面,本发明实施例还提供一种服务器,图8为本发明服务器一个实施例的结构示意图,可以实现本发明图2或图5所示实施例的流程,如图8所示,上述服务器可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述服务器的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一方法实施例所述的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图2或图5所示实施例的描述,在此不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种降低片上网络功耗的方法,所述片上网络NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,其特征在于,所述NIU和RU中的缓存均独立控制,所述方法包括:
获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;
根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
2.根据权利要求1所述的方法,其特征在于,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
3.根据权利要求2所述的方法,其特征在于,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
所述方法还包括:
当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
4.根据权利要求3所述的方法,其特征在于,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
7.根据权利要求6所述的方法,其特征在于,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
8.一种降低片上网络功耗的装置,所述片上网络NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,其特征在于,所述NIU和RU中的缓存均独立控制,所述装置包括:
获取模块,用于获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;
计算模块,用于根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;
关闭模块,用于根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
9.根据权利要求8所述的装置,其特征在于,所述需要开启的缓存的数量的计算公式包括公式一至四中的任意一个或多个;
Nreq_e=min((Nreq_max+Nreq_m),(Nreq_M)) 公式一
其中,Nreq_e为NIU中需要开启的请求缓存模块数目,Nreq_max为最近一段时间内NIU中使用的请求缓存模块数目的最大值,Nreq_m是为了应对***突发请求保留的裕量,Nreq_M为NIU中请求缓存模块总数;
Nrsp_e=min((Nrsp_max+Nrsp_m),(Nrsp_M)) 公式二
其中,Nrsp_e为NIU中需要开启的响应缓存模块数目,Nrsp_max为最近一段时间内NIU中使用的响应缓存模块数目的最大值,Nrsp_m为保留的裕量,Nrsp_M为NIU中响应缓存模块总数;
Rreq_e=min((Rreq_max+Rreq_m),(Rreq_M)) 公式三
其中,Rreq_e为RU中需要开启的请求缓存模块数目,Rreq_max为最近一段时间内RU中使用的请求缓存模块数目的最大值,Rreq_m为保留的裕量,Rreq_M为RU中请求缓存模块总数;
Rrsp_e=min((Rrsp_max+Rrsp_m),(Rrsp_M)) 公式四
其中,Rrsp_e为RU中需要开启的响应缓存模块数目,Rrsp_max为最近一段时间内RU中使用的响应缓存模块数目的最大值,Rrsp_m为保留的裕量,Rrsp_M为RU中响应缓存模块总数。
10.根据权利要求9所述的装置,其特征在于,所述RU分为核心RU和普通RU,所述普通RU均独立控制,所述工作状态数据还包括核心RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c)、普通RU最近一段时间内占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean(c)和Rrsp_mean(c),c为当前RU的序号;
所述装置还包括:
下电触发模块,用于当任意一个核心RU或普通RU的均值Rreq_mean(c)和Rrsp_mean(c)均小于预设的阈值下限时,触发普通RU下电流程。
11.根据权利要求10所述的装置,其特征在于,所述普通RU下电流程包括:
步骤A1:若由普通RU触发下电流程,则选择该普通RU为待下电RU并跳转至步骤A3,若由核心RU触发下电流程,则跳转至步骤A2;
步骤A2:在该核心RU的关联普通RU中,选择Rreq_mean(c)和Rrsp_mean(c)最小的未下电的普通RU作为待下电RU;
步骤A3:计算待下电RU的下电评估值Pi,i为待下电RU序号;
步骤A4:若所述下电评估值Pi小于预设阈值,则修改路由表,将待下电RU从逻辑拓扑中移除,之后再将待下电RU下电。
13.根据权利要求10所述的装置,其特征在于,所述装置还包括:
上电触发模块,用于当任意一个核心RU的任意一项均值Rreq_mean(c)、Rrsp_mean(c)大于预设的阈值上限时,触发普通RU上电流程。
14.根据权利要求13所述的装置,其特征在于,所述工作状态数据还包括核心RU在最近一段时间内可以由每个与该核心RU相关的已下电的普通RU分担的请求和响应占用请求缓存模块和响应缓存模块的数目的均值Rreq_mean_each(c,i)和Rrsp_mean_each(c,i),c为当前RU的序号,i为已下电RU序号;
所述普通RU上电流程包括:
步骤B1:若由核心RU的Rreq_mean(c)触发阈值上限,则跳转至步骤B2,若由核心RU的Rrsp_mean(c)触发阈值上限,则跳转至步骤B3;
步骤B2:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rreq_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号,跳转至步骤B4;
步骤B3:检查触发上电流程的核心RU在最近一段时间内的各个统计值Rrsp_mean_each(c,i),选择其中最大值,对应的序号i即为待上电普通RU的序号;
步骤B4:检查路由表,查找与待上电RU相关路由路径,将路由路径上所有已下电RU恢复上电;
步骤B5:将所有新上电RU加入逻辑拓扑并更新路由表。
15.一种CPU芯片,其特征在于,包括:处理器核心和片上网络NoC,所述NoC包括至少两个网络接口单元NIU和至少两个路由单元RU,所述NIU和RU均具有至少两个缓存,其特征在于,所述NIU和RU中的缓存均独立控制;
所述处理器核心用于:获取NoC的工作状态数据,所述工作状态数据包括最近一段时间内NIU中使用的缓存的最大数量、最近一段时间内RU中使用的缓存的最大数量中的一种或多种;根据所述工作状态数据,分别计算NIU和RU中需要开启的缓存的数量;根据所述需要开启的缓存的数量,关闭NIU和RU中剩余数量的缓存。
16.一种服务器,其特征在于,包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述服务器的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011135779.XA CN112363612B (zh) | 2020-10-21 | 2020-10-21 | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011135779.XA CN112363612B (zh) | 2020-10-21 | 2020-10-21 | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363612A true CN112363612A (zh) | 2021-02-12 |
CN112363612B CN112363612B (zh) | 2022-07-08 |
Family
ID=74511536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011135779.XA Active CN112363612B (zh) | 2020-10-21 | 2020-10-21 | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363612B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578523A (zh) * | 2023-07-12 | 2023-08-11 | 上海芯高峰微电子有限公司 | 片上网络***及其控制方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227298A (zh) * | 2008-01-09 | 2008-07-23 | 南京大学 | 基于片上网络的路由器功耗模型 |
CN102567277A (zh) * | 2010-12-30 | 2012-07-11 | 世意法(北京)半导体研发有限责任公司 | 用于通过片上网络***来降低功耗的方法 |
CN102685017A (zh) * | 2012-06-07 | 2012-09-19 | 桂林电子科技大学 | 一种基于fpga的片上网络路由器 |
CN103858117A (zh) * | 2012-08-13 | 2014-06-11 | 松下电器产业株式会社 | 访问控制装置、中继装置、访问控制方法、计算机程序 |
CN103914333A (zh) * | 2014-04-14 | 2014-07-09 | 中国科学技术大学苏州研究院 | 基于片上网络互连的多核存储***仿真器 |
CN104780122A (zh) * | 2015-03-23 | 2015-07-15 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
CN105550159A (zh) * | 2015-12-16 | 2016-05-04 | 广州中国科学院先进技术研究所 | 多核处理器片上网络的功率分配方法 |
CN105721354A (zh) * | 2016-01-18 | 2016-06-29 | 云南磊奥明科技有限公司 | 片上网络互联方法及装置 |
CN105830416A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 一种片上网络、通信控制方法及控制器 |
CN106095722A (zh) * | 2016-06-29 | 2016-11-09 | 合肥工业大学 | 一种应用于片上网络的虚通道低功耗电路 |
CN106302163A (zh) * | 2016-09-30 | 2017-01-04 | 南京航空航天大学 | 一种具有多种工作模式的片上网络路由器及路由方法 |
CN109873771A (zh) * | 2019-01-21 | 2019-06-11 | 佛山市顺德区中山大学研究院 | 一种片上网络***及其通信方法 |
-
2020
- 2020-10-21 CN CN202011135779.XA patent/CN112363612B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227298A (zh) * | 2008-01-09 | 2008-07-23 | 南京大学 | 基于片上网络的路由器功耗模型 |
CN102567277A (zh) * | 2010-12-30 | 2012-07-11 | 世意法(北京)半导体研发有限责任公司 | 用于通过片上网络***来降低功耗的方法 |
CN102685017A (zh) * | 2012-06-07 | 2012-09-19 | 桂林电子科技大学 | 一种基于fpga的片上网络路由器 |
CN103858117A (zh) * | 2012-08-13 | 2014-06-11 | 松下电器产业株式会社 | 访问控制装置、中继装置、访问控制方法、计算机程序 |
CN103914333A (zh) * | 2014-04-14 | 2014-07-09 | 中国科学技术大学苏州研究院 | 基于片上网络互连的多核存储***仿真器 |
CN105830416A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 一种片上网络、通信控制方法及控制器 |
CN104780122A (zh) * | 2015-03-23 | 2015-07-15 | 中国人民解放军信息工程大学 | 基于缓存再分配的层次化片上网络路由器的控制方法 |
CN105550159A (zh) * | 2015-12-16 | 2016-05-04 | 广州中国科学院先进技术研究所 | 多核处理器片上网络的功率分配方法 |
CN105721354A (zh) * | 2016-01-18 | 2016-06-29 | 云南磊奥明科技有限公司 | 片上网络互联方法及装置 |
CN106095722A (zh) * | 2016-06-29 | 2016-11-09 | 合肥工业大学 | 一种应用于片上网络的虚通道低功耗电路 |
CN106302163A (zh) * | 2016-09-30 | 2017-01-04 | 南京航空航天大学 | 一种具有多种工作模式的片上网络路由器及路由方法 |
CN109873771A (zh) * | 2019-01-21 | 2019-06-11 | 佛山市顺德区中山大学研究院 | 一种片上网络***及其通信方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578523A (zh) * | 2023-07-12 | 2023-08-11 | 上海芯高峰微电子有限公司 | 片上网络***及其控制方法 |
CN116578523B (zh) * | 2023-07-12 | 2023-09-29 | 上海芯高峰微电子有限公司 | 片上网络***及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112363612B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210064117A1 (en) | Optimizing power usage by factoring processor architectural events to pmu | |
US8250382B2 (en) | Power control of servers using advanced configuration and power interface (ACPI) states | |
JP5235590B2 (ja) | 電子システムの電力管理の方法、システム、およびプログラム(電子システムの電力管理) | |
US11520396B2 (en) | Power management system | |
US7472293B2 (en) | Network processor power management | |
TWI475369B (zh) | 用於處理器中功率及性能權衡的設備、方法及系統 | |
Chen et al. | MP3: Minimizing performance penalty for power-gating of Clos network-on-chip | |
KR20110038036A (ko) | 슬리프 프로세서 | |
US20170322613A1 (en) | Server rack power management | |
WO2020062734A1 (zh) | 一种存储控制方法、存储控制器、存储设备及存储*** | |
US8107458B1 (en) | Power-based networking path allocation | |
US9274585B2 (en) | Combined dynamic and static power and performance optimization on data centers | |
US20100122100A1 (en) | Tiled memory power management | |
CN111488048B (zh) | 一种电源管理方法以及*** | |
Kurian et al. | Locality-aware data replication in the last-level cache | |
CN112363612B (zh) | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 | |
CN112597096A (zh) | 一种低功耗的fpga部分可重构方法和装置 | |
US8850444B2 (en) | System for setting each transfer module in a network device into one of a plurality of standby states based upon the level of traffic | |
Cui et al. | Decentralized agent based re-clustering for task mapping of tera-scale network-on-chip system | |
CN112363609B (zh) | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 | |
CN104460938B (zh) | 利用存储器高速缓存在***范围内节省电力的方法和*** | |
Zahn et al. | On link width scaling for energy‐proportional direct interconnection networks | |
CN114338808A (zh) | 一种数据管理方法及装置、服务器 | |
CN112394807A (zh) | 一种降低片上网络功耗的方法、装置、cpu芯片及服务器 | |
CN111819516A (zh) | 保存和恢复记分板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |