CN105844040B - 一种支持多模式乘加器的数据运算方法 - Google Patents

一种支持多模式乘加器的数据运算方法 Download PDF

Info

Publication number
CN105844040B
CN105844040B CN201610196292.XA CN201610196292A CN105844040B CN 105844040 B CN105844040 B CN 105844040B CN 201610196292 A CN201610196292 A CN 201610196292A CN 105844040 B CN105844040 B CN 105844040B
Authority
CN
China
Prior art keywords
real
imag
multiplier
multiply
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
Application number
CN201610196292.XA
Other languages
English (en)
Other versions
CN105844040A (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.)
Hefei Qianxin Technology Co.,Ltd.
Original Assignee
Tongji University
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 Tongji University filed Critical Tongji University
Priority to CN201610196292.XA priority Critical patent/CN105844040B/zh
Publication of CN105844040A publication Critical patent/CN105844040A/zh
Application granted granted Critical
Publication of CN105844040B publication Critical patent/CN105844040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Complex Calculations (AREA)

Abstract

本发明涉及一种支持多模式乘加器的数据运算方法,用于支持多种单指令多数据流模式的乘法器中,实现32位、16位、8位的实复数乘加运算,该方法包括以下步骤:(1)向向量乘加器输入被乘数A、乘数B及加数C;(2)根据不同的单指令多数据流模式,生成源操作数AR、BR、CR、AI、BI及CI;(3)将源操作数AR、BR及CR作为实部乘加器的输入进行实数乘加运算,将源操作数AI、BI及CI作为虚部乘加器的输入进行复数乘加运算;(4)向量乘加器输出运算结果。与现有技术相比,本发明具有节省硬件资源等优点。

Description

