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

文档序号:6598157阅读:177来源:国知局
专利名称:一种基于模块与操作码复用的低成本算术逻辑单元的制作方法
技术领域
本发明涉及微控制器算术逻辑单元,具体来说,涉及利用模块与操作码复用,降低 硬件资源消耗、节省芯片面、低成本的一种基于模块与操作码复用的低成本算术逻辑单元。
背景技术
微控制器(MCU,Micro Control Unit)是把中央处理器(CPU),一定容量的存 储器 和若干输入/输出端口等部件集成在一块小硅片上的微型计算机,又称单片机。微控制器 自20世纪70年代问世以来,被广泛地应用于科研、生产、生活及其他各个领域,已对人类社 会的发展产生了很大的影响。尤其是美国Intel公司生产的MCS-51系列微控制器,由于其 具有集成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点,迅速占 领了工业测控和自动化工程应用的主要市场,在全世界已经得到广泛的应用,并取得了令 人瞩目的成果。算术逻辑单元(ALU)是微控制器的中央处理器的一个核心组成部分,用于完成各 种算术与逻辑运算。算术逻辑单元不仅能完成8位数据加(带进位加)、减(带借位减)、 乘、除、加1、减1及B⑶加法的十进制调整等算术运算,还能进行逻辑“与”、“或”、“异或”、 求补、清零等逻辑运算,并具有数据传送,程序转移等功能。此外,MCS-51微控器的算术逻 辑单元还具有一般微计算机算术逻辑单元所不具备的功能,即位操作处理,可对直接寻址 的位变量进行处理,如置位、清零、取反、测试转移以及逻辑与、或等位操作,使用户在编程 时可利用指令完成原来单凭复杂的硬件逻辑所完成的功能,并可方便的设置标志位等。现有的算术逻辑单元设计中,有以下两种缺点对算术逻辑单元的每一种操作都 进行单独编码,导致算术逻辑单元操作码过多,译码器复杂度增大;对加、减、乘、除功能,分 别由加法器、减法器、乘法器、除法器4个单独的功能模块来实现,导致算术逻辑单元结构 冗余,硬件资源消耗高。总之,现有的算术逻辑单元设计,往往只注重功能的实现,而欠缺对 芯片面积优化方面的考虑,致使算术逻辑单元硬件资源消耗高,芯片面积大,实现成本高。

发明内容
针对以上不足,本发明提供通过采用功能模块复用与操作码复用方法,优化算术 逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,从而最终达到降低芯片成本的目 的一种基于模块与操作码复用的低成本算术逻辑单元。本发明是这样实现的一种基于模块与操作码复用的低成本算术逻辑单元,由译 码控制器、加法器、乘法控制器、除法控制器、十进制数调整器、逻辑运算器,位处理器和数 据通路选择器组成,译码控制器对输入的算术逻辑单元操作码进行译码,并根据操作码为 加法器,乘法控制器,除法控制器,十进制调整器,逻辑运算器,位处理器这6种运算模块分 配源操作数、源操作数和源标志位,运算模块根据两个源操作数和源标志位进行相应运算, 并产生运算结果;数据通路选择器根据译码控制器器的控制信号,选择其中一组运算结果 输出,输出信号包括目的操作数、目的操作数(仅乘除法有)和目的标志位。能够实现各种算术运算、逻辑运算、字节交换操作与位操作等。本发明的有益效果本发明通过采用操作码复用,功能模块复用的方法,优化算术 逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,在保证功能正确的前提下达到了 降低芯片成本的目的。


