首页 > 范文大全 > 正文

YHFT―DX移位分支部件的设计与优化

开篇:润墨网以专业的文秘视角,为您筛选了一篇YHFT―DX移位分支部件的设计与优化范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:根据yhft-dx移位分支部件的功能特点和性能要求,提出了一种结构划分与实现策略,确定了移位分支部件的关键路径及相应设计方法.对于时序紧张的定点算术操作模块、移位操作模块采用手工半定制设计优化.时序验证与分析表明:移位分支部件时序优化了6.86%,面积减少了10.64%,达到了主频1.0 GHz的设计目标.

关键词:移位分支部件;手工半定制;算术操作模块;移位操作模块

中图分类号:TP332 文献标识码:A

The Design and Optimization of BSU in YHFT-DX

CHEN Ji-hua, SHEN Zhi-chun, LI Zhen-tao, CHEN Xiao-chun

( College of Computer, National Univ of Defense Technology, Changsha, Hunan 410073, China)

Abstract: Based on the features and performance requirements of BSU (Branch & Shifting arithmetic logic Unit) in YHFT-DX, a new structure partition and a strategy of implementation were proposed, and the critical path and the corresponding design method were determined. The arithmetic operation module and shift operation module with tension timing were designed and optimized by hand semi-custom design method. Timing verification and analysis show that the timing is optimized for 6.86%, the area is decreased by 10.64%, and the frequency (1.0 GHz) is achieved.

Key words: BSU; manual semi-custom; arithmetic operation module; shift operation module

目前芯片的设计方法主要分为两种,一种是半定制设计方法,另一种是全定制设计方法.半定制设计方法是利用EDA工具进行综合及物理设计的过程,其优点是自动化程度高、设计周期短、设计成本低,缺点是设计性能较低;全定制设计是对集成电路中所有的各个模块采用手工方式进行精细优化的设计方法,其优点是设计性能高、面积小,缺点是设计周期长、成本高.

移位分支部件是YHFT-DX处理器中的关键部件,采用半定制设计方法不能达到设计目标,而采用全定制设计方法会延长设计周期.本文针对YHFT-DX移位分支部件的特点和性能要求,提出了一种结构划分方式和手工半定制设计方法.手工半定制设计方法是针对全定制和半定制而言,采取了取长补短的策略,即比半定制设计方法采用更多的人工干预,比全定制设计方法采用更多的工具自动化,结合了半定制自动化程度高、设计周期短和全定制设计性能高的优点,对YHFT-DX移位分支部件电路设计十分有效[1],利用该方法成功地设计优化了移位分支部件,达到了设计目标.

1 移位分支部件结构划分与实现策略

移位分支部件具有复杂众多的指令操作类型,有很多速度要求较高的指令和运算部件中唯一的分支跳转指令,包括较多逻辑指令、移位操作类指令、位操作指令及定点算术操作类指令等.移位分支部件主要完成的功能包括整型或长整型的算术和比较运算、移位操作、整型的逻辑操作、数据打包与解包、字节移位等.移位分支部件接收从指令派发部件传送来的指令信号和从寄存器文件或交叉通路传送过来的源操作数,并将计算所得结果写入寄存器文件中.移位分支部件总共实现122条指令,包含定点类指令82条、浮点指令32条、伪指令8条.

YHFT-DX采用40 nm工艺,移位分支部件要达到1.0 GHz主频的性能目标,根据移位分支部件的功能特点和实现指令分析将移位分支部件划分成4个模块,分别是定点算术操作模块、移位操作模块、位操作模块和浮点算数操作模块.

