当前位置: 首页 > news >正文

计算机底层原理:存储机制、CPU指令、函数调用全过程

一、计算机底层存储结构与数据存取机制

很多人误以为主存就是内存条,这是典型认知误区。完整的计算机主存系统拥有分层结构、专属硬件单元和固定的读写流程,是程序运行的硬件基础。

1.1 存储层次与核心硬件组件

1、主存完整构成

主存不只是内存条,由两大核心部分组成:

  • RAM(随机存取存储器):即我们常说的内存条,可读可写,断电数据丢失,用于运行时存放程序和数据。

  • ROM(只读存储器):只读不可随意写入,断电数据不丢失,主要存储计算机开机启动、硬件初始化等底层固定信息。

2、存储体与存储单元

内存条上的黑色芯片块即为存储体,每个存储体内部被划分为无数个存储单元

  • 每个存储单元拥有唯一的二进制地址,相当于内存的“门牌号”;

  • 存储单元是最小的数据存储单位,专门用于存放二进制指令或运行数据。

3、两大核心寄存器(存取核心)

CPU 与内存交互,完全依赖两个关键寄存器:

  • MAR 地址寄存器:专门存放内存单元的地址,决定要读写哪个存储单元,其位数决定了可寻址的存储单元总个数。

  • MDR 数据寄存器:专门暂存读写的数据,从内存读出的数据、要写入内存的数据都会先存在这里,其容量和存储单元大小保持一致。

1.2 数据存取完整流程(通俗快递类比)

为了方便理解,我们将内存存取数据类比为「快递存取件」,流程通俗易懂:

1、取数流程(取快递)

CPU 需要读取内存数据时,执行步骤:

  1. CPU 将目标数据的内存地址,传入 MAR 地址寄存器;

  2. MAR 根据地址完成寻址,定位到对应内存存储单元;

  3. 从对应单元读取数据,暂存到 MDR 数据寄存器;

  4. CPU 从 MDR 中取走数据,完成取数。

2、存数流程(存快递)

CPU 需要向内存写入数据时,执行步骤:

  1. CPU 将目标存储地址传入 MAR;

  2. CPU 将需要存储的数据传入 MDR;

  3. 硬件发出写入控制信号;

  4. MDR 将数据写入 MAR 指定的内存单元,完成存数。

二、CPU 核心组件与指令执行周期

CPU 是程序运行的核心,主要由运算器控制器两大部分组成,所有代码的运算、跳转、执行都依赖这两套组件协同工作。

2.1 运算器与控制器核心部件

1、运算器 ALU(负责数据计算)

主要用于算术运算、逻辑运算,包含四大核心寄存器:

  • ACC 累加器:存放运算操作数,同时保存运算后的结果,是最常用的运算寄存器;

  • MQ 乘商寄存器:专门用于乘法、除法运算,存放乘数和商值;

  • X 通用寄存器:临时存放运算操作数,辅助 ALU 完成计算;

  • ALU 算术逻辑单元:执行加减乘除、与或非等所有运算逻辑。

2、控制器(负责指令调度)

控制器是 CPU 的“指挥中心”,负责读取、解析、执行指令:

  • PC 程序计数器:存放下一条待执行指令的内存地址,核心特性是自动+1,实现指令依次执行;

  • IR 指令寄存器:存放当前 CPU 正在执行的指令;

  • CU 控制单元:解析 IR 中的指令(操作码+地址码),向硬件发送对应的控制信号。

2.2 指令周期与流水线执行机制

CPU 执行任意一条机器指令,都需要完成一个完整的指令周期,分为两大阶段:

1、取指阶段
  1. PC 中存放的指令地址传入 MAR,寻址对应内存;

  2. 从内存读取指令,存入 IR 指令寄存器;

  3. PC 自动+1,预加载下一条指令地址。

2、执行阶段
  1. CU 解析 IR 中的操作码(执行什么操作)和地址码(操作哪个数据);

  2. 控制运算器、内存等硬件完成对应操作(读写、计算、跳转)。

3、PC 加1核心机制

PC 自动加1操作发生在取指阶段,配合流水线技术,CPU 可以在执行当前指令的同时,预加载下一条指令地址,大幅提升指令执行效率,这也是程序能够连续执行的底层核心。

三、程序执行流程与函数调用机制

我们编写的高级语言代码,无法直接被 CPU 识别,需要经过多层转换,同时函数的嵌套调用、递归执行,都依赖栈机制实现。

3.1 高级语言到机器语言的转换全过程

1、语言层级转换关系

高级语言是人类可读的代码,机器语言是 CPU 唯一能识别的二进制指令,转换链路如下:

高级语言(C/Java/JS)→ 编译器编译 → 汇编语言 → 汇编器转换 → 机器语言(二进制)

汇编语言作为中间层,可读性差、逻辑性弱,但完全贴合计算机硬件,是连接代码与硬件的桥梁。

2、程序执行本质

所有程序本质都是指令 + 数据的集合:

  • 代码编译后,指令和数据统一存入内存;

  • CPU 通过 PC 循环获取指令地址,重复「取指-执行」流程,实现程序持续运行。

3.2 函数调用与栈帧切换底层原理