一种支持多模式乘加器的数据运算方法
技术领域
本发明属于集成电路、计算机技术领域,尤其是涉及一种支持多模式乘加器的数据运算方法。
背景技术
在专用指令集处理器(ASIP)设计中,乘加运算单元对处理器的速度、功耗、面积等特性都有很大影响,其性能已成为衡量处理器性能的一个重要指标。
为提高处理器的应用性能,需要处理器支持不同字长的单指令多数据流指令。在不同单指令多数据流模式下,处理器将对不同位宽的操作数进行乘加运算。复数的乘法需要进行四次乘法运算,不同位宽的乘法也需要不同的乘法模块来实现,要消耗大量资源。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种节省硬件资源的支持多模式乘加器的数据运算方法,引入了一种新的乘加策略,根据不同的单指令多数据流模式对原始操作数进行处理,将生成的最终操作数送入实部乘加和虚部乘加模块,从而只用实部虚部两个32位乘加模块实现对多种单指令多数据流模式的支持。
本发明的目的可以通过以下技术方案来实现:一种支持多模式乘加器的数据运算方法,用于支持多种单指令多数据流模式的乘法器中,实现32位、16位、8位的实复数乘加运算,该方法包括以下步骤:
(1)向向量乘加器输入被乘数A、乘数B及加数C;
(2)根据不同的单指令多数据流模式,生成源操作数AR、BR、CR、AI、BI及CI;
(3)将源操作数AR、BR及CR作为实部乘加器的输入进行实数乘加运算,将源操作数AI、BI及CI作为虚部乘加器的输入进行复数乘加运算;
(4)向量乘加器输出运算结果。
步骤(1)中所述的A、B及C均为32位。
所述的向量乘加器进行一组或同时进行两组8位复数的乘加运算,同时进行两组8位复数的乘加运算时,A={A1,A0},B={B1,B0},C={C1,C0},其中,A1、B1、C1分别表示第一组8位复数的被乘数、乘数及加数,A0、B0、C0分别表示第二组8位复数的被乘数、乘数及加数,{}表示组合。
所述的步骤(2)中当进行实数乘加运算时,AR=A,BR=B,CR=C,AI=0,BI=0,CI=0。
所述的步骤(2)中当进行16位复数乘加运算时,AR={Areal,~Aimag},BR={Breal,Bimag},CR={Creal,Bimag},AI={Aimag,Areal},BI={Breal,Bimag},CI={0,Cimag},其中,~表示反码,{}表示组合,real表示实部,imag表示虚部。
所述的步骤(2)中同时进行两组8位复数乘加运算时,AR={A1 real,~A1 imag,A0 real,~A0 imag},BR={B1 real,B1 imag,B0 real,B0 imag},CR={C1 real,B1 imag,C0 real,B0 imag},AI={A1 imag,~A1 real,A0 imag,~A0 real},BI={B1 real,B1 imag,B0 real,B0 imag},CI={0,C1 imag,0,C0 imag},其中,~表示反码,{}表示组合,real表示实部,imag表示虚部。
所述的步骤(2)中进行一组8位复数乘加运算时,A0保持上一时钟周期的状态。
向量乘加器输出的结果R:当进行32位实数乘加运算时,结果为R=A×B+C;
当进行16位复数乘加运算时,可同时得到实部和虚部的结果:Rreal=Areal×Breal-Aimag×Bimag+Creal,Rimag=Areal×Bimag+Aimag×Breal+Cimag
当进行8位复数乘加运算时,可同时得到两组数的实部和虚部的结果:
R0 real=A0 real×B0 real–A0 imag×B0 imag+C0 real,R0 imag=A0 real×B0 imag+A0 imag×B0 real+C0 imag;R1 real=A1 real×B1 real–A1 imag×B1 imag+C1 real,R1 imag=A1 real×B1 imag+A1 imag×B1 real+C1 imag
本发明应用于处理器设计中支持多种单指令多数据流(SIMD)模式的乘加器设计。
与现有技术相比,本发明引入了一种新的乘加策略,根据不同的单指令多数据流模式对原始操作数进行处理,将生成的最终操作数送入实部乘加和虚部乘加模块,从而只用实部虚部两个32位乘加模块实现对多种单指令多数据流模式的支持,节省了硬件资源从而提高了性能。
附图说明
图1为16比特复数模式AR的生成示意图;
图2为16比特复数模式CR的生成示意图;
图3为16比特复数模式AI的生成示意图;
图4为16比特复数模式CI的生成示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
一种支持多模式乘加器的数据运算方法,用于支持多种单指令多数据流模式的乘法器中,实现32位、16位、8位的实复数乘加运算,该方法包括以下步骤:
(1)向向量乘加器输入被乘数A、乘数B及加数C,A、B及C均为32位。
(2)根据不同的单指令多数据流模式,生成源操作数AR、BR、CR、AI、BI及CI;
当进行实数乘加运算时,AR=A,BR=B,CR=C,AI=0,BI=0,CI=0。
当进行16位复数乘加运算时,AR={Areal,~Aimag},BR={Breal,Bimag},CR={Creal,Bimag},AI={Aimag,Areal},BI={Breal,Bimag},CI={0,Cimag},其中,~表示反码,{}表示组合,real表示实部,imag表示虚部。
向量乘加器进行一组或同时进行两组8位复数的乘加运算,同时进行两组8位复数的乘加运算时,A={A1,A0},B={B1,B0},C={C1,C0},其中,A1、B1、C1分别表示第一组8位复数的被乘数、乘数及加数,A0、B0、C0分别表示第二组8位复数的被乘数、乘数及加数,{}表示组合。
进行一组8位复数乘加运算时,A0保持上一时钟周期的状态。
同时进行两组8位复数乘加运算时,AR={A1 real,~A1 imag,A0 real,~A0 imag},BR={B1 real,B1 imag,B0 real,B0 imag},CR={C1 real,B1 imag,C0 real,B0 imag},AI={A1 imag,~A1 real,A0 imag,~A0 real},BI={B1 real,B1 imag,B0 real,B0 imag},CI={0,C1 imag,0,C0 imag},其中,~表示反码,{}表示组合,real表示实部,imag表示虚部。
(3)将源操作数AR、BR及CR作为实部乘加器的输入进行实数乘加运算,将源操作数AI、BI及CI作为虚部乘加器的输入进行复数乘加运算;
(4)向量乘加器输出运算结果R。当进行32位实数乘加运算时,结果为R=A×B+C;当进行16位复数乘加运算时,可同时得到实部和虚部的结果:Rreal=Areal×Breal-Aimag×Bimag+Creal,Rimag=Areal×Bimag+Aimag×Breal+Cimag;当进行8位复数乘加运算时,可同时得到两组数的实部和虚部的结果:R0 real=A0 real×B0 real–A0 imag×B0 imag+C0 real,R0 imag=A0 real×B0 imag+A0 imag×B0 real+C0 imag;R1 real=A1 real×B1 real–A1 imag×B1 imag+C1 real,R1 imag=A1 real×B1 imag+A1 imag×B1 real+C1 imag
本发明应用于处理器设计中支持多种单指令多数据流(SIMD)模式的乘加器设计。
根据上述源操作数的生成方法,最终源操作数AR的生成如图1所示,24-31位与A相同,16-23、8-15、0-7位则根据不同模式,通过三个2输入选择器选择A或A的反码。实数模式下均选择A。16位复数模式下16-23位选择A,8-15、0-7位选择A的反码。8位复数模式下,16-23、0-7位选择A的反码,8-15位选择A;
最终源操作数BR的生成,不需增加额外的选择逻辑,与B相同;
最终源操作数CR的生成如图2所示,24-31位与C相同,16-23、8-15、0-7位则根据不同模式,通过三个2输入选择器选择C或B。实数模式下均选择C。16位复数模式下16-23位选择C,8-15、0-7位选择B。8位复数模式下,16-23、0-7位选择B,8-15位选择C。
最终源操作数AI的生成如图3所示,24-31、8-15位通过两个2输入选择器选择A的相应位数或0,16-23、0-7位则通过两个3输入选择器选择A的相应位数或0。实数模式下不需要虚部运算,均选零。16位复数模式下24-31位选择A的8-15位,16-23位选择A的0-7位,8-15位选择A的24-31位、0-7位选择A的16-23位。8位复数模式下24-31位选择A的16-23位,16-23位选择A的24-31位,8-15位选择A的0-7位、0-7位选择A的8-15位;
最终源操作数BI的生成,不需要增加额外的选择逻辑,与B相同;
最终源操作数CI的生成如图4所示,24-31位均为0,16-23、8-15、0-7位则根据不同模式,通过三个2输入选择器选择C或0。实数模式下不需要虚部运算,均选零。16位复数模式下16-23位选择0,8-15、0-7位选择C。8位复数模式下,16-23、0-7位选择C,8-15位选择0。
本发明所主张的权利范围并不局限于此。本发明还有其他多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。

