系统架构师考点--计算机硬件

大家好。今天我总结一下计算机硬件的一些考点。

一、中央处理单元(CPU)

我们知道,计算机的基本硬件系统由运算器控制器存储器输入设备输出设备5大部件组成。其中运算器、控制器等部件被集成在一起统称为中央处理单元(Central ProcessingUnit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术逻辑运算及控制功能。

1. CPU的功能

程序控制: CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。

操作控制: 一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。

时间控制: CPU 对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。

数据处理: CPU通过对数据进行算术运算及逻辑运算等方式进行加工处理数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。

此外,CPU还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。

2. CPU的组成

CPU主要由运算器、控制器、寄存器组和内部总线等部件组成:

运算器: 由算术逻辑单元ALU(实现对数据的算术和逻辑运算)、累加寄存器AC(运算结果或源操作数的存放区)、数据缓冲寄存器DR(暂时存放内存的指令或数据)、和状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。

控制器: 由指令寄存器IR(暂存CPU执行指令)、程序计数器PC(存放指令执行地址)、地址寄存器AR(保存当前CPU所访问的内存地址)、指令译码器ID(分析指令操作码)等组成。控制整个CPU的工作,最为重要。

例题:
在这里插入图片描述
答案:B 、C

二、校验码

码距: 就单个编码A: 00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。

奇偶校验码: 在编码中增加1位校验位来使编码中1的个数为奇数(奇校验或者偶数(偶校验),从而使码距变为2。例如:

奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。

偶校验:同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。

CRC(循环冗余校验码): 只能检错,不能纠错。使用CRC编码,需要先约定一个生成多项式G(x)。生成多项式的最高位和最低位必须是1。假设原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误;反之则发生错误。

例:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码。

第一步: 在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息位后添加(1)个0,本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被除数。

第二步: 由多项式得到除数,多项中x的幂指数存在的位置1,不存在的位置0。本题中,x的幂指数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011。

第三步: 生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算(即不进位也不借位的除法运算,相同为0,不同为1)。除法过程如下图所示,得到余数1111。

在这里插入图片描述

注意:余数不足r,则余数左边用若干个0补齐。如求得余数为11,r=4,则补两个0得到0011。

第四步: 生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为10110,添加余数1111后,结果为101101111。发送方将此数据发送给接收方。

第五步: 接收方进行校验。接收方的CRC校验过程与生成过程类似,接收方接收了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错;否则要求发送方进行重传。

注意:收发信息双方需使用相同的生成多项式。

例题:
在这里插入图片描述
答案:A

三、指令系统

1. 计算机指令的组成

一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

2. 指令寻址方式

1. 顺序寻址方式: 当执行一段程序时,是一条指令接着一条指令的顺序执行。

2. 跳跃寻址方式: 指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

3. 指令操作数的寻址方式

1. 立即寻址方式: 指令的地址码字段指出的不是地址,而是操作数本身。

2. 直接寻址方式: 在指令的地址字段中直接指出操作数在主存中的地址。

3. 间接寻址方式: 指令地址码字段所指向的存储单元中存储的是操作数的地址。

4. 寄存器寻址方式: 指令中的地址码是寄存器的编号。

5. 基址寻址方式: 将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力。(了解)

6. 变址寻址方式: 变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。(了解)

4. 指令系统分类

CISC(复杂指令系统): 兼容性强,指令繁多、长度可变,由微程序实现。

RISC(精简指令系统): 指令少,使用频率接近,主要依靠硬件实现(通用寄存器硬布线逻辑控制)。具体区别如下:

图片

5. 指令系统流水线

图片

指令流水线原理: 将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。

RISC中的流水线技术:

(1)超流水线(Super Pipe Line)技术:它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间。

(2)超标量(Superscalar)技术:它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一般流水接近,却有更小的CPI。其实质是以空间换取时间。

(3)超长指令字(Very LongInstruction word,VLlw)技术:VLIW 和超标量都是20 世纪80年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW 则充分发挥软件的作用,而使硬件简化性能提高。

流水线时间计算(重点,记公式):

流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。

流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期。

流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。公式:指令条数/流水线执行时间。

流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高,公式:不使用流水线执行时间/使用流水线执行时间。

例题:

答案:A、D

在这里插入图片描述
答案:B、D、C

四、存储系统

计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。

在这里插入图片描述

两级存储: cache-主存、主存-辅存(虚拟存储体系)

局部性原理: 总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:

(1)时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。

(2)空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。

高速缓存Cache: 用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。

Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。

1. 地址映射

在CPU工作时,送出的是主存单元的地址,而应从cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:

(1)直接映像: 将cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。

图片

(2)全相联映像: 同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cacne任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。

图片

(3)组组相连映像: 前面两种方式的结合,分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换。

2. 替换算法

目标就是使Cache 获得尽可能高的命中率。常用算法有如下几种。

随机替换算法: 就是用随机数发生器产生一个要替换的块号,将该块替换出去。

先进先出算法: 就是将最先进入cache 的信息块替换出去。

近期最少使用算法: 这种方法是将近期最少使用的Cache 中的信息块替换

优化替换算法: 这种方法必须先执行一次程序,统计Cache的替换情况有了这样的先验信息,在第二次执行该程序时便可以用最有效的方式来替换。

3. 命中率及平均时间

Cache有一个命中率的概念,即当CPU所访问的数据在cache中时,命中,直接从Cache中读取数据,设读取一次Cache时间为1ns,若CPU访问的数据不在cache中则需要从内存中读取,设读取一次内存的时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns。
图片
例题:
在这里插入图片描述
答案:B、D

4. 磁盘结构和参数

磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。

磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间。公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)

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

5. 磁盘调度算法

磁盘调度算法主要有下面几种:

先来先服务FCFS: 根据进程请求访问磁盘的先后顺序进行调度。

最短寻道时间优先SSTF: 请求访问的磁道与当前磁道最近的进程优先调度,使得每次的寻道时间最短,会产生“饥饿”现象,即远处进程可能永远无法访问。

扫描算法SCAN: 又称“电梯算法”,磁头在磁盘上双向移动,其会选择离磁头当前所在磁道最近的请求访问的磁道,并且与磁头移动方向一致,磁头永远都是从里向外或者从外向里一直移动完才掉头,与电梯类似。

单向扫描调度算法CSCAN: 与SCAN不同的是,其只做单向移动,即只能从里外或者从外向里。

例题:

图片

答案:C、B

图片

答案:D

五、输入输出技术

1. 编址方法

计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:

内存与接口地址独立编址方法: 内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。

内存与接口地址统一编址方法: 内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。

2. 计算机和外设间的数据交互方式(常考)

程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低。

程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。

DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路效率很高。

注意:在一个总线周期结束后,CPU会响应DMA请求开始读取数据,CPU响应程序中断方式请求是在一条指令执行结束时。

例题:

在这里插入图片描述

答案:D

六、总线结构

总线(Bus),是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。

从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:

内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。

系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。

外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。

例题:

图片
答案:C

好了,到这里计算机硬件知识考点就总结完了,心若向阳,安暖如常,加油!

最后依旧是请希望大家能给作者点个关注,谢谢大家!各位老板有钱的捧个人场,没钱的也捧个人场,谢谢各位老板!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构

目标 在清晨的代码编辑器上,一场新的挑战即将开始。程序员们肃立于安静的办公室,眼神专注地盯着屏幕,等待着编译器的一声提示。 随着编译器输出的激动人心的"start!"的提示,战斗的序幕拉开了。Bug如潮水般涌来&#x…

C++ bfS

岛屿的最大面积 . - 力扣(LeetCode) 1.刚开始mn又加了int 2.bfs里符合条件了,不push,,,在写什么几把 class Solution { public:int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};bool vis[50][50];int…

Centos7安装jdk8或11以及切换方案

目录 jdk安装 安装OpenJDK11 安装OpenJDK8 配置默认的 Java 版本 验证 全局环境变量(选配) 个人版(自己可以用,公司不建议) 公司版本 /etc/profile 和 ~/.bash_profile 区别 前言-与正文无关 生活远不止眼前的苦…

解决 kali 中使用 vulhub 拉取不到镜像问题

由于默认情况下,访问的镜像是国外的,而从 2023 年开始,docker 的镜像网站就一直访问不了,所以我们可以把镜像地址改成国内的阿里云镜像地址。 1、在 cd /etc/docker/目录下创建或修改daemon.json文件 sudo touch daemon.json 2、在…

【ARMv8/ARMv9 硬件加速系列 3 -- SVE 指令语法及编译参数详细介绍】

文章目录 SVE 汇编语法SVE 单通道谓词SVE 测试代码 SVE 软件和库支持SVE 编译参数配置-marcharmv8-alseprofilememtagsve2-aessve2-bitpermcryptosve2sve2-sha3sve2-sm4 SVE 汇编语法 在介绍 SVE 汇编指令语法之前,先介绍下如何判断自己所使用的芯片是否实现了SVE功…

【TypeScript】泛型工具

跟着 小满zs 学 ts:学习TypeScript24(TS进阶用法-泛型工具)_ts泛型工具-CSDN博客 Partial 所有属性可选的意思Required 所有属性必选的意思Pick 提取部分属性Exclude 排除部分属性emit 排除部分属性并且返回新的类型 Partial 属性变为可选。…

1. C++面向过程

b站黑马程序员C课程学习笔记,图片存在github,可能需要翻墙才可见 一、C简介 1.1 C的产生及其特点 从C语言发展演变而来,解决了C语言中存在的一些问题,并增加了对面向对象程序设计方法的支持 与其他高级语言相比,C语…

【Unity学习笔记】第十八 基于物理引擎的日月地系统简单实现

转载请注明出处: https://blog.csdn.net/weixin_44013533/article/details/139701843 作者:CSDN|Ringleader| 目录 目标数学理论资源准备数据准备代码实现Unity准备效果展示注意事项后记 目标 目标:利用Unity的物理引擎实现 “日地月三体系统” 。 效果…

【Android面试八股文】请描述new一个对象的流程

文章目录 请描述new一个对象的流程JVM创建对象的过程检查加载分配内存内存空间初始化设置对象初始化请描述new一个对象的流程 JVM创建对象的过程 当JVM遇到一条new指令时,它需要完成以下几个步骤: 类加载与检查内存分配 并发安全性内存空间初始化设置对象信息对象初始化下图…

upload-labs第十二关教程

upload-labs第十二关教程 一、源代码分析代码审计 二、绕过分析截断绕过magic_quotes_gpc函数介绍关闭magic_quotes_gpc上传eval.png文件使用burpsuite进行抓包修改放包,查看是否上传成功使用中国蚁剑进行连接 一、源代码分析 代码审计 $is_upload false; $msg …

网络协议,OSI,简单通信,IP和mac地址

认识协议 1.讲故事 2004年,小明因为给他爹打电话(座机)费用太贵,所以约定一种信号,响一次是报平安,响两次是要钱,响三次才需要接通。 2.概念 协议:是一种约定,这种约…

基于CentOS Stream 9平台安装MySQL8.4.0 LTS

1. 安装之前 1.1 查看系统版本 [rootcoisini /]# cat /etc/redhat-release CentOS Stream release 9 1.2 查看cpu架构 [rootcoisini /]# lscpu 架构: x86_64 CPU 运行模式: 32-bit, 64-bit 2. MySQL官方下载https://dev.mysql.com/downloads/mysql/ 或…

Web期末复习指南(2w字总结)

前言:本文旨在梳理Web技术常包含的内容,阅读完整篇文章后会对整体有个系统的认知,从前端的HTML到后端的MySql,对于大概试题中可能会涉及的地方都有所分析,通篇提供了许多代码案例,供读者更好的理解。对于一…

MongoDB~事务了解;可调一致性模型功能与因果一致性模型功能分析

背景 MongoDB 从 3.0版本引入 WiredTiger 存储引擎之后开始支持事务,MongoDB 3.6之前的版本只能支持单文档的事务,从 MongoDB 4.0版本开始支持复制集部署模式下的事务,从 MongoDB 4.2版本开始支持分片集群中的事务。 根据官方文档介绍&…

代码随想录算法训练营第二十四天| (回溯) 77. 组合、 216.组合总和III、17.电话号码的字母组合

77. 组合 题目链接:77. 组合 文档讲解:代码随想录 状态:很多细节忘了 思路:先画图,然后可以发现,从1到n中选择k个数,可以看成是一个递归过程,这个递归的深度就是k。然后遍历当前这层…

企业化运维(2)_nginx

###1.nginx源码安装部署### ###2.平滑升级### (1)版本升级 当服务器在运行时,需要升级的情况下,平滑升级即就是不断开服务器就可以进行升级,最大限度保证数据的完整性。 下载nginx新版本软件,正常执行./c…

简易五子棋

简介 使用Java实现简易五子棋 规则介绍 游戏使用一个标准的1515方格的棋盘,双方分别用黑白两种颜色的棋子进行对战。黑子先行,双方轮流在空棋盘的交叉点上落子,每人一次只能落一子。游戏的目标是让自己的五颗棋子连成一线,这条…

JavaScript-函数

学习目标: 掌握函数 学习内容: 为什么需要函数函数使用函数传参函数返回值函数细节补充函数作用域匿名函数案例 为什么需要函数: 函数:function 是被设计为执行特定任务的代码块。说明:函数可以把具有相同或相似逻辑…

探索交互的本质:从指令到界面的演进与Linux基础指令的深入剖析

目录 1.指令 vs 界面//选读 1.1交互的需求 满足需求的第一阶段-指令 满足需求的第二阶段-界面 1.2 指令 和 界面交互 区别 2.操作系统介绍 2.1 举例说明 驱动软件层 2.2 为什么要有操作系统? 0x03 为什么要进行指令操作? 3.Linux基本指令 l…

Linux基础命令[29]-chown

文章目录 1. chown 命令说明2. chown 命令语法3. chown 命令示例3.1 修改属主3.2 修改属组3.3 修改属主和属组3.4 修改文件夹所属 4. 总结 1. chown 命令说明 chown:更改文件的用户或用户组,需要 root 用户或 sudo 权限的用户执行该命令。基本信息如下&…