0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软硬件融合的概念和内涵

安芯教育科技 来源: 软硬件融合 2023-10-17 14:36 次阅读

编者按

跟很多朋友交流,当提到软硬件融合的时候,他们会这么说:“软硬件融合,难道不是显而易见吗?我感觉在二三十年前就已经有这个概念了。”在他们的想法里,其实:软硬件融合等同于软硬件协同,甚至等同于软硬件结合。他们混淆了软硬件结合、软硬件协同和软硬件融合的概念。

今天这篇文章,就跟大家详细介绍一下软硬件融合的概念和内涵,以及软硬件融合和软硬件协同、软硬件结合之间的区别和联系。

1 背景知识:软硬件协同的发展

727bca6a-68e3-11ee-939d-92fbcf53809c.png

传统的系统设计,软硬件划分不够仔细,软硬件是紧耦合的,相互掣肘。这即是我们经常说的“软硬件结合”的设计思路。在系统规模较小的时候,遇到的问题不多,即使遇到问题,调整的代价也不高,可以承受。

但随着系统的规模逐渐扩大,软硬件结合的设计方法开始暴露问题:

硬件/软件划分在还未充分理解系统的情况下进行,很容易产生设计错误;

软硬件划分的设计错误,会对系统产生巨大的负面影响;

而受开发周期和纠正代价的影响,难以纠正在软硬件划分阶段的错误。

系统规模逐步扩大,量变引起质变,传统的软硬件结合设计的问题逐渐凸显。需要升级设计方法论,需要从软硬件结合,走向软硬件协同。

软硬件协同是1990s提出的概念,强调在系统划分之前,需要深刻的理解系统,并且经过非常仔细的系统分析和架构映射,慎重而准确的进行系统的软硬件划分。

软硬件划分是为了软硬件协同,因此软硬件协同设计的关键是在划分之前,而不是在划分之后。划分之前,深度思考软硬件工作划分的准确,确保“接口”清晰、高效,确保软硬件充分地协同。划分(解耦)之后,没有了相互掣肘,软硬件都可以充分创新,实现更加强大的功能/性能。

传统的软硬件结合设计,适合于小系统;而软硬件协同设计,适合于大系统。软硬件协同,是用于大系统的、统一的设计方法论。软硬件协同可以充分利用已有软硬件资源,使得效率最大化,缩短产品上市时间。

2 软硬件融合的根基

2.1 软硬件划分,暨处理器类型划分

728b2f64-68e3-11ee-939d-92fbcf53809c.png

世间万物由基本粒子组成,复杂处理由基本计算组成。软硬件划分指的是,软件和硬件通过一定的“接口”解耦,而指令(集)则是软件和硬件的“接口”。指令的复杂度(计算粒度或密度)决定了系统的软硬件解耦程度。

ISA(指令集架构)之下,CPUGPU等各种处理器是硬件;ISA之上,各种程序、数据集、文件等是软件。

按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。从左往右,单位计算越来越复杂。性能越来越好,而灵活性越来越低。

CPU、GPU、DSA等各种类型的处理器,本质上是在不同层次的软硬件解耦基础上的软硬件协同。

2.2 分层分块的系统

729649c6-68e3-11ee-939d-92fbcf53809c.png

系统由分层分块的各个组件,即工作任务(Workloads),有机组成。整个系统,是一个分层的体系:每一层都建立在下面一层的基础之上,每一层再通过特定的接口向上一层提供服务;同一层中,模块也可以通过接口向其他模块提供服务。

多个小系统组成大系统,多个大系统再组成宏系统;反过来,宏系统可以分解成多个大系统,每个大系统还可以再分解成多个小系统。

3 软硬件融合

3.1 首先,软硬件融合是一种设计理念

CPU、GPU等标准化的处理器已经成为我们主流的计算平台,也已经拥有了非常庞大的生态。在这些软硬件标准化解耦的平台上,芯片工程师仅需要关注芯片的设计实现,软件工程师仅需要关注软件开发。大家并行不悖的各种努力工作,平台“长年不变”,是一种非常舒服但又不可能的理想的状态。

事物发展不会停滞。CPU已经存在了50多年,性能早已见顶;GPU也有20多年的历史,性能增长也相当缓慢。大模型应用通常需要上万张GPU加速卡,据说GPT5需要5万张GPU卡。上层业务应用日新月异,已有的硬件平台已经无法满足我们的需要。

是时候打破已有的软硬件界限了!

没有条条框框的限制,回到系统的本源,重新思考系统的设计,重新构建新的更复杂的软硬件协同。这就是我们所强调的软硬件融合!

