系统架构设计师①:计算机组成与体系结构

系统架构设计师①:计算机组成与体系结构

计算机结构

计算机的组成结构可以概括为以下几个主要部分:中央处理器(CPU)、存储器(包括主存和外存)、输入设备、输出设备,以及控制器、运算器、总线和输入/输出控制器等关键组件。
在这里插入图片描述

CPU组成

CPU由运算器和控制器组成。

运算器:
①算术逻辑单元ALU:数据的算术运算和逻辑运算
②累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
③数据缓冲寄存器DR:写内存时,暂存指令或数据
④状态条件寄存器PSW:存状态标志与控制标志(争议:也有将其归为控制器的)

控制器:
①程序计数器PC:存储下一条要执行指令的地址
②指令寄存器IR:存储即将执行的指令
③指令译码器ID:对指令中的操作码字段进行分析解释
④时序部件:提供时序控制信号

存储系统

主流存储系统分为冯·诺依曼结构和哈佛结构。

冯·诺依曼结构

冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

特点:
(1)一般用于PC处理器,如I3,I5,I7处理器
(2)指令与数据存储器合并在一起
(3)指令与数据都通过相同的数据总线传输

哈佛结构

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

特点:
(1)一般用于嵌入式系统处理器(DSP)数字信号处理(DSP,DigitalSignalProcessing)
(2)指令与数据分开存储,可以并行读取,有较高数据的吞吐率
(3)有4条总线:指令和数据的数据总线与地址总线

层次化存储结构

按照存储速度划分存储器可分为寄存器、Cache、内存、外存。
其速度排列如下图所示:(存取速度越快,其硬件成本越高)
在这里插入图片描述

Cache(高速缓存)存在的目的是为了解决CPU和内存速度不匹配的问题

Cache

Cache的功能:提高CPU数据输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储系统间数据传送带宽限制。

在计算机的存储系统体系中,Cache是访问速度最快的层次。
Cache对程序员来说是透明的。
使用Cache改善系统性能的依据是程序的局部性原理。
①时间局部性
②空间局部性

时间局部性:指程序中的某条指令一旦执行,不久以后该指令可能再次执
行,典型原因是由于程序中存在着大量的循环操作(如for循环中的i变量)。

空间局部性:指一旦程序访问了某个存储单元,不久以后,其附近的存储
单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范
围内,其典型情况是程序顺序执行(如数组的遍历)。

工作集理论:工作集是进程运行时被频繁访问的页面集合。

Cache计算公式

如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则:

t3=h*t1+(1-h)*t2          /* 其中,(1-h)又称为失效率(未命中率) */

主存编址

存储单元

存储单元个数=最大地址-最小地址+1

1字节(Byte)= 8位(bit):这是计算机存储单位的基础换算关系,字节是数据存储的基本单位,而位是计算机中最小的存储单元。

32位系统:1字 = 32位 = 4字节
64位系统:1字 = 64位 = 8字节

编址内容
按字编址:存储体的存储单元是字存储单元,即最小寻址单位是一个字
按字节编址:存储体的存储单元是字节存储单元,即最小寻址单位是一个字节

总容量=存储单元个数*编址内容

根据存储器所要求的容量和选定的存储芯片的容量,就可以计算出所需的芯片总数,即:

总片数=总容量/每片的容量

磁盘基本结构与存取过程

磁盘管理

磁盘结构如图所示:
在这里插入图片描述

存取时间=寻道时间+等待时间

寻道时间:磁头移动到磁道所需的时间;
等待时间:等待读写的扇区转到磁头下方所用的时间

读取磁盘数据的时间包括以下三个部分
①找磁道的时间。
②找块(扇区)的时间,即旋转延迟时间。
③传输时间。

平均存取时间(Average Access Time),是指磁头找到指定数据的平均时间。
平均存取时间是指磁头找到指定数据的平均时间,通常它是硬盘平均寻道时间和平均潜伏时间(等待时间)之和。
平均存取时间最能代表硬盘找到某一数据所用的时间,数值越小越好。

平均访问时间=平均寻道时间+平均等待时间

磁盘移臂调度算法