1)定点算术操作模块.该模块首先进行加法和减一运算,然后对加法结果进行溢出判断[2],并根据指令类型对加减结果、溢出结果和减一结果进行选择,作为加减运算结果或跳转地址.该模块根据指令类型又可以细分为9个子模块,第一是定点加减运算,第二是SIMD加减运算,第三是定点比较运算,第四是SIMD比较运算,第五是定点函数操作,两个源操作数中的高低半字分别取赋值给目的寄存器相应半字.第六是SIMD寄存器传送操作,第七是分支转移、分支跳转、分支、正数分支跳转、子程序调用等[3].第八是寄存器传送,控制寄存器和通用寄存器之间数据赋值.第九是逻辑运算、数据按位与、按位或、按位异或、源操作数一与源操作数二的非按位与.

2)移位操作模块.该模块实现16/32/40位算术左移、32位饱和算术左移、16/32位算术右移、16/32位逻辑右移、清零、置位、位域扩展和多种位宽的SIMD移位操作.

3)位操作模块.该模块分为定点函数类操作、SIMD定点函数类操作和寄存器传送类操作,主要实现数据打包、解包、字节移位和赋值给目的寄存器的操作.

4)浮点算数操作模块.该模块是执行浮点操作数相关的指令.

通过对上述4个模块的时序划分和性能要求分析,确定了YHFT-DX移位分支部件的关键路径和实现策略,其策略是:针对时序紧张的定点算术操作模块中的运算器和移位操作模块中的64位移位器采用手工半定制方法进行设计优化,对于时序相对宽松的其他模块采用半定制方法进行设计优化.下一节将详述关键模块及设计优化.

2 移位分支部件设计优化

移位分支部件64位加法器和移位器采用半定制设计方法不能达到设计目标,对于这些处在关键路径上的模块,本文采用了手工半定制设计方法进行设计优化.

2.1 定点算术操作模块设计与优化

定点算术操作模块主要是进行整型或长整型加/减和比较类运算.加法器是定点算术操作模块的核心,定点算术模块总共可执行43条指令,其中定点算术加/减指令17条、定点比较指令8条、逻辑操作指令9条、分支跳转指令9条[4].通过对这些指令类型的分析,实现这些指令需要8位、16位、32位、40位4种不同位宽的加法器,若单个实现,需要的加法器种类和数目比较多,功耗和面积代价之大不言而喻,因此,在时序要求得到满足的情况下需要将这些不同类型的加法器进行融合,从而降低功耗,减小面积.

定点算术操作模块的总体结构框图如图1所示.

其核心部件是8个8位的加法器阵列,该加法器总位宽为64位的加法器,分成8组,每组8位位宽,各组采用完全相同的设计,8位子加法器采用进位选择加的结构,组进位和组传播进位采用并行前缀运算算法[5].根据不同的指令类型,组间并行选择传递不同的进位,从而得到多种位宽的结果.

8位加法器采用进位选择加的结构,组进位和组传播进位采用并行前缀运算算法.并行前缀运算算法描述见表1.表中组进位和传播进位函数表达式如下:

GD:j=Gi:k+Pi:k・GK-1:j.(1)

Pi:j=Pi:k・PK-1:j.(2)

把式(1)和式(2)用图的形式表示出来,如图2所示,图中黑色方块包含进位产生信号和进位传播信号,它恰好表示的是前缀运算“”;灰色只包含组进位产生信号,即式(1),常用于树型结构每位的末尾用以计算每位的和值;黑色反向器用来减轻关键路径上的负载;而每条线代表一束组进位产生和组进位传播信号,这些块单元组成Han-Carlson树型结构如图3所示,用这些块和线束组成的加法器的进位链部分可以表示为非循环图的形式.

图3所示的Han-Carlson树型结构是一种介于Kogge-Stone树和Brent-Kung树之间的结构[6],它对逻辑级数和扇出进行折衷,在Han-Carlson加法器中,采用奇偶相间的位片式设计,在奇数位执行Kogge-Stone运算构成主体进位树,然后再用一级点操作行波产生偶数位的进位,主体进位树只需计算一半的进位,从而避免了完全进位树结构,减小了复杂度,它的运算结点位(Nlog2N)/2个,当N为64时为192个,是Kogge-Stone结构的60%,Han-Carlson结构具有最小的扇出2,最大布线通道N/4,都比Kogge-Stone结构小,并且结构也较规整.

