一种RISC-V矢量处理单元实现方法及架构技术

技术编号:36829418 阅读:12 留言:0更新日期:2023-03-12 01:43
本发明专利技术公开一种RISC

【技术实现步骤摘要】
一种RISC

V矢量处理单元实现方法及架构


[0001]本专利技术涉及RISC

V矢量扩展
,具体指一种RISC

V矢量处理单元实现方法及架构。

技术介绍

[0002]数据级并行在如多媒体、数据流以及最近的机器学习和深度学习广泛应用和RISC

V矢量扩展达到了稳定性,现在已经准备好批准1.0版本,而且RISC

V矢量扩展的实现在国内目前实现的相对较少。
[0003]目前对于实现矢量扩展的方式一般分为两种形式,一种设计采用协处理器的形式围绕应用处理器进行扩展,虽然增加了标量和矢量部分之间接口的复杂性,但其扩展性强,矢量指令和标量指令的执行模块可以做到完全分开,内部采用传统的基于多通道设计的矢量架构,将矢量寄存器进行划分成块,连接多个用于并行执行的相同通道,每个通道的宽度与最大数据大小相同,每个通道提供相应的算数逻辑单元,但是这种设计所消耗的面积和功耗巨大。早期的RISC

V矢量扩展版本适合采用多通道技术,但其新的RISC

V矢量扩展1.0版本引入的一些变化会使得采用多通道技术的矢量处理单元设计面临跨通道数据处理问题,采用多通道技术在解决跨通道数据问题时需要添加额外的模块设计,这种设计会提高整个矢量单元设计的复杂性,特别是在增加通道的数量时。
[0004]另外一种是将矢量处理单元集成到标量处理器内部,避免标量和矢量部分之间的接口,内部运算单元采用SIMD流水线方式设计,处理器按顺序执行,并且是单周期的。不是将多个指令排队到执行通道中,而是一次执行一个指令,从而消除了对调度指令设计,可以根据操作和矢量长在多个周期内执行指令,可以添加流水线以增加最大频率,内部矢量寄存器设计跟标量处理器一样,但提供多个数据端口,数据路径宽度与矢量寄存器长度匹配,这种设计简化了向算数逻辑单元的数据传输,因为每个周期传输一个寄存器的数据,功耗和面积相对较小,但添加矢量扩展所带来的性能提升相对较低。本设计结合两种设计方式的优点,第一以协处理器方式对标量处理器进行矢量扩展,在标量处理器的执行阶段作为功能单元,对矢量指令的运行和实现进行定义以及与标量执行单元的分开,提高矢量指令执行的速率,减少与标量处理器之间的依赖,无论其标量处理器架构如何,只要该标量处理器支持该协处理器端口设计,即可对其进行矢量扩展。第二本设计在执行模块采用SIMD流水线化方式设计,既可以简化数据传输,又可以避免采用多通道技术面临跨车道数据问题所带来的额外设计,可以降低实现复杂性和带来较好的性能提升。

技术实现思路

[0005]本专利技术根据现有技术的不足,提出一种RISC

V矢量处理单元实现方法及架构,以协处理器方式搭建在标量RISC

V主处理器上。
[0006]为了解决上述技术问题,本专利技术的技术方案为:
[0007]一种RISC

