使用静态随机存取存储器(SRAM)阵列分段的存储器内计算电路的制作方法
- 国知局
- 2024-07-31 19:21:56
实施例涉及利用静态随机存取存储器(sram)阵列的存储器内计算电路,并且具体地涉及阵列的分段架构。
背景技术:
1、对图1进行参考,图1示出了存储器内计算电路10的示意图。电路10利用静态随机存取存储器(sram)阵列12,sram阵列12由以具有n行和m列的矩阵形式进行布置的标准6tsram存储器单元14形成。作为替代方案,可以改为使用标准的8t存储器单元或具有类似功能性和拓扑结构的sram。每个存储器单元14被编程为存储一位用于存储器内计算操作的计算权重或内核数据。在此上下文中,存储器内计算操作被理解为支持存储在存储器的多个位单元中的多位权重的一种形式的高维矩阵向量乘法(mvm)。位单元组(在多位权重的情况下)可以被视为虚拟突触元素。每一位的计算权重都具有逻辑“1”或逻辑“0”值。
2、每个sram单元14包括字线wl和一对互补位线blt和blc。8t型sram单元将另外包括读取字线rwl和读取位线blr。矩阵的公共行中的单元14通过公共字线wl(并且在8t型实现中通过公共读取字线rwl)而彼此连接。矩阵的公共列中的单元14通过一对公共的互补位线blt和blc(并且在8t型实现中通过公共读取位线blr)而彼此连接。每个字线wl、rwl由字线驱动电路16驱动,该字线驱动电路16可以被实现为cmos驱动电路(例如,串联连接的p沟道和n沟道mosfet晶体管对,从而形成逻辑反相器电路)。施加到字线并由字线驱动电路16驱动的字线信号是根据输入到存储器内计算电路10的特征数据生成的,并由行控制器电路18控制。列处理电路20感测m列的互补位线对blt和blc上(和/或读取位线blr上)的模拟电流信号,并根据那些模拟电流信号生成用于存储器内计算操作的决策输出。列处理电路20可以被实现为支持以下处理:其中列上的模拟电流信号首先被各个地处理,然后是对多个列输出的重新组合。
3、尽管图1中未被明确示出,但是应理解,电路10还包括本领域技术人员已知的常规行解码、列解码和读写电路,用于与如下操作结合使用:将计算权重的位写入到存储器阵列12的sram单元14、以及从存储器阵列12的sram单元14读取计算权重的位。
4、现在对图2进行参考,每个存储器单元14包括两个交叉耦合的cmos反相器22和24,每个反相器包括串联连接的p沟道和n沟道mosfet晶体管对。反相器22和24的输入和输出被耦合以形成锁存电路,该锁存电路具有真数据存储节点qt和互补数据存储节点qc,互补数据存储节点存储所存储的数据位的互补逻辑状态。单元14还包括两个传输(传输门(passgate))晶体管26和28,其栅极端子由字线wl驱动。晶体管26的源极-漏极路径连接在真数据存储节点qt和与真位线blt相关联的节点之间。晶体管28的源极-漏极路径连接在互补数据存储节点qc和与互补位线blc相关联的节点之间。每个反相器22和24中的p沟道晶体管30和32的源极端子被耦合以接收在高电源节点处的高电源电压(例如,vdd),而每个反相器22和24中的n沟道晶体管34和36的源极端子被耦合以接收在低电源节点处的低电源电压(例如,地(gnd)参考)。虽然图2特定于6t型单元的使用,但是本领域技术人员认识到8t型单元的配置类似,并且将进一步包括以下信号路径:该信号路径耦合到存储节点之一并且包括传输(passgate)晶体管,该传输晶体管耦合到读取位线blr并且栅极由读取字线rwl上的信号驱动。字线驱动器电路16通常还被耦合以接收在高电源节点处的高电源电压(vdd)并且参考在低电源节点处的低电源电压(gnd)。
5、行控制器电路18接收用于存储器内计算操作的特征数据,并且响应于此,执行选择字线wl<0>至wl<n-1>中的哪些字线将在存储器内计算操作期间被同时并行访问(或致动)的功能,并进一步用于根据该存储器内计算操作来控制脉冲信号到字线的施加。图1仅作为示例图示了利用脉冲字线信号的所有n个字线的同时致动,应当理解,存储器内计算操作可以替代地利用少于sram阵列的所有行的同时致动。在给定的一对互补位线blt和blc上(或在8t型实现中的读取位线rbl上)的模拟信号取决于存储在对应列的存储器单元14中的计算权重位的逻辑状态、以及施加到那些存储器单元14的脉冲字线信号的(多个)宽度。
6、图1中所图示的实现以脉冲宽度调制(pwm)的形式示出了用于取决于接收到的特征数据为存储器内计算操作所施加的字线信号的示例。对所施加的字线信号使用pwm或周期脉冲调制(ptm)是被用于基于乘法累加(mac)操作的向量线性度进行存储器内计算操作的常用技术。脉冲字线信号格式可以进一步被演变为编码脉冲串,以管理存储器内计算操作的特征数据的块稀疏性。因此认识到,当同时驱动多个字线时,可以使用用于所施加的字线信号的任意一组编码方案。此外,在更简单的实现中,将理解的是,同时致动中的所有施加的字线信号可以改为具有相同的脉冲宽度。
7、图3是时序图,其示出了对于给定的存储器内计算操作将示例脉冲宽度调制的字线信号同时施加到sram阵列12中的多行存储器单元14,以及响应于由于那些字线信号的(多个)脉冲宽度和存储在存储器单元14中的计算权重的位的逻辑状态而导致的单元读取电流的下降而分别在对应的一对互补位线blt和blc上的电压va,t和电压va,c随时间的产生。所示出的电压va电平的表示只是一个示例。在存储器内计算操作的计算周期完成之后,电压va电平返回到位线预充电vdd电平。应当注意,存在这样的风险,即在位线blt和blc中的至少一个上的电压可能会从vdd电压下降到低于写入裕度的电平,其中在该列的存储器单元14之一中相对于所存储的数据位值发生不希望的数据翻转。例如,存储在列的单元14中的逻辑“1”状态可能被翻转为逻辑“0”状态。这种数据翻转在存储在存储器单元中的计算权重中引入了数据错误,从而危及后续的存储器内计算操作的准确性。
8、由于位线电压过度降低而发生的不希望的数据翻转主要是在存储器内计算操作期间以矩阵向量乘法模式同时并行访问字线的影响。此问题不同于sram位单元的正常数据翻转,这是由于当位线接近电源电压vdd的电平时在串行位单元访问中发生的静态噪声容限(snm)问题。在串行访问期间,正常数据翻转是由数据存储节点qt或qc的接地反弹引起的。
技术实现思路
1、在一个实施例中,一种存储器内计算电路,包括:包括多个子阵列的存储器阵列,其中每个子阵列包括被布置成具有多行和多列的矩阵的静态随机存取存储器(sram)单元,每行包括连接到该行的sram单元的字线,并且每列包括连接到该列的sram单元的局部位线,所述sram单元存储用于存储器内计算操作的权重数据的位;用于每一行的字线驱动器电路,具有连接以驱动该行的字线的输出;行控制器电路,其被配置为通过字线驱动器电路向字线施加脉冲来同时致动每个子阵列的仅一个字线以用于存储器内计算操作;以及多个全局位线,其中每个全局位线被电容耦合到多个局部位线。
2、每个全局位线可以平行于多个子阵列中的对应存储器单元列延伸,并且在每个全局位线与多个子阵列中的对应存储器单元列的局部位线之间形成电容耦合。
3、每个全局位线可以替代地平行于多个子阵列的对应子阵列中的存储器单元行延伸,并且在每个全局位线与用于多个子阵列的对应子阵列中的存储器单元列的局部位线之间形成电容耦合。
4、在一个实施例中,耦合到每个全局位线的计算电路包括模数转换器(adc)电路,该adc电路被配置为采样和转换来自全局位线的模拟全局输出电压,以生成用于存储器内计算操作的数字决策输出。
5、在一个实施例中,开关电路被配置为选择性地连接多个全局位线中的至少两个全局位线以用于电荷共享以生成模拟全局输出电压,该模拟全局输出电压由计算电路的模数转换器(adc)电路转换以,生成用于存储器内计算操作的数字决策输出。
本文地址:https://www.jishuxx.com/zhuanli/20240731/182415.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。