CN117289896B - 一种存算一体基本运算装置 - Google Patents
一种存算一体基本运算装置 Download PDFInfo
- Publication number
- CN117289896B CN117289896B CN202311547164.1A CN202311547164A CN117289896B CN 117289896 B CN117289896 B CN 117289896B CN 202311547164 A CN202311547164 A CN 202311547164A CN 117289896 B CN117289896 B CN 117289896B
- Authority
- CN
- China
- Prior art keywords
- calculation
- memory
- write
- read
- module
- 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
- 238000004364 calculation method Methods 0.000 claims abstract description 174
- 238000012795 verification Methods 0.000 claims abstract description 85
- 230000009191 jumping Effects 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 4
- 238000009825 accumulation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存算一体基本运算装置,其中:存算一体单元包括至少一个存算一体阵列,每个存算一体阵列包括阵列式排布的若干存算器件,存算器件用于进行权重值存储以及矩阵计算;控制单元用于对存算一体阵列进行控制并结合外部控制信号对写验证模块、读/计算模块进行相应控制;写验证模块用于结合外部输入数据对选通的存算器件进行直接写操作或者写验证操作,进行脉冲宽度及脉冲个数的计算;读/计算模块用于对选通的存算器件或者写验证模块进行读操作,结合外部输入数据进行计算操作并将结果输出至移位器中,并在运算完成后通过控制加/减法器控制运算结果的输出;移位器和加/减法器相连,用于对读/计算模块的计算结果进行乘累加运算操作。
Description
技术领域
本发明属于新型智能计算技术领域,尤其涉及一种存算一体基本运算装置,用于通用场景下的存算一体运算。
背景技术
在当前摩尔定律的难以维持的情况下,存算分离式的冯诺依曼架构的“内存墙”问题日益凸显,处理器与存储器间性能的差异越来越大。但是在当前人工智能、大数据时代下,数据的处理量以及AI模型的参数量正在不断增长,导致算力的供应与算力的需求的间隔也在不断扩大,研发新型架构变得至关重要。存储与计算融合作为一种新型的技术,成为了未来的趋势,其存算一体化的特点可以很好的解决冯诺依曼架构带来的一系列问题,同时还可以提供更高的计算效率,减少计算的能耗。
发明内容
本发明的目的在于针对现有的存算一体装置在完整性和通用性上的不足,提出一种存算一体基本运算装置,该存算一体基本运算装置集成了所有必要的电路、模块和单元,除支持基础的器件读写操作以外,可以进行写验证操作以及可配置的基本计算。本发明通用性强,基于存算一体技术所需的基本功能通过不同模块进行任务上的划分和优化,增加了实用性,可以灵活用于不同应用场景。本发明采用的技术方案如下:
一种存算一体基本运算装置,包括控制单元、写验证模块、读/计算模块、存算一体单元、移位器、加/减法器;
所述存算一体单元包括至少一个存算一体阵列,每个存算一体阵列包括阵列式排布的若干存算器件,所述存算器件用于进行权重值的存储以及矩阵计算;
所述控制单元,用于对所述存算一体阵列进行控制并结合外部控制信号对写验证模块、读/计算模块进行相应控制;
所述写验证模块,用于结合外部输入数据对所述存算一体阵列中选通的存算器件进行直接写操作或者写验证操作,进行脉冲宽度及脉冲个数的计算;
所述读/计算模块,用于对所述存算一体阵列中选通的存算器件或者所述写验证模块进行读操作,结合外部输入数据进行计算操作并将结果输出至所述移位器中,并在运算完成后通过控制加/减法器控制运算结果的输出;
所述移位器和加/减法器相连,用于对读/计算模块的计算结果进行乘累加运算操作。
进一步地,存算一体单元包含电源电路、行/列开关、读出电路及至少一个存算一体阵列;
所述电源电路用于提供存算一体阵列分别在读、写、计算时的所需电压以及基准电压、偏置电压;
每个存算一体阵列中包含若干阵列式排布的存算器件,用于权重的存储与存算一体计算;
所述行/列开关用于控制所述存算一体阵列中行、列的选通;
所述读出电路用于所述存算一体阵列上的权重值的读出和计算结果值的输出,以及在所述写验证模块进行写验证操作时用于提供与外部输入数据中的目标值对比的实际读出值。
进一步地,所述控制单元包含第一控制电路、第一配置寄存器,其中所述第一控制电路获取外部输入控制信号,根据所述外部输入控制信号对应将信号传递写验证模块或读/计算模块,并对所述存算一体单元内电源电路进行控制;所述配置寄存器内的参数可用于对存算一体单元内的电源电路进行配置,包括调整基准电压、偏置电压、读输入电压、写输入电压、计算输入电压。
进一步地,当从外部对存算一体阵列上的存算器件进行读时,外部输入读控制信号至控制单元处,同时管理电源电路中的读电压,并将信号传递到读/计算模块中,由读/计算模块负责完成读操作;当从外部在存算一体阵列上进行计算时,外部输入计算控制信号至控制单元处,并结合外部输入数据和读/计算模块的配置进行电源电路中计算电压的设置,并将信号传递到读/计算模块中,由读/计算模块负责完成计算操作;当从外部对存算一体阵列上的存算器件进行写时,外部输入写控制信号至控制单元处,并结合外部输入数据进行写电压的设置,并将信号传递到写验证模块中,由写验证模块负责完成写操作。
进一步地,所述写验证模块包括第二配置寄存器、时钟计数器、脉冲计数器、第二控制电路,所述第二配置寄存器用于配置当前写验证模块的操作模式、单次写脉冲计数值、单次写脉冲的时钟计数值及目标写验证次数;所述时钟计数器用于统计写脉冲经历的时钟个数;所述脉冲计数器用于统计写脉冲个数;所述次数计数器用于统计写验证尝试次数;所述第二控制电路用于通过状态机进行不同操作模式下的控制。
进一步地,所述写验证模块的操作模式分为直接写模式和写验证模式,外部输入数据作为写入的目标值、外部输入地址作为当前写的存算器件地址,通过将所述存算器件地址进行译码,选通对应的行/列开关,并通过控制单元传递的写控制信号进行始能触发;
在直接写模式下,通过第二控制电路对选通的存算器件施加写脉冲,在写脉冲施加结束后,结束写操作;
在写验证模式下,通过第二控制电路对选通的存算器件施加写脉冲, 在写脉冲施加结束后,第二控制电路产生存算器件的读信号,通过读/计算模块读出结果并与所述目标值进行对比,若两者保持一致则结束写验证操作,反之依据对比结果,重新施加对应操作的写脉冲。
进一步地,在写操作过程中采取的写操作脉冲施加时间、个数以及写的次数,步骤如下:
(1)施加写脉冲;
(2)经历一个时钟,判断时钟计数器计数是否等于单次写脉冲的时钟计数值,若否,时钟计数加1,跳转(2);若是,跳转(3);
(3)判断脉冲计数器计数是否等于单次写脉冲计数值,若否,脉冲计数加1,时钟计数清零,跳转(2);若是,跳转(4);
(4)判断当前模式是否为写验证,若否,跳转(7);若是,跳转(5);
(5)判断读出值是否等于目标值,若否,跳转(6);若是,跳转(7);
(6)判断次数计数器计数是否等于目标写验证次数,若否,次数计数加1,脉冲计数清零,时钟计数清零,跳转(2);若是,跳转(7);
(7)停止施加写脉冲。
进一步地,读/计算模块包含第三配置寄存器、第三控制电路,其中所述第三配置寄存器用于配置计算模式、在计算过程中行的始能、列的始能和读出电路的始能;所述第三控制电路主要负责读、计算过程中的控制。
进一步地,读/计算模块分别控制存算一体阵列的读和计算模式,在读模式下,当接收到来自控制单元模块的读控制信号,把外部输入地址作为读的存算器件地址,将地址进行译码,选通对应的行、列开关,器件存储数据通过读出电路读出,作为输出数据输出;在读模式下,当接收到来自内部写验证模块的读信号,把写验证模块寄存器中的地址作为读的存算器件地址,将地址进行译码,选通对应的行、列开关,器件存储数据通过读出电路读出,作为数值返回写验证模块中用于结果对比;在计算模式下,接收到来自控制单元模块的计算控制信号,把外部输入数据作为输入的计算值以及外部输入地址作为计算的地址,把地址译码为对应的计算行地址,并将该行选通,通过读出电路输出计算值,输入至移位器中,移位完成后控制数据输入至加/减法器中;
所述读/计算模块在计算模式下,若只需要输入一个计算值进行计算,则直接输入即可计算;若需要输入多个计算值进行计算,则需要通过第三配置寄存器中的计算行始能进行提前配置,多个计算值会被依次存入数据寄存器中,直至完成所有计算值的输入,开始进行计算。
进一步地,移位器和加/减法器用于在计算过程中对读出电路输出计算值进行处理,若输入的计算值为完整值,则不需要进行移位和加/减法操作,直接输出结果;若输入的计算值经过多组的拆分,则需要进行移位和加/减法操作,以第一个输出计算值移位位数0为基准,每经历一个周期移位位数增加输入的精度位,直至计算结束;依据读/计算模块中的符号数计算参数配置,若为符号数计算,除最后一个输出值做减法以外,其余值做累加操作,并存入寄存器中,计算结束后将数据输出;若为无符号数计算,所有计算值做累加操作,并存入寄存器中,计算结束后将数据输出。
本申请的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本发明实现的一种存算一体基本运算装置,该存算一体基本运算装置集成了所有必要的电路、模块和单元,除支持基础的器件读写操作以外,可以进行写验证操作以及可配置的基本计算。本发明通用性强,基于存算一体技术所需的基本功能通过不同模块进行任务上的划分和优化,增加了实用性,可以灵活用于不同应用场景。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是一种存算一体基本运算装置的结构示意图;
图2是一种存算一体基本运算装置的控制单元示意图;
图3是一种存算一体基本运算装置的写验证模块示意图;
图4是写验证模块步骤跳转示意图;
图5是一种存算一体基本写验证模块脉冲发射示意图;
图6是一种存算一体基本运算装置的读/计算模块示意图;
图7是举例一种存算一体基本运算装置的存算一体阵列采用忆阻器件构成示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,本申请提供一种存算一体基本运算装置,所述基本运算指矩阵计算的乘累加计算,该装置集成了控制单元、写验证模块、读/计算模块、存算一体单元、移位器、加/减法器;所述存算一体单元包括至少一个存算一体阵列,每个存算一体阵列包括阵列式排布的若干存算器件,所述存算器件用于进行权重值的存储以及矩阵计算;所述控制单元,用于对所述存算一体阵列进行控制并结合外部控制信号对写验证模块、读/计算模块进行相应控制;所述写验证模块,用于结合外部输入数据对所述存算一体阵列中选通的存算器件进行直接写操作或者写验证操作,进行脉冲宽度及脉冲个数的计算;所述读/计算模块,用于对所述存算一体阵列中选通的存算器件或者所述写验证模块进行读操作,结合外部输入数据进行计算操作并将结果输出至所述移位器中,并在运算完成后通过控制加/减法器控制运算结果的输出;所述移位器和加/减法器相连,用于对读/计算模块的计算结果进行乘累加运算操作。
所述存算一体基本运算装置实现了基于存算一体阵列的读、写、计算、及写验证功能,其输入为控制信号、数据以及地址,输出为数据。输入的控制信号包括配置寄存器配置信号、存算器件读/写信号、存算一体计算信号;输入数据包括配置寄存器的数据、存算器件写入值的数据、输入的存算一体计算数据;输入地址包括存算器件读写时的存算器件地址,包含行索引和列索引、以及存算一体阵列在计算过程中的行地址。
所述存算一体单元,用于权重值的存储以及存算一体核心计算功能,包含电源电路、行/列开关、读出电路及至少一个存算一体阵列;其中所述电源电路用于提供所述存算一体阵列分别在读、写、计算时的所需电压以及基准电压、偏置电压;存算一体阵列包含多个阵列式排布的存算器件,用于权重的存储与存算一体计算;行/列开关用于控制存算一体阵列中行、列的选通;读出电路用于存算一体阵列上的权重值的读出和计算结果值的输出,同时在写验证模式下的读出电路用于提供与外部输入数据中的目标值对比的实际读出值。
如图2所示,本发明装置中的控制单元包含第一控制电路、第一配置寄存器,其中所述第一控制电路用于获取外部输入控制信号,根据所述外部输入控制信号对应将信号传递写验证模块或读/计算模块,并对所述存算一体单元内电源电路进行控制;所述第一配置寄存器内的参数可用于对所述存算一体单元内的所述电源电路进行配置,包括调整基准电压、偏置电压、读输入电压、写输入电压、计算输入电压。具体而言:
当从外部对存算一体阵列上的存算器件进行读时,外部输入读控制信号至控制单元处,控制单元同时管理电源电路中的读电压,并将信号传递到读/计算模块中,由读/计算模块负责完成读操作;
当从外部在存算一体阵列上进行计算时,外部输入计算控制信号至控制单元处,控制单元结合外部输入数据和读/计算模块的配置进行电源电路中计算电压的设置,并将信号传递到读/计算模块中,由读/计算模块负责完成计算操作;
当从外部对存算一体阵列上的存算器件进行写时,外部输入写控制信号至控制单元处,控制单元结合外部输入数据进行写电压的设置,并将信号传递到写验证模块中,由写验证模块负责完成写操作。
如图3所示,本发明装置中的写验证模块包含第二配置寄存器、时钟计数器、脉冲计数器、第二控制电路。其中第二配置寄存器用于配置当前写验证模块的操作模式、单单次写脉冲计数值、单次写脉冲的时钟计数值及目标写验证次数;时钟计数器用于统计写脉冲经历的时钟个数;脉冲计数器用于统计写脉冲个数;次数计数器用于统计写验证尝试次数;第二控制电路主要负责写验证模块的控制,通过状态机进行不同操作模式下的控制。具体而言,写验证模块的操作模式分为直接写和写验证模式,外部输入数据作为当前的写入目标值、外部输入地址作为当前写的存算器件地址,将地址存入寄存器进行译码,选通对应的行、列开关,并通过控制单元传递的写控制信号进行始能触发。在直接写模式下,通过控制电路对选通的存算器件施加写脉冲,在写脉冲施加结束后,结束写操作;在写验证模式下,通过控制电路对选通的存算器件施加写脉冲, 在写脉冲施加结束后,控制电路产生存算器件的读信号,通过读出电路读出结果与目标值进行对比,若两者保持一致则结束写验证操作,反之依据对比结果,重新施加对应操作的写脉冲。
如图4所示,写验证模块在写操作过程中采取的写操作脉冲施加时间、个数以及写的次数,具体步骤如下:
(1)施加写脉冲;
(2)经历一个时钟,判断时钟计数器计数是否等于单次写脉冲的时钟计数值,若否,时钟计数加1,跳转(2);若是,跳转(3);
(3)判断脉冲计数器计数是否等于单次写脉冲计数值,若否,脉冲计数加1,时钟计数清零,跳转(2);若是,跳转(4);
(4)判断当前模式是否为写验证,若否,跳转(7);若是,跳转(5);
(5)判断读出值是否等于目标值,若否,跳转(6);若是,跳转(7);
(6)判断次数计数器计数是否等于目标写验证次数,若否,次数计数加1,脉冲计数清零,时钟计数清零,跳转(2);若是,跳转(7);
(7)停止施加写脉冲。
结合图4提供的步骤跳转,本申请给出脉冲实例,如图5所示,T为表示时钟周期。当写验证模块中的时钟计数器参数设置为4时,如波形①所示写操作时会发送脉宽为4个时钟周期脉冲;当写验证模块中的脉冲计数器参数设置为2时,如波形②所示写操作时会依次发送脉宽为4个时钟周期脉冲;当写验证模块中的次数计数器参数设置大于等于2时,如波形③所示写操作会在写验证失败之后继续进行写操作并发送脉冲。脉冲时间间隔和次数间隔由实际电路需要的时间间隔控制,也可以在需要的情况下加入时间间隔的配置。
如图6所示,本发明装置中的读/计算模块包含第三配置寄存器、第三控制电路。其中第三配置寄存器用于配置工作模式、在计算过程中行的始能、列的始能和读出电路的始能,读模式下和计算模式下都需要读出电路的始能开启,读模式如果收到来自外部的读信号开启所有列,并读出;如果收到写验证的读信号只依据列索引开启单列的读出电路;计算模式下只依据列配置的范围开启多列的读出电路,与计算输出的并行度有关;第三控制电路主要负责读、计算过程中的控制。读/计算模块分别控制存算一体阵列的读和计算模式:
在读模式下,当接收到来自控制单元的读控制信号,把外部输入地址作为读的存算器件地址,将地址进行译码,选通对应的行、列开关,器件存储数据通过读出电路读出,作为输出数据输出;
在读模式下,当接收到来自写验证模块的读信号,把写验证模块寄存器中的地址作为读的存算器件地址,将地址进行译码,选通对应的行、列开关,存算器件中存储数据通过读出电路读出,作为数值返回写验证模块中用于结果对比;
在计算模式下,接收到来自控制单元模块的计算控制,把外部输入数据作为输入的计算值以及外部输入地址作为计算的地址,把地址译码为对应的计算行地址,并将该行选通,通过读出电路输出计算值,输入至移位器中,移位完成后控制数据输入至加/减法器中。
需要说明的是,读/计算模块在计算模式下,若只需要输入一个计算值进行计算,则直接输入即可计算;若需要输入多个计算值进行计算,则需要通过第三配置寄存器中的计算行始能进行提前配置,多个计算值会被依次存入数据寄存器中,直至完成所有计算值的输入,开始进行计算。
计算模式下,第三配置寄存器进行计算模式的配置,包括符号数计算、输入的精度、输入所需的时钟周期数。符号数计算的参数控制当前是否为符号数的输入计算;输入的精度、输入所需的时钟周期数参数控制输入的计算值是否进行保持完整或多组的拆分后进行计算,若需进行多组拆分,输入的计算值将存入寄存器中,通过第三控制电路进行输入的控制;
如图7所示,举例存算一体单元中存算器件列采用忆阻器件构成的情况,忆阻器阵列尺寸为A×B,A为行数,B为列数,每个忆阻器拥有不同的电导值,对应其权重值/>,施加电压/>,所述电压值通过电源电路提供,对应输入值/>,依据欧姆定律,每个忆阻器流出/>,该电流就是输入值与权重值的乘积。同时,依据基尔霍夫电流定律,每一列流出的总电流是一列中各个忆阻器流出电流的总合,/>,即对应矩阵乘加的结果值/>,最终由读出电路进行输出,传递至移位器或写验证模块中。上述变量m,/>;上述变量n,/>。该装置中的存算一体单元内的存算阵列可以由任意存算器件构成,如闪存(FLASH)、阻变存储器(RRAM)、磁性随机存取存储器(MRAM)。
如图6所示,在存算一体单元进行读、写、计算操作过程中,需要通过读/计算模块、写验证模块提供的行开关、列开关的选通信号进行阵列选通。其中在读、写操作模式下,行和列开关的选通信号都为1组,对应阵列上单个存算器件;在计算模式下,行和列可以进行多组选通,对应阵列上多个存算器件的范围,进行并行的乘加计算。
移位器和加/减法器用于在计算过程中对读出电路输出计算值进行处理,若输入的计算值为完整值,则不需要进行移位和加/减法操作,直接输出结果;若输入的计算值经过多组的拆分,则需要进行移位和加/减法操作,以第一个输出计算值移位位数0为基准,每经历一个周期移位位数增加输入的精度位,直至计算结束。依据读/计算模块中的符号数计算参数配置,若为符号数计算,除最后一个输出值做减法以外,其余值做累加操作,并存入寄存器中,计算结束后将数据输出;若为无符号数计算,所有计算值做累加操作,并存入寄存器中,计算结束后将数据输出。
综上所述,所述装置在一般通用用途的读写操作外,集成了自动化的写验证模块,并且实现了不同类型的乘法计算模式以及方式,通用性强。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (8)
1.一种存算一体基本运算装置,其特征在于,包括控制单元、写验证模块、读/计算模块、存算一体单元、移位器、加/减法器;
所述存算一体单元包括至少一个存算一体阵列,每个存算一体阵列包括阵列式排布的若干存算器件,所述存算器件用于进行权重值的存储以及矩阵计算;
所述控制单元,用于对所述存算一体阵列进行控制并结合外部控制信号对写验证模块、读/计算模块进行相应控制;
所述写验证模块,用于结合外部输入数据对所述存算一体阵列中选通的存算器件进行直接写操作或者写验证操作,进行脉冲宽度及脉冲个数的计算;
所述读/计算模块,用于对所述存算一体阵列中选通的存算器件或者所述写验证模块进行读操作,结合外部输入数据进行计算操作并将结果输出至所述移位器中,并在运算完成后通过控制加/减法器控制运算结果的输出;
所述移位器和加/减法器相连,用于对读/计算模块的计算结果进行乘累加运算操作;
其中:所述写验证模块包括第二配置寄存器、时钟计数器、脉冲计数器、第二控制电路和次数计数器,所述第二配置寄存器用于配置当前写验证模块的操作模式、单次写脉冲计数值、单次写脉冲的时钟计数值及目标写验证次数;所述时钟计数器用于统计写脉冲经历的时钟个数;所述脉冲计数器用于统计写脉冲个数;所述次数计数器用于统计写验证尝试次数;所述第二控制电路用于通过状态机进行不同操作模式下的控制;
所述写验证模块的操作模式分为直接写模式和写验证模式,外部输入数据作为写入的目标值、外部输入地址作为当前写的存算器件地址,通过将所述存算器件地址进行译码,选通对应的行/列开关,并通过控制单元传递的写控制信号进行始能触发;
在直接写模式下,通过第二控制电路对选通的存算器件施加写脉冲,在写脉冲施加结束后,结束写操作;
在写验证模式下,通过第二控制电路对选通的存算器件施加写脉冲, 在写脉冲施加结束后,第二控制电路产生存算器件的读信号,通过读/计算模块读出结果并与所述目标值进行对比,若两者保持一致则结束写验证操作,反之依据对比结果,重新施加对应操作的写脉冲。
2.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:存算一体单元包含电源电路、行/列开关、读出电路及至少一个存算一体阵列;
所述电源电路用于提供存算一体阵列分别在读、写、计算时的所需电压以及基准电压、偏置电压;
每个存算一体阵列中包含若干阵列式排布的存算器件,用于权重的存储与存算一体计算;
所述行/列开关用于控制所述存算一体阵列中行、列的选通;
所述读出电路用于所述存算一体阵列上的权重值的读出和计算结果值的输出,以及在所述写验证模块进行写验证操作时用于提供与外部输入数据中的目标值对比的实际读出值。
3.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:所述控制单元包含第一控制电路、第一配置寄存器,其中所述第一控制电路获取外部输入控制信号,根据所述外部输入控制信号对应将信号传递写验证模块或读/计算模块,并对所述存算一体单元内电源电路进行控制;所述配置寄存器内的参数可用于对存算一体单元内的电源电路进行配置,包括调整基准电压、偏置电压、读输入电压、写输入电压、计算输入电压。
4.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:当从外部对存算一体阵列上的存算器件进行读时,外部输入读控制信号至控制单元处,同时管理电源电路中的读电压,并将信号传递到读/计算模块中,由读/计算模块负责完成读操作;当从外部在存算一体阵列上进行计算时,外部输入计算控制信号至控制单元处,并结合外部输入数据和读/计算模块的配置进行电源电路中计算电压的设置,并将信号传递到读/计算模块中,由读/计算模块负责完成计算操作;当从外部对存算一体阵列上的存算器件进行写时,外部输入写控制信号至控制单元处,并结合外部输入数据进行写电压的设置,并将信号传递到写验证模块中,由写验证模块负责完成写操作。
5.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:在写操作过程中采取的写操作脉冲施加时间、个数以及写的次数,步骤如下:
(1)施加写脉冲;
(2)经历一个时钟,判断时钟计数器计数是否等于单次写脉冲的时钟计数值,若否,时钟计数加1,跳转(2);若是,跳转(3);
(3)判断脉冲计数器计数是否等于单次写脉冲计数值,若否,脉冲计数加1,时钟计数清零,跳转(2);若是,跳转(4);
(4)判断当前模式是否为写验证,若否,跳转(7);若是,跳转(5);
(5)判断读出值是否等于目标值,若否,跳转(6);若是,跳转(7);
(6)判断次数计数器计数是否等于目标写验证次数,若否,次数计数加1,脉冲计数清零,时钟计数清零,跳转(2);若是,跳转(7);
(7)停止施加写脉冲。
6.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:读/计算模块包含第三配置寄存器、第三控制电路,其中所述第三配置寄存器用于配置计算模式、在计算过程中行的始能、列的始能和读出电路的始能;所述第三控制电路主要负责读、计算过程中的控制。
7.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:读/计算模块分别控制存算一体阵列的读和计算模式,在读模式下,当接收到来自控制单元模块的读控制信号,把外部输入地址作为读的存算器件地址,将地址进行译码,选通对应的行、列开关,器件存储数据通过读出电路读出,作为输出数据输出;在读模式下,当接收到来自内部写验证模块的读信号,把写验证模块寄存器中的地址作为读的存算器件地址,将地址进行译码,选通对应的行、列开关,器件存储数据通过读出电路读出,作为数值返回写验证模块中用于结果对比;在计算模式下,接收到来自控制单元模块的计算控制信号,把外部输入数据作为输入的计算值以及外部输入地址作为计算的地址,把地址译码为对应的计算行地址,并将该行选通,通过读出电路输出计算值,输入至移位器中,移位完成后控制数据输入至加/减法器中;
所述读/计算模块在计算模式下,若只需要输入一个计算值进行计算,则直接输入即可计算;若需要输入多个计算值进行计算,则需要通过第三配置寄存器中的计算行始能进行提前配置,多个计算值会被依次存入数据寄存器中,直至完成所有计算值的输入,开始进行计算。
8.根据权利要求1所述的一种存算一体基本运算装置,其特征在于:移位器和加/减法器用于在计算过程中对读出电路输出计算值进行处理,若输入的计算值为完整值,则不需要进行移位和加/减法操作,直接输出结果;若输入的计算值经过多组的拆分,则需要进行移位和加/减法操作,以第一个输出计算值移位位数0为基准,每经历一个周期移位位数增加输入的精度位,直至计算结束;依据读/计算模块中的符号数计算参数配置,若为符号数计算,除最后一个输出值做减法以外,其余值做累加操作,并存入寄存器中,计算结束后将数据输出;若为无符号数计算,所有计算值做累加操作,并存入寄存器中,计算结束后将数据输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311547164.1A CN117289896B (zh) | 2023-11-20 | 2023-11-20 | 一种存算一体基本运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311547164.1A CN117289896B (zh) | 2023-11-20 | 2023-11-20 | 一种存算一体基本运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117289896A CN117289896A (zh) | 2023-12-26 |
CN117289896B true CN117289896B (zh) | 2024-02-20 |
Family
ID=89241067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311547164.1A Active CN117289896B (zh) | 2023-11-20 | 2023-11-20 | 一种存算一体基本运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117289896B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117519802B (zh) * | 2024-01-08 | 2024-04-30 | 之江实验室 | 基于存算一体单元的数据处理装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677742A (zh) * | 2013-12-13 | 2014-03-26 | 广西科技大学 | 多浮点操作数加/减运算控制器 |
CN203689501U (zh) * | 2013-12-13 | 2014-07-02 | 广西科技大学 | 多浮点操作数加/减运算控制器 |
CN109859786A (zh) * | 2019-01-28 | 2019-06-07 | 北京航空航天大学 | 一种基于自旋磁存储器的数据运算方法 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
CN111611195A (zh) * | 2019-02-26 | 2020-09-01 | 北京知存科技有限公司 | 可软件定义存算一体芯片及其软件定义方法 |
CN113010142A (zh) * | 2021-03-23 | 2021-06-22 | 广州万协通信息技术有限公司 | 一种新型脉动结点式标量点乘的双域实现系统及方法 |
CN113743600A (zh) * | 2021-08-26 | 2021-12-03 | 南方科技大学 | 适用于多精度神经网络的存算一体架构脉动阵列设计方法 |
CN113792010A (zh) * | 2021-09-22 | 2021-12-14 | 清华大学 | 存算一体芯片及数据处理方法 |
CN115796252A (zh) * | 2022-11-25 | 2023-03-14 | 清华大学 | 权重写入方法及装置、电子设备和存储介质 |
CN116050492A (zh) * | 2023-02-06 | 2023-05-02 | 北京航空航天大学 | 一种扩展单元 |
CN116048479A (zh) * | 2023-04-03 | 2023-05-02 | 南京大学 | 一种针对存算一体芯片的快速编程方法 |
CN116384246A (zh) * | 2023-04-11 | 2023-07-04 | 清华大学 | 用于矩阵运算的存算一体装置及其操作方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160108770A (ko) * | 2015-03-06 | 2016-09-20 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
-
2023
- 2023-11-20 CN CN202311547164.1A patent/CN117289896B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677742A (zh) * | 2013-12-13 | 2014-03-26 | 广西科技大学 | 多浮点操作数加/减运算控制器 |
CN203689501U (zh) * | 2013-12-13 | 2014-07-02 | 广西科技大学 | 多浮点操作数加/减运算控制器 |
CN109859786A (zh) * | 2019-01-28 | 2019-06-07 | 北京航空航天大学 | 一种基于自旋磁存储器的数据运算方法 |
CN111611195A (zh) * | 2019-02-26 | 2020-09-01 | 北京知存科技有限公司 | 可软件定义存算一体芯片及其软件定义方法 |
CN110990060A (zh) * | 2019-12-06 | 2020-04-10 | 北京瀚诺半导体科技有限公司 | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 |
CN113010142A (zh) * | 2021-03-23 | 2021-06-22 | 广州万协通信息技术有限公司 | 一种新型脉动结点式标量点乘的双域实现系统及方法 |
CN113743600A (zh) * | 2021-08-26 | 2021-12-03 | 南方科技大学 | 适用于多精度神经网络的存算一体架构脉动阵列设计方法 |
CN113792010A (zh) * | 2021-09-22 | 2021-12-14 | 清华大学 | 存算一体芯片及数据处理方法 |
WO2023045114A1 (zh) * | 2021-09-22 | 2023-03-30 | 清华大学 | 存算一体芯片及数据处理方法 |
CN115796252A (zh) * | 2022-11-25 | 2023-03-14 | 清华大学 | 权重写入方法及装置、电子设备和存储介质 |
CN116050492A (zh) * | 2023-02-06 | 2023-05-02 | 北京航空航天大学 | 一种扩展单元 |
CN116048479A (zh) * | 2023-04-03 | 2023-05-02 | 南京大学 | 一种针对存算一体芯片的快速编程方法 |
CN116384246A (zh) * | 2023-04-11 | 2023-07-04 | 清华大学 | 用于矩阵运算的存算一体装置及其操作方法 |
Non-Patent Citations (3)
Title |
---|
A review on computational storage devices and near memory computing for high performance applications;Dina Fakhry;Memories - Materials, Devices, Circuits and Systems;第4卷;全文 * |
基于FPGA的SDRAM接口设计及实现;齐佳硕;王洪岩;;电子测量技术(第19期);全文 * |
基于忆阻器的感存算一体技术研究进展;李锟;曹荣荣;孙毅;刘森;李清江;徐晖;;微纳电子与智能制造(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117289896A (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sun et al. | Fully parallel RRAM synaptic array for implementing binary neural network with (+ 1,− 1) weights and (+ 1, 0) neurons | |
CN109766309B (zh) | 自旋存算一体芯片 | |
CN117289896B (zh) | 一种存算一体基本运算装置 | |
Li et al. | SAPIENS: A 64-kb RRAM-based non-volatile associative memory for one-shot learning and inference at the edge | |
CN109859786B (zh) | 一种基于自旋磁存储器的数据运算方法 | |
Hung et al. | Challenges and trends of nonvolatile in-memory-computation circuits for AI edge devices | |
CN110674462B (zh) | 一种矩阵运算装置、方法、处理器和计算机可读存储介质 | |
CN117271436B (zh) | 基于sram的电流镜互补存内计算宏电路、及芯片 | |
CN112182495A (zh) | 一种基于忆阻器的二元域矩阵运算电路 | |
Sharma et al. | A 64 Kb reconfigurable full-precision digital ReRAM-based compute-in-memory for artificial intelligence applications | |
US10749529B2 (en) | Memory device including integrated deterministic pattern recognition circuitry | |
CN114974337B (zh) | 一种基于自旋磁随机存储器的时间域存内计算电路 | |
WO2021041638A1 (en) | Copy data in a memory system with artificial intelligence mode | |
Mao et al. | A versatile ReRAM-based accelerator for convolutional neural networks | |
CN113315506B (zh) | 一种相变存储器时序可重构布尔逻辑电路、方法及装置 | |
Monga et al. | A Novel Decoder Design for Logic Computation in SRAM: CiM-SRAM | |
US20220019407A1 (en) | In-memory computation circuit and method | |
Reuben et al. | Carry-free addition in resistive ram array: n-bit addition in 22 memory cycles | |
CN113658625A (zh) | 基于1t1r阵列的可重构状态逻辑操作电路及方法 | |
CN110619905A (zh) | 一种基于rram忆阻器单元的集合模块及其形成方法 | |
CN108109655B (zh) | 基于mig逻辑的rram迭代乘法器电路及实现方法 | |
US20230333814A1 (en) | Compute-in memory (cim) device and computing method thereof | |
CN117519802B (zh) | 基于存算一体单元的数据处理装置 | |
US20220043885A1 (en) | Method and apparatus for convolutional computation based on floating gate nvm array | |
CN114399037B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |