计算机结构-知识点与题型总结

本文最后更新于 2023年10月20日 上午

知识点与题型总结

针对Brunel University: 2021 EE2623 Computer Architecture and Interfacing 的期末复习笔记
Lecturer: Dr. Itagaki Takebumi(板垣 剛文)/Dr.Hongying Meng(孟鸿鹰)
总结 本课程常考到的题型、相关知识点和回答模板

二进制数的表达和运算

整数的表达方式

分为Signed和Unsigned两种,两者之间的转换是将源码进行翻转后+1得到其二补码。
### 加法运算 加法运算时注意进位和溢出的问题,当进位值的前两位数值不同(为10或01)时代表运算符发生了溢出。

浮点数的表达方式

浮点数有两种表达规定:IEEE754和IBM。
同一精度下,IBM能够表达的范围更大,最小值也更小,精度更高。
#### IEEE754的例外 - NaN:Not a Number,是运算错误的表示,通常有如下几种情况运算结果是NaN:
1. \(⨦0 ÷ ⨦0\)
2. \(∞-∞\)
3. \(⨦∞÷⨦∞\)
4. \(⨦∞ × 0\)
- 无穷:当指数部分全为1,小数部分不为0时,运算接过是无穷。规定如下的情况结果会是无穷: 1. \(∞ × ∞\)
2. \(∞ + ∞\)
3. \(nonezero ÷ 0\) - 0:IEEE754中有正零和负零之分:两者的符号位不同,其余比特位全都是0,规定\(n ÷ ∞=0\)
#### 最大值和最小值/表示范围/精度 其最大值和最小值的求法是相同的。 最小数:
\[base^{-bias} × base^{-fraction}\] 最大数:
\[(base-base^{-fraction})×base^{(2^{exponent}-bias)}\] fraction: 小数部分的总位数,bias:偏置,base:基数 exponent:指数部分的总位数
注:IEEE754中由于非正规数的要求,应当写作:\((base-base^{-fraction})×base^{(2^{exponent}-bias-1)}\)

通信

两者之间的通信数据需要经过转换,转换步骤为:
1. 改变指数部分和小数部分的基底
2. 指数部分转化为不同的偏置下的新指数部分

由于IBM规定的精度大于IEEE754,因此从IBM转到IEEE754时数据的精度会有所损失。

内存

分级存储

由于访问性和成本的限制,需要对内存进行分级:
Level 1: 需要和CPU同步工作,每一个时钟内要确保被CPU完全读取一次,因此储存容量非常的小。
Level 2: 需要和数据总线同步工作,用于缓冲与Level 1 内存的数据读取速度差异,但读取速度不需要与level 1相同。
外部存储: 外部的存储设备数据读取的速度比数据总线慢,因此需要缓冲来补偿速度差异,但是其成本相比于level 1和level 2更低,因此容量通常更大。

大小端

大端: 对于一个多字节的数据,其MSB首先被存储的硬件称之为大端。 大端模式下,MSB被存储在最小的地址上,后续比特依次存储在更大的地址上,LSB被存储在最大的地址上。
小端: 对于一个多字节的数据,其LSB首先被存储的硬件称之为大端。 大端模式下,LSB被存储在最小的地址上,后续比特依次存储在更大的地址上,MSB被存储在最大的地址上。

冯诺依曼架构/ 哈佛架构

概述

冯诺依曼架构

  1. 基本组成部分:CPU.ALU.I/O.Memory
  2. 所有的组成部分都与线缆连接,这些线缆在逻辑上和物理上被整合到一起,称为总线。
  3. 程序和数据都被存放在同一个内存当中,没有任何外部存储。
  4. 控制器从内存中读取指令并运行。

哈佛架构

  1. 物理上具有分别独立的信道和存储用于储存指令和数据。
  2. 这两部分存储的实现方式、字长、时钟、地址、存储介质都可以不同。

判断结构类型

  1. 给出结论
  2. 说明有哪些结构特点是符合/不符合冯诺依曼架构的(所有的组成部分有无由总线连接)
  3. 说明有哪些结构特点是符合/不符合哈佛架构的(指令和数据是否具有分别独立的存储)

