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

【壹】嵌入式系统硬件基础

随手拍拍💁‍♂️📷


日期: 2023.2.28
地点: 杭州
介绍: 日子像旋转毒马🐎,在脑海里转不停🤯
在这里插入图片描述

🌲🌲🌲🌲🌲 往期回顾 🌲🌲🌲🌲🌲
【前言】嵌入式系统简介
🔗 https://blog.csdn.net/ws15168689087/article/details/128970435
【壹】嵌入式系统体系结构
🔗 https://blog.csdn.net/ws15168689087/article/details/128985587
【贰】嵌入式系统的分类
🔗 https://blog.csdn.net/ws15168689087/article/details/129083859

文章目录

    • 随手拍拍💁‍♂️📷
    • 👨‍🏫内容1:嵌入式硬件系统的基本结构
    • 👨‍💻内容2:CISC和RISC
    • 👨‍🎓内容3:信息存储的字节顺序
    • 👨‍🎨内容4:硬件层存储器

在这里插入图片描述


👨‍🏫内容1:嵌入式硬件系统的基本结构


🎃与通用计算机相比:
👉嵌入式硬件系统的基本结构与其相同。
👉此外,嵌入式硬件系统的基本结构具有品种多,体积小,成本低,集成度高的特点
在这里插入图片描述
🎯控制单元的作用:

  • 1️⃣取指、译码和取操作数等

  • 2️⃣发送主要的控制指令

🎯控制单元的构成:

  • 1️⃣程序计数器(Program Counter, PC)
    –👉记录下一条指令在内存中的位置,以便控制单元能到正确的内存位置取指
  • 2️⃣指令寄存器(Instruction Register,IR)
    –👉存放被控单元所取的指令,译码—控制信号—算数逻辑单元处理

🚀算数逻辑单元的作用:

  • 1️⃣算数运算+逻辑运算

  • 2️⃣存储暂时性数据,从存储器中取数据(给算数逻辑单元)和处理后数据(算数逻辑单元)

🚁冯·诺依曼体系结构&哈佛体系结构:
🔎区别:
👉冯: 8086系列的CPU, ARM系列, MIPS系列
👉哈:MC68 系列,ARM9,ARM10,ARM11 在这里插入图片描述

🌻🌻🌻🌼🌼🌼🌺🌺🌺🌼🌼🌼🌻🌻🌻

👨‍💻内容2:CISC和RISC


🎃前言
👉指令系统朝两个截然不同的方向的发展:

  • 1️⃣增强原有指令的功能,设置更为复杂的新指令实现软件功能的硬化,这类机器称为复杂指令系统计算机(CISC)

  • 2️⃣减少指令种类和简化指令功能,提高指令的执行速度,这类机器称为精简指令系统计算机(RISC)

🎯CISC(复杂指令系统计算机)
👉随着VLSI 技术的发展,硬件成本不断下降,软件成本不断上升,促使人们在指令系统中增加更多、更复杂的指令,以适应不同的应用领域,这样就构成了复杂指令系统计算机(CISC).
💁‍♀️CISC的主要特点:

  • 1️⃣指令系统复杂庞大,指令数目一般为200条以上。

  • 2️⃣指令的长度不固定,指令格式多,寻址方式多。

  • 3️⃣可以访存的指令不受限制。

  • 4️⃣各种指令使用频度相差很大。

  • 5️⃣各种指令执行时间相差很大,大多数指令需多个时钟周期才能完成。

  • 6️⃣控制器大多数采用微程序控制。有些指令非常复杂,以至于无法采用硬连线控制。

  • 7️⃣难以用优化编译生成高效的目标代码程序。


👉如此庞大的指令系统,对指令的设计提出了极高的要求,研制周期变得很长。后来人们发现,一味地追求指令系统的复杂和完备程度不是提高计算机性能的唯一途径。
🤚对传统CISC指令系统的测试表明,各种指令的使用频率相差悬殊,大概只有20%的比较简单的指令被反复使用,约占整个程序的80%;而80%左右的指令则很少使用,约占整个程序的20%。
👇从这一事实出发,人们开始了对指令系统合理性的研究,于是RISC随之诞生。

