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

【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)只能直接操作寄存器

减少总线竞争

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

相关文章:

  • 关于边缘计算盒子的外部接口保护
  • Python torchvision.transforms 下常用图像处理方法
  • 计算机网络学习笔记
  • 【含文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现
  • 高防IP是如何防护DDoS攻击和CC攻击的
  • C语言教程(十四):C 语言指针详解
  • 学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、ShaderPass渲染通道),案例一
  • C语言中封装JSON数组对象
  • 使用RabbitMQ实现判题功能
  • 从入门到精通【MySQL】视图与用户权限管理
  • 大屏资源汇总
  • DS B/B+/B*树及其应用(21)
  • 电子削铅笔刀顺序图详解:从UML设计到PlantUML实现
  • JMeter 安装及使用 [软件测试工具]
  • C++ 日志系统实战第二步:不定参数函数解析
  • 经验分享 | 如何高效使用 `git commit --amend` 修改提交记录
  • 项目右键没有add as maven project选项
  • 实时步数统计系统 kafka + spark +redis
  • springboot在eclipse里面运行 run as 是Java Application还是 Maven
  • 如何创建一个父类 Maven项目,然后在父类下再创建子项目,构建多模块 Maven 项目
  • 中国经济“第一省会”广州,从传统商贸中心到直播电商第一城
  • 经济日报刊文:积极应对稳住外贸基本盘
  • 研究|和去年相比,人们使用AI的需求发生了哪些变化?
  • 河南省鹤壁市人大常委会副主任李杰接受审查调查
  • 法治日报:强制统一店铺广告牌匾事件何以频发?
  • 一季度沪苏浙皖GDP增速均快于去年全年,新兴动能持续壮大