+-
什么是x86、ARM架构?关于树莓派的基础知识,你知道多少?

什么是指令集架构?

指令集架构(Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。

通俗点说就是,CPU架构不同,内部逻辑门电路(不知道什么是逻辑门电路?速戳《0和1的艺术,与、或、非基本逻辑门电路》)的设计就不同,指令集架构就是操作特定CPU架构下的内部逻辑门电路的一系列指令。

常见的指令集架构:

复杂指令集运算(Complex Instruction Set Computing,CISC),比如x86架构 精简指令集运算(Reduced Instruction Set Computing,RISC),比如ARM架构

x86架构和ARM架构

x86架构

学计算机组成原理的时候我们都学过,处理器由运算器、控制器、存储器组成。其底层只是一些简单的逻辑门电路。我们先来了解一下intel 8086这款处理器。

Intel 8086处理器是由英特尔公司在1976年年初开始设计,1978年年中发表的Intel第一款16位微处理器。这款处理器所有的内部寄存器、内部及外部数据总线都是16位宽,因此是完全的16位微处理器。20位外部地址总线,因此物理寻址空间为1MB (即2^20 = 1,048,576)。由于8086内部的地址寄存器是16位宽,因而最大线性寻址空间为64KB,什么是线性寻址空间,我们将稍后给出解释。使用超过64KB内存空间时,需要调整段寄存器(segment registers)。直到32位的80386出现之前,8086的这种段寻址相当不便。这种分段寻址模式,也就是我们后面要说的 实模式

x86架构即属于上面说的复杂指令集,泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。指令集架构就相当于建造房屋的图纸,指令集就是机器的语言。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。

后面我们也会看到Intel为了向前兼容所做的努力,可能也正是这种努力才成就了英特尔,通过向前兼容从而节省了庞大的人力和物力。如果不能保障向前兼容,英特尔每发布一款处理器,软件开发人员早晚得累死在电脑前。同时,也正因为向前兼容,阻碍了英特尔现在的发展, 某些方面才会被苹果的M1吊打。

ARM架构

ARM架构,称作高级精简指令集机器(Advanced RISC Machine),属于上面说的精简指令集架构,由安谋控股(ARM Holdings)开发,广泛地使用在许多嵌入式系统设计中。ARM处理器非常适用于移动通信领域,符合其主要设计目标为低成本、高性能、低耗电的特性。ARM处理器被广泛使用在消费性电子产品。

ARM架构版本从ARMv3到ARMv7支持32位空间和32位算数运算,2011年发布的ARMv8-A架构添加了对64位空间和64位算术运算的支持。ARM架构的苹果M1芯片近期更是喧嚣尘上,各种吊打Intel i9。


架构

处理器家族

ARMv1

ARM1

ARMv2

ARM2、ARM3

ARMv3

ARM6、ARM7

ARMv4

StrongARM、ARM7TDMI、ARM9TDMI

ARMv5

ARM7EJ、ARM9E、ARM10E、XScale

ARMv6

ARM11、ARM Cortex-M

ARMv7

ARM Cortex-A、ARM Cortex-M、ARM Cortex-R

ARMv8

Cortex-A35、Cortex-A50系列[14]、Cortex-A72、Cortex-A73


树莓派是什么?

树莓派就是一款基于ARM架构的单片机电脑,树莓派出生时即被寄予厚望:以低价硬件和自由软件促进学校的基本计算机科学教育。你可以把它看作一块移除了所有外设的主板,区别是树莓派提供了GPIO针脚,可以和各种传感器进行交互,具备操作硬件的能力。


基本硬件和布局

以树莓派4B为例

... 树莓派4b

CPU: 博通 Broadcom BCM2711,ARMv8架构 Cortex-A72内核 1.5GHz 四核心


内存: LPDDR4 1G/2G/4G/8G


GPIO

GPIO(General-purpose input/output)通用型输入输出,通过此接口,树莓派可以和丰富的硬件进行交互。

... GPIO针脚布局

树莓派能做什么

如果树莓派没有GPIO接口,那它就只是一个普通的ARM架构的微型电脑。有了GPIO接口,那么只有你想不到的,没有它做不到的:最基本的作为服务器、制作家庭影院、电视盒子等各种智能设备咱就不说了,接上各种各样的传感器实现自动控制,DIY机器人、无人机、智能小车等等。Golang和树莓派究竟能碰撞出什么火花,敬请持续关注。