【技术实现步骤摘要】
双指令多浮点操作数加/减运算控制器
本专利技术涉及一种双指令多浮点操作数加/减运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的双指令多浮点操作数加/减运算控制电路及其时序控制方法。
技术介绍
浮点数加/减运算器实现2个32位符合IEEE754标准的浮点数加/减运算;运算器输入参与运算的两个浮点操作数,一个是操作数1,一个是操作数2,执行一次加法或减法运算输出一个运算结果,在运算过程中,操作数1和操作数2必须维持稳定;运算器的操作数1输入端与一个暂存器的输出端连接,操作数2输入端直接与微处理器的内部数据总线连接,或与另一个暂存器的输出端连接;其操作过程分为两种情况,一种情况是分时通过微处理器的内部数据总线将操作数1和操作数2分别传输至运算器的两个暂存器,运算结束再通过微处理器的内部数据总线将运算结果写回存放在操作数1的暂存器中,并通过数据总线传输到存储器的一个存储单元中;第二种情况是操作数1是上次运算的结果,上次运算结果写回操作数1的暂存器中之后,再传输操作数2,然后进行运算;运算结果写回和操作数2的传输的处理过程是通过微处理器的内部数据总线分时操作,如果运算器运算时间为2个或3个时钟周期,浮点操作数的传输、运算结果的写回和运算将占用多个系统时钟周期Clock;如果有多个连续的加减运算,比如7个操作数,需要6条运算指令予以实现,执行这6条指令需要取指和指令译码6次,结果写回6次,而操作数2传送给运算器的一个输入端和结果写回到操作数1暂存器的过程是由微处理器控制部件发出控制脉冲处理,不利于进一步提高算术运算类指令执行的速度;浮点数加/减运算器的设计 ...
【技术保护点】
一种双指令多浮点操作数加/减运算控制器,其特征在于:该控制器包括操作数存储器(Ⅰ)、命令字及其多操作数写时序控制模块(Ⅱ)、存储器读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、运算与输出控制模块(Ⅴ);所述操作数存储器(Ⅰ)与命令字及其多操作数写时序控制模块(Ⅱ)、存储器读时序控制模块(Ⅲ)、运算与输出控制模块(Ⅴ)连接;所述命令字及其多操作数写时序控制模块(Ⅱ)还与存储器读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、运算与输出控制模块(Ⅴ)连接;所述存储器读时序控制模块(Ⅲ)还与存储器数据空标志控制器(Ⅳ)、运算与输出控制模块(Ⅴ)连接;所述操作数存储器(Ⅰ)为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数(下称为操作数);所述操作数存储器(Ⅰ)分为存储器1和存储器2两个存储区域;所述操作数存储器(Ⅰ)的写地址高位输入端AB5_1为“0”,或读地址高位输入端AB5_2为“0”,选中操作数存储器(Ⅰ)的26个低地址存储单元,即存储器1;写地址高位输入端AB5_1为“1”,或读地址高位输入端AB5_2为“1”,选中操作数存储器(Ⅰ)的26个高地址存储单元,即存储 ...
【技术特征摘要】
1.一种双指令多浮点操作数加/减运算控制器,其特征在于:该控制器包括操作数存储器(Ⅰ)、命令字及其多操作数写时序控制模块(Ⅱ)、存储器读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、运算与输出控制模块(Ⅴ);所述操作数存储器(Ⅰ)与命令字及其多操作数写时序控制模块(Ⅱ)、存储器读时序控制模块(Ⅲ)、运算与输出控制模块(Ⅴ)连接;所述命令字及其多操作数写时序控制模块(Ⅱ)还与存储器读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、运算与输出控制模块(Ⅴ)连接;所述存储器读时序控制模块(Ⅲ)还与存储器数据空标志控制器(Ⅳ)、运算与输出控制模块(Ⅴ)连接;所述操作数存储器(Ⅰ)为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数(下称为操作数);所述操作数存储器(Ⅰ)分为存储器1和存储器2两个存储区域;所述操作数存储器(Ⅰ)的写地址高位输入端AB5_1为“0”,或读地址高位输入端AB5_2为“0”,选中操作数存储器(Ⅰ)的26个低地址存储单元,即存储器1;写地址高位输入端AB5_1为“1”,或读地址高位输入端AB5_2为“1”,选中操作数存储器(Ⅰ)的26个高地址存储单元,即存储器2;所述命令字及其多操作数写时序控制模块(Ⅱ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为26个;所述命令字及其多操作数写时序控制模块(Ⅱ)在操作数存储器(Ⅰ)的存储器1或存储器2为数据空,输出写指令允许信号,方允许被系统选中;当被系统选中写命令字时,在系统WR信号的作用下,写入加/减运算命令字;当被系统选中写操作数时,命令字及其多操作数写时序控制模块(Ⅱ)内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在操作数存储器(Ⅰ)的存储器1或存储器2中;一条指令的最后一个操作数被写入存储后,转换操作数存储器(Ⅰ)的写高位地址输入端AB5_1状态,如果操作数存储器(Ⅰ)的存储器1和存储器2都非空,停止命令字及其多操作数写时序控制模块(Ⅱ)的工作;所述存储器读时序控制模块(Ⅲ)在内部读时序脉冲的控制下,自主完成多浮点操作数从操作数存储器(Ⅰ)中读出,不需要占用系统总线;所述存储器读时序控制模块(Ⅲ)产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与加或减运算;当参与运算的最后一个操作数读出之后,产生读地址溢出信号,然后再经过一个加或减的运算周期,发出读运行状态结束的信号,产生一个时钟周期Clock的结果锁存脉冲,然后再发出启动使能信号;所述存储器读时序控制模块(Ⅲ)依据存储器数据空标志控制器(Ⅳ)的空标志状态读出操作,有下面4种工作状态:1)所述存储器数据空标志控制器(Ⅳ)无存储器1空、存储器2空的标志输出,表明存储器1、存储器2都为数据非空,一个非空的存储器正在写入指令或写入指令过程已结束,另一个存储器正在读出操作数;若正在执行的命令运算结束,启动使能信号由“1”→“0”,转为一个存储器空,另一个存储器非空的状态,此时在命令运算过程结束后的第1个系统时钟Clock的下降沿作为时序脉冲发生的启动信号,向系统发送写指令允许信号;启动存储器读时序控制模块(Ⅲ)的工作;2)所述存储器数据空标志控制器(Ⅳ)输出任何一个存储器空的标志,会处于两种操作状态,一是非空的存储器正在写入操作数,该存储器同时执行读出操作;二是非空的存储器写入指令过程已结束,正在执行读出操作;若命令运算过程结束,启动使能信号由“1”→“0”,转为存储器1和存储器2都空的状态;3)所述存储器数据空标志控制器(Ⅳ)同时输出存储器1空、存储器2空的标志,停止存储器读时序控制模块(Ⅲ)的工作,向系统发送写指令允许信号;4)所述存储器数据空标志控制器(Ⅳ)同时输出存储器1空、存储器2空的标志,且命令字及其多操作数写时序控制模块(Ⅱ)再次被系统选中写入命令字,命令字及其多操作数写时序控制模块(Ⅱ)输出写预置脉冲作为浮点操作数读时序控制模块(Ⅲ)的内部时序脉冲发生器的启动信号;所述运算与输出控制模块(Ⅴ)根据操作数类型,对参与运算的第1个操作数进行选通控制,选通配置参与加/减运算的操作数1是来自运算结果还是从操作数存储器(Ⅰ)读出的第1个操作数;运算与输出控制模块(Ⅴ)根据运算符确定进行加法还是减法运算,运算中间结果在存储器读时序控制模块(Ⅲ)发出的结果锁存信号作用下锁存运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止存储器读时序控制模块(Ⅲ)的工作;当系统需要读出运算结果时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。2.如权利要求1所述的双指令多浮点操作数加/减运算控制器,其特征在于:所述命令字及其多操作数写时序控制模块(Ⅱ)包括模块地址识别(1)、写高位地址控制器(2)、写端口地址计数器(3)、写端口脉冲发生控制器(4)、待执行命令寄存器(5)、运算符寄存器(6)、执行命令寄存器(7)、运算符移位寄存器(8)、非门Ⅰ(9)、非门Ⅱ(10)、或门Ⅰ(11)、或门Ⅱ(12)、或门Ⅲ(13)、或门Ⅳ(14)、与门Ⅰ(15)和与门Ⅱ(16);所述模块地址识别(1)输入端和系统地址总线AB的A31到A27线连接,CS1输出端和或门Ⅱ(12)的一个输入端连接,CS2输出端和或门Ⅲ(13)的一个输入端、写端口脉冲发生控制器(4)的使能输入端、运算与输出控制模块(Ⅴ)连接;所述模块地址识别(1)内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别(1)输入的系统地址总线AB的A31到A27的地址值与模块地址识别(1)中设置的地址值进行比较,如果和写命令字地址值相等,则输出CS1为“0”,如果和写操作数地址值相等,则输出CS2为“0”;在任何时刻,CS1和CS2只有一个输出为“0”,或输出都为“1”;所述写高位地址控制器(2)的锁存信号输入端与写端口地址计数器(3)的写溢出输出端连接,写高位地址输入端和非门Ⅱ(10)的输出端连接,复位输入端和与门Ⅰ(15)的输出端连接,输出端和非门Ⅱ(10)的输入端、操作数存储器(Ⅰ)的写地址高位输入端AB5_1、存储器数据空标志控制器(Ⅳ)连接;所述写高位地址控制器(2)输出的是操作数存储器(Ⅰ)的最高位地址值AB5_1;当操作数存储器(Ⅰ)的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位写高位地址控制器(2),其输出为“0”;当写高位地址控制器(2)的锁存信号输入端由“1”→“0”时,写高位地址控制器(2)输出端输出的AB5_1状态翻转;所述写端口地址计数器(3)的操作数个数输入端与系统数据总线DB的D4到D0线连接,写预置脉冲输入端和或门Ⅱ(12)的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器(4)的脉冲②_1输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和操作数存储器(Ⅰ)的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器(4)的写溢出输入端、非门Ⅰ(9)的输入端、存储器数据空标志控制器(Ⅳ)连接;所述写端口地址计数器(3)实质上是一个减1计数器,系统DB的D4到D0传输的是参与加/减运算的操作数个数值,当操作数存储器(Ⅰ)的存储器1空或存储器2空,且满足模块地址识别(1)的CS2输出端为“0”时,WR信号作为写预置脉冲将操作数个数值作为操作数存储器(Ⅰ)写端口的低5位地址初值预置给写端口地址计数器(3),并将写溢出输出端设置为“1”状态;所述写端口地址计数器(3)输出操作数存储器(Ⅰ)的写端口低5位地址值AB_1;当写计数脉冲输入端来一个计数脉冲时,写端口地址计数器(3)进行一次-1操作,直到写地址输出端为“0”,AB_1为“0”,此时写溢出信号输出端由“1”→“0”,写溢出信号作为写端口地址计数器(3)停止工作的标志,使得写高位地址控制器(2)的锁存信号输入端由“1”→“0”时,写高位地址控制器(2)输出的AB5_1状态翻转;写端口地址计数器(3)在系统复位信号Rst的作用下,复位写端口地址计数器(3),使得写溢出信号输出端为“0”状态;所述写端口脉冲发生控制器(4)的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门Ⅱ(16)的输出端连接,脉冲①_1输出端和操作数存储器(Ⅰ)的写信号输入端WR_1连接;所述写端口脉冲发生控制器(4)的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲②_1,脉冲①_1作为操作数存储器(Ⅰ)的写入信号WR_1,脉冲②_1作为写端口地址计数器(3)的写计数脉冲;当写溢出信号输出端由“1”→“0”时,所述写端口脉冲发生控制器(4)停止工作,脉冲①_1和脉冲②_1的输出端为“1”状态;所述待执行命令寄存器(5)的命令输入端和系统数据总线DB的D5到D0线连接,锁存信号输入端和或门Ⅱ(12)的输出端连接,输出端与执行命令寄存器(7)的命令输入端连接;所述运算符寄存器(6)的运算符输入端和系统数据总线DB的D31到D6线连接,锁存输入端和或门Ⅱ(12)的输出端连接,输出端和运算符移位寄存器(8)的运算符输入端连接;所述执行命令寄存器(7)的锁存信号输入端与存储器读时序控制模块(Ⅲ)连接,类型输出端、读操作数个数输出端与存储器读时序控制模块(Ⅲ)连接;所述执行命令寄存器(7)输出的操作数类型为2种:类型0:写入操作数存储器(Ⅰ)的存储器1或存储器2中的第1个操作数作为参与加/减运算的操作数2,运算结果作为操作数1;类型1:写入操作数存储器(Ⅰ)的存储器1或存储器2中的第1个操作数作为参与加/减运算的操...
【专利技术属性】
技术研发人员:李克俭,蔡启仲,孙培燕,徐晓宇,王鸣桃,
申请(专利权)人:广西科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。