本文所设计的加法器根据不同的指令类型,组间并行选择传递不同的进位,从而得到多种位宽的结果[7].进位传递分为以下4种情况:

1)8位加法:各组加法器选择初始进位输入.

2)16位加法:第一组、第三组、第五组和第七组加法器选择初始进位输入,第二组、第四组、第六组和第八组加法器选择相邻低位加法器的组进位和传播进位输入.

3)32位加法:第一组和第五组加法器选择初始进位输入,第二组、第三组、第四组和第六组、第七组、第八组加法器分别依次选择相邻低位加法器的组进位和传播进位输入.

4)40位加法:第一组加法器选择初始进位输入,第二组、第三组、第四组和第五组加法器分别依次选择相邻低位加法器的组进位和传播进位输入.

8个8位的加法器采用完全相同的基于标准单元的手工半定制设计,输入输出端口明确,可重用性高.图4给出了该加法器的主要电路图,图中Ain为源一操作数输入、Bin为源二操作数输入,ResultAnd为逻辑与结果、ResultOr为逻辑或结果、Px为组间传播进位函数、Cout为组间产生进位函数、ResultXor为逻辑异或结果.

以8个完全相同的8位加法器为核心集成其他逻辑电路实现了整个运算单元的设计,图5给出了部分验证波形.当输入信号A=8F, B=F2, Cin=0时,组间进位Cout=1, 组间传播Px=1, 加法器和ResultAdd=81, 逻辑与ResultAnd=82, 逻辑或ResultOr=FF, 逻辑异或ResultXor=7D,分析表明验证结果正确.

表2所示的数据表明,手工半定制设计的关键路径延时比半定制方法优化了7.31%,功耗优化了17.96%,面积优化了32.2%.

2.2 移位操作模块设计优化

YHFT-DX处理器指令集中有好几类指令都涉及到移位操作,移位分支部件中与移位相关的指令有SHL,SHR,SSHL,EXT等,另外CLR和SET指令用到的掩模数也可以用移位器来产生.

归纳起来,在移位分支部件中移位器需要进行3种类型的操作:无符号右移、带符号右移、算术左移.无符号右移也叫逻辑右移,右移的时候高位填0;带符号右移也叫算术右移,右移的时候高位填符号位;算术左移时低位填0.目前常见移位器结构,根据译码方式来区分有全译码方式、全编码方式、部分译码方式3种.

1)全译码方式.全译码方式对表示移位位数的二进制数进行完全译码,分别给出各种移位的控制线.对于4位移位器,移位部分就有4根控制线(Sh0~Sh3) 分别控制移0~3位(A0~A3)的移位操作,同一时间只有一条控制线选通,如图6所示.

从电路结构上来看,该电路从输入到输出理论上只需经过一个传输管的延时,但实际上实现这样的设计需要较大的面积,特别是移位量较大的时候.例如实现一个能对32位数进行0~31位移位操作的桶形移位器,移位网络总共需要32×32个传输管,移位量较大时,从面积考虑不适合采用此结构.

2)全编码方式.全编码方式对移位次数不进行译码,直接利用移位量的各个位控制移位通路.

对数移位器就是全编码方式,采用了分级的设计方法.总的移位值被分解成2的指数值.一个具有最大移位宽度M的移位器包括log2M级传输管来进行移位控制,在每一级中有两种情况,当该位对应的控制信号为1时,则前一级送来的数据传输到下一级时将被移2i-1位(i是控制信号的阶次),否则不被移位,例如一个实现0~31位移位的移位器,可用5级传输管来进行移位控制.图7给出的是一个最大移位宽度为4位的对数移位器.

