双指令多浮点操作数除运算控制器的制造方法

文档序号:6531806阅读:316来源:国知局
双指令多浮点操作数除运算控制器的制造方法
【专利摘要】一种双指令多浮点操作数除运算控制器,包括双端口只读只写存储器、命令及其多操作数写时序控制模块、浮点操作数读时序控制模块、存储器数据空标志控制器和配置运算与输出控制模块;该控制器应用FPGA设计硬连接控制电路,能够存储两条指令,且双指令能够并行处理,一条指令执行,另一指令待执行;或一条指令执行,另一指令写入;或一条指令操作数正在写入,同时被读出处理;控制器内部产生的写时序脉冲控制连续写入多个操作数;与系统Clock同步的读时序脉冲自主控制多个操作浮点数的除法运算,不占用系统总线,执行一条指令相当于微处理器执行多条除法指令,减少了系统对指令的取指、译码、浮点操作数传输和运算结果写回的操作次数。
【专利说明】双指令多浮点操作数除运算控制器
【技术领域】
[0001]本实用新型涉及一种双指令多浮点操作数除运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的双指令多浮点操作数除运算控制电路及其时序控制方法。
【背景技术】
[0002]浮点数除运算器实现2个32位符合IEEE754标准的浮点数除法运算;除法运算比加/减运算、乘法运算长数倍时间周期,每次运算之前系统需要分时输出2个浮点操作数,或I个浮点操作数,运算器的2个操作数输入需要2个寄存器,用以确保在除法运算过程中输入的被除数和除数的稳定,微处理器在除法运算过程中,能够转去处理其他程序,运算结束之后分时读出运算结果;对于连续执行多个操作数的除法运算,且运算结果作为被除数,微处理器需要多次分时传输作为除数的操作数和作为被除数的运算结果写回的操作;浮点数除运算器的设计也采用流水线执行的方式,将运算过程分为若干模块,在微处理器控制部件发出的时序脉冲的控制下,多条浮点数除法运算指令按照模块顺序执行,流水线中的每条指令运算结束都需要将运算结果写回;但对于所执行的浮点数除法运算需要应用上一条运算指令的运算结果作为被除数的指令,则浮点数除法运算的流水线操作失去作用,影响了浮点数除法运算指令执行的速度。

【发明内容】

