ARM技术论坛
直播中

emitter

5年用户 1883经验值
擅长:可编程逻辑 存储技术
私信 关注
[经验]

什么是微架构?了解ARM内核中的处理器和注册文件

了解ARM内核的微体系结构,包括寄存器文件的说明及其在处理器中的功能。
在本文中,我们将定义什么是微体系结构。我们还将说明什么是ARM寄存器文件以及它在处理器的微体系结构中的位置。
本文旨在为下一篇文章提供基础信息,在本文中,我们将介绍汇编的基础知识,并展示一些使用Raspberry Pi编写的32位ARM内核的基本汇编指令。

什么是微架构?
微体系结构(有时写为“微体系结构”)是允许执行指令集的数字逻辑。它是寄存器,存储器,算术逻辑单元,多路复用器和任何其他数字逻辑块的组合实现。所有这些共同构成了处理器。
微体系结构与指令集体系结构(ISA)相结合,构成了系统的整体计算机体系结构。不同的微体系结构可以实现相同的ISA,但是需要在功率效率或执行速度等方面进行权衡。最基本的处理器将包括一个寄存器文件,一个ALU,系统存储器和一个控制单元,该控制单元使处理器可以根据其执行的指令来做出决定。

ARM寄存器文件
要对数据执行操作,需要有一个临时存储该数据的地方。这就是处理器的注册文件的用途。寄存器文件是一堆寄存器,用于存储临时值并对这些值执行操作。在寄存器之外,可以检索数据并将其存储在计算机的内存中。虽然这是一个较慢的操作,但是与可用的相对较少的寄存器相比,可以在内存中存储的内容更多。寄存器文件通常以SRAM的形式出现。
让我们以32位ARM内核为例。在这种情况下,我们将重点介绍32位ARMV7指令和32位寄存器。
32位或4字节的数量对应于ARM指令集中的一个字。ARM寄存器文件包含十六个用于执行指令的寄存器。还存在状态寄存器来存储有关操作结果的信息,并允许处理器根据该结果做出决定。

注册符号
寄存器用字母R和数字表示。
  • R0–R3用于存储临时值或变量,但在子例程调用中也起作用。
  • R4–R12是通用的。
  • R13或SP是堆栈指针。堆栈指针包含一个内存地址,程序可以在该内存中存储以后需要检索的信息。
  • R14是链接寄存器,与分支指令一起使用以返回程序中的上一个位置。
  • R15,称为PC为p rogram Ç ounter,存储下一个指令的地址被执行。这给PC带来了巨大的责任,因为它可以控制处理器上执行的指令。在PC上输入错误的值,您的程序可能会突然停止运行;这通常称为崩溃。

注册标志
所述current program status register(CPSR),前面提到的,包含大量的标记,可以是当集的指令执行的。
这些标志是N,Z,C和V标志:
  • N代表n负数,并在指令结果为负数时使用。
  • Z对Zero,当结果为零。
  • C代表Carry并且在进位输出被设定的指令结果时。
  • V代表Overflow和发生溢出时被设置。
为了检查这些标志,在编写汇编代码时,某些条件后缀(在后面的文章中讨论)会附加到指令中。

处理器的一部分:数据路径和控制单元
尽管我们不会详细介绍设计ARM处理器的细节(也许在以后的文章中),但最好能基本了解寄存器文件适合运行我们的指令的系统的位置。下面的图1是处理器的高度简化框图。
寄存器文件包含处理器的当前状态,并且ALU和内存与该状态交互。内存分为多个部分。其中包含正在执行的指令列表(汇编程序);另一个保存程序将使用的数据。所有这些组件以及绿色突出显示的行构成了处理器的数据路径。
数据路径包含执行正在实施的ISA中所有指令所需的所有内容。但是数据路径如何知道要执行哪个操作?

图1.高度简化的处理器
数据路径上方是控制单元。控制单元解释在每个指令中找到的操作码(操作码)和条件码,以打开或关闭数据路径内的路由。控制单元使处理器能够根据当前从内存中读取的指令执行不同的操作。控制单元和数据路径共同构成了CPU或中央处理单元。
添加允许CPU与其他组件交互的内存就形成了我们所谓的处理器。


现在我们对微体系结构有了基本的了解,在下一篇文章中,我们将介绍用于对32位ARM内核进行编程的基本汇编代码指令。

如何编写用于使用Raspberry Pi编程32位ARM内核的汇编指令


更多回帖

发帖
×
20
完善资料,
赚取积分