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。
相关推荐
小小龙学IT19 分钟前
Boost.Beast 深度实战:基于 Asio 的开源 C++ HTTP/WebSocket 协议库
c++·websocket·http
caimouse35 分钟前
ReactOS 图形系统分析(16):字符串对象 — STROBJ(string.c)
c语言·开发语言
不可求~1 小时前
C++ std::string_view 不是字符串:从悬空引用到安全用法
java·开发语言·c++
小小龙学IT2 小时前
C++ 正则表达式完全指南:从 std::regex 实战到 RE2 引擎原理(NFA/DFA/回溯陷阱)
c++·正则表达式
Fa_Mian_Tuan5 小时前
图论基础|邻接矩阵超详细讲解(含无向/有向/带权图+完整可运行C语言代码)
c语言·数据结构·笔记·算法·图论
码匠许师傅5 小时前
【C++ 面试真题】聊聊 C++ 的序列容器
java·c++·面试
C++ 老炮儿的技术栈5 小时前
Qt5.9.1 Windows 完整开发环境搭建流程
开发语言·c++·windows·qt·编辑器·代码化
欧特克_Glodon6 小时前
OpenCV计算机视觉开发入门与实践<十一>:矩阵的复制和矩形类Rect
c++·opencv·计算机视觉·矩阵
键盘会跳舞6 小时前
C++:std::tuple 源码级深度拆解——变参模板、SFINAE与模板元编程核心技巧
开发语言·c++·sfinae·变参模板
bkspiderx6 小时前
从零开始:VS Code搭建C/C++开发环境全指南(Windows/macOS/Linux)
c语言·c++·windows·vs code·c/c++开发环境