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。
相关推荐
雍凉明月夜8 分钟前
c++ 精学笔记记录Ⅲ
c++·笔记·学习
物随心转14 分钟前
Armv7的寄存器介绍
arm开发
oioihoii22 分钟前
C++共享内存小白入门指南
java·c++·算法
布茹 ei ai23 分钟前
QtWeatherApp - 简单天气预报软件(C++ Qt6)(附源码)
开发语言·c++·qt·开源·开源项目·天气预报
Bruce_kaizy24 分钟前
c++图论————图的基本与遍历
c++·算法·图论
Zmm147258369_26 分钟前
好用的PC耐力板机构
c++
LinHenrY122726 分钟前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
l1t27 分钟前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
Code Slacker1 小时前
LeetCode Hot100 —— 普通数组(面试纯背版)(五)
数据结构·c++·算法·leetcode·面试
松涛和鸣1 小时前
34、 Linux IPC进程间通信:无名管道(Pipe) 和有名管道(FIFO)
linux·服务器·c语言·网络·数据结构·数据库