ARM内核的CPU架构模型

1.引言

程序员在编码的时候,如果想有进一步的提升,我认为还是要深入底层理解程序运行原理才好。最近看了一些ARM架构的讲解,总结了如下。虽然是以ARM为原型画的图形,但是对于C和C++的编程,还是有一些参考价值的。

2. ARM内核架构(硬件层面)

3.简述以上图形

程序运行起来时,会把编译后的机器码程序从flash(或硬盘中)中加载到RAM中。CPU内核中的PC寄存器指向的机器码地址,就会运行这些指令,就是汇编里常常提到的MOV,ADD,LDR等命令。这些指令的执行会使通用寄存器(R0~R15)和内存RAM产生交互。ARM的CPU处理器有7中运行模式,我们熟悉的是用户模式,其他6种模式是异常模式,每一种模式下都分别对应有自己的一套通用寄存器,当然有一些寄存器在所用模式下都是共通的。加上CPU状态寄存器,7中运行模式对应有37个通用寄存器。

  • 程序运行时,从数据交互上就是使用通用寄存器和RAM交互的过程。
  • 程序运行时随着函数调用,RAM中会有动态变化的栈产生,也有数据堆产生,数据堆中的数据资源一般在程序中会有指针指向,便于操作数据资源。
  • 内存RAM中一些高频访问的资源,为了提升访问效率,在CPU内核中会部署一些数据缓存区,分为L1,L2和L3。
相关推荐
快乐飒男3 小时前
面试题目1
c语言
Jason Yan4 小时前
【经验分享】ARM Linux-RT内核实时系统性能评估工具
linux·arm开发·经验分享
小猿_004 小时前
C语言程序设计十大排序—插入排序
c语言·算法·排序算法
肖田变强不变秃4 小时前
C++实现矩阵Matrix类 实现基本运算
开发语言·c++·matlab·矩阵·有限元·ansys
雪靡8 小时前
正确获得Windows版本的姿势
c++·windows
siy23338 小时前
[c语言日寄]结构体的使用及其拓展
c语言·开发语言·笔记·学习·算法
可涵不会debug8 小时前
【C++】在线五子棋对战项目网页版
linux·服务器·网络·c++·git
AI+程序员在路上8 小时前
C#调用c++dll的两种方法(静态方法和动态方法)
c++·microsoft·c#
安和昂9 小时前
effective Objective—C 第三章笔记
java·c语言·笔记
四念处茫茫9 小时前
【C语言系列】深入理解指针(2)
c语言·开发语言·visual studio