首页 / 专利库 / 信号处理 / 时钟信号发生器 / 双指令多浮点操作数除运算控制器

双指令多浮点操作数除运算控制器

阅读:734发布:2022-04-25

专利汇可以提供双指令多浮点操作数除运算控制器专利检索,专利查询,专利分析的服务。并且一种双指令多浮点操作数除运算 控制器 ,包括双端口只读只写 存储器 、命令及其多操作数写时序控 制模 块 、浮点操作数读时序 控制模块 、存储器数据空标志控制器和配置运算与输出控制模块;该控制器应用FPGA设计硬连接控制 电路 ,能够存储两条指令,且双指令能够并行处理,一条指令执行,另一指令待执行;或一条指令执行,另一指令写入;或一条指令操作数正在写入,同时被读出处理;控制器内部产生的写时序脉冲控制连续写入多个操作数;与系统Clock同步的读时序脉冲自主控制多个操作浮点数的除法运算,不占用 系统总线 ,执行一条指令相当于 微处理器 执行多条除法指令,减少了系统对指令的取指、译码、浮点操作数传输和运算结果写回的操作次数。,下面是双指令多浮点操作数除运算控制器专利的具体信息内容。

1.一种双指令多浮点操作数除运算控制器,其特征在于:该控制器包括双端口只读
只写存储器(Ⅰ)、命令字及其多操作数写时序控制模(Ⅱ)、浮点操作数读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、配置运算与输出控制模块(Ⅴ);
所述双端口只读只写存储器(Ⅰ)与命令字及其多操作数写时序控制模块(Ⅱ)、浮点操作数读时序控制模块(Ⅲ)、配置运算与输出控制模块(Ⅴ)连接;
所述命令字及其多操作数写时序控制模块(Ⅱ)还与浮点操作数读时序控制模块(Ⅲ)、存储器数据空标志控制器(Ⅳ)、配置运算与输出控制模块(Ⅴ)连接;
所述浮点操作数读时序控制模块(Ⅲ)还与存储器数据空标志控制器(Ⅳ)、配置运算与输出控制模块(Ⅴ)连接;
所述双端口只读只写存储器(Ⅰ)为双端口存储器,一个只写端口,一个只读端口,用于储存多浮点操作数(下称为操作数);所述双端口只读只写存储器(Ⅰ)分为存储器1和存储器2两个存储区域;所述双端口只读只写存储器(Ⅰ)的写地址高位输入端AB7_1为“0”,或读地址高位输入端AB7_2为“0”,选中操作数存储器的127个低地址存储单元,即存储器1;
写地址高位输入端AB7_1为“1”,或读地址高位输入端AB7_2为“1”,选中操作数存储器的
127个高地址存储单元,即存储器2;
所述命令字及其多操作数写时序控制模块(Ⅱ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其多操作数写时序控制模块(Ⅱ)在双端口只读只写存储器(Ⅰ)的存储器1或存储器2为数据空,输出写指令允许信号,方允许被系统选中;被系统选中写指令时,在系统WR信号的作用下,写入除运算命令字;被系统选中写操作数时,其内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在双端口只读只写存储器(Ⅰ)的存储器
1或存储器2中;一条指令的最后一个操作数被写入存储后,转换双端口只读只写存储器(Ⅰ)的写高位地址输入端AB7_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还是操作数2,选通配置运算结果是作为除运算器的操作数1还是操作数2,或运算结果不参与执行除法命令的第一次运算;在浮点操作数读时序控制模块(Ⅲ)发出的结果锁存信号作用下,锁存除法运算的运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止浮点操作数读时序控制模块(Ⅲ)的工作;当使能信号CS2为“0”时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。
2.如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述命令字
及其多操作数写时序控制模块(Ⅱ)包括模块地址识别(1)、写高位地址控制器(2)、写端口地址计数器(3)、写端口脉冲发生控制器(4)、待执行命令寄存器(5)、执行命令寄存器(6)、非Ⅰ(7)、非门Ⅱ(8)、或门Ⅰ(9)、或门Ⅱ(10)、或门Ⅲ(11)、与门Ⅰ(12)、与门Ⅱ(13)和与门Ⅲ(14);
所述模块地址识别(1)输入端和系统地址总线AB的A31到A27线连接,CS1输出端和
或门Ⅱ(10)的一个输入端连接,CS2输出端和或门Ⅲ(11)的一个输入端、写端口脉冲发生控制器(4)的使能输入端、配置运算与输出控制模块(Ⅴ)连接;
所述模块地址识别(1)内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别(1)输入A31到A27地址值与模块地址识别(1)中设置的地址值进行比较,如果和写命令字地址值相等,则输出CS1为“0”,如果和写操作数地址值相等,则输出CS2为“0”;在任何时刻,CS1和 CS2只有一个输出为“0”,或输出都为“1”;
所述写高位地址控制器(2)的锁存信号输入端与写端口地址计数器(3)的写溢出输出端连接,写高位地址输入端和非门Ⅱ(8)的输出端连接,复位输入端和与门Ⅱ(13)的输出端连接,输出端和非门Ⅱ(8)的输入端、双端口只读只写存储器(Ⅰ)的写地址高位输入端AB7_1、存储器数据空标志控制器(Ⅳ)连接;
所述写高位地址控制器(2)输出的是双端口只读只写存储器(Ⅰ)的最高位地址值
AB7_1;当双端口只读只写存储器(Ⅰ)的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位写高位地址控制器(2),其输出为“0”;当写高位地址控制器(2)的锁存信号输入端由“1”→“0”时,写高位地址控制器(2)输出端输出的AB7_1状态翻转;
所述写端口地址计数器(3)的操作数个数输入端与系统数据总线DB的D6到D0线连
接,写预置脉冲输入端和或门Ⅱ(10)的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器(4)的脉冲②_1输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和双端口只读只写存储器(Ⅰ)的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器(4)的写溢出输入端、非门Ⅰ(7)的输入端、存储器数据空标志控制器(Ⅳ)连接;
所述写端口地址计数器(3)实质上是一个减1计数器,系统DB的D6到D0传输的是参
与除运算的操作数个数值,当双端口只读只写存储器(Ⅰ)的存储器1空或存储器2空,且满足模块地址识别(1)的CS2输出端为“0”时,WR信号作为写预置脉冲将操作数个数值作为双端口只读只写存储器(Ⅰ)写端口的低7位地址初值预置给写端口地址计数器(3),并将写溢出输出端设置为“1”状态;
所述写端口地址计数器(3)输出双端口只读只写存储器(Ⅰ)的写端口低7位地址值
AB_1;当写计数脉冲输入端来一个计数脉冲时,写端口地址计数器(3)进行一次-1操作,直到写地址输出端为“0”,AB_1为“0”,此时写溢出信号输出端由“1”→“0”,写溢出信号作为写端口地址计数器(3)停止工作的标志,使得写高位地址控制器(2)的锁存信号输入端由“1”→“0”时,写高位地址控制器(2)输出的AB7_1状态翻转;写端口地址计数器(3)在系统复位信号Rst的作用下,复位写端口地址计数器(3),使得写溢出信号输出端为“0”状态;
所述写端口脉冲发生控制器(4)的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门Ⅲ(14)的输出端连接,复位输入端和系统复位信号Rst线连接,脉冲①_1输出端和双端口只读只写存储器(Ⅰ)的写信号输入端WR_1连接;
所述写端口脉冲发生控制器(4)的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲②_1,脉冲①_1作为双端口只读只写存储器(Ⅰ)的写入信号WR_1,脉冲②_1作为写端口地址计数器(3)的写计数脉冲;所述写端口地址计数器(3)的写溢出信号输出端由“1”→“0”,写端口脉冲发生控制器(4)停止工作,脉冲①_1和脉冲②_1的输出端为“1”状态;
所述待执行命令寄存器(5)的命令输入端和系统数据总线DB的D8到D0线连接,锁
存信号输入端和或门Ⅱ(10)的输出端连接,输出端与执行命令寄存器(6)的命令输入端连接;
所述执行命令寄存器(6)的锁存信号输入端与浮点操作数读时序控制模块(Ⅲ)连接,读操作数个数输出端、类型输出端与浮点操作数读时序控制模块(Ⅲ)连接,方式输出端与配置运算与输出控制模块(Ⅴ)连接;
所述非门Ⅰ(7)的输出端和或门Ⅰ(9)的一个输入端连接;
所述或门Ⅰ(9)的另一个输入端和与门Ⅰ(12)的输出端连接,输出端向系统输出写指令允许信号;
所述或门Ⅱ(10)的另二个输入端分别和与门Ⅰ(12)的输出端、系统WR写信号线连接,输出端作为写预置信号还与浮点操作数读时序控制模块(Ⅲ)连接;
所述或门Ⅲ(11)的另一个输入端与系统WR写信号线连接,输出端和与门Ⅲ(14)的一个输入端连接;
所述与门Ⅰ(12)的二个输入端分别与存储器数据空标志控制器(Ⅳ)的存储器1空输出端、存储器2空输出端连接,输出端还和与门Ⅲ(14)的另一个输入端连接;
所述与门Ⅱ(13)的一个输入端与存储器数据空标志控制器(Ⅳ)的存储器1存储器2
数据都空输出端连接,另一个输入端与系统Rst复位信号线连接。
3. 如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述存储器
读时序控制模块Ⅲ包括读高位地址控制器(15)、读端口地址计数器(16)、读端口脉冲发生控制器(17)、异或非门(18)、非门Ⅲ(19)、非门Ⅳ(20)、或门Ⅳ(21)、或门Ⅴ(22)、与门Ⅳ(23)、与门Ⅴ(24)、与门Ⅵ(25)、与门Ⅶ(26) 和与门Ⅷ(27);
所述读高位地址控制器(15)的锁存信号输入端与读端口地址计数器(16)的读溢出输出端连接,读高位地址输入端和非门Ⅲ(19)的输出端连接,复位输入端和与门Ⅳ(23)的输出端连接,输出端与双端口只读只写存储器(Ⅰ)的读地址高位输入端AB7_2、非门Ⅲ(19)的输入端、存储器数据空标志控制器(Ⅳ)连接;
所述读高位地址控制器(15)输出的是双端口只读只写存储器(Ⅰ)读端口的最高位地址值AB7_2,当双端口只读只写存储器(Ⅰ)的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位读高位地址控制器(15),其输出端为“0”;当读高位地址控制器(15)的锁存信号输入端由“1”→“0”时,写高位地址控制器(2)输出的AB7_2信号翻转;
所述读端口地址计数器(16)的读预置脉冲输入端与读端口脉冲发生控制器(17)的脉冲②_2输出端连接,读计数脉冲输入端和与门Ⅷ(27)的输出端连接,复位输入端和与门Ⅵ(25)的输出端连接,读操作数个数输入端与执行命令寄存器(6)的读操作数个数输出端连接,读溢出输出端还与读端口脉冲发生控制器(17)的读溢出输入端、存储器数据空标志控制器(Ⅳ)的读溢出输入端连接,读地址输出端与双端口只读只写存储器(Ⅰ)的读地址输入端AB_2连接;
所述读端口地址计数器(16)实质上是一个减1计数器,读预置脉冲将来自执行命令寄存器(6)输出的读操作数个数预置给读端口地址计数器(16),使得读端口地址计数器(16)的读地址输出端输出的地址值AB_2为读操作数个数,读端口地址计数器(16)从读操作数个数开始进行-1计数,当读计数脉冲输入端来一个计数脉冲时,读端口地址计数器(16)进行一次-1操作,直到读地址输出端为“0”,AB_2为“0”,表明最后一个操作数已读出,溢出信号输出端由“1”→“0”,溢出信号也是读端口地址计数器(16)停止工作的标志;当输入复位信号为“0”时,复位读端口地址计数器(16),读端口地址计数器(16)停止计数工作,溢出输出端为“0”;
所述读端口脉冲发生控制器(17)的同步脉冲输入端与系统时钟信号Clock线连接,
启动输入端和与门Ⅴ(24)的输出端连接,复位输入端和与门Ⅵ(25)的输出端连接,类型输入端与执行命令寄存器(6)的类型输出端连接;脉冲①_2输出端与执行命令寄存器(6)的锁存信号输入端连接,脉冲③_2输出端和与门Ⅶ(26)的一个输入端、配置运算与输出控制模块(Ⅴ)连接,脉冲④_2输出端和与门Ⅷ(27)的一个输入端、配置运算与输出控制模块(Ⅴ)连接,脉冲⑤_2输出端和与门Ⅶ(26)的另一个输入端连接,脉冲⑥_2输出端和与门Ⅷ(27)的另一个输入端连接,脉冲⑦_2输出端和配置运算与输出控制模块(Ⅴ)连接,脉冲⑧_2输出端和配置运算与输出控制模块(Ⅴ)连接,读运行状态输出端与存储器数据空标志控制器(Ⅳ)的读运行状态输入端连接,启动使能输出端和或门Ⅴ(22)的一个输入端、存储器数据空标志控制器(Ⅳ)的启动使能输入端连接;
所述读端口脉冲发生控制器(17)输出的脉冲与系统时钟Clock同步;当双端口只读只写存储器(Ⅰ)的存储器1或存储器2为数据空时,启动使能输出端由“1”→“0”,启动读端口脉冲发生控制器(17)开始工作;当双端口只读只写存储器(Ⅰ)的存储器1和存储器2都为数据空时,在写预置脉冲的作用下启动输出端由“1”→“0”,启动读端口脉冲发生控制器(17)开始工作;启动的同时置读端口脉冲发生控制器(17)的读运行状态输出端为“0”和启动使能输出端为“1”状态;当读运行状态为“1”时,表明没有命令在执行,或当前命令已执行结束;当启动使能信号为“0”时,表明没有命令在执行,以及执行命令的运算结果已锁存;
所述读端口脉冲发生控制器(17)根据类型输入信号为“0”还是为“1”,确定控制双端口只读只写存储器(Ⅰ)中读操作数的脉冲序列;读端口地址计数器(16)输出的溢出信号由“1”→“0”,读端口脉冲发生控制器(17)经过一个运算周期时间,读运行状态输出端由“0” →“1”,置脉冲⑥_2输出端为“1”,并发出一个系统时钟Clock周期存最终运算结果的脉冲⑦_2,启动使能输出端由“1” →“0”,停止读端口脉冲发生控制器(17)的工作,置所有脉冲输出端为“1”状态;当输入的复位信号为“0”时,复位读端口脉冲发生控制器(17),复位使得读运行状态输出端为“1”状态,启动使能输出端为“0”,置所有脉冲输出端为“1”状态,并停止读端口脉冲发生控制器(17)的工作;
所述异或非门(18)的二个输入端分别与存储器数据空标志控制器(Ⅳ)的存储器1空输出端、存储器2空输出端连接,输出端和或门Ⅴ(22)的一个输入端连接;
所述非门Ⅳ(20)的输入端和或门Ⅱ(10)的输出端写预置信号连接,输出端和或门Ⅳ(21)的一个输入端连接;
所述或门Ⅳ(21)的另一个输入端和存储器数据空标志控制器(Ⅳ)的存储器1存储器
2都空输出端连接,输出端和与门Ⅴ(24)的一个输入端连接;
所述或门Ⅴ(22)的输出端和与门Ⅴ(24)的另一个输入端连接;
所述与门Ⅳ(23)的一个输入端与存储器数据空标志控制器(Ⅳ)的存储器1存储器2
都空输出端连接,另一个输入端和系统复位信号Rst线连接;
所述与门Ⅵ(25)的一个输入端与系统复位信号Rst线连接,另一个输入端和配置运算与输出控制模块(Ⅴ)连接;
所述与门Ⅶ(26)的输出端与双端口只读只写存储器(Ⅰ)的读操作数输入端RD_2连
接。
4. 如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述配置运
算与输出控制模块(Ⅴ)包括选通器(28)、结果寄存器(29)、操作数交换器(30)、浮点数除运算器(31)、运算异常标志控制(32)、32位三态门组(33)、或门Ⅵ(34)、与门Ⅸ(35)、与门Ⅹ(36)和或门Ⅶ(37);
所述选通器(28)的二个输入端分别与双端口只读只写存储器(Ⅰ)的读操作数输出端DB_2、浮点数除运算器(31)的运算结果输出端连接,选通控制输入端和与门Ⅸ(35)的输出端连接,输出端与结果寄存器(29)的输入端连接;
当脉冲③_2或脉冲④_2为“0”时,所述选通器(28)输出从双端口只读只写存储器(Ⅰ)读出的第1个操作数;当脉冲③_2和脉冲④_2都为“1”时,选通器(28)输出运算结果;
所述结果寄存器(29)的输出端与操作数交换器(30)的交换数1输入端、32位三态门组(33)输入端连接;结果锁存信号输入端和与门Ⅹ(36)的输出端连接;
所述操作数交换器(30)的交换数2输入端与双端口只读只写存储器(Ⅰ)的读操作数输出端DB_2连接,交换控制端和或门Ⅵ(34)的输出端连接,二个输出端分别与浮点数除运算器(31)的操作数1输入端、操作数2输入端连接;
所述浮点数除运算器(31)的运算结果输出端还与运算异常标志控制(32)的运算结果输入端连接;
所述运算异常标志控制(32)的锁存结果脉冲输入端与读端口脉冲发生控制器(17)的锁存结果脉冲⑦_2输出端连接;IRQ输出端和与门Ⅵ(25)的一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制(32)向系统发出中断请求信号IRQ,并复位读端口地址计数器(16)和读端口脉冲发生控制器(17),停止浮点操作数读时序控制模块(Ⅲ)的工作;
所述32位三态门组(33)的输出端与系统数据总线DB连接,控制端和或门Ⅶ(37)的输出端连接;
所述或门Ⅵ(34)的一个输入端与执行命令寄存器(6)的方式输出端连接,另一个输入端与读端口脉冲发生控制器(17)的脉冲⑧_2输出端连接;
所述与门Ⅸ(35)的二个输入端分别与读端口脉冲发生控制器(17)的脉冲③_2、脉冲④_2输出端连接;
所述与门Ⅹ(36)的二个输入端分别与读端口脉冲发生控制器(17)的脉冲④_2、脉冲⑦_2输出端连接;
所述或门Ⅶ(37)的二个输入端分别与模块地址识别(1)的CS2信号输出端、系统读信号RD线连接;当CS2为“0”时,在系统RD信号的作用下,读出中间运算结果和命令执行的最终运算结果。
5. 如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述浮点操
作数读时序控制模块(Ⅲ)与执行命令寄存器(6)的类型输出端连接;所述配置运算与输出控制模块(Ⅴ)与执行命令寄存器(6)的方式输出端连接;所述执行命令寄存器(6)输出的方式和类型信号控制从双端口只读只写存储器(Ⅰ)读出的第1个操作数参加除法运算的操作数类型和除法方式:
当操作数类型为“0”时:结果寄存器(29)输出的是运算结果,操作数交换器(30)的交换数1输入端为运算结果,操作数交换器(30)的交换数2输入端为从双端口只读只写存储器(Ⅰ)读出的第1个操作数;操作数交换器(30)交换控制端输入的脉冲⑧_2控制两种除法运算的处理方式:
除法方式为“0”:当读第1个操作数和执行第1个操作数除法运算时,脉冲⑧_2为“0”, 则操作数交换器(30)的控制端为“0”,交换数1输入端的运算结果作为操作数交换器(30)输出的操作数2,交换数2输入端的第1个操作数作为操作数交换器(30)输出的操作数1,即操作数交换器(30)的2个输入和2个输出进行交换传输,执行第1个操作数/运算结果的除法运算;
除法方式为“1”:当读第1个操作数和执行第1个操作数除法运算时,虽然脉冲⑧_2为“0”,但除法方式为“1”状态,使得操作数交换器(30)的控制端为“1”,操作数交换器(30)的2个输入和2个输出不进行交换传输;执行运算结果/第1个操作数的除法运算;
当操作数类型为“1”时:第1个操作数的配置与除法方式信号状态无关,读端口脉冲发生控制器(17)的脉冲⑧_2输出端为“1”状态,使得操作数交换器(30)的控制端为“1”,操作数交换器(30)的2个输入和2个输出不进行交换传输;执行第1个操作数/第2个操作数的除法运算。

说明书全文

双指令多浮点操作数除运算控制器

技术领域

[0001] 本发明涉及一种双指令多浮点操作数除运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的双指令多浮点操作数除运算控制电路及其时序控制方法。 背景技术
[0002] 浮点数除运算器实现2个32位符合IEEE754标准的浮点数除法运算;除法运算比加/减运算、乘法运算长数倍时间周期,每次运算之前系统需要分时输出2个浮点操作数,或1个浮点操作数,运算器的2个操作数输入需要2个寄存器,用以确保在除法运算过程中输入的被除数和除数的稳定,微处理器在除法运算过程中,能够转去处理其他程序,运算结束之后分时读出运算结果;对于连续执行多个操作数的除法运算,且运算结果作为被除数,微处理器需要多次分时传输作为除数的操作数和作为被除数的运算结果写回的操作;浮点数除运算器的设计也采用流线执行的方式,将运算过程分为若干模,在微处理器控制部件发出的时序脉冲的控制下,多条浮点数除法运算指令按照模块顺序执行,流水线中的每条指令运算结束都需要将运算结果写回;但对于所执行的浮点数除法运算需要应用上一条运算指令的运算结果作为被除数的指令,则浮点数除法运算的流水线操作失去作用,影响了浮点数除法运算指令执行的速度。

发明内容

[0003] 本发明的目的在于提供一种双指令多浮点操作数除运算控制器,应用FPGA设计双指令多浮点操作数除运算控制器的硬连接电路;该控制器对于多浮点操作数除运算指令的命令字及其多操作数采取连续写入存储的方法,其写入存储过程占用系统总线;控制器在执行多浮点操作数除运算指令的过程中,内部产生与系统时钟Clock信号同步的读时序脉冲信号,在读时序脉冲信号控制下自主完成读出操作数执行除法运算,多浮点操作数除运算指令的执行过程不占用系统总线;该控制器能够存储两条多浮点操作数除运算指令,控制器处于正在读出一条指令的浮点操作数执行处理,另一条指令的运算命令待执行;或正在读出一条指令的浮点操作数执行运算处理,另一条指令正在从系统写入控制器;或正在从系统写入一条指令的浮点多操作数,且同时正在读出该指令的浮点操作数;控制器在指令的运算命令处理过程中,系统能够读出执行运算命令过程中的中间运算结果和最终运算结果。
[0004] 解决上述技术问题的技术方案是:一种双指令多操作数浮点除运算控制器,包括双端口只读只写存储器、命令字及其多操作数写时序控制模块、浮点操作数读时序控制模块、存储器数据空标志控制器和配置运算与输出控制模块;所述双端口只读只写存储器与命令字及其多操作数写时序控制模块、浮点操作数读时序控制模块、配置运算与输出控制模块连接;
所述命令字及其多操作数写时序控制模块还与浮点操作数读时序控制模块、存储器数据空标志控制器、配置运算与输出控制模块连接;
所述浮点操作数读时序控制模块还与存储器数据空标志控制器、配置运算与输出控制模块连接;
所述双端口只读只写存储器为双端口存储器,一个只写端口,一个只读端口,用于储存多浮点操作数(下称为操作数);所述双端口只读只写存储器分为存储器1和存储器2两个存储区域;所述双端口只读只写存储器的写地址高位输入端AB7_1为“0”,或读地址高位输入端AB7_2为“0”,选中操作数存储器的127个低地址存储单元,即存储器1;写地址高位输入端AB7_1为“1”,或读地址高位输入端AB7_2为“1”,选中操作数存储器的127个高地址存储单元,即存储器2;
所述命令字及其多操作数写时序控制模块控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其多操作数写时序控制模块在双端口只读只写存储器的存储器1或存储器2为数据空,输出写指令允许信号,方允许被系统选中;被系统选中写指令时,在系统WR信号的作用下,写入除运算命令字;被系统选中写操作数时,其内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在双端口只读只写存储器的存储器1或存储器2中;一条指令的最后一个操作数被写入存储后,转换双端口只读只写存储器的写高位地址输入端AB7_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还是操作数2,选通配置运算结果是作为除运算器的操作数
1还是操作数2,或运算结果不参与执行除法命令的第一次运算;在浮点操作数读时序控制模块发出的结果锁存信号作用下,锁存除法运算的运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止浮点操作数读时序控制模块的工作;当使能信号CS2为“0”时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。
[0005] 其进一步技术方案是:所述命令字及其多操作数写时序控制模块包括模块地址识别、写高位地址控制器、写端口地址计数器、写端口脉冲发生控制器、待执行命令寄存器、执行命令寄存器、非Ⅰ、非门Ⅱ、或门Ⅰ、或门Ⅱ、或门Ⅲ、与门Ⅰ、与门Ⅱ和与门Ⅲ; 所述模块地址识别输入端和系统地址总线AB的A31到A27线连接,CS1输出端和或门Ⅱ的一个输入端连接,CS2输出端和或门Ⅲ的一个输入端、写端口脉冲发生控制器的使能输入端、配置运算与输出控制模块连接;所述模块地址识别内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别输入A31到A27的地址值与模块地址识别中设置的地址值进行比较,如果和写命令字地址值相等,则输出CS1为“0”,如果和写操作数地址值相等,则输出CS2为“0”;在任何时刻,CS1和 CS2只有一个输出为“0”,或输出都为“1”;
所述写高位地址控制器的锁存信号输入端与写端口地址计数器的写溢出输出端连接,写高位地址输入端和非门Ⅱ的输出端连接,复位输入端和与门Ⅱ的输出端连接,输出端和非门Ⅱ的输入端、双端口只读只写存储器的写地址高位输入端AB7_1、存储器数据空标志控制器连接;
所述写高位地址控制器输出的是双端口只读只写存储器的最高位地址值AB7_1;当双端口只读只写存储器的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位写高位地址控制器,其输出为“0”;当写高位地址控制器的锁存信号输入端由“1”→“0”时,写高位地址控制器输出端输出的AB7_1状态翻转;
所述写端口地址计数器的操作数个数输入端与系统数据总线DB的D6到D0线连接,写预置脉冲输入端和或门Ⅱ的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器的脉冲②_1输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和双端口只读只写存储器的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器的写溢出输入端、非门Ⅰ的输入端、存储器数据空标志控制器连接;
所述写端口地址计数器实质上是一个减1计数器,系统DB的D6到D0传输的是参与除运算的操作数个数值,当双端口只读只写存储器的存储器1空或存储器2空,且满足模块地址识别的CS2输出端为“0”时,WR信号作为写预置脉冲将操作数个数值作为双端口只读只写存储器写端口的低7位地址初值预置给写端口地址计数器,并将写溢出输出端设置为“1”状态;
所述写端口地址计数器输出双端口只读只写存储器的写端口低7位地址值AB_1;当写计数脉冲输入端来一个计数脉冲时,写端口地址计数器进行一次-1操作,直到写地址输出端为“0”,AB_1为“0”,此时写溢出信号输出端由“1”→“0”,写溢出信号作为写端口地址计数器停止工作的标志,使得写高位地址控制器的锁存信号输入端由“1”→“0”时,写高位地址控制器输出的AB7_1状态翻转;写端口地址计数器在系统复位信号Rst的作用下,复位写端口地址计数器,使得写溢出信号输出端为“0”状态;
所述写端口脉冲发生控制器的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门Ⅲ的输出端连接,复位输入端和系统复位信号Rst线连接,脉冲①_1输出端和双端口只读只写存储器的写信号输入端WR_1连接;
所述写端口脉冲发生控制器的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲②_1,脉冲①_1作为双端口只读只写存储器的写入信号WR_1,脉冲②_1作为写端口地址计数器的写计数脉冲;所述写端口地址计数器的写溢出信号输出端由“1”→“0”,写端口脉冲发生控制器停止工作,脉冲①_1和脉冲②_1的输出端为“1”状态;
所述待执行命令寄存器的命令输入端和系统数据总线DB的D8到D0线连接,锁存信号输入端和或门Ⅱ的输出端连接,输出端与执行命令寄存器的命令输入端连接;
所述执行命令寄存器的锁存信号输入端与浮点操作数读时序控制模块连接,读操作数个数输出端、类型输出端与浮点操作数读时序控制模块连接,方式输出端与配置运算与输出控制模块连接;
所述非门Ⅰ的输出端和或门Ⅰ的一个输入端连接;
所述或门Ⅰ的另一个输入端和与门Ⅰ的输出端连接,输出端向系统输出写指令允许信号;
所述或门Ⅱ的另二个输入端分别和与门Ⅰ的输出端、系统WR写信号线连接,输出端作为写预置信号还与浮点操作数读时序控制模块连接;
所述或门Ⅲ的另一个输入端与系统WR写信号线连接,输出端和与门Ⅲ的一个输入端连接;
所述与门Ⅰ的二个输入端分别与存储器数据空标志控制器的存储器1空输出端、存储器2空输出端连接,输出端还和与门Ⅲ的另一个输入端连接;
所述与门Ⅱ的一个输入端与存储器数据空标志控制器的存储器1存储器2数据都空输出端连接,另一个输入端与系统Rst复位信号线连接。
[0006] 其进一步技术方案是:所述存储器读时序控制模块Ⅲ包括读高位地址控制器、读端口地址计数器、读端口脉冲发生控制器、异或非门、非门Ⅲ、非门Ⅳ、或门Ⅳ、或门Ⅴ、与门Ⅳ、与门Ⅴ、与门Ⅵ、与门Ⅶ 和与门Ⅷ;所述读高位地址控制器的锁存信号输入端与读端口地址计数器的读溢出输出端连接,读高位地址输入端和非门Ⅲ的输出端连接,复位输入端和与门Ⅳ的输出端连接,输出端与双端口只读只写存储器的读地址高位输入端AB7_2、非门Ⅲ的输入端、存储器数据空标志控制器连接;
所述读高位地址控制器输出的是双端口只读只写存储器读端口的最高位地址值AB7_2,当双端口只读只写存储器的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位读高位地址控制器,其输出端为“0”;当读高位地址控制器的锁存信号输入端由“1”→“0”时,写高位地址控制器输出的AB7_2信号翻转;
所述读端口地址计数器的读预置脉冲输入端与读端口脉冲发生控制器的脉冲②_2输出端连接,读计数脉冲输入端和与门Ⅷ的输出端连接,复位输入端和与门Ⅵ的输出端连接,读操作数个数输入端与执行命令寄存器的读操作数个数输出端连接,读溢出输出端还与读端口脉冲发生控制器的读溢出输入端、存储器数据空标志控制器的读溢出输入端连接,读地址输出端与双端口只读只写存储器的读地址输入端AB_2连接;
所述读端口地址计数器实质上是一个减1计数器,读预置脉冲将来自执行命令寄存器
6输出的读操作数个数预置给读端口地址计数器,使得读端口地址计数器的读地址输出端输出的地址值AB_2为读操作数个数,读端口地址计数器从读操作数个数开始进行-1计数,当读计数脉冲输入端来一个计数脉冲时,读端口地址计数器进行一次-1操作,直到读地址输出端为“0”,AB_2为“0”,表明最后一个操作数已读出,溢出信号输出端由“1”→“0”,溢出信号也是读端口地址计数器停止工作的标志;当输入复位信号为“0”时,复位读端口地址计数器,读端口地址计数器停止计数工作,溢出输出端为“0”;
所述读端口脉冲发生控制器的同步脉冲输入端与系统时钟信号Clock线连接,启动输入端和与门Ⅴ的输出端连接,复位输入端和与门Ⅵ的输出端连接,类型输入端与执行命令寄存器的类型输出端连接;脉冲①_2输出端与执行命令寄存器的锁存信号输入端连接,脉冲③_2输出端和与门Ⅶ的一个输入端、配置运算与输出控制模块连接,脉冲④_2输出端和与门Ⅷ的一个输入端、配置运算与输出控制模块连接,脉冲⑤_2输出端和与门Ⅶ的另一个输入端连接,脉冲⑥_2输出端和与门Ⅷ的另一个输入端连接,脉冲⑦_2输出端和配置运算与输出控制模块连接,脉冲⑧_2输出端和配置运算与输出控制模块连接,读运行状态输出端与存储器数据空标志控制器的读运行状态输入端连接,启动使能输出端和或门Ⅴ的一个输入端、存储器数据空标志控制器的启动使能输入端连接;
所述读端口脉冲发生控制器输出的脉冲与系统时钟Clock同步;当双端口只读只写存储器的存储器1或存储器2为数据空时,启动使能输出端由“1”→“0”,启动读端口脉冲发生控制器开始工作;当双端口只读只写存储器的存储器1和存储器2都为数据空时,在写预置脉冲的作用下启动输出端由“1”→“0”,启动读端口脉冲发生控制器开始工作;启动的同时置读端口脉冲发生控制器的读运行状态输出端为“0”和启动使能输出端为“1”状态;
当读运行状态为“1”时,表明没有命令在执行,或当前命令已执行结束;当启动使能信号为“0”时,表明没有命令在执行,以及执行命令的运算结果已锁存;
所述读端口脉冲发生控制器根据类型输入信号为“0”还是为“1”,确定控制双端口只读只写存储器中读操作数的脉冲序列;读端口地址计数器输出的溢出信号由“1”→“0”,读端口脉冲发生控制器经过一个运算周期时间,读运行状态输出端由“0” →“1”,置脉冲⑥_2输出端为“1”,并发出一个系统时钟Clock周期存最终运算结果的脉冲⑦_2,启动使能输出端由“1” →“0”,停止读端口脉冲发生控制器的工作,置所有脉冲输出端为“1”状态;当输入的复位信号为“0”时,复位读端口脉冲发生控制器,复位使得读运行状态输出端为“1”状态,启动使能输出端为“0”,置所有脉冲输出端为“1”状态,并停止读端口脉冲发生控制器的工作;
所述异或非门的二个输入端分别与存储器数据空标志控制器的存储器1空输出端、存储器2空输出端连接,输出端和或门Ⅴ的一个输入端连接;
所述非门Ⅳ的输入端和或门Ⅱ的输出端写预置信号连接,输出端和或门Ⅳ的一个输入端连接;
所述或门Ⅳ的另一个输入端和存储器数据空标志控制器的存储器1存储器2都空输出端连接,输出端和与门Ⅴ的一个输入端连接;
所述或门Ⅴ的输出端和与门Ⅴ的另一个输入端连接;
所述与门Ⅳ的一个输入端与存储器数据空标志控制器的存储器1存储器2都空输出端连接,另一个输入端和系统复位信号Rst线连接;
所述与门Ⅵ的一个输入端与系统复位信号Rst线连接,另一个输入端和配置运算与输出控制模块连接;
所述与门Ⅶ的输出端与双端口只读只写存储器的读操作数输入端RD_2连接。
[0007] 其进一步技术方案是:所述配置运算与输出控制模块包括选通器、结果寄存器、操作数交换器、浮点数除运算器、运算异常标志控制、32位三态门组、或门Ⅵ、与门Ⅸ、与门Ⅹ和或门Ⅶ;所述选通器的二个输入端分别与双端口只读只写存储器的读操作数输出端DB_2、浮点数除运算器的运算结果输出端连接,选通控制输入端和与门Ⅸ的输出端连接,输出端与结果寄存器的输入端连接;
当脉冲③_2或脉冲④_2为“0”时,所述选通器输出从双端口只读只写存储器读出的第1个操作数;当脉冲③_2和脉冲④_2都为“1”时,选通器输出运算结果;
所述结果寄存器的输出端与操作数交换器的交换数1输入端、32位三态门组输入端连接;结果锁存信号输入端和与门Ⅹ的输出端连接;
所述操作数交换器的交换数2输入端与双端口只读只写存储器的读操作数输出端DB_2连接,交换控制端和或门Ⅵ的输出端连接,二个输出端分别与浮点数除运算器的操作数1输入端、操作数2输入端连接;
所述浮点数除运算器的运算结果输出端还与运算异常标志控制的运算结果输入端连接;
所述运算异常标志控制的锁存结果脉冲输入端与读端口脉冲发生控制器的锁存结果脉冲⑦_2输出端连接;IRQ输出端和与门Ⅵ的一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制向系统发出中断请求信号IRQ,并复位读端口地址计数器和读端口脉冲发生控制器,停止浮点操作数读时序控制模块的工作;
所述32位三态门组的输出端与系统数据总线DB连接,控制端和或门Ⅶ的输出端连接;
所述或门Ⅵ的一个输入端与执行命令寄存器的方式输出端连接,另一个输入端与读端口脉冲发生控制器的脉冲⑧_2输出端连接;
所述与门Ⅸ的二个输入端分别与读端口脉冲发生控制器的脉冲③_2、脉冲④_2输出端连接;
所述与门Ⅹ的二个输入端分别与读端口脉冲发生控制器的脉冲④_2、脉冲⑦_2输出端连接;
所述或门Ⅶ的二个输入端分别与模块地址识别的CS2信号输出端、系统读信号RD线连接;当CS2为“0”时,在系统RD信号的作用下,读出中间运算结果和命令执行的最终运算结果。
[0008] 其进一步技术方案是:所述浮点操作数读时序控制模块与执行命令寄存器的类型输出端连接;所述配置运算与输出控制模块与执行命令寄存器的方式输出端连接;所述执行命令寄存器输出的方式和类型信号控制从双端口只读只写存储器读出的第1个操作数参加除法运算的操作数类型和除法方式:当操作数类型为“0”时:结果寄存器输出的是运算结果,操作数交换器的交换数1输入端为运算结果,操作数交换器的交换数2输入端为从双端口只读只写存储器读出的第1个操作数;操作数交换器交换控制端输入的脉冲⑧_2控制两种除法运算的处理方式:
除法方式为“0”:当读第1个操作数和执行第1个操作数除法运算时,脉冲⑧_2为“0”, 则操作数交换器的控制端为“0”,交换数1输入端的运算结果作为操作数交换器输出的操作数2,交换数2输入端的第1个操作数作为操作数交换器输出的操作数1,即操作数交换器的2个输入和2个输出进行交换传输,执行第1个操作数/运算结果的除法运算;
除法方式为“1”:当读第1个操作数和执行第1个操作数除法运算时,虽然脉冲⑧_2为“0”,但除法方式为“1”状态,使得操作数交换器的控制端为“1”,操作数交换器的2个输入和2个输出不进行交换传输;执行运算结果/第1个操作数的除法运算;
当操作数类型为“1”时:第1个操作数的配置与除法方式信号状态无关,读端口脉冲发生控制器的脉冲⑧_2输出端为“1”状态,使得操作数交换器的控制端为“1”,操作数交换器的2个输入和2个输出不进行交换传输;执行第1个操作数/第2个操作数的除法运算。
[0009] 由于采用以上结构,本发明之双指令多浮点操作数除运算控制器具有以下有益效果:一、一条指令的命令字及其多浮点操作数能够连续写入存储
本发明之双指令多操作数浮点除运算控制器在除法命令字被写入后,在内部与系统WR脉冲同步的写操作数时序脉冲的控制之下,能够将多个浮点操作数全部按照顺序连续写入并存储在双端口只读只写存储器中。
[0010] 二、双指令并行处理功能本发明之双指令多操作数浮点除运算控制器内部设置了一个双端口只读只写存储器,分为存储器1和存储器2两个存储区域,用于存储两条多操作浮点数除运算指令的浮点操作数;控制器能够处于正在读出一条指令的浮点操作数执行处理,另一条指令的运算命令待执行;或正在读出一条指令的浮点操作数执行运算处理,另一条指令正在从系统写入控制器;或正在从系统写入一条指令的浮点多操作数,且同时正在读出该指令的浮点操作数执行运算处理。
[0011] 三、自主控制多浮点操作数除法的运算本发明之双指令多操作数浮点除运算控制器在指令的命令执行过程中,控制器内部产生与系统Clock同步的读时序脉冲序列,在读时序脉冲序列的控制下,从控制器的双端口只读只写存储器中读出操作数,自主完成该指令的所有操作数的除法运算,不受系统控制。
[0012] 四、自动选择执行第1个浮点操作数的处理方式本发明之双指令多操作数浮点除运算控制器根据第1个浮点操作数的操作数类型和除法方式,对第1个浮点操作数有三种处理方式,一是第1个浮点操作数作为被除数,实施第1个浮点操作数/第2个浮点操作数的除法运算;二是第1个浮点操作数作为被除数,实施第1个浮点操作数/运算结果的除法运算;三是第1个浮点操作数作为除数,实施运算结果/第1个浮点操作数的除法运算。
[0013] 五、控制器性价比高本发明之双指令多操作数浮点除运算控制器以FPGA的硬连接控制电路为核心,应用写时序脉冲控制、读时序脉冲控制,达到自主完成多操作浮点数除运算的目的,并且双指令多操作浮点数除运算命令能够并行处理;控制器能够读出中间运算和最终运算结果;每条多操作数浮点除运算指令最多能够有127个浮点操作数,这样一条多浮点操作数除运算指令相当于相同除法运算的多条指令,减少了系统对命令的取指和译码、浮点操作数和运算结果写回的传输操作过程,提高了处理速度,具有较高的性价比。
[0014] 下面结合附图实施例对本发明之双指令多浮点操作数除运算控制器的技术特征作进一步的说明。

附图说明

[0015] 图1:本发明之双指令多浮点操作数除运算控制器的系统结构框图; 图2:本发明之双指令多浮点操作数除运算控制器的双端口只读只写存储器端口图;图3:本发明之双指令多浮点操作数除运算控制器的命令字及其多操作数写时序控制模块的电路连接图;
图4:本发明之双指令多浮点操作数除运算控制器的存储器数据空标志控制器端口图;
图5:本发明之双指令多浮点操作数除运算控制器的浮点操作数读时序控制模块的电路连接图;
图6:本发明之双指令多浮点操作数除运算控制器的配置运算与输出控制模块的电路连接图;
图7:本发明之双指令多浮点操作数除运算控制器的存储器1数据空逻辑判断图;
图8:本发明之双指令多浮点操作数除运算控制器的存储器2数据空逻辑判断图;
图9:本发明之双指令多浮点操作数除运算控制器的写命令字多浮点操作数时序图;
图10:本发明之双指令多浮点操作数除运算控制器的存储器1和存储器2数据空启动时序图;
图11:本发明之双指令多浮点操作数除运算控制器的存储器1或存储器2数据空启动时序图;
图12:本发明之双指令多浮点操作数除运算控制器的类型0读多浮点操作数和结果锁存时序图;
图13:本发明之双指令多浮点操作数除运算控制器的类型1读多浮点操作数和结果锁存时序图。
[0016] 图中:Ⅰ—双端口只读只写存储器,Ⅱ—命令字及其多操作数写时序控制模块,Ⅲ—浮点操作数读时序控制模块,Ⅳ—存储器数据空标志控制器,Ⅴ—配置运算与输出控制模块;
1—模块地址识别,2—写高位地址控制器,3—写端口地址计数器, 4—写端口脉冲发生控制器,5—待执行命令寄存器,6—执行命令寄存器,7—非门Ⅰ,8—非门Ⅱ, 9—或门Ⅰ,10—或门Ⅱ,11—或门Ⅲ,12—与门Ⅰ,13—与门Ⅱ,14—与门Ⅲ,15—读高位地址控制器,16—读端口地址计数器,17—读端口脉冲发生控制器,18—异或非门,19—非门Ⅲ,20—非门Ⅳ,21—或门Ⅳ,22—或门Ⅴ,23—与门Ⅳ,24—与门Ⅴ,25—与门Ⅵ,26—与门Ⅶ,27—与门Ⅷ,28—选通器,29—结果寄存器,30—操作数交换器,31—浮点数除运算器,32—运算异常标志控制,33—32位三态门组,34—或门Ⅵ,35—与门Ⅸ,36—与门Ⅹ,37—或门Ⅶ。
[0017] 文中缩略语说明:FPGA-Field Programmable Gate Array,现场可编程门阵列
DB-Data Bus,数据总线;
AB-Address Bus,地址总线;
CS-Chip Select,片选或使能,图中CS代表“使能信号”;
Clock-时钟;
RD-Read,读,图中代表“读信号”;
WR-Write,写,图中代表“写信号”;
IRQ-Interrupt Request,中断申请,图中代表“中断请求信号”;
Rst-Reset,复位。

具体实施方式

[0018] 实施例:一种双指令多浮点操作数除运算控制器,如图1所示,该控制器包括双端口只读只写存储器Ⅰ、命令字及其多操作数写时序控制模块Ⅱ、浮点操作数读时序控制模块Ⅲ、存储器数据空标志控制器Ⅳ、配置运算与输出控制模块Ⅴ;
所述双端口只读只写存储器Ⅰ与命令字及其多操作数写时序控制模块Ⅱ、浮点操作数读时序控制模块Ⅲ、配置运算与输出控制模块Ⅴ连接;
所述命令字及其多操作数写时序控制模块Ⅱ还与浮点操作数读时序控制模块Ⅲ、存储器数据空标志控制器Ⅳ、配置运算与输出控制模块Ⅴ连接;
所述浮点操作数读时序控制模块Ⅲ还与存储器数据空标志控制器Ⅳ、配置运算与输出控制模块Ⅴ连接;
所述双端口只读只写存储器Ⅰ为双端口存储器,一个只写端口,一个只读端口,用于储存多浮点操作数(下称为操作数);所述双端口只读只写存储器Ⅰ分为存储器1和存储器2两个存储区域;所述双端口只读只写存储器Ⅰ的写地址高位输入端AB7_1为“0”,或读地址高位输入端AB7_2为“0”,选中操作数存储器的127个低地址存储单元,即存储器1;写地址高位输入端AB7_1为“1”,或读地址高位输入端AB7_2为“1”,选中操作数存储器的127个高地址存储单元,即存储器2;
所述命令字及其多操作数写时序控制模块Ⅱ控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其多操作数写时序控制模块Ⅱ在双端口只读只写存储器Ⅰ的存储器1或存储器2为数据空,输出写指令允许信号,方允许被系统选中;被系统选中写指令时,在系统WR信号的作用下,写入除运算命令字;被系统选中写操作数时,其内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在双端口只读只写存储器Ⅰ的存储器1或存储器2中;一条指令的最后一个操作数被写入存储后,转换双端口只读只写存储器Ⅰ的写高位地址输入端AB7_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还是操作数2,选通配置运算结果是作为除运算器的操作数1还是操作数2,或运算结果不参与执行除法命令的第一次运算;在浮点操作数读时序控制模块Ⅲ发出的结果锁存信号作用下,锁存除法运算的运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止浮点操作数读时序控制模块Ⅲ的工作;
当使能信号CS2为“0”时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。
[0019] 如图3所示,所述命令字及其多操作数写时序控制模块Ⅱ包括模块地址识别1、写高位地址控制器2、写端口地址计数器3、写端口脉冲发生控制器4、待执行命令寄存器5、执行命令寄存器6、非门Ⅰ7、非门Ⅱ8、或门Ⅰ9、或门Ⅱ10、或门Ⅲ11、与门Ⅰ12、与门Ⅱ13和与门Ⅲ14;所述模块地址识别1输入端和系统地址总线AB的A31到A27线连接,CS1输出端和或门Ⅱ10的一个输入端连接,CS2输出端和或门Ⅲ11的一个输入端、写端口脉冲发生控制器
4的使能输入端、配置运算与输出控制模块Ⅴ连接;
所述模块地址识别1内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别1输入A31到A27的地址值与模块地址识别1中设置的地址值进行比较,如果和写命令字地址值相等,则输出CS1为“0”,如果和写操作数地址值相等,则输出CS2为“0”;在任何时刻,CS1和 CS2只有一个输出为“0”,或输出都为“1”;
所述写高位地址控制器2的锁存信号输入端与写端口地址计数器3的写溢出输出端连接,写高位地址输入端和非门Ⅱ8的输出端连接,复位输入端和与门Ⅱ13的输出端连接,输出端和非门Ⅱ8的输入端、双端口只读只写存储器Ⅰ的写地址高位输入端AB7_1、存储器数据空标志控制器Ⅳ连接;
所述写高位地址控制器2输出的是双端口只读只写存储器Ⅰ最高位地址值AB7_1;当双端口只读只写存储器Ⅰ的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位写高位地址控制器2,其输出为“0”;当写高位地址控制器2的锁存信号输入端由“1”→“0”时,写高位地址控制器2输出端输出的AB7_1状态翻转;
所述写端口地址计数器3的操作数个数输入端与系统数据总线的D6到D0线连接,写预置脉冲输入端和或门Ⅱ10的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器4的脉冲②_1输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和双端口只读只写存储器Ⅰ的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器4的写溢出输入端、非门Ⅰ7的输入端、存储器数据空标志控制器Ⅳ连接;
所述写端口地址计数器3实质上是一个减1计数器,系统DB的D6到D0传输的是参与除运算的操作数个数值,当双端口只读只写存储器Ⅰ的存储器1空或存储器2空,且满足模块地址识别1的CS2输出端为“0”时,WR信号作为写预置脉冲将操作数个数值作为双端口只读只写存储器Ⅰ写端口的低7位地址初值预置给写端口地址计数器3,并将写溢出输出端设置为“1”状态;
所述写端口地址计数器3输出双端口只读只写存储器Ⅰ的写端口低7位地址值AB_1;
当写计数脉冲输入端来一个计数脉冲时,写端口地址计数器3进行一次-1操作,直到写地址输出端为“0”,AB_1为“0”,此时写溢出信号输出端由“1”→“0”,写溢出信号作为写端口地址计数器3停止工作的标志,使得写高位地址控制器2的锁存信号输入端由“1”→“0”时,写高位地址控制器2输出的AB7_1状态翻转;写端口地址计数器3在系统复位信号Rst的作用下,复位写端口地址计数器3,使得写溢出信号输出端为“0”状态;
所述写端口脉冲发生控制器4的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门Ⅲ14的输出端连接,复位输入端和系统复位信号Rst线连接,脉冲①_1输出端和双端口只读只写存储器Ⅰ的写信号输入端WR_1连接;
所述写端口脉冲发生控制器4的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲②_1,脉冲①_1作为双端口只读只写存储器Ⅰ的写入信号WR_1,脉冲②_1作为写端口地址计数器3的写计数脉冲;所述写端口地址计数器3的写溢出信号输出端由“1”→“0”,写端口脉冲发生控制器4停止工作,脉冲①_1和脉冲②_1的输出端为“1”状态;
所述待执行命令寄存器5的命令输入端和系统数据总线DB的D8到D0线连接,锁存信号输入端和或门Ⅱ10的输出端连接,输出端与执行命令寄存器6的命令输入端连接;
所述执行命令寄存器6的锁存信号输入端与浮点操作数读时序控制模块Ⅲ连接,读操作数个数输出端、类型输出端与浮点操作数读时序控制模块Ⅲ连接,方式输出端与配置运算与输出控制模块Ⅴ连接;
所述非门Ⅰ7的输出端和或门Ⅰ9的一个输入端连接;
所述或门Ⅰ9的另一个输入端和与门Ⅰ12的输出端连接,输出端向系统输出写指令允许信号;
所述或门Ⅱ10的另二个输入端分别和与门Ⅰ12的输出端、系统WR写信号线连接,输出端作为写预置信号还与浮点操作数读时序控制模块Ⅲ连接;
所述或门Ⅲ11的另一个输入端与系统WR写信号线连接,输出端和与门Ⅲ14的一个输入端连接;
所述与门Ⅰ12的二个输入端分别与存储器数据空标志控制器Ⅳ的存储器1空输出端、存储器2空输出端连接,输出端还和与门Ⅲ14的另一个输入端连接;
所述与门Ⅱ13的一个输入端与存储器数据空标志控制器Ⅳ的存储器1存储器2数据都空输出端连接,另一个输入端与系统Rst复位信号线连接。
[0020] 如图5所示,所述存储器读时序控制模块Ⅲ包括读高位地址控制器15、读端口地址计数器16、读端口脉冲发生控制器17、异或非门18、非门Ⅲ19、非门Ⅳ20、或门Ⅳ21、或门Ⅴ22、与门Ⅳ23、与门Ⅴ24、与门Ⅵ25、与门Ⅶ26 和与门Ⅷ27;所述读高位地址控制器15的锁存信号输入端与读端口地址计数器16的读溢出输出端连接,读高位地址输入端和非门Ⅲ19的输出端连接,复位输入端和与门Ⅳ23的输出端连接,输出端与双端口只读只写存储器Ⅰ的读地址高位输入端AB7_2、非门Ⅲ19的输入端、存储器数据空标志控制器Ⅳ连接;
所述读高位地址控制器15输出的是双端口只读只写存储器Ⅰ读端口的最高位地址值AB7_2,当双端口只读只写存储器Ⅰ的存储器1和存储器2的数据都空时,或者当系统复位信号Rst为“0”时,复位读高位地址控制器15,其输出端为“0”;当读高位地址控制器15的锁存信号输入端由“1”→“0”时,写高位地址控制器2输出的AB7_2信号翻转;
所述读端口地址计数器16的读预置脉冲输入端与读端口脉冲发生控制器17的脉冲②_2输出端连接,读计数脉冲输入端和与门Ⅷ27的输出端连接,复位输入端和与门Ⅵ25的输出端连接,读操作数个数输入端与执行命令寄存器6的读操作数个数输出端连接,读溢出输出端还与读端口脉冲发生控制器17的读溢出输入端、存储器数据空标志控制器Ⅳ的读溢出输入端连接,读地址输出端与双端口只读只写存储器Ⅰ的读地址输入端AB_2连接;
所述读端口地址计数器16实质上是一个减1计数器,读预置脉冲将来自执行命令寄存器6输出的读操作数个数预置给读端口地址计数器16,使得读端口地址计数器16的读地址输出端输出的地址值AB_2为读操作数个数,读端口地址计数器16从读操作数个数开始进行-1计数,当读计数脉冲输入端来一个计数脉冲时,读端口地址计数器16进行一次-1操作,直到读地址输出端为“0”, AB_2为“0”,最后一个操作数已读出,溢出信号输出端由“1”→“0”,溢出信号也是读端口地址计数器16停止工作的标志;当输入复位信号为“0”时,复位读端口地址计数器16,读端口地址计数器16停止计数工作,溢出输出端为“0”;
所述读端口脉冲发生控制器17的同步脉冲输入端与系统时钟信号Clock线连接,启动输入端和与门Ⅴ24的输出端连接,复位输入端和与门Ⅵ25的输出端连接,类型输入端与执行命令寄存器6的类型输出端连接;脉冲①_2输出端与执行命令寄存器6的锁存信号输入端连接,脉冲③_2输出端和与门Ⅶ26的一个输入端、配置运算与输出控制模块Ⅴ连接,脉冲④_2输出端和与门Ⅷ27的一个输入端、配置运算与输出控制模块Ⅴ连接,脉冲⑤_2输出端和与门Ⅶ26的另一个输入端连接,脉冲⑥_2输出端和与门Ⅷ27的另一个输入端连接,脉冲⑦_2输出端和配置运算与输出控制模块Ⅴ连接,脉冲⑧_2输出端和配置运算与输出控制模块Ⅴ连接,读运行状态输出端与存储器数据空标志控制器Ⅳ的读运行状态输入端连接,启动使能输出端和或门Ⅴ22的一个输入端、存储器数据空标志控制器Ⅳ的启动使能输入端连接;
所述读端口脉冲发生控制器17输出的脉冲与系统时钟Clock同步;当双端口只读只写存储器Ⅰ的存储器1或存储器2为数据空时,启动使能输出端由“1”→“0”启动读端口脉冲发生控制器17开始工作;当双端口只读只写存储器Ⅰ的存储器1和存储器2都为数据空时,在写预置脉冲的作用下启动输出端由“1”→“0”,启动读端口脉冲发生控制器17开始工作;启动的同时置读端口脉冲发生控制器17的读运行状态输出端为“0”和启动使能输出端为“1”状态;当读运行状态为“1”时,表明没有命令在执行,或当前命令已执行结束;当启动使能信号为“0”时,表明没有命令在执行,以及执行命令的运算结果已锁存;
所述读端口脉冲发生控制器17根据类型输入信号为“0”还是为“1”,确定控制双端口只读只写存储器Ⅰ中读操作数的脉冲序列;读端口地址计数器16输出的溢出信号由“1”→“0”,读端口脉冲发生控制器17经过一个运算周期时间,读运行状态输出端由“0” →“1”,置脉冲⑥_2输出端为“1”,并发出一个系统时钟Clock周期存最终运算结果的脉冲⑦_2,启动使能输出端由“1” →“0”,停止读端口脉冲发生控制器17的工作,置所有脉冲输出端为“1”状态;当输入的复位信号为“0”时,复位读端口脉冲发生控制器17,复位使得读运行状态输出端为“1”状态,启动使能输出端为“0”, 置所有脉冲输出端为“1”状态,并停止读端口脉冲发生控制器17的工作;
所述异或非门18的二个输入端分别与存储器数据空标志控制器Ⅳ的存储器1空输出端、存储器2空输出端连接,输出端和或门Ⅴ22的一个输入端连接;
所述非门Ⅳ20的输入端和或门Ⅱ10的输出端写预置信号连接,输出端和或门Ⅳ21的一个输入端连接;
所述或门Ⅳ21的另一个输入端和存储器数据空标志控制器Ⅳ的存储器1存储器2都空输出端连接,输出端和与门Ⅴ24的一个输入端连接;
所述或门Ⅴ22的输出端和与门Ⅴ24的另一个输入端连接;
所述与门Ⅳ23的一个输入端与存储器数据空标志控制器Ⅳ的存储器1存储器2都空输出端连接,另一个输入端和系统复位信号Rst线连接;
所述与门Ⅵ25的一个输入端与系统复位信号Rst线连接,另一个输入端和配置运算与输出控制模块Ⅴ连接;
所述与门Ⅶ26的输出端与双端口只读只写存储器Ⅰ的读操作数输入端RD_2连接。
[0021] 如图6所示,所述配置运算与输出控制模块Ⅴ包括选通器28、结果寄存器29、操作数交换器30、浮点数除运算器31、运算异常标志控制32、32位三态门组33、或门Ⅵ34、与门Ⅸ35、与门Ⅹ36和或门Ⅶ37;所述选通器28的二个输入端分别与双端口只读只写存储器Ⅰ的读操作数输出端DB_2、浮点数除运算器31的运算结果输出端连接,选通控制输入端和与门Ⅸ35的输出端连接,输出端与结果寄存器29的输入端连接;
当脉冲③_2或脉冲④_2为“0”时,所述选通器28输出从双端口只读只写存储器Ⅰ读出的第1个操作数;当脉冲③_2和脉冲④_2都为“1”时,选通器28输出运算结果;
所述结果寄存器29的输出端与操作数交换器30的交换数1输入端、32位三态门组33输入端连接;结果锁存信号输入端和与门Ⅹ36的输出端连接;
所述操作数交换器30的交换数2输入端与双端口只读只写存储器Ⅰ的读操作数输出端DB_2连接,交换控制端和或门Ⅵ34的输出端连接,二个输出端分别与浮点数除运算器31的操作数1输入端、操作数2输入端连接;
所述浮点数除运算器31的运算结果输出端还与运算异常标志控制32的运算结果输入端连接;
所述运算异常标志控制32的锁存结果脉冲输入端与读端口脉冲发生控制器17的锁存结果脉冲⑦_2输出端连接;IRQ输出端和与门Ⅵ25的一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制32向系统发出中断请求信号IRQ,并复位读端口地址计数器16和读端口脉冲发生控制器17,停止浮点操作数读时序控制模块Ⅲ的工作;
所述32位三态门组33的输出端与系统数据总线DB连接,控制端和或门Ⅶ37的输出端连接;
所述或门Ⅵ34的一个输入端与执行命令寄存器6的方式输出端连接,另一个输入端与读端口脉冲发生控制器17的脉冲⑧_2输出端连接;
所述与门Ⅸ35的二个输入端分别与读端口脉冲发生控制器17的脉冲③_2、脉冲④_2输出端连接;
所述与门Ⅹ36的二个输入端分别与读端口脉冲发生控制器17的脉冲④_2、脉冲⑦_2输出端连接;
所述或门Ⅶ37的二个输入端分别与模块地址识别1的CS2信号输出端、系统读信号RD线连接;当CS2为“0”时,在系统RD信号的作用下,读出中间运算结果和命令执行的最终运算结果。
[0022] 如图3、图5、图6所示,所述浮点操作数读时序控制模块Ⅲ与执行命令寄存器6的类型输出端连接;所述配置运算与输出控制模块Ⅴ与执行命令寄存器6的方式输出端连接;所述执行命令寄存器6输出的方式和类型信号控制从双端口只读只写存储器Ⅰ读出的第1个操作数参加除法运算的操作数类型和除法方式:当操作数类型为“0”时:结果寄存器29输出的是运算结果,操作数交换器30的交换数
1输入端为运算结果,操作数交换器30的交换数2输入端为从双端口只读只写存储器Ⅰ读出的第1个操作数;操作数交换器30交换控制端输入的脉冲⑧_2控制两种除法运算的处理方式:
除法方式为“0”:当读第1个操作数和执行第1个操作数除法运算时,脉冲⑧_2为“0”, 则操作数交换器30的控制端为“0”,交换数1输入端的运算结果作为操作数交换器30输出的操作数2,交换数2输入端的第1个操作数作为操作数交换器30输出的操作数1,即操作数交换器30的2个输入和2个输出进行交换传输,执行第1个操作数/运算结果的除法运算;
除法方式为“1”:当读第1个操作数和执行第1个操作数除法运算时,虽然脉冲⑧_2为“0”,但除法方式为“1”状态,使得操作数交换器30的控制端为“1”,操作数交换器30的2个输入和2个输出不进行交换传输;执行运算结果/第1个操作数的除法运算;
当操作数类型为“1”时:第1个操作数的配置与除法方式信号状态无关,读端口脉冲发生控制器17的脉冲⑧_2输出端为“1”状态,使得操作数交换器30的控制端为“1”,操作数交换器30的2个输入和2个输出不进行交换传输;执行第1个操作数/第2个操作数的除法运算。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