动手学树莓派第2章:近距离看看计算机硬件体系结构

计算机组成

打开PC机机箱,发现一台PC机主要有核心处理器CPU、内存条、主板、硬盘、电源、显卡等组成。

开拆手机或者看看咱们的树莓派开发板,也是有核心处理器、主板、”硬盘”(emmc或者TF卡)、电源等组成。那计算机可以做到手机或者树莓派这么小,台式PC机还有存在的必要吗?

当然有必要,他们的差别就在对数据的处理能力上,这个处理能力主要由核心处理器CPU决定。

核心处理器的分类

按指令集划分:CISC(复杂指令集计算机)和RISC(精简指令集计算机)。

按体系架构划分:x86(intel、AMD)、ARM、PowerPC、MIPS、RISC-V等。x86-CISC,ARM-RISC。复杂指令集追求最高处理能力、精简指令集追求低功耗。指令集说白了就是硬件单元,例如乘法运算,复杂指令集包含乘法器,汇编中一条指令就完成了乘法,计算时间短;而精简指令集,汇编中会翻译成多条加法和移位运算,所以计算时间就长;但快是要付出代价的,就是硬件成本高、功耗高。当然在具体的架构实现上,会彼此借鉴对方的优点。

按处理器一次最多能处理的数据位数划分:8位(80c51)、16位(MSP430)、32位(ARM9-AT91SAM9G45)、64位(ARM_Cortex-A53-BCM2837)。

MIPS——让中国真正意义上实现了自主可控(龙芯系列处理器)。龙芯是真正意义上掌握住MIPS指令集,而不是可以使用MIPS提供的硬核。就像linux给你提供全套源码,同时免费使用;但windows可以想办法免费使用,但你看不见源码,谁知道里面有什么猫腻。

RISC-V——中国CPU架构的“曙光”。开源、授权费很低、吸取前人的优点、面向物联网。RISC-V就像软件里的linux,提供所有指令集源码,可以做到真正的掌握“核心科技”。但RISC-V还年轻,到底在工业现场表现如何,还需要时间来检验。

ARM——现在已经把我们包围了,基本能触碰到智能设备,基本都是ARM处理器。但芯片厂商能生产ARM处理器并不代表,能自行修改ARM指令集,苹果就是在ARM指令集的基础上,修改成苹果的A系列处理器;但像三星,就是购买了ARM的硬核(可以类比成为软件里的windows系统),在硬核基础上自行添加UART、DDR控制器等外设封装成一枚芯片(可以类比为软件里的自行开发的软件),硬核里面什么样,臣妾不知道啊(就微软知道他的windows里什么样)。

NXP公司imx6q处理器原理组成框图

本来想给出树莓派3B+上使用的BCM2837处理器原理组成框图,但搜遍全网找不到,后来得知,这是定制款,官方提供片上外设操作地址空间和寄存介绍。

imx6q片内原理构成理论上跟BCM2837一致。

(1)4个Cortex-A9内核(Cortex-A系列——高性能、Cortex-R系列——高安全、Cortex-M系列——低成本)。
(2)AXI和AHB总线与片上外设相连,高速片上外设直接连接至AXI和AHB总线上,低速设备在通过APB总线连至高速总线上。对于每一种总线,都有好几条,CPU通过总线访问外设,由总线控制器仲裁某个CPU是否有资格使用该条总线访问外设(纯硬件实现)。
(3)局部性原理:时间局部性、空间局部性,加速程序运行。
(4)imx6q包含丰富的片上外设。在再没有接触zynq系统SOC之前,感觉这种SOC就够了。

芯片手册查询网站

芯片还是从官网查询是最最准确的,但有时在官网里不好找,下面推荐一个网站,基本满足你日常芯片查询。
https://alldatasheet.com/

zynq系列内部组成

zynq内部分为PS端和PL端。PS端就是CPU端,与刚刚介绍的imx6q基本一致;PL端就是逻辑单元端。

zynq有什么优势?
(1)片上部分硬核外设既可以由PS端控,可以有PL端控制。但一旦PS端控制了,PL端就不能控制,同理,PL端控制了,PS端就不能控制。这些硬核外设由谁控制,芯片上电运行的FPGA配置文件决定。
(2)片上硬核不够用了怎么办?例如,你需要10各uart控制器,这时你可以用PL端逻辑资源来搭uart控制。

zynq这么好,有什么缺点吗?
(1)太贵了、功耗大。可以比较下一片如此强大的imx6q多少钱,一片zynq7020多少钱。
(2)开发门槛太好,一般人hold不住。

课程 bilibili 视频地址:https://www.bilibili.com/video/av71878718/?p=4

返回课程目录

课程 gitee 地址:https://gitee.com/shirf_taste_raspi/shirf_serial_share