CN103645878B - 多操作数四则混合定点算术运算控制器 - Google Patents
多操作数四则混合定点算术运算控制器 Download PDFInfo
- Publication number
- CN103645878B CN103645878B CN201310680917.6A CN201310680917A CN103645878B CN 103645878 B CN103645878 B CN 103645878B CN 201310680917 A CN201310680917 A CN 201310680917A CN 103645878 B CN103645878 B CN 103645878B
- Authority
- CN
- China
- Prior art keywords
- operand
- input
- outfan
- control module
- pulse
- 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
Landscapes
- Input From Keyboards Or The Like (AREA)
- Logic Circuits (AREA)
Abstract
一种多操作数四则混合定点算术运算控制器,包括命令寄存与操作数暂存控制模块,算术运算控制模块,结果输出控制模块;应用FPGA设计该控制器的硬连接电路;该控制器被系统使能,在系统WR信号的作用下,内部产生脉冲序列信号,在内部脉冲序列信号的作用下,写入运算命令,操作数,自主完成多操作数的四则混合定点算术运算;写入的第3个操作数直到最后一个操作数执行操作数与上次运算结果的运算;中间运算结果写回操作数1暂存器能够与写入操作数2并行执行;接收所有的操作数之后,向系统发出读出请求信号,在RD信号的控制下,逐个读出高32位、低32位运算结果和标志状态,提高了四则混合定点算术运算指令流的速度。
Description
技术领域
本发明涉及一种多操作数四则混合定点算术运算控制器,尤其涉及一种基于FPGA并行处理电路硬连接的多操作数四则混合定点算术运算控制器控制电路及其时序控制。
背景技术
运算器是微处理器最基本的部件之一,减法运算指令应用补码用加法器予以实现,乘法和除法指令应用专门的微指令程序或编制算法用加法器予以实现;乘法器和除法器也能够应用硬连接电路予以实现来提高乘法和除法运算的速度;运算器有两个操作数输入端,分别与两个暂存器的输出端连接,一个暂存操作数2,一个暂存操作数1和运算结果;其操作过程分为两种情况,一种情况是分时通过微处理器的内部数据总线将操作数1和操作数2分别传输运算器的两个暂存器,运算结束再通过微处理器的内部数据总线将运算结果写回存放在操作数1的暂存器中;第2种情况是操作数1是上次运算的结果,上次运算结果写回之后,再传输操作数2,运算结果写回操作数1的暂存器;运算结果写回和操作数2的传输的处理过程是通过微处理器的内部数据总线分时操作;另一方面,在微处理器的指令系统中,算术运算类指令通常是双操作数指令,指令中一个是操作数1,一个是操作数2,还有一个存放运算结果的寄存器;或者将存放运算结果和操作数1共用一个暂存器;如果有多个连续的加减乘除运算,比如7个操作数,需要6条运算指令予以实现,执行这6条指令需要取指和指令译码6次,结果写回6次,而操作数2传送给运算器的一个输入端和结果写回到操作数1暂存器的过程是分时处理的,不利于进一步提高算术运算类指令执行的速度。
发明内容
本发明的目的在于提供一种多操作数四则混合定点算术运算控制器,应用FPGA设计多操作数四则混合定点算术运算控制器的硬连接电路;该控制器被系统使能,在系统WR信号的连续作用下,内部产生脉冲序列信号,在这些脉冲信号的作用下,按照时序写入运算命令,操作数;写入的第3个操作数直到参与运算的最后一个操作数执行写入的操作数与上次运算结果的运算;该控制器在内部脉冲序列信号的作用下,自主完成多操作数的四则混合定点算术运算,中间运算结果写回操作数1暂存器能够与写入操作数2并行执行;接收所有的操作数之后,向系统发出读出请求信号,系统根据需要发出RD信号,按照顺序读出低32位、高32位运算结果和运算标志状态;有利于四则混合定点算术运算指令流执行的速度。
解决上述技术问题的技术方案是:一种多操作数四则混合定点算术运算控制器,包括命令寄存与操作数暂存控制模块,算术运算控制模块,结果输出控制模块;
所述命令寄存与操作数暂存控制模块与算术运算控制模块,结果输出控制模块连接;
所述算术运算控制模块还与结果输出控制模块连接;
所述命令寄存与操作数暂存控制模块在系统CS为“0”信号作用下使能,在系统WR信号的连续作用下,内部产生脉冲①、脉冲②、脉冲③、脉冲④信号;在这些脉冲信号的作用下,所述命令寄存与操作数暂存控制模块从系统数据总线DB写入运算命令、操作数并锁存,控制算术运算控制模块的运算及结果锁存,控制结果输出控制模块的运算结果和标志的锁存,接收所有的操作数之后,向系统发出读出请求信号;
所述算术运算控制模块根据命令寄存与操作数暂存控制模块输出的命令编码,实施两个有效位为64位和32位定点操作数的加、减、乘、除运算,减法采用补码进行加运算,设置运算结果的标志,如果运算结果异常,发出运算结果异常的信号;
所述结果输出控制模块存储高32位运算的中间结果和最终结果,存储运算结果的标志,在系统RD信号的作用下,将64位运算结果和运算标志分时输出至系统数据总线DB;在命令寄存与操作数暂存控制模块输出的输出模块复位信号的作用下,复位结果输出控制模块。
其进一步技术方案是:所述命令寄存与操作数暂存控制模块包括脉冲发生及控制器,非门,与门Ⅰ,-1计数器,移位寄存器,操作数暂存器,与门Ⅱ,二选一选择器,操作数1与运算结果暂存器,与门Ⅲ;所述脉冲发生及控制器的使能信号输入端与系统CS信号线连接,脉冲信号输入端与系统WR信号线连接,时钟脉冲输入端与系统时钟信号线连接,复位信号输入端和非门的输出端连接,溢出信号输入端与-1计数器的溢出输出端连接,脉冲①输出端与-1计数器的预置脉冲信号输入端、移位寄存器预置脉冲信号输入端、操作数暂存器的复位信号输入端、操作数1与运算结果暂存器的复位信号输入端、结果输出控制模块连接;脉冲②输出端和与门Ⅱ的一个输入端、二选一选择器的选通信号输入端、算术运算控制模块连接,脉冲③输出端和与门Ⅰ的一个输入端连接,脉冲④输出端和与门Ⅰ的另一个输入端、与门Ⅱ的另一个输入端、算术运算控制模块、结果输出控制模块连接;
所述非门的输入端与系统CS信号线连接;输出端还与-1计数器的复位信号输入端、与门Ⅲ的一个输入端连接;
所述与门Ⅰ的输出端与-1计数器的计数脉冲信号输入端、移位寄存器的移位脉冲信号输入端、操作数暂存器的写入信号输入端连接;
所述-1计数器的使能信号输入端与系统CS信号线连接,计数初值输入端与系统DB的D31到D28线连接;溢出信号输出端还作为读出请求信号输出;
所述移位寄存器的命令信号输入端与系统DB的D27到D0连接;命令编码输出端与算术运算控制模块连接;
所述操作数暂存器的操作数输入端与系统DB的D31到D0线连接;32位操作数2输出端与算术运算控制模块连接;
所述与门Ⅱ的输出端与操作数1与运算结果暂存器的写入信号输入端连接;
所述二选一选择器的一个数据输入端与系统DB 的D31到D0线连接,另一个低32位运算结果输入端与算术运算控制模块连接;输出端与操作数1与运算结果暂存器的32位数据输入端连接;
所述操作数1与运算结果暂存器的低32位操作数1与低32位运算结果输出端与算术运算控制模块、结果输出控制模块连接;
所述与门Ⅲ的另一个输入端与系统复位信号线连接;输出端与算术运算控制模块连接。
其进一步技术方案是:所述算术运算控制模块包括加法器,乘法器,除法器,三选一选择器Ⅰ,三选一选择器Ⅱ,状态寄存器及其控制模块;所述加法器的低32位操作数1输入端和操作数1与运算结果暂存器的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块连接,32位操作数2输入端与操作数暂存器的32位操作数2输出端连接,命令编码输入端与移位寄存器的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ的输出端连接,操作数符号位调整输入端与脉冲发生及控制器的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ的一个输入端连接,高32位输出端与三选一选择器Ⅱ的一个输入端连接;
所述乘法器的低32位操作数1输入端和操作数1与运算结果暂存器的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块连接,32位操作数2输入端与操作数暂存器的32位操作数2输出端连接,命令编码输入端与移位寄存器的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ的输出端连接,操作数符号位调整输入端与脉冲发生及控制器的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ的一个输入端连接,高32位输出端与三选一选择器Ⅱ的一个输入端连接;
所述除法器的低32位操作数1输入端和操作数1与运算结果暂存器的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块连接,32位操作数2输入端与操作数暂存器的32位操作数2输出端连接,命令编码输入端与移位寄存器的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ的输出端连接,操作数符号位调整输入端与脉冲发生及控制器的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ的一个输入端连接,高32位输出端与三选一选择器Ⅱ的一个输入端连接,运算错误输出端与状态寄存器及其控制模块的运算错误输入端连接;
所述三选一选择器Ⅰ的选通控制端与移位寄存器的命令编码输出端连接;输出端与状态寄存器及其控制模块的低32位运算结果输入端、二选一选择器的低32位运算结果输入端连接;
所述三选一选择器Ⅱ的选通控制端与移位寄存器的命令编码输出端连接;输出端与状态寄存器及其控制模块的高32位运算结果输入端、结果输出控制模块连接;
所述状态寄存器及其控制模块的状态写入输入端与脉冲发生及控制器的脉冲④输出端连接,操作数1符号位输入端与结果输出控制模块输出的高32位操作数1的D31线连接,操作数2符号位输入端与操作数暂存器的32位操作数2输出端D31线连接,运算器复位输入端和与门Ⅲ的输出端连接;标志输出端与结果输出控制模块连接,运算结果异常输出端向系统输出运算结果异常信号。
其进一步技术方案是:所述结果输出控制模块包括高32位运算结果暂存器,标志寄存器,计数控制器,三选一选择器Ⅲ,与门Ⅳ,32位三态门组;所述高32位运算结果暂存器的高32位运算结果输入端与三选一选择器Ⅱ的输出端连接,结果写入输入端与脉冲发生及控制器的脉冲④输出端连接,输出模块复位信号输入端与脉冲发生及控制器的脉冲①输出端连接;输出端与加法器、乘法器和除法器的高32位操作数1输入端、三选一选择器Ⅲ的高32位运算结果输入端连接;
所述标志寄存器的标志输入端与状态寄存器及其控制模块的标志输出端连接,结果写入输入端与脉冲发生及控制器的脉冲④输出端连接,输出模块复位信号输入端与脉冲发生及控制器的脉冲①输出端连接;运算标志输出端与三选一选择器Ⅲ的运算标志输入端连接;
所述计数控制器的计数脉冲输入端与系统RD信号线连接,使能信号输入端与系统CS线连接,输出模块复位信号输入端与脉冲发生及控制器的脉冲①输出端连接;RD1、RD2、RD3信号输出端分别与三选一选择器Ⅲ的三个控制输入端、与门Ⅳ的三个输入端连接;
所述三选一选择器Ⅲ的低32位运算结果输入端与运算结果暂存器的低32位操作数1与低32位运算结果输出端连接;输出端与32位三态门组的输入端连接;
所述与门Ⅳ的输出端与32位三态门组的控制端连接;
所述32位三态门组的32位数据输出端与系统DB连接。
其进一步技术方案是:所述命令寄存与操作数暂存控制模块的脉冲发生及控制器发出与系统WR信号同步的脉冲①、脉冲②、脉冲③、脉冲④信号;
在脉冲①下降沿的作用下,从系统数据总线DB传输的运算命令的D31到D28的操作数个数值作为计数初值写入-1计数器,D27到D0的命令编码写入移位寄存器,输出第1个操作数与第2个操作数的运算命令;复位操作数暂存器、操作数1与运算结果暂存器、高32位运算结果暂存器;
在脉冲②下降沿的作用下,运算命令的第1个操作数写入操作数1与运算结果暂存器;
在脉冲③下降沿的作用下,-1计数器进行减1操作,移位寄存器中的命令编码值右移两位,运算命令的第2个操作数写入操作数暂存器;
在脉冲④下降沿的作用下,运算命令的第3个操作数写入操作数暂存器,-1计数器进行减1操作,移位寄存器中的命令编码值右移两位,输出第3个操作数与运算结果的运算命令,低32位运算结果写入操作数1与运算结果暂存器,高32位运算结果写入高32位运算结果暂存器,运算结果状态标志写入状态寄存器及其控制模块;
当-1计数器的溢出输出端为“1”时,所示脉冲发生及控制器循环输出脉冲④,在脉冲④下降沿的作用下,运算命令的操作数写入操作数暂存器,-1计数器进行减1操作,移位寄存器中的命令编码值右移两位,输出该操作数与运算结果的运算命令,上次运算的低32位运算结果写入操作数1与运算结果暂存器,高32位运算结果写入高32位运算结果暂存器,运算结果状态标志写入状态寄存器及其控制模块;
当-1计数器的溢出输出端由“1”→“0”时,脉冲发生及控制器发出一个时钟周期的脉冲④;所示-1计数器的溢出输出端保持为“0”状态,直到接收到的预置脉冲输入从“1”→“0”,-1计数器的溢出输出端由“0”→“1”。
由于采用以上结构,本发明之并行操作算术运算及其控制器具有以下有益效果:
一、算术运算具有自主控制功能
该控制器被系统使能,在系统WR信号的连续作用下,内部产生脉冲序列信号,在这些脉冲信号的作用下,按照时序写入运算命令,操作数;写入的第3个操作数直到参与运算的最后一个操作数执行写入的操作数与上次运算结果的运算;该控制器在内部脉冲序列信号的作用下,自主完成多操作数的四则混合定点算术运算,运算结果写回操作数1暂存器能够与写入操作数2并行执行;充分应用了FPGA的并行处理功能,有利于提高算术运算指令流执行的速度。
二、实现多操作数四则混合定点算术运算
本发明中,多操作数四则混合定点算术运算控制器有加、乘和除法定点算术运算器,该控制器根据每次运算的命令编码值选定计算的运算器,在内部时序信号的控制下,实现多操作数四则混合定点算术运算;接收所有的操作数之后,向系统发出读出请求信号,系统根据需要发出RD信号,按照顺序读出低32位、高32位运算结果和运算标志状态;执行一条多操作数的运算命令相当于执行多条两操作数的算术运算的命令。
三、系统性价比高
本发明中,应用FPGA设计电路硬连接的多操作数四则混合定点算术运算控制器,在内部时序信号的控制下,达到自主完成多操作数四则混合定点算术运算,运算结果写回操作数1暂存器能够与写入操作数2并行执行;有利于四则混合定点算术运算指令流执行的速度,具有较高的性价比。
下面结合附图和实施例对本发明之并行操作算术运算及其控制器的技术特征作进一步的说明。
附图说明
图1:本发明之多操作数四则混合定点算术运算控制器的系统结构框图;
图2:本发明之多操作数四则混合定点算术运算控制器的命令寄存与操作数暂存控制模块的电路连接图;
图3:本发明之多操作数四则混合定点算术运算控制器的算术运算控制模块的电路连接图;
图4:本发明之多操作数四则混合定点算术运算控制器的结果输出控制模块的电路连接图;
图5:本发明之多操作数四则混合定点算术运算控制器的命令执行时序图。
图中:
Ⅰ—命令寄存与操作数暂存控制模块,Ⅱ—算术运算控制模块,Ⅲ—结果输出控制模块;
1—脉冲发生及控制器,2—非门,3—与门Ⅰ,4—-1计数器,5—移位寄存器,6—操作数暂存器, 7—与门Ⅱ,8—二选一选择器,9—操作数1与运算结果暂存器,10—与门Ⅲ,11—加法器,12—乘法器,13—除法器,14—三选一选择器Ⅰ,15—三选一选择器Ⅱ,16—状态寄存器及其控制模块,17—高32位运算结果暂存器,18—标志寄存器,19—计数控制器,20—三选一选择器Ⅲ,21—与门Ⅳ,22—32位三态门组。
文中缩略语说明:
FPGA-Field Programmable Gate Array,现场可编程门阵列;
DB-Data Bus,数据总线;
CS-Chip Select,片选或使能,图中CS代表“使能信号”;
RD-Read,读,图中代表“读出信号”;
WR-Write,写,图中代表“写入信号”。
具体实施方式
实施例:
一种多操作数四则混合定点算术运算控制器,如图1所示,其特征在于:该控制器包括命令寄存与操作数暂存控制模块Ⅰ,算术运算控制模块Ⅱ,结果输出控制模块Ⅲ;
所述命令寄存与操作数暂存控制模块Ⅰ与算术运算控制模块Ⅱ,结果输出控制模块Ⅲ连接;
所述算术运算控制模块Ⅱ还与结果输出控制模块Ⅲ连接;
所述命令寄存与操作数暂存控制模块Ⅰ在系统CS为“0”信号作用下使能,在系统WR信号的连续作用下,内部产生脉冲①、脉冲②、脉冲③、脉冲④信号;在这些脉冲信号的作用下,所述命令寄存与操作数暂存控制模块Ⅰ从系统数据总线DB写入运算命令、操作数并锁存,控制算术运算控制模块Ⅱ的运算及结果锁存,控制结果输出控制模块Ⅲ的运算结果和标志的锁存,接收所有的操作数之后,向系统发出读出请求信号;
所述算术运算控制模块Ⅱ根据命令寄存与操作数暂存控制模块Ⅰ输出的命令编码,实施两个有效位为64位和32位定点操作数的加、减、乘、除运算,减法采用补码进行加运算,设置运算结果的标志,如果运算结果异常,发出运算结果异常的信号;
所述结果输出控制模块Ⅲ存储高32位运算的中间结果和最终结果,存储运算结果的标志,在系统RD信号的作用下,将64位运算结果和运算标志分时输出至系统数据总线DB;在命令寄存与操作数暂存控制模块Ⅰ输出的输出模块复位信号的作用下,复位结果输出控制模块Ⅲ。
如图2所示,所述命令寄存与操作数暂存控制模块Ⅰ包括脉冲发生及控制器1,非门2,与门Ⅰ3,-1计数器4,移位寄存器5,操作数暂存器6,与门Ⅱ7,二选一选择器8,操作数1与运算结果暂存器9,与门Ⅲ10;所述脉冲发生及控制器1的使能信号输入端与系统CS信号线连接,脉冲信号输入端与系统WR信号线连接,时钟脉冲输入端与系统时钟信号线连接,复位信号输入端和非门2的输出端连接,溢出信号输入端与-1计数器4的溢出输出端连接,脉冲①输出端与-1计数器4的预置脉冲信号输入端、移位寄存器5预置脉冲信号输入端、操作数暂存器6的复位信号输入端、操作数1与运算结果暂存器9的复位信号输入端、结果输出控制模块Ⅲ连接;脉冲②输出端和与门Ⅱ7的一个输入端、二选一选择器8的选通信号输入端、算术运算控制模块Ⅱ连接,脉冲③输出端和与门Ⅰ3的一个输入端连接,脉冲④输出端和与门Ⅰ3的另一个输入端、与门Ⅱ7的另一个输入端、算术运算控制模块Ⅱ、结果输出控制模块Ⅲ连接;
所述非门2的输入端与系统CS信号线连接;输出端还与-1计数器4的复位信号输入端、与门Ⅲ10的一个输入端连接;
所述与门Ⅰ3的输出端与-1计数器4的计数脉冲信号输入端、移位寄存器5的移位脉冲信号输入端、操作数暂存器6的写入信号输入端连接;
所述-1计数器4的使能信号输入端与系统CS信号线连接,计数初值输入端与系统DB的D31到D28线连接;溢出信号输出端还作为读出请求信号输出;
所述移位寄存器5的命令信号输入端与系统DB的D27到D0连接;命令编码输出端与算术运算控制模块Ⅱ连接;
所述操作数暂存器6的操作数输入端与系统DB的D31到D0线连接;32位操作数2输出端与算术运算控制模块Ⅱ连接;
所述与门Ⅱ7的输出端与操作数1与运算结果暂存器9的写入信号输入端连接;
所述二选一选择器8的一个数据输入端与系统DB 的D31到D0线连接,另一个低32位运算结果输入端与算术运算控制模块Ⅱ连接;输出端与操作数1与运算结果暂存器9的32位数据输入端连接;
所述操作数1与运算结果暂存器9的低32位操作数1与低32位运算结果输出端与算术运算控制模块Ⅱ、结果输出控制模块Ⅲ连接;
所述与门Ⅲ10的另一个输入端与系统复位信号线连接;输出端与算术运算控制模块Ⅱ连接。
如图3所示,所述算术运算控制模块Ⅱ包括加法器11,乘法器12,除法器13,三选一选择器Ⅰ14,三选一选择器Ⅱ15,状态寄存器及其控制模块16;所述加法器11的低32位操作数1输入端和操作数1与运算结果暂存器9的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块Ⅲ连接,32位操作数2输入端与操作数暂存器6的32位操作数2输出端连接,命令编码输入端与移位寄存器5的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ10的输出端连接,操作数符号位调整输入端与脉冲发生及控制器1的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ14的一个输入端连接,高32位输出端与三选一选择器Ⅱ15的一个输入端连接;
所述乘法器12的低32位操作数1输入端和操作数1与运算结果暂存器9的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块Ⅲ连接,32位操作数2输入端与操作数暂存器6的32位操作数2输出端连接,命令编码输入端与移位寄存器5的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ10的输出端连接,操作数符号位调整输入端与脉冲发生及控制器1的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ14的一个输入端连接,高32位输出端与三选一选择器Ⅱ15的一个输入端连接;
所述除法器13的低32位操作数1输入端和操作数1与运算结果暂存器9的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块Ⅲ连接,32位操作数2输入端与操作数暂存器6的32位操作数2输出端连接,命令编码输入端与移位寄存器5的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ10的输出端连接,操作数符号位调整输入端与脉冲发生及控制器1的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ14的一个输入端连接,高32位输出端与三选一选择器Ⅱ15的一个输入端连接,运算错误输出端与状态寄存器及其控制模块16的运算错误输入端连接;
所述三选一选择器Ⅰ14的选通控制端与移位寄存器5的命令编码输出端连接;输出端与状态寄存器及其控制模块16的低32位运算结果输入端、二选一选择器8的低32位运算结果输入端连接;
所述三选一选择器Ⅱ15的选通控制端与移位寄存器5的命令编码输出端连接;输出端与状态寄存器及其控制模块16的高32位运算结果输入端、结果输出控制模块Ⅲ连接;
所述状态寄存器及其控制模块16的状态写入输入端与脉冲发生及控制器1的脉冲④输出端连接,操作数1符号位输入端与结果输出控制模块Ⅲ输出的高32位操作数1的D31线连接,操作数2符号位输入端与操作数暂存器6的32位操作数2输出端D31线连接,运算器复位输入端和与门Ⅲ10的输出端连接;标志输出端与结果输出控制模块Ⅲ连接,运算结果异常输出端向系统输出运算结果异常信号。
如图4所示,所述结果输出控制模块Ⅲ包括高32位运算结果暂存器17,标志寄存器18,计数控制器19,三选一选择器Ⅲ20,与门Ⅳ21,32位三态门组22;所述高32位运算结果暂存器17的高32位运算结果输入端与三选一选择器Ⅱ15的输出端连接,结果写入输入端与脉冲发生及控制器1的脉冲④输出端连接,输出模块复位信号输入端与脉冲发生及控制器1的脉冲①输出端连接;输出端与加法器11、乘法器12和除法器13的高32位操作数1输入端、三选一选择器Ⅲ20的高32位运算结果输入端连接;
所述标志寄存器18的标志输入端与状态寄存器及其控制模块16的标志输出端连接,结果写入输入端与脉冲发生及控制器1的脉冲④输出端连接,输出模块复位信号输入端与脉冲发生及控制器1的脉冲①输出端连接;运算标志输出端与三选一选择器Ⅲ20的运算标志输入端连接;
所述计数控制器19的计数脉冲输入端与系统RD信号线连接,使能信号输入端与系统CS线连接,输出模块复位信号输入端与脉冲发生及控制器1的脉冲①输出端连接;RD1、RD2、RD3信号输出端分别与三选一选择器Ⅲ20的三个控制输入端、与门Ⅳ21的三个输入端连接;
所述三选一选择器Ⅲ20的低32位运算结果输入端与运算结果暂存器9的低32位操作数1与低32位运算结果输出端连接;输出端与32位三态门组22的输入端连接;
所述与门Ⅳ21的输出端与32位三态门组22的控制端连接;
所述32位三态门组22的32位数据输出端与系统DB连接。
如图2、图3、图4所示,所述命令寄存与操作数暂存控制模块Ⅰ的脉冲发生及控制器1发出与系统WR信号同步的脉冲①、脉冲②、脉冲③、脉冲④信号;
在脉冲①下降沿的作用下,从系统数据总线DB传输的运算命令的D31到D28的操作数个数值作为计数初值写入-1计数器4,D27到D0的命令编码写入移位寄存器5,输出第1个操作数与第2个操作数的运算命令;复位操作数暂存器6、操作数1与运算结果暂存器9、高32位运算结果暂存器17;
在脉冲②下降沿的作用下,运算命令的第1个操作数写入操作数1与运算结果暂存器9;
在脉冲③下降沿的作用下,-1计数器4进行减1操作,移位寄存器5中的命令编码值右移两位,运算命令的第2个操作数写入操作数暂存器6;
在脉冲④下降沿的作用下,运算命令的第3个操作数写入操作数暂存器6,-1计数器4进行减1操作,移位寄存器5中的命令编码值右移两位,输出第3个操作数与运算结果的运算命令,低32位运算结果写入操作数1与运算结果暂存器9,高32位运算结果写入高32位运算结果暂存器17,运算结果状态标志写入状态寄存器及其控制模块16;
当-1计数器4的溢出输出端为“1”时,所示脉冲发生及控制器1循环输出脉冲④,在脉冲④下降沿的作用下,运算命令的操作数写入操作数暂存器6,-1计数器4进行减1操作,移位寄存器5中的命令编码值右移两位,输出该操作数与运算结果的运算命令,上次运算的低32位运算结果写入操作数1与运算结果暂存器9,高32位运算结果写入高32位运算结果暂存器17,运算结果状态标志写入状态寄存器及其控制模块16;
当-1计数器4的溢出输出端由“1”→“0”时,脉冲发生及控制器1发出一个时钟周期的脉冲④;所示-1计数器4的溢出输出端保持为“0”状态,直到接收到的预置脉冲输入从“1”→“0”,-1计数器4的溢出输出端由“0”→“1”。
Claims (4)
1.一种多操作数四则混合定点算术运算控制器,其特征在于:该控制器包括命令寄存与操作数暂存控制模块(Ⅰ),算术运算控制模块(Ⅱ),结果输出控制模块(Ⅲ);
所述命令寄存与操作数暂存控制模块(Ⅰ)与算术运算控制模块(Ⅱ),结果输出控制模块(Ⅲ)连接;
所述算术运算控制模块(Ⅱ)还与结果输出控制模块(Ⅲ)连接;
所述命令寄存与操作数暂存控制模块(Ⅰ)在系统CS为“0”信号作用下使能,在系统WR信号的连续作用下,内部产生脉冲①、脉冲②、脉冲③、脉冲④信号;在这些脉冲信号的作用下,所述命令寄存与操作数暂存控制模块(Ⅰ)从系统数据总线DB写入运算命令、操作数并锁存,控制算术运算控制模块(Ⅱ)的运算及结果锁存,控制结果输出控制模块(Ⅲ)的运算结果和标志的锁存,接收所有的操作数之后,向系统发出读出请求信号;
所述算术运算控制模块(Ⅱ)根据命令寄存与操作数暂存控制模块(Ⅰ)输出的命令编码,实施两个有效位为64位和32位定点操作数的加、减、乘、除运算,减法采用补码进行加运算,设置运算结果的标志,如果运算结果异常,发出运算结果异常的信号;
所述结果输出控制模块(Ⅲ)存储高32位运算的中间结果和最终结果,存储运算结果的标志,在系统RD信号的作用下,将64位运算结果和运算标志分时输出至系统数据总线DB;在命令寄存与操作数暂存控制模块(Ⅰ)输出的输出模块复位信号的作用下,复位结果输出控制模块(Ⅲ);
所述命令寄存与操作数暂存控制模块(Ⅰ)包括脉冲发生及控制器(1),非门(2),与门Ⅰ(3),-1计数器(4),移位寄存器(5),操作数暂存器(6),与门Ⅱ(7),二选一选择器(8),操作数1与运算结果暂存器(9),与门Ⅲ(10);所述脉冲发生及控制器(1)的使能信号输入端与系统CS信号线连接,脉冲信号输入端与系统WR信号线连接,时钟脉冲输入端与系统时钟信号线连接,复位信号输入端和非门(2)的输出端连接,溢出信号输入端与-1计数器(4)的溢出输出端连接,脉冲①输出端与-1计数器(4)的预置脉冲信号输入端、移位寄存器(5)预置脉冲信号输入端、操作数暂存器(6)的复位信号输入端、操作数1与运算结果暂存器(9)的复位信号输入端、结果输出控制模块(Ⅲ)连接;脉冲②输出端和与门Ⅱ(7)的一个输入端、二选一选择器(8)的选通信号输入端、算术运算控制模块(Ⅱ)连接,脉冲③输出端和与门Ⅰ(3)的一个输入端连接,脉冲④输出端和与门Ⅰ(3)的另一个输入端、与门Ⅱ(7)的另一个输入端、算术运算控制模块(Ⅱ)、结果输出控制模块(Ⅲ)连接;
所述非门(2)的输入端与系统CS信号线连接;输出端还与-1计数器(4)的复位信号输入端、与门Ⅲ(10)的一个输入端连接;
所述与门Ⅰ(3)的输出端与-1计数器(4)的计数脉冲信号输入端、移位寄存器(5)的移位脉冲信号输入端、操作数暂存器(6)的写入信号输入端连接;
所述-1计数器(4)的使能信号输入端与系统CS信号线连接,计数初值输入端与系统DB的D31到D28线连接;溢出信号输出端还作为读出请求信号输出;
所述移位寄存器(5)的命令信号输入端与系统DB的D27到D0连接;命令编码输出端与算术运算控制模块(Ⅱ)连接;
所述操作数暂存器(6)的操作数输入端与系统DB的D31到D0线连接;32位操作数2输出端与算术运算控制模块(Ⅱ)连接;
所述与门Ⅱ(7)的输出端与操作数1与运算结果暂存器(9)的写入信号输入端连接;
所述二选一选择器(8)的一个数据输入端与系统DB 的D31到D0线连接,另一个低32位运算结果输入端与算术运算控制模块(Ⅱ)连接;输出端与操作数1与运算结果暂存器(9)的32位数据输入端连接;
所述操作数1与运算结果暂存器(9)的低32位操作数1与低32位运算结果输出端与算术运算控制模块(Ⅱ)、结果输出控制模块(Ⅲ)连接;
所述与门Ⅲ(10)的另一个输入端与系统复位信号线连接;输出端与算术运算控制模块(Ⅱ)连接。
2.如权利要求1所述的多操作数四则混合定点算术运算控制器,其特征在于:所述算术运算控制模块(Ⅱ)包括加法器(11),乘法器(12),除法器(13),三选一选择器Ⅰ(14),三选一选择器Ⅱ(15),状态寄存器及其控制模块(16);
所述加法器(11)的低32位操作数1输入端和操作数1与运算结果暂存器(9)的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块(Ⅲ)连接,32位操作数2输入端与操作数暂存器(6)的32位操作数2输出端连接,命令编码输入端与移位寄存器(5)的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ(10)的输出端连接,操作数符号位调整输入端与脉冲发生及控制器(1)的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ(14)的一个输入端连接,高32位输出端与三选一选择器Ⅱ(15)的一个输入端连接;
所述乘法器(12)的低32位操作数1输入端和操作数1与运算结果暂存器(9)的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块(Ⅲ)连接,32位操作数2输入端与操作数暂存器(6)的32位操作数2输出端连接,命令编码输入端与移位寄存器(5)的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ(10)的输出端连接,操作数符号位调整输入端与脉冲发生及控制器(1)的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ(14)的一个输入端连接,高32位输出端与三选一选择器Ⅱ(15)的一个输入端连接;
所述除法器(13)的低32位操作数1输入端和操作数1与运算结果暂存器(9)的低32位操作数1与低32位运算结果输出端连接,高32位操作数1输入端与结果输出控制模块(Ⅲ)连接,32位操作数2输入端与操作数暂存器(6)的32位操作数2输出端连接,命令编码输入端与移位寄存器(5)的命令编码输出端连接,运算器复位信号输入端和与门Ⅲ(10)的输出端连接,操作数符号位调整输入端与脉冲发生及控制器(1)的脉冲②输出端连接;低32位输出端与三选一选择器Ⅰ(14)的一个输入端连接,高32位输出端与三选一选择器Ⅱ(15)的一个输入端连接,运算错误输出端与状态寄存器及其控制模块(16)的运算错误输入端连接;
所述三选一选择器Ⅰ(14)的选通控制端与移位寄存器(5)的命令编码输出端连接;输出端与状态寄存器及其控制模块(16)的低32位运算结果输入端、二选一选择器(8)的低32位运算结果输入端连接;
所述三选一选择器Ⅱ(15)的选通控制端与移位寄存器(5)的命令编码输出端连接;输出端与状态寄存器及其控制模块(16)的高32位运算结果输入端、结果输出控制模块(Ⅲ)连接;
所述状态寄存器及其控制模块(16)的状态写入输入端与脉冲发生及控制器(1)的脉冲④输出端连接,操作数1符号位输入端与结果输出控制模块(Ⅲ)输出的高32位操作数1的D31线连接,操作数2符号位输入端与操作数暂存器(6)的32位操作数2输出端D31线连接,运算器复位输入端和与门Ⅲ(10)的输出端连接;标志输出端与结果输出控制模块(Ⅲ)连接,运算结果异常输出端向系统输出运算结果异常信号。
3.如权利要求1所述的多操作数四则混合定点算术运算控制器,其特征在于:所述结果输出控制模块(Ⅲ)包括高32位运算结果暂存器(17),标志寄存器(18),计数控制器(19),三选一选择器Ⅲ(20),与门Ⅳ(21),32位三态门组(22);所述高32位运算结果暂存器(17)的高32位运算结果输入端与三选一选择器Ⅱ(15)的输出端连接,结果写入输入端与脉冲发生及控制器(1)的脉冲④输出端连接,输出模块复位信号输入端与脉冲发生及控制器(1)的脉冲①输出端连接;输出端与加法器(11)、乘法器(12)和除法器(13)的高32位操作数1输入端、三选一选择器Ⅲ(20)的高32位运算结果输入端连接;
所述标志寄存器(18)的标志输入端与状态寄存器及其控制模块(16)的标志输出端连接,结果写入输入端与脉冲发生及控制器(1)的脉冲④输出端连接,输出模块复位信号输入端与脉冲发生及控制器(1)的脉冲①输出端连接;运算标志输出端与三选一选择器Ⅲ(20)的运算标志输入端连接;
所述计数控制器(19)的计数脉冲输入端与系统RD信号线连接,使能信号输入端与系统CS线连接,输出模块复位信号输入端与脉冲发生及控制器(1)的脉冲①输出端连接;RD1、RD2、RD3信号输出端分别与三选一选择器Ⅲ(20)的三个控制输入端、与门Ⅳ(21)的三个输入端连接;
所述三选一选择器Ⅲ(20)的低32位运算结果输入端与运算结果暂存器(9)的低32位操作数1与低32位运算结果输出端连接;输出端与32位三态门组(22)的输入端连接;
所述与门Ⅳ(21)的输出端与32位三态门组(22)的控制端连接;
所述32位三态门组(22)的32位数据输出端与系统DB连接。
4.如权利要求1所述的多操作数四则混合定点算术运算控制器,其特征在于:所述命令寄存与操作数暂存控制模块(Ⅰ)的脉冲发生及控制器(1)发出与系统WR信号同步的脉冲①、脉冲②、脉冲③、脉冲④信号;
在脉冲①下降沿的作用下,从系统数据总线DB传输的运算命令的D31到D28的操作数个数值作为计数初值写入-1计数器(4),D27到D0的命令编码写入移位寄存器(5),输出第1个操作数与第2个操作数的运算命令;复位操作数暂存器(6)、操作数1与运算结果暂存器(9)、高32位运算结果暂存器(17);
在脉冲②下降沿的作用下,运算命令的第1个操作数写入操作数1与运算结果暂存器(9);
在脉冲③下降沿的作用下,-1计数器(4)进行减1操作,移位寄存器(5)中的命令编码值右移两位,运算命令的第2个操作数写入操作数暂存器(6);
在脉冲④下降沿的作用下,运算命令的第3个操作数写入操作数暂存器(6),-1计数器(4)进行减1操作,移位寄存器(5)中的命令编码值右移两位,输出第3个操作数与运算结果的运算命令,低32位运算结果写入操作数1与运算结果暂存器(9),高32位运算结果写入高32位运算结果暂存器(17),运算结果状态标志写入状态寄存器及其控制模块(16);
当-1计数器(4)的溢出输出端为“1”时,所示脉冲发生及控制器(1)循环输出脉冲④,在脉冲④下降沿的作用下,运算命令的操作数写入操作数暂存器(6),-1计数器(4)进行减1操作,移位寄存器(5)中的命令编码值右移两位,输出该操作数与运算结果的运算命令,上次运算的低32位运算结果写入操作数1与运算结果暂存器(9),高32位运算结果写入高32位运算结果暂存器(17),运算结果状态标志写入状态寄存器及其控制模块(16);
当-1计数器(4)的溢出输出端由“1”→“0”时,脉冲发生及控制器(1)发出一个时钟周期的脉冲④;所示-1计数器(4)的溢出输出端保持为“0”状态,直到接收到的预置脉冲输入从“1”→“0”,-1计数器(4)的溢出输出端由“0”→“1”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310680917.6A CN103645878B (zh) | 2013-12-13 | 2013-12-13 | 多操作数四则混合定点算术运算控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310680917.6A CN103645878B (zh) | 2013-12-13 | 2013-12-13 | 多操作数四则混合定点算术运算控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103645878A CN103645878A (zh) | 2014-03-19 |
CN103645878B true CN103645878B (zh) | 2017-02-08 |
Family
ID=50251103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310680917.6A Expired - Fee Related CN103645878B (zh) | 2013-12-13 | 2013-12-13 | 多操作数四则混合定点算术运算控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103645878B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113658623B (zh) * | 2021-08-20 | 2024-03-01 | 湘潭大学 | 一种可实现多操作数内存计算的铁电存储器阵列 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640285B1 (en) * | 2004-10-20 | 2009-12-29 | Nvidia Corporation | Multipurpose arithmetic functional unit |
CN101206561B (zh) * | 2006-12-22 | 2010-11-03 | 上海贝岭股份有限公司 | 一种专用运算单元alu |
GB2490914B (en) * | 2011-05-17 | 2015-12-09 | Aptcore Ltd | Signal processing apparatus |
CN203746056U (zh) * | 2013-12-13 | 2014-07-30 | 广西科技大学 | 多操作数四则混合定点算术运算控制器 |
-
2013
- 2013-12-13 CN CN201310680917.6A patent/CN103645878B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN103645878A (zh) | 2014-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018850A (zh) | 用于可配置空间加速器中的多播的设备、方法和系统 | |
CN109597646A (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN100470464C (zh) | 基于改进的蒙哥马利算法的模乘器 | |
CN103699360B (zh) | 一种向量处理器及其进行向量数据存取、交互的方法 | |
CN102184092A (zh) | 基于流水线结构的专用指令集处理器 | |
CN104579656A (zh) | 一种椭圆曲线公钥密码sm2算法的硬件加速协处理器 | |
CN103345448B (zh) | 寻址与存储一体化两读出一写入存储控制器 | |
BR112019027531A2 (pt) | processadores de alto rendimento | |
CN102855199A (zh) | 数据处理设备和数据处理装置 | |
CN203746056U (zh) | 多操作数四则混合定点算术运算控制器 | |
CN100367191C (zh) | 一种快速流水线型除法器 | |
US3436737A (en) | Shift enable algorithm implementation means | |
CN103645878B (zh) | 多操作数四则混合定点算术运算控制器 | |
CN103645887B (zh) | 双指令多浮点操作数加/减、乘、除运算控制器 | |
CN101630244A (zh) | 一种流水线型椭圆曲线双标量乘法系统及方法 | |
CN206696842U (zh) | 一种raid校验生成装置 | |
CN103677742B (zh) | 多浮点操作数加/减运算控制器 | |
Schneidewind | Computer, network, software, and hardware engineering with applications | |
CN102693118B (zh) | 一种标量浮点运算加速器 | |
CN202281998U (zh) | 一种标量浮点运算加速器 | |
CN103645886B (zh) | 多浮点操作数加/减、乘、除运算控制器 | |
CN202694323U (zh) | 一种并行元胞自动机处理系统 | |
CN105786528B (zh) | 一种基于Avalon接口的SM3算法IP核的设计方法 | |
CN203689501U (zh) | 多浮点操作数加/减运算控制器 | |
CN203812229U (zh) | 多浮点操作数加/减、乘、除运算控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170208 Termination date: 20211213 |