软件设计师考试重点1 计算机组成与体系结构

news2024/10/7 14:24:19

软件设计师考试重点1 计算机组成与体系结构

  • 一、 数据的表示
    • 1. 进制转换
    • 2. 原码/反码/补码/移码
    • 3. 数值表示范围
    • 4. 浮点数的运算
  • 二、运算器与控制器
    • 1. 计算机结构
    • 2. 计算机五大组成部分:
    • 3. CPU组成部分:
    • 4. 控制器组成部分:
    • 5. 运算器组成部分:
    • 6. Flynn分类法
    • 7. 指令的基本概念
    • 8. 寻址方式
    • 9. CISC与RISC
      • 常见的CISC指令集:x86指令集
      • 常见的RISC指令集: ARM指令集
      • 国产的RISC指令集: 龙芯 指令集
      • 新兴的RISC指令集:RISC-V
  • 五、流水线技术
    • 1. 流水线概念
    • 2. 流水线计算
    • 3. 超标量流水线
    • 4. 流水线吞吐率计算
  • 六、存储系统
    • 1. Cache
      • 局部性原理与命中率
      • 映像
    • 2. 主存-编址与计算
  • 七、总线系统
  • 八、可靠性
      • 串联系统
      • 并联系统
      • 复合系统
  • 九:校验码
    • 1. 基础知识
    • 2. 奇偶校验
    • 3. 循环冗余校验码
    • 4. 海明码

一、 数据的表示

1. 进制转换

  • R进制转十进制使用按权展开法。
  • 十进制转R进制使用短除法。

2. 原码/反码/补码/移码

  • 正数的原码、反码、补码是相同的。
  • 负数:
    – 原码:原始数据;
    – 反码:原码除符号位求反;
    – 补码:在反码基础上加1;
    – 移码:在补码的基础上,符号位取反。

3. 数值表示范围

