支持局部寄存和条件执行的64位浮点整数融合运算群制造技术

技术编号:2839290 阅读:205 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种支持局部寄存和条件执行的64位浮点整数融合运算群,它包括一个或者一个以上64位浮点/整数融合的运算部件、条件执行部件、部件互联结构以及控制器部件;运算部件和条件执行部件通过部件互联结构进行相互连接,部件之间的数据传输通过部件间的互联结构完成,整个运算群的存储地址空间由数个完全独立的地址空间构成,本地的运算群只有通过统一的控制器对每个地址空间进行间接寻址访问;控制器中有专门的指令存储器存储编译好的指令,程序执行时,控制器将编译好的指令按时序要求同时发送给各个运算群的功能部件,各个运算群以SIMD方式接收指令并执行,执行的结果存入每个运算群中相同的LRF中或者进行输出操作。

【技术实现步骤摘要】

本专利技术主要涉及到芯片设计中的64位浮点和整数运算群的设计方法领域,特指一种支持局部寄存和条件执行的64位浮点整数融合运算群
技术介绍
随着计算密集型应用的大量出现,如何有效利用程序中大量的数据并行性成为计算机界的焦点。在众多的计算密集型应用中,媒体流的数据并行性尤为突出。如多媒体、图形图像以及信号处理等,都包含大量数据并行性。针对这种大量的数据并行性应用,产生了很多能够有效的提取这种并行性的体系结构,如向量处理器和SIMD处理器等,这些结构都能够获得很高的性能。斯坦福大学根据流程序的特点提出的SIMD流处理器结构就是这些数据并行结构中的典型代表。流程序模型分为流级和核心级,流级负责主存与流寄存器文件之间的流调度;核心级(kernel)负责流的运算。整个流程序模型就是由流级调度kernel处理一系列串行的流数据的模型。流编程模型中,应用程序由一系列kernel组成,每个kernel消费由前一个kernel产生的流数据并为其后的kernel产生新的数据流。流体系结构就是用来开发对大量不同数据并行进行相同操作的并行性的。由斯坦福大学研制并已经投片的32位Imagine流处理器芯片,包含8个运算群,每个运算群包含3个加法部件、2个乘法部件和1个倒数/平方根倒数部件。已有的研究表明,在媒体流程序的处理方面,相对于其他处理器结构,Imagine具有明显的优势。但是对于64位运算群的设计却有诸多困难。本专利技术提出了一种64位的带局部寄存器文件和支持条件执行的浮点/整数融合的运算群设计方法。
技术实现思路
本专利技术要解决的技术问题就在于针对现有技术存在的技术问题,本专利技术提供一种能够有效支持类媒体流计算的64位运算群部件,以满足当前高性能科学计算对计算性能的无限需求,并以简单有效的方式解决大量并行计算中的控制相关引起性能急剧下降问题的支持局部寄存和条件执行的64位浮点整数融合运算群。为解决上述技术问题,本专利技术提出的解决方案为一种支持局部寄存和条件执行的64位浮点整数融合运算群,其特征在于它包括一个或者一个以上64位浮点/整数融合的运算部件、用来解决控制相关的条件执行部件、用来实现数据交叉共享的部件互联结构以及控制器,整个LRF地址空间由数个完全独立的地址空间构成,每个运算部件的一个输入对应一个地址空间,所有的运算群不能对其直接寻址,本地的运算群只有通过统一的控制器对每个地址空间进行间接寻址访问;控制器中有专门的指令存储器存储编译好的指令,程序执行时,控制器将编译好的指令按时序要求同时发送给各个运算群的功能部件,各个运算群以SIMD方式接收指令并执行,执行的结果存入每个运算群中相同的LRF中或者进行输出操作。所述条件执行部件包括控制部件、通信部件和缓冲部件,控制部件负责保存和更新条件执行过程中的各个状态位,协调其他部件共同完成条件执行操作,控制部件将更新的状态位传给通信部件和缓冲部件,通信部件根据获得的信号从其他运算群获得数据,缓冲部件在流缓冲和运算群之间缓冲数据,为条件操作提供缓冲区。所述运算部件包括浮点乘加部件、浮点杂类部件以及整数算术逻辑单元。所述运算部件包括求浮点倒数和平方根倒数的DSQ部件,该DSQ部件以查表的方式求出数据的倒数或者平方根倒数,配合软件加以迭代可以根据要求实现高精度的除法或开平方根运算。与现有技术相比,本专利技术的优点就在于1、扩充数据宽度。将传统的32位流处理器的处理器的运算结构扩充至64位,合理调整输入输出流的个数,克服了高数据带宽引起的低延迟的缺点,在不影响计算速度的情况下,能够兼容32位流处理器的处理模式,同时有效的支持了64位的科学计算,能够支持更宽的数据宽度。2、设计64位浮点乘加。改进传统的32位流处理器的2输入的运算部件的结构,采用3输入的64位浮点乘加结构,将一次乘法操作和一次加法操作融合为一次乘加操作提高了运算速度。并且可以将多个64位浮点乘加操作有效的融合在了流处理器的结构框架中,能够按照设计需求提供有效的峰值计算速度。3、融合多媒体计算。在浮点乘加的内部,在不影响已有结构的前提下,设计完成了多媒体指令的操作,使得该专利技术能够有效处理8位、16位、32位以及64位的多媒体指令,在进行高数据宽度的科学计算的同时也能够满足低宽度的多媒体程序的要求。4、条件交叉处理。依附流处理器的传统结构,设计了有效的条件执行部件,以简单有效的方式支持了条件处理,弥补了穿透SIMD结构的缺点,使得使用该专利技术的处理器能够更有效的处理运算群之间的交叉数据,从而避免了条件执行引起的传统流处理器性能下降的问题。附图说明图1是包含四个运算部件的运算群整体结构示意图;图2是运算群进行一次乘加运算的数据通路示意图;图3是包含四个运算部件的运算群的详细数据通路示意图;图4是8个运算群和控制器的互连关系示意图;图5是FMAC运算部件内部各个子部件的连接关系示意图;图6是条件执行部件的处理实例示意图;图7是条件执行的处理流程示意图。具体实施例方式以下将结合附图和具体实施例对本专利技术做进一步详细说明。本专利技术的一种支持局部寄存和条件执行的64位浮点整数融合运算群,它包括一个或者一个以上64位浮点/整数融合的运算部件、用来解决控制相关的条件执行部件、用来实现数据交叉共享的部件互联结构以及控制器,整个LRF地址空间由数个完全独立的地址空间构成,每个运算部件的一个输入对应一个地址空间,所有的运算群不能对其直接寻址,本地的运算群只有通过统一的控制器对每个地址空间进行间接寻址访问;控制器中有专门的指令存储器存储编译好的指令,程序执行时,控制器将编译好的指令按时序要求同时发送给各个运算群的功能部件,各个运算群以SIMD方式接收指令并执行,执行的结果存入每个运算群中相同的LRF中或者进行输出操作。运算群的总体逻辑结构包括一个或者多个64位浮点/整数融合的运算部件、解决控制相关的条件执行部件和数据交叉共享的部件互联结构。运算部件除了完成双精度浮点的乘加融合计算外还要完成定点数的算术和逻辑操作。从逻辑上运算部件可以分为浮点乘加部件(FMAC)、浮点杂类部件(FMISC)和整数算术逻辑单元(ALU)三个部分。浮点计算指令遵循IEEE-754国际标准,浮点数据采用IEEE双精度格式表示(11位指数,53位尾数,其中包括隐含的打头1)。为了能在运算群内部处理非格式化数据,指数被扩展一位,即指数扩展为12位。浮点乘加的实质是将加数作为一项部分积,在与乘的结果指数对齐之后累加,然后在求和,而不是乘加分开的两次求和,两次舍入,从而降低关键路径的延时。浮点乘加部件实现的指令主要有浮点乘加指令、浮化整类指令、浮点规格化指令以及融合的8位、16位、32位和64位整数乘法指令;浮点杂类部件实现的指令主要有浮点逻辑类指令和浮点测试类指令。ALU部件实现的指除了通常的SIMD方式的8位、16位、32位和64位多媒体指令外,还增加了整数测试指令,饱和计算指令和数据移动指令,如字节混洗操作,条件路径选择操作等。浮点乘加部件采用了规格化移位提前、求和与舍入合并的低延迟结构,在支持双精度浮点乘加的基础上,扩充位宽和增加相关单元实现了浮化整、整化浮、浮点规格化和8位、16位、32位和64位定点乘四类指令。整个浮点乘加部件可划分为多个时钟节拍,浮点数或定点数都支持最近本文档来自技高网...

