掌桥专利:专业的专利平台
掌桥专利
首页

集成电路及其操作方法

文献发布时间:2024-04-18 20:00:50


集成电路及其操作方法

技术领域

本发明构思涉及集成电路,更具体地,涉及能够基于监视的数据对核心的工作负载进行分类并基于经分类的工作负载执行动态电压和频率缩放(dynamic voltage andfrequency scaling,DVFS)操作的集成电路,以及集成电路的操作方法。

背景技术

随着诸如移动设备的计算系统变得越来越紧凑,电力管理已经成为一个重要的问题。具体地,在使用具有有限能量的电池的便携式设备(诸如移动设备)的情况下,降低电力以减少功耗,但是必须增加电压以提高其性能。因此,根据诸如总线或动态随机存取存储器(DRAM)的存储器特性的工作负载特性进行有效电力管理的需求正在增加。

发明内容

本发明构思提供了集成电路、集成电路的操作方法和计算系统,其中集成电路能够通过不仅考虑中央处理单元(CPU)等的状态,而且考虑总线或动态随机存取存储器(DRAM)的特性来对工作负载进行分类,并且可以通过基于经分类的工作负载不同地确定缩放因子来有效地执行动态电压和频率缩放(DVFS)操作。例如,移动设备的应用处理器的电力管理可以通过DVFS操作控制电压来完成,其中在DVFS操作中,根据嵌入在应用处理器中的处理设备的工作负载来控制处理设备的频率和电压。

根据本发明构思的一些方面,提供了一种集成电路,包括:至少一个核心,被配置为根据电压-频率水平处理指令;共享缓冲器,从至少一个核心接收请求,根据请求访问外部存储器,并且从外部存储器接收响应;监视器,被配置为监视共享缓冲器以获得共享缓冲器的缓冲器容量和从外部存储器接收的响应的响应等待时间;以及DVFS控制器,被配置为从监视器接收缓冲器容量和响应等待时间,基于缓冲器容量和响应等待时间对至少一个核心的工作负载进行分类,并基于经分类的工作负载确定电压-频率水平的缩放因子。

根据本发明构思的一些方面,提供了一种集成电路的操作方法,该操作方法包括:监视共享缓冲器并获得共享缓冲器的缓冲器容量和从外部存储器接收的响应的响应等待时间;基于缓冲器容量和响应等待时间对核心的工作负载进行分类;以及基于经分类的核心的工作负载确定核心的电压-频率水平的缩放因子。

根据本发明构思的一些方面,提供了一种计算系统,包括处理器、至少一个存储器、将处理器连接到至少一个存储器的总线、DVFS控制器,该DVFS控制器被配置为基于共享缓冲器的缓冲器容量和从外部存储器接收的响应的响应等待时间来对至少一个核心的工作负载进行分类,基于经分类的工作负载确定缩放因子,并且基于所确定的缩放因子生成电压控制信号和时钟控制信号;电力管理单元,被配置为响应于电压控制信号来调整提供给至少一个核心的电源电压的幅度;以及时钟管理单元,被配置为响应于时钟控制信号来调节提供给至少一个核心的时钟信号的频率,该处理器包括:至少一个核心,被配置为根据电源电压的幅度和时钟信号的频率来处理指令;共享缓冲器,被配置为从至少一个核心接收请求,根据该请求访问总线,并且从总线接收响应;以及监视器,被配置为监视共享缓冲器以获得缓冲器容量和响应等待时间。

附图说明

从以下结合附图的详细描述中,将更清楚地理解示例实施例,其中:

图1是根据一些示例实施例的集成电路的框图;

图2是根据一些示例实施例的用于描述由监视器监视的共享缓冲器和数据的框图;

图3A和3B是用于描述根据一些示例实施例的缓冲器容量和响应等待时间的曲线图;

图4是示出根据一些示例实施例的集成电路的一些示例实施例的框图;

图5是示出根据一些示例实施例的集成电路的一些示例实施例的框图;

图6A和图6B分别是根据一些示例实施例的用于描述能够确定缩放因子的动态电压和频率缩放(DVFS)控制器的曲线图和表格;

图7是示出根据一些示例实施例的集成电路的一些示例实施例的框图;

图8是根据一些示例实施例的集成电路的操作方法的流程图;

图9是根据一些示例实施例的集成电路的操作方法的一些示例实施例的流程图;

图10是根据一些示例实施例的集成电路的操作方法的一些示例实施例的流程图;

图11是示出根据一些示例实施例的系统的框图;和

图12是示出根据一些示例实施例的包括应用处理器的通信设备的框图。

具体实施方式

图1是示出根据一些示例实施例的集成电路的框图。

参考图1,集成电路10可以包括处理器100、动态电压和频率缩放(DVFS)控制器200、时钟管理单元(CMU)300、电力管理单元(PMU)400、总线500和存储器600。在一些示例实施例中,处理器100、DVFS控制器200、时钟管理单元300、电力管理单元400、总线500和存储器600可以被包括在单个芯片中,即片上系统(SoC),并且集成电路10可以被称为应用处理器(AP)。然而,在一些示例实施例中,处理器100、DVFS控制器200、时钟管理单元300、电力管理单元400、总线500和存储器600可以被包括在多个芯片中。

集成电路10可以被包括在诸如台式PC、服务器等的固定计算系统中,并且可以被包括在膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、便携式多媒体播放器(PMP)、个人导航设备或便携式导航设备(PND)、手持游戏控制台、移动互联网设备(MID)、可穿戴计算机、物联网(IoT)设备、万物互联(IoE)设备和/或电子书中。

