对载明并行和依赖运算的指令矩阵进行处理的装置和方法制造方法及图纸

技术编号:2913402 阅读:178 留言:0更新日期:2012-04-11 18:40
执行块的矩阵形成多行和多列。多行支持指令的并行执行,多列支持依赖指令的执行。执行块矩阵处理载明并行指令和依赖指令的单个指令块。

【技术实现步骤摘要】
【国外来华专利技术】
[0001]本专利技术主要涉及计算机体系结构。更具体地,本专利技术涉及一种用于处理指定并行运算和依赖运算的矩阵指令的计算机体系结构。
技术介绍
[0002]改善计算机体系结构性能是一个很困难的任务。已经通过频率变标(frequency scaling)、单指令多数据(SIMD)、超长指令字(VLIW)、多线程和多处理器技术来寻求上述的性能改善。这些方法着重于改善程序执行的吞吐量。上述技术中的很大一部分要求软件显式(explicitly)地呈现出并行性。与此不同的是,频率变标在改善吞吐量和延迟的同时无需软件显式地标记并行性。近来,频率变标面临着功耗壁垒(power wall)问题,所以很难通过频率变标进行改进。因此,除非表示出大规模的显式软件并行(explicitsoftware parallelization),否则很难增加吞吐量。[0003]鉴于上述问题,人们期望在不依赖于频率变标和大规模的显式软件并行的前提下改善计算机体系结构的性能。
技术实现思路
[0004]执行块矩阵形成多行和多列。多行支持指令的并行执行,而多列支持依赖指令的执行。执行块矩阵处理载明并行指令和依赖指令的单个指令矩阵。附图说明[0005]参考详细说明并结合附图,本专利技术将得到更完整地阐释,在附图中:[0006]图1表示按照本专利技术实施例的支持执行并行指令和依赖指令的体系结构;[0007]图2A表示映射串行指令以在本专利技术的执行矩阵中产生并行和依赖-->运算;[0008]图2B表示对本专利技术执行矩阵进行的运算映射;[0009]图3表示按照本专利技术实施例可能用到的一行执行块;[0010]图4A表示按照本专利技术实施例可能用到的执行块和支持寄存器文件及缓冲器;[0011]图4B表示按照本专利技术实施例配置的寄存器文件;[0012]图5表示可用于本专利技术缓冲器的各种数据结构;[0013]图6表示按照本专利技术实施例可使用的流水线;[0014]图7表示按照本专利技术实施例的矩阵指令处理;[0015]图8表示对本专利技术执行块进行运算映射;[0016]图9表示按照本专利技术实施例使用的矩阵缓冲器;[0017]图10A表示实现本专利技术运算的通用单元;[0018]图10B表示用于图10A中4位加法器的超前进位加法器的1个位单元;[0019]图11表示按照本专利技术实施例配置的延时切片体系结构(TLSA)单元;[0020]图12表示按照本专利技术实施例的交错结构中的多个TLSA单元;[0021]图13表示现有的乘法运算技术;[0022]图14表示按照本专利技术实施例采用的延时乘法运算技术;[0023]图15表示现有的布斯编码乘法;[0024]图16表示实现图15的布斯编码乘法的逻辑;[0025]图17表示按照本专利技术实施例的布斯编码乘法;[0026]图18表示实现图17的布斯编码乘法的逻辑;[0027]图19表示按照本专利技术实施例配置的存储器/寄存器文件数据块;[0028]图20表示按照本专利技术实施例配置的时间切片存储器;[0029]图21表示按照本专利技术实施例配置带有转置/移位单元的TLSA体系结构;[0030]图22表示按照本专利技术实施例配置的浮点乘累加单元。在所有附图中,相似的附图标记指代对应的部分。-->具体实施方式[0031]允许非显式并行软件在单处理器硬件上执行是非常有益处的,这种单处理器硬件能够在短的延迟流水线(latency pipeline)中处理大量指令。当前解决方案的现有观点为;超标量处理器可以在峰值瞬间的一个周期内实际处理4-5条指令,这类似于好的VLIW编译器在峰值瞬间实现的处理量。人们已经认识到实际上无法实现超标量处理器在单个周期/瞬间内调度10条指令。类似地,如果编译器尝试并行处理用于带有10个时隙的VLIW体系结构的通用程序,则会导致留下大量未填充的时隙。[0032]本专利技术提供的体系结构和处理器实现了在短的流水线中高度并行地读数、调度、解码和执行多条指令,极大地改善了执行吞吐量,同时保持了单处理器流水线运算的更优化的延迟,并具有高效的分时、功率、面积和路径。[0033]在这个被称为超大指令矩阵(Ultra Large Instruction Matrix,ULIM)的新体系结构中,固定大小的指令矩阵模板被调度为作为并行和依赖指令组的矩阵在硬件中执行。与使用超长指令宽度模板仅对并行指令进行调度的VLIW不同,ULIM体系结构的模板封装了并行指令和依赖指令的指令组。这可以被看作二维模板矩阵,其中横向分配并行指令,同时仅纵向分配依赖指令。这个模板以一个指令矩阵的形式被发送到执行硬件,其中各个执行块处理一个指令矩阵。[0034]图1表示这种模板,其中,如果将一个指令放入时隙101,那么另一个可与其并行执行的指令可放入与其处于同一行的并行时隙1到N中的任何一个中。然而,与设置在时隙101中的指令相依赖的指令不能被放入相同的行,而是必须放入随后的行102(例如,串行时隙1的并行时隙0)。标记为102的时隙接收101产生的结果、或外部输入操作数、或这二者的结合作为输入。这种指令模板的执行模型是任意行的指令都在下一行的指令执行之前执行。[0035]ULIM指令组可由ULIM编译器静态调度,或者由ULIM硬件组成单元动态调度。如果与传统体系结构进行比较,那么这种体系结构的意义则非常明显。在传统体系结构中,单行N1并行指令可放进一个例如VLIW或SIMD模板的模板中。这意味着每个周期都可以执行N1个指令(全部指令-->都必须保证是并行的,这对于很大的N而言是非常严格的约束)。另一方面,通过在每个行边界的流水线执行,ULIM体系结构在每个周期可执行N1*N2个指令。尽管每个中周期执行N1*N2个指令,ULIM体系结构仅有如下的相同约束:确保并行执行N1个指令。[0036]指令矩阵模板可由编程器或编译器/硬件格式程序构建,其中二者都不需要被限制成仅找到并行指令以调度每个周期。有效的并行指令可以被提取出来并且按行横向设置。通过在后续行中设置依赖指令,可以增加并行指令。矩阵可以在单个或多个周期内执行。矩阵可以本地化存储接近执行硬件的操作数,从而优化相互关联的复杂度、面积、速度和功率。[0037]参考图2A的实例,本专利技术得到更完整的说明。图2A表示由单个串行程序流表示的指令序列200的实例。该图也表示如何对指令分组,从而形成在矩阵模板中采用的兼有串行时隙和并行时隙的单指令矩阵。矩阵模板被用于执行块201。执行块201包括乘法单元202、浮点加法单元204、加载单元206、乘累加(multiple accumulate,MAC)单元208、逻辑单元(例如ALU)210和另一个逻辑单元212。[0038]因此,指令矩阵引用是指并行和串行指令的指令组模板。执行块是指执行指令矩阵的执行单元组。执行单元是执行块内部单独的计算单元(例如,复杂单元和简单单元两者)。[0039]诸如214之类的直线箭头指出指令之间的依赖性。这种映射可由编译器、前端硬件或运行时环境实现。图2A还表示了格式化运算图,其显示出当矩阵中的指令将在带有并行和串行依赖性指示器的对应硬件位置处被执行时,这些指令在矩阵中的相对物理位置。[0040]如图2A所示,单数据流程序再形成为静态确定串行执行的指令以及指令并行的指令矩阵。例如,在图2本文档来自技高网...

