用于处理矩阵数据的处理器和方法技术

技术编号:2863201 阅读:197 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种处理矩阵数据的处理器和方法。这种处理器包括M个独立的向量寄存器堆,可以一起存储一个具有L个数据元素的矩阵。每个数据元素具有B个二进制位。这个矩阵具有N个行和M个列,并且L=N*M。每个列具有K个子列。N≥2,M≥2,K≥1,以及B≥1。每个行和每个子列都是可寻址的。这种处理器不重复存储这L个数据元素。矩阵包括一系列数组,每个数组是矩阵的一个行或子列。处理器可以执行一个对这些数组中的第一数组相对第一数组中的各个数据元素有选择地进行一个操作的指令。(*该技术在2024年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及对存储在处理器中多个向量寄存器堆(vector register file)内的矩阵的行和子列(subcolumn)进行逻辑寻址的技术。
技术介绍
单指令多数据(SIMD)向量处理环境可以用于执行与向量和矩阵数学运算有关的操作。这种数学处理可以涉及诸如图形和数字视频之类的各种多媒体应用。当前与SIMD向量处理有关的问题是由于需要灵活地对向量数据进行操作而产生的。当以标准的SIMD运算操作时,当前将向量数据处理为具有多个元素的单个(水平方向)向量。因此,可以对矩阵的行以传统方式进行水平地访问。然而,经常有必要将矩阵的列作为整体来访问,用当前技术实现这种访问是有问题的。例如,为了访问矩阵的列通常要产生矩阵的转置,这就存在着需要大量的转移/拷贝(move/copy)指令的问题,而且还增加了所需寄存器的数目(即,至少要加倍)。因此,有必要开发一种高效率的对SIMD向量处理中所用的一个矩阵的行和列进行寻址的方法。
技术实现思路
本专利技术提供一种处理器,这种理器包括M个独立的向量寄存器堆,所述M个向量寄存器堆一起用来存储一个具有L个数据元素的矩阵,每个数据元素具有B个二进制位,所述矩阵具有N个行和M个列,所述L=N*M,每个列具有K个子列,所述N≥2,所述M≥2,所述K≥1,所述B≥1,所述N个行的每个行都是可寻址的,所述K个子列的每个子列都是可寻址的,所述处理器不重复存储所述L个数据元素。本专利技术提供了一种处理矩阵数据的方法,这种方法包括提供一个处理器;以及在所述处理器内提供M个独立的向量寄存器堆,所述M个向量寄存器堆一起用来存储一个具有L个数据元素的矩阵,每个数据元素具有B个二进制位,所述矩阵具有N个行和M个列,所述L=N*M,每个列具有K个子列,所述N≥2,所述M≥2,所述K≥1,所述B≥1,所述N个行的每个行都是可寻址的,所述K个子列的每个子列都是可寻址的,所述处理器不重复存储所述L个数据元素。本专利技术提供了一种处理器,这种处理器包括M个独立的向量寄存器堆,所述M个向量寄存器堆一起用来存储一个具有L个数据元素的矩阵,每个数据元素具有B个二进制位,所述矩阵具有N个行和M个列,所述L=N*M,每个列具有K个子列,所述N≥2,所述M≥2,所述K≥1,所述B≥1,所述N个行的每个行都是可寻址的,所述K个子列的每个子列都是可寻址的,所述矩阵包括一系列数组,每个数组是所述矩阵的一个行或子列,所述处理器可以执行一个对所述一系列数组中的第一数组进行一个操作的指令,所述操作是相对所述第一数组中的各个数据元素有选择地进行的。本专利技术提供了一种处理矩阵数据的方法,这种方法包括提供一个处理器;在所述处理器内提供M个独立的向量寄存器堆,所述M个向量寄存器堆一起用来存储一个具有L个数据元素的矩阵,每个数据元素具有B个二进制位,所述矩阵具有N个行和M个列,所述L=N*M,每个列具有K个子列,所述N≥2,所述M≥2,所述K≥1,所述B≥1,所述N个行的每个行都是可寻址的,所述K个子列的每个子列都是可寻址的,所述矩阵包括一系列数组,每个数组是所述矩阵的一个行或子列;以及由所述处理器执行一个指令,所述指令对所述一系列数组中的第一数组进行一个操作,所述操作是相对所述第一数组中的各个数据元素有选择地进行的。本专利技术有益地提供了一种用于对SIMD向量处理中所用的矩阵的行和列进行寻址的高效率处理器和方法。附图说明图1示出了按照本专利技术的实施例的数据元素矩阵的一种布局。图2示出了按照本专利技术的实施例存储图1的矩阵的各个数据元素的物理布局,和用于将各个数据元素读入图1的矩阵的多路转换器。图3示出了按照本专利技术的实施例将各个数据元素从图2的物理布局读入图1的行和子列的读出逻辑表。图4示出了按照本专利技术的实施例用于存储图1的矩阵的各个数据元素的图2的物理布局,以及将图1的矩阵的数据元素写入该物理布局的多路转换器。图5示出了按照本专利技术的实施例将数据元素从图1的矩阵的行和子列写入图4的物理布局的写入逻辑表。图6A-6C示出了一些指令,它们按照本专利技术的实施例使用图2或图4的多路转换器对于图1的矩阵10的行或子列有选择地执行操作。图7示出了按照本专利技术的实施例的一种计算机系统,其具有一个对向量处理中所用的矩阵的行和子列进行寻址的处理器。具体实施例方式图1示出了按照本专利技术的实施例的由一系列数据元素组成的矩阵10的布局。矩阵10包括128个行(标记为行0,1,...,127)和4个列(标记为列0,1,2,3)。行0,1,...,127分别编址为寄存器R0,R1,...,R127(即,寄存器Rn,n=0,1,...,127)。这些列分别分成如下一些子列列0分成子列128,132,...,252;列1分成子列129,133,...,253;列2分成子列130,134,...,254;以及列3分成子列131,135,...,255。子列128,129,...,255分别编址为寄存器R128,R129,...,R255(即,寄存器Rn,n=128,129,...,255)。图1还示出了矩阵10的各个数据元素。每个数据元素包括B个二进制位(例如,B=32)。矩阵10的数据元素具有形式Rn,其中n为行标(n=0,1,...,127),而m为列标(m=0,1,2,3)。例如,R5代表的是矩阵10的一个处在行5、列2的数据元素。如图1所示寄存器R0含有行0(即,数据元素R0,R0,R0,R0);寄存器R1含有行1(即,数据元素R1,R1,R1,R1);…寄存器R127含有行127(即,数据元素R127,R127,R127,R127);寄存器R128含有子列0(即,数据元素R0,R1,R2,R3);寄存器R129含有子列1(即,数据元素R0,R1,R2R3);…寄存器255含有子列128(即,数据元素R0,R1,R2,R3)。移动和重组图1的矩阵10的数据的指令由一个处理器处理,其中这个处理器包括向量寄存器堆,用于访问所述的向量寄存器堆的地址寄存器,以及多路转换器。因此,图2示出了一个处理器15,按照本专利技术的实施例,它包括向量寄存器堆(V0,V1,V2,V3),地址寄存器(A0,A1,A2,A3),以及4:1多路转换器(m0,m1,m2,m3)。在图2中,向量寄存器堆在地址寄存器和多路转换器的配合下使用,以便从向量寄存器堆中读出图1的矩阵10的行或子列。每个向量寄存器堆包括128个寄存器。所述向量寄存器堆的数目(4)与图1的矩阵10的列的数目(4)相等。向量寄存器堆Vj(j=0,1,2,3)包括寄存器Yi,i=0,1,...,127(即,Y0,Y1,...,Y127)。例如,向量寄存器堆V3(即j=3)包括寄存器Y0,Y1,...,Y127。每个向量寄存器堆V0,V1,V2,V3(及其中的128个寄存器)可分别通过地址寄存器A0,A1,A2,A3独立寻址。概括地说,地址寄存器Aj(j=0,1,2,3)对向量寄存器堆Vj的寄存器Yi寻址,如果Aj含有i(i=0,1,...,127)的话。例如,如果地址寄存器A2含有整数4,则地址寄存器A2对向量寄存器堆V2的寄存器Y4寻址。如图2所示,图1的矩阵10的数据元素Rn存储和分布在向量寄存器堆V0,V1,V2,V3内。图2中,如下面将结合图本文档来自技高网...

【技术保护点】
一种处理器,所述处理器包括M个独立的向量寄存器堆,所述M个向量寄存器堆一起用来存储一个具有L个数据元素的矩阵,每个数据元素具有B个二进制位,所述矩阵具有N个行和M个列,所述L=N*M,每个列具有K个子列,所述N≥2,所述M≥2,所述K≥1,所述B≥1,所述N个行的每个行是可寻址的,所述K个子列的每个子列是可寻址的,所述处理器不重复存储所述L个数据元素。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:PA桑登RMP韦斯特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1