用于simd处理器的寄存器文件数据读写装置和方法

文档序号:6630155阅读:183来源:国知局
用于simd处理器的寄存器文件数据读写装置和方法
【专利摘要】本发明提供了一种用于SIMD处理器的寄存器文件数据读写装置和方法,设计了一种按照矩阵形式排列的寄存器文件阵列,根据译码单元译码结果,利用寄存器索引地址和当前并行度确定待访问寄存器具体物理地址,在寄存器读写使能有效信号控制下,通过对寄存器中数据写回时的复制排序和读出时整合,大大减少了SIMD处理器的数据通路的复杂性,简化了DSP处理器的数据通路的设计,提高了DSP处理器的执行效率,获得更好的实时性能和资源利用率。
【专利说明】用于SIMD处理器的寄存器文件数据读写装置和方法

【技术领域】
[0001]本发明属于处理器体系结构设计领域,更具体地,涉及SMD结构处理器的寄存器文件数据读写方法。

【背景技术】
[0002]数字信号处理领域中,经常涉及对大量数据的处理。由于信号处理中数据量大、处理过程复杂,数字信号处理器不能很好地满足对数据处理实时性要求。随着计算机技术的快速发展,越来越多的数字信号处理器采用基于单指令多数据(SMD)指令集的数据并行处理技术,即在同一个周期内多个功能单元并行执行数据运算,从而为提高数据处理的实时性提供了一种全新的方式。因此,需要设计出一种支持并行数据处理、高效且简单的寄存器文件读写,使SMD处理器在进行大量数据处理时,能够实现多组数据并行处理。
[0003]现有的SMD处理器一般采用多发射方式提高数据处理的并行度,这就要求寄存器具有多个读和写端口,来满足执行单元的访问需要。SMD处理器由于并行数据处理的需要,拥有更多的数据路径,寄存器的读写端口数也变得更多,随着端口数的增多,读写延迟也逐渐增大,限制了处理器的频率,影响了处理器的性能提升。


【发明内容】