🎯RISC(精简指令系统计算机)
👉精简指令系统计算机(RISC)的中心思想是要求指令系统简化,尽量使用寄存器-寄存器操作指令,指令格式力求一致。
👇RISC的主要特点如下:

  • 1️⃣选取使用频率最高的一些简单指令,复杂指令的功能由简单指令的组合来实现。

  • 2️⃣指令长度固定,指令格式种类少,寻址方式种类少。

  • 3️⃣只有Load/Store(取数/存数)指令访存,其余指令的操作都在寄存器之间进行。

  • 4️⃣CPU中通用寄存器的数量相当多。

  • 5️⃣RISC一定采用指令流水线技术,大部分指令在一个时钟周期内完成。

  • 6️⃣以硬布线控制为主,不用或少用微程序控制。

  • 7️⃣特别重视编译优化工作,以减少程序执行时间。


👉值得注意的是,从指令系统兼容性看,CISC大多能实现软件兼容,即高档机包含了低档机的全部指令,并可加以扩充。但RISC简化了指令系统,指令条数少,格式也不同于老机器,因此大多数RISC机不能与老机器兼容。
🤚由于 RISC具有更强的实用性,因此应该是未来处理器的发展方向。但事实上,当今时代Intel 几乎一统江湖,且早期很多软件都是根据CISC 设计的,单纯的RISC将无法兼容。
👉此外,现代 CISC结构的CPU已经融合了很多RISC的成分,其性能差距已经越来越小。CISC可以提供更多的功能,这是程序设计所需要的。

🎯CISC和RISC的比较
👇和CISC相比,RISC的优点主要体现在以下几点:

  • 1️⃣1) RISC更能充分利用VLSI 芯片的面积。CISC 的控制器大多采用微程序控制,其控制存储器在CPU芯片内所占的面积达50%以上,而RISC控制器采用组合逻辑控制,其硬布线逻辑只占CPU芯片面积的10%左右。

  • 2️⃣2) RISC 更能提高运算速度。RISC 的指令数、寻址方式和指令格式种类少,又设有多个通用寄存器,采用流水线技术,所以运算速度更快,大多数指令在一个时钟周期内完成。

  • 3️⃣RISC便于设计,可降低成本,提高可靠性。RISC指令系统简单,因此机器设计周期短;其逻辑简单,因此可靠性高。

  • 4️⃣RISC有利于编译程序代码优化。RISC 指令类型少,寻址方式少,使编译程序容易选择更有效的指令和寻址方式,并适当地调整指令顺序,使得代码执行更高效化。


在这里插入图片描述

🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡🤡

👨‍🎓内容3:信息存储的字节顺序


🎯字节
👉最小的可寻址的存储单元
👉每个字节用唯一的数字标识,即地址(address)
👉通常8位构成1个字节


🧭字长
👉表明整数和指令数据的大小
👉字长表明处理器寻址能力(如32位处理器一次处理4个字节)
👉n位字长,寻址:0-2n-1

🏭多字节的数据存储问题
👉Little-Endian低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
👉Big-Endian高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
👉例:32位字长微处理器定义int 常量a ,地址:0x8000 十六进制:0x01234567


👻小端存储法

地址数据(十六进制)数据(二进制)
0x80000x6701100111
0x80010x4501000101
0x80020x2300100011
0x80030x01000000001

👻大端存储法

地址数据(十六进制)数据(二进制)
0x80000x0100000001
0x80010x2300100011
0x80020x4501000101
0x80030x6701100111
🙈🙈🙈🙈🙈🙈🙈🙈🙈🙈🙈🙈

👨‍🎨内容4:硬件层存储器


🏟️高速缓存(CACHE)
👉优势:微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。
👉工作原理:高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。
👇特点:

  • 1️⃣容量小,速度快的存储器陈列

  • 2️⃣主存和嵌入式处理器内核之间

  • 3️⃣存放最近处理器使用最多的代码和数据 – 数据Cache 、指令Cache、混合Cache

  • 4️⃣大小由处理器而定


🏛️随机存储器(Random Access Memory,RAM) :
👉RAM能够随时在任一地址读出或写入内容
👉RAM的优点是读/写方便,使用灵活
👉RAM的缺点是不能长期保存信息,一旦停电,所存信息就会丢失
👉RAM用于二进制信息的临时存储或缓存存储

在这里插入图片描述


🏰只读存储器(Read-Only Memory,ROM):
👉ROM中存储的数据可以被任意读取,断电后,ROM中的数据仍保持不变,但不可以写入数据
👉ROM在嵌入式系统中非常有用,常常用来存放 (如ROM BIOS)、 等不随时间改变的代码或数据。
👉ROM存储器按发展顺序可分为:掩膜ROM、可编程ROM(PROM)和可擦写可编程ROM(EPROM)。

🏆混合存储器
👉合存储器既可以随意读写,又可以在断电后保持设备中的数据不变。混合存储设备可分为三种:
👉EEPROM、NVRAM、FLASH

🏀EEPROM:
👉EEPROM是电可擦写可编程存储芯片
👉EPROM是紫外线擦除存储芯片
👉EEPROM允许用户以字节为单位多次用电擦除和改写内容,而且可以直接在机内进行,不需要专用设备,方便灵活,常用作对数据、参数等经常修改又有掉电保护要求的数据存储器

🏓NVRAM:
👉NVRAM通常就是带有后备电池的SRAM
👉当电源接通的时候,NVRAM就像任何其他SRAM一样,但是当电源切断的时候
👉NVRAM从电池中获取足够的电力以保持其中现存的内容
👉NVRAM在嵌入式系统中使用十分普遍,它最大的缺点是价格昂贵,因此,它的应用被限制于存储仅仅几百字节的系统关键信息

Flash:
👉Flash(闪速存储器,简称闪存)是不需要Vpp电压信号的EEPROM,一个扇区的字节可以在瞬间(与单时钟周期比较是一个非常短的时间)擦除
👉Flash比EEPROM优越的方面是,可以同时擦除许多字节,节省了每次写数据前擦除的时间,但一旦一个扇区被擦除,必须逐个字节地写进去,其写入时间很长

🤿NOR技术:
👉NOR技术闪速存储器是最早出现的Flash Memory,目前仍是多数供应商支持的技术架构,它源于传统的EPROM器件
👉与其它Flash Memory技术相比,具有可靠性高、随机读取速度快的优势,但擦除和写的速度较NAND慢
👉在擦除和编程操作较少而直接执行代码的场合,尤其是代码(指令)存储的应用中广泛使用
👉由于NOR技术Flash Memory的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR 技术显得力不从心


🥊NAND技术:
👇NAND技术 Flash Memory具有以下特点:

  • 1️⃣以页为单位进行读和编程操作,1页为256或512字节;以块为单位进行擦除操作,1块为4K、8K或16K字节

  • 2️⃣具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms

  • 3️⃣数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程

  • 4️⃣芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,突破了每兆字节0.1元的价格限制

🎯各种存储器特性的比较:
在这里插入图片描述

相关文章:

【壹】嵌入式系统硬件基础

随手拍拍💁‍♂️📷 日期: 2023.2.28 地点: 杭州 介绍: 日子像旋转毒马🐎,在脑海里转不停🤯 🌲🌲🌲🌲🌲 往期回顾 🌲🌲&#x1f332…...

当参数调优无法解决kafka消息积压时可以这么做

今天的议题是:如何快速处理kafka的消息积压 通常的做法有以下几种: 增加消费者数增加 topic 的分区数,从而进一步增加消费者数调整消费者参数,如max.poll.records增加硬件资源 常规手段不是本文的讨论重点或者当上面的手段已经使…...

Java线程池源码分析

Java 线程池的使用,是面试必问的。下面我们来从使用到源码整理一下。 1、构造线程池 通过Executors来构造线程池 1、构造一个固定线程数目的线程池,配置的corePoolSize与maximumPoolSize大小相同, 同时使用了一个无界LinkedBlockingQueue存…...

手撕八大排序(下)

目录 交换排序 冒泡排序: 快速排序 Hoare法 挖坑法 前后指针法【了解即可】 优化 再次优化(插入排序) 迭代法 其他排序 归并排序 计数排序 排序总结 结束了上半章四个较为简单的排序,接下来的难度将会大幅度上升&…...

SAP 详细解析SCC4

事务代码:SCC4,选择一个客户端,点击进入,如图: 一、客户端角色 客户控制:客户的角色(生产性,测试,...) 此属性表示 R/3 系统中的客户端角色。其中可能包括…...

java异常分类和finally代码块中return语句的影响

首先看一下java中异常相关类的继承关系: 引用 1、分类 异常可以分为受查异常和非受查异常,Error和RuntimeException及其所有的子类都是非受查异常,其他的是受查异常。 两者的区别主要在: 受检的异常是由编译器(编译…...

【链表OJ题(二)】链表的中间节点

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(二)1. 链表…...

【强烈建议收藏:MySQL面试必问系列之并发事务锁专题】

一.知识回顾 上节课我们一起学习了MySQL面试必问系列之事务,没有学习的同学可以看一下上一篇文章,肯定对你会有帮助,学习过的同学肯定知道,上节课我们留了一个小尾巴,这个小尾巴是什么呢?就是没有详细展开…...

Linux下使用Makefile实现条件编译

在Linux系统下Makefile和C/C语言都有提供条件选择编译的语法,就是在编译源码的时候,可以选择性地编译指定的代码。这种条件选择编译的使用场合有好多,例如我们开发一个兼容标准版本与定制版本兼容的项目,那么,一些与需…...

java 应用cpu飙升(超过100%)故障排查

前言害。。。昨天刚写完一份关于jvm问题排查相关的博客,今天线上项目就遇到了一个突发问题。现象是用户反映系统非常卡,无法操作。然后登录服务器查看发现cpu 一直100%以上。具体排查步骤:1,首先top命令查看服务器cpu等情况&#…...

光学设计软件Ansys的Lumerical 2023版本下载与安装使用

文章目录前言一、许可管理工具安装二、许可管理器配置三、Lumerical安装四、工具使用配置总结前言 Lumerical是一款功能强大的软件,用于设计和分析从组件到系统阶段的光子学和电磁学。这个版本的Lumerical改进了电子和光子学设计工具,用于复杂光子学&am…...

Java 异常

文章目录1. 异常概述2. JVM 的默认处理方案3. 异常处理之 try...catch4. Throwable 的成员方法5. 编译异常和运行异常的区别6. 异常处理之 throws7. 自定义异常8. throws 和 throw 的区别1. 异常概述 异常就是程序出现了不正常的情况。 ① Error:严重问题&#xff…...

JavaSE学习笔记day17

零、 复习昨日 File: 通过路径代表一个文件或目录 方法: 创建型,查找类,判断类,其他 IO 输入& 输出字节&字符 try-catch代码 一、作业 给定路径删除该文件夹 public static void main(String[] args) {deleteDir(new File("E:\\A"));}// 删除文件夹public s…...

【项目】Vue3+TS 动态路由 面包屑 查询重置 列表

💭💭 ✨:【项目】Vue3TS 动态路由 面包屑 查询重置 列表   💟:东非不开森的主页   💜: 热烈的不是青春,而是我们💜💜   🌸: 如有错误或不足之处&#xff0…...

前脚背完这些接口自动化测试面试题,后脚就进了字节测试岗

1、请结合你熟悉的项目,介绍一下你是怎么做测试的? -首先要自己熟悉项目,熟悉项目的需求、项目组织架构、项目研发接口等 -功能 接口 自动化 性能 是怎么处理的? -第一步: 进行需求分析,需求评审&#…...

termux 安装centos

相关链接 centos官网rootfs制作其他人提供的安装脚本centos镜像列表其他人提供的安装脚本的说明 如果想使用老版本的centos7跟着上面链接5走就行 如果想用新系统比如centos9 stream,就跟我来 Q:为什么要装新系统? A:旧系统太多软件已过时,升级费时费…...

从菜鸟程序员到高级架构师,竟然是因为这个字final

final实现原理 简介 final关键字,实际的含义就一句话,不可改变。什么是不可改变?就是初始化完成之后就不能再做任何的修改,修饰成员变量的时候,成员变量变成一个常数;修饰方法的时候,方法不允…...

【vulhub漏洞复现】CVE-2018-2894 Weblogic任意文件上传漏洞

一、漏洞详情影响版本weblogic 10.3.6.0、weblogic 12.1.3.0、weblogic 12.2.1.2、weblogic 12.2.1.3WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应…...

函数栈帧详解

写在前面 这个模块临近C语言的边界,学起来需要一定的时间,不过当我们知道这些知识后,在C语言函数这块我们看到的不仅仅是表象了,可以真正了解函数是怎么调用的。不过我的能力有限,下面的的知识若是不当,还…...

Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)

文章目录1. 事务的定义2. Spring 中事务的实现2.1 MySQL 中使用事务2.2 Spring 中编程式事务的实现2.3 Spring 中声明式事务2.3.1 声明式事务的实现 Transactional2.3.2 Transactional 作用域2.3.3Transactional 参数设置2.3.4 Transactional 异常情况2.3.5 Transactional 工作…...

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

LangFlow技术架构分析

🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...