【技术实现步骤摘要】
多浮点操作数加/减、乘、除运算控制器
本专利技术涉及一种多浮点操作数加/减、乘、除运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的多浮点操作数加/减、乘、除运算控制电路及其时序控制方法。
技术介绍
浮点数加/减、乘、除的四则混合运算是高精度数据运算应用频率非常高的算术运算,每个运算类型的运算器实现2个32位符合IEEE754标准的浮点数运算;运算器输入参与运算的两个浮点操作数,一个是操作数1,一个是操作数2,执行一次运算输出一个运算结果,在运算过程中,操作数I和操作数2必须维持稳定;运算器的操作数I输入端与一个暂存器的输出端连接,操作数2与另一个暂存器的输出端连接;对于大多数微处理器的算术运算指令,每条指令执行2个操作数的运算;对于高级语言的四则混合运算命令都是采用自然的书写方式表达,在高级语言的编译或翻译系统中将四则混合运算公式转化为微处理器能够识别的二进制代码的指令序列,即2个操作数的运算组成一条运算指令,以及若干条操作数传输指令和运算结果传输指令;微处理器需要逐条读出指令进行译码,传输操作数、运算、结果写回的操作;浮点数加/减、乘、除的四则混合运算中,加/减运算花费时钟周期时间最少,乘法运算次之,除法运算比加/减运算、乘法运算将花费数倍的时间周期,采用流水线执行浮点数加/减、乘、除的四则混合运算的指令序列,下次运算需要应用上次运算结果时,每次运算时间周期和结果写回运算器操作数输入端是影响执行浮点数加/减、乘、除的四则混合运算指令序列速度的瓶颈。
技术实现思路
本专利技术的目的在于提供一种多浮点操作数加/减、乘、除运算控制器,用于实 ...
【技术保护点】
一种多浮点操作数加/减、乘、除运算控制器,用于实现多个32位符合IEEE754标准的浮点数加/减、乘、除的混合运算,其特征在于:该控制器包括命令字及操作数写时序控制模块(Ⅰ)、操作数存储器(Ⅱ)、操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅳ);所述命令字及操作数写时序控制模块(Ⅰ)与操作数存储器(Ⅱ)、操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅳ)连接;所述操作数存储器(Ⅱ)还与操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅳ)连接;所述操作数读时序控制模块(Ⅲ)还与操作数配置及运算控制模块(Ⅳ)连接;所述命令字及操作数写时序控制模块(Ⅰ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为13个;所述命令字及操作数写时序控制模块(Ⅰ)被系统选中时,启动命令字及操作数写时序控制模块(Ⅰ)工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数加/减、乘、除运算指令的命令字,写入指令的多浮点操作数并予以存储;最后一个浮点操作数被写入存储后,所述命令字及操作数写时序控制模块(Ⅰ)停止 ...
【技术特征摘要】
1.一种多浮点操作数加/减、乘、除运算控制器,用于实现多个32位符合IEEE754标准的浮点数加/减、乘、除的混合运算,其特征在于:该控制器包括命令字及操作数写时序控制模块(I )、操作数存储器(II)、操作数读时序控制模块(III)、操作数配置及运算控制模块(IV);所述命令字及操作数写时序控制模块(I )与操作数存储器(II)、操作数读时序控制模块(III)、操作数配置及运算控制模块(IV)连接;所述操作数存储器(II)还与操作数读时序控制模块(III)、操作数配置及运算控制模块(IV)连接;所述操作数读时序控制模块(III)还与操作数配置及运算控制模块(IV)连接;所述命令字及操作数写时序控制模块(I )控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为13个;所述命令字及操作数写时序控制模块(I )被系统选中时,启动命令字及操作数写时序控制模块(I )工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数加/减、乘、除运算指令的命令字,写入指令的多浮点操作数并予以存储;最后一个浮点操作数被写入存储后,所述命令字及操作数写时序控制模块(I )停止工作;所述操作数存储器(II)为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数(下称为操作数);所述操作数存储器(II)的写端口操作数的写入和读端口操作数的读出不存在需要仲裁的情况;写端 口受命令字及操作数写时序控制模块(I )控制,将系统数据总线DB传输的操作数写入操作数存储器(II);读端口受操作数读时序控制模块(III)控制,将操作数读出传输到操作数配置及运算控制模块(IV);所述操作数读时序控制模块(III)在内部读时序脉冲的控制下,自主完成浮点操作数从操作数存储器(II)中的读出,不需要占用系统总线;所述操作数读时序控制模块(III)在命令字及操作数写时序控制模块(I )写入第1个操作数后被启动工作,输出忙信号Busy由“1”一 “0”,并根据第1个操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与运算,并按照每个操作数的运算符自动调整运算周期;当参与运算的最后1个操作数读出之后,再经过一个运算周期,输出忙信号Busy由“0”一“1”,发出一个时钟周期Clock的结果锁存脉冲后,停止操作数读时序控制模块(III)的工作;所述操作数配置及运算控制模块(IV)根据命令字及操作数写时序控制模块(I )输出的运算符选择每个操作数相应的运算器进行计算,根据输出的第1个操作数的类型选通配置参与加/减或乘法运算的操作数1和操作数2 ;当第1个操作数为除法运算时,还需要根据第1个操作数除法运算方式选通配置参与除法运算的操作数a和操作数b ;所述操作数配置及运算控制模块(IV)能够锁存每次运算的计算结果,并判断计算结果是否异常;系统能够从操作数配置及运算控制模块(IV)中读出中间运算结果和命令执行的最终运算结果。2.如权利要求1所述的多浮点操作数加/减、乘、除运算控制器,其特征在于:所述命令字及操作数写时序控制模块(I )包括控制器识别(1)、写地址计数器(2)、写操作数脉冲发生控制模块(3)、方式类型寄存器(4)、运算符移位寄存器(5)和与门I (6);所述控制器识别(1)的输入端与系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块(3)的启动信号输入端连接,还与操作数配置及运算控制模块(IV)连接;所述控制器识别(1)输入A31到A27的地址值与控制器识别(1)所设定的地址值相等,则控制器识别(1)的CS信号输出端为“0”,否则CS信号输出端为“ 1” ;所述写地址计数器(2)的操作数个数输入端与系统数据总线DB的D3到D0线连接,写预置脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,写计数脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲③_1输出端连接,写地址输出端与操作数存储器(II)的写地址输入端AB_1连接,写溢出输出端和与门I (6)的一个输入端连接;所述写地址计数器(2)实质上是一个减1计数器,系统DB的D3到D0传输的是参与加/减、乘、除运算的操作数个数值,在写预置脉冲的控制下将输入指令的操作数个数作为计数初值和操作数存储器(II )的4位写地址初值,并置写溢出输出端为“ 1 ”状态;每来一个写计数脉冲,写地址计数器(2)输出的写地址值-1,修改操作数存储器(II)写端口存储单元地址值,直到计数值输出端为“0”,即AB_1为“0”,此时写溢出信号由“1” 一 “0”,写溢出信号是操作数写入过程结束的标志; 所述写操作数脉冲发生控制模块(3)的同步脉冲输入端与系统写信号WR线连接,复位输入端和与门I (6)的输出端连接,脉冲①_1输出端还与方式类型寄存器(4)的锁存信号输入端、运算符移位寄存器(5)的锁存信号输入端、操作数读时序控制模块(III)连接,脉冲②」输出端与操作数存储器(II)写端口的WR_1输入端、操作数读时序控制模块(III)连接;当CS为“0”时,所述写操作数脉冲发生控制模块(3)在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“1” 一 “0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③」输出端为“1”状态;所述方式类型寄存器(4)的输入端与系统数据总线DB的D5和D4线连接,类型输出端与操作数读时序控制模块(III)连接,方式输出端与操作数配置及运算控制模块(IV)连接;所述方式类型寄存器(4)在脉冲①」下降沿的作用下,将第1个操作数的方式和类型的状态锁存在方式类型寄存器(4)中;所述运算符移位寄存器(5)的输入端与系统数据总线DB的D31到D6线连接,移位脉冲输入端与操作数读时序控制模块(III)连接,运算符输出端与操作数读时序控制模块(III)和操作数配置及运算控制模块(IV)连接;所述与门I (6)的另二个输入端分别与系统复位信号Rst线、操作数配置及运算控制模块(IV)连接。3.如权利要求1所述的多浮点操作数加/减、乘、除运算控制器,其特征在于:所述操作数读时序控制模块(III)包括读地址计数器(7)、读操作数脉冲发生控制模块(8)、与门II(9)、与门 111(10)和与门IV(ll);所述读地址计数器(7)的操作数个数输入端和系统数据总线DB的D3到D0线连接,读预置脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,读计数脉冲输入端和与门IV (11)的输出端连接,读地址输出端与操作数存储器(II)的读地址输入端AB_2连接,读溢出输出端与读操作数脉冲发生控制模块(8)的读溢出输入端连接;所述读地址计数器(7)实质上是一个减1计数器,在读预置脉冲的作用下将来自系统数据总线DB的D3到D0的操作数个数作为计数初值和操作数存储器(II)读端口的读地址初值,并置读溢出输出端信号为“1”状态;每来一个读计数脉冲,读地址计数器(7)输出的读地址值-1,修改操作数存储器(II)读端口存储单元地址值,直到为“0”,读溢出信号由“1”一“0”,表示正在执行命令的最后一个操作数已读出,也是读地址计数器(7)停止工作的标志;所述读操作数脉冲发生控制模块(8)的同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门111(10)的输出端连接,读启动输入端与写操作数脉冲发生控制模块(3)的脉冲②_1输出端连接,类型输入端与方式类型寄存器(4)的类型输出端连接,运算符输入端与运算符移位寄存器(5)的运算符输出端连接;脉冲①_2输出端和与门II (9)的一个输入端、操作数配置及运算控制模块(IV)连接;脉冲②_2输出端和与门IV(ll)的一个输入端、操作数配置及运算控制模块(IV)连接;脉冲③_2输出端和与门II (9)的另一个...
【专利技术属性】
技术研发人员:李克俭,蔡启仲,黄仕林,任杰,王鸣桃,
申请(专利权)人:广西科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。