嵌入式芯片概念梳理 - CPU、MCU、MP、DSP、FPGA、ASIC

        CPU中央处理单元包含基本的运算单元AUL,存储单元cache等基本资源,实现硬件设备的基本控制功能。中央处理器作为一个普世概念,实际根据具体数据处理功能方向不同,细分位DSP、MCU和MP。其中DSP主要是做数据处理,MCU做无系统的简单控制功能,MP做上系统的微处理器。其中DSP主要做音视频数字信号处理,MCU做大系统芯片中的小部件控制功能,多作为边缘简单设备的微智能控制;MP主要做整个系统的集成和大型APP程序运行的地方。MPLD/FPGA是现场编程门阵列器件,最核心特点便是可编程,通过硬件编程语言随意写出需要的业务处理逻辑。GPU、NP,前者专业的图像处理单元,后者是专业的网络处理器。ASIC核心是专用,芯片的起始阶段,以上所有芯片都是ASIC中的一员,随着技术成熟和专业细分的出现,很多被广泛应用的芯片场景独立出来,便形成了如上百花齐放。当前业内所讲到的ASIC基本上指定一些功能模块独立,设计简单的小芯片,或者是某个公司根据自己对相关业务领域的理解而设计的特定功能芯片。当然这些ASIC也可以不独立生产,其核心功能以IP的形式出现在SOC中。

        目前常见的出货芯片设计都是SOC(具体原因见芯片设计这篇文章),SOC一块片子上集合了多种外部控制IC模块,包含了中央核心处理器,和边缘ASIC小的专项功能控制模块,这些控制模块一般都会根据具体功能命名。小的ASIC比方说串口控制,或者USB控制。大的ASIC模块比方说WIFI模块。对于三星这样的大厂,小的ASIC模块都可以自己进行设计完成的,对于大的ASIC模块一般会买大型公司的IP集合再芯片当中。当然对于某项专业功能需求比较高的功能模块,就会把打的ASIC模块单独做一块小芯片实现,比方说手机中复杂的电源管理,或者射频芯片。另外讲射频模块作为独立芯片划分出来,目的也是为了减少射频电路对于主芯片的干扰。

        作者之前做网络交换公司供职,做过网络处理ASIC芯片驱动和可编程网络处理器NP驱动开发工作,后期也基于FPGA芯片做过部分限速工作。其中ASIC主要是博通和marvel两家,这两家的芯片转发表象设计都是完全固定下来的,需要怎么配置也是给出了对应的SDK接口,配置按照文档说明即可。后期很快接触自研网络处理器XXP、XXX、XXX+几款可编程网络处理器芯片。可编程主要表现在微码可编程,表象可以灵活定制,功能完全可以利用处理器现有的资源进行整合。这种处理器包含x*x个硬件核,每个硬件核资源包含四项分别是报文解析存储单元(发送修改的报文也是从这里发出去),寄存器数据倒入,计算对应flag和查表结果寄存器。FPGA芯片主要用来限速,实现的功能标根据FPGA给出的硬件模块描述符完成表象功能配置和管理。

        当然嵌入式开发工作是在针对确定的产品上进行,复杂的SOC芯片增加部分外围电路形成PCB产品板。一个复杂的产品,开发涉及的任务很多,每个人只能针对这个产品上面的某个模块或者某几个模块完成开发工作。对应的变出现了招聘网站上面各种类型的工作岗位。

嵌入式芯片概念梳理 - CPU、MCU、MP、DSP、FPGA、ASIC_第1张图片

 图1. 内核 - 芯片 - 产品

        目前作者接触到的产品主要有接入网转发单板、JZ2440开发板、AI处理卡。设计的开发主要是网络转发和各种设备驱动编写工作。

你可能感兴趣的:(Linux驱动开发,物联网,iot)