发明名称 多浮点操作数除运算控制器
摘要 一种多浮点操作数除运算控制器,包括命令字及其操作数写时序控制模块、操作数存储器、浮点操作数读时序控制模块、操作数配置运算控制模块;该控制器应用FPGA设计硬连接控制电路,内部产生写时序脉冲将指令的命令字和浮点操作数按顺序连续写入存储,在内部产生的读时序脉冲作用下,按顺序读出浮点操作数执行除法运算;写入最后一个浮点操作数之后,执行除法运算命令过程不受系统控制,系统能够转去处理其他指令程序;在执行除法运算的过程中,能够读出中间运算和最终运算结果;每条指令可有127个浮点操作数,一条指令相当于多条微处理器除法运算指令,减少了系统的取指和译码、浮点操作数和运算结果写回的传输操作过程,提高了处理速度。
申请公布号 CN103645877B 申请公布日期 2017.01.11
申请号 CN201310681578.3 申请日期 2013.12.13
申请人 广西科技大学 发明人 蔡启仲;潘绍明;郑力;李克俭;王鸣桃
分类号 G06F7/537(2006.01)I 主分类号 G06F7/537(2006.01)I
代理机构 柳州市荣久专利商标事务所(普通合伙) 45113 代理人 张荣玖
主权项 一种多浮点操作数除运算控制器,实现多个32位符合IEEE754标准的浮点数除法运算,其特征在于:该控制器包括命令字及其浮点操作数写时序控制模块(Ⅰ)、浮点操作数存储器(Ⅱ)、浮点操作数读时序控制模块(Ⅲ)、浮点操作数配置运算控制模块(Ⅳ);所述命令字及其浮点操作数写时序控制模块(Ⅰ)与浮点操作数存储器(Ⅱ)、浮点操作数读时序控制模块(Ⅲ)、浮点操作数配置运算控制模块(Ⅳ)连接;所述浮点操作数存储器(Ⅱ)还与浮点操作数读时序控制模块(Ⅲ)、浮点操作数配置运算控制模块(Ⅳ)连接;所述浮点操作数读时序控制模块(Ⅲ)还与浮点操作数配置运算控制模块(Ⅳ)连接;所述命令字及其浮点操作数写时序控制模块(Ⅰ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个浮点操作数,浮点操作数最多为127个;所述命令字及其浮点操作数写时序控制模块(Ⅰ)被系统选中时,启动命令字及其浮点操作数写时序控制模块(Ⅰ)工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数除法指令的命令字,写入多浮点操作数予以存储;最后一个浮点操作数被写入存储后,所述命令字及其浮点操作数写时序控制模块(Ⅰ)停止工作;所述浮点操作数存储器(Ⅱ)为双端口存储器,一个只写端口,一个只读端口,用于储存浮点操作数;所述浮点操作数存储器(Ⅱ)的写端口浮点操作数的写入和读端口浮点操作数的读出不存在需要仲裁的情况;所述浮点操作数存储器(Ⅱ)的写端口受命令字及其浮点操作数写时序控制模块(Ⅰ)控制,将系统数据总线DB传输的浮点操作数写入浮点操作数存储器(Ⅱ);读端口受浮点操作数读时序控制模块(Ⅲ)控制,将浮点操作数读出传输到浮点操作数配置运算控制模块(Ⅳ);所述浮点操作数读时序控制模块(Ⅲ)在内部读时序脉冲的控制下,自主完成浮点操作数从浮点操作数存储器(Ⅱ)中的读出,不需要占用系统总线;所述浮点操作数读时序控制模块(Ⅲ)在命令字及其浮点操作数写时序控制模块(Ⅰ)写入第1个浮点操作数后被启动工作,输出忙信号Busy由“1”→“0”,并根据第1个浮点操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将浮点操作数读出参与除法运算;当参与运算的最后1个浮点操作数读出之后,再经过一个除法运算的时间周期,输出忙信号Busy由“0”→“1”,发出一个时钟周期Clock的结果锁存脉冲后,停止浮点操作数读时序控制模块(Ⅲ)的工作;所述浮点操作数配置运算控制模块(Ⅳ)根据浮点操作数存储器(Ⅱ)传输的第1个浮点操作数的除法方式和类型,选通配置除法运算器的二个输入端的浮点操作数1和浮点操作数2,能够锁存每次除法运算的运算结果,判断运算结果是否异常;系统能够从浮点操作数配置运算控制模块(Ⅳ)中读出中间运算结果和命令执行的最终运算结果;所述命令字及其浮点操作数写时序控制模块(Ⅰ)包括控制器识别(1)、写地址计数器(2)、写浮点操作数脉冲发生控制模块(3)、方式类型寄存器(4)和与门Ⅰ(5);所述控制器识别(1)的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写浮点操作数脉冲发生控制模块(3)的写启动信号输入端、浮点操作数配置运算控制模块(Ⅳ)连接;所述控制器识别(1)输入A31到A27的地址值与控制器识别(1)所设定的地址值相等,则控制器识别(1)的CS信号输出端为“0”,否则CS信号输出端为“1”;所述写地址计数器(2)的浮点操作数个数输入端与系统数据总线DB的D6到D0线连接,写预置脉冲输入端与写浮点操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,写计数脉冲输入端与写浮点操作数脉冲发生控制模块(3)的脉冲③_1输出端连接,写地址输出端与浮点操作数存储器(Ⅱ)的写地址输入端AB_1连接,写溢出输出端和与门Ⅰ(5)的一个输入端连接;所述写浮点操作数脉冲发生控制模块(3)的写同步脉冲输入端与系统写信号WR线连接,复位输入端和与门Ⅰ(5)的输出端连接,脉冲①_1输出端还与方式类型寄存器(4)锁存信号输入端连接,作为读预置脉冲与浮点操作数读时序控制模块(Ⅲ)连接,脉冲②_1输出端与浮点操作数存储器(Ⅱ)写端口的WR_1输入端连接,作为读启动脉冲与浮点操作数读时序控制模块(Ⅲ)连接;当CS为“0”时,所述写浮点操作数脉冲发生控制模块(3)在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“1”→“0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③_1输出端为“1”状态;所述方式类型寄存器(4)的输入端与系统数据总线DB的D8和D7线连接,方式输出端与浮点操作数配置运算控制模块(Ⅳ)连接,类型输出端与浮点操作数读时序控制模块(Ⅲ)连接;所述与门Ⅰ(5)的另二个输入端分别与系统复位信号Rst线、浮点操作数配置运算控制模块(Ⅳ)连接;当控制器识别(1)输出的CS信号由“1”→“0”时,所述命令字及其浮点操作数写时序控制模块(Ⅰ)启动写浮点操作数脉冲发生控制模块(3)工作<b>,</b>写浮点操作数脉冲发生控制模块(3)发出与系统WR信号同步的时序脉冲序列信号,在脉冲①_1下降沿的作用下,将指令的命令字的第1个浮点操作数的除法方式和类型锁存在方式类型寄存器(4)中,将浮点操作数个数值预置给写地址计数器(2),作为写地址计数器(2)的计数初值和浮点操作数存储器(Ⅱ)写端口的写地址初值,并置写溢出输出端为“1”状态;脉冲②_1作为浮点操作数存储器(Ⅱ)写端口的WR_1信号,将浮点操作数写入浮点操作数存储器(Ⅱ)中;脉冲③_1作为写地址计数器(2)的写计数脉冲,这样每写入一个浮点操作数,产生1个计数脉冲,写地址输出端输出的地址值‑1指向浮点操作数存储器(Ⅱ)写端口的下一个存储单元的地址,当写地址输出端输出的地址值由预置值减至“0”时,写溢出输出端由“1”→“0”,复位写浮点操作数脉冲发生控制模块(3),置所有的脉冲输出端为“1”状态;所述浮点操作数读时序控制模块(Ⅲ)包括读地址计数器(6)、读浮点操作数脉冲发生控制模块(7)、与门Ⅱ(8)、与门Ⅲ(9)和与门Ⅳ(10);所述读地址计数器(6)的浮点操作数个数输入端与系统数据总线DB的D6到D0线连接,读预置脉冲输入端与写浮点操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,读计数脉冲输入端和与门Ⅳ(10)的输出端连接,读地址输出端与浮点操作数存储器(Ⅱ)的读地址输入端AB_2连接,读溢出输出端与读浮点操作数脉冲发生控制模块(7)的读溢出输入端连接;所述读地址计数器(6)在读预置脉冲的作用下将输入命令的浮点操作数个数作为计数初值、浮点操作数存储器(Ⅱ)读端口的读地址初值,并置读溢出输出端信号为“1”状态;每来一个读计数脉冲,读地址计数器(6)的读地址值‑1,修改浮点操作数存储器(Ⅱ)读端口存储单元地址值,当读地址计数器(6)输出的读地址值由预置值减至“0”时,读溢出输出端由“1”→“0”,读溢出输出信号是浮点操作数读出过程结束的标志;所述读浮点操作数脉冲发生控制模块(7)的读同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门Ⅲ(9)的输出端连接,读启动输入端与写浮点操作数脉冲发生控制模块(3)的脉冲②_1输出端连接,读时序控制输入端与方式类型寄存器(4)的类型输出端连接;脉冲①_2输出端和与门Ⅱ(8)的一个输入端、浮点操作数配置运算控制模块(Ⅳ)连接;脉冲②_2输出端和与门Ⅳ(10)的一个输入端、浮点操作数配置运算控制模块(Ⅳ)连接,脉冲③_2输出端和与门Ⅱ(8)的另一个输入端连接;脉冲④_2输出端和与门Ⅳ(10)的另一个输入端连接;脉冲⑤_2输出端、脉冲⑥_2输出端与浮点操作数配置运算控制模块(Ⅳ)连接;Busy输出端向系统输出Busy忙信号;所述与门Ⅱ(8)的输出端与浮点操作数存储器(Ⅱ)的读信号输入端RD_2连接;所述与门Ⅲ(9)的二个输入端分别与系统复位信号Rst线、浮点操作数配置运算控制模块(Ⅳ)连接;当复位输入端为“1”时,所述浮点操作数读时序控制模块(Ⅲ)在脉冲①_1的读预置脉冲作用下将浮点操作数个数值预置给读地址计数器(6),浮点操作数存储器(Ⅱ)读端口的地址初值为浮点操作数个数值;在第一个脉冲②_1的读启动脉冲作用下启动读浮点操作数脉冲发生控制模块(7)的工作,Busy输出端由“1”→“0”;当读浮点操作数脉冲发生控制模块(7)的读时序控制输入端输入的类型信号为“0”时,按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,以及发出一个脉冲⑥_2,当读溢出输入端信号由“1”→“0”时,置脉冲③_2、脉冲④_2输出端为“1”,停止脉冲③_2和脉冲④_2产生,经过一个运算周期时间,Busy输出端由“0”→“1”状态,输出一个时钟周期Clock的锁存结果脉冲⑤_2,然后置脉冲⑤_2输出端为“1”,浮点操作数读时序控制模块(Ⅲ)停止工作;当读浮点操作数脉冲发生控制模块(7)的读时序控制输入端输入的类型信号为“1”时,按照顺序发出脉冲①_2和脉冲②_2,再按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,脉冲③_2、脉冲④_2、脉冲⑤_2产生过程与类型信号为“0”时相同;所述浮点操作数配置运算控制模块(Ⅳ)包括选通器(11)、结果寄存器(12)、浮点操作数交换器(13)、浮点数除法运算器(14)、运算异常标志控制(15)、32位三态门组(16)、与门Ⅴ(17)、与门Ⅵ(18)、或门Ⅰ(19)和或门Ⅱ(20);所述选通器(11)的二个输入端分别和浮点操作数存储器(Ⅱ)的浮点操作数输出端DB_2、浮点数除法运算器(14)的运算结果输出端连接,输出端和结果寄存器(12)的输入端连接;选通控制输入端和与门Ⅴ(17)的输出端连接;所述结果寄存器(12)的输出端和浮点操作数交换器(13)的交换数1输入端、32位三态门组(16)输入端连接;结果锁存信号输入端和与门Ⅵ(18)的输出端连接;所述浮点操作数交换器(13)的交换数2输入端与浮点操作数存储器(Ⅱ)的浮点操作数输出端DB_2连接,交换控制端和或门Ⅰ(19)的输出端连接,二个输出端分别与浮点数除法运算器(14)的浮点操作数1输入端、浮点操作数2输入端连接;所述浮点数除法运算器(14)的运算结果输出端还与运算异常标志控制(15)的运算结果输入端连接;所述运算异常标志控制(15)的锁存结果脉冲输入端与读浮点操作数脉冲发生控制模块(7)的锁存结果脉冲⑤_2输出端连接;IRQ输出端和与门Ⅰ(5)的另一个输入端、与门Ⅲ(9)的另一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制(15)向系统发出中断请求信号IRQ,并复位写浮点操作数脉冲发生控制模块(3)和读浮点操作数脉冲发生控制模块(7);所述32位三态门组(16)的输出端和系统数据总线DB连接,控制输入端和或门Ⅱ(20)的输出端连接;所述与门Ⅴ(17)的二个输入端分别与读浮点操作数脉冲发生控制模块(7)的脉冲①_2、脉冲②_2的输出端连接;所述与门Ⅵ(18)的二个输入端分别与读浮点操作数脉冲发生控制模块(7)的脉冲②_2、脉冲⑤_2的输出端连接;所述或门Ⅰ(19)的一个输入端与方式类型寄存器(4)的方式输出端连接,另一个输入端与读浮点操作数脉冲发生控制模块(7)的脉冲⑥_2输出端连接;所述或门Ⅱ(20)的二个输入端分别与控制器识别(1)的CS信号输出端、系统读信号RD线连接;当CS为“0”时,在系统RD信号的作用下,读出中间运算结果或命令执行的最终运算结果。
地址 545006 广西壮族自治区柳州市东环路268号