CN112486312B - 一种低功耗的处理器 - Google Patents
一种低功耗的处理器 Download PDFInfo
- Publication number
- CN112486312B CN112486312B CN202011300735.8A CN202011300735A CN112486312B CN 112486312 B CN112486312 B CN 112486312B CN 202011300735 A CN202011300735 A CN 202011300735A CN 112486312 B CN112486312 B CN 112486312B
- Authority
- CN
- China
- Prior art keywords
- module
- instruction
- data
- unit
- write
- 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
- 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
- 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
-
- 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/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Microcomputers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种低功耗的处理器,包括取指模块、译码模块、执行模块、访存模块、写回模块、功耗管理模块、流水线控制模块以及数据模块,其工作模式划分为正常模式和低功耗模式,在正常模式,通过所需调用的数据动态选择SRAM可以有效的避免传输数据的供应不足或者资源浪费,其中取指模块、译码模块、执行模块、访存模块、写回模块之间的5级流水线设计可以有效提高处理器的吞吐量,控制位的设置会提前对指令的有效性进行判定以防造成无用功耗浪费,当处理器进入低功耗模式,则会启动监管机制,若出现闲置的模块、单元会将其逐步关闭以节省功耗,在保持处理器性能的同时降低其功耗以应对不同的应用场景,解决了硬件资源浪费的问题。
Description
技术领域
本发明涉及人工智能领域,尤其是涉及一种低功耗的处理器。
背景技术
随着人工神经网络研究的发展以及在人工智能领域的广泛应用,人工神经网络相比于传统人工智能算法显现出独特的优势。这使得处理器不断的发展进步,其性能不断的提升。现代处理器的功耗、局部功率密度也在不断提高,会对封装、冷却问题和可靠性带来不利的影响。而且随着温度的升高,会引起故障率呈现指数增长、速度变慢、漏电增加等问题。
同时近年来嵌入式设备随着各种智能控制系统、智能玩具、工业控制、掌上设备等需求而不断扩大和流行,嵌入式设备其目标是在满足用户对性能需求的前提下,尽可能的降低能耗,以延长设备的待机时间。因此,其面临着小体积、高性能和有限电池能量之间的矛盾,而低功耗处理器的设计是解决这些问题的有效方法。
要获得一种能耗低、性能功耗比高的处理器是一个多层面问题,想要有效的降低功耗,不仅仅需要考虑软件的设计,改进系统、硬件的设计方法也是有必要的。运行于处理器之上的软件程序,其灵活性很高,发掘低功耗的效果要比硬件低功耗本身的效果更加显著。因此为了使处理器消耗尽可能少的功耗,软件设计应该尽可能合理的调用处理器的硬件资源,例如编译优化、电源管理、应用软件的编写、在不同场景下调用不同能耗的硬件以及在处理器空闲时刻使处理器进入低功耗休眠模式等等。
硬件是系统运行的物质平台,因此在此基础上对处理器进行不同层面的低功耗设计也是非常有必要的,只有在软硬件上进行合理的设计并且互相配合,才能做到在不影响处理器性能的情况下,使其功耗降低,减少其对能量的消耗。
传统的处理器为了不断追求处理器的高性能,不断提高工作时钟频率,增加逻辑复杂度,导致的功耗问题也越来越突出。因此为了在保证处理器性能不降低的前提下,使处理器拥有更低的更长的工作时间,本发明设计了一种低功耗处理器。
发明内容
本发明的目的在于提供一种低功耗的处理器,从不同的硬件层面对处理器的运行资源进行合理的调用,保证在不影响其性能的条件下,使得处理器的功耗可以得到有效降低。
一种低功耗的处理器,包括功耗管理模块、取指模块、译码模块、执行模块、访存模块、写回模块、流水线控制模块和数据模块。
功耗管理模块用于控制取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中各个SRAM的工作状态;取指模块用于读取指令PC值,并在PC中截取有效地址位,根据地址在指令存储器中取出指令;译码模块对指令进行译码,并在数据模块中取出指令的源操作数;执行模块用于分支跳转指令的跳转PC值和整形指令、乘除法指令结果的计算以及访存指令中访存地址的计算;访存模块根据执行模块计算出来的访存地址来对数据模块中寄存器进行读写;写回模块根据目的寄存器号将计算结果写回到数据模块的寄存器中;同时取指模块、译码模块、执行模块、访存模块、写回模块这五个模块依次相连以完整的运行每条指令;流水线控制模块分别与取指模块、译码模块、执行模块、访存模块、写回模块相连以完成5级流水线控制以及与数据模块相连以完成SRAM寄存器的选择;数据模块分别与执行模块、访存模块、写回模块相连以实现数据的传输。
取指模块、译码模块、执行模块、访存模块和写回模块采用5级流水线的模式进行布置,使处理器可以在一个时钟周期内同时处理多条指令。
所述的功耗管理模块包括总线时钟单元和总线电源单元;
所述的取指模块包括指令存储器和取指模块流水寄存器;
所述的译码模块包括拆分单元、整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元和译码模块流水寄存器;
所述的执行模块包括整型执行单元、乘法执行单元、除法执行单元、访存执行单元和执行模块流水寄存器;
所述的访存模块包括缓存单元、读写单元和访存模块流水寄存器。
所述的写回模块包括处理单元;
数据模块包括一读一写SRAM、单口SRAM、双口SRAM和数据通路寄存器;
取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元,并通过功耗管理模块中的总线时钟单元、总线电源单元控制。
处理器工作模式划分:
将处理器分为正常和低功耗两种模式,通过功耗管理模块控制处理器进入不同模式。在处理器为正常模式工作的情况下,功耗管理模块中的总线时钟单元和总线电源单元开启,同时各个功能模块开始工作,首先取指模块根据指令PC值读取在指令存储器中的指令,然后取指模块将指令发送至流水线控制模块并完成指令的检测,流水线控制模块通过5级流水线中的控制位表示该级流水线是否有有效指令,若为无有效指令则该级流水线控制位置0,流水线控制模块将指令PC值以及指令传入取指模块流水寄存器,然后流水线控制模块将控制译码模块、执行模块、访存模块、写回模块依次关闭;若为休眠指令则功耗管理模块将控制处理器进入低功耗模式;若为有效指令则该级流水线控制位置1,数据模块将通过该指令所需数据量来选择相应的SRAM里的数据进行传输,一般选取单口SRAM传输,当该指令所需数据量超过设定的最大阈值时,将选择双口SRAM数据进行传输,以便可以使数据可以快速的从存储器中读取出来,当该指令所需数据量低于设定的最小阈值时,将选择一读一写SRAM数据进行传输,以达到资源合理利用、降低功耗的目的。将指令所需数据从选用的SRAM中传入数据通路寄存器中等待调用,并将指令PC值以及指令传入取指模块流水寄存器中,这样可以减少数据通路部分的寄存器翻转率,减少处理器的动态功耗。
然后通过取指模块流水寄存器将PC值以及指令传输至译码模块,译码模块将指令写入拆分单元进行分离,获得操作码、源寄存器号以及目的寄存器号。然后将拆分出来的操作码通过四种类型的指令译码单元进行译码,判断当前运算指令类型。同时译码模块根据源寄存器号的值进入数据模块对数据通路寄存器进行数据读取,将源操作数从数据通路寄存器中取出,然后将指令PC值、运算指令类型、目的寄存器号以及源操作数传入译码模块流水寄存器中。所述的四种类型的指令译码单元包括整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元,
然后通过译码模块流水寄存器将指令PC值、运算指令类型、目的寄存器号以及源操作数传输至执行模块,执行模块根据运算指令类型在对应的指令执行单元进行相应的计算。若为分支跳转指令,则在整型执行单元中判断跳转条件是否成立,若跳转条件成立则计算分支跳转PC值并将分支跳转的使能信号、分支跳转PC值直接传输至取指模块;若为整型指令,则在整型执行单元中进行运算;若为乘、除法指令,则分别在乘法执行单元、除法执行单元中进行运算;若为访存指令,则在访存执行单元中进行访存地址的运算,并将访存的使能信号、访存数据以及访存地址信号不经过执行模块流水寄存器直接传输至访存模块,这样可以避免造成流水线拥堵。执行模块运算结束后将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至执行模块流水寄存器中。
然后通过执行模块流水寄存器将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至访存模块,若当前指令为整型、乘除法指令,则将指令PC值、运算指令类型、运算结果及目的寄存器号直接写入缓存单元。若当前指令为访存类指令中的写数据指令,则首先访存模块将访存数据的值传入读写单元进行字对齐后再将进行字对齐后的数据写入数据模块的数据通路寄存器中,随后根据访存的使能信号、访存地址信号的值将数据通路寄存器中的数据写入访存地址对应的SRAM存储器中。如果当前指令为读数据指令,则数据模块会根据访存地址在SRAM存储器中读出数据传至数据通路寄存器中,再将数据通路寄存器中的数据传入读写单元。最后访存模块将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传入访存模块流水寄存器中。
然后通过访存模块流水寄存器将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传输至写回模块,写回模块首先将数据写入处理单元,通过处理单元将数据中的读取数据、运算结果进行对齐,然后写回模块将将需要写回的数据写回到数据模块的数据通路寄存器中,再根据目的寄存器号将数据通路寄存器中的写回数据写入相应的SRAM寄存器中。
取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都配置了独立的时钟控制单元和独立的电源控制单元,所有独立的时钟控制单元和独立的电源控制单元均由功耗管理模块中的总线时钟单元和总线电源单元控制,当取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM出现闲置时,总线时钟单元立即控制对应的独立时钟控制单元关闭,等待5个时钟周期,若5个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,这样可以有效的降低处理器的功耗。
当处理器进入低功耗模式时,处理器将将直接选择调用2单口SRAM中的数据,并且由于处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元并通过功耗管理模块中的总线时钟单元、总线电源单元控制,一旦处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM处于闲置状态,总线时钟单元将控制对应的独立时钟控制单元关闭,等待时间将缩短为1个时钟周期,若1个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,以节省动态功耗。
本发明有益效果如下:
本发明提供一种低功耗处理器,包括取指模块、译码模块、执行模块、访存模块、写回模块、功耗管理模块、流水线控制模块以及数据模块,低功耗处理器的工作模式划分为正常模式和低功耗模式,在正常模式,通过所需调用的数据动态选择SRAM可以有效的避免传输数据的供应不足或者资源浪费,其中取指模块、译码模块、执行模块、访存模块、写回模块之间的5级流水线设计可以有效提高处理器的吞吐量,控制位的设置会提前对指令的有效性进行判定以防造成无用功耗浪费,另外一旦处理器执行到休眠指令或通过功耗管理单元进入低功耗模式,则会启动监管机制,若出现闲置的模块、单元会将其逐步关闭以节省功耗,在保持处理器性能的同时降低其功耗以应对不同的应用场景,解决了硬件资源浪费的问题。
附图说明
图1是本发明中的低功耗处理器的结构框图。
具体实施方式
下面根据本发明实施例中的附图对本发明实施例中的方法进行完整、清楚、细致的描述,使本发明的目的和效果变得更加具体明显。本发明设计了一种能耗低、性能功耗比高的处理器。
本发明主要从系统层面、处理器层面、单元层面、寄存器层面、SRAM层面、组合逻辑层面等几个方面进行设计。
系统层面的低功耗设计主要是将SoC系统划分为两种不同的电源域,即主域和常开域,其中分别放置不同的功能模块,使其能够实现在特定时刻支持将SoC中的大部分硬件关闭电源;然后将SoC系统对应上述不同电源域划分出不同的时钟域,使其能够支持小部分电路以低速低功耗的方式进行;接着需要配备功耗管理单元控制进入或者退出不同的功耗模式。
处理器层面的低功耗设计主要是在处理器的指令集中定义一种休眠指令,当处理器执行到该指令时,将会停止执行当前的指令流,进入一种空闲状态,直到处理器接收到中断,处理器才会被唤醒,也就是运行该指令后处理器便进入到休眠状态。然后需要将休眠状态分为浅度休眠和深度休眠两种状态,浅度休眠状态是将处理器核的整个时钟关闭,但是仍然会保留电源供电,因此就可以节省动态功耗,但是静态漏电功耗仍然会有消耗,深度休眠状态是将处理器核的时钟和电源全部关闭,这样就可以同时节省动态和静态功耗。当处理器进入深度休眠断电后,其内部上下文状态可以采用在处理器核内部使用单口SRAM进行保存和恢复,这种SRAM在主电源被关闭后可以使用极低的漏电消耗保存处理器的状态,它可以使处理器休眠和唤醒的速度极快。
模块和单元层面的低功耗设计需要将独立的时钟门控单独配备于每个功能完整的单元,当该模块或者单元空闲时,可以使用时钟门控将其时钟关闭以节省动态功耗,对于一些独立且规模较大的模块就可以划分出独立的电源域以进一步节省静态功耗。
寄存器层面的低功耗设计主要对数据通路寄存器进行设计。为了减少不必要的动态功耗,需要在每级流水线都配置一位控制位,用以表示该级流水线是否为有效指令,当指令加载至此级流水线时会将控制位设为高位,向数据通路寄存器加载数据信息,离开此级流水线时将此控制位清零,数据通路寄存器无须清零,这样保持寄存器中的值不变,减少数据通路寄存器的翻转率,从而大幅减少动态功耗。
SRAM层面的低功耗设计需要在对处理器进行低功耗设计中动态的选用合适的SRAM,且尽量去减少SRAM的读写。由于常规的SRAM通常分为单口SRAM、一读一写SRAM、双口SRAM,为了避免高功耗的出现,优先选择功耗与面积小的SRAM,还需要对SRAM的数据宽度进行综合权衡,以减少其对面积的影响,所以在选择中会优先选取单口SRAM使用,之后会根据该指令所需数据的大小进行动态选择。同时给SRAM配备独立的时钟门控,在空闲时关闭SRAM的时钟可以节省动态功耗,在处理器的低功耗模式下可以将SRAM的电源关闭以防止漏电。
组合逻辑层面的低功耗设计要尽量将大的数据通路或者运算单元进行复用,使各个功能子单元共享一份实际的运算数据通路,然后还需要避免使用除法、乘法等大面积的运算单元,需要将乘、除运算分解进行,尽量将其转化为加减法运算,通过使用尽量少的组合逻辑面积减少静态功耗。
如图1所示,一种低功耗的处理器,包括功耗管理模块、取指模块、译码模块、执行模块、访存模块、写回模块、流水线控制模块和数据模块。
功耗管理模块用于控制取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中各个SRAM的工作状态;取指模块用于读取指令PC值,并在PC中截取有效地址位,根据地址在指令存储器中取出指令;译码模块对指令进行译码,并在数据模块中取出指令的源操作数;执行模块用于分支跳转指令的跳转PC值和整形指令、乘除法指令结果的计算以及访存指令中访存地址的计算;访存模块根据执行模块计算出来的访存地址来对数据模块中寄存器进行读写;写回模块根据目的寄存器号将计算结果写回到数据模块的寄存器中;同时取指模块、译码模块、执行模块、访存模块、写回模块这五个模块依次相连以完整的运行每条指令;流水线控制模块分别与取指模块、译码模块、执行模块、访存模块、写回模块相连以完成5级流水线控制以及与数据模块相连以完成SRAM寄存器的选择;数据模块分别与执行模块、访存模块、写回模块相连以实现数据的传输。
取指模块、译码模块、执行模块、访存模块和写回模块采用5级流水线的模式进行布置,使处理器可以在一个时钟周期内同时处理多条指令,这样可以有效提高处理器的工作频率及吞吐量。
所述的功耗管理模块包括总线时钟单元和总线电源单元;
所述的取指模块包括指令存储器和取指模块流水寄存器;
所述的译码模块包括拆分单元、整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元和译码模块流水寄存器;
所述的执行模块包括整型执行单元、乘法执行单元、除法执行单元、访存执行单元和执行模块流水寄存器;
所述的访存模块包括缓存单元、读写单元和访存模块流水寄存器。
所述的写回模块包括处理单元;
数据模块包括一读一写SRAM、单口SRAM、双口SRAM和数据通路寄存器;
取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元,并通过功耗管理模块中的总线时钟单元、总线电源单元控制。
本发明将处理器分为正常和低功耗两种模式,通过功耗管理模块控制处理器进入不同模式。在处理器为正常模式工作的情况下,功耗管理模块中的总线时钟单元和总线电源单元开启,同时各个功能模块开始工作,首先取指模块根据指令PC值读取在指令存储器中的指令,然后取指模块将指令发送至流水线控制模块并完成指令的检测,流水线控制模块通过5级流水线中的控制位表示该级流水线是否有有效指令,若为无有效指令则该级流水线控制位置0,流水线控制模块将指令PC值以及指令传入取指模块流水寄存器,然后流水线控制模块将控制译码模块、执行模块、访存模块、写回模块依次关闭;若为休眠指令则功耗管理模块将控制处理器进入低功耗模式;若为有效指令则该级流水线控制位置1,数据模块将通过该指令所需数据量来选择相应的SRAM里的数据进行传输,一般选取单口SRAM传输,当该指令所需数据量超过设定的最大阈值时,将选择双口SRAM数据进行传输,以便可以使数据可以快速的从存储器中读取出来,当该指令所需数据量低于设定的最小阈值时,将选择一读一写SRAM数据进行传输,以达到资源合理利用、降低功耗的目的。将指令所需数据从选用的SRAM中传入数据通路寄存器中等待调用,并将指令PC值以及指令传入取指模块流水寄存器中,这样可以减少数据通路部分的寄存器翻转率,减少处理器的动态功耗。
然后通过取指模块流水寄存器将PC值以及指令传输至译码模块,译码模块将指令写入拆分单元进行分离,获得操作码、源寄存器号以及目的寄存器号。然后将拆分出来的操作码通过四种类型的指令译码单元进行译码,判断当前运算指令类型。同时译码模块根据源寄存器号的值进入数据模块对数据通路寄存器进行数据读取,将源操作数从数据通路寄存器中取出,然后将指令PC值、运算指令类型、目的寄存器号以及源操作数传入译码模块流水寄存器中。所述的四种类型的指令译码单元包括整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元,
然后通过译码模块流水寄存器将指令PC值、运算指令类型、目的寄存器号以及源操作数传输至执行模块,执行模块根据运算指令类型在对应的指令执行单元进行相应的计算。若为分支跳转指令,则在整型执行单元中判断跳转条件是否成立,若跳转条件成立则计算分支跳转PC值并将分支跳转的使能信号、分支跳转PC值直接传输至取指模块;若为整型指令,则在整型执行单元中进行运算;若为乘、除法指令,则分别在乘法执行单元、除法执行单元中进行运算;若为访存指令,则在访存执行单元中进行访存地址的运算,并将访存的使能信号、访存数据以及访存地址信号不经过执行模块流水寄存器直接传输至访存模块,这样可以避免造成流水线拥堵。执行模块运算结束后将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至执行模块流水寄存器中。
然后通过执行模块流水寄存器将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至访存模块,若当前指令为整型、乘除法指令,则将指令PC值、运算指令类型、运算结果及目的寄存器号直接写入缓存单元。若当前指令为访存类指令中的写数据指令,则首先访存模块将访存数据的值传入读写单元进行字对齐后再将进行字对齐后的数据写入数据模块的数据通路寄存器中,随后根据访存的使能信号、访存地址信号的值将数据通路寄存器中的数据写入访存地址对应的SRAM存储器中。如果当前指令为读数据指令,则数据模块会根据访存地址在SRAM存储器中读出数据传至数据通路寄存器中,再将数据通路寄存器中的数据传入读写单元。最后访存模块将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传入访存模块流水寄存器中。
然后通过访存模块流水寄存器将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传输至写回模块,写回模块首先将数据写入处理单元,通过处理单元将数据中的读取数据、运算结果进行对齐,然后写回模块将将需要写回的数据写回到数据模块的数据通路寄存器中,再根据目的寄存器号将数据通路寄存器中的写回数据写入相应的SRAM寄存器中。
取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都配置了独立的时钟控制单元和独立的电源控制单元,所有独立的时钟控制单元和独立的电源控制单元均由功耗管理模块中的总线时钟单元和总线电源单元控制,当取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM出现闲置时,总线时钟单元立即控制对应的独立时钟控制单元关闭,等待5个时钟周期,若5个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,这样可以有效的降低处理器的功耗。
当处理器进入低功耗模式时,处理器将将直接选择调用2单口SRAM中的数据,并且由于处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元并通过功耗管理模块中的总线时钟单元、总线电源单元控制,一旦处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM处于闲置状态,总线时钟单元将控制对应的独立时钟控制单元关闭,等待时间将缩短为1个时钟周期,若1个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,以节省动态功耗。
Claims (1)
1.一种低功耗的处理器,其特征在于,包括功耗管理模块、取指模块、译码模块、执行模块、访存模块、写回模块、流水线控制模块和数据模块;
功耗管理模块用于控制取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中各个SRAM的工作状态;取指模块用于读取指令PC值,并在PC中截取有效地址位,根据地址在指令存储器中取出指令;译码模块对指令进行译码,并在数据模块中取出指令的源操作数;执行模块用于分支跳转指令的跳转PC值和整形指令、乘除法指令结果的计算以及访存指令中访存地址的计算;访存模块根据执行模块计算出来的访存地址来对数据模块中寄存器进行读写;写回模块根据目的寄存器号将计算结果写回到数据模块的寄存器中;同时取指模块、译码模块、执行模块、访存模块、写回模块这五个模块依次相连以完整的运行每条指令;流水线控制模块分别与取指模块、译码模块、执行模块、访存模块、写回模块相连以完成5级流水线控制以及与数据模块相连以完成SRAM寄存器的选择;数据模块分别与执行模块、访存模块、写回模块相连以实现数据的传输;
取指模块、译码模块、执行模块、访存模块和写回模块采用5级流水线的模式进行布置,使处理器可以在一个时钟周期内同时处理多条指令;
所述的功耗管理模块包括总线时钟单元和总线电源单元;
所述的取指模块包括指令存储器和取指模块流水寄存器;
所述的译码模块包括拆分单元、整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元和译码模块流水寄存器;
所述的执行模块包括整型执行单元、乘法执行单元、除法执行单元、访存执行单元和执行模块流水寄存器;
所述的访存模块包括缓存单元、读写单元和访存模块流水寄存器;
所述的写回模块包括处理单元;
数据模块包括一读一写SRAM、单口SRAM、双口SRAM和数据通路寄存器;
取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元,并通过功耗管理模块中的总线时钟单元、总线电源单元控制;
处理器工作模式划分如下:
将处理器分为正常和低功耗两种模式,通过功耗管理模块控制处理器进入不同模式;在处理器为正常模式工作的情况下,功耗管理模块中的总线时钟单元和总线电源单元开启,同时各个功能模块开始工作,首先取指模块根据指令PC值读取在指令存储器中的指令,然后取指模块将指令发送至流水线控制模块并完成指令的检测,流水线控制模块通过5级流水线中的控制位表示该级流水线是否有有效指令,若为无有效指令则该级流水线控制位置0,流水线控制模块将指令PC值以及指令传入取指模块流水寄存器,然后流水线控制模块将控制译码模块、执行模块、访存模块、写回模块依次关闭;若为休眠指令则功耗管理模块将控制处理器进入低功耗模式;若为有效指令则该级流水线控制位置1,数据模块将通过该指令所需数据量来选择相应的SRAM里的数据进行传输,一般选取单口SRAM传输,当该指令所需数据量超过设定的最大阈值时,将选择双口SRAM数据进行传输,以便可以使数据可以快速的从存储器中读取出来,当该指令所需数据量低于设定的最小阈值时,将选择一读一写SRAM数据进行传输,以达到资源合理利用、降低功耗的目的;将指令所需数据从选用的SRAM中传入数据通路寄存器中等待调用,并将指令PC值以及指令传入取指模块流水寄存器中,这样可以减少数据通路部分的寄存器翻转率,减少处理器的动态功耗;
然后通过取指模块流水寄存器将PC值以及指令传输至译码模块,译码模块将指令写入拆分单元进行分离,获得操作码、源寄存器号以及目的寄存器号;然后将拆分出来的操作码通过四种类型的指令译码单元进行译码,判断当前运算指令类型;同时译码模块根据源寄存器号的值进入数据模块对数据通路寄存器进行数据读取,将源操作数从数据通路寄存器中取出,然后将指令PC值、运算指令类型、目的寄存器号以及源操作数传入译码模块流水寄存器中;所述的四种类型的指令译码单元包括整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元,
然后通过译码模块流水寄存器将指令PC值、运算指令类型、目的寄存器号以及源操作数传输至执行模块,执行模块根据运算指令类型在对应的指令执行单元进行相应的计算;若为分支跳转指令,则在整型执行单元中判断跳转条件是否成立,若跳转条件成立则计算分支跳转PC值并将分支跳转的使能信号、分支跳转PC值直接传输至取指模块;若为整型指令,则在整型执行单元中进行运算;若为乘、除法指令,则分别在乘法执行单元、除法执行单元中进行运算;若为访存指令,则在访存执行单元中进行访存地址的运算,并将访存的使能信号、访存数据以及访存地址信号不经过执行模块流水寄存器直接传输至访存模块,这样可以避免造成流水线拥堵;执行模块运算结束后将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至执行模块流水寄存器中;
然后通过执行模块流水寄存器将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至访存模块,若当前指令为整型、乘除法指令,则将指令PC值、运算指令类型、运算结果及目的寄存器号直接写入缓存单元;若当前指令为访存类指令中的写数据指令,则首先访存模块将访存数据的值传入读写单元进行字对齐后再将进行字对齐后的数据写入数据模块的数据通路寄存器中,随后根据访存的使能信号、访存地址信号的值将数据通路寄存器中的数据写入访存地址对应的SRAM存储器中;如果当前指令为读数据指令,则数据模块会根据访存地址在SRAM存储器中读出数据传至数据通路寄存器中,再将数据通路寄存器中的数据传入读写单元;最后访存模块将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传入访存模块流水寄存器中;
然后通过访存模块流水寄存器将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传输至写回模块,写回模块首先将数据写入处理单元,通过处理单元将数据中的读取数据、运算结果进行对齐,然后写回模块将需要写回的数据写回到数据模块的数据通路寄存器中,再根据目的寄存器号将数据通路寄存器中的写回数据写入相应的SRAM寄存器中;
取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都配置了独立的时钟控制单元和独立的电源控制单元,所有独立的时钟控制单元和独立的电源控制单元均由功耗管理模块中的总线时钟单元和总线电源单元控制,当取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM出现闲置时,总线时钟单元立即控制对应的独立时钟控制单元关闭,等待5个时钟周期,若5个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,这样可以有效的降低处理器的功耗;
当处理器进入低功耗模式时,处理器将直接选择调用2单口SRAM中的数据,并且由于处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元并通过功耗管理模块中的总线时钟单元、总线电源单元控制,一旦处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM处于闲置状态,总线时钟单元将控制对应的独立时钟控制单元关闭,等待时间将缩短为1个时钟周期,若1个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,以节省动态功耗。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300735.8A CN112486312B (zh) | 2020-11-19 | 2020-11-19 | 一种低功耗的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300735.8A CN112486312B (zh) | 2020-11-19 | 2020-11-19 | 一种低功耗的处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112486312A CN112486312A (zh) | 2021-03-12 |
CN112486312B true CN112486312B (zh) | 2022-10-18 |
Family
ID=74931808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011300735.8A Active CN112486312B (zh) | 2020-11-19 | 2020-11-19 | 一种低功耗的处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112486312B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113535508B (zh) * | 2021-06-05 | 2022-03-18 | 复旦大学 | 一种面向risc-v众核处理器的功耗监测电路 |
CN113407239B (zh) * | 2021-06-09 | 2023-06-13 | 中山大学 | 一种基于异步单轨的流水线处理器 |
CN114610578B (zh) * | 2022-03-17 | 2023-12-29 | 飞腾信息技术有限公司 | 一种资源状态管理方法、装置、电子设备及存储介质 |
CN116844606B (zh) * | 2022-03-23 | 2024-05-17 | 长鑫存储技术有限公司 | 一种信号采样电路以及半导体存储器 |
CN114637386A (zh) * | 2022-03-24 | 2022-06-17 | 南京英锐创电子科技有限公司 | 低功耗调试通路的处理方法、调试系统及电子设备 |
CN114675890B (zh) * | 2022-05-26 | 2022-09-23 | 飞腾信息技术有限公司 | 一种指令执行方法、装置、设备及存储介质 |
CN114879829B (zh) * | 2022-07-08 | 2023-04-11 | 摩尔线程智能科技(北京)有限责任公司 | 功耗管理方法、装置、电子设备、图形处理器及存储介质 |
CN115598406B (zh) * | 2022-11-15 | 2023-06-27 | 武汉凌久微电子有限公司 | 一种基于状态机的低功耗电压监测方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105336358B (zh) * | 2014-05-28 | 2019-01-22 | 中芯国际集成电路制造(上海)有限公司 | 一种sram存储单元、sram存储器及其控制方法 |
CN104991844B (zh) * | 2015-06-05 | 2017-04-05 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种基于半定制寄存器文件的处理器及其容错方法 |
US10761591B2 (en) * | 2017-04-01 | 2020-09-01 | Intel Corporation | Shutting down GPU components in response to unchanged scene detection |
CN109933372B (zh) * | 2019-02-26 | 2022-12-09 | 西安理工大学 | 一种多模式动态可切换架构低功耗处理器 |
-
2020
- 2020-11-19 CN CN202011300735.8A patent/CN112486312B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112486312A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112486312B (zh) | 一种低功耗的处理器 | |
US10664039B2 (en) | Power efficient processor architecture | |
US11467740B2 (en) | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices | |
Srivastava et al. | Predictive system shutdown and other architectural techniques for energy efficient programmable computation | |
CN100407102C (zh) | 基于软件的微处理器功率损耗控制 | |
JP4567972B2 (ja) | 処理集積回路の電力消費量を削減するための方法および装置 | |
US8954775B2 (en) | Power gating functional units of a processor | |
Wang et al. | Run-time power-gating in caches of GPUs for leakage energy savings | |
KR20120117020A (ko) | 동적 전력 관리를 위한 도메인 특정 언어, 컴파일러 및 jit | |
US10963036B2 (en) | Idle loop detection and control for processors | |
US7685439B2 (en) | Method for effecting the controlled shutdown of data processing units | |
CN112988238A (zh) | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 | |
US7114089B2 (en) | System for controlling operation of a processor based on information contained within instruction word | |
Ishikawa et al. | A 4500 MIPS/W, 86 µA resume-standby, 11 µA ultra-standby application processor for 3G cellular phones | |
CN114787777A (zh) | 异构处理器之间的任务转移方法 | |
CN106020424A (zh) | 有功率效率的处理器体系结构 | |
CN118035169A (zh) | 一种用于cnn运算的存算一体系统架构 | |
GB2537300A (en) | Power efficient processor architecture | |
KR100416858B1 (ko) | 명령어 처리장치 | |
Khan et al. | An Efficient DRAM with Reduced Energy Consumption in Video Driver | |
KR20050023261A (ko) | 데이터 처리 유닛들의 제어된 셧다운을 위한 방법 |
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 |