Claims (4)

1.一种支持多模式乘加器的数据运算方法,用于支持多种单指令多数据流模式的乘法器中,实现32位、16位、8位的实复数乘加运算,其特征在于,该方法包括以下步骤:
(1)向向量乘加器输入被乘数A、乘数B及加数C;
(2)根据不同的单指令多数据流模式,生成源操作数AR、BR、CR、AI、BI及CI,当进行16位复数乘加运算时,AR={Areal,~Aimag},BR={Breal,Bimag},CR={Creal,Bimag},AI={Aimag,Areal},BI={Breal,Bimag},CI={0,Cimag},同时进行两组8位复数乘加运算时,A={A1,A0},B={B1,B0},C={C1,C0},AR={A1 real,~A1 imag,A0 real,~A0 imag},BR={B1 real,B1 imag,B0 real,B0 imag},CR={C1 real,B1 imag,C0 real,B0 imag},AI={A1 imag,~A1 real,A0 imag,~A0 real},BI={B1 real,B1 imag,B0 real,B0 imag},CI={0,C1 imag,0,C0 imag},其中,A1、B1、C1分别表示第一组8位复数的被乘数、乘数及加数,A0、B0、C0分别表示第二组8位复数的被乘数、乘数及加数,~表示反码,{}表示组合,real表示实部,imag表示虚部;
(3)将源操作数AR、BR及CR作为实部乘加器的输入进行实数乘加运算,将源操作数AI、BI及CI作为虚部乘加器的输入进行复数乘加运算;
(4)向量乘加器输出运算结果。
2.根据权利要求1所述的一种支持多模式乘加器的数据运算方法,其特征在于,步骤(1)中所述的A、B及C均为32位。
3.根据权利要求1所述的一种支持多模式乘加器的数据运算方法,其特征在于,所述的步骤(2)中当进行实数乘加运算时,AR=A,BR=B,CR=C,AI=0,BI=0,CI=0。
4.根据权利要求1所述的一种支持多模式乘加器的数据运算方法,其特征在于,所述的步骤(2)中进行一组8位复数乘加运算时,A0保持上一时钟周期的状态。
CN201610196292.XA 2016-03-31 2016-03-31 一种支持多模式乘加器的数据运算方法 Active CN105844040B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610196292.XA CN105844040B (zh) 2016-03-31 2016-03-31 一种支持多模式乘加器的数据运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610196292.XA CN105844040B (zh) 2016-03-31 2016-03-31 一种支持多模式乘加器的数据运算方法

