首页 > 专利 > 杭州电子科技大学 > 一种低功耗的处理器专利详情

一种低功耗的处理器   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2020-11-19
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2021-03-30
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2022-10-18
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2040-11-19
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN202011300735.8 申请日 2020-11-19
公开/公告号 CN112486312B 公开/公告日 2022-10-18
授权日 2022-10-18 预估到期日 2040-11-19
申请年 2020年 公开/公告年 2022年
缴费截止日
分类号 G06F1/3287G06F1/3234G06F1/3206G06F3/06 主分类号 G06F1/3287
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 0
权利要求数量 1 非专利引证数量 0
引用专利数量 0 被引证专利数量 0
非专利引证
引用专利 被引证专利
专利权维持 2 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 杭州电子科技大学 当前专利权人 杭州电子科技大学
发明人 颜成钢、高振、刘炳涛、李扬、刘娜、孙垚棋、张继勇、张勇东 第一发明人 颜成钢
地址 浙江省杭州市下沙高教园区2号大街 邮编 310018
申请人数量 1 发明人数量 8
申请人所在省 浙江省 申请人所在市 浙江省杭州市
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州君度专利代理事务所 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
朱月芬
摘要
本发明公开了一种低功耗的处理器,包括取指模块、译码模块、执行模块、访存模块、写回模块、功耗管理模块、流水线控制模块以及数据模块,其工作模式划分为正常模式和低功耗模式,在正常模式,通过所需调用的数据动态选择SRAM可以有效的避免传输数据的供应不足或者资源浪费,其中取指模块、译码模块、执行模块、访存模块、写回模块之间的5级流水线设计可以有效提高处理器的吞吐量,控制位的设置会提前对指令的有效性进行判定以防造成无用功耗浪费,当处理器进入低功耗模式,则会启动监管机制,若出现闲置的模块、单元会将其逐步关闭以节省功耗,在保持处理器性能的同时降低其功耗以应对不同的应用场景,解决了硬件资源浪费的问题。
  • 摘要附图
    一种低功耗的处理器
  • 说明书附图:图1
    一种低功耗的处理器
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2022-10-18 授权
2 2021-03-30 实质审查的生效 IPC(主分类): G06F 1/3287 专利申请号: 202011300735.8 申请日: 2020.11.19
3 2021-03-12 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
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仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,以节省动态功耗。
说明书

技术领域

[0001] 本发明涉及人工智能领域,尤其是涉及一种低功耗的处理器。

背景技术

[0002] 随着人工神经网络研究的发展以及在人工智能领域的广泛应用,人工神经网络相比于传统人工智能算法显现出独特的优势。这使得处理器不断的发展进步,其性能不断的提升。现代处理器的功耗、局部功率密度也在不断提高,会对封装、冷却问题和可靠性带来不利的影响。而且随着温度的升高,会引起故障率呈现指数增长、速度变慢、漏电增加等问题。
[0003] 同时近年来嵌入式设备随着各种智能控制系统、智能玩具、工业控制、掌上设备等需求而不断扩大和流行,嵌入式设备其目标是在满足用户对性能需求的前提下,尽可能的降低能耗,以延长设备的待机时间。因此,其面临着小体积、高性能和有限电池能量之间的矛盾,而低功耗处理器的设计是解决这些问题的有效方法。
[0004] 要获得一种能耗低、性能功耗比高的处理器是一个多层面问题,想要有效的降低功耗,不仅仅需要考虑软件的设计,改进系统、硬件的设计方法也是有必要的。运行于处理器之上的软件程序,其灵活性很高,发掘低功耗的效果要比硬件低功耗本身的效果更加显著。因此为了使处理器消耗尽可能少的功耗,软件设计应该尽可能合理的调用处理器的硬件资源,例如编译优化、电源管理、应用软件的编写、在不同场景下调用不同能耗的硬件以及在处理器空闲时刻使处理器进入低功耗休眠模式等等。
[0005] 硬件是系统运行的物质平台,因此在此基础上对处理器进行不同层面的低功耗设计也是非常有必要的,只有在软硬件上进行合理的设计并且互相配合,才能做到在不影响处理器性能的情况下,使其功耗降低,减少其对能量的消耗。
[0006] 传统的处理器为了不断追求处理器的高性能,不断提高工作时钟频率,增加逻辑复杂度,导致的功耗问题也越来越突出。因此为了在保证处理器性能不降低的前提下,使处理器拥有更低的更长的工作时间,本发明设计了一种低功耗处理器。

