本发明专利技术提供一种针对动态可重构处理器的指令集的优化方法,包括:指令集架构应用于编程动态可重构处理器运算单元阵列;指令集采用等长操作码;指令集对操作码的编码方式采用和硬件匹配的分立编码方式;指令集的编码参考各个操作码的使用频率,以简单的指令为基础,添加了视频解码应用中常用的运算:四舍五入移位,饱和运算,条件运算,避免了通过软件实现这些运算时将带来的复杂配置信息和低效率。
【技术实现步骤摘要】
本专利技术涉及动态可重构处理器
,特别是涉及。
技术介绍
动态可重构处理器是一种新型的处理器构架,其结合了软件的灵活性和硬件的高效性,和传统单核微处理器相比,不仅可以改变控制流,还可以改变数据通路,具有高性能、 低功耗、灵活性好、扩展性好的优点,尤其适合于处理计算密集型的算法,例如媒体处理、模式识别、基带处理等。因此动态可重构处理器也成为目前处理器结构的一个重要发展方向, 如欧洲微电子中心(IMEC)的ADRES处理器和惠普(HP)的CHESS处理器,前者由紧耦合的超长指令字(Very Long Instruction Word,VLIW)处理器内核和粗颗粒度并行矩阵计算的可重构硬件构成,后者由大量可重构算术计算单元阵列构成。动态可重构处理器的核心一般为一个二维的可重构算术逻辑单元(ALU)阵列,该结构是并行计算以提高处理能力的基础。同时,可重构算术逻辑单元间必须拥有较为灵活的互联结构以保证运算通用性,这种可配置的互联结构使得动态可重构处理器可以改变数据流,实现了对数据流的高速并行处理,相对于传统单核、少核处理器大大的提升了计算性能。另一方面,相对于传统的静态可重构电路,如用大部分的现场可编程逻辑阵列(FPGA) 来实现处理器功能时,动态的可重构特性使得处理器能够通过时分复用以大大减少所需的电路面积。动态可重构处理器的指令集架构(instruction set architecture, ISA)是处理器编程的基础,指令集中包含对一系列操作码及其硬件操作的定义,是处理器所有可执行指令的集合。处理器指令是由指令集架构定义的单个处理器操作。在传统的指令集构架上,指令包括一个操作码(指定要进行操作的类型),和零个或者多个操作数(指定参与操作的寄存器、内存地址或者立即数(literal data))。传统指令集架构主要分成精简指令集(Reduced Instruction Set Computing)和复杂指令集(Complex Instruction Set Computing)两种。RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。因而RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的硬件实现更复杂。 而超长指令字架构(VLIW)过将多条指令放入一个指令字,有效的提高了 CPU各个计算功能部件的利用效率,提高了程序的性能。对于动态可重构处理器,其运算单元的规模远大于传统单核处理器,因而其一个指令字中需要给出一个阵列运算单元的操作码以及阵列的互连。将指令字内容分级考虑, 只看其中的操作码,可以认为是普通处理器操作码组成的张量。但是用于动态可重构处理器的基础运算单元和普通处理器还是存在很多差别的1.因为动态可重构处理器的阵列规模较大,所以对于每个运算单元的面积的要求更加严格,其所能实现的功能也越简单越好,这样便于控制芯片面积。另外,动态可重构处理器通常用于大量重复并行运算,所以对运算单元的功能也没有太高的要求。2.同样由于阵列规模较大,基本运算单元的门控电路的面积和功耗的影响被放大了,所以对于操作码的设计有了低功耗和简化逻辑的要求。3.为了提高在应用于一些专门应用如媒体解码时的效率,基本运算单元需要在基本功能上额外增加部分特殊功能。因此动态可重构处理器对于指令集架构也有了特殊的要求。为了满足这些要求, 我们提出了如下
技术实现思路
的指令集架构。
技术实现思路
本专利技术所要解决的技术问题是提供,能够避免了通过软件实现这些运算时将带来的复杂配置信息和低效率。为了解决上述问题,本专利技术公开了,包括指令集架构应用于编程动态可重构处理器运算单元阵列;指令集采用等长操作码;指令集对操作码的编码方式采用和硬件匹配的分立编码方式;指令集的编码参考各个操作码的使用频率。优选的,所述编程动态可重构处理器包括视频解码应用的动态可重构处理器。优选的,所述指令集包括算术运算、逻辑运算、移位操作、比较、条件和饱和运算的指令。优选的,所述操作码长度为5。与现有技术相比,本专利技术具有以下优点本专利技术提供,以简单的指令为基础,添加了视频解码应用中常用的运算四舍五入移位,饱和运算,条件运算,避免了通过软件实现这些运算时将带来的复杂配置信息和低效率。同时,本专利技术提出的指令集采用固定码长,码长由指令的总数目决定。我们不采用变长的操作码,虽然其能降低编码长度和配置信息的长度,但其只能串行编解码使得编解码速度很慢,不能满足高速并行计算的要求。此外,为了降低电路的功耗,通常可以对运算单元内部各主要模块做 power-gating (门控电源)或clock-gating (门控时钟),尤其是一些使用频率偏低而功耗较高的模块,比如乘法器。而所有门控技术的使能信号都是操作码的组合逻辑产生,为了减少竞争冒险带来的毛刺和由此引起的关断模块的误翻转,对于较大的模块设计其门控逻辑使其电路尽量简单。本专利技术通过对于操作码的编码设计,只用少数几个操作码位的组合输出甚至只是某一位操作码来作为主要功能模块(加法器、乘法器、移位器等)的门控使能信号。并且,本专利技术统计所有指令操作码的使用频率,操作码设计时给使用频率较大的操作码分配较小的操作码翻转,这样就能最小化操作码的总体翻转概率,从而一定程度的降低动态功耗。附图说明图1是本专利技术具体实施方式中所述的的流程图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。参照图1,示出了本专利技术的流程图,具体包括步骤S101,指令集架构应用于编程动态可重构处理器运算单元阵列;步骤S102,指令集采用等长操作码;步骤S103,指令集对操作码的编码方式采用和硬件匹配的分立编码方式;步骤S104,指令集的编码参考各个操作码的使用频率。指令集架构是一款处理器的核心设计,优化的指令集架构设计能够为处理器带来功耗和效率上的提高,本专利技术提出了一种针对动态可重构处理器架构的指令集设计方法, 其一方面可以降低处理器控制逻辑硬件实现的复杂性,另一方面可以降低总体的动态功耗。本指令集架构为了提高在视频解码中的执行效率,增加了部分解码算法常用运算,共26 条指令,具体实现方法如表1所示,包括了算术、移位、旁路、位操作、绝对值、比较、饱和、条件等运算以及它们的补充运算。诸如四舍五入移位运算、边限饱和运算、条件运算等都是视频解码中需要频繁使用的运算单元(1)四舍五入移位运算是为了保证视频解码中带小数的移位运算时的精确度;(2)边限饱和运算用于处理图像解码算法中有上限的运算结果的处理。根据本
技术实现思路
特征的第2、3点,我们统计了主要功能模块乘法器、加法器和移位器被各条指令使用的状况,如表2所示。根据功能模块被指令使用的比例,我们可以确定其最少需要几个操作码位来生成控制信号,加法器最少需要一位控制,而乘法器和移位器最少需要两位控制。在下面的实施例中编码后的最高位直接控制是否关断加法器,中间两位和末两位分别控制乘法器和移位器的关断。默认状态的空指令操作码为00000,此时关断所有功能模块。剩下部分的编码取决于各操作码的使用频率,其在本实施例中的统计如本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:朱敏,刘雷波,王延升,朱建峰,杨军,曹鹏,时龙兴,尹首一,魏少军,
申请(专利权)人:清华大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。