CN111078627A - 一种阵列处理器的无冲突访问方法、装置及存储介质 - Google Patents
一种阵列处理器的无冲突访问方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111078627A CN111078627A CN201911232257.9A CN201911232257A CN111078627A CN 111078627 A CN111078627 A CN 111078627A CN 201911232257 A CN201911232257 A CN 201911232257A CN 111078627 A CN111078627 A CN 111078627A
- Authority
- CN
- China
- Prior art keywords
- matrix
- free access
- vector
- memory
- processor
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种阵列处理器的无冲突访问方法,所述方法包括:采用预设数据存储规则存储矢量集合中的任意矩阵;计算所述内存单元中矩阵中任意向量的地址线;将所述矩阵元素对齐;根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。采用本发明,可以实现当处理单元与所述内存单元的数量一致时,实现处理单元无冲突访问内存单元。
Description
技术领域
本发明涉及阵列处理器领域,特别是涉及一种阵列处理器的无冲突访问方法、装置及存储介质。
背景技术
阵列处理器(Array Processor)具有强大的计算能力,高度灵活的可配置性和可扩展性,逐渐成为高性能集成电路的发展方向,一个典型的阵列处理器主要包括控制单元,N个处理单元,M个内存单元。(N≥M)这N个处理单元通过它们之间形成的内联网络来并行访问内存,这个内联网络将组成矢量的N个元素进行对齐。
目前,存在难题的是当M=N时,这个内联网络系统如何解决访问地址无冲突、存取至N×N矩阵中(包括行、列、对角线、连续块、离散块)以及矢量N的对齐等问题。
发明内容
为了解决上述问题,本发明的目的是提供一种阵列处理器的无冲突访问方法、装置及存储介质,可以实现当处理单元与所述内存单元的数量一致时,实现处理单元无冲突访问内存单元。
基于此,本发明提供了一种阵列处理器的无冲突访问方法,所述方法包括:
采用预设数据存储规则存储矢量集合中的任意矩阵;
计算所述内存单元中矩阵中任意向量的地址线;
将所述矩阵元素对齐;
根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。
其中,所述预设数据存储规则包括:
F(i,u)≠F(u,i);
F(i,u)≠F(i,v);
F(u,u)≠F(v,v);
F(in-1:hun-1:h,ih-1:0uh-1:0)≠F(in-1:hvn-1:h,ih-1:0vh-1:0);
F(un-1:hin-1:h,uh-1:0ih-1:0)≠F(vn-1:hin-1:h,vh-1:0ih-1:0);
其中,所述F[i,j]表示所述矩阵中的矩阵元素A[i,j]存储在内存单元q中。
其中,所述采用预设数据存储规则存储矢量集合中的任意矩阵还包括:
其中,所述计算所述内存单元中矩阵中任意向量的地址线包括:
其中,将所述矩阵元素对齐包括:
其中,所述矢量集合包括行、列、对角、连续块、离散块。
其中,所述N=2n,h=n/2,矩阵A可以由N个连续的矩形区域组成,将第i个表示为{A[in-1:hkn-1:h,ih-1:0kh-1:0]|0≤k<N}其中0≤i<N。而一个离散的相似的矩形区域可以表示为{A[kn-1:hin-1:h,kh-1:0ih-1:0]|0≤k<N}其中0≤i<N。
本发明实施例还提供了一种阵列处理器的无冲突访问装置,所述装置包括:
存储模块,用于采用预设数据存储规则存储矢量集合中的任意矩阵;
计算模块,用于计算所述内存单元中矩阵中任意向量的地址线;
对齐模块,用于将所述矩阵元素对齐;
访问模块,用于根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。
本发明实施例还提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
本发明,首先采用预设数据存储规则存储矢量集合中的任意矩阵;计算所述内存单元中矩阵中任意向量的地址线;将所述矩阵元素对齐;根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。采用本发明的非线性映射方案使得M=N时,矩阵处理器依然能够实现对矩阵矢量数据的无冲突访问并且达到相应的运算能力,有效的减少的内存使用个数,降低了开销。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的阵列处理器的无冲突访问方法的流程图;
图2是本发明实施例提供的阵列处理器的无冲突访问装置的示意图;
图3是本发明实施例提供的矢量集合中N向量的无地址冲突访问的示意图;
图4是本发明实施例提供的立方网络图的示意图;
图5是本发明实施例提供的立方网络图的另一示意图;
图6是本发明实施例提供的互联网络的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的阵列处理器的无冲突访问方法的流程图,所述方法包括:
S101、采用预设数据存储规则存储矢量集合中的任意矩阵;
矩阵处理器的速度和效率主要取决于矢量组件与并行内存模块之间的映射关系。即F:{0,…,N-1;0,…,N-1}->{0,...M-1},F:{i,j}=q表示矩阵元素A[i,j]存储在内存模块q中。对于N=2n(n>1),如果存在常数a、b,使得F(i,j)=a×i+b×j,那么,这就是一种线性的映射方法。这种映射方法要实现对矩阵数据快速无冲突的访问需要较多个数的内存。而非线性映射方法,就是找到一个非线性函数F:{0,…,N-1;0,…,N-1}->{0,…,M-1}同样使矩阵A中任意一个元素A[i,j]储存在内存模块F[i,j]=q中,然后找到地址线的分配方式来保证实现每个元素的无冲突访问。
二维矩阵数据都可以通过行主顺序映射在二维网格中,而不改变它们在矩阵空间的顺序,为了保证A[i,j]在内存模块中的位置F[i,j]实现无冲突访问,就必须保证任意两个矢量都不会存储在相同的内存模块中,因此,必须保证对于任意的u≠v,函数F[i,j]必须满足如下关系:
a、F(i,u)≠F(u,i);
b、F(i,u)≠F(i,v);
c、F(u,u)≠F(v,v);
e、F(in-1:hun-1:h,ih-1:0uh-1:0)≠F(in-1:hvn-1:h,ih-1:0vh-1:0);
f、F(un-1:hin-1:h,uh-1:0ih-1:0)≠F(vn-1:hin-1:h,vh-1:0ih-1:0);
对于任意的整数i用其二进制表达为i=in-1×2n-1+in-2×2n-2+…+i0,当j>m时ij:m表示i的第m bit到第j bit之间的j-m+1bit数据,ij:mip:q表示ij:m、ip:q之间的拼接组成j-m+p-q+2bit数;
一般来讲,对于行、列、对角线的矢量是一维数据,连续块或者离散块代表二维数据,假定N=2n,h=n/2,矩阵A可以由N个连续的的矩形区域组成,将第i个表示为{A[in-1:hkn-1:h,in-1:0kn-1:0]|0≤k<N}其中0≤i<N。而一个离散的相似的矩形区域可以表示为{A[kn-1:hin-1:h,kn-1:0in-1:0]|0≤k<N},其中,0≤i<N。
根据对以上矩阵元素在矩阵块A中的表达方式观察,于是可定义以下函数 如果F(i,j)能满足方程组(a)、(b)、(c)、(d)、(e)、(f),这样就相当于找到了一个满足条件的映射方案。现做如下验证:假设F(i,u)=F(i,v),则进一步的有得到u=v,与u≠v矛盾,所以方程(a)成立,同理我们可证明方程(b)、(c)、(d)、(e)、(f)。表明利用这种数据存储方案可以存储U中的任意一个矩阵A。
S102、计算所述内存单元中矩阵中任意向量的地址线;
为了保证所有的内存模块都能并行无冲突的读写这个任意矢量A,那么内存系统的地址硬件模块就要同时计算出他们各自的唯一地址。为此定义函数并且0≤G,L<N,因此对于满足条件的G,L可以推出 且上述方程组表明对于任何固定G,表示把部分A中的元素划分成矢量N,并且对于给定的G和L,还能表示A中任意行、列以及离散块矢量:
综合以上两组方程式,可以得到U中的任意向量N的在内存模块k中的地址线在G、L给定的情况下,可用或者用来表示。当N=2n时,这种结构的存储模块地址线的条数为4n,分别标记为ɑn-1,bn-1,cn-1,dn-1,…,ɑ0,b0,c0,d0。对于给定的G,L和二进制控制信号s,地址线ɑi,bi,ci,di分别被以及Li驱动。对于容量为N的内存模块每个内存模块有n跟地址线,标记为0~n-1。当i∈[h:n)且ki=0,ki-h=0时,内存模块k的地址线由di和di-h表示,当ki=0,ki-h=1由ci,ai-h表示,当ki=1,ki-h=0时,由bi和ci-h表示,当ki=1,ki-h=1则由ai和bi-h表示。平均每4根地址线控制一个内存模块,N个内存模块中的任意内存模块k的地址线由表示。以上说明表面这种内存系统可以实现U中所有N向量的无地址冲突访问,请参考图3,图3是本发明实施例提供的矢量集合中N向量的无地址冲突访问的示意图。
S103、将所述矩阵元素对齐;
在计算处理U中任意给定的两个向量时,为了保证向量中对应的元素能够顺利完成各种运算,并且个元素运算完成之后的结果返回放在对应的存储位置,就需要保证向量中各元素必须要对齐。如果存在一个系统y=φ(x)使得0≤x<N时,得到的φ是整数集[0:N-1]的一个排列,那么就说φ能够通过这个网络。现做如下定义(0≤i<N):
1、σi(x)=F(i,x);
2、βi(x)=F(x,i);
3、λ(x)=F(x,x);
5、υi(x)=F(in-1:hxn-1:h,ih-1:0xh-1:0);
6、μi(x)=F(xn-1:hin-1:h,xh-1:0ih-1:0);
为了保证能存储U中的任何一个向量N中的第x个元素,并且取数的时候也放在向量中相对应的位置,按照这种映射方案,那么以上这些排列以及其反函数的排列也必须能够通过互联网络,为此采用了Pease’s在文章中提到的间接二元n立方网络。根据Pease's的理论:对于x=xn-1…x0和y=yn-1…y0,当且仅当y=φ(x)在0≤i<n时满足时,φ能通过这个间接二元n立方网络。根据这一理论这个间接二元n立方网络,先定义ζ(x)=xh-1:0xn-1:h,现对上述结论给出如下证明:
根据Pease's的理论,图4、图5是一个间接二进制n(n=3、4)立方网络图(N=8)和(N=16),从图中可以看到这个二进制n立方网络通过n个切换节点使得N个输入连接到N个输出。图6则是ζ在N=16的互联网络,ζ表示的互联结构经过一次转换就可得到ζ的排列。假设ω代表λ(x)、δ(x)、μi(x)、由前面的证明可知ω→ζ可以通过n立方二进制网络,因为ζ=ζ-1则有ω=(ω→ζ)→ζ。当前面n级互联网络和n立方二进制网络保持一致,第n+1采用ζ排列转换那么本文所推荐的互联网络就能达到和n立方二进制互联网络一样的效果。
S104、根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。
采用本发明的非线性映射方案使得M=N时,矩阵处理器依然能够实现对矩阵矢量数据的无冲突访问并且达到相应的运算能力。有效的减少的内存使用个数,降低了开销。
图2是本发明实施例提供的阵列处理器的无冲突访问装置的示意图,所述装置包括:
存储模块201,用于采用预设数据存储规则存储矢量集合中的任意矩阵;
计算模块202,用于计算所述内存单元中矩阵中任意向量的地址线;
对齐模块203,用于将所述矩阵元素对齐;
访问模块204,用于根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。
本发明实施例提出的阵列处理器的无冲突访问装置装置的技术特征和技术效果与本发明实施例提出的方法相同,在此不予赘述。
此外,本发明的实施例还提出一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
此外,本发明的实施例还提出一种阵列处理器的无冲突访问设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法的步骤。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本发明的保护范围。
Claims (10)
1.一种阵列处理器的无冲突访问方法,其特征在于,包括:
采用预设数据存储规则存储矢量集合中的任意矩阵;
计算所述内存单元中矩阵中任意向量的地址线;
将所述矩阵元素对齐;
根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。
6.如权利要求1所述的阵列处理器的无冲突访问方法,其特征在于,所述矢量集合包括行、列、对角线、连续块、离散块。
8.一种阵列处理器的无冲突访问装置,其特征在于,包括:
存储模块,用于采用预设数据存储规则存储矢量集合中的任意矩阵;
计算模块,用于计算所述内存单元中矩阵中任意向量的地址线;
对齐模块,用于将所述矩阵元素对齐;
访问模块,用于根据所述地址线,所述处理单元访问所述内存单元,并返回结果至对应的存储单元。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911232257.9A CN111078627A (zh) | 2019-12-04 | 2019-12-04 | 一种阵列处理器的无冲突访问方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911232257.9A CN111078627A (zh) | 2019-12-04 | 2019-12-04 | 一种阵列处理器的无冲突访问方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111078627A true CN111078627A (zh) | 2020-04-28 |
Family
ID=70312912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911232257.9A Pending CN111078627A (zh) | 2019-12-04 | 2019-12-04 | 一种阵列处理器的无冲突访问方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078627A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394553A (en) * | 1991-06-12 | 1995-02-28 | Lee Research, Inc. | High performance array processor with nonlinear skewing of elements |
CN109558091A (zh) * | 2018-12-11 | 2019-04-02 | 广东省新代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
-
2019
- 2019-12-04 CN CN201911232257.9A patent/CN111078627A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5394553A (en) * | 1991-06-12 | 1995-02-28 | Lee Research, Inc. | High performance array processor with nonlinear skewing of elements |
CN109558091A (zh) * | 2018-12-11 | 2019-04-02 | 广东省新代通信与网络创新研究院 | 查找表存储方法、装置及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7175548B2 (ja) | 大規模並列ニューラル推論コンピューティングのためのシステムおよび方法 | |
CN109284130B (zh) | 神经网络运算装置及方法 | |
US5202847A (en) | Digital signal processing | |
US20180121789A1 (en) | Data processing method and apparatus | |
JP3546437B2 (ja) | 適応形ビデオ信号演算処理装置 | |
CN101075185A (zh) | 具有减小的带宽要求的矩阵乘法 | |
JP2002518730A (ja) | 単一命令複数データシステムに使用するレジスタにアクセスするレジスタおよびアクセス方法 | |
JPS63136167A (ja) | 直交変換プロセッサ | |
US20200081744A1 (en) | Hardware environment and method of performing matrix multiplication in artificial intelligence applications | |
CN108108190B (zh) | 一种计算方法及相关产品 | |
US4916649A (en) | Method and apparatus for transforming a bit-reversed order vector into a natural order vector | |
CN111078627A (zh) | 一种阵列处理器的无冲突访问方法、装置及存储介质 | |
NL1001663C2 (nl) | Inrichting voor tweedimensionale discrete cosinustransformatie. | |
KR0139699B1 (ko) | 이산 코사인 변환장치 | |
CN109669666B (zh) | 乘累加处理器 | |
CN115713104A (zh) | 用于神经网络的数据处理电路、神经网络电路和处理器 | |
Huo et al. | Dynamics of high-order BAM neural networks with and without impulses | |
CN110929854B (zh) | 一种数据处理方法、装置及硬件加速器 | |
CN113536221B (zh) | 运算方法、处理器以及相关产品 | |
CN104391823A (zh) | 一种基于a=ldu三角分解法求解电力系统节点阻抗矩阵的方法 | |
US5987486A (en) | Apparatus and method for data processing | |
US5166896A (en) | Discrete cosine transform chip using neural network concepts for calculating values of a discrete cosine transform function | |
KR19990077845A (ko) | 파이프라인된 고속 푸리에 변환 프로세서 | |
US20210255804A1 (en) | Data scheduling register tree for radix-2 fft architecture | |
CN114706557B (zh) | 一种asic芯片及蒙哥马利模乘的实现方法和装置 |
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 |