CN203689501U - 多浮点操作数加/减运算控制器 - Google Patents
多浮点操作数加/减运算控制器 Download PDFInfo
- Publication number
- CN203689501U CN203689501U CN201320832586.9U CN201320832586U CN203689501U CN 203689501 U CN203689501 U CN 203689501U CN 201320832586 U CN201320832586 U CN 201320832586U CN 203689501 U CN203689501 U CN 203689501U
- Authority
- CN
- China
- Prior art keywords
- operand
- pulse
- control module
- input end
- output terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
一种多浮点操作数加/减运算控制器,包括命令字及操作数写时序控制模块、操作数存储器、操作数读时序控制模块、运算与输出控制模块;该控制器应用FPGA设计硬连接控制电路,控制器被系统选中,在系统第1个WR的作用下发出写时序脉冲,在该时序脉冲控制下写入指令的命令字和操作数,操作数存储在操作数存储器中;写入第1个操作数后,控制器发出读时序脉冲,在该时序脉冲控制下,自主完成指令所规定的运算;写操作数与读操作数进行运算的过程同步进行;最后1个操作数写入后,系统可转去处理其他指令程序;命令执行结束向系统发出信号,系统可以传输新的运算指令;控制器执行加/减运算命令过程中,系统可以读出中间结果和最终运算结果。
Description
技术领域
本实用新型涉及一种多浮点操作数加/减运算控制器,尤其涉及一种基于采用FPGA并行操作电路硬连接的多浮点操作数加/减运算控制电路及其时序控制方法。
背景技术
在微处理器的指令系统中,浮点数加/减法指令实现2个32位符合IEEE754标准的浮点数加/减运算,每条指令执行一次加法或减法运算,指令中一个是操作数1,一个是操作数2,运算器的两个操作数输入端分别与两个暂存器的输出端连接,一个暂存操作数1和运算结果,一个暂存操作数2;其操作过程分为两种情况,一种情况是分时通过微处理器的内部数据总线将操作数1和操作数2分别传输至运算器的两个暂存器,运算结束再通过微处理器的内部数据总线将运算结果写回存放在操作数1的暂存器中;第二种情况是操作数1是上次运算的结果,上次运算结果写回之后,再传输操作数2,运算结果写回操作数1的暂存器;运算结果写回和操作数2的传输的处理过程是通过微处理器的内部数据总线分时操作;如果有多个连续的加减运算,比如7个操作数,需要6条运算指令予以实现,执行这6条指令需要取指和指令译码6次,结果写回6次,而操作数2传送给运算器的一个输入端和结果写回到操作数1暂存器的过程是由微处理器控制部件发出控制脉冲处理,不利于进一步提高算术运算类指令执行的速度;浮点数加/减运算器的设计也采用流水线执行的方式,将运算过程分为若干模块,在微处理器控制部件发出的时序脉冲的控制下,多条浮点数加/减运算指令按照模块顺序执行,流水线中的每条指令运算结束都需要将运算结果写回;但对于所执行的浮点数加/减法指令需要应用上一条运算指令的运算结果作为操作数的指令,则浮点数加/减运算的流水线操作失去作用,影响了浮点数加/减运算指令执行的速度。
发明内容
本实用新型的目的在于提供一种多浮点操作数加/减运算控制器,应用FPGA设计多浮点操作数加/减运算控制器的硬连接电路;对于一条多浮点操作数加/减运算指令的命令字和多浮点操作数采取连续写入存储的方法,写入过程占用系统总线;在写入第一个浮点操作数后,控制器内部产生与系统时钟Clock信号同步的读时序脉冲信号,在读时序脉冲信号控制下自主完成读出浮点操作数执行加/减运算,加/减运算命令执行过程不占用系统总线,写入存储多浮点操作数过程与执行加/减运算命令的过程能够并行进行;在控制器执行加/减运算命令过程中,系统可以读出执行命令过程中的中间结果和最终运算结果。
解决上述技术问题的技术方案是:一种多浮点操作数加/减运算控制器,用于实现多个32位符合IEEE754标准的浮点数加或减运算,包括命令字及操作数写时序控制模块、操作数存储器、操作数读时序控制模块、运算与输出控制模块;
所述命令字及操作数写时序控制模块与操作数存储器、操作数读时序控制模块、运算与输出控制模块连接;
所述操作数存储器还与操作数读时序控制模块、运算与输出控制模块连接;
所述操作数读时序控制模块还与运算与输出控制模块连接;
所述命令字及操作数写时序控制模块控制完成指令的写入和存储,需要占用系统总线;一条指令包括31位命令字和若干个浮点操作数,浮点操作数最多为26个;所述命令字及操作数写时序控制模块被系统选中时,启动命令字及操作数写时序控制模块工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数加/减运算指令的命令字,写入多浮点操作数并予以存储;最后一个浮点操作数被写入存储后,所述命令字及操作数写时序控制模块停止工作;
所述操作数存储器为双端口存储器,一个只写端口,一个只读端口,用于储存命令字及操作数写时序控制模块写入的多浮点操作数(下称为操作数);所述操作数存储器的写端口操作数的写入和读端口操作数的读出不存在需要仲裁的情况;所述操作数存储器的写端口受命令字及操作数写时序控制模块控制,将系统数据总线DB传输的操作数写入操作数存储器;读端口受操作数读时序控制模块控制,将操作数读出传输到运算与输出控制模块;
所述操作数读时序控制模块在内部读时序脉冲的控制下,自主完成操作数从操作数存储器中的读出,不需要占用系统总线;在命令字及操作数写时序控制模块写入第1个操作数后被启动工作,输出忙信号Busy由“1”→“0”,根据第1个操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与加或减运算;当参与运算的最后1个操作数读出之后,输出忙信号Busy由“0”→“1”,再经过一个加或减的运算周期,发出一个时钟周期Clock的结果锁存脉冲后,停止操作数读时序控制模块的工作;
所述运算与输出控制模块根据操作数类型,对参与运算的第1个操作数进行选通控制,选通配置操作数1是来自运算结果还是从操作数存储器读出的第1个操作数;所述运算与输出控制模块根据运算符确定进行加法还是减法运算,锁存运算结果,判断计算结果是否异常;系统能够从运算与输出控制模块中读出中间运算结果和运算命令执行的最终运算结果。
其进一步技术方案是:所述命令字及操作数写时序控制模块包括控制器识别、写地址计数器、写操作数脉冲发生控制模块、类型寄存器、运算符移位寄存器和与门Ⅰ;
所述控制器识别的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块的启动信号输入端连接,还与运算与输出控制模块连接;所述控制器识别输入A31到A27的地址值与控制器识别所设定的地址值相等,则控制器识别的CS信号输出端为“0”,否则CS信号输出端为“1”;
所述写地址计数器的操作数个数输入端与系统数据总线DB的D4到D0线连接,预置脉冲输入端与写操作数脉冲发生控制模块的脉冲①_1输出端连接,计数脉冲输入端与写操作数脉冲发生控制模块的脉冲③_1输出端连接,写地址输出端与操作数存储器的写地址输入端AB_1连接,写溢出输出端和与门Ⅰ的一个输入端连接;
所述写地址计数器在预置脉冲的控制下将输入的操作数个数作为计数初值并作为操作数存储器的写地址初值,置写溢出输出端为“1”状态;每来一个计数脉冲,写地址输出端输出的地址值-1指向操作数存储器写端口的下一个存储单元的地址,当写地址输出端输出的地址值由预置值减至“0”时,写溢出输出端由“1”→“0”,写溢出信号是操作数写入过程结束的标志;
所述写操作数脉冲发生控制模块的同步脉冲输入端与系统写信号WR线连接,复位输入端和与门Ⅰ的输出端连接,脉冲①_1输出端还与类型寄存器锁存信号输入端、运算符移位寄存器锁存信号输入端、操作数读时序控制模块连接,脉冲②_1输出端与操作数存储器写端口的WR_1输入端、操作数读时序控制模块连接;
当CS为“0”时,所述写操作数脉冲发生控制模块在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“1”→“0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③_1输出端为“1”状态;
所述类型寄存器的输入端与系统数据总线DB的D5线连接,类型输出端与操作数读时序控制模块连接;所述类型寄存器在脉冲①_1下降沿的作用下,将操作数类型的状态锁存在类型寄存器中;
所述运算符移位寄存器的输入端与系统数据总线DB的D31到D6线连接,移位脉冲输入端与操作数读时序控制模块连接,运算符输出端和运算与输出控制模块连接;
所述与门Ⅰ的另二个输入端分别与系统复位信号Rst线、运算与输出控制模块连接;
当控制器识别输出的CS信号由“1”→“0”时,所述命令字及操作数写时序控制模块启动写操作数脉冲发生控制模块工作,写操作数脉冲发生控制模块按照时序要求发出与系统WR信号同步的时序脉冲信号,受脉冲①_1控制将类型和运算符分别锁存在类型寄存器和运算符移位寄存器中,将操作数个数值预置给写地址计数器,作为计数初值和操作数存储器写端口的写地址初值,并置地址计数器2的写溢出输出端为“1”状态;脉冲②_1作为操作数存储器写端口的WR_1信号,将操作数写入操作数存储器中;脉冲③_1作为地址计数器2的计数脉冲,当写地址计数器的写溢出输出端由“1”→“0”时,复位写操作数脉冲发生控制模块,置所有的脉冲输出端为“1”状态。
其进一步技术方案是:所述操作数读时序控制模块包括读地址计数器、读操作数脉冲发生控制模块、与门Ⅲ、与门Ⅱ、非门、与门Ⅳ、与门Ⅴ和与门Ⅵ;
所述读地址计数器的操作数个数输入端和系统数据总线DB的D4到D0线连接,读预置脉冲输入端与写操作数脉冲发生控制模块的脉冲①_1输出端连接,读计数脉冲输入端和与门Ⅳ的输出端连接,读地址输出端与操作数存储器的读地址输入端AB_2连接,读溢出输出端与读操作数脉冲发生控制模块的读溢出输入端、非门的输入端连接;
所述读地址计数器在读预置脉冲的作用下将输入的操作数个数作为计数初值并作为操作数存储器读端口的读地址初值,并置读溢出输出端信号为“1”状态;每来一个计数脉冲,读地址计数器的读地址输出端输出的读地址值-1,修改操作数存储器读端口存储单元地址值,当读地址计数器输出的读地址值由预置值减至“0”时,读溢出输出端由“1”→“0”,读溢出信号是操作数读出过程结束的标志;
所述读操作数脉冲发生控制模块的同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门Ⅲ的输出端连接,读启动输入端与写操作数脉冲发生控制模块的脉冲②_1输出端连接,类型输入端与类型寄存器的类型输出端连接;脉冲①_2输出端和与门Ⅱ的一个输入端连接;脉冲②_2输出端和与门Ⅳ的一个输入端连接;脉冲③_2输出端和与门Ⅱ的另一个输入端连接;脉冲④_2输出端和与门Ⅳ的另一个输入端连接;脉冲⑤_2输出端和与门Ⅵ的一个输入端、运算与输出控制模块连接;
所述与门Ⅲ的二个输入端分别与系统复位信号Rst线、运算与输出控制模块连接;
所述与门Ⅱ的输出端与操作数存储器的读信号输入端RD_2、运算符移位寄存器的移位脉冲输入端连接;从操作数存储器读出一个操作数,运算符移位寄存器中的运算符数据就向右移一位,使得每个参与运算的操作数与运算符一一对应;
所述非门的输出端作为忙信号Busy输出;当读地址计数器的读溢出输出端由“1”→“0”时,输出的忙信号Busy由“0”→“1”;
所述与门Ⅴ的输出端和运算与输出控制模块连接;与门Ⅴ的输出端作为选通控制信号输出;
所述与门Ⅵ的输出端和运算与输出控制模块连接;与门Ⅵ的输出端作为运算结果锁存信号输出;
当复位输入端为“1”时,所述操作数读时序控制模块在脉冲①_1作用下将操作数个数值预置给读地址计数器,操作数存储器读端口的地址初值为操作数个数值;在第一个脉冲②_1的作用下启动读操作数脉冲发生控制模块的工作;
当读操作数脉冲发生控制模块输入的类型信号为“0”时,按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,当读溢出输入端信号由“1”→“0”时,置脉冲③_2、脉冲④_2输出端为“1”,经过一个运算周期时间,输出一个时钟周期Clock的脉冲⑤_2,置脉冲⑤_2输出端为“1”,操作数读时序控制模块停止工作;
当读操作数脉冲发生控制模块输入的类型信号为“1”时,按照顺序发出脉冲①_2和脉冲②_2,再按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,脉冲③_2、脉冲④_2、脉冲⑤_2产生过程与类型信号为“0”时相同。
其进一步技术方案是:所述运算与输出控制模块包括选通器、结果寄存器、浮点数加/减运算器、运算异常标志控制、32位三态门组和或门;
所述选通器的二个输入端分别和操作数存储器的操作数输出端DB_2、浮点数加/减运算器的运算结果输出端连接,输出端和结果寄存器的数据输入端连接;选通控制输入端和与门Ⅴ的选通控制信号输出端连接;
当脉冲①_2或脉冲②_2为“0”时,所述选通器选通控制输出从操作数存储器读出的第1个操作数;当脉冲①_2和脉冲②_2都为“1”时,选通控制输出运算结果;
所述结果寄存器的输出端和浮点数加/减运算器的操作数1输入端、32位三态门组的输入端连接;结果锁存信号输入端和与门Ⅵ的运算结果锁存信号输出端连接;
所述结果寄存器在锁存脉冲⑤_2和②_2的作用下锁存参与运算的操作数1;
所述浮点数加/减运算器的操作数2输入端和操作数存储器的操作数输出端DB_2连接,运算结果输出端还和运算异常标志控制的运算结果输入端连接;运算符输入端与运算符移位寄存器的运算符输出端连接;
当运算符输入端为“0”时,所述浮点数加/减运算器进行加法运算,当运算符输入端为“1”时进行减法运算;其运算结果通过选通器锁存在结果寄存器中,以及传输到运算异常标志控制模块;
所述运算异常标志控制的锁存信号输入端与脉冲⑤_2连接;IRQ输出端和与门Ⅰ的一个输入端、与门Ⅲ的一个输入端连接;IRQ输出端还向系统输出中断请求信号IRQ;
所述浮点数加/减运算器输出运算结果,运算结果锁存在结果寄存器和运算异常标志控制中;当中间运算结果或最终运算结果出现异常时,向系统发出中断请求信号IRQ,并复位写操作数脉冲发生控制模块和读操作数脉冲发生控制模块,停止控制器的工作;
所述32位三态门组的输出端和系统数据总线DB连接,控制输入端和或门的输出端连接;
所述或门的2个输入端分别与使能信号CS、读信号RD连接;
当CS为“0”时,系统读信号RD为“0”时,或门输出为“0”, 所述32位三态门组输出中间运算结果和命令执行的最终运算结果到系统总线DB。
由于采用以上结构,本实用新型之多浮点操作数加/减运算控制器具有以下有益效果:
一、多浮点操作数加/减运算控制器具有自主控制功能
本实用新型之多浮点操作数加/减运算控制器被系统地址选中,在系统第1个WR信号的作用下发出写时序脉冲,在内部写时序脉冲控制下将指令写入控制器;在接收指令的命令字和第一个操作数后,控制器发出与系统时钟Clock信号同步的读时序脉冲信号,在内部读时序脉冲控制下,自主完成指令的命令字所规定的浮点数加/减运算。
二、多浮点操作数加/减运算控制器具有并行操作功能
本实用新型之多浮点操作数加/减运算控制器在接收指令的命令字和第一个浮点操作数后,写入浮点操作数的过程与读出浮点操作数进行加/减运算的过程可以同步进行;最后一个浮点操作数写入操作数存储器之后,控制器不受系统控制,系统可以转去处理其他指令程序。
三、一条指令执行多个浮点操作数的加/减运算
本实用新型之多浮点操作数加/减运算控制器中,每条加/减运算指令可以有26个操作数,这样一条指令相当于相同微处理器的多条加/减运算指令,减少了系统对命令操作码的译码和指令传输操作次数,提高了处理速度。
四、控制器性价比高
本实用新型之多浮点操作数加/减运算控制器以FPGA的硬连接控制电路为核心,应用写时序脉冲控制、读时序脉冲控制,即可达到自主完成多浮点操作数加/减运算的目的,也达到多浮点操作数加/减运算指令处理并行操作的目的,提高了系统执行指令序列的速度,具有较高的性价比。
下面结合附图和实施例对本实用新型之浮点数加/减运算执行控制器的技术特征作进一步的说明。
附图说明
图1:本实用新型之多浮点操作数加/减运算控制器的系统结构框图;
图2:本实用新型之多浮点操作数加/减运算控制器的命令字及操作数写时序控制模块的电路连接图;
图3:本实用新型之多浮点操作数加/减运算控制器的操作数读时序控制模块的电路连接图;
图4:本实用新型之多浮点操作数加/减运算控制器的运算与输出控制模块的电路连接图;
图5:本实用新型之多浮点操作数加/减运算控制器的写时序图;
图6:本实用新型之多浮点操作数加/减运算控制器的读操作数和锁存结果时序图;
图7:本实用新型实施例二之多浮点操作数乘运算控制器的命令字及操作数写时序控制模块变换图;
图8:本实用新型实施例二之多浮点操作数乘运算控制器的实施例二运算与输出控制模块变换图。
图中:
Ⅰ—命令字及操作数写时序控制模块,Ⅱ—操作数存储器,Ⅲ—操作数读时序控制模块,Ⅳ—运算与输出控制模块;
1—控制器识别,2—写地址计数器,3—写操作数脉冲发生控制模块, 4—类型寄存器,5—运算符移位寄存器,6—与门Ⅰ,7—读地址计数器,8—读操作数脉冲发生控制模块,9—与门Ⅲ,10—与门Ⅱ, 11—非门,12—与门Ⅳ,13—与门Ⅴ,14—与门Ⅵ,15—选通器,
16—结果寄存器,17a—浮点数加/减运算器,17b—浮点数乘运算器,18—运算异常标志控制,19—32位三态门组,20—或门。
文中缩略语说明:
FPGA-Field Programmable Gate Array,现场可编程门阵列;
DB-Data Bus,数据总线;
AB-Address Bus,地址总线;
CS-Chip Select,片选或使能,图中CS代表“使能信号”;
Clock-时钟;
RD-Read,读,图中代表“读信号”;
WR-Write,写,图中代表“写信号”;
IRQ-Interrupt Request,中断申请,图中代表“中断请求信号”;
Busy-忙信号;
Rst-Reset,复位。
具体实施方式
实施例一:
一种多浮点操作数加/减运算控制器,如图1所示,用于实现多个32位符合IEEE754标准的浮点数加或减运算,其特征在于:该控制器包括命令字及操作数写时序控制模块Ⅰ、操作数存储器Ⅱ、操作数读时序控制模块Ⅲ、运算与输出控制模块Ⅳ;
所述命令字及操作数写时序控制模块Ⅰ与操作数存储器Ⅱ、操作数读时序控制模块Ⅲ、运算与输出控制模块Ⅳ连接;
所述操作数存储器Ⅱ还与操作数读时序控制模块Ⅲ、运算与输出控制模块Ⅳ连接;
所述操作数读时序控制模块Ⅲ还与运算与输出控制模块Ⅳ连接;
所述命令字及操作数写时序控制模块Ⅰ控制完成指令的写入和存储,需要占用系统总线;一条指令包括31位命令字和若干个浮点操作数,浮点操作数最多为26个;所述命令字及操作数写时序控制模块Ⅰ被系统选中时,启动命令字及操作数写时序控制模块Ⅰ工作,内部产生与系统WR信号同步的写时序脉冲序列;在写时序脉冲的控制下,锁存多浮点操作数加/减运算指令的命令字,写入多浮点操作数并予以存储;最后一个浮点操作数被写入存储后,所述命令字及操作数写时序控制模块Ⅰ停止工作;
所述操作数存储器Ⅱ为双端口存储器,一个只写端口,一个只读端口,用于储存命令字及操作数写时序控制模块Ⅰ写入的多浮点操作数(下称为操作数);所述操作数存储器Ⅱ的写端口操作数的写入和读端口操作数的读出不存在需要仲裁的情况;所述操作数存储器Ⅱ的写端口受命令字及操作数写时序控制模块Ⅰ控制,将系统数据总线DB传输的操作数写入操作数存储器Ⅱ;读端口受操作数读时序控制模块Ⅲ控制,将操作数读出传输到运算与输出控制模块Ⅳ;
所述操作数读时序控制模块Ⅲ在内部读时序脉冲的控制下,自主完成操作数从操作数存储器Ⅱ中的读出,不需要占用系统总线;在命令字及操作数写时序控制模块Ⅰ写入第1个操作数后被启动工作,输出忙信号Busy由“1”→“0”,根据第1个操作数类型,内部产生与系统时钟Clock信号同步的读时序脉冲序列,按顺序将操作数读出参与加或减运算;当参与运算的最后1个操作数读出之后,输出忙信号Busy由“0”→“1”,再经过一个加或减的运算周期,发出一个时钟周期Clock的结果锁存脉冲后,停止操作数读时序控制模块Ⅲ的工作;
所述运算与输出控制模块Ⅳ根据操作数类型,对参与运算的第1个操作数进行选通控制,选通配置操作数1是来自运算结果还是从操作数存储器Ⅱ读出的第1个操作数;所述运算与输出控制模块Ⅳ根据运算符确定进行加法还是减法运算,锁存运算结果,判断计算结果是否异常;系统能够从运算与输出控制模块Ⅳ中读出中间运算结果和运算命令执行的最终运算结果。
如图2所示,所述命令字及操作数写时序控制模块Ⅰ包括控制器识别1、写地址计数器2、写操作数脉冲发生控制模块3、类型寄存器4、运算符移位寄存器5和与门Ⅰ6;
所述控制器识别1的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块3的启动信号输入端连接,还与运算与输出控制模块Ⅳ连接;所述控制器识别1输入A31到A27的地址值与控制器识别1所设定的地址值相等,则控制器识别1的CS信号输出端为“0”,否则CS信号输出端为“1”;
所述写地址计数器2的操作数个数输入端与系统数据总线DB的D4到D0线连接,预置脉冲输入端与写操作数脉冲发生控制模块3的脉冲①_1输出端连接,计数脉冲输入端与写操作数脉冲发生控制模块3的脉冲③_1输出端连接,写地址输出端与操作数存储器Ⅱ的写地址输入端AB_1连接,写溢出输出端和与门Ⅰ6的一个输入端连接;
所述写地址计数器2在预置脉冲的控制下将输入的操作数个数作为计数初值并作为操作数存储器Ⅱ的写地址初值,置写溢出输出端为“1”状态;每来一个计数脉冲,写地址输出端输出的地址值-1指向操作数存储器Ⅱ写端口的下一个存储单元的地址,当写地址输出端输出的地址值由预置值减至“0”时,写溢出输出端由“1”→“0”,写溢出信号是操作数写入过程结束的标志;
所述写操作数脉冲发生控制模块3的同步脉冲输入端与系统写信号WR线连接,复位输入端和与门Ⅰ6的输出端连接,脉冲①_1输出端还与类型寄存器4锁存信号输入端、运算符移位寄存器5锁存信号输入端、操作数读时序控制模块Ⅲ连接,脉冲②_1输出端与操作数存储器Ⅱ写端口的WR_1输入端、操作数读时序控制模块Ⅲ连接;
当CS为“0”时,所述写操作数脉冲发生控制模块3在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1(参见图5),直到复位信号输入端由“1”→“0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③_1输出端为“1”状态;
所述类型寄存器4的输入端与系统数据总线DB的D5线连接,类型输出端与操作数读时序控制模块Ⅲ连接;所述类型寄存器4在脉冲①_1下降沿的作用下,将操作数类型的状态锁存在类型寄存器4中;
所述运算符移位寄存器5的输入端与系统数据总线DB的D31到D6线连接,移位脉冲输入端与操作数读时序控制模块Ⅲ连接,运算符输出端和运算与输出控制模块Ⅳ连接;
所述与门Ⅰ6的另二个输入端分别与系统复位信号Rst线、运算与输出控制模块Ⅳ连接;
当控制器识别1输出的CS信号由“1”→“0”时,所述命令字及操作数写时序控制模块Ⅰ启动写操作数脉冲发生控制模块3工作,写操作数脉冲发生控制模块3按照时序要求发出与系统WR信号同步的时序脉冲信号(参见图5),受脉冲①_1控制将类型和运算符分别锁存在类型寄存器4和运算符移位寄存器5中,将操作数个数值预置给写地址计数器2,作为计数初值和操作数存储器Ⅱ写端口的写地址初值,并置地址计数器2的写溢出输出端为“1”状态;脉冲②_1作为操作数存储器Ⅱ写端口的WR_1信号,将操作数写入操作数存储器Ⅱ中;脉冲③_1作为地址计数器2的计数脉冲,当写地址计数器2的写溢出输出端由“1”→“0”时,复位写操作数脉冲发生控制模块3,置所有的脉冲输出端为“1”状态。
如图3所示,所述操作数读时序控制模块Ⅲ包括读地址计数器7、读操作数脉冲发生控制模块8、与门Ⅲ9、与门Ⅱ10、非门11、与门Ⅳ12、与门Ⅴ13和与门Ⅵ14;
所述读地址计数器7的操作数个数输入端和系统数据总线DB的D4到D0线连接,读预置脉冲输入端与写操作数脉冲发生控制模块3的脉冲①_1输出端连接,读计数脉冲输入端和与门Ⅳ12的输出端连接,读地址输出端与操作数存储器Ⅱ的读地址输入端AB_2连接,读溢出输出端与读操作数脉冲发生控制模块8的读溢出输入端、非门11的输入端连接;
所述读地址计数器7在读预置脉冲的作用下将输入的操作数个数作为计数初值并作为操作数存储器Ⅱ读端口的读地址初值,并置读溢出输出端信号为“1”状态;每来一个计数脉冲,读地址计数器7的读地址输出端输出的读地址值-1,修改操作数存储器Ⅱ读端口存储单元地址值,当读地址计数器7输出的读地址值由预置值减至“0”时,读溢出输出端由“1”→“0”,读溢出信号是操作数读出过程结束的标志;
所述读操作数脉冲发生控制模块8的同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门Ⅲ9的输出端连接,读启动输入端与写操作数脉冲发生控制模块3的脉冲②_1输出端连接,类型输入端与类型寄存器4的类型输出端连接;脉冲①_2输出端和与门Ⅱ10的一个输入端连接;脉冲②_2输出端和与门Ⅳ12的一个输入端连接;脉冲③_2输出端和与门Ⅱ10的另一个输入端连接;脉冲④_2输出端和与门Ⅳ12的另一个输入端连接;脉冲⑤_2输出端和与门Ⅵ14的一个输入端、运算与输出控制模块Ⅳ连接;
所述与门Ⅲ9的二个输入端分别与系统复位信号Rst线、运算与输出控制模块Ⅳ连接;
所述与门Ⅱ10的输出端与操作数存储器Ⅱ的读信号输入端RD_2、运算符移位寄存器5的移位脉冲输入端连接;从操作数存储器Ⅱ读出一个操作数,运算符移位寄存器5中的运算符数据就向右移一位,使得每个参与运算的操作数与运算符一一对应;
所述非门11的输出端作为忙信号Busy输出;当读地址计数器7的读溢出输出端由“1”→“0”时,输出的忙信号Busy由“0”→“1”;
所述与门Ⅴ13的输出端和运算与输出控制模块Ⅳ连接;与门Ⅴ13的输出端作为选通控制信号输出;
所述与门Ⅵ14的输出端和运算与输出控制模块Ⅳ连接;与门Ⅵ14的输出端作为运算结果锁存信号输出;
当复位输入端为“1”时,所述操作数读时序控制模块Ⅲ在脉冲①_1作用下将操作数个数值预置给读地址计数器7,操作数存储器Ⅱ读端口的地址初值为操作数个数值;在第一个脉冲②_1的作用下启动读操作数脉冲发生控制模块8的工作;
当读操作数脉冲发生控制模块8输入的类型信号为“0”时,按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2(参见图6),当读溢出输入端信号由“1”→“0”时,置脉冲③_2、脉冲④_2输出端为“1”,经过一个运算周期时间,输出一个时钟周期Clock的脉冲⑤_2,置脉冲⑤_2输出端为“1”,操作数读时序控制模块Ⅲ停止工作;
当读操作数脉冲发生控制模块8输入的类型信号为“1”时,按照顺序发出脉冲①_2和脉冲②_2,再按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2(参见图6),脉冲③_2、脉冲④_2、脉冲⑤_2产生过程与类型信号为“0”时相同。
如图4所示,所述运算与输出控制模块Ⅳ包括选通器15、结果寄存器16、浮点数加/减运算器17a、运算异常标志控制18、32位三态门组19和或门20;
所述选通器15的二个输入端分别和操作数存储器Ⅱ的操作数输出端DB_2、浮点数加/减运算器17a的运算结果输出端连接,输出端和结果寄存器16的数据输入端连接;选通控制输入端和与门Ⅴ13的选通控制信号输出端连接;
当脉冲①_2或脉冲②_2为“0”时,所述选通器15选通控制输出从操作数存储器Ⅱ读出的第1个操作数;当脉冲①_2和脉冲②_2都为“1”时,选通控制输出运算结果;
所述结果寄存器16的输出端和浮点数加/减运算器17a的操作数1输入端、32位三态门组19的输入端连接;结果锁存信号输入端和与门Ⅵ14的运算结果锁存信号输出端连接;
所述结果寄存器16在锁存脉冲⑤_2和②_2的作用下锁存参与运算的操作数1;
所述浮点数加/减运算器17a的操作数2输入端和操作数存储器Ⅱ的操作数输出端DB_2连接,运算结果输出端还和运算异常标志控制18的运算结果输入端连接;运算符输入端与运算符移位寄存器5的运算符输出端连接;
当运算符输入端为“0”时,所述浮点数加/减运算器17a进行加法运算,当运算符输入端为“1”时进行减法运算;其运算结果通过选通器15锁存在结果寄存器16中,以及传输到运算异常标志控制18模块;
所述运算异常标志控制18的锁存信号输入端与脉冲⑤_2连接;IRQ输出端和与门Ⅰ6的一个输入端、与门Ⅲ9的一个输入端连接;IRQ输出端还向系统输出中断请求信号IRQ;
所述浮点数加/减运算器17a输出运算结果,运算结果锁存在结果寄存器16和运算异常标志控制18中;当中间运算结果或最终运算结果出现异常时,向系统发出中断请求信号IRQ,并复位写操作数脉冲发生控制模块3和读操作数脉冲发生控制模块8,停止控制器的工作;
所述32位三态门组19的输出端和系统数据总线DB连接,控制输入端和或门20的输出端连接;
所述或门20的2个输入端分别与使能信号CS、读信号RD连接;
当CS为“0”时,系统读信号RD为“0”时,或门20输出为“0”, 所述32位三态门组19输出中间运算结果和命令执行的最终运算结果到系统总线DB。
实施例二:
多浮点操作数乘运算控制器(参见图7、图8);
实施例二是本实用新型实施例一的一种变换结构,该多浮点操作数乘运算控制器的基本结构同实施例一;所不同之处在于:取消实施例一图2的运算符移位寄存器5,转换为图7的命令字及操作数写时序控制模块;实施例一图4的浮点数加/减运算器17a转换为图8的浮点数乘运算器17b,并取消实施例一图4中的运算符输入信号端;图6的多浮点操作数乘运算控制器的读操作数和锁存运算结果的时序图中,将完成一次浮点数加/减运算时钟周期转换为完成一次浮点数乘运算时间所需要的时钟周期。
Claims (4)
1.一种多浮点操作数加/减运算控制器,用于实现多个32位符合IEEE754标准的浮点数加或减运算,其特征在于:该控制器包括命令字及操作数写时序控制模块(Ⅰ)、操作数存储器(Ⅱ)、操作数读时序控制模块(Ⅲ)、运算与输出控制模块(Ⅳ);
所述命令字及操作数写时序控制模块(Ⅰ)与操作数存储器(Ⅱ)、操作数读时序控制模块(Ⅲ)、运算与输出控制模块(Ⅳ)连接;
所述操作数存储器(Ⅱ)还与操作数读时序控制模块(Ⅲ)、运算与输出控制模块(Ⅳ)连接;
所述操作数读时序控制模块(Ⅲ)还与运算与输出控制模块(Ⅳ)连接;
所述命令字及操作数写时序控制模块(Ⅰ)控制完成指令的写入和存储,需要占用系统总线;一条指令包括31位命令字和若干个浮点操作数,浮点操作数最多为26个;
所述操作数存储器(Ⅱ)为双端口存储器,一个只写端口,一个只读端口,用于储存命令字及操作数写时序控制模块(Ⅰ)写入的多浮点操作数,以下称为操作数;
所述操作数读时序控制模块(Ⅲ)在内部读时序脉冲的控制下,自主完成操作数从操作数存储器(Ⅱ)中的读出,不需要占用系统总线;
所述运算与输出控制模块(Ⅳ)根据操作数类型,对参与运算的第1个操作数进行选通控制;所述运算与输出控制模块(Ⅳ)还根据运算符确定进行加法还是减法运算,锁存运算结果,判断计算结果是否异常;系统能够从运算与输出控制模块(Ⅳ)中读出中间运算结果和运算命令执行的最终运算结果。
2.如权利要求1所述的多浮点操作数加/减运算控制器,其特征在于:所述命令字及操作数写时序控制模块(Ⅰ)包括控制器识别(1)、写地址计数器(2)、写操作数脉冲发生控制模块(3)、类型寄存器(4)、运算符移位寄存器(5)和与门Ⅰ(6);
所述控制器识别(1)的输入端和系统地址总线AB的A31到A27线连接,CS信号输出端与写操作数脉冲发生控制模块(3)的启动信号输入端连接,还与运算与输出控制模块(Ⅳ)连接;所述控制器识别(1)输入A31到A27的地址值与控制器识别(1)所设定的地址值相等,则控制器识别(1)的CS信号输出端为“0”,否则CS信号输出端为“1”;
所述写地址计数器(2)的操作数个数输入端与系统数据总线DB的D4到D0线连接,预置脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,计数脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲③_1输出端连接,写地址输出端与操作数存储器(Ⅱ)的写地址输入端AB_1连接,写溢出输出端和与门Ⅰ(6)的一个输入端连接;
所述写地址计数器(2)在预置脉冲的控制下将输入的操作数个数作为计数初值并作为操作数存储器(Ⅱ)的写地址初值,置写溢出输出端为“1”状态;当写地址输出端输出的地址值由预置值减至“0”时,写溢出输出端由“1”→“0”,写溢出信号是操作数写入过程结束的标志;
所述写操作数脉冲发生控制模块(3)的同步脉冲输入端与系统写信号WR线连接,复位输入端和与门Ⅰ(6)的输出端连接,脉冲①_1输出端还与类型寄存器(4)锁存信号输入端、运算符移位寄存器(5)锁存信号输入端、操作数读时序控制模块(Ⅲ)连接,脉冲②_1输出端与操作数存储器(Ⅱ)写端口的WR_1输入端、操作数读时序控制模块(Ⅲ)连接;
当CS为“0”时,所述写操作数脉冲发生控制模块(3)在系统第1个WR信号的作用下启动工作,按照顺序输出脉冲①_1、脉冲②_1、脉冲③_1,直到复位信号输入端由“1”→“0”才停止工作,置脉冲①_1、脉冲②_1和脉冲③_1输出端为“1”状态;
所述类型寄存器(4)的输入端与系统数据总线DB的D5线连接,类型输出端与操作数读时序控制模块(Ⅲ)连接;所述类型寄存器(4)在脉冲①_1下降沿的作用下,将操作数类型的状态锁存在类型寄存器(4)中;
所述运算符移位寄存器(5)的输入端与系统数据总线DB的D31到D6线连接,移位脉冲输入端与操作数读时序控制模块(Ⅲ)连接,运算符输出端和运算与输出控制模块(Ⅳ)连接;
所述与门Ⅰ(6)的另二个输入端分别与系统复位信号Rst线、运算与输出控制模块(Ⅳ)连接;
当控制器识别(1)输出的CS信号由“1”→“0”时,所述写操作数脉冲发生控制模块(3)按照时序要求发出与系统WR信号同步的时序脉冲信号,受脉冲①_1控制将类型和运算符分别锁存在类型寄存器(4)和运算符移位寄存器(5)中,将操作数个数值预置给写地址计数器(2),作为计数初值和操作数存储器(Ⅱ)写端口的写地址初值,并置地址计数器(2)的写溢出输出端为“1”状态;脉冲②_1作为操作数存储器(Ⅱ)写端口的WR_1信号,将操作数写入操作数存储器(Ⅱ)中;脉冲③_1作为地址计数器2的计数脉冲,当写地址计数器(2)的写溢出输出端由“1”→“0”时,复位写操作数脉冲发生控制模块(3),置所有的脉冲输出端为“1”状态。
3.如权利要求1所述的多浮点操作数加/减运算控制器,其特征在于:所述操作数读时序控制模块(Ⅲ)包括读地址计数器(7)、读操作数脉冲发生控制模块(8)、与门Ⅲ(9)、与门Ⅱ(10)、非门(11)、与门Ⅳ(12)、与门Ⅴ(13)和与门Ⅵ(14);
所述读地址计数器(7)的操作数个数输入端和系统数据总线DB的D4到D0线连接,读预置脉冲输入端与写操作数脉冲发生控制模块(3)的脉冲①_1输出端连接,读计数脉冲输入端和与门Ⅳ(12)的输出端连接,读地址输出端与操作数存储器(Ⅱ)的读地址输入端AB_2连接,读溢出输出端与读操作数脉冲发生控制模块(8)的读溢出输入端、非门(11)的输入端连接;
所述读地址计数器(7)在读预置脉冲的作用下将输入的操作数个数作为计数初值并作为操作数存储器(Ⅱ)读端口的读地址初值,并置读溢出输出端信号为“1”状态;当读地址计数器(7)输出的读地址值由预置值减至“0”时,读溢出输出端由“1”→“0”,读溢出信号是操作数读出过程结束的标志;
所述读操作数脉冲发生控制模块(8)的同步脉冲输入端与系统时钟Clock线连接,复位输入端和与门Ⅲ(9)的输出端连接,读启动输入端与写操作数脉冲发生控制模块(3)的脉冲②_1输出端连接,类型输入端与类型寄存器(4)的类型输出端连接;脉冲①_2输出端和与门Ⅱ(10)的一个输入端连接;脉冲②_2输出端和与门Ⅳ(12)的一个输入端连接;脉冲③_2输出端和与门Ⅱ(10)的另一个输入端连接;脉冲④_2输出端和与门Ⅳ(12)的另一个输入端连接;脉冲⑤_2输出端和与门Ⅵ(14)的一个输入端、运算与输出控制模块(Ⅳ)连接;
所述与门Ⅲ(9)的二个输入端分别与系统复位信号Rst线、运算与输出控制模块(Ⅳ)连接;
所述与门Ⅱ(10)的输出端与操作数存储器(Ⅱ)的读信号输入端RD_2、运算符移位寄存器(5)的移位脉冲输入端连接;从操作数存储器(Ⅱ)读出一个操作数,运算符移位寄存器(5)中的运算符数据就向右移一位,使得每个参与运算的操作数与运算符一一对应;
所述非门(11)的输出端作为忙信号Busy输出;当读地址计数器(7)的读溢出输出端由“1”→“0”时,输出的忙信号Busy由“0”→“1”;
所述与门Ⅴ(13)的输出端和运算与输出控制模块(Ⅳ)连接;与门Ⅴ(13)的输出端作为选通控制信号输出;
所述与门Ⅵ(14)的输出端和运算与输出控制模块(Ⅳ)连接;与门Ⅵ(14)的输出端作为运算结果锁存信号输出;
当复位输入端为“1”时,所述操作数读时序控制模块(Ⅲ)在脉冲①_1作用下将操作数个数值预置给读地址计数器(7),操作数存储器(Ⅱ)读端口的地址初值为操作数个数值;在第一个脉冲②_1的作用下启动读操作数脉冲发生控制模块(8)的工作;
当读操作数脉冲发生控制模块(8)输入的类型信号为“0”时,按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,当读溢出输入端信号由“1”→“0”时,置脉冲③_2、脉冲④_2输出端为“1”,经过一个运算周期时间,输出一个时钟周期Clock的脉冲⑤_2,置脉冲⑤_2输出端为“1”,操作数读时序控制模块(Ⅲ)停止工作;
当读操作数脉冲发生控制模块(8)输入的类型信号为“1”时,按照顺序发出脉冲①_2和脉冲②_2,再按照顺序循环发出脉冲③_2、脉冲④_2、脉冲⑤_2,脉冲③_2、脉冲④_2、脉冲⑤_2产生过程与类型信号为“0”时相同。
4.如权利要求1所述的多浮点操作数加/减运算控制器,其特征在于:所述运算与输出控制模块(Ⅳ)包括选通器(15)、结果寄存器(16)、浮点数加/减运算器(17a)、运算异常标志控制(18)、32位三态门组(19)和或门(20);
所述选通器(15)的二个输入端分别和操作数存储器(Ⅱ)的操作数输出端DB_2、浮点数加/减运算器(17a)的运算结果输出端连接,输出端和结果寄存器(16)的数据输入端连接;选通控制输入端和与门Ⅴ(13)的选通控制信号输出端连接;
当脉冲①_2或脉冲②_2为“0”时,所述选通器(15)选通控制输出从操作数存储器(Ⅱ)读出的第1个操作数;当脉冲①_2和脉冲②_2都为“1”时,选通控制输出运算结果;
所述结果寄存器(16)的输出端和浮点数加/减运算器(17a)的操作数1输入端、32位三态门组(19)的输入端连接;结果锁存信号输入端和与门Ⅵ(14)的运算结果锁存信号输出端连接;
所述结果寄存器(16)在锁存脉冲⑤_2和②_2的作用下锁存参与运算的操作数1;
所述浮点数加/减运算器(17a)的操作数2输入端和操作数存储器(Ⅱ)的操作数输出端DB_2连接,运算结果输出端还和运算异常标志控制(18)的运算结果输入端连接;运算符输入端与运算符移位寄存器(5)的运算符输出端连接;
当运算符输入端为“0”时,所述浮点数加/减运算器(17a)进行加法运算,当运算符输入端为“1”时进行减法运算;
所述运算异常标志控制(18)的锁存信号输入端与脉冲⑤_2连接;IRQ输出端和与门Ⅰ(6)的一个输入端、与门Ⅲ(9)的一个输入端连接;IRQ输出端还向系统输出中断请求信号IRQ;
所述浮点数加/减运算器(17a)输出运算结果,运算结果锁存在结果寄存器(16)和运算异常标志控制(18)中;当中间运算结果或最终运算结果出现异常时,向系统发出中断请求信号IRQ,并复位写操作数脉冲发生控制模块(3)和读操作数脉冲发生控制模块(8),停止控制器的工作;
所述32位三态门组(19)的输出端和系统数据总线DB连接,控制输入端和或门(20)的输出端连接;
所述或门(20)的2个输入端分别与使能信号CS、读信号RD连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201320832586.9U CN203689501U (zh) | 2013-12-13 | 2013-12-13 | 多浮点操作数加/减运算控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201320832586.9U CN203689501U (zh) | 2013-12-13 | 2013-12-13 | 多浮点操作数加/减运算控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN203689501U true CN203689501U (zh) | 2014-07-02 |
Family
ID=51011378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201320832586.9U Expired - Fee Related CN203689501U (zh) | 2013-12-13 | 2013-12-13 | 多浮点操作数加/减运算控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN203689501U (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783556A (zh) * | 2021-01-06 | 2021-05-11 | 南阳理工学院 | 信息处理方法、信息处理装置及终端设备 |
CN117289896A (zh) * | 2023-11-20 | 2023-12-26 | 之江实验室 | 一种存算一体基本运算装置 |
-
2013
- 2013-12-13 CN CN201320832586.9U patent/CN203689501U/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112783556A (zh) * | 2021-01-06 | 2021-05-11 | 南阳理工学院 | 信息处理方法、信息处理装置及终端设备 |
CN117289896A (zh) * | 2023-11-20 | 2023-12-26 | 之江实验室 | 一种存算一体基本运算装置 |
CN117289896B (zh) * | 2023-11-20 | 2024-02-20 | 之江实验室 | 一种存算一体基本运算装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020002B (zh) | 可重构多处理器系统 | |
CN105487838A (zh) | 一种动态可重构处理器的任务级并行调度方法与系统 | |
CN104317770A (zh) | 用于众核处理系统的数据存储结构及数据访问方法 | |
CN103677742A (zh) | 多浮点操作数加/减运算控制器 | |
CN203689501U (zh) | 多浮点操作数加/减运算控制器 | |
CN103645887B (zh) | 双指令多浮点操作数加/减、乘、除运算控制器 | |
CN103645886B (zh) | 多浮点操作数加/减、乘、除运算控制器 | |
CN206696842U (zh) | 一种raid校验生成装置 | |
CN203812229U (zh) | 多浮点操作数加/减、乘、除运算控制器 | |
CN203746056U (zh) | 多操作数四则混合定点算术运算控制器 | |
CN203689500U (zh) | 多浮点操作数除运算控制器 | |
CN103645880B (zh) | 双指令多浮点操作数加/减运算控制器 | |
CN105320630A (zh) | 一种基于智能闪存缓存的多核异构cpu-gpu系统架构 | |
CN202281998U (zh) | 一种标量浮点运算加速器 | |
CN203746057U (zh) | 双指令多浮点操作数加/减运算控制器 | |
CN102929591B (zh) | 并行操作逻辑运算及其控制器 | |
CN203746054U (zh) | 双指令多浮点操作数除运算控制器 | |
CN103631559A (zh) | 双指令多浮点操作数除运算控制器 | |
CN103645877B (zh) | 多浮点操作数除运算控制器 | |
CN104360979A (zh) | 基于图形处理器的计算机系统 | |
CN203746055U (zh) | 浮点数加/减、乘、除运算执行控制器 | |
CN103677740B (zh) | 浮点数加/减、乘、除运算执行控制器 | |
CN203746058U (zh) | 浮点数加/减运算执行控制器 | |
CN203689502U (zh) | 双指令多浮点操作数加/减、乘、除运算控制器 | |
CN102693118A (zh) | 一种标量浮点运算加速器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140702 Termination date: 20161213 |
|
CF01 | Termination of patent right due to non-payment of annual fee |