[0004]为了克服现有技术的不足,本发明提供一种用于SMD处理器的寄存器文件读写方法,通过在数据写入寄存器前进行复制和在数据读出寄存器后整合,降低了 SMD处理器的数据通路路径的复杂度,减少了寄存器路径的组合情况,简化了寄存器路径,从而大大降低了 SMD处理器的数据通路的设计难度。此外,本发明用于SMD处理器寄存器文件读写方式在执行构令指令时具有更好的执行效率。
[0005]本发明解决其技术问题所采用的技术方案是:包含数据存储器DRAM、寄存器数据写回单元、寄存器文件RegFIle和寄存器数据读出单元。
[0006]所述数据存储器DRAM存储SMD处理器执行时需要处理的数据;
[0007]所述寄存器写回单元对需要写回到寄存器文件中数据进行预处理;根据所述处理器访问执行并行度Para,完成对待写回寄存器文件数据进行复制或者重新排序;SMD处理器访问并行度为Para,Para = 2P,0彡p彡η ;所述SMD处理器每次访问2Ρ组寄存器,一个执行周期并行执行2Ρ组数据处理,SIMD处理器总线最大支持2η组数据处理;
[0008]所述寄存器文件包含w个寄存器,其中w = 2n+m,n、m为正整数;所述寄存器在物理实现方式上按照NXM矩阵排列,其中N = 2"表示列数,代表每组寄存器内具体寄存器个数,N等于所述SMD处理器支持最大并行度,M = 2m表示行数,代表寄存器文件包含组寄存器数;所述寄存器文件索引地址宽度为(n+m-l,0)位,每个寄存器的索引地址按照矩阵形式,先行后列自右向左依次编码,索引名称依次为R0?IV1 ;所述寄存器索引地址(n+m-l,n)位段代表的数值确定矩阵当前行号所在的行寄存器组的使能有效信号;
[0009]所述寄存器数据读出单元对寄存器文件中待读出数据进行读取。
[0010]本发明中提供了一种用于SMD处理器的寄存器文件数据读写方法,包括以下步骤:
[0011]1.初始化,将需要进行数据处理的数据存储在数据存储单元DRAM指定地址范围中,根据指令译码单元产生并行度Para、寄存器写使能信号、寄存器读使能信号、数据操作类型和待访问寄存器索引;
[0012]2.根据译码控制信号,从DRAM指定地址范围中,按照当前执行并行度读出Para =2P组数据,通过总线送至寄存器数据写回单元;
[0013]3.寄存器写回单元操作分为两类情况:一类为所述SMD处理器在执行运算操作过程中不改变并行度Para,对待写回寄存器数据复制2n_p_l份,所有2n_p组数据依次填充总线并输出至寄存器文件;另一类为所述SMD处理在执行运算操作过程中改变并行度Para,当所述处理器访问并行度为Para = 2P时,将当前数据进行一次复制,若当前运算操作要求复制后的数据重新排序,按照操作要求完成该组数据重新排序,将当前两组数据按照输入顺序合并为包含2P+1个数据的组,改变当前执行并行度为Para = 2P+1,对合并后的数据组再次进行复制份,所有21^-1组数据依次填充总线并输出至寄存器文件;
[0014]4.寄存器文件根据待访问寄存器的索引地址(n+m-1,O)和当前并行度Para确定具体待访问寄存器具体位置;待访问寄存器索引高(n+m-1,η)位与寄存器文件中行号数值一致,确定该行寄存器写使能有效;根据待访问寄存器索引地址低(η_1,ρ)位确定具体列寄存器组写使能有效,当P彡η-1时,所述寄存器矩阵中列寄存器地址(η-1,ρ)与待访问寄存器地址(η-1,ρ)位段一致时,确定该列寄存器使能有效;当?>11-1时,所述寄存器矩阵中列寄存器使能均有效,当所述寄存器矩阵中寄存器所在行和列均为写使能信号有效时,该寄存器确定为写使能有效,将总线中与索引寄存器对应区间的数据写入目的寄存器中;
[0015]5.寄存器读出单元读出寄存器文件待访问寄存器中的数据,根据待访问寄存器的索引地址(n+m-1,O)和当前并行度Para确定待访问寄存器具体位置;当寄存器读使能信号有效时,所述寄存器数据读出单元在寄存器读使能信号的控制下,读出待访问寄存器中的数据,按照寄存器索引地址由低向高依次依次输出至总线低2P个字段,寄存器数据读取完毕,寄存器文件中读出的数据进入到下一个执行单元中进行数据处理。
[0016]本发明的有益效果是:设计了一种按照矩阵形式排列的寄存器文件阵列,根据译码单元译码结果,利用寄存器索引地址和当前并行度确定待访问寄存器具体物理地址,在寄存器读写使能有效信号控制下,通过对寄存器中数据写回时的复制排序和读出时整合,大大减少了 SMD处理器的数据通路的复杂性,简化了 DSP处理器的数据通路的设计,提高了 DSP处理器的执行效率,获得更好的实时性能和资源利用率。

【专利附图】

【附图说明】
[0017]图1为寄存器文件阵列结构示意图。
[0018]图2为SMD处理器在执行不同操作指令时的数据读写通路示意图,其中,图2a是并行度Pon = I时寄存器文件数据通路,图2b是并行度Pon = 2时寄存器文件数据通路,图2c是并行度Pon = 4时寄存器文件数据通路,图2d是执行复数乘时寄存器文件数据通路。

