System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() RISC-V向量指令的流水线译码微架构设计方法技术_技高网

RISC-V向量指令的流水线译码微架构设计方法技术

技术编号:41301161 阅读:5 留言:0更新日期:2024-05-13 14:48
本发明专利技术公开了一种RISC‑V向量指令的流水线译码微架构设计方法,包括如下步骤:S1、根据指令PC提取指令包;进行预处理,将预处理的结果、每条指令字段、预处理后的指令信息写入cache;S2、读取cache并得到预译码的结果数据,识别出每条配置指令;S3、将预译码的结果数据传输到指令缓冲器,获取字段信息、拆分数量、推测的vtype信息;将每条指令拆成多个微操作,构建队列存储每个微操作;S4、用队列将每条配置指令优先传输,进行译码、执行,获取执行后的vtype信息,在执行后的vtype信息与推测的vtype信息相同时,控制输入到多个译码器中的微操作的数量,将译码的结果传送到指令槽。本发明专利技术利用指令拆分解决指令冲突问题,并提前获取配置指令的信息,提升处理速度和性能。

【技术实现步骤摘要】

本专利技术涉及处理器设计,具体涉及一种risc-v向量指令的流水线译码微架构设计方法。


技术介绍

1、risc-v的向量指令集(risc-v vector extension,简称rvv)是基于传统的向量机,向量的长度可变,并可使用多个寄存器作为寄存器组被引用为单一操作数。现代高性能处理器设计中往往采用多级流水线乱序超标量的方式实现,这种方式中使用的是乱序执行和寄存器重命名的微架构设计,但是仅支持对单一寄存器进行操作,因此,为了能够支持对多个寄存器进行操作,将risc-v的向量集用于这种微架构的设计,便提上了日程。

2、目前,在支持乱序执行和寄存器重命名的超标量处理器中,使用risc-v的向量集,需要修改一系列对应的架构来适应向量指令集的特征,其中难以解决的核心问题如下:1)risc-v向量寄存器组的逻辑实现,与重命名乱序执行超标量处理器的逻辑实现上存在指令冲突,难以兼容;2)取指的指令未经过处理,而是直接在译码阶段译码容易出现气泡,指令流水线中会进行停顿取指或清空取指,这些均会造成性能的下降;3)处理过程中,配置指令及其他需要执行的部分指令不能正常译码,造成指令丢失、结果出错。


技术实现思路

1、本专利技术所要解决的技术问题是:如何将向量寄存器组和重命名乱序执行超标量处理器进行兼容,避免指令处理过程中的冲突,并提升整体性能,保证处理结果的准确性。

2、针对上述技术问题,提出一种risc-v向量指令的流水线译码微架构设计方法;通过以下技术方案实现的:

3、一种risc-v向量指令的流水线译码微架构设计方法,流水线译码微架构设计是对处理器核进行设计,该处理器核包括指令pc、指令pc的地址对应的指令块、多个译码器、指令缓存cache、指令缓冲器和多个寄存器;

4、设计方法包括如下步骤:

5、s1、设计取指模块:根据指令pc取出一个指令包,指令包中包含多条指令,每条指令的类型为向量指令、配置指令、分支类指令中的一个,每条指令均已进行过编码;将每条指令对应的每个操作码进行预处理,并将预处理的结果、每条指令的指令字段、每条指令的指令信息写入指令缓存cache;

6、s2、设计预译码模块:读取步骤s1的指令缓存cache中的数据并进行预译码,得到预译码的结果数据,并利用预译码的结果数据识别出每条配置指令;其中,预译码的结果数据包括每条配置指令、每条向量指令、每条分支类指令、预处理的结果中的一个或多个;

7、s3、设计指令缓冲模块:将步骤s2中预译码的结果数据传输到指令缓冲器中,从所述指令缓冲器中获取每条指令中立即数字段包含的字段信息、每条指令的拆分数量,利用所述字段信息或多个寄存器获取每条配置指令对应的每个推测的vtype信息;

8、根据每个推测的vtype信息和步骤s1中每条指令的指令字段,将每条向量指令和每条分支类指令都按照对应的拆分数量拆分成多个微操作,构建一个队列,利用所述队列存储每条配置指令和每个微操作,将每个微操作的信息作为所述队列的控制逻辑;

9、s4、设计译码模块:利用步骤s3中的队列,将每条配置指令优先传输到多个译码器中进行译码、执行,并在执行后获取每条配置指令执行后的vtype信息,判断每个执行后的vtype信息与对应的每个推测的vtype信息是否相同;

10、若不同,则返回步骤s2,从指令缓存cache中读取出每条配置指令,并利用每个执行后的vtype信息代替步骤s3中对应的每个推测的vtype信息,对每条配置指令重新开始步骤s3的操作,直至在步骤s4中完成译码、执行;

11、若相同,则将步骤s3中的控制逻辑和拆分数量作为控制信号,用于控制队列输入到多个译码器中的微操作的数量,并在多个译码器完成输入的每个微操作的译码后,将译码的结果传送到指令槽,在所述指令槽中执行译码的结果。

12、本专利技术将指令进行拆分,在拆分后才输入译码器中进行译码,解决了指令冲突问题,实现向量寄存器组与重命名乱序执行超标量处理器的兼容;并且在译码时最先获取了配置指令的相关数据,使得其他执行的指令无需等待配置指令的信息,加快了处理过程,也就是提升了处理性能;此外,在指令传输出现问题、两次vtype信息不同时,会重新进行在cache中读取指令数据并重新处理,保证了处理结果的准确性。