函数调用、嵌套、递归,全部依赖栈(Stack)实现,核心是栈帧的创建、切换与销毁。

1、栈帧核心指针
  • EBP 栈基指针:指向当前函数栈帧的底部,固定栈帧起始位置;

  • ESP 栈顶指针:指向当前栈帧的顶部,随数据压栈、出栈动态移动。

每一个函数在调用时,都会在栈空间中开辟一个独立的栈帧,用于存放函数局部变量、参数、返回地址等数据。

2、Call / Ret 核心指令机制

这是函数调用和返回的底层核心指令:

  • Call 调用指令:执行函数调用时,先将当前程序的返回地址(旧IP值)压入栈中保存,再跳转到目标函数的指令地址执行;

  • Ret 返回指令:函数执行完毕后,从栈中弹出之前保存的返回地址,恢复 PC(IP)指针,回到上一层函数继续执行。

3、现场保护与恢复

为了保证函数嵌套调用后,上层程序数据不丢失,需要做现场保护与恢复:

  • 调用函数前:通过Push 指令将 EBP 等寄存器数据压栈保存,保护现场;

  • 函数返回前:通过Pop 指令弹出栈中数据,恢复寄存器状态,完成现场还原;

这也是函数嵌套调用不会错乱、递归程序可以正常回溯的底层原理。

四、全文总结

1、计算机存储核心:主存由 RAM+ROM 组成,依靠 MAR、MDR 实现内存数据精准读写,所有数据交互都遵循「寻址-读写-返回」的固定流程。

2、CPU 执行核心:运算器负责数据计算,控制器负责指令调度,通过「取指-执行」循环、流水线预加载,实现指令高效执行。

3、程序运行核心:高级语言逐层编译为二进制机器码,依托内存存储指令数据;函数调用基于栈帧实现,通过 Call/Ret、压栈出栈完成上下文切换。

http://www.jsqmd.com/news/965216/

相关文章:

  • 从libusb到libuvc:手把手教你为自定义USB摄像头写个简易驱动
  • 你的鼠标指针太无聊了?用Mousecape在Mac上实现光标自由
  • 5G物联网项目实战:从SUPI签约到DNN配置,一个完整的用户开户流程详解
  • DeFi 协议开发实战:从 Uniswap V2 恒定乘积公式 x * y = k 到自定义 AMM 流动性池算子实现
  • 一个人,一套软件,300个快手店铺:我把月人力成本从5万压到了7千
  • librosa:Python 音频分析的标配工具
  • 2026年近期安徽地区电缆封堵有机堵料厂家选择全攻略 - 2026年企业资讯
  • 利用快马平台快速生成mcjscc网页版代码原型,十分钟搭建可交互前端界面
  • AI的下一场战争:从算力到存力
  • 简单的仓库管理系统
  • 避开反向传播的‘坑’:Hinton论文里没明说,但新手必知的5个训练细节
  • 2026年选粉机好用吗,三分离选粉机的优势有哪些? - 工业品牌热点
  • 2026年百度代理商品牌排名,山东热门口碑佳 - myqiye
  • 2026年东莞有实力的项链直销厂家选择策略与重点推荐 - 2026年企业资讯
  • CSDN AI GEO内容格式不是可选项,是准入门槛:来自平台架构师的内部PPT节选(含4级格式校验流程图)
  • 保姆级教程:用QGIS 3.28切好瓦片,再用CesiumJS 1.107一步调用成功
  • Java语言程序开发笔记
  • 2026年百度代理商服务口碑排名,山东热门等公司上榜 - myqiye
  • Android风险环境检测 —— 签名校验
  • 靠谱的耐辐射镜头厂家
  • 2026年仿古面砖性价比排名,古瓦园林上榜 - 工业品牌热点
  • 股票代码命名规则大揭秘:从000001平安银行到900957凌云B股,一文看懂A/B股、创业板、科创板代码规律
  • 五无工程检测鉴定技术解析:自建房安全排查/钢结构安全检测/五无工程检测鉴定/屋顶光伏安全检测鉴定/工程质量检测鉴定/选择指南 - 优质品牌商家
  • 西门子S7:西门子CPU模块、西门子PLC模块销售、西门子S71200模块、西门子S71500模块、西门子S7200模块选择指南 - 优质品牌商家
  • 2026房屋抗震检测技术解析:房屋结构鉴定、承载力专项检测鉴定、抗震性专项检测鉴定、校舍安全鉴定、灾后房屋质量检测选择指南 - 优质品牌商家
  • 避开ANSYS SOLID65钢筋定义的坑:从实常数R/RMORE到材料TB,完整配置流程详解
  • 2026年Q2西门子集成控制柜可靠品牌排行盘点:西门子S71500模块、西门子S7200模块、西门子集成控制柜选择指南 - 优质品牌商家
  • 从QDialog的默认行为说起:深入理解Qt模态对话框的设计哲学与最佳实践
  • 从瓦格纳的“怪杰”性格,聊聊技术圈那些才华与争议并存的“大神”们
  • 2026年国内消光比测试仪主流品牌实力排行:声光调制器/多模光衰减器/多通道光功率计/插回损测试仪/波长可调谐激光器/选择指南 - 优质品牌商家