【具体实施方式】
[0019]下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
[0020]本发明用于SMD处理器的寄存器文件数据读写结构包含数据存储器DRAM、寄存器数据写回单元、寄存器文件RegFIle、寄存器数据读出单元和相应的控制电路模块。
[0021]所述数据存储器DRAM存储SMD处理器执行时需要处理的数据。
[0022]所述寄存器写回单元对需要写回到寄存器文件中数据进行预处理。根据所述处理器访问执行并行度Para,完成对待写回寄存器文件数据进行复制或者重新排序。SMD处理器支持多种并行度Para,其中Para = 2P,O彡ρ彡n。SIMD处理器访问并行度为Para,所述SIMD处理器每次访问2P组寄存器,一个执行周期并行执行2P组数据处理,SIMD处理器总线最大支持2n组数据处理。所述寄存器写回方法分为两类:一类为对于SMD处理器在执行过程中不需要进行并行度改变的运算操作,SMD处理器访问并行度为Para = 2P,将待写回寄存器数据进行复制2n_p-l份,所有2n_p组数据依次填充总线并输出至寄存器文件;另一类为所述SMD处理在执行过程中并行度改变的运算操作,SMD处理器访问并行度为Para = 2P,对于运算操作需要对数据进行复制或者改变数据顺序时,所述寄存器写回逻辑单元复制一次数据或者完成复制后再进行数据重新排序,并且改变并行度为Para = 2P+1,对复制或排序后的数据再次进行复制份,所有21^-1组数据通过依次填充总线并输出至寄存器文件。
[0023]所述寄存器文件结构包含w个寄存器,其中w = 2n+m,n,m为正整数。所述寄存器在物理实现方式上按照NXM矩阵排列,其中N = 2n表示列数,代表每组寄存器内具体寄存器个数,N等于所述SMD处理器支持最大并行度,M = 2m表示行数,代表寄存器文件包含组寄存器数。所述寄存器文件索引地址宽度为(n+m-1,O)位,每个寄存器的索引地址按照矩阵形式,先行后列自右向左依次编码,索引名称依次为R0?Rh。所述寄存器索引地址(n+m-1, η)位段代表的数值确定矩阵当前行号所在的行寄存器组的使能有效信号,所述寄存器矩阵中行寄存器地址(n+m-l,n)与待访问寄存器地址(n+m_l,η)位段一致时,确定该行寄存器使能有效。所述寄存器索引地址(η_1,ρ)位段表示的数值和当前执行的并行度Para = 2Ρ共同确定所述寄存器矩阵中2Ρ个列寄存器的使能有效信号。ρ ( η-1时,所述寄存器矩阵中列寄存器地址(η_1,ρ)与待访问寄存器地址(η-1,ρ)位段一致,确定该列寄存器使能有效,否则该列寄存器使能无效;Ρ>η-1时,所述寄存器矩阵中列寄存器使能均有效。当所述寄存器矩阵中寄存器所在行和列均为使能信号有效时,该寄存器确定为读或写使能有效,否则该寄存器确定为读和写使能无效。所述寄存器文件中寄存器写使能有效时,将总线对应位置上待写回数据写入寄存器文件对应寄存器中;所述寄存器文件中寄存器数据读使能有效时,寄存器读出单元读出寄存器文件中对应寄存器中待读出数据送至总线对应位置上。
[0024]所述寄存器数据读出单元对寄存器文件中待读出数据进行读取。首先,所述寄存器文件根据当前执行并行度Para和寄存器文件中待访问寄存器索引(n+m_l,O)确定待访问寄存器在寄存器文件中具体位置,当寄存器读使能有效时,所述寄存器数据读出单元在寄存器读使能信号的控制下,访问相对应索引的寄存器,按照寄存器索引地址由低向高依次读出寄存器中数据并输出至总线低2P个字段。
[0025]本发明中提供了一种用于SMD处理器的寄存器文件数据读写方法,为了实现上述目的,需要进行以下步骤:
[0026]1.初始化,将需要进行数据处理的数据存储在数据存储单元DRAM指定地址范围中,根据指令译码单元产生并行度Para、寄存器写使能信号、寄存器读使能信号、数据操作类型和待访问寄存器索引。
[0027]2.根据译码控制信号,从DRAM指定地址范围中,按照当前执行并行度读出Para =2P组数据,通过总线送至寄存器数据写回单元。
[0028]3.寄存器写回单元操作分为两类情况:一类为所述SMD处理器在执行运算操作过程中不改变并行度Para,对待写回寄存器数据复制2n_p_l份,所有2n_p组数据依次填充总线并输出至寄存器文件;另一类为所述SMD处理在执行运算操作过程中改变并行度Para,当所述处理器访问并行度为Para = 2P时,将当前数据进行一次复制,若当前运算操作要求复制后的数据重新排序,按照操作要求完成该组数据重新排序,将当前两组数据按照输入顺序合并为包含2P+1个数据的组,改变当前执行并行度为Para = 2P+1,对合并后的数据组再次进行复制份,所有21^-1组数据依次填充总线并输出至寄存器文件。
[0029]4.寄存器文件根据待访问寄存器的索引地址(n+m-1,O)和当前并行度Para确定具体待访问寄存器具体位置。待访问寄存器索引高(n+m-1,η)位与寄存器文件中行号数值一致,确定该行寄存器写使能有效。根据待访问寄存器索引地址低(η-1,ρ)位确定具体列寄存器组写使能有效,当P彡n-Ι时,所述寄存器矩阵中列寄存器地址(η-1,ρ)与待访问寄存器地址(η-1,ρ)位段一致时,确定该列寄存器使能有效;当ρ>η-1时,所述寄存器矩阵中列寄存器使能均有效,当所述寄存器矩阵中寄存器所在行和列均为写使能信号有效时,该寄存器确定为写使能有效,将总线中与索引寄存器对应区间的数据写入目的寄存器中。
[0030]5.寄存器读出单元读出寄存器文件待访问寄存器中的数据。第一步,按照4中所述方法,根据待访问寄存器的索引地址(n+m-1,O)和当前并行度Para确定待访问寄存器具体位置。当寄存器读使能信号有效时,所述寄存器数据读出单元在寄存器读使能信号的控制下,读出待访问寄存器中的数据,按照寄存器索引地址由低向高依次依次输出至总线低2P个字段,寄存器数据读取完毕,寄存器文件中读出的数据进入到下一个执行单元中进行数据处理。
[0031]为了更好地说明本发明用于SMD处理器的寄存器文件数据读写方法,本具体实施例中假定SMD处理器支持32位数据操作,数据总线宽度为128位。寄存器写回单元和寄存器文件之间总线为WrDataBusA和WrDataBusB,寄存器文件和寄存器读出读出单元之间总线为RdDataBusA和RdDataBusB,算术逻辑单元数据输出总线为DataOutBus,其中算术逻辑单元为寄存器读出单元的下一个执行单元。寄存器文件共包含4X8个寄存器,其中N=4表示列数,M = 8表示行数。SMD处理器支持并行度Pon为1、2和4的数据处理,4列执行单元自右向左排列依次为第O列、第I列、第2列和第3列。并行度为I时,访问第O列;并行度为2时,访问第0、1列;并行度为4时,访问第0、1、2、3列。
[0032]寄存器文件的地址总线宽度为(4,O)位,每个寄存器的索引地址按照矩阵形式,先行后列依次编码,寄存器文件行号编码自上向下分别为RowO?Row7,列号编码自右向左分别为ColO?Col3,这里采用先行后列自右向左的编码原则,对应寄存器的地址依次编码为00000?11111,对应索引名称为RO?R31,具体阵列形式见附图1所示。
[0033]本具体实施例中寄存器地址(4,2)位段代表的数值表示矩阵中对应寄存器组行号,确定该矩阵行号所在的寄存器组的使能有效信号,寄存器地址(1,0)位段表示的数值和当前执行的并行度共同确定矩阵具体列寄存器使能有效信号,当矩阵中寄存器所在行和列均表示使能信号有效时,该寄存器确定读或写使能有效,否则该寄存器确定读写使能无效。
[0034]当并行度为I时,寄存器地址(4,2)位段确定矩阵中行所在寄存器组使能有效,寄存器地址(1,0)位段确定矩阵中列所在寄存器使能有效,当寄存器文件矩阵中一个寄存器所在行和列均为使能有效时,该寄存器使能有效,否则该寄存器使能无效;
[0035]当并行度为2时,将寄存器文件行所在一个寄存器组的寄存器按照地址从低向高依次每相邻2个分为一小组,每一小组中寄存器按照该组寄存器地址(1,I)位段进行分组。寄存器地址(4,2)位段确定矩阵中行所在寄存器组使能有效,寄存器地址(1,I)位段确定矩阵中列所在小组寄存器使能有效,当寄存器文件矩阵中一小组寄存器所在行和列均为使能有效时,该小组寄存器使能有效,否则该小组寄存器使能无效;;
[0036]当并行度为N = 4时,寄存器地址(4,2)位段确定矩阵中行所在寄存器组使能有效,该并行度下,寄存器文件列所在寄存器使能均有效。
[0037]本具体实施例中实现用于SMD处理器的寄存器数据写回和读出具体步骤如下:
[0038]I)基本指令寄存器文件数据读写方法
[0039]1.并行度为I时的基本指令寄存器数据读写通路
[0040]为了便于说明,这里假定源操作数A写入的寄存器为R13,寄存器地址为01101,源操作数B写入的寄存器为R22,寄存器地址为10110。
[0041]当并行度Pon为I时,SIMD处理器执行数据处理具体步骤如下:
[0042]a)存储控制单元根据指令译码结果,从数据存储器DRAM中的指定地址中分别读出源操作数A和源操作数B;
[0043]b)复制3次源操作数A和源操作数B,用4个相同的源操作数A和源操作数B填充128位的总线WrDataBusA和WrDataBusB,为了便于说明,对4个相同的源操作数A和B进行自右向左编号:A3,A2,A1,A(^PB3,B2,B1,B0 ;;
[0044]c)根据源操作数A要求写入的寄存器R13的索引地址的高3位(011)确定寄存器R13所在行为第3行,低2位(01)确定寄存器R13所在列数为第I列,即向寄存器文件中第3行第I列所在位置的寄存器R13写入Al ;根据源操作数B要求写入的寄存器R22的索引地址的高3(101)位确定寄存器R22所在行为第5行,低2位(10)确定寄存器R22所在列数为第2列,即向寄存器文件中第5行第2列所在位置的寄存器R22写入B2 ;
[0045]d)与源操作数A和B写入寄存器方式相同,根据源操作数A和B所在寄存器索引地址的高3位和低2位分别确定出寄存器所在寄存器文件中的位置,读出寄存器R13存放的源操作数A输出到总线RdDataBusA的低32位,送至算术逻辑单元ALU ;读出寄存器R22存放的源操作数B输出到总线RdDataBusB的低32位,送至算术逻辑单元ALU数据输入端Π ;
[0046]e) ALU单元执行第O列运算单元,计算的结果C送入总线DataOutBus的低32位;
[0047]f)存储控制单元根据指令译码结果,将计算结果写回到寄存器文件或者直接写回到数据存储器中,具体执行过程见附图2a所示。
[0048]?.并行度为2时的基本指令寄存器数据读写通路
[0049]为了便于说明,这里假定源操作数Al,AO写入的寄存器为R13?R12,寄存器索引地址为01101?01100,源操作数BI,BO写入的寄存器为R23?R22,寄存器索引地址为10111 ?10110。
[0050]当并行度Pon为2时,SIMD处理器执行数据处理具体步骤如下:
[0051]a)存储控制单元根据指令译码结果,从数据存储器中的指定地址中分别读出源操作数Al, AO和源操作数BI, BO ;
[0052]b)复制I组源操作数Al,AO和BI,B0,用2组相同的源操作数Al,AO和源操作数BI, BO填充128位的总线WrDataBusA和WrDataBusB,为了便于说明,对2组相同的源操作数 Al, AO 和 BI, BO 进行自右向左编号:A1H, AOH, AIL, AOL 和 BlH, BOH, BlL, BOL ;
[0053]c)根据源操作数Al,AO要求写入的寄存器R13?R12的索引地址的高3位(011)确定寄存器R13?R12所在行为第3行,索引地址的次低位(O)确定寄存器R13?R12所在列数为第1、0列,即向寄存器文件中第3行第1、0列所在位置的寄存器R13?R12写入A1L,A0L;根据源操作数BI,BO要求写入的寄存器R23?R22的索引地址的高3位(101)确定寄存器R23?R22所在行为第5行,次低位(I)确定寄存器R23?R22所在列数为第2、3列,即向寄存器文件中第5行第2、3列所在位置的寄存器R23?R22写入B1H,BOH ;
[0054]d)与源操作数Al,AO和BI,BO写入寄存器方式相同,根据源操作数Al,AO和BI,BO所在寄存器索引地址的高3位和次低位分别确定出寄存器所在寄存器文件中的位置,读出寄存器R13?R12存放的源操作数Al,AO输出到总线RdDataBusA的低64位,送至算术逻辑单元ALU ;读出寄存器R23?R22存放的源操作数BI,BO输出到总线RdDataBusB的低64位,送至算术逻辑单元ALU数据输入端口 ;
[0055]e)ALU单元执行第O、I列运算单元,计算的结果Cl, CO送至总线DataOutBus的低64位;
[0056]f)存储控制单元根据指令译码结果,将计算结果写回到寄存器文件或者直接写回到数据存储器中,具体执行过程见附图2b所示。
[0057]ii1.并行度为4时的基本指令寄存器数据读写通路
[0058]为了便于说明,这里假定源操作数A3,A2, Al, AO写入的寄存器为R15?R12,寄存器索引地址为01111?01100,源操作数B3,B2, BI, BO写入的寄存器为R23?R20,寄存器索引地址为10111?10100。
[0059]当并行度Pon为4时,SIMD处理器执行数据处理具体步骤如下:
[0060]a)存储控制单元根据指令译码结果,从数据存储器中的指定地址中分别读出源操作数 A3, A2, Al, AO 和源操作数 B3, B2, BI, BO ;
[0061]b)用源操作数A3,A2, Al, AO和源操作数B3,B2, BI, BO填充128位的总线WrDataBusA 和 WrDataBusB ;
[0062]c)根据源操作数A3,A2,Al,AO要求写入的寄存器R15?R12索引地址的高3位
(011)确定寄存器R15?R12所在行为第3行,即向寄存器文件中第3行第3、2、1、0列所在位置的寄存器R15?R12写入A3,A2, Al, AO ;根据源操作数B3,B2, BI, BO要求写入的寄存器R23?R20的索引地址的高3位(101)确定寄存器R23?R20所在行为第5行,即向寄存器文件中第5行第3、2、1、0列所在位置的寄存器R23?R20写入B3,B2, BI, BO ;
[0063]d)与源操作数A3,A2,Al,AO和B3,B2,BI,BO写入寄存器方式相同,根据源操作数A3, A2, Al, AO和B3,B2, BI, BO所在寄存器索引地址的高3位确定出寄存器所在寄存器文件中的位置,读出寄存器R15?R12存放的源操作数A3,A2, Al, AO输出至总线RdDataBusA,送至算术逻辑单元ALU ;读出寄存器R23?R20存放的源操作数B3,B2, BI, BO输出至总线RdDataBusB,送至算术逻辑单元ALU数据输入端口 ;
[0064]e) ALU单元执行第O、1、2、3列运算单元,计算的结果C3,C2,CI,CO送至总线DataOutBus ;
[0065]f)存储控制单元根据指令译码结果,将计算结果写回到寄存器文件或者直接写回到数据存储器中,具体执行过程见附图2c所示。
[0066]2)复杂操作指令寄存器文件数据读写方法
[0067]在SMD处理器进行复数类、蝶形运算等计算时,在源操作数写回寄存器文件前需要对数据进行复制排序,复数类计算和碟形计算仅在数据写回时数据复制顺序不同,这里以复数乘计算为例。
[0068]为了便于说明,这里假定源操作数O为复数A = ReA+j*ImA,写入的寄存器为R15?R12,寄存器索引地址为01111?01100,源操作数I为复数B = ReB+j*ImB,写入的寄存器为R23?R20,寄存器索引地址为10111?10100。
[0069]当进行复数类计算时,SIMD处理器执行数据处理具体步骤如下:
[0070]a)存储控制单元根据指令译码结果,按照并行度为2从数据存储器DRAM中的指定地址中分别读出源操作数ImA,ReA和源操作数ImB,ReB ;
[0071]b)复制一组源操作数 ImA, ReA 和 ImB, ReB,按照 ImA, ReA, ImA, ReA 和ReB, ImB, ImB, ReB的形式进行排序并填充128位的总线WrDataBusA和WrDataBusB,更改并行度Pon为4 ;
[0072]c)根据ImA, ReA, ImA, ReA要求写入的寄存器R15?R12的索引地址的高3位
(011)确定寄存器R15?R12所在行为第3行,向寄存器文件中第3行第3、2、1、0列所在的寄存器R15?R12写入ImA, ReA, ImA, ReA ;根据ReB, ImB, ImB, ReB要求写入的寄存器R23?R20的索引地址的高3位(101)确定寄存器R23?R20所在行为第5行,即向寄存器文件中第5行第3、2、1、0列所在位置的寄存器R23?R20写入ReB,ImB, ImB, ReB ;
[0073]d)与源操作数ImA, ReA, ImA, ReA和ReB,ImB, ImB, ReB写入寄存器方式相同,根据源操作数ImA,ReA, ImA, ReA和ReB,ImB, ImB, ReB所在寄存器索引地址的高3位确定出寄存器所在寄存器文件中的位置,读出寄存器R15?R12存放的源操作数ImA,ReA, ImA, ReA输出至总线RdDataBusA,送至算术逻辑单元ALU数据输入端口 A ;读出寄存器R23?R20存放的源操作数ReB,ImB, ImB, ReB输出至寄存器数据读出总线RdDataBusB,送至算术逻辑单元ALU数据输入端口 B ;
[0074]e)ALU单元执行第O、1、2、3列运算单元,计算的结果ImC,ReC送至总线DataOutBus 的低 64 位;
[0075]f)存储控制单元根据指令译码结果,将计算结果写回到寄存器文件或者直接写回到数据存储器中,具体执行过程见附图2d所示。
【权利要求】
1.一种用于SMD处理器的寄存器文件数据读写装置,包括数据存储器DRAM、寄存器数据写回单元、寄存器文件RegFIle和寄存器数据读出单元,其特征在于: 所述数据存储器DRAM存储SMD处理器执行时需要处理的数据; 所述寄存器写回单元对需要写回到寄存器文件中数据进行预处理;根据所述处理器访问执行并行度Para,完成对待写回寄存器文件数据进行复制或者重新排序;SMD处理器访问并行度为Para,Para = 2p,0^p^n ;所述SMD处理器每次访问2P组寄存器,一个执行周期并行执行2P组数据处理,SIMD处理器总线最大支持2n组数据处理; 所述寄存器文件包含w个寄存器,其中w = 2n+m,n、m为正整数;所述寄存器在物理实现方式上按照NXM矩阵排列,其中N= 2"表示列数,代表每组寄存器内具体寄存器个数,N等于所述SMD处理器支持最大并行度,M = 2m表示行数,代表寄存器文件包含组寄存器数;所述寄存器文件索引地址宽度为(n+m-l,0)位,每个寄存器的索引地址按照矩阵形式,先行后列自右向左依次编码,索引名称依次为Ro?Rm ;所述寄存器索引地址(n+m-l,n)位段代表的数值确定矩阵当前行号所在的行寄存器组的使能有效信号; 所述寄存器数据读出单元对寄存器文件中待读出数据进行读取。
2.一种利用权利要求1所述装置用于SMD处理器的寄存器文件数据读写的方法,其特征在于包括下述步骤: 1)初始化,将需要进行数据处理的数据存储在数据存储单元DRAM指定地址范围中,根据指令译码单元产生并行度Para、寄存器写使能信号、寄存器读使能信号、数据操作类型和待访问寄存器索引; 2)根据译码控制信号,从DRAM指定地址范围中,按照当前执行并行度读出Para= 2P组数据,通过总线送至寄存器数据写回单元; 3)寄存器写回单元操作分为两类情况:一类为所述SMD处理器在执行运算操作过程中不改变并行度Para,对待写回寄存器数据复制2n_p_l份,所有2”组数据依次填充总线并输出至寄存器文件;另一类为所述SMD处理在执行运算操作过程中改变并行度Para,当所述处理器访问并行度为Para = 2P时,将当前数据进行一次复制,若当前运算操作要求复制后的数据重新排序,按照操作要求完成该组数据重新排序,将当前两组数据按照输入顺序合并为包含2P+1个数据的组,改变当前执行并行度为Para = 2P+1,对合并后的数据组再次进行复制2^4-1份,所有21^.1组数据依次填充总线并输出至寄存器文件; 4)寄存器文件根据待访问寄存器的索引地址(n+m-l,0)和当前并行度Para确定具体待访问寄存器具体位置;待访问寄存器索引高(n+m-l,n)位与寄存器文件中行号数值一致,确定该行寄存器写使能有效;根据待访问寄存器索引地址低(n_l,p)位确定具体列寄存器组写使能有效,当P彡n-Ι时,所述寄存器矩阵中列寄存器地址(n-1,p)与待访问寄存器地址(n-l,p)位段一致时,确定该列寄存器使能有效;当p>n-l时,所述寄存器矩阵中列寄存器使能均有效,当所述寄存器矩阵中寄存器所在行和列均为写使能信号有效时,该寄存器确定为写使能有效,将总线中与索引寄存器对应区间的数据写入目的寄存器中; 5)寄存器读出单元读出寄存器文件待访问寄存器中的数据,根据待访问寄存器的索引地址(n+m-l,0)和当前并行度Para确定待访问寄存器具体位置;当寄存器读使能信号有效时,所述寄存器数据读出单元在寄存器读使能信号的控制下,读出待访问寄存器中的数据,按照寄存器索引地址由低向高依次依次输出至总线低2P个字段,寄存器数据读取完毕,寄存器文件中读出的数据进入到下一个执行单元中进行数据处理。
【文档编号】G06F9/38GK104317554SQ201410542096
【公开日】2015年1月28日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】杨靓, 曹辉, 何卫强, 高向强, 金玉琳 申请人:中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1