【技术保护点】
一种支持局部寄存和条件执行的64位浮点整数融合运算群,其特征在于:它包括一个或者一个以上64位浮点/整数融合的运算部件、用来解决控制相关的条件执行部件、用来实现数据交叉共享的部件互联结构以及对以上三类部件进行整体控制的控制器部件,在运算群内部,运算部件和条件执行部件通过部件互联结构进行相互连接,部件之间的数据传输通过部件间的互联结构完成,即所有运算部件和条件执行部件的输入从互联结构获得,处理的处理结果也送到互联结构中,由互联结构进行相应的处理;控制器通过互联结构向整个运算群发送指令,对其功能进行相应的控制,整个运算群的存储地址空间由数个完全独立的地址空间构成,每个运算内部的每个功能部件的每个输入对应一个独立的地址空间,该地址空间不能采用直接寻址方式访问;本地的运算群只有通过统一的控制器对每个地址空间进行间接寻址访问;控制器中有专门的指令存储器存储编译好的指令,程序执行时,控制器将编译好的指令按时序要求同时发送给各个运算群的功能部件,各个运算群以SIMD方式接收指令并执行,执行的结果存入每个运算群中相同的LRF中或者进行输出操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:邢座程蒋江杨学军张民选张明穆长富阳柳曾献君马驰远李勇陈海燕高军李晋文衣晓飞倪晓强唐遇星张承义
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43[中国|湖南]

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

1