这种移位器因为直接用移位数来控制移位网络,因此不需要对移位量进行译码,同时这种设计的移位网络只需要32×5个传输管,节省了面积;不足之处是数据从输入到结果输出共需要经过5级传输管的延时,使得这种移位器很难达到高性能的设计目标.

3)部分译码方式.部分译码方式是介于全译码方式和全编码方式之间的一种方案.通过将移位量分段后译码,将移位操作分成2~3步来完成,实验证明:部分译码的移位器既能获得较高的性能,又不占用很大的面积,因而本设计就基于分段译码的结构来设计[8].

漏斗移位器能够执行逻辑移位、算术移位和循环移位这3种操作.当输入数据字长为2N-1时,输出字长为N.从输入数据和输出数据的字长来看,它很像一个漏斗的形状,因此命名为“漏斗”移位器[9].漏斗移位器是基于部分译码方式设计的一种移位器,融合对数移位器的分级思想和桶形移位器只需通过一个传输管即可到达输出的优势,本设计主要基于32位 “漏斗”移位器来实现.32位的“漏斗”移位器的电路结构如图8所示,它的输入数据为63位,输出结果为32位数据.漏斗移位器分为两级,第一级为传输门阵列,为了减少逻辑级数而采用了四选一选择器,完成移0位、移8位、移16位或移24位的操作.第二级为桶形移位阵列,完成0~8位的移位,通过第一级和第二级的组合可完成0~31位移位操作[9].

分析桶形移位器、对数移位器和“漏斗”移位器的过程中,我们不难发现当移位宽度较大时,移位器延时仍然偏大.其延迟和面积还是不能满足设计的需要,且设计周期比较长.为此我们对现有的移位器进行了改进优化.

4)部分译码改进型.移位操作模块是设计中的关键,而移位器又是移位操作模块中的关键.移位器采用多级选择的结构实现,考虑到本设计对性能的要求较高,采用将左右移位进行分开的设计,而不采用左右移位结合的设计,移位器包括两部分的设计,即译码电路设计和移位网络设计.

a)译码电路的设计优化.

译码电路用来将移位量译成单独的控制线,部分译码就是译码电路将移位量分段来进行译码;对一个移位量操作数的分段可以有多种划分方法,不同划分对应不同的移位网络结构.以一个64位移位器的译码为例,有6位移位量:C0 C1 C2 C3 C4 C5,可采用的分段方法及其对应的移位网络结构见表3.

采用哪种分段方法与具体设计相关,需要通过时序模拟来选择最优的方法.对移位量进行译码段划分后,需要对各段的移位量分别进行译码,根据标准单元延迟情况,进行布尔表达式等价变换,得到延时最小的逻辑实现方式,其优化后的基于标准单元或非门的2-4译码电路如图9所示,静态时序分析表明,优化后比优化前延时减少了22.2%.

b) 移位网络的设计优化.

64位移位器的实现需要6位移位量:C0 C1 C2 C3 C4 C5,按照6位移位量控制信号进行分段译码的方式,可以划分多种方案实现,本文采用了移位量控制信号分段译码2-2-2结构C0C1|C2C3|C4C5分组,其时序和面积相对均衡的方案进行设计优化,其结构如图10所示.

图10中的移位器分为三级,每一级都是由译码器和移位网络组成的,移位器的第一级移0, 1, 2, 3位,第二级移0, 4, 8, 12位,第三级移0, 16, 32, 48位,因此三级进行组合移位就可以移0~63任意位.

按照确定的方案进行移位网络的设计.移位网络主要是由多路选择开关构成的,而选择开关通常可以由多种方式实现,本文主要基于标准单元进行选择开关的设计优化.由于此方案中每一级移位网络都进行4档移位,所以每一级的移位网络都可以采用四选一电路实现.移位网络四选一电路通过三态门实现,如图11所示.

三态门实现的四选一电路优点是速度快,缺点是面积较大.在设计的过程中为了平衡速度和面积之间的关系,我们还需采用面积小而速度稍微比三态门慢点的四输入的与或非门实现四选一电路,如图12所示.

