计算机体系结构正在消亡(Architectureisdying)?其背后或许是传统冯诺依曼架构在应对多样化应用的局限性下的无奈,以及对摩尔定律放缓甚至终结的担忧。那么,计算机体系结构的未来是什么?一、关于计算机体系结构计算机体系结构是指计算机硬件系统设计的各个方面,包括指令集体系结构(InstructionSetArchitecture,ISA)、微体系结构(Microarchitecture)、内存系统(MemorySystem)、存储设备(StorageDevice)、网络设备(NetworkDevice)(NetworkingDevice)等。半导体技术和计算机体系结构是推动信息技术创新的两大核心技术。两人都是幕后英雄,往往不为公众所知。摩尔定律的终结意味着芯片设计人员不能再每18个月“免费”将设计中的晶体管数量增加一倍。计算机体系结构的演进带来了性能的提升,各种好处是显而易见的。自1985年以来,计算机体系结构的创新使性能提高了约80倍,与半导体技术进步的贡献相匹配。由于大多数半导体技术和计算机体系结构的创新对上层应用程序是透明的,因此应用程序和软件的开发人员可以在不参与底层技术创新的情况下体验这些技术进步带来的好处。虽然仍然可以制造更多和更小的晶体管,但单个晶体管的功耗不像以前那样可以很好地扩展。由于传感器、移动设备、终端、数据中心等大多数产品都无法承受功耗的持续增加,因此必须考虑各种手段来缓解功耗的增加。纳米级特征的制造偏差会严重降低晶体管的长期可靠性。随着新技术(如芯片堆叠)和新挑战(如数据中心)的出现,计算组件之间的通信必须通过局部性原则进行管理,以实现合理的成本和能耗目标。设计、验证、制造和测试的一次性成本正在增加,使得这些成本更难摊销。也就是说,如何构建从传感器到云端的基础设施,如何在失去缩减近乎完美的工艺技术带来的好处的情况下,让计算机架构从性能和隐私等多个角度增值?2、对计算机体系结构有什么要求?随着新应用场景的不断涌现,对算力的需求越来越大。在物联网时代,由于嵌入式传感器和无处不在的多媒体内容产生的连续数据流,数字化信息呈爆炸式增长。处理此类数据需要有效平衡计算、通信和存储,以用于健康、业务和其他目的。为传感器提供足够的能力来筛选和处理生成/收集的数据以实现最佳能源效率,通信需要比计算更多的能量。许多数据流生成数据的速度如此之快,以至于存储在成本上不可行,必须立即处理数据。在其他情况下,环境的约束和聚合不同数据源的需要会影响执行这些任务的位置。这种权衡提高了对混合架构的需求,这种架构可以有效减少数据传输,同时节省能源。为了保护服务、环境和服务本身的边界,计算资源必须随时可用并准备好有效地交付服务。这种可用性要求底层硬件和软件提供当今大多数系统无法提供的可靠性、安全性和自我管理功能。虽然目前的大型机和医疗设备正在努力实现可用性的5个九(每年只有5分钟的不可用时间),但实现这一目标的成本仍然很高。这需要计算机体系结构以低成本在多个层面上实现这种可用性。随着我们对数据的依赖不断增加,它将更加依赖于计算性能的权衡以确保可用性、隐私和安全交易。信息安全是当务之急,而当今的计算系统极易受到攻击。网络信息战不再是幻想。通过Internet对政府网站的攻击早已司空见惯。这就需要新的硬件系统、架构、固件和操作系统来为上述应用所需的分布式信息安全提供保障。3.对计算架构的挑战各种新兴应用都需要架构来确保数据安全和隐私,容忍越来越不可靠的晶体管造成的故障,并增强可编程性、可验证性和可移植性。确保硬件和软件的可靠性比以往任何时候都更加重要;对于某些植入式医疗设备,这可能是生死攸关的问题。重新考虑安全和隐私问题,定义系统级接口,使硬件成为信任源,从而更有效地支持安全服务。3.1作为基础设施的计算机体系结构计算机体系结构必须超越优化每个孤立的设备,并接受跨环境协作设计的挑战。在智能感知领域,核心约束是在非常严格的能量、尺寸和成本约束下进行计算。只有将成百上千个处理器的能力组合成一个大规模分布式计算机,才能满足大规模计算的需要。互联网搜索引擎已经证明了这种计算范式的社会重要性。随着用户界面对计算能力的要求越来越高,例如多点触控、语音识别、AR/VR、全息图、3D场景重建等,即使是移动应用程序也正在变得数据和计算密集型。现有设备的单位能量运转率将从目前的约100亿次/瓦提高数个数量级。对于运行时,计算机架构必须允许将程序功能划分为设备、边缘和云端,并且这种划分还必须能够动态适应云端上行链路可靠性和能效的变化。也就是说,计算机架构将作为基础设施,一个从传感器到云端的生态系统架构。3.2确定能源消耗优先级的挑战服务器和便携式设备的能源解决方案有很大不同。然而,无论是在高端服务器领域,还是在便携式和传感器设备领域,对计算性能永无止境的需求,都会让功耗、能耗和散热成为计算机架构的制约因素。在架构层面,需要提出更高效合理的多核架构。在软件层面,需要研究如何尽量减少不必要的通信。在编程模型层面,要求编程环境支持专家级程序员控制整机,为普通程序员提供简单的本地模型。在应用层,需要节能的算法级策略来减少操作次数、内存访问次数和处理器间通信次数,充分利用异构系统的优势。在编译层面,需要新的方法来有效权衡能效和性能,同时兼顾二进制代码的可靠性。换句话说,降低能耗可能需要从三个方面来解决:跨级能效优化、重构“并行性”和有效利用“专用计算”。3.3工艺技术挑战新技术和工艺推动了电路、功能单元、微结构和计算机系统的新设计。非易失性存储技术可以提供高存储密度和功率效率,但需要根据器件能力重新设计存储器和外部存储器系统结构。尽管芯片堆叠技术具有减少布线延迟和增加片上带宽等诸多优势,但仍需要面临电子设计自动化、设计和工艺支持等各种挑战。新工具必须满足新技术的要求,能够支持功能综合、逻辑综合、版图设计等;异构计算挑战了在设计寄存器传输级之前对系统进行建模的能力,也面临着各种结构。性和加速部件的数量急剧增加。3.4跨层接口的挑战计算机体系结构中的可编程性是指开发的软件要满足性能、能耗、可靠性和安全性等指标。过去,重点一直放在以牺牲性能和能源消耗为代价提高程序员生产力的软件工程技术上。随着能源效率以及其他目标变得越来越重要,需要新技术来降低编程抽象级别,从而消除不必要的低效率。现有的提高可编程性的技术(包括DSL、Python和Javascript等动态脚本语言等)只是部分解决方案。然而,当前的指令集并没有提供一种有效的方式来捕获软件意图或将关键的高级信息传达给硬件。新的高级接口需要封装程序员和编译器知识并将其传输到硬件,从而提高效率和有价值的新功能。使程序员能够在更高级别表达并行性、局部性、计算依赖性以及密钥共享和通信模式的接口。该接口支持更简单、更高效的硬件,具有高效的通信能力和同步原语,可最大限度地减少数据移动,支持异构并行。当然,这需要能够清楚地识别长期数据和程序依赖关系,以便硬件和软件调度程序能够动态识别代码中的关键路径。没有分析、管理和优化通信的能力,就无法满足性能、功耗和服务质量目标。在考虑大数据应用场景时,由于涉及到许多大型系统之间的数据协作,数据管理变得更加复杂。现有系统缺乏合适的硬件和软件抽象层来描述通信关系。为了可靠性,需要跨级接口在单个应用程序中的不同模块之间指定细粒度的保护边界,将安全视为一等公民,并确定应用程序的弹性要求和期望。应用程序的某些部分可能需要容忍硬件故障,以便更节能地运行。所有这些接口都可以受益于适当的计算机体系结构,例如信息流跟踪、不变生成和检查、事务恢复块、可重构性等。4计算体系结构的发展趋势4.1硬件设计的普及开发硬件必须像开发软件一样简单、廉价和灵活。与通用处理芯片相比,专用硬件方案每单位运算能效提升10000倍。这种能效改进对于物联网应用至关重要。“流行”的硬件设计意味着让硬件设计像软件设计一样灵活、廉价和开放。软件开发团队可以利用丰富的现成可重用组件生态系统,使用高级语言加速个人开发人员的能力,并依靠强大的自动化程序分析、综合、测试和调试来确保质量。4.2云计算是计算机架构创新的抽象。云计算不仅利用其自身业务的规模,而且还为投资于IT的客户带来利益。专门的计算机体系结构得到了前所未有的使用。无论是高端超级计算机还是商用云产品,GPU都在变得无处不在,而FPGA也在推动其数据中心的计算专业化。ASIC云展示了如何共同开发大量高度专业化的处理器以显着加速关键应用程序。虚拟化等技术透明地将硬件和软件创新引入现有软件系统。虚拟化允许云提供商更换处理器、存储和网络组件以获得更快、更便宜的技术,而无需与消费者沟通和协调,并且当消费者对特定资源有需求时,虚拟化还会导致资源超额订阅。在变化和碎片化特征的情况下,消费者之间透明的资源共享。超额订阅对于云计算的成本结构很重要,它允许云提供商以比个人消费者购买专用资源低得多的价格提供IT资源。4.3垂直趋势3D集成为芯片设计提供了新的拓展维度。虽然摩尔定律已经结束,但仍然可以在一个系统上集成更多的晶体管,可以从三个维度降低互连成本,可以实现各种混合。制造技术的紧密结合。因此,3D结构内的系统组件具有更高的能效、更宽的带宽和更低的延迟。4.4“更接近物理层”的计算机体系结构与传统存储级组件相比,新的存储设备在成本、密度、延迟、吞吐量、可靠性和寿命方面均有所不同。碳纳米管可以保证更高的密度和更低的功耗,并且可以在三维基板上使用,这使得碳纳米管作为一种建筑解决方案非常可行。量子计算和超导逻辑可以提供“自由”通信,信号的传输几乎不消耗能量。DNA计算已经证明了简单的逻辑运算,许多努力表明了DNA作为纳米结构的记忆和自组装的数字介质的潜力。4.5机器学习作为核心工作负载目前的重点是支持云端的机器学习,但支持智能手机和超低功耗传感器节点等低功耗设备中的机器学习应用也很重要。幸运的是,许多机器学习内核具有相对简洁的结构,可以在准确性和资源需求之间进行权衡。因此,它们适用于专用硬件、重建和近似计算等技术。5.一句话概括计算机体系结构是计算机硬件系统的表达,其发展趋势是弥合应用领域和设备领域之间的差距,确保信息技术的坚实未来。【参考资料及相关阅读】计算机体系结构国家重点实验室译自https://img.ydisp.cn/news/20230103/kh1os1xrmkr.pdf《中国计算机学会通讯》Vol.刘宇航译,《计算机体系结构2030:未来15年的研究展望》《中国计算机学会通讯》Vol.
