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

【KWDB 创作者计划】_嵌入式硬件篇---寄存器与存储器截断与溢出


文章目录

  • 前言
  • 一、寄存器与存储器
    • 1. 定义与基本概念
      • 寄存器(Register)
        • 位置
        • 功能
        • 特点
      • 存储器(Memory)
        • 位置
        • 功能
        • 特点
    • 2. 关键区别
    • 3. 层级关系与协作
      • 存储层次结构
      • 协作示例
    • 4. 为什么需要寄存器
      • 性能优化
      • 指令支持
      • 减少总线竞争
    • 5. 其他寄存器类型
      • 专用寄存器
        • 程序计数器(PC)
        • 栈指针(SP)
        • 状态寄存器
      • 通用寄存器
    • 6. 存储器的分类
      • 主存
      • 辅存
      • 只读存储器
    • 7.总结
  • 二、截断&溢出
    • 1. 截断(Truncation)
      • 定义
      • 发生场景
      • 特点
    • 2. 溢出(Overflow)
      • 定义
      • 发生场景
        • (1)整数溢出(Integer Overflow)
        • (2)浮点数溢出(Float Overflow)
      • 特点
    • 3. 截断 vs 溢出的关键区别
    • 4. 如何避免截断和溢出
      • 避免截断
      • 避免溢出
    • 5. 总结
      • 截断
      • 溢出


前言

本文简单介绍了寄存器和存储器的区别以及截断与溢出。在计算机中,截断(Truncation)溢出(Overflow)都是由于数值存储空间有限而导致数据精度或范围问题,但它们的产生原因和影响有所不同。下面详细寄存器与存储器,截断与溢出的区别:


一、寄存器与存储器

1. 定义与基本概念

寄存器(Register)

位置

位置:位于CPU内部,是CPU核心的一部分

功能

功能:用于临时存储指令、数据或地址,直接参与运算(如算术逻辑单元ALU的操作)。

特点

特点:速度极快,容量极小,由触发器(Flip-Flop)实现无延迟访问

存储器(Memory)

位置

位置:位于CPU外部,通过总线与CPU连接

功能

功能:存储程序、数据及中间结果,分为主存(如RAM)辅存(如硬盘)

特点

特点:速度较慢,容量大,按地址访问,需要时钟周期延迟。

2. 关键区别

特性 寄存器 存储器(主存,如RAM)
速度 最快(与CPU同频,1个时钟周期) 较慢(需通过总线访问,延迟高
容量 极小(通常几字节到几百字节) 极大(GB级甚至TB级
物理位置 CPU内部 CPU外部(主板或芯片组上)
访问方式 直接通过指令操作(如MOV AX, BX) 通过地址总线/数据总线(如LOAD/STORE)
成本 极高(占用CPU芯片面积) 较低(单位容量成本低
用途 暂存操作数、地址或控制信息 存储程序、数据及运行时状态
功耗 高(高频访问) 相对较低(但动态RAM需刷新

3. 层级关系与协作

存储层次结构

寄存器 → 高速缓存(Cache) → 主存(RAM) → 辅存(硬盘/SSD)
速度递减,容量递增,成本递减。

协作示例

CPU从内存加载数据到寄存器 → 在寄存器中运算结果写回内存
例如:

MOV EAX, [0x1000]  ; 从内存地址0x1000加载数据到寄存器EAX
ADD EAX, 1         ; 在寄存器中执行加法
MOV [0x1000], EAX  ; 将结果存回内存

4. 为什么需要寄存器

性能优化

性能优化:寄存器提供零延迟访问,避免CPU因等待内存数据而停滞

指令支持

指令支持:许多CPU指令(如ADD、CMP)只能直接操作寄存器

减少总线竞争

减少总线竞争:频繁访问内存会导致总线拥堵,寄存器缓解此问题。

http://www.xdnf.cn/news/1536.html

相关文章:

  • 2025 年免费 Word 转 PDF 转换器有哪些?
  • 【RocketMq源码篇-01】环境搭建、基本使用、可视化界面
  • Java中正则表达式使用方法
  • Java发展史及版本详细说明
  • JVM性能优化之老年代参数设置
  • 深入浅出学会函数(上)
  • ArcGIS Pro跨图层复制粘贴
  • mongo客户端操作mongodb记录
  • 【Python爬虫实战篇】--Selenium爬取Mysteel数据
  • 堆和二叉树--数据结构初阶(3)(C/C++)
  • K8S学习路线图:从入门到精通的技术成长指南
  • STM32 串口USART
  • unity使用iTextSharp生成PDF文件
  • AI时代的能力重构与终身进化
  • 1.1 java开发的准备工作(入门)
  • day4 pandas学习
  • Java面试场景篇:MCP使用场景与实现详解
  • 【⼆分查找】⼆分查找(easy)
  • RBAC权限-笔记
  • mybatis高级查询:一对多配置,一次性查出主表和子表中的数据
  • 《楞严经》中“魔”与魔王波旬的关联性分析
  • 《系统分析师-第三阶段—总结(五)》
  • 【Java学习】Windows安装Noj4库及java集成详细步骤
  • 夏季跑步注意
  • IP地址与子网掩码
  • 问题:raw.githubusercontent无法访问
  • 【Redis】哈希类型Hash 常用命令详解
  • 【白雪讲堂】GEO优化第6篇 内容中台的搭建:GEO优化的中控神经系统
  • 【Java学习日记25】:带返回值的方法
  • Vue生命周期详细解析