二进制并联加法器和乘法器的制作方法

文档序号:21407078发布日期:2020-07-07 14:41阅读:852来源:国知局
二进制并联加法器和乘法器的制作方法

本申请案涉及一种存储器装置,且确切地说,涉及一种存储器装置中的算术电路。



背景技术:

高数据可靠性、高速存储器存取、低功率和减小的芯片大小是半导体存储器所需的特征。在一些应用中,存储器装置可包含电路,所述电路配置成使用在存储器处从外部主机接收到或从存储器提供到外部主机的数据、地址或其它信息来进行基本算术运算。然而,算术电路可消耗存储器装置的芯片上的额外空间,且算术电路的运算与并不具有算术电路的装置相比可消耗额外功率。



技术实现要素:

本公开的一个方面提供一种设备,设备包括:算术逻辑单元(arithmeticlogicunit;alu),其包括加法器电路且配置成接收第一运算元和第二运算元,其中,在乘法运算期间,alu配置成基于第一运算元和第二运算元而确定部分乘积运算元且将部分乘积运算元提供到加法器电路,且加法器电路配置成提供具有等于第一运算元和第二运算元的乘积的值的输出,其中,在加法运算期间,alu配置成将第一运算元和第二运算元提供到加法器电路,且加法器电路配置成提供具有等于第一运算元和第二运算元的总和的值的输出。

本公开的另一方面提供一种存储器装置,存储器装置包括:多个堆叠存储器芯片,其各自具有相应存储器单元阵列;以及控制器,其配置成执行指令以进行与多个堆叠存储器芯片相关联的存储器存取运算,其中控制器包含算术逻辑单元(alu),其配置成基于第一所接收运算元和第二所接收运算元而进行算术功能,其中,alu配置成基于第一所接收运算元和第二所接收运算元而确定部分乘积运算元,其中,在乘法运算期间,alu配置成将部分乘积运算元提供到alu的加法器电路作为输入运算元,且在加法运算期间,alu配置成将第一所接收运算元和第二所接收运算元提供到加法器电路作为输入运算元,其中加法器电路配置成基于输入运算元而在输出端处提供总和。

本公开的另一方面提供一种方法,方法包括:在存储器的算术逻辑单元(alu)处接收第一运算元和第二运算元;基于第一运算元和第二运算元而确定部分乘积运算元;响应于乘法运算命令而将部分乘积运算元提供到alu的加法器电路,其中加法器电路的输出是第一运算元和第二运算元的乘积;以及响应于加法运算命令而将第一运算元和第二运算元提供到alu的加法器电路,其中加法器电路的输出是第一运算元和第二运算元的总和。

附图说明

图1是根据本公开的实施例的存储器的框图。

图2是根据本公开的实施例的alu的框图。

图3是根据本公开的实施例的alu的框图。

图4a是根据本公开的实施例的示范性alu的图式的框图。

图4b是根据本公开的实施例的描绘经由alu推导乘积的示范性表。

图4c包含根据本公开的实施例的实例半加法器和实例全加法器的逻辑图。

具体实施方式

下文阐述某些细节以提供对本公开的实施例的充分理解。然而,所属领域的技术人员将明白,可在没有这些特定细节的情况下实践本公开的实施例。此外,本文中描述的本公开的特定实施例借助于实例而提供,且不应用以将本公开的范围限制于这些特定实施例。在其它情况下,尚未详细地展示众所周知的电路、控制信号、时序协议和软件操作,以便避免不必要地混淆本公开。

图1说明根据本公开的实施例的存储器100。存储器100包含具有多个存储器单元的存储器阵列130。存储器单元可以是非易失性存储器单元,如nand闪存单元,或可通常是任何类型的存储器单元。在一些实施例中,存储器100可以是三维存储器装置,所述三维存储器装置包含具有多个堆叠存储器芯片的存储器阵列130。

命令信号、地址信号和写入数据信号可经由主机接口总线128提供到存储器100。类似地,读取数据信号可经由主机接口总线128从存储器100提供到主机。主机接口总线128可连接到输入/输出(input/output;i/o)控制单元120。i/o控制单元120可配置成在主机接口总线128与内部数据总线122、内部地址总线124和内部命令总线126之间路由信号。