处理器100可以包括至少一个核心110、共享缓冲器120和监视器130。在一些示例实施例中,处理器100可以执行由指令组成的程序。程序可以包括多个子程序,子程序可以被称为子例程、例程、过程、函数等。

核心110可以独立处理指令。在下文中,中央处理单元(CPU)核心将主要被描述为核心110,但是应当注意,示例实施例不限于此。例如,核心110可以包括CPU核心、图形处理单元(GPU)核心、神经处理单元(NPU)核心或图像信号处理器(ISP)核心。因为处理器100中可以包括多个核心110,所以处理器100可以被称为多核心处理器。在一些示例实施例中,核心110可以根据时钟信号clk和电源电压vdd来处理指令,并且核心110的性能可以取决于时钟信号clk和电源电压vdd。稍后将参考图6A和图6B描述上述的一些示例实施例。

共享缓冲器120可以包括由多核心处理器中的多个核心110共享的缓冲器。例如,处理器100可以包括CPU,多个核心110可以包括L2高速缓存,并且共享缓冲器120可以包括L3高速缓存。共享缓冲器120可以存储不被包括在核心110中的数据,并且可以向核心110发送数据或从核心110接收数据。在一些示例实施例中,用于核心110处理命令的数据可以不存在于核心110内部,并且数据可以是从共享缓冲器120请求Req的。共享缓冲器120可以从核心110接收请求Req,并且当对应于请求Req的数据存在于共享缓冲器120中时,对应的数据可以被发送到核心110。当对应于请求Req的数据不存在于共享缓冲器120中时(例如,当发生高速缓存未命中时),可以访问Acc外部存储器,并且可以接收来自外部存储器的响应Res以获得对应于请求Req的数据。例如,共享缓冲器120可以通过总线500访问Acc存储器600,并通过总线500从存储器600接收响应Res。共享缓冲器120可以包括多个块121,稍后将参考图2描述关于这一点的一些示例实施例。

监视器130可以监视共享缓冲器120,并获得共享缓冲器120的缓冲器容量和从外部存储器接收的响应的响应等待时间。在一些示例实施例中,共享缓冲器120的缓冲器容量可以表示多个块121的容量的填满状态,并且从外部存储器接收的响应的响应等待时间可以是共享缓冲器120在通过总线500访问存储器600之后从存储器600接收响应Res所花费的时间段。稍后将参考图3A和3B描述这方面的一些示例实施例。

在一些示例实施例中,监视器130可以监视核心110,并且从共享缓冲器120获得核心110接收对应于请求Req的数据所花费的时间段。例如,核心110可以包括CPU核心,并且可以包括L2高速缓存。共享缓冲器120可以包括L3高速缓存。用于CPU核心处理指令的数据可以不在L2高速缓存中,并且可以是从L3高速缓存中请求的。L3高速缓存可以从L2高速缓存接收请求Req,并且如果对应于请求Req的数据存在于L3高速缓存中,则对应的数据可以被发送到L2高速缓存。当对应于请求Req的数据不存在于L3高速缓存中时,L3高速缓存可以访问Acc外部存储器,从外部存储器接收响应Res,并获得对应于请求Req的数据。L3高速缓存可以将从外部存储器获得的数据发送到L2高速缓存。监视器130可以监视L2高速缓存,从L3高速缓存请求Req数据,并获得直到从L3高速缓存接收到对应于请求Req的数据所花费的时间段。

DVFS控制器200可以从监视器130接收共享缓冲器120的缓冲器容量和从外部存储器接收的响应的响应等待时间,并基于缓冲器容量和响应等待时间对核心110的工作负载进行分类。在一些示例实施例中,DVFS控制器200可以将核心110的工作负载分类为第一工作负载或第二工作负载,并且第一工作负载可以包括比第二工作负载更多的访问外部存储器的请求。例如,第一工作负载可以是存储器密集型工作负载,并且存储器密集型工作负载可以指当在处理器100的操作期间发生高速缓存未命中时在总线500或存储器600中发生拥塞的情况。拥塞可以指例如其中数据包/信号(例如,命令)的数量大于处理器100可以接收和处理的数据包/信号的数量的情况,以及本领域技术人员可以理解的其他情况,例如涉及处理器100、总线5900、存储器600和/或其他组件的物理、虚拟或其他限制。第二工作负载可以是计算工作负载,并且该计算工作负载与核心110的指令处理相关,并且可以指在处理器100的操作期间没有发生高速缓存未命中的情况。

在一些示例实施例中,当缓冲器容量和响应等待时间等于或大于阈值时,DVFS控制器200可以将核心110的工作负载分类为第一工作负载。如果缓冲器容量或响应等待时间小于阈值,则DVFS控制器200可以将核心110的工作负载分类为第二工作负载。稍后将参考图2至图4描述这方面的一些示例实施例。

