CN101847088B - 一种基于模块与操作码复用的低成本算术逻辑单元 - Google Patents

一种基于模块与操作码复用的低成本算术逻辑单元 Download PDF

Info

Publication number
CN101847088B
CN101847088B CN2010101093876A CN201010109387A CN101847088B CN 101847088 B CN101847088 B CN 101847088B CN 2010101093876 A CN2010101093876 A CN 2010101093876A CN 201010109387 A CN201010109387 A CN 201010109387A CN 101847088 B CN101847088 B CN 101847088B
Authority
CN
China
Prior art keywords
controller
alu
module
operational code
totalizer
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
Application number
CN2010101093876A
Other languages
English (en)
Other versions
CN101847088A (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.)
SYSUNG ELECTRONICS AND TELECOMM RESEARCH INSTITUTE
Original Assignee
谭洪舟
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 谭洪舟 filed Critical 谭洪舟
Priority to CN2010101093876A priority Critical patent/CN101847088B/zh
Publication of CN101847088A publication Critical patent/CN101847088A/zh
Application granted granted Critical
Publication of CN101847088B publication Critical patent/CN101847088B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明公开了一种基于模块与操作码复用的低成本算术逻辑单元,由译码控制器、加法器、乘法控制器、除法控制器、十进制数调整器、逻辑运算器,位处理器和数据通路选择器组成。本发明的有益效果:本发明通过采用操作码复用,功能模块复用的方法,优化算术逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,在保证功能正确的前提下达到了降低芯片成本的目的。

Description

