CN116225366A - 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置 - Google Patents

应用于嵌入式流水cpu内核的乘法指令扩展方法及装置 Download PDF

Info

Publication number
CN116225366A
CN116225366A CN202310208145.XA CN202310208145A CN116225366A CN 116225366 A CN116225366 A CN 116225366A CN 202310208145 A CN202310208145 A CN 202310208145A CN 116225366 A CN116225366 A CN 116225366A
Authority
CN
China
Prior art keywords
multiplication
bit
bit width
instruction
multiplier
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.)
Granted
Application number
CN202310208145.XA
Other languages
English (en)
Other versions
CN116225366B (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.)
Open Source Network Security Internet Of Things Technology Wuhan Co ltd
Original Assignee
Open Source Network Security Internet Of Things Technology Wuhan Co ltd
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 Open Source Network Security Internet Of Things Technology Wuhan Co ltd filed Critical Open Source Network Security Internet Of Things Technology Wuhan Co ltd
Priority to CN202310208145.XA priority Critical patent/CN116225366B/zh
Publication of CN116225366A publication Critical patent/CN116225366A/zh
Application granted granted Critical
Publication of CN116225366B publication Critical patent/CN116225366B/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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4983Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开一种应用于嵌入式流水CPU内核的乘法指令扩展方法及装置,方法包括:对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期;分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算;按照乘法分配律的规则分别对各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果;将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到所述乘法指令的最终结果。本申请能够对嵌入式CPU进行乘法指令扩展,且有利于减少资源的消耗。

Description

