FTPA: 一种具有可配置核的灵活多核处理器结构(一)
扫描二维码
随时随地手机看文章
提出一个灵活多核处理器结构: FTPA.首先,通过将单个超块独立映射到单个物理核,FTPA 有效减少了超块执行时指令间通信开销。其次,通过将物理核资源划分为需要频繁调整的计算资源和不经常重构的共享资源分别管理,FTPA 有效降低了逻辑核的重构开销。最后,通过将计算资源在逻辑上组织成环形拓扑,FTPA 实现了逻辑核的任意粒度调整,提供高度的灵活性。运行SPEC2K 测试程序的结果显示,FTPA 比已有的灵活多核结构TFlex 性能平均提升19. 2% .
随着半导体技术的发展,处理器设计进入多核时代。在多核平台上,单线程程序加速仍是一个关键问题,同时也面临着巨大挑战: 一方面,程序的映射需要在并行性和通信开销之间做出权衡,因为并行执行在带来并行潜力的同时,也伴随着通信开销的增加; 另一方面,由于应用的多样性,程序之间以及程序内部的不同执行阶段,并行性也存在巨大差异。因此,如何根据程序运行时的并行特征适当地分配芯片资源、提高资源利用率,对于提高多核系统整体性能和降低功耗都有重要意义。
当前商业通用多核处理器主要基于传统的单处理器核来构建,这种粗粒度的设计方案适合开发单个核上的指令级并行性和多个核上的线程级并行性,但并不能很好地解决多核平台上单线程程序并行执行问题。近年来学术界提出的处理器核可配置的灵活多核处理器方案为多核结构发展提供了一种崭新的思路: 灵活多核处理器通常由很多同构的、性能较弱的小处理器核( 称为物理核) 构成; 在执行程序时,多个物理核可以根据程序当前的并行性特征,动态地组合成单个更大粒度的逻辑核。由于逻辑核可以集成多个物理核的指令窗口、发射宽度以及物理核内的高速缓存等资源,因此具有巨大的并行性开发潜力。此外,在执行过程中,这种2 级的组织方式,允许运行时系统根据不同应用,或者同一应用内部不同执行阶段的并行性差异,动态增减逻辑核内物理核的数量,从而在满足应用并行性需求的同时,最大限度的提高资源利用率。
然而,现有的灵活多核处理器结构方案仍存在很多问题: Core Fusion, Federation,Voltron和WiDGET目前只支持静态的、编译器指导的逻辑核配置。TFlex虽然支持动态的逻辑核粒度调整,但是由于逻辑核内分布式共享物理核的所有资源,导致逻辑核重配置的开销巨大,不适合实时的细粒度的动态资源调整; 同时,TFlex 上单线程程序在多个物理核上激进的分布式执行,也造成显着的指令间通信和寄存器文件访问开销,限制了其逻辑核性能的可扩展性。
针对目前灵活多核结构存在的上述高通信开销、高逻辑核重构开销和低灵活性问题,本文提出一种新的灵活多核处理器结构FTPA ( flexibletiled processor architecture) . FTPA 采用显式数据流图执行( EDGE) 指令集,将程序编译成超块( Hyperblock),并以超块为基本单元进行推测执行。 从程序执行角度看,FTPA 可以根据程序的阶段并行性特征,改变超块级推测执行的深度,从而保证程序的高效执行。 从结构设计角度看,在逻辑核层次,FTPA 将易扩展的计算资源( 如ALU)和相对固定的共享资源( 如一级Cache) 进行逻辑上的分离,并将计算资源组织成环形的拓扑结构,从而实现了逻辑核任意粒度的增减,提供高度的灵活性。 在物理核层次,首先,FTPA 通过将超块和物理核一一对应映射,有效降低了超块执行时指令间通信和寄存器文件访问开销; 其次,根据对超块并行性特征的分析,FTPA 选择4 发射的物理核设计,保证对超块内指令级并行性的高效开发;最后,FTPA 将物理核内指令窗口进行分体,与4套执行部件相对应,从而降低了指令选择发射逻辑复杂度。实验评估表明,FTPA 在具备高灵活性的同时,比已有的灵活多核结构TFlex 性能平均提升19.2% .