一种基于模块与操作码复用的低成本算术逻辑单元
技术领域
本发明涉及微控制器算术逻辑单元,具体来说,涉及利用模块与操作码复用,降低硬件资源消耗、节省芯片面、低成本的一种基于模块与操作码复用的低成本算术逻辑单元。
背景技术
微控制器(MCU,Micro Control Unit)是把中央处理器(CPU),一定容量的存储器和若干输入/输出端口等部件集成在一块小硅片上的微型计算机,又称单片机。微控制器自20世纪70年代问世以来,被广泛地应用于科研、生产、生活及其他各个领域,已对人类社会的发展产生了很大的影响。尤其是美国Intel公司生产的MCS-51系列微控制器,由于其具有集成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点,迅速占领了工业测控和自动化工程应用的主要市场,在全世界已经得到广泛的应用,并取得了令人瞩目的成果。
算术逻辑单元(ALU)是微控制器的中央处理器的一个核心组成部分,用于完成各种算术与逻辑运算。算术逻辑单元不仅能完成8位数据加(带进位加)、减(带借位减)、乘、除、加1、减1及BCD加法的十进制调整等算术运算,还能进行逻辑“与”、“或”、“异或”、求补、清零等逻辑运算,并具有数据传送,程序转移等功能。此外,MCS-51微控器的算术逻辑单元还具有一般微计算机算术逻辑单元所不具备的功能,即位操作处理,可对直接寻址的位变量进行处理,如置位、清零、取反、测试转移以及逻辑与、或等位操作,使用户在编程时可利用指令完成原来单凭复杂的硬件逻辑所完成的功能,并可方便的设置标志位等。
现有的算术逻辑单元设计中,有以下两种缺点:对算术逻辑单元的每一种操作都进行单独编码,导致算术逻辑单元操作码过多,译码器复杂度增大;对加、减、乘、除功能,分别由加法器、减法器、乘法器、除法器4个单独的功能模块来实现,导致算术逻辑单元结构冗余,硬件资源消耗高。总之,现有的算术逻辑单元设计,往往只注重功能的实现,而欠缺对芯片面积优化方面的考虑,致使算术逻辑单元硬件资源消耗高,芯片面积大,实现成本高。
发明内容
针对以上不足,本发明提供通过采用功能模块复用与操作码复用方法,优化算术逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,从而最终达到降低芯片成本的目的一种基于模块与操作码复用的低成本算术逻辑单元。
本发明是这样实现的:一种基于模块与操作码复用的低成本算术逻辑单元,由译码控制器、加法器、乘法控制器、除法控制器、十进制数调整器、逻辑运算器,位处理器和数据通路选择器组成,译码控制器对输入的算术逻辑单元操作码进行译码,并根据操作码为加法器,乘法控制器,除法控制器,十进制调整器,逻辑运算器,位处理器这6种运算模块分配源操作数1、源操作数2和源标志位,当两种操作对目的操作数和目的状态的影响无交叠部分时复用同一操作码,若多个父功能模块中都要需要实现某一子功能,则不必为每个功能模块分别设置独立的子功能模块,而是只设置一个子功能模块,通过设计数据通路使所有父功能模块共享这个子模块,运算模块根据两个源操作数和源标志位进行相应运算,并产生运算结果,数据通路选择器根据译码控制器器的控制信号,选择其中一组运算结果输出,输出信号包括目的操作数1、目的操作数2(仅乘除法有)和目的标志位。能够实现各种算术运算、逻辑运算、字节交换操作与位操作等。
本发明的有益效果:本发明通过采用操作码复用,功能模块复用的方法,优化算术逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,在保证功能正确的前提下达到了降低芯片成本的目的。
附图说明
图1为本发明的一种基于模块与操作码复用的低成本算术逻辑单元算术逻辑单元整体示意图;
图2为本发明一种基于模块与操作码复用的低成本算术逻辑单元执行乘法指令时的数据通路示意图;
图3为本发明一种基于模块与操作码复用的低成本算术逻辑单元执行除法指令时的数据通路示意图。
具体实施方式
下面结合附图对本发明一种基于模块与操作码复用的低成本算术逻辑单元进行进一步阐述。
一种基于模块与操作码复用的低成本算术逻辑单元,如图1所示,包括译码控制器10、数据通路选择器20,加法器30,乘法控制器40,除法控制器50,十进制调整器60,逻辑运算器70和位处理器80;译码控制器10对输入的算术逻辑单元操作码进行译码,并根据操作码为加法器30,乘法控制器40,除法控制器50,十进制调整器60,逻辑运算器70,位处理器80这6种运算模块分配源操作数1、源操作数2和源标志位,运算模块根据两个源操作数和源标志位进行相应运算,并产生运算结果,而数据通路选择器20则根据译码控制器器10的控制信号,选择其中一组运算结果输出,输出信号包括目的操作数1、目的操作数2(仅乘除法有)和目的标志位。能够实现各种算术运算、逻辑运算、字节交换操作与位操作等。
所述译码控制器10,用于对算术逻辑单元操作码进行译码,并根据不同的操作码,对其他各个模块发出相应的控制信号。本发明算术逻辑单元操作码采用复用设计,使两种操作复用一个操作码,可减少算术逻辑单元操作码个数,从而降低译码控制器的复杂度和硬件资源消耗。
所述加法器30,用于完成8位数据的加法运算,可独立完成加法操作(ADD),带进位加法操作(ADDC)和增量操作(INC)。此外,减法运算采用补码相加法实现,减法操作(SUB),带借位减法操作(SUBB)和减量操作(DEC),采用译码控制器对减数求补后,与被减数通过该加法器相加的方法得到结果。
所述乘法控制器40,用于与译码控制器10以及加法器30一起,共同完成乘法操作(MUL)。乘法操作中,乘法运算采用移位相加法实现,乘法控制器用于移位与控制,加法器用于加法运算,而译码控制器用于控制乘法控制器与加法器协同工作。
所述除法控制器50,用于与译码控制器10以及加法器30一起,共同完成除法操作(DIV)。除法操作中,除法运算采用恢复余数法实现,除法控制器用于移位与控制,加法器用于与译码控制器一起实现减法运算,而译码控制器用于控制除法控制器与加法器协同工作。
所述十进制调整器60,用于对BCD加法的结果进行十进制调整。
所述逻辑运算器70,用于完成各种逻辑运算,包括与、或、异或、清零、取反等操作。
所述位处理器80,用于完成各种位操作,包括位的与、或、清零、取反、置位等操作。
所述数据通路选择器20,用于根据译码控制器的控制信号,来选择输出端口的数据源。
本发明通过采用操作码复用,功能模块复用的方法,优化算术逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,在保证功能正确的前提下达到了降低芯片成本的目的。
1、操作码复用
算术逻辑单元共有34种算术或逻辑操作,按照常规的译码器设计方法,算术逻辑单元操作码(alu_op)的最佳位数n应满足以下公式:
2n-1<34<2n
可解得n的最佳值为6,使32<34<64,即须用6位操作码对算术逻辑单元每种操作进行编码。而本发明在通过细致剖析算术逻辑单元操作的数据流行为,采用操作码复用方法,使算术逻辑单元操作码仅为5位就可以实现算术逻辑单元34种操作的编码。操作码复用的基本思想是:对两种不同的操作使用一个共同的操作码,而不对功能的正确性产生任何影响。
在算术逻辑单元操作中,字节清零操作(alu_CLR)将目的操作数1清零,但不影响目的状态字(PSW);进位标志清零操作(alu_CLR_Cy),则将目的状态字(PSW)的进位标志(Cy)清零,但不影响目的操作数1。由于上述两种操作的所影响的输出无交叠之处,故对它们采用相同的算术逻辑单元操作码:“5’b00001”。
接下来说明中央处理器(CPU)将如何根据同一操作码区分两种不同的操作。当中央处理器执行指令“CLR A”或“CLR C”时,中央处理器的译码器将数据“5’b00001”传送到算术逻辑单元的操作码端口,算术逻辑单元的译码控制器10控制逻辑运算器进行字节清零操作(alu_CLR),同时控制位处理器(80)进行进位标志清零操作(alu_CLR_Cy)。两种操作并行执行后,数据通路选择器20将字节清零操作的结果传送到目的操作数1,将进位标志清零的结果传送到目的状态字(PSW)。中央处理器执行上述两种指令时的不同之处在于:执行指令“CLR C”时,译码器发出的状态字更新信号(psw_set)有效,影响状态字,但不将算术逻辑单元目标操作数1取出;而执行指令“CLR A”时,将算术逻辑单元目标操作数1取出,但状态字更新信号(psw_set)无效,不影响状态字。也即,执行指令“CLR C”的操作结果是:将状态字的进位标志清零,但不影响其它;而执行“CLR A”的操作结果是:将累加器(A)清零,但不影响其它。这表明:在采用同一算术逻辑单元操作码的前提下,两条指令执行时都实现了正确功能。
当然并不是每两种算术逻辑单元操作都可以进行操作码复用,只有当两种操作对目的操作数和目的状态的影响无交叠部分时才能复用同一操作码。本发明在34种操作中取出7对操作进行操作码复用,即采用27个操作码实现了对34种操作的编码,使操作码从6位编码降到了5位编码。通过操作码复用,减少算术逻辑单元操作码个数,可降低译码控制器以及算术逻辑单元外围模块的实现复杂度和硬件资源消耗,从而降低芯片实现成本。
2.功能模块复用:
功能模块复用的基本思想是:若多个父功能模块中都要需要实现某一子功能,则不必为每个功能模块分别设置独立的子功能模块,而是只设置一个子功能模块,通过设计数据通路使所有父功能模块共享这个子模块。
本方面对加法器模块采用功能模块复用,使加法操作(ADD)、带进位加法操作(ADDC),增量操作(INC),减法操作(SUB)、带借位减法操作(SUBB)、减量操作(DEC)、比较操作(CMP)、乘法操作(MUL)、除法操作(DIV)共同复用同一个加法器。加法器的工作原理是:将输入端的s1、s2和ci三者相加,相加结果出现在端口d1,进位标志出现在端口co(其他标准位未在图中画出)。下面详细说明加法器模块复用的实现过程:
如算术逻辑单元的操作码为加法操作(ADD),则译码控制器将源操作数1传输到加法器的s1端,将源操作数2传入到加法器s2端,将立即数“0”传入加法器ci端,加法器运算后,相加结果出现在d1端,进位标志出现在co端。
如算术逻辑单元的操作码为带进位加法操作(ADDC),则译码控制器将源操作数1传输到加法器的s1端,将源操作数2传入到加法器s2端,将源状态字的进位标志传入加法器ci端,加法器运算后,相加结果出现在d1端,进位标志出现在co端。
如算术逻辑单元的操作码为增量操作(INC),则译码控制器将源操作数1传输到加法器的s1端,将立即数“1”传入加法器ci端,加法器运算后,相加结果出现在d1端,进位标志出现在co端,但进位标志不会从算术逻辑单元输出。
如算术逻辑单元的操作码为带借位减法操作(SUBB),则译码控制器将源操作数1传输到加法器的s1端,将源操作数2的反码的传入到加法器s2端,将源状态字的进位标志的反相后传入加法器ci端,加法器运算后,相加结果出现在d1端,进位标志出现在co端。带借位减法操作(SUBB)应实现d1=s1-s2-ci,须借位时co=1。减法可采用补码(反码加1)相加的方法来实现。本发明用加法器来实现减法操作,即d1=s1-s2-ci=s1+(~s2+1)+(~ci+1),由于ci为1位数,故~ci+1=~ci-1。可得d1=s1+~s2+~ci,co为加法进位,若co=1,表示无借位,目的状态字的进位标志Cy为0,co=0,表示有借位,目的状态字目的状态字的进位标志Cy为1。
如算术逻辑单元的操作码为减量操作(DEC),则译码控制器将源操作数1传输到加法器的s1端,将立即数“FFH”传入加法器s2端,加法器运算后,相加结果出现在d1端,进位标志出现在co端,但进位标志不会从算术逻辑单元输出。说明:d1=s1+FFH=s1-1,即实现了减1操作。
如算术逻辑单元的操作码为比较操作(CMP),则译码控制器将源操作数1传输到加法器的s1端,将源操作数2的反码传入加法器s2端,将立即数“1”传入ci端。加法器运算后,相加结果出现在d1端,进位标志出现在co端。说明:d1=s1-s2=s1+~s2+1,co为加法进位,若co=1,表示无借位,目的状态字的进位标志Cy为0,co=0,表示有借位,目的状态字的进位标志Cy为1。
如算术逻辑单元的操作码为乘法操作(MUL),则译码控制器控制下的数据通路如附图2所示:将源操作数1接乘法控制器的s1端,源操作数2接加法器s2端,加法器的d1端接乘法控制器的s2端,将加法器s1端的乘法控制器d2端,另外乘法控制器的clk端接系统时钟。实现乘法的算法采用移位相加法,两个8位无符号数相乘需8次移位相加,也即需要8个时钟来执行,第8个时钟之后乘法运算结果的高8位出现的端口d2,低8位出现在d1,此时中央处理器会将此结果取出并保存到相应寄存器中。
如算术逻辑单元的操作码为除法操作(DIV),则译码控制器控制下的数据通路如附图3所示:将源操作数1接除法控制器的s1端,源操作数2反相后接加法器s2端,立即数“1”接ci端,加法器的d1端接除法控制器的s2端,将加法器s1端的除法控制器d2端,另外除法控制器的clk端接系统时钟。实现除法的算法采用恢复余数法,两个8位无符号数相除需8次移位运算,也即需要8个时钟来执行,第8个时钟之后除法运算的商出现的端口d1,余数出现在d2,此时中央处理器会将此结果取出并保存到相应寄存器中。

