仅记录有用部分,课件详细内容在 ppt 上已经很清楚了。
期末更新完毕。

# 第一次作业讲解

作业 1:. 为什么速率的总和没有意义?

作业 2:指令集结构不同的计算机,只比较 MIPS 是没有意义的,例如此题当中,A 的 MIPS 大,但是运行时间较长。

作业 3:采用不同指令集、流水线和并行

作业 4:MIPS 求和有意义吗?

组织不可见,结构可见

# lecture03 - 数据的机器级表示

参考紫书第 2 章 / 黑书第 9 章 计算机算数

# 信息的二进制编码

image-20230206212423836

# 整数的二进制数表示

image-20230206212538592

# 无符号整数

# 有符号整数:原码

image-20230206212617002

浮点数的尾数用原码定点小数表示

符号位不同,数值位相同

不同位长间的转换:符号位左移,空余的填补 0

零的表示不唯一,不利于程序员编程

# 有符号整数:反码

符号位和数值位均取反

# 有符号整数:移码

image-20230206212713363

是一种有符号数表示的方法,其中有符号数 n 是由对应于无符号数 n + K 的位模式表示,K 是偏置值偏移量

bias 通常取 2 的 n-1 次方或者 2 的 n-1 次方减 1

当 bias 为 2 的 n-1 次方时,移码和补码仅第一位不同,0 的表示唯一

浮点数的阶用移码表示:当两个数都是负数的时候,移码更容易比较

# 有符号整数:补码

image-20230206212951495

计算机处理中,通常使用补码

负数的数值部分 各位取反,末尾加 1

不同位长间的转换:符号位移到最左位,其余空出位用符号位的值替代

加和减的统一:
一个负数的补码等于模减该负数的绝对值
对于一个确定的模,某数减去小于模的另一数,总可以加上另一数负数的补码来代替。

image-20230206213326570

image-20230206213437827image-20230206213445567

求真值的补码

全 0:0

全 1:-1

10000...:- 2 n-1

image-20230206213456737

求补码的真值

**X = - xn-1 * 2 n-1 + ... + x 2 * 2 1+ x 1*20 **

若对负数的补码再取负,得到原来那个数【其中的特例是,-2n-1 在取负之后仍然为本身,因为范围内并没有 2n-1 与之相对应】

# 不同的整数编码

image-20230206213506590

# 浮点数

image-20230206215605149

单精度 32 位(1+8+23)仍然表示 232 个数

双精度 64 位(1+11+52)

基底为 2(也存在基底为 16 的情况)—— 基数越大,范围越大,精度越低

# 规格化数

image-20230206215738833

# 表示方法

S E M

  1. 符号位

  2. 8 位移码表示阶码(指数) —— 范围为 - 126~127,全 0 和全 1 为特殊值

  3. 23 位原码表示 24 位尾数,最高位总为 1

image-20230206215805100

image-20230206215829603

# IEEE 754 标准

image-20230206215835325

image-20230206215855152

image-20230206215904570

# 浮点数表示范围

image-20230206215913069

# 表示的数

规格化数,关注上溢出和下溢出,

下溢出部分用非格式化数表示,它的间距是等距的

越靠近原点,数越密集;越远离原点,数越稀疏

静默式和通知式非数 —— 静默式表示未定义的算数结果,通知式非数表示未初始化的值。

image-20230206215922563

image-20230206215931118

image-20230206215942570

image-20230206215949012

# 二进制编码的十进制数表示

image-20230206215956438

image-20230206220005672

正:1100

负:1101

# 非数值数据的编码表示

image-20230206220011980

# 总结

image-20230206220018992

# 计算机组成与体系结构:性能设计

# 整数的加法与减法(补码)

上溢规则

减法规则 —— 减法,即加上减数的 2 的补

在实际的操作中,有 OF 溢出位记录是否溢出

# 整数的乘法

# 无符号整数的乘法

两个 n 为二进制整数的乘法可产生最大长度为 2n 位的积

移位

计数 - 1

# 有符号整数的乘法

只要有一个是负数,原来的方法就不奏效

  1. 把被乘数和乘数都转变成正数再相乘,当两者初始的符号不相同时,结果取 2 的补

  2. 布斯(Booth)算法

    分为 10 01 【00 11】三种情况讨论

    运用公式, 2 n + 2 n-1 + ... + 2 n-k = 2 n+1 - 2 n-k

    很巧妙,优雅,实在是太优雅了!

# 整数的除法

搞来搞去,也很优雅

# 浮点数加法和减法

  1. 检查 0
  2. 对齐有效值
  3. 加法
  4. 规格化

注意时时检查是否有效值为 0,以及是否溢出

若两个数的阶值差别非常大,则较小的数丢失

# 浮点数乘法和除法

由于阶值是移码的形式,相乘的时候,两个阶值的和要减去一个偏移量,相除的时候,两个阶值的差要加上一个偏移量

# 精度考虑

  1. 保护位

    对齐的时候会导致丢失,在末尾增加保护位,可以扩展有效值的右端

  2. 舍入(不懂)

# 计算机组成与系统结构习题解答和教学指导

# 数据的表示

  • 数值数据 —— 二进制、十进制(BCD binary coded decimal)

  • 非数值数据

# 数据的宽度

数据容量和宽度

比特

字节

字(2 个 / 4 个 / 8 个 / 16 个字节)

# 数据的排列

  • 大端排列 —— 最低有效字节 LSB 存放在大地址单元中,MSB 所在地址为数据的地址
  • 小端排列 —— 最低有效字节 LSB 存放在小地址单元中,LSB 所在地址为数据的地址

# 数据校验方式

  • 奇偶校验

  • 海明校验

  • 循环冗余码校验