先来先服务(FCFS, First Come First Serve)
定义:FCFS是最简单的调度算法,按照作业提交或进程变为就绪状态的先后次序,分派CPU。当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。
优点:有利于CPU繁忙的作业,而不利于I/O繁忙的作业。
缺点:比较有利于长作业,而不利于短作业,因为长作业会长时间占据处理机。

最短寻道时间优先(SSTF, Shortest Seek Time First)
定义
SSTF选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。
优点:SSTF算法的平均每次磁头移动距离明显低于FCFS的距离,具有较好的寻道性能。
缺点:不能保证平均寻道时间最短,且有可能产生饥饿现象,即磁头有可能在一个小区域内来回来去地移动,导致某些磁道的请求长时间得不到服务。

扫描算法(SCAN)
定义:
SCAN算法,又称电梯算法,磁头按一个方向移动,直到遇到最远的请求,然后返回磁盘的另一端。
优点:可以平均分配磁盘访问的时间,避免磁头频繁地改变移动方向,减少了磁头的移动距离和寻道时间。
缺点:对于各个位置磁道的响应频率不平均,可能会导致某些磁道的请求长时间等待。

循环扫描算法(CSCAN, Circular SCAN)
定义:

CSCAN是对SCAN算法的一种改进。它规定磁头只做单向移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
优点:减少了磁头的移动次数和寻道时间,提高了磁盘访问效率,同时避免了SCAN算法中磁头频繁改变移动方向的问题。
缺点:在某些情况下,仍然可能存在磁道请求长时间等待的问题,但相较于SCAN算法,这种情况有所改善。

数据传输控制方式

程序控制(查询)方式:分为无条件传送和程序查询方式两种。
方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率。

程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。

DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效。

(DMAC向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过DMAC通知I/O接口开始DMA传输。)

其他方式:
通道方式
I/O处理机

总线

总线:是一组能为多个部件分时共享的公共信息传送线路
特点
①共享
②分时:是指同一时刻仅允许一个部件向总线发送信息,但允许多个部件同时从总线上接受相同的信息。
③分为串行总线(适合长距离传输)与并行总线(适合近距离连接,不宜过长)
④通信方式分为单工、半双工与全双工

总线宽度与总线带宽
总线的分类:
数据总线(Data Bus,DB):在CPU与RAM之间来回传送需要处理或是需要储存的数据。
地址总线(Address Bus,AB):用来指定在RAM(Random Access Memory)之中储存的数据的地址。
控制总线(ControlBus,CB):将微处理器控制单元(ControlUnit)的信号,传送到周边设备。

CISC与RISC

复杂指令集计算机(CISC,ComplexInstruction Set Computers)
精简指令集计算机(RISC,ReducedInstruction Set Computers)
在这里插入图片描述

流水线

流水线是指:在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。
各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度

在这里插入图片描述
流水线计算公式:一条指令执行时间+(指令条数-1)*流水线周期
①理论公式:(t1+t2+…+tk)+(n-1)*t在这里插入图片描述

②实践公式:k*t+(n-1)*t在这里插入图片描述
流水线周期:
在这里插入图片描述
一条指令的执行过程可以分解为取指、分析和执行三步

流水线的相关性能计算

**流水线的吞吐率(Though Putrate,TP)**是指在单位时间内流水线所完成的任务数量或输出的结果数量。
计算流水线吞吐率的最基本的公式如下:
在这里插入图片描述

流水线最大吞吐率:(占用周期最长的那一步所使用的时间的倒数)
在这里插入图片描述
流水线的加速比:
定义:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之
比称为流水线的加速比。
计算流水线加速比的基本公式如下:(加速比一定大于一)
在这里插入图片描述

校验码

奇偶校验码

奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。

奇校验:整个校验码(有效信息位和校验位)中“1”的个数为奇数。
偶校验:整个校验码(有效信息位和校验位)中“1”的个数为偶数。

奇偶校验,可检查1位的错误,不可纠错。

循环校验码CRC

CRC的编码方法是:在k位信息码之后拼接r位校验码。应用CRC码的关键是如何从k位信息位简便地得到r位校验位(编码),以及如何从k+r位信息码判断是否出错。

CRC校验,可检错,不可纠错