图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,用于对B⑶加法的结果进行十进制调整。所述逻辑运算器70,用于完成各种逻辑运算,包括与、或、异或、清零、取反等操作。所述位处理器80,用于完成各种位操作,包括位的与、或、清零、取反、置位等操作。所述数据通路选择器20,用于根据译码控制器的控制信号,来选择输出端口的数 据源。本发明通过采用操作码复用,功能模块复用的方法,优化算术逻辑单元的系统结 构,节省硬件资源消耗,减少芯片面积,在保证功能正确的前提下达到了降低芯片成本的目 的。 1、操作码复用算术逻辑单元共有34种算术或逻辑操作,按照常规的译码器设计方法,算术逻辑 单元操作码(alu_0p)的最佳位数η应满足以下公式2η_1 < 34 < 2η可解得η的最佳值为6,使32 < 34 < 64,即须用6位操作码对算术逻辑单元每种 操作进行编码。而本发明在通过细致剖析算术逻辑单元操作的数据流行为,采用操作码复 用方法,使算术逻辑单元操作码仅为5位就可以实现算术逻辑单元34种操作的编码。操作 码复用的基本思想是对两种不同的操作使用一个共同的操作码,而不对功能的正确性产 生任何影响。在算术逻辑单元操作中,字节清零操作(alu_CLR)将目的操作数1清零,但不影响 目的状态字(PSW);进位标志清零操作(alu_CLR_Cy),则将目的状态字(PSW)的进位标志 (Cy)清零,但不影响目的操作数1。由于上述两种操作的所影响的输出无交叠之处,故对它 们采用相同的算术逻辑单元操作码“5’ bOOOOl”。接下来说明中央处理器(CPU)将如何根据同一操作码区分两种不同的操作。当中 央处理器执行指令“CLR A”或“CLR C”时,中央处理器的译码器将数据“5,bOOOOl”传送 到算术逻辑单元的操作码端口,算术逻辑单元的译码控制器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)共同复用同一个加法器。加法器的工作原理是 将输入端的sl、s2和ci三者相加,相加结果出现在端口 dl,进位标志出现在端口 Co (其他 标准位未在图中画出)。下面详细说明加法器模块复用的实现过程如算术逻辑单元的操作码为加法操作(ADD),则译码控制器将源操作数1传输到 加法器的si端,将源操作数2传入到加法器s2端,将立即数“O”传入加法器ci端,加法器 运算后,相加结果出现在dl端,进位标志出现在Co端。如算术逻辑单元的操作码为带进位加法操作(ADDC),则译码控制器将源操作数1 传输到加法器的si端,将源操作数2传入到加法器s2端,将源状态字的进位标志传入加法 器ci端,加法器运算后,相加结果出现在dl端,进位标志出现在Co端。如算术逻辑单元的操作码为增量操作(INC),则译码控制器将源操作数1传输到 加法器的si端,将立即数“1”传入加法器ci端,加法器运算后,相加结果出现在dl端,进 位标志出现在CO端,但进位标志不会从算术逻辑单元输出。如算术逻辑单元的操作码为带借位减法操作(SUBB),则译码控制器将源操作数1 传输到加法器的si端,将源操作数2的反码的传入到加法器s2端,将源状态字的进位标 志的反相后传入加法器ci端,加法器运算后,相加结果出现在dl端,进位标志出现在C0 端。带借位减法操作(SUBB)应实现dl = sl-s2-ci,须借位时C0 = 1。减法可采用补码 (反码加1)相加的方法来实现。本发明用加法器来实现减法操作,即dl = sl-s2-ci = sl+( s2+l) + ( ci+l),由于ci为1位数,故 ci+Ι = ci-1。可得dl = si+ s2+ ci,co为 加法进位,若C0 = 1,表示无借位,目的状态字的进位标志Cy为0,C0 = O,表示有借位,目 的状态字目的状态字的进位标志Cy为1。如算术逻辑单元的操作码为减量操作(DEC),则译码控制器将源操作数1传输到 加法器的Sl端,将立即数“Fm”传入加法器S2端,加法器运算后,相加结果出现在dl端, 进位标志出现在CO端,但进位标志不会从算术逻辑单元输出。说明dl = sl+FFH = Sl-l, 即实现了减1操作。如算术逻辑单元的操作码为比较操作(CMP),则译码控制器将源操作数1传输到 加法器的si端,将源操作数2的反码传入加法器s2端,将立即数“1”传入ci端。加法器 运算后,相加结果出现在dl端,进位标志出现在Co端。说明dl = sl-s2 = sl+^s2+l, co 为加法进位,若C0 = 1,表示无借位,目的状态字的进位标志Cy为0,co = 0,表示有借位, 目的状态字的进位标志Cy为1。如算术逻辑单元的操作码为乘法操作(MUL),则译码控制器控制下的数据通路如 附图2所示将源操作数1接乘法控制器的si端,源操作数2接加法器s2端,加法器的dl 端接乘法控制器的s2端,将加法器si端的乘法控制器d2端,另外乘法控制器的elk端接 系统时钟。实现乘法的算法采用移位相加法,两个8位无符号数相乘需8次移位相加,也即需要8个时钟来执行,第8个时钟之后乘法运算结果的高8位出现的端口 d2,低8位出现在 dl,此时中央处理器会将此结果取出并保存到相应寄存器中。
如算术逻辑单元的操作码为除法操作(DIV),则译码控制器控制下的数据通路如 附图3所示将源操作数1接除法控制器的si端,源操作数2反相后接加法器s2端,立即 数“1”接ci端,加法器的dl端接除法控制器的s2端,将加法器si端的除法控制器d2端, 另外除法控制器的elk端接系统时钟。实现除法的算法采用恢复余数法,两个8位无符号 数相除需8次移位运算,也即需要8个时钟来执行,第8个时钟之后除法运算的商出现的端 口 dl,余数出现在d2,此时中央处理器会将此结果取出并保存到相应寄存器中。
权利要求
一种基于模块与操作码复用的低成本算术逻辑单元,由译码控制器、加法器、乘法控制器、除法控制器、十进制数调整器、逻辑运算器,位处理器和数据通路选择器组成,其特征在于译码控制器对输入的算术逻辑单元操作码进行译码,并根据操作码为加法器,乘法控制器,除法控制器,十进制调整器,逻辑运算器,位处理器这6种运算模块分配源操作数、源操作数和源标志位,运算模块根据两个源操作数和源标志位进行相应运算,并产生运算结果;数据通路选择器根据译码控制器器的控制信号,选择其中一组运算结果输出,输出信号包括目的操作数、目的操作数和目的标志位。
2.如权利要求1所述的一种基于模块与操作码复用的低成本算术逻辑单元,其特征在 于在算术逻辑单元的34种操作中取出7对操作进行操作码复用。
全文摘要
本发明公开了一种基于模块与操作码复用的低成本算术逻辑单元,由译码控制器、加法器、乘法控制器、除法控制器、十进制数调整器、逻辑运算器,位处理器和数据通路选择器组成。本发明的有益效果本发明通过采用操作码复用,功能模块复用的方法,优化算术逻辑单元的系统结构,节省硬件资源消耗,减少芯片面积,在保证功能正确的前提下达到了降低芯片成本的目的。
文档编号G06F7/57GK101847088SQ20101010938
公开日2010年9月29日 申请日期2010年2月5日 优先权日2010年2月5日
发明者丁颜玉, 林克, 胡建国, 谭洪舟, 钟伟 申请人:谭洪舟
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1