存储器100进一步包含控制器110,所述控制器配置成直接地或经由内部命令总线126接收控制信号。控制器110可配置成控制存储器100的操作。控制器110可包含算术逻辑单元(alu)111、定序器112、随机存取存储器(random-accessmemory;ram)113、只读存储器(read-onlymemory;rom)114、中断器115和i/o逻辑116。rom114可配置成存储指令(例如,微码指令),所述指令配置成由控制器110执行以控制存储器100的操作。ram113可配置成存储从内部命令总线126接收到的易失性数据(例如,命令信号、地址信号、写入数据信号和/或读取数据信号),和/或编程在rom114处存储的指令的执行期间使用的变量。alu111可配置成对从内部命令总线126接收到的数据(例如,命令信号、地址信号、写入数据信号和/或读取数据信号)、在rom114处存储的数据、在ram113处存储的数据或其组合中的一或多个进行二进制算术和/或逻辑运算。举例来说,alu111可配置成对二进制数据进行二进制加法、二进制乘法、二进制除法、移位运算或其它逻辑运算。在一些实例中,alu111可包含算术逻辑电路,所述算术逻辑电路配置成对两个所接收运算元选择性地进行二进制加法运算作为与两个所接收运算元相关联的加法运算的部分,或对两个所接收运算元的部分乘积进行二进制加法运算作为与两个所接收运算元相关联的乘法运算的部分。在一些实例中,加法逻辑电路的输入可由多路复用器控制。具有配置成用于加法运算以及乘法运算的算术逻辑电路的alu111可消耗比包含独立加法逻辑电路和乘法逻辑电路的alu更少的空间和功率。

响应于接收到命令信号和控制信号,定序器112可配置成根据执行排程而控制从rom114接收到的指令的执行。在一些实例中,执行排程可基于限定时序关系、数据依赖关系、运算类型、存储器阵列130的目标行或其它考虑因素。在一些实例中,执行排程可包含依序运算、并行运算或其组合。定序器112可配置成使并联执行管线同步,在一些实例中,如设置和维持在并联管线上相对于另一执行管线的运算的开始时间。

中断器115可配置成管理中断信号,所述中断信号配置成中断rom114处存储的指令的执行。举例来说,中断信号可响应于进行较高优先级任务的命令而提供中断。i/o逻辑116可配置成控制i/o控制单元120、行解码器140、列解码器150和高速缓存寄存器170以进行用于存储器100的管理和存取操作。

地址总线124将块-行地址信号应用于行解码器140且将列地址信号应用于列解码器150。行解码器140和列解码器150可用于选择存储器阵列130的存储器或存储器单元的块以用于存储器操作,如读取、编程和擦除操作。列解码器150可使得将写入数据信号应用于存储器的对应于列地址信号的列,且允许耦合来自对应于列地址信号的列的读取数据信号。

响应于由控制器110解码的存储器命令,可读取、编程或擦除阵列130中的存储器单元。耦合到存储器阵列130的读取、编程和擦除电路168从控制器110接收控制信号。读取、编程和擦除电路168可包含用于产生用于读取、编程和擦除操作的各种泵升电压的电压产生器。

在行地址信号已应用于地址总线124后,i/o控制单元120可将写入数据信号路由到高速缓存寄存器170。写入数据信号可以连续集合形式存储于高速缓存寄存器170中,所述连续集合各自具有对应于主机接口总线128的宽度的大小。高速缓存寄存器170依序存储写入数据信号的集合以用于阵列130中的整个存储器单元行或页。所有所存储写入数据信号随后用于编程在存储器阵列130中的由通过地址总线124耦合的块-行地址选择的存储器单元行或页。以类似方式,在读取操作期间,来自由通过地址总线124耦合的块-行地址选择的存储器单元行或块的数据信号存储于数据寄存器180中。在大小上对应于主机接口总线128的宽度的数据信号集合随后通过i/o控制单元120从数据寄存器180依序传送到主机接口总线128。

图2是根据本公开的实施例的alu211的框图。alu211包含部分乘积电路220、多路复用器240、加法器电路250、其它alu功能230和多路复用器260。在一些实例中,图1的alu111可实施alu211。部分乘积电路220可配置成接收第一信号a和第二信号b以基于提供两个部分乘积运算元的a信号和b信号而进行部分乘积乘法和部分乘积加法。部分乘积乘法和部分乘积加法可与二进制算术运算有关。部分乘积电路220可包含配置成进行部分乘积乘法和部分乘积加法的逻辑电路和加法器电路。部分乘积电路220可将部分乘积运算元提供到多路复用器240。

