编者按
软硬件协同,是上世纪90年代提出的概念。在那个时候,系统已经变得相对复杂,需要更加准确严谨的软硬件划分,然后软硬件再协同。
系统规模小的时候,软硬件划分很容易,可以比较随意的划分,即使有错误,后期修改也没什么大不了。但随着系统越来越大,如果不经过严谨的软硬件划分,到开发阶段才发现问题,可能来不及纠正,会导致项目的失败,带来非常严重的后果。软硬件协同,是系统变的复杂之后,软硬件设计的必然选择。
那么,既然已经软硬件协同了,为什么还需要软硬件融合?软硬件融合又是什么?我们将在本文中进行探讨。
软件和硬件需要定义好交互的“接口”,通过接口实现软硬件的“解耦”。例如,对CPU来说,软硬件的接口是指令集架构ISA:ISA之下的CPU处理器是硬件,指令集之上的各种程序、数据集、文件等是软件。
软硬件划分的意思是说:需要确定好软件做什么,硬件做什么。确定软硬件做什么的过程其实就是确定指令复杂度的过程。可以这样说,指令的复杂度(单位指令的计算密度)决定了系统的软硬件解耦程度。
按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。如图所示:最左边,几乎是100%软件实现,CPU硬件只是一个跟业务没有必然联系的软件执行平台而已;最右边,是几乎100%的硬件,系统的业务逻辑,完全的固化成了电路实现,额外的软件控制面,只是负责硬件的运行控制而已;中间的协处理器、GPU、FPGA和DSA,则是软件做一部分,硬件做一部分。
软硬件协同是1990年代提出的概念。大背景是随着系统规模扩大,传统的系统软硬件设计的问题逐渐凸显,需要软硬件协同设计。传统系统软硬件设计存在的问题主要是:
传统软硬件一体的设计,适合于较小的系统;而软硬件协同的设计,适合于大一些的系统。
软硬件协同的价值主要体现在:
从长期来看,软硬件协同,需要对目标系统的软硬件设计持续迭代:
量变会引起质变!
随着系统的规模越来越大,系统的设计方法论也需要不断地升级:
软硬件协同,是单个系统的软硬件设计方法学;而软硬件融合,则是复杂宏系统的软硬件设计方法学。
复杂系统,由分层分块的各个组件(即工作任务Workloads),有机组成的。这样,我们就可以把系统的组件(即工作任务,或子系统)映射到一个或多个处理引擎:
需要强调的是:软硬件融合不改变系统层次结构和组件间的交互关系,但打破传统软硬件的界限,系统的、动态的重构软硬件划分/协同,达到整体最优。
在小系统和大系统的背景下,分层很清晰:下层硬件上层软件。软硬件融合的分层分块,每个任务都是不同程度软硬件解耦基础上的再协同。然后再整合成复杂宏系统。整个复杂宏系统呈现出:软件中有硬件,硬件中有软件,软硬件融合成一体。
目前,在CPU性能瓶颈和对算力需求不断上升的的大背景下,软硬件融合主要是任务卸载。系统的任务,不断的从CPU卸载到各个层次的硬件加速,其原因主要是:①复杂分层的系统、 ②CPU性能瓶颈、 ③超大规模以及④特定场景服务。
无规模,不卸载(Offload)。
哪些任务适合卸载?卸载的大原则可以分为微观和宏观两个方面。微观原则是:①性能敏感,占据较多CPU资源;宏观原则是:②广泛部署,运行于众多服务器。
宏观的看,分层的系统,越上层越灵活软件成分越多,越下层越固定硬件成分越多。庞大的规模以及特定场景服务,使得云计算底层工作任务逐渐稳定并且逐步卸载到硬件(被动趋势)。软硬件融合架构,可以使“硬件”更加灵活,功能也更加强大,使得更多的层次功能向“硬件”加速卸载(主动抢占)。
Intel SVP Raja表示:要实现元宇宙级别的体验,算力至少需要提升1000倍。从云计算到云网边端融合的万物融合,再到云宇宙的虚实融合,算力需要多个数量级的提高,单个设备的系统越来越复杂,数以亿计设备组成的融合大系统,则更加复杂。
软硬件融合,从宏观和微观的视角,尝试解决复杂计算面临的问题。系统越复杂,软硬件融合的价值越凸显。
软硬件融合相关技术,从云计算抽象出来,指引包括云计算在内的各种复杂计算场景的芯片及系统设计。
软硬件融合的根基:①分层分块的系统和②宏观的超大规模,这两个原因使得③二八规律广泛存在。
软硬件融合承上启下:从产品定义和系统架构开始,逐步拓展到整个系统栈;往下拓展微架构设计和实现,甚至考虑工艺、封装和测试;往上,考虑接口驱动、操作系统、框架和开发库,甚至需要考虑应用算法和业务逻辑。
软硬件融合,落地实现必然是CPU + 协处理器 + GPU + FPGA + DSA + ASIC等多种处理引擎充分协同的超异构计算。其中,每个工作任务都是在软硬件均衡/解耦基础上的再协同。
软硬件融合的核心目标是要兼顾软件灵活性和硬件高性能,实现既要又要。
软硬件融合,既是理论和理念,也是方法和解决方案。让硬件更加灵活、弹性、可扩展,弥补硬件和软件之间的鸿沟。
软硬件融合应对云计算、边缘计算及超级终端等复杂计算场景的挑战。软硬件融合也为解决芯片一次性成本过高导致的设计风险,提供了切实可行的思路和方案。
◉ 点击访问网址,观看“软硬件融合”直播回放:
https://aijishu.com/l/1110000000344055。