在一些示例实施例中,DVFS控制器200可以例如从监视器130接收核心110从共享缓冲器120接收对应于请求Req的数据所花费的时间段,并且基于所接收的时间段将核心110的工作负载分类为第一工作负载或第二工作负载。第一工作负载可以包括比第二工作负载更多的访问外部存储器的请求。例如,核心110可以是CPU核心,并且可以包括L2高速缓存。共享缓冲器120可以是L3高速缓存。当L3高速缓存容量中有空闲空间时,L3高速缓存可以从L2高速缓存接收请求Req,并且响应于请求Req,访问Acc外部存储器,从外部存储器接收响应Res以获得对应于请求Req的数据。L2高速缓存从L3高速缓存接收对应于请求Req的数据所花费的时间段可能短于阈值时间,并且DVFS控制器200可以将核心110的工作负载分类为第二工作负载。当L3高速缓存容量中没有空闲空间时(例如,当L3高速缓存的容量被除了对应于请求Req的数据之外的数据填满时),L3高速缓存可以不从L2高速缓存接收请求Req,并且可以在对填满的数据执行操作之后接收请求Req。然后,可以通过访问Acc外部存储器并且从外部存储器接收响应Res来获得对应于请求Req的数据。L2高速缓存从L3高速缓存接收对应于请求Req的数据所花费的时间段可能长于阈值时间,并且DVFS控制器200可以将核心110的工作负载分类为第一工作负载。

DVFS控制器200可以基于经分类的核心110的工作负载来确定电压-频率水平的缩放因子。在一些示例实施例中,可以确定缩放因子,使得电压-频率水平根据经分类的核心110的工作负载而降低。例如,DVFS控制器200可以将核心110的工作负载分类为第一工作负载或第二工作负载,并且第一工作负载可以包括比第二工作负载更多的访问外部存储器的请求。具有第一工作负载的核心110的所需性能可能低于具有第二工作负载的核心110的所需性能。核心110的性能可以取决于电压-频率水平,并且当核心110的工作负载被分类为第一工作负载时,DVFS控制器200可以确定缩放因子,使得电压-频率水平降低。稍后将参考图6A和图6B描述这方面的一些示例实施例。

DVFS控制器200可以基于所确定的缩放因子生成控制信号。在一些示例实施例中,DVFS控制器200可以生成用于调节核心110的频率的时钟控制信号C_clk,并将时钟控制信号C_clk发送到时钟管理单元300。在一些示例实施例中,DVFS控制器200可以生成用于调节核心110的电源电压vdd的电压控制信号C_vdd,并将电压控制信号C_vdd发送到电力管理单元400。

当DVFS控制器200基于由监视共享缓冲器120的监视器130获得的缓冲器容量和响应等待时间对核心110的工作负载进行分类时,DVFS控制器200可以根据总线500或存储器600的特性不同地确定电压-频率水平的缩放因子。因此,与工作负载未被分类时相比,可以例如更有效或更容易地降低功耗,并且因为与使用软件对工作负载进行分类时相比不需要额外的计算,所以可以降低开销。尽管DVFS控制器200被描述为位于处理器100的外部,但是DVFS控制器200也可以位于处理器100的内部。替代地或附加地,如上所述,电压-频率水平的缩放因子的使用可以对电路10具有积极的影响,诸如改进的处理分布和分配、改进的电力使用、改进的设备磨损等。

时钟管理单元300可以生成时钟信号clk,并基于时钟控制信号C_clk调节时钟信号clk的频率。例如,时钟管理单元300可以包括基于时钟控制信号C_clk生成时钟信号clk的振荡器。时钟管理单元300也可以被称为时钟生成器或时钟生成电路。

电力管理单元400可以基于电压控制信号C_vdd生成电源电压vdd并调节电源电压vdd的幅度。例如,电力管理单元400可以包括开关调节器,该开关调节器基于电压控制信号C_vdd根据从外部电源提供的电压生成电源电压vdd。电力管理单元400也可以被称为电力管理集成电路(PMIC)。

总线500可以包括应用了具有特定标准总线标准的协议的系统总线,并且可以包括连接到系统总线的各种知识产权(IP)。作为系统总线的标准规范,可以应用高级RISC机器(ARM)的高级微控制器总线架构(AMBA)协议。AMBA协议的总线类型可以包括高级高性能总线(AHB)、高级外围总线(APB)、高级可扩展接口(AXI)、AXI4和AXI一致性扩展(ACE)。此外,也可以应用其他类型的协议,诸如SONICs公司的uNetwork、IBM的CoreConnect和OCP-IP的开放核心协议。尽管总线500被描述为包括在集成电路10内部,但是总线500可以位于集成电路10外部。

根据一些示例实施例,存储器600可以对应于各种类型的半导体存储器设备,并且可以包括动态随机存取存储器(DRAM),诸如双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)等。此外,存储器600可以是闪存、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)和铁电RAM(FeRAM)中的任何一种。虽然存储器600被描述为包括在集成电路10中,但是存储器600可以位于集成电路10的外部,并且在这种情况下可以被称为外部存储器。

集成电路10可以包括不同于图1所示的组件。例如,集成电路10可以进一步包括各种类型的功能块,诸如输入/输出(IO)接口块、通用串行总线(USB)主机块和USB从(slave)块。

图2是根据一些示例实施例的用于描述由监视器监视的共享缓冲器和数据的框图。

参考图1和图2,图2的共享缓冲器120可以与图1的共享缓冲器120相同,并且可以包括多个块121。将省略与图1重复的描述。在一些示例实施例中,至少一个块121可以构成一个集合,并且共享缓冲器120可以包括多个集合。可以基于多个集合来确定共享缓冲器120的总容量。例如,块121的大小可以是B字节(B是大于或等于0的整数),一个集合可以包括N个或更多个(N是大于或等于1的整数)块121,并且共享缓冲器120可以包括M个集合(M是大于或等于1的整数)。共享缓冲器120的总容量可以被确定为B*N*M字节。

在一些示例实施例中,当共享缓冲器120的总容量的填满程度大于或等于阈值时,DVFS控制器200可以将核心110的工作负载分类为第一工作负载。例如,当共享缓冲器120的B*N*M字节的总容量的70%或更多被填满时,DVFS控制器200可以将核心110的工作负载分类为第一工作负载。