对比

  1. 哈佛架构允许在同一时间内读取指令和数据,且不会产生数据和指令的竞争。
  2. 哈佛架构允许使用不同的存储介质和方法存储指令和数据。
  3. 冯诺依曼架构中允许像访问数据一样访问指令,反之亦然。
  4. 冯诺依曼架构中指令被视作数据,因此冯诺依曼架构允许从外部存储中加载程序。

栈和缓存

  1. 栈是一种数据结构,其遵循后进先出(LIFO)的原则。
  2. 在现代计算机中,栈被应用于每一级内存。
  3. 基本的两个对栈的操作:出栈和入栈。

栈实例:逆波兰表示法计算器

  1. 表达式遵循从左到右,先运算数后运算符的顺序依次放入栈中。
  2. 运算符入栈后,栈顶的两个运算数同运算符一起出栈,运算结果入栈。
  3. 运算结果出栈。

缓冲

缓冲遵循先进先出(FIFO)的原则,分为两种缓冲:线形缓冲和环形缓冲,环形缓冲用于流媒体加载。
缓冲区的大小如果过大,初始化时间会比较长,需要将缓冲区填满的时间也比较长。
缓冲区如果过小,容易发生溢出,如果缓冲区不能够容纳所有的扰乱(Disruption),整个缓冲就会出错。

CPU的类型

CISC,Complex Instruction Set Computer

每一条指令可以执行数条低级的操作(比如一条指令就可以实现内存加载和数学运算等)
### RISC,Reduced Instruction Set Computer 大多数指令被限制成统一的长度和相似的结构,数学运算被限制在了CPU寄存器当中,只有对内存的读取和储存是分别的指令。
大多数的寄存机也是通用的,只有浮点寄存器仍然被专门化。
RISC指令集的计算机对pipline stages的平衡更佳,且允许更高的时钟频率,也更为高效。

MISC,Minimal Instruction Set Computer

数量非常少的操作和对应的操作码,指令集基本上是基于栈结构构造的。

ZISC和OISC在此略

串行连接和并行连接

对比

  1. 通常串行传输比并行传输速度更快。
  2. 串行传输不易出现Clock Skew(时钟信号在不同组件中到达的时间有差异)。
  3. 串行传输占用空间更少。
  4. 串行线路不容易受到周围线路的影响。
  5. 串行线路避免内Crosstalk(数据在传输时对另外的线路产生影响)。
  6. 串行线路由于Pin数更少,因此更便宜。

并行算法

基本定律

阿姆达尔定律:理想中对整个系统最大的改进是对系统中的部分进行改进。因此来自部分升级的影响总是有限的。

校验码

汉明码

在一串\(d\)位数据的\(2^{n-1}\)位上加入校验位,校验位的数量\(c\)满足:\(2^c-1>=d\)
\(n\)个校验码的校验条件满足: 从第\(2^n\)位开始,使用偶校验检测\(2^n\)位,再跳过\(2^n\)位,再检测\(2^n\)位,重复直到检测最后一位。
数据和校验码的位置序号是相反的,数据的比特位编号是从右到左依次减小,校验码的比特位是从右到左依次增大 缺点: 当只有一个校验码出错时,有50%的概率是数据出错,有50%的概率是校验码自己出错,无法确定。 有两个比特出错时可以检验,但无法校正。

题目类型:
1. 编码 2. 解码 3. 求未知数的值(注意可能性有很多种)

汉明码的局限性:
1. 当同时出现两个以上的比特位错误时,可能无法被检测到。
2. 出现一位比特错误时,在某些情况下无法判断是校验码还是数据发生了错误。

其他的校验方式

循环冗余校验(CRC,Cyclic Redundancy Checks)
通过生成独特的哈希函数来检测比特位的改变,但不能检测出恶意引入的错误。

前项校验(Forward Error Correction)
在卷积码和块码(通常是里德-所罗门码)之间做校验。


计算机结构-知识点与题型总结
https://l61012345.top/2021/06/15/学习笔记/计算机结构与接口/4. 知识点与题目总结/
作者
Oreki Kigiha
发布于
2021年6月15日
更新于
2023年10月20日
许可协议