码制定点整数定点小数
原码 − ( 2 n − 1 − 1 ) -(2^{n-1}-1) (2n11) + ( 2 n − 1 − 1 ) +(2^{n-1}-1) +(2n11) − ( 1 − 2 − ( n − 1 ) ) -(1-2^{-(n-1)}) (12(n1)) + ( 1 − 2 − ( n − 1 ) ) +(1-2^{-(n-1)}) +(12(n1))
反码 − ( 2 n − 1 − 1 ) -(2^{n-1}-1) (2n11) + ( 2 n − 1 − 1 ) +(2^{n-1}-1) +(2n11) − ( 1 − 2 − ( n − 1 ) ) -(1-2^{-(n-1)}) (12(n1)) + ( 1 − 2 − ( n − 1 ) ) +(1-2^{-(n-1)}) +(12(n1))
补码 − ( 2 n − 1 ) -(2^{n-1}) (2n1) + ( 2 n − 1 − 1 ) +(2^{n-1}-1) +(2n11) − 1 -1 1 + ( 1 − 2 − ( n − 1 ) ) +(1-2^{-(n-1)}) +(12(n1))
移码 − ( 2 n − 1 ) -(2^{n-1}) (2n1) + ( 2 n − 1 − 1 ) +(2^{n-1}-1) +(2n11) − 1 -1 1 + ( 1 − 2 − ( n − 1 ) +(1-2^{-(n-1}) +(12(n1)

4. 浮点数的运算

浮点数表示: N = 尾 数 ∗ 基 数 指 数 N = 尾数* 基数^{指数} N=
浮点数的运算顺序:

  1. 对阶
  2. 尾数计算
  3. 结果格式化

运算要点:

  • 一般尾数用补码,阶码用移码
  • 阶码的位数决定数的表示范围,尾数位数决定数的有效精度
  • 对阶时,小数向大数看齐
  • 对阶是通过较小数的尾数右移实现的

二、运算器与控制器

1. 计算机结构

在这里插入图片描述

2. 计算机五大组成部分:

  • 运算器
  • 控制器
  • 存储器:分主存(内存储器)、辅助存储器
  • 输入设备
  • 输出设备

3. CPU组成部分:

  • 运算器
  • 控制器
  • 寄存器组

4. 控制器组成部分:

  • 程序计数器 PC:存储下一条要执行指令的地址
  • 指令寄存器 IR
  • 地址寄存器 PR 记录CPU当前访问的地址
  • 指令译码器
  • 时序部件:时钟

5. 运算器组成部分:

  • 算术逻辑单元ALU:数据计算和逻辑运算
  • 累加寄存器 AC:为ALU提供一个工作区,用暂存数据
  • 数据缓冲寄存器 DR:写内存时,暂存指令和数据
  • 状态条件寄存器PSW(这个比较特殊,历年考试它算在运算器还是控制器不一定):存状态标志和控制标志。

6. Flynn分类法

体系结构类型结构关键特性代表
单指令流单数据流 SISD控制部分:1个
处理器:1个
主存模块:1个
单处理器系统
单指令流多数据流SIMD控制部分:1个
处理器:多个
主存模块:多个
各处理器以异步的形式执行同一条指令并行处理机
阵列处理机
超级向量处理机
多指令流单数据流MISD控制部分:多个
处理器:1个
主存模块:多个
被证明不可能,至少不实际目前没有,有文献称流水线计算机为此类
多指令流多数据流MIMD控制部分:多个
处理器:多个
主存模块:多个
能够实现作业、任务、指令等各级全面并行多处理机系统
多计算机

7. 指令的基本概念

一条指令是机器语言的一个语句,是一组有意义的二进制代码,基本结构:
操作码字段-地址码字段

  • 操作码:指出要作什么操作,如加、移位、存取数。
  • 地址码: 需要包含各操作数的地址及操作结果的存放地址等,从其地址结构的角度可以分为三地址指令、二地址指令、一地址指令和零地址指令。

8. 寻址方式

  • 立即寻址方式:操作数直接在指令中
  • 直接寻址方式:指令中存放操作数的地址
  • 间接寻址方式:指令中放了地址,地址放的是操作数的地址
  • 寄存器寻址方式:寄存器存放操作数
  • 寄存器间接寻址方式:寄存器内存放的是操作数的地址

9. CISC与RISC

指令系统类型指令寻址方式实现方式其它
CISC 复杂指令集数据多,使用频率差别大,可变成格式支持多种寻址方式微程序控制技术(微码)研制周期长
RISC 精简指令集数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存支持方式少增加了通用寄存器;硬布线逻辑控制为主,适合采用流水线优化编译,有效支持高级语言

—以下非考试重点—

常见的CISC指令集:x86指令集

x86的指令集可分为以下4种:

  • 通用指令
  • x87 FPU指令,浮点数运算的指令
  • SIMD指令,就是SSE指令
  • 系统指令,写OS内核时使用的特殊指令

一些指令示例:

指令操作说明
MOV将源操作数传送到目标操作数
ADD将源操作数与目标操作数相加 最后结果给到目标操作数
SUB将源操作数与目标操作数相减 最后结果给到目标操作数
AND将源操作数与目标操作数进行与运算 最后结果给到目标操作数
OR将源操作数与目标操作数进行或运算 最后结果给到目标操作数
XOR将源操作数与目标操作数进行异或运算 最后结果给到目标操作数
NOT将源操作数与目标操作数进行异非运算 最后结果给到目标操作数
MOVS数据传送 与MOV不同处在于它可以将内存的数据传送到内存
STOS将 AL AX EAX 的值存到EDI指定的内存地址
REP循环
PUSH押入 通用寄存器 内存地址 立即数
POP释放。通用寄存器 内存地址
JMP修改EIP(存放下一条指令的地址)
CALL修改EIP
RETCALL的返回

常见的RISC指令集: ARM指令集

ARM指令集可以分为六大类:

  1. 跳转指令
  2. 数据处理指令
  3. 程序状态寄存器(PSR)处理指令
  4. 加载/存储指令
  5. 协处理器指令
  6. 异常产生指令
指令说明
ADC带进位的32位数加法
ADD32位数相加
AND32位数的逻辑与
B在32M空间内的相对跳转指令
BEQ相等则跳转(Branch if EQual)
BNE不相等则跳转(Branch if Not Equal)
BGE大于或等于跳转(Branch if Greater than or Equa)
BGT大于跳转(Branch if Greater Than)
BIC32位数的逻辑位清零
BKPT断点指令
BL带链接的相对跳转指令
BLE小于或等于跳转(Branch if Less than or Equal)
BLEQ带链接等于跳转(Branch with Link if EQual)
BLLT带链接小于跳转(Branch with Link if Less Than)
BLT小于跳转(Branch if Less Than)
BLX带链接的切换跳转
BX切换跳转
CDP CDP2协处理器数据处理操作
CLZ零计数
CMN比较两个数的相反数
CMP32位数比较
EOR32位逻辑异或
LDC LDC2从协处理器取一个或多个32位值
LDM从内存送多个32位字到ARM寄存器
LDR从虚拟地址取一个单个的32位值
MCR MCR2 MCRR从寄存器送数据到协处理器
MLA32位乘累加
MOV传送一个32位数到寄存器
MRC MRC2 MRRC从协处理器传送数据到寄存器
MRS把状态寄存器的值送到通用寄存器
MSR把通用寄存器的值传送到状态寄存器
MUL32位乘
MVN把一个32位数的逻辑“非”送到寄存器
ORR32位逻辑或
PLD预装载提示指令
QADD有符号32位饱和加
QDADD有符号双32位饱和加
QSUB有符号32位饱和减
QDSUB有符号双32位饱和减
RSB逆向32位减法
RSC带进位的逆向32法减法
SBC带进位的32位减法
SMLAxy有符号乘累加(16位*16位)+32位=32位
SMLAL64位有符号乘累加((32位*32位)+64位=64位)
SMALxy64位有符号乘累加((32位*32位)+64位=64位)
SMLAWy号乘累加((32位*16位)>>16位)+32位=32位
SMULL64位有符号乘累加(32位*32位)=64位
SMULxy有符号乘(16位*16位=32位)
SMULWy有符号乘(32位*16位>>16位=32位)
STC STC2从协处理器中把一个或多个32位值存到内存
STM把多个32位的寄存器值存放到内存
STR把寄存器的值存到一个内存的虚地址内间
SUB32位减法
SWI软中断
SWP把一个字或者一个字节和一个寄存器值交换
TEQ等值测试
TST位测试
UMLAL64位无符号乘累加((32位*32位)+64位=64位)
UMULL64位无符号乘累加(32位*32位)=64位

国产的RISC指令集: 龙芯 指令集

手册虽然可以免费下载,但手册里有一条:
在这里插入图片描述

不能公开散发,我~~~~~

截个图意思一下:
在这里插入图片描述

新兴的RISC指令集:RISC-V

指令示例:

指令描述例子
add加法
sub减法
and逻辑加法
or逻辑或
xor逻辑异或

—以上非考试重点—

五、流水线技术

1. 流水线概念

流水线是指程序执行多条指令重叠进行操作的一种准并行处理实现技术。

使用流水线执行指令:
在这里插入图片描述

2. 流水线计算

  • 流水线周期为执行时间最长的一段
  • 流水线计算公式:1条指令执行时间+(指令条数-1)*流水线周期
    • 理论公式: ( t 1 + t 2 + . . . . t k ) + ( n − 1 ) ∗ Δ t (t_1+t_2+....t_k)+(n-1)*\Delta t (t1+t2+....tk)+(n1)Δt
    • 实践公式: k ∗ Δ t + ( n − 1 ) ∗ Δ t k*\Delta t +(n-1)* \Delta t kΔt+(n1)Δt

3. 超标量流水线

在标准状态下,一个处理器含一条指令流水线,超标量就是一个处理器中有多条指令流水线,单位是度。

4. 流水线吞吐率计算

流水线的吞吐率是指在单位时间内流水线所完成的任务数量或输出的结果数量,基本公式:
T P = 指 令 条 数 流 水 线 执 行 时 间 TP=\frac{指令条数} {流水线执行时间} TP=线
流水线最大吞吐率:
T P m a x = lim ⁡ n → ∞ n ( k + n − 1 ) ∗ Δ t = 1 Δ t TP_{max} = \lim_{n \to \infty} \frac{n}{(k+n-1)*\Delta t} = \frac{1}{\Delta t} TPmax=nlim(k+n1)Δtn=Δt1

六、存储系统

1. Cache

局部性原理与命中率

  • 在计算机的存储体系中,是访问速度最快的层次(若有寄存器,则寄存器最快)。
  • 使用Cache 改善系统性能的依据是程序的局部性原理。
  • 如果以 h 代表对Cache的访问命中率, t 1 t_1 t1表示Cache的周期时间, t 2 t_2 t2表示主存储器周期时间,以读操作为例,使用“Cahce+主存储器”的系统的平均周期为 t 3 t_3 t3,则:
    t 3 = h × t 1 + ( 1 − h ) × t 2 t_3=h \times t_1 + (1-h) \times t_2 t3=h×t1+(1h)×t2
    其中,(1-h)又称为失效率(未命中率)。

映像

地址映像是将主存与Cache的存储空间分为若干个大小相同的页(或称为块)。

映像冲突率
直接相联映像硬件电路简单,但冲突率最高
全相联映像电路难于设计和实现,只适用于小容量的Cache,冲突率较低
组相联映像直接相联与全相联的折中

示例:1G的内存,分为2048页,每页512K;Cache容量8MB,每页也是512K,划分为16页。

直接映像:
直接映像是指在进行映像的工作时,规定各区中的某一信息块只能映像到Cache中的一个固定的信息块中,即主存中的第0块映像到cache的第0个块框架,第1块映像到cache的第1块,以此类推的映像方式。——百度百科
全相联映像:
两个不同存储器的地址空间之间的一种映射关系,一个存储器中的任意一块(页)可以映像到另外一个存储器中的任意一块(页)中。——《计算机科学技术名词 》第三版
组相联映像:
组相联映像方式的地址映像规则是主存储器中某一块只能存入缓存的同组号的任一块中,先分区、再分组,每个组内用全相联映像。

2. 主存-编址与计算

存储单元
按字编址:存储体的存储单元是字存储单元
按字节编址:存储体的存储单元是字节存储单元。

根据存储器所要求的容量和选定的存储芯片的容量,计算所需的芯片数:
总 片 数 = 总 容 量 / 每 片 的 容 量 总片数=总容量/每片的容量 =/

七、总线系统

计算机硬件之间通讯的桥梁,一条总线同一时刻只允许一个设备发送,但允许多个设备接收。

总线的分类:

  • 数据总线
  • 地址总线
  • 控制总线

八、可靠性

串联系统、并联系统的可靠性

串联系统

R = R 1 × R 2 × . . . × R n R=R_1 \times R_2 \times ... \times R_n R=R1×R2×...×Rn

并联系统

R = 1 − ( 1 − R 1 ) × ( 1 − R 2 ) × . . . × ( 1 − R n ) R=1-(1-R_1) \times (1-R_2) \times ... \times (1-R_n) R=1(1R1)×(1R2)×...×(1Rn)

复合系统

……

九:校验码

1. 基础知识

码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。
例:用4位二进制表示16种状态,则有16个不同的码字,此时码距为1,如:00000001

2. 奇偶校验

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

3. 循环冗余校验码

CRC的编码方法:在k位信息码之后拼接r位校验码。

4. 海明码

海明码可以用来检错、也可以用来纠错。
确定校验码的位数x:

设数据有n位,校验码有x位。则校验码一共有 2 x 2^x 2x种取值方式。其中需要一种取值方式表示数据正确,剩下 2 x − 1 2^x-1 2x1种取值方式表示有一位数据出错。因为编码后的二进制串有n+x位,因此x应该满足:

2 r − 1 ≥   n + x 2^r -1 ≥ n+x 2r1 n+x

最常见的海明码校验位长度:

  • 2-4位数据位:3位校验位
  • 5-11位数据位:4位校验位

详情可参见: 海明码运算方法

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

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

相关文章

如何构建一个自动化油田注水站监控系统?

一、应用背景 目前,在大部分的钻井平台中,维护油田注水站的工作状态主要通过人工方式进行,这种方式不仅作业效率低且对工人的经验有着较高要求。此外,油田注水站的工作环境恶劣,为了能够有效地掌握各个设备的工作状态…

【测试沉思录】20. 如何做好测试需求分析?

作者:刘亚茹 编辑:毕小烦 我们都知道测试用例是软件测试中保障质量的必要手段,而测试需求作为用例编写的主要依据却往往被很多人忽视。到底什么是测试需求?又如何做好测试需求分析呢?本文带你了解一下。 1. 测试需求到…

Java项目如何导出数据为 PDF 文件?

文章目录Java项目如何导出数据为 PDF 文件?一、代码结构如下二、代码说明1、添加依赖 pom.xml3、添加字体4、PDF 导出工具类三、效果图结语Java项目如何导出数据为 PDF 文件? 一个小需求,需要将页面上的数据导出为PDF,正常情况下…

11月业务安全月报 | 台湾2300万人信息泄露;黑客两分钟即可破解安卓锁屏;乌克兰“IT军团”入侵俄罗斯中央银行

导语:随着数字化的深入普及,业务愈加开放互联。企业的关键数据、用户信息、基础设施、运营过程等均处于边界模糊且日益开放的环境中,涉及利益流和高附加值的业务面临多样的安全隐患,随时可能遭遇损失,进而影响企业运营…

Android 8.0网络DNS

1 Linux DNS规范 Linux上并没有一个单独的方法可以完成DNS查询工作;没有一个有这样的明确接口的核心系统调用system call。不过,glibc (nss)的getaddrinfo (3), gethostbyname (3)等相关API (RFC3493)提供了DNS查询功能。 1)不支持nscd&#…

关于使用STM32CubeMx配置串口出现的一些问题

一、使用CubeMX配置好串口中断的工程,打开工程添加相关代码后串口没有数据输出或者看不见数据但串口助手的RX会一直增加的问题。 参考:这里 大概意思就是时钟的原因,需要把stm32f4xx_hal_conf.h文件中的时钟改一下,将25MHz改为8…

Ansys Zemax | 使用 OpticStudio 进行闪光激光雷达系统建模(中)

在消费类电子产品领域,工程师可利用激光雷达实现众多功能,如面部识别和3D映射等。尽管激光雷达系统的应用非常广泛而且截然不同,但是 “闪光激光雷达” 解决方案通常都适用于在使用固态光学元件的目标场景中生成可检测的点阵列。凭借具有针对…

我要涨知识——TypeScript 经典高频面试题(二)

又是一个年底来了,好大一批人可能又准备跑路了,翻了翻掘金和 CSDN 发现好多大佬都有大厂 Offer ,看着看着我心动了! 话不多说,赶紧开干,给自己整了一个前端面试小助手——微信小程序内搜索 “WEB学习学习加…

jar启动指定JDK/JRE 安装路径教程

前言 因为疫情在家办公的缘故,有个老项目,需要改个接口,然后需要前端联调,因为外网服务器没有多余的空间了,想着把jar给前端让前端开发人员,在自己的本机启动后端服务,进行接口联调,…

streptavidin-PEG-6-FAM 链霉亲和素-聚乙二醇-6-羧甲基荧光素

产品名称:链霉亲和素-聚乙二醇-6-羧甲基荧光素 英文名称:streptavidin-PEG-6-FAM 纯度:95% 存储条件:-20C,避光,避湿 外观:固体或粘性液体,取决于分子量 PEG分子量可选:350、550、75…

虚拟内存系统【如何支持巨大的虚拟地址空间】

如何支持巨大的虚拟地址空间📖1. 为什么要支持巨大的虚拟地址空间📖2. 交换空间📖3. 存在位📖4. 页错误📖5. 为了处理页错误,操作系统大致做了什么?📖6. 页面换出📖7. 当…

IDEA 中使用 SparkSQL 远程连接 Hive

文章目录第一步,环境配置第二步,IDEA 配置第三步,授权第四步,连接测试扩展——华为云/阿里云集群报错第一步,环境配置 首先,你要确保你的集群可以正常运行。 我们在 Windows 电脑中安装 Hadoop&#xff0…

【新知实验室--音视频通话】腾讯云TRTC-实时音视频---多人会议视频通话SDK基础搭建

🦖我是Sam9029,一个前端 Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-JS学习,CSS学习,Vue-2领域博主 🐱‍🐉🐱‍🐉恭喜你,若此文你认为写的不错,不要吝啬你的赞扬,求收…

基于STM32单片机的篮球计时记分器proteus仿真原理图PCB

功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示比赛剩余时间,球队分数 2.默认计时器为4节,每节10分钟,每节比赛结束,蜂鸣器报警 3.按键功能介绍: 1’键——加1分 4’键——减1分 2’键——加2分 5’键—…

基于java+springmvc+mybatis+vue+mysql的水果食品果蔬生鲜商城销售系统

项目介绍 网络购物作为一种全新的销售方式赢得了越来越多销售者的青睐,近年来销售额更是以连年翻番的惊人速度成倍增长,网络购物已经形成了自身特有的网络销售市场和全新的网络营销模式,也使网络营销渠道应运而生,同时&#xff0…

SRM供应商平台哪些好用?

SRM系统是管理供应商的系统,旨在与供应商建立高效的协同关系,是一种围绕采购业务的双赢管理模式。 但市面上SRM系统供应商层出不穷,很多企业在数字化转型中不知如何挑选合适自己企业的SRM系统,或是选错了系统,效率提升…

成功的项目管理工具拥有的五大功能

如果您决定投资一种新的项目管理工具,那么您需要确保购买的是最适合自己的。在为您的企业寻找最佳项目管理软件时,不要被所有的花里胡哨分心,因为某些东西看起来很漂亮并不意味着它有实质。不要错过对团队成功至关重要的关键功能,…

【论文精读7】MVSNet系列论文详解-PVA-MVSNet

PVA-MVSNet论文名为:Pyramid Multi-view Stereo Net with Self-adaptive View Aggregation,主要是用了一个自适应的聚合模块来在构建代价体时不用均匀的方差、而是让不同的特征体具有一定的选择注意力权重来对最终的代价体做贡献,同时对于多尺…

星起航跨境:跨境卖家可以这样获得好评,稳步提升销量

据调查数据显示,90%以上的消费者购物之前会先查看产品评论,好的评价能促进产品更快地转化,不好的评价还会对产品listing权重产生一定的影响。例如:在产品listing的评价较少的情况下,一个1星差评在listing展示超过3天之…

WebRTC实战-第一章-理论基础

目录webrtc-demo基础理论ICE server/信令server/webrtc server的区别和联系coturn安装coturn穿透和转发服务器安装依赖ubuntu系统centos系统编译安装coturn快速测试启动自定义配置启动自定义配置真实配置新建start.sh测试地址,分别测试stun 和 turn打开测试地址测试…