发明名称 双指令多浮点操作数加/减、乘、除运算控制器
摘要 一种双指令多浮点操作数加/减、乘、除运算控制器,包括双端口只读只写存储器、命令字及其多操作数写时序控制模块、浮点操作数读时序控制模块、存储器数据空标志控制器和操作数配置及运算控制模块;该控制器应用FPGA设计硬连接控制电路,内部产生的写时序脉冲控制命令字和操作数的连续写入;产生与Clock同步的读时序脉冲自主控制四则混合运算;控制器能够存储两条指令,其中,一条指令执行,另一条指令待执行;或一条指令正在执行,另一条指令写入;或一条指令正在写入,同时被执行;运算命令执行过程不占用系统总线,执行一条指令相当于微处理器执行多条指令,减少了系统对指令的取指、译码、浮点操作数传输和运算结果写回的操作次数。
申请公布号 CN103645887A 申请公布日期 2014.03.19
申请号 CN201310694831.9 申请日期 2013.12.13
申请人 广西科技大学 发明人 蔡启仲;李克俭;陆伟男;吴洁琼;王鸣桃
分类号 G06F9/302(2006.01)I 主分类号 G06F9/302(2006.01)I
代理机构 柳州市荣久专利商标事务所(普通合伙) 45113 代理人 张荣玖
主权项 一种双指令多浮点操作数加/减、乘、除运算控制器,其特征在于:该控制器包括双端口只读只写存储器(Ⅰ)、命令字及多操作数写时序控制模块(Ⅱ)、浮点操作数读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)和操作数配置及运算控制模块(Ⅴ);所述双端口只读只写存储器(Ⅰ)与命令字及多操作数写时序控制模块(Ⅱ)、浮点操作数读时序控制模块(Ⅲ)、操作数配置及运算控制模块(Ⅴ)连接;所述命令字及多操作数写时序控制模块(Ⅱ)还与浮点操作数读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、操作数配置及运算控制模块(Ⅴ)连接;所述浮点操作数读时序控制模块(Ⅲ)还与存储器数据空标志控制器(Ⅳ)、操作数配置及运算控制模块(Ⅴ)连接;所述双端口只读只写存储器(Ⅰ)为双端口存储器,一个只写端口,一个只读端口,用于储存两条指令的浮点操作数(下称为操作数);所述双端口只读只写存储器(Ⅰ)分为存储器1和存储器2两个存储区域;所述双端口只读只写存储器(Ⅰ)的写地址高位输入端AB4_1为“0”,或读地址高位输入端AB4_2为“0”,选中双端口只读只写存储器(Ⅰ)的13个低地址存储单元,即存储器1;写地址高位输入端AB4_1为“1”,或读地址高位输入端AB4_2为“1”,选中双端口只读只写存储器(Ⅰ)的13个高地址存储单元,即存储器2;所述命令字及多操作数写时序控制模块(Ⅱ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括32位命令字和若干个操作数,操作数最多为13个;所述命令字及多操作数写时序控制模块(Ⅱ)在双端口只读只写存储器(Ⅰ)的存储器1或存储器2为数据空,输出写指令允许信号,方允许被系统选中;当被系统选中写命令字时,在系统WR信号的作用下,写入命令字;当被系统选中写操作数时,其内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在双端口只读只写存储器(Ⅰ)的存储器1或存储器2中;一条指令的最后一个操作数被写入存储后,转换双端口只读只写存储器(Ⅰ)的写高位地址输入端AB4_1状态,如果双端口只读只写存储器(Ⅰ)的存储器1和存储器2都非空,停止命令字及多操作数写时序控制模块(Ⅱ)的工作;所述命令字及多操作数写时序控制模块(Ⅱ)将写入的命令字分为待执行命令字存储和执行命令字的存储,执行命令字分为第1个操作数类型、第1个操作数除法运算方式和操作数个数的存储、每个操作数的运算符标志的存储;所述浮点操作数读时序控制模块(Ⅲ)在内部读时序脉冲的控制下,自主完成浮点操作数从双端口只读只写存储器(Ⅰ)中的读出,不需要占用系统总线;所述浮点操作数读时序控制模块(Ⅲ)产生与系统时钟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和操作数2,第1个操作数为除法运算时,还需要根据第1个操作数除法运算方式选通配置参与除法运算的操作数a和操作数b;所述操作数配置及运算控制模块(Ⅴ)能够锁存运算结果,并判断运算结果是否异常;系统能够从操作数配置及运算控制模块(Ⅴ)中读出中间运算结果和命令执行的最终运算结果。
地址 545006 广西壮族自治区柳州市东环路268号