CN116136835B - 一种三进二出数值获取方法、装置及介质 - Google Patents
一种三进二出数值获取方法、装置及介质 Download PDFInfo
- Publication number
- CN116136835B CN116136835B CN202310417058.5A CN202310417058A CN116136835B CN 116136835 B CN116136835 B CN 116136835B CN 202310417058 A CN202310417058 A CN 202310417058A CN 116136835 B CN116136835 B CN 116136835B
- Authority
- CN
- China
- Prior art keywords
- unit
- dram
- dram unit
- max
- dcc
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/50—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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Optimization (AREA)
- Dram (AREA)
Abstract
本申请公开了一种三进二出数值获取方法、装置及介质,涉及微处理器设计技术领域。通过设置了多个DCC单元,创新性地采用Max(A,B,C)逻辑来实现基于DRAM的三进二出加法器,简化了其计算步骤,有效的降低了DRAM存内三进二出加法器实现的复杂度,大幅降低了其对应的硬件开销,时间开销和功耗,有效提高了DRAM存内计算的效率。提高了DRAM存内计算方案的经济价值和市场竞争力。
Description
技术领域
本申请涉及微处理器设计技术领域,特别是涉及一种三进二出数值获取方法、装置及介质。
背景技术
目前,基于动态随机存取内存(DRAM)的存内计算为存储和运算密集型的应用需求提供了潜在的解决方案。DRAM不仅具有存储特性,还可以通过电荷共享实现逻辑计算;即同一位线上几个单元开关打开,将根据电容中的存储的电荷拉高或降低位线的预充电压1/2VDD,通过灵敏放大器获得逻辑结果0或1,进而在位线输出并存储在这几个单元中。与其他存内计算方案相比,DRAM存内计算具有集成密度高,工艺成熟和价格低廉的优点。
然而,基于DRAM的逻辑运算相对简单,但是实现三进二出加法器(复杂运算器的基石)需要19个步骤,这不利于基于DRAM存算一体结构整体能效的提高,拉低了DRAM存算一体的商业价值。
鉴于上述问题,如何降低基于DRAM的三进二出加法器的运算复杂度,是该领域技术人员亟待解决的问题。
发明内容
本申请的目的是提供一种三进二出数值获取方法、装置及介质,以降低基于DRAM的三进二出加法器的运算复杂度。
为解决上述技术问题,本申请提供一种三进二出数值获取方法,应用于包含多个DCC单元的三进二出加法器;其中,各所述DCC单元的第一端和第二端分别通过第一字线和第二字线连接行地址解码器,各所述DCC单元分别通过第三端连接对应位线,各所述DCC单元分别通过第四端连接对应灵敏放大器的输出端;所述方法包括:
获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元;其中,A、B、Cin分别为三个数值;
依次复制所述A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元;其中,所述第一DRAM单元至所述第九DRAM单元所连接的位线相同;
分别通过所述第四DRAM单元、所述第五DRAM单元、所述第六DRAM单元中的值获取Cout的值;其中,所述Cout的值为Max(A,B,Cin);
复制Not(Cout)的值到对应的所述DCC单元和所述第五DRAM单元中;
通过所述第七DRAM单元、所述第八DRAM单元和所述DCC单元中的值获取Max(A,B,Not(Cout))的值;
通过所述第七DRAM单元、所述第五DRAM单元和所述第九DRAM单元中的值获取S的值;其中,所述S为Max(Max(A,B,Not(Cout)),Cin,Not(Cout))。
优选地,所述DCC单元包括第一MOS管、第二MOS管和电容;
所述第一MOS管的栅极作为所述DCC单元的第一端通过所述第一字线连接所述行地址解码器,所述第一MOS管的漏极作为所述DCC单元的第三端连接所述位线;所述第一MOS管的源极连接所述电容的第一端,所述电容的第二端接地;
所述第二MOS管的栅极作为所述DCC单元的第二端通过所述第二字线连接所述行地址解码器,所述第二MOS管的源极连接所述第一MOS管的源极,所述第二MOS管的漏极作为所述DCC单元的第四端连接所述灵敏放大器的输出端。
优选地,所述灵敏放大器包括第一反相器和第二反相器;
所述第一反相器的控制端连接所述第二反相器的控制端;所述第一反相器的输出端连接所述第二反相器的输入端;
所述第二反相器的输入端连接所述位线;所述第二反相器的输出端作为所述灵敏放大器的输出端。
优选地,所述第一MOS管和所述第二MOS管均为NMOS管。
为解决上述技术问题,本申请还提供一种三进二出数值获取装置,应用于包含多个DCC单元的三进二出加法器;其中,各所述DCC单元的第一端和第二端分别通过第一字线和第二字线连接行地址解码器,各所述DCC单元分别通过第三端连接对应位线,各所述DCC单元分别通过第四端连接对应灵敏放大器的输出端;所述装置包括:
第一获取模块,用于获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元;其中,A、B、Cin分别为三个数值;
第一复制模块,用于依次复制所述A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元;其中,所述第一DRAM单元至所述第九DRAM单元所连接的位线相同;
第二获取模块,用于分别通过所述第四DRAM单元、所述第五DRAM单元、所述第六DRAM单元中的值获取Cout的值;其中,所述Cout的值为Max(A,B,Cin);
第二复制模块,用于复制Not(Cout)的值到对应的所述DCC单元和所述第五DRAM单元中;
第三获取模块,用于通过所述第七DRAM单元、所述第八DRAM单元和所述DCC单元中的值获取Max(A,B,Not(Cout))的值;
第四获取模块,用于通过所述第七DRAM单元、所述第五DRAM单元和所述第九DRAM单元中的值获取S的值;其中,所述S为Max(Max(A,B,Not(Cout)),Cin,Not(Cout))。
为解决上述技术问题,本申请提供另一种三进二出数值获取装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的三进二出数值获取方法的步骤。
为解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的三进二出数值获取方法的步骤。
本申请所提供的三进二出数值获取方法,通过设置了多个DCC单元,创新性地采用Max(A,B,C)逻辑来实现基于DRAM的三进二出加法器,简化了其计算步骤,有效的降低了DRAM存内三进二出加法器实现的复杂度,大幅降低了其对应的硬件开销,时间开销和功耗,有效提高了DRAM存内计算的效率。提高了DRAM存内计算方案的经济价值和市场竞争力。
此外,本申请实施例还提供一种三进二出数值获取装置及介质,效果同上。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的DRAM单元的结构图;
图2为本申请实施例提供的一种包含DCC单元的三进二出加法器的结构图;
图3为本申请实施例提供的DCC单元的结构示意图;
图4为本申请实施例提供的三进二出数值获取方法的流程图;
图5为本申请实施例提供的三值输入逻辑Max(A,B,Cin)对应的电路示意图;
图6为本申请实施例提供的S的值获取过程的示意图;
图7为本申请实施例提供的一种三进二出数值获取装置的示意图;
图8为本申请实施例提供的另一种三进二出数值获取装置的示意图。
其中,10为DRAM单元,11为行地址解码器,12为灵敏放大器,13为DCC单元。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
本申请的核心是提供一种三进二出数值获取方法、装置及介质。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
基于DRAM的存内计算存储和运算密集型的应用需求提供了潜在的解决方案。传统的由DRAM组成的三进二出加法器,主要包括由多个DRAM单元构成的DRAM单元矩阵、行地址解码器(Row Decoder)以及多个灵敏放大器(Sense amplifer)。DRAM单元矩阵中各行DRAM单元分别通过对应的字线连接行地址解码器,DRAM单元矩阵中各列DRAM单元分别通过对应的位线连接对应的灵敏放大器。
图1为本申请实施例提供的DRAM单元的结构图。如图1所示,DRAM单元主要由一个晶体管(具体为NMOS管)和一个电容组成。电容用来存储电荷,晶体管被用作位线BLn和电容之间的开关。它被字线WL1上的电压控制。当字线WL1的电压升高,开关打开;当字线WL1的电压降低,开关关闭。
DRAM不仅具有存储特性,而且可以通过电荷共享实现逻辑计算。即同一位线上几个DRAM单元开关打开,将根据电容中的存储的电荷拉高或降低位线的预充电压1/2VDD,通过灵敏放大器获得逻辑结果0或1,进而在位线输出并存储在这几个单元中。与其他存内计算方案相比,DRAM存内计算具有集成密度高,工艺成熟和价格低廉的优点。
可以理解的是,三进二出加法器包括三个输入位A,B,Cin和两个输出位Cout,S。其中S=A⊕B⊕Cin,Cout=AB+BCin+ACin。即在传统的DRAM的逻辑运算中,是通过DRAM实现与门、或门和非门的组合运算来实现DRAM存算一体的三进二出加法器。其中,S=Not(A)Not(B)Cin+Not(Cin)Not(Cin)A+Not(Cin)Not(A)B+ABCin,Cout=AB+BCin+ACin,串行实现需要19个运算步骤,复杂度较高,且步骤中不包括每次进行逻辑操作时复制原数据和初始化控制逻辑的时间。三进二出加法器作为实现其他复杂运算的基础存算部件,其效率的提升可以极大提高DRAM的存算能效。
因此,本申请实施例提供了一种三进二出数值获取方法,应用于一种包含DCC单元的三进二出加法器,基于DRAM电荷共享的新型逻辑Max(A,B,C)大大降低了核心算子(三进二出加法器)的运算步骤。
图2为本申请实施例提供的一种包含DCC单元的三进二出加法器的结构图。如图2所示,三进二出数值获取方法应用于包含多个DCC单元的三进二出加法器。其中,DCC单元即DRAM Complementary Cell,具体指代具有取反功能的DRAM存储单元结构。DCC单元兼具取反功能;各DCC单元的第一端和第二端分别通过第一字线和第二字线连接行地址解码器,各DCC单元分别通过第三端连接对应位线,各DCC单元分别通过第四端连接对应灵敏放大器的输出端。可以理解的是,DCC单元的数量与位线数量对应。
可以理解的是,在图2中包含DCC单元13的三进二出加法器包含行地址解码器11,字线WL1-WLm,位线BL1-BLn,n-1行的DRAM单元10,一行兼具取反功能的DCC单元13以及灵敏放大器12。可以理解的是,上述第一字线即为图2中的WLm,第二字线即为图2中的n-WL。
图3为本申请实施例提供的DCC单元的结构示意图。作为一种优选的实施例,如图3所示,DCC单元包括第一MOS管Q1、第二MOS管Q2和电容C1;
第一MOS管Q1的栅极作为DCC单元的第一端通过第一字线连接行地址解码器,第一MOS管Q1的漏极作为DCC单元的第三端连接位线;第一MOS管Q1的源极连接电容C1的第一端,电容C1的第二端接地;
第二MOS管Q2的栅极作为DCC单元的第二端通过第二字线连接行地址解码器,第二MOS管Q2的源极连接第一MOS管Q1的源极,第二MOS管Q2的漏极作为DCC单元的第四端连接灵敏放大器的输出端。
而作为一种优选的实施例,第一MOS管和第二MOS管均为NMOS管。
此外,在具体实施中,灵敏放大器包括第一反相器U1和第二反相器U2;第一反相器U1的控制端连接第二反相器U2的控制端;第一反相器U1的输出端连接第二反相器U2的输入端;第二反相器U2的输入端连接位线;第二反相器U2的输出端作为灵敏放大器的输出端。
在具体实施中,行地址解码器能够配合字线、位线及DRAM单元的值完成DRAM单元的数值的读出、写入和复制。行地址解码器配合字线、位线、DCC单元和DRAM单元可以完成字线上的数值的取反存储操作。其实现过程如下:n-WL的电压升高,开关打开,对应的DRAM单元电容连接在位线通过反向放大器后,则该电容存储的值即为位线的相反值;若需要读取或复制该值,需将n-WL关闭,将WLm打开,即可将单元数值读出到字线上,进而复制存储到DRAM单元内。
基于上述包含多个DCC单元的三进二出加法器,本申请提出一种三进二出数值获取方法。图4为本申请实施例提供的三进二出数值获取方法的流程图。如图4所示,三进二出数值获取方法具体包括:
S10:获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元。
其中,A、B、Cin分别为三个数值。
S11:依次复制A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元。
其中,第一DRAM单元至第九DRAM单元所连接的位线相同。
S12:分别通过第四DRAM单元、第五DRAM单元、第六DRAM单元中的值获取Cout的值。
其中,Cout的值为Max(A,B,Cin)。
S13:复制Not(Cout)的值到对应的DCC单元和第五DRAM单元中。
S14:通过第七DRAM单元、第八DRAM单元和DCC单元中的值获取Max(A,B,Not(Cout))的值。
S15:通过第七DRAM单元、第五DRAM单元和第九DRAM单元中的值获取S的值。
其中,S为Max(Max(A,B,Not(Cout)),Cin,Not(Cout))。
可以理解的是,三进二出加法器的输入为A、B、Cin,输出为Cout和S。其中,根据加法器的运算规则可知Cout=AB+BCin+ACin=Max(A,B,Cin)。
进一步地,根据三进二出加法器的运算规则可知,S的逻辑可以表示为当Cout=1时,S=A&B&Cin;当Cout=0时,S=A|B|Cin;而与逻辑和或逻辑都可以用Max(X,Y,Z)来实现。其中X,Y代表逻辑输入,Z代表控制位。A&B= Max(A,B,0),A|B=Max(A,B,1)。
因此,当Cout=1时,S=A&B&Cin=Max(Max(A,B,0),Cin,0)=Max(Max(A,B,Not(Cout)),Cin,Not(Cout));当Cout=0时,S=A|B|C=Max(Max(A,B,1),Cin,1)=Max(Max(A,B,Not(Cout)),Cin,Not(Cout));因而,上述两种情况可以统一表达为Max(Max(A,B,Not(Cout)),Cin,Not(Cout))。使得三进二出加法器的逻辑操作复杂度大大降低。
在具体实施中,首先获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元;其中,A、B、Cin分别为三个数值。进一步依次复制A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元。其中,第一DRAM单元至第九DRAM单元所连接的位线相同;也就是说,第一DRAM单元至第九DRAM单元共使用了9条字线和1条位线。
进一步地,分别通过第四DRAM单元、第五DRAM单元、第六DRAM单元中的值获取Cout的值,即取Cout=Max(A,B,Cin)。图5为本申请实施例提供的三值输入逻辑Max(A,B,Cin)对应的电路示意图。如图5所示,在初始状态下,A,B,C三个值分别存储在同一位线的不同字线上,字线上的电压预充电,保持在1/2VDD,灵敏放大器(SA)和字线(WL1,WL2,WL3)禁用。在进行逻辑操作时,使能字线(WL1,WL2,WL3);此时,A,B,C中存储的电荷共享,拉低或升高位线(BL)上的电势。因此,电容电位为高(VDD)时,存储值为1;电容电位为0时,存储值为0。则当A,B,C中不超过一个值为1时,字线上的电势被拉低;当A,B,C中有超过一个值为1时,字线上的电势被抬高;电荷共享后,使能灵敏放大器(SA)。灵敏放大器通过内部两个反向器的自反馈,将得到并维持Max(A,B,C)。该操作的逻辑表达式具体为:Max(A,B,C)=A&B|B&C|A&C。表1为本申请实施例提供的Max(A,B,C)对应的真值表。如表1所示,当输入A,B,C中为1的个数大于1时,Max(A,B,C)的值为1;当输入A,B,C中为1的个数不大于1时,Max(A,B,C)的值为0。
表1
| A | B | C | Max(A,B,C) |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 0 |
图6为本申请实施例提供的S的值获取过程的示意图。如图6所示,先从灵敏放大器内部的反相器中得到Not(Max(A,B,C)),即Not(Cout)并复制备份至DCC单元和第五DRAM单元。
进一步通过第七DRAM单元、第八DRAM单元和DCC单元中的值获取Max(A,B,Not(Cout))的值,即将A,B与Not(Cout)的值作为输入,得到Max(A,B,Not(Cout))。
最后通过第七DRAM单元、第五DRAM单元和第九DRAM单元中的值获取S的值。其中第七DRAM单元、第五DRAM单元和第九DRAM单元中的值分别为Max(A,B,Not(Cout))、Not(Cout)和Cin。也就是将Max(A,B,Not(Cout))、Cin和Not(Cout)作为输入,得到S=Max(Max(A,B,Not(Cout)),Cin,Not(Cout))。
本实施例中,通过设置了多个DCC单元,创新性地采用Max(A,B,C)逻辑来实现基于DRAM的三进二出加法器,简化了其计算步骤,有效的降低了DRAM存内三进二出加法器实现的复杂度,大幅降低了其对应的硬件开销,时间开销和功耗,有效提高了DRAM存内计算的效率。提高了DRAM存内计算方案的经济价值和市场竞争力。
在上述实施例中,对于三进二出数值获取方法进行了详细描述,本申请还提供三进二出数值获取装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件结构的角度。
图7为本申请实施例提供的一种三进二出数值获取装置的示意图。装置应用于包含多个DCC单元的三进二出加法器;其中,各DCC单元的第一端和第二端分别通过第一字线和第二字线连接行地址解码器,各DCC单元分别通过第三端连接对应位线,各DCC单元分别通过第四端连接对应灵敏放大器的输出端。如图7所示,装置包括:
第一获取模块14,用于获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元;其中,A、B、Cin分别为三个数值;
第一复制模块15,用于依次复制A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元;其中,第一DRAM单元至第九DRAM单元所连接的位线相同;
第二获取模块16,用于分别通过第四DRAM单元、第五DRAM单元、第六DRAM单元中的值获取Cout的值;其中,Cout的值为Max(A,B,Cin);
第二复制模块17,用于复制Not(Cout)的值到对应的DCC单元和第五DRAM单元中;
第三获取模块18,用于通过第七DRAM单元、第八DRAM单元和DCC单元中的值获取Max(A,B,Not(Cout))的值;
第四获取模块19,用于通过第七DRAM单元、第五DRAM单元和第九DRAM单元中的值获取S的值;其中,S为Max(Max(A,B,Not(Cout)),Cin,Not(Cout))。
本实施例中,三进二出数值获取装置应用于通过设置了多个DCC单元,创新性地采用Max(A,B,C)逻辑实现的基于DRAM的三进二出加法器,简化了其计算步骤,有效的降低了DRAM存内三进二出加法器实现的复杂度,大幅降低了其对应的硬件开销,时间开销和功耗,有效提高了DRAM存内计算的效率。提高了DRAM存内计算方案的经济价值和市场竞争力。
图8为本申请实施例提供的另一种三进二出数值获取装置的示意图。如图8所示,三进二出数值获取装置包括:
存储器20,用于存储计算机程序。
处理器21,用于执行计算机程序时实现如上述实施例中所提到的三进二出数值获取的方法的步骤。
本实施例提供的三进二出数值获取装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图形处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的三进二出数值获取方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于三进二出数值获取方法涉及到的数据。
在一些实施例中,三进二出数值获取装置还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图8中示出的结构并不构成对三进二出数值获取装置的限定,可以包括比图示更多或更少的组件。
本实施例中,三进二出数值获取装置包括存储器和处理器。存储器用于存储计算机程序。处理器用于执行计算机程序时实现如上述实施例中所提到的三进二出数值获取的方法的步骤。通过设置了多个DCC单元,创新性地采用Max(A,B,C)逻辑实现的基于DRAM的三进二出加法器,简化了其计算步骤,有效的降低了DRAM存内三进二出加法器实现的复杂度,大幅降低了其对应的硬件开销,时间开销和功耗,有效提高了DRAM存内计算的效率。提高了DRAM存内计算方案的经济价值和市场竞争力。
最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。通过设置了多个DCC单元,创新性地采用Max(A,B,C)逻辑实现的基于DRAM的三进二出加法器,简化了其计算步骤,有效的降低了DRAM存内三进二出加法器实现的复杂度,大幅降低了其对应的硬件开销,时间开销和功耗,有效提高了DRAM存内计算的效率。提高了DRAM存内计算方案的经济价值和市场竞争力。
以上对本申请所提供的一种三进二出数值获取方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (7)
1.一种三进二出数值获取方法,其特征在于,应用于包含多个DCC单元的三进二出加法器;所述DCC单元即DRAM Complementary Cell,具体指代具有取反功能的DRAM存储单元结构;其中,各所述DCC单元的第一端和第二端分别通过第一字线和第二字线连接行地址解码器,各所述DCC单元分别通过第三端连接对应位线,各所述DCC单元分别通过第四端连接对应灵敏放大器的输出端;所述方法包括:
获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元;其中,A、B、Cin均为长度为1bit的二进制的输入操作数;
依次复制所述A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元;其中,所述第一DRAM单元至所述第九DRAM单元所连接的位线相同;
分别通过所述第四DRAM单元、所述第五DRAM单元、所述第六DRAM单元中的值获取Cout的值;其中,所述Cout的值为Max(A,B,Cin),Max(A,B,Cin)=A&B|B&Cin|A&Cin;
复制Not(Cout)的值到对应的所述DCC单元和所述第五DRAM单元中;其中,Not(Cout)的值为Cout的值取反;
通过所述第七DRAM单元、所述第八DRAM单元和所述DCC单元中的值获取Max(A,B,Not(Cout))的值;其中,Max(A,B,Not(Cout))=A&B|B&Not(Cout)|A&Not(Cout);
通过所述第七DRAM单元、所述第五DRAM单元和所述第九DRAM单元中的值获取S的值;其中,所述S为Max(Max(A,B,Not(Cout)),Cin,Not(Cout));Max(Max(A,B,Not(Cout)),Cin,Not(Cout))=Max(A,B,Not(Cout))&Cin|Cin&Not(Cout)|Max(A,B,Not(Cout))&Not(Cout)。
2.根据权利要求1所述的三进二出数值获取方法,其特征在于,所述DCC单元包括第一MOS管、第二MOS管和电容;
所述第一MOS管的栅极作为所述DCC单元的第一端通过所述第一字线连接所述行地址解码器,所述第一MOS管的漏极作为所述DCC单元的第三端连接所述位线;所述第一MOS管的源极连接所述电容的第一端,所述电容的第二端接地;
所述第二MOS管的栅极作为所述DCC单元的第二端通过所述第二字线连接所述行地址解码器,所述第二MOS管的源极连接所述第一MOS管的源极,所述第二MOS管的漏极作为所述DCC单元的第四端连接所述灵敏放大器的输出端。
3.根据权利要求1所述的三进二出数值获取方法,其特征在于,所述灵敏放大器包括第一反相器和第二反相器;
所述第一反相器的控制端连接所述第二反相器的控制端;所述第一反相器的输出端连接所述第二反相器的输入端;
所述第二反相器的输入端连接所述位线;所述第二反相器的输出端作为所述灵敏放大器的输出端。
4.根据权利要求2所述的三进二出数值获取方法,其特征在于,所述第一MOS管和所述第二MOS管均为NMOS管。
5.一种三进二出数值获取装置,其特征在于,应用于包含多个DCC单元的三进二出加法器;所述DCC单元即DRAM Complementary Cell,具体指代具有取反功能的DRAM存储单元结构;其中,各所述DCC单元的第一端和第二端分别通过第一字线和第二字线连接行地址解码器,各所述DCC单元分别通过第三端连接对应位线,各所述DCC单元分别通过第四端连接对应灵敏放大器的输出端;所述装置包括:
第一获取模块,用于获取A、B、Cin的值,并将A、B、Cin的值写入第一DRAM单元、第二DRAM单元和第三DRAM单元;其中,A、B、Cin均为长度为1bit的二进制的输入操作数;
第一复制模块,用于依次复制所述A,B、Cin的值至第四DRAM单元、第五DRAM单元、第六DRAM单元、第七DRAM单元、第八DRAM单元、第九DRAM单元;其中,所述第一DRAM单元至所述第九DRAM单元所连接的位线相同;
第二获取模块,用于分别通过所述第四DRAM单元、所述第五DRAM单元、所述第六DRAM单元中的值获取Cout的值;其中,所述Cout的值为Max(A,B,Cin),Max(A,B,Cin)=A&B|B&Cin|A&Cin;
第二复制模块,用于复制Not(Cout)的值到对应的所述DCC单元和所述第五DRAM单元中;其中,Not(Cout)的值为Cout的值取反;
第三获取模块,用于通过所述第七DRAM单元、所述第八DRAM单元和所述DCC单元中的值获取Max(A,B,Not(Cout))的值;其中,Max(A,B,Not(Cout))=A&B|B&Not(Cout)|A&Not(Cout);
第四获取模块,用于通过所述第七DRAM单元、所述第五DRAM单元和所述第九DRAM单元中的值获取S的值;其中,所述S为Max(Max(A,B,Not(Cout)),Cin,Not(Cout));Max(Max(A,B,Not(Cout)),Cin,Not(Cout))=Max(A,B,Not(Cout))&Cin|Cin&Not(Cout)|Max(A,B,Not(Cout))&Not(Cout)。
6.一种三进二出数值获取装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的三进二出数值获取方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的三进二出数值获取方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310417058.5A CN116136835B (zh) | 2023-04-19 | 2023-04-19 | 一种三进二出数值获取方法、装置及介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310417058.5A CN116136835B (zh) | 2023-04-19 | 2023-04-19 | 一种三进二出数值获取方法、装置及介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116136835A CN116136835A (zh) | 2023-05-19 |
| CN116136835B true CN116136835B (zh) | 2023-07-18 |
Family
ID=86333575
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310417058.5A Active CN116136835B (zh) | 2023-04-19 | 2023-04-19 | 一种三进二出数值获取方法、装置及介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116136835B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114077417A (zh) * | 2021-11-18 | 2022-02-22 | 海光信息技术股份有限公司 | 存储器内运算方法及装置、存储器及存储介质 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004139632A (ja) * | 2002-10-15 | 2004-05-13 | Toshiba Corp | 強誘電体メモリ |
| US10242728B2 (en) * | 2016-10-27 | 2019-03-26 | Samsung Electronics Co., Ltd. | DPU architecture |
| KR102749001B1 (ko) * | 2016-12-28 | 2025-01-02 | 삼성전자주식회사 | 오프셋 제거 기능을 갖는 감지 증폭기 |
| CN112216323B (zh) * | 2017-09-04 | 2024-06-14 | 华为技术有限公司 | 一种存储单元和静态随机存储器 |
| KR102703432B1 (ko) * | 2018-12-31 | 2024-09-06 | 삼성전자주식회사 | 메모리 장치를 이용한 계산 방법 및 이를 수행하는 메모리 장치 |
| CN110414677B (zh) * | 2019-07-11 | 2021-09-03 | 东南大学 | 一种适用于全连接二值化神经网络的存内计算电路 |
| US11669302B2 (en) * | 2019-10-16 | 2023-06-06 | Purdue Research Foundation | In-memory bit-serial addition system |
| US11403111B2 (en) * | 2020-07-17 | 2022-08-02 | Micron Technology, Inc. | Reconfigurable processing-in-memory logic using look-up tables |
| CN112132273B (zh) * | 2020-09-22 | 2022-11-29 | 中国科学院计算技术研究所 | 计算装置、处理器、电子设备和计算方法 |
| CN113590195B (zh) * | 2021-07-22 | 2023-11-07 | 中国人民解放军国防科技大学 | 支持浮点格式乘加的存算一体化dram计算部件 |
| CN114077418A (zh) * | 2021-11-18 | 2022-02-22 | 海光信息技术股份有限公司 | 存储器内运算方法及装置、存储器及存储介质 |
| CN114694727B (zh) * | 2022-02-25 | 2025-09-02 | 北京智芯微电子科技有限公司 | 非易失性存储单元数据读取方法及存内计算数据读取方法 |
| CN114816328B (zh) * | 2022-04-08 | 2025-09-30 | 中山大学 | 一种存算融合的乘法器及其控制方法 |
-
2023
- 2023-04-19 CN CN202310417058.5A patent/CN116136835B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114077417A (zh) * | 2021-11-18 | 2022-02-22 | 海光信息技术股份有限公司 | 存储器内运算方法及装置、存储器及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116136835A (zh) | 2023-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110364203B (zh) | 一种支撑存储内计算的存储系统及计算方法 | |
| US11335387B2 (en) | In-memory computing circuit for fully connected binary neural network | |
| JP7635909B2 (ja) | エネルギー効率の良いコンピュートニアメモリバイナリニューラルネットワーク回路 | |
| Chen et al. | Analysis and optimization strategies toward reliable and high-speed 6T compute SRAM | |
| US10055196B2 (en) | Division operations for memory | |
| CN111880763B (zh) | 一种在内存中实现带有正负数乘加的sram电路 | |
| US20190043560A1 (en) | In-memory multiply and accumulate with global charge-sharing | |
| KR101564340B1 (ko) | 개선된 안정성 및 감소된 비트셀 사이즈를 갖는 저전력 5t sram | |
| Simon et al. | A fast, reliable and wide-voltage-range in-memory computing architecture | |
| US20040236920A1 (en) | Methods and apparatus for gathering and scattering data associated with a single-instruction-multiple-data (SIMD) operation | |
| US11456030B2 (en) | Static random access memory SRAM unit and related apparatus | |
| US11094355B1 (en) | Memory chip or memory array for wide-voltage range in-memory computing using bitline technology | |
| CN110674462B (zh) | 一种矩阵运算装置、方法、处理器和计算机可读存储介质 | |
| CN115810374A (zh) | 存储电路、具有bcam寻址和逻辑运算功能的存内计算电路 | |
| CN110196709A (zh) | 一种基于RRAM的非易失性8位Booth乘法器 | |
| Rajput et al. | An energy-efficient 10T SRAM in-memory computing macro for artificial intelligence edge processor | |
| Rajput et al. | Energy efficient 9T SRAM with R/W margin enhanced for beyond Von-Neumann computation | |
| Hsiao et al. | Design of low-leakage multi-port SRAM for register file in graphics processing unit | |
| CN111158635A (zh) | 一种基于FeFET的非易失性低功耗乘法器及其运行方法 | |
| CN116136835B (zh) | 一种三进二出数值获取方法、装置及介质 | |
| Li et al. | A 9T-SRAM based computing-in-memory with redundant unit and digital operation for boolean logic and MAC | |
| CN113889158B (zh) | 一种基于sram的存内计算电路、装置及电子设备 | |
| CN109521995B (zh) | 一种内嵌于忆阻器阵列的逻辑运算装置的计算方法 | |
| CN118939103A (zh) | 实现模拟存算一体sram低功耗工作的电路 | |
| CN115482847A (zh) | 一种可执行原位存储逻辑运算的10t1c sram单元结构 |
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 |