Arm体系结构

  • Post author:
  • Post category:其他



一、arm汇编指令集对cpu的意义

1.汇编语言的实质是机器指令(机器码的助记符),是语言一种低级符号。


2.通过汇编器可以将助记符转换为机器码。

3.机器指令集是一款cpu的编程特征,是CPU的设计者制定的,CPU的内部电路设计就是为了实现这些指令集的功能,机器指令集就好像是CPU的API接口。

4.使用会变编程可以充分发挥CPU的涉及特性,所以会而然变编程的效率最高,因此在操作系统内核等对效率要求较高的地方都需要使用汇编语言进行编程,但是不同CPU的机器指令集设计不同,因此汇编程序不能在不同CPU之间进行移植,可移植性较差。


二、RISC和CISC的区别

CISC:复杂指令集CPU(Complex Instruction Set Computer),CISC的设计理念是用最少的指令来完成任务,比如只需要一条MUL指令即可完成乘法运算。因此CISC的CPU本身设计复杂,工艺复杂,功耗很高,从而使编译器的设计相对简单,CISC出现较早,Intel至今还采用CISC设计,

一般的CISC的CPU指令在300条左右

RISC:精简指令集(Reduced Instruction Set Computer),RISC的设计理念是由软件来完成具体任务,CPU本身只提供基本指令集,因此RISC CPU的指令集中只有很少的指令,ARM的CPU指令只有30条左右,所以ARM汇编的学习比较简单。相对于CISC的设计理念,CPU的设计和工艺变得简单起来,但是编译器设计的复杂性随之增加。

发展趋势:现在CPU的发展越来越趋向RISC和CISC的结合,没有单纯的CISC或者单纯的RISC,形成了一种介于两者之间的CPU。


三、CPU设计的一些基本概念

1.统一编址和独立编址

CPU是按照总线式访问内存,按照地址读写内存,而CPU访问外设有两种方式,一种是类似于访问内存的方式,即把外设的寄存器当做内存地址来读写,从而以访问内存相同的方式来操作外设,叫IO与内存统一编址;另一种是用专门的CPU指令来访问外设,称作IO与内存独立编址。

2、哈弗结构和冯诺依曼结构

冯诺依曼结构:程序和数据都存放在内存中且彼此不分离的结构称为冯诺依曼结构,程序和数据存放在一起,安全性和稳定性成为其主要的缺点;这种结构的优点是处理简单。

哈弗结构:程序和数据分开独立存放在不同的内存块中且彼此完全分离的结构称为哈弗结构。哈弗结构的程序一般存放在ROM和FLASH中,数据一般存放在ROM中,数据和程序分开独立存放,安全性和稳定性高,但是软件处理相对复杂,需要统一规划链接地址,所以嵌入式设备中一般采用哈弗结构,因为嵌入式设备对稳定性和安全性要求较高。


四、寄存器-软件编程控制硬件的关键

1.属于CPU外设的硬件的组成部分;

2.CPU可以像访问内存一样访问寄存器;

3.寄存器是CPU设计者制定的,目的是留作外设被编程控制的“活动开关”;

4.正如汇编指令集是CPU编程接口API一样,寄存器是外部设备软件编程的API,可以通过读写外部设备的寄存器来,通过软件编程控制外部设备。

5.两类寄存器:通用寄存器和特殊功能寄存器


五、内存与外存

内存

RAM(DRAM SRAM DDR).

:内部存储器,用来运行程序;

SRAM:静态内存,特点是容量少价格高,优点是不需要进行软件初始化直接上电就可以使用。

DRAM:动态内存,特点是容量大,价格低,缺点是上电后不能直接使用,需要软件初始化之后才能使用。

外存ROM(硬盘 Flash(Nand iNand……U盘 SSD)光盘):外部存储器,用来存储数据。

SoC常用外存

1.NorFlash:特点是容量少,价格高,优点是可以进行总线式访问,接到SROM bank,CPU上电后可以直接进行读取,一般用于启动介质。

2.NandFlash:特点是容量大,价格低,缺点是不能进行总线式访问,CPU上电后不能直接读取,需要先运行一些初始化软件,然后通过时序接口读写,分为SLC(成本高、容量小,可靠性强)和MLC(成本低、容量大、可靠性差,必须进行坏块检验)两种结构。

3.eMMC (embeded MMC(嵌入式 mmc))/iNand(sanDisk) /moviNand/oneNand(三星)。

4.SD卡、TF卡、MMC卡(类似于SD卡)。

5.eSSD(嵌入式固态硬盘)

6.SATA硬盘

总结:

PC机:很小容量的BOIS(NorFlash)+很大容量的硬盘(类似于NandFlash)+大容量的DRAM(CPU上电后不能直接读取,需要进行软件初始化之后才能进行读些)

嵌入式设备:因为NorFlash价格较高,所以现在的嵌入式设备不倾向于使用NorFlash,一般是SOC内置SRAM+大容量的DRAM+大容量的Nand。

单片机:因为对内存的需求量不大,为了方便编程一般采用很小容量的NorFlash+很小容量的SRAM



版权声明:本文为qq_16639741原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。