一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于非易失存储器存内计算的线性编解码器及其方法

2022-05-11 10:14:48 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,更具体的说是涉及一种基于非易失存储器存内计算的线性编解码器及其方法。


背景技术:

2.线性码是一种广泛应用于内存和通信系统的线性纠错码(error correcting code,简称ecc)。信息的编码/解码,需要通过编解码硬件来实现。但是,存储器和编解码硬件之间数据传输的存在,使得编码与解码的处理过程面临着严重的功耗问题。
3.为了解决数据传输带来的功耗问题,存内计算技术得到人们的广泛关注,其基本思想是将存储与计算融合,从而直接利用存储器进行计算,在减少数据传输,降低功耗的同时,提高整体性能。近年来,多种基于存储器件的imc(in-memory-computing,简称imc)范式已被提出,例如自旋电子器件、电阻器件和相变器件等,其中一些已被用于ecc编解码器的实现。最近,1d1r(一个二极管加一个忆阻器)的设计方案,充分利用了器件的单极性翻转特性来实现模2矢量矩阵乘法(vector matrix multiplication,简称vmm),进而完成编解码的实现。然而,由于该器件对高阈值电压的要求,整体功耗仍然很高。
4.因此,提供一种功耗低延迟小的基于非易失存储器存内计算的线性编解码器及其方法是本领域技术人员亟需解决的问题。


技术实现要素:

