如何对软硬件进行划分?
软件和硬件需要定义好交互的“接口”,通过接口实现软硬件的“解耦”。例如,对CPU来说,软硬件的接口是指令集架构ISA:ISA之下的CPU处理器是硬件,指令集之上的各种程序、数据集、文件等是软件。
软硬件划分的意思是说:需要确定好软件做什么,硬件做什么。确定软硬件做什么的过程其实就是确定指令复杂度的过程。可以这样说,指令的复杂度(单位指令的计算密度)决定了系统的软硬件解耦程度。
按照指令的复杂度,典型的处理器平台大致分为CPU、协处理器、GPU、FPGA、DSA、ASIC。如图所示:最左边,几乎是100%软件实现,CPU硬件只是一个跟业务没有必然联系的软件执行平台而已;最右边,是几乎100%的硬件,系统的业务逻辑,完全的固化成了电路实现,额外的软件控制面,只是负责硬件的运行控制而已;中间的协处理器、GPU、FPGA和DSA,则是软件做一部分,硬件做一部分。
蓝海大脑 京ICP备18017748号-1