应用于嵌入式流水CPU内核的乘法指令扩展方法及装置
技术领域
本申请涉及计算机技术领域,具体涉及一种应用于嵌入式流水CPU内核的乘法指令扩展方法及装置。
背景技术
嵌入式CPU作为嵌入式处理器核心,其在国防、军事、医疗、交通、通信、家电等领域被广泛应用。作为CPU的“灵魂”,指令集架构(ISA)决定了CPU的功能强弱。指令集架构越丰富,则CPU的功能越强大。因而对CPU指令集架构进行扩展可以在某种程度上增强CPU的性能。
目前,一般的嵌入式CPU的指令集架构中不具有乘法等复杂运算指令,其原因是加入乘法指令会增加更多的逻辑资源消耗。本申请旨在对嵌入式CPU进行乘法指令扩展,同时减少资源的消耗。
发明内容
本申请的目的在于提供一种应用于嵌入式流水CPU内核的乘法指令扩展方法、装置、电子设备及计算机可读存储介质,能够对嵌入式CPU进行乘法指令扩展,且有利于减少资源的消耗。
为实现上述目的,本申请提供了一种应用于嵌入式流水CPU内核的乘法指令扩展方法,包括:
对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期;
分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算;
按照乘法分配律的规则分别对每个第二位宽的乘法运算分解得到的各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果;
将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到所述乘法指令的最终结果。
可选地,所述对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,包括:
将所述乘法指令中长位宽的乘数拆解为短位宽的多个子乘数,各子乘数具有相等的位宽;
将第一位宽的乘法运算分解成每个子乘数与所述乘法指令中的被乘数的乘法运算。
可选地,所述分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,包括:
将所述乘法指令中长位宽的被乘数拆解为短位宽的多个子被乘数,各子被乘数具有相等的位宽;
将每个子乘数与所述乘法指令中的被乘数的乘法运算分解为每个子乘数与各子被乘数的乘法运算。
可选地,每一第二位宽的乘法运算通过第一查找表乘法器执行,每一第三位宽的乘法运算通过第二查找表乘法器执行。
可选地,在所述乘法指令中的被乘数为a[x-1:0],乘数为b[y-1:0],第二查找表乘法器为4bit*4bit乘法器时,所述乘法指令的最终结果Qout=Σ{a[4*i+3:4*i]*b[4*j+3:4*j]}(i={0,…,m},j={0,…,n}),其中m=x/4+(x%4!=0)、n=y/4+(y%4!=0);总周期数为m*n。
为实现上述目的,本申请还提供了一种应用于嵌入式流水CPU内核的乘法指令扩展装置,包括:
划分模块,用于对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期;
第一运算模块,用于分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,以及按照乘法分配律的规则分别对每个第二位宽的乘法运算分解得到的各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果;
第二运算模块,用于将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到所述乘法指令的最终结果。
可选地,所述划分模块用于:
将所述乘法指令中长位宽的乘数拆解为短位宽的多个子乘数,各子乘数具有相等的位宽;
将第一位宽的乘法运算分解成每个子乘数与所述乘法指令中的被乘数的乘法运算。
可选地,所述分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,包括:
将所述乘法指令中长位宽的被乘数拆解为短位宽的多个子被乘数,各子被乘数具有相等的位宽;
将每个子乘数与所述乘法指令中的被乘数的乘法运算分解为每个子乘数与各子被乘数的乘法运算。
为实现上述目的,本申请还提供了一种电子设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行如前所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
为实现上述目的,本申请还提供了一种计算机可读存储介质,其上存储有程序,所述程序被处理器执行时实现如前所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
本申请还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行如上所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
本申请能够将CPU指令集架构中的乘法指令进行多周期划分,即将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,并分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,每组第三位宽的乘法运算的结果进行移位(含补零)后进行累加以得到对应机器周期的乘法运算的结果,各机器周期的乘法运算的结果都得到后分别进行移位(含补零)后进行累加以得到乘法指令的最终结果。通过上述设置,本申请能够对嵌入式CPU进行乘法指令扩展,且有利于减少资源的消耗。
附图说明
图1是本申请实施例应用于嵌入式流水CPU内核的乘法指令扩展方法的流程图。
图2是本申请实施例对CPU指令集架构中的乘法指令进行多周期划分的示意框图。
图3是本申请实施例将第一查找表乘法器进行分解的示意框图。
图4是本申请实施例将第二查找表乘法器进行分解的示意框图。
图5是本申请实施例应用于嵌入式流水CPU内核的乘法指令扩展装置的示意框图。
图6是本申请实施例电子设备的示例框图。
具体实施方式
为了详细说明本申请的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
实施例一
请参阅图1至图4,本申请公开了一种应用于嵌入式流水CPU内核的乘法指令扩展方法,包括:
101、对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期。通过将较长的第一位宽的乘法运算分解成较短的多个第二位宽的乘法运算步骤,有利于减少逻辑资源的消耗。
具体地,对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,包括:
将乘法指令中的长位宽的乘数拆解为短位宽的多个子乘数,各子乘数具有相等的位宽;
将第一位宽的乘法运算分解成每个子乘数与乘法指令中的被乘数的乘法运算。
具体地,每一第二位宽的乘法运算通过第一查找表乘法器执行,通过第一查找表乘法器的使用有利于减少逻辑资源的消耗。
为了便于理解本申请,以16位的乘法指令进行举例说明。假设乘法指令中的被乘数为a[15:0],乘数为b[15:0]。
如图2所示,将16位乘法指令划分为四个机器周期,即每一机器周期执行a[15:0]与b[(4*j+3]:4*j](子乘数)的乘法运算,其中j表示当前的周期数且从第0周期开始。第0周期执行a[15:0]与b[3:0]的乘法运算,第1周期执行a[15:0]与b[7:4]的乘法运算,第2周期执行a[15:0]与b[11:8]的乘法运算,第3周期执行a[15:0]与b[15:12]的乘法运算。
在该示例中,使用的第一查找表乘法器为4bit*16bit的查找表乘法器,以满足每个机器周期的乘法运算需要。
102、分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,以及按照乘法分配律的规则分别对每个第二位宽的乘法运算分解得到的各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果。通过将每一第二位宽的乘法运算进一步分解成更短的多个第三位宽的乘法运算步骤,有利于进一步减少逻辑资源的消耗。本申请所指“乘法分配律”为现有技术,为本领域技术人员所知悉,在此不再详述。
具体地,分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,包括:
将乘法指令中长位宽的被乘数拆解为短位宽的多个子被乘数,各子被乘数具有相等的位宽;
将每个子乘数与乘法指令中的被乘数的乘法运算分解为每个子乘数与各子被乘数的乘法运算。
具体地,每一第三位宽的乘法运算通过第二查找表乘法器执行,通过第二查找表乘法器的使用有利于减少逻辑资源的消耗。
如图3所示,继续以上述示例进行举例说明。
为了节省第一查找表乘法器资源的消耗,设计将4bit*16bit的第一查找表乘法器分解成如图3所示的结构,即将4bit*16bit的乘法运算分解为4bit*4bit的乘法运算、移位运算以及加法运算等。
其中,乘法指令中的被乘数a[15:0]被拆解为4个子被乘数,分别为a[15:12]、a[11:8]、a[7:4]、a[3:0],每个子乘数分别与4个子被乘数利用4bit*4bit的第二查找表乘法器进行乘法运算。图3显示的是子乘数b[3:0]分别与4个子被乘数a[15:12]、a[11:8]、a[7:4]、a[3:0]利用4bit*4bit的第二查找表乘法器进行乘法运算,在该示例中,子乘数b[3:0]与子被乘数a[15:12]进行乘法运算的结果左移12位且0扩展为20位,子乘数b[3:0]与子被乘数a[11:8]进行乘法运算的结果左移8位且0扩展为20位,子乘数b[3:0]与子被乘数a[7:4]进行乘法运算的结果左移4位且0扩展为20位,子乘数b[3:0]与子被乘数a[3:0]进行乘法运算的结果左移0位且0扩展为20位。这里的左移具体位数由乘数b[(4*j+3]:4*j]中j的值决定且左移位数为4*j。关于移位和补零操作为本领域技术人员知悉,本申请对此不作详述。
为了进一步节省资源的消耗,可以设计将4bit*4bit的第二查找表乘法器分解成如图4所示的结构,即将4bit*4bit的乘法运算进一步分解为2bit*2bit的乘法运算、移位运算以及加法运算等部分。这里不再进行详述。
具体地,在乘法指令中的被乘数为a[x-1:0],乘数为b[y-1:0],第二查找表乘法器为4bit*4bit乘法器时,乘法指令的最终结果Qout=Σ{a[4*i+3:4*i]*b[4*j+3:4*j]}(i={0,…,m},j={0,…,n}),其中m=x/4+(x%4!=0)、n=y/4+(y%4!=0);总周期数为m*n。这里的左移具体位数由乘数b[(4*j+3]:4*j]中j的值决定且左移位数为4*j。
103、将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到乘法指令的最终结果。关于移位和补零操作为本领域技术人员知悉,本申请对此不作详述。
本申请能够将CPU指令集架构中的乘法指令进行多周期划分,即将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,并分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,每组第三位宽的乘法运算的结果进行移位(含补零)后进行累加以得到对应机器周期的乘法运算的结果,各机器周期的乘法运算的结果都得到后分别进行移位(含补零)后进行累加以得到乘法指令的最终结果。通过上述设置,本申请能够对嵌入式CPU进行乘法指令扩展,且有利于减少资源的消耗。
实施例二
请结合图5,本申请公开了一种应用于嵌入式流水CPU内核的乘法指令扩展装置,包括:
划分模块201,用于对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期。通过将较长的第一位宽的乘法运算分解成较短的多个第二位宽的乘法运算步骤,有利于减少逻辑资源的消耗。
具体地,划分模块201用于:
将乘法指令中的长位宽的乘数拆解为短位宽的多个子乘数,各子乘数具有相等的位宽;
将第一位宽的乘法运算分解成每个子乘数与乘法指令中的被乘数的乘法运算。
具体地,每一第二位宽的乘法运算通过第一查找表乘法器执行,通过第一查找表乘法器的使用有利于减少逻辑资源的消耗。
第一运算模块202,用于分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,以及按照乘法分配律的规则分别对每个第二位宽的乘法运算分解得到的各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果。通过将每一第二位宽的乘法运算进一步分解成更短的多个第三位宽的乘法运算步骤,有利于进一步减少逻辑资源的消耗。
具体地,分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,包括:
将乘法指令中长位宽的被乘数拆解为短位宽的多个子被乘数,各子被乘数具有相等的位宽;
将每个子乘数与乘法指令中的被乘数的乘法运算分解为每个子乘数与各子被乘数的乘法运算。
具体地,每一第三位宽的乘法运算通过第二查找表乘法器执行,通过第二查找表乘法器的使用有利于减少逻辑资源的消耗。
第二运算模块203,用于将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到乘法指令的最终结果。关于移位和补零操作为本领域技术人员知悉,本申请对此不作详述。
本申请能够将CPU指令集架构中的乘法指令进行多周期划分,即将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,并分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,每组第三位宽的乘法运算的结果进行移位(含补零)后进行累加以得到对应机器周期的乘法运算的结果,各机器周期的乘法运算的结果都得到后分别进行移位(含补零)后进行累加以得到乘法指令的最终结果。通过上述设置,本申请能够对嵌入式CPU进行乘法指令扩展,且有利于减少资源的消耗。
实施例三
请结合图6,本申请公开了一种电子设备,包括:
处理器30;
存储器40,其中存储有处理器30的可执行指令;
其中,处理器30配置为经由执行可执行指令来执行如实施例一所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
实施例四
本申请公开了一种计算机可读存储介质,其上存储有程序,程序被处理器执行时实现如实施例一所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
实施例五
本申请实施例公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述应用于嵌入式流水CPU内核的乘法指令扩展方法。
应当理解,在本申请实施例中,所称处理器可以是中央处理模块(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application SpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所揭露的仅为本申请的较佳实例而已,不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,均属于本申请所涵盖的范围。

Claims (10)

1.一种应用于嵌入式流水CPU内核的乘法指令扩展方法,其特征在于,包括:
对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期;
分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算;
按照乘法分配律的规则分别对每个第二位宽的乘法运算分解得到的各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果;
将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到所述乘法指令的最终结果。
2.如权利要求1所述的应用于嵌入式流水CPU内核的乘法指令扩展方法,其特征在于,所述对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,包括:
将所述乘法指令中长位宽的乘数拆解为短位宽的多个子乘数,各子乘数具有相等的位宽;
将第一位宽的乘法运算分解成每个子乘数与所述乘法指令中的被乘数的乘法运算。
3.如权利要求2所述的应用于嵌入式流水CPU内核的乘法指令扩展方法,其特征在于,所述分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,包括:
将所述乘法指令中长位宽的被乘数拆解为短位宽的多个子被乘数,各子被乘数具有相等的位宽;
将每个子乘数与所述乘法指令中的被乘数的乘法运算分解为每个子乘数与各子被乘数的乘法运算。
4.如权利要求1所述的应用于嵌入式流水CPU内核的乘法指令扩展方法,其特征在于,每一第二位宽的乘法运算通过第一查找表乘法器执行,每一第三位宽的乘法运算通过第二查找表乘法器执行。
5.如权利要求4所述的应用于嵌入式流水CPU内核的乘法指令扩展方法,其特征在于,在所述乘法指令中的被乘数为a[x-1:0],乘数为b[y-1:0],第二查找表乘法器为4bit*4bit乘法器时,所述乘法指令的最终结果Qout=Σ{a[4*i+3:4*i]*b[4*j+3:4*j]}(i={0,…,m},j={0,…,n}),其中m=x/4+(x%4!=0)、n=y/4+(y%4!=0);总周期数为m*n。
6.一种应用于嵌入式流水CPU内核的乘法指令扩展装置,其特征在于,包括:
划分模块,用于对CPU指令集架构中的乘法指令进行多周期划分,将第一位宽的乘法运算分解成多个第二位宽的乘法运算步骤,每个第二位宽的乘法运算步骤对应一个机器周期;
第一运算模块,用于分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,以及按照乘法分配律的规则分别对每个第二位宽的乘法运算分解得到的各个第三位宽的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加以得到每个机器周期的乘法运算的结果;
第二运算模块,用于将每个机器周期的乘法运算的结果左移相应位数及低位补零,并将移位后的结果进行累加得到所述乘法指令的最终结果。
7.如权利要求6所述的应用于嵌入式流水CPU内核的乘法指令扩展装置,其特征在于,所述划分模块用于:
将所述乘法指令中长位宽的乘数拆解为短位宽的多个子乘数,各子乘数具有相等的位宽;
将第一位宽的乘法运算分解成每个子乘数与所述乘法指令中的被乘数的乘法运算。
8.如权利要求7所述的应用于嵌入式流水CPU内核的乘法指令扩展装置,其特征在于,所述分别对各个第二位宽的乘法运算利用乘法分配律进行分解,形成多个第三位宽的乘法运算,包括:
将所述乘法指令中长位宽的被乘数拆解为短位宽的多个子被乘数,各子被乘数具有相等的位宽;
将每个子乘数与所述乘法指令中的被乘数的乘法运算分解为每个子乘数与各子被乘数的乘法运算。
9.一种电子设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
10.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1至7任一项所述的应用于嵌入式流水CPU内核的乘法指令扩展方法。
CN202310208145.XA 2023-03-06 2023-03-06 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置 Active CN116225366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310208145.XA CN116225366B (zh) 2023-03-06 2023-03-06 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310208145.XA CN116225366B (zh) 2023-03-06 2023-03-06 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置

Publications (2)

Publication Number Publication Date
CN116225366A true CN116225366A (zh) 2023-06-06
CN116225366B CN116225366B (zh) 2024-04-05

Family

ID=86578396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310208145.XA Active CN116225366B (zh) 2023-03-06 2023-03-06 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置

Country Status (1)

Country Link
CN (1) CN116225366B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421026A (ja) * 1990-05-14 1992-01-24 Nec Corp 高桁乗算装置
US20050182813A1 (en) * 2004-01-20 2005-08-18 Won-Kyoung Cho Apparatus and method of multiplication using a plurality of identical partial multiplication modules
CN105808206A (zh) * 2016-03-04 2016-07-27 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
CN106528046A (zh) * 2016-11-02 2017-03-22 上海集成电路研发中心有限公司 长位宽时序累加乘法器
CN110262773A (zh) * 2019-04-28 2019-09-20 阿里巴巴集团控股有限公司 一种计算机数据处理方法及装置
CN111258544A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN112434317A (zh) * 2020-11-24 2021-03-02 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质
CN112711395A (zh) * 2019-10-25 2021-04-27 阿里巴巴集团控股有限公司 加解密方法和装置、电子设备以及计算机可读存储介质
CN114063972A (zh) * 2021-11-22 2022-02-18 深圳市爱协生科技有限公司 乘法器装置
CN115344237A (zh) * 2022-10-19 2022-11-15 无锡沐创集成电路设计有限公司 结合Karatsuba和蒙哥马利模乘的数据处理方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0421026A (ja) * 1990-05-14 1992-01-24 Nec Corp 高桁乗算装置
US20050182813A1 (en) * 2004-01-20 2005-08-18 Won-Kyoung Cho Apparatus and method of multiplication using a plurality of identical partial multiplication modules
CN105808206A (zh) * 2016-03-04 2016-07-27 广州海格通信集团股份有限公司 基于ram实现乘法运算的方法及其系统
CN106528046A (zh) * 2016-11-02 2017-03-22 上海集成电路研发中心有限公司 长位宽时序累加乘法器
CN111258544A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN110262773A (zh) * 2019-04-28 2019-09-20 阿里巴巴集团控股有限公司 一种计算机数据处理方法及装置
CN112711395A (zh) * 2019-10-25 2021-04-27 阿里巴巴集团控股有限公司 加解密方法和装置、电子设备以及计算机可读存储介质
CN112434317A (zh) * 2020-11-24 2021-03-02 深圳前海微众银行股份有限公司 数据处理方法、装置、设备及存储介质
CN114063972A (zh) * 2021-11-22 2022-02-18 深圳市爱协生科技有限公司 乘法器装置
CN115344237A (zh) * 2022-10-19 2022-11-15 无锡沐创集成电路设计有限公司 结合Karatsuba和蒙哥马利模乘的数据处理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
余云霞;曾以成;: "一种有符号定点数乘法运算的快速算法", 湘潭大学自然科学学报, no. 01, 30 March 2007 (2007-03-30) *
李东晓;: "一种支持SIMD指令的流水化可拆分乘加器结构", 计算机工程, no. 07, 5 April 2006 (2006-04-05) *
赵志忠, 杨建生: "多位数乘法分段快速心算法", 齐鲁珠坛, no. 05, 25 October 2004 (2004-10-25) *

Also Published As

Publication number Publication date
CN116225366B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
US9363068B2 (en) Vector processor having instruction set with sliding window non-linear convolutional function
Yao Probabilistic computations: Toward a unified measure of complexity
US9280315B2 (en) Vector processor having instruction set with vector convolution function for fir filtering
US6601077B1 (en) DSP unit for multi-level global accumulation
US9128790B2 (en) Digital signal processor having instruction set with an exponential function using reduced look-up table
Bianchi et al. A modular Vedic multiplier architecture for model-based design and deployment on FPGA platforms
US20170169132A1 (en) Accelerated lookup table based function evaluation
CN110109646A (zh) 数据处理方法、装置和乘加器及存储介质
CN113867685A (zh) 一种乘法器转换方法、装置、设备及可读存储介质
Scott Missing a trick: Karatsuba variations
CN116974868A (zh) 芯片功耗估计装置、方法、电子设备及存储介质
CN116225366B (zh) 应用于嵌入式流水cpu内核的乘法指令扩展方法及装置
CN114003194A (zh) 一种基于乘法器的运算方法、装置和计算机可读存储介质
CN115827555B (zh) 数据处理方法、计算机设备、存储介质和乘法器结构
CN207115387U (zh) Xiu‑累加寄存器、xiu‑累加寄存器电路、以及电子设备
Burud et al. Design and Implementation of FPGA Based 32 Bit Floating Point Processor for DSP Application
CN115754413A (zh) 示波器及数据处理方法
US6725360B1 (en) Selectively processing different size data in multiplier and ALU paths in parallel
CN112667959B (zh) 混合基dft处理方法、装置、设备及存储介质
CN113434113B (zh) 基于静态配置数字电路的浮点数乘累加控制方法及系统
CN111142840A (zh) 基于fpga的数据计算方法和装置
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
Raju et al. Design and implementation of 16-bit MAC ternary multiplier
CN110209373A (zh) 实现复数乘法的方法及装置
JPH02205923A (ja) 演算プロセッサ

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