[0003]本实用新型的目的在于提供一种双指令多浮点操作数除运算控制器,应用FPGA设计双指令多浮点操作数除运算控制器的硬连接电路;该控制器对于多浮点操作数除运算指令的命令字及其多操作数采取连续写入存储的方法,其写入存储过程占用系统总线;控制器在执行多浮点操作数除运算指令的过程中,内部产生与系统时钟Clock信号同步的读时序脉冲信号,在读时序脉冲信号控制下自主完成读出操作数执行除法运算,多浮点操作数除运算指令的执行过程不占用系统总线;该控制器能够存储两条多浮点操作数除运算指令,控制器处于正在读出一条指令的浮点操作数执行处理,另一条指令的运算命令待执行;或正在读出一条指令的浮点操作数执行运算处理,另一条指令正在从系统写入控制器;或正在从系统写入一条指令的浮点多操作数,且同时正在读出该指令的浮点操作数;控制器在指令的运算命令处理过程中,系统能够读出执行运算命令过程中的中间运算结果和最终运算结果。
[0004]解决上述技术问题的技术方案是:一种双指令多操作数浮点除运算控制器,包括双端口只读只写存储器、命令字及其多操作数写时序控制模块、浮点操作数读时序控制模块、存储器数据空标志控制器和配置运算与输出控制模块;
[0005]所述双端口只读只写存储器与命令字及其多操作数写时序控制模块、浮点操作数读时序控制模块、配置运算与输出控制模块连接;
[0006]所述命令字及其多操作数写时序控制模块还与浮点操作数读时序控制模块、存储器数据空标志控制器、配置运算与输出控制模块连接;[0007]所述浮点操作数读时序控制模块还与存储器数据空标志控制器、配置运算与输出控制模块连接;
[0008]所述双端口只读只写存储器为双端口存储器,一个只写端口,一个只读端口,用于储存多浮点操作数(下称为操作数);所述双端口只读只写存储器分为存储器I和存储器2两个存储区域;所述双端口只读只写存储器的写地址高位输入端AB7_1为“0”,或读地址高位输入端AB7_2为“0”,选中操作数存储器的127个低地址存储单元,即存储器I ;写地址高位输入端AB7_1为“ I ”,或读地址高位输入端AB7_2为“ I ”,选中操作数存储器的127个高地址存储单元,即存储器2 ;
[0009]所述命令字及其多操作数写时序控制模块控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其多操作数写时序控制模块在双端口只读只写存储器的存储器I或存储器2为数据空,输出写指令允许信号,方允许被系统选中;被系统选中写指令时,在系统WR信号的作用下,写入除运算命令字;被系统选中写操作数时,其内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在双端口只读只写存储器的存储器I或存储器2中;一条指令的最后一个操作数被写入存储后,转换双端口只读只写存储器的写高位地址输入端AB7_1状态,如果双端口只读只写存储器的存储器I和存储器2都非空,停止命令字及其多操作数写时序控制模块的工作;
[0010]所述浮点操作数读时序控制模块在内部读时序脉冲的控制下,自主完成多浮点操作数从双端口只读只写存储器中读出,不需要占用系统总线;所述浮点操作数读时序控制模块产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与除运算;当参与运算的最后一个操作数读出之后,产生读地址溢出信号,然后再经过一个除运算周期,发出读运行状态结束的信号,产生一个时钟周期Clock的结果锁存脉冲,然后再发出启动使能信号;
[0011]所述浮点操作数读时序控制模块依据存储器数据空标志控制器的空标志状态读出操作数,有下面4种工作状态:
[0012]I)所述存储器数据空标志控制器无存储器I空、存储器2空的标志输出,表明存储器1、存储器2都为数据非空,,一个非空的存储器正在写入指令的命令字及其操作数或写入过程已结束;另一个存储器正在执行读出操作,如果存储器读出的操作数执行运算结束,启动使能信号由“I”一 “0”,转为一个存储器空,另一个存储器非空的状态,此时在读出操作执行结束后的第I个系统时钟Clock的下降沿作为时序脉冲发生的启动信号,向系统发送写指令允许信号;启动浮点操作数读时序控制模块的工作;
[0013]2)所述存储器数据空标志控制器输出任何一个存储器空的标志,能够处于两种操作状态,一是非空的存储器正在写入操作数,该存储器同时执行读出操作;二是非空的存储器只在执行读出操作,如果存储器读出的操作数执行运算结束,启动使能信号由“I” 一“O”,转为存储器I和存储器2都空的状态;
[0014]3)所述存储器数据空标志控制器同时输出存储器I空、存储器2空的标志,停止浮点操作数读时序控制模块的工作,向系统发送写指令允许信号;
[0015]4 )所述存储器数据空标志控制器同时输出存储器I空、存储器2空的标志,且命令字及其多操作数写时序控制模块再次被系统选中写入指令,命令字及其多操作数写时序控制模块输出写预置脉冲作为浮点操作数读时序控制模块的内部时序脉冲发生器的启动信号;
[0016]所述配置运算与输出控制模块根据命令字及其多操作数写时序控制模块输出的第I个操作数的除法方式和浮点操作数读时序控制模块传输的时序脉冲,选通配置第I个操作数是作为除运算器的操作数I还是操作数2,选通配置运算结果是作为除运算器的操作数I还是操作数2,或运算结果不参与执行除法命令的第一次运算;在浮点操作数读时序控制模块发出的结果锁存信号作用下,锁存除法运算的运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止浮点操作数读时序控制模块的工作;当使能信号CS2为“O”时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。
[0017]其进一步技术方案是:所述命令字及其多操作数写时序控制模块包括模块地址识另IJ、写高位地址控制器、写端口地址计数器、写端口脉冲发生控制器、待执行命令寄存器、执行命令寄存器、非门1、非门I1、或门1、或门I1、或门II1、与门1、与门II和与门III;
[0018]所述模块地址识别输入端和系统地址总线AB的A31到A27线连接,CSl输出端和或门II的一个输入端连接,CS2输出端和或门III的一个输入端、写端口脉冲发生控制器的使能输入端、配置运算与输出控制模块连接;
[0019]所述模块地址识别内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别输入A31到A27的地址值与模块地址识别中设置的地址值进行比较,如果和写命令字地址值相等,则输出CSl为“0”,如果和写操作数地址值相等,则输出CS2为“O” ;在任何时刻,CSl和CS2只有一个输出为“O”,或输出都为“I” ;
[0020]所述写高位地址控制器的锁存信号输入端与写端口地址计数器的写溢出输出端连接,写高位地址输入端和非门II的输出端连接,复位输入端和与门II的输出端连接,输出端和非门II的输入端、双端口只读只写存储器的写地址高位输入端AB7_1、存储器数据空标志控制器连接;
[0021]所述写高位地址控制器输出的是双端口只读只写存储器的最高位地址值AB7_1 ;当双端口只读只写存储器的存储器I和存储器2的数据都空时,或者当系统复位信号Rst为“O”时,复位写高位地址控制器,其输出为“O” ;当写高位地址控制器的锁存信号输入端由“I” 一 “O”时,写高位地址控制器输出端输出的AB7_1状态翻转;
[0022]所述写端口地址计数器的操作数个数输入端与系统数据总线DB的D6到DO线连接,写预置脉冲输入端和或门II的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器的脉冲②_1输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和双端口只读只写存储器的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器的写溢出输入端、非门I的输入端、存储器数据空标志控制器连接;
[0023]所述写端口地址计数器实质上是一个减I计数器,系统DB的D6到DO传输的是参与除运算的操作数个数值,当双端口只读只写存储器的存储器I空或存储器2空,且满足模块地址识别的CS2输出端为“O”时,WR信号作为写预置脉冲将操作数个数值作为双端口只读只写存储器写端口的低7位地址初值预置给写端口地址计数器,并将写溢出输出端设置为“I”状态;
[0024]所述写端口地址计数器输出双端口只读只写存储器的写端口低7位地址值AB_1 ;当写计数脉冲输入端来一个计数脉冲时,写端口地址计数器进行一次-1操作,直到写地址输出端为“0”,AB_1为“O”,此时写溢出信号输出端由“I”一 “O”,写溢出信号作为写端口地址计数器停止工作的标志,使得写高位地址控制器的锁存信号输入端由“ I” 一“O”时,写高位地址控制器输出的AB7_1状态翻转;写端口地址计数器在系统复位信号Rst的作用下,复位写端口地址计数器,使得写溢出信号输出端为“O”状态;
[0025]所述写端口脉冲发生控制器的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门III的输出端连接,复位输入端和系统复位信号Rst线连接,脉冲①」输出端和双端口只读只写存储器的写信号输入端WR_1连接;
[0026]所述写端口脉冲发生控制器的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲@_1,脉冲①_1作为双端口只读只写存储器的写入信号WR_1,脉冲②_1作为写端口地址计数器的写计数脉冲;所述写端口地址计数器的写溢出信号输出端由“I”一“0”,写端口脉冲发生控制器停止工作,脉冲
和脉冲②_1的输出端为“ I ”状态;
[0027]所述待执行命令寄存器的命令输入端和系统数据总线DB的D8到DO线连接,锁存信号输入端和或门II的输出端连接,输出端与执行命令寄存器的命令输入端连接;
[0028]所述执行命令寄存器的锁存信号输入端与浮点操作数读时序控制模块连接,读操作数个数输出端、类型输出端与浮点操作数读时序控制模块连接,方式输出端与配置运算与输出控制模块连接;
[0029]所述非门I的输出端和或门I的一个输入端连接;
[0030]所述或门I的另一个输入端和与门I的输出端连接,输出端向系统输出写指令允
许信号;
[0031]所述或门II的另二个输入端分别和与门I的输出端、系统WR写信号线连接,输出端作为写预置信号还与浮点操作数读时序控制模块连接;
[0032]所述或门III的另一个输入端与系统WR写信号线连接,输出端和与门III的一个输入端连接;
[0033]所述与门I的二个输入端分别与存储器数据空标志控制器的存储器I空输出端、存储器2空输出端连接,输出端还和与门III的另一个输入端连接;
[0034]所述与门II的一个输入端与存储器数据空标志控制器的存储器I存储器2数据都空输出端连接,另一个输入端与系统Rst复位信号线连接。
[0035]其进一步技术方案是:所述存储器读时序控制模块III包括读高位地址控制器、读端口地址计数器、读端口脉冲发生控制器、异或非门、非门II1、非门IV、或门IV、或门V、与门
IV、与门V、与门V1、与门Vn和与门VDI ;
[0036]所述读高位地址控制器的锁存信号输入端与读端口地址计数器的读溢出输出端连接,读高位地址输入端和非门III的输出端连接,复位输入端和与门IV的输出端连接,输出端与双端口只读只写存储器的读地址高位输入端ΑΒ7_2、非门III的输入端、存储器数据空标志控制器连接;
[0037]所述读高位地址控制器输出的是双端口只读只写存储器读端口的最高位地址值ΑΒ7_2,当双端口只读只写存储器的存储器I和存储器2的数据都空时,或者当系统复位信号Rst为“O”时,复位读高位地址控制器,其输出端为“O” ;当读高位地址控制器的锁存信号输入端由“I” 一 “O”时,写高位地址控制器输出的AB7_2信号翻转;
[0038]所述读端口地址计数器的读预置脉冲输入端与读端口脉冲发生控制器的脉冲②_2输出端连接,读计数脉冲输入端和与门VDI的输出端连接,复位输入端和与门VI的输出端连接,读操作数个数输入端与执行命令寄存器的读操作数个数输出端连接,读溢出输出端还与读端口脉冲发生控制器的读溢出输入端、存储器数据空标志控制器的读溢出输入端连接,读地址输出端与双端口只读只写存储器的读地址输入端AB_2连接;
[0039]所述读端口地址计数器实质上是一个减I计数器,读预置脉冲将来自执行命令寄存器6输出的读操作数个数预置给读端口地址计数器,使得读端口地址计数器的读地址输出端输出的地址值AB_2为读操作数个数,读端口地址计数器从读操作数个数开始进行-1计数,当读计数脉冲输入端来一个计数脉冲时,读端口地址计数器进行一次-1操作,直到读地址输出端为“0”,AB_2为“0”,表明最后一个操作数已读出,溢出信号输出端由“I”一“0”,溢出信号也是读端口地址计数器停止工作的标志;当输入复位信号为“O”时,复位读端口地址计数器,读端口地址计数器停止计数工作,溢出输出端为“O”;
[0040]所述读端口脉冲发生控制器的同步脉冲输入端与系统时钟信号Clock线连接,启动输入端和与门V的输出端连接,复位输入端和与门VI的输出端连接,类型输入端与执行命令寄存器的类型输出端连接;脉冲①_2输出端与执行命令寄存器的锁存信号输入端连接,脉冲③_2输出端和与门VII的一个输入端、配置运算与输出控制模块连接,脉冲④_2输出端和与门VDI的一个输入端、配置运算与输出控制模块连接,脉冲?_2输出端和与门VII的另一个输入端连接,脉冲⑥_2输出端和与门VDI的另一个输入端连接,脉冲⑦_2输出端和配置运算与输出控制模块连接,脉冲⑧_2输出端和配置运算与输出控制模块连接,读运行状态输出端与存储器数据空标志控制器的读运行状态输入端连接,启动使能输出端和或门V的一个输入端、存储器数据空标志控制器的启动使能输入端连接;
[0041]所述读端口脉冲发生控制器输出的脉冲与系统时钟Clock同步;当双端口只读只写存储器的存储器I或存储器2为数据空时,启动使能输出端由“I”一 “0”,启动读端口脉冲发生控制器开始工作;当双端口只读只写存储器的存储器I和存储器2都为数据空时,在写预置脉冲的作用下启动输出端由“I”一 “0”,启动读端口脉冲发生控制器开始工作;启动的同时置读端口脉冲发生控制器的读运行状态输出端为“O”和启动使能输出端为“I”状态;当读运行状态为“I”时,表明没有命令在执行,或当前命令已执行结束;当启动使能信号为“O”时,表明没有命令在执行,以及执行命令的运算结果已锁存;
[0042]所述读端口脉冲发生控制器根据类型输入信号为“O”还是为“1”,确定控制双端口只读只写存储器中读操作数的脉冲序列;读端口地址计数器输出的溢出信号由“I”一 “0”,读端口脉冲发生控制器经过一个运算周期时间,读运行状态输出端由“O”—“1”,置脉冲?_2输出端为“1”,并发出一个系统时钟Clock周期存最终运算结果的脉冲@_2,启动使能输出端由“I” 一“0”,停止读端口脉冲发生控制器的工作,置所有脉冲输出端为“I”状态;当输入的复位信号为“O”时,复位读端口脉冲发生控制器,复位使得读运行状态输出端为“I”状态,启动使能输出端为“0”,置所有脉冲输出端为“I”状态,并停止读端口脉冲发生控制器的工作;
[0043]所述异或非门的二个输入端分别与存储器数据空标志控制器的存储器I空输出端、存储器2空输出端连接,输出端和或门V的一个输入端连接;[0044]所述非门IV的输入端和或门II的输出端写预置信号连接,输出端和或门IV的一个输入端连接;
[0045]所述或门IV的另一个输入端和存储器数据空标志控制器的存储器I存储器2都空输出端连接,输出端和与门V的一个输入端连接;
[0046]所述或门V的输出端和与门V的另一个输入端连接;
[0047]所述与门IV的一个输入端与存储器数据空标志控制器的存储器I存储器2都空输出端连接,另一个输入端和系统复位信号Rst线连接;
[0048]所述与门VI的一个输入端与系统复位信号Rst线连接,另一个输入端和配置运算与输出控制模块连接;
[0049]所述与门VII的输出端与双端口只读只写存储器的读操作数输入端RD_2连接。
[0050]其进一步技术方案是:所述配置运算与输出控制模块包括选通器、结果寄存器、操作数交换器、浮点数除运算器、运算异常标志控制、32位三态门组、或门V1、与门IX、与门X和或门νπ ;
[0051]所述选通器的二个输入端分别与双端口只读只写存储器的读操作数输出端DB_2、浮点数除运算器的运算结果输出端连接,选通控制输入端和与门IX的输出端连接,输出端与结果寄存器的输入端连接;
[0052]当脉冲③_2或脉冲④_2为“O”时,所述选通器输出从双端口只读只写存储器读出的第I个操作数;当脉冲?_2和脉冲?_2都为“I”时,选通器输出运算结果;
[0053]所述结果寄存器的输出端与操作数交换器的交换数I输入端、32位三态门组输入端连接;结果锁存信号输入端和与门X的输出端连接;
[0054]所述操作数交换器的交换数2输入端与双端口只读只写存储器的读操作数输出端DB_2连接,交换控制端和或门VI的输出端连接,二个输出端分别与浮点数除运算器的操作数I输入端、操作数2输入端连接;
[0055]所述浮点数除运算器的运算结果输出端还与运算异常标志控制的运算结果输入端连接;
[0056]所述运算异常标志控制的锁存结果脉冲输入端与读端口脉冲发生控制器的锁存结果脉冲⑦_2输出端连接;IRQ输出端和与门VI的一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制向系统发出中断请求信号IRQ,并复位读端口地址计数器和读端口脉冲发生控制器,停止浮点操作数读时序控制模块的工作;
[0057]所述32位三态门组的输出端与系统数据总线DB连接,控制端和或门VII的输出端连接;
[0058]所述或门VI的一个输入端与执行命令寄存器的方式输出端连接,另一个输入端与读端口脉冲发生控制器的脉冲⑧_2输出端连接;
[0059]所述与门IX的二个输入端分别与读端口脉冲发生控制器的脉冲③_2、脉冲④_2输出端连接;
[0060]所述与门X的二个输入端分别与读端口脉冲发生控制器的脉冲④_2、脉冲⑦_2输出端连接;
[0061]所述或门Vn的二个输入端分别与模块地址识别的CS2信号输出端、系统读信号RD线连接;当CS2为“O”时,在系统RD信号的作用下,读出中间运算结果和命令执行的最终运
晳奸里
[0062]其进一步技术方案是:所述浮点操作数读时序控制模块与执行命令寄存器的类型输出端连接;所述配置运算与输出控制模块与执行命令寄存器的方式输出端连接;所述执行命令寄存器输出的方式和类型信号控制从双端口只读只写存储器读出的第1个操作数参加除法运算的操作数类型和除法方式:
[0063]当操作数类型为“O”时:结果寄存器输出的是运算结果,操作数交换器的交换数1输入端为运算结果,操作数交换器的交换数2输入端为从双端口只读只写存储器读出的第1个操作数;操作数交换器交换控制端输入的脉冲⑧_2控制两种除法运算的处理方式:
[0064]除法方式为“O”:当读第1个操作数和执行第1个操作数除法运算时,脉冲@_2为“0”,则操作数交换器的控制端为“0”,交换数1输入端的运算结果作为操作数交换器输出的操作数2,交换数2输入端的第1个操作数作为操作数交换器输出的操作数1,即操作数交换器的2个输入和2个输出进行交换传输,执行第1个操作数/运算结果的除法运算;
[0065]除法方式为“1”:当读第1个操作数和执行第1个操作数除法运算时,虽然脉冲
⑧_2为“0”,但除法方式为“ 1 ”状态,使得操作数交换器的控制端为“ 1 ”,操作数交换器的2个输入和2个输出不进行交换传输;执行运算结果/第1个操作数的除法运算;
[0066]当操作数类型为“1”时--第1个操作数的配置与除法方式信号状态无关,读端口脉冲发生控制器的脉冲⑧_2输出端为“ 1 ”状态,使得操作数交换器的控制端为“ 1 ”,操作数交换器的2个输入和2个输出不进行交换传输;执行第1个操作数/第2个操作数的除法运笪
ο
[0067]由于采用以上结构,本实用新型之双指令多浮点操作数除运算控制器具有以下有益效果:
[0068]一、一条指令的命令字及其多浮点操作数能够连续写入存储
[0069]本实用新型之双指令多操作数浮点除运算控制器在除法命令字被写入后,在内部与系统WR脉冲同步的写操作数时序脉冲的控制之下,能够将多个浮点操作数全部按照顺序连续写入并存储在双端口只读只写存储器中。
[0070]二、双指令并行处理功能
[0071]本实用新型之双指令多操作数浮点除运算控制器内部设置了一个双端口只读只写存储器,分为存储器1和存储器2两个存储区域,用于存储两条多操作浮点数除运算指令的浮点操作数;控制器能够处于正在读出一条指令的浮点操作数执行处理,另一条指令的运算命令待执行;或正在读出一条指令的浮点操作数执行运算处理,另一条指令正在从系统写入控制器;或正在从系统写入一条指令的浮点多操作数,且同时正在读出该指令的浮点操作数执行运算处理。
[0072]三、自主控制多浮点操作数除法的运算
[0073]本实用新型之双指令多操作数浮点除运算控制器在指令的命令执行过程中,控制器内部产生与系统Clock同步的读时序脉冲序列,在读时序脉冲序列的控制下,从控制器的双端口只读只写存储器中读出操作数,自主完成该指令的所有操作数的除法运算,不受系统控制。
[0074]四、自动选择执行第1个浮点操作数的处理方式[0075]本实用新型之双指令多操作数浮点除运算控制器根据第I个浮点操作数的操作数类型和除法方式,对第I个浮点操作数有三种处理方式,一是第I个浮点操作数作为被除数,实施第I个浮点操作数/第2个浮点操作数的除法运算;二是第I个浮点操作数作为被除数,实施第I个浮点操作数/运算结果的除法运算;三是第I个浮点操作数作为除数,实施运算结果/第I个浮点操作数的除法运算。
[0076]五、控制器性价比高
[0077]本实用新型之双指令多操作数浮点除运算控制器以FPGA的硬连接控制电路为核心,应用写时序脉冲控制、读时序脉冲控制,达到自主完成多操作浮点数除运算的目的,并且双指令多操作浮点数除运算命令能够并行处理;控制器能够读出中间运算和最终运算结果;每条多操作数浮点除运算指令最多能够有127个浮点操作数,这样一条多浮点操作数除运算指令相当于相同除法运算的多条指令,减少了系统对命令的取指和译码、浮点操作数和运算结果写回的传输操作过程,提高了处理速度,具有较高的性价比。
[0078]下面结合附图和实施例对本实用新型之双指令多浮点操作数除运算控制器的技术特征作进一步的说明。
【专利附图】