发明内容

[0007] 本发明的目的在于提供一种低功耗的处理器,从不同的硬件层面对处理器的运行资源进行合理的调用,保证在不影响其性能的条件下,使得处理器的功耗可以得到有效降低。
[0008] 一种低功耗的处理器,包括功耗管理模块、取指模块、译码模块、执行模块、访存模块、写回模块、流水线控制模块和数据模块。
[0009] 功耗管理模块用于控制取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中各个SRAM的工作状态;取指模块用于读取指令PC值,并在PC中截取有效地址位,根据地址在指令存储器中取出指令;译码模块对指令进行译码,并在数据模块中取出指令的源操作数;执行模块用于分支跳转指令的跳转PC值和整形指令、乘除法指令结果的计算以及访存指令中访存地址的计算;访存模块根据执行模块计算出来的访存地址来对数据模块中寄存器进行读写;写回模块根据目的寄存器号将计算结果写回到数据模块的寄存器中;同时取指模块、译码模块、执行模块、访存模块、写回模块这五个模块依次相连以完整的运行每条指令;流水线控制模块分别与取指模块、译码模块、执行模块、访存模块、写回模块相连以完成5级流水线控制以及与数据模块相连以完成SRAM寄存器的选择;数据模块分别与执行模块、访存模块、写回模块相连以实现数据的传输。
[0010] 取指模块、译码模块、执行模块、访存模块和写回模块采用5级流水线的模式进行布置,使处理器可以在一个时钟周期内同时处理多条指令。
[0011] 所述的功耗管理模块包括总线时钟单元和总线电源单元;
[0012] 所述的取指模块包括指令存储器和取指模块流水寄存器;
[0013] 所述的译码模块包括拆分单元、整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元和译码模块流水寄存器;
[0014] 所述的执行模块包括整型执行单元、乘法执行单元、除法执行单元、访存执行单元和执行模块流水寄存器;
[0015] 所述的访存模块包括缓存单元、读写单元和访存模块流水寄存器。
[0016] 所述的写回模块包括处理单元;
[0017] 数据模块包括一读一写SRAM、单口SRAM、双口SRAM和数据通路寄存器;
[0018] 取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元,并通过功耗管理模块中的总线时钟单元、总线电源单元控制。
[0019] 处理器工作模式划分:
[0020] 将处理器分为正常和低功耗两种模式,通过功耗管理模块控制处理器进入不同模式。在处理器为正常模式工作的情况下,功耗管理模块中的总线时钟单元和总线电源单元开启,同时各个功能模块开始工作,首先取指模块根据指令PC值读取在指令存储器中的指令,然后取指模块将指令发送至流水线控制模块并完成指令的检测,流水线控制模块通过5级流水线中的控制位表示该级流水线是否有有效指令,若为无有效指令则该级流水线控制位置0,流水线控制模块将指令PC值以及指令传入取指模块流水寄存器,然后流水线控制模块将控制译码模块、执行模块、访存模块、写回模块依次关闭;若为休眠指令则功耗管理模块将控制处理器进入低功耗模式;若为有效指令则该级流水线控制位置1,数据模块将通过该指令所需数据量来选择相应的SRAM里的数据进行传输,一般选取单口SRAM传输,当该指令所需数据量超过设定的最大阈值时,将选择双口SRAM数据进行传输,以便可以使数据可以快速的从存储器中读取出来,当该指令所需数据量低于设定的最小阈值时,将选择一读一写SRAM数据进行传输,以达到资源合理利用、降低功耗的目的。将指令所需数据从选用的SRAM中传入数据通路寄存器中等待调用,并将指令PC值以及指令传入取指模块流水寄存器中,这样可以减少数据通路部分的寄存器翻转率,减少处理器的动态功耗。
[0021] 然后通过取指模块流水寄存器将PC值以及指令传输至译码模块,译码模块将指令写入拆分单元进行分离,获得操作码、源寄存器号以及目的寄存器号。然后将拆分出来的操作码通过四种类型的指令译码单元进行译码,判断当前运算指令类型。同时译码模块根据源寄存器号的值进入数据模块对数据通路寄存器进行数据读取,将源操作数从数据通路寄存器中取出,然后将指令PC值、运算指令类型、目的寄存器号以及源操作数传入译码模块流水寄存器中。所述的四种类型的指令译码单元包括整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元,
[0022] 然后通过译码模块流水寄存器将指令PC值、运算指令类型、目的寄存器号以及源操作数传输至执行模块,执行模块根据运算指令类型在对应的指令执行单元进行相应的计算。若为分支跳转指令,则在整型执行单元中判断跳转条件是否成立,若跳转条件成立则计算分支跳转PC值并将分支跳转的使能信号、分支跳转PC值直接传输至取指模块;若为整型指令,则在整型执行单元中进行运算;若为乘、除法指令,则分别在乘法执行单元、除法执行单元中进行运算;若为访存指令,则在访存执行单元中进行访存地址的运算,并将访存的使能信号、访存数据以及访存地址信号不经过执行模块流水寄存器直接传输至访存模块,这样可以避免造成流水线拥堵。执行模块运算结束后将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至执行模块流水寄存器中。
[0023] 然后通过执行模块流水寄存器将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至访存模块,若当前指令为整型、乘除法指令,则将指令PC值、运算指令类型、运算结果及目的寄存器号直接写入缓存单元。若当前指令为访存类指令中的写数据指令,则首先访存模块将访存数据的值传入读写单元进行字对齐后再将进行字对齐后的数据写入数据模块的数据通路寄存器中,随后根据访存的使能信号、访存地址信号的值将数据通路寄存器中的数据写入访存地址对应的SRAM存储器中。如果当前指令为读数据指令,则数据模块会根据访存地址在SRAM存储器中读出数据传至数据通路寄存器中,再将数据通路寄存器中的数据传入读写单元。最后访存模块将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传入访存模块流水寄存器中。
[0024] 然后通过访存模块流水寄存器将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传输至写回模块,写回模块首先将数据写入处理单元,通过处理单元将数据中的读取数据、运算结果进行对齐,然后写回模块将将需要写回的数据写回到数据模块的数据通路寄存器中,再根据目的寄存器号将数据通路寄存器中的写回数据写入相应的SRAM寄存器中。
[0025] 取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都配置了独立的时钟控制单元和独立的电源控制单元,所有独立的时钟控制单元和独立的电源控制单元均由功耗管理模块中的总线时钟单元和总线电源单元控制,当取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM出现闲置时,总线时钟单元立即控制对应的独立时钟控制单元关闭,等待5个时钟周期,若5个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,这样可以有效的降低处理器的功耗。
[0026] 当处理器进入低功耗模式时,处理器将将直接选择调用2单口SRAM中的数据,并且由于处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元并通过功耗管理模块中的总线时钟单元、总线电源单元控制,一旦处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM处于闲置状态,总线时钟单元将控制对应的独立时钟控制单元关闭,等待时间将缩短为1个时钟周期,若1个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,以节省动态功耗。
[0027] 本发明有益效果如下:
[0028] 本发明提供一种低功耗处理器,包括取指模块、译码模块、执行模块、访存模块、写回模块、功耗管理模块、流水线控制模块以及数据模块,低功耗处理器的工作模式划分为正常模式和低功耗模式,在正常模式,通过所需调用的数据动态选择SRAM可以有效的避免传输数据的供应不足或者资源浪费,其中取指模块、译码模块、执行模块、访存模块、写回模块之间的5级流水线设计可以有效提高处理器的吞吐量,控制位的设置会提前对指令的有效性进行判定以防造成无用功耗浪费,另外一旦处理器执行到休眠指令或通过功耗管理单元进入低功耗模式,则会启动监管机制,若出现闲置的模块、单元会将其逐步关闭以节省功耗,在保持处理器性能的同时降低其功耗以应对不同的应用场景,解决了硬件资源浪费的问题。