多路复用器240可配置成与从部分乘积电路220接收到的部分乘积运算元并行地接收a信号运算元和b信号运算元。多路复用器240可配置成将a信号运算元和b信号运算元中的一个或由部分乘积电路220提供的部分乘积运算元提供到加法器电路250作为加法运算元。加法器电路250可配置成对从多路复用器240接收到的加法运算元进行二进制加法运算以将总和提供到多路复用器260。在一些实例中,alu211可包含其它alu功能230,所述其它alu功能配置成与部分乘积电路220、多路复用器240和加法器电路250并行地对a信号和b信号进行其它算术运算,如逻辑比较、移位等,且将结果提供到多路复用器260。基于由控制信号ctrl控制的目标运算,多路复用器260可配置成基于加法器电路250的输出或其它alu功能230中的一个的输出而提供输出信号。

在运算中,alu211可配置成接收a信号和b信号。a信号和b信号可各自包含共同地形成相应运算元的多个位。alu211可进一步接收用于控制对a信号运算元和b信号运算元进行的运算的ctrl信号和总和/乘积控制信号。响应于具有第一值的ctrl信号,多路复用器260可提供其它alu功能230中的一个的输出作为输出信号。响应于具有第二值的ctrl信号,多路复用器260可配置成提供加法器电路250的输出作为输出信号。

总和/乘积信号可控制加法器电路250的输出是a信号运算元和b信号运算元的乘积还是a信号运算元和b信号运算元的总和。响应于具有指示总和的第一值的总和/乘积信号,多路复用器240可将a信号运算元和b信号运算元直接提供到加法器电路250,且加法器电路250可对a信号运算元和b信号运算元进行二进制加法运算以将a信号运算元和b信号运算元的总和提供到多路复用器260。响应于具有指示乘积的第二值的总和/乘积信号,多路复用器240可将从部分乘积电路220接收到的部分乘积运算元提供到加法器电路250,且加法器电路250可对从部分乘积电路220接收到的部分乘积运算元进行二进制加法运算以将a信号运算元和b信号运算元的所得乘积提供到多路复用器260。部分乘积电路220可通过对a信号运算元和b信号运算元的部分进行二进制乘法和加法来确定部分乘积运算元。加法器电路250的大小或宽度可基于a信号运算元和/或b信号运算元中的位数。举例来说,如果a信号运算元和/或b信号运算元中的每一个具有四个位(例如,或n个位),那么部分乘积运算元可包含高达7个位(例如,或2n-1个位),其包含待相加的6个重叠位和待通过的最低有效位部分乘积,以提供具有高达8个位(例如,或2n个位)的乘积,其包含进位位作为最高有效位。逐位乘法运算可包含两个位之间的逐位and运算以提供部分乘积。部分乘积电路220可配置成对部分乘积的选择子集进行部分乘积加法运算以在输出端处提供两个部分乘积运算元。部分乘积乘法和部分乘积加法可与二进制运算有关。

基于由控制信号ctrl控制的目标运算,多路复用器260可配置成基于加法器电路250的输出或其它alu功能230中的一个的输出而提供输出信号。通过共享用于加法运算以及乘法运算的加法器电路250,alu211可比包含独立加法逻辑电路和乘法逻辑电路的alu消耗更少的空间和功率。

图3是根据本公开的实施例的alu311的框图。alu311包含部分乘积门322、部分乘积加法器323、多路复用器340和加法器电路350。在一些实例中,图1的alu111和/或图2的alu211可实施alu311。部分乘积电路220可配置成接收第一信号a运算元和第二信号b运算元且基于a信号运算元和b信号运算元而进行部分乘积乘法。部分乘积可提供到部分乘积加法器323。部分乘积加法器323可配置成使用由部分乘积门322提供的部分乘积中的一些来进行部分乘积加法运算以将两个部分乘积运算元提供到多路复用器340。部分乘积乘法和部分乘积加法可与二进制算术运算有关。部分乘积门322和部分乘积加法器323可包含配置成进行部分乘积乘法和部分乘积加法的逻辑电路和加法器电路。

