CN104699463A - 一种低功耗流水线的实现方法 - Google Patents

一种低功耗流水线的实现方法 Download PDF

Info

Publication number
CN104699463A
CN104699463A CN201510123301.8A CN201510123301A CN104699463A CN 104699463 A CN104699463 A CN 104699463A CN 201510123301 A CN201510123301 A CN 201510123301A CN 104699463 A CN104699463 A CN 104699463A
Authority
CN
China
Prior art keywords
data
register
streamline
pointer
production line
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
Application number
CN201510123301.8A
Other languages
English (en)
Other versions
CN104699463B (zh
Inventor
赵元
童元满
李仁刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Intelligent Technology Wuhan Co Ltd
Original Assignee
Inspur Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Group Co Ltd filed Critical Inspur Group Co Ltd
Priority to CN201510123301.8A priority Critical patent/CN104699463B/zh
Publication of CN104699463A publication Critical patent/CN104699463A/zh
Application granted granted Critical
Publication of CN104699463B publication Critical patent/CN104699463B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Power Sources (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

本发明公开一种低功耗流水线的实现方法,属于芯片流水线设计领域;具体步骤为①建立新型流水线,流水线内设寄存器数据指针,流水线外设寄存器堆栈;②每级流水线内构建流水线主控单元;③寄存器堆栈设数据指针管理单元,数据进入到流水线中,占用一组寄存器,最后一级流水线输出后,对应在寄存器堆栈相应寄存器数据指针中的数据失效,提供给新进入流水线的数据使用;每级流水线只更新本级流水线修改的数据到寄存器堆栈中;每级流水线主控单元根据本级处理决定输出到下级流水线主控单元的数据,将其寄存器数据指针送至寄存器堆栈和下一级主控单元;本发明降低寄存器的反转率,对于动态功耗的降低有显著的帮助。

Description

一种低功耗流水线的实现方法
技术领域
本发明公开一种低功耗流水线的实现方法,属于芯片设计领域。
背景技术
本发明涉及芯片设计领域,具体涉及一种多节点网络之中网络控制协议芯片的电路实现过程中数据通路的流水线调度处理的新型实现方法。
随着服务器应用领域的不断发展,高端服务器的应用需求已经进入了一个重要阶段。复杂的体系结构实现支持高端服务器系统实现高性能指标即高安全性、高可用性、高可靠性等特点。其中网络控制类芯片控制多路处理器系统,使系统内部报文传输达到高效可靠、安全稳定的目的。对于该类的控制芯片的设计来说,多路高速报文的流水线高效调度是非常有必要的。利用流水线的高效调度,一般情况下需要每一级都进行寄存器锁存传输,然后根据每级流水线设定的处理对数据进行更新,并传输至下一级寄存器。对于大规模高速协议处理器而言,单位时间处理的数据量相当庞大,且没有必然的相关性,采用常规方法导致寄存器的反转率非常高,而对于芯片电路的供电与压降变化是有很高的设计要求与设计难度的,传统的流水线结构处理方式已不能满足要求,并且传统流水线结构的功耗与驱动也难达要求,导致电路后端设计具有极大的风险。不利于电路的设计者设计电路。
鉴于此,本发明提供一种低功耗流水线的实现方法,有助于在保持寄存器与逻辑电路规模不变的情况下,降低寄存器的反转率,在电路持续长时间有效工作的时候,对于动态功耗的降低有显著的帮助。采用新型的流水线电路结构,构建了唯一不变的寄存器堆栈,只有部分数据在流水线处理过程中进行更新,有助于在保持寄存器与逻辑电路规模不变的情况下,降低寄存器的反转率,在电路持续长时间有效工作的时候,对于动态功耗的降低有显著的帮助,优化了电路设计的资源,简化了电路结构,减轻了芯片后端设计的复杂度,从整体上降低整个芯片系统设计复杂度。
发明内容
本发明针对流水线的高效调度,对于大规模高速协议处理器而言,数据量庞大,采用常规方法导致寄存器的反转率非常高,增加设计要求与设计难度,并且传统的流水线结构处理方式不能满足现有要求,导致电路后端设计具有极大的风险,不利于电路的设计者设计电路等不足和缺陷,提供一种低功耗流水线的实现方法,有助于在保持寄存器与逻辑电路规模不变的情况下,降低寄存器的反转率,在电路持续长时间有效工作的时候,对于动态功耗的降低有显著的帮助。
本发明提出的具体方案是:
一种低功耗流水线的实现方法,具体步骤如下:
①建立新型流水线,从流水线输入端建立流水线第1级直至流水线第n级的流水线输出端,逐级流水线电路相连,且跨级流水线电路也互相连通,每级流水线内设寄存器数据指针,流水线外设寄存器堆栈,寄存器堆按照流水线级数内的寄存器数据指针进行分组,根据流水线级数多少,对应设有多少组寄存器在寄存器堆栈中;
②每级流水线内构建流水线主控单元,使用流水线主控单元读取本级流水线需要处理的数据,以及将本级寄存器修改的数据内容输出到寄存器堆栈,并给出寄存器堆栈需要写入的寄存器数据指针,以及给出下一级流水线主控单元和寄存器堆栈需要读出的寄存器数据指针;
③寄存器堆栈设数据指针管理单元,将每个寄存器组的数据与每级流水线的数据以及读写指针进行动态桥接管理,每一组数据进入到流水线中,需要在寄存器堆栈中占用一组寄存器,最后一级流水线输出后,对应在寄存器堆栈相应寄存器数据指针中的数据失效,此指针与对应的寄存器组提供给新进入流水线的数据使用;每一级流水线只更新本级流水线修改的数据到寄存器堆栈中;每一级流水线主控单元根据本级处理决定输出到下级流水线主控单元的数据,将其寄存器数据指针同时送至寄存器堆栈和下一级主控单元。
将各级流水线主控单元的写入数据线与对应写入寄存器数据指针所指定寄存器组的输入数据接口相连接,各级流水线的读出数据线与对应读出寄存器数据指针所指定的寄存器组的输出数据接口相连接。
所述的数据从进入到流水线,到从最后一级流水线输出的过程为:数据进入流水线第1级时,寄存器堆栈的数据指针管理模块分配了一个固定指针用于存储数据,在流水线1处理完成后,将更新的数据写入分配的固定指针中,同时将指针锁存给第2级流水线使用;第2级流水线根据从第一级流水线锁存的指针数值,选取寄存器堆栈中对应指针的寄存器组数据作为输入数据,进行数据处理后,同样是将数据写入此指针指定的寄存器堆栈组中去;以后每一级流水线更新数据都是写入寄存器堆栈的同一组数据中去,直到最后一级流水线处理完成后直接输出最终处理结果。
一种低功耗流水线系统,应用于一种低功耗流水线的实现方法,包括流水线输入、输出端,各级流水线,流水线电路,寄存器堆栈;各级流水线通过流水线电路逐级以及跨级连接,并连接到寄存器堆栈;
各级流水线内分别设有流水线主控器和寄存器数据指针,流水线主控器负责读取本级流水线需要处理的数据,以及将本级寄存器修改的数据内容输出到寄存器堆栈,并给出寄存器堆栈需要写入的寄存器数据指针,以及给出下一级流水线主控单元和寄存器堆栈需要读出的寄存器数据指针;
寄存器堆栈内设数据指针管理器,根据流水线级数多少,对应设有多少组寄存器在寄存器堆栈中;数据指针管理器负责将每个寄存器组的数据与每级流水线的数据以及读写指针进行动态桥接管理。                                                                                                                                                                                                                                                                
所述的各级流水线主控器的写入数据线与对应写入寄存器数据指针所指定寄存器组的输入数据接口相连接,各级流水线的读出数据线与对应读出寄存器数据指针所指定的寄存器组的输出数据接口相连接。
本发明的有益之处是:本发明改进流水线结构在不增加电路规模的前提下,采用构建的寄存器堆栈方式,不仅在电路持续长时间有效工作的时候,降低数据通路导致的寄存器反转产生的大量动态功耗,并且根据构建的指针向量可以准确定位每一级流水线处理所需要输入输出更新的数据内容,只对有数据更新的寄存器进行可能存在的数据反转操作,优化了电路设计的资源,简化了电路结构,减轻了芯片后端设计的复杂度,从整体上降低整个芯片系统设计复杂度。 
附图说明
图1传统流水线工作运行时数据传递与处理示意图;
图2本发明流水线数据工作运行时数据的传递与处理示意图;
图3本发明多级不同数据同时在流水线中处理时寄存器堆栈数据管理的示意图。
具体实施方式
下面参照附图,对本发明的内容的实施方式进行一个简单的说明。
参看图1,这是传统的流水线工作模式,数据进入流水线处理后,从流水线1到流水线n每一级都有一定的逻辑算法处理操作,此操作都是在一个时钟时间内完成,然后将处理结果数据锁存进入寄存器中,在下一个时钟输出给流水线的下一级处理。由于每一级处理的数据在每一个时钟都是几乎完全独立的,因此锁存入每一级寄存器的数据几乎都是要全部被更新的,寄存器几乎需要完全翻转。对于每一级的流水线处理都是如此,因此所有的流水线中的寄存器在每一个时钟都几乎全部要进行反转,动态功耗基本上是所有寄存器动态功耗标称值的总和。
与之相对,参看图2,首先建立新型流水线,从流水线输入端建立流水线第1级直至流水线第n级的流水线输出端,逐级流水线电路相连,且跨级流水线电路也互相连通,每级流水线内设寄存器数据指针,流水线外设寄存器堆栈,寄存器堆按照流水线级数内的寄存器数据指针进行分组,根据流水线级数多少,对应设有多少组寄存器在寄存器堆栈中。在新型的流水线结构下,数据从进入流水线处理开始,就总是被锁存在寄存器堆栈中分配的固定指针地址中。数据进入流水线第1级时,就被寄存器堆栈的数据指针管理单元分配了一个固定指针用于存储数据。在流水线1处理完成后,将更新的数据写入分配的固定指针中,同时将指针锁存给第2级流水线使用。第2级流水线根据从第一级流水线锁存的指针数值,选取寄存器堆栈中对应指针的寄存器组数据作为输入数据,进行数据处理后,同样是将数据写入此指针指定的寄存器堆栈组中去。以后每一级流水线更新数据都是写入寄存器堆栈的同一组数据中去,直到最后一级流水线处理完成后直接输出最终处理结果。在最后一级流水线处理完成后,此指针释放,用于分配给此时进入第1级流水线开始进行处理的数据的指针,时间更新后写入寄存器堆栈用。由于每一包数据从进入流水线到出流水线,中间更新数据都是在同一组寄存器中进行,同一包数据的相关性远远高于不同包数据,因此每次写入寄存器中的数据只有极少部分需要进行更新,导致少量寄存器反转,大部分的寄存器只需要保持数值不变,在不反转的情况下,动态功耗是不存在的。因此动态功耗得以很大程度的降低与减少。
当每一级流水线都在同时工作,处理不同数据包的数据时,参看图3,在构建的寄存器堆栈中,使用数据指针管理单元,将每个寄存器组的数据与每级流水线的数据以及读写指针进行动态桥接管理。其中每级流水线主控单元的写入数据线与对应写入指针所指定寄存器组的输入数据接口相连接,每级流水线的读出数据线与对应读出指针所指定的寄存器组的输出数据接口相连接。每个时钟,数据指针都会向后一级流水线处理模块锁存,因此数据接口的连接,在每个时钟都会动态重建。在最后一级流水线输出之后,对应分配指针失效,被寄存器堆栈中的数据指针管理单元收回,重新分配给此时进入第1级流水线,准备开始进行数据处理的新的数据包使用。

Claims (5)

1.一种低功耗流水线的实现方法,其特征是具体步骤如下:
①建立新型流水线,从流水线输入端建立流水线第1级直至流水线第n级的流水线输出端,逐级流水线电路相连,且跨级流水线电路也互相连通,每级流水线内设寄存器数据指针,流水线外设寄存器堆栈,寄存器堆按照流水线级数内的寄存器数据指针进行分组,根据流水线级数多少,对应设有多少组寄存器在寄存器堆栈中;
②每级流水线内构建流水线主控单元,使用流水线主控单元读取本级流水线需要处理的数据,以及将本级寄存器修改的数据内容输出到寄存器堆栈,并给出寄存器堆栈需要写入的寄存器数据指针,以及给出下一级流水线主控单元和寄存器堆栈需要读出的寄存器数据指针;
③寄存器堆栈设数据指针管理单元,将每个寄存器组的数据与每级流水线的数据以及读写指针进行动态桥接管理,每一组数据进入到流水线中,需要在寄存器堆栈中占用一组寄存器,最后一级流水线输出后,对应在寄存器堆栈相应寄存器数据指针中的数据失效,此指针与对应的寄存器组提供给新进入流水线的数据使用;每一级流水线只更新本级流水线修改的数据到寄存器堆栈中;每一级流水线主控单元根据本级处理决定输出到下级流水线主控单元的数据,将其寄存器数据指针同时送至寄存器堆栈和下一级主控单元。
2.根据权利要求1所述的一种低功耗流水线的实现方法,其特征是将各级流水线主控单元的写入数据线与对应写入寄存器数据指针所指定寄存器组的输入数据接口相连接,各级流水线的读出数据线与对应读出寄存器数据指针所指定的寄存器组的输出数据接口相连接。
3.根据权利要求1或2所述的一种低功耗流水线的实现方法,其特征是所述的数据从进入到流水线,到从最后一级流水线输出的过程为:数据进入流水线第1级时,寄存器堆栈的数据指针管理模块分配了一个固定指针用于存储数据,在流水线1处理完成后,将更新的数据写入分配的固定指针中,同时将指针锁存给第2级流水线使用;第2级流水线根据从第一级流水线锁存的指针数值,选取寄存器堆栈中对应指针的寄存器组数据作为输入数据,进行数据处理后,同样是将数据写入此指针指定的寄存器堆栈组中去;以后每一级流水线更新数据都是写入寄存器堆栈的同一组数据中去,直到最后一级流水线处理完成后直接输出最终处理结果。
4.一种低功耗流水线系统,应用于权利要求1或2或3所述的一种低功耗流水线的实现方法,其特征是包括流水线输入、输出端,各级流水线,流水线电路,寄存器堆栈;各级流水线通过流水线电路逐级以及跨级连接,并连接到寄存器堆栈;
各级流水线内分别设有流水线主控器和寄存器数据指针,流水线主控器负责读取本级流水线需要处理的数据,以及将本级寄存器修改的数据内容输出到寄存器堆栈,并给出寄存器堆栈需要写入的寄存器数据指针,以及给出下一级流水线主控单元和寄存器堆栈需要读出的寄存器数据指针;
寄存器堆栈内设数据指针管理器,根据流水线级数多少,对应设有多少组寄存器在寄存器堆栈中;数据指针管理器负责将每个寄存器组的数据与每级流水线的数据以及读写指针进行动态桥接管理。
5.根据权利要求4所述的一种低功耗流水线系统,其特征是所述的各级流水线主控器的写入数据线与对应写入寄存器数据指针所指定寄存器组的输入数据接口相连接,各级流水线的读出数据线与对应读出寄存器数据指针所指定的寄存器组的输出数据接口相连接。
CN201510123301.8A 2015-03-20 2015-03-20 一种低功耗流水线的实现方法 Active CN104699463B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510123301.8A CN104699463B (zh) 2015-03-20 2015-03-20 一种低功耗流水线的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510123301.8A CN104699463B (zh) 2015-03-20 2015-03-20 一种低功耗流水线的实现方法

Publications (2)

Publication Number Publication Date
CN104699463A true CN104699463A (zh) 2015-06-10
CN104699463B CN104699463B (zh) 2017-05-17

Family

ID=53346634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510123301.8A Active CN104699463B (zh) 2015-03-20 2015-03-20 一种低功耗流水线的实现方法

Country Status (1)

Country Link
CN (1) CN104699463B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936441A (zh) * 2019-01-28 2019-06-25 湖北大学 一种基于数据存储的流水sha256硬件实现方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189092B1 (en) * 1997-06-30 2001-02-13 Matsushita Electric Industrial Co., Ltd. Pipeline processor capable of reducing branch hazards with small-scale circuit
CN101957744A (zh) * 2010-10-13 2011-01-26 北京科技大学 一种用于微处理器的硬件多线程控制方法及其装置
CN103218029A (zh) * 2013-04-09 2013-07-24 电子科技大学 一种超低功耗处理器流水线结构

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189092B1 (en) * 1997-06-30 2001-02-13 Matsushita Electric Industrial Co., Ltd. Pipeline processor capable of reducing branch hazards with small-scale circuit
CN101957744A (zh) * 2010-10-13 2011-01-26 北京科技大学 一种用于微处理器的硬件多线程控制方法及其装置
CN103218029A (zh) * 2013-04-09 2013-07-24 电子科技大学 一种超低功耗处理器流水线结构

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109936441A (zh) * 2019-01-28 2019-06-25 湖北大学 一种基于数据存储的流水sha256硬件实现方法
CN109936441B (zh) * 2019-01-28 2022-07-05 湖北大学 一种基于数据存储的流水sha256硬件实现方法

Also Published As

Publication number Publication date
CN104699463B (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN102999350B (zh) 一种数字信号处理平台中fpga程序升级在线下载方法
US7653805B2 (en) Processing in pipelined computing units with data line and circuit configuration rule signal line
US20120191767A1 (en) Circuit which Performs Split Precision, Signed/Unsigned, Fixed and Floating Point, Real and Complex Multiplication
CN102483723A (zh) 半导体装置及主机设备
CN101154153A (zh) 位域操作电路
CN106528123A (zh) 一种基于eFuse模块的SoC启动方法和装置
CN104731614B (zh) 一种在开机过程中快速加载数据的方法及装置
CN101872308A (zh) 内存条控制系统及其控制方法
CN102262611B (zh) 一种16位的risc cpu系统结构
CN104156234A (zh) 启动多核处理器、bootloader大小端模式自适应的方法及装置
CN111190855A (zh) 一种fpga多重远程配置系统及方法
JP2012198895A (ja) メモリコントローラアドレスおよびデータピンの多重化
CN104699463A (zh) 一种低功耗流水线的实现方法
CN103455367B (zh) 用于实现可重构系统中多任务调度的管理单元和方法
CN111079908A (zh) 片上网络数据处理方法、存储介质、计算机设备和装置
WO2005078933A1 (ja) プログラマブル論理回路
CN103809987A (zh) 一种soc芯片更换自身内部fpga ip程序的方法
CN105786527A (zh) TigerSharc系列DSP启动管理芯片及方法
CN106502706A (zh) 一种基于龙芯处理器的可信嵌入式计算机及其配置方法
CN102096385A (zh) 一种码分多址法扩展模拟量输入通道的电路
CN101404492A (zh) 加载现场可编程门阵列的方法、装置和系统
CN103293373A (zh) 电能计量装置及其电能计量芯片
WO2021208805A1 (zh) 硬件单板的逻辑地址空间的配置方法、设备和存储介质
CN108459876A (zh) 用于缩减面积的控制寄存器电路的方法与装置
CN111078624B (zh) 片上网络处理系统和片上网络数据处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230418

Address after: 250000 building S02, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province

Patentee after: Shandong Inspur Scientific Research Institute Co.,Ltd.

Address before: No. 1036, Shun Ya Road, Ji'nan high tech Zone, Shandong Province

Patentee before: INSPUR GROUP Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231214

Address after: No. 666 Fifth Ring Road, Lingang Economic and Technological Development Zone, Dongxihu District, Wuhan City, Hubei Province, 430040

Patentee after: Inspur Smart Technology (Wuhan) Co.,Ltd.

Address before: 250000 building S02, No. 1036, Langchao Road, high tech Zone, Jinan City, Shandong Province

Patentee before: Shandong Inspur Scientific Research Institute Co.,Ltd.