Publications (2)

Publication Number Publication Date
CN105844040A CN105844040A (zh) 2016-08-10
CN105844040B true CN105844040B (zh) 2019-01-25

Family

ID=56596278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610196292.XA Active CN105844040B (zh) 2016-03-31 2016-03-31 一种支持多模式乘加器的数据运算方法

Country Status (1)

Country Link
CN (1) CN105844040B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1751748A1 (ru) * 1990-07-02 1992-07-30 Одесский Политехнический Институт Устройство дл умножени комплексных чисел
CN101238455A (zh) * 2005-08-11 2008-08-06 科莱索尼克公司 包括配置为执行复矢量指令的集群式simd微体系结构的可编程数字信号处理器
CN102339217A (zh) * 2010-07-27 2012-02-01 中兴通讯股份有限公司 一种浮点数乘加器融合处理装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1751748A1 (ru) * 1990-07-02 1992-07-30 Одесский Политехнический Институт Устройство дл умножени комплексных чисел
CN101238455A (zh) * 2005-08-11 2008-08-06 科莱索尼克公司 包括配置为执行复矢量指令的集群式simd微体系结构的可编程数字信号处理器
CN102339217A (zh) * 2010-07-27 2012-02-01 中兴通讯股份有限公司 一种浮点数乘加器融合处理装置及方法

Also Published As

Publication number Publication date
CN105844040A (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
Lu et al. An efficient hardware accelerator for sparse convolutional neural networks on FPGAs
US8595280B2 (en) Apparatus and method for performing multiply-accumulate operations
US8443170B2 (en) Apparatus and method for performing SIMD multiply-accumulate operations
CN103955447B (zh) 基于dsp芯片的fft加速器
CN102591615A (zh) 结构化混合位宽乘法运算方法及装置
CN102495719A (zh) 一种向量浮点运算装置及方法
Fang et al. An algorithm–hardware co-optimized framework for accelerating n: M sparse transformers
JP2011034566A (ja) マルチmacアーキテクチャにおける低電力firフィルタ
CN103279323B (zh) 一种加法器
CN105045560A (zh) 一种定点乘加运算方法和装置
US6317770B1 (en) High speed digital signal processor
CN106940638A (zh) 一种快速、低功耗和省面积的二进制原码加/减法运算单元的硬件架构
US10656943B2 (en) Instruction types for providing a result of an arithmetic operation on a selected vector input element to multiple adjacent vector output elements
US8234326B2 (en) Processor core and multiplier that support both vector and single value multiplication
TWI774093B (zh) 用於轉換資料類型的轉換器、晶片、電子設備及其方法
CN105844040B (zh) 一种支持多模式乘加器的数据运算方法
CN112051981A (zh) 一种数据流水线计算路径结构及单线程数据流水线系统
CN105824601A (zh) 一种支持多模式乘法器的部分积复用方法
CN103677735B (zh) 一种数据处理装置及数字信号处理器
CN103699729B (zh) 模乘法器
CN108255463A (zh) 一种数字逻辑运算方法、电路和fpga芯片
Lau et al. A FPGA-based library for on-line signal processing
Robelly et al. A HW/SW design methodology for embedded SIMD vector signal processors
Nouri et al. Design and evaluation of correlation accelerator in IEEE-802.11 a/g receiver using a template-based coarse-grained reconfigurable array
Saeed et al. Implementation of low-power multiply-accumulate (MAC) unit for IoT processors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200813

Address after: 401, building e, phase I, Daheng science and Technology Park, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen xinghaiwei Technology Co., Ltd

Address before: 200092 Shanghai City, Yangpu District Siping Road No. 1239

Patentee before: TONGJI University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210209

Address after: 518000 room 604, building 13, songpingshan residential building, Shenbao Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Qiao Hongbo

Address before: 518055 Room 401, building e, phase I, dahen Science Park, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Shenzhen xinghaiwei Technology Co., Ltd

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210401

Address after: Room a8-09, 13 / F, block a, building J1, phase II, innovation industrial park, 2800 innovation Avenue, Hefei high tech Zone, China (Anhui) pilot Free Trade Zone, Hefei City, Anhui Province, 230088

Patentee after: Hefei Qianxin Technology Co.,Ltd.

Address before: 518000 room 604, building 13, songpingshan residential building, Shenbao Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Qiao Hongbo