实施方案

[0030] 下面根据本发明实施例中的附图对本发明实施例中的方法进行完整、清楚、细致的描述,使本发明的目的和效果变得更加具体明显。本发明设计了一种能耗低、性能功耗比高的处理器。
[0031] 本发明主要从系统层面、处理器层面、单元层面、寄存器层面、SRAM层面、组合逻辑层面等几个方面进行设计。
[0032] 系统层面的低功耗设计主要是将SoC系统划分为两种不同的电源域,即主域和常开域,其中分别放置不同的功能模块,使其能够实现在特定时刻支持将SoC中的大部分硬件关闭电源;然后将SoC系统对应上述不同电源域划分出不同的时钟域,使其能够支持小部分电路以低速低功耗的方式进行;接着需要配备功耗管理单元控制进入或者退出不同的功耗模式。
[0033] 处理器层面的低功耗设计主要是在处理器的指令集中定义一种休眠指令,当处理器执行到该指令时,将会停止执行当前的指令流,进入一种空闲状态,直到处理器接收到中断,处理器才会被唤醒,也就是运行该指令后处理器便进入到休眠状态。然后需要将休眠状态分为浅度休眠和深度休眠两种状态,浅度休眠状态是将处理器核的整个时钟关闭,但是仍然会保留电源供电,因此就可以节省动态功耗,但是静态漏电功耗仍然会有消耗,深度休眠状态是将处理器核的时钟和电源全部关闭,这样就可以同时节省动态和静态功耗。当处理器进入深度休眠断电后,其内部上下文状态可以采用在处理器核内部使用单口SRAM进行保存和恢复,这种SRAM在主电源被关闭后可以使用极低的漏电消耗保存处理器的状态,它可以使处理器休眠和唤醒的速度极快。
[0034] 模块和单元层面的低功耗设计需要将独立的时钟门控单独配备于每个功能完整的单元,当该模块或者单元空闲时,可以使用时钟门控将其时钟关闭以节省动态功耗,对于一些独立且规模较大的模块就可以划分出独立的电源域以进一步节省静态功耗。
[0035] 寄存器层面的低功耗设计主要对数据通路寄存器进行设计。为了减少不必要的动态功耗,需要在每级流水线都配置一位控制位,用以表示该级流水线是否为有效指令,当指令加载至此级流水线时会将控制位设为高位,向数据通路寄存器加载数据信息,离开此级流水线时将此控制位清零,数据通路寄存器无须清零,这样保持寄存器中的值不变,减少数据通路寄存器的翻转率,从而大幅减少动态功耗。
[0036] SRAM层面的低功耗设计需要在对处理器进行低功耗设计中动态的选用合适的SRAM,且尽量去减少SRAM的读写。由于常规的SRAM通常分为单口SRAM、一读一写SRAM、双口SRAM,为了避免高功耗的出现,优先选择功耗与面积小的SRAM,还需要对SRAM的数据宽度进行综合权衡,以减少其对面积的影响,所以在选择中会优先选取单口SRAM使用,之后会根据该指令所需数据的大小进行动态选择。同时给SRAM配备独立的时钟门控,在空闲时关闭SRAM的时钟可以节省动态功耗,在处理器的低功耗模式下可以将SRAM的电源关闭以防止漏电。
[0037] 组合逻辑层面的低功耗设计要尽量将大的数据通路或者运算单元进行复用,使各个功能子单元共享一份实际的运算数据通路,然后还需要避免使用除法、乘法等大面积的运算单元,需要将乘、除运算分解进行,尽量将其转化为加减法运算,通过使用尽量少的组合逻辑面积减少静态功耗。
[0038] 如图1所示,一种低功耗的处理器,包括功耗管理模块、取指模块、译码模块、执行模块、访存模块、写回模块、流水线控制模块和数据模块。
[0039] 功耗管理模块用于控制取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中各个SRAM的工作状态;取指模块用于读取指令PC值,并在PC中截取有效地址位,根据地址在指令存储器中取出指令;译码模块对指令进行译码,并在数据模块中取出指令的源操作数;执行模块用于分支跳转指令的跳转PC值和整形指令、乘除法指令结果的计算以及访存指令中访存地址的计算;访存模块根据执行模块计算出来的访存地址来对数据模块中寄存器进行读写;写回模块根据目的寄存器号将计算结果写回到数据模块的寄存器中;同时取指模块、译码模块、执行模块、访存模块、写回模块这五个模块依次相连以完整的运行每条指令;流水线控制模块分别与取指模块、译码模块、执行模块、访存模块、写回模块相连以完成5级流水线控制以及与数据模块相连以完成SRAM寄存器的选择;数据模块分别与执行模块、访存模块、写回模块相连以实现数据的传输。
[0040] 取指模块、译码模块、执行模块、访存模块和写回模块采用5级流水线的模式进行布置,使处理器可以在一个时钟周期内同时处理多条指令,这样可以有效提高处理器的工作频率及吞吐量。
[0041] 所述的功耗管理模块包括总线时钟单元和总线电源单元;
[0042] 所述的取指模块包括指令存储器和取指模块流水寄存器;
[0043] 所述的译码模块包括拆分单元、整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元和译码模块流水寄存器;
[0044] 所述的执行模块包括整型执行单元、乘法执行单元、除法执行单元、访存执行单元和执行模块流水寄存器;
[0045] 所述的访存模块包括缓存单元、读写单元和访存模块流水寄存器。
[0046] 所述的写回模块包括处理单元;
[0047] 数据模块包括一读一写SRAM、单口SRAM、双口SRAM和数据通路寄存器;
[0048] 取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元,并通过功耗管理模块中的总线时钟单元、总线电源单元控制。
[0049] 本发明将处理器分为正常和低功耗两种模式,通过功耗管理模块控制处理器进入不同模式。在处理器为正常模式工作的情况下,功耗管理模块中的总线时钟单元和总线电源单元开启,同时各个功能模块开始工作,首先取指模块根据指令PC值读取在指令存储器中的指令,然后取指模块将指令发送至流水线控制模块并完成指令的检测,流水线控制模块通过5级流水线中的控制位表示该级流水线是否有有效指令,若为无有效指令则该级流水线控制位置0,流水线控制模块将指令PC值以及指令传入取指模块流水寄存器,然后流水线控制模块将控制译码模块、执行模块、访存模块、写回模块依次关闭;若为休眠指令则功耗管理模块将控制处理器进入低功耗模式;若为有效指令则该级流水线控制位置1,数据模块将通过该指令所需数据量来选择相应的SRAM里的数据进行传输,一般选取单口SRAM传输,当该指令所需数据量超过设定的最大阈值时,将选择双口SRAM数据进行传输,以便可以使数据可以快速的从存储器中读取出来,当该指令所需数据量低于设定的最小阈值时,将选择一读一写SRAM数据进行传输,以达到资源合理利用、降低功耗的目的。将指令所需数据从选用的SRAM中传入数据通路寄存器中等待调用,并将指令PC值以及指令传入取指模块流水寄存器中,这样可以减少数据通路部分的寄存器翻转率,减少处理器的动态功耗。
[0050] 然后通过取指模块流水寄存器将PC值以及指令传输至译码模块,译码模块将指令写入拆分单元进行分离,获得操作码、源寄存器号以及目的寄存器号。然后将拆分出来的操作码通过四种类型的指令译码单元进行译码,判断当前运算指令类型。同时译码模块根据源寄存器号的值进入数据模块对数据通路寄存器进行数据读取,将源操作数从数据通路寄存器中取出,然后将指令PC值、运算指令类型、目的寄存器号以及源操作数传入译码模块流水寄存器中。所述的四种类型的指令译码单元包括整形译码单元、分支跳转译码单元、访存译码单元、乘除译码单元,
[0051] 然后通过译码模块流水寄存器将指令PC值、运算指令类型、目的寄存器号以及源操作数传输至执行模块,执行模块根据运算指令类型在对应的指令执行单元进行相应的计算。若为分支跳转指令,则在整型执行单元中判断跳转条件是否成立,若跳转条件成立则计算分支跳转PC值并将分支跳转的使能信号、分支跳转PC值直接传输至取指模块;若为整型指令,则在整型执行单元中进行运算;若为乘、除法指令,则分别在乘法执行单元、除法执行单元中进行运算;若为访存指令,则在访存执行单元中进行访存地址的运算,并将访存的使能信号、访存数据以及访存地址信号不经过执行模块流水寄存器直接传输至访存模块,这样可以避免造成流水线拥堵。执行模块运算结束后将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至执行模块流水寄存器中。
[0052] 然后通过执行模块流水寄存器将指令PC值、运算指令类型、运算结果或访存数据、访存地址、目的寄存器号传输至访存模块,若当前指令为整型、乘除法指令,则将指令PC值、运算指令类型、运算结果及目的寄存器号直接写入缓存单元。若当前指令为访存类指令中的写数据指令,则首先访存模块将访存数据的值传入读写单元进行字对齐后再将进行字对齐后的数据写入数据模块的数据通路寄存器中,随后根据访存的使能信号、访存地址信号的值将数据通路寄存器中的数据写入访存地址对应的SRAM存储器中。如果当前指令为读数据指令,则数据模块会根据访存地址在SRAM存储器中读出数据传至数据通路寄存器中,再将数据通路寄存器中的数据传入读写单元。最后访存模块将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传入访存模块流水寄存器中。
[0053] 然后通过访存模块流水寄存器将读写单元中的读取数据、缓存单元中的指令PC值、运算指令类型、运算结果和目的寄存器号传输至写回模块,写回模块首先将数据写入处理单元,通过处理单元将数据中的读取数据、运算结果进行对齐,然后写回模块将将需要写回的数据写回到数据模块的数据通路寄存器中,再根据目的寄存器号将数据通路寄存器中的写回数据写入相应的SRAM寄存器中。
[0054] 取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都配置了独立的时钟控制单元和独立的电源控制单元,所有独立的时钟控制单元和独立的电源控制单元均由功耗管理模块中的总线时钟单元和总线电源单元控制,当取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM出现闲置时,总线时钟单元立即控制对应的独立时钟控制单元关闭,等待5个时钟周期,若5个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,这样可以有效的降低处理器的功耗。
[0055] 当处理器进入低功耗模式时,处理器将将直接选择调用2单口SRAM中的数据,并且由于处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM都有独立的时钟控制单元和电源控制单元并通过功耗管理模块中的总线时钟单元、总线电源单元控制,一旦处理器中的取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM处于闲置状态,总线时钟单元将控制对应的独立时钟控制单元关闭,等待时间将缩短为1个时钟周期,若1个时钟周期后取指模块、译码模块、执行模块、访存模块、写回模块以及数据模块中的一读一写SRAM、单口SRAM、双口SRAM仍然为闲置状态将通过总线电源单元控制对应的独立电源控制单元关闭,以节省动态功耗。

附图说明

[0029] 图1是本发明中的低功耗处理器的结构框图。
专利联系人(活跃度排行)
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号