在一些示例实施例中,核心110中的每个核心可以仅向多个块121中的某个(某些)块发送请求Req。例如,请求Req可以包括指定多个块121中的某个(某些)的位置的数据。

在一些示例实施例中,存储器600可以被分类为多个区域(未示出),并且每个块121可以仅访问Acc存储器600的多个区域中的某个(某些)区域。例如,共享缓冲器120从核心110接收的请求Req可以包括地址,并且该地址可以包括指定存储器600的某个(某些)区域的位置的数据。

图3A和3B是用于描述根据一些示例实施例的缓冲器容量和响应等待时间的曲线图。

参考图1和3A,图3A的曲线图可以表示块121的容量随时间的变化。在一些示例实施例中,当每个块121的容量被填满的块121的数量大于或等于阈值数量时,共享缓冲器120的缓冲器容量可以被标记为满(full)。例如,当多个块121中容量被填满到70%(例如,第一阈值Th1)或更多的块121的数量是块121总数的50%(例如,阈值数量)或更多时,共享缓冲器120的缓冲器容量可以处于满状态。缓冲器容量满的区间可以是区间C1和区间C2。

进一步参考图3B,图3B的曲线图可以表示共享缓冲器120从外部存储器接收响应的响应等待时间。在一些示例实施例中,从外部存储器接收的响应的响应等待时间可以包括共享缓冲器120在经由总线500访问存储器600之后从存储器600接收响应Res所花费的时间段(以下称为响应等待时间)。当共享缓冲器120通过总线500访问存储器600时,信号可以从第一电平(例如,逻辑低)转变到第二电平(例如,逻辑高)。当共享缓冲器120通过总线500从存储器600接收到响应Res时,信号可以从第二电平转变到第一电平。从信号从第一电平到第二电平的转变到从第二电平到第一电平的转变所花费的时间段(例如,时间a1、时间a2、时间a3或时间b1)可以是响应等待时间。

在一些示例实施例中,当共享缓冲器120的缓冲器容量指示满状态,并且响应等待时间长于阈值时间Th2时,DVFS控制器200可以将核心110的工作负载分类为第一工作负载和第二工作负载中的第一工作负载。第一工作负载可以包括比第二工作负载更多的访问外部存储器的请求。例如,共享缓冲器120的缓冲器容量满的状态可以是区间C1和区间C2。时间a1、时间a2和时间a3可以对应于响应等待时间长于阈值时间Th2的时间段。在时间点T1,共享缓冲器120的缓冲器容量可以指示满状态,并且响应等待时间可以长于阈值时间Th2。在时间点T2,响应等待时间长于阈值时间Th2,但是共享缓冲器120的缓冲器容量可以不处于满状态。因此,在从时间点T1到时间点T2的区间中,总线500或存储器600中可能发生拥塞,并且DVFS控制器200可以将核心110的工作负载分类为第一工作负载。

在一些示例实施例中,监视器130可以监视共享缓冲器120并获得标识符(源ID)。标识符(源ID)可以指将请求Req发送到共享缓冲器120的核心110的地址,并且DVFS控制器200可以从监视器130接收标识符(源ID)。在从时间点T1到时间点T2的区间中,DVFS控制器200可以根据标识符(源ID)识别多个核心110中的某个核心,并将所识别的核心的工作负载分类为第一工作负载。

图4是示出根据一些示例实施例的集成电路的一些示例实施例的框图。

参考图1和图4,集成电路10a可以包括处理器100、DVFS控制器200和温度传感器800。在一些示例实施例中,图4的处理器100和DVFS控制器200可以分别与图1的处理器100和DVFS控制器200相同。将省略与图1重复的描述。

温度传感器800可以感测处理器100的温度,并根据感测结果向DVFS控制器200提供温度信息。温度传感器800可以包括热敏电阻和能够存储温度信息的存储器(未示出)。在一些示例实施例中,温度传感器800可以感测核心110的温度。根据感测结果的温度信息可以被提供给DVFS控制器200并存储在存储器中。

进一步参考图3A和3B,在一些示例实施例中,当共享缓冲器120的缓冲器容量未满,或者响应等待时间小于阈值时间Th2时,DVFS控制器200可以基于温度信息将核心110的工作负载分类为第一工作负载和第二工作负载中的第二工作负载。第一工作负载可以包括比第二工作负载更多的访问外部存储器的请求。例如,除了区间C1和区间C2之外,缓冲器容量在其他区间可以未满。在区间C1中,缓冲器容量满,但是响应等待时间(例如,时间b1)可以不超过阈值时间Th2。在区间C3中,缓冲器容量满,但是响应等待时间可以不超过阈值时间Th2。因此,在时间点T1之前或时间点T2之后的区间中,共享缓冲器120的缓冲器容量可以未满,或者响应等待时间可以小于阈值时间Th2。在时间点T1之前或时间点T2之后的区间中,当温度传感器800感测到的温度信息等于或大于阈值温度时,例如,可能是核心110过度操作以处理指令的情况,或者是在处理器100的操作期间没有发生高速缓存未命中的情况。因此,DVFS控制器200可以将核心110的工作负载分类为第二工作负载。

在一些示例实施例中,监视器130可以监视共享缓冲器120并获得标识符(源ID)。标识符(源ID)可以指将请求Req发送到共享缓冲器120的核心110的地址,并且DVFS控制器200可以从监视器130接收标识符(源ID)。在时间点T1之前或时间点T2之后的区间中,DVFS控制器200可以根据标识符(源ID)识别多个核心110中的某个核心,并将所识别的核心的工作负载分类为第二工作负载。

