您的位置  > 互联网

关于软硬件融合,你应该知道的一些事儿!

和很多朋友聊天的时候,说到软硬件融合,他们都会这样说:“软硬件融合不是很明显吗?我感觉这个概念大概是二十、三十年前的事了。” 在他们的想法中,其实:软件和硬件的融合就相当于软件和硬件的协同,甚至是软件和硬件的结合。 他们混淆了软硬件结合、软硬件协同、软硬件集成等概念。

今天的文章将为大家详细介绍软硬件集成的概念和内涵,以及软硬件集成、软硬件协同、软硬件结合之间的区别和联系。

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

传统的系统设计中,软件和硬件的划分不够细致,软件和硬件紧密耦合、相互制约。 这就是我们常说的“软硬件结合”的设计思想。 当系统规模较小时,遇到的问题并不多。 即使遇到问题,调整的成本也不高,可以承受。

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

随着系统规模逐渐扩大,量变引发质变,传统软硬件结合设计的问题逐渐显现。 设计方法需要升级,从软硬件结合到软硬件协同。

软硬件协同是20世纪90年代提出的概念。 它强调在系统划分之前需要对系统有深入的了解,并通过非常仔细的系统分析和架构映射,对系统的软硬件划分进行仔细、准确的划分。

软硬件的划分是为了软硬件协同,所以软硬件协同设计的关键在划分之前,而不是划分之后。 划分之前,要深入思考软硬件工作划分的准确性,确保“接口”清晰高效,确保软硬件充分协同。 划分(解耦)后,不再相互制约,软件和硬件都可以充分创新,实现更强大的功能/性能。

传统的软硬件组合设计适合小型系统; 而软硬件协同设计则适合大型系统。 软硬件协同是大型系统的统一设计方法。 软硬件协同可以充分利用现有软硬件资源,最大限度地提高效率,缩短产品上市时间。

2 软硬件集成的基础 2.1 软硬件划分、处理器类型划分

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

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

根据指令的复杂程度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA和ASIC。 从左到右,单位计算变得越来越复杂。 性能越来越好,灵活性却越来越少。

CPU、GPU、DSA等各类处理器本质上都是基于不同程度的软硬件解耦的软硬件协同。

2.2 分层和基于块的系统

该系统由各种组件有机组成,即工作任务(),这些组件被划分为分层块。 整个系统是一个分层系统:每一层都建立在下一层的基础上,每一层通过特定的接口向上层提供服务; 在同一层中,模块还可以通过接口为其他模块提供服务。 提供服务。

多个小系统组成一个大系统,多个大系统组成一个宏系统; 反之,一个宏观系统可以分解为多个大系统,每个大系统又可以分解为多个小系统。

3 软硬件一体化 3.1 首先,软硬件一体化是一个设计理念

CPU、GPU等标准化处理器已经成为我们的主流计算平台,已经拥有非常庞大的生态系统。 在这些软硬件标准化、解耦的平台上,芯片工程师只需要专注于芯片设计和实现,软件工程师只需要专注于软件开发。 大家并行努力,平台保持“多年不变”,这是一种很舒服但却不可能的理想状态。

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

是时候打破软件和硬件之间的现有界限了!

没有规章制度的限制,回归系统本源,重新思考系统设计,重建新的、更复杂的软硬件协同。 这就是我们强调的软硬件一体化!

3.2 从软硬件结合、软硬件协同到软硬件集成

软硬件协同是20世纪90年代的产物,至今已有约30年的历史。 上层业务系统进行了改造,系统规模扩大了数百倍、数千倍。 如此复杂的系统很难准确划分软件和硬件。

于是,软件与硬件的一体化应运而生。

我们把面向软硬件结合的系统称为小系统,面向软硬件协同的系统称为大系统。 然后软硬件的集成面向宏观系统。

宏观系统可以分解为多个系统。 每个系统都需要软硬件协同,每个系统还需要进一步的协同。 众多软硬件协同组成的新的软硬件交互机制就是软硬件集成。

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

从软硬件协同到软硬件集成:软硬件协同是单系统软硬件设计的方法论; 软硬件集成是一种多系统复杂计算软硬件设计的方法论。

3.3 软硬件一体化的内涵

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

软硬件集成并不改变系统层次结构和组件之间的交互关系,而是打破传统软硬件的界限,系统地、动态地重构软硬件的分工/协作,实现整体优化。

在传统的软硬件系统中,分层非常清晰:下层硬件和上层软件。 在软硬件集成的层次划分中,每个任务都是基于不同层次软硬件解耦的重新协作; 基于不同工作任务的软硬件协同,实现工作任务之间的协同。

从全局来看,整个系统呈现为:软件内有硬件,硬件内有软件,软件与硬件融为一体。

3.4 软硬件融合趋势

目前仅限于:

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

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

从宏观角度来看,在分层系统中,上层更加灵活,具有更多的软件组件,而下层更加固定,具有更多的硬件组件。 同时,随着系统规模越来越大,复杂的分层系统具有“28个规律”的特征也越来越明显。由此,很多底层工作任务逐渐稳定下来,并逐渐卸载到硬件(被动趋势)。

另外,通过软硬件一体化的架构设计,可以让“硬件”变得更加灵活、更加强大,从而将更多分层的功能卸载到“硬件”上(主动抢占)。

4 软硬件集成总结

软硬件一体化不仅是一种理论和概念,更是一种方法和解决方案。

软硬件集成系统中的各项工作任务是基于软硬件的平衡/解耦来协调的。 软硬件融合系统各工作任务之间的连接(软件之间、软件与硬件之间、硬件之间的连接)和调用具有极致的性能和灵活性。 软硬件一体化系统可以兼顾软件的灵活性和硬件的高性能,实现两者兼得。

软硬件一体化,实现CPU、GPU、DSA等多种处理引擎充分协同的异构融合计算。

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

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

软硬件一体化的意义:

(正文结束)