W1-W5

  1. 计组相关笔记①
  2. 计组相关笔记②
  3. 计组相关笔记③
  4. 计组相关笔记④

进制转换

各种各样的进制互相转化啦
repeated subtraction
division remainder
注意除余法是倒着来

原码反码补码

第一位是符号位 正数 0 负数 1
正数的原码反码补码都一样!
正数的原码反码补码都一样!
正数的原码反码补码都一样!

  1. signed magnitude 原码:转化成二进制
  2. one’s complement 反码:正数的反码和原码一样 负数的反码是原码除了第一位以外 所有的位反转
  3. two’s complement 补码:正数的补码和原码一样 负数的补码是在反码的基础上+1

浮点表示法

在作业中,我们通常使用 14 位来表示浮点数,记住 158 就可以了。

如果你看到"with a bias of 16",这是指我们在表示指数时使用了偏移量。偏移量是一个大约在可表示的指数范围中间的数。我们从指数中减去偏移量来确定其真实值。在我们的例子中,我们有一个 5 位的指数,我们使用 16 作为我们的偏移量。这被称为超过 16 的表示法。

也就是说,158 中的 5,这个部分加上 16,然后再转化成二进制,就是我们的指数部分。

关于小数部分 第一位必须是 1 没什么好解释的 也就是小数部分必须是 0.1xxxxx 再乘 2 的几次方
然后这个小数部分抄到 158 的 8 中从前面开始写 后面不够就补 0

crc 循环冗余校验

话不多说 看例题就行


汉明码

先鸽着

真值表

送分题 仔细点咯

表达式化简

或与非逻辑门

给出表达式照着画图就 ok

寻址

How many bits would you need to address a 2M × 32 memory if
a. The memory is byte-addressable?
b. The memory is word-addressable?

如果内存是:
a. 字节寻址的?
b. 字寻址的?

首先,我们需要明白 2M × 32 内存表示的是 2M 个 32 位的字,也就是 2M 个 4 字节 的字。

a. 如果内存是字节寻址的,那么我们需要寻址的是每一个字节。因此,总的字节数是 2M 个字 × 4 字节/字 = 8M 字节。为了寻址 8M 个字节,我们需要 log2(8M) = 23 位。

b. 如果内存是字寻址的,那么我们需要寻址的是每一个字。因此,总的字数是 2M 个。为了寻址 2M 个字,我们需要 log2(2M) = 21 位。

芯片组

Suppose that a 2M × 16 main memory is built using 256K × 8 RAM chips and memory is word-addressable.
假设使用 256K × 8 RAM 芯片构建了一个 2M × 16 的主存储器,并且内存是字寻址的。

a. How many RAM chips are necessary?
a. 需要多少 RAM 芯片?
主存储器的总位数是 2M × 16,而每个 RAM 芯片的位数是 256K × 8。所以,需要的 RAM 芯片数是(2M × 16) / (256K × 8) = 16。

b. How many RAM chips are there per memory word?
b. 每个内存字有多少 RAM 芯片?
因为内存是字寻址的,每个字的大小是 16 位。每个 RAM 芯片可以提供 8 位,所以每个内存字需要 2 个 RAM 芯片。

c. How many address bits are needed for each RAM chip?
c. 每个 RAM 芯片需要多少地址位?
每个 RAM 芯片的大小是 256K,所以需要 log2(256K) = 18 位地址。

d. How many banks will this memory have?
d. 这个内存会有多少个存储区?
因为每个内存字需要 2 个 RAM 芯片,所以总的存储区数是 RAM 芯片数 / 每个内存字的 RAM 芯片数 = 16 / 2 = 8。

e. How many address bits are needed for all of memory?
e. 所有内存需要多少地址位?
主存储器的大小是 2M 个字,因为内存是字寻址的,所以需要 log2(2M) = 21 位地址。