5.有鉴于此,本发明提供了一种基于非易失存储器存内计算的线性编解码器及其方法,在保证功能正确实现的前提下,利用较小的功耗开销实现非易失存储器存内计算的线性编解码。
6.为了实现上述目的,本发明采用如下技术方案:
7.一种基于非易失存储器存内计算的线性编解码器,作为编码器时,存储生成矩阵h1内的数据,作为解码器时,存储奇偶校验矩阵h2内的数据;其特征在于,包括:存储阵列和计算模块;所述存储阵列与所述计算模块相连;
8.所述存储阵列包括m
×
n个非易失存储器,其中m为每列非易失存储器的个数,n为每行非易失存储器的个数;在所述存储阵列中,每行上的所述非易失存储器连接于同一条源线sl,每列上的所述非易失存储器连接于同一条位线bl;
9.所述生成矩阵h1或所述奇偶校验矩阵h2内的数据分别通过所述源线sl和所述位线bl对应加载至m
×
n个所述非易失存储器内存储;
10.所述计算模块为三端口非易失存储器阵列,每条存储阵列内的源线sl上分别对应连接在一个三端口非易失存储器的位线上,所有所述三端口非易失存储器还连接于同一条计算位线bl。
11.优选的,包括:所述存储阵列的非易失存储器为二端口非易失存储器,作为编码器时,所述二端口非易失存储器内对应存储的是生成矩阵h1内的数据;其中,m为所述生成矩
阵h1的列数同时为源线sl的数量,n为生成矩阵h1的行数同时为位线bl的数量;
12.每条所述源线sl上连接n个所述二端口非易失存储器,每条所述位线bl上连接的m个所述二端口非易失存储器;所述生成矩阵h1内m列数据依次通过m条所述源线sl加载至所述二端口非易失存储器中,n行数据依次通过n条所述位线bl加载至所述二端口非易失存储器中;
13.所述计算模块内包括m个三端口非易失存储器并且分别与m条所述源线sl相连,且所述计算模块内的m个所述三端口非易失存储器均连接同一条计算位线。
14.优选的,包括:所述存储阵列的非易失存储器为二端口非易失存储器,作为解码器时,所述二端口非易失存储器内对应存储的是奇偶校验矩阵h2内的数据;m为所述奇偶校验矩阵h2的列数同时为源线sl的数量,n为所述奇偶校验矩阵h2的行数同时为位线bl的数量;
15.每条所述源线sl上连接n个所述二端口非易失存储器,每条所述位线bl上连接的m个所述二端口非易失存储器;所述奇偶校验矩阵h2内m列数据依次通过m条所述源线sl加载至所述二端口非易失存储器中,n行数据依次通过n条所述位线bl加载至所述二端口非易失存储器中;
16.所述计算模块内包括m个三端口非易失存储器并且分别与m条所述源线sl相连,且所述计算模块内的m个所述三端口非易失存储器均连接同一条计算位线。
17.优选的,所述存储阵列的非易失存储器为三端口非易失存储器,作为编码器时,在所述存储阵列中,所述三端口非易失存储器内对应存储的是生成矩阵h1内的数据;其中,m为所述生成矩阵h1的列数同时为源线sl的数量,n为生成矩阵h1的行数同时为位线bl的数量;
18.每条所述源线sl上连接n个所述三端口非易失存储器,每条所述位线bl上连接的m个所述三端口非易失存储器;所述生成矩阵h1内m列数据依次通过m条所述源线sl加载至所述三端口非易失存储器中,n行数据依次通过n条所述位线bl加载至所述三端口非易失存储器中;
19.所述计算模块包括m个三端口非易失存储器并且分别与m条所述源线sl相连,且所述计算模块中的m个所述三端口非易失存储器均连接同一条计算位线。
20.优选的,所述存储阵列的非易失存储器为三端口非易失存储器,作为解码器时,在所述存储阵列中,所述三端口非易失存储器内对应存储的是奇偶校验矩阵h2内的数据;m为所述奇偶校验矩阵h2的列数同时为源线sl的数量,n为所述奇偶校验矩阵h2的行数同时为位线bl的数量;
21.每条所述源线sl上连接n个所述三端口非易失存储器,每条所述位线bl上连接的m个所述三端口非易失存储器;所述奇偶校验矩阵h2内m列数据依次通过m条所述源线sl加载至所述三端口非易失存储器中,n行数据依次通过n条所述位线bl加载至所述三端口非易失存储器中;
22.所述计算模块内包括m个三端口非易失存储器并且分别与m条所述源线sl相连,且所述计算模块内的m个所述三端口非易失存储器均连接同一条计算位线。
23.一种基于非易失存储器存内计算的线性编解码方法,包括以下步骤:
24.s1.加载生成矩阵h1或奇偶校验矩阵h2,其中,所述生成矩阵h1或奇偶校验矩阵h2内每行的数据对应存储于存储阵列每条位线bl上的非易失存储器中,每列的数据对应存储
于存储阵列每条源线sl上的非易失存储器中;
25.s2.将需要编码的数据位d或需要解码的码字r转换为二进制电压,按时间顺序对应施加到n条位线bl上,经过所述存储阵列后流入至所述计算模块内m个三端口非易失存储器中;其中码字r为编码后得到的码字;
26.s3.所述计算模块内的m个三端口非易失存储器中根据所述存储阵列产生的电流判断是否需要完成阻态的翻转,其中若存储阵列产生的电流大于所述计算模块中的三端口非易失存储器实现阻态翻转所需的电流阈值,则所述计算模块中的三端口非易失存储器的实现阻态的翻转,完成vmm操作,若存储阵列产生的电流小于所述计算模块中的三端口非易失存储器实现阻态翻转所需的电流阈值,则所示计算模块保持原始阻态输出,从而完成编码或解码过程。
27.优选的,当s1中加载的是生成矩阵h1时,进行的是编码过程,s2中输入的是数据位d,s3输出的是码字r。
28.优选的,当s1中加载的是奇偶校验矩阵h2时,进行的是解码过程,s2输入的是码字r,s3输出的是校验子z。
29.优选的,s2中,将数据位d或码字r转换为二进制电压后,再施加到n条位线bl上,其中二进制电压数据为n位向量。
30.经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于非易失存储器存内计算的线性编解码器及其方法,基于三端口非易失存储器本身的单极性翻转特性,仅需控制通入的单极性电流大小即可利用单个三端口非易失存储器实现所在支路编解码所需的模2乘加运算,并将结果输出并存储于三端口非易失存储器中,该过程在保证功能正确实现的前提下,有效降低了功耗开销,减小了延迟。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
32.图1附图为二端口非易失存储器的结构示意图;
33.图2附图为三端口非易失存储器的结构示意图;
34.图3附图为本发明实施例中提供的一种基于非易失存储器存内计算的线性编解码器的框架结构示意图;
35.图4附图为本发明实施例中提供的一种基于非易失存储器存内计算的线性编码器的具体结构示意图;
36.图5附图为本发明实施例中提供的一种基于非易失存储器存内计算的线性解码器的具体结构示意图;
37.图6附图为本发明实施例中提供的一种基于非易失存储器存内计算的线性编码器的具体结构示意图;
38.图7附图为本发明实施例中提供的一种基于非易失存储器存内计算的线性解码器的具体结构示意图。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.线性码是有数据位和奇偶校验位组成的线性纠错码。在线性代码块中,奇偶校验位的长度为k。为了实现纠错函数,线性码的长度最多为2
k-1,数据位的长度最多为2
k-1-k。
41.二端口非易失存储器与三端口非易失存储器的结构如图1-2所示。对于二端口非易失存储器来说,流经该器件的电流可以控制其阻态翻转;而对于三端口非易失存储器来说,通过该器件下方的电流控制其阻态翻转。对于三端口非易失存储器来说,当它相关的参数设置为适当的范围时,三端口非易失存储器可以实现超高速的无场确定性翻转。同时,这种翻转情况是单极性的,这意味着无论通过器件下方的电流极性如何,该器件的阻态方向都可以实现翻转。
42.本发明实施例公开了一种基于非易失存储器存内计算的线性编解码器,作为编码器时,存储生成矩阵h1内的数据,作为解码器时,存储奇偶校验矩阵h2内的数据;其特征在于,包括:存储阵列和计算模块;存储阵列与计算模块相连;
43.存储阵列包括m
×
n个非易失存储器,其中m为每列非易失存储器的个数,n为每行非易失存储器的个数;在存储阵列中,每行上的非易失存储器连接于同一条源线sl,每列上的非易失存储器连接于同一条位线bl;
44.生成矩阵h1或奇偶校验矩阵h2内的数据分别通过源线sl和位线bl对应加载至m
×
n个非易失存储器内存储;
45.计算模块为三端口非易失存储器阵列,每条存储阵列内的源线sl上分别对应连接在一个三端口非易失存储器的位线上,所有三端口非易失存储器还连接于同一条计算位线bl。
46.为了进一步实施上述技术方案,包括:存储阵列的非易失存储器为二端口非易失存储器,作为编码器时,二端口非易失存储器内对应存储的是生成矩阵h1内的数据;其中,m为生成矩阵h1的列数同时为源线sl的数量,n为生成矩阵h1的行数同时为位线bl的数量;
47.每条源线sl上连接n个二端口非易失存储器,每条位线bl上连接的m个二端口非易失存储器;生成矩阵h1内m列数据依次通过m条源线sl加载至二端口非易失存储器中,n行数据依次通过n条位线bl加载至二端口非易失存储器中;
48.计算模块内包括m个三端口非易失存储器并且分别与m条源线sl相连,且计算模块内的m个三端口非易失存储器均连接同一条计算位线。
49.为了进一步实施上述技术方案,包括:存储阵列的非易失存储器为二端口非易失存储器,作为解码器时,二端口非易失存储器内对应存储的是奇偶校验矩阵h2内的数据;m为奇偶校验矩阵h2的列数同时为源线sl的数量,n为奇偶校验矩阵h2的行数同时为位线bl的数量;
50.每条源线sl上连接n个二端口非易失存储器,每条位线bl上连接的m个二端口非易失存储器;奇偶校验矩阵h2内m列数据依次通过m条源线sl加载至二端口非易失存储器中,n行数据依次通过n条位线bl加载至二端口非易失存储器中;
51.计算模块内包括m个三端口非易失存储器并且分别与m条源线sl相连,且计算模块内的m个三端口非易失存储器均连接同一条计算位线。
52.为了进一步实施上述技术方案,存储阵列的非易失存储器为三端口非易失存储器,作为编码器时,在存储阵列中,三端口非易失存储器内对应存储的是生成矩阵h1内的数据;其中,m为生成矩阵h1的列数同时为源线sl的数量,n为生成矩阵h1的行数同时为位线bl的数量;
53.每条源线sl上连接n个三端口非易失存储器,每条位线bl上连接的m个三端口非易失存储器;生成矩阵h1内m列数据依次通过m条源线sl加载至三端口非易失存储器中,n行数据依次通过n条位线bl加载至三端口非易失存储器中;
54.计算模块包括m个三端口非易失存储器并且分别与m条源线sl相连,且计算模块中的m个三端口非易失存储器均连接同一条计算位线。
55.为了进一步实施上述技术方案,存储阵列的非易失存储器为三端口非易失存储器,作为解码器时,在存储阵列中,三端口非易失存储器内对应存储的是奇偶校验矩阵h2内的数据;m为奇偶校验矩阵h2的列数同时为源线sl的数量,n为奇偶校验矩阵h2的行数同时为位线bl的数量;
56.每条源线sl上连接n个三端口非易失存储器,每条位线bl上连接的m个三端口非易失存储器;奇偶校验矩阵h2内m列数据依次通过m条源线sl加载至三端口非易失存储器中,n行数据依次通过n条位线bl加载至三端口非易失存储器中;
57.计算模块内包括m个三端口非易失存储器并且分别与m条源线sl相连,且计算模块内的m个三端口非易失存储器均连接同一条计算位线。
58.一种基于非易失存储器存内计算的线性编解码方法,包括以下步骤:
59.s1.加载生成矩阵h1或奇偶校验矩阵h2,其中,生成矩阵h1或奇偶校验矩阵h2内每行的数据对应存储于存储阵列每条位线bl上的非易失存储器中,每列的数据对应存储于存储阵列每条源线sl上的非易失存储器中;
60.s2.将需要编码的数据位d或需要解码的码字r转换为二进制电压,按时间顺序对应施加到n条位线bl上,经过存储阵列后流入至计算模块内m个三端口非易失存储器中;其中码字r为编码后得到的码字;
61.s3.计算模块内的m个三端口非易失存储器中根据存储阵列产生的电流判断是否需要完成阻态的翻转,其中若存储阵列产生的电流大于计算模块中的三端口非易失存储器实现阻态翻转所需的电流阈值,则计算模块中的三端口非易失存储器的实现阻态的翻转,完成vmm操作,若存储阵列产生的电流小于计算模块中的三端口非易失存储器实现阻态翻转所需的电流阈值,则所示计算模块保持原始阻态输出,从而完成编码或解码过程。
62.为了进一步实施上述技术方案,当s1中加载的是生成矩阵h1时,进行的是编码过程,s2中输入的是数据位d,s3输出的是码字r。
63.为了进一步实施上述技术方案,当s1中加载的是奇偶校验矩阵h2时,进行的是解码过程,s2输入的是码字r,s3输出的是校验子z。
64.为了进一步实施上述技术方案,s2中,将数据位d或码字r转换为二进制电压后,再施加到n条位线bl上,其中二进制电压数据为n位向量。
65.下面将根据实例来对上述技术方案进行进一步说明:
66.以(7,4)汉明码为例,为了确保4个数据位的正确传输或存储,最少需要3个奇偶校验位。而数据编码与解码,则需要通过编解码器硬件来实现。数据的编码过程是由生成矩阵决定(h1)。通过4位数据为d与h1之间的vmm操作,编码得以实现,得到7位码字r。同理,解码操作可以通过r与奇偶校验矩阵(h2)之间的vmm操作,得到3位校验子z,以指示码字的正确与错误信息,并直接指向错误位,以此实现解码。h1,h2分别为:
[0067][0068][0069]
编码器的具体结构如图4所示,解码器的具体结构如图5所示,在编码计算过程中,d中的4个数据位被转换为二进制电压,并分批次按时间顺序施加到交叉阵列的位线(bl)上。如果通过路径中的二端口非易失存储器/三端口非易失存储器处于低电阻(数据1),该路径中的电流将大于右侧三端口非易失存储器的阈值翻转电流,从而实现三端口非易失存储器的磁化方向翻转,即阻态翻转;反过来,如果通过路径中的二端口非易失存储器/三端口非易失存储器处于高电阻状态(数据0),该路径中流向右侧三端口非易失存储器的电流将低于三端口非易失存储器的阈值开关电流,因此三端口非易失存储器保持原始磁化方向,即保持原电阻状态。通过此过程,mtj网络可以实现vmm操作。最终的r也能由右端三端口非易失存储器的最终状态得到。
[0070]
解码器的实现与编码器的实现类似,同样是利用二端口非易失存储器进行h2存储,三端口非易失存储器进行vmm计算的方案。z=r〃h2的vmm计算结果由三端口非易失存储器表示。
[0071]
图6为以三端口非易失存储器进行存储的编码器具体结构,图7为以三端口非易失存储器进行存储的解码器具体结构。
[0072]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0073]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献