V矢量处理单元实现方法,包括如下步骤:
[0008]S1、矢量指令准备阶段,在标量处理器中执行,取矢量指令,对矢量指令进行简单译码,判断是否需要标量源操作数,读取标量寄存器,与标量处理器FIFO,判断标量数据相关性,可以派遣则在标量处理器FIFO保存需要写回标量寄存器的矢量指令目的寄存器索引信息,并产生矢量指令请求信号,等待矢量处理单元响应;
[0009]S2、矢量指令译码和派遣阶段,根据矢量单元自身状态判断是否响应主处理器矢量请求信号;
[0010]S3、矢量指令执行阶段,该阶段用来矢量指令的执行,通过多个周期执行来间接实现寄存器组内所有元素的执行,每次处理元素的总位宽VLEN位,即一个矢量寄存器长度,每个执行单元采用流水线设计,即SIMD流水线化;
[0011]S4、矢量指令写回和交付阶段,矢量指令既可以写回标量寄存器和写回矢量寄存器,写回标量寄存器的矢量需要通过矢量指令反馈端口,向标量处理器产生反馈信息,等待标量处理器响应可直接通过矢量处理单元的反馈端口将其直接写回至标量处理器,将该指令在标量处理器中的保存的指令信息去除,完成了该指令的交付,写回矢量寄存器的矢量指令直接通过仲裁将其写回矢量寄存器以及去除在派遣阶段保存该指令的信息完成该矢量指令的交付。
[0012]作为优选,所述步骤S2中,如果响应,则接收该矢量指令和源标量操作数,接着对矢量指令进行完全译码,译码指令的格式和读矢量寄存器,并判断流水线冲突,决定是否派遣该矢量指令。
[0013]作为优选,所述步骤S3中,所述执行单元包括读写单元,功能单元,数据处理单元,所述读写单元用来读写源操作数,功能单元用来执行指令所要做的操作,数据处理单元将功能单元的数据进行处理得到最终要写回的数据。
[0014]作为优选,所述流水线冲突包括数据冲突和资源冲突。
[0015]作为优选,所述流水线冲突的判断包括:
[0016]对于资源冲突、读后写相关性和写后写相关性,解决:阻塞当前派遣的指令,直至资源冲突解除;
[0017]对于先写后读相关性,真数据相关,解决:方式(1)指令阻塞寄存器没有指令,该矢量指令为刚接收的矢量指令,如果需要的源操作数据正在被写回,则可以在矢量寄存器模块通过数据旁路读取数据,否则将该指令保存在矢量指令寄存器,跟下面的方式(2)一样;方式(2)对于该矢量指令为指令阻塞寄存器里保存的矢量指令,待相关性解除,需要通过重新从矢量寄存器模块读取操作数,如果该数据正在被写回,则可以在矢量寄存器模块通过数据旁路读取数据,否则读取矢量寄存器模块内的值;
[0018]写回方式,对于写回标量寄存器的矢量指令采取顺序派遣,顺序执行,顺序写回,每次只能执行一条写回标量寄存器的矢量指令,对于写回矢量寄存器的矢量指令采取顺序派遣,乱序执行,乱序写回,根据指令执行的大小支持多条指令执行。
[0019]本专利技术提供了一种RISC

V矢量处理单元实现架构,包括:
[0020]矢量指令译码模块,根据RISC

V矢量扩展标准文档1.0的矢量指令编码规则进行译码,产生不同的指令类型信息、操作数寄存器索引信息;
[0021]矢量指令派遣模块,用来矢量指令的派遣,用一个指令阻塞寄存器组来保存在标量处理器解除数据相关在矢量单元有流水线冲突的矢量指令信息。接收矢量译码模块的指
令信息,将其送到矢量流水线判断模块,判断是否有流水线冲突,如果没有则可以派遣该矢量指令,如果有流水线冲突则阻塞该矢量指令,保存该矢量指令的译码信息以及从矢量寄存器读的操作数到指令阻塞寄存器组,等待流水线冲突解除,将其派遣并去除保存在指令阻塞寄存器的值;
[0022]矢量流水线冲突判断模块,该模块用来判断流水线冲突和矢量指令交付,用一个指令执行寄存器组来保存正在执行的矢量指令信息,以及执行指令的顺序,当接收到派遣模块需要派遣的矢量指令信息,与正在执行的矢量指令进行判断是否产生流水线冲突,当有流水本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种RISC

