SoC和CPU的区别

SoC和CPU的区别解析
本文介绍了SoC和CPU的区别。SoC是系统级芯片,集成各种功能模块,可运行操作系统;CPU是计算机运算和控制核心。如今几乎没有纯粹的CPU,多为SoC,CPU通过外部总线连接外设构成SoC,不同公司会定制所需控制器。

SoC和CPU的区别


原文:http://www.360doc.com/content/18/0511/21/10211009_753202773.shtml 

  SOC(System on Chip),指的是片上系统,MCU只是芯片级的芯片,而SOC是系统级的芯片,它既MCU(51,avr)那样有内置RAM,ROM同时又像MPU(arm)那样强大的不单单是放简单的代码,可以放系统级的代码,也就是说可以运行操作系统(将就认为是MCU集成化与MPU强处理力各优点二合一)。

  SOC,是个整体的设计方法概念,它指的是一种芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,然后在SOC内由电路实现的;每一个模块不是一个已经设计成熟的ASIC“器件”,只是利用芯片的一部分资源去实现某种传统的功能。

  这种功能是没有限定的,可以是存储器,当然也可以是处理器,如果这片SOC的系统目标就是处理器,那么做成的SOC就是一个MCU;

 

  CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高 速 缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。所谓的计算机的可编程性主要是指对CPU的编程。

  CPU就是中央处理单元,它负责把数据读入计算并输出。所以,无论什么时候谈到CPU,一定是数据的处理和计算部分,这是必须要满足的基本要求。

  之所以你们会发生混淆,是因为你们不知道,除了数据处理,还有什么其他部分。简单来说,CPU除了内部的Cache和指令存储器和一些缓冲,就没有什么可供存储数据和指令的了。所以,对于程序来说,运行时候需要的代码数据都是在内存里面的,CPU从内存里面把数据和代码取出来放到Cache里面,再从Cache里取出需要的数据。

  同样,内存容量是有限的,如果找不到数据,就要从硬盘里面或者nandflash进行数据读取,或者直接读取,或者拷贝到DDR里面再进行读取,这取决于这些硬件的结构了

  但是,每种架构CPU的指令是固定的,指令不会区分什么具体的DDR或者nand的架构,所以,我们需要内存控制器、硬盘控制器、nand控制器,也就是所谓的外围IP,通常,如果Cache不命中,如果需要从内存读取数据,这条访问指令就会被内存控制器获取,它进行分析后会把相应的数据从内存颗粒里面读出来发回给CPU。如果是nand的,它有自己的寄存器,可以通过对寄存器操作来实现数据的读取,这些数据仍然由控制器送给CPU。类似还有网络控制器之类的,CPU的命令都是要由这些控制器去具体实施的。

  一个CPU的外部端口都会有地址总线和数据总线,我们选择一种总线,把CPU和这些外围IP连起来,让CPU可以和这些IP进行通讯,完成数据的计算和输入输出,这样就变成了一个具有实际意义的系统了。

  SoC和CPU的区别:

  o - 介词,小写

  SC- 名词,大写

  1.1 SoC(System on Chip): 称为系统级芯片,也称为片上系统,意指它是一个产品,是一个有专有目标的集成电路,其中包含完整系统并嵌入软件的全部内容。

  1.2 CPU = 运算器 + 控制器,现在几乎没有纯粹的CPU了,都是SoC.

  1.3 芯片的发展从CPU 到SoC

  1.4 外设(外部设备):即除CPU之外的其他部件,如LCD控制器,UART,Nand控制器。。.CPU通过外部总线将各种外部设备连接起来构成SoC.

  1.5. 比如ARM公司生产的就是CPU,他将自己的所生产的CPU设计卖给其他公司,而其他公司就根据ARM提供的CPU自己添加上自己所需要的各种外设控制器,这就是SoC.

  1.6. 不同的公司所用的控制器不一定是相同的,因为不同的公司需要的性能不一样,就会想半导体公司定制他需要的控制器。

  1.7. 日常工作生活中,惯说的CPU说的就是SoC,就像内存有NandFlash和普通内存一样。

  1.8. 我们学习裸机程序就是学习CPU和各种外设控制器间的相互操作。

 

在现代电子系统中,CPU、MCUSoC是常见的计算平台类型,它们在结构、功能应用场景上各有侧重。 CPU(Central Processing Unit)是指中央处理器,是计算机系统中最核心的部件,负责执行指令处理数据。传统的CPU通常是一个独立的芯片,具备强大的通用计算能力,但需要搭配外部的内存、存储其他外围设备才能构成完整的系统。这种架构使其适用于高性能计算领域,如服务器、个人计算机工作站[^1]。 MCU(Microcontroller Unit),即微控制器单元,是一种将CPU、RAM、ROM、定时器、计数器以及I/O接口等计算机基本功能集成在单一芯片上的嵌入式系统芯片。MCU的设计目标是实现低成本、低功耗高可靠性,适合用于控制任务较为简单的应用场景,如家电控制、汽车电子、工业自动化等。典型的MCU包括8051、AVR、Cortex-M系列等[^4]。 SoC(System on Chip),即片上系统,是一种高度集成的芯片架构,它不仅包含CPU,还集成了GPU、DSP、内存控制器、通信模块(如Wi-Fi、蓝牙)、显示控制器等多种功能模块。SoC的设计理念是将整个系统的功能集成在一个芯片上,从而实现更小的体积、更低的功耗更高的性能。这类芯片通常用于智能手机、平板电脑、智能电视、智能音箱等复杂系统中,支持运行Linux、Android等操作系统,例如高通骁龙系列、华为麒麟系列I.MX6ULL等[^3]。 从集成度来看,CPU是基本的处理单元,MCU是将CPU及其基本外围设备集成在一起的芯片级解决方案,而SoC则是在更高层次上集成整个系统的芯片[^2]。 ### 性能与应用场景对比 | 类型 | 集成度 | 性能 | 功耗 | 成本 | 典型应用场景 | |------|--------|------|------|------|----------------| | CPU | 低 | 高 | 高 | 高 | 个人电脑、服务器、高性能计算 | | MCU | 中 | 中低 | 低 | 低 | 嵌入式系统、家电控制、传感器节点 | | SoC | 高 | 高 | 中低 | 中高 | 智能手机、平板、智能穿戴、IoT设备 | ### 示例代码:MCU与SoC的启动流程差异 MCU(如Cortex-M)的启动流程较为简单,通常只需初始化堆栈指针跳转到主函数即可: ```c void Reset_Handler(void) { // 初始化堆栈指针 __set_MSP(*((uint32_t*)0x00000000)); // 调用主函数 main(); } ``` 而SoC(如运行Linux的ARM Cortex-A)则需要加载Bootloader(如U-Boot),初始化DDR内存、时钟、电源管理等模块,然后加载操作系统内核: ```bash # U-Boot示例命令 setenv bootargs 'console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootwait' load mmc 0:1 0x8000 zImage bootz 0x8000 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值