【附图说明】
[0079]图1:本实用新型之双指令多浮点操作数除运算控制器的系统结构框图;
[0080]图2:本实用新型之双指令多浮点操作数除运算控制器的双端口只读只写存储器端口图;
[0081]图3:本实用新型之双指令多浮点操作数除运算控制器的命令字及其多操作数写时序控制模块的电路连接图;
[0082]图4:本实用新型之双指令多浮点操作数除运算控制器的存储器数据空标志控制器端口图;
[0083]图:5:本实用新型之双指令多浮点操作数除运算控制器的浮点操作数读时序控制模块的电路连接图;
[0084]图6:本实用新型之双指令多浮点操作数除运算控制器的配置运算与输出控制模块的电路连接图;
[0085]图7:本实用新型之双指令多浮点操作数除运算控制器的存储器I数据空逻辑判断图;
[0086]图8:本实用新型之双指令多浮点操作数除运算控制器的存储器2数据空逻辑判断图;
[0087]图9:本实用新型之双指令多浮点操作数除运算控制器的写命令字多浮点操作数时序图;
[0088]图10:本实用新型之双指令多浮点操作数除运算控制器的存储器I和存储器2数据空启动时序图;
[0089]图11:本实用新型之双指令多浮点操作数除运算控制器的存储器I或存储器2数据空启动时序图;
[0090]图12:本实用新型之双指令多浮点操作数除运算控制器的类型O读多浮点操作数和结果锁存时序图;[0091]图13:本实用新型之双指令多浮点操作数除运算控制器的类型I读多浮点操作数和结果锁存时序图。
[0092]图中:
[0093]I 一双端口只读只写存储器,II一命令字及其多操作数写时序控制模块,III一浮点操作数读时序控制模块,IV—存储器数据空标志控制器,V—配置运算与输出控制模块;
[0094]I一模块地址识别,2—写高位地址控制器,3—写端口地址计数器,4一写端口脉冲发生控制器,5—待执行命令寄存器,6—执行命令寄存器,7—非门I ,8—非门II, 9一或门I,10—或门II,11 一或门III,12—与门I,13—与门II,14一与门III,15—读高位地址控制器,16—读端口地址计数器,17—读端口脉冲发生控制器,18—异或非门,19一非门III,20一非门IV,21一或门IV,22一或门V,23一与门IV,24一与门V,25一与门VI,26一与门VII,27—与门珊,28—选通器,29—结果寄存器,30—操作数交换器,31—浮点数除运算器,32—运算异常标志控制,33—32位三态门组,34—或门VI,35—与门IX,36—与门X,37—或门νπ。
[0095]文中缩略语说明:
[0096]FPGA — Field Programmable Gate Array,现场可编程门阵列;
[0097]DB — Data Bus,数据总线;
[0098]AB — Address Bus,地址总线;
[0099]CS - Chip Select,片选或使能,图中CS代表“使能信号”;
[0100]Clock—时钟;
[0101]RD - Read,读,图中代表“读信号”;
[0102]WR —Write,写,图中代表“写信号”;
[0103]IRQ — Interrupt Request,中断申请,图中代表“中断请求信号”;
[0104]Rst — Reset,复位。
【具体实施方式】
[0105]实施例:
[0106]一种双指令多浮点操作数除运算控制器,如图1所示,该控制器包括双端口只读只写存储器1、命令字及其多操作数写时序控制模块I1、浮点操作数读时序控制模块II1、存储器数据空标志控制器IV、配置运算与输出控制模块V ;
[0107]所述双端口只读只写存储器I与命令字及其多操作数写时序控制模块I1、浮点操作数读时序控制模块II1、配置运算与输出控制模块V连接;
[0108]所述命令字及其多操作数写时序控制模块II还与浮点操作数读时序控制模块II1、存储器数据空标志控制器IV、配置运算与输出控制模块V连接;
[0109]所述浮点操作数读时序控制模块III还与存储器数据空标志控制器IV、配置运算与输出控制模块V连接;
[0110]所述双端口只读只写存储器I为双端口存储器,一个只写端口,一个只读端口,用于储存多浮点操作数(下称为操作数);所述双端口只读只写存储器I分为存储器I和存储器2两个存储区域;所述双端口只读只写存储器I的写地址高位输入端AB7_1为“0”,或读地址高位输入端AB7_2为“O”,选中操作数存储器的127个低地址存储单元,即存储器I ;写地址高位输入端AB7_1为“ I ”,或读地址高位输入端AB7_2为“ I ”,选中操作数存储器的127个高地址存储单元,即存储器2 ;
[0111]所述命令字及其多操作数写时序控制模块II控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个;所述命令字及其多操作数写时序控制模块II在双端口只读只写存储器I的存储器I或存储器2为数据空,输出写指令允许信号,方允许被系统选中;被系统选中写指令时,在系统WR信号的作用下,写入除运算命令字;被系统选中写操作数时,其内部产生与系统WR信号同步的写时序脉冲;在写时序脉冲的控制下,将操作数存储在双端口只读只写存储器I的存储器I或存储器2中;一条指令的最后一个操作数被写入存储后,转换双端口只读只写存储器I的写高位地址输入端AB7_1状态,如果双端口只读只写存储器I的存储器I和存储器2都非空,停止命令字及其多操作数写时序控制模块II的工作;
[0112]所述浮点操作数读时序控制模块III在内部读时序脉冲的控制下,自主完成多浮点操作数从双端口只读只写存储器I中读出,不需要占用系统总线;所述浮点操作数读时序控制模块III产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与除运算;当参与运算的最后一个操作数读出之后,产生读地址溢出信号,然后再经过一个除运算周期,发出读运行状态结束的信号,产生一个时钟周期Clock的结果锁存脉冲,然后再发出启动使能信号;
[0113]所述浮点操作数读时序控制模块III依据存储器数据空标志控制器IV的空标志状态读出操作数,有下面4种工作状态:
[0114]I)所述存储器数据空标志控制器IV无存储器I空、存储器2空的标志输出,表明存储器1、存储器2都为数据非空,一个非空的存储器正在写入指令的命令字及其操作数或写入过程已结束;另一个存储器正在执行读出操作,如果存储器读出的操作数执行运算结束,启动使能信号由“I” 一 “0”,转为一个存储器空,另一个存储器非空的状态,此时在读出操作执行结束后的第I个系统时钟Clock的下降沿作为时序脉冲发生的启动信号,向系统发送写指令允许信号;启动浮点操作数读时序控制模块III的工作;
[0115]2)所述存储器数据空标志控制器IV输出任何一个存储器空的标志,能够处于两种操作状态,一是非空的存储器正在写入操作数,该存储器同时执行读出操作;二是非空的存储器只在执行读出操作,如果存储器读出的操作数执行运算结束,启动使能信号由“I” 一 “O”,转为存储器I和存储器2都空的状态;
[0116]3)所述存储器数据空标志控制器IV同时输出存储器I空、存储器2空的标志,停止浮点操作数读时序控制模块III的工作,向系统发送写指令允许信号;
[0117]4 )所述存储器数据空标志控制器IV同时输出存储器I空、存储器2空的标志,且命令字及其多操作数写时序控制模块II再次被系统选中写入指令,命令字及其多操作数写时序控制模块II输出写预置脉冲作为浮点操作数读时序控制模块III的内部时序脉冲发生器的启动信号;
[0118]所述配置运算与输出控制模块V根据命令字及其多操作数写时序控制模块II输出的第I个操作数的除法方式和浮点操作数读时序控制模块III传输的时序脉冲,选通配置第I个操作数是作为除运算器的操作数I还是操作数2,选通配置运算结果是作为除运算器的操作数I还是操作数2,或运算结果不参与执行除法命令的第一次运算;在浮点操作数读时序控制模块III发出的结果锁存信号作用下,锁存除法运算的运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止浮点操作数读时序控制模块III的工作;当使能信号CS2为“O”时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。
[0119]如图3所示,所述命令字及其多操作数写时序控制模块II包括模块地址识别1、写高位地址控制器2、写端口地址计数器3、写端口脉冲发生控制器4、待执行命令寄存器5、执行命令寄存器6、非门I 7、非门II 8、或门I 9、或门II 10、或门III 11、与门I 12、与门II 13和与门III 14 ;
[0120]所述模块地址识别I输入端和系统地址总线AB的A31到A27线连接,CSl输出端和或门II 10的一个输入端连接,CS2输出端和或门III 11的一个输入端、写端口脉冲发生控制器4的使能输入端、配置运算与输出控制模块V连接;
[0121]所述模块地址识别I内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别I输入A31到A27的地址值与模块地址识别I中设置的地址值进行比较,如果和写命令字地址值相等,则输出CSl为“0”,如果和写操作数地址值相等,则输出CS2为“O” ;在任何时刻,CSl和CS2只有一个输出为“O”,或输出都为“I” ;
[0122]所述写高位地址控制器2的锁存信号输入端与写端口地址计数器3的写溢出输出端连接,写高位地址输入端和非门II 8的输出端连接,复位输入端和与门II 13的输出端连接,输出端和非门II 8的输入端、双端口只读只写存储器I的写地址高位输入端AB7_1、存储器数据空标志控制器IV连接;
[0123]所述写高位地址控制器2输出的是双端口只读只写存储器I最高位地址值AB7_1 ;当双端口只读只写存储器I的存储器I和存储器2的数据都空时,或者当系统复位信号Rst为“O”时,复位写高位地址控制器2,其输出为“O”;当写高位地址控制器2的锁存信号输入端由“I” 一 “O”时,写高位地址控制器2输出端输出的AB7_1状态翻转;
[0124]所述写端口地址计数器3的操作数个数输入端与系统数据总线的D6到DO线连接,写预置脉冲输入端和或门II 10的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器4的脉冲②_1输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和双端口只读只写存储器I的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器4的写溢出输入端、非门I 7的输入端、存储器数据空标志控制器IV连接;
[0125]所述写端口地址计数器3实质上是一个减I计数器,系统DB的D6到DO传输的是参与除运算的操作数个数值,当双端口只读只写存储器I的存储器I空或存储器2空,且满足模块地址识别I的CS2输出端为“O”时,WR信号作为写预置脉冲将操作数个数值作为双端口只读只写存储器I写端口的低7位地址初值预置给写端口地址计数器3,并将写溢出输出端设置为“I”状态;
[0126]所述写端口地址计数器3输出双端口只读只写存储器I的写端口低7位地址值AB_1 ;当写计数脉冲输入端来一个计数脉冲时,写端口地址计数器3进行一次-1操作,直到写地址输出端为“0”,AB_1为“0”,此时写溢出信号输出端由“I”一 “0”,写溢出信号作为写端口地址计数器3停止工作的标志,使得写高位地址控制器2的锁存信号输入端由“ I” 一 “O”时,写高位地址控制器2输出的AB7_1状态翻转;写端口地址计数器3在系统复位信号Rst的作用下,复位写端口地址计数器3,使得写溢出信号输出端为“O”状态;
[0127]所述写端口脉冲发生控制器4的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门III14的输出端连接,复位输入端和系统复位信号Rst线连接,脉冲①」输出端和双端口只读只写存储器I的写信号输入端WR_1连接;
[0128]所述写端口脉冲发生控制器4的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲@_1,脉冲①_1作为双端口只读只写存储器I的写入信号WR_1,脉冲②_1作为写端口地址计数器3的写计数脉冲;所述写端口地址计数器3的写溢出信号输出端由“I” 一“0”,写端口脉冲发生控制器4停止工作,脉冲①_1和脉冲②_1的输出端为“ I ”状态;
[0129]所述待执行命令寄存器5的命令输入端和系统数据总线DB的D8到DO线连接,锁存信号输入端和或门II 10的输出端连接,输出端与执行命令寄存器6的命令输入端连接;
[0130]所述执行命令寄存器6的锁存信号输入端与浮点操作数读时序控制模块III连接,读操作数个数输出端、类型输出端与浮点操作数读时序控制模块III连接,方式输出端与配置运算与输出控制模块V连接;
[0131]所述非门I 7的输出端和或门I 9的一个输入端连接;
[0132]所述或门I 9的另一个输入端和与门I 12的输出端连接,输出端向系统输出写指令允许信号;
[0133]所述或门II 10的另二个输入端分别和与门I 12的输出端、系统WR写信号线连接,输出端作为写预置信号还与浮点操作数读时序控制模块III连接;
[0134]所述或门III 11的另一个输入端与系统WR写信号线连接,输出端和与门III 14的一个输入端连接;
[0135]所述与门I 12的二个输入端分别与存储器数据空标志控制器IV的存储器I空输出端、存储器2空输出端连接,输出端还和与门III 14的另一个输入端连接;
[0136]所述与门II 13的一个输入端与存储器数据空标志控制器IV的存储器I存储器2数据都空输出端连接,另一个输入端与系统Rst复位信号线连接。
[0137]如图5所示,所述存储器读时序控制模块III包括读高位地址控制器15、读端口地址计数器16、读端口脉冲发生控制器17、异或非门18、非门III 19、非门IV 20、或门IV 21、或门V 22、与门IV 23、与门V 24、与门VI 25、与门VII 26和与门VDI 27;
[0138]所述读高位地址控制器15的锁存信号输入端与读端口地址计数器16的读溢出输出端连接,读高位地址输入端和非门III19的输出端连接,复位输入端和与门IV 23的输出端连接,输出端与双端口只读只写存储器I的读地址高位输入端ΑΒ7_2、非门III 19的输入端、存储器数据空标志控制器IV连接;
[0139]所述读高位地址控制器15输出的是双端口只读只写存储器I读端口的最高位地址值ΑΒ7_2,当双端口只读只写存储器I的存储器I和存储器2的数据都空时,或者当系统复位信号Rst为“O”时,复位读高位地址控制器15,其输出端为“O” ;当读高位地址控制器15的锁存信号输入端由“I” 一 “O”时,写高位地址控制器2输出的ΑΒ7_2信号翻转;
[0140]所述读端口地址计数器16的读预置脉冲输入端与读端口脉冲发生控制器17的脉冲②_2输出端连接,读计数脉冲输入端和与门珊27的输出端连接,复位输入端和与门
VI25的输出端连接,读操作数个数输入端与执行命令寄存器6的读操作数个数输出端连接,读溢出输出端还与读端口脉冲发生控制器17的读溢出输入端、存储器数据空标志控制器IV的读溢出输入端连接,读地址输出端与双端口只读只写存储器I的读地址输入端AB_2连接;
[0141]所述读端口地址计数器16实质上是一个减I计数器,读预置脉冲将来自执行命令寄存器6输出的读操作数个数预置给读端口地址计数器16,使得读端口地址计数器16的读地址输出端输出的地址值AB_2为读操作数个数,读端口地址计数器16从读操作数个数开始进行-1计数,当读计数脉冲输入端来一个计数脉冲时,读端口地址计数器16进行一次-1操作,直到读地址输出端为“0”,AB_2为“0”,最后一个操作数已读出,溢出信号输出端由“I”一“0”,溢出信号也是读端口地址计数器16停止工作的标志;当输入复位信号为“O”时,复位读端口地址计数器16,读端口地址计数器16停止计数工作,溢出输出端为“O”;
[0142]所述读端口脉冲发生控制器17的同步脉冲输入端与系统时钟信号Clock线连接,启动输入端和与门V 24的输出端连接,复位输入端和与门VI 25的输出端连接,类型输入端与执行命令寄存器6的类型输出端连接;脉冲①_2输出端与执行命令寄存器6的锁存信号输入端连接,脉冲@_2输出端和与门VII 26的一个输入端、配置运算与输出控制模块V连接,脉冲@_2输出端和与门VDI 27的一个输入端、配置运算与输出控制模块V连接,脉冲⑤_2输出端和与门VII 26的另一个输入端连接,脉冲⑥_2输出端和与门VDI 27的另一个输入端连接,脉冲?_2输出端和配置运算与输出控制模块V连接,脉冲@_2输出端和配置运算与输出控制模块V连接,读运行状态输出端与存储器数据空标志控制器IV的读运行状态输入端连接,启动使能输出端和或门V 22的一个输入端、存储器数据空标志控制器IV的启动使能输入端连接;
[0143]所述读端口脉冲发生控制器17输出的脉冲与系统时钟Clock同步;当双端口只读只写存储器I的存储器I或存储器2为数据空时,启动使能输出端由“I”一 “O”启动读端口脉冲发生控制器17开始工作;当双端口只读只写存储器I的存储器I和存储器2都为数据空时,在写预置脉冲的作用下启动输出端由“I”一“0”,启动读端口脉冲发生控制器17开始工作;启动的同时置读端口脉冲发生控制器17的读运行状态输出端为“O”和启动使能输出端为“I”状态;当读运行状态为“I”时,表明没有命令在执行,或当前命令已执行结束;当启动使能信号为“O”时,表明没有命令在执行,以及执行命令的运算结果已锁存;
[0144]所述读端口脉冲发生控制器17根据类型输入信号为“O”还是为“1”,确定控制双端口只读只写存储器I中读操作数的脉冲序列;读端口地址计数器16输出的溢出信号由“I” 一 “0”,读端口脉冲发生控制器17经过一个运算周期时间,读运行状态输出端由“O”—“ 1”,置脉冲⑥_2输出端为“ 1”,并发出一个系统时钟Clock周期存最终运算结果的脉冲@_2,启动使能输出端由“I” 一“0”,停止读端口脉冲发生控制器17的工作,置所有脉冲输出端为“I”状态;当输入的复位信号为“O”时,复位读端口脉冲发生控制器17,复位使得读运行状态输出端为“I”状态,启动使能输出端为“0”,置所有脉冲输出端为“I”状态,并停止读端口脉冲发生控制器17的工作;
[0145]所述异或非门18的二个输入端分别与存储器数据空标志控制器IV的存储器I空输出端、存储器2空输出端连接,输出端和或门V 22的一个输入端连接;
[0146]所述非门IV 20的输入端和或门II 10的输出端写预置信号连接,输出端和或门IV 21的一个输入端连接;[0147]所述或门IV 21的另一个输入端和存储器数据空标志控制器IV的存储器I存储器2都空输出端连接,输出端和与门V 24的一个输入端连接;
[0148]所述或门V 22的输出端和与门V 24的另一个输入端连接;
[0149]所述与门IV 23的一个输入端与存储器数据空标志控制器IV的存储器I存储器2都空输出端连接,另一个输入端和系统复位信号Rst线连接;
[0150]所述与门VI 25的一个输入端与系统复位信号Rst线连接,另一个输入端和配置运算与输出控制模块V连接;
[0151]所述与门Vn 26的输出端与双端口只读只写存储器I的读操作数输入端RD_2连接。
[0152]如图6所示,所述配置运算与输出控制模块V包括选通器28、结果寄存器29、操作数交换器30、浮点数除运算器31、运算异常标志控制32、32位三态门组33、或门VI 34、与门IX 35、与门X 36和或门VII 37 ;
[0153]所述选通器28的二个输入端分别与双端口只读只写存储器I的读操作数输出端DB_2、浮点数除运算器31的运算结果输出端连接,选通控制输入端和与门IX 35的输出端连接,输出端与结果寄存器29的输入端连接;
[0154]当脉冲?_2或脉冲?_2为“O”时,所述选通器28输出从双端口只读只写存储器I读出的第I个操作数;当脉冲③_2和脉冲④_2都为“ I ”时,选通器28输出运算结果;
[0155]所述结果寄存器29的输出端与操作数交换器30的交换数I输入端、32位三态门组33输入端连接;结果锁存信号输入端和与门X 36的输出端连接;
[0156]所述操作数交换器30的交换数2输入端与双端口只读只写存储器I的读操作数输出端DB_2连接,交换控制端和或门VI 34的输出端连接,二个输出端分别与浮点数除运算器31的操作数I输入端、操作数2输入端连接;
[0157]所述浮点数除运算器31的运算结果输出端还与运算异常标志控制32的运算结果输入端连接;
[0158]所述运算异常标志控制32的锁存结果脉冲输入端与读端口脉冲发生控制器17的锁存结果脉冲?_2输出端连接;IRQ输出端和与门VI 25的一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ;当中间运算结果或最终运算结果出现异常时,所述运算异常标志控制32向系统发出中断请求信号IRQ,并复位读端口地址计数器16和读端口脉冲发生控制器17,停止浮点操作数读时序控制模块III的工作;
[0159]所述32位三态门组33的输出端与系统数据总线DB连接,控制端和或门VII 37的输出端连接;
[0160]所述或门VI 34的一个输入端与执行命令寄存器6的方式输出端连接,另一个输入端与读端口脉冲发生控制器17的脉冲?_2输出端连接;
[0161]所述与门IX 35的二个输入端分别与读端口脉冲发生控制器17的脉冲?_2、脉冲@_2输出端连接;
[0162]所述与门X 36的二个输入端分别与读端口脉冲发生控制器17的脉冲@_2、脉冲?_2输出端连接;
[0163]所述或门VII 37的二个输入端分别与模块地址识别I的CS2信号输出端、系统读信号RD线连接;当CS2为“O”时,在系统RD信号的作用下,读出中间运算结果和命令执行的最终运算结果。
[0164]如图3、图5、图6所示,所述浮点操作数读时序控制模块III与执行命令寄存器6的类型输出端连接;所述配置运算与输出控制模块V与执行命令寄存器6的方式输出端连接;所述执行命令寄存器6输出的方式和类型信号控制从双端口只读只写存储器I读出的第I个操作数参加除法运算的操作数类型和除法方式:
[0165]当操作数类型为“O”时:结果寄存器29输出的是运算结果,操作数交换器30的交换数I输入端为运算结果,操作数交换器30的交换数2输入端为从双端口只读只写存储器I读出的第I个操作数;操作数交换器30交换控制端输入的脉冲⑧_2控制两种除法运算的处理方式:
[0166]除法方式为“O”:当读第I个操作数和执行第I个操作数除法运算时,脉冲@_2为“0”,则操作数交换器30的控制端为“0”,交换数I输入端的运算结果作为操作数交换器30输出的操作数2,交换数2输入端的第I个操作数作为操作数交换器30输出的操作数1,即操作数交换器30的2个输入和2个输出进行交换传输,执行第I个操作数/运算结果的除法运算;
[0167]除法方式为“I”:当读第I个操作数和执行第I个操作数除法运算时,虽然脉冲@_2为“0”,但除法方式为“I”状态,使得操作数交换器30的控制端为“1”,操作数交换器30的2个输入和2个输出不进行交换传输;执行运算结果/第I个操作数的除法运算;
[0168]当操作数类型为“I”时--第I个操作数的配置与除法方式信号状态无关,读端口脉冲发生控制器17的脉冲@_2输出端为“I”状态,使得操作数交换器30的控制端为“1”,操作数交换器30的2个输 入和2个输出不进行交换传输;执行第I个操作数/第2个操作数的除法运算。
【权利要求】
1.一种双指令多浮点操作数除运算控制器,其特征在于:该控制器包括双端口只读只写存储器(I )、命令字及其多操作数写时序控制模块(II)、浮点操作数读时序控制模块皿)、存储器数据空标志控制器(IV)、配置运算与输出控制模块(V); 所述双端口只读只写存储器(I )与命令字及其多操作数写时序控制模块(II)、浮点操作数读时序控制模块(III)、配置运算与输出控制模块(V)连接; 所述命令字及其多操作数写时序控制模块(II)还与浮点操作数读时序控制模块(III)、存储器数据空标志控制器(IV)、配置运算与输出控制模块(V)连接; 所述浮点操作数读时序控制模块(III)还与存储器数据空标志控制器(IV)、配置运算与输出控制模块(V)连接; 所述双端口只读只写存储器(I )为双端口存储器,一个只写端口,一个只读端口,用于储存多浮点操作数,以下称为操作数;所述双端口只读只写存储器(I )分为存储器I和存储器2两个存储区域; 所述命令字及其多操作数写时序控制模块(II)控制完成指令的写入和存储,需要占用系统总线;一条指令包括9位命令字和若干个操作数,操作数最多为127个; 所述浮点操作数读时序控制模块(III)在内部读时序脉冲的控制下,自主完成多浮点操作数从双端口只 读只写存储器(I )中读出,不需要占用系统总线; 所述浮点操作数读时序控制模块(III)依据存储器数据空标志控制器(IV)的空标志状态读出操作数,有下面4种工作状态: 1)所述存储器数据空标志控制器(IV)无存储器I空、存储器2空的标志输出,表明一个非空的存储器正在写入指令或写入过程已结束;另一个存储器正在执行读出操作; 2)所述存储器数据空标志控制器(IV)输出任何一个存储器空的标志,能够处于两种操作状态,一是非空的存储器正在写入操作数,该存储器同时执行读出操作;二是非空的存储器只在执行读出操作; 3)所述存储器数据空标志控制器(IV)同时输出存储器I空、存储器2空的标志,停止浮点操作数读时序控制模块(III)的工作,向系统发送写指令允许信号; 4)所述存储器数据空标志控制器(IV)同时输出存储器I空、存储器2空的标志,且命令字及其多操作数写时序控制模块(II)再次被系统选中写入指令; 所述配置运算与输出控制模块(V)根据命令字及其多操作数写时序控制模块(II)输出的第I个操作数的除法方式和浮点操作数读时序控制模块(III)传输的时序脉冲,选通配置第I个操作数是作为除运算器的操作数I还是操作数2,选通配置运算结果是作为除运算器的操作数I还是操作数2,或运算结果不参与执行除法命令的第一次运算;在浮点操作数读时序控制模块(III)发出的结果锁存信号作用下,锁存除法运算的运算结果,并判断运算结果是否异常,如果出现异常,向系统发出IRQ信号,停止浮点操作数读时序控制模块(III)的工作;当使能信号CS2为“O”时,在系统RD信号的作用下能够读出中间运算结果和命令执行的最终运算结果。
2.如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述命令字及其多操作数写时序控制模块(II)包括模块地址识别(I )、写高位地址控制器(2)、写端口地址计数器(3)、写端口脉冲发生控制器(4)、待执行命令寄存器(5)、执行命令寄存器(6)、非门I (7)、非门II (8)、或门I (9)、或门II (10)、或门111(11)、与门I (12)、与门II (13)和与门 III (14); 所述模块地址识别(I)输入端和系统地址总线AB的A31到A27线连接,CSl输出端和或门II (10)的一个输入端连接,CS2输出端和或门III(Il)的一个输入端、写端口脉冲发生控制器(4)的使能输入端、配置运算与输出控制模块(V)连接; 所述模块地址识别(I)内部设置两个地址值,一个是写命令字地址值,一个是写操作数地址值;所述模块地址识别(I)输入A31到A27地址值与模块地址识别(I)中设置的地址值进行比较,如果和写命令字地址值相等,则输出CSl为“0”,如果和写操作数地址值相等,则输出CS2为“O”; 所述写高位地址控制器(2)的锁存信号输入端与写端口地址计数器(3)的写溢出输出端连接,写高位地址输入端和非门II (8)的输出端连接,复位输入端和与门II (13)的输出端连接,输出端和非门II (8)的输入端、双端口只读只写存储器(I )的写地址高位输入端AB7_1、存储器数据空标志控制器(IV)连接; 所述写高位地址控制器(2)输出的是双端口只读只写存储器(I )的最高位地址值AB7_1 ;当双端口只读只写存储器(I )的存储器I和存储器2的数据都空时,或者当系统复位信号Rst为“O”时,复位写高位地址控制器(2);当写高位地址控制器(2)的锁存信号输入端由“1” 一 “O”时,写高位地址控制器(2)输出端输出的AB7_1状态翻转; 所述写端口地址计数器(3)的操作数个数输入端与系统数据总线DB的D6到DO线连接,写预置脉冲输入端和或门II (10)的输出端连接,写计数脉冲输入端与写端口脉冲发生控制器(4)的脉冲②」输出端连接,写复位输入端和系统复位信号Rst线连接,写地址输出端和双端口只读只写存储器(I )的写地址输入端AB_1连接,写溢出输出端还和写端口脉冲发生控制器(4)的写溢出输入端、非门I (7)的输入端、存储器数据空标志控制器(IV)连接; 所述写端口地址计数器(3)实质上是一个减I计数器,系统DB的D6到DO传输的是参与除运算的操作数个数值; 所述写端口地址计数器(3)输出双端口只读只写存储器(I )的写端口低7位地址值AB_1 ;写溢出信号作为写端口地址计数器(3)停止工作的标志; 所述写端口脉冲发生控制器(4)的同步脉冲输入端与系统写信号WR线连接,启动输入端和与门III (14)的输出端连接,复位输入端和系统复位信号Rst线连接,脉冲①」输出端和双端口只读只写存储器(I )的写信号输入端WR_1连接; 所述写端口脉冲发生控制器(4)的使能输入端为“0”,在启动输入端的脉冲信号作用下启动工作,发出与系统WR脉冲同步的脉冲①_1和脉冲@_1,脉冲①_1作为双端口只读只写存储器(I )的写入信号WR_1,脉冲②_1作为写端口地址计数器(3)的写计数脉冲;所述写端口地址计数器(3)的写溢出信号输出端由“I”一 “0”,写端口脉冲发生控制器(4)停止工作,脉冲①」和脉冲②」的输出端为“I”状态; 所述待执行命令寄存器(5)的命令输入端和系统数据总线DB的D8到DO线连接,锁存信号输入端和或门II (10)的输出端连接,输出端与执行命令寄存器(6)的命令输入端连接; 所述执行命令寄存器(6)的锁存信号输入端与浮点操作数读时序控制模块(III)连接,读操作数个数输出端、类型输出端与浮点操作数读时序控制模块(III)连接,方式输出端与配置运算与输出控制模块(V)连接; 所述非门I (7)的输出端和或门I (9)的一个输入端连接; 所述或门I (9)的另一个输入端和与门I (12)的输出端连接,输出端向系统输出写指令允许信号; 所述或门II (10)的另二个输入端分别和与门I (12)的输出端、系统WR写信号线连接,输出端作为写预置信号还与浮点操作数读时序控制模块(III)连接; 所述或门III(Il)的另一个输入端与系统WR写信号线连接,输出端和与门111(14)的一个输入端连接; 所述与门I (12)的二个输入端分别与存储器数据空标志控制器(IV)的存储器I空输出端、存储器2空输出端连接,输出端还和与门III(14)的另一个输入端连接; 所述与门II (13)的一个输入端与存储器数据空标志控制器(IV)的存储器I存储器2数据都空输出端连接,另一个输入端与系统Rst复位信号线连接。
3.如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述存储器读时序控制模块III包括读高位地址控制器(15)、读端口地址计数器(16)、读端口脉冲发生控制器(17)、异或非门(18)、非门IIK19)、非门IV (20)、或门IV (21)、或门V (22)、与门IV(23)、与门乂(24)、与门/1(25)、与门¥11(26)和与门VDK27); 所述读高位地址控制器(15)的锁存信号输入端与读端口地址计数器(16)的读溢出输出端连接,读高位地址输入端和非门111(19)的输出端连接,复位输入端和与门IV(23)的输出端连接,输出端与双端口只读只写存储器(I )的读地址高位输入端AB7_2、非门111(19)的输入端、存储器数据空标志控制器(IV)连接; 所述读高位地址控制器(15)输出的是双端口只读只写存储器(I )读端口的最高位地址值AB7_2 ; 所述读端口地址计数器(16)的读预置脉冲输入端与读端口脉冲发生控制器(17)的脉冲②_2输出端连接,读计数脉冲输入端和与门VDK27)的输出端连接,复位输入端和与门VI(25)的输出端连接,读操作数个数输入端与执行命令寄存器(6)的读操作数个数输出端连接,读溢出输出端还与读端口脉冲发生控制器(17)的读溢出输入端、存储器数据空标志控制器(IV)的读溢出输入端连接,读地址输出端与双端口只读只写存储器(I )的读地址输入端AB_2连接; 所述读端口地址计数器(16)实质上是一个减I计数器,读预置脉冲将来自执行命令寄存器(6)输出的读操作数个数预置给读端口地址计数器(16),读端口地址计数器(16)的读地址输出端输出的地址值AB_2为读操作数个数,读端口地址计数器(16)从读操作数个数开始进行-1计数,溢出信号也是读端口地址计数器(16)停止工作的标志;当输入复位信号为“O”时,复位读端口地址计数器(16),读端口地址计数器(16)停止计数工作,溢出输出端为 “O” ; 所述读端口脉冲发生控制器(17)的同步脉冲输入端与系统时钟信号Clock线连接,启动输入端和与门V (24)的输出端连接,复位输入端和与门VK25)的输出端连接,类型输入端与执行命令寄存器(6)的类型输出端连接;脉冲①_2输出端与执行命令寄存器(6)的锁存信号输入端连接,脉冲?_2输出端和与门VD(26)的一个输入端、配置运算与输出控制模块(V)连接,脉冲@_2输出端和与门VDK27)的一个输入端、配置运算与输出控制模块(V)连接,脉冲?_2输出端和与门νπ(26)的另一个输入端连接,脉冲?_2输出端和与门VDK27)的另一个输入端连接,脉冲?_2输出端和配置运算与输出控制模块(V)连接,脉冲@_2输出端和配置运算与输出控制模块(V)连接,读运行状态输出端与存储器数据空标志控制器(IV)的读运行状态输入端连接,启动使能输出端和或门V (22)的一个输入端、存储器数据空标志控制器(IV)的启动使能输入端连接; 所述读端口脉冲发生控制器(17)输出的脉冲与系统时钟Clock同步; 所述读端口脉冲发生控制器(17)根据类型输入信号为“O”还是为“ I”,确定控制双端口只读只写存储器(I )中读操作数的脉冲序列; 所述异或非门(18)的二个输入端分别与存储器数据空标志控制器(IV)的存储器I空输出端、存储器2空输出端连接,输出端和或门V (22)的一个输入端连接; 所述非门IV(20)的输入端和或门II(IO)的输出端写预置信号连接,输出端和或门IV(21)的一个输入端连接; 所述或门IV(21)的另一个输入端和存储器数据空标志控制器(IV)的存储器I存储器2都空输出端连接,输出端和与门V (24)的一个输入端连接; 所述或门V (22)的输出端和与门V (24)的另一个输入端连接; 所述与门IV(23)的一个输入端与存储器数据空标志控制器(IV)的存储器I存储器2都空输出端连接,另一个输入端和系统复位信号Rst线连接; 所述与门VK25)的一个输入端与系统复位信号Rst线连接,另一个输入端和配置运算与输出控制模块(V)连接; 所述与门VD(26)的输出端与双端口只读只写存储器(I )的读操作数输入端RD_2连接。
4.如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述配置运算与输出控制模块(V)包括选通器(28)、结果寄存器(29)、操作数交换器(30)、浮点数除运算器(31)、运算异常标志控制(32)、32位三态门组(33)、或门VI (34)、与门IX (35)、与门父(36)和或门训(37); 所述选通器(28)的二个输入端分别与双端口只读只写存储器(I )的读操作数输出端DB_2、浮点数除运算器(31)的运算结果输出端连接,选通控制输入端和与门IX(35)的输出端连接,输出端与结果寄存器(29)的输入端连接; 当脉冲?_2或脉冲@_2为“O”时,所述选通器(28)输出从双端口只读只写存储器(I )读出的第I个操作数;当脉冲③_2和脉冲④_2都为“I”时,选通器(28)输出运算结果;所述结果寄存器(29)的输出端与操作数交换器(30)的交换数I输入端、32位三态门组(33)输入端连接;结果锁存信号输入端和与门X (36)的输出端连接; 所述操作数交换器(30)的交换数2输入端与双端口只读只写存储器(I )的读操作数输出端DB_2连接,交换控制端和或门VI (34 )的输出端连接,二个输出端分别与浮点数除运算器(31)的操作数I输入端、操作数2输入端连接; 所述浮点数除运算器(31)的运算结果输出端还与运算异常标志控制(32)的运算结果输入端连接; 所述运算异常标志控制(32)的锁存结果脉冲输入端与读端口脉冲发生控制器(17)的锁存结果脉冲?_2输出端连接;IRQ输出端和与门VK25)的一个输入端连接,IRQ输出端还向系统输出中断请求信号IRQ ; 所述32位三态门组(33)的输出端与系统数据总线DB连接,控制端和或门VII (37)的输出端连接; 所述或门VI(34)的一个输入端与执行命令寄存器(6)的方式输出端连接,另一个输入端与读端口脉冲发生控制器(17)的脉冲?_2输出端连接; 所述与门ΙΧ(35)的二个输入端分别与读端口脉冲发生控制器(17)的脉冲?_2、脉冲@_2输出端连接; 所述与门X (36)的二个输入端分别与读端口脉冲发生控制器(17)的脉冲@_2、脉冲?_2输出端连接; 所述或门VIK37)的二个输入端分别与模块地址识别(I)的CS2信号输出端、系统读信号RD线连接。
5.如权利要求1所述的双指令多浮点操作数除运算控制器,其特征在于:所述浮点操作数读时序控制模块(III)与执行命令寄存器(6)的类型输出端连接;所述配置运算与输出控制模块(V)与执行命令寄存器(6)的方式输出端连接;所述执行命令寄存器(6)输出的方式和类型信号控制从双端口只读只写存储器(I )读出的第I个操作数参加除法运算的操作数类型和除法方式: 操作数类型为“O”:两种除法运算的处理方式: 除法方式为“O”:操 作数交换器(30)的控制端为“0”,交换数I输入端的运算结果作为操作数交换器(30)输出的操作数2,交换数2输入端的第I个操作数作为操作数交换器(30)输出的操作数1,执行第I个操作数/运算结果的除法运算; 除法方式为“I”:虽然脉冲⑧_2为“0”,但除法方式为“I”状态,操作数交换器(30)的控制端为“I” ;执行运算结果/第I个操作数的除法运算; 操作数类型为“I”:第I个操作数的配置与除法方式信号状态无关,操作数交换器(30)的控制端为“1”,操作数交换器(30)的2个输入和2个输出不进行交换传输;执行第I个操作数/第2个操作数的除法运算。
【文档编号】G06F7/537GK203746054SQ201320822569
【公开日】2014年7月30日 申请日期:2013年12月13日 优先权日:2013年12月13日
【发明者】蔡启仲, 李克俭, 李刚, 薛圣利, 王鸣桃 申请人:广西科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1