V矢量处理单元实现方法,其特征在于,包括如下步骤:S1、矢量指令准备阶段,在标量处理器中执行,取矢量指令,对矢量指令进行简单译码,判断是否需要标量源操作数,读取标量寄存器,与标量处理器FIFO,判断标量数据相关性,可以派遣则在标量处理器FIFO保存需要写回标量寄存器的矢量指令目的寄存器索引信息,并产生矢量指令请求信号,等待矢量处理单元响应;S2、矢量指令译码和派遣阶段,根据矢量单元自身状态判断是否响应主处理器矢量请求信号;S3、矢量指令执行阶段,该阶段用来矢量指令的执行,通过多个周期执行来间接实现寄存器组内所有元素的执行,每次处理元素的总位宽VLEN位,即一个矢量寄存器长度,每个执行单元采用流水线设计,即SIMD流水线化;S4、矢量指令写回和交付阶段,矢量指令既可以写回标量寄存器和写回矢量寄存器,写回标量寄存器的矢量需要通过矢量指令反馈端口,向标量处理器产生反馈信息,等待标量处理器响应可直接通过矢量处理单元的反馈端口将其直接写回至标量处理器,将该指令在标量处理器中的保存的指令信息去除,完成了该指令的交付,写回矢量寄存器的矢量指令直接通过仲裁将其写回矢量寄存器以及去除在派遣阶段保存该指令的信息完成该矢量指令的交付。2.根据权利要求1所述的一种RISC

V矢量处理单元实现方法,其特征在于,所述步骤S2中,如果响应,则接收该矢量指令和源标量操作数,接着对矢量指令进行完全译码,译码指令的格式和读矢量寄存器,并判断流水线冲突,决定是否派遣该矢量指令。3.根据权利要求1所述的一种RISC

V矢量处理单元实现方法,其特征在于,所述步骤S3中,所述执行单元包括读写单元,功能单元,数据处理单元,所述读写单元用来读写源操作数,功能单元用来执行指令所要做的操作,数据处理单元将功能单元的数据进行处理得到最终要写回的数据。4.根据权利要求2所述的一种RISC

V矢量处理单元实现方法,其特征在于,所述流水线冲突包括数据冲突和资源冲突。5.根据权利要求2所述的一种RISC

V矢量处理单元实现方法,其特征在于,所述流水线冲突的判断包括:对于资源冲突、读后写相关性和写后写相关性,解决:阻塞当前派遣的指令,直至资源冲突解除;对于先写后读相关性,真数据相关,解决:方式(1)指令阻塞寄存器没有指令,该矢量指令为刚接收的矢量指令,如果需要的源操作数据正在被写回,则可以在矢量寄存器模块通过数据旁路读取数据,否则将该指令保存在矢量指令寄存器,跟下面的方式(2)一样;方式(2)对于该矢量指令为指令阻塞寄存器里保存的矢量指令,待相关性解除,需要通过重新从矢量寄存器模块读取操作数,如果该数据正在被写回,则可以在矢量寄存器模块通过数据旁路读取数据,否则读取矢量寄存器模块内的值;写回方式,对于写回标量寄存器的矢量指令采取顺序派遣,顺序执行,顺序写回,每次只能执行一条写回标量寄存器的矢量指令,对于写回矢量寄存器的矢量指令采取顺序派遣,乱序执行,乱序写回,根据指令执行的大小支持多条指令执行。6.实现权利要求1

5任意一项所述的一种RISC

V矢量处理单元实现方法的架构,其特
征在于,包括:矢量指令译码模块,根据RISC

V矢量扩展标准文档1.0的矢量指令编码规则进行译码,产生不同的指令类型信息、操作数寄存器索引信息;矢量指令派遣模块,用来矢量指令的派遣,用一个指令阻塞寄存器组来保存在标量处理器解除数据相关在矢量单元有流水线冲突的矢量指令信息。接收矢量译码模块的指令信息,将其送到矢量流水线判断模块,判断是否有流水线冲突,如果没有则可以派遣该矢量指令,如果有流水线冲突则阻塞该矢量指令,保存该矢量指令的译...

【专利技术属性】
技术研发人员:周志刚郭旭王世豪殷先英薛晓娜赵靖宇程知群
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

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

1