向量处理器中支持simt的向量访存装置和控制方法

文档序号:8380728阅读:409来源:国知局
向量处理器中支持simt的向量访存装置和控制方法
【技术领域】
[0001]本发明涉及微处理器体系结构设计的技术领域,尤其涉及一种向量处理器中支持SIMT的向量访存装置和控制方法。
【背景技术】
[0002]无线通信、图像处理等流媒体应用的发展需要微处理器在有限的功耗预算下提供更高的实时运算能力,单指令流多数据流(Single Instruct1n Multiple Data, SIMD)技术因其可共享硬件控制结构、能开发大量的数据级并行,可在相对较低的功耗下实现高数据吞吐量的计算能力等特性迅速成为各类微处理器的重要扩展。向量处理器片内集成向量运算单元(Vector Processing Units, VPU)和向量访存单元VMU,向量运算单元VPU内集成了多个并行的运算单元PE,按SMD方式执行运算操作。为满足向量运算单元VPU的向量运算需求,向量访存单元VMU按SIMD方式执行向量访存操作,为向量访存单元VPU提供高带宽的向量访存数据。
[0003]但随着SMD宽度即按SMD方式操作的并行运算单元个数的增加,全局异常导致的全局停顿的代价越来越大,向量处理器在获得更高的理论运算峰值的同时,实际运算效率却并未按预期增加。因此在SIMD方式开发的数据级并行的基础上,迫切需要开发更高的并行性即线程级并行,提高系统的运算效率。但目前的向量访存操作只提供地址连续或等地址跨步等具有特定地址变化规律的一组向量数据的访存,不能满足向量访存单元VPU多线程并行执行的需求,从而无法支持SIMT单指令流多数据流(Single Instruct1nMultiple Data, SIMT)的向量访存。

【发明内容】

[0004]本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种向量访存灵活性强、能够支持线程级并行且并行访存效率高、功耗低的向量处理器中支持SMT的向量访存装置和控制方法。
[0005]为解决上述技术问题,本发明提出的技术方案为:
一种向量处理器中支持SMT的向量访存装置,包括基址向量寄存器单元、偏移向量寄存器单元以及向量地址计算单元,所述基址向量寄存器单元、偏移向量寄存器单元分别包括多组向量寄存器,每组向量寄存器由对应向量处理器中各线程的多个寄存器构成;所述向量地址计算单元包括多个地址计算子单元,每个地址计算子单元分别与向量处理器中各存储体一一对应连接;各线程的基址、偏移地址分别通过所述基址向量寄存器单元、偏移向量寄存器单元中一组向量寄存器进行获取,分别输出至各地址计算子单元进行计算,得到各线程的访存地址并输出至对应的存储体。
[0006]作为本发明装置的进一步改进:还包括通用向量寄存器单元,所述通用向量寄存器单元包括多组向量寄存器,每组向量寄存器由对应向量处理器中各线程的多个寄存器构成;所述通用向量寄存器单元通过一组向量寄存器存储各线程的访存数据。
[0007]作为本发明装置的进一步改进:所述通用向量寄存器单元包括m组通用向量寄存器,其中m=log2t,且t是通用向量寄存器的位数。
[0008]作为本发明装置的进一步改进:所述基址寄存器单元包括Ic1组基址向量寄存器,其中Ic1=1g2S1,且S1为基址向量寄存器的位数;所述偏移向量寄存器单元包括1^2组偏移向量寄存器,其中k2=log2s2,且S2为偏移向量寄存器的位数;所述通用向量寄存器单元包括m组通用向量寄存器,其中m=log2t,且t是通用向量寄存器的位数。
[0009]作为本发明装置的进一步改进:还包括相互连接的SMT指令生成单元以及指令译码单元,所述指令译码单元分别与所述基址向量寄存器单元、偏移向量寄存器单元、通用向量寄存器单元连接;所述SIMT指令生成单元用于根据各线程的访存指令指定读写访问类型以及所述基址向量寄存器单元、偏移向量寄存器单元、通用向量寄存器单元中对应组的向量寄存器,并生成对应的SMT访存指令;所述指令译码单元用于对所述SMD指令生成单元生成的SMT访存指令进行译码,得到所指定的读写访问类型以及所述基址向量寄存器单元、偏移向量寄存器单元、通用向量寄存器单元中对应组的向量寄存器。
[0010]作为本发明装置的进一步改进:基址向量寄存器单元、偏移向量寄存器单元、通用向量寄存器单元均包括寄存器组选择器,寄存器组选择器与所述指令译码单元连接。
[0011]本发明还提供一种基于上述向量访存装置的控制方法,步骤包括:
O将向量处理器中η个线程对应的η路存储体进行统一编址,并根据各存储体的访问地址范围配置所述基址向量寄存器单元、所述偏移向量寄存器单元中对应组的向量寄存器;
2)获取各线程的访存指令并进行指令译码,得到访存指令中所指定的读写访问类型以及所述基址向量寄存器单元、所述偏移向量寄存器单元中对应组的向量寄存器;
3)选取访存指令中所指定的所述基址向量寄存器单元、所述偏移向量寄存器单元对应组的向量寄存器,并根据选取得到的向量寄存器的值计算向量访存地址,得到对应η个线程的η路向量访存地址;
4)将η路向量访存地址分别输出至对应的向量存储体进行访存,若为写指令,则根据所述向量访存地址将各线程对应的η路数据分别写入到向量存储体中;若为读指令,则根据所述向量访存地址从向量存储体中读出η路数据。
[0012]作为本发明方法的进一步改进,所述步骤2)的具体实施步骤为:
2.1)获取各线程的访存指令,根据所述访存指令指定读写访问类型以及所述基址向量寄存器单元、偏移向量寄存器单元中对应组的向量寄存器,以及指定用于通过一组向量寄存器存储各线程的访存数据的通用向量寄存器单元中对应组的向量寄存器,并生成对应的SIMD访存指令;
2.2)对所述SIMD访存指令进行译码,得到各线程的访存指令所指定的读写访问类型以及基址向量寄存器单元、偏移向量寄存器单元、通用向量寄存器单元中对应组的向量寄存器。
[0013]作为本发明方法的进一步改进,所述SMD访存指令的数据位包括访存粒度、寻址模式、读写访问类型有效位、符合位扩展、基址向量寄存器编号、偏移向量寄存器编号以及通用向量寄存器编号,所述基址向量寄存器编号、偏移向量寄存器编号以及通用向量寄存器编号分别用于指定基址向量寄存器单元、偏移向量寄存器单元、通用向量寄存器单元中对应组的向量寄存器。
[0014]作为本发明方法的进一步改进,所述步骤3)的具体实施步骤为:
3.1)将η路向量访存地址分别转化得到η路行地址、存储体BANK地址和偏移地址,并结合访存指令中所指定的访存粒度、寻址模式信息一起传给向量存储体;
3.2)如果是向量写指令,则根据访存指令获取所指定的通用向量寄存器单元中对应组的向量寄存器,并根据转化得到的η路行地址、存储体BANK地址和偏移地址将所指定的所述通用向量寄存器单元中对应组寄存器的值分别写入对应的存储体;如果是向量读指令,则根据所述η路行地址、存储体BANK地址和偏移地址从存储体中读出η路数据,并返回给通用向量寄存器单元。
[0015]与现有技术相比,本发明的优点在于:
1)本发明通过向量化的基址向量寄存器单元、偏移向量寄存器单元获取各线程访存地址的基址、偏移地址,结合向量化的地址计算
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1