CN110364203B - 一种支撑存储内计算的存储系统及计算方法 - Google Patents
一种支撑存储内计算的存储系统及计算方法 Download PDFInfo
- Publication number
- CN110364203B CN110364203B CN201910536811.6A CN201910536811A CN110364203B CN 110364203 B CN110364203 B CN 110364203B CN 201910536811 A CN201910536811 A CN 201910536811A CN 110364203 B CN110364203 B CN 110364203B
- Authority
- CN
- China
- Prior art keywords
- tube
- nmos tube
- nmos
- pmos
- electrode
- 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 title claims abstract description 91
- 230000015654 memory Effects 0.000 claims abstract description 73
- 238000000034 method Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 abstract description 6
- 230000006870 function Effects 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4094—Bit-line management or control circuits
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Static Random-Access Memory (AREA)
Abstract
本发明公开了一种支撑存储内计算的存储系统及计算方法,其中系统包括SRAM阵列和m个计算模块,所述SRAM阵列包括行地址译码模块和n行m列的SRAM存储单元,所述行地址译码模块包括两组译码器,各所述计算模块包括相互连接的布尔逻辑计算单元和全加计算单元,每列SRAM存储单元通过两条读位线与布尔逻辑计算单元连接,所述布尔逻辑计算单元和全加计算单元连接,各所述全加计算单元依次连接。本发明能同时读取两条读字线上的数据后,进行布尔运算和全加计算,实现存储内计算的功能,减少CPU和存储器之间的数据传输,降低访存的时间开销,从而大大提高运算速度,削减存储墙和功耗墙效应,可广泛应用于集成电路技术领域。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种支撑存储内计算的存储系统及计算方法。
背景技术
在传统的冯诺依曼计算机体系结构中,计算机在空间上将计算和存储分离,两者通过数据总线进行数据通信。处理器和存储器芯片发展趋势不同:处理器追求高频高速运算;存储器追求密集型、低成本,因而速度较慢。因此,处理器和存储器性能差距在逐年扩大,存储墙和功耗墙效应加剧。近年来大数据应用方兴未艾,要求计算机能够对海量数据进行高速运算处理,计算型存储器又重新成为研究热门。计算型存储器的基本设计思想是在存储器中集成计算功能,尽可能减少运算单元和存储单元的物理距离,甚至将二者融为一体。这样,数据量大的计算可以在存储器里进行而不需要送至处理器,减少了数据访问产生的时间开销,大幅提升了计算机的性能。然而,目前市场上还没有类似的计算型存储器。
发明内容
为了解决上述技术问题,本发明的目的是提供一种能够支撑存储内计算的存储系统及计算方法。
本发明所采用的第一技术方案是:
一种支撑存储内计算的存储系统,包括SRAM阵列和m个计算模块,所述SRAM阵列包括行地址译码模块和n行m列的SRAM存储单元,所述行地址译码模块包括两组译码器,各所述计算模块包括相互连接的布尔逻辑计算单元和全加计算单元,每列SRAM存储单元通过两条读位线与布尔逻辑计算单元连接,所述布尔逻辑计算单元和全加计算单元连接,各所述全加计算单元依次连接;
所述SRAM阵列在进行读操作时,同时读取两条读字线上的SRAM单元存储的存储数据,所述布尔逻辑计算单元对存储数据进行布尔运算,所述全加计算单元对存储数据进行按位全加计算。
进一步,所述布尔运算包括与运算、与非运算、或运算、或非运算以及异或运算。
进一步,所述SRAM存储单元为9T结构SRAM存储单元,所述9T结构SRAM存储单元由一组交叉耦合反相器和五个NMOS管组成。
进一步,所述交叉耦合反相器包括第一PMOS管、第二PMOS管、第一NMOS管和第二NMOS管,所述五个NMOS管分别为第三NMOS管、第四NMOS管、第五NMOS管、第六NMOS管和第七NMOS管;
所述第一PMOS管的源极和第二PMOS管的源极连接电源电压,第一NMOS管的源极和第二NMOS管的源极接地,第一PMOS管的栅极连接第一NMOS管的栅极,第一PMOS管的漏极连接第一NMOS管的漏极,构成第一个反相器结构;第二PMOS管的栅极连接第二NMOS管的栅极,第二PMOS管的漏极连接第二NMOS管的漏极,构成第二个反相器结构;第二PMOS管和第二NMOS管的栅极与第一PMOS管和第一NMOS管的漏极相连接,该连接节点标记为Q,第一PMOS管和第一NMOS管的栅极与第二PMOS管和第二NMOS管的漏极相连接,该连接节点标记为QB;
第三NMOS管的源极连接节点Q,漏极连接第一写位线,栅极连接写字线,第四NMOS管的源极连接节点QB,漏极连接第二写位线,栅极连接写字线,构成SRAM存储单元的写通道;
第五NMOS管的栅极连接节点QB,漏极连接第一读位线,第六NMOS管的栅极连接节点Q,漏极连接第二读位线,第五NMOS管的源极与第六NMOS管的源极相连接,并连接到第七NMOS管的漏极,第七NMOS管的源极接地GND,栅极连接读字线,构成SRAM存储单元的读通道。
进一步,所述布尔逻辑计算单元包括或非门、第一灵敏放大器和第二灵敏放大器,所述第一灵敏放大器的同相输入端接第一读位线,所述第一灵敏放大器的反相输入端和第二灵敏放大器的同相输入端均连接参考电压,所述第二灵敏放大器的反相输入端接第二读位线,所述第一灵敏放大器的同相输出端与或非门的一输入端连接,所述第二灵敏放大器的反相输出端与或非门的另一输入端连接;
所述第一灵敏放大器的同相输出端输出与运算信号,所述第一灵敏放大器的反相输出端输出与非运算信号,所述第二灵敏放大器的同相输出端输出或运算信号,所述第二灵敏放大器的反相输出端输出或非运算信号,所述或非门的输出端输出异或运算信号。
进一步,所述全加计算单元包括一个与门、一个或门和一个异或门;
所述全加计算单元的控制逻辑如下:
Cn=Cn-1*XOR+AND
其中,所述Sn为本位和,所述Cn为本位进位,所述Cn-1为低位进位,所述XOR为布尔逻辑计算单元输出的异或运算信号,所述AND为布尔逻辑计算单元输出的与运算信号。
进一步,所述第一灵敏放大器包括第八NMOS管、第九NMOS管、第十NMOS管、第三PMOS管、第四PMOS管、第五PMOS管、第六PMOS管、第七PMOS管、第一反相器和第二反相器;
所述第八NMOS管的栅极作为第一灵敏放大器的同相输入端,所述第九NMOS管的栅极作为第一灵敏放大器的反相输入端,所述第八NMOS管的源极和第九NMOS管的源极均与第十NMOS管的漏极连接,所述第十NMOS管的栅极连接使能信号,所述第十NMOS管的源极接地,所述第八NMOS管的漏极分别与第三PMOS管的漏极、第四PMOS管的栅极、第五PMOS管的漏极和第七PMOS管的漏极连接,且第八NMOS管的漏极通过第一反相器输出第一灵敏放大器的同相输出信号,所述第九NMOS管的漏极分别与第四PMOS管的漏极、第三PMOS管的栅极、第六PMOS管的漏极和第七PMOS管的源极连接,且第九NMOS管的漏极通过第二反相器输出第一灵敏放大器的反相输出信号,所述第五PMOS管的栅极、第六PMOS管的栅极和第七PMOS管的栅极均连接预充电信号,所述第三PMOS管的源极、第四PMOS管的源极、第五PMOS管的源极和第六PMOS管的源极均连接电源电压。
本发明所采用的第二技术方案是:
一种支撑存储内计算的计算方法,包括写入数据步骤和读出数据步骤,所述读出数据步骤具体包括以下步骤:
获取需要读取的地址信息,并根据地址信息同时读取两条读字线上的SRAM单元存储的存储数据;
对读取的存储数据进行布尔运算,并获得多个运算结果;
根据运算结果对存储数据进行全加计算。
进一步,所述布尔运算包括与运算、与非运算、或运算、或非运算以及异或运算。
进一步,所述写入数据步骤具体为:
获取需要存储的写入信息和地址信息,根据地址信息以字为单位依次将写入信息进行存储。
本发明的有益效果是:本发明采用两组译码器,在读取数据时,能同时读取两条读字线上的数据,并通过布尔逻辑计算单元对数据进行布尔运算,以及通过计算单元对数据进行按位全加计算,实现存储内计算的功能,减少CPU和存储器之间的数据传输,降低访存的时间开销,从而大大提高运算速度,削减存储墙和功耗墙效应。
附图说明
图1是本发明一种支撑存储内计算的存储系统的结构示意图;
图2是本发明中9T结构SRAM存储单元的电子电路图;
图3是本发明中计算模块的电子示意图;
图4是图3中第一灵敏放大器的电子电路图;
图5是存储系统进行布尔运算第一种情况的波形图;
图6是存储系统进行布尔运算第二种情况的波形图;
图7是存储系统进行布尔运算第三种情况的波形图;
图8是一种支撑存储内计算的计算方法的步骤流程图。
具体实施方式
实施例一
如图1所示,一种支撑存储内计算的存储系统,包括SRAM阵列和m个计算模块,所述SRAM阵列包括行地址译码模块和n行m列的SRAM存储单元,所述行地址译码模块包括两组译码器,各所述计算模块包括相互连接的布尔逻辑计算单元和全加计算单元,每列SRAM存储单元通过两条读位线与布尔逻辑计算单元连接,所述布尔逻辑计算单元和全加计算单元连接,各所述全加计算单元依次连接;
所述SRAM阵列在进行读操作时,同时读取两条读字线上的SRAM单元存储的存储数据,所述布尔逻辑计算单元对存储数据进行布尔运算,所述全加计算单元对存储数据进行按位全加计算。
参照图1,图1中的读出电路即布尔逻辑计算单元,图1中的1位全加器为全加计算单元。所述SRAM阵列在写入数据时每次只提供一条字线的地址,即每次只写入一个字的数据。而其在读出数据时每次提供两条字线的地址Addri和Addrj,通过行地址译码器选中需要读出并进行存储内计算的SRAM单元,即每次将两个字的数据进行按位读出并计算。同时读出两条字线上SRAM单元存储的数据,进行逻辑运算后输出结果信号,再进行全加计算,如此,减小存储墙和功耗墙效应,并加快运算速度。
其中,各列SRAM存储单元对应一个布尔逻辑计算单元,每列的SRAM存储单元通过两条读位线(RBL和RBLB)与该布尔逻辑计算单元连接。布尔逻辑计算单元通过读取两条读位线的电压,进行布尔逻辑运算,并根据布尔逻辑运算结果进行按位全加运算,降低访存的时间开销,同时简化计算所需的门电路,从而也减低了成本。
进一步作为优选的实施方式,所述布尔运算包括与运算、与非运算、或运算、或非运算以及异或运算。
通过布尔逻辑计算单元可输出多种布尔运算结果,极大地增强布尔逻辑计算单元的功能,为后续的运算提供更多的资源。
参照图2,进一步作为优选的实施方式,所述SRAM存储单元为9T结构SRAM存储单元,所述9T结构SRAM存储单元由一组交叉耦合反相器和五个NMOS管组成。
进一步作为优选的实施方式,所述交叉耦合反相器包括第一PMOS管PM1、第二PMOS管PM2、第一NMOS管NM1、第二NMOS管NM2,其他五个晶体管分别是第三NMOS管NM3、第四NMOS管NM4、第五NMOS管NM5、第六NMOS管NM6和第七NMOS管NM7;
所述第一PMOS管PM1的源极和第二PMOS管PM2的源极连接电源电压VDD,第一NMOS管NM1的源极和第二NMOS管NM2的源极接地GND,第一PMOS管PM1的栅极连接第一NMOS管NM1的栅极,第一PMOS管PM1的漏极连接第一NMOS管NM1的漏极,构成第一个反相器结构;第二PMOS管PM2的栅极连接第二NMOS管NM2的栅极,第二PMOS管PM2的漏极连接第二NMOS管NM2的漏极,构成第二个反相器结构;第二PMOS管PM2和第二NMOS管NM2的栅极与第一PMOS管PM1和第一NMOS管NM1的漏极相连接,该连接节点标记为Q,第一PMOS管PM1和第一NMOS管NM1的栅极与第二PMOS管PM2和第二NMOS管NM2的漏极相连接,该连接节点标记为QB;
第三NMOS管NM3的源极连接节点Q,漏极连接第一写位线WBL,栅极连接写字线WWL,第四NMOS管NM4的源极连接节点QB,漏极连接第二写位线WBLB,栅极连接写字线WWL,构成SRAM存储单元的写通道;
第五NMOS管NM5的栅极连接节点QB,漏极连接第一读位线RBL,第六NMOS管NM6的栅极连接节点Q,漏极连接第二读位线RBLB,第五NMOS管NM5的源极与第六NMOS管NM6的源极相连接,并连接到第七NMOS管NM7的漏极,第七NMOS管NM7的源极接地GND,栅极连接读字线RWL,构成SRAM存储单元的读通道。
随着工艺尺寸不断缩减,SRAM(Static Random-Access Memory,静态随机存取存储器)存储单元的读写噪声容限变小,数据稳定性会受到影响。主流的SRAM单元结构为6T(六管单元)结构,读写操作采用同一条通路进行。在小尺寸下该结构会造成读操作中出现数据破坏的问题,即读噪声容限变小,存储节点数据易受到外界噪声影响而发生翻转,导致数据稳定性较差。因此,研究稳定性更高的SRAM存储单元电路结构,并将计算型存储与SRAM相结合,对于提升计算速度和数据稳定性有着积极的意义。
参照图2,为本实施例提出的9T结构SRAM存储单元,包括9个MOS管,字线和位线均分为两组,即读字线RWL、写字线WWL、读位线RBL和RBLB、写位线WBL和WBLB。该9T结构SRAM存储单元采用读写通道分离的设计,把读通道和写入的数据隔离,提高了存储单元的噪声容限,且该结构对称性较强,工艺复杂度相对较低,能够满足SRAM单元的设计需求。
参照图3,进一步作为优选的实施方式,所述布尔逻辑计算单元包括或非门、第一灵敏放大器SA1和第二灵敏放大器SA2,所述第一灵敏放大器SA1的同相输入端接第一读位线,所述第一灵敏放大器SA1的反相输入端和第二灵敏放大器SA2的同相输入端均连接参考电压,所述第二灵敏放大器SA2的反相输入端接第二读位线,所述第一灵敏放大器SA1的同相输出端与或非门的一输入端连接,所述第二灵敏放大器SA2的反相输出端与或非门的另一输入端连接;
所述第一灵敏放大器SA1的同相输出端输出与运算信号,所述第一灵敏放大器SA1的反相输出端输出与非运算信号,所述第二灵敏放大器SA2的同相输出端输出或运算信号,所述第二灵敏放大器SA2的反相输出端输出或非运算信号,所述或非门的输出端输出异或运算信号。
所述布尔逻辑计算单元由灵敏放大器和逻辑门电路组成,SRAM的每一位采用两个读出灵敏放大器,第一读位线RBL电压与参考电压分别作为第一个读出灵敏放大器SA1的正相输入信号和反相输入信号,参考电压与第二读位线RBLB电压分别作为第二个读出灵敏放大器SA2的正相输入信号和反相输入信号。
本实施例提供的SRAM阵列与灵敏放大器结构使得可以在进行一次读出操作时同时进行多种逻辑运算,并能够减少运算中所使用的逻辑门电路数量,降低了SRAM计算型存储器的复杂度。其中,图3中的全加操作电路即为全加计算单元。
参照图3,进一步作为优选的实施方式,所述全加计算单元包括一个与门、一个或门和一个异或门;
所述全加计算单元的控制逻辑如下:
Cn=Cn-1*XOR+AND
其中,所述Sn为本位和,所述Cn为本位进位,所述Cn-1为低位进位,所述XOR为布尔逻辑计算单元输出的异或运算信号,所述AND为布尔逻辑计算单元输出的与运算信号。
本实施例利用布尔逻辑运算结果进行按位全加计算。在传统的全加器中,每一位的计算通式为:
由于本实施例中上一步骤已经进行了布尔逻辑的运算,因此按位全加操作可以调用布尔逻辑运算结果,将异或运算信号XOR作为进位预测Pn,将与运算信号AND作为半加进位Qn。则电路被简化成:Cn=Cn-1·XOR+AND,仅需三个逻辑门便可进行按位的全加操作,缩小了设计面积。
进一步作为优选的实施方式,所述第一灵敏放大器包括第八NMOS管NM8、第九NMOS管NM9、第十NMOS管NM10、第三PMOS管PM3、第四PMOS管PM4、第五PMOS管PM5、第六PMOS管PM6、第七PMOS管PM7、第一反相器P1和第二反相器P2;
所述第八NMOS管NM8的栅极作为第一灵敏放大器的同相输入端,所述第九NMOS管NM9的栅极作为第一灵敏放大器的反相输入端,所述第八NMOS管NM8的源极和第九NMOS管NM9的源极均与第十NMOS管NM10的漏极连接,所述第十NMOS管NM10的栅极连接使能信号SAE,所述第十NMOS管NM10的源极接地,所述第八NMOS管NM8的漏极分别与第三PMOS管PM3的漏极、第四PMOS管PM4的栅极、第五PMOS管PM5的漏极和第七PMOS管PM7的漏极连接,且第八NMOS管NM8的漏极通过第一反相器P1输出第一灵敏放大器的同相输出信号,所述第九NMOS管NM9的漏极分别与第四PMOS管PM4的漏极、第三PMOS管PM3的栅极、第六PMOS管PM6的漏极和第七PMOS管PM7的源极连接,且第九NMOS管NM9的漏极通过第二反相器P2输出第一灵敏放大器的反相输出信号,所述第五PMOS管PM5的栅极、第六PMOS管PM6的栅极和第七PMOS管PM7的栅极均连接预充电信号SPCE,所述第三PMOS管PM3的源极、第四PMOS管PM4的源极、第五PMOS管PM5的源极和第六PMOS管PM6的源极均连接电源电压VDD。
实施例二
如图8所示,本实施例提供一种支撑存储内计算的计算方法,包括写入数据步骤和读出数据步骤,所述读出数据步骤具体包括以下步骤:
S1、获取需要读取的地址信息,并根据地址信息同时读取两条读字线上的SRAM单元存储的存储数据;
S2、对读取的存储数据进行布尔运算,并获得多个运算结果;
S3、根据运算结果对存储数据进行全加计算。
本实施例方法在读出数据时每次提供两条字线的地址Addri和Addrj,通过行地址译码器选中需要读出并进行存储内计算的SRAM单元,即每次将两个字的数据进行按位读出并计算。同时读出两条字线上SRAM单元存储的数据,进行逻辑运算后输出结果信号,再进行全加计算,如此,减小存储墙和功耗墙效应,并加快运算速度。
进一步作为优选的实施方式,所述布尔运算包括与运算、与非运算、或运算、或非运算以及异或运算。
进一步作为优选的实施方式,所述写入数据步骤具体为:
获取需要存储的写入信息和地址信息,根据地址信息以字为单位依次将写入信息进行存储。
具体实施例
以下结合图1至图7对上述系统和方法进行详细的解释说明。
结合图1所示,所述SRAM计算型存储器包含n行m列SRAM存储单元,主要架构采用典型的SRAM阵列架构组成,特殊之处在于:在行地址译码器处采用两组译码器,使得SRAM阵列在读操作时可以同时选中两条字线;针对图2所示的9T结构SRAM存储单元,字线和位线均分为两组,即读字线RWL、写字线WWL、读位线RBL和RBLB、写位线WBL和WBLB;在读出电路中增加了逻辑电路以实现存储内计算功能。
图1中的存储单元Cell采用图2所示的9T结构SRAM存储单元,下面结合图2具体说明9T结构存储单元读写操作的工作原理:
1、写“0”:
假设初始状态节点Q和QB的电位为“1”和“0”。首先WBL、WBLB两根位线分别预充为低电平“0”、高电平“1”。随后写字线WWL开启,读字线RWL保持关闭,使得第三NMOS管NM3和第四NMOS管NM4开启,第七NMOS管NM7保持关闭状态,节点Q通过第三NMOS管NM3放电,最后被拉低到“0”电位。形成的第四NMOS管NM4至第二写位线WBLB通路将节点QB电位拉高至“1”电位。逻辑0写入9T SRAM单元完成。
2、写“1”:
假设初始状态节点Q和QB的电位为“0”和“1”。首先WBL、WBLB两根位线分别预充为高电平“1”、低电平“0”。随后写字线WWL开启,读字线RWL保持关闭,使得第三NMOS管NM3和第四NMOS管NM4开启,第七NMOS管NM7保持关闭状态,节点QB通过第四NMOS管NM4放电,最后被拉低到“0”电位。形成的第三NMOS管NM3至第一写位线WBL的通路将节点Q电位拉高至“1”电位。逻辑1写入9T SRAM单元完成。
3、读操作
单个9T SRAM存储单元的读出以读“1”为例。首先读位线RBL和RBLB被预充到高电位“1”,随后读字线RWL开启,写字线WWL保持关闭,使得第七NMOS管NM7开启,第三NMOS管NM3和第四NMOS管NM4保持关闭状态。节点Q为高电位“1”,使得第六NMOS管NM6管开启,由第二读位线RBLB经第六NMOS管NM6、第七NMOS管NM7到地GND的放电通路形成,第二读位线RBLB的电位被下拉。而节点QB为低电位“0”,第五NMOS管NM5保持关断,所以第一读位线RBL电位不变。此时两条读位线RBL和RBLB存在电压差,该电压差可以通过灵敏放大器检测到并放大,单个SRAM单元存储的数据在位线上得以表达。
图1所示的SRAM存储阵列在写入数据时每次只提供一条字线的地址,即每次只写入一个字的数据。而其在读出数据时每次提供两条字线的地址Addri和Addrj,通过行地址译码器选中要读出并进行存储内计算的SRAM单元,即每次将两个字的数据进行按位读出并计算。
下面结合图1、图3、图4、图5、图6和图7阐述存储内计算的具体方法:
第一步:读出存储单元的数据,并将其反映到读位线电压值。首先预充读位线RBL和RBLB到电位“1”。地址Addri和Addrj通过行地址译码器同时选中将要进行计算的两行SRAM单元,即同时开启两条读字线RWLi和RWLj,读取两行SRAM存储单元数据,此时读位线电压将会被下拉。假设同一位线上的两个单元存储的值为Qi=0、Qj=0,则两个单元形成的放电通路均会拉低第一读位线RBL的电压,而第二读位线RBLB电压保持不变。假设同一位线上的两个单元存储的值为Qi=1、Qj=1,则两个单元形成的放电通路均会拉低第二读位线RBLB的电压,而第一读位线RBL电压保持不变。假设同一位线上的两个单元存储的数据相异,即为Qi=0、Qj=1或Qi=1、Qj=0,则一个单元形成的放电通路会拉低第一读位线RBL的电压,而另一个单元形成的放电通路会拉低第二读位线RBLB的电压。两个单元的放电能力相同,故两条读位线的电压下降速率相同。参见图5所示,在同样的RWL开启时间内,存储数据相异情况下读位线电压下降的幅度比存储数据相同情况下被下拉的那条读位线的电压下降幅度要小。
第二步:读出电路中的灵敏放大器检测读位线电压差并迅速放大,进行布尔逻辑计算。在图3的读出电路结构中引入了一参考电压,该参考电压的电压值Vref介于存储数据相异情况下读位线放电稳定后的电压值与存储数据相同情况下被下拉的那条读位线放电稳定后的电压值之间。灵敏放大器SA的结构如图4所示。SPCE为灵敏放大器的预充电信号,SAE为灵敏放大器的使能信号。灵敏放大器SA的工作原理为:
预充状态下节点A和B被预充至电位“1”。工作状态下,预充电信号SPCE开启,断开预充电路。接下来开启SAE使能信号,灵敏放大器开始检测正相输入端Vinp和反相输入端Vinn的电压差。针对本实施例电路的实际情况,两个输入信号均能够使NMOS管开启,从而形成放电通路拉低节点A和节点B的电位。但由于两个输入端信号Vinp和Vinn存在着电压差,因此它们所支配的NMOS管放电速度不同,节点A和节点B电位下降速度不同。假设输入信号电压值Vinp大于Vinn,节点A电位下降速度大于节点B,从而节点A抢先开启所控制的PMOS管,使得节点B电压被钳制在高电平,而节点A的电压则继续下降到低电平。最终节点A和B的电压值通过反相器后得到正相输出信号Voutp=1和反相输出信号Voutn=0。
图3所示的灵敏放大器SA1的正相输入端Vinp接第一读位线RBL,反相输入端Vinn接参考电压,灵敏放大器SA2的正相输入端Vinp接参考电压,反相输入端Vinn接第二读位线RBLB。当同一位线上的两个单元存储的值为Qi=0、Qj=0时,读出波形如图5所示。读位线放电电压稳定后,电压大小关系为:VRBLB>Vref>VRBL,同时开启灵敏放大器SA1和SA2,得到灵敏放大器SA1正相输出信号AND=0,反相输出信号NAND=1,灵敏放大器SA2正相输出信号0R=0,反相输出信号NOR=1。由AND和NOR信号经或非运算得到两存储单元异或布尔逻辑运算结果XOR=0,布尔逻辑运算完成。
当同一位线上的两个单元存储的值为Qi=0、Qj=1或Qi=1、Qj=0时,读出波形如图6所示。读位线放电电压稳定后,电压大小关系为:VRBL=VRBLB>Vref,同时开启灵敏放大器SA1和SA2,得到灵敏放大器SA1正相输出信号AND=0,反相输出信号NAND=1,灵敏放大器SA2正相输出信号0R=1,反相输出信号NOR=0。由AND和NOR信号经或非运算得到两存储单元异或布尔逻辑运算结果XOR=1,布尔逻辑运算完成。
当同一位线上的两个单元存储的值为Qi=1、Qj=1时,读出波形如图7所示。读位线放电电压稳定后,电压大小关系为:VRBL>Vref>VRBLB,同时开启灵敏放大器SA1和SA2,得到灵敏放大器SA1正相输出信号AND=1,反相输出信号NAND=0,灵敏放大器SA2正相输出信号0R=1,反相输出信号NOR=0。由AND和NOR信号经或非运算得到两存储单元异或布尔逻辑运算结果XOR=0,布尔逻辑运算完成。
第三步:利用布尔逻辑运算结果进行按位全加计算。在传统的全加器中,每一位的计算通式为:
由于本实施例的第二步已经进行了布尔逻辑的运算,因此按位全加操作可以调用布尔逻辑运算结果,将异或运算信号XOR作为进位预测Pn,将与运算信号AND作为半加进位Qn。则电路被简化成:Cn=Cn-1·XOR+AND,仅需三个逻辑门便可进行按位的全加操作,缩小了设计面积。
本实施例提供的SRAM电路结构,能够支撑存储内计算,减少CPU和存储器之间的数据传输,降低访存的时间开销,从而大大提高运算速度,削减存储墙和功耗墙效应。同时,本发明设计的SRAM阵列与灵敏放大器结构使得可以在进行一次读出操作时同时进行多种逻辑运算,并能够减少运算中所使用的逻辑门电路数量,降低了SRAM计算型存储器的复杂度。此外,本发明提出的9T结构SRAM存储单元采用读写通道分离的设计,把读通道和写入的数据隔离,提高了存储单元的噪声容限,且该结构对称性较强,工艺复杂度相对较低,能够满足SRAM单元的设计需求。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种支撑存储内计算的存储系统,其特征在于,包括SRAM阵列和m个计算模块,所述SRAM阵列包括行地址译码模块和n行m列的SRAM存储单元,所述行地址译码模块包括两组译码器,各所述计算模块包括相互连接的布尔逻辑计算单元和全加计算单元,每列SRAM存储单元通过两条读位线与布尔逻辑计算单元连接,所述布尔逻辑计算单元和全加计算单元连接,各所述全加计算单元依次连接;
所述SRAM阵列在进行读操作时,同时读取两条读字线上的SRAM单元存储的存储数据,所述布尔逻辑计算单元对存储数据进行布尔运算,所述全加计算单元对存储数据进行按位全加计算。
2.根据权利要求1所述的一种支撑存储内计算的存储系统,其特征在于,所述布尔运算包括与运算、与非运算、或运算、或非运算以及异或运算。
3.根据权利要求1所述的一种支撑存储内计算的存储系统,其特征在于,所述SRAM存储单元为9T结构SRAM存储单元,所述9T结构SRAM存储单元由一组交叉耦合反相器和五个NMOS管组成。
4.根据权利要求3所述的一种支撑存储内计算的存储系统,其特征在于,所述交叉耦合反相器包括第一PMOS管、第二PMOS管、第一NMOS管和第二NMOS管,所述五个NMOS管分别为第三NMOS管、第四NMOS管、第五NMOS管、第六NMOS管和第七NMOS管;
所述第一PMOS管的源极和第二PMOS管的源极连接电源电压,第一NMOS管的源极和第二NMOS管的源极接地,第一PMOS管的栅极连接第一NMOS管的栅极,第一PMOS管的漏极连接第一NMOS管的漏极,构成第一个反相器结构;第二PMOS管的栅极连接第二NMOS管的栅极,第二PMOS管的漏极连接第二NMOS管的漏极,构成第二个反相器结构;第二PMOS管和第二NMOS管的栅极与第一PMOS管和第一NMOS管的漏极相连接,且连接节点标记为Q,第一PMOS管和第一NMOS管的栅极与第二PMOS管和第二NMOS管的漏极相连接,且连接节点标记为QB;
第三NMOS管的源极连接节点Q,漏极连接第一写位线,栅极连接写字线,第四NMOS管的源极连接节点QB,漏极连接第二写位线,栅极连接写字线,构成SRAM存储单元的写通道;
第五NMOS管的栅极连接节点QB,漏极连接第一读位线,第六NMOS管的栅极连接节点Q,漏极连接第二读位线,第五NMOS管的源极与第六NMOS管的源极相连接,并连接到第七NMOS管的漏极,第七NMOS管的源极接地GND,栅极连接读字线,构成SRAM存储单元的读通道。
5.根据权利要求1所述的一种支撑存储内计算的存储系统,其特征在于,所述布尔逻辑计算单元包括或非门、第一灵敏放大器和第二灵敏放大器,所述第一灵敏放大器的同相输入端接第一读位线,所述第一灵敏放大器的反相输入端和第二灵敏放大器的同相输入端均连接参考电压,所述第二灵敏放大器的反相输入端接第二读位线,所述第一灵敏放大器的同相输出端与或非门的一输入端连接,所述第二灵敏放大器的反相输出端与或非门的另一输入端连接;所述第一灵敏放大器的同相输出端输出与运算信号,所述第一灵敏放大器的反相输出端输出与非运算信号,所述第二灵敏放大器的同相输出端输出或运算信号,所述第二灵敏放大器的反相输出端输出或非运算信号,所述或非门的输出端输出异或运算信号。
6.根据权利要求5所述的一种支撑存储内计算的存储系统,其特征在于,所述全加计算单元包括一个与门、一个或门和一个异或门;
所述全加计算单元的控制逻辑如下:
Sn=Cn-1⊕XOR
Cn=Cn-1*XOR+AND
其中,所述Sn为本位和,所述Cn为本位进位,所述Cn-1为低位进位,所述XOR为布尔逻辑计算单元输出的异或运算信号,所述AND为布尔逻辑计算单元输出的与运算信号。
7.根据权利要求5所述的一种支撑存储内计算的存储系统,其特征在于,所述第一灵敏放大器包括第八NMOS管、第九NMOS管、第十NMOS管、第三PMOS管、第四PMOS管、第五PMOS管、第六PMOS管、第七PMOS管、第一反相器和第二反相器;
所述第八NMOS管的栅极作为第一灵敏放大器的同相输入端,所述第九NMOS管的栅极作为第一灵敏放大器的反相输入端,所述第八NMOS管的源极和第九NMOS管的源极均与第十NMOS管的漏极连接,所述第十NMOS管的栅极连接使能信号,所述第十NMOS管的源极接地,所述第八NMOS管的漏极分别与第三PMOS管的漏极、第四PMOS管的栅极、第五PMOS管的漏极和第七PMOS管的漏极连接,且第八NMOS管的漏极通过第一反相器输出第一灵敏放大器的同相输出信号,所述第九NMOS管的漏极分别与第四PMOS管的漏极、第三PMOS管的栅极、第六PMOS管的漏极和第七PMOS管的源极连接,且第九NMOS管的漏极通过第二反相器输出第一灵敏放大器的反相输出信号,所述第五PMOS管的栅极、第六PMOS管的栅极和第七PMOS管的栅极均连接预充电信号,所述第三PMOS管的源极、第四PMOS管的源极、第五PMOS管的源极和第六PMOS管的源极均连接电源电压。
8.一种支撑存储内计算的计算方法,应用于如权利要求1-7所述的任一项所述的一种支撑存储内计算的存储系统,其特征在于,包括写入数据步骤和读出数据步骤,所述读出数据步骤具体包括以下步骤:
获取需要读取的地址信息,并根据地址信息同时读取两条读字线上的SRAM单元存储的存储数据;
对读取的存储数据进行布尔运算,并获得多个运算结果;
根据运算结果对存储数据进行全加计算。
9.根据权利要求8所述的一种支撑存储内计算的计算方法,其特征在于,所述布尔运算包括与运算、与非运算、或运算、或非运算以及异或运算。
10.根据权利要求8所述的一种支撑存储内计算的计算方法,其特征在于,所述写入数据步骤具体为:
获取需要存储的写入信息和地址信息,根据地址信息以字为单位依次将写入信息进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536811.6A CN110364203B (zh) | 2019-06-20 | 2019-06-20 | 一种支撑存储内计算的存储系统及计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910536811.6A CN110364203B (zh) | 2019-06-20 | 2019-06-20 | 一种支撑存储内计算的存储系统及计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110364203A CN110364203A (zh) | 2019-10-22 |
CN110364203B true CN110364203B (zh) | 2021-01-05 |
Family
ID=68217468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910536811.6A Active CN110364203B (zh) | 2019-06-20 | 2019-06-20 | 一种支撑存储内计算的存储系统及计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110364203B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11322195B2 (en) * | 2019-11-27 | 2022-05-03 | Taiwan Semiconductor Manufacturing Company, Ltd. | Compute in memory system |
CN110942792B (zh) * | 2019-11-29 | 2023-03-14 | 天津大学 | 一种应用于存算一体芯片的低功耗低泄漏sram |
CN110674462B (zh) * | 2019-12-04 | 2020-06-02 | 深圳芯英科技有限公司 | 一种矩阵运算装置、方法、处理器和计算机可读存储介质 |
CN111883191B (zh) * | 2020-07-14 | 2023-02-03 | 安徽大学 | 10t sram单元、及基于10t sram单元的存内逻辑运算及bcam电路 |
CN111883192B (zh) * | 2020-07-20 | 2023-02-03 | 安徽大学 | 基于9t sram单元在内存实现汉明距离计算的电路及9t sram单元 |
CN111863071B (zh) * | 2020-07-22 | 2022-12-06 | 上海高性能集成电路设计中心 | 一种基于sram实现存内运算的电路结构 |
CN111816234B (zh) * | 2020-07-30 | 2023-08-04 | 中科南京智能技术研究院 | 一种基于sram位线同或的电压累加存内计算电路 |
CN111816233B (zh) * | 2020-07-30 | 2023-08-01 | 中科南京智能技术研究院 | 一种存内计算单元及阵列 |
CN112151091B (zh) * | 2020-09-29 | 2023-03-21 | 中科南京智能技术研究院 | 一种8t sram单元及存内计算装置 |
CN112214197B (zh) * | 2020-10-16 | 2022-10-04 | 苏州兆芯半导体科技有限公司 | Sram全加器及多比特sram全加器 |
CN112259137B (zh) * | 2020-11-02 | 2023-05-23 | 海光信息技术股份有限公司 | 内存运算电路及芯片结构 |
CN112951290B (zh) * | 2020-12-17 | 2023-03-21 | 北京航空航天大学 | 一种基于非易失性随机存储器的内存计算电路及装置 |
CN112581996B (zh) * | 2020-12-21 | 2023-07-25 | 东南大学 | 基于磁性随机存储器的时域存内计算阵列结构 |
CN113593618B (zh) * | 2021-07-30 | 2023-04-28 | 电子科技大学 | 适用于差分sram存储单元的存算一体化存储阵列结构 |
CN113782072B (zh) * | 2021-11-12 | 2022-02-22 | 中科南京智能技术研究院 | 一种多比特存内计算电路 |
CN114280998B (zh) * | 2021-12-29 | 2024-03-29 | 北京超弦存储器研究院 | 一种逻辑运算控制电路、方法、装置及介质 |
WO2023137696A1 (zh) * | 2022-01-21 | 2023-07-27 | 北京大学深圳研究生院 | 一种逻辑运算存储单元、存储阵列和逻辑运算存储器 |
CN114676834B (zh) * | 2022-05-26 | 2022-08-02 | 中科南京智能技术研究院 | 一种用于存内计算阵列的位线电压钳制电路 |
CN115482855A (zh) * | 2022-06-08 | 2022-12-16 | 安徽大学 | 一种10t-sram单元及其数据读写方法、电路结构 |
CN116126778A (zh) * | 2022-12-28 | 2023-05-16 | 上海科技大学 | 一种低温高能效存内计算加速器 |
CN116631473B (zh) * | 2023-05-24 | 2023-11-24 | 合芯科技有限公司 | 存储单元、存储器、电子产品及数据写入方法 |
CN116721682A (zh) * | 2023-06-13 | 2023-09-08 | 上海交通大学 | 面向边缘智能的跨层次可重构sram存内计算单元及方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4177131B2 (ja) * | 2003-02-06 | 2008-11-05 | ローム株式会社 | 論理演算回路、論理演算装置および論理演算方法 |
TWI315610B (en) * | 2005-04-29 | 2009-10-01 | Taiwan Semiconductor Mfg | Configurable logic and memory block, and programmable pass gate based configurable logic device |
EP1750272B1 (en) * | 2005-07-29 | 2010-10-27 | Semiconductor Energy Laboratory Co., Ltd. | Semiconductor memory device and method for driving the same |
US9224447B2 (en) * | 2013-04-24 | 2015-12-29 | Regents Of The University Of Minnesota | General structure for computational random access memory (CRAM) |
US9934856B2 (en) * | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
US9471278B2 (en) * | 2014-09-25 | 2016-10-18 | Texas Instruments Incorporated | Low area full adder with shared transistors |
CN105719689A (zh) * | 2016-03-31 | 2016-06-29 | 西安紫光国芯半导体有限公司 | 一种增强存储单元写能力的静态随机存储器及其写操作方法 |
-
2019
- 2019-06-20 CN CN201910536811.6A patent/CN110364203B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110364203A (zh) | 2019-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110364203B (zh) | 一种支撑存储内计算的存储系统及计算方法 | |
US6205076B1 (en) | Destructive read type memory circuit, restoring circuit for the same and sense amplifier | |
US5241503A (en) | Dynamic random access memory with improved page-mode performance and method therefor having isolator between memory cells and sense amplifiers | |
US5508644A (en) | Sense amplifier for differential voltage detection with low input capacitance | |
KR101564340B1 (ko) | 개선된 안정성 및 감소된 비트셀 사이즈를 갖는 저전력 5t sram | |
KR100865906B1 (ko) | 저전압 감지 증폭기 및 방법 | |
US11456030B2 (en) | Static random access memory SRAM unit and related apparatus | |
US8817562B2 (en) | Devices and methods for controlling memory cell pre-charge operations | |
US20190304516A1 (en) | Apparatuses and methods for coupling data lines in memory devices | |
KR20090115855A (ko) | 타이밍 제어를 위한 더미 비트라인을 갖는 메모리 | |
US9613685B1 (en) | Burst mode read controllable SRAM | |
US6229758B1 (en) | Semiconductor memory device that can read out data faster than writing it | |
US20160064070A1 (en) | Low power sram | |
US10140224B2 (en) | Noise immune data path scheme for multi-bank memory architecture | |
Gupta et al. | Exploration of 9T SRAM cell for in memory computing application | |
JPS6362839B2 (zh) | ||
US11264081B1 (en) | Memory circuit, electronic device having the memory circuit, and method of operating memory circuit | |
Kumar et al. | Design and power analysis of 16× 16 SRAM Array Employing 7T I-LSVL | |
US20230253042A1 (en) | Semiconductor device and semiconductor system | |
US11990181B2 (en) | Low-power static random access memory | |
Rukkumani et al. | Design and analysis of 8T/10T SRAM cell using charge recycling logic | |
CN118280410B (zh) | 10t1c-sram存算单元、存算阵列、及存算电路 | |
CN116913342B (zh) | 具有存内布尔逻辑运算功能的存储电路及其模块、芯片 | |
CN107025930B (zh) | 用于启用/停用sram中的突发模式读取的地址检测器 | |
CN113921057A (zh) | 一种在内存中实现迭代式异或计算的8t 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 |