
一种数字信号处理器中数据旁路技术的制作方法.docx
5页一种数字信号处理器中数据旁路技术的制作方法专利名称:一种数字信号处理器中数据旁路技术的制作方法技术领域:本发明涉及微处理器及计算机系统,更具体地说,本发明涉及一种面向内存的数字信号处理器(DSP)结构,尤其涉及到数字信号处理器中数据旁路技术背景技术: 随着现代微电子工艺的发展和实际应用中需求的增加,面向内存操作的数字信号器越来越流行,其中最大特点是在一个时钟内能从片上数据存储器中同时取出两个数据进行逻辑、计算等操作由于电子设备的个人化和客户化趋势,数字信号处理器必须追求更高更快的运算速度,在一定的工艺条件限制下,采用多级的流水线结构成了解决时钟瓶颈的一种手段现以6阶段流水结构为例来说明数字信号处理器中数据旁路电路(BPU)的工作原理参考图1来说明数字信号处理器结构流水线中数据旁路电路的工作原理第一阶段,取指令阶段(IF阶段)程序计数器101提供一个虚拟地址S1给片上指令存储器102片上指令存储器102根据相应的地址输出一条32比特的指令S2该指令根据情况不同可以是面向寄存器的指令(基本指令)、面向内存的DSP指令(DSP指令)基本指令向量包括通用寄存器地址(rs、rt)、目标地址(rd)及操作控制码(op)。
DSP指令向量中包括目的寄存器(rd)、两个地址辅助寄存器(ARm、ARn)、两个索引寄存器(IR0、IR1)的地址、地址寻找模式码(mode)及操作控制码(op)第二阶段,指令译码阶段(ID阶段)指令向量S2经过界面寄存器103延时一个时钟周期后通过该寄存器103的输出端103a传送给指令译码器105该译码器105将输入的指令向量译码后输出控制码S3到控制单元,输出寄存器访问地址S5到寄存器文件,输出当前读寄存器地址S6到数据旁路电路以及以后各阶段用到的控制、数据信号S4到界面寄存器108寄存器文件根据访问寄存器地址S5输出相应的数据S7到数据旁路电路107,信号S7包括了6个32位的数据,分别为rs、rt、ARm、ARn、IR0、IR1数据旁路电路根据相关关系及优先级关系从S22、S23、S27、S31、S33、S7信号集中选出相应的6个值S8..S13,并送到界面寄存器108进行锁存第三阶段,地址计算阶段(DA阶段)两个地址逻辑单元(DALU)109、110根据操作控制码S20、S21对操作数S10a、S12a,S11a、S13a进行相应的操作运算,并用结果S22、S23访问两个片上数据存储器111、112,同时他们的值也送到界面寄存器113进行锁存,并且还反馈到数据旁路电路107当作旁路的数据源。
地址寄存器根据地址寻址模式码进行更新,其更新值S35、S36也锁存到113第四阶段,内存访问阶段(DM阶段)根据地址S22、S23,片上数据寄存器经过一定的访问时间后输出相应的两个数据S25、S26,它们在时钟的作用下锁存到界面寄存器114控制信号S24也锁存入114第五阶段,执行运算访问阶段(EX阶段)数据逻辑单元(ALU)115根据操作控制代码S15对操作数S17、S18进行相应的运算操作,并将运算结果S16输入到界面寄存器116第六阶段,写结果阶段(WB阶段)将存在界面寄存器116中的数据逻辑运算结果和两个地址寄存器、两个索引寄存器、从双端口片上数据寄存器读出的其中一个内存数的值的集合信号S33写入到寄存器文件106中上述6阶段流水线结构的操作可用下表1来观察表1在周期0,指令1在取指令阶段,此时指令1已从片上指令存储器中取出102在周期1,指令1移到译码阶段,根据指令1中规定的寄存器地址,读取寄存器值此时,指令2进入取指令阶段在周期2,指令1进入地址计算阶段,将地址寄存器、索引寄存器的值提供给地址逻辑单元109、110并根据控制码执行相应的操作指令2移入译码阶段,指令3进入取指令阶段。
在周期3,指令1进入内存读取阶段,把读取结果S25、S26锁存入界面寄存器114等待下一个操作,而随后的指令也都移动一阶段,新指令4进入读指令阶段在周期4,指令1进入执行阶段,根据控制码S15对两个数据S17、S18进行各种操作,随后的指令也都向前移动一阶段,新指令5进入读指令阶段最后,在周期5,指令1进入写结果阶段,把数据逻辑单元115结果、地址寄存器、索引寄存器、从双端口片上数据寄存器读出的其中一个内存数写入寄存器文件随后的指令也都向前移动一阶段,新指令6进入读指令阶段从表1流水线图表中,可以看到,指令2、3、4、5中的操作数正在或已被读取时,指令1的结果才被写入到寄存器文件106中如果指令2、3、4、5在读操作数或执行指令的阶段需要用到指令1的结果,那么指令1的结果就必须被提前旁路到ID阶段的旁路电路107中,否则会发生不必要的数据冲突(DATAHAZARD)而导致流水线停顿等待例如,若指令2要用到指令1的数据逻辑单元结果,那么流水线必须停顿等待到周期5,指令1在写运算结果的同时旁路结果到模块107考虑下列程序片段ADD ARm,B,C #B+C,结果存入地址寄存器ARmSUB E,[ARm],D #[ARm]-D,结果存入寄存器E。
[ARm]表示根据ARm#的值访问片上数据寄存器111指令N1指令N2上述程序片段的执行次序可用下表2的流水线图来表示从表2中可以看出,B+C的结果要写入地址寄存器ARm可在ARm却需要去访问片上数据寄存器111因此,流水线必须停顿等待,等到写ARm值时,同时它的值被旁路到ID阶段,否则就得不到预期的结果在精简指令的处理器中,由于流水线的结构与数字信号处理器流水线的结构有很大的区别,精简指令处理器的执行级通常在访问存储器之前,一般通用的结构为取指、译码、执行、访问内存、回写而且精简指令处理器采用面向寄存器操作,它的两个操作数只能是两个寄存器,因此它的数据旁路电路要比数字信号处理器中的要简单的多数字信号处理器中有地址寄存器、索引寄存器、基本寄存器等,同时可能用到4个寄存器值,而且流水线深度增加,以便提高工作时钟,因此,数据旁路电路的设计还要考虑满足时延的要求为了体现实时处理的特点,要尽量减少流水线的停顿综上,数字信号处理器中的数据旁路电路设计起到了关键的因素目前,在通常的数字信号处理器流水线结构的数据旁路中用到了串行数据地址冲突检测和数据选择表2发明内容本发明的目的在于克服现有技术中的不足,提供一种面向内存的数字信号处理器结构(DSP),尤其是数字信号处理器中数据旁路技术。
为了解决上述技术问题,本发明是通过以下技术方案实现的本发明提出了一种新的数据旁路技术,在该电路中,实现了6路的数据转发,其中4路对11个数据源进行有优先级的并行数据选择,2路对3个数据源进行有优先级的并行数据选择本发明中数字信号处理器流水线采用六阶段流水,分别为取指令阶段、译码阶段,地址计算阶段、内存访问阶段、执行阶段和写结果阶段本发明中的数据旁路技术是由两部分组成,一部分是并行数据地址冲突检测,包括10个5位地址比较器;另一部分是优先数据选择,根据并行数据地址冲突检测结果对11个数据源进行优先数据选择本发明中的数据旁路技术4路11个数据源中有10个数据源实现共用,分别为来自地址计算阶段没有经过锁存的地址寄存器更新值、来自内存访问阶段的地址寄存器锁存值、来自执行阶段的地址寄存器锁存值、来自写结果阶段的地址寄存器锁存值、锁存后的数据逻辑结果、从双端口片上数据寄存器读出的其中一个内存数;不共用的数据为各自读自寄存器文件的寄存器值,写在前面的数据具有较高的优先级,地址计算阶段的地址寄存器更新值具有最高的优先级;所述的2路中的3个数据源中有2个数据共用,分别为来自写结果阶段的锁存后的数据逻辑结果、从双端口片上数据寄存器读出的其中一个内存数;不共用的是各自读自寄存器文件的寄存器值,写在前面的数据具有较高的优先级。
本发明中数据旁路技术共有8个地址寄存器,在32个32位寄存器文件中为其中的第8到第15个,并且可以当作通用寄存器使用,即可以复用;索引寄存器地址固定为32个中的第24、25个,也与通用寄存器复用本发明中并行数据地址冲突检测电路包括第一到第十四比较器(CMP1,CMP2,CMP3,CMP4,CMP5,CMP6,CMP7,CMP8,CMP9,CMP10,CMP11,CMP12,CMP13,CMP14),优先数据选择电路包括第一到第五反门(NO1,NO2,NO3,NO4,NO5),第一到第十八与门(AND1,AND2,……,AND18),第一到第八与非门(NOR1,NOR2,……,NOR8),第一到第八或门(OR1,OR2,……,OR8),一个数据选择器(MUX1)与现有技术相比,本发明的有益效果是减少流水线中的冲突停顿,减少时延,提高处理器的时钟,从而提高实时处理能力本发明设计的6级流水线结构的数字信号处理器中的数据旁路技术对关键的4路都采用了并行处理技术,而一般的做法是每一路需要用10个数据选择器进行串行数据选择图1为本发明的6级流水线结构的工作原理图图2为本发明的一个实施例的数字信号处理器流水线中的数据旁路电路工作原理图。
图3为本发明的数据旁路技术中对11个数据源进行有优先次序的数据选择电路工作原理图具体实施例方式下面结合具体实施例对本发明技术方案做详细说明本发明提出了一种新的应用于数字信号处理器流水线中的数据旁路技术该数据旁路技术实现6路数据转发,其中4路对11个数据源进行有优先级的并行数据旁路,2路对3个数据源进行有优先级的并行数据旁路其中的4路分别实现rs、rt、ARm、ARn寄存器数据值的转发2路实现对IR0、IR1寄存器数据的转发本发明所涉及到的数据旁路技术中具有优先次序的并行数据旁路电路由两部分组成,一部分是并行数据地址冲突检测、一部分是优先数据选择并行数据地址冲突检测包括10个5位地址比较器,前4个组成一堆对前4对地址进行并行比较后4个比较器组成另一堆,对后4对地址进行并行比较最后两个比较器对剩下的2对地址进行并行比较优先数据选择根据并行数据地址冲突检测结果对11个数据源进行优先选择本发明所涉及到的数据旁路电路中其中4路11个数据源中有10个数据源实现共用,它们分别为来自DA阶段的ARm、ARn的更新值(没有经过锁存),来自DM阶段的ARm、ARn锁存值、来自EX阶段的ARm、ARn锁存值、来自WB阶段的ARm、ARn锁存值、锁存后的数据逻辑结果、从双端口片上数据寄存器读出的其中一个内存数。
不共用的数据为各自读自寄存器文件的寄存器值写在前面的数据具有较高的优先级,即DA阶段的ARm、ARn更新值具有最高的优先级其中2路中的3个数据源中有2个数据共用,它们分别为来自WB阶段的锁存后的数据逻辑结果、从双端口片上数据寄存器读出的其中一个内存数不共用的是各自读自寄存器文件的寄存器值写在前面的数据具有较高的优先级本发明所涉及的地址寄存器共8个,在32个32位寄存器文件中为其中的第8到第15个,并且可以当作通用寄存器(rs,rt),即可以复用索引寄存器地址固定为32个中的第24、25个,它们也与rs,rt复用例如,当前指令经过译码后发现要读取位于32个寄存器的寄存器文件中的第14个位置的地址寄存器,而此时假设并行数据地址冲突检测电路检测出它与11个数据源中的第1、5个数据相关,即第1个比较器、第5个比较器输出为32位全“1”,其他为全“0”那么优先数据选择电路会选择第1个数据源,因为它的优先级大于第5个值,而第5个值将被忽略了本发明的技术方案可以用图2和图3来说明,图2为总体图,图3为图2中的关于部件Prl_sel的细化首先参考图2,数据旁路电路的各路输入信号分别为处于ID阶段的经过译码后的4个5比特寄存器地址,分别为m1(或ID_Reg_Addr1[4:0])、m3(或ID_Reg_Addr2[4:0])、m5(。












