理解HyperFlex架构如何支持实现下一代高性能系统

时间:2020-10-25 19:06:51 电子信息工程毕业论文 我要投稿

理解HyperFlex架构如何支持实现下一代高性能系统

  高性能文件系统 (High Performance File System ,HPFS),HPFS是Microsoft的LAN Manager中的文件系统,同时也是IBM的LAN Server和OS/2产品。在OS/2中,它就是HPFS,但是在LAN Manager和LAN Server产品中,它是HPFS386,这是HPFS的改进版本。HPFS提供了DOS文件系统中的文件分配表(FAT)所没有的长文件名和性能增强特性。另外,HPSF还能访问较大的硬盘驱动器,提供更多的组织特性并改善了文件系统的安全特性。HPFS386增加了对HPFS文件系统的32位访问,另外还增加了容错和安全性功能。

  下一代高性能系统对带宽的需求越来越大。为满足这一需求,促使设计人员使用各种方法来优化其设计,提高时钟频率。虽然传统的FPGA内核体系结构支持这些优化,但是,所能够提高的频率有限。与传统的方法不同,Stratix10 FPGA和SoC使用HyperFlex新体系结构,内核时钟频率可达到前一代高性能FPGA的两倍。

  一、传统FPGA架构的困惑

  为满足下一代高性能系统越来越高的带宽要求,FPGA供应商一直在对其器件体系结构逐步进行改进。即使是采用了先进的体系结构,设计人员通常会使用非常宽的片内总线实现其设计。实际上,512、1024或者2048位宽的片内总线的应用越来越普遍了。

  这一方法虽然提高了FPGA内核的数据吞吐量,但是宽总线占用了大量的架构资源,功耗也大。而且,随着FPGA资源不断被填满,布线资源会出现拥塞,内核时钟频率会受限。

  提高带宽的另一方法是在使用最先进工艺节点制造的FPGA中实现设计,期望能够受益干最新技术较高的晶体管开关速率。但是,随着工艺尺寸的不断减小,逻辑单元之间的互联延时成为FPGA中总延时的主要因素,这限制了进一步提高晶体管开关速率。基本上,传统的FPGA体系结构无法满足未来的性能需求。

  二、高性能系统对带宽的需求

  光传送网(OTN)、固网、军事和高性能计算应用对带宽的需求越来越大。传送大量数据的需求导致FPGA中的数据通路宽度越来越宽。通过布线体系结构传送的数据量与所使用的走线数量和走线速度(fMAX)有关。能够使用的走线数量取决于技术;与器件大小以及所采用技术的最小走线间距有关。

  布线体系结构使用分层(例如,逻辑阵列模块(LAB)中的本地布线,以及水平和垂直互联导线的全局布线)和优化方法,提高了走线效率。但是,提高走线数量会增大芯片面积,也增大了功耗。走线速度与技术有关(走线上的`RC延时),受到FPGA体系结构和设计实现的影响。例如,对设计进行流水线处理会提高时钟速率,而不会增加走线数量,在同样的资源情况下,提高了带宽。

  三、高性能系统对效率的需求

  当设计人员对设计进行流水线处理以提高性能时,他们会在设计中增加寄存器。传统的构建寄存器查找表(LUT)对的方法意味着要牺牲逻辑以实现更多的流水线寄存器,所有现有FPGA内核体系结构中都有这些寄存器查找表对。采用传统体系结构中的流水线需要信号输入逻辑模块然后再输出,带来了延时成本。结果是流水线方法的效果逐渐变差,特别是布线延时是总延时的主要因素。图1显示了采用传统流水线之前和之后的实例,由于增加寄存器带来的输入和输出走线导致延时增大。

  四、高性能系统对提高时钟的需求

  随着时钟速率的提高,时钟偏移也越来越重要了。传统的FPGA内核体系结构重点放在平衡时钟树上,这能够减小确定性偏移。这一方法对于500MHz以下的设计能够很好的工作,但是要突破500MHz瓶颈,速度达到1GHz,那么则需要下一代时钟解决方案。解决方案必须将时钟本地化以减小本地差异和偏移,还能够提供灵活的网络,用于高性能设计中常用的大量的时钟。

  五、HyperFlex体系结构

  为克服上述这些挑战,Altera的Stratix 10 FPGA和SoC引入了全新的内核体系结构,即HyperFlex体系结构。创新的HyperFlex体系结构所实现的性能是以前无法想象的:内核性能是前一代高性能FPGA的两倍。为发挥HyperFlex体系结构的优势,用户可以使用熟悉的方法:寄存器时序重排、流水线和设计优化。这些方法能够加速传统体系结构上的设计。但是,与HyperFlex体系结构相结合后,结果是,设计能够以极快的速度运行,内核时钟速率提升至高达1GHz。

  Stratix10器件重新设计了内核体系结构,包括了更多的寄存器,即超级寄存器,分布在内核架构的各个地方。每一互联布线段以及所有功能模块的输入上都有这些寄存器。超级寄存器提供了精细粒度解决方案,解决了怎样提高带宽和面积以及功效等问题。由于能够轻松的访问更多的寄存器,用户可以对寄存器时序重排,以消除关键通路,对寄存器进行流水线处理,去掉布线延时,优化用户的设计,实现理想性能。当采用超级寄存器实现这些方法时,所有FPGA逻辑资源都能够用于实现逻辑功能,而不是牺牲用作直通单元以连接传统的LUT寄存器。

  为能够跟上内核架构的高性能,重新设计了FPGA内核中的专用功能模块――例如,M20K存储器和浮点数字信号处理(DSP)模块,以支持时钟速率高达1GHz的操作。

  为方便超级寄存器的使用,Quartus II软件包括了超感知设计流程,提供:

  布局布线后性能优化,加速了时序收敛。

  超感知综合和布局布线,提高了流水线效率。

  快速前向编译,提供了性能增强选择。

  为满足对灵活的时钟网络的需求,Stratix 10 FPGA和SoC包括了可编程时钟树综合功能。这一类似ASIC时钟帮助降低了偏移和不确定性,而且可以智能的使能时钟网络分支,降低了功耗。

  Stratix 10 FPGA和SoC使用了Intel的14nm三栅极(FinFET)工艺技术。HyperFlex新体系结构与业界领先的FinFET工艺技术相结合,与前一代高性能FPGA相比,Stratix10器件的内核性能提高了两倍。

  六、超级寄存器

  从90 nm Stratix II FPGA开始,Altera就开始率先采用6输入LUT降低关键通路深度。在28nm Stratix VFPGA,Altera引入了时间借用锁存功能,对时钟和数据信号自动进行微小的时序重排处理。

  对于14nm Stratix 10器件,Altera引入了全新的“寄存器无处不在”内核体系结构,这一体系结构布满了可旁路的时序重排和流水线寄存器。这一方法断开了自适应逻辑模组(ALM)本身功能寄存器之间的关联,使用了超级寄存器对关键通路进行时序重排和流水线处理,从而提高了设计效率。

  HyperFlex体系结构可用于对高性能设计进行时序重排和流水线处理。所有布线段都有可选超级寄存器,构建到可编程布线复用器中,使得布线段能够被寄存或者进行组合处理。如图2所示,这些超级寄存器分布在内核架构的各个地方。在每一水平和垂直布线段的交叉点上,以小方块表示超级寄存器。

  采用这一体系结构,不再需要使用ALM来找到流水线寄存器。器件中的每一水平和垂直互联线都含有超级寄存器,通过配置FPGA可以关断或者打开它们。

  超级寄存器是简单的一路输入一路输出可旁路寄存器,输入上没有布线复用器。用户可以通过配置比特来控制这些寄存器。其成本不高,不会明显增加器件的硅片面积。由于超级寄存器在内核架构中无处不在,因此,设计人员不会受限于设计中寄存器的数量。可以根据需要对它们时序重排和流水线处理,不会占用额外的LAB资源。在很多情况下,使用布线中的超级寄存器来实现寄存器,而不是仅为了使用ALM的寄存器而部分占用ALM,因此,使用了较少的LAB资源。

  七、HyperFlex的优点

  由于互联布线体系结构中含有超级寄存器,因此可以在布局布线之后优化时序,这不会改变设计的布线。Quartus II软件在时序重排操作过程中,能够很容易找到并使用超级寄存器。图3对比了传统的布线复用器和HyperFlex布线复用器,以及所包含的超级寄存器。

  超级寄存器支持用户充分发挥增强性能的传统方法的优势――时序重排、流水线和优化,以更新更好的方式实现。使用超级寄存器而不是ALM寄存器来实现时,这些方法被称为超级时序重排、超级流水线和超级优化。表1总结了当顺序使用这些方法时所提高的性能,其3个步骤使用HyperFlex体系结构提高了性能。

  八、超级时序重排

  在传统的体系结构中,软件通过找到附近未使用的ALM寄存器,使其含在电路中,进行时序重排。这一时序重排方法受限于ALM寄存器布局的粒度:

  未使用的ALM所处的位置不一定方便,导致设计中出现额外的延时。

  通过ALM连接至寄存器有布线延时开销。

  如果软件尝试对宽总线(512位、1024位,或者更宽)时序重排,那么时序重排需要大量的其他逻辑单元。

  确定时序重排寄存器最佳位置所需要的算法比较难。

  图4显示了传统体系结构时序重排之前和之后的布线实例。

  在HyperFlex内核新体系结构中,使用了超级寄存器来实现精细粒度超级时序重排。Quartus II软件通过将寄存器移出逻辑单元,放到互联中对通路时序重排。每一布线段上都有超级寄存器,因此,有很多可以使用的寄存器位置,方便了进行优化。

  采用超级寄存器,时序重排粒度非常精细;每一段布线的延时,只有几十皮秒。在传统体系结构中,当尝试确定时序重排寄存器位置时需要有所折中,如图4所示,而这在HyperFlex体系结构中是不需要的。因此,在超级时序重排期间,可以很好的分开几纳秒长的通路,如图5所示。

  超级时序重排不会影响已有的LAB和ALM,意味着不需要渐进式布局或者布线,对编译时间没有很大的影响。对寄存器时序重排,布局布线之后,寄存器位置被推入到布线中能够自然达到平衡的最终位置(见图5)。

  在传统体系结构中,对于需要成百上千个额外的ALM才能达到时序重排而且通常需要大量重新布线的宽数据总线而言,这一特性具有很大的优势。

  九、超级流水线

  传统的流水线受困于和传统时序重排遇到的同样的难题,缺少寄存器粒度降低了优化的效率。

  由于在设计开始时并不知道需要的流水线级数量以及其最优位置,因此,传统的流水线本质上是一个迭代过程。所以,当流水线解决方案尝试满足性能目标时,必须对设计进行多次布局布线。图6显示了传统流水线处理之前和之后的简单实例。

  当使用HyperFlex体系结构时,用户可以使用超级寄存器,根据需要进行流水线处理,而且不会增大设计容量。这一过程称为超级流水线。在很多情况下,使用大量寄存器的设计由于不需要“孤立”寄存器,因此,实现设计所需要的ALM数量减少了。

  由于流水线的低成本,用户可以尽量使用这一方法,特别是在数据通路和前馈逻辑中。图7显示了一个超级流水线的实例。

  由于软件能够将寄存器移动到互联中,自动对逻辑时序重排,因此,用户只需要设定时钟域输入或者子设计引脚逻辑上所需要的流水线寄存器数量。Quartus II软件能够根据需要,在布局布线之后将寄存器移动到布线中,解决了传统体系结构中存在的流水线多次迭代问题。当知识产权(IP)库面向多个时钟频率(fMAX)时,在RTL中把寄存器放到一起也方便了对逻辑进行参数赋值。

  十、超级优化

  完成了超级时序重排和超级流水线之后,设计的某些部分的性能会非常好,而其他部分可能成为瓶颈,很难再提高性能。这些瓶颈可能是长反馈环或者复杂状态机等电路,需要在每一时钟周期进行评估。

  提高设计性能一种常用的方法是优化设计中的某些部分。例如,具有长反馈环的设计会受限于最大频率(fMAX)。重新设计电路,预先计算可能的反馈值,使用短反馈环在其中进行选择,以提高频率。采用超级寄存器,这一过程能够实现的速率要高于传统的体系结构,这是因为可以使用超级时序重排和超级流水线优化预计算通路。图8显示了一个超级优化的实例;进行香农分解(或者布尔因数分解)以缩短环路,从而提高最大频率。一般而言,可以在控制环上进行这类优化,获得的性能增益要远远超出实现因数分解所需要的额外逻辑带来的面积成本代价。

  十一、灵活的高速可编程时钟树综合

  高性能FPGA设计中的时钟给设计人员带来了很大的挑战。传统的FPGA有固定的全局时钟树网络,设计用于支持大扇出、芯片级全局时钟域。但是,在GHz性能,时钟树对灵活性的要求非常高。设计人员希望针对性能均衡和时钟交叉建立时移时钟,为速率匹配和系统电源管理生成动态选通时钟。

  为满足这些需求,HyperFlex体系结构含有全新的时钟结构,包括了经过预先布线的时钟通路,设计的时钟区域在其上进行综合(常见于ASIC时钟树综合)。这一结构能够前所未有的灵活的建立小规模本地时钟域。这还可以让软件管理偏移;利用好偏移,需要时降低偏移。此外,需要时,可以使用这一时钟结构来综合传统的全局和局部均衡H树时钟,以便后向兼容。

  Quartus II软件管理可编程时钟树综合;在布局布线期间,它以集成方式来综合时钟树。

  十二、更高的功效和效能

  Stratix 10 FPGA和SoC的功耗比前几代系列有很大的进步,主要是因为使用了Intel的14nm三栅极(FinFET)工艺技术来制造器件。而且,HyperFlex体系结构也极大的降低了功耗。性能越来越高的HyperFlex体系结构实现了1024比特数据通路,时钟速率达到350MHz,512比特数据通路的时钟速率达到700MHz。结果,适配到器件中的设计只占用了一半的器件。这种变化对动态功耗的影响不大,但是静态功耗降低了一半,使用更小的器件,大幅度降低了成本。或者,设计人员可以自由的发挥性能优势,部分用于提高时钟速率,剩余的部分性能用于通过降低内核电源供电电压或者使用速率等级较慢的器件来降低功耗。

  不仅仅是通过提升内核的运行时钟速率,HyperFlex体系结构能够提供更多的性能优势;很容易实现时序收敛,提高设计团队的效能,缩短产品面市时间。

【理解HyperFlex架构如何支持实现下一代高性能系统】相关文章:

1.linux系统集群的架构与实现

2.财务决策支持系统架构的开发

3.如何搭建系统CSS架构

4.高可用的SAP系统架构的实现

5.航标业务系统架构的设计和实现

6.什么是系统架构师-如何成为系统架构师

7.OA系统如何实现商务智能

8.如何搭建网上政采系统架构

9.如何成为优秀的系统架构师