图5是示出根据一些示例实施例的集成电路的一些示例实施例的框图。

参考图1和图5,集成电路10b可以包括DVFS控制器200a、时钟管理单元300、电力管理单元400和存储器700。在一些示例实施例中,图5的时钟管理单元300和电力管理单元400可以分别与图1的时钟管理单元300和电力管理单元400相同。将省略与图1重复的描述。

DVFS控制器200a可以包括工作负载分类逻辑210、DVFS调节器模块220、时钟管理单元驱动器230和电力管理单元驱动器240。工作负载分类逻辑210可以从监视器130接收将来自监视器130的请求Req发送到共享缓冲器120的核心110的地址(以下称为标识符)、共享缓冲器120的缓冲器容量以及从外部存储器接收的响应的响应等待时间。工作负载分类逻辑210可以根据标识符识别多个核心110中的某一核心,并基于缓冲器容量和响应等待时间对该核心的工作负载进行分类。经分类的核心的工作负载数据可以被发送到DVFS调节器模块220。例如,工作负载分类逻辑210可以基于缓冲器容量和响应等待时间将核心110的工作负载分类为第一工作负载或第二工作负载,并且第一工作负载可以包括比第二工作负载更多的访问外部存储器的请求。当缓冲器容量满并且响应等待时间长于阈值时间时,工作负载分类逻辑210可以将该核心的工作负载分类为第一工作负载,并且向DVFS调节器模块220发送指示该核心被分类为第一工作负载的数据。

DVFS调节器模块220可以基于经分类的某一核心的工作负载数据来确定电压-频率水平的缩放因子。在一些示例实施例中,当DVFS调节器模块220接收到指示某一核心被分类为第一工作负载的数据时,DVFS调节器模块220可以从存储器700获得DVFS表710,DVFS表710包括对应于第一工作负载的电源电压vdd和时钟信号clk的频率。DVFS调节器模块220可以基于对应于第一工作负载的电源电压vdd和时钟信号clk来确定电压-频率水平的缩放因子。

如上所述,例如在较低需求或较慢周期期间,通过确定电压-频率水平的缩放因子,可以具有改善电路10b的功耗的效果,和/或例如在较高需求或密集周期期间,通过确定电压-频率水平的缩放因子,可以具有改善处理能力的效果。

在下文中,模块可以指能够根据每个名称执行功能和操作的硬件,或者可以指能够执行特定功能和操作的计算机程序代码。然而,本发明构思不限于此,并且可以指电子记录介质,例如处理器,其中加载了能够执行特定功能和操作的计算机程序代码。也就是说,模块可以指用于实现发明构思的软件的功能和/或结构组合。

时钟管理单元驱动器230可以基于由DVFS调节器模块220确定的缩放因子来生成时钟控制信号C_clk,并将时钟控制信号C_clk提供给时钟管理单元300。

电力管理单元驱动器240可以基于由DVFS调节器模块220确定的缩放因子来生成电源电压控制信号C_vdd,并将电源电压控制信号C_vdd提供给电力管理单元400。

存储器700可以包括DVFS表710。在一些示例实施例中,DVFS表710可以包括对应于每个工作负载的电源电压vdd和时钟信号clk的频率。DVFS表710可以包括在存储器700中硬编码的值或者软编码和可修改的值。DVFS表710的修改可以由DVFS调节器模块220来执行。尽管在图5中示出了一个DVFS表710,但是也可以包括多个DVFS表710。例如,可以根据缓冲器容量、响应等待时间和工作负载来创建多个DVFS表710。

图6A和图6B分别是根据一些示例实施例的用于描述能够确定缩放因子的DVFS控制器的曲线图和表格。

参考图1和6A,图6A的曲线图可以指示核心110的性能和功耗之间的关系。功耗P可以满足下面的数学表达式1。

[数学表达式1]

P∝V

V可以指电源电压,并且f可以指核心110的频率。功耗P可以与电源电压V的平方成比例,并且可以与核心110的频率f成比例,因此,电源电压V或核心110的频率f越高,功耗P可能越大。核心110的性能可能取决于电压-频率水平。例如,随着电源电压V的幅度增加以及核心110的频率f增加,核心110可以更快地运行,从而提高核心110的性能。因此,核心110的功耗P和性能可以彼此成比例关系。

进一步参考图5和6B,工作负载分类逻辑210可以将核心110的工作负载分类为第一工作负载或第二工作负载,并且DVFS调节器模块220可以基于经分类的核心110的工作负载来确定电压-频率水平的缩放因子。图6B的表可以是图5的DVFS表710。在一些示例实施例中,当DVFS调节器模块220接收到指示核心110的工作负载被分类为第一工作负载的数据w1时,DVFS调节器模块220可以从存储器700获得包括电源电压v1和时钟信号的频率f1的DVFS表710。DVFS调节器模块220可以基于电源电压v1和时钟信号的频率f1来确定电压-频率水平的缩放因子。例如,第一工作负载可以是存储器密集型工作负载,并且存储器密集型工作负载可以指示当在处理器100的操作期间发生高速缓存未命中时总线500或存储器600中发生拥塞的情况。当总线500或存储器600中发生拥塞时,可以通过降低核心110的性能来调节请求Req的数量,从而解决拥塞,并且由于核心110的性能与功耗成比例,因此可以降低功耗。因此,DVFS调节器模块220可以基于电源电压v1和时钟信号的频率f1来确定缩放因子,使得电压-频率水平降低。

