CN116382620A - 融合十进制的算术逻辑部件和融合十进制的中央处理器 - Google Patents
融合十进制的算术逻辑部件和融合十进制的中央处理器 Download PDFInfo
- Publication number
- CN116382620A CN116382620A CN202310313879.4A CN202310313879A CN116382620A CN 116382620 A CN116382620 A CN 116382620A CN 202310313879 A CN202310313879 A CN 202310313879A CN 116382620 A CN116382620 A CN 116382620A
- Authority
- CN
- China
- Prior art keywords
- bit
- binary
- decimal
- 5121bcd
- 121bcq
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 51
- 238000007781 pre-processing Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims description 24
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000004927 fusion Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 229910002056 binary alloy Inorganic materials 0.000 description 6
- 238000012805 post-processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4912—Adding; Subtracting
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请公开了一种融合十进制的算术逻辑部件和融合十进制的中央处理器。融合十进制的算术逻辑部件是在算术逻辑单元的基础上,融入了基于五进制的二进制编码十进制前处理电路,既能进行二进制加法算术运算,也能进行十进制加法算术运算;融合十进制的中央处理器包括了融合十进制的算术逻辑部件,使得中央处理器具有硬件支持的十进制加法运算指令。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种融合十进制的算术逻辑部件和融合十进制的中央处理器。
背景技术
中央处理器(Central Processing Unit,CPU)简化的结构框图如图1所示,CPU包括:ALU(Arithmetic and Logic Unit,算术逻辑单元)11、累加器12、寄存器13和内部数据总线14,其中ALU11具有两个输入端A和B、一个输出端S和一个算术/逻辑选择端A/L,算术/逻辑选择端A/L的信号由CPU对算术或逻辑运算指令译码产生,在算术/逻辑选择端A/L的信号控制下,ALU11既可以进行算术运算,也可以进行逻辑运算;大部分中央处理器中的算术逻辑单元能进行二进制加法算术运算,不能进行十进制加法算术运算,使得中央处理器不具有硬件支持的十进制加法运算指令。
发明内容
大部分中央处理器中的算术逻辑单元能进行二进制加法算术运算,不能进行十进制加法算术运算,使得中央处理器不具有硬件支持的十进制加法运算指令。为了解决上述技术问题,本申请提供了一种融合十进制的算术逻辑部件和融合十进制的中央处理器,为了实现上述目的,本申请实施例提供的技术方案如下:
本申请实施例提供了一种融合十进制的算术逻辑部件,融合十进制的算术逻辑部件具有第一输入端、第二输入端、一个输出端、一个算术/逻辑选择端和一个二进制/十进制选择端,融合十进制的算术逻辑部件由算术逻辑单元、两个数据选择器和基于五进制的二进制编码十进制前处理电路构成;第一输入端和第二输入端分别连接基于五进制的二进制编码十进制前处理电路的两个输入端,第一输入端和第二输入端分别连接两个数据选择器的"0"输入端,基于五进制的二进制编码十进制前处理电路的两个输出端分别连接两个数据选择器的"1"输入端,两个数据选择器的输出端分别连接算术逻辑单元的两个输入端,算术逻辑单元的输出端为融合十进制的算术逻辑部件的输出端,两个数据选择器的选择控制端连接在一起构成十进制/二进制选择端,算术逻辑单元的选择控制端为算术/逻辑选择端;
当十进制/二进制选择端的信号为低电平时,第一输入端和第二输入端的两个输入数通过两个数据选择器接入算术逻辑单元的两个输入端,算术逻辑单元用于进行算术逻辑运算,并在输出端输出算术逻辑运算结果;
当十进制/二进制选择端的信号为高电平且算术/逻辑选择端的信号为高电平时,基于五进制的二进制编码十进制前处理电路用于对两个输入数进行处理并输出两个运算数,两个运算数通过两个数据选择器接入算术逻辑单元的两个输入端,算术逻辑单元用于对两个运算数进行二进制加法运算,并在输出端输出十进制加法和数;
融合十进制的算术逻辑部件的第一输入端和第二输入端均为4N位二进制输入端,融合十进制的算术逻辑部件的输出端为4N位二进制输出端,N为大于0的整数;
当十进制/二进制选择端的信号为低电平,数据选择器输出"0"输入端的输入,当十进制/二进制选择端的信号为高电平,数据选择器输出"1"输入端的输入;当算术/逻辑选择端的信号为低电平,算术逻辑单元进行逻辑运算,当算术/逻辑选择端的信号为高电平,算术逻辑单元进行二进制加法运算。
在可能的实施例中,十进制/二进制选择端的信号为高电平且算术/逻辑选择端的信号为高电平;
第一输入端和第二输入端的两个输入数为两个N位5121BCD输入数,十进制加法和数为N位5121BCD加法和数,两个运算数为一个N位5121BCD_f运算数和一个N位5121BCD_l运算数;
基于五进制的二进制编码十进制前处理电路为对应N位5121BCD输入数的N个5121BCD前处理电路;
5121BCD前处理电路,用于将两个1位5121BCD输入数进行处理,产生一个1位5121BCD_f运算数和一个1位5121BCD_l运算数,N个5121BCD前处理电路,用于将两个N位5121BCD输入数进行处理,产生一个N位5121BCD_f运算数和一个N位5121BCD_l运算数;
算术逻辑单元,用于将N位5121BCD_f运算数和N位5121BCD_l运算数进行二进制相加运算,输出N位5121BCD加法和数;
5121BCD是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码的编码,二进制部分为左侧1位二进制数,其权值为5,五进制部分为右侧1位121BCQ五进制数,其权值为1,121BCQ是用左位二进制数、中位二进制数、右位二进制数表示1位五进制数码的编码,其中,左位二进制数和右位二进制数权值均为1,中位二进制数权值为2,当1位五进制数码为0、1、2、3、4时,121BCQ编码依次为000、001或100、010或101、011或110、111,当1位十进制数码为0、1、2、3、4、5、6、7、8、9时,5121BCD编码依次为0000、0001或0100、0010或0101、0011或0110、0111、1000、1001或1100、1010或1101、1011或1110、1111;
5121BCD_f是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码的编码,二进制部分为左侧1位二进制数,其权值为5,五进制部分为右侧1位121BCQ_f五进制数,其权值为1,121BCQ_f是用左位二进制数、中位二进制数、右位二进制数表示1位五进制数码的编码,其中,左位二进制数和右位二进制数权值均为1,中位二进制数权值为2,当1位五进制数码为0、1、2、3、4时,121BCQ_f编码依次为000、100、101、110、111,当1位十进制数码为0、1、2、3、4、5、6、7、8、9时,5121BCD_f编码依次为0000、0100、0101、0110、0111、1000、1100、1101、1110、1111;
5121BCD_l是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码的编码,二进制部分为左侧1位二进制数,其权值为5,五进制部分为右侧1位121BCQ_l五进制数,其权值为1,121BCQ_l是用左位二进制数、中位二进制数、右位二进制数表示1位五进制数码的编码,其中,左位二进制数和右位二进制数权值均为1,中位二进制数权值为2,当1位五进制数码为0、1、2、3、4时,121BCQ_l编码依次为000、001、010、011、111,当1位十进制数码为0、1、2、3、4、5、6、7、8、9时,5121BCD_l编码依次为0000、0001、0010、0011、0111、1000、1001、1010、1011、1111;
1位5121BCD输入数包括左侧1位二进制输入数和右侧1位121BCQ五进制输入数,1位5121BCD加法和数包括左侧1位二进制加法和数和右侧1位121BCQ五进制加法和数;
N位5121BCD输入数是由N个1位5121BCD输入数按位序排列构成,N位5121BCD加法和数是由N个1位5121BCD加法和数按位序排列构成;
1位5121BCD_f运算数包括左侧1位二进制运算数和右侧1位121BCQ_f五进制运算数,1位5121BCD_l运算数包括左侧1位二进制运算数和右侧1位121BCQ_l五进制运算数;
N位5121BCD_f运算数是由N个1位5121BCD_f运算数按位序排列构成,N位5121BCD_l运算数是由N个1位5121BCD_l运算数按位序排列构成。
在可能的实施例中,5121BCD前处理电路包括:处理两个1位5121BCD输入数中右侧1位121BCQ五进制输入数的五进制前处理电路,和对两个1位5121BCD输入数中左侧1位二进制输入数不作处理的连线。
在可能的实施例中,五进制前处理电路包括:五进制大小数产生电路,第一编码转换电路和第二编码转换电路;五进制大小数产生电路,用于将两个1位121BCQ输入数进行处理,产生第一中间数和第二中间数,第一中间数和第二中间数均为121BCQ编码的1位数;第一编码转换电路,用于将第一中间数转换为一个121BCQ_f运算数;第二编码转换电路,用于将第二中间数转换为一个121BCQ_l运算数。
在可能的实施例中,五进制大小数产生电路包括:三个或门和三个与门;三个或门,用于将两个1位121BCQ输入数按二进制位进行或运算,产生第一中间数;三个与门,用于将两个1位121BCQ输入数按二进制位进行与运算,产生第二中间数。
在可能的实施例中,第一编码转换电路的转换逻辑式为: 其中,C={c11,c2,c12}为第一中间数,c11、c2、c12依次为第一中间数的左位二进制数、中位二进制数、右位二进制数,X={x11,x2,x12}为121BCQ_f运算数,x11、x2、x12为121BCQ_f运算数的左位二进制数、中位二进制数、右位二进制数。
在可能的实施例中,第一编码转换电路包括:第一或门、第二或门、第三或门、第一与门、第二与门和第三与门,第一或门的两个输入端和第一与门的两个输入端都接入第一中间数的左位二进制数和右位二进制数,第二或门的一个输入端连接第一或门的输出端,第二或门的另一个输入端接入第一中间数的中位二进制数,第二或门的输出数为121BCQ_f运算数的左位二进制数,第二与门的一个输入端连接第一或门的输出端,第二与门的另一个输入端接入第一中间数的中位二进制数,第二与门的输出数为121BCQ_f运算数的中位二进制数,第三与门的负逻辑输入端连接第一或门的输出端,第三与门的正逻辑输入端接入第一中间数的中位二进制数,第三或门的两个输入端连接第一与门的输出端和第三与门的输出端,第三或门的输出数为121BCQ_f运算数的右位二进制数。
在可能的实施例中,第二编码转换电路的转换逻辑式为: 其中,D={d11,d2,d12}为第二中间数,d11、d2、d12依次为第二中间数的左位二进制数、中位二进制数、右位二进制数,Y={y11,y2,y12}为121BCQ_l运算数,y11、y2、y12依次为121BCQ_l运算数的左位二进制数、中位二进制数、右位二进制数。
在可能的实施例中,第二编码转换电路包括:第一与门、第二与门、第一或门、第二或门和异或门,第一与门的两个输入端和异或门的两个输入端都接入第二中间数的左位二进制数和右位二进制数,第二与门的一个输入端连接第一与门的输出端,第二与门的另一个输入端接入第二中间数的中位二进制数,第二与门的输出数为121BCQ_l运算数的左位二进制数,第一或门的一个输入端连接第一与门的输出端,第一或门的另一个输入端接入第二中间数的中位二进制数,第一或门的输出数为121BCQ_l运算数的中位二进制数,第二或门的两个输入端连接第二与门的输出端和异或门的输出端,第二或门的输出数为121BCQ_l运算数的右位二进制数。
本申请实施例还提供了一种融合十进制的中央处理器,包括:累加器、寄存器和内部数据总线,其特征在于,还包括以上的融合十进制的算术逻辑部件,融合十进制的算术逻辑部件的十进制/二进制选择端信号和算术/逻辑选择端信号由指令译码产生。
通过上述技术方案可知,本申请公开了一种融合十进制的算术逻辑部件和融合十进制的中央处理器,融合十进制的中央处理器包括了融合十进制的算术逻辑部件,融合十进制的算术逻辑部件是在算术逻辑单元的基础上,融入了基于五进制的二进制编码十进制前处理电路,既能进行二进制加法算术运算,也能进行十进制加法算术运算,使得中央处理器具有硬件支持的十进制加法运算指令。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种相关技术中CPU结构的示意图;
图2为本申请实施例提供的一种融合十进制的算术逻辑部件的示意图;
图3为本申请实施例提供的一种融合十进制的中央处理器的示意图;
图4为本申请实施例提供的一种基于五进制的二进制编码十进制组成结构的示意图;
图5为本申请实施例提供的一种N位5121BCD前处理电路的示意图;
图6为本申请实施例提供的一种1位5121BCD十进制加法器的示意图;
图7为本申请实施例提供的一种1位5121BCD前处理电路的示意图;
图8为本申请实施例提供的一种1位2421BCD十进制加法器的示意图;
图9为本申请实施例提供的一种1位2421BCD前处理电路的示意图;
图10为本申请实施例提供的一种五进制加法器的示意图;
图11为本申请实施例提供的一种五进制前处理电路的示意图;
图12为本申请实施例提供的一种五进制大小数产生电路的示意图;
图13为本申请实施例提供的一种第一编码转换电路的示意图;
图14为本申请实施例提供的一种第二编码转换电路的示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
本申请提出了一种融合十进制的算术逻辑运算部件和一种融合十进制的中央处理器。要实现上述发明的技术方案,十进制数的表示采用基于五进制的二进制编码十进制(Binary-Coded Decimal based on Quintary,简称Q-BCD)编码,在Q-BCD编码基础上,依据新的加法原理实现十进制加法运算,进而实现融合十进制的算术逻辑运算部件和融合十进制的中央处理器的技术方案。
以下结合附图详细说明发明内容。
由于10=2*5或5*2,十进制可由二进制与五进制组合而成,在以二进制为基础的计算机或数字处理***中,十进制编码与加法运算问题本质上是二进制编码五进制(Binary Coded Quinary,简称BCQ)编码与加法运算问题。
一、二进制编码五进制(BCQ)编码和加法运算(一)BCQ编码
1、121BCQ编码
以下为本申请提出的三种二进制编码五进制(BCQ)编码形式。
第一种编码形式是121BCQ,121BCQ是用左位二进制数q11、中位二进制数q2、右位二进制数q12表示1位五进制数码Q的编码,其中,左位二进制数q11和右位二进制数q12权值均为1,中位二进制数q2权值为2,当1位五进制数码Q为0、1、2、3、4时,121BCQ编码q11q2q12依次为000、001或100、010或101、011或110、111。
第二种编码形式是121BCQ_f,121BCQ_f是用左位二进制数q11、中位二进制数q2、右位二进制数q12表示1位五进制数码Q的编码,其中,左位二进制数q11和右位二进制数q12权值均为1,中位二进制数q2权值为2,当1位五进制数码Q为0、1、2、3、4时,121BCQ_f编码q11q2q12依次为000、100、101、110、111。
第三种编码形式是121BCQ_l,121BCQ_l是用左位二进制数q11、中位二进制数q2、右位二进制数q12表示1位五进制数码Q的编码,其中,左位二进制数q11和右位二进制数q12权值均为1,中位二进制数q2权值为2,当1位五进制数码Q为0、1、2、3、4时,121BCQ_l编码q11q2q12依次为000、001、010、011、111。
三种BCQ编码如表1所示。
表1第二列为121BCQ编码,一位121BCQ五进制数Q={q11,q2,q12}表示的值为左、中、右位3位二进制数q11、q2、q12的加权之和,即:Q={q11,q2,q12}=q11+2q2+q12。121BCQ为冗余编码,Q等于1、2、3的编码分别有两种形式的编码,不存在无效码,具有自补特性。例如,2的编码为101或者010。
表1二进制编码五进制(BCQ)
表1中第三列为121BCQ_f编码,取自121BCQ编码的一部分,属于121BCQ编码。该编码的特点一是左位二进制数q11优先编码(first coded),即当五进制数Q>0时,左位二进制数q11优先编码为1;特点二是非冗余编码,有三个无效码001、010、011。
表1中第四列为121BCQ_l编码,取自121BCQ编码的一部分,属于121BCQ编码。该编码的特点一是左位二进制数q11最后编码(last coded),即当五进制数Q=4时,左位二进制数q11才编码为1;特点二是非冗余编码,有三个无效码100、101、110。
2、121BCQ编码间转换逻辑与电路
以下为本申请提出的两种二进制编码五进制(BCQ)编码间转换逻辑与电路。
第一编码转换电路,用于将121BCQ第一中间数转换为一个121BCQ_f运算数。
第一编码转换电路的转换逻辑式为: 其中,C={c11,c2,c12}为第一中间数,c11、c2、c12依次为第一中间数的左位二进制数、中位二进制数、右位二进制数,X={x11,x2,x12}为121BCQ_f运算数,x11、x2、x12为121BCQ_f运算数的左位二进制数、中位二进制数、右位二进制数。
第一编码转换电路,如图13所示,包括:第一或门131、第二或门133、第三或门136、第一与门132、第二与门134和第三与门135;第一或门131的两个输入端和第一与门132的两个输入端都接入第一中间数C的左位二进制数c11和右位二进制数c12;第二或门133的一个输入端连接第一或门131的输出端,第二或门133的另一输入端接入第一中间数C的中位二进制数c2,第二或门133的输出数为121BCQ_f运算数X的左位二进制数x11;第二与门134的一个输入端连接第一或门131的输出端,第二与门134的另一个输入端接入第一中间数C的中位二进制数c2,第二与门134的输出数为121BCQ_f运算数X的中位二进制数x2;第三与门135的负逻辑输入端连接第一或门131的输出端,第三与门135的正逻辑输入端接入第一中间数C的中位二进制数c2;第三或门136的两个输入端连接第一与门132的输出端和第三与门135的输出端,第三或门136的输出数为121BCQ_f运算数X的右位二进制数x12。
第二编码转换电路,用于将121BCQ第二中间数转换为一个121BCQ_l运算数。
第二编码转换电路的转换逻辑式为: 其中,D={d11,d2,d12}为第二中间数,d11、d2、d12依次为第二中间数的左位二进制数、中位二进制数、右位二进制数,Y={y11,y2,y12}为121BCQ_l运算数,y11、y2、y12依次为121BCQ_l运算数的左位二进制数、中位二进制数、右位二进制数。
第二编码转换电路,如图14所示,包括:第一与门141、第二与门143、第一或门144、第二或门145和异或门142;第一与门141的两个输入端和异或门142的两个输入端都接入第二中间数D的左位二进制数d11和右位二进制数d12;第二与门143的一个输入端连接第一与门141的输出端,第二与门143的另一个输入端接入第二中间数D的中位二进制数d2,第二与门143的输出数为121BCQ_l运算数Y的左位二进制数y11;第一或门144的一个输入端连接第一与门141的输出端,第一或门144的另一个输入端接入第二中间数D的中位二进制数d2,第一或门144的输出数为121BCQ_l运算数Y的中位二进制数y2;第二或门145的两个输入端连接第二与门143的输出端和异或门142的输出端,第二或门145的输出数为121BCQ_l运算数Y的右位二进制数y12。
(二)121BCQ的加法运算
1、121BCQ的加法运算原理
定理1:一个121BCQ_f运算数X={x11,x2,x12}、一个121BCQ_l运算数Y={y11,y2,y12}和一个输入进位cin,若X的值大于或等于Y的值,则可按二进制加法运算规则实现X和Y以及cin的五进制加法运算,即,{cout,S}=X+Y+cin,其中S={s11,s2,s12}为121BCQ五进制加法和数,cout为五进制的输出进位。
定理1可利用表2来证明,表2列出了121BCQ_f运算数X和121BCQ_l运算数Y按定理1要求的所有有效的五进制取值组合及按二进制加法运算规则实现相加的结果,结果显示定理1正确。
例如,将121BCQ_f运算数A=110与121BCQ_l运算数B=011进行五进制加法运算。
由于A的值等于B的值,都为五进制数3;因此,可按二进制加法运算规则实现A和B的五进制加法运算,即,{cout,S}=X+Y=110+011=1001,则五进制输出进位cout为1,121BCQ加法和S为001,实现了五进制数3+3=11的五进制加法运算。
表2五进制加法表
定理2:两个121BCQ数A={a11,a2,a12}和B={b11,b2,b12},若A={a11,a2,a12}二进制位或B={b11,b2,b12}得到121BCQ数C={c11,c2,c12},A={a11,a2,a12}二进制位与B={b11,b2,b12}得到121BCQ数D={d11,d2,d12},则C的值大于等于D的值。
证明:C={c11,c2,c12}={a11∪b11,a2∪b2,a12∪b12},
D={d11,d2,d12}={a11∩b11,a2∩b2,a12∩b12};
由于c11≥d11,c2≥d2,c12≥d12,则C≥D。
根据定理1和定理2的结论,两个121BCQ输入数A={a11,a2,a12}和B={b11,b2,b12}可利用二进制加法运算实现五进制相加运算,得到一个121BCQ加法数S={s11,s2,s12},一个输出进位cout,步骤为:
(a)121BCQ输入数A二进制位或121BCQ输入数B,得到一个121BCQ中间数C=
{c11,c2,c12},121BCQ输入数A二进制位与121BCQ输入数B,得到一个121BCQ中间数D=
{d11,d2,d12},其中121BCQ中间数C={c11,c2,c12}的值大于或等于121BCQ中间数D=
{d11,d2,d12}的值;
(b)将121BCQ中间数C转换为121BCQ_f运算数X={x11,x2,x12},将121BCQ中间数D转换为121BCQ_l运算数Y={y11,y2,y12};
(c)将121BCQ_f运算数X和121BCQ_l运算数Y进行二进制相加运算,得到121BCQ加法和数S={s11,s2,s12}。
例如,将121BCQ运算数A=101与121BCQ运算数B=110进行五进制加法运算2+3。
步骤为:
(a)121BCQ输入数A二进制位或121BCQ输入数B,得到一个121BCQ中间数C=111,121BCQ输入数A二进制位与121BCQ输入数B,得到一个121BCQ中间数D=100,其中121BCQ中间数C五进制的值为4,121BCQ中间数D五进制的值为1,C的值大于D的值;
(b)将121BCQ中间数C=111转换为121BCQ_f运算数X=111,将121BCQ中间数D转换为121BCQ_l运算数Y=001;
(c)将121BCQ_f运算数X和121BCQ_l运算数Y进行二进制相加运算,得到121BCQ加法和数S=000,输出进位cout为1。
至此,实现了五进制数2+3=10的五进制加法运算。若将121BCQ运算数A=101与121BCQ运算数B=110直接进行二进制加法运算,则会得到2+3=13不正确的五进制加法运算结果。2、121BCQ五进制加法器
根据121BCQ五进制加法运算原理,以下为本申请提出的一种五进制(BCQ)加法器。
五进制加法器,如图10所示,五进制加法器用于将两个1位121BCQ输入数A={a11,a2,a12}和B={b11,b2,b12}以及一个输入进位cin进行五进制相加运算,输出一个121BCQ加法和数S={s11,s2,s12}、一个输出进位cout,五进制加法器包括:五进制前处理电路101和3位二进制加法器102;五进制前处理电路101将两个1位121BCQ输入数A和B进行处理,产生一个1位121BCQ_f运算数X={x11,x2,x12}和一个1位121BCQ_l运算数Y={y11,y2,y12};3位二进制加法器102将1位121BCQ_f运算数X和1位121BCQ_l运算数Y以及输入进位cin进行二进制相加运算,输出1位121BCQ加法和数S、一个输出进位cout。
121BCQ是用左位二进制数q11、中位二进制数q2、右位二进制数q12表示1位五进制数码Q的编码,其中,左位二进制数q11和右位二进制数q12权值均为1,中位二进制数q2权值为2,当1位五进制数码Q为0、1、2、3、4时,121BCQ编码q11q2q12依次为000、001或100、010或101、011或110、111;121BCQ_f是用左位二进制数q11、中位二进制数q2、右位二进制数q12表示1位五进制数码Q的编码,其中,左位二进制数q11和右位二进制数q12权值均为1,中位二进制数q2权值为2,当1位五进制数码Q为0、1、2、3、4时,121BCQ_f编码q11q2q12依次为000、100、101、110、111;121BCQ_l是用左位二进制数q11、中位二进制数q2、右位二进制数q12表示1位五进制数码Q的编码,其中,左位二进制数q11和右位二进制数q12权值均为1,中位二进制数q2权值为2,当1位五进制数码Q为0、1、2、3、4时,121BCQ_l编码q11q2q12依次为000、001、010、011、111。
五进制前处理电路101如图11所示,包括:五进制大小数产生电路111,第一编码转换电路112和第二编码转换电路113。
五进制大小数产生电路111,用于将两个1位121BCQ输入数A={a11,a2,a12}和B={b11,b2,b12}进行处理,产生第一中间数C={c11,c2,c12}和第二中间数D={d11,d2,d12},第一中间数C和第二中间数D均为121BCQ编码的1位数;第一编码转换电路112,用于将第一中间数C转换为一个121BCQ_f运算数X={x11,x2,x12};第二编码转换电路113,用于将第二中间数D转换为一个121BCQ_l运算数Y={y11,y2,y12}。
如图11所示,五进制前处理电路包括的五进制大小数产生电路111,如图12中五进制大小数产生电路所示,五进制大小数产生电路包括:三个或门121、122、123和三个与门124、125、126;三个或门121、122、123,用于将两个1位121BCQ输入数A={a11,a2,a12}和B={b11,b2,b12}按二进制位进行或运算,产生第一中间数C={c11,c2,c12};三个与门124、125、126,用于将两个1位121BCQ输入数A={a11,a2,a12}和B={b11,b2,b12}按二进制位进行与运算,产生第二中间数D={d11,d2,d12}。
如图11所示,五进制前处理电路包括第一编码转换电路112。第一编码转换电路112的具体结构参考图13。
如图11所示,五进制前处理电路包括第二编码转换电路113。第二编码转换电路113的具体结构参考图14。
由上可知,在本申请的五进制加法器中,五进制数的二进制编码采用了一种新的121BCQ编码,加法器运用新的121BCQ加法原理,使得其结构只需要五进制前处理电路和二进制加法器,不需要五进制后处理电路,二进制加法器输出的加法和数即为五进制加法和数,能方便地实现五进制与二进制加法运算的融合。
二、基于五进制的二进制编码十进制(Q-BCD)编码及加法运算(一)Q-BCD编码
1、Q-BCD编码类型
基于五进制的二进制编码十进制(Binary Coded Decimal Based on Quinary,简称Q-BCD)编码,是用1位二进制部分与1位121BCQ五进制部分左右组合排列表示1位十进制数码D0、1、2、3、4、5、6、7、8、9,Q-BCD编码组成结构如图4所示。按二进制部分和五进制部分左右组合排列不同,构成的六种Q-BCD编码如表3所示。
表3 Q-BCD编码类型
(1)Q-BCD编码
表3中第二列为Q-BCD编码,包括5121BCD编码和2421BCD编码。
5121BCD是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码D的编码D={d5,Q},二进制部分为左侧1位二进制数d5,其权值为5,五进制部分为右侧1位121BCQ五进制数Q={d11,d2,d12},其权值为1,如图4所示,则1位十进制数D的5121BCD编码表示为:D={d5,Q}={d5,d11,d2,d12}=5d5+Q;当1位五进制数码Q为0、1、2、3、4时,121BCQ编码d11d2d12依次为000、001或100、010或101、011或110、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,5121BCD编码d5d11d2d12依次为0000、0001或0100、0010或0101、0011或0110、0111、1000、1001或1100、1010或1101、1011或1110、1111。
2421BCD是由二进制部分列于右侧和五进制部分列于左侧表示1位十进制数码D的编码D={Q,d1},二进制部分为右侧1位二进制数d1,其权值为1,五进制部分为左侧1位121BCQ五进制数Q={d21,d4,d22},其权值为2,则1位十进制数D的2421BCD编码表示为:D={Q,d1}={d21,d4,d22,d1}=2Q+d1;当1位五进制数码Q为0、1、2、3、4时,121BCQ编码d21d4d22依次为000、001或100、010或101、011或110、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,2421BCD编码d21d4d22d1依次为0000、0001、0010或1000、0011或1001、0100或1010、0101或1011、0110或1100、0111或1101、1110、1111。
Q-BCD编码中的5121BCD和2421BCD均为冗余编码,两种编码对应的十进制数码D1、2、3、6、7、8和十进制数码D2、3、4、5、6、7的编码分别有两种形式的编码,不存在无效码,具有自补特性。
例如,7的5121BCD编码表示为:
(7)10={1,(2)5}=11012=5·1+2=7,或者,(7)10={1,(2)5}=10102=5·1+2=7。
再例如,7的2421BCD编码表示为:
(7)10={(3)5,1}=11012=3·2+1=7,或者,(7)10={(3)5,1}=01112=3·2+1=7。
(2)Q-BCD_f编码
表3中第三列为Q-BCD_f编码,Q-BCD_f编码属于Q-BCD编码,包括5121BCD_f编码和2421BCD_f编码。
5121BCD_f编码是5121BCD编码的一部分,属于5121BCD编码,二进制部分为左侧1位二进制数d5,其权值为5,五进制部分为右侧1位121BCQ_f五进制数Q={d11,d2,d12},其权值为1;当1位五进制数码Q为0、1、2、3、4时,121BCQ_f编码d11d2d12依次为000、100、101、110、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,5121BCD_f编码d5d11d2d12依次为0000、0100、0101、0110、0111、1000、1100、1101、1110、1111。有6个无效码0001、0010、0011、1001、1010、1011。
2421BCD_f编码是2421BCD编码的一部分,属于2421BCD编码,二进制部分为右侧1位二进制数d1,其权值为1,五进制部分为左侧1位121BCQ_f五进制数Q={d21,d4,d22},其权值为2;当1位五进制数码Q为0、1、2、3、4时,121BCQ_f编码d21d4d22依次为000、100、101、110、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,2421BCD_f编码d21d4d22d1依次为0000、0001、1000、1001、1010、1011、1100、1101、1110、1111。有6个无效码0010、0011、0100、0101、0110、0111。
例如,7的5121BCD_f编码表示为:
(7)10={1,(2)5}=11012=5·1+2=7。
再例如,7的2421BCD_f编码表示为:
(7)10={(3)5,1}=11012=3·2+1=7。
(3)Q-BCD_l编码
表8中第四列为Q-BCD_l编码,Q-BCD_l编码属于Q-BCD编码,包括5121BCD_l编码和2421BCD_l编码。
5121BCD_l编码是5121BCD编码的一部分,属于5121BCD编码,二进制部分为左侧1位二进制数d5,其权值为5,五进制部分为右侧1位121BCQ_l五进制数Q={d11,d2,d12},其权值为1;当1位五进制数码Q为0、1、2、3、4时,121BCQ_l编码d11d2d12依次为000、001、010、011、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,5121BCD_l编码d5d11d2d12依次为0000、0001、0010、0011、0111、1000、1001、1010、1011、1111。有6个无效码0100、0101、0110、1100、1101、1110。
2421BCD_l编码是2421BCD编码的一部分,属于2421BCD编码,二进制部分为右侧1位二进制数d1,其权值为1,五进制部分为左侧1位121BCQ_l五进制数Q={d21,d4,d22},其权值为2;当1位五进制数码Q为0、1、2、3、4时,121BCQ_l编码d21d4d22依次为000、001、010、011、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,2421BCD_l编码d21d4d22d1依次为0000、0001、0010、0011、0100、0101、0110、0111、1110、1111。有6个无效码1000、1001、1010、1011、1100、1101。
例如,7的5121BCD_l编码表示为:
(7)10={1,(2)5}=10102=5·1+2=7。
再例如,7的2421BCD_f编码表示为:
(7)10={(3)5,1}=01112=3·2+1=7。
(二)5121BCD/2421BCD加法运算
由于5121BCD/2421BCD是用1位二进制部分与1位121BCQ五进制部分左右组合排列构成,显然,由1位二进制加法器在左与1位121BCQ五进制加法器在右级联,并把1位二进制加法器与1位121BCQ五进制加法器中的3位二进制加法器合为一个4位二进制加法器,可构成1位5121BCD十进制加法器,则5121BCD前处理电路可由对二进制部分不作任何处理的连线与处理五进制部分的五进制前处理电路构成;由1位121BCQ五进制加法器在左与1位二进制加法器在右级联,并把1位121BCQ五进制加法器中的3位二进制加法器与1位二进制加法器合为一个4位二进制加法器,可构成1位2421BCD十进制加法器,则2421BCD前处理电路可由处理五进制部分的五进制前处理电路与对二进制部分不作任何处理的连线构成。
根据以上原理,本申请还提供了一种1位5121BCD十进制加法器和一种1位2421BCD十进制加法器,上述两种十进制加法器均属于基于五进制的二进制编码十进制加法器。
一种1位5121BCD十进制加法器,如图6所示,用于将两个1位5121BCD输入数A={a5,Q}={a5,a11,a2,a12}和B={b5,Q}={b5,b11,b2,b12}以及输入进位cin进行十进制相加运算,输出一个1位5121BCD加法和数S={s5,Q}={s5,s11,s2,s12}、一个输出进位cout,十进制加法器包括:5121BCD前处理电路61和4位二进制加法器62;5121BCD前处理电路61将两个1位5121BCD输入数A和B进行处理,产生一个1位5121BCD_f运算数X={x5,Q}={x5,x11,x2,x12}和一个1位5121BCD_l运算数Y={y5,Q}={y5,y11,y2,y12};4位二进制加法器62将一个1位5121BCD_f运算数X和一个1位5121BCD_l运算数Y以及输入进位cin进行二进制相加运算,输出一个1位5121BCD加法和数S、一个输出进位cout。
5121BCD前处理电路61,如图8所示,电路包括:处理两个1位5121BCD输入数A={a5,QA}={a5,a11,a2,a12}和B={b5,QB}={b5,b11,b2,b12}中右侧五进制部分QA和QB的五进制前处理电路81,和对两个1位5121BCD输入数A={a5,QA}={a5,a11,a2,a12}和B={b5,QB}={b5,b11,b2,b12}中左侧二进制部分a5和b5不作处理的连线82、83。
图8中的五进制前处理电路81的具体结构可以参考图11中的五进制前处理电路。
一种1位2421BCD十进制加法器,如图7所示,用于将两个1位2421BCD输入数A={Q,a1}={a21,a4,a22,a1}和B={Q,b1}={b21,b4,b22,b1}以及输入进位cin进行十进制相加运算,输出一个1位2421BCD加法和数S={Q,s1}={s21,s4,s22,s1}、一个输出进位cout,十进制加法器包括:2421BCD前处理电路71和4位二进制加法器72;2421BCD前处理电路71将两个1位2421BCD输入数A和B进行处理,产生一个1位2421BCD_f运算数X={Q,x1}={x21,x4,x22,x1}和一个1位2421BCD_l运算数Y={Q,y1}={y21,y4,y22,y1};4位二进制加法器72将一个1位2421BCD_f运算数X和一个1位2421BCD_l运算数Y以及输入进位cin进行二进制相加运算,输出一个1位2421BCD加法和数S、一个输出进位cout。
2421BCD前处理电路71,如图9所示,2421BCD前处理电路包括:处理两个1位2421BCD输入数A={QA,a1}={a21,a4,a22,a1}和B={QB,b5}={b21,b4,b22,b1}中左侧五进制部分QA和QB的五进制前处理电路91,和对两个1位2421BCD输入数A={QA,a1}={a21,a4,a22,a1}和B={QB,b5}={b21,b4,b22,b1}中右侧二进制部分a1和b1不作处理的连线92、93。
五进制前处理电路91的具体结构可以参考图11提供的五进制前处理电路。
由上可知,在1位5121BCD十进制加法器和1位2421BCD十进制加法器中,十进制数的二进制编码采用了一种新的编码,即基于五进制的二进制编码十进制(5121BCD/2421BCD)编码,加法器运用新的121BCQ加法原理,使得其结构只需要十进制前处理电路和二进制加法器,不需要十进制后处理电路,二进制加法器输出的加法和数即为十进制加法和数,有利于二进制加法运算和十进制加法运算的融合。
需要说明的是,由N个1位5121BCD十进制加法器级联,并把N个1位5121BCD十进制加法器中的4位二进制加法器合为一个4N位二进制加法器,可构成N位5121BCD十进制加法器,其中的前处理由N个对应每位5121BCD十进制数的1位5121BCD前处理电路构成;N位2421BCD十进制加法器构成同理。
三、融合十进制的算术逻辑部件和融合十进制的中央处理器
大部分中央处理器中的算术逻辑单元能进行二进制加法算术运算,不能进行十进制加法算术运算,使得中央处理器不具有硬件支持的十进制加法运算指令。为了解决上述技术问题,本申请提供了一种融合十进制的算术逻辑部件,为了实现上述目的,以下详细说明本申请实施例提供的技术方案。
本申请实施例提供了一种融合十进制的算术逻辑部件,如图2所示,融合十进制的算术逻辑部件具有第一输入端A、第二输入端B、一个输出端S、一个算术/逻辑选择端A/L和一个二进制/十进制选择端D/B,由算术逻辑单元(ALU)11、两个数据选择器(MUX)22和23和基于五进制的二进制编码十进制前处理电路21构成;第一输入端A和第二输入端B分别连接基于五进制的二进制编码十进制前处理电路21的两个输入端,第一输入端A和第二输入端B分别连接两个数据选择器22和23的"0"输入端,基于五进制的二进制编码十进制前处理电路21的两个输出端分别连接两个数据选择器22和23的"1"输入端,两个数据选择器22和23的输出端连接算术逻辑单元11的两个输入端,算术逻辑单元的输出端为融合十进制的算术逻辑部件的输出端S,两个数据选择器22和23的选择控制端s连接在一起构成十进制/二进制选择端D/B,算术逻辑单元11的选择控制端为算术/逻辑选择端A/L;
当十进制/二进制选择端D/B的信号为低电平时,第一输入端A和第二输入端B的两个输入数通过两个数据选择器22和23接入算术逻辑单元11的两个输入端,算术逻辑单元11用于进行算术逻辑运算,并在输出端S输出算术逻辑运算结果;当十进制/二进制选择端D/B的信号为高电平且算术/逻辑选择端A/L的信号为高电平时,基于五进制的二进制编码十进制前处理电路21用于对两个输入数进行处理并输出两个运算数,两个运算数通过两个数据选择器22和23接入算术逻辑单元11的两个输入端,算术逻辑单元11用于对两个运算数进行二进制加法运算,并在输出端S输出十进制加法和数;
融合十进制的算术逻辑部件的第一输入端A和第二输入端B均为4N位二进制输入端,融合十进制的算术逻辑部件的输出端为4N位二进制输出端,N为大于0的整数;
当十进制/二进制选择端D/B的信号为低电平,数据选择器22和23输出"0"输入端的输入,当十进制/二进制选择端D/B的信号为高电平,数据选择器22和23输出"1"输入端的输入;当算术/逻辑选择端A/L的信号为低电平,算术逻辑单元11进行逻辑运算,当算术/逻辑选择端A/L的信号为高电平,算术逻辑单元11进行二进制加法运算。
在一些可能的实施例中,十进制/二进制选择端D/B的信号为高电平且算术/逻辑选择端A/L的信号为高电平;第一输入端和第二输入端的两个输入数A和B为两个N位5121BCD输入数A={AN-1,…,Ai+1,Ai,Ai-1,…,A0}和B={BN-1,…,Bi+1,Bi,Bi-1,…,B0},十进制加法和数为N位5121BCD加法和数S={SN-1,…,Si+1,Si,Si-1,…,S0};两个运算数为一个N位5121BCD_f运算数X={XN-1,…,Xi+1,Xi,Xi-1,…,X0}和一个N位5121BCD_l运算数Y={YN -1,…,Yi+1,Yi,Yi-1,…,Y0};
如图5所示,基于五进制的二进制编码十进制前处理电路21为对应N位5121BCD输入数的N个5121BCD前处理电路51。
5121BCD前处理电路51,用于将两个1位5121BCD输入数Ai和Bi进行处理,产生一个1位5121BCD_f运算数Xi和一个1位5121BCD_l运算数Yi,N个5121BCD前处理电路51,用于将两个N位5121BCD输入数A和B进行处理,产生一个N位5121BCD_f运算数X和一个N位5121BCD_l运算数Y;
算术逻辑单元11,用于将N位5121BCD_f运算数X和N位5121BCD_l运算数Y进行二进制相加运算,输出N位5121BCD加法和数S;
5121BCD是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码D的编码D={d5,Q},二进制部分为左侧1位二进制数d5,其权值为5,五进制部分为右侧1位121BCQ五进制数Q={d11,d2,d12},其权值为1;121BCQ是用左位二进制数d11、中位二进制数d2、右位二进制数d12表示1位五进制数码Q的编码,其中,左位二进制数d11和右位二进制数d12权值均为1,中位二进制数权值d2为2;当1位五进制数码Q为0、1、2、3、4时,121BCQ编码d11d2d12依次为000、001或100、010或101、011或110、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,5121BCD编码d5d11d2d12依次为0000、0001或0100、0010或0101、0011或0110、0111、1000、1001或1100、1010或1101、1011或1110、1111;
5121BCD_f是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码D的编码D={d5,Q},二进制部分为左侧1位二进制数d5,其权值为5,五进制部分为右侧1位121BCQ_f五进制数Q={d11,d2,d12},其权值为1;121BCQ_f是用左位二进制数d11、中位二进制数d2、右位二进制数d12表示1位五进制数码Q的编码,其中,左位二进制数d11和右位二进制数d12权值均为1,中位二进制数权值d2为2;当1位五进制数码Q为0、1、2、3、4时,121BCQ_f编码d11d2d12依次为000、100、101、110、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,5121BCD_f编码d5d11d2d12依次为0000、0100、0101、0110、0111、1000、1100、1101、1110、1111;
5121BCD_l是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码D的编码D={d5,Q},二进制部分为左侧1位二进制数d5,其权值为5,五进制部分为右侧1位121BCQ_l五进制数Q={d11,d2,d12},其权值为1;121BCQ_l是用左位二进制数d11、中位二进制数d2、右位二进制数d12表示1位五进制数码Q的编码,其中,左位二进制数d11和右位二进制数d12权值均为1,中位二进制数权值d2为2;当1位五进制数码Q为0、1、2、3、4时,121BCQ_l编码d11d2d12依次为000、001、010、011、111,当1位十进制数码D为0、1、2、3、4、5、6、7、8、9时,5121BCD_l编码d5d11d2d12依次为0000、0001、0010、0011、0111、1000、1001、1010、1011、1111;
N位5121BCD输入数A={AN-1,…,Ai+1,Ai,Ai-1,…,A0}和B={BN-1,…,Bi+1,Bi,Bi -1,…,B0}是由N个1位5121BCD输入数Ai、Bi按位序排列构成,N位5121BCD加法和数S={SN -1,…,Si+1,Si,Si-1,…,S0}是由N个1位5121BCD加法和数Si按位序排列构成;
1位5121BCD_f运算数Xi包括左侧1位二进制运算数和右侧1位121BCQ_f五进制运算数/>1位5121BCD_l运算数Yi包括左侧1位二进制运算数/>和右侧1位121BCQ_l五进制运算数/>
N位5121BCD_f运算数X={XN-1,…,Xi+1,Xi,Xi-1,…,X0}是由N个1位5121BCD_f运算数Xi按位序排列构成,N位5121BCD_l运算数Y={YN-1,…,Yi+1,Yi,Yi-1,…,Y0}是由N个1位5121BCD_l运算数Yi按位序排列构成。
5121BCD前处理电路51结构如图8所示,电路包括:处理两个1位5121BCD输入数 和/>中右侧121BCQ五进制输入数/>和/>的五进制前处理电路81,和对两个1位5121BCD输入数/> 和/>中左侧1位二进制输入数/>和/>不作处理的连线82和83。
五进制前处理电路81的具体结构参见图11所示的五进制前处理电路。
同理,基于五进制的二进制编码十进制前处理电路21可由对应N位2421BCD输入数的N个如图9所示的2421BCD前处理电路构成,图9中包含的五进制前处理电路91的具体结构参见图11所示的五进制前处理电路。
中央处理器(central processing unit,简称CPU)为计算机***的运算和控制核心。CPU与运算功能相关的简化结构框图如图1中10所示,包括:算术逻辑单元(ALU)11、累加器12、寄存器13和内部数据总线14。CPU通过执行程序实现硬件算术逻辑单元支持的逻辑运算或二进制加法运算。
例如,CPU运行一段由4条指令组成的程序,其中,ADD A,B为二进制加法指令,ANDA,B为逻辑与运算指令。
;CPU通过取指令和执行指令运行程序,执行指令的过程如下:
MOV A,B475H;通过内部数据总线14把16位二进制操作数B475H送入累加器12。
MOV B,8670H;通过内部数据总线14把16位二进制操作数8670H送入寄存器13。
AND A,B;指令译码使A/L端为低电平,算术逻辑单元11进行逻辑与运算,
;B475H与8670H得到8470H,把结果8470H送回累加器12。
ADD A,B;指令译码使A/L端为高电平,算术逻辑单元11进行二进制加法运算,
;8470H加8670H得到0AE0H,把结果0AE0H送回累加器12。
本申请实施例还提供了一种融合十进制的中央处理器,如图3所示,融合十进制的中央处理器包括:累加器12、寄存器13和内部数据总线14,其特征在于,还包括融合十进制的算术逻辑部件31,融合十进制的算术逻辑部件31的十进制/二进制选择端信号D/B和算术/逻辑选择端A/L信号由指令译码产生。
例如,融合十进制的中央处理器运行一段由4条指令组成的程序,其中,DADD A,B为十进制加法指令。
;融合十进制的中央处理器通过取指令和执行指令运行程序,
;执行指令的过程如下:
MOV A,B475H;通过内部数据总线14把16位二进制操作数B475H送入累加器12。
MOV B,8670H;通过内部数据总线14把16位二进制操作数8670H送入寄存器13。
AND A,B;指令译码使A/L端为低电平、D/B端为低电平,算术逻辑单元11进行;
逻辑与运算,B475H与8670H得到8470H,把结果8470H送回累加器12。
DADD A,B;指令译码使A/L端为高电平、D/B端为高电平,算术逻辑部件130进;
行十进制加法运算,8470H加8670H得到07E0H,把结果07E0H送回;
累加器12,由于十进制数编码为5121BCD,实际执行的是十进制加;
法运算:5140+5340=0480。
通过上述技术方案可知,本申请公开了一种融合十进制的算术逻辑部件和融合十进制的中央处理器,融合十进制的中央处理器包括了融合十进制的算术逻辑部件,融合十进制的算术逻辑部件是在算术逻辑单元的基础上,融入了基于五进制的二进制编码十进制前处理电路,既能进行二进制加法算术运算,也能进行十进制加法算术运算,使得中央处理器具有硬件支持的十进制加法运算指令。
Claims (10)
1.一种融合十进制的算术逻辑部件,其特征在于,融合十进制的算术逻辑部件具有第一输入端、第二输入端、一个输出端、一个算术/逻辑选择端和一个二进制/十进制选择端,所述融合十进制的算术逻辑部件由算术逻辑单元、两个数据选择器和基于五进制的二进制编码十进制前处理电路构成;所述第一输入端和所述第二输入端分别连接所述基于五进制的二进制编码十进制前处理电路的两个输入端,所述第一输入端和所述第二输入端分别连接所述两个数据选择器的"0"输入端,所述基于五进制的二进制编码十进制前处理电路的两个输出端分别连接所述两个数据选择器的"1"输入端,所述两个数据选择器的输出端分别连接所述算术逻辑单元的两个输入端,所述算术逻辑单元的输出端为所述融合十进制的算术逻辑部件的输出端,所述两个数据选择器的选择控制端连接在一起构成所述十进制/二进制选择端,所述算术逻辑单元的选择控制端为所述算术/逻辑选择端;
当所述十进制/二进制选择端的信号为低电平时,所述第一输入端和第二输入端的两个输入数通过所述两个数据选择器接入所述算术逻辑单元的两个输入端,所述算术逻辑单元用于进行算术逻辑运算,并在所述输出端输出算术逻辑运算结果;
当所述十进制/二进制选择端的信号为高电平且所述算术/逻辑选择端的信号为高电平时,所述基于五进制的二进制编码十进制前处理电路用于对所述两个输入数进行处理并输出两个运算数,所述两个运算数通过所述两个数据选择器接入所述算术逻辑单元的两个输入端,所述算术逻辑单元用于对所述两个运算数进行二进制加法运算,并在所述输出端输出十进制加法和数;
所述融合十进制的算术逻辑部件的第一输入端和第二输入端均为4N位二进制输入端,所述融合十进制的算术逻辑部件的输出端为4N位二进制输出端,N为大于0的整数;
当所述十进制/二进制选择端的信号为低电平,所述数据选择器输出"0"输入端的输入,当所述十进制/二进制选择端的信号为高电平,所述数据选择器输出"1"输入端的输入;当所述算术/逻辑选择端的信号为低电平,所述算术逻辑单元进行逻辑运算,当所述算术/逻辑选择端的信号为高电平,所述算术逻辑单元进行二进制加法运算。
2.根据权利要求1所述的融合十进制的算术逻辑部件,其特征在于,所述十进制/二进制选择端的信号为高电平且所述算术/逻辑选择端的信号为高电平;
所述第一输入端和第二输入端的两个输入数为两个N位5121BCD输入数,所述十进制加法和数为N位5121BCD加法和数,所述两个运算数为一个N位5121BCD_f运算数和一个N位5121BCD_l运算数;
所述基于五进制的二进制编码十进制前处理电路为对应所述N位5121BCD输入数的N个5121BCD前处理电路;
所述5121BCD前处理电路,用于将两个1位5121BCD输入数进行处理,产生一个1位5121BCD_f运算数和一个1位5121BCD_l运算数,所述N个5121BCD前处理电路,用于将所述两个N位5121BCD输入数进行处理,产生所述一个N位5121BCD_f运算数和一个N位5121BCD_l运算数;
所述算术逻辑单元,用于将所述N位5121BCD_f运算数和N位5121BCD_l运算数进行二进制相加运算,输出所述N位5121BCD加法和数;
所述5121BCD是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码的编码,所述二进制部分为左侧1位二进制数,其权值为5,所述五进制部分为右侧1位121BCQ五进制数,其权值为1,所述121BCQ是用左位二进制数、中位二进制数、右位二进制数表示1位五进制数码的编码,其中,左位二进制数和右位二进制数权值均为1,中位二进制数权值为2,当所述1位五进制数码为0、1、2、3、4时,121BCQ编码依次为000、001或100、010或101、011或110、111,当所述1位十进制数码为0、1、2、3、4、5、6、7、8、9时,5121BCD编码依次为0000、0001或0100、0010或0101、0011或0110、0111、1000、1001或1100、1010或1101、1011或1110、1111;
所述5121BCD_f是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码的编码,所述二进制部分为左侧1位二进制数,其权值为5,所述五进制部分为右侧1位121BCQ_f五进制数,其权值为1,所述121BCQ_f是用左位二进制数、中位二进制数、右位二进制数表示1位五进制数码的编码,其中,左位二进制数和右位二进制数权值均为1,中位二进制数权值为2,当所述1位五进制数码为0、1、2、3、4时,121BCQ_f编码依次为000、100、101、110、111,当所述1位十进制数码为0、1、2、3、4、5、6、7、8、9时,5121BCD_f编码依次为0000、0100、0101、0110、0111、1000、1100、1101、1110、1111;
所述5121BCD_l是由二进制部分列于左侧和五进制部分列于右侧表示1位十进制数码的编码,所述二进制部分为左侧1位二进制数,其权值为5,所述五进制部分为右侧1位121BCQ_l五进制数,其权值为1,所述121BCQ_l是用左位二进制数、中位二进制数、右位二进制数表示1位五进制数码的编码,其中,左位二进制数和右位二进制数权值均为1,中位二进制数权值为2,当所述1位五进制数码为0、1、2、3、4时,121BCQ_l编码依次为000、001、010、011、111,当所述1位十进制数码为0、1、2、3、4、5、6、7、8、9时,5121BCD_l编码依次为0000、0001、0010、0011、0111、1000、1001、1010、1011、1111;
所述1位5121BCD输入数包括左侧1位二进制输入数和右侧1位121BCQ五进制输入数,所述1位5121BCD加法和数包括左侧1位二进制加法和数和右侧1位121BCQ五进制加法和数;
所述N位5121BCD输入数是由N个所述1位5121BCD输入数按位序排列构成,所述N位5121BCD加法和数是由N个所述1位5121BCD加法和数按位序排列构成;
所述1位5121BCD_f运算数包括左侧1位二进制运算数和右侧1位121BCQ_f五进制运算数,所述1位5121BCD_l运算数包括左侧1位二进制运算数和右侧1位121BCQ_l五进制运算数;
所述N位5121BCD_f运算数是由N个所述1位5121BCD_f运算数按位序排列构成,所述N位5121BCD_l运算数是由N个所述1位5121BCD_l运算数按位序排列构成。
3.根据权利要求2所述的融合十进制的算术逻辑部件,其特征在于,所述5121BCD前处理电路包括:处理所述两个1位5121BCD输入数中右侧1位121BCQ五进制输入数的五进制前处理电路,和对所述两个1位5121BCD输入数中左侧1位二进制输入数不作处理的连线。
4.根据权利要求3所述的融合十进制的算术逻辑部件,其特征在于,所述五进制前处理电路包括:五进制大小数产生电路,第一编码转换电路和第二编码转换电路;
所述五进制大小数产生电路,用于将所述两个1位121BCQ输入数进行处理,产生第一中间数和第二中间数,所述第一中间数和所述第二中间数均为121BCQ编码的1位数;
所述第一编码转换电路,用于将所述第一中间数转换为一个所述121BCQ_f运算数;
所述第二编码转换电路,用于将所述第二中间数转换为一个所述121BCQ_l运算数。
5.根据权利要求4所述的融合十进制的算术逻辑部件,其特征在于,所述五进制大小数产生电路包括:三个或门和三个与门;
所述三个或门,用于将所述两个1位121BCQ输入数按二进制位进行或运算,产生所述第一中间数;
所述三个与门,用于将所述两个1位121BCQ输入数按二进制位进行与运算,产生所述第二中间数。
7.根据权利要求6所述的融合十进制的算术逻辑部件,其特征在于,所述第一编码转换电路包括:第一或门、第二或门、第三或门、第一与门、第二与门和第三与门,所述第一或门的两个输入端和所述第一与门的两个输入端都接入所述第一中间数的左位二进制数和右位二进制数,所述第二或门的一个输入端连接所述第一或门的输出端,所述第二或门的另一个输入端接入所述第一中间数的中位二进制数,所述第二或门的输出数为所述121BCQ_f运算数的左位二进制数,所述第二与门的一个输入端连接所述第一或门的输出端,所述第二与门的另一个输入端接入所述第一中间数的中位二进制数,所述第二与门的输出数为所述121BCQ_f运算数的中位二进制数,所述第三与门的负逻辑输入端连接所述第一或门的输出端,所述第三与门的正逻辑输入端接入所述第一中间数的中位二进制数,所述第三或门的两个输入端连接所述第一与门的输出端和所述第三与门的输出端,所述第三或门的输出数为所述121BCQ_f运算数的右位二进制数。
9.根据权利要求8所述的融合十进制的算术逻辑部件,其特征在于,所述第二编码转换电路包括:第一与门、第二与门、第一或门、第二或门和异或门,第一与门的两个输入端和异或门的两个输入端都接入所述第二中间数的左位二进制数和右位二进制数,第二与门的一个输入端连接第一与门的输出端,第二与门的另一个输入端接入所述第二中间数的中位二进制数,第二与门的输出数为所述121BCQ_l运算数的左位二进制数,第一或门的一个输入端连接第一与门的输出端,第一或门的另一个输入端接入所述第二中间数的中位二进制数,第一或门的输出数为所述121BCQ_l运算数的中位二进制数,第二或门的两个输入端连接第二与门的输出端和异或门的输出端,第二或门的输出数为所述121BCQ_l运算数的右位二进制数。
10.一种融合十进制的中央处理器,包括:累加器、寄存器和内部数据总线,其特征在于,还包括如权利要求1-9任一项所述的融合十进制的算术逻辑部件,所述融合十进制的算术逻辑部件的十进制/二进制选择端信号和算术/逻辑选择端信号由指令译码产生。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310313879.4A CN116382620A (zh) | 2023-03-27 | 2023-03-27 | 融合十进制的算术逻辑部件和融合十进制的中央处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310313879.4A CN116382620A (zh) | 2023-03-27 | 2023-03-27 | 融合十进制的算术逻辑部件和融合十进制的中央处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116382620A true CN116382620A (zh) | 2023-07-04 |
Family
ID=86962772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310313879.4A Pending CN116382620A (zh) | 2023-03-27 | 2023-03-27 | 融合十进制的算术逻辑部件和融合十进制的中央处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116382620A (zh) |
-
2023
- 2023-03-27 CN CN202310313879.4A patent/CN116382620A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gladshtein | Quantum-dot cellular automata serial decimal adder | |
Mohan et al. | RNS-to-Binary Converters for Two Four-Moduli Sets $\{2^{n}-1, 2^{n}, 2^{n}+ 1, 2^{{n}+ 1}-1\} $ and $\{2^{n}-1, 2^{n}, 2^{n}+ 1, 2^{{n}+ 1}+ 1\} $ | |
JP3588349B2 (ja) | 10進数を2進数にエンコード/デコードする方法 | |
CN105739945B (zh) | 一种基于改进部分积阵列的修正Booth编码乘法器 | |
CN109144473B (zh) | 一种基于冗余odds数的十进制3:2压缩器结构 | |
CN107423023B (zh) | 一种16×16-digit冗余十进制乘法器 | |
KR920003540B1 (ko) | 병렬형 가산회로 | |
CN116382620A (zh) | 融合十进制的算术逻辑部件和融合十进制的中央处理器 | |
JP2000004169A (ja) | Crc演算方法及びcrc演算回路 | |
CN112650469A (zh) | 用于二进制标志确定的电路和方法 | |
CN116933840A (zh) | 支持可变指数位宽的多精度Posit编解码运算装置及方法 | |
CN113268219B (zh) | 一种带二进制补码转换的加法器电路 | |
Armand et al. | Low power design of binary signed digit residue number system adder | |
JPH03228121A (ja) | プライオリティ・エンコーダ | |
Al-Khaleel et al. | Fast binary/decimal adder/subtractor with a novel correction-free BCD addition | |
US7739323B2 (en) | Systems, methods and computer program products for providing a combined moduli-9 and 3 residue generator | |
CN116501290A (zh) | 五进制乘法器 | |
CN112506472A (zh) | 一种基于冗余odds数的十进制4:2压缩器结构 | |
Ndjountche | Digital electronics 1: Combinational logic circuits | |
CN116382626A (zh) | 十进制乘法器 | |
JPS63159931A (ja) | 演算処理装置 | |
Townsend et al. | On-line Error Detection in a Carry-free Adder. | |
CN117075842B (zh) | 十进制加法器及十进制运算方法 | |
CN113778377B (zh) | 一种基于基8布斯折叠编码的平方器结构 | |
CN110597485B (zh) | 模块化多位加法器及计算*** |
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 |