循环冗余校验码编码规律如下
① 把待编码的N位有效信息表示为多项式M(X);
② 把M(X)左移K位,得到M(X)*X的K次方,这样空出了K位,以便拼装K位余数(即校验位)
③ 选取一个K+1位的产生多项式G(X),对M(X)*X的K次方做模2除;
④ 把左移K位以后的有效信息与余数R(X)做模2加减,拼接为CRC码,此时的CRC码共有N+K位。

把接收到的CRC码用约定的生成多项式G(X)去除,如果正确,则余数为0;如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有唯一的对应关系。

总结:
在这里插入图片描述

嵌入式-芯片分类

主流嵌入式芯片分为DSP、Soc、MPU和MCU等。
如下图所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1486122.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

下拉菜单过渡

下拉过渡&#xff0c;利用Y轴的transform&#xff1a;scaleY(0) —》transform&#xff1a;scaleY(1) 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8" /><meta name"viewport" cont…

C2W3.Assignment.Language Models: Auto-Complete.Part1

理论课&#xff1a;C2W3.Auto-complete and Language Models 文章目录 1 Load and Preprocess Data1.1: Load the data1.2 Pre-process the dataExercise 01.Split data into sentencesExercise 02.Tokenize sentencesExercise 03Split into train and test sets Exercise 04H…

2024.7.22 作业

1.将双向链表和循环链表自己实现一遍&#xff0c;至少要实现创建、增、删、改、查、销毁工作 循环链表 looplinklist.h #ifndef LOOPLINKLIST_H #define LOOPLINKLIST_H#include <myhead.h>typedef int datatype;typedef struct Node {union {int len;datatype data;}…

K8S 部署peometheus + grafana 监控

安装说明 如果有下载不下来的docker镜像可以私信我免费下载。 系统版本为 Centos7.9 内核版本为 6.3.5-1.el7 K8S版本为 v1.26.14 动态存储&#xff1a;部署文档 GitHub地址 下载yaml 文件 ## 因为我的K8S 版本比较新&#xff0c;我下载的是当前的最新版本&#xff0c;你的要…

【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选

今年&#xff0c;“串串房”一词频繁引发广大网友关注。“串串房”&#xff0c;也被称为“陷阱房”“贩子房”——炒房客以低价收购旧房子或者毛坯房&#xff0c;用极度节省成本的方式对房子进行装修&#xff0c;之后作为精修房高价租售&#xff0c;因甲醛等有害物质含量极高&a…

自动驾驶---视觉Transformer的应用

1 背景 在过去的几年&#xff0c;随着自动驾驶技术的不断发展&#xff0c;神经网络逐渐进入人们的视野。Transformer的应用也越来越广泛&#xff0c;逐步走向自动驾驶技术的前沿。笔者也在博客《人工智能---什么是Transformer?》中大概介绍了Transformer的一些内容&#xff1a…

昇思MindSpore 应用学习-K近邻算法实现红酒聚类-CSDN

K近邻算法实现红酒聚类-AI代码解析 本实验主要介绍使用MindSpore在部分wine数据集上进行KNN实验。 1、实验目的 了解KNN的基本概念&#xff1b;了解如何使用MindSpore进行KNN实验。 2、K近邻算法原理介绍 K近邻算法&#xff08;K-Nearest-Neighbor, KNN&#xff09;是一种…

传神社区|数据集合集第7期|法律NLP数据集合集

自从ChatGPT等大型语言模型&#xff08;Large Language Model, LLM&#xff09;出现以来&#xff0c;其类通用人工智能&#xff08;AGI&#xff09;能力引发了自然语言处理&#xff08;NLP&#xff09;领域的新一轮研究和应用浪潮。尤其是ChatGLM、LLaMA等普通开发者都能运行的…

类和对象:完结

1.再深构造函数 • 之前我们实现构造函数时&#xff0c;初始化成员变量主要使⽤函数体内赋值&#xff0c;构造函数初始化还有⼀种⽅ 式&#xff0c;就是初始化列表&#xff0c;初始化列表的使⽤⽅式是以⼀个冒号开始&#xff0c;接着是⼀个以逗号分隔的数据成 员列表&#xf…

嵌入式C/C++、FreeRTOS、STM32F407VGT6和TCP:智能家居安防系统的全流程介绍(代码示例)

