当前位置: 代码迷 >> 综合 >> ARM的体系结构
  详细解决方案

ARM的体系结构

热度:84   发布时间:2024-01-24 16:40:26.0

电子器件的发展方向

模拟器件(模拟电视)->数字器件(数字电视)

ASIC->可编程器件

可编程器件的特点

CPU提供固定的频率(作为指令传送的频率),CPU通过总线读取外部设备中的指令集,然后解码执行。可以被CPU执行的指令集是在这个CPU生产的时候就决定他能接受什么样的二进制指令集。

整个编程及运行过程

(C语言通过C语言编译器编译成汇编语言)——程序员用汇编指令编程——汇编指令经过汇编编译器转化为二进制文件——二进制文件被CPU读进去——CPU内部电路对二进制进行解码——解好的码让CPU接收执行指令、完成指令的动作,从而控制硬件的运行。

指令集对CPU的意义

汇编语言的实质是机器指令(机器码的助记符),是一种低级语言。机器指令集是一款CPU的编程特性,是这款CPU的设计者制定的。CPU的内部电路设计就是为了实现这些指令集的功能。机器指令集就好像CPU的API接口一样。汇编语言是CPU的机器指令集的助记符,是一款CPU的本质特性,不同CPU的机器指令集设计不同,因此汇编不能在不同的CPU间互相移植。

使用汇编编程可以充分发挥CPU的设计特点,所以汇编编程效率最高,因此在操作系统内核中效率及其重要处都需要用汇编语言来出来。

RISC和CISC的区别

CISC(complex instruction set computer复杂指令集CPU)CISC体系的设计理念是用最少的指令来完成任务(譬如计算乘法只需要一条MUL指令即可),因此CISC的CPU本身设计复杂,但好处是编译器好设计CISC出现较早,至今inter还一直采用CISC设计,CISC因为电路设计的复杂很难让程序员利用来实现自己想表达的意思。

RISC(reduce instruction set computer精简指令集CPU)RICS的设计理念是让软件来完成具体的任务,CPU本身仅提供基本功能指令集。因此RICS CPU的指令集只有很少的指令,但是编译器的设计却复杂了很多。功能扩展可以使用CPU的人利用基础架构来灵活实现。

统一编址&独立编址&哈佛结构&冯诺依曼结构

什么是IO?什么是内存?内存是程序的运行场所,内存和CPU之间通过总线连接,CPU通过一定的地址来访问具体内存单元。IO(input and output)是输入输出接口、是CPU和其他外部设备(如串口、LCD、触摸屏、LED等)之间的通信道路。一般的IO就是指CPU的各种内部或外部外设。

IO的访问方式

IO指的是与CPU链接的各种外设,CPU访问各种外设有2种方式:一种是类似于访问内存的方式,即把外设的寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设,叫IO与内存的统一编址方式;另一种是使用专用的CPU指令来访问某种特定外设,叫IO与内存独立编址。

由于内存访问频率高,因此采用总线式连接,直接地址访问,效率最高。

IO与内存统一编址方式,优势是IO当作内存来访问,编程简单;去点是IO有人需要占用一定的CPU地址空间,而CPU的地址空间有限资源。

IO与内存独立编址方式,优势是不占用CPU地址空间,去点是CPU设计变得复杂了。

程序=代码+数据

程序是我们写好的源代码经过编译、汇编之后得到的机器码,这些机器码可以拿给CPU去解码执行,CPU不会也不应该去修改程序,所以程序是只读的。

数据是程序运行过程中定义和产生的变量的值,是可以读写的,程序运行实际就是为了改变数据的值。

冯诺依曼结构与哈佛结构

程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构。譬如intel的CPU均采用冯诺依曼结构。(安全稳定性是问题)

程序和数据分开独立放在不同的内存块中,彼此完全分离的结构称为哈佛结构。譬如大部分的单片(MCS51\ARM9等)均采用哈佛结构。(程序一般放在ROM、flash中)数据一般放在(RAM中)安全性高,软件出来复杂一些(需要统一规划链接地址等)

什么是寄存器

寄存器属于CPU外设的硬件组成部分,CPU可以访问内存一样访问寄存器,寄存器是CPU的硬件设计者制定的。寄存器是外设硬件的软件编程接口的API。使用软件编程控制某以硬件,其实就是编程读写该硬件的寄存器。

两类寄存器

SoC中有2类寄存器:通用寄存器和SFR

通用寄存器(ARM中有37个)是CPU的组成部分,CPU的很多活动都需要通用寄存器的支持和参与。SFR特殊功能寄存器不再CPU中,而存在与CPU的外设中,我们通过访问外设的SFR来编程操控这个外设,这就是硬件编程控制的方法。