【技术保护点】
一种装置,包括: 形成多行和多列的执行块矩阵,其中所述多行支持指令的并行执行,以及所述多列支持依赖指令的执行,其中所述执行块矩阵处理载明并行指令和依赖指令的单个指令块。

【技术特征摘要】
【国外来华专利技术】US 2006-4-12 60/791,782;US 2006-4-12 60/791,649;US1.一种装置,包括:形成多行和多列的执行块矩阵,其中所述多行支持指令的并行执行,以及所述多列支持依赖指令的执行,其中所述执行块矩阵处理载明并行指令和依赖指令的单个指令块。2.权利要求1的装置,其中所述执行块矩阵形成单处理器流水线的一部分。3.权利要求2的装置,其中所述单处理器流水线包括提取阶段、分支处理阶段、解码阶段、调度阶段、执行阶段和提交阶段。4.权利要求3的装置,其中所述提取阶段提取所述单个指令块,并且根据所述指令块的大小增加程序计数器的计数值。5.权利要求4的装置,其中所述分支处理阶段支持其他指令块的分支。6.权利要求3的装置,其中所述调度阶段使用块寄存器参考。7.权利要求3的装置,还包括支持并行块写入的寄存器文件。8.权利要求1的装置,其中所述执行块支持浮点运算、整数运算、单指令多数据(SIMD)运算和多指令多数据(MIMD)运算。9.权利要求1的装置,其中所述执行块矩阵形成延时切片体系结构,从而在单个时钟周期内处理并行指令和依赖指令。10.权利要求9的装置,其中所...

【专利技术属性】
技术研发人员:MA阿卜杜拉
申请(专利权)人:索夫特机械公司
类型:发明
国别省市:US[美国]

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

1