CN112527240B - 一种配合80c186cpu进行的浮点运算装置 - Google Patents
一种配合80c186cpu进行的浮点运算装置 Download PDFInfo
- Publication number
- CN112527240B CN112527240B CN202011524517.2A CN202011524517A CN112527240B CN 112527240 B CN112527240 B CN 112527240B CN 202011524517 A CN202011524517 A CN 202011524517A CN 112527240 B CN112527240 B CN 112527240B
- Authority
- CN
- China
- Prior art keywords
- data
- unit
- register
- sending
- adder
- 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.)
- Active
Links
- 230000003139 buffering effect Effects 0.000 claims abstract description 4
- 238000012163 sequencing technique Methods 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 238000000034 method Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- XOFYZVNMUHMLCC-ZPOLXVRWSA-N prednisone Chemical group O=C1C=C[C@]2(C)[C@H]3C(=O)C[C@](C)([C@@](CC4)(O)C(=O)CO)[C@@H]4[C@@H]3CCC2=C1 XOFYZVNMUHMLCC-ZPOLXVRWSA-N 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Nonlinear Science (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
Abstract
本发明涉及一种配合80C186CPU进行的浮点运算装置,所述数据缓存单元,用于接收包含指令和数据的指令信息并缓存,发送数据至总线控制逻辑单元、加法器,发送指令至指令译码单元;所述总线控制单元,用于接收状态机的运算控制信号触发,控制加法器对数据的操作;所述指令译码单元,用于对指令进行译码,并发送至指令序列单元;所述指令序列单元,用于对指令进行排序构成指令序列,并发送至状态机;所述状态机,用于对指令序列进行编码,得到运算控制信号,发送至总线控制单元;所述加法器,用于根据运算控制信号分别进行指数加法运算和尾数加法运算。在本发明电路进行运算期间,80C186可取下一条其他指令予以执行,因而实现了并行工作。
Description
技术领域
本发明涉及自动控制及电子应用领域,尤其涉及配合80C186CPU进行的浮点运算。
背景技术
目前工业控制产品中很多应用采用80C186CPU产品,但没有浮点运算功能,以至于面对复杂的浮点运算时无法完成,效率很低。
因此急需一种设计符合80C186CPU指令进行浮点运算的装置。
发明内容
本发明目的是提供一种配合80C186CPU进行的浮点运算装置,以克服上述缺陷。
本发明为实现上述目的所采用的技术方案是:一种配合80C186CPU进行的浮点运算装置,包括:数据缓存单元、总线控制单元、指令译码单元、指令序列单元、状态机和加法器;
所述数据缓存单元,用于接收包含指令和数据的指令信息并缓存,发送数据至总线控制逻辑单元、加法器,发送指令至指令译码单元;
所述总线控制单元,用于接收状态机的运算控制信号触发,控制加法器对数据的操作;
所述指令译码单元,用于对指令进行译码,并发送至指令序列单元;
所述指令序列单元,用于对指令进行排序构成指令序列,并发送至状态机;
所述状态机,用于对指令序列进行编码,得到运算控制信号,发送至总线控制单元;
所述加法器,用于对数据缓存单元发来的数据进行数据对比和操作数检测,根据运算控制信号分别进行指数加法运算和尾数加法运算。
所述加法器包括数据总线接口、寄存器组、常量ROM、指数操作单元、尾数操作单元;
所述数据总线接口,用于对数据缓存单元发来的数据进行数据对其和操作数检测,将指数数据发送至指数操作单元,将尾数数据发送至尾数操作单元;
指数操作单元,用于对指数数据进行指数操作,并将操作结果发送至寄存器组存储;
尾数操作单元,用于对尾数数据进行尾数操作,并将操作结果发送至寄存器组存储;
寄存器组,用于存储指数操作单元、尾数操作单元以及常量ROM的结果;常量ROM,用于存储常量;当进行运算时,加法器调用常量ROM中存储的常量,并将计算结果发送至寄存器组存储。
所述指数操作单元包括阶码加法器、操作数A阶码寄存器、操作数B阶码寄存器;
所述阶码加法器,用于16位阶码的加法,并将运算结果发送至数据总线接口;
操作数A阶码寄存器,用于存储数据中的第一个阶码操作数;
操作数B阶码寄存器,用于存储数据中的第一个阶码操作数。
所述尾数操作单元包括操作寄存器A和操作寄存器B、尾数加法器和和寄存器、左右移位寄存器;
所述操作寄存器A和操作寄存器B,用于分别存储需要进行运算的操作数A和B;
尾数加法器和和寄存器,用于将A和B进行加法运算,并将运算的和保存在寄存器中,需要时发送至数据总线接口;
左右移位寄存器,用于将数据中的A或B进行左移或右移运算,发送至尾数加法器。
一种配合80C186CPU进行的浮点运算装置,还包括错误指针单元,用于接收状态机发送到控制信息,将数据缓存单元输出的数据与运算控制信号规定的数据格式进行逐位对比;若不一致,则发送错误信息至CPU;若一致,不发送信息。
本发明具有以下有益效果及优点:
1.本发明是一种配合80C186CPU进行的浮点运算的电路设计。
2.本发明提出了可与配套的CPU芯片进行异步并行进行的浮点运算运算的电路设计,相当于80C186CPU的一个I/O部件,满足186运行的指令,但不能单独使用,它只能配合186主CPU才能进行运算。因为真正的读写主存的工作不是本发明电路完成,而是由186执行的。如果80C186从主存读取的指令是本发明电路进行浮点运算指令,则它们以输出方式把该指令送到本发明电路,本发明电路接收后进行译码并执行浮点运算。在本发明电路进行运算期间,80C186可取下一条其他指令予以执行,因而实现了并行工作。如果在本发明电路执行浮点运算指令过程中80C186又取来一条浮点运算指令,则本发明电路以给出“忙”的标志信号加以拒绝,使80C186暂停向本发明电路发送命令。只有待本发明电路完成浮点运算而取消“忙”的标志信号以后,80C186才可以进行一次发送操作。
附图说明
图1本发明的结构框图;
图2本发明的浮点加法器基本运算流程图;
图3本发明的高速浮点加法器的数据路径图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
本发明数据接口、控制逻辑、浮点加法器组成,此部件用于复制执行所有的协处理器指令,它有一个用8个80位的寄存器组成的堆栈,该堆栈用于以扩展精度的浮点数据格式来存放数学指令的操作数和运算结果。在协处理器指令的执行过程中,要么指定该堆栈寄存器中的数据,要么使用压栈/出栈机制来从栈顶存放或读取数据。数据接口和控制逻辑中包括状态寄存器、控制寄存器、标记寄存器和异常指针寄存器。
如图1所示,一种配合80C186CPU进行的浮点运算装置,包括:数据缓存单元、总线控制单元、指令译码单元、指令序列单元、状态机和加法器;
所述数据缓存单元,用于接收包含指令和数据的指令信息并缓存,发送数据至总线控制逻辑单元、加法器,发送指令至指令译码单元;
所述总线控制单元,用于接收状态机的运算控制信号触发,控制加法器对数据的操作;
所述指令译码单元,用于对指令进行译码,并发送至指令序列单元;
所述指令序列单元,用于对指令进行排序构成指令序列,并发送至状态机;
所述状态机,用于对指令序列进行编码,得到运算控制信号,发送至总线控制单元;
所述加法器,用于对数据缓存单元发来的数据进行数据对比和操作数检测,根据运算控制信号分别进行指数加法运算和尾数加法运算。
所述加法器包括数据总线接口、寄存器组、常量ROM、指数操作单元、尾数操作单元;
所述数据总线接口,用于对数据缓存单元发来的数据进行数据对其和操作数检测,将指数数据发送至指数操作单元,将尾数数据发送至尾数操作单元;
指数操作单元,用于对指数数据进行指数操作,并将操作结果发送至寄存器组存储;
尾数操作单元,用于对尾数数据进行尾数操作,并将操作结果发送至寄存器组存储;
寄存器组,用于存储指数操作单元、尾数操作单元以及常量ROM的结果;常量ROM,用于存储常量;当进行运算时,加法器调用常量ROM中存储的常量,例如-π/4、±0.1等进行计算操作数的计算,并将计算结果发送至寄存器组存储。
所述指数操作单元包括阶码加法器、操作数A阶码寄存器、操作数B阶码寄存器;所述阶码加法器,用于16位阶码的加法,并将运算结果发送至数据总线接口;操作数A阶码寄存器,用于存储数据中的第一个阶码操作数;操作数B阶码寄存器,用于存储数据中的第一个阶码操作数。
所述尾数操作单元包括操作寄存器A和操作寄存器B、尾数加法器和和寄存器、左右移位寄存器;操作寄存器A和操作寄存器B,用于分别存储需要进行运算的操作数A和B;尾数加法器和和寄存器,用于将A和B进行加法运算,并将运算的和保存在寄存器中,需要时发送至数据总线接口;左右移位寄存器,用于将数据中的A或B进行左移或右移运算,发送至尾数加法器。
错误指针单元,用于接收状态机发送到控制信息,将数据缓存单元输出的数据与运算控制信号规定的数据格式进行逐位对比;若不一致,则发送错误信息至CPU;若一致,不发送信息。
图1中的数据缓存单元、总线控制单元、指令译码单元、指令序列单元、状态机和加法器结构均为现有技术。
如图2所示,对于浮点加法来说,一般需要以下的步骤:
1求出阶差:两个操作数的阶码相减,求出阶码差为△E=|EX一EY|。
2对阶操作:当△E不为零时一,使得两个数取相同的阶码值。将指数小的数的尾数右移△E位,其指数值加上△E,那么浮点数的值不变,但精度变差了。尾数右移时,以原码形式的尾数,符号位不参加移位,尾数高位补零;对于补码形式的尾数,符号位要参加右移并使其保持不变。为减少误差,可以将右移出的几位暂存起来,供舍入操作用。
3尾数相加减:执行两个对阶后的浮点数求和(差)的过程。
4规格化处理:浮点运算的结果若不满足规格化的规则,就必须把它变成规格化的数。双符号位的补码尾数的处理方法,有利于判断运算的溢出。
如图3所示,借鉴上述改进的two-path算法同时,用动静态进位链的设计方法,减少关键路径延时侧重从电路结构上采提高浮点加法器的运算速度。
协处理器内部将临时实数的格式用于所有的计算。从存储器中读取的所有数据类型将自动转换为临时实数格式。浮点加法器设计成16位指数加法器和64位尾数加法器两大部分。64位的尾数加法器考虑到4位用于舍入和精度控制的附加位,可以扩展到68位组成尾数加法器及其总线。
3.1指数加法器的设计
组内采用曼彻斯特加法器、输入端预充电、多路选择器(易于进行原码或反码加法运算)及加法纬果暂存于指数总线的接口等,都是运算速度快,硬件代价低、面积又可取的加法器方案。
3.2尾数加法器的设计
68位尾数加法器进位链和加法器结构的设计,是解决长路径延迟的首要问题。为了提高尾数加法器的运算速度,所以采用超前进位加法器CIA(CarryLook一aheadAdder)。
超前进位加法器的实现形式有门阵列形式、动态多米诺(domino)进位的方式等。在4位的超前进位加法器中,门阵列的形式结构紧凑,由18个MOS管就可构成超前进位。若用动态多米诺(domino)的形式,晶体管可以节省,但最坏的延时增加到6个NMOS的串接延时。根据具体应用和相关工艺的需要选择合适的电路实现形式。本文从低功耗、高速度和面积允许的角度,选择传输管逻辑与动态多米诺逻辑构成超前进位加法器形式。
3.3前导零预测逻辑
为了减少运算的时延,我们引入了前导O预测逻辑。其可以在尾数做加减法的同时,并行计算加减结果前导零的个数,确定结果需要左移的位数,同时调整相应的指数。
在一般的浮点加法器中,采用前导零的判定技术,可以减少判定输出结果前导1关键路径的延时。前导1的判定(Leading一OneDetector),就是计算前导0的个数。根据前导1的判定和计算结果的关系可以有串行和并行两种方式。串行方式是先计算前导O的个数,然后对于运算结果左移。
Claims (3)
1.一种配合80C186CPU进行的浮点运算装置,其特征在于,包括:数据缓存单元、总线控制单元、指令译码单元、指令序列单元、状态机和加法器;
所述数据缓存单元,用于接收包含指令和数据的指令信息并缓存,发送数据至总线控制逻辑单元、加法器,发送指令至指令译码单元;
所述总线控制单元,用于接收状态机的运算控制信号触发,控制加法器对数据的操作;
所述指令译码单元,用于对指令进行译码,并发送至指令序列单元;
所述指令序列单元,用于对指令进行排序构成指令序列,并发送至状态机;
所述状态机,用于对指令序列进行编码,得到运算控制信号,发送至总线控制单元;
所述加法器,用于对数据缓存单元发来的数据进行数据对比和操作数检测,根据运算控制信号分别进行指数加法运算和尾数加法运算;
所述加法器包括数据总线接口、寄存器组、常量ROM、指数操作单元、尾数操作单元;
所述数据总线接口,用于对数据缓存单元发来的数据进行数据对其和操作数检测,将指数数据发送至指数操作单元,将尾数数据发送至尾数操作单元;
指数操作单元,用于对指数数据进行指数操作,并将操作结果发送至寄存器组存储;
尾数操作单元,用于对尾数数据进行尾数操作,并将操作结果发送至寄存器组存储;
寄存器组,用于存储指数操作单元、尾数操作单元以及常量ROM的结果;
常量ROM,用于存储常量;当进行运算时,加法器调用常量ROM中存储的常量,并将计算结果发送至寄存器组存储;
所述尾数操作单元包括操作寄存器A和操作寄存器B、尾数加法器和和寄存器、左右移位寄存器;
所述操作寄存器A和操作寄存器B,用于分别存储需要进行运算的操作数A和操作数B;
尾数加法器和和寄存器,用于将A和B进行加法运算,并将运算的和保存在寄存器中,需要时发送至数据总线接口;
左右移位寄存器,用于将数据中的A或B进行左移或右移运算,发送至尾数加法器。
2.根据权利要求1所述的一种配合80C186CPU进行的浮点运算装置,其特征在于,所述指数操作单元包括阶码加法器、操作数A阶码寄存器、操作数B阶码寄存器;
所述阶码加法器,用于16位阶码的加法,并将运算结果发送至数据总线接口;
操作数A阶码寄存器,用于存储数据中的第一个阶码操作数;
操作数B阶码寄存器,用于存储数据中的第一个阶码操作数。
3.根据权利要求1所述的一种配合80C186CPU进行的浮点运算装置,其特征在于,还包括错误指针单元,用于接收状态机发送到控制信息,将数据缓存单元输出的数据与运算控制信号规定的数据格式进行逐位对比;若不一致,则发送错误信息至CPU;若一致,不发送信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011524517.2A CN112527240B (zh) | 2020-12-22 | 2020-12-22 | 一种配合80c186cpu进行的浮点运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011524517.2A CN112527240B (zh) | 2020-12-22 | 2020-12-22 | 一种配合80c186cpu进行的浮点运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527240A CN112527240A (zh) | 2021-03-19 |
CN112527240B true CN112527240B (zh) | 2023-11-14 |
Family
ID=75002172
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011524517.2A Active CN112527240B (zh) | 2020-12-22 | 2020-12-22 | 一种配合80c186cpu进行的浮点运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527240B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212292A (zh) * | 2006-12-31 | 2008-07-02 | 航天信息股份有限公司 | 一种ecc\rsa加解密协处理器 |
CN101650642A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 基于补码舍入的浮点加法装置 |
CN102360344A (zh) * | 2011-10-10 | 2012-02-22 | 西安交通大学 | 矩阵处理器及其指令集和嵌入式系统 |
CN102750127A (zh) * | 2012-06-12 | 2012-10-24 | 清华大学 | 一种协处理器 |
CN103019647A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 具有浮点精度保持功能的浮点累加/累减运算方法 |
CN107273090A (zh) * | 2017-05-05 | 2017-10-20 | 中国科学院计算技术研究所 | 面向神经网络处理器的近似浮点乘法器及浮点数乘法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6410637B2 (ja) * | 2015-02-25 | 2018-10-24 | ルネサスエレクトロニクス株式会社 | 浮動小数点加算器、半導体装置及び浮動小数点加算器の制御方法 |
-
2020
- 2020-12-22 CN CN202011524517.2A patent/CN112527240B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212292A (zh) * | 2006-12-31 | 2008-07-02 | 航天信息股份有限公司 | 一种ecc\rsa加解密协处理器 |
CN101650642A (zh) * | 2009-09-11 | 2010-02-17 | 杭州中天微系统有限公司 | 基于补码舍入的浮点加法装置 |
CN102360344A (zh) * | 2011-10-10 | 2012-02-22 | 西安交通大学 | 矩阵处理器及其指令集和嵌入式系统 |
CN102750127A (zh) * | 2012-06-12 | 2012-10-24 | 清华大学 | 一种协处理器 |
CN103019647A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 具有浮点精度保持功能的浮点累加/累减运算方法 |
CN107273090A (zh) * | 2017-05-05 | 2017-10-20 | 中国科学院计算技术研究所 | 面向神经网络处理器的近似浮点乘法器及浮点数乘法 |
Also Published As
Publication number | Publication date |
---|---|
CN112527240A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110036368B (zh) | 用于执行算术运算以累加浮点数的装置及方法 | |
US5886915A (en) | Method and apparatus for trading performance for precision when processing denormal numbers in a computer system | |
KR100239029B1 (ko) | 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서 | |
EP3719639B1 (en) | Systems and methods to perform floating-point addition with selected rounding | |
US6108772A (en) | Method and apparatus for supporting multiple floating point processing models | |
US8447800B2 (en) | Mode-based multiply-add recoding for denormal operands | |
US8577948B2 (en) | Split path multiply accumulate unit | |
JPH0727453B2 (ja) | 浮動小数点数演算処理装置 | |
WO2000022512A1 (en) | Scalar hardware for performing simd operations | |
US7668892B2 (en) | Data processing apparatus and method for normalizing a data value | |
US6907443B2 (en) | Magnitude comparator | |
KR101528340B1 (ko) | 부동 소수점 유닛에서 오버시프트의 빠른 검출을 위한 메카니즘 | |
WO1989002119A1 (en) | Apparatus and method for using a single carry chain for leading one detection and for ''sticky'' bit calculation | |
US5768169A (en) | Method and apparatus for improved processing of numeric applications in the presence of subnormal numbers in a computer system | |
US7437400B2 (en) | Data processing apparatus and method for performing floating point addition | |
US6018756A (en) | Reduced-latency floating-point pipeline using normalization shifts of both operands | |
CN112527240B (zh) | 一种配合80c186cpu进行的浮点运算装置 | |
US5764549A (en) | Fast floating point result alignment apparatus | |
CN114895871A (zh) | 尾随或前导数字预测器 | |
Tsen et al. | A combined decimal and binary floating-point multiplier | |
US6154760A (en) | Instruction to normalize redundantly encoded floating point numbers | |
US7899860B2 (en) | Method and system for high-speed floating-point operations and related computer program product | |
US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
US20090265529A1 (en) | Processor apparatus and method of processing multiple data by single instructions | |
CN111290790A (zh) | 一种定点转浮点的转换装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |