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

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

减少总线竞争

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

相关文章:

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

文章目录 前言一、寄存器与存储器1. 定义与基本概念寄存器(Register)位置功能特点存储器(Memory)位置功能特点2. 关键区别3. 层级关系与协作存储层次结构协作示例4. 为什么需要寄存器性能优化指令支持减少总线竞争5. 其他寄存器类型专用寄存器程序计数器(PC)栈指针(SP)…...

Python中的 for 与 迭代器

文章目录 一、for 循环的底层机制示例:手动模拟 for 循环 二、可迭代对象 vs 迭代器关键区别: 三、for 循环的典型应用场景1. 遍历序列类型2. 遍历字典3. 结合 range() 生成数字序列4. 遍历文件内容 四、迭代器的自定义实现示例:生成斐波那契…...

C语言编程--15.四数之和

题目: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复)&…...

HTML、XHTML 和 XML区别

HTML、XHTML 和 XML 这三兄弟的区别 HTML: 老大哥,负责网页长啥样,性格比较随和,有点小错误也能容忍。XHTML: 二哥,看着像 HTML,但规矩严,是按 XML 的规矩来的 HTML,更规范。XML: 小弟,负责存储和传输数据,非常灵活,标签可以自己随便定,但规矩最严。它们仨长啥样?(…...

LeetCode 2799.统计完全子数组的数目:滑动窗口(哈希表)

【LetMeFly】2799.统计完全子数组的数目:滑动窗口(哈希表) 力扣题目链接:https://leetcode.cn/problems/count-complete-subarrays-in-an-array/ 给你一个由 正 整数组成的数组 nums 。 如果数组中的某个子数组满足下述条件&am…...

【高中数学/古典概率】4红2黑六选二,求取出两次都是红球的概率

【问题】 袋子里装4只红球,2只黑球,大小完全相同,抽两次球,每次抽一只,抽出后不再放回,求取出的两次都是红球的概率。 【来源】 数林外传系列之《概率与期望》P20 单埻著 中国科学技术大学出版社 【数学…...

QLExpress 深度解析:构建动态规则引擎的利器

QLExpress 深度解析:构建动态规则引擎的利器 在现代业务系统中,“规则变更快、逻辑复杂、发布要求高”已成为常态。传统硬编码已无法满足这种需求。本文以阿里巴巴开源的轻量级表达式引擎 QLExpress 为例,从实际应用、核心结构到落地建议,系统解析其强大能力和设计哲学。 …...

aarcpy 列表函数的使用(1)

arcpy.ListFeatureClasses() 该函数用于列出指定工作空间中的所有要素类。可以通过通配符和过滤条件进一步筛选结果。 语法: python arcpy.ListFeatureClasses(wild_cardNone, feature_typeNone)• wild_card:用于筛选要素类名称的通配符,…...

C++学习笔记(三十七)——STL之搜索算法

STL 算法分类: 类别常见算法作用排序sort、stable_sort、partial_sort、nth_element等排序搜索find、find_if、count、count_if、binary_search等查找元素修改copy、replace、replace_if、swap、fill等修改容器内容删除remove、remove_if、unique等删除元素归约for…...

MySQL 9.3 正式发布!备份、用户管理与开发支持迎来革命性升级

开源数据库领域的标杆产品MySQL迎来重大更新——MySQL 9.3正式发布!作为企业级数据库的“扛把子”,此次版本更新聚焦备份效率、用户管理精细化、开发支持增强三大核心领域,同时在高可用性和性能优化上实现突破。以下为你逐一解读新版本的亮点…...

FPGA上实现YOLOv5的一般过程

在FPGA上实现YOLOv5 YOLO算法现在被工业界广泛的应用,虽说现在有很多的NPU供我们使用,但是我们为了自己去实现一个NPU所以在本文中去实现了一个可以在FPGA上运行的YOLOv5。 YOLOv5的开源代码链接为 https://github.com/ultralytics/yolov5 为了在FPGA中…...

4U带屏基于DSP/ARM+FPGA+AI的电力故障录波装置设计方案,支持全国产化

4U带屏DSP/ARMFPGAAI电力故障录波分析仪,支持国产化,含有CPU主控模块,96路模拟量采集,256路开关量,通讯扩展卡等#电力故障录波#4U带屏#新能源#电力监测 主要特点 1)是采用嵌入式图形系统,以及…...

数据库数据删除与修改实验

数据库数据删除与修改实验 在数据库原理的学习中,数据的删除与修改是核心操作技能。通过“删除修改数据”实验,我系统实践了 SQL 中 UPDATE 和 DELETE 语句的多种应用场景,从基础语法到复杂业务逻辑处理,积累了丰富的实战经验。本…...

【含文档+PPT+源码】基于SpringBoot+vue的疫苗接种系统的设计与实现

项目介绍 本课程演示的是一款 基于SpringBootvue的疫苗接种系统的设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系…...

如何将IDP映射属性添加,到accountToken中 方便项目获取登录人信息

✅ 目标 你想要: 用户通过 IdP 登录(SAML 或 OAuth2)Keycloak 自动将 IdP 返回的属性(如:email、name、role 等)映射到用户账户中并把这些属性加入到用户登录返回的 Access Token 中,供业务系…...

项目自动化测试

一.设计测试用例(细致全面) 二.先引入所需要的pom.xml依赖 1.selenium依赖 2.webdrivermanager依赖 3.commons-io依赖 编写测试用例–按照页面对用例进行划分,每个页面是Java文件,页面下的所有用例统一管理 三.common包(放入公用包) 类1utils 可以调用driver对象,访问url …...

Python爬虫爬取图片并存储到MongoDB(注意:仅尝试存储一条空的示例数据到MongoDB,验证MongoDB的联通性)

以下是一个使用Python爬取图片并存储到MongoDB的示例实现,包含详细步骤说明: import requests from bs4 import BeautifulSoup from pymongo import MongoClient from datetime import datetime import os import re# 配置信息 mongoIP mongodb://root…...

Unocss 类名基操, tailwindcss 类名

这里只列出 unocss 的可实现类名&#xff0c;tailwindcss 可以拿去试试用 1. 父元素移入&#xff0c;子元素改样式 <!-- 必须是 group 类名 --> <div class"group"><div class"group-hover:color-red">Text</div> </div>2…...

Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介

Sharding-JDBC 系列专题 - 第七篇:Spring Boot 集成与 Sharding-Proxy 简介 本系列专题旨在帮助开发者全面掌握 Sharding-JDBC,一个轻量级的分布式数据库中间件。本篇作为系列的第七篇文章,将重点探讨 Sharding-JDBC 与 Spring Boot 的集成,以及 Sharding-Proxy 的基本概念…...

微服务划分的思考

为什么 微服务不是十全十美的,不是银弹,是什么原因导致必须要做微服务划分,是否有足够的动机支撑,是项目需要,还是领导的想法,公司层面是否有相应的规划。 拆分后的服务谁来维护,研发同学是否愿意参与 为什么,思考清楚了,接下来看还需要考虑怎么做 单体应用的不足…...

L1-1、Prompt 是什么?为什么它能“控制 AI”?

*Prompt 入门 L1-1 想象一下&#xff0c;你只需输入一句话&#xff0c;AI 就能自动为你写一篇文案、生成一份报告、甚至规划你的创业计划。这种“对话即编程”的背后魔法&#xff0c;就是 Prompt 的力量。 &#x1f50d; 一、Prompt 的定义与由来 Prompt&#xff08;提示词&am…...

TIM输入捕获知识部分

越往左&#xff0c;频率越高&#xff1b;越往右&#xff0c;频率越低。【越紧凑&#xff0c;相同时间&#xff0c;次数越多】 计算频率的方法&#xff1a;测评法、测周法、中界频率。 频率的定义&#xff1a;1s内出现了多少个重复的周期 测评法就是从频率的定义出发的&#…...

Ubuntu使用war包部署Jenkins并通过systemcl管理

目录 一、当前系统环境 二、安装Java 二、安装Jenkins 三、使用systemctl管理 一、当前系统环境 操作系统&#xff1a;ubuntu 24.04 Jenkins版本&#xff1a;2.506 格式&#xff1a;war JDK版本&#xff1a;OpenJDK_17 二、安装Java 1.下载jdk安装包 # wget下载 wget …...

PCB常见封装类型

1. 电阻、电容、电感封装 2. 二极管、三极管封 3. 排阻类器件&#xff08;8脚、16脚&#xff09;封装 4. SO类器件&#xff08;间距有1.27、2.54mm等&#xff09;封装 5. QFP类器件封装&#xff08;四方扁平封装&#xff09; 结构&#xff1a;引脚分布在封装的四个侧面&#…...

济南国网数字化培训班学习笔记-第二组-3节-电网工程建设项目部门

电网工程建设项目部 组成 监理项目部 履行监理合同&#xff0c;监理单位派驻&#xff1a;负责合同管理&#xff0c;审查&#xff0c;见证&#xff0c;旁站&#xff0c;巡视&#xff0c;验收&#xff0c;控制进度&#xff0c;安全&#xff0c;质量&#xff0c;协调各方 造价…...

【Linux】调试工具gdb的认识和使用指令介绍(图文详解)

目录 1、debug和release的知识 2、gdb的使用和常用指令介绍&#xff1a; &#xff08;1&#xff09;、windows下调试的功能&#xff1a; &#xff08;2&#xff09;、进入和退出&#xff1a; &#xff08;3&#xff09;、调试过程中的相关指令&#xff1a; 3、调试究竟是在…...

Vue3 ref与props

ref 属性 与 props 一、核心概念对比 特性ref (标签属性)props作用对象DOM 元素/组件实例组件间数据传递数据流向父组件访问子组件/DOM父组件 → 子组件响应性直接操作对象单向数据流&#xff08;只读&#xff09;使用场景获取 DOM/调用子组件方法组件参数传递Vue3 变化不再自…...

UML设计系列(9):开发过程中如何应用UML

传送门 UML设计系列(1)&#xff1a;状态机图 UML设计系列(2)&#xff1a;类图 UML设计系列(3)&#xff1a;时序图 UML设计系列(4)&#xff1a;用例图 UML设计系列(5)&#xff1a;系统依赖图 UML设计系列(6)&#xff1a;活动图 UML设计系列(7)&#xff1a;UML设计阶段性总…...

Linux之安装配置Nginx

Linux系统下安装配置Nginx的详细步骤如下&#xff1a; 一、准备工作 系统环境&#xff1a;确保Linux系统已安装&#xff0c;并且具有网络连接&#xff08;以便在线安装依赖或下载Nginx&#xff09;。 安装依赖&#xff1a;Nginx依赖于一些开发库和工具&#xff0c;如gcc、pcr…...

【C++】STL之deque

deque Deque 的底层既不直接依赖 vector 也不依赖 list&#xff0c;而是结合了两者的思想&#xff0c;采用了一种分块&#xff08;chunk&#xff09;存储与动态指针数组&#xff08;map&#xff09;结合的结构。以下是详细分析&#xff1a; 1. 底层结构设计 Deque 的核心设计…...