CN110716709B - 支持进位借位正常传递的多精度大整数算术运算加速单元 - Google Patents

支持进位借位正常传递的多精度大整数算术运算加速单元 Download PDF

Info

Publication number
CN110716709B
CN110716709B CN201910864339.9A CN201910864339A CN110716709B CN 110716709 B CN110716709 B CN 110716709B CN 201910864339 A CN201910864339 A CN 201910864339A CN 110716709 B CN110716709 B CN 110716709B
Authority
CN
China
Prior art keywords
bit
unsigned
carry
operand
borrowing
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
Application number
CN201910864339.9A
Other languages
English (en)
Other versions
CN110716709A (zh
Inventor
高红光
郑方
李宏亮
过锋
许勇
郝子宇
赵冠一
陈正博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN201910864339.9A priority Critical patent/CN110716709B/zh
Publication of CN110716709A publication Critical patent/CN110716709A/zh
Application granted granted Critical
Publication of CN110716709B publication Critical patent/CN110716709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供支持进位借位正常传递的多精度大整数算术运算加速单元,属于计算机体系结构和处理器微结构技术领域。该支持进位借位正常传递的多精度大整数算术运算加速单元包括512位操作数A[511:0]、512位操作数B[511:0]、进位借位寄存器索引idx、进位借位寄存器、512位运算结果RSLT[511:0]、功能码opf和运算装置。本发明可以直接实现512位数据之间的加减运算,进位借位寄存器保存512位计算的进借位,便于扩展实现更高精度大整数之间的加减运算,还可以直接实现两组128位数据之间的乘法运算,配合移位加操作可扩展实现更高精度大整数之间的乘法运算。

Description

支持进位借位正常传递的多精度大整数算术运算加速单元
技术领域
本发明属于计算机体系结构和处理器微结构技术领域,涉及支持进位借位正常传递的多精度大整数算术运算加速单元。
背景技术
大整数是指超出计算机数据类型表达能力的整数,对具体的程序设计语言来说,它是指超出程序设计语言中整型数值范围的整数。科学计算、数论、密码学等诸多领域,都存在大整数运算的需求。
由于超出程序语言的数值范围,通常的做法是将大整数用整型(32位)或长整型(64位)数组形式表示,每个数组元素存放一定长度的数据位,再通过数据元素运算来实现大整数之间的运算。
分段计算存在产生分段进位、借位的情况,为避免计算溢出,需要预留数组元素的部分数据位来存放进位、借位信息,存在浪费存储空间的现象。由于存在进位、借位,各分段需要由低到高串行进行,完成一个分段的计算后,再通过移位操作取出进位、借位值参与下一分段的计算,整个计算过程的效率极低。
发明内容
本发明针对现有的技术存在的上述问题,提供支持进位借位正常传递的多精度大整数算术运算加速单元,本发明所要解决的技术问题是:如何提供支持进位借位正常传递的多精度大整数算术运算加速单元。
本发明的目的可通过下列技术方案来实现:
支持进位借位正常传递的多精度大整数算术运算加速单元,包括512位操作数A[511:0]、512位操作数B[511:0]、进位借位寄存器索引idx、进位借位寄存器、512位RSLT[511:0]、功能码opf和运算装置,所述运算装置的输入为功能码opf、512位操作数A[511:0]、B[511:0]和进位借位寄存器索引idx,所述运算装置的输出为512位RSLT[511:0],所述运算装置包括无符号512位加法进借位生成模块、有符号512位加法进借位生成模块、无符号512位减法进借位生成模块、有符号512位减法进借位生成模块、无符号512位加法进借位传递模块、有符号512位加法进借位传递模块、无符号512位减法进借位传递模块、有符号512位减法进借位传递模块、无符号128位对位乘模块、无符号128位错位乘模块和无符号512位移位加模块。
优选的,所述无符号512位加法进借位生成模块在功能码opf为无符号512位加法(进借位生成)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做加法,通过512位RSLT[511:0]输出结果,如果产生进位则将idx指定的进位借位寄存器+1;
所述有符号512位加法进借位生成模块在功能码opf为有符号512位加法(进借位生成)时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做加法,结果通过RSLT[511:0]输出,如果产生进位则将idx指定的进位借位寄存器+1,如果产生借位则将idx指定的进位借位寄存器-1。
优选的,所述无符号512位减法进借位生成模块在功能码opf为无符号512位减法(进借位生成)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做减法,结果通过RSLT[511:0]输出,如果产生借位则将idx指定的进位借位寄存器-1;
所述有符号512位减法进借位生成模块在功能码opf为有符号512位减法(进借位生成)时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做减法,结果通过RSLT[511:0]输出,如果产生进位则将idx指定的进位借位寄存器+1,如果产生借位则将idx指定的进位借位寄存器-1;。
优选的,所述无符号512位加法进借位传递模块在功能码opf为无符号512位加法(进借位传递)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做加法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将进位或借位值写入idx指定的进位借位寄存器;
所述有符号512位加法进借位传递模块在功能码opf为有符号512位加法(进借位传递)时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做加法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将进位或借位值写入idx指定的进位借位寄存器。
优选的,所述无符号512位减法进借位传递模块在功能码opf为无符号512位减法(进借位传递)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做减法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将新的进位或借位值写入idx指定的进位借位寄存器;
所述有符号512位减法进借位传递模块在功能码opf为有符号512位减法(进借位传递)时有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做减法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将新的进位或借位值写入idx指定的进位借位寄存器。
优选的,所述512位操作数A[511:0]包括128位的第一操作数A1[127:0]和128位的第二操作数A2[255:128],所述512位操作数B[511:0]包括128位的第三操作数B1[127:0]和128位的第四操作数B2[255:128],所述512位RSLT[511:0]包括256位的第一输出RSLT1[511:256]和256位的第二输出RSLT2[511:256],所述无符号128位对位乘模块在功能码opf为无符号128位对位乘时控制无符号第一操作数A1[127:0]和无符号第三操作数B1[127:0]做乘法并将结果通过第一输出RSLT1[255:0]输出、控制无符号第二操作数A2[255:128]和第四操作数B2[255:128]做乘法并将结果通过第二输出RSLT2[511:256]输出。
优选的,所述无符号128位错位乘模块在功能码opf为无符号128位错位乘时控制无符号第一操作数A1[127:0]和无符号第四操作数B2[255:128]做乘法并将结果通过第一输出RSLT1[255:0]输出、控制无符号第二操作数A2[255:128]和第三操作数B1[127:0]做乘法并将结果通过第二输出RSLT2[511:256]输出。
优选的,所述512位操作数B[511:0]包括256位的第五操作数B3[255:0]和256位的第六操作数B4[511:256],所述无符号512位移位加模块在功能码opf为无符号512位移位加时控制第五操作数B3[255:0]和第六操作数B4[511:256]相加得到第一输出结果,所述无符号512位移位加模块控制第一输出结果左移128位得到第二输出结果,所述无符号512位移位加模块控制第二输出结果与无符号512位操作数A[511:0]相加得到第三输出结果并将第三输出结果通过RSLT[511:0]输出。
优选的,所述无符号128位对位乘模块根据无符号128位对位乘的功能码opf将无符号第一操作数A1[127:0]和无符号第三操作数B1[127:0]按64位粒度扩散为4组64位乘法操作数,通过4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果压缩为256位的第一输出RSLT1[255:0];同时将无符号第二操作数A2[255:128]和无符号第四操作数B2[255:128]按64位粒度扩散为4组64位乘法操作数,通过另外4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果压缩为256位的第二输出RSLT2[511:256];第一输出RSLT1[255:0]和第二输出RSLT2[511:256]合并后,通过RSLT[511:0]输出。
所述无符号128位错位乘模块根据无符号128位错位乘的功能码opf将无符号第一操作数A1[127:0]和无符号第四操作数B2[255:128]按64位粒度扩散为4组64位乘法操作数,通过4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果压缩为256位的第一输出RSLT1[255:0];同时将无符号第二操作数A2[255:128]和无符号第三操作数B1[255:128]按64位粒度扩散为4组64位乘法操作数,通过另外4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果压缩为256位的第二输出RSLT2[511:256];第一输出RSLT1[255:0]和第二输出RSLT2[511:256]合并后,通过RSLT[511:0]输出。
本发明中运算装置的输入为功能码opf、512位操作数A[511:0]、B[511:0]和进位借位寄存器索引idx、输出为512位RSLT[511:0],运算装置包括无符号512位加法进借位生成模块、有符号512为加法进借位生成模块、无符号512减法进借位生成模块、有符号512位减法进借位生成模块、无符号512位加法进借位传递模块、有符号512位加法进借位传递模块、无符号512位减法进借位传递模块、有符号512位减法进借位传递模块、无符号128位对位乘模块、无符号128位错位乘模块和无符号512位移位加模块,可以直接实现512位数据之间的加减运算,进位借位寄存器保存512位计算的进借位,便于扩展实现更高精度大整数之间的加减运算,还可以直接实现两组128位数据之间的乘法运算,配合移位加操作可扩展实现更高精度大整数之间的乘法运算。
附图说明
图1是本发明中的运算过程的流程示意图;
图2是本发明中的结构示意图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
请参阅图1和图2,本实施例中的支持进位借位正常传递的多精度大整数算术运算加速单元,包括512位操作数A[511:0]、512位操作数B[511:0]、进位借位寄存器索引idx、进位借位寄存器、512位RSLT[511:0]、功能码opf和运算装置,运算装置的输入为功能码opf、512位操作数A[511:0]、B[511:0]和进位借位寄存器索引idx,运算装置的输出为512位RSLT[511:0],运算装置包括无符号512位加法进借位生成模块、有符号512为加法进借位生成模块、无符号512减法进借位生成模块、有符号512位减法进借位生成模块、无符号512位加法进借位传递模块、有符号512位加法进借位传递模块、无符号512位减法进借位传递模块、有符号512位减法进借位传递模块、无符号128位对位乘模块、无符号128位错位乘模块和无符号512位移位加模块。
此处,运算装置的输入为功能码opf、512位操作数A[511:0]、B[511:0]和进位借位寄存器索引idx、输出为512位RSLT[511:0],运算装置包括无符号512位加法进借位生成模块、有符号512为加法进借位生成模块、无符号512减法进借位生成模块、有符号512位减法进借位生成模块、无符号512位加法进借位传递模块、有符号512位加法进借位传递模块、无符号512位减法进借位传递模块、有符号512位减法进借位传递模块、无符号128位对位乘模块、无符号128位错位乘模块和无符号512位移位加模块,可以直接实现512位数据之间的加减运算,进位借位寄存器保存512位计算的进借位,便于扩展实现更高精度大整数之间的加减运算,还可以直接实现两组128位数据之间的乘法运算,配合移位加操作可扩展实现更高精度大整数之间的乘法运算。
无符号512位加法进借位生成模块在功能码opf为无符号512位加法(进借位生成)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做加法,通过512位RSLT[511:0]输出结果,如果产生进位则将idx指定的进位借位寄存器+1;
有符号512位加法进借位生成模块在功能码opf为有符号512位加法(进借位生成)时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做加法,结果通过RSLT[511:0]输出,如果产生进位则将idx指定的进位借位寄存器+1,如果产生借位则将idx指定的进位借位寄存器-1。
无符号512位减法进借位生成模块在功能码opf为无符号512位减法(进借位生成)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做减法,结果通过RSLT[511:0]输出,如果产生借位则将idx指定的进位借位寄存器-1;
有符号512位减法进借位生成模块在功能码opf为有符号512位减法(进借位生成)时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做减法,结果通过RSLT[511:0]输出,如果产生进位则将idx指定的进位借位寄存器+1,如果产生借位则将idx指定的进位借位寄存器-1;。
无符号512位加法进借位传递模块在功能码opf为无符号512位加法(进借位传递)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做加法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将进位或借位值写入idx指定的进位借位寄存器;
有符号512位加法进借位传递模块在功能码opf为有符号512位加法(进借位传递)时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做加法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将进位或借位值写入idx指定的进位借位寄存器。
无符号512位减法进借位传递模块在功能码opf为无符号512位减法(进借位传递)时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做减法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出;如果产生进位或借位则将新的进位或借位值写入idx指定的进位借位寄存器;
有符号512位减法进借位传递模块在功能码opf为有符号512位减法(进借位传递)时有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做减法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将新的进位或借位值写入idx指定的进位借位寄存器。
512位操作数A[511:0]包括128位的第一操作数A1[127:0]和128位的第二操作数A2[255:128],512位操作数B[511:0]包括128位的第三操作数B1[127:0]和128位的第四操作数B2[255:128],512位RSLT[511:0]包括256位的第一输出RSLT1[511:256]和256位的第二输出RSLT2[511:256],无符号128位对位乘模块在功能码opf为无符号128位对位乘时控制无符号第一操作数A1[127:0]和无符号第三操作数B1[127:0] 做乘法并将结果通过第一输出RSLT1[255:0]输出、控制无符号第二操作数A2[255:128]和第四操作数B2[255:128]做乘法并将结果通过第二输出RSLT2[511:256]输出。
无符号128位错位乘模块在功能码opf为无符号128位错位乘时控制无符号第一操作数A1[127:0]和无符号第四操作数B2[255:128] 做乘法并将结果通过第一输出RSLT1[255:0]输出、控制无符号第二操作数A2[255:128]和第三操作数B1[127:0] 做乘法并将结果通过第二输出RSLT2[511:256]输出。
512位操作数B[511:0]包括256位的第五操作数B3[255:0]和256位的第六操作数B4[511:256],无符号512位移位加模块在功能码opf为无符号512位移位加时控制第五操作数B3[255:0]和第六操作数B4[511:256]相加得到第一输出结果,无符号512位移位加模块控制第一输出结果左移128位得到第二输出结果,无符号512位移位加模块控制第二输出结果与无符号512位操作数A[511:0]相加得到第三输出结果并将第三输出结果通过RSLT[511:0]输出。
无符号128位对位乘模块获取“乘法操作数交换”逻辑,然后根据无符号128位对位乘的功能码opf将无符号第一操作数A1[127:0]和无符号第三操作数B1[127:0]按64位粒度扩散为4组64位乘法操作数,通过4个64位整数乘法部件得到4个128位的乘法结果,获取“部分积合并”逻辑将4个乘法结果做4:2压缩得到两个256位加法操作数,扩散为4组64位加法操作数,获取“超前进位生成”逻辑通过超前进位链提前获取64位分段之间的进位值,完成256位加法得到256位的第一输出RSLT1[255:0];同时将无符号第二操作数A2[255:128]和无符号第四操作数B2[255:128]按64位粒度扩散为4组64位乘法操作数,通过另外4个64位整数乘法部件得到4个128位的乘法结果,获取“部分积合并”逻辑将4个乘法结果做4:2压缩得到两个256位加法操作数,扩散为4组64位加法操作数,获取“超前进位生成”逻辑通过超前进位链提前获取64位分段之间的进位值,完成256位加法得到256位的第二输出RSLT2[511:256];第一输出RSLT1[255:0]和第二输出RSLT2[511:256]合并后,通过RSLT[511:0]输出。
无符号128位错位乘模块获取“乘法操作数交换”逻辑,然后根据无符号128位错位乘的功能码opf将无符号第一操作数A1[127:0]和无符号第四操作数B2[255:128]按64位粒度扩散为4组64位乘法操作数,通过4个64位整数乘法部件得到4个128位的乘法结果,获取“部分积合并”逻辑将4个乘法结果做4:2压缩得到两个256位加法操作数,扩散为4组64位加法操作数,获取“超前进位生成”逻辑通过超前进位链提前获取64位分段之间的进位值,完成256位加法得到256位的第一输出RSLT1[255:0];同时将无符号第二操作数A2[255:128]和无符号第三操作数B1[127:0]按64位粒度扩散为4组64位乘法操作数,通过另外4个64位整数乘法部件得到4个128位的乘法结果,获取“部分积合并”逻辑将4个乘法结果做4:2压缩得到两个256位加法操作数,扩散为4组64位加法操作数,获取“超前进位生成”逻辑通过超前进位链提前获取64位分段之间的进位值,完成256位加法得到256位的第二输出RSLT2[511:256];第一输出RSLT1[255:0]和第二输出RSLT2[511:256]合并后,通过RSLT[511:0]输出。
无符号128位对位乘模块和无符号128位错位乘模块可直接实现两组128位整数乘法,便于扩展实现更高精度大整数之间的乘法运算。
进位借位寄存器可以通过超前进位链提前获取64位分段之间的进位值。无符号512位加法进借位生成模块或者有符号512为加法进借位生成模块或者无符号512减法进借位生成模块或者有符号512位减法进借位生成模块或者无符号512位加法进借位传递模块或者有符号512位加法进借位传递模块或者无符号512位减法进借位传递模块或者有符号512位减法进借位传递模块或者无符号512位移位加模块分别获取相应的功能码opf将A[511:0]、B[511:0]按64位粒度扩散为8组64位加法操作数、获取“减法操作数”逻辑将相应的减法操作数取反、获取“加法操作数压缩”逻辑将相应的加法操作数和进借位寄存器值做3:2压缩、获取“超前进位生成”逻辑通过超前进位链提前获取64位分段之间的进位值,完成512位加减法和512位移位加操作的整理合并,通过超前进位链提前获取64位分段之间的进位值,保证512位数据内部的8个64位分段可并行运算,加快512位加减运算速度;内部设置多组进位借位寄存器,保证跨512位边界的进位、借位可以快速传递。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (7)

1.支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:包括512位操作数A[511:0]、512位操作数B[511:0]、进位借位寄存器索引idx、进位借位寄存器、512位RSLT[511:0]、功能码opf和运算装置,所述运算装置的输入为功能码opf、512位操作数A[511:0]、B[511:0]和进位借位寄存器索引idx,所述运算装置的输出为512位RSLT[511:0],所述运算装置包括无符号512位加法进借位生成模块、有符号512位加法进借位生成模块、无符号512位减法进借位生成模块、有符号512位减法进借位生成模块、无符号512位加法进借位传递模块、有符号512位加法进借位传递模块、无符号512位减法进借位传递模块、有符号512位减法进借位传递模块、无符号128位对位乘模块、无符号128位错位乘模块和无符号512位移位加模块;
所述512位操作数A[511:0]包括128位的第一操作数A1[127:0]和128位的第二操作数A2[255:128],所述512位操作数B[511:0]包括128位的第三操作数B1[127:0]和128位的第四操作数B2[255:128],所述512位RSLT[511:0]包括256位的第一输出RSLT1[511:256]和256位的第二输出RSLT2[511:256],所述无符号128位对位乘模块在功能码opf为无符号128位对位乘时控制无符号第一操作数A1[127:0]和无符号第三操作数B1[127:0] 做乘法并将结果通过第一输出RSLT1[255:0]输出、控制无符号第二操作数A2[255:128]和第四操作数B2[255:128]做乘法并将结果通过第二输出RSLT2[511:256]输出;
所述无符号128位错位乘模块在功能码opf为无符号128位错位乘时控制无符号第一操作数A1[127:0]和无符号第四操作数B2[255:128]做乘法并将结果通过第一输出RSLT1[255:0]输出、控制无符号第二操作数A2[255:128]和第三操作数B1[127:0]做乘法并将结果通过第二输出RSLT2[511:256]输出;
所述512位操作数B[511:0]包括256位的第五操作数B3[255:0]和256位的第六操作数B4[511:256],所述无符号512位移位加模块在功能码opf为无符号512位移位加时控制第五操作数B3[255:0]和第六操作数B4[511:256]相加得到第一输出结果,所述无符号512位移位加模块控制第一输出结果左移128位得到第二输出结果,所述无符号512位移位加模块控制第二输出结果与无符号512位操作数A[511:0]相加得到第三输出结果并将第三输出结果通过RSLT[511:0]输出。
2.如权利要求1所述的支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:所述无符号512位加法进借位生成模块在功能码opf为无符号512位加法时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做加法,通过512位RSLT[511:0]输出结果,如果产生进位则将idx指定的进位借位寄存器+1;
所述有符号512位加法进借位生成模块在功能码opf为有符号512位加法时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做加法,结果通过RSLT[511:0]输出,如果产生进位则将idx指定的进位借位寄存器+1,如果产生借位则将idx指定的进位借位寄存器-1。
3.如权利要求1或2所述的支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:所述无符号512位减法进借位生成模块在功能码opf为无符号512位减法时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做减法,结果通过RSLT[511:0]输出,如果产生借位则将idx指定的进位借位寄存器-1;
所述有符号512位减法进借位生成模块在功能码opf为有符号512位减法时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做减法,结果通过RSLT[511:0]输出,如果产生进位则将idx指定的进位借位寄存器+1,如果产生借位则将idx指定的进位借位寄存器-1。
4.如权利要求1或2所述的支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:所述无符号512位加法进借位传递模块在功能码opf为无符号512位加法时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做加法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将进位或借位值写入idx指定的进位借位寄存器;
所述有符号512位加法进借位传递模块在功能码opf为有符号512位加法时控制有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做加法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将进位或借位值写入idx指定的进位借位寄存器。
5.如权利要求1或2所述的支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:所述无符号512位减法进借位传递模块在功能码opf为无符号512位减法时控制无符号512位操作数A[511:0]与无符号512位操作数B[511:0]做减法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将新的进位或借位值写入idx指定的进位借位寄存器;
所述有符号512位减法进借位传递模块在功能码opf为有符号512位减法时有符号512位操作数A[511:0]与有符号512位操作数B[511:0]做减法,再加上idx指定的进位借位寄存器值,结果通过RSLT[511:0]输出,如果产生进位或借位则将新的进位或借位值写入idx指定的进位借位寄存器。
6.如权利要求1或2所述的支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:所述无符号128位对位乘模块根据无符号128位对位乘的功能码opf将无符号第一操作数A1[127:0]和无符号第三操作数B1[127:0]按64位粒度扩散为4组64位乘法操作数,通过4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果合并为256位的第一输出RSLT1[255:0];同时将无符号第二操作数A2[255:128]和无符号第四操作数B2[255:128]按64位粒度扩散为4组64位乘法操作数,通过另外4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果合并为256位的第二输出RSLT2[511:256];第一输出RSLT1[255:0]和第二输出RSLT2[511:256]合并后,通过RSLT[511:0]输出。
7.如权利要求1或2所述的支持进位借位正常传递的多精度大整数算术运算加速单元,其特征在于:所述无符号128位错位乘模块根据无符号128位错位乘的功能码opf将无符号第一操作数A1[127:0]和无符号第四操作数B2[255:128]按64位粒度扩散为4组64位乘法操作数,通过4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果合并为256位的第一输出RSLT1[255:0];同时将无符号第二操作数A2[255:128]和无符号第三操作数B1[255:128]按64位粒度扩散为4组64位乘法操作数,通过另外4个64位整数乘法部件得到4个128位的乘法结果,再通过CSA压缩树、超前进位生成和整数加法逻辑把4个128位的乘法结果合并为256位的第二输出RSLT2[511:256];第一输出RSLT1[255:0]和第二输出RSLT2[511:256]合并后,通过RSLT[511:0]输出。
CN201910864339.9A 2019-09-12 2019-09-12 支持进位借位正常传递的多精度大整数算术运算加速单元 Active CN110716709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910864339.9A CN110716709B (zh) 2019-09-12 2019-09-12 支持进位借位正常传递的多精度大整数算术运算加速单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910864339.9A CN110716709B (zh) 2019-09-12 2019-09-12 支持进位借位正常传递的多精度大整数算术运算加速单元

Publications (2)

Publication Number Publication Date
CN110716709A CN110716709A (zh) 2020-01-21
CN110716709B true CN110716709B (zh) 2021-10-29

Family

ID=69210436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910864339.9A Active CN110716709B (zh) 2019-09-12 2019-09-12 支持进位借位正常传递的多精度大整数算术运算加速单元

Country Status (1)

Country Link
CN (1) CN110716709B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991863A (en) * 1996-08-30 1999-11-23 Texas Instruments Incorporated Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor
JP3767085B2 (ja) * 1996-09-04 2006-04-19 セイコーエプソン株式会社 情報処理回路及びマイクロコンピュータ
US7400271B2 (en) * 2005-06-21 2008-07-15 International Characters, Inc. Method and apparatus for processing character streams
CN101692200B (zh) * 2008-03-11 2018-02-02 魏营隆 数字绳码编码解码及加减乘除倒数算术电路设计的方法
CN103645883A (zh) * 2013-12-18 2014-03-19 四川卫士通信息安全平台技术有限公司 基于fpga的高基模乘器
KR20170060562A (ko) * 2015-11-24 2017-06-01 삼성전자주식회사 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
CN110716709A (zh) 2020-01-21

Similar Documents

Publication Publication Date Title
US20200103930A1 (en) Apparatuses and methods for frequency scaling a message scheduler data path of a hashing accelerator
CN106951211B (zh) 一种可重构定浮点通用乘法器
US10324689B2 (en) Scalable memory-optimized hardware for matrix-solve
CN104461449A (zh) 基于向量指令的大整数乘法实现方法及装置
CN105359129A (zh) 用于提供用于基因组测序和比对的族群计数功能的方法、装置、指令以及逻辑
Seo et al. Efficient arithmetic on ARM‐NEON and its application for high‐speed RSA implementation
US20210182026A1 (en) Compressing like-magnitude partial products in multiply accumulation
CN109753268B (zh) 多粒度并行运算乘法器
JP7292297B2 (ja) 確率的丸めロジック
US11922133B2 (en) Processor and method for processing mask data
CN100583024C (zh) 一种用于浮点除法和平方根运算的预处理电路结构
CN103279323B (zh) 一种加法器
Nykolaychuk et al. Theoretical foundations for the analytical computation of coefficients of basic numbers of Krestenson’s transformation
Wang et al. HE-Booster: an efficient polynomial arithmetic acceleration on GPUs for fully homomorphic encryption
CN101295237A (zh) 求商和余数的高速除法器
RU2598781C1 (ru) Способ линейного преобразования (варианты)
RU180966U1 (ru) Вероятностное арифметическое устройство
CN110716709B (zh) 支持进位借位正常传递的多精度大整数算术运算加速单元
Wang et al. Design and implementation of bitwise parallel MSD square rooting in ternary optical computer
CN101986261A (zh) 基为16的高速Montgomery模乘法器VLSI
CN104951279A (zh) 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
US11281428B2 (en) Conversion circuitry
RU2477513C1 (ru) Ячейка однородной вычислительной среды, однородная вычислительная среда и устройство для конвейерных арифметических вычислений по заданному модулю
US9804998B2 (en) Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication
Arthireena et al. Efficient sign detection using parallel prefix adder

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