多浮点操作数加/减、乘、除运算控制器制造技术

技术编号:10392036 阅读:132 留言:0更新日期:2014-09-05 17:44
一种多浮点操作数加/减、乘、除运算控制器,包括命令字及操作数写时序控制模块、操作数存储器、操作数读时序控制模块、操作数配置及运算控制模块;该控制器应用FPGA设计硬连接控制电路,内部产生写时序脉冲控制指令的命令字和浮点操作数的连续写入;产生与Clock同步的读时序脉冲自主控制四则混合运算;能够按照每个操作数的运算符自动调整运算周期;在最后一个操作数写入之后,运算过程不受系统控制,系统能够转去处理其他指令程序;执行运算过程中能够读出中间运算和最终运算结果;每条指令能够有13个浮点操作数,执行一条指令相当于微处理器执行多条指令,减少了系统对指令的取指和译码、浮点操作数传输和运算结果写回的操作过程。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】
多浮点操作数加/减、乘、除运算控制器
本技术涉及一种多浮点操作数加/减、乘、除运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的多浮点操作数加/减、乘、除运算控制电路及其时序控制方法。
技术介绍
浮点数加/减、乘、除的四则混合运算是高精度数据运算应用频率非常高的算术运算,每个运算类型的运算器实现2个32位符合IEEE754标准的浮点数运算;运算器输入参与运算的两个浮点操作数,一个是操作数1,一个是操作数2,执行一次运算输出一个运算结果,在运算过程中,操作数I和操作数2必须维持稳定;运算器的操作数I输入端与一个暂存器的输出端连接,操作数2与另一个暂存器的输出端连接;对于大多数微处理器的算术运算指令,每条指令执行2个操作数的运算;对于高级语言的四则混合运算命令都是采用自然的书写方式表达,在高级语言的编译或翻译系统中将四则混合运算公式转化为微处理器能够识别的二进制代码的指令序列,即2个操作数的运算组成一条运算指令,以及若干条操作数传输指令和运算结果传输指令;微处理器需要逐条读出指令进行译码,传输操作数、运算、结果写回的操作;浮点数加/减、乘、除的四则混合运算中,加/减运算花费时钟周期时间最少,乘法运算次之,除法运算比加/减运算、乘法运算将花费数倍的时间周期,采用流水线执行浮点数加/减、乘、除的四则混合运算的指令序列,下次运算需要应用上次运算结果时,每次运算时间周期和结果写回运算器操作数输入端是影响执行浮点数加/减、乘、除的四则混合运算指令序列速度的瓶颈。
技术实现思路
本技术的目的在于提供一种多浮点操作数加/减、乘、除运算控制器,用于实现多个32位符合IEEE754标准的浮点数加/减、乘、除的混合运算;该控制器应用FPGA设计多浮点操作数加/减、乘、除运算控制器的硬连接电路,对于一条多浮点操作数运算指令的命令字和多浮点操作数采取连续写入存储的方法,其写入存储过程占用系统总线;控制器在执行多浮点操作数加/减、乘、除运算命令过程中,内部产生与系统时钟Clock信号同步的读时序脉冲信号,在读时序脉冲信号控制下自主完成读出浮点操作数执行加/减、乘、除运算,运算命令的执行过程不占用系统总线,写入存储多浮点操作数过程与执行运算命令的过程能够并行进行;控制器在执行运算命令处理过程中,系统能够读出执行命令过程中的中间运算结果和最终运算结果。解决上述技术问题的技术方案是:一种多浮点操作数加/减、乘、除运算控制器,用于实现多个32位符合IEEE754标准的浮点数加/减、乘、除的混合运算,包括命令字及操作数写时序控制模块、操作数存储器、操作数读时序控制模块、操作数配置及运算控制模块;所述命令字及操作数写时序控制模块与操作数存储器、操作数读时序控制模块、操作数配置及运算控制模块连接;所述操作数存储器还与操作数读时序控制模块、操作数配置及运算控制模块连接;所述操作数读时序控制模块还与操作数配置及运算控制模块连接;所述命令字及操作数写时序控制模块控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为13个;所述命令字及操作数写时序控制模块被系统选中时,启动命令字及操作数写时序控制模块工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数加/减、乘、除运算指令的命令字,写入指令的多浮点操作数并予以存储;最后一个浮点操作数被写入存储后,所述命令字及操作数写时序控制模块停止工作;所述操作数存储器为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数(下称为操作数);所述操作数存储器的写端口操作数的写入和读端口操作数的读出不存在需要仲裁的情况;写端口受命令字及操作数写时序控制模块控制,将系统数据总线DB传输的操作数写入操作数存储器;读端口受操作数读时序控制模块控制,将操作数读出传输到操作数配置及运算控制模块;所述操作数读时序控制模块在内部读时序脉冲的控制下,自主完成浮点操作数从操作数存储器中的读出,不需要占用系统总线;所述操作数读时序控制模块在命令字及操作数写时序控制模块写入第I个操作数后被启动工作,输出忙信号Busy由“I” 一 “0”,并根据第I个操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与运算,并按照每个操作数的运算符自动调整运算周期;当参与运算的最后I个操作数读出之后,再经过一个运算周期,输出忙信号Busy由“O”一“1”,发出一个时钟周期Clock的结果锁存脉冲后,停止操作数读时序控制模块的工作;所述操作数配置及运算控制模块根据命令字及操作数写时序控制模块输出的运算符选择每个操作数相应的运算器进行计算,根据输出的第I个操作数的类型选通配置参与加/减或乘法运算的操作数I和操作数2 ;当第I个操作数为除法运算时,还需要根据第I个操作数除法运算方式选通配置参与除法运算的操作数a和操作数b;所述操作数配置及运算控制模块能够锁存每次运算的计算结果,并判断计算结果是否异常;系统能够从操作数配置及运算控制模块中读出中间运算结果和命令执行的最终运算结果。其进一步技术方案是:所述命令字及操作数写时序控制模块包括控制器识别、写地址计数器、写操作数脉冲发生控制模块、方式类型寄存器、运算符移位寄存器和与门I ;所述控制器识别的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块的启动信号输入端连接,还与操作数配置及运算控制模块连接;所述控制器识别输入A31到A27的地址值与控制器识别所设定的地址值相等,则控制器识别的CS信号输出端为“0”,否则CS信号输出端为“I” ;所述写地址计数器的操作数个数输入端与系统数据总线DB的D3到DO线连接,写预置脉冲输入端与写操作数脉冲发生控制模块的脉冲①_1输出端连接,写计数脉冲输入端与写操作数脉冲发生控制模块的脉冲③_1输出端连接,写地址输出端与操作数存储器的写地址输入端AB_1连接,写溢出输出端和与门I的一个输入端连接;所述写地址计数器实质上是一个减I计数器,系统DB的D3到DO传输的是参与加/减、乘、除运算的操作数个数值,在写预置脉冲的控制下将输入指令的操作数个数作为计数初值和操作数存储器的4位写地址初值,并置写溢出输出端为“I”状态;每来一个写计数脉冲,写地址计数器输出的写地址值-1,修改操作数存储器写端口存储单元地址值,直到计数值输出端为“O”,即AB_1为“O”,此时写溢出信号由“I”一 “O”,写溢出信号是操作数写入过程结束的标志;所述写操作数脉冲发生控制模块的同步脉冲输入端与系统写信号WR线连接,复位输入端和与门I的输出端连接,脉冲①_1输出端还与方式类型寄存器的锁存信号输入端、运算符移位寄存器的锁存信号输入端、操作数读时序控制模块连接,脉冲②」输出端与操作数存储器写端口的WR_1输入端、操作数读时序控制模块连接;当CS为“O”时,所述写操作数脉冲发生控制模块在系统第I个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“I” 一 “O”才停止工作,置脉冲①_1、脉冲②_1和脉冲③」输出端为“I”状态;所述方式类型寄存器的输入端与系统数据总线DB的D5和D4线连本文档来自技高网...

【技术保护点】
一种多浮点操作数加/减、乘、除运算控制器,用于实现多个32位符合IEEE754标准的浮点数加/减、乘、除的混合运算,其特征在于:该控制器包括命令字及操作数写时序控制模块(Ⅰ)、操作数存储器(Ⅱ)、操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅳ);所述命令字及操作数写时序控制模块(Ⅰ)与操作数存储器(Ⅱ)、操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅳ)连接;所述操作数存储器(Ⅱ)还与操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅳ)连接;所述操作数读时序控制模块(Ⅲ)还与操作数配置及运算控制模块(Ⅳ)连接;所述命令字及操作数写时序控制模块(Ⅰ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为13个;所述操作数存储器(Ⅱ)为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数,以下称为操作数;所述操作数读时序控制模块(Ⅲ)在内部读时序脉冲的控制下,自主完成浮点操作数从操作数存储器(Ⅱ)中的读出,不需要占用系统总线;所述操作数配置及运算控制模块(Ⅳ)根据命令字及操作数写时序控制模块(Ⅰ)输出的运算符选择每个操作数相应的运算器进行计算,所述操作数配置及运算控制模块(Ⅳ)能够锁存每次运算的计算结果,并判断计算结果是否异常;系统能够从操作数配置及运算控制模块(Ⅳ)中读出中间运算结果和命令执行的最终运算结果。...

【技术特征摘要】
1.一种多浮点操作数加/减、乘、除运算控制器,用于实现多个32位符合IEEE754标准的浮点数加/减、乘、除的混合运算,其特征在于:该控制器包括命令字及操作数写时序控制模块(I )、操作数存储器(II)、操作数读时序控制模块(III)、操作数配置及运算控制模块(IV); 所述命令字及操作数写时序控制模块(I )与操作数存储器(II)、操作数读时序控制模块(III)、操作数配置及运算控制模块(IV)连接; 所述操作数存储器(II)还与操作数读时序控制模块(III)、操作数配置及运算控制模块(IV)连接; 所述操作数读时序控制模块(III)还与操作数配置及运算控制模块(IV)连接; 所述命令字及操作数写时序控制模块(I )控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为13个; 所述操作数存储器(II)为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数,以下称为操作数; 所述操作数读时序控制模块(III)在内部读时序脉冲的控制下,自主完成浮点操作数从操作数存储器(II)中的读出,不需要占用系统总线; 所述操作数配置及运算控制模块(IV)根据命令字及操作数写时序控制模块(I )输出的运算符选择每个操作数相应的运算器进行计算,所述操作数配置及运算控制模块(IV)能够锁存每次运算的计算结果,并判断计算结果是否异常;系统能够从操作数配置及运算控制模块(IV)中读出中间运算结果和命令执行的最终运算结果。2.如权利要求1所述的多浮点操作数加/减、乘、除运算控制器,其特征在于:所述命令字及操作数写时序控制模块(I )包括控制器识别(I)、写地址计数器(2)、写操作数脉冲发生控制模块(3)、方式类型寄存器(4)、运算符移位寄存器(5)和与门I (6); 所述控制器识别(I)的输入端与系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块(3)的启动信号输入端连接,还与操作数配置及运算控制模块(IV)连接;所述控制器识别(I)输入A31到A27的地址值与控制器识别(I)所设定的地址值相等,则控制器识别(I)的CS信号输出端为“O”,否则CS信号输出端为“ I” ; 所述写地址计数器(2)的操作数个数输入端与系统数据总线DB的D3到DO线连接,写预置脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,写计数脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲③_1输出端连接,写地址输出端与操作数存储器(II)的写地址输入端AB_1连接,写溢出输出端和与门I (6)的一个输入端连接; 所述写地址计数器(2)实质上是一个减I计数器,系统DB的D3到DO传输的是参与加/减、乘、除运算的操作数个数值,在写预置脉冲的控制下将输入指令的操作数个数作为计数初值和操作数存储器(II)的4位写地址初值,并置写溢出输出端为“I”状态;每来一个写计数脉冲,写地址计数器(2)输出的写地址值-1,修改操作数存储器(II)写端口存储单元地址值,直到计数值输出端为“0”,写溢出信号由“I”一 “0”,写溢出信号是操作数写入过程结束的标志; 所述写操作数脉冲发生控制模块(3)的同步脉冲输入端与系统写信号WR线连接,复位输入端和与门I (6)的输出端连接,脉冲①」输出端还与方式类型寄存器(4)的锁存信号输入端、运算符移位寄存器(5)的锁存信号输入端、操作数读时序控制模块(III)连接,脉冲②_1输出端与操作数存储器(II)写端口的WR_1输入端、操作数读时序控制模块(III)连接;当CS为“O”时,所述写操作数脉冲发生控制模块(3)在系统第I个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“I” 一 “O”才停止工作,置脉冲①_1、脉冲②_1和脉冲③」输出端为“I”状态; 所述方式类型寄存器(4)的输入端与系统数据总线DB的D5和D4线连接,类型输出端与操作数读时序控制模块(III)连接,方式输出端与操作数配置及运算控制模块(IV)连接;所述方式类型寄存器(4)在脉冲①」下降沿的作用下,将第I个操作数的方式和类型的状态锁存在方式类型寄存器(4)中; 所述运算符移位寄存器(5)的输入端与系统数据总线DB的D31到D6线连接,移位脉冲输入端与操作数读时序控制模块(III)连接,运算符输出端与操作数读时序控制模块(III)和操作数配置及运算控制模块(IV)连接; 所述与门I (6)的另二个输入端分别与系统复位信号Rst线、操作数配置及运算控制模块(IV)连接。3.如权利要求2所述的多浮点操作数加/减、乘、除运算控制器,其特征在于:所述操作数读时序控制模块(III)包括读地址计数器(7)、读操作数脉冲发生控制模块(8)、与门II(9)、与门III(IO)和与门IV(Il); 所述读地址计数器(7)的操作数个数输入端和系统数据总线DB的D3到DO线连接,读预置脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,读计数脉冲输入端和与门IV (11)的输出端连接,读地址输出端与操作数存储器(II)的读地址输入端AB_2连接,读溢出输出端 与读操作数脉冲发生控制模块(8)的读溢出输入端连接; 所述读地址计数器(7)实质上是一个减I计数器,在读预置脉冲的作用下将来自系统数据总线DB的D3到DO的操作数个数作为计数初值和操作数存储器(II)读端口的读地址初值,并置读溢出输出端信号为“ I”状态;每来一个读计数脉冲,读地址计数器(7)输出的读地址值-1,修改操作数存储器(II)读端口存储单元地址值,直到为“0”,读溢出信号由“I” 一 “O”,是读地址计数器(7)停止工作的标志; 所述读操作数脉冲发生控制模块(8)的同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门III(IO)的输出端连接,读启动输入端与写操作数脉冲发生控制模块(3)的脉冲②_1输出端连接,类型输入端与方式类型寄存器(4)的类型输出端连接,运算符输入端与运算符移位寄存器(5)的运算符输出端连接;脉冲①_2输出端和与门II (9)的一个输入端、操作数配置及运算控制模块(IV)连接;脉冲②_2输出端和与门IV(Il)的一个输入端、操作数配置及运算控制模块(IV)连接;脉冲③_2输出端和与门II (9)的另一个输入端连接;脉冲④_2输出端和与门IV (11)的另一个输入端连接;脉冲⑤_2和脉冲?_2输出端与操作数配置及运算控制模块(IV)连接;Busy输出端向系统输出Bu...

【专利技术属性】
技术研发人员:李克俭蔡启仲黄仕林任杰王鸣桃
申请(专利权)人:广西科技大学
类型:新型
国别省市:广西;45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1