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

树莓派开发板,也是有核心处理器、主板、”硬盘”(emmc或者TF卡)、电源等组成。

计算机组成

打开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

- 本文内容来自网络,如有侵权,请联系本站处理。

2022-12   阅读(6)   评论(0)
 标签: 编程

涨知识
图灵测试

图灵测试的方法是:被测试人,和一个待测试的机器。测试时,测试人与被测试人是分开的,测试人只有以纯文本的方式向被测试人问一些问题,这些问题随便是什么问题都可以。问过一些问题后,如果测试人能够正确地分出谁是人谁是机器,那机器就没有通过图灵测试,如果测试人没有分出谁是机器谁是人,那这个机器就是有智能的。

评论:
相关文章

Small Basic 编程入门 07 - 绘制图形

在这一章节中,我们将运用前面学到的知识来做一些有趣的事。


Small Basic 编程入门 09 - 子例程(Subroutines)

在编程时我们经常遇到需要重复执行相同一组步骤的情况。这种情况下,多次重写相同的语句是不合理的。这时我们需要借助子例程。


Python Turtle库从入门到精通

本教程讲解如何使用Python turtle库进行编程,并介绍了一些非常重要的编程概念。您将知道如何处理变量初始化、循环、条件语句、缩进、列表和操作符。


少儿编程入门之Blockly Games

Blockly Games 是为没有计算机编程经验的孩子们设计的一系列学习编程的游戏。


App Inventor 编程实例及指南-第2章 油漆桶

本章介绍Canvas组件,用它来生成简单的二维(2D)图形,目标是创建一个PaintPot(油漆桶)应用,让用户在手机屏幕上绘制图画,并让用户用手机给自己拍照,然后在自己的照片上绘图。


47项!教育部公示2025-2028学年面向中小学生的全国性竞赛活动名单

9月11日,教育部官网公示了“2025—2028学年面向中小学生的全国性竞赛活动名单”,拟确定全国青少年人工智能创新挑战赛等47项竞赛为2025—2028学年面向中小学生开展的全国性竞赛活动。


NumPy图解教程

NumPy是Python中用于数据分析、机器学习、科学计算的重要软件包。它极大地简化了向量和矩阵的操作及处理。


Micro:bit MicroPython 教程 4.2 Python中的条件语句

条件语句是通过一条或多条语句的执行结果(True或者False)来决定是否执行代码块。


App Inventor 编程实例及指南-简介

本书针对零基础的编程学习者,前13章为案例教学,通过对13个简单应用的逐步讲解,学习者可以对编程的过程及基本概念有所了解,并掌握使用App Inventor编程的方法。