多路复用器340可配置成与从部分乘积加法器323接收到的部分乘积运算元并行地接收a信号运算元和b信号运算元。多路复用器340可配置成基于总和/乘积控制信号而将a信号运算元和b信号运算元中的一个或由部分乘积加法器323提供的部分乘积运算元提供到加法器电路350作为加法运算元。总和/乘积控制信号可指示预期运算是基于a信号运算元和b信号运算元的加法运算(例如,总和)还是基于a信号运算元和b信号运算元的乘法运算(例如,乘积)。响应于具有指示总和的第一值的总和/乘积控制信号,多路复用器340可配置成将a信号运算元和b信号运算元提供到加法器电路350作为加法运算元。响应于具有指示乘积的第二值的总和/乘积控制信号,多路复用器340可配置成将从部分乘积加法器323接收到的部分乘积运算元提供到加法器电路350作为加法运算元。加法器电路350可配置成基于总和/乘积控制信号而对从多路复用器340接收到的加法运算元进行二进制加法运算以提供总和或乘积。

在运算中,alu311可配置成接收a信号和b信号。a信号和b信号可各自包含共同地形成相应运算元的多个位。总和/乘积信号可控制加法器电路350的输出是a信号运算元和b信号运算元的乘积还是a信号运算元和b信号运算元的总和。响应于具有指示总和的第一值的总和/乘积信号,多路复用器340可将a信号运算元和b信号运算元直接提供到加法器电路350,且加法器电路350可对a信号运算元和b信号运算元进行二进制加法运算以在输出端处提供a信号运算元和b信号运算元的总和。响应于具有指示乘积的第二值的总和/乘积信号,多路复用器340可将从部分乘积加法器323接收到的部分乘积运算元提供到加法器电路350,且加法器电路350可对从部分乘积加法器323接收到的部分乘积运算元进行二进制加法运算以在输出端处提供a信号运算元和b信号运算元的所得乘积。总之,部分乘积门322和部分乘积加法器323可通过对a信号运算元和b信号运算元的位进行二进制乘法和二进制加法来确定部分乘积运算元。加法器电路350的大小或宽度可基于a信号运算元和/或b信号运算元中的位数。举例来说,如果a信号运算元和/或b信号运算元中的每一个具有n个位(例如,其中n是大于1的整数值),那么部分乘积运算元可包含高达2n-1个位,其包含待一起相加的2n-2个重叠位和待通过的一个最低有效位部分乘积,以提供具有高达2n个位的乘积,其包含进位位作为最高有效位。逐位乘法运算可包含两个位之间的逐位and运算以提供部分乘积。部分乘积加法器323可配置成对部分乘积的选择子集进行部分乘积加法运算以在输出端处提供两个部分乘积运算元。部分乘积乘法和部分乘积加法可与二进制运算有关。

通过共享用于加法运算以及乘法运算的加法器电路350,alu311可比包含独立加法逻辑电路和乘法逻辑电路的alu消耗更少的空间和功率。

图4a到4c提供用于将两个部分乘积运算元提供到共享加法器电路的部分乘积和部分乘积加法运算的示范性逻辑图式和表。图4a是根据本公开的实施例的示范性alu411的图式的框图。alu411包含耦合到加法器电路450的部分乘积电路420,所述加法器电路提供第一输入信号a<3:0>和第二输入信号b<3:0>的乘积p<7:0>。虽然图4a中描绘进行乘法运算的逻辑电路,但应了解,alu411可包含在不脱离本公开的范围的情况下进行其它算术相关运算的电路。另外,为了清楚起见,alu411在图4a中展示为直接耦合到加法器电路450。然而,在不脱离本公开的范围的情况下,alu411可包含耦合于部分乘积电路420与加法器电路450之间的多路复用器,类似于图2的多路复用器240或图3的多路复用器340。在一些实例中,图1的alu111、图2的alu211和/或图3的alu311可实施alu411。

部分乘积电路420可包含共同地配置成将部分乘积运算元提供到加法器电路450的部分乘积门422(0)-(15)、半加法器423a(1)-(3)和全加法器423b(1)-(3)。部分乘积门422(0)-(15)中的每一个可包含逻辑门,所述逻辑门配置成在a<3:0>和b<3:0>信号的相应位之间进行逐位and逻辑以提供相应部分乘积。半加法器423a(1)-(3)中的每一个可配置成基于两个相应输入位而进行逐位加法运算以在输出端处提供总和位和进位位。图4c包含根据本公开的实施例的实例半加法器423a的逻辑图。在一些实例中,半加法器423a(1)-(3)中的每一个可实施图4c的半加法器423a。半加法器423a可包含互斥or(xor)门471和and门472。xor门471可配置成接收x位和y位且使用xor逻辑基于x位和y位来提供总和位s。and门472可配置成接收x位和y位且使用and逻辑基于x位和y位来提供进位输出位cout。

