软件架构师——1、计算机组成与体系结构

news2024/11/19 14:35:23

计算机结构 (★)

运算器:

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

控制器:

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

冯•诺依曼结构

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

特点:

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

哈佛结构

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

特点:

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


存储系统(★★★★)

 

Cache:

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

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

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

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

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

t3 = h * t1 + (1 - h) * t2

其中, (1 - h) 又称为失效率 (未命中率) 。

主存编址

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

编址内容

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

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

磁盘管理
 

存取时间 = 寻道时间+等待时间寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
 

读取磁盘数据的时间应包括以下三个部分:

  • (1) 找磁道的时间。
  • (2) 找块 (扇区) 的时间,即旋转延迟时间。
  • (3) 传输时间。

磁盘调度算法:

  • 先来先服务FCFS(First-Come,First Served)

  •  最短寻道时间优先 (SSTF)

  • 扫描算法 (SCAN)
  • 循环扫描 (CSCAN) 算法

数据传输控制方式 (★)

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

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

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

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


总线(★★)

一条总线同一时刻仅允许一个设备发送,但允许多个设备接收。所以总线是半双工模式

半双工与全双工

串行总线与并行总线

总线功能来划分

数据总线 (Data Bus, DB) :在CPU与RAM之间来回传送需要处理或是需要储存的数据。

地址总线 (AddressBus, AB) : 用来指定在RAM (Random AccessMemory) 之中储存的数据的地址。

控制总线 (Control Bus, CB) :将微处理器控制单元 (Control Unit) 的信号,传送到周边设备。


CISC与RISC (★)

复杂指令集计算机 (CISC, Complex Instruction Set Computers)

精简指令集计算机 (RISC, Reduced Instruction Set Computers)



流水线(★★)

相关参数计算:流水线执行时间计算、流水线吞吐率、流水线加速比等。

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

流水线的吞吐率 (ThoughPut rate, TP) 是指在单位时间内流水线所完成的任务数量或输出的结果数量。计算流水线吞吐率的最基本的公式如下:

                TP  =  指令条数TD / 流水线执行时间

流水线最大吞吐率:

        

加速比(speedup ratio): 不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比(speedup ratio)。

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

                 顺序执行所用的时间为 T0 ,使用流水线的执行时间为 Tk


校验码 (★)

奇偶校验码

由若干位有效信息 (如一个字节),再加上一个二进制位 (校验位) 组成校验码。

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

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

循环冗余校验 (CRC, Cyclic Redundancy Check)

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

循环冗余校验码编码规律如下:

        除数:10011

        被除数:100111+ 0000 (4个0即多项式最高次)

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

 
嵌入式 (★)

1、DSP
DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。

2、SoC
System on Chip, 简称SoC, 也即片上系统。从狭义角度讲,它是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上;从广义角度讲, SoC是一个微小型系统,如果说中央处理器 (CPU) 是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。

3、MPU
微机中的中央处理器 (CPU) 称为微处理器 (MPU) ,是构成微机的核心部件,也可以说是微机的心脏。它起到控制整个微型计算机工作的作用,产生控制信号对相应的部件进行控制,并执行相应的操作。

4、MCU
微控制单元 (Microcontroller Unit;MCU) , 又称单片微型计算机 (Single Chip Microcomputer) 或者单片机,是旭中央处理器 (CentralProcess Unit;CPU) 的频率与规格做适当缩减,并将内存 (memory) 、计数器 (Timer) 、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
 

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

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

相关文章

Nginx 如何根据swagger关键字屏蔽页面

目录 一、知识回顾1.什么是 location2.location 语法3.location 的匹配规则4.优先级排序 二、如何根据关键字筛选请求1.实现方案2.测试结果 一、知识回顾 1.什么是 location Nginx 中通过根据 location 块的规则来将匹配到的 URL 请求进行一系列操作,最常见的就是…

【C++】STL——stack的介绍和使用、stack的push和pop函数介绍和使用、stack的其他成员函数

文章目录 1.stack的介绍2.stack的使用2.1stack构造函数2.1stack成员函数(1)empty() 检测stack是否为空(2)size() 返回stack中元素的个数(3)top() 返回栈顶元素的引用(4)push() 将元素…

QT数据库编程

ui界面 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QButtonGroup> #include <QFileDialog> #include <QMessageBox> MainWindow::MainWindow(QWidget* parent): QMainWindow(parent), ui(new Ui::M…

递归算法判断是否是“平衡二叉树”

题目&#xff1a; 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;true 解…

【Unity2D】粒子特效

为什么要使用粒子特效 Unity 的粒子系统是一种非常强大的工具&#xff0c;可以用来创建各种各样的游戏特效&#xff0c;如火焰、烟雾、水流、爆炸等等。使用粒子特效可以使一些游戏动画更加真实或者使游戏效果更加丰富。 粒子特效的使用 在Hierarchy界面右键添加Effects->…

ICASSP 2023 | Cough Detection Using Millimeter-Wave FMCW Radar

原文链接&#xff1a;https://mp.weixin.qq.com/s?__bizMzg4MjgxMjgyMg&mid2247486540&idx1&sn6ebd9f58e9f08a369904f9c48e12d136&chksmcf51beb5f82637a3c65cf6fa53e8aa136021e35f63a58fdd7154fc486a285ecde8b8521fa499#rd ICASSP 2023 | Cough Detection Usi…