在一些示例实施例中,进一步参考图4,当温度传感器800检测到的温度信息等于或大于阈值温度时,DVFS调节器模块220可以接收指示核心110的工作负载被分类为第二工作负载的数据w2,并且从存储器700获得包括电源电压v2和时钟信号的频率f2的DVFS表710。例如,第二工作负载可以是计算工作负载,并且该计算工作负载与核心110的指令处理相关,并且可以指在处理器100的操作期间没有发生高速缓存未命中的情况。在高速缓存未命中没有发生的情况下,与被分类为第一工作负载的工作负载不同,可以不通过降低核心110的性能来调节请求Req数量。然而,当核心110的温度等于或高于阈值温度时,提高核心110的性能可能由于核心110的发热而导致故障,并且这可能降低核心110的温度。因此,DVFS调节器模块220可以基于电源电压v2和时钟信号的频率f2来确定缩放因子,使得电压-频率水平降低。

DVFS表710可以包括根据除了所示数据(w1或w2)之外的数据的电源电压和时钟信号的频率。例如,当温度传感器800检测到的温度信息小于阈值温度时,DVFS调节器模块220可以接收指示核心110的工作负载被分类为第二工作负载的数据(未示出),并且从存储器700获得包括电源电压(未示出)和时钟信号频率(未示出)的DVFS表710。第二工作负载可以包括计算工作负载,并且核心110可能需要高性能来处理指令。由于核心110的温度低于阈值温度,核心110性能的提高不会由于发热而导致故障。因此,DVFS调节器模块220可以基于电源电压(未示出)和时钟信号的频率(未示出)来确定缩放因子,使得电压-频率水平增加。

因为核心110的功耗P和性能可以彼此成比例关系,所以DVFS调节器模块220可以根据核心110的工作负载来不同地确定缩放因子,并且改善或有效地管理核心110的功耗和性能。

图7是示出根据一些示例实施例的集成电路的一些示例实施例的框图。

参考图1和图7,集成电路10c可以包括至少一个处理器100和DVFS控制器200b。在一些示例实施例中,图7的处理器100可以与图1的处理器100相同。将省略与图1重复的描述。

DVFS控制器200b可以包括至少一个处理器280、存储器250、人工智能(AI)加速器260和硬件(HW)加速器270。至少一个处理器280可以执行指令。例如,至少一个处理器280可以通过执行存储在存储器250中的指令来执行操作系统,并且执行在操作系统上执行的应用。在一些示例实施例中,通过执行指令,至少一个处理器280可以将任务引导到AI加速器260和/或硬件加速器270,并且可以从AI加速器260和/或硬件加速器270获得执行任务的结果。在一些示例实施例中,至少一个处理器280可以是为特定目的定制的专用指令集处理器(ASIP),并且可以支持专用指令集。

存储器250可以具有用于存储数据的任何结构。例如,存储器250可以包括诸如DRAM和静态随机存取存储器(SRAM)的易失性存储器设备,或者诸如闪存和/或电阻式随机存取存储器(RRAM)的非易失性存储器设备。

AI加速器260可以指为AI应用设计的硬件。在一些示例实施例中,AI加速器260可以包括用于实现神经形态结构的神经处理单元(NPU),并且可以通过处理由至少一个处理器280和/或硬件加速器270提供的输入数据来生成输出数据,并且将输出数据提供给至少一个处理器280和/或硬件加速器270。在一些示例实施例中,AI加速器260可以是可编程的,并且可以由至少一个处理器280和/或硬件加速器270编程。

硬件加速器270可以指被设计成高速执行特定任务的硬件。高速可以指以比执行特定任务的非设计(例如,通用)硬件更少的时间/周期来执行特定任务。例如,硬件加速器270可以被设计为高速执行数据转换,诸如解调、调制、编码和解码。硬件加速器270可以是可编程的,并且可以由至少一个处理器280和/或硬件加速器270编程。

在一些示例实施例中,AI加速器260可以执行人工神经网络模型。例如,进一步参考图1,存储器250可以存储训练数据。训练数据可以包括由监视器130通过监视共享缓冲器120获得的缓冲器容量和响应等待时间,并且包括由DVFS控制器200基于缓冲器容量和响应等待时间确定的缩放因子。AI加速器260可以执行人工神经网络模型,并且处理器280可以通过使用训练数据来训练人工神经网络模型。在人工神经网络模型的训练完成之后,处理器280可以从监视器130接收缓冲器容量和响应等待时间。当接收的缓冲器容量和响应等待时间对应于存储在存储器250中的缓冲器容量和响应等待时间时,可以使用经训练的人工神经网络模型来确定对应于缓冲器容量和响应等待时间的缩放因子。在人工神经网络模型被训练之后,DVFS控制器200可以在没有对核心110的工作负载进行分类的情况下确定缩放因子,并且例如比没有分类的情况下更快地生成时钟控制信号和电压控制信号。

在一些示例实施例中,训练数据可以包括地址,并且处理器280可以使用包括地址的训练数据来训练人工神经网络模型。例如,共享缓冲器120从核心110接收的请求Req可以包括地址,并且该地址可以包括指定存储器600的某一区域a的位置的数据。在人工神经网络模型的训练完成之后,处理器280可以从监视器130接收地址,并确定对应于该地址的缩放因子。训练数据可以进一步包括除了上述数据之外的其他数据。

