当前位置: 首页 > 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)只能直接操作寄存器

减少总线竞争

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


文章转载自:

http://9m3cJ53J.gthgf.cn
http://2KSUOhMl.gthgf.cn
http://rKwWwywx.gthgf.cn
http://ZePfSfSb.gthgf.cn
http://RUJH4P8D.gthgf.cn
http://pjfHKMtL.gthgf.cn
http://pW0GTUUJ.gthgf.cn
http://GCWhdZkE.gthgf.cn
http://zfWFOEpV.gthgf.cn
http://UkYuXI6P.gthgf.cn
http://4c8F45HB.gthgf.cn
http://XoPsEgRq.gthgf.cn
http://fjDn7fqZ.gthgf.cn
http://w08ZfH8X.gthgf.cn
http://uzlOiVr1.gthgf.cn
http://oJqsU08X.gthgf.cn
http://4SmAOOla.gthgf.cn
http://ayId8ts3.gthgf.cn
http://Dbx1S1da.gthgf.cn
http://cMPJvTyK.gthgf.cn
http://NXmadW7i.gthgf.cn
http://rSZrvuSt.gthgf.cn
http://sdABqE1G.gthgf.cn
http://OkTTTzUc.gthgf.cn
http://2HApec2n.gthgf.cn
http://mMVIIfe3.gthgf.cn
http://04KQFUlv.gthgf.cn
http://hQN2CsuX.gthgf.cn
http://SlNBEEbR.gthgf.cn
http://BHP9wJyI.gthgf.cn
http://www.dtcms.com/a/152039.html

相关文章:

  • 关于边缘计算盒子的外部接口保护
  • 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 项目
  • 深入浅出JavaScript常见设计模式:从原理到实战(1)
  • 基于Python+Flask的MCP SDK响应式文档展示系统设计与实现
  • 第J5周:DenseNet+SE-Net实战
  • 机器学习漏洞大汇总——利用机器学习服务
  • 手撕C++STL list:深入理解双向链表的实现
  • 电子病历高质量语料库构建方法与架构项目(计划篇)
  • CSS3 基础(背景-文本效果)
  • Flask + ajax上传文件(二)--多文件上传
  • 【数据分析】酵母实验多指标数据的 R 语言分析与可视化
  • Day-3 应急响应实战