A Survey of Techniques for Architecting and Managing Asymmetric Multicore Processors(前四章)
-
摘要:
- AMPs具有不同的微架构或者是ISAs的处理器,为了更好的满足工作负载的多样性
- 目前针对AMPs的研究:优化串行执行和并行执行的性能
- 论文介绍了之前设计和管理AMPs的一些技术研究,包括体系结构级别和系统级别的技术,同时论文利用这些技术包含的关键特征进行了技术分类,介绍了这些技术的相似和不同
- 论文澄清了一些这个领域中的术语名词
- 关键词:分类,AMP,异构多核,ARM的大小核,可重构的AMP
-
AMP的目的:针对功耗/性能或者不同的应用特征进行优化,或者用于开发不同级别的并行性,例如ILP,TLP,MLP
AMP的问题:随着核的种类的增加,ISAs的增加或者利用的并行性的级别的扩大,AMP的管理的复杂程度将以指数级别增加
-
论文的整体结构
- 介绍用于描述AMP的相关概念的专有名词,澄清这些名词的含义,从而保证之后使用统一的名词
- 针对于一些商业已有的AMP进行讨论,包括AMP之后的原理和带来的新挑战
- 比较AMP和SMP之间的差异,并且对这些结构进行分类
- 讨论构建和管理静态AMP的技术和其中为了达到一些性能优化目标而提出的技术
- 介绍设计和管理可重构AMP的相关技术
-
论文介绍的范围
- 包括具有不对称架构的CPU内核,包括静态或者动态两个方面
- 主要针对于不同的微体系结构特性,例如流水线设计,缓存层次结构,发射或者取指宽度等,不仅仅是频率或者电压的不同
- 不包括带有GPU等其它完全不同类型的处理器的异构结构
- 不包括仅仅有不同的电路设计的处理器(CMOS和Tunnel FET)或者是不同的制程工艺
-
专用术语
-
单ISA的AMP(asymmetric single-ISA CMP ASISA-CMP 2008)
-
对于AMP中的核的称呼,名字的不同代表着侧重点不同(perf,power,arear,design complexity)
-
可重配置的AMP或者可重配置的体系结构的术语
-
-
AMP中的异构类型
- 微体系结构,ISA,频率,cache大小等因素
- 2011年Srinivasan的三类:虚拟的AMP(一样的微结构和ISA,不同的频率或者缓存大小),物理AMP(一样的ISA,不同的微架构),混合的处理器(不同的ISA和微架构)
- 2010年Koufaty的两类:性能AMP(Performance AMP, 同样的ISA,不同的微架构,缓存大小和频率),功能AMP(Functional AMP,不同的ISA和不同的微架构)
- 2010年Khan和Kundu的两类:深思熟虑的异构(Deliberate heterogeneity,不同的微架构,ISA和专有化,例如GPU和CPU),临时的异构(Extemporaneous heterogeneity,利用DVFS或者硬件的重新配置实现可选的处理器性能)
- 作者的分类标准:根据AMPs内部的核的性能排序进行分类
- 单调的AMP:AMP内部的core能够按照性能或者复杂度严格的排序,所有应用的性能
- 非单调:无法严格排序的AMP。因为不同的核是为了不同的指令级行为或者应用特征进行优化的,所有无法比较性能优劣
-
AMP出现的原因和优势
- 原因:(1) 多样化的程序和使用模式;(2) 能源效率逐渐成为衡量计算机系统性能的主要约束
- 可重新配置AMP的优势:
- 可以灵活的扩展,以更好的利用单线程中的MLP和ILP,同时能够在多线程中利用TLP
- 可以避免core的过度使用,从而提供更好的HW utilization和错误恢复能力
- 相对于静态AMP,能够获得更好的性能和能耗
-
使用AMP面临的挑战
- 需要对系统堆栈进行更改
- 对整个系统栈进行重新设计
- 系统栈(也叫核心栈、内核栈)是内存中属于操作系统 空间的一块区域,主要用途为: (1)保存中断现场,对于嵌套中断,被中断程序的现场信息依次压入系统栈,中断返回时逆序弹出;(2)保存操作系统子程序间相互调用的参数、返回值、返回点以及子程序(函数)的局部变量
- 在制造方面,需要支持不同core在不同的电压和频率下工作
- 在设计时,AMP中的cores需要能够覆盖尽可能广泛的性能和复杂度的设计空间
- 随着core的类型和应用程序的增加,AMP的调度复杂度会以指数增长
- 对于仍在变化的AMP领域,单独设计OS和编译器等软件环境并不是一个好选择
- 异构的复杂性权衡,包括HW,ISA,OS,编程模型等
- 线程调度的挑战
- 静态的线程调度策略无法应对多变的执行时的应用特征
- 动态的根据运行时数据进行分析调度,但是针对短线程效果不好,因此数据收集和分析需要更长时间的数据
- 线程迁移所带来的开销,也包括了flush缓存和其它状态所带来的负面影响
- 线程之间公平性的保证
- 可配置AMP的挑战
- 重新配置的延迟和能量开销
- 需要更加复杂的编译器,或者自定义的ISA,新的工艺技术
- 可能需要修改OS和应用的binary code
- 利用更高适应性的特点利用不同级别的并行性可能会限制对专有应用的加速
- 建模的挑战。现在大多使用DVFS或者时钟限制来模拟AMP。但是这种模拟过于简化,非常不准确。按频率缩放的核不能真实地模拟具有微体系结构异质性的核。
- 需要对系统堆栈进行更改
-
AMPs的潜在性能
-
使用分析模型比较AMP和SMP
- AMP和SMP相对于单核的性能加速比的相关因素:程序中可并行部分的占比,相对于单核的整体片上资源和每个核上用于提高单核性能的资源。同时为了简化不考虑调度和重新配置的开销以及其它资源(cache等)。这种方式得到的结论:AMP能够加速串行代码性能,同时最大的加速比比SMPs要更高,并且从来不会更差。可重配置的AMPs相对于静态的AMPs的加速比更高
- Amdahl定律假设当核数变多时,可并行的工作量保持不变。Gustafson定律假设可并行的工作会线性根据核数的增加而增加。Juurlink假设可并行的工作量是核数p的次线性变化函数(线性函数,但是斜率为0到1之间)。根据Juurlink的结论预测多核的发展趋势,得到的结果和Amdahl预测的结果有很大的不同。AMP虽然比SMP更好,但是仅仅只是好一点点。可重配置的AMP的好处也没有Amdahl预测的那么多
- Amdahl定律假设代码可以完全分为串行和完全并行的代码。但是Eyerman扩展了这个结论,程序中并行代码会包含临界区(critical sections),CS中的同步操作会限制并行代码的性能。此时采用一个大核多个小核的设计将会损失性能,因为临界区中的串行代码也要运行在小核上。根据上面的结论,在硬件开销固定的情况下,SMP会比AMP更有优势,因为SMP的小核相对更大,更快,能够更有效的加速临界区执行。
- 通过将线程映射到最适合的core执行,一些AMP会在性能和吞吐量两个方面都比特定的SMP好。但是某些SMP的结构确实能够达到最佳的性能权衡,因此AMP不一定由于SMP,事实上一些好的性能和吞吐量的权衡结构都是利用SMP实现的。
- 两种核心类型足以提供来自异质性的大部分好处,额外的类型并不会显著的提高性能
-
使用模拟器或者真实硬件的比较评估(AMP,SMP)
P o w e r = E P I ∗ I P S E P I : e n e r g y p e r r e t i r e d i n s t r u c t i o n I P S : t o t a l r e t i r e d i n s t r u c t i o n s p e r s e c o n d o n a l l c o r e s Power=EPI*IPS \\EPI:energy\ per\ retired\ instruction\\IPS:total\ retired\ instructions\ per\ second\ on\ all\ cores Power=EPI∗IPSEPI:energy per retired instructionIPS:total retired instructions per second on all cores- 在功耗有限的情况下,处理器应该在有限的并行度(低IPS)阶段花费更大的EPI,而在高并行度的阶段(高IPS)降低EPI。因此,AMP更加适合提供不同的EPI,相对于SMP,即在功耗限制的情况下,AMP能够比SMP得到更高的性能提升
- 假设所有的串行代码都在大核上运行,并行代码利用所有核执行,根据理论模型计算,SMP的功率效率(每瓦特的性能)上界没有AMP高。
- 线程交互行为对AMP和SMP的性能/能耗的影响。当线程的工作量相近,并且几乎没有交互,带有的更快的core的SMP,所消耗的能量更少。随着交互的增加,带有较慢的core的SMP和AMP会消耗更少的能量。当线程的工作量不同时,由于AMP能够将不同的线程映射到不同类型的core上执行,因此能够获得更好的能效。MT程序的特征不同,AMP/SMP的选择也将不同
-