图8是根据一些示例实施例的集成电路的操作方法的流程图。如图8所示,集成电路的操作方法900可以包括多个操作S110至S150。

参考图1和图8,在操作S110,监视共享缓冲器120,并且可以获得共享缓冲器120的缓冲器容量和共享缓冲器120从外部存储器接收的响应的响应等待时间。在一些示例实施例中,共享缓冲器120的缓冲器容量可以表示多个块121的容量的填满状态,并且从外部存储器接收的响应的响应等待时间可以是共享缓冲器120在通过总线500访问存储器600之后从存储器600接收响应Res所花费的时间段。

在操作S130中,可以基于缓冲器容量和响应等待时间对核心110的工作负载进行分类。在一些示例实施例中,当缓冲器容量和响应等待时间等于或大于阈值时,DVFS控制器200可以将核心110的工作负载分类为第一工作负载。如果缓冲器容量或响应等待时间小于阈值,则DVFS控制器200可以将核心110的工作负载分类为第二工作负载。在一些示例实施例中,核心110的温度可以用于对核心110的工作负载进行分类。

在操作S150中,可以基于经分类的核心110的工作负载来确定核心110的电压-频率水平的缩放因子。在一些示例实施例中,当核心110的工作负载被分类为第一工作负载时,可以确定缩放因子,使得电压-频率水平降低。当核心110的工作负载被分类为第二工作负载时,可以确定缩放因子,使得电压-频率水平增加。在一些示例实施例中,核心110的温度可用于确定核心110的电压-频率水平的缩放因子。

图9是根据一些示例实施例的集成电路的操作方法的一些示例实施例的流程图。图8的操作S130可以包括图9的集成电路的操作方法的一些示例实施例。集成电路的操作方法(S130)的一些示例实施例可以包括多个操作S131至S135。

参考图1和图9,集成电路的操作方法(S130)的一些示例实施例可以指示DVFS控制器200以三种模式之一操作。在操作S131中,可确定缓冲器容量是否满以及响应等待时间是否长于阈值时间Th2。当缓冲器容量满并且响应等待时间长于阈值时间Th2时,在操作S132中,DVFS控制器200可以以存储器密集型工作负载模式操作。例如,在存储器密集型工作负载模式中,DVFS控制器200可以将核心110的工作负载分类为存储器密集型工作负载,并确定缩放因子,使得电压-频率水平降低。

当缓冲器容量未满和/或响应等待时间短于阈值时间Th2时,DVFS控制器200可以从图4的温度传感器接收核心110的温度信息T。当核心110的温度信息T高于阈值温度th3时,在操作S134,DVFS控制器200可以在计算工作负载模式下操作。例如,在计算工作负载模式中,DVFS控制器200可以将核心110的工作负载分类为计算工作负载,并确定缩放因子,使得电压-频率水平降低。当核心110的温度信息T不高于阈值温度th3时,在操作S135,DVFS控制器200可以在正常工作负载模式下操作。例如,在正常工作负载模式下,DVFS控制器200可以将核心110的工作负载分类为正常工作负载,并且可以确定缩放因子,使得电压-频率水平增加。

由于DVFS控制器200的操作模式根据缓冲器容量和响应等待时间而改变,并且缩放因子根据操作模式而不同地确定,所以可以根据需要调节功耗。例如,当在存储器密集型工作负载模式下操作时,由DVFS控制器200确定的缩放因子可以是比当在计算工作负载模式下操作时由DVFS控制器200确定的缩放因子进一步降低电压-频率水平的缩放因子。

图10是根据一些示例实施例的集成电路的操作方法的一些示例实施例的流程图。如图10所示,集成电路的操作方法的一些示例实施例1000可以包括S210至S250的多个操作。

参考图7和图10,在S210操作中,存储器250可以存储训练数据。在一些示例实施例中,存储器250可以接收和存储来自监视器130的训练数据。训练数据可以包括通过监视器130监视共享缓冲器120获得的缓冲器容量和响应等待时间,并且包括由DVFS控制器200基于缓冲器容量和响应等待时间确定的缩放因子。

在操作S230中,可以使用训练数据来训练人工神经网络模型。在一些示例实施例中,AI加速器260可以执行人工神经网络模型,并且处理器280可以通过使用训练数据来训练人工神经网络模型。

在操作S250中训练完成之后,处理器280可确定与从监视器接收的缓冲器容量和响应等待时间对应的缩放因子。在一些示例实施例中,处理器280可以从监视器130接收缓冲器容量和响应等待时间。当接收的缓冲器容量和响应等待时间对应于存储在存储器250中的缓冲器容量和响应等待时间时,可以使用经训练的人工神经网络模型来确定对应于缓冲器容量和响应等待时间的缩放因子。在人工神经网络模型被训练之后,DVFS控制器200可以在不对核心110的工作负载进行分类的情况下确定缩放因子,并且例如比没有分类时更快地生成时钟控制信号和电压控制信号。

图11是示出根据一些示例实施例的系统的框图。

参看图11,系统30可以实施为移动电话、智能电话、平板电脑、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、便携式多媒体播放器(PMP)、个人导航装置或便携式导航装置(PND)、和/或诸如手持式游戏控制台或电子书的手持式装置。