13、优选地,步骤s1中预处理的方法为:依据每条指令的编码方式,对每个操作码按照对应的指令类型和其他指令之间不同的编码信息进行信息提取,将提取的信息在编码后存储到指令缓存cache中。指令类型的不同,对应的编码信息也会不同,依据编码信息的不同,可以及时区分出向量指令、配置指令和分支类指令,并对其进行编码处理,保证整体效率;并且处理分支类指令方便在后续预译码阶段进行判断分支跳转信息,当分支跳转发生时,错误分支译码得到的预测配置指令信息将会被清空,根据正确的跳转路径重新进行取指,提升了处理准确性和性能。

14、优选地,步骤s1中,配置指令包括至少一条vsetvl指令或至少一条vsetvli指令或至少一条vsetivli指令;其中,每条vsetvli指令和每条vsetivli指令中均包含对应的字段信息,每条vsetvl指令对应的vtype数据保存在任一寄存器中。配置指令可能包含多种类型、多条指令,需要按照具体的类型、具体类型下存储信息的特征获取所需信息,保证数据的准确性。

15、优选地,步骤s3中,构建一个队列后,对每条指令拆分成的多个微操作进行筛选,在排除掉无效微操作后,将剩余的多个微操作存储到队列中。指令传输过程中,可能存在某些无用的指令、无需执行的指令或者损坏的指令,及时的将这些无效指令对应的微操作进行筛选、排除,能够保证指令传输的准确性,也避免无效指令对后续操作产生不良影响,避免影响性能。

16、优选地,步骤s3中,获取每条配置指令对应的每个推测的vtype信息的方法为:1)对每条vsetvli指令或每条vsetivli指令:读取步骤s3中的字段信息,利用所述字段信息获取每条vsetvli指令或每条vsetivli指令对应的每个推测的vtype信息;2)对每条vsetvl指令:从多个寄存器中获取最近的vtype信息作为推测的vtype信息。根据配置指令类型的不同,分别获取对应的推测的vtype信息,保证队列传输和译码的顺利进行,也能够与后续的信息形成对比,进一步确保传输的准确性以及监测指令是否在传输中出现了问题。

17、优选地,步骤s4中,获取每条配置指令对应的每个执行后的vtype信息的方法为:1)对每条vsetvli指令或每条vsetivli指令:读取每条vsetvli指令或每条vsetivli指令经过执行后的字段信息,将执行后的字段信息作为对应的每个执行后的vtype信息;2)对每条vsetvl指令:在步骤s4中执行每条vsetvl指令后,从多个寄存器中提取对应的vtype信息作为执行后的vtype信息。在译码阶段执行配置指令之后,再次获取每条配置指令对本文档来自技高网...

【技术保护点】

1.一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,流水线译码微架构设计是对处理器核进行设计,所述处理器核内包括指令PC、指令PC的地址对应的指令块、多个译码器、指令缓存cache、指令缓冲器和多个寄存器;

2.根据权利要求1所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,步骤S1中预处理的方法为:依据每条指令的编码方式,对每个操作码按照对应的指令类型和其他指令之间不同的编码信息进行信息提取,将提取的信息在编码后存储到指令缓存cache中。

3.根据权利要求1所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,步骤S1中,配置指令包括至少一条vsetvl指令或至少一条vsetvli指令或至少一条vsetivli指令;

4.根据权利要求1所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,步骤S3中,构建一个队列后,对每条指令拆分成的多个微操作进行筛选,在排除掉无效微操作后,将剩余的多个微操作存储到队列中。

5.根据权利要求3所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,步骤S3中,获取每条配置指令对应的每个推测的vtype信息的方法为:

6.根据权利要求5所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,步骤S4中,获取每条配置指令的每个执行后的vtype信息的方法为:

7.根据权利要求1所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,步骤S4中,控制信号还用于控制进入队列中的微操作的数量。

8.根据权利要求1所述的一种RISC-V向量指令的流水线译码微架构设计方法,其特征在于,所述多个译码器包括至少一个全功能译码器、至少一个复杂译码器和至少两个简单译码器。

...

【技术特征摘要】

1.一种risc-v向量指令的流水线译码微架构设计方法,其特征在于,流水线译码微架构设计是对处理器核进行设计,所述处理器核内包括指令pc、指令pc的地址对应的指令块、多个译码器、指令缓存cache、指令缓冲器和多个寄存器;

2.根据权利要求1所述的一种risc-v向量指令的流水线译码微架构设计方法,其特征在于,步骤s1中预处理的方法为:依据每条指令的编码方式,对每个操作码按照对应的指令类型和其他指令之间不同的编码信息进行信息提取,将提取的信息在编码后存储到指令缓存cache中。

3.根据权利要求1所述的一种risc-v向量指令的流水线译码微架构设计方法,其特征在于,步骤s1中,配置指令包括至少一条vsetvl指令或至少一条vsetvli指令或至少一条vsetivli指令;

4.根据权利要求1所述的一种risc-v向量指令的流水线译码微架构设计方法,其特征在...

【专利技术属性】
技术研发人员:苑营阔郝明
申请(专利权)人:江苏华创微系统有限公司
类型:发明
国别省市:

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

1