3.2 从软硬件结合、软硬件协同到软硬件融合

72a7af9a-68e3-11ee-939d-92fbcf53809c.png

软硬件协同是上世纪90年代的产物,到现在已经有了30年左右的时间。上层的业务系统早已经翻天地覆,系统规模增加了成百上千倍,很难对如此复杂的系统进行准确的软硬件划分。

于是,软硬件融合应运而生。

我们把软硬件结合面向的系统称之为小系统,把软硬件协同面向的系统称之为大系统,那么软硬件融合则面向宏系统。

宏系统可以拆分成系统,每个系统需要软硬件协同,并且各个系统间还需要再协同,众多的软硬件协同组成的新的软硬件交互机制,即为软硬件融合。

软硬件协同,面向单个系统的计算场景;软硬件融合,面向多个系统混合的复杂计算场景。因此,软硬件融合面向的系统规模,通常是软硬件协同面向的系统规模的10+倍。

从软硬件协同到软硬件融合:软硬件协同,是单系统软硬件设计的方法学;软硬件融合,是多系统复杂计算软硬件设计的方法学。

3.3 软硬件融合的内涵

72b7db22-68e3-11ee-939d-92fbcf53809c.png

如果我们把工作任务映射到一个或多个处理引擎:

定义一个一维的坐标系:在这个坐标系里,CPU是100%的软件,ASIC是100%的硬件。其他处理器引擎介于两者之间,是不同比例软硬件的混合态。

动态均衡+极限拉扯:根据任务的特点,把之映射到最合适的处理器引擎。类似拔河一样动态的、极限的拉扯到极致,而不是简单的天平一般的平衡。

工作任务处理器引擎的动态性:工作任务最合适的处理引擎,并非一成不变,而是随着系统发展有可能下沉(Offload)/上浮(Onload)。

需要注意的是,这里的基于软硬件引擎的工作任务分层,跟系统工作任务的分层是不同的概念。

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

在传统软硬件的系统里,分层是非常清晰的:下层硬件上层软件。软硬件融合的分层分块,每个任务都是不同层次软硬件解耦基础上的再协同;并且,在不同工作任务的软硬件协同基础上,再实现工作任务之间的协同。

从全局看,整个系统呈现出:软件中有硬件,硬件中有软件,软硬件融合成一个有机的整体。

3.4 软硬件融合的趋势

72c0c1a6-68e3-11ee-939d-92fbcf53809c.png

受限于目前:

一方面,业务对算力的强劲需求;

另一方面,CPU、GPU等传统的灵活型的处理器性能逐渐瓶颈;

此外,量子等颠覆性新技术进展缓慢,短期内芯片底层工艺不太可能颠覆式创新。

因此,在未来一定时期内,软硬件融合的主要趋势,是工作任务逐渐从软件向硬件卸载。

哪些工作任务适合卸载?“无规模,不卸载(Offload) ”,超大的规模是工作任务卸载的前提。因此,我们可以总结适合卸载的工作任务的两个基本特征:(1)性能敏感,占据较多CPU资源;(2)广泛部署,运行于众多计算设备。

宏观的看,分层的系统,越上层越灵活软件成分越多,越下层越固定硬件成分越多;与此同时,随着系统规模越来越大,复杂分层的系统,其“二八定律”的特征越发明显。于是,许多底层的工作任务逐渐稳定并且逐步卸载到硬件(被动趋势)。

此外,通过软硬件融合的架构设计,可以使得“硬件”更加灵活,功能也更加强大,从而更多的层次功能加速向“硬件”卸载(主动抢占)。

4 软硬件融合总结

软硬件融合,既是理论和理念,也是方法和解决方案。

软硬件融合系统中的每一个工作任务,都是在软硬件均衡/解耦基础上的再协同。软硬件融合系统的每个工作任务之间的连接(软件之间、软硬件之间以及硬件之间的连接)和调用均具有极致的性能和灵活性。软硬件融合系统,能够兼顾软件的灵活性和硬件的高性能,实现既要又要。

软硬件融合落地为CPU、GPU、DSA等多种处理引擎充分协同的异构融合计算。

72c843ae-68e3-11ee-939d-92fbcf53809c.png

软硬件融合承上启下,从产品定义和系统架构开始,逐步拓展到整个系统栈。

软硬件融合的必要性和必然性:

理论根基:①CPU到ASIC的不同层次的软硬件划分,②系统的分层分块。

落地条件:③“二八规律”广泛存在;④超大规模的计算。

驱动力量:⑤算力需求数量级提升,⑥先进工艺和封装支撑超大规模的芯片。