利用三态门和与或非门各自的优点,最终确定采用混合实现的策略,因为与或非门面积小,所以第一和第二级移位网络采用与或非门实现;由于三态门延时比较小但面积较大,所以第三级移位网络采用三态门实现;与基于逻辑综合的半定制设计相比,时序验证分析结果见表4.

表5中结果表明,手工半定制与半定制设计相比,优化后延时、面积分别比优化前减小0.07 ns, 8 606.7 μm2,时序优化了6.86%,面积减少了10.64%,达到了1.0 GHz设计目标.

4 结束语

本文根据YHFT-DX移位分支部件的特点,提出了结构划分与实现策略;确定了移位分支部件关键路径和设计方法;对于时序紧张的定点算术操作模块、移位操作模块等关键模块,采用了手工半定制设计方法进行设计优化并进行了详细的描述;对于时序相对宽松的译码站和其他模块,采用了基于逻辑综合的半定制设计方法;完成了整个移位分支部件的设计,优化了时序、减少了面积、降低了功耗[10];达到了预期的设计目标.

参考文献

[1] 沈志春.高性能DSP移位分支部件的设计与优化 [D].长沙:国防科学技术大学研究生院,2013.

SHEN Zhi-chun. Design and optimization of BSU of high performance DSP[D]. Changsha: Graduate School, National University of Defense Technology, 2013. (In Chinese)

[2] 陈吉华,郭阳,陈海燕,等. 集成电路计算机辅助设计与验证[M]. 长沙:国防科技大学出版社,2010.

CHEN Ji-hua. GUO Yang,CHEN Hai-yan, et al. Computer-aided design and verification of IC[M]. Changsha: National University of Defense Technology Press, 2010.(In Chinese)

[3] FISHER J A. Very long instruction word architectures and the ELI-512[C]//Proceedings of the 10th Annual International Symposium on Computer Architecture. New York: ACM, 1983: 140-150.

[4] YEH T Y, PATT Y N. Two-Level adaptive training branch prediction[C]// Proceedings of the 24th ACM/IEEE International Symposium on Microarchitecture. New York: ACM, 1991:51-61.

[5] 李振涛.高性能DSP关键电路及EDA技术研究[D]. 长沙:国防科学技术大学研究生院,2007:10-15.

LI Zhen-tao. Key circuits and EDA techniques research of high performance DSPs[D]. Changsha: Graduate School, National University of Defense Technology, 2007:10-15. (In Chinese)

[6] JOTWANI R, SUNDARAM S, KOSONOCKY S, et al. An x86-64 Core in 32 nm SOI CMOS[J]. IEEE Journal of Solid-State Circuits, 2011, 46(1):162-172.

[7] WENDEL D F, KALLA R, WARNOCK J, et al. POWER7TM, a highly parallel, scalable multi-core high end server processor[J]. IEEE Journal of Solid-State Circuits , 2011, 46(1):145-161.

[8] 张子杰. 600MHz YHFT-DX移位分支部件的设计与实现 [D].长沙:国防科学技术大学研究生院,2010.

ZHANG Zi-jie. The design and implementation of 600 MHz BSU of YHFT-DX[D]. Changsha: Graduate School, National University of Defense Technology, 2010.(In Chinese)

[9] 徐庆光. 600MHz YHFT-DX算术逻辑部件的设计与实现 [D].长沙:国防科学技术大学研究生院,2010.

XU Qing-guang. The design and implementation of 600 MHz ALU of YHFT-DX[D]. Changsha: Graduate School, National University of Defense Technology, 2010.(In Chinese)

[10]HERNANDEZ M A, ARANDA M L. A low power bootstrapped CMOS full adder[C]// Proceedings of 2005 2nd International Conference on Electrical and Electronics Engineering. New York: IEEE, 2005: 7-9.