1. 项目概述 随着物联网技术的快速发展,智能家居安防系统越来越受到人们的重视。本文介绍了一种基于STM32单片机的嵌入式安防中控系统的设计与实现方案。该系统集成了多种传感器,实现了实时监控、报警和远程控制等功能,为用户提供了一个安全、可靠的家居安防解决方案。 1.1 系…

c++ 高精度加法(只支持正整数)

再给大家带来一篇高精度&#xff0c;不过这次是高精度加法&#xff01;话不多说&#xff0c;开整&#xff01; 声明 与之前那篇文章一样&#xff0c;如果看起来费劲可以结合总代码来看 定义 由于加法进位最多进1位&#xff0c;所以我们的结果ans[]的长度定义为两个加数中最…

【Linux】HTTP 协议

目录 1. URL2. HTTP 协议2.1. HTTP 请求2.2. HTTP 响应 1. URL URL 表示着是统一资源定位符(Uniform Resource Locator), 就是 web 地址&#xff0c;俗称“网址”; 每个有效的 URL 可以通过互联网访问唯一的资源, 是互联网上标准资源的地址; URL 的主要由四个部分组成: sche…

如何查看jvm资源占用情况

如何设置jar的内存 java -XX:MetaspaceSize256M -XX:MaxMetaspaceSize256M -XX:AlwaysPreTouch -XX:ReservedCodeCacheSize128m -XX:InitialCodeCacheSize128m -Xss512k -Xmx2g -Xms2g -XX:UseG1GC -XX:G1HeapRegionSize4M -jar your-application.jar以上配置为堆内存4G jar项…

广州邀请媒体宣传(附媒体名单)

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 广州地区 媒体邀约&#xff1a; 记者现场采访&#xff0c;电视台到场报道&#xff0c;展览展会宣传&#xff0c;广交会企业宣传&#xff0c;工厂探班&#xff0c;媒体专访等。 适合广州…

自监督学习在言语障碍及老年语音识别中的应用

近几十年来针对正常言语的自动语音识别&#xff08;ASR&#xff09;技术取得了快速进展&#xff0c;但准确识别言语障碍&#xff08;dysarthric&#xff09;和老年言语仍然是一项极具挑战性的任务。言语障碍是一种由多种运动控制疾病引起的常见言语障碍类型&#xff0c;包括脑瘫…

android studio中svn的使用

第一步&#xff0c;建立一个项目。 第二步&#xff0c;share project。 第三步&#xff0c;选择存放的位置&#xff0c;然后添加提交信息&#xff0c;最后点击share。这样就可以在svn上面看到一个空的项目名称。 第四步&#xff0c;看到文件变成了绿色&#xff0c;点击commit图…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(三)基变换与坐标变换;微分方程;李群和李代数;雅可比矩阵

一、基变换与坐标变换 字小,事不小。 因为第一反应:坐标咋变,坐标轴就咋变呀。事实却与我们想象的相反。这俩互为逆矩阵。 第一次读没有读明白,后面到事上才明白。 起因是多传感器标定:多传感器,就代表了多个坐标系,多个基底。激光雷达和imu标定。这个标定程序,网上,…

Python机器学习入门:从理论到实践

文章目录 前言一、机器学习是什么&#xff1f;二、机器学习基本流程三、使用Python进行机器学习1.数据读取2.数据规范化3. 数据降维&#xff08;主成分分析&#xff09;4. 机器学习模型的选择5. 线性回归模型的实现6. 可视化结果 总结 前言 机器学习是人工智能的一个重要分支&…

pytorch 笔记:torch.optim.Adam

torch.optim.Adam 是一个实现 Adam 优化算法的类。Adam 是一个常用的梯度下降优化方法&#xff0c;特别适合处理大规模数据集和参数的深度学习模型 torch.optim.Adam(params, lr0.001, betas(0.9, 0.999), eps1e-08, weight_decay0, amsgradFalse, *, foreachNone, maximizeFa…

1小时上手Alibaba Sentinel流控安全组件

微服务的雪崩效应 假如我们开发了一套分布式应用系统&#xff0c;前端应用分别向A/H/I/P四个服务发起调用请求&#xff1a; 但随着时间推移&#xff0c;假如服务 I 因为优化问题&#xff0c;导致需要 20 秒才能返回响应&#xff0c;这就必然会导致20秒内该请求线程会一直处于阻…