CN112131175B - 一种SoC芯片、功耗控制方法及可读存储介质 - Google Patents
一种SoC芯片、功耗控制方法及可读存储介质 Download PDFInfo
- Publication number
- CN112131175B CN112131175B CN202010887187.7A CN202010887187A CN112131175B CN 112131175 B CN112131175 B CN 112131175B CN 202010887187 A CN202010887187 A CN 202010887187A CN 112131175 B CN112131175 B CN 112131175B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- descriptor
- dma controller
- power
- linked list
- 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
Images
Classifications
-
- 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
-
- 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
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Sources (AREA)
Abstract
本发明公开了一种SoC芯片,该芯片包括:PCU、DMA控制器、电源域模块和存储器;其中,PCU,用于监测功耗事件,并发送功耗事件对应的起始地址信息给DMA控制器;DMA控制器,用于基于起始地址信息执行描述符链表的描述符对应操作;存储器,用于存储描述符链表,以及备份状态数据和缓存数据;电源域模块,在PCU和/或DMA控制器的控制下,调整功耗状态。该SoC芯片基于PCU、DMA控制器和存储器在无需额外的软件干预的情况下,便可实现电源域模块粒度的功耗控制,且还能灵活配置,适应不同复杂场景的功耗管理需求,能够有效降低SoC芯片的功耗。本发明还公开了一种功耗控制方法及可读存储介质,具有相应技术效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种SoC芯片、功耗控制方法及可读存储介质。
背景技术
电子技术不断发展和普及,人们的生活与电子产品紧密的联系在一起。例如计算机、手机、智能手表、手环和其他IOT(物联网,Internet of Things)电子产品在日常生活中无处不在。对于类似手机、智能手表、手环等这类移动电子产品,既需要便携,又需待机时间长。如此,便使得低功耗成为此类移动电子产品的一个重要的技术指标。
目前,在SoC(系统级芯片,System on Chip)芯片中,降低功耗的方案有2种,一种是基于门控时钟来实现,另一种是基于电源门控来实现。虽然已有降低功耗的方案能够在一定程度上降低功耗,但是,已有方案往往需要软件干预,管理方式固定,不适应复杂的应用场景,无法有效降低SoC芯片功耗。
综上所述,如何有效地解决功耗控制等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种SoC芯片、功耗控制方法及可读存储介质,以摆脱额外的软件干预,提高功耗管理灵活性,最终减少SoC芯片的功耗。
为解决上述技术问题,本发明提供如下技术方案:
一种SoC芯片,包括:
PCU、DMA控制器、电源域模块和存储器;
其中,所述PCU,用于监测功耗事件,并发送所述功耗事件对应的起始地址信息给所述DMA控制器;
所述DMA控制器,用于基于所述起始地址信息执行描述符链表的描述符对应操作;
所述存储器,用于存储所述描述符链表,以及备份状态数据和缓存数据;
所述电源域模块,在所述PCU和/或所述DMA控制器的控制下,调整功耗状态。
优选地,所述DMA控制器,包括:
主控状态机,用于读取所述描述符链表中的所述描述符;解析所述描述符,根据不同描述符的类型,执行对应的DMA操作;
输入输出控制模块,用于支持输入信号和输出信号;其中,输入输出控制模块,用于支持输入信号和输出信号;其中,所述输入信号对应调节跳转描述符的条件,用于监测所述电源域模块的状态;所述输出信号用于控制所述电源域模块的状态;
总线端口,用于接收所述DMA主状态机的传输控制,以便读取所述描述符,执行DMA的传输操作。
优选地,所述DMA控制器,还包括:
具有外部软件访问接口的寄存器模块,用于支持系统调试以及外部软件控制。
优选地,所述DMA控制器所支持的所述描述符具有的统一的布局格式,每个所述描述符包括4个字组成,其中,第一个字对应描述符的类型及链表中下一个描述符地址,第二个字、第三个字和第四个字对应不同的描述符具有不同的含义。
优选地,所述PCU,包括:
系统状态监测模块,用于获取系统的功耗事件;
状态控制寄存器,用于存放不同所述功耗事件对应控制过程的描述符链表的起始地址信息,所述起始地址信息为DDR地址段;
状态机模块,用于切换所述PCU的状态及进行跳转控制。
优选地,所述功耗事件包括唤醒事件和休眠事件。
一种功耗控制方法,包括:
在监测到功耗事件的情况下,读取所述功耗事件对应的链表起始地址信息;
打开DMA控制器的电源,并将所述链表起始地址信息发送给所述DMA控制器;
利用所述DMA控制器,基于所述链表起始地址信息并结合描述符链表,调整各个电源域模块功耗状态与所述功耗事件对应;
接收到所述DMA控制器反馈的结束标识后,关闭所述DMA控制器的电源。
优选地,利用所述DMA控制器,基于所述链表起始地址信息并结合描述符链表,调整各个电源域模块功耗状态与所述功耗事件对应,包括:
利用所述DMA控制器自所述链表起始地址信息对应的位置读取所述描述符链表,得到目标描述符,并执行所述目标描述符对应DMA操作,以将各个所述电源域模块功耗状态与所述功耗事件对应。
优选地,所述在监测到功耗事件的情况下,读取所述功耗事件对应的链表起始地址信息,包括:
在监测到所述功耗事件的情况下,从所述功耗事件对应的DMA描述符链表的首地址配置寄存器中读取所述链表起始地址信息;所述功耗事件包括休眠事件和唤醒事件。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述功耗控制方法的步骤。
应用本发明实施例所提供的SoC芯片,该芯片包括:PCU、DMA控制器、电源域模块和存储器;其中,PCU,用于监测功耗事件,并发送功耗事件对应的起始地址信息给DMA控制器;DMA控制器,用于基于起始地址信息执行描述符链表的描述符对应操作;存储器,用于存储描述符链表,以及备份状态数据和缓存数据;电源域模块,在PCU和/或DMA控制器的控制下,调整功耗状态。
存储器存储描述符链表,备份状态数据,缓存数据,能够满足不同数据存储/缓存需求。而链表的灵活组织方式提供了系统不同场景的应用需求,因此,基于描述符链表可以做灵活的管理和额外的扩展,比较容易的适用于比较复杂的低功耗管理中,如系统包含多种低功耗的状态或者多个低功耗管理对象。DMA控制器受PCU控制,并能够执行描述符链表中的描述符对应操作,能够实现功耗控制。也就是说,在SoC芯片中,基于PCU、DMA控制器和存储器在无需额外的软件干预的情况下,便可实现电源域模块粒度的功耗控制,且还能灵活配置,适应不同复杂场景的功耗管理需求,能够有效降低SoC芯片的功耗。
相应地,本发明实施例还提供了与上述SoC芯片相对应的功耗控制方法和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种SoC芯片示意图;
图2为本发明实施例中一种DMA控制器的具体结构示意图;
图3为本发明实施例中一种描述符格式示意图;
图4为本发明实施例中描述符定义示意图;
图5为本发明实施例中PCU状态切换及跳转控制示意图;
图6为本发明实施例中一种功耗控制方法的流程示意图;
图7为本发明实施例中一种休眠过程的工作流程示意图;
图8为本发明实施例中一种唤醒过程的工作流程示意图;
图9为本发明实施例中一种与休眠事件对应的描述符链表示意图;
图10为本发明实施例中一种与唤醒事件对应的描述符链表示意图;
图11为本发明实施例中一种与休眠事件和唤醒事件对应的描述符链表示意图;
图12为门控时钟原理示意图;
图13为电源门控原理示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于理解本发明实施例所提供的技术方案,下面对本发明实施例所涉及的相关术语以及相关技术方案进行解释说明:
PCU:Power Control Unit,电源控制单元;
DMA:Direct Memory Access,直接存储器存取;
CPU:Central Processing Unit,中央处理单元;
SoC:System on Chip,系统级芯片;
Clock Gating:门控时钟;
Power Gating:电源门控。
其中,关于门控时钟,在SoC设计中的功耗包括两部分:静态功耗和动态功耗。静态功耗主要由泄漏电流引起。动态功耗主要包括短路功耗和翻转功耗。短路功耗即内部功耗,指由器件内部由于P管和N管在某一瞬间同时导通导致的瞬时短路引起的。翻转功耗由CMOS器件的输出端负载电容的充放电引起。芯片正常工作时,很大一部分功耗是由于时钟网络的翻转消耗的,如果时钟网络较大,这部分引起的功耗损失会很大。因此,门控时钟对翻转功耗和内部功耗的抑制作用最强。门控时钟的原理如图12所示,通过在寄存器的时钟输入端引入时钟门控单元,在数据无效时,将寄存器的时钟关闭,可以有效的降低功耗,是低功耗设计的重要方法之一。
关于电源门控,电源门控也称为多电源方法(Multi-Supply),其思想是芯片上的一些模块可以根据应用需求,采用不同的电源网络供电。这样,当一个模块不需要工作的时候,这个模块可以完全断开电源,如手机处于待机状态时的多媒体处理单元,进而做到零功耗。电源门控(Power)的电路图13所示。
相应于上述门控时钟和电源门控,本发明的核心是提供一种SoC芯片以及能够应用于SoC芯片的功耗控制方法,通过电源控制单元(PCU,Power Control Unit)和一个基于描述符的DMA(Direct Memory Access,直接内存存取)控制器来实现,本发明所提供的技术方案不需要额外的软件干预,硬件模块可以直接根据系统的状态以及链表形式的描述符组织的低功耗策略来实现系统低功耗的动态管理。图1描述了该设计的系统方案,其主要包括:电源控制单元,基于描述符的DMA控制器,低功耗管理的对象的电源域模块(如CPU子系统)和常开的存储器单元(如DDR),以及各模块之间的互连总线。该系统通常具有两种模式:工作模式和休眠模式。在工作模式下CPU子系统需要在正常工作电压和时钟频率下工作;在休眠模式下,CPU子系统需要进入低功耗休眠模式。
本发明的另一核心是提供一种与功耗控制方法相对应的可读存储介质,该可读存储介质具有相应技术效果,在此不再一一赘述。
请参考图1,图1为本发明实施例中一种SoC芯片示意图。可见,该SoC芯片,包括:
PCU、DMA控制器、电源域模块和存储器;
其中,PCU,用于监测功耗事件,并发送功耗事件对应的起始地址信息给DMA控制器;
DMA控制器,用于基于起始地址信息执行描述符链表的描述符对应操作;
存储器,用于存储描述符链表,以及备份状态数据和缓存数据;
电源域模块,在PCU和/或DMA控制器的控制下,调整功耗状态。
具体的,PCU(即图1所示的电源控制单元)主要负责各电源域模块的电源控制,如电源域模块对应电源的打开或者关闭;监测系统状态的监测电路,如系统的工作状态,休眠事件,唤醒事件;不同场景下DMA描述符链表的首地址(对应起始地址信息)配置寄存器和DMA控制器的启动控制,以及与DMA控制器的硬件握手信号的控制等等。
DMA控制器负责实现数据的DMA传输,寄存器的读、写操作,硬件输入的监测和硬件输出的产生,以及条件跳转等。DMA控制器定义在一个单独的电源域内,在系统启动DMA控制器工作时将其所在电源域打开,传输结束将其电源域关闭,保证尽可能多的降低功耗的目的。也就是说,DMA控制器本身也可以视为一个电源域模块。DMA控制器的所有操作均可以通过一个描述符表示,描述符根据特定的格式可以组织成一个链表,从而完成特定序列的流程管理。DMA控制器可以根据链表的起始地址自主的读取,解析并执行链表种的描述符。
电源域模块,可关闭的电源域(如CPU子系统)为低功耗动态管理的对象,该对象内通常包括单个或者多个处理单元及内部存储器等。在低功耗控制过程中,需要对系统中的一些状态寄存器和存储器在进入休眠时将其电源关闭并且在唤醒时将其打开,为了尽可能多的降低功耗,将整个子系统的电源完全关闭是最优方案。因此需要在系统进入休眠模式前,将子系统的状态及存储器的数据备份到外部的常开的电源域中;在系统唤醒时,将之前备份的状态及数据恢复到子系统中。
存储器,即电源常开的存储单元(如DDR),主要负责存放不同低功耗场景下的描述符链表,如休眠和唤醒过程的数据搬移,状态跳转等来描述整个低功耗管理的流程控制;以及在备份电源域模块状态和数据的充当缓存的目的。
互连总线,即系统中各模块间的数据连接通路。主要用于提供DMA控制器对各电源域模块及存储器的数据访问。如描述符的读取通道,数据的搬移通道,状态控制寄存器的访问通道等。
具体的,DMA控制器具备可以执行基于描述符的链表形式的数据传输,整个传输的过程不需要软件的介入和与软件的交互,该DMA控制器包括但不限于以下功能:
1、软件或者硬件均可以触发保存和恢复的数据传输;
2、灵活的数据传输组织方式,可以传输不同的传输大小及传输数目;
3、可以通过描述符控制的专用的输入输出硬件交互模块及电源域模块控制;
4、可扩展的流程控制机制。
请参考图2,图2为本发明实施例中一种DMA控制器的具体结构示意图。可见,该DMA控制器,具体包括:
主控状态机,用于读取描述符链表中的描述符;解析描述符,根据不同描述符的类型,执行对应的DMA操作;
输入输出控制模块,用于支持输入信号和输出信号;其中,输入输出控制模块,用于支持输入信号和输出信号;其中,输入信号对应调节跳转描述符的条件,用于监测电源域模块的状态;输出信号用于控制电源域模块的状态;
总线端口,用于接收DMA主状态机的传输控制,以便读取描述符,执行DMA的传输操作。
在实际应用中,主控状态机负责完成:
1、根据描述符的地址,组织传输,控制总线端口读取描述符;
2、根据描述符解析,根据不同的描述符的类型,执行对应的DMA操作;
3、将DMA操作组织传输,控制总线端口完成DMA传输;
4、如果当前描述符中“下一个描述符的地址”字段为全0,则链表执行结束。
输入输出模块分别最多支持32比特宽的输入信号和输出信号。输入信号通常作为条件跳转描述符的条件,DMA控制器根据描述符的定义,通过判断输入信号上某一比特或者某几个比特的值做不同的跳转操作。输入信号通常用于监测其他模块的状态,如CPU子系统的电源状态等等。DMA控制器可以根据描述符的定义,设置输出信号某一个比特或者某几个比特的值(高低电平),可以同PCU的状态机做硬件握手,或者控制电源域模块的电源开关等等。
总线端口模块用于接收DMA主状态机的传输控制,用于读取描述符,DMA的传输操作。该接口可以完成单个或者多个的读写操作。
优选地,DMA控制器,还包括:具有外部软件访问接口的寄存器模块,用于支持系统调试以及外部软件控制。即寄存器模块提供了额外的软件访问的接口,用于做系统的调试以及额外的软件控制机制。寄存器包括控制寄存器、调试寄存器及一组通用的寄存器,用于DMA传输过程中一些缓存数据的目的。
其中,DMA控制器所支持的描述符具有的统一的布局格式,每个描述符包括4个字组成,其中,第一个字对应描述符的类型及链表中下一个描述符地址。具体的,DMA控制器所支持的描述符具有的统一的布局格式,每个描述符由4个字(4word/16Byte)组成。第一个字包含描述符的类型及链表中下一个描述符地址。之后的3个字段根据描述符的类型具有不同的涵义。描述符类型包括:内存块传输,单次读,单次写,信号读,信号写,条件跳转等。
在一种具体方式中,描述符的格式如图3所示,图3为本发明实施例中一种描述符格式示意图。即,第一个字里低4位,表示描述符的类型;高28位标识链表中下一个描述符的地址,如果该字段为全0,则标识该描述符为最后一个描述符,链表终止,该地址须按4个字地址匹配对齐。各类型的描述符的具体定义格式图4所示:
内存传输:第二个字标识内存传输的源地址,第三个字标识内存传输的目标地址,第四个字标识传输的长度。
寄存器写:第二个字标识写立即数,第三个字标识写地址,第四个字选择可以用于选择从写的值来自于写立即数,或者DMA内部的通用寄存器或者是硬件输入信号。
寄存器读:第二个字标识读地址,第三个字标识写地址,第四个字选择字段可以用于选择读的值到第三个字的写地址,或者DMA内部的通用寄存器或者是硬件的输出信号。
信号写:第二个字标识对应的输出信号置1,第三个字标识对应的输出清零,若第二个字于第三个字相同位置的都为高,则置1优先级高。第四个字选择字段用于选择来自于第二、三字,或者DMA内部的通用寄存器。
信号读:第二个字标识对应的硬件输入信号比特位写屏蔽,第三个字标识写地址。第四个字选择字段用于选择读的硬件输入信号的值写入第三个字段目标地址,或者DMA内部的通用寄存器。
条件跳转:第一个字标识条件成立的跳转描述符地址,第二个字标识条件不成立的跳转描述符地址。第三个字标识比特位屏蔽位。第四个字标识比特值。选择位用于选择判断条件的为硬件的输入信号,或者DMA内部的通用寄存器。
需要说明的是,上述列举的描述符定义仅仅是便于理解的示例,在实际应用中,还可根据后续的需求定义如循环,算数运算等类型的描述符。
其中,对于PCU,在本发明实施例中该PCU可以具体包括几个特点功能模块。PCU,包括:
系统状态监测模块,用于获取系统的功耗事件;
状态控制寄存器,用于存放不同功耗事件对应控制过程的描述符链表的起始地址信息,起始地址信息为DDR地址段;
状态机模块,用于切换PCU的状态及进行跳转控制。
其中,功耗事件包括但不限于唤醒事件和休眠事件。
具体的,系统状态监测模块,用于监测系统何时需要进入休眠,何时需要唤醒,该模块也可以通过上层应用通过配置寄存器的方式实现。
PCU的状态控制寄存器,用于存放休眠和唤醒过程的两个描述符链表的起始地址信息,该地址通常为DDR地址段。
状态机负责PCU状态切换及跳转控制。请参考图5,图5为本发明实施例中PCU状态切换及跳转控制示意图。
即,在系统工作状态,PCU系统状态监测模块监测到系统进入休眠事件后,状态跳转,打开DMA控制器电源,然后将休眠过程的链表指针地址发送到DMA控制器并启动DMA,等待DMA传输完成,关闭DMA控制器电源域电源,系统进入休眠状态;在休眠状态下,在系统状态监测模块监测到唤醒事件,状态跳转,打开DMA控制器电源域模块电源,然后将唤醒过程的链表指针地址发送到DMA控制器并启动DMA,等待DMA传输完成,关闭DMA控制器电源,系统进入工作状态。一部分状态机的输入或者输出用于DMA控制器的输入输出的握手。
应用本发明实施例所提供的SoC芯片,该芯片包括:PCU、DMA控制器、电源域模块和存储器;其中,PCU,用于监测功耗事件,并发送功耗事件对应的起始地址信息给DMA控制器;DMA控制器,用于基于起始地址信息执行描述符链表的描述符对应操作;存储器,用于存储描述符链表,以及备份状态数据和缓存数据;电源域模块,在PCU和/或DMA控制器的控制下,调整功耗状态。
存储器存储描述符链表,备份状态数据,缓存数据,能够满足不同数据存储/缓存需求。而链表的灵活组织方式提供了系统不同场景的应用需求,因此,基于描述符链表可以做灵活的管理和额外的扩展,比较容易的适用于比较复杂的低功耗管理中,如系统包含多种低功耗的状态或者多个低功耗管理对象。DMA控制器受PCU控制,并能够执行描述符链表中的描述符对应操作,能够实现功耗控制。也就是说,在SoC芯片中,基于PCU、DMA控制器和存储器在无需额外的软件干预的情况下,便可实现电源域模块粒度的功耗控制,且能灵活配置,适应不同复杂场景的功耗管理需求,能够有效降低SoC芯片的功耗。
相应于上面的SoC芯片实施例,本发明实施例还提供了一种功耗控制方法,下文描述的功耗控制方法与上文描述的SoC芯片可相互对应参照。
请参考图6,图6为本发明实施例中一种功耗控制方法的流程示意图,该方法可以应用于如上文所描述的SoC芯片中的PCU中,该方法包括以下步骤:
S101、在监测到功耗事件的情况下,读取功耗事件对应的链表起始地址信息。
在本发明实施例中,可为不同的功耗时间对应设置不同的描述符链表。如此,在PCU检测到功耗事件的情况下,便可读取该功耗事件对应的链表起始地址信息。
具体的,可在监测到功耗事件的情况下,从功耗事件对应的DMA描述符链表的首地址配置寄存器中读取链表起始地址信息;功耗事件包括休眠事件和唤醒事件。
S102、打开DMA控制器的电源,并将链表起始地址信息发送给DMA控制器。
即,仅在需要DMA工作时,将其电源打开,能够减少长期运行DMA控制器而带来的功耗。
在打开DMA控制器的电源后,可将链表起始地址信息发送给DMA控制器。
S103、利用DMA控制器,基于链表起始地址信息并结合描述符链表,调整各个电源域模块功耗状态与功耗事件对应。
DMA控制器得到链表起始地址信息后,便可利用DMA控制器基于链表起始地址信息以及描述符链表,对各个电源域模块功耗状态进行调整。
该描述符链表可以存放在长期处于工作状态的存储器中。
要调整各个电源域模块功耗状态与功耗事件对应,具体实现包括:利用DMA控制器自链表起始地址信息对应的位置读取描述符链表,得到目标描述符,并执行目标描述符对应DMA操作,以将各个电源域模块功耗状态与功耗事件对应。
具体的,关于描述符的定义以及具体操作可参见上述实施例,在此不再一一赘述。
S104、接收到DMA控制器反馈的结束标识后,关闭DMA控制器的电源。
DMA控制器在执行完对应的描述符链表中的全部DMA操作之后,便可向PCU反馈结束标识。
PCU接收到结束标识后,便可将DMA控制器的电源关闭,以减少功耗。
应用本发明实施例所提供的方法,在监测到功耗事件的情况下,读取功耗事件对应的链表起始地址信息;打开DMA控制器的电源,并将链表起始地址信息发送给DMA控制器;利用DMA控制器,基于链表起始地址信息并结合描述符链表,调整各个电源域模块功耗状态与功耗事件对应;接收到DMA控制器反馈的结束标识后,关闭DMA控制器的电源。
该方法通过PCU与专用DMA控制器相结合,通过无软件干预的方式,实现了系统的低功耗状态的动态管理。该方法可以应用于多数SoC设计中,通过该方法可以完成多种应用场景下做到低功耗的动态管理控制,该方法易于实现,扩展性强,软硬件开销小,低功耗指标高。
为便于本领域技术人员更好地理解本发明实施例所提供的功耗控制方法,下面结合具体的场景为例,对功耗控制方法的具体实现进行详细说明。
低功耗管理方式包括:系统的休眠过程(如图7所示)和系统的唤醒过程(如图8所示),具体工作流程如下:
在系统(对应SoC芯片)的初始化阶段,将系统休眠和唤醒过程中的低功耗控制流程所对应的操作通过DMA描述符以链表的形式存放在DDR中,同时将两个过程对应的链表的起始地址信息配置到PCU的控制寄存器当中。
其中,描述符链表DMA执行的流程通过描述符链表组织在一起,描述符的组织方式比较灵活。
休眠和唤醒过程可以定义在两个独立的链表中,如图9和图10所示:休眠和唤醒的链表定义在不同的链表中,分别用于两种过程的管理控制。两个过程也可以定义在一个交织的链表,如图11所示:休眠和唤醒的链表定义在一个相对复杂的链表中,通过休眠和唤醒的起始地址不同进入链表的不同位置,同时在链表中根据场景及状态的不同做条件跳转,区分不同的链表内容。
可见,链表的灵活组织方式提供了系统不同场景的应用需求,在此基础上可以做灵活的管理和额外的扩展,比较容易的适用于比较复杂的低功耗管理中,如系统包含多种低功耗的状态或者多个低功耗管理对象。
如此,系统在工作状态下,PCU监测到系统需要进入休眠状态的休眠事件后,打开DMA控制器电源域的电源,然后将休眠过程对应的描述符链表的起始地址信息发送给DMA控制器同时启动DMA传输,等待DMA执行结束的标识。PCU接收到结束标识信号以后将CPU子系统和DMA控制器电源域的电源关闭,系统进入休眠状态。
系统在休眠状态下,PCU监测到系统的唤醒事件后,打开DMA控制器和CPU子系统电源域的电源,将唤醒过程对应的描述符链表的起始地址信息发送给DMA控制器同时启动DMA传输,等待DMA执行结束的标识。PCU接收到结束标识信号后,将DMA控制器电源域的电源关闭,系统从休眠状态下唤醒进入工作状态。
DMA控制器接收到PCU发送的启动消息后,根据描述符链表的起始地址信息,从该地址中读取描述符,到DMA控制器内部,解析并执行对应的DMA操作,如内存传输,寄存器操作,输入输出信号的状态或控制,及状态跳转等等。在每一个描述符中包括链表中前一个描述符包含下一个描述符的地址信息,当前描述符中下一个描述符地址为0,标识链表结尾。DMA控制器根据链表的形式,逐一读取、解析并执行整个链表。在休眠过程中,链表内容为将CPU子系统的状态及内存数据备份到DDR中去;在唤醒过程中,链表内容为将休眠时存放在DDR中的CPU子系统的状态和内存数据恢复到CPU子系统中。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种功耗控制方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的功耗控制方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (9)
1.一种SoC芯片,其特征在于,包括:
PCU、DMA控制器、电源域模块和存储器;
其中,所述PCU,用于监测功耗事件,并发送所述功耗事件对应的起始地址信息给所述DMA控制器;
所述DMA控制器,用于基于所述起始地址信息执行描述符链表的描述符对应操作;
所述存储器,用于存储所述描述符链表,以及备份状态数据和缓存数据;
所述电源域模块,在所述PCU和/或所述DMA控制器的控制下,调整功耗状态;
所述DMA控制器,包括:
主控状态机,用于读取所述描述符链表中的所述描述符;解析所述描述符,根据不同描述符的类型,执行对应的DMA操作;
输入输出控制模块,用于支持输入信号和输出信号;其中,所述输入信号对应调节跳转描述符的条件,用于监测所述电源域模块的状态;所述输出信号用于控制所述电源域模块的状态;
总线端口,用于接收所述DMA主控 状态机的传输控制,以便读取所述描述符,执行DMA的传输操作。
2.根据权利要求1所述的SoC芯片,其特征在于,所述DMA控制器,还包括:
具有外部软件访问接口的寄存器模块,用于支持系统调试以及外部软件控制。
3.根据权利要求1所述的SoC芯片,其特征在于,所述DMA控制器所支持的所述描述符具有的统一的布局格式,每个所述描述符包括4个字组成,其中,第一个字对应描述符的类型及链表中下一个描述符地址,第二个字、第三个字和第四个字对应不同的描述符具有不同的含义。
4.根据权利要求1所述的SoC芯片,其特征在于,所述PCU,包括:
系统状态监测模块,用于获取系统的功耗事件;
状态控制寄存器,用于存放不同所述功耗事件对应控制过程的描述符链表的起始地址信息,所述起始地址信息为DDR地址段;
状态机模块,用于切换所述PCU的状态及进行跳转控制。
5.根据权利要求1所述的SoC芯片,其特征在于,所述功耗事件包括唤醒事件和休眠事件。
6.一种功耗控制方法,其特征在于,应用于权利要求1至5任意一项所述的SoC芯片,包括:
在监测到功耗事件的情况下,读取所述功耗事件对应的链表起始地址信息;
打开DMA控制器的电源,并将所述链表起始地址信息发送给所述DMA控制器;
利用所述DMA控制器,基于所述链表起始地址信息并结合描述符链表,调整各个电源域模块功耗状态与所述功耗事件对应;
接收到所述DMA控制器反馈的结束标识后,关闭所述DMA控制器的电源。
7.根据权利要求6所述的功耗控制方法,其特征在于,利用所述DMA控制器,基于所述链表起始地址信息并结合描述符链表,调整各个电源域模块功耗状态与所述功耗事件对应,包括:
利用所述DMA控制器自所述链表起始地址信息对应的位置读取所述描述符链表,得到目标描述符,并执行所述目标描述符对应DMA操作,以将各个所述电源域模块功耗状态与所述功耗事件对应。
8.根据权利要求6所述的功耗控制方法,其特征在于,所述在监测到功耗事件的情况下,读取所述功耗事件对应的链表起始地址信息,包括:
在监测到所述功耗事件的情况下,从所述功耗事件对应的DMA描述符链表的首地址配置寄存器中读取所述链表起始地址信息;所述功耗事件包括休眠事件和唤醒事件。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求6至8任一项所述功耗控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010887187.7A CN112131175B (zh) | 2020-08-28 | 2020-08-28 | 一种SoC芯片、功耗控制方法及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010887187.7A CN112131175B (zh) | 2020-08-28 | 2020-08-28 | 一种SoC芯片、功耗控制方法及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131175A CN112131175A (zh) | 2020-12-25 |
CN112131175B true CN112131175B (zh) | 2022-06-17 |
Family
ID=73848687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010887187.7A Active CN112131175B (zh) | 2020-08-28 | 2020-08-28 | 一种SoC芯片、功耗控制方法及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131175B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114691562A (zh) * | 2020-12-29 | 2022-07-01 | 中科寒武纪科技股份有限公司 | 用于dma操作的方法、装置、设备、集成电路芯片和板卡 |
CN112783742B (zh) * | 2021-01-15 | 2022-06-14 | 苏州浪潮智能科技有限公司 | 一种统计cpu频率和电压的方法、装置及电子设备 |
CN113093899B (zh) * | 2021-04-09 | 2022-03-22 | 思澈科技(上海)有限公司 | 一种跨电源域数据传输方法 |
CN113721999A (zh) * | 2021-09-10 | 2021-11-30 | 京东科技信息技术有限公司 | 描述符链表的处理方法、装置、设备、系统及介质 |
CN113835891B (zh) * | 2021-09-24 | 2023-05-23 | 哲库科技(北京)有限公司 | 资源分配方法、装置、电子设备及计算机可读存储介质 |
CN114442788A (zh) * | 2022-04-08 | 2022-05-06 | 北京智芯半导体科技有限公司 | 芯片的低功耗系统、低功耗管理方法、控制装置及存储介质 |
CN117193506A (zh) * | 2022-05-31 | 2023-12-08 | 哲库科技(上海)有限公司 | 存储器、片上系统、终端设备及供电控制方法 |
CN114879829B (zh) * | 2022-07-08 | 2023-04-11 | 摩尔线程智能科技(北京)有限责任公司 | 功耗管理方法、装置、电子设备、图形处理器及存储介质 |
CN115237353B (zh) * | 2022-08-12 | 2023-12-22 | 青岛汉泰智能科技有限公司 | 一种arm查询fpga长度寄存器的方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100346268C (zh) * | 2005-08-18 | 2007-10-31 | 复旦大学 | 信息安全SoC中基于门控时钟的动态功耗管理方法 |
EP1785811B1 (en) * | 2005-11-14 | 2018-12-05 | Texas Instruments Incorporated | Memory information transfer power management |
KR20090012901A (ko) * | 2007-07-31 | 2009-02-04 | 삼성전자주식회사 | 시스템 온 칩에서 재정의 가능한 디스크립터 장치 및 방법 |
TWI466018B (zh) * | 2007-08-24 | 2014-12-21 | Via Tech Inc | 降低電腦系統耗能的方法、電腦系統、及控制裝置 |
US8806232B2 (en) * | 2010-09-30 | 2014-08-12 | Apple Inc. | Systems and method for hardware dynamic cache power management via bridge and power manager |
US9164936B2 (en) * | 2012-12-31 | 2015-10-20 | Silicon Laboratories Inc. | System and method for regulating direct memory access descriptor among multiple execution paths by using a link to define order of executions |
US20150286269A1 (en) * | 2014-04-02 | 2015-10-08 | Qualcomm Incorporated | Method and system for reducing power consumption while improving efficiency for a memory management unit of a portable computing device |
CN110399034B (zh) * | 2019-07-04 | 2021-08-17 | 福州瑞芯微电子股份有限公司 | 一种SoC系统的功耗优化方法及终端 |
-
2020
- 2020-08-28 CN CN202010887187.7A patent/CN112131175B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112131175A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112131175B (zh) | 一种SoC芯片、功耗控制方法及可读存储介质 | |
US11971773B2 (en) | Discrete power control of components within a computer system | |
US7869835B1 (en) | Method and system for pre-loading and executing computer instructions within the cache memory | |
US9600283B2 (en) | Single instruction for specifying a subset of registers to save prior to entering low-power mode, and for specifying a pointer to a function executed after exiting low-power mode | |
US7539878B2 (en) | CPU powerdown method and apparatus therefor | |
JP5410109B2 (ja) | 電力制御システム及び電力制御方法 | |
KR101512493B1 (ko) | 저전력 시스템온칩 | |
US7779191B2 (en) | Platform-based idle-time processing | |
JP3974510B2 (ja) | コンピュータ装置、電力管理方法、およびプログラム | |
US20040002823A1 (en) | Method and apparatus for compiler assisted power management | |
EP1742143B1 (en) | Method and system for power consumption management, and corresponding computer program product | |
US20090193243A1 (en) | Dual Mode Power-Saving Computing System | |
CN102057344A (zh) | 睡眠处理器 | |
US11467650B2 (en) | Selecting a low power state in an electronic device | |
TWI224728B (en) | Method and related apparatus for maintaining stored data of a dynamic random access memory | |
WO2007122596A1 (en) | Method and system for power-state transition controllers | |
US6917555B2 (en) | Integrated circuit power management for reducing leakage current in circuit arrays and method therefor | |
WO2020093868A1 (zh) | 多核芯片、系统,及其方法和存储介质 | |
US20140129759A1 (en) | Low power write journaling storage system | |
CN112987903A (zh) | SOC芯片内Flash存储器的低功耗控制装置及方法 | |
US7802119B2 (en) | Method and system for saving power of central processing unit | |
KR20050065394A (ko) | 모바일 장치에서의 메모리 전류 누설을 줄이기 위한 방법및 장치 | |
CN111459562A (zh) | 基于risc-v架构切换休眠模式的改进系统及方法 | |
CN107613546B (zh) | Ble芯片及其中指定元件的控制方法、蓝牙低功耗设备 | |
US10338664B2 (en) | Control module for data retention and method of operating control module |
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 |