Claims (1)

1.一种基于模块与操作码复用的低成本算术逻辑单元,由译码控制器、加法器、乘法控制器、除法控制器、十进制数调整器、逻辑运算器,位处理器和数据通路选择器组成,其特征在于:译码控制器对输入的算术逻辑单元操作码进行译码,并根据操作码为加法器,乘法控制器,除法控制器,十进制调整器,逻辑运算器,位处理器这6种运算模块分配源操作数1、源操作数2和源标志位,当两种操作对目的操作数和目的状态的影响无交叠部分时复用同一操作码,若多个父功能模块中都要需要实现某一子功能,则不必为每个功能模块分别设置独立的子功能模块,而是只设置一个子功能模块,通过设计数据通路使所有父功能模块共享这个子模块,运算模块根据两个源操作数和源标志位进行相应运算,并产生运算结果,数据通路选择器根据译码控制器的控制信号,选择其中一组运算结果输出,输出信号包括目的操作数1、目的操作数2和目的标志位。
CN2010101093876A 2010-02-05 2010-02-05 一种基于模块与操作码复用的低成本算术逻辑单元 Expired - Fee Related CN101847088B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101093876A CN101847088B (zh) 2010-02-05 2010-02-05 一种基于模块与操作码复用的低成本算术逻辑单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101093876A CN101847088B (zh) 2010-02-05 2010-02-05 一种基于模块与操作码复用的低成本算术逻辑单元