全加法器423b(1)-(3)中的每一个可配置成基于进位输入位和两个其它输入位而进行逐位加法运算以在输出端处提供总和位和相应进位输出位。图4c包含根据本公开的实施例的实例全加法器423b的逻辑图。在一些实例中,全加法器423b(1)-(3)中的每一个可实施图4c的全加法器423b。全加法器423b可包含xor门481、and门482、and门483、xor门484和or门485。xor门481可配置成接收x位和y位,且使用xor逻辑基于x位和y位来将第一输入位提供到and门483并将第一输入位提供到xor门484。and门482可配置成接收x位和y位,且使用and逻辑基于x位和y位来将第一输入位提供到or门485。and门483可配置成接收进位输入位cin和xor门481的输出,且使用and逻辑基于cin位和xor门481的输出来将第二输入位提供到or门485。xor门484可配置成接收cin位和xor门481的输出,且使用xor逻辑基于cin位和xor门481的输出来提供总和位s。or门485可配置成使用or逻辑基于and门482的输出和and门483的输出来提供进位输出位cout。

加法器电路450可包含加法器451。加法器451可包含配置成基于由部分乘积电路420提供的两个部分乘积运算元的总和而提供p<7:1>位的图4c的半加法器423a中的一或多个、图4c的全加法器423b中的一或多个或其任何组合。

在运算中,alu411的部分乘积电路420和加法器电路450可配置成提供a<3:0>和b<:0>信号的乘积p<7:0>。具体来说,部分乘积电路420可配置成基于a<3:0>和b<:0>信号而将两个部分乘积运算元提供到加法器电路450,且加法器电路450配置成将两个部分乘积运算元相加以提供乘积p<7:0>。图4b是根据本公开的实施例的描绘经由alu411推导a<3:0>和b<:0>信号的乘积p<7:0>的示范性表404。

第一部分乘积运算元包含部分乘积位a0b0(例如,经由部分乘积门422(0))、部分乘积位a1b0(例如,经由部分乘积门422(1))、总和位s2(例如,经由部分乘积门422(4)和(5)以及半加法器423a(1))、总和位ss3(例如,经由来自半加法器423a(1)的进位位c2、部分乘积门422(6)-(8)、全加法器423b(1)和半加法器423a(2))、进位位cc3(例如,经由来自半加法器423a(1)的进位位c2、部分乘积门422(6)-(8)、全加法器423b(1)和半加法器423a(2))、进位位cc4(例如,经由来自全加法器423b(1)的进位位c3、部分乘积门422(10)-(12)、全加法器423b(2)和半加法器423a(3))以及部分乘积a3b3(例如,经由部分乘积门422(15))。

第二部分乘积运算元包含空白位、部分乘积位a0b1(例如,经由部分乘积门422(2))、部分乘积位a0b2(例如,经由部分乘积门422(3))、部分乘积位a0b3(例如,经由部分乘积门422(9))、总和位ss4(例如,经由来自全加法器423b(1)的进位位c3、部分乘积门422(9)-(11)、全加法器423b(2)和半加法器423a(3))、总和位s5(例如,经由来自全加法器423b(2)的进位位c4、部分乘积门422(13)和(14)以及全加法器423b(3))以及进位位cc5(例如,经由来自全加法器423b(2)的进位位c4、部分乘积门422(13)和(14)以及全加法器423b(3))。

加法器电路450可进行逐位加法运算以将第一部分乘积运算元(例如,位0-a0b0、位1-a1b0、位2-s2、位3-ss3、位4-cc3、位5-cc4、位6-a3b3)与第二部分乘积运算元(例如,位0-空白位、位1-a0b1、位2-a0b2、位3-a0b3、位4-ss4、位5-s5、位6-cc5)相加。第一运算元位0(例如,a0b0)可传送通过加法器电路450作为乘积位p0。加法器451可配置成将第一运算元和第二运算元的剩余位相加以提供乘积位p<7:1>,其中乘积位p<7>是进位位。图4a到4c中描绘的alu411包含实例逻辑以进行具有高达4位运算元的乘法。应了解,在不脱离本公开的范围的情况下,可包含额外电路以扩展到具有多于4个位的乘法运算元。另外,图4a到4c中描绘的逻辑是示范性的。还应了解,在不脱离本公开的范围的情况下,可在alu411中实施不同逻辑电路以进行4位运算元乘法。

从前述内容应了解,尽管本文中已出于说明的目的描述了本公开的特定实施例,但可在不脱离本公开的精神和范围的情况下进行各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1