软硬件融合的意义:

让硬件更加灵活、弹性、可扩展,弥补硬件和软件之间的鸿沟;

应对人工智能、云/边缘计算及超级终端等复杂场景的挑战;

解决芯片一次性成本过高导致的设计风险;

等等。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222157
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409118
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206559
  • 软硬件
    +关注

    关注

    1

    文章

    269

    浏览量

    19053

原文标题:什么是软硬件融合?

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    支持过程级动态软硬件划分的RSoC设计与实现

    目前,可重构计算平台所支持的动态软硬件划分粒度多处于线程级或指令级,但线程级划分开销太大,而指令级划分又过于复杂,因此很难被用于实际应用之中。本文设计并实现了一种支持过程级动态软硬件划分的可重构片上
    发表于 05-28 13:40

    如何使用KEIL进行软硬件仿真

    如何使用KEIL进行软硬件仿真
    发表于 08-20 14:14

    软硬件工程师合作伙伴

    1、精通OBD II软硬件开发、更新、升级2、精通OBD II车辆协议破解3、通过WIFI、蓝牙模块升级硬件端4、与手机移动端APP接口文件对接5、熟悉其它软硬件的开发合作方式及利润分配面议。电话:***QQ:297266953
    发表于 07-25 13:38

    基于Altera FPGA的软硬件协同仿真方法介绍

    摘要:简要介绍了软硬件协同仿真技术,指出了在大规模FPGA开发中软硬件协同仿真的重要性和必要性,给出基于Altera FPGA的门级软硬件协同仿真实例。 关键词:系统级芯片设计;软硬件
    发表于 07-04 06:49

    DNW下载的软硬件流程是如何去完成的

    DNW下载的软硬件流程是如何去完成的?怎样去下载DNW的软硬件呢?有哪些下载步骤?
    发表于 12-24 08:01

    FPGA-SoPC软硬件协同设计

    本内容详细介绍了FPGA-SoPC软硬件协同设计
    发表于 05-09 15:59 41次下载
    FPGA-SoPC<b class='flag-5'>软硬件</b>协同设计

    基于USB的串行通信软硬件设计

    本文是基于USB的串行通信软硬件设计的详细介绍
    发表于 10-17 17:38 127次下载
    基于USB的串行通信<b class='flag-5'>软硬件</b>设计

    一种基于DSP的AD采样自校正软硬件设计_高志斌

    一种基于DSP的AD采样自校正软硬件设计_高志斌
    发表于 01-14 22:34 8次下载

    USB的串行通信软硬件设计

    USB的串行通信软硬件设计
    发表于 09-04 10:08 14次下载
    USB的串行通信<b class='flag-5'>软硬件</b>设计

    软硬件协同设计机遇与挑战分析

    软硬件协同设计是指对系统中的软硬件部分使用统一的描述和工具进行集成开发,可完成全系统的设计验证并跨越软硬件界面进行系统优化,软硬件协同设计是嵌入式技术发展的一大趋势,本PPT文件
    发表于 11-25 03:45 514次阅读

    基于FPGA芯片的软硬件平台的使用

    基于FPGA芯片的软硬件平台的使用
    发表于 07-01 09:35 20次下载

    2021 OPPO开发者大会主会场:软硬件融合技术升级

    2021 OPPO开发者大会主会场:软硬件融合技术升级
    的头像 发表于 10-27 10:43 1206次阅读
    2021 OPPO开发者大会主会场:<b class='flag-5'>软硬件</b><b class='flag-5'>融合</b>技术升级

    2021 OPPO开发者大会:软硬件融合技术升级

    2021 OPPO开发者大会:软硬件融合技术升级 2021 OPPO开发者大会上介绍了软硬件融合技术升级,提升开发者生产效率。 责任编辑:haq
    的头像 发表于 10-27 14:53 2385次阅读
    2021 OPPO开发者大会:<b class='flag-5'>软硬件</b><b class='flag-5'>融合</b>技术升级

    软硬件协同设计是系统芯片的基础设计方法学

    软硬件协同仿真验证是对软硬件功能设计的正确性及性能进行验证和评估。传统设计中,硬件和软件通常是分开独立开发设计的,到系统设计后期才将软硬件两部分集成到一起进行验证。
    的头像 发表于 08-12 11:28 2827次阅读

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

    软件和硬件需要定义好交互的“接口”,通过接口实现软硬件的“解耦”。例如,对CPU来说,软硬件的接口是指令集架构ISA:ISA之下的CPU处理器是硬件,指令集之上的各种程序、数据集、文件
    的头像 发表于 12-07 14:23 1924次阅读