首页 / 行列访问端口分离的矩阵寄存器文件

行列访问端口分离的矩阵寄存器文件失效专利 发明

技术内容

行列访问端口分离的矩阵寄存器文件 技术领域:本发明涉及向量微处理器中的向量寄存器文件,特别是一种 行列访问端口分离的向量寄存器文件(简称矩阵寄存器文件)。 背景技术:为了支持矩阵或块运算,已有向量微处理器中的向量指令译 码部件和向量运算部件利用支持行列向量访问的向量寄存器文件实现矩阵 转置以及不同数据大小的行列向量访问。 向量指令译码部件对向量指令进行译码,将译码结果(执行何种指令、 源操作数位置、以及目的操作数位置等)发送到向量运算部件和向量寄存器 文件。向量运算部件由丄(丄为正整数,且通常为2的整数次幂)个标量运 算单元组成,它按照译码结果对来自向量寄存器文件或存储器的源操作数进 行运算,并将运算结果写入由译码结果指定的向量寄存器或存储器。 支持行列向量访问的向量寄存器文件存放和提供向量微处理器运行时 所需的向量数据。 支持行列向量访问的向量寄存器文件由向量寄存器文件主体和读写端 口组成。向量寄存器文件主体由i^个读地址译码器、i^个读出缓冲器、 个写地址译码器以及存储单元阵列构成,存储单元阵列由w个行向量寄存器 ra。-ra^或m个列向量寄存器cra。-craw_,构成,iv为行向量寄存器的数目, M为列向量寄存器的数目,w和M为正整数且通常为2的整数次幂,因此存 储单元阵列包含A^M个元素。存储单元阵列按行划分为iV个M + 5位的存储 单元行,每行由M个元素组成,每个元素的位宽为B。这iV个存储单元行与 w个行向量寄存器ra。-ra^—一对应,用于实现行向量寄存器的存取;该存元阵列按列划分为M个iV"位的存储单元列,每列由iV个同列的元素组成。 这M个存储单元列与M个列向量寄存器CFi?。 -CW?^ —一对应,用于实现列 向量寄存器的存取。以cra^为例,该列向量寄存器包括所有行向量寄存器 ,的最后一个元素^—,。由于存储单元阵列的组成方式,已有支持行 列向量访问的向量寄存器文件不仅可视作由W个行向量寄存器构成,还可视 作由M个列向量寄存器构成。 读写端口是向量寄存器文件与向量微处理器中其他部件的接口,它允许 向量微处理器中其他部件访问向量寄存器文件主体存储的数据。已有支持行 列向量访问的向量寄存器文件中,读写端口均为行列向量访问复用的端口 , 即一个读端口不仅支持对行向量寄存器进行读取,还支持对列向量寄存器进 行读取,而一个写端口不仅支持对行向量寄存器进行写入,还支持对列向量 寄存器进行写入。 为了支持多个向量部件同时工作,即同时从向量寄存器中获取多个源操 作数和写入多个目的操作数,向量寄存器文件需要多个读端口和多个写端 口,而不同读端口或写端口之间的访问相互独立。因此,已有支持行列向量 访问的向量寄存器文件具有多个读写端口,即A^个读端口和iV『个写端口构 成,其中A^H且AV^。每个读端口都由行列选择信号线、读地址总线、读 使能信号线以及读数据总线组成,其中行列选择信号线用于选择当前是对行 向量寄存器进行读取还是对列向量寄存器进行读取,读地址总线的位宽为 M4X(log2iV,log2M),即log2iV和log2M两者的最大值,读数据总线的位宽为 PB或MW。每个写端口都由行列选择信号线、写地址总线、写使能信号 线以及写数据总线组成,其中行列选择信号线用于选择当前是对行向量寄存器进行读取还是对列向量寄存器进行写入,写地址总线的位宽为 M4X(log27V,log2M),即log2^V和log2M两者的最大值,写数据总线的位宽为 读端口与向量寄存器文件主体中的读地址译码器一一对应,其中每个读 端口的行列选择信号线、读地址总线和读使能信号线是相应读地址译码器的 输入。每个读地址译码器产生iV个行读地址选择信号和M个列读地址选择信 号,这些信号分别形成行读地址选择总线和列读地址选择总线。iV个行读地 址选择信号分别控制存储单元阵列中的iV个存储单元行,每一存储单元行存 储了一个行向量寄存器的所有元素A-M个列读地址选择信号分别控 制存储单元阵列中的M个存储单元列,每一存储单元列存储了 一个列向量寄 存器的所有元素。存储单元阵列在这些读地址选择信号的作用下,将相应存 储单元行或存储单元列的内容读出至相应读端口的读出缓冲器,读出缓冲器 将该内容输出至该读端口的读出数据总线上。 写端口与向量寄存器文件主体中的写地址译码器一一对应,每个写端口 的行列选择信号线、写地址总线和写使能信号线是相应写地址译码器的输 入。每个写地址译码器产生iV个行写地址选择信号和M个列写地址选择信 号,这些信号分别形成行写地址选择总线和列写地址选择总线。^个行写地 址选择信号分别控制存储单元阵列中的W个存储单元行,M个列读地址选择 信号分别控制存储单元阵列中的M个存储单元列。存储单元阵列在这些写地 址选择信号的作用下,将写数据总线上的内容写入相应存储单元行或存储单 元列。科学计算和图像处理等大量算法需要对数据块或矩阵的行向量和列向 量同时读取,矩阵乘法就是最典型的算法之一。矩阵乘法X吓可由下面的公 式表达,其中Z吓中的每个元素等于义中一个行向量(如;cu,x,2,...,^)乘以 7中的一个列向量(如&,少21,...,^ )并将"个乘积累加的结果。例如,Z吓 的第"行第6列元素就等于|>。£*^ ,即X中第"个行向量与7中第6个列向 量相乘,并将Z)个乘积累加( formula see original document page 9 由上述计算公式可知,矩阵乘法需要大量同时使用矩阵的行向量和列向 量,已有一些专利讨论了矩阵行向量和列向量访问的实现方法。如美国专利 US 6, 084, 771 Bl (Processor PROCESSOR WITH REGISTER FILE ACCESSIBLE BY ROW COL固N TO ACHIEVE DATA ARRAY TRANSPOSITION)通过在向量寄存器文 件中增加列读地址译码器、转置控制以及行列读地址复用器,使得同一个端 口既可以读取行向量寄存器,又可以在转置模式下读取列向量寄存器。该专 利通过列加载指令利用行列复用的端口读取列向量寄存器的内容,并将其写 入行向量寄存器,从而加速矩阵转置操作。美国专利US20060036801 Al formula see original document page 9(SCAIABLE MATRIX REGISTER FILE)提出利用硬件查找表实现逻辑行/列元 素到物理行/列元素的映射,使得任意逻辑行中的任意两个元素不处于同一 个物理行,且任意逻辑列中的任意两个元素不处于同一个物理列。这样,该 向量寄存器文件可以通过同一个端口既读取行向量寄存器,又读取列向量寄 存器。这两项专利均通过端口复用机制,使得一个端口既能访问行向量寄存 器,又能访问列向量寄存器。尽管这两种行列端口复用机制降低了端口数目, 但是它们存在两个缺点: 1) 实现行、列向量寄存器同时访问的代价较大。 一方面,釆用行列 访问复用机制的端口由于同时实现了行列访问机制,其实现代价 比非复用的行访问端口或列访问端口大。另一方面,实现行、列 向量寄存器同时访问至少需要两个端口,若全部或部分端口釆用 行列复用机制,则相对端口完全釆用非复用机制的,釆用复用机 制的向量寄存器的面积、功耗以及延时较大。 2) 行列向量访问机制在某些情况下不能工作。 一方面,向量寄存器 文件中行向量寄存器和列向量寄存器中元素的数目分别为M和 iV,而M和iV往往不相等。因此,行列向量寄存器的皿不同, 不能直接进行运算。已有文献和专利未对该情况提出解决方法。 另一方面,已有专利读取行向量寄存器或列向量寄存器时是将其 所有元素取出,而M或7V往往大于向量运算部件中标量运算单元 的数目丄,因此,即便M和W相等,向量运算部件也不能一次性 处理源操作数中的所有元素。已有文献和专利也未对这种情况提 出解决方法。综上所述,如何以较低代价实现行向量寄存器和列向量寄存器的同时访 问,并为向量运算部件提供与之运算能力匹配的源操作数带宽仍是本领域研 究的热点问题。 发明内容:本发明要解决的技术问题是针对现有向量寄存器文件实现时 访问行向量和列向量寄存器的代价较大以及行列向量的元素数目与向量运 算部件处理能力不匹配的问题,提供一种行列访问端口分离、支持行列向量 分段访问且支持行列向量同时读写的矩阵寄存器文件,该矩阵寄存器文件通 过分离的行向量访问端口和列向量访问端口以及行列向量分段访问机制,不 仅降低实现同时访问行向量和列向量寄存器的代价,消除矩阵处理过程中的 矩阵转置搡作,提高矩阵运算的效率;还完善了行列向量访问机制,解决已 有矩阵寄存器文件的数据带宽与向量运算部件运算能力不匹配的问题。 本发明的技术方案是: 本发明由矩阵寄存器文件主体和读写端口组成。 矩阵寄存器文件主体由A^个行读地址译码器、A^个行读出缓冲器、 W,个行写地址译码器、A^个列读地址译码器、A^个列读出缓冲器、A^个 列写地址译码器以及包含A^M个元素的存储单元阵列构成,其中A^、 W,、 WCT、 AW均为正整数且iV朋H且iV^^l且A^^)且A^》0且AV+W^21。 W为矩阵寄存器文件中行向量寄存器的数目,且W为向量运算部件中标量运 算部件数目的倍数,即A^"Z,"和Z为正整数且为2的整数次幂,丄为向量 运算部件中标量运算单元的数目,M为矩阵寄存器文件中列向量寄存器的数 目,且M为向量运算部件中标量运算部件的数目的倍数,即M-mZ,其中附 为正整数且为2的整数次幂。存储单元阵列按行划分为W个存储单元行,每行由M个同行的元素 £。-&—!组成,每个元素的位宽为S, ^为正整数,这样,每个存储单元行有 厘*3位。这w个存储单元行即构成iv个行向量寄存器ra。-w^,,实现相应 行矩阵寄存器的存取。每个存储单元行由附个子行组成,每个子行包含连续 的丄个元素。第/个行向量寄存器的第/个子行用ra,L/]表示,该子行由元素 ^-An构成,其中^0且""且^0且/<附;该存储单元阵列按列划分为 M个存储单元列,每列由iV个同列的元素组成,每个存储单元列有A^5位。 这M个存储单元列即构成M个列向量寄存器Cra。 -Cra^ ,实现相应列向量 寄存器的存取。每个存储单元列由w个子列组成,每个子列包含连续的Z个 元素。第"个列向量寄存器的第v个子列用CKiUvl表示,其中"20且v〈w且 "o且 为了区分行向量寄存器访问和列向量寄存器访问,读写端口由分离的行 读写端口和列读写端口组成,行读写端口由A^个行读端口、 AV个行写端 口组成,列读写端口由A^个列读端口和A^个列写端口组成: 每个行读端口由行读地址总线、行读使能信号线以及行读数据总线组 成。每个行写端口由行写地址总线、行写使能信号线以及行写数据总线组成。 行读地址总线和行写地址总线的宽度为10§2—*7\0位,支持向量处理器对矩 阵寄存器文件中任意行向量寄存器的任意子行进行访问。行读数据总线和行 写数据总线的宽度为Z * 5位,即 一次访问可为£个标量功能单元提供源操作 数或将A个标量功能单元产生的结果写入矩阵寄存器文件。 行读端口与矩阵寄存器文件主体中的行读地址译码器 一对应,每个行 读端口的行读地址总线和行读使能信号线是相应行读地址译码器的输入。行读地址译码器根据行读地址总线上的地址译码出附*^个子行读地址选择信 号,这些子行读地址选择信号形成子行读地址选择总线。每个子行读地址选 择信号控制存储单元阵列中的一个存储单元子行。当行读使能信号线有效 时,与行读地址对应的子行读地址选择信号有效,而其他子行读地址选择信 号无效。当行读使能信号线无效时,附*^个子行读地址选择信号均无效。当 某一子行读地址选择信号有效时,相应存储单元子行的内容被读出至该端口 的行读出缓冲器,而行读出缓冲器又将该内容输出至行读端口的行读出数据 总线上。 行写端口与矩阵寄存器文件主体中的行写地址译码器一一对应,每个行 写端口的写地址总线和写使能信号线是相应行写地址译码器的输入。行写地 址译码器根据行写地址总线上的地址译码出^^iV个子行写地址选择信号,这 些子行写地址选择信号形成子行写地址选择总线。每个子行写地址选择信号 控制存储单元阵列中的一个存储单元子行。当行写使能信号线有效时,与行 写地址对应的子行写地址选择信号有效,而其他子行写地址选择信号无效。 当行写使能信号线无效时,/^W个子行写地址选择信号均无效。当某一行写 地址选择信号有效时,行写数据总线上的内容写入相应存储单元行。 每个列读端口由列读地址总线、列读使能信号线以及列读数据总线组 成。每个列写端口由列写地址总线、列写使能信号线以及列写数据总线组成。 列读地址总线和列写地址总线的宽度为bg2(^M)位,支持向量处理器对矩阵 寄存器文件中任意列向量寄存器的任意子列进行访问。列读数据总线和列写 数据总线的宽度为£*5位,即一次访问可为Z个标量功能单元提供源搡作数 或将丄个标量功能单元产生的结果写入矩阵寄存器文件。列读端口与矩阵寄存器文件主体中的列读地址译码器一一对应,每个列 读端口的读地址总线和读使能信号线是相应列读地址译码器的输入。列读地 址译码器根据列读地址总线上的地址译码出„*^个子列读地址选择信号,这 些子列读地址选择信号形成子列读地址选择总线。每个子列读地址选择信号 控制存储单元阵列中的一个存储单元子列。当列读使能信号线有效时,与列 读地址对应的子列读地址选择信号有效,而其他子列读地址选择信号无效。 当列读使能信号线无效时,^M个子列读地址选择信号均无效。当某一子列 读地址选择信号有效时,相应存储单元子列的内容被读出至该端口的列读出 缓冲器,而列读出缓冲器又将该内容输出至列读端口的列读出数据总线上。 列写端口与矩阵寄存器文件主体中的列写地址译码器一 一对应,每个列 写端口的写地址总线和写使能信号线是相应列写地址译码器的输入。列写地 址译码器根据列写地址总线上的地址译码出^M个子列写地址选择信号,这 些子列写地址选择信号形成子列写地址选择总线。每个子列写地址选择信号 控制存储单元阵列中的一个存储单元子列。当列写使能信号线有效时,与M 写地址对应的子列写地址选择信号有效,而其他子列写地址选择信号无效。 当列写使能信号线无效时,"*^个子列写地址选择信号均无效。当某一列写 地址选择信号有效时,列写数据总线上的内容写入相应存储单元列。 矩阵寄存器文件主体满足:2Wsw且2叶sM且z^i:, Z)为矩阵义的 行向量或列向量数目。若D不满足这个条件,则将x按高等教育出版社出版 的高等代数(张禾瑞等著,2007年,第5版)中的矩阵分块计算方法拆分成 多个满足这一条件的子矩阵,再分别对子矩阵进行运算,最后综合各子矩阵 的运算结果形成最终结果。以矩阵乘法X吁的一次行列乘法为例,若矩阵X已经按行连续存放于矩 阵寄存器文件中行向量寄存器VRA-VRA+^的第r个子行,且矩阵r已经按列 连续存放于列向量寄存器CVRB-CVR旨,的第s个子列,其中r、 " ^和S为 正整数,满足JSD且SS"且r〈M且KiV,则矩阵Z的第p行乘以矩阵7的 第《列按如下步骤进行,其中p和《均为正整数,满足;^D且g〈i)。 1程序发出矩阵乘法指令:VMULVRA+p[r],CVRB+JS],VRc+kW,意思是将矩 阵寄存器文件中的第^ + P个行向量寄存器中第r个子行的所有元素分别与 第5 + ?个列向量寄存器中第s个子列的所有元素相乘,所得乘法结果放入第 CW个行向量寄存器中第,个子行中。 1.1向量指令译码部件从指令中抽取源搡作数地址P和r以及9和"并 同时完成如下两个搡作: 1. 1. 1将行读地址(^ + p和r )发送到矩阵寄存器文件的某一行读端 口i?A,同时将其行读使能信号置为有效; 1.1.2将列读地址(S + g和s)发送到矩阵寄存器文件的某一列读端 口i^,同时将其列读使能信号置为有效。 1.2矩阵寄存器文件行读端口i^中的行读地址和行读使能信号通过行 读地址译码器形成附* iV个子行读地址选择信号,其中第m"^ + p) + r 个子行读地址选择信号有效,而其他子行读地址选择信号均无效。 因此,存储单元阵列将第^ + P行存储单元中第r个子行,即行向量 寄存器VR吣中第r个子行所在的存储单元子行,的内容读取到行读 端口i^中的行读数据总线上。 1.3矩阵寄存器文件列读端口 i?^中的列读地址和列读使能信号通过列读地址译码器形成一M个子列读地址选择信号,其中第„*(^ +《)+ 1? 个子列读地址选择信号有效,而其他子列读地址选择信号均无效。 因此,存储单元阵列将第^ +《列存储单元中第S个子列,即列向量 寄存器CVR^中第《个子列所在的存储单元子列,的内容读取到列读 端口i^中的列读数据总线上。 1.4向量运算部件从行读端口 i?^的行读数据总线和列读端口 i?/>c的列读 数据总线上分别获取到两个源搡作数,并对这两个源操作数中的元 素分别做乘法运算,得到D个乘法运算结果。 1.5向量运算部件完成如下步骤: 1.5.1将向量指令译码部件从指令中抽取的目的行向量寄存器地址 C + /t以及子行地址H乍为行写地址发送到矩阵寄存器文件的某一 行写端口i?iV。 1. 5. 2将乘法运算结果作为写入数据发送到行写端口及iV 。 1.5.3置行写端口i?^的行写使能信号为有效 1. 6行写端口 i?/V中的行写地址和行写使能信号通过行写地址译码器形 成附*^个子行写地址选择信号,其中第m^C + Q + f个子行写地址选 择信号有效,而其他子行写地址选择信号均无效。因此,存储单元 阵列将行写端口 i?/V中行写数据总线上的数据写入存储单元阵列第 C + "亏存储单元的第f个子行,即行向量寄存器VRc+k中第f行所在的 存储单元子行。 由上述过程可知,本发明进行矩阵乘法搡作时不需要进行矩阵转置操 作,也不需要加载转置矩阵,而且使矩阵寄存器文件的读数据总线和写数据总线宽度与向量运算部件的运算能力匹配。因此,采用本发明能产生如下有 益技术效果: 本发明通过分离的行向量访问端口和列向量访问端口以及行列向量分 段访问机制,不仅降低实现同时访问行向量和列向量寄存器的代价,消除矩 阵处理过程中的矩阵转置操作,提高矩阵运算的效率;还完善了行列向量访 问机制,解决了已有矩阵寄存器文件的数据带宽与向量运算部件运算能力不 匹配的问题。 附图说明 图i是目前通用向量微处理器的部分逻辑结构示意图; 图2是目前通用向量微处理器中支持行列向量访问的向量寄存器文件的 逻辑结构示意图; 图3是图2所示向量寄存器文件的存储单元阵列结构示意图; 图4是本发明矩阵寄存器文件的逻辑结构示意图; 图5是本发明矩阵寄存器文件的存储单元阵列逻辑结构示意图; 图6是矩阵;r和y在本发明矩阵寄存器文件中的存放示意图; 图7是基于本发明矩阵寄存器文件的行、列向量进行乘法操作示意图。 图l是目前通用向量微处理器的部分逻辑结构示意图。向量微处理器通 常包括向量寄存器文件、向量指令译码部件和向量运算部件。向量指令译码 部件完成对向量指令的译码,将译码结果(需要执行何种指令、需要读取哪 些向量寄存器等)发送到向量运算部件和向量寄存器文件。向量运算部件按 照译码结果对向量寄存器文件提供的源操作数进行运算,并将运算的结果写入由译码结果指定的向量寄存器或存储器。向量寄存器文件用于存放和提供 向量微处理器运行时所需的向量数据。 图2目前通用向量微处理器中支持行列向量访问的向量寄存器文件的逻 辑结构示意图。这种向量寄存器文件由向量寄存器文件主体和读写端口组 成。向量寄存器文件主体由A^个读地址译码器、A^个读出缓冲器、A^个写 地址译码器以及包含A^M个元素的存储单元阵列构成,存储单元阵列由iV 个行向量寄存器KR。 -,或M个列向量寄存器CT及。-CWC—,构成,AT为行向 量寄存器的数目,M为列向量寄存器的数目,因此存储单元阵列包含iV * M个 元素。读写端口均为行列向量访问复用的端口,即一个读端口不仅支持对行 向量寄存器进行读取,还支持对列向量寄存器进行读取,而一个写端口不仅 支持对行向量寄存器进行写入,还支持对列向量寄存器进行写入。为了支持 多个向量部件同时工作,读写端口由A^个读端口和AV个写端口构成,其中 ^d且AV^。每个读端口都由行列选择信号线、读地址总线、读使能信号 线以及读数据总线组成,其中行列选择信号线用于选择当前是对行向量寄存 器进行读取还是对列向量寄存器进行读取,读地址总线的位宽为 M4X(bg2iV,log2M),即1og2JV和log2M两者的最大值,读数据总线的位宽为 JV*5或M"。每个写端口都由行列选择信号线、写地址总线、写使能信号 线以及写数据总线组成,其中行列选择信号线用于选择当前是对行向量寄存 器进行读取还是对列向量寄存器进行写入,写地址总线的位宽为 M4X(log2iV,log2M),即log,iV和log2M两者的最大值,写数据总线的位宽为图3是图2所示向量寄存器文件的存储单元阵列结构示意图。存储单元 阵列按行划分为iV个A^5位的存储单元行,每行由M个同行的元素组成, 每个元素的位宽为5。这iv个存储单元行与AT个行向量寄存器ra。-ra^—一 对应,用于实现相应行向量寄存器的存取功能;该存储单元阵列按列划分为 M个A^万位的存储单元列,每列由iV个同列的元素组成。这Af个存储单元 列与M个列向量寄存器Cra。 -Cra^ — 一对应,用于实现相应列向量寄存器 的存取功能。以cra^为例,该列向量寄存器包括所有行向量寄存器ra。-raM 的最后一个元素^—,。读端口与向量寄存器文件主体中的读地址译码器一一 对应,其中每个读端口的行列选择信号线、读地址总线和读使能信号线是相 应读地址译码器的输入。每个读地址译码器产生W个行读地址选择信号和M 个列读地址选择信号,这些信号分别形成行读地址选择总线和列读地址选择 总线。iV个行读地址选择信号分别控制存储单元阵列中的iV个存储单元行, 每一存储单元行存储了一个行向量寄存器的所有元素£。-M个列读地 址选择信号分别控制存储单元阵列中的M个存储单元列,每一存储单元列存 储了一个列向量寄存器的所有元素。存储单元阵列在这些读地址选择信号的 作用下,将相应存储单元行或存储单元列的内容读出至相应读端口的读出缓 冲器,而读出缓冲器又将该内容输出至该读端口的读出数据总线上。写端口 与向量寄存器文件主体中的写地址译码器一一对应,每个写端口的行列选择 信号线、写地址总线和写使能信号线是相应写地址译码器的输入。每个写地 址译码器产生iV个行写地址选择信号和M个列写地址选择信号,这些信号分 别形成行写地址选择总线和列写地址选择总线。w个行写地址选择信号分别 控制存储单元阵列中的iV个存储单元行,M个列读地址选择信号分别控制存储单元阵列中的M个存储单元列。存储单元阵列在这些写地址选择信号的作 用下,将写数据总线上的内容写入相应存储单元行或存储单元列。 图4是本发明矩阵寄存器文件的逻辑结构示意图。本发明由读写端口和 矩阵寄存器文件主体组成。 读写端口是矩阵寄存器文件与向量微处理器中其他部件的接口,读写端 口由A^个行读端口、 W,个行写端口、 A^个列读端口和iV^个列写端口构 成,其中iV朋》l且A^^l且JV脾20且iVc『》0且AV+iV,21。 矩阵寄存器文件主体由A^个行读地址译码器、A^个行读出缓冲器、 A^个行写地址译码器、&,个列读地址译码器、A^个列读出缓冲器、JV^个 列写地址译码器以及包含A^M个元素的存储单元阵列构成。 每个行读端口由行读地址总线、行读使能信号线以及行读数据总线组 成。每个行写端口由行写地址总线、行写使能信号线以及行写数据总线组成。 行读地址总线和行写地址总线的宽度为log,(^iV)位,支持向量处理器对矩 阵寄存器文件中任意行向量寄存器的任意子行进行访问。行读数据总线和行 写数据总线的宽度为Z * B位,即 一次访问可为Z个标量功能单元提供源操作 数或将丄个标量功能单元产生的结果写入矩阵寄存器文件。 行读端口与矩阵寄存器文件主体中的行读地址译码器一一对应,每个行 读端口的行读地址总线和行读使能信号线是相应行读地址译码器的输入。行 读地址译码器根据行读地址总线上的地址译码出附*^个子行读地址选择信 号L这些子行读地址选择信号形成子行读地址选择总线。每个子行读地址选 择信号控制存储单元阵列中的一个存储单元子行。当行读使能信号线有效 时,与行读地址对应的子行读地址选择信号有效,而其他子行读地址选择信号无效。当行读使能信号线无效时,附*^个子行读地址选择信号均无效。当 某一子行读地址选择信号有效时,相应存储单元子行的内容被读出至该端口 的行读出缓冲器,而行读出缓冲器又将该—容输出至行读端口的行读出数据 总线上。 行写端口与矩阵寄存器文件主体中的行写地址译码器一一对应,每个行 写端口的写地址总线和写使能信号线是相应行写地址译码器的输入。行写地 址译码器根据行写地址总线上的地址译码出附*^个子行写地址选择信号,这 些子行写地址选择信号形成子行写地址选择总线。每个子行写地址选择信号 控制存储单元阵列中的一个存储单元子行。当行写使能信号线有效时,与行 写地址对应的子行写地址选择信号有效,而其他子行写地址选择信号无效。 当行写使能信号线无效时,m + iV个子行写地址选择信号均无效。当某一行写 地址选择信号有效时,行写数据总线上的内容写入相应存储单元行。 每个列读端口由列读地址总线、列读使能信号线以及列读数据总线组 成。每个列写端口由列写地址总线、列写使能信号线以及列写数据总线组成。 列读地址总线和列写地址总线的宽度为bg2(^M)位,支持向量处理器对矩阵 寄存器文件中任意列向量寄存器的任意子列进行访问。列读数据总线和列写 数据总线的宽度为Z"^位,即一次访问可为丄个标量功能单元提供源操作数 或将Z个标量功能单元产生的结果写入矩阵寄存器文件。 列读端口与矩阵寄存器文件主体中的列读地址译码器一一对应,每个列 读端口的读地址总线和读使能信号线是相应列读地址译码器的输入。列读地 址译码器根据列读地址总线上的地址译码出^M个子列读地址选择信号,这 些子列读地址选择信号形成子列读地址选择总线。每个子列读地址选择信号控制存储单元阵列中的一个存储单元子列。当列读使能信号线有效时,与ii 读地址对应的子列读地址选择信号有效,而其他子列读地址选择信号无效。 当列读使能信号线无效时,^M个子列读地址选择信号均无效。当某一子列 读地址选择信号有效时,相应存储单元子列的内容被读出至该端口的列读出 缓冲器,而列读出缓冲器又将该内容输出至列读端口的列读出数据总线上。 列写端口与矩阵寄存器文件主体中的列写地址译码器一 一对应,每个列 写端口的写地址总线和写使能信号线是相应列写地址译码器的输入。列写地 址译码器根据列写地址总线上的地址译码出"*M个子列写地址选择信号,这 些子列写地址选择信号形成子列写地址选择总线。每个子列写地址选择信号 控制存储单元阵列中的一个存储单元子列。当列写使能信号线有效时,与M 写地址对应的子列写地址选择信号有效,而其他子列写地址选择信号无效。 当列写使能信号线无效时,^M个子列写地址选择信号均无效。当某一列写 地址选择信号有效时,列写数据总线上的内容写入相应存储单元列。 图5是本发明矩阵寄存器文件的存储单元阵列结构的示意图。 存储单元阵列按行划分为^个A^5位的存储单元行,每行由M个同行 的元素五。-^一,组成,每个元素的位宽为s。这W个存储单元行与iV个行向量 寄存器ra。-ra^—一对应,实现相应行矩阵寄存器的存取。每个存储单元行 由m个子行组成,每个子行包含连续的1个元素。由此,矩阵寄存器文件中 第个行向量寄存器的第/个子行用表示,该子行由元素~-构 成,其中,々0且/<"且_/20且7<附;该存储单元阵列按列划分为M个A^5位 的存储单元列,每列由W个同列的元素组成。这M个存储单元列与M个列向 量寄存器cra。-cra^—一对应,实现相应列向量寄存器的存取。每个存储单元列由"个子列组成,每个子列包含连续的£个元素。由此,矩阵寄存器文 件中第"个列向量寄存器的第v个子列用Cra》]表示,其中"》0且"m且 «20且^<«。例如,图中存储单元阵列右下角的灰色部分,可以用cra^["-i]表示。 每个行读地址译码器产生的附* iV个子行读地址选择信号分别控制存储 单元阵列中的m申iV个存储单元子行,每一存储单元子行存储了一个行向量寄 存器中一个子行的所有元素。当某一子行读地址选择信号有效时,相应存储 单元子行的内容被读出至该端口的行读出缓冲器,而行读出缓冲器又将该内 容输出至行读端口的行读出数据总线上。 每个行写地址译码器产生的m *iV个子行写地址选择信号分别控制存储 单元阵列中的/^iV个存储单元子行,每一存储单元子行存储了一个行向量寄 存器中一个子行的所有元素。当某一行写地址选择信号有效时,行写数据总 线上的内容写入相应存储单元行。 每个列读地址译码器产生的"*^个子列读地址选择信号分别控制存储 单元阵列中的w*M个存储单元子列,每一存储单元子列存储了 一个列向量寄 存器中一个子列的所有元素。当某一子列读地址选择信号有效时,相应存储 单元子列的内容被读出至该端口的列读出缓冲器,而列读出缓冲器又将该内 容输出至列读端口的列读出数据总线上。 每个列写地址译码器产生的"*似个子列写地址选择信号分别控制存储 单元阵列中的^M个存储单元子列,每一存储单元子列存储了一个列向量寄 存器中一个子列的所有元素。当某一列写地址选择信号有效时,列写数据总 线上的内容写入相应存储单元列。图6是矩阵z和r在本发明矩阵寄存器文件中的存放示意图。义矩阵按 行连续存放在行向量寄存器ra。-raD—,的第零个子行,即先在行向量寄存器 ra。第零个子行中存放矩阵Jf的第一行数据(Xu,^,…,^),然后在行向量寄存 器^第零个子行中存放矩阵X的第二行数据fe,;^,...,^),以此类推。F矩 阵按列连续存放在列向量寄存器crarcra^一,的第零个子列,即先在列向量 寄存器c^第零个子列中存放矩阵y的第一列数据(&^,...,^),然后在列 向量寄存器(3^)+1第零个子列中存放矩阵1^的第二列数据(&,>^...,&2),以 此类推。 图7基于本发明矩阵寄存器文件的行、列向量进行乘法搡作示意图。向 量运算单元执行行列向量乘法指令VMULVRJO],CVRd[0],VR。[0],意思是将矩 阵寄存器文件中行向量寄存器VR,的第零个子行的所有元素分别与列向量寄 存器CVR。的第零个子列的所有元素相乘,所得乘法结果放入行向量寄存器 VR。的第零个子行。向量微处理器利用矩阵寄存器文件提供的行读端口和列 读端口同时读取矩阵寄存器文件行向量寄存器v^的第零个子行(对应于x 矩阵的第二行)和列向量寄存器CVR。的第零个子列(对应于r矩阵的第一 列),两个源向量数据在向量运算部件中相乘,所得乘法结果通过矩阵寄存 器文件提供的行写端口写入行向量寄存器raD的第零个子行。

相关技术
寄存器文件相关技术
矩阵寄存器相关技术
陈书明发明人的其他相关专利技术