一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于算子的微处理器架构设计方法及系统

2022-11-14 13:45:52 来源:中国专利 TAG:


1.本发明属于微处理器设计技术领域的微处理器体系结构和执行部件设计,具体涉及一种基于算子的微处理器架构设计方法及系统。


背景技术:

2.指令集是软件和硬件的接口,是微处理器体系结构的底层支撑。目前,指令集的发展迎来了新变化,以risc-v为代表的开源指令蓬勃发展,不断挑战传统封闭指令集如x86和arm等。指令集的发展变化导致软件在基于不指令的微处理器上面临兼容性问题。该问题不仅限制了新兴指令集软件生态的发展,而且限制了基于新兴指令集硬件设备的推广。支持多指令集的微处理器可从硬件层面解决因不同指令集造成的软件不兼容问题,且相比于其他设计层次的解决方案如二进制翻译,具有性能高,兼容性好的优点。执行流水线负责完成指令集规定的数值或逻辑等操作。随着处理器芯片算力的提升,执行流水线所占面积和功耗比例也在增大,执行流水线的设计至关重要。处理器微架构设计时应尽可能提高单位面积提供的算力。支持多指令集的微处理器的设计面临诸多挑战。对执行流水线而言,由于多指令集对计算操作的定义不同,单纯实现不同指令集的计算操作将引起硬件的面积的激增,且硬件设计不具备快速拓展其他指令集的能力。


技术实现要素:

