软硬件融合的概念和内涵

编者按
跟很多朋友交流,当提到软硬件融合的时候,他们会这么说:“软硬件融合,难道不是显而易见吗?我感觉在二三十年前就已经有这个概念了。”在他们的想法里,其实:软硬件融合等同于软硬件协同,甚至等同于软硬件结合。他们混淆了软硬件结合、软硬件协同和软硬件融合的概念。
今天这篇文章,就跟大家详细介绍一下软硬件融合的概念和内涵,以及软硬件融合和软硬件协同、软硬件结合之间的区别和联系。
1 背景知识:软硬件协同的发展
传统的系统设计,软硬件划分不够仔细,软硬件是紧耦合的,相互掣肘。这即是我们经常说的“软硬件结合”的设计思路。在系统规模较小的时候,遇到的问题不多,即使遇到问题,调整的代价也不高,可以承受。
但随着系统的规模逐渐扩大,软硬件结合的设计方法开始暴露问题:
硬件/软件划分在还未充分理解系统的情况下进行,很容易产生设计错误;
软硬件划分的设计错误,会对系统产生巨大的负面影响;
而受开发周期和纠正代价的影响,难以纠正在软硬件划分阶段的错误。
系统规模逐步扩大,量变引起质变,传统的软硬件结合设计的问题逐渐凸显。需要升级设计方法论,需要从软硬件结合,走向软硬件协同。
软硬件协同是1990s提出的概念,强调在系统划分之前,需要深刻的理解系统,并且经过非常仔细的系统分析和架构映射,慎重而准确的进行系统的软硬件划分。
软硬件划分是为了软硬件协同,因此软硬件协同设计的关键是在划分之前,而不是在划分之后。划分之前,深度思考软硬件工作划分的准确,确保“接口”清晰、高效,确保软硬件充分地协同。划分(解耦)之后,没有了相互掣肘,软硬件都可以充分创新,实现更加强大的功能/性能。
传统的软硬件结合设计,适合于小系统;而软硬件协同设计,适合于大系统。软硬件协同,是用于大系统的、统一的设计方法论。软硬件协同可以充分利用已有软硬件资源,使得效率最大化,缩短产品上市时间。
2 软硬件融合的根基
2.1 软硬件划分,暨处理器类型划分
世间万物由基本粒子组成,复杂处理由基本计算组成。软硬件划分指的是,软件和硬件通过一定的“接口”解耦,而指令(集)则是软件和硬件的“接口”。指令的复杂度(计算粒度或密度)决定了系统的软硬件解耦程度。
isa(指令集架构)之下,cpu、gpu等各种处理器是硬件;isa之上,各种程序、数据集、文件等是软件。
按照指令的复杂度,典型的处理器平台大致分为cpu、协处理器、gpu、fpga、dsa、asic。从左往右,单位计算越来越复杂。性能越来越好,而灵活性越来越低。
cpu、gpu、dsa等各种类型的处理器,本质上是在不同层次的软硬件解耦基础上的软硬件协同。
2.2 分层分块的系统
系统由分层分块的各个组件,即工作任务(workloads),有机组成。整个系统,是一个分层的体系:每一层都建立在下面一层的基础之上,每一层再通过特定的接口向上一层提供服务;同一层中,模块也可以通过接口向其他模块提供服务。
多个小系统组成大系统,多个大系统再组成宏系统;反过来,宏系统可以分解成多个大系统,每个大系统还可以再分解成多个小系统。
3 软硬件融合
3.1 首先,软硬件融合是一种设计理念
cpu、gpu等标准化的处理器已经成为我们主流的计算平台,也已经拥有了非常庞大的生态。在这些软硬件标准化解耦的平台上,芯片工程师仅需要关注芯片的设计实现,软件工程师仅需要关注软件开发。大家并行不悖的各种努力工作,平台“长年不变”,是一种非常舒服但又不可能的理想的状态。
事物发展不会停滞。cpu已经存在了50多年,性能早已见顶;gpu也有20多年的历史,性能增长也相当缓慢。大模型应用通常需要上万张gpu加速卡,据说gpt5需要5万张gpu卡。上层业务应用日新月异,已有的硬件平台已经无法满足我们的需要。
是时候打破已有的软硬件界限了!
没有条条框框的限制,回到系统的本源,重新思考系统的设计,重新构建新的更复杂的软硬件协同。这就是我们所强调的软硬件融合!
3.2 从软硬件结合、软硬件协同到软硬件融合
软硬件协同是上世纪90年代的产物,到现在已经有了30年左右的时间。上层的业务系统早已经翻天地覆,系统规模增加了成百上千倍,很难对如此复杂的系统进行准确的软硬件划分。
于是,软硬件融合应运而生。
我们把软硬件结合面向的系统称之为小系统,把软硬件协同面向的系统称之为大系统,那么软硬件融合则面向宏系统。
宏系统可以拆分成系统,每个系统需要软硬件协同,并且各个系统间还需要再协同,众多的软硬件协同组成的新的软硬件交互机制,即为软硬件融合。
软硬件协同,面向单个系统的计算场景;软硬件融合,面向多个系统混合的复杂计算场景。因此,软硬件融合面向的系统规模,通常是软硬件协同面向的系统规模的10+倍。
从软硬件协同到软硬件融合:软硬件协同,是单系统软硬件设计的方法学;软硬件融合,是多系统复杂计算软硬件设计的方法学。
3.3 软硬件融合的内涵
如果我们把工作任务映射到一个或多个处理引擎:
定义一个一维的坐标系:在这个坐标系里,cpu是100%的软件,asic是100%的硬件。其他处理器引擎介于两者之间,是不同比例软硬件的混合态。
动态均衡+极限拉扯:根据任务的特点,把之映射到最合适的处理器引擎。类似拔河一样动态的、极限的拉扯到极致,而不是简单的天平一般的平衡。
工作任务处理器引擎的动态性:工作任务最合适的处理引擎,并非一成不变,而是随着系统发展有可能下沉(offload)/上浮(onload)。
需要注意的是,这里的基于软硬件引擎的工作任务分层,跟系统工作任务的分层是不同的概念。
软硬件融合不改变系统层次结构和组件间交互关系,但打破传统软硬件的界限,系统的、动态的重构软硬件划分/协同,达到整体最优。
在传统软硬件的系统里,分层是非常清晰的:下层硬件上层软件。软硬件融合的分层分块,每个任务都是不同层次软硬件解耦基础上的再协同;并且,在不同工作任务的软硬件协同基础上,再实现工作任务之间的协同。
从全局看,整个系统呈现出:软件中有硬件,硬件中有软件,软硬件融合成一个有机的整体。
3.4 软硬件融合的趋势
受限于目前:
一方面,业务对算力的强劲需求;
另一方面,cpu、gpu等传统的灵活型的处理器性能逐渐瓶颈;
此外,量子等颠覆性新技术进展缓慢,短期内芯片底层工艺不太可能颠覆式创新。
因此,在未来一定时期内,软硬件融合的主要趋势,是工作任务逐渐从软件向硬件卸载。  
哪些工作任务适合卸载?“无规模,不卸载(offload) ”,超大的规模是工作任务卸载的前提。因此,我们可以总结适合卸载的工作任务的两个基本特征:(1)性能敏感,占据较多cpu资源;(2)广泛部署,运行于众多计算设备。
宏观的看,分层的系统,越上层越灵活软件成分越多,越下层越固定硬件成分越多;与此同时,随着系统规模越来越大,复杂分层的系统,其“二八定律”的特征越发明显。于是,许多底层的工作任务逐渐稳定并且逐步卸载到硬件(被动趋势)。
此外,通过软硬件融合的架构设计,可以使得“硬件”更加灵活,功能也更加强大,从而更多的层次功能加速向“硬件”卸载(主动抢占)。
4 软硬件融合总结
软硬件融合,既是理论和理念,也是方法和解决方案。
软硬件融合系统中的每一个工作任务,都是在软硬件均衡/解耦基础上的再协同。软硬件融合系统的每个工作任务之间的连接(软件之间、软硬件之间以及硬件之间的连接)和调用均具有极致的性能和灵活性。软硬件融合系统,能够兼顾软件的灵活性和硬件的高性能,实现既要又要。
软硬件融合落地为cpu、gpu、dsa等多种处理引擎充分协同的异构融合计算。
软硬件融合承上启下,从产品定义和系统架构开始,逐步拓展到整个系统栈。
软硬件融合的必要性和必然性:
理论根基:①cpu到asic的不同层次的软硬件划分,②系统的分层分块。
落地条件:③“二八规律”广泛存在;④超大规模的计算。
驱动力量:⑤算力需求数量级提升,⑥先进工艺和封装支撑超大规模的芯片。
软硬件融合的意义:
让硬件更加灵活、弹性、可扩展,弥补硬件和软件之间的鸿沟;
应对人工智能、云/边缘计算及超级终端等复杂场景的挑战;
解决芯片一次性成本过高导致的设计风险;
等等。


工业控制服务平台结合物联网无线通讯模块,成为企业智能化改造的必备核心
小觅智能发布双目摄像头标准彩色版
中科亿海微推出面向金融高频交易的超低延时交换机产品
最差的阻抗加工长什么样?
LED光电性能测试的几种方法解析
软硬件融合的概念和内涵
凤凰卫视与故宫博物院联合打造的高科技互动艺术展演《清明上河图3.0》在故宫箭亭广场正式开幕
pcb进行自动检测的作用
ARM3.5亿美元收购Apical 完善成像产品生态链
E703.15 单芯片超声波水表解决方案
什么是浮点数
中电信明确2012年实现3G用户规模超过2G
集成运放的基本特性 集成运放的直流要求
江西加快物联网产业的建设布局
集成电路命名方法
回程传感器在斗轮堆取料机、塔吊等设备进行回转角度检测
其实机器学习中图神经网络没那么重要?
AI大模型浪潮已至,微美全息(WIMI.US)AIGC多领域布局带来增长机遇
PLC的工作原理及工作过程介绍
【瞭望者】无人机反制的主要方式