前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么要从“软硬件协同”走向“软硬件融合”?

为什么要从“软硬件协同”走向“软硬件融合”?

作者头像
chaobowx
发布2022-12-16 14:50:01
3990
发布2022-12-16 14:50:01
举报
文章被收录于专栏:软硬件融合软硬件融合

编者按

软硬件协同,是上世纪90年代提出的概念。在那个时候,系统已经变得相对复杂,需要更加准确严谨的软硬件划分,然后软硬件再协同。

系统规模小的时候,软硬件划分很容易,可以比较随意的划分,即使有错误,后期修改也没什么大不了。但随着系统越来越大,如果不经过严谨的软硬件划分,到开发阶段才发现问题,可能来不及纠正,会导致项目的失败,带来非常严重的后果。软硬件协同,是系统变的复杂之后,软硬件设计的必然选择。

那么,既然已经软硬件协同了,为什么还需要软硬件融合?软硬件融合又是什么?我们将在本文中进行探讨。

1 首先,讲一下软硬件划分

软件和硬件需要定义好交互的“接口”,通过接口实现软硬件的“解耦”。例如,对CPU来说,软硬件的接口是指令集架构ISA:ISA之下的CPU处理器是硬件,指令集之上的各种程序、数据集、文件等是软件。

软硬件划分的意思是说:需要确定好软件做什么,硬件做什么。确定软硬件做什么的过程其实就是确定指令复杂度的过程。可以这样说,指令的复杂度(单位指令的计算密度)决定了系统的软硬件解耦程度。

按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。如图所示:最左边,几乎是100%软件实现,CPU硬件只是一个跟业务没有必然联系的软件执行平台而已;最右边,是几乎100%的硬件,系统的业务逻辑,完全的固化成了电路实现,额外的软件控制面,只是负责硬件的运行控制而已;中间的协处理器、GPU、FPGA和DSA,则是软件做一部分,硬件做一部分。

2 软硬件协同概念的提出

软硬件协同是1990年代提出的概念。大背景是随着系统规模扩大,传统的系统软硬件设计的问题逐渐凸显,需要软硬件协同设计。传统系统软硬件设计存在的问题主要是:

  • 硬件/软件划分,是在还未充分理解系统的情况下进行,很容易产生设计错误;
  • 软硬件划分的设计错误,会对系统产生巨大的负面影响;
  • 而受开发周期和纠正代价的影响,难以纠正在软硬件划分阶段的错误。

传统软硬件一体的设计,适合于较小的系统;而软硬件协同的设计,适合于大一些的系统。

软硬件协同的价值主要体现在:

  • 统一的设计方法论,可以持续指导大系统的设计;
  • 可以充分利用已有的软硬件资源,使得开发效率最大化;
  • 缩短大系统产品上市的时间。

从长期来看,软硬件协同,需要对目标系统的软硬件设计持续迭代:

  • 如果是做一次性的项目,只需要循环一次;
  • 如果要做用户满意的产品,需要迭代循环数次,不断的升级优化;
  • 如果是一个软硬件平台,则需要循环数十次,不断的优化软硬件划分,基于软硬件的“接口”,实现功能更强大的软件和硬件;
  • 如果要构建基于平台的生态,甚至需要循环上百次,时间更久(数年甚至数十年),代价更高(数以十亿美金计的投入)。

3 为什么要从软硬件协同到软硬件融合

量变会引起质变!

随着系统的规模越来越大,系统的设计方法论也需要不断地升级:

  • 第一阶段,小系统。软硬件一体设计,软硬件划分的难度也不高,划分也比较随意。即使划分错误,后期修正的代价也不高。
  • 第二阶段,大系统。随着系统设计规模不断扩大,传统的软硬件一体的方法,越来越不适应系统的设计,越来越成为系统设计的瓶颈;于是,出现了软硬件协同。
  • 第三阶段,复杂宏系统是很多系统的混合交叉,需要实现很多功能的融合。复杂系统里的每一个子系统,其体量和传统系统的规模相当。每个子系统设计都需要软硬件协同,而且会是不同程度软硬件划分之后的再协同。子系统之间的协作(软件和软件的协作、软件和硬件的协作、硬件和硬件的协作),也是软硬件协同。通过不同子系统的软硬件协同,形成了有机的复杂系统。如图所示,我们把众多子系统的众多软硬件协同的组合称为软硬件融合。

软硬件协同,是单个系统的软硬件设计方法学;而软硬件融合,则是复杂宏系统的软硬件设计方法学。

4 软硬件融合