3.本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于算子的微处理器架构设计方法及系统,本发明旨在缩短设计周期,降低因支持多种指令集造成的硬件面积开销,且不限于使用在支持多指令的微处理器。
4.为了解决上述技术问题,本发明采用的技术方案为:
5.一种基于算子的微处理器架构设计方法,包括:
6.s101,针对目标指令集架构,确定其所支持的目标指令集所包含的计算功能,将计算功能抽象为算子得到算子集合,从而建立算子到目标指令集的计算功能的指令之间的映射;
7.s102,针对算子集合中算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件,从而得到执行部件组件库;
8.s103,基于执行部件组件库中的执行部件组件更新执行流水线模板,最终完成目标指令集架构中执行流水线的设计。
9.可选地,步骤s101中的目标指令集架构支持多种目标指令集,所述将计算功能抽象为算子得到算子集合后,所述算子集合包括共用算子、相似算子和独立算子,其中共用算子是指多种目标指令集所共同使用的算子,相似算子是指某一种目标指令集使用的算子、且该算子与其他目标指令集所使用的某一算子相似,所述独立算子是指某一种目标指令集单独使用的算子。
10.可选地,步骤s101中将计算功能抽象为算子得到算子集合时,还包括将复杂计算
功能分解为多个简单的计算功能,并每一个简单的计算功能映射为一个算子。
11.可选地,步骤s103中预设的执行流水线模板包括发射队列、执行通路、旁路、结果总线和控制逻辑,所述更新执行流水线模板是指将执行部件组件库中的执行部件组件分别放入执行通路中,并将放入执行通路中的执行部件组件与发射队列、结果总线相连,并更新控制逻辑和旁路的译码模块以定位所需的执行部件组件。
12.可选地,所述预设的执行流水线模板中,发射队列、执行通路、结果总线依次相连,且执行通路与旁路并联连接,所述发射队列、执行通路、旁路、结果总线分别与控制逻辑相连。
13.可选地,步骤s102中针对算子集合中算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件时,为相似算子所映射的目标指令集的计算功能的指令建立执行部件组件包括:包括一组相似算子建立同一个执行部件组件,且该执行部件组件包括各个相似算子的相同部分指令共用的执行部件,各个相似算子的不同部分指令独立的执行部件,以及用于控制独立的执行部件的执行状态以使得执行部件组件受控切换不同相似算子的计算功能的控制逻辑以及控制端口。
14.可选地,步骤s103之后还包括针对目标指令集架构新增支持目标指令集的步骤:
15.s201,确定其所需新增支持的目标指令集所包含的计算功能,将计算功能抽象为算子,从而建立算子到所需新增支持的目标指令集所包含的计算功能的指令之间的映射,根据所需新增支持的目标指令集的算子更新算子集合;
16.s202,针对算子集合中新增的算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件,从而更新执行部件组件库;
17.s203,基于更新后的执行部件组件库中的执行部件组件更新执行流水线模板,最终完成目标指令集架构中执行流水线的更新。
18.可选地,所述目标指令集架构支持的目标指令集包括arm指令集和risc-v指令集。
19.此外,本发明还提供一种微处理器,包括微处理器本体和设于微处理器本体中的执行流水线,所述执行流水线为采用所述基于算子的微处理器架构设计方法得到的执行流水线。
20.此外,本发明还提供一种基于算子的微处理器架构设计系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行所述基于算子的微处理器架构设计方法的步骤。
21.此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行所述基于算子的微处理器架构设计方法的步骤。
22.和现有技术相比,本发明主要具有下述优点:本发明包括针对目标指令集架构,确定其所支持的目标指令集所包含的计算功能,将计算功能抽象为算子得到算子集合,从而建立算子到目标指令集的计算功能的指令之间的映射;针对算子集合中算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件,从而得到执行部件组件库;基于执行部件组件库中的执行部件组件更新执行流水线模板,最终完成目标指令集架构中执行流水线的设计,通过算子的抽象和结合执行流水线模板的更新,能够快速完成目标指令集架构中执行流水线的设计,能够有效降低指令集和流水线执行阶段对应的硬件架构的耦合关
系,为支持多指令集的微处理器设计提供一种轻量化可扩展的实现方法,缓解多指令集增量设计造成的面积开销问题,减少微处理器体系结构升级过程的设计周期。
附图说明
23.图1为本发明实施例方法的基本流程示意图。
24.图2为本发明实施例方法的基本原理示意图。
25.图3为本发明实施例方法的执行流水线模板的示例。
具体实施方式
26.本发明基于算子的微处理器架构设计方法的基本原理是建立算子到目标指令集的计算功能的指令之间的映射,将目标指令集的计算功能的指令抽象为一个算子,以快速确定目标指令集架构上为了实现支持目标指令集所需的执行部件组件,并通过更新替换执行流水线模板中的执行通路的方式以快速完成目标指令集架构中执行流水线的设计。本发明基于算子的微处理器架构设计方法支持两种设计场景,第一种场景是为面向多指令集的提供一种轻量化的流水线设计方法;第二种场景是为已有设计扩展指令支持的范围,即面向新指令集为已有设计进行升级。两种场景对应的设计方法核心思想一致,具体执行方式略有不同。
27.第一种场景为面向多指令集的提供一种轻量化的流水线设计方法。具体地,如图1和图2所示,本实施例基于算子的微处理器架构设计方法包括:
28.s101,针对目标指令集架构,确定其所支持的目标指令集所包含的计算功能,将计算功能抽象为算子得到算子集合,从而建立算子到目标指令集的计算功能的指令之间的映射;
29.s102,针对算子集合中算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件,从而得到执行部件组件库;
30.s103,基于执行部件组件库中的执行部件组件更新执行流水线模板,最终完成目标指令集架构中执行流水线的设计。
31.步骤s101中用于明确设计需求,通过分析目标指令集架构,可明确目标指令集所包含的计算功能,将计算功能抽象为算子。需要说明的是,步骤s101中的目标指令集架构可根据需要支持单种或多种目标指令集。作为一种可选的实施方式,本实施例步骤s101中的目标指令集架构支持多种目标指令集,所述将计算功能抽象为算子得到算子集合后,所述算子集合包括共用算子、相似算子和独立算子,其中共用算子是指多种目标指令集所共同使用的算子,相似算子是指某一种目标指令集使用的算子、且该算子与其他目标指令集所使用的某一算子相似(算子整体功能相似但存在细微差别,该类算子合并了原本分立的属于不同指令集的算子),独立算子是指某一种目标指令集单独使用的算子。
32.图2所示的指令集a和指令集b在第一种场景中所需支持的目标指令集,指令集c为第二种场景中所需新增支持的目标指令集,详见下文。本实施例中,指令集a为arm指令集(arm64),指令集b为risc-v指令集(rv64g)。共用算子是指多个指令集都会使用的算子,比如整数加法算子,arm64的add指令和rv64g的add指令都映射到这个算子。相似算子和共用算子类似,也是arm64指令集和rv64g指令都会使用的算子,但是这个算子在两种指令集下
的功能会有细微差别,可以共用译码器和执行流水线,但是执行时需要进行细微的区别对待,比如按位与的存储器原子算子,arm64的ldclr和rv64g的amoand指令都会映射到这个算子,但是ldclr和amoand虽然完成的都是原子交换操作,但是功能有差异,ldclr从存储器加载数据后,将这个数据(假设为oldvalue)和寄存器中的值(假设为regvalue)进行一个clr操作,即oldvalue and not(regvalue),而amoand进行的则是and操作,即oldvalue and regvalue。独立算子是指仅被一种指令集使用的算子,也就是rv64g独有的或arm64独有的,比如浮点的符号注入算子,arm64中没有这种功能的指令需要使用这个算子,只有rv64g指令集才需要。
33.作为一种可选的实施方式,本实施例步骤s101中将计算功能抽象为算子得到算子集合时,还包括将复杂计算功能分解为多个简单的计算功能,并每一个简单的计算功能映射为一个算子,如乘累加操作将被拆分为乘法算子和加法算子,通过上述方式,可使得不同目标指令集之间的共用算子更多,可减少执行部件组件部件数量,减少设计微处理器的面积开销。
34.步骤s102用于基于算子建立执行部件组件库,其中共用算子和独立算子的执行部件实现不存在功能交叠,因此直接一一对应建立执行部件组件即可。相似算子存在功能交叠,因此针对相似算子建立执行部件组件时,存在优化空间。本实施例中,步骤s102中针对算子集合中算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件时,为相似算子所映射的目标指令集的计算功能的指令建立执行部件组件包括:包括一组相似算子建立同一个执行部件组件,且该执行部件组件包括各个相似算子的相同部分指令共用的执行部件,各个相似算子的不同部分指令独立的执行部件,以及用于控制独立的执行部件的执行状态以使得执行部件组件受控切换不同相似算子的计算功能的控制逻辑以及控制端口。通过上述方式,使得一组相似算子可简化为一个多模式的执行部件组件,可减少执行部件组件部件数量,减少设计微处理器的面积开销,而且相似性的功能运算,其控制信号造成的时序变化很小。本实施例中在建立执行部件组件库时,执行部件组件可以被视为特定算子的一种实现。本实施例利用算子来确定硬件执行部件的功能,暂不讨论硬件的具体电路实现。由上一步的例子得到的算子包括共用算子add,相似算子存储器原子算子逻辑与,独立算子符号注入。执行部件组件库包括支持add的运算部件、支持存储器原子算子逻辑与的运算部件和支持符号注入的运算部件。
35.如图3所示,本实施例步骤s103中预设的执行流水线模板包括发射队列、执行通路、旁路、结果总线和控制逻辑,所述更新执行流水线模板是指将执行部件组件库中的执行部件组件分别放入执行通路中,并将放入执行通路中的执行部件组件与发射队列、结果总线相连,并更新控制逻辑和旁路的译码模块以定位所需的执行部件组件。本实施例中采用预设的执行流水线模板的方式,可最大程度地将执行流水线硬件设计与指令集解耦。假定三个执行部件组件的延迟均为1,可通过控制译码复用原有旁路机制,增加运算块控制编码,使得数据在执行通路中找到正确的执行单元。
36.如图3所示,本实施例预设的执行流水线模板中,发射队列、执行通路、结果总线依次相连,且执行通路与旁路并联连接,所述发射队列、执行通路、旁路、结果总线分别与控制逻辑相连。图3所示预设的执行流水线模板,执行通路由上一步所获得的执行部件组件更新,发射队列和旁路设计根据执行延迟更新控制逻辑,控制逻辑进行少量适应性修改。此
外,本实施例中在结果总线的后端还设有寄存器文件,以用于输出结果,以及将结果缓存以用于实现多周期的运算等。需要说明的是,本实施例方法的使用不限于特定的执行流水线模板。
37.第二种情场景针对已有的硬件执行流水线设计扩展支持指令集的范围,具体地,参见图2中的虚线部分所示,本实施例中步骤s103之后还包括针对目标指令集架构新增支持目标指令集的步骤:
38.s201,确定其所需新增支持的目标指令集所包含的计算功能,将计算功能抽象为算子,从而建立算子到所需新增支持的目标指令集所包含的计算功能的指令之间的映射,根据所需新增支持的目标指令集的算子更新算子集合;
39.s202,针对算子集合中新增的算子,为其所映射的目标指令集的计算功能的指令建立执行部件组件,从而更新执行部件组件库;
40.s203,基于更新后的执行部件组件库中的执行部件组件更新执行流水线模板,最终完成目标指令集架构中执行流水线的更新。
41.通过上述算子到所需新增支持的目标指令集所包含的计算功能的指令之间的映射,以及执行部件组件库的更新、执行流水线模板的更新,可快速使得目标指令集架构支持新的指令集,为支持多指令集的微处理器设计提供一种轻量化可扩展的实现方法,缓解多指令集增量设计造成的面积开销问题,减少微处理器体系结构升级过程的设计周期。
42.综上所述,本实施例提出一种面向多指令集的基于算子的执行流水线设计方法,降低指令集和流水线执行阶段对应的硬件架构的耦合关系,为支持多指令集的微处理器设计提供一种轻量化可扩展的结构,缓解多指令集增量设计造成的面积开销问题,减少微处理器体系结构升级过程的设计周期,提高硬件设计积累在不同指令集间的迁移效率。
43.此外,本实施例还提供一种微处理器,包括微处理器本体和设于微处理器本体中的执行流水线,所述执行流水线为采用前述基于算子的微处理器架构设计方法得到的执行流水线。
44.此外,本实施例还提供一种基于算子的微处理器架构设计系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述基于算子的微处理器架构设计方法的步骤。
45.此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行前述基于算子的微处理器架构设计方法的步骤。
46.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
47.以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献