【Golang 接口自动化01】使用标准库net/http发送Get请求

目录 发送Get请求 响应信息 拓展 资料获取方法 发送Get请求 使用Golang发送get请求很容易&#xff0c;我们还是使用http://httpbin.org作为服务端来进行演示。 package mainimport ("bytes""fmt""log""net/http""net/url&qu…

vue基础-key的作用

vue基础-key的作用 1、无key2、有key&#xff0c;值为索引3、有key&#xff0c;值为id 1、无key 最大限度尝试就地修改/复用相同类型元素 2、有key&#xff0c;值为索引 有key属性&#xff0c;基于key来比较新旧虚拟DOM&#xff0c;移除key不存在的元素 3、有key&#xf…

学习笔记——压力测试案例,监控平台

测试案例 # 最简单的部署方式直接单机启动 nohup java -jar lesson-one-0.0.1-SNAPSHOT.jar > ./server.log 2>&1 &然后配置执行计划&#xff1a; 新建一个执行计划 配置请求路径 配置断言配置响应持续时间断言 然后配置一些查看结果的统计报表或者图形 然后我…

一篇文章彻底搞懂TCP协议!

文章目录 1. TCP协议的引入2. TCP协议的特点3. TCP协议格式3.1 序号与确认序号3.2 发送缓冲区与接收缓冲区3.3 窗口大小3.4 六个标志位 4. 确认应答机制5. 超时重传机制6. 连接管理机制6.1 三次握手6.2 四次挥手 7. 流量控制8. 滑动窗口9. 拥塞控制10. 延迟应答11. 捎带应答12.…

FFmpeg5.0源码阅读——av_interleaved_write_frame

摘要&#xff1a;本文主要详细描述FFmpeg中封装时写packet到媒体文件的函数av_interleaved_write_frame的实现。   关键字&#xff1a;av_interleaved_write_frame   读者须知&#xff1a;读者需要熟悉ffmpeg的基本使用。 1 基本调用流程 av_interleaved_write_frame的基本…

python文件处理方式

python文件处理方式 file open(D:\pythonText.txt, r, encodingUTF-8) print(file) # <_io.TextIOWrapper nameD:\\pythonText.txt moder encodingUTF-8> print(type(file)) # <class _io.TextIOWrapper>读取文件 file open(D:\pythonText.txt, r, encodingU…

【C++】 虚析构和纯虚析构,Visual Studio开发人员工具查看类内部结构cl /d1 reportSingleClassLayout

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】 虚析构和纯虚析构&#xff0c;Visual Studio开发人员工具查看类内部结构cl /d1 reportSingleClassLayout website&#xff1a;黑马程序员C date&#xff1a;&#xff1a;2023年7月29日 目录 虚析构…

No106.精选前端面试题,享受每天的挑战和学习

今日份摘抄&#xff1a;本事不在自身都是虚的 文章目录 MySQL的ACID特性分别是怎么实现的&#xff1f;1. 原子性 (Atomicity)2. 一致性 (Consistency)3. 隔离性 (Isolation)4. 持久性 (Durability) OSI七层模型1. 物理层&#xff08;Physical Layer&#xff09;2. 数据链路层&a…

Java-简单认识类和对象

一、初步认识面向对象 1.1 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向对象的思…

map,set的封装(基于改造红黑树)

目录 引言 1.迭代器 2.map的[]重载 3.KeyOfValue模板参数 4.整体代码展示 //改造后的红黑树代码 #include <iostream> using namespace std;enum Colour {RED 0,BLACK, };//为了实现map与set封装使用同一个模板红黑树&#xff0c;前者的value是pair&#xff0c;后者…

数学分析:外微分

先回顾下微分的概念&#xff0c;首先我们找到一个道路x&#xff0c;它是关于时间t的函数&#xff0c;然后我们可以得到一个速度&#xff0c;也就是切向量&#xff0c;所有道路的切向量组成了切空间。如果从泛函角度来理解&#xff0c;它应该是一个求偏导的基。是一个向量。而微…

Python语法(二、内置函数)

数学计算库 Python ​math ​模块提供了许多对浮点数的数学运算函数。 Python ​cmath ​模块包含了一些用于复数运算的函数。 import math 内置函数 关键字 自定义函数 Python函数的定义。定义函数需要用def 关键字实现&#xff0c;具体的语法格式如下&#xff1a; def 函…

求二维离散点集的凸包点

1 算法思路 这类求解最外围的点集问题,我们称之为凸包问题,光光是⽤⾁眼去观察的话,这种问题我们很快就能得出答案,并且能马上说出哪⼏个点 是解,但是如果让你敲代码,去解决这类的问题,可能很多⼈会不知道如何去下⼿。 在讲解凸包这类问题的解法前,我们⾸先要先讲下向…

#P1000. [NOIP2008普及组] 立体图

题目描述 小渊是个聪明的孩子&#xff0c;他经常会给周围的小朋友们讲些自己认为有趣的内容。最近&#xff0c;他准备给小朋友们讲解立体图&#xff0c;请你帮他画出立体图。 小渊有一块面积为 m \times nmn 的矩形区域&#xff0c;上面有 m \times nmn 个边长为 11 的格子&a…