复杂系统,由分层分块的各个组件(即工作任务Workloads),有机组成的。这样,我们就可以把系统的组件(即工作任务,或子系统)映射到一个或多个处理引擎:

  • 按照指令复杂度,形成一维坐标系。CPU是100%软件,ASIC是100%硬件,其他处理引擎介于两者之间,是不同比例软硬件混合态。
  • 根据任务特点,映射到最合适的引擎。软硬件的分工和协同,需要均衡;但更要不断的向上向下拉扯,形成极致最优。需要注意的是:基于软硬件引擎的分层跟系统分层是不同的概念。
  • 映射是动态平衡的:任务最合适的处理引擎,并非一成不变,而是随着系统发展有可能下沉(Offload)/上浮(Onload)。

需要强调的是:软硬件融合不改变系统层次结构和组件间的交互关系,但打破传统软硬件的界限,系统的、动态的重构软硬件划分/协同,达到整体最优。

在小系统和大系统的背景下,分层很清晰:下层硬件上层软件。软硬件融合的分层分块,每个任务都是不同程度软硬件解耦基础上的再协同。然后再整合成复杂宏系统。整个复杂宏系统呈现出:软件中有硬件,硬件中有软件,软硬件融合成一体。

目前,在CPU性能瓶颈和对算力需求不断上升的的大背景下,软硬件融合主要是任务卸载。系统的任务,不断的从CPU卸载到各个层次的硬件加速,其原因主要是:①复杂分层的系统、 ②CPU性能瓶颈、 ③超大规模以及④特定场景服务。

无规模,不卸载(Offload)。

哪些任务适合卸载?卸载的大原则可以分为微观和宏观两个方面。微观原则是:①性能敏感,占据较多CPU资源;宏观原则是:②广泛部署,运行于众多服务器。

宏观的看,分层的系统,越上层越灵活软件成分越多,越下层越固定硬件成分越多。庞大的规模以及特定场景服务,使得云计算底层工作任务逐渐稳定并且逐步卸载到硬件(被动趋势)。软硬件融合架构,可以使“硬件”更加灵活,功能也更加强大,使得更多的层次功能向“硬件”加速卸载(主动抢占)。

5 软硬件融合面向的场景

Intel SVP Raja表示:要实现元宇宙级别的体验,算力至少需要提升1000倍。从云计算到云网边端融合的万物融合,再到云宇宙的虚实融合,算力需要多个数量级的提高,单个设备的系统越来越复杂,数以亿计设备组成的融合大系统,则更加复杂。

软硬件融合,从宏观和微观的视角,尝试解决复杂计算面临的问题。系统越复杂,软硬件融合的价值越凸显。

软硬件融合相关技术,从云计算抽象出来,指引包括云计算在内的各种复杂计算场景的芯片及系统设计。

6 软硬件融合的意义

软硬件融合的根基:①分层分块的系统和②宏观的超大规模,这两个原因使得③二八规律广泛存在。

软硬件融合承上启下:从产品定义和系统架构开始,逐步拓展到整个系统栈;往下拓展微架构设计和实现,甚至考虑工艺、封装和测试;往上,考虑接口驱动、操作系统、框架和开发库,甚至需要考虑应用算法和业务逻辑。

软硬件融合,落地实现必然是CPU + 协处理器 + GPU + FPGA + DSA + ASIC等多种处理引擎充分协同的超异构计算。其中,每个工作任务都是在软硬件均衡/解耦基础上的再协同。

软硬件融合的核心目标是要兼顾软件灵活性和硬件高性能,实现既要又要。

软硬件融合,既是理论和理念,也是方法和解决方案。让硬件更加灵活、弹性、可扩展,弥补硬件和软件之间的鸿沟。

软硬件融合应对云计算、边缘计算及超级终端等复杂计算场景的挑战。软硬件融合也为解决芯片一次性成本过高导致的设计风险,提供了切实可行的思路和方案。


◉ 点击访问网址,观看“软硬件融合”直播回放:

https://aijishu.com/l/1110000000344055

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软硬件融合 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 首先,讲一下软硬件划分
  • 2 软硬件协同概念的提出
  • 3 为什么要从软硬件协同到软硬件融合
  • 4 软硬件融合
  • 5 软硬件融合面向的场景
  • 6 软硬件融合的意义
相关产品与服务
全站加速网络
全站加速网络(Enterprise Content Delivery Network,以下简称 ECDN)为您提供稳定高效的网络加速服务,适用于动静混合、纯动态、跨国、上传等多种加速场景。ECDN 网络资源丰富,同时融合静态缓存、智能路由、协议优化、多路传输、抗抖动等自研技术,加速效果更加显著;接入便捷,功能配置灵活多样,可满足您个性化的业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档