系统30可以包括SoC 3100和存储器设备3200。SoC 3100可以包括中央处理单元(CPU)3110、图形处理单元(GPU)3120、神经处理单元(NPU)3130、图像信号处理器(ISP)3140、存储器接口(MIF)3150、CMU 3160和PMU 3170。CPU 3110、GPU 3120、NPU 3130、ISP3140和MIF 3150可以是上面参考图1至图10描述的集成电路10的一些示例实施例。因此,CPU 3110、GPU 3120、NPU 3130、ISP 3140和MIF 3150可以各自包括监视器130和DVFS控制器200,并且DVFS控制器200可以基于监视器130监视的缓冲器容量和响应等待时间来执行DVFS操作。

CPU 3110可以响应于由CMU 3160生成的时钟信号来处理或执行存储在存储器设备3200中的命令和/或数据。

GPU 3120可以响应于由CMU 3160生成的时钟信号获取存储在存储器设备3200中的图像数据。GPU 3120可以根据从MIF 3150提供的图像数据生成用于通过显示设备(未示出)输出的图像的数据,或者对图像数据进行编码。

NPU 3130可以指运行机器学习模型的任何设备。NPU 3130可以包括被设计成运行机器学习模型的硬件块。机器学习模型可以包括基于人工神经网络、决策树、支持向量机、回归分析、贝叶斯网络、遗传算法等的模型。人工神经网络的非限制性示例可以包括卷积神经网络(CNN)、具有卷积神经网络的区域(R-CNN)、区域建议网络(RPN)、递归神经网络(RNN)、基于堆叠的深度神经网络(S-DNN)、状态空间动态神经网络(S-SDNN)、去卷积网络、深度信念网络(DBN)、受限玻尔兹曼机器(RBM)、完全卷积网络、长短期记忆(LSTM)网络和分类网络。

ISP 3140可以对从位于SoC 3100外部的图像传感器(未示出)接收的原始数据执行信号处理操作,并生成具有改善的图像质量的数字数据。

MIF 3150可以向位于SoC 3100外部的存储器设备3200提供接口。存储器设备3200可以包括DRAM、PRAM、ReRAM或闪存。

CMU 3160可以生成时钟信号并将该时钟信号提供给SoC 3100的组件。CMU 3160可以包括时钟生成器,诸如锁相环(PLL)、延迟锁定环(DLL)和/或晶体振荡器。PMU 3170可以将外部电源转换为内部电源,并且从内部电源向SoC 3100的组件供电。

图12是示出根据一些示例实施例的包括应用处理器的通信设备的框图。

参考图12,通信设备40可以包括应用处理器4010、存储器设备4020、显示器4030、输入设备4040和无线电收发器4050。应用处理器4010可以是上面参考图1至11描述的集成电路10的一些示例实施例。

无线电收发器4050可以通过天线4060发送或接收无线电信号。例如,无线电收发器4050可以将通过天线4060接收的无线信号改变为可以由应用处理器4010处理的信号。

因此,应用处理器4010可以处理从无线电收发器4050输出的信号,并将处理后的信号发送到显示器4030。此外,无线电收发器3250可以将从应用处理器4010输出的信号改变为无线信号,并且通过天线4060将无线信号输出到外部设备。

输入设备4040可以包括能够输入用于控制应用处理器4010的操作的控制信号或要由应用处理器4010处理的数据的设备,并且可以被实现为诸如触摸板或计算机鼠标的定点设备,或者小键盘或键盘。

这里,根据一些示例实施例,应用处理器4010可以进一步包括监视器130和DVFS控制器200,并且DVFS控制器200可以基于监视器130监视的缓冲器容量和响应等待时间来执行DVFS操作。

尽管图12中未示出,但是通信设备40还可以包括向各种组件提供时钟信号的时钟管理单元和提供电源电压的电力管理单元。

通过使用根据如上所述的发明构思的集成电路10,可以对核心的工作负载进行分类,并且可以基于经分类的工作负载来确定电压-频率水平的缩放因子,因此,可以根据需要改善或有效控制功耗。

当术语“大约”或“基本上”在本说明书中结合数值使用时,意味着相关的数值包括所述数值附近的制造或操作公差(例如10%)。此外,当词语“通常”和“基本上”与几何形状结合使用时,意味着不需要几何形状的精度,但是该形状的范围在本公开的范围内。此外,不管数值或形状是否通过“大约”或“基本上”来修饰,应该理解的是,这些数值和形状应该被解释为包括该数值或形状周围的制造或操作公差(例如,10%)。

如本文所述,根据任何示例实施例的任何电子设备和/或其部分可以包括、可以被包括在和/或可以由处理电路的一个或多个实例来实现,处理电路诸如包括:逻辑电路的硬件;硬件/软件组合,诸如执行软件的处理器;或者它们的任意组合。例如,处理电路更具体地可以包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、图形处理单元(GPU)、应用处理器(AP)、数字信号处理器(DSP)、微型计算机、现场可编程门阵列(FPGA)和可编程逻辑单元、微处理器、专用集成电路(ASIC)、神经网络处理单元(NPU)、电子控制单元(ECU)、图像信号处理器(ISP)等。在一些示例实施例中,处理电路可以包括:存储指令程序的非暂时性计算机可读存储器设备(例如,存储器)(例如DRAM设备);以及处理器(例如,CPU),处理器被配置为执行指令程序,以实现由根据任何示例实施例的任何设备、系统、模块、单元、控制器、电路、架构和/或其部分中的一些或全部执行的功能和/或方法和/或其任何部分。

虽然已经参考本发明的示例性实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。

本申请基于2022年8月12日向韩国知识产权局提交的第10-2022-0101594号韩国专利申请和2022年12月7日向韩国知识产权局提交的第10-2022-0170043号韩国专利申请并要求其优先权,其公开内容通过引用整体结合于此。

技术分类

06120116541579