CN102629238A - 支持向量条件访存的方法和装置 - Google Patents
支持向量条件访存的方法和装置 Download PDFInfo
- Publication number
- CN102629238A CN102629238A CN2012100507958A CN201210050795A CN102629238A CN 102629238 A CN102629238 A CN 102629238A CN 2012100507958 A CN2012100507958 A CN 2012100507958A CN 201210050795 A CN201210050795 A CN 201210050795A CN 102629238 A CN102629238 A CN 102629238A
- Authority
- CN
- China
- Prior art keywords
- access
- vectorial
- vector
- memory access
- memory
- 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.)
- Granted
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
一种支持向量条件访存的方法和装置,方法的步骤为:(1)在向量条件访问单元VCAU中设置两个可编程的寄存器:N位的VPE条件访问寄存器和N位的VB条件写回寄存器;(2)指令译码单元接收指令派发部件发出的向量访存指令进行指令译码,译出指令中的访存信息;(3)地址计算单元根据访存信息产生访问N个VB的访问请求vr及地址并送到VCAU;(4)VCAU对所有访存信息进行条件整理和数据对齐;(5)将各VB访存流水线的写回信息打入向量条件写回单元VCWBU进行整理。该装置由包括访存指令译码单元、地址计算单元、向量存储体VB、向量条件访问单元VCAU、向量条件写回单元VCWBU组成的向量存储器VM。本发明可提高访存操作灵活性,有效提高向量存储器的利用率和访存效率。
Description
技术领域
本发明主要涉及到计算机体系结构的设计领域,特指一种面向无线通信等数据密集型应用的向量处理器中向量数据的访存控制方法和装置,能更好地支持按单指令流多数据流(Single Instruction Multiple Data,SIMD)方式操作的向量处理单元(Vector Processing Elements,VPEs)对向量存储器(Vector Memory,VM)的多种条件访问操作。
背景技术
随着计算机技术和集成电路工艺的发展,微处理器的主频越来越高,中央处理单元(CPU)计算能力的增长远远超过了存储器性能的增加, CPU与存储器之间性能差异的“存储墙”问题已成为制约微处理器整体性能进一步提高的瓶颈。而在面向无线通信、图像处理等流媒体应用的向量处理器中,存储墙的问题尤为严重。
无线通信、图形图像处理等流媒体应用具有典型的高数据密集性特点,其数据缺乏局部性和可重用性,同时数据处理又具有较强的实时性需求,使得片内向量存储器由于其访问延时的确定性在向量处理器中得到了广泛应用。向量处理器通常采用超长指令字(VLIW)结构,片内集成多个并行的向量处理单元(VPE),以SIMD方式进行运算操作,以开发更多的指令级和数据级并行性。如何为向量处理器中的向量处理单元提供更为灵活和高效的向量数据访存方式成为向量存储系统设计中面临的重要问题。
为了满足VPE的高带宽访存需求,向量存储器VM一般采用与VPE一一对应的多路向量存储体(Vector BANK,VB)低位地址交叉编址组织结构,支持多个VPE的并行访存请求。目前一般的向量访存方式存在以下问题:(1)为了实现访存的方便快捷,只支持向量处理单元与向量存储器中的向量存储体一一对应的访存方式,即各个VPE只能一起访问其对应VB内的数据,不能按条件访问其他VB中的数据;(2)VPE不能对向量处理器进行标量数据访问,即不直接支持多个VPE对向量处理器中某一标量数据的读写访问操作,此类数据访问只能通过VPE之间的混洗、打包、解包等额外操作或在存储器中保存同一数据的多份拷贝来实现,这将增加代码密度或降低向量存储器存储空间的利用率,降低了访存装置的效率和灵活性;(3)一般的向量存储器实现字节或半字连续的访问往往需要用字节(8位)位宽的存储体来组织存储器,造成存储体过多,存储体的组织和编址复杂,从而访存状态机较为复杂。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,提供一种可支持VPE对向量存储器进行各种条件访问的访存方法和装置,采用压缩字节和半字粒度访问请求和数据的方法,大幅提高了向量存储器访存操作的灵活性,有效提高向量存储器的利用率和访存效率,加速了相关算法。
本发明采用以下技术方案:
一种支持向量条件访存的方法,其步骤为:
(1)在向量条件访问单元VCAU中设置一个可编程的N位的VPE条件访问寄存器VCon_AcessBit[N-1:0]和N位的VB条件写回寄存器VCon_CopyBit [N-1:0];对应N个VPE的访存条件执行位,为1时表示执行,为0表示不执行;其中,VCon_AcessBit[N-1:0]控制对应VB是否执行访存操作,VCon_CopyBit[N-1:0]只在标量读访问时控制对应VB是否执行数据写回操作;
(2)指令译码单元接收指令派发部件发出的向量访存指令进行指令译码,译出指令中的访存信息;若为写指令还要向VPU的向量寄存器发出读使能,读出向量寄存器的数据,并将以上访存信息发给执行站;
(3) 执行站中地址计算单元根据所述访存信息产生访问N个VB的地址和初步的访问请求vr;
(4) VCAU将执行站接收到的向量条件访问寄存器VCon_AcessBit、流水线中的访问请求vr进行整理,若向量条件访问寄存器VCon_AcessBit[i]=0,则将其对应的VPEi请求vr[i] 置无效,如果向量条件访问寄存器VCon_AcessBit[i]=1,则VPEi对应的访问请求vr[i]有效;将访问数据进行整理,形成访问N个VB的N套访存请求和数据的访存信息,然后将加工后的访问请求Reqi、数据和步骤(3)中计算出的VB地址分别加入到步骤(2)得到的访存信息中,再访问VM;
(5) 将各VB访存流水线的写回信息打入向量条件写回单元VCWBU进行整理,若VB访存流水线传递过来的向量写回寄存器VCon_CopyBit[i]=0,则只需将VCon_AcessBit[i]=1时读出的数据写回VPU即可;若此时为标量访问且访存流水线中的VCon_CopyBit[i]=1,则将VCon_AcessBit[i]=1时读出的数据复制N份,然后将VCon_CopyBit[i]=1对应的数据写回VPU。
本发明进一步提供一种支持向量条件访存的装置,它包括向量存储器VM,由N个向量存储体VB0~VBN-1、访存指令译码单元、地址计算单元、向量条件访问单元VCAU和向量条件写回单元VCWBU组成,每个向量存储体VB拥有自己的访存流水控制器;所述访存指令译码单元用来接收指令派发部件发送的向量条件访存指令并译码出指令中的访存信息;所述地址计算单元负责产生访问VM的地址和初步的请求vr[N-1:0];所述向量条件访问单元VCAU负责将流水线中的条件访问寄存器VCon_AcessBit [N-1:0]和访问请求vr[N-1:0]进行整理生成向量条件访问请求和字节使能,同时对数据进行整理,并传递给N个VB的访存流水线;所述向量条件写回单元VCWBU根据访存流水线中的访问请求、字节使能和写回访问寄存器生成写回使能信号,同时对写回数据进行整理,并根据向量处理部件VPU的忙闲状态选择是否写回对应的VPEi;所述向量存储器VM通过向量条件访问单元VCAU和向量条件写回单元VCWBU实现N个向量处理单元VPE对向量存储器VM中向量数据的条件读写访问。
与现有技术相比,本发明的优点在于:
1.本发明中,VM用字位宽的存储体组织结构实现了连续字节、半字或字粒度的访存请求,支持按字(W位)对齐方式的多种数据粒度的向量数据访问。按字节和半字粒度访问时利用压缩数据、请求和增加字节使能的控制方法提高了存储空间的利用率,不需要用字节(8位)位宽的存储体来组织VM,避免了存储体过多导致的组织和编址复杂的问题,从而简化了向量存储体的组织结构及其访存请求仲裁状态机。
2.本发明支持向量存储器条件访问,增强了向量数据访问的灵活性,通过合理调控N个VB相对应的访存请求,屏蔽掉不需访问的VB访存请求,从而降低了访存功耗。
3.本发明为向量数据访问提供了标量数据的向量条件访问方式,节省了数据存储空间,提高了存储器空间的有效利用率和向量访存的灵活性,可大幅减少应用算法中常数加载次数和混洗次数,降低了功耗,减少了指令密度,提高了访存效率,加速了相关算法。
4.本发明向量条件访问对图像过滤、自动频率控制(AFC,Auto Frequency Control)、多输入多输出(MIMO,Multiple Input Multiple Output)均衡等数据密集型算法的向量化处理提供了较大的灵活性,提高了此类算法在向量处理器上的执行效率。使用者可通过编程配置向量条件访问寄存器和向量条件写回寄存器来控制向量条件访存,根据算法需要将向量条件为真的值原样输出,为假的值维持不变,从而得到过滤的数据。
综上所述,本发明中的支持向量条件访存的方法和装置,以较小的硬件代价,支持了多种粒度向量数据的条件访问,提高了访存效率,增加了向量访存操作的灵活性,适用于面向无线通信、视频和多媒体应用的采用SIMD和向量技术的处理器。
附图说明
图1是本发明方法的流程示意图。
图2是本发明装置及其与其他部件的接口示意图。
图3 是VPU按字粒度访问VM,当向量条件访问寄存器为VCon_AcessBit[i]=1和向量条件写回寄存器VCon_CopyBit[i]=0或1对应的向量条件访问及条件写回的数据流图(0<=i<=N-1,以W=32位,BE位宽为W/8=4为例)。
图4是VPU按字节粒度访问VM,向量条件访问寄存器VCon_AcessBit[i]~[i+3]均为1和向量条件写回寄存器VCon_CopyBit[i]=0时对应的向量访问数据流图(0<=i<=N-1,以W=32位,BE位宽为W/8=4为例)。
图5是VPU按半字粒度访问VM,向量条件访问寄存器VCon_AcessBit[i]~[i+1]均为1和向量条件写回寄存器VCon_CopyBit[i]=0时对应的向量访问数据流图(0<=i<=N-1,以W=32位,BE位宽为W/8=4为例)。
图6是向量条件访问单元VCAU中访问请求整理模块的结构示意图,完成向量访问请求的重整理(0<=i<=N-1,以W=32位,BE位宽为W/8=4为例)。
图7是向量条件写回单元VCWBU中写回使能整理模块的结构示意图,完成写回使能的重整理(0<=i<=N-1,以W=32位,BE位宽为W/8=4为例)。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
在采用N路SIMD技术的VM中,针对由N路W位宽的VB构成的VM的向量数据访问和标量数据访问,本发明提供一种支持向量条件访存的方法和装置。
如图1所示,一种支持向量条件访存的方法,其步骤为:
(1)在向量条件访问单元VCAU中设置一个可编程的N位的VPE条件访问寄存器VCon_AcessBit[N-1:0]和N位的VB条件写回寄存器VCon_CopyBit [N-1:0];对应N个VPE的访存条件执行位,为1时表示执行,为0表示不执行;其中,VCon_AcessBit[N-1:0]控制对应VB是否执行访存操作,VCon_CopyBit[N-1:0]只在标量读访问时控制对应VB是否执行数据写回操作;使用者可根据需要对VCon_AcessBit[N-1:0]和VCon_CopyBit[N-1:0]的任何一位进行编程;
(2)指令译码单元接收指令派发部件发出的向量访存指令进行指令译码,译出指令中的访存信息;若为写指令还要向VPU的向量寄存器发出读使能,读出向量寄存器的数据,并将以上访存信息发给执行站;该访存信息包括访问VM的访问请求有效信号、向量访存指令类型、符号扩展类型、基地址、偏移地址、源或目的寄存器编号和访问粒度等;
(3) 执行站中地址计算单元根据访存信息产生访问N个VB的地址和初步的访问请求vr;
(4) VCAU将执行站接收到的向量条件访问寄存器VCon_AcessBit、流水线中的访问请求vr按图6方法进行整理,若向量条件访问寄存器VCon_AcessBit[i]=0,则将其对应的VPEi请求vr[i] 置无效,如果向量条件访问寄存器VCon_AcessBit[i]=1,则VPEi对应的访问请求vr[i]有效;将访问数据按图3、图4和图5方法进行整理,形成访问N个VB的N套访存请求、数据等访存信息,然后将加工后的访问请求Reqi、数据和步骤(3)中计算出的VB地址分别加入到步骤(2)得到的访存信息中,再访问VM ;
(5) 将各VB访存流水线的读出数据、读出请求Req、读出字节使能BE、目的寄存器编号等写回信息打入向量条件写回单元VCWBU进行整理(写回使能按图7进行整理,数据按图3、图4和图5进行整理),若VB访存流水线传递过来的向量写回寄存器VCon_CopyBit[i]=0,则只需将VCon_AcessBit[i]=1时读出的数据写回对应的VPEi即可(忙则寄存,不忙则写回);若此时为标量访问且访存流水线中的VCon_CopyBit[i]=1,则将VCon_AcessBit[i]=1时读出的数据复制N份,然后将VCon_CopyBit[i]=1对应的数据写回对应的VPEi(忙则寄存,不忙则写回)。
参见图3所示,为具体实施例中,VPU按字粒度访问向量存储器的数据流图(取W=32,BE位宽为W/8=4)。当向量条件访问寄存器VCon_AcessBit[i]=1(简称A[i],高有效),VPEi访问VBi的访存请求经VCAU加工成真实的请求Reqi=Ri、四位的字节使能信号BEi={ Ri, Ri, Ri, Ri }( Ri高有效)和写数据WrtDatai,此时WrtDatai=PEDi,PEDi为第i个VPE的数据,若为写访问,则有写数据和写字节屏蔽位,该屏蔽位为字节使能按位取反。
向量条件写回寄存器的第i位VCon_CopyBit[i]=0(简称C[i] ,高有效,只对标量请求有效)时,本站流水线中字节使能BE和数据经VCWBU加工成写回信号(若为读访问则有写回地址及数据)WBi=Reqi和写回数据WBDatai= RdDatai ( RdDatai为读请求从VBi中读出的数据);若向量访存指令类型为标量读且向量条件写回寄存器C[i]=1,还要将向量条件写回寄存器C[0]~[N-1]为1的写回使能WBi和数据WBDatai复制后再写入对应的VPEi。
参见图4所示,为具体实施例中,VPU按字节粒度访问向量存储器的数据流图(取W=32,BE位宽为W/8=4)。当向量条件访问寄存器A[i]~[i+3]=1(高有效),VPEi~i+3访问VBi的访存请求Ri~i+3经VCAU组合成真实的请求Reqi={Ri+3|Ri+2|Ri+1| Ri }(文中 | 表示或运算符)、四位的字节使能信号字节使能信号BEi={Ri+3,Ri+2,Ri+1,Ri}(高有效)和写数据WrtDatai={PEDi+3 [7:0],PEDi+2[7:0],PEDi+1[7:0],PEDi[7:0]} (由于采用按字对齐访问,字节数据压缩组合时i的取值为i%(W/8)=i%4=0, % 表示求余运算符,相邻W/8=4个字节请求或数据组合成访问VBi的BE或数据,PEDi[7:0]为第i个VPE的数据的[7:0]位,若为写访问则有写数据和由字节使能按位取反得到的写字节屏蔽位)。
向量条件写回寄存器C[i]~[i+3]=0(高有效)时,本站流水线中字节使能BE和数据经VCWBU加工成写回信号(若为读访问则有写回地址及数据)WBi+3=Bi[3],WBi+2=Bi[2],WBi+1=Bi[1], WBi = Bi[0](Bi[0]为BEi的第0位)和写回数据WBDatai+3={ Typei [31], RdDatai
[31:24]},WBDatai+2={Typei[23],RdDatai[23:16]},WBDatai+1={Typei[15],RdDatai[15:8]},WBDatai={ Typei[7], RdDatai[7:0]}( Typei为RdDatai的符号位扩展,RdDatai为读请求从VBi中读出的数据)。
参见图5所示,为具体实施例中,VPU按半字粒度访问向量存储器的数据流图(取W=32,BE位宽为W/8=4)。当向量条件访问寄存器A[i]~[i+1]=1(高有效),VPEi访问VBi的访存请求Ri经VCAU组合成真实的请求Reqi={ Ri+1|Ri}、四位的字节使能信号字节使能信号BE[i]={Ri+1, Ri+1, Ri, Ri}(高有效)和写数据WrtDatai={ PEDi+1 [15:0],PEDi[15:0]} (半字数据压缩组合时i的取值为i%(W/8)=i%4=0, 相邻2个半字请求或数据组合成访问VBi的BE或数据,PEDi为第i个VPE的数据,若为写访问,则有写字节屏蔽位和数据)。
向量条件写回寄存器C[i]~[i+1]=0(高有效)时,本站流水线中字节使能BE和数据经VCWBU加工成写回信号(若为读访问则有写回使能及数据)WBi+1=Bi[2],WBi = Bi[0](Bi[0]为BEi的第0位)和写回数据WBDatai+1={ Typei [31], RdDatai [31:16]}, WBDatai ={ Typei [15], RdDatai[15:0]}( Typei为RdDatai的符号位扩展,RdDatai为从VBi中读出的数据)。
参见图6所示,为具体实施例中,向量条件访问单元VCAU中访问请求整理模块的结构示意图,完成向量访问请求的重整理。主要由N位的向量条件访问寄存器VCon_AcessBit、N个二输入或门OR20~N-1 、N个四输入或门OR40~N-1和N个三选一选择器MUX0~N-1组成。VCon_AcessBit[i](简称A[i])的输入端为初始的向量访问请求的第i位vr[i],输出端为VPEi的访问请求Ri; A[i+1]的输入端为初始的向量访问请求的第i+1位vr[i+1],输出端为VPEi+1的访问请求Ri+1; A[i+2]的输入端为初始的向量访问请求的第i+2位vr[i+2],输出端为VPEi+2的访问请求Ri+2; A[i+3]的输入端为初始的向量访问请求的第i+3位vr[i+3],输出端为VPEi+3的访问请求Ri+3;或门OR2i的输入为Ri和 Ri+1,或门OR4i的输入为Ri,Ri+1 ,Ri+2 ,Ri+3,输出连接至选择器MUXi的输入端之一;选择器MUXi的输入端分别为Ri, {Ri+3|Ri+2|Ri+1|Ri}, { Ri+1|Ri },选择器MUXi的输出端为访问VBi的请求Reqi (0<=i<=N-1),三选一选择器的选择控制信号为问粒度Acess_Width(00为字访问,01为字节访问,10为字访问)(0<=i<=N-1)。
参见图7所示,为具体实施例中,向量条件写回单元VCWBU中写回使能整理模块的结构示意图,完成写回使能的重整理。主要由N个三输入选择器MUX0~N-1和N位向量条件写回寄存器VCon_CopyBit组成。三选一选择器MUXi的输入端分别为读出存储器的字请求信号Reqi、字节使能BEi[0]和BEi[0] ;三选一选择器MUXi+1的输入端分别为字请求信号Reqi+1、字节使能BEi[1]和BEi[2] ;三选一选择器MUXi+2的输入端分别为读出存储器的字使能信号Reqi+2、字节使能BEi[2]和BEi+1[0] ;三选一选择器MUXi+3的输入端分别为读出存储器的字使能信号Reqi+3、字节使能BEi[3]和BEi+1[2] 。N个三选一选择器MUX0~N-1的输出端为写回N个VPE的写回有效信号Valid0~N-1,它们分别为N位向量条件写回寄存器VCon_CopyBit[0]~[N-1]的输入; N位向量条件写回寄存器VCon_CopyBit[0]~[N-1]的输出即为写回N个VPE的使能信号WB0~N-1。
本实施例中,向量条件访问单元(Vector Condition Access Unit, VCAU)具有向量条件访问功能,向量条件写回单元(Vector Condition Write Back Unit, VCWBU)具有向量数据条件写回功能,使VM不仅支持按字地址边界对齐的N个字节、或半字、或字的连续访问,还支持N路向量条件请求的非连续访问。其中W为2的正整数次幂,大于等于8,N为2的正整数次幂,且N大于等于2。每个VB由W位宽的存储体构成,且包含W/8位的字节写屏蔽信号BYWEN,屏蔽VB中一个W位宽字中W/8个字节的写入。BYWEN某位有效(假设为1表示有效,0表示无效), VB对应字节的写入操作被屏蔽,BYWEN某位无效,VB对应的字节才能写入数据。一个VB单周期最大能提供W位宽字的数据访问带宽,可支持字节(8位)、半字(W/2位)和字粒度(W位)的访问。SIMD结构的向量处理器按单指令流多数据流方式执行访存指令,其访存译码单元负责向量访存指令译码,地址计算单元负责向量访存地址的计算,向量条件访问单元VCAU根据访存译码单元和地址计算单元得到的访存类型、访存粒度、访存地址和访问条件执行等信息生成N路VB的访存信号,送至VM访存流水线实现向量存储器的条件访存;若为读请求,写回VPE信号还要经过向量条件写回单元VCWBU 进行整理,实现向量存储器的条件写回。
VCAU接收条件访问寄存器VCon_AcessBit[N-1:0]、条件写回寄存器VCon_CopyBit[N-1:0]、指令译码单元的访存指令类型(标量/向量读、向量写操作)、读写寄存器编号和数据访问粒度(字节、半字或字粒度)及地址计算单元得到的N套访存地址、N位向量访问请求vr[N-1:0]等信息,然后将向量访问请求vr[N-1:0]配合N位的条件访问寄存器VCon_AcessBit[N-1:0]生成N套VB 访问请求及其对应的W/8位的读写字节使能信号BE,再将包括条件访问、写回信息(VCon_AcessBit[N-1:0]和VCon_CopyBit[N-1:0])、访问请求、字节使能BE、访问粒度、指令类型、访存地址在内的N套访存信息,一起传给对应的N个VB,访存请求为1的VB按VM访存流水线执行访存操作,为0的则不执行。如指令类型为向量写操作,则各VB将传给自己的BE按位取反赋值给BYWEN,执行VB对应字的写操作,然后结束本次访问;若为读请求,访问VB读出数据后还要将流水线中的条件写回信息(VCon_CopyBit[N-1:0])、访问请求、指令类型、字节使能BE、粒度信息(字节、半字或字)、符号位信息(符号位扩展或补0)和读出的数据等信息传递到VCWBU,根据访问粒度、指令类型(标量读或向量读)和N位的VB向量条件写回寄存器VCon_CopyBit[N-1:0] (VCon_CopyBit[N-1:0]只对标量条件读访问有效),根据访问粒度选择使用访问请求或字节使能BE生成与VPU的N个VPE对应的N套写回使能,写回使能为1则执行对应VPE的写回操作,写回使能为0则不执行写回操作。VCAU的访问请求和数据的整理过程分别见图6,VCWBU的写回使能和数据的整理过程分别见图7。
本实施例中,VPE按字节、半字、或字粒度对VM进行条件访问操作时,均按字边界对齐、以字为单位。VCAU和VCWBU按以下三种向量访存指令类型支持条件访问操作。
(1)向量读;
VPU按字对VM进行向量读访问时, VCAU直接将N位的VCon_AcessBit作为N个VB的读访问请求,和其对应访存地址一起发送到VM访存流水线。N个访问请求中任一请求都可为0或1,所以N个请求有2N种条件组合情况。VM中的N个VB根据读访问请求信号是否为1按访存地址进行读存储器操作,访问请求、向量访存指令类型和读出数据继续传送到VM访存流水线的写回站,由VCWBU直接选择读访问请求信号作为写回使能,将读出的字写回对应的VPE,完成字粒度的向量读访问。
VPU按半字或字节粒度对VM进行向量读访问时, VCAU将根据访问粒度和VCon_AcessBit生成发送给N个VB的读访问请求,对于半字访问,最多能给VM发送N/2个有效访问请求;对于字节访问,最多能给VM发送N/(W/8)个有效访问请求。N个VB的读访问请求及其对应的字节使能BE和访存地址,被发给各VB执行读访问操作,并将访问请求、向量访存指令类型、读出数据、字节使能BE和访问粒度传至访存流水线写回站,由VCWBU根据BE和访问粒度从读出的字数据中选出N个字节或N个半字数据,并生成对应写回使能,完成字节或半字向量读访问。生成写回使能和数据的方法为:如果是字节读,则将选出的N/(W/8)个字数据和字节使能BE[(W/8)-1:0]按顺序分解为连续的N个字节的数据及其写回使能;如果访问粒度是半字,则将N/2个字的数据及字节使能BE[(W/8)-1:0]按顺序分解为连续的N个半字数据,并生成N个写回使能;然后将读出的字节或半字写回对应的VPE,完成字节或半字粒度的向量读访问。
(2)标量读;
访存指令类型为标量读指令时,N个VPE中只有一个VPE发出读请求,即N位的VCon_AcessBit[N-1:0]中只有1位被设置为有效,同时还需要设置条件写回寄存器VCon_CopyBit,由其决定访存流水线中按条件读出的一个数据需要写入哪些VPE。
执行标量读访问时,读存储器操作与向量读操作相同,不同的是还需要设置VCon_CopyBit,并将其送入VM访存流水线的写回站,同时将读出的单个数据复制N份送入VM访存流水线的写回站,由VCWBU根据向量访存指令类型直接使用VCon_CopyBit [N-1:0]生成写回使能信号,控制对应VB是否执行写回VPE操作,为1表示执行,为0表示不执行。如果条件工作寄存器VCon_CopyBit [N-1:0]全为1,则读访问得到的标量数据将写入所有VPE中。
(3)向量写;
如果执行的访存指令是向量写访问,需要根据访存粒度对写存储器数据进行合并整理。即如果访问粒度为字节或半字,VCAU还需将访存数据压缩成多个与VB字宽对应的多个数据,并根据VPE条件访问寄存器VCon_AcessBit和访问粒度生成访问VB的写请求及其读写字节使能信号BE,将BE按位取反作为访问对应VB的字节屏蔽位BYWEN。如果是字节写访问,则需将连续的W/8个字节的数据及请求按顺序合并成对应的VB写访问数据、请求、及字节使能;如果是半字则需将连续的两个半字的数据及其请求按顺序合并成对应的VB的写访问数据、请求及字节使能。将这些访存信息送入后面的写访存流水线,完成VM的向量写操作。
如图2所示,本发明提供一种支持向量条件访存的装置,包括向量存储器VM,由N个向量存储体VB0~VBN-1、访存指令译码单元、地址计算单元、向量条件访问单元VCAU和向量条件写回单元VCWBU组成;每个VB拥有自己的访存流水控制器;访存指令译码单元用来接收指令派发部件发送的向量条件访存指令并译码出指令中的访存信息;地址计算单元负责产生访问VM的地址和初步的请求vr[N-1:0];向量条件访问单元VCAU负责将流水线中的条件访问寄存器A[N-1:0]和访问请求vr[N-1:0]进行整理生成向量条件访问请求和字节使能,同时对数据进行整理,并传递给N个VB的访存流水线;向量条件写回单元VCWBU根据访存流水线中的访问请求、字节使能和写回访问寄存器生成写回使能信号,同时对写回数据进行整理,并根据向量处理部件VPU的忙闲状态选择是否写回VPU向量寄存器;向量存储器VM通过向量条件访问单元VCAU和向量条件写回单元VCWBU实现N个向量处理单元VPE的向量数据对向量存储器VM中向量数据的条件读写。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (2)
1.一种支持向量条件访存的方法,其特征在于,步骤为:
(1)在向量条件访问单元VCAU中设置一个可编程的N位的VPE条件访问寄存器VCon_AcessBit[N-1:0]和N位的VB条件写回寄存器VCon_CopyBit [N-1:0];对应N个VPE的访存条件执行位,为1时表示执行,为0表示不执行;其中,VCon_AcessBit[N-1:0]控制对应VB是否执行访存操作,VCon_CopyBit[N-1:0]只在标量读访问时控制对应VB是否执行数据写回操作;
(2)指令译码单元接收指令派发部件发出的向量访存指令进行指令译码,译出指令中的访存信息;若为写指令还要向VPU的向量寄存器发出读使能,读出向量寄存器的数据,并将以上访存信息发给执行站;
(3) 执行站中地址计算单元根据所述访存信息产生访问N个VB的地址和初步的访问请求vr;
(4) VCAU将执行站接收到的向量条件访问寄存器VCon_AcessBit、流水线中的访问请求vr进行整理,若向量条件访问寄存器VCon_AcessBit[i]=0,则将其对应的VPEi请求vr[i] 置无效,如果向量条件访问寄存器VCon_AcessBit[i]=1,则VPEi对应的访问请求vr[i]有效;将访问数据进行整理,形成访问N个VB的N套访存请求和数据的访存信息,然后将加工后的访问请求Reqi、数据和步骤(3)中计算出的VB地址分别加入到步骤(2)得到的访存信息中,再访问VM ;
(5) 将各VB访存流水线的写回信息打入向量条件写回单元VCWBU进行整理,若VB访存流水线传递过来的向量写回寄存器VCon_CopyBit[i]=0,则只需将VCon_AcessBit[i]=1时读出的数据写回VPU即可;若此时为标量访问且访存流水线中的VCon_CopyBit[i]=1,则将VCon_AcessBit[i]=1时读出的数据复制N份,然后将VCon_CopyBit[i]=1对应的数据写回VPU。
2.一种支持向量条件访存的装置,其特征在于,包括向量存储器VM,由N个向量存储体VB0~VBN-1、访存指令译码单元、地址计算单元、向量条件访问单元VCAU和向量条件写回单元VCWBU组成;所述每个向量存储体VB拥有自己的访存流水控制器;所述访存指令译码单元用来接收指令派发部件发送的向量条件访存指令并译码出指令中的访存信息;所述地址计算单元负责产生访问向量存储器VM的地址和初步的请求vr[N-1:0];所述向量条件访问单元VCAU负责将流水线中的条件访问寄存器VCon_AcessBit [N-1:0]和访问请求vr[N-1:0]进行整理生成向量条件访问请求和字节使能,同时对数据进行整理,并传递给N个向量存储体VB的访存流水线;所述向量条件写回单元VCWBU根据访存流水线中的访问请求、字节使能和写回访问寄存器生成写回使能信号,同时对写回数据进行整理,并根据向量处理部件VPU的忙闲状态选择是否写回VPU向量寄存器;所述向量存储器VM通过向量条件访问单元VCAU和向量条件写回单元VCWBU实现N个向量处理单元VPE对向量存储器VM的条件访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210050795.8A CN102629238B (zh) | 2012-03-01 | 2012-03-01 | 支持向量条件访存的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210050795.8A CN102629238B (zh) | 2012-03-01 | 2012-03-01 | 支持向量条件访存的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102629238A true CN102629238A (zh) | 2012-08-08 |
CN102629238B CN102629238B (zh) | 2014-10-29 |
Family
ID=46587498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210050795.8A Active CN102629238B (zh) | 2012-03-01 | 2012-03-01 | 支持向量条件访存的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629238B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294621A (zh) * | 2013-05-08 | 2013-09-11 | 中国人民解放军国防科学技术大学 | 支持数据按模重组的向量访存方法 |
CN103942152A (zh) * | 2014-04-28 | 2014-07-23 | 中国人民解放军国防科学技术大学 | 支持simd体系结构的分布式堆栈数据存储方法 |
WO2017124649A1 (zh) * | 2016-01-20 | 2017-07-27 | 北京中科寒武纪科技有限公司 | 用于向量运算的数据读写调度器及保留站 |
WO2017185392A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量四则运算的装置和方法 |
WO2019047281A1 (zh) * | 2017-09-07 | 2019-03-14 | 中国科学院微电子研究所 | 面向比特粒度的信息处理系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
CN102279818A (zh) * | 2011-07-28 | 2011-12-14 | 中国人民解放军国防科学技术大学 | 支持有限共享的向量数据访存控制方法及向量存储器 |
-
2012
- 2012-03-01 CN CN201210050795.8A patent/CN102629238B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833441A (zh) * | 2010-04-28 | 2010-09-15 | 中国科学院自动化研究所 | 并行向量处理引擎结构 |
CN102279818A (zh) * | 2011-07-28 | 2011-12-14 | 中国人民解放军国防科学技术大学 | 支持有限共享的向量数据访存控制方法及向量存储器 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294621A (zh) * | 2013-05-08 | 2013-09-11 | 中国人民解放军国防科学技术大学 | 支持数据按模重组的向量访存方法 |
CN103942152A (zh) * | 2014-04-28 | 2014-07-23 | 中国人民解放军国防科学技术大学 | 支持simd体系结构的分布式堆栈数据存储方法 |
CN103942152B (zh) * | 2014-04-28 | 2017-01-04 | 中国人民解放军国防科学技术大学 | 支持simd体系结构的分布式堆栈数据存储方法 |
WO2017124649A1 (zh) * | 2016-01-20 | 2017-07-27 | 北京中科寒武纪科技有限公司 | 用于向量运算的数据读写调度器及保留站 |
CN108595371A (zh) * | 2016-01-20 | 2018-09-28 | 北京中科寒武纪科技有限公司 | 用于向量运算的数据读取、写入及读写调度器及保留站 |
WO2017185392A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量四则运算的装置和方法 |
US10997276B2 (en) | 2016-04-26 | 2021-05-04 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
US11100192B2 (en) | 2016-04-26 | 2021-08-24 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
US11341211B2 (en) | 2016-04-26 | 2022-05-24 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
US11436301B2 (en) | 2016-04-26 | 2022-09-06 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
US11507640B2 (en) | 2016-04-26 | 2022-11-22 | Cambricon Technologies Corporation Limited | Apparatus and methods for vector operations |
WO2019047281A1 (zh) * | 2017-09-07 | 2019-03-14 | 中国科学院微电子研究所 | 面向比特粒度的信息处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102629238B (zh) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12032653B2 (en) | Method and apparatus for distributed and cooperative computation in artificial neural networks | |
US9329900B2 (en) | Hetergeneous processor apparatus and method | |
US9971540B2 (en) | Storage device and method for performing convolution operations | |
US9672046B2 (en) | Apparatus and method for intelligently powering heterogeneous processor components | |
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
US9448829B2 (en) | Hetergeneous processor apparatus and method | |
CN112069459A (zh) | 用于稀疏-密集矩阵乘法的加速器 | |
CN101221495B (zh) | 选择流水线配置的方法和执行该方法的基于处理器的平台 | |
US20150254180A1 (en) | Cache structure and management method for use in implementing reconfigurable system configuration information storage | |
US20110320765A1 (en) | Variable width vector instruction processor | |
CN112612521A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
CN117724763A (zh) | 用于矩阵操作加速器的指令的装置、方法和系统 | |
US20040015970A1 (en) | Method and system for data flow control of execution nodes of an adaptive computing engine (ACE) | |
CN105917311A (zh) | 用于便携式设备中的同步任务分发的系统和方法 | |
CN105793819A (zh) | 包括混合处理器核的片上系统(soc) | |
WO2007084700A2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
CN102629238B (zh) | 支持向量条件访存的方法和装置 | |
WO2013032446A1 (en) | Hardware-based array compression | |
WO2022022362A1 (zh) | 数据处理方法、设备和存储介质 | |
US9639372B2 (en) | Apparatus and method for heterogeneous processors mapping to virtual cores | |
CN111381664A (zh) | 控制处理器中的功率状态降级 | |
CN118035618B (zh) | 数据处理器、数据处理方法、电子设备、存储介质 | |
WO2016024508A1 (ja) | マルチプロセッサ装置 | |
Hinrichs et al. | A 1.3-GOPS parallel DSP for high-performance image-processing applications | |
CN116266142A (zh) | 处理器中的频率预算 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |