专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
问北京  ·  不翼而飞?“得有十四五年了在这儿……” ·  17 小时前  
问北京  ·  不翼而飞?“得有十四五年了在这儿……” ·  17 小时前  
哎咆科技  ·  3.14 ... ·  昨天  
福州日报  ·  质量安全不合格案例!索尼、LV、Jellyc ... ·  昨天  
51好读  ›  专栏  ›  新机器视觉

芯片详细讲解,从而区分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU

新机器视觉  · 公众号  · 硬件 科技自媒体  · 2025-03-15 12:35

主要观点总结

本文主要介绍了芯片的概念结构,将芯片比作银行,阐述了其不同的结构和分类。接着介绍了通用芯片和定制芯片的区别,并详细描述了定制芯片中的FPGA、ASIC等类型的特点和应用场景。此外,还介绍了芯片之上的集成如MCU、SOC、ECU等概念,以及软硬件的匹配设计在自动驾驶等领域的重要性。文章通过生动的比喻和具体的实例,帮助读者更好地理解芯片的工作原理和应用。

关键观点总结

关键观点1: 芯片的概念和结构

文章通过银行作比,解释了芯片的结构和分类,包括冯·诺依曼结构、哈弗结构、改进哈弗结构等。

关键观点2: 通用芯片和定制芯片的区别

文章介绍了通用芯片和定制芯片在设计和应用上的不同,强调了两者在灵活性与效率上的权衡。

关键观点3: 定制芯片的类型和特点

文章详细描述了FPGA和ASIC等定制芯片的类型和特点,以及它们在处理不同业务场景时的优势和适用性。

关键观点4: 芯片之上的集成概念

文章介绍了MCU、SOC、ECU等集成方式,以及它们在自动驾驶等领域的应用。

关键观点5: 软硬件的匹配设计的重要性

文章强调了软硬件匹配设计在自动驾驶等领域的重要性,以及不同芯片和算法需求下的最优组合方式。


正文



芯片的概念结构


打个比方,假如芯片是一个“银行”,这个银行很小就两个人。

一个负责拨算盘(计算),其他它都不管。


一个负责记录文档(存储),把“算什么?”(数据)和“咋么算?”(程序)都完整的用文档记录下来,方便和拨算盘的人沟通。


他们之间定义了一个沟通方式(一组总线),内容包括了“文档从哪里取?放回哪里?”(寻址总线)和“文档具体内容是什么?”(数据总线)两大部分,换句话说,一组总线包括一个地址总线和一个数据总线。特别注意这里的总线上的“数据”对应着一份文档,不要和文档里 “算什么?”的这个数据概念混淆了。

当下芯片结构是复杂的,但简单划分就三种概念结构。冯.诺依曼结构,哈弗结构和改进哈弗结构。


冯.诺依曼结构: 客户把原始的需求文档(包含输入数据和程序)交给负责记录的人后,根据定义的沟通方式,和负责实际计算的人一起反复来回的传递文档(拿程序指令,拿数据,返结果),最后把最终的计算结果通过记录的人反馈给客户。上面这种分工思路就是冯.诺依曼结构的核心,关键的特点就是客户只用和一个记录人员沟通就行,再复杂的需求都可以一股脑的给一个人,剩下的都是他们之间的事。整个过程非常灵活,这也是冯.诺依曼结构的最大优势。这种结构下程序指令存储地址和数据存储地址指向同一存储器的不同物理位置,因此程序指令和数据的宽度相同。但这种方式效率不高,因为记录的人每个时刻只能干一件事,要么告诉拨算盘的人咋么算,要么告诉它算什么。


哈弗结构:因此出现了哈佛结构,将程序指令和数据分开存储,指令和数据可以有不同的数据宽度。采用了独立的一组程序总线和一组数据总线。这就相当于原来2个人,现在三个人,记录员分了个工,一个就负责记录传递计算方法(程序),一个人就负责记录传递计算内容(数据)。两个人和拨算盘的人点对点沟通,但相互之间老死不往来。这种并行化自然提高了效率,原来要至少两个周期做完的事,一个周期就搞定了。可这种方法让客户要同时对应2个毫无联系的记录员这非常不友好。且如果需求侧重点不同,两个人的工作量常常不均衡导致浪费,如果由一个人担当(冯.诺依曼结构),这些问题都不存在。


改进哈弗结构:为了解决这个平衡问题出现了改进哈弗结构。它只有一组总线供程序存储器和数据存储器分时共用。原来的哈佛结构需要4条(2组)总线,改进后需要两条(1组)总线,且保留了两个独立并行的存储器。也就是说,记录员还是为了效率做了分工,但沟通方式升级,走上了“敏捷之路”。不再是两两沟通的老国企做派,把客户和拨算盘的人也加入进来做了个四方沟通会(分时公用),归口统一保证了灵活性,同时分时也对并行化影响不大。


芯片的派系划分


接着我们聊下芯片的分类,梳理分类首先要区分芯片的两个大类:


通用芯片(CPU, GPU, DSP等)和定制芯片(FPGA, ASIC等),这个大类划分很重要,两者有本质上的不同。同样用银行做比喻,通用芯片就是“银行柜员”而定制芯片就是“ATM机”。


通用芯片


通用芯片关键是“通用”二字,这意味着其必须具备处理各式各样千奇百怪的指令要求,并且经常同时存在多个外部设备的请求,它必须拥有随时中止目前的运算转而进行其他运算,完成后再从中断点继续当前运算的能力。就好比银行柜员,客户要办的业务千奇百怪,时常还来个缺德的插队骂娘或者站着位置不走撩你两下的人存在。柜员都要应对。而为了做到这一点通用芯片有复杂的控制取指译码流程,Cache内存分级机制(缓和高速CPU与低速内存的临时指令存储器),真正的计算单元ALU只占了通用芯片不大的一部分,更多设计是为了灵活性存在的,在计算效率和通用性上的权衡上牺牲前者选择后者。


当我们在讨论芯片结构的时候更多的是在讨论通用芯片的结构,是在讨论说满足客户变化需求的时候,哪种“人员组织形式和沟通方式”是最高效的。


定制芯片


而定制芯片就是完全的另一个概念,虽然它也有结构思想在里面,但是就像你不会去讨论一个程序的“人员组织架构”一样,在这种芯片里根本就没有时序中断,取指译码这些为了灵活性而设计的概念。相比通用芯片,定制芯片是没有“人性”的,就是一个ATM机,其给客户定义了清晰的操作流程,省去了中断等大量灵活性设计,撩小姐姐的一套对机器人是不成立。


打个比方,比如一个比大小的逻辑用冯诺依曼结构的CPU至少需要几条指令完成,但用FPGA就根本不用考虑时序周期,只要串联几个逻辑单元,在一个周期就搞定了。但如果再增加几个逻辑,CPU还是在相同逻辑资源下用几个指令完成,但是FPGA 就需要额外占用另一部分逻辑资源完成计算。再比如FPGA和GPU(GPU是通用芯片)在并行化上有类似的思想,但两者实际没有多少可比性,你不会把三个柜员的办理通道和ATM机理存在在三个恰好并行的流程做比较一样。还有人在信号处理效率上把DSP和FPGA拿出来对比,我觉得这些零零种种的比较都没有太大意义。为灵活性存在的“人”(通用芯片),和为效率存在的“机器”(定制芯片)是两个维度的事情,不要从性能上去强行比较。


从这里我们可以大致看出来,两者的几个重要差异。定制芯片是对已经固化的业务进行降本增效,就像银行用ATM机,代替成本更高的柜员处理一些常规银行业务。而通用芯片是为了对一些无法或者暂时没有固化的业务作出的灵活设计。两者没有优劣之分。


通用芯片(CPU,MPU,GPU,DSP)


CPU和MPU可以简单理解为一个概念,只是理解范畴上的区别。


CPU和GPU之间的区别更多的是核的数量。


CPU虽然有多核,但基本不超过两位数,每个核都有足够大的缓存和足够多的数字和逻辑运算单元,并有更复杂的逻辑判断硬件,就像银行里常备的3-4个柜台的柜员,擅长处理客户很复杂的业务。


而GPU的核数远超CPU,每个核拥有的缓存大小相对小,数字逻辑运算单元也少而简单,更像是500多个电话客服柜员,处理一些相对简单但数量众多的客户业务。


DSP(数字信号处理芯片)是一类特殊的CPU,采用了上面说的哈佛结构,且存在专用的硬件算法电路和专门的寻址模式。它具有通用芯片设计的灵活性,但在实时运算过程中很少变化,因此特化了业务流程的性能(记录和计算过程)。就像是某个办理“外汇存取”的专业柜台会部署一些特化的柜员和流程。DSP对于专用信号(视频编解码,通讯信号)的处理能力远远的优于一般CPU。当然普通柜台也可以处理展业柜台的业务,但性价比就很差了,如果需求很多开设专门的柜台就变得有意义,这些还是和客户需求有关。用DSP处理专门的信号流常具有执行时间可控,芯片性价比高等优点。


定制芯片(FPGA,ASIC)


讲完了通用芯片,定制芯片也有两个主要方向,FPGA和ASIC。两者核心的区别就是固化程度。FPGA仍然具有一定的灵活性(但远逊于通用芯片),而ASIC则是完成固化的设计(也存在和FPGA类似的部分编辑的产品存在)。类似可以编程的ATM机和完全固化的ATM机,两者区别最大的维度还是成本和功耗。







请到「今天看啥」查看全文