Publications (2)

Publication Number Publication Date
CN101847088A CN101847088A (zh) 2010-09-29
CN101847088B true CN101847088B (zh) 2012-02-15

Family

ID=42771715

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101093876A Expired - Fee Related CN101847088B (zh) 2010-02-05 2010-02-05 一种基于模块与操作码复用的低成本算术逻辑单元

Country Status (1)

Country Link
CN (1) CN101847088B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109194307B (zh) * 2018-08-01 2022-05-27 南京中感微电子有限公司 数据处理方法及系统
CN109388373B (zh) * 2018-10-12 2023-03-14 芯来科技(武汉)有限公司 用于低功耗内核的乘除法器

Also Published As

Publication number Publication date
CN101847088A (zh) 2010-09-29

Similar Documents

Publication Publication Date Title
US20200334038A1 (en) Variable format, variable sparsity matrix multiplication instruction
US20200334016A1 (en) Method and apparatus for efficient binary and ternary support in fused multiply-add (fma) circuits
EP0739517B1 (en) A massively miltiplexed superscalar harvard architecture computer
CN101178644B (zh) 一种基于复杂指令集计算机结构的微处理器架构
CN103150146B (zh) 基于可扩展处理器架构的专用指令集处理器及其实现方法
US20220012144A1 (en) Apparatus and method for multithreading-aware performance monitoring events
CN102981797B (zh) 基于cordic算法的反馈和流水线结构相结合的三角函数运算器
CN104321741A (zh) 双舍入组合浮点乘法和加法
CN101299185A (zh) 一种基于cisc结构的微处理器构架及指令实现方式
EP3447634A1 (en) Non-linear function computing device and method
CN102495719A (zh) 一种向量浮点运算装置及方法
CN104111816A (zh) Gpdsp中多功能simd结构浮点融合乘加运算装置
CN102360281B (zh) 用于微处理器的多功能定点乘加单元mac运算装置
US10909015B2 (en) Apparatus and method for generating performance monitoring metrics
US11150721B2 (en) Providing hints to an execution unit to prepare for predicted subsequent arithmetic operations
US11474825B2 (en) Apparatus and method for controlling complex multiply-accumulate circuitry
TW201643694A (zh) 用於移位和(shift-sum)乘法器的指令及邏輯
CN104156195A (zh) 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法
CN111381664A (zh) 控制处理器中的功率状态降级
TW202117534A (zh) 用於轉換資料類型的轉換器、晶片、電子設備及其方法
CN101847088B (zh) 一种基于模块与操作码复用的低成本算术逻辑单元
CN103279323A (zh) 一种加法器
CN105335128B (zh) Gpdsp中基于三级超前进位加法器的64位定点alu电路
CN203746056U (zh) 多操作数四则混合定点算术运算控制器
CN202331425U (zh) 基于矢量运算的矢量浮点运算装置

Legal Events

Date Code Title Description
C06 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
ASS Succession or assignment of patent right

Owner name: GUANGZHOU HUADU DISTRICT SYSUNG ELECTRONICS AND TE

Free format text: FORMER OWNER: TAN HONGZHOU

Effective date: 20130703

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 510310 GUANGZHOU, GUANGDONG PROVINCE TO: 510006 GUANGZHOU, GUANGDONG PROVINCE

TR01 Transfer of patent right

Effective date of registration: 20130703

Address after: 510006, No. 8, Jinghu Avenue, Xinhua Street, Huadu District, Guangdong, Guangzhou

Patentee after: Sysung Electronics and Telecomm Research Institute

Address before: 510310, room 764, 604 west side, 135 West Haizhuqu District Road, Guangzhou, Guangdong, Xingang

Patentee before: Tan Hongzhou

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120215

Termination date: 20150205

EXPY Termination of patent right or utility model