LOADING

日记

随时随地,分享生活

109 条短文

2.2.2 逻辑右移与算术右移

一句话定义

逻辑右移高位补 0。

详细讲解

  • 逻辑右移高位补 0。
  • 算术右移高位补符号位。

为什么与相邻节点相连: 2.2.2 逻辑移位右移后高位一律补 0,适合无符号数和位操作;2.2.2 算术移位对补码有符号数右移时复制符号位,使除以 2 的符号方向得到保持。两者移动位置相同,但空位填充规则和数值解释不同,所以需要连接辨析。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.2 逻辑右移与算术右移”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 逻辑右移高位补 0。

连接答案: 2.2.2 逻辑移位右移后高位一律补 0,适合无符号数和位操作;2.2.2 算术移位对补码有符号数右移时复制符号位,使除以 2 的符号方向得到保持。两者移动位置相同,但空位填充规则和数值解释不同,所以需要连接辨析。


2.2.3 CF 与 OF

一句话定义

CF 描述无符号进位/借位。

详细讲解

  • CF 描述无符号进位/借位。
  • OF 描述有符号补码范围溢出。

为什么与相邻节点相连: CF:进位/借位标志反映无符号运算的进位或借位,2.2.3 OF:溢出标志反映有符号补码结果是否超出表示范围;同一加减结果的 CF 与 OF 可以彼此独立,因此需要放在一起辨析,2.2.3 OF 与 CF 的根本区别则进一步总结二者“无符号解释与有符号解释”的区别。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.3 CF 与 OF”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: CF 描述无符号进位/借位。

连接答案: CF:进位/借位标志反映无符号运算的进位或借位,2.2.3 OF:溢出标志反映有符号补码结果是否超出表示范围;同一加减结果的 CF 与 OF 可以彼此独立,因此需要放在一起辨析,2.2.3 OF 与 CF 的根本区别则进一步总结二者“无符号解释与有符号解释”的区别。


2.2.4 变量乘常数与变量乘变量

一句话定义

变量乘常数常可直接优化成固定的移位和加减组合。

详细讲解

  • 变量乘常数常可直接优化成固定的移位和加减组合。
  • 变量乘变量也能用移位加法循环实现,只是迭代次数和控制更复杂。

为什么与相邻节点相连: 2.2.4 迭代式无符号乘法器和2.2.4 Booth 乘法都是能接收运行时操作数的通用乘法结构;若一个因子是编译期常数,常可把乘法化简成固定的移位与加减网络。2.2.4 阵列乘法器则把变量各位产生的部分积和归并网络完整展开,更典型地服务于变量乘变量,因此这些节点连接起来是为了判断是否真的需要通用乘法器。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 变量乘常数与变量乘变量”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 变量乘常数常可直接优化成固定的移位和加减组合。

连接答案: 2.2.4 迭代式无符号乘法器和2.2.4 Booth 乘法都是能接收运行时操作数的通用乘法结构;若一个因子是编译期常数,常可把乘法化简成固定的移位与加减网络。2.2.4 阵列乘法器则把变量各位产生的部分积和归并网络完整展开,更典型地服务于变量乘变量,因此这些节点连接起来是为了判断是否真的需要通用乘法器。


2.3.1 规格化数与非规格化数

一句话定义

规格化数有隐藏的前导 1,精度更充分。

详细讲解

  • 规格化数有隐藏的前导 1,精度更充分。
  • 非规格化数没有隐藏 1,用于靠近 0 的渐进下溢区域。

为什么与相邻节点相连: 2.3.1 规格化数的阶码字段非全 0,尾数使用隐藏位 1,从而在正常范围内保持统一精度;2.3.1 非规格化数的阶码字段全 0、隐藏位改为 0,用较低精度填补最小规格化数与 0 之间的空隙,实现渐进下溢。二者是 IEEE 754 有限数在不同数量级上的连续衔接。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 规格化数与非规格化数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 规格化数有隐藏的前导 1,精度更充分。

连接答案: 2.3.1 规格化数的阶码字段非全 0,尾数使用隐藏位 1,从而在正常范围内保持统一精度;2.3.1 非规格化数的阶码字段全 0、隐藏位改为 0,用较低精度填补最小规格化数与 0 之间的空隙,实现渐进下溢。二者是 IEEE 754 有限数在不同数量级上的连续衔接。


2.3.4 word 与机器字长

一句话定义

word:体系结构规定的数据组织单位。

详细讲解

  • word:体系结构规定的数据组织单位。
  • 机器字长:CPU 定点运算数据通路的实际位宽。

为什么与相邻节点相连: 2.3.4 bit、Byte、word 与机器字长把多个尺度放在一起说明,本节点专门辨析其中最容易误解的两个:word 是体系结构约定的数据组织单位,不是一个英文单词或汉字;机器字长通常指 CPU 定点运算数据通路或通用寄存器宽度,二者可能相同,也可能因体系结构约定而不同。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 word 与机器字长”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: word:体系结构规定的数据组织单位。

连接答案: 2.3.4 bit、Byte、word 与机器字长把多个尺度放在一起说明,本节点专门辨析其中最容易误解的两个:word 是体系结构约定的数据组织单位,不是一个英文单词或汉字;机器字长通常指 CPU 定点运算数据通路或通用寄存器宽度,二者可能相同,也可能因体系结构约定而不同。


3.1.1 随机存取与 RAM

一句话定义

随机存取:访问方式,ROM 也可采用。

详细讲解

  • 随机存取:访问方式,ROM 也可采用。
  • RAM:可读写、通常易失的一类半导体存储器。

为什么与相邻节点相连: 3.1.1 存取方式中的“随机存取”表示访问时间基本不依赖数据位置;3.2.1 SRAM和3.2.1 DRAM既属于 RAM,又支持按地址随机读写。3.2.2 ROM也可以按地址随机读取,却因不能像 RAM 那样正常随机改写而不属于 RAM,因此“随机存取”是访问方式,“RAM”是存储器类别,二者不能画等号。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.1 随机存取与 RAM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 随机存取:访问方式,ROM 也可采用。

连接答案: 3.1.1 存取方式中的“随机存取”表示访问时间基本不依赖数据位置;3.2.1 SRAM和3.2.1 DRAM既属于 RAM,又支持按地址随机读写。3.2.2 ROM也可以按地址随机读取,却因不能像 RAM 那样正常随机改写而不属于 RAM,因此“随机存取”是访问方式,“RAM”是存储器类别,二者不能画等号。


3.1.4 存取时间与存储周期

一句话定义

存取时间:一次操作从请求到完成需要多久。

详细讲解

  • 存取时间:一次操作从请求到完成需要多久。
  • 存储周期:两次独立操作最早能相隔多久。

为什么与相邻节点相连: 3.1.4 存取时间从发出读写请求算到数据读出有效或写入完成;3.1.4 存储周期从一次访问开始算到允许启动下一次独立访问,通常还包含恢复时间,所以存储周期不小于存取时间。二者都以时间衡量存储器,却对应不同终点,因此必须连接辨析。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.4 存取时间与存储周期”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 存取时间:一次操作从请求到完成需要多久。

连接答案: 3.1.4 存取时间从发出读写请求算到数据读出有效或写入完成;3.1.4 存储周期从一次访问开始算到允许启动下一次独立访问,通常还包含恢复时间,所以存储周期不小于存取时间。二者都以时间衡量存储器,却对应不同终点,因此必须连接辨析。


3.2.1 刷新与读后再生

一句话定义

刷新解决电容自然漏电,周期性发生。

详细讲解

  • 刷新解决电容自然漏电,周期性发生。
  • 读后再生解决 DRAM 的破坏性读出,读取后发生。

为什么与相邻节点相连: 3.2.1 刷新解决 DRAM 电容随时间漏电的问题,即使没有被访问也必须周期性恢复电荷;3.1.1 破坏性读出与读后再生解决读操作本身扰动或耗尽电荷的问题,读出后要立刻把检测到的值写回。两者都会补回电荷,但触发原因一个是时间流逝、一个是发生读取,因此需要连接辨析。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 刷新与读后再生”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 刷新解决电容自然漏电,周期性发生。

连接答案: 3.2.1 刷新解决 DRAM 电容随时间漏电的问题,即使没有被访问也必须周期性恢复电荷;3.1.1 破坏性读出与读后再生解决读操作本身扰动或耗尽电荷的问题,读出后要立刻把检测到的值写回。两者都会补回电荷,但触发原因一个是时间流逝、一个是发生读取,因此需要连接辨析。


3.2.3 轮流启动与同时启动

一句话定义

轮流启动:模块错开工作,形成流水。

详细讲解

  • 轮流启动:模块错开工作,形成流水。
  • 同时启动:多个芯片同一时刻并行组成一个宽数据字。

为什么与相邻节点相连: 3.2.3 轮流启动让不同存储模块在时间上错开工作,目标是流水化连续访问;3.2.3 同时启动让多个芯片在同一时刻各输出一部分位,目标是一次组成更宽的数据字,因此二者分别利用时间并行和空间并行,不能混为一种启动方式。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 轮流启动与同时启动”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 轮流启动:模块错开工作,形成流水。

连接答案: 3.2.3 轮流启动让不同存储模块在时间上错开工作,目标是流水化连续访问;3.2.3 同时启动让多个芯片在同一时刻各输出一部分位,目标是一次组成更宽的数据字,因此二者分别利用时间并行和空间并行,不能混为一种启动方式。


1.3.1 时钟频率与时钟周期

一句话定义

时钟频率(主频)f:CPU 每秒产生的时钟脉冲数,单位常用 Hz、MHz、GHz。

详细讲解

  • 时钟频率(主频)f:CPU 每秒产生的时钟脉冲数,单位常用 Hz、MHz、GHz。
  • 时钟周期 T:一个时钟脉冲所占的时间,是 CPU 时序活动的基本单位。
  • 二者互为倒数:T = 1/f。
  • MHz 的倒数可直接对应 μs,GHz 的倒数可直接对应 ns。

为什么与相邻节点相连: 时钟频率 f 与时钟周期 T 满足 f = 1/T,每个1.3.1 指令周期由一个或多个时钟周期组成;它通过 T_CPU = 指令条数 × CPI × T 影响1.3.1 CPU 执行时间,并与完成的工作量共同进入1.3.1 MIPS 与 MFLOPS等速率指标;3.1.4 时钟周期与存储周期提醒 CPU 的时钟节拍不等于存储器完成一次访问并恢复所需的时间,但二者可以换算成“一个存储周期跨多少拍”。

关联概念

复盘自测

不看上文:你能否用一句话说明“1.3.1 时钟频率与时钟周期”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 时钟频率(主频)f:CPU 每秒产生的时钟脉冲数,单位常用 Hz、MHz、GHz。

连接答案: 时钟频率 f 与时钟周期 T 满足 f = 1/T,每个1.3.1 指令周期由一个或多个时钟周期组成;它通过 T_CPU = 指令条数 × CPI × T 影响1.3.1 CPU 执行时间,并与完成的工作量共同进入1.3.1 MIPS 与 MFLOPS等速率指标;3.1.4 时钟周期与存储周期提醒 CPU 的时钟节拍不等于存储器完成一次访问并恢复所需的时间,但二者可以换算成“一个存储周期跨多少拍”。


1.3.1 指令周期

一句话定义

从取出一条指令到执行完成所需的时间。它通常包含多个时钟周期,不能和时钟周期混为一谈。

详细讲解

从取出一条指令到执行完成所需的时间。它通常包含多个时钟周期,不能和时钟周期混为一谈。

为什么与相邻节点相连: 1.3.1 时钟频率与时钟周期构成指令周期的时间基础;1.3.1 CPI用来量化指令周期。

关联概念

复盘自测

不看上文:你能否用一句话说明“1.3.1 指令周期”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 从取出一条指令到执行完成所需的时间。它通常包含多个时钟周期,不能和时钟周期混为一谈。

连接答案: 1.3.1 时钟频率与时钟周期构成指令周期的时间基础;1.3.1 CPI用来量化指令周期。


1.3.1 CPI

一句话定义

Cycles Per Instruction,平均每条指令需要的时钟周期数。

详细讲解

Cycles Per Instruction,平均每条指令需要的时钟周期数。

  • 某类指令 CPI:执行该类一条指令平均消耗的周期数。
  • 平均 CPI:各类指令 CPI 按动态指令比例加权平均。
  • 平均 CPI = 总时钟周期数 ÷ 总指令数。

为什么与相邻节点相连: CPI 表示执行一条指令平均需要多少个时钟周期,因此把1.3.1 指令周期换算为时钟周期数量;在同一程序和统计区间内,CPI 与1.3.1 IPC严格互为倒数;它又进入1.3.1 CPU 执行时间 = 指令条数 × CPI × 时钟周期,所以指令条数和主频不变时,CPI 越低,执行时间越短。

关联概念

复盘自测

不看上文:你能否用一句话说明“1.3.1 CPI”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Cycles Per Instruction,平均每条指令需要的时钟周期数。

连接答案: CPI 表示执行一条指令平均需要多少个时钟周期,因此把1.3.1 指令周期换算为时钟周期数量;在同一程序和统计区间内,CPI 与1.3.1 IPC严格互为倒数;它又进入1.3.1 CPU 执行时间 = 指令条数 × CPI × 时钟周期,所以指令条数和主频不变时,CPI 越低,执行时间越短。


1.3.1 CPU 执行时间

一句话定义

CPU 执行时间 = 指令条数 × 平均 CPI × 时钟周期

详细讲解

CPU 执行时间 = 指令条数 × 平均 CPI × 时钟周期

也可写为:

CPU 执行时间 = 指令条数 × 平均 CPI ÷ 主频

因此,主频高不必然更快;指令条数和 CPI 也会影响总时间。

为什么与相邻节点相连: CPU 执行时间 = 指令条数 × 1.3.1 CPI × 时钟周期,也可写成指令条数 × CPI ÷ 主频,所以在指令条数不变时,CPI 越低或主频越高,执行时间越短;1.3.1 IPC与 CPI 在同一统计口径下互为倒数,因此执行时间还可写成指令条数 ÷(IPC × 主频);1.3.1 MIPS 与 MFLOPS分别用执行时间和完成的指令数或浮点运算数计算吞吐率,因而能由执行时间与相应工作量换算,但不能仅凭执行时间单独得到。

关联概念

复盘自测

不看上文:你能否用一句话说明“1.3.1 CPU 执行时间”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: CPU 执行时间 = 指令条数 × 平均 CPI × 时钟周期

连接答案: CPU 执行时间 = 指令条数 × 1.3.1 CPI × 时钟周期,也可写成指令条数 × CPI ÷ 主频,所以在指令条数不变时,CPI 越低或主频越高,执行时间越短;1.3.1 IPC与 CPI 在同一统计口径下互为倒数,因此执行时间还可写成指令条数 ÷(IPC × 主频);1.3.1 MIPS 与 MFLOPS分别用执行时间和完成的指令数或浮点运算数计算吞吐率,因而能由执行时间与相应工作量换算,但不能仅凭执行时间单独得到。


1.3.1 IPC

一句话定义

Instructions Per Cycle,平均每个时钟周期完成的指令数。理想化地看,IPC≈1/CPI,但流水线、多发射等结构下要结合具体定义理解。

详细讲解

Instructions Per Cycle,平均每个时钟周期完成的指令数。理想化地看,IPC≈1/CPI,但流水线、多发射等结构下要结合具体定义理解。

为什么与相邻节点相连: IPC = 完成的指令数 ÷ 总时钟周期数;在与1.3.1 CPI采用同一程序、同一统计区间和同一完成指令口径时,IPC = 1/CPI,这是定义上的倒数关系,流水线和多发射只会使 IPC 可能大于 1,并不会破坏该关系;由1.3.1 CPU 执行时间 = 指令条数 ÷(IPC × 主频)可知,在指令条数和主频相同时,IPC 越高,执行时间越短。

关联概念

复盘自测

不看上文:你能否用一句话说明“1.3.1 IPC”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Instructions Per Cycle,平均每个时钟周期完成的指令数。理想化地看,IPC≈1/CPI,但流水线、多发射等结构下要结合具体定义理解。

连接答案: IPC = 完成的指令数 ÷ 总时钟周期数;在与1.3.1 CPI采用同一程序、同一统计区间和同一完成指令口径时,IPC = 1/CPI,这是定义上的倒数关系,流水线和多发射只会使 IPC 可能大于 1,并不会破坏该关系;由1.3.1 CPU 执行时间 = 指令条数 ÷(IPC × 主频)可知,在指令条数和主频相同时,IPC 越高,执行时间越短。


1.3.1 MIPS 与 MFLOPS

一句话定义

MIPS:Million Instructions Per Second,每秒执行多少百万条指令。

详细讲解

  • MIPS:Million Instructions Per Second,每秒执行多少百万条指令。
  • MFLOPS:Million Floating-point Operations Per Second,每秒执行多少百万次浮点运算。
  • MIPS 受指令集和指令功能复杂度影响,不适合直接比较不同 ISA 的机器。
  • 科学计算更关注浮点吞吐,因此常使用 FLOPS 类指标。

为什么与相邻节点相连: 1.3.1 CPU 执行时间可用于换算或推导MIPS 与 MFLOPS;1.3.1 时钟频率与时钟周期会影响MIPS 与 MFLOPS。

关联概念

复盘自测

不看上文:你能否用一句话说明“1.3.1 MIPS 与 MFLOPS”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: MIPS:Million Instructions Per Second,每秒执行多少百万条指令。

连接答案: 1.3.1 CPU 执行时间可用于换算或推导MIPS 与 MFLOPS;1.3.1 时钟频率与时钟周期会影响MIPS 与 MFLOPS。


2.1.2 补码

一句话定义

正数补码与原码相同。

详细讲解

  • 正数补码与原码相同。
  • 负数补码:在固定位宽内,对原码数值位取反后加 1;也可理解为 2ⁿ−|x|。
  • n 位补码范围:−2ⁿ⁻¹~2ⁿ⁻¹−1。
  • 补码只有一个 0,且加减法可统一交给加法器完成。

最高位既是补码编码的一部分,也用于判断符号;它不是额外添加在 n 位机器数之外的一位。

为什么与相邻节点相连: 2.1.2 模 2 补码与模 4 补码说明补码在单符号位与双符号位下的表示及溢出判断;2.1.4 符号扩展、零扩展与截断说明补码改变位宽时如何保持或重新解释真值;2.2.2 算术移位利用补码符号位完成有符号右移,并在左移时检查溢出;2.2.3 补码加减法把减法统一为加法,是补码便于硬件运算的核心;2.3.4 bit、Byte、word 与机器字长决定补码的固定位宽、表示范围和最高位含义;负数的2.1.2 反码加 1 得到补码,而2.1.2 原码与补码在负数编码、零的数量和运算便利性上形成对照;2.2.3 OF:溢出标志用于判断补码加减结果是否超出有符号范围;2.2.4 Booth 乘法利用补码加减和算术移位实现有符号乘法;2.2.4 除法异常预检需要检查“最小负数 ÷ −1”这一补码特有的溢出情形。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.2 补码”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 正数补码与原码相同。

连接答案: 2.1.2 模 2 补码与模 4 补码说明补码在单符号位与双符号位下的表示及溢出判断;2.1.4 符号扩展、零扩展与截断说明补码改变位宽时如何保持或重新解释真值;2.2.2 算术移位利用补码符号位完成有符号右移,并在左移时检查溢出;2.2.3 补码加减法把减法统一为加法,是补码便于硬件运算的核心;2.3.4 bit、Byte、word 与机器字长决定补码的固定位宽、表示范围和最高位含义;负数的2.1.2 反码加 1 得到补码,而2.1.2 原码与补码在负数编码、零的数量和运算便利性上形成对照;2.2.3 OF:溢出标志用于判断补码加减结果是否超出有符号范围;2.2.4 Booth 乘法利用补码加减和算术移位实现有符号乘法;2.2.4 除法异常预检需要检查“最小负数 ÷ −1”这一补码特有的溢出情形。


2.1.2 反码

一句话定义

正数反码与原码相同。

详细讲解

  • 正数反码与原码相同。
  • 负数反码:符号位不变,数值位逐位取反。
  • 同样存在正零和负零。

为什么与相邻节点相连: 正数的反码与2.1.2 原码相同,负数则由原码保持符号位并将数值位逐位取反得到;负数的反码再加 1 才得到2.1.2 补码,正数的反码和补码本来就相同;2.3.4 bit、Byte、word 与机器字长规定编码总位数,从而决定反码的符号位位置、表示范围以及逐位取反的范围。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.2 反码”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 正数反码与原码相同。

连接答案: 正数的反码与2.1.2 原码相同,负数则由原码保持符号位并将数值位逐位取反得到;负数的反码再加 1 才得到2.1.2 补码,正数的反码和补码本来就相同;2.3.4 bit、Byte、word 与机器字长规定编码总位数,从而决定反码的符号位位置、表示范围以及逐位取反的范围。


2.1.2 模 2 补码与模 4 补码

一句话定义

模 2 补码使用一个符号位,适合存储。

详细讲解

  • 模 2 补码使用一个符号位,适合存储。
  • 模 4 补码在 ALU 运算时使用双符号位,便于根据两个符号位是否一致判断溢出。
  • 正确结果的双符号位应为 00 或 11;01 表示正溢出,10 表示负溢出。
  • 数据存储时通常仍只保存一个符号位,需要运算时再复制符号位。

为什么与相邻节点相连: 本节点是2.1.2 补码表示在不同模数下的具体形式:模 2 补码用一个符号位保存数据,模 4 补码在运算时复制出双符号位;双符号位为 00 或 11 表示未溢出,为 01 或 10 表示溢出,因此它能辅助判断2.2.3 OF:溢出标志。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.2 模 2 补码与模 4 补码”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 模 2 补码使用一个符号位,适合存储。

连接答案: 本节点是2.1.2 补码表示在不同模数下的具体形式:模 2 补码用一个符号位保存数据,模 4 补码在运算时复制出双符号位;双符号位为 00 或 11 表示未溢出,为 01 或 10 表示溢出,因此它能辅助判断2.2.3 OF:溢出标志。


2.1.2 移码

一句话定义

移码常用于表示浮点阶码。其思想是给真实指数加一个固定偏置,使原本有正有负的指数变成非负编码。

详细讲解

移码常用于表示浮点阶码。其思想是给真实指数加一个固定偏置,使原本有正有负的指数变成非负编码。

IEEE 754 单精度的偏置值为 127,双精度的偏置值为 1023。

为什么与相邻节点相连: 2.3.1 浮点数的一般结构需要用阶码表示可正可负的指数,移码通过给真实指数加固定偏置把它映射成便于存储和比较的非负编码;2.3.1 IEEE 754 单精度的 8 位阶码采用偏置 127,2.3.1 IEEE 754 双精度的 11 位阶码采用偏置 1023,因此二者都是移码思想在具体浮点格式中的应用。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.2 移码”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 移码常用于表示浮点阶码。其思想是给真实指数加一个固定偏置,使原本有正有负的指数变成非负编码。

连接答案: 2.3.1 浮点数的一般结构需要用阶码表示可正可负的指数,移码通过给真实指数加固定偏置把它映射成便于存储和比较的非负编码;2.3.1 IEEE 754 单精度的 8 位阶码采用偏置 127,2.3.1 IEEE 754 双精度的 11 位阶码采用偏置 1023,因此二者都是移码思想在具体浮点格式中的应用。


2.1.2 原码

一句话定义

最高位表示符号:0 为正,1 为负。

详细讲解

  • 最高位表示符号:0 为正,1 为负。
  • 其余位表示绝对值。
  • 正零和负零有两种编码。
  • 原码加减需要分别处理符号和绝对值,硬件实现较复杂。

为什么与相邻节点相连: 在固定位宽下,正数的2.1.2 反码与原码相同,负数则由原码保持符号位、把数值位逐位取反得到反码;原码与2.1.2 补码都表示有符号整数,但二者对负数的编码、零的个数以及加减法硬件实现不同;2.3.4 bit、Byte、word 与机器字长决定原码可用多少位保存符号和绝对值,从而决定其表示范围。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.2 原码”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 最高位表示符号:0 为正,1 为负。

连接答案: 在固定位宽下,正数的2.1.2 反码与原码相同,负数则由原码保持符号位、把数值位逐位取反得到反码;原码与2.1.2 补码都表示有符号整数,但二者对负数的编码、零的个数以及加减法硬件实现不同;2.3.4 bit、Byte、word 与机器字长决定原码可用多少位保存符号和绝对值,从而决定其表示范围。


2.1.3 无符号整数

一句话定义

n 位无符号整数的范围为:0~2ⁿ−1。

详细讲解

n 位无符号整数的范围为:0~2ⁿ−1。

所有位都表示数值,不单独设置符号位。

为什么与相邻节点相连: 无符号整数扩位时使用2.1.4 符号扩展、零扩展与截断;无符号整数的操作过程常使用2.2.2 逻辑移位;2.3.4 bit、Byte、word 与机器字长提供了理解无符号整数所需的位宽背景;2.2.3 CF:进位/借位标志用于解释或判断无符号整数。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.3 无符号整数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: n 位无符号整数的范围为:0~2ⁿ−1。

连接答案: 无符号整数扩位时使用2.1.4 符号扩展、零扩展与截断;无符号整数的操作过程常使用2.2.2 逻辑移位;2.3.4 bit、Byte、word 与机器字长提供了理解无符号整数所需的位宽背景;2.2.3 CF:进位/借位标志用于解释或判断无符号整数。


2.1.4 常见类型宽度

一句话定义

char:1B。

详细讲解

类型大小由语言实现和 ABI 决定,不能仅凭类型名称在所有平台上断言。常见 32/64 位桌面环境中:

  • char:1B。
  • short:2B。
  • int:4B。
  • float:4B。
  • double:8B。
  • unsigned 本身不是固定宽度类型;unsigned 通常等价于 unsigned int,常见为 4B,但应以目标平台为准。

为什么与相邻节点相连: 常见类型宽度决定2.1.4 整数提升与混合运算发生时的位宽和类型前提;常见类型宽度会影响2.3.4 按字节编址的存储占用;常见类型宽度决定2.3.4 边界对齐的常见要求;常见类型宽度会影响2.3.4 结构体填充;2.3.4 bit、Byte、word 与机器字长约束常见类型宽度在机器中的具体实现。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.4 常见类型宽度”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: char:1B。

连接答案: 常见类型宽度决定2.1.4 整数提升与混合运算发生时的位宽和类型前提;常见类型宽度会影响2.3.4 按字节编址的存储占用;常见类型宽度决定2.3.4 边界对齐的常见要求;常见类型宽度会影响2.3.4 结构体填充;2.3.4 bit、Byte、word 与机器字长约束常见类型宽度在机器中的具体实现。


2.1.4 符号扩展、零扩展与截断

一句话定义

符号扩展:有符号数从短位宽扩展到长位宽,正数高位补 0,负数高位补 1,保持补码真值不变。

详细讲解

  • 符号扩展:有符号数从短位宽扩展到长位宽,正数高位补 0,负数高位补 1,保持补码真值不变。
  • 零扩展:无符号数扩展时,高位补 0。
  • 截断:长位宽转短位宽时只保留低位。截断可能改变真值,但保留下来的位模式是确定的。

处理类型转换时应分两步:先确定保留或扩展后的位模式,再按照目标类型解释这个位模式。

为什么与相邻节点相连: 2.1.4 整数提升与混合运算需要先按类型完成位宽转换,其中有符号整数通常做符号扩展,无符号整数做零扩展,缩窄时则截断高位;对2.1.2 补码进行符号扩展可以在增加字长时保持真值,而截断可能使其真值和符号发生变化;2.1.3 无符号整数扩位时必须高位补 0,缩窄时只保留低位。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.4 符号扩展、零扩展与截断”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 符号扩展:有符号数从短位宽扩展到长位宽,正数高位补 0,负数高位补 1,保持补码真值不变。

连接答案: 2.1.4 整数提升与混合运算需要先按类型完成位宽转换,其中有符号整数通常做符号扩展,无符号整数做零扩展,缩窄时则截断高位;对2.1.2 补码进行符号扩展可以在增加字长时保持真值,而截断可能使其真值和符号发生变化;2.1.3 无符号整数扩位时必须高位补 0,缩窄时只保留低位。


2.1.4 整数提升与混合运算

一句话定义

char、short 通常先提升为 int。

详细讲解

  • char、short 通常先提升为 int。
  • 不同类型混合运算时,较低等级类型向较高等级转换。
  • 常见路径可概括为 char→int→long→double,以及 float→double。

为什么与相邻节点相连: 整数提升与混合运算包含2.3.3 int 与 float;2.1.4 常见类型宽度决定整数提升与混合运算发生时的位宽和类型前提;2.1.4 符号扩展、零扩展与截断实现整数提升与混合运算中的整数扩展或转换。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.1.4 整数提升与混合运算”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: char、short 通常先提升为 int。

连接答案: 整数提升与混合运算包含2.3.3 int 与 float;2.1.4 常见类型宽度决定整数提升与混合运算发生时的位宽和类型前提;2.1.4 符号扩展、零扩展与截断实现整数提升与混合运算中的整数扩展或转换。


2.2.1 一位 ALU 与多位 ALU

一句话定义

n 位 ALU 可由 n 个一位 ALU 连接而成。第 i 位的 Cout 接到第 i+1 位的 Cin,从而让低位进位逐级传播到高位,这称为串行进位或行波进位。

详细讲解

n 位 ALU 可由 n 个一位 ALU 连接而成。第 i 位的 Cout 接到第 i+1 位的 Cin,从而让低位进位逐级传播到高位,这称为串行进位或行波进位。

实际一位 ALU 除了与门、或门、全加器,还可能包含异或门、反相控制和多路选择器,因此不能简单地把 32 位 ALU 等同于固定的 96 个门。

为什么与相邻节点相连: 一位 ALU 是处理一对操作数位的位片,多个位片按位并列并把低位 Cout 接到高位 Cin,可组成2.2.1 ALU的 n 位算术与逻辑通路;2.2.3 补码加减法利用同一条加法进位链,通过对 B 取反并令最低位 Cin = 1 把减法化成加法,而进位传播本身并非补码专属;2.2.4 阵列乘法器同样把大量位级加法单元组织成网络来归并部分积,因此二者连接是共享位级加法结构,不是阵列乘法器由完整的一位 ALU 构成。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.1 一位 ALU 与多位 ALU”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: n 位 ALU 可由 n 个一位 ALU 连接而成。第 i 位的 Cout 接到第 i+1 位的 Cin,从而让低位进位逐级传播到高位,这称为串行进位或行波进位。

连接答案: 一位 ALU 是处理一对操作数位的位片,多个位片按位并列并把低位 Cout 接到高位 Cin,可组成2.2.1 ALU的 n 位算术与逻辑通路;2.2.3 补码加减法利用同一条加法进位链,通过对 B 取反并令最低位 Cin = 1 把减法化成加法,而进位传播本身并非补码专属;2.2.4 阵列乘法器同样把大量位级加法单元组织成网络来归并部分积,因此二者连接是共享位级加法结构,不是阵列乘法器由完整的一位 ALU 构成。


2.2.1 ALU

一句话定义

Arithmetic Logic Unit,算术逻辑单元,完成加、减、与、或、异或、比较等操作。加法器是其核心部件,因为减法、比较以及部分乘除过程都可建立在加法之上。

详细讲解

Arithmetic Logic Unit,算术逻辑单元,完成加、减、与、或、异或、比较等操作。加法器是其核心部件,因为减法、比较以及部分乘除过程都可建立在加法之上。

AND、OR、XOR、NOT

  • AND(与):对应位都为 1,结果才为 1。
  • OR(或):对应位至少一个为 1,结果就是 1。
  • XOR(异或):对应位不同为 1,相同为 0。
  • NOT(非):0、1 逐位翻转。

“AND 类似乘法、OR 类似加法”只是在单个布尔值和部分逻辑代数语境下的类比,不是普通整数算术。

为什么与相邻节点相连: ALU 执行逻辑门运算与2.2.3 补码加减法,并根据结果产生CF:进位/借位标志、2.2.3 OF:溢出标志和2.2.3 ZF 与 SF;2.2.1 ALUop决定执行哪类运算,2.2.1 MUX从各通路产生的候选结果中选出最终输出;2.2.1 一位 ALU 与多位 ALU说明 ALU 如何由位级单元级联并传播进位;2.2.4 迭代式无符号乘法器则在多轮部分积更新中复用 ALU 的加法能力。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.1 ALU”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Arithmetic Logic Unit,算术逻辑单元,完成加、减、与、或、异或、比较等操作。加法器是其核心部件,因为减法、比较以及部分乘除过程都可建立在加法之上。

连接答案: ALU 执行逻辑门运算与2.2.3 补码加减法,并根据结果产生CF:进位/借位标志、2.2.3 OF:溢出标志和2.2.3 ZF 与 SF;2.2.1 ALUop决定执行哪类运算,2.2.1 MUX从各通路产生的候选结果中选出最终输出;2.2.1 一位 ALU 与多位 ALU说明 ALU 如何由位级单元级联并传播进位;2.2.4 迭代式无符号乘法器则在多轮部分积更新中复用 ALU 的加法能力。


2.2.1 ALUop

一句话定义

00:AND

详细讲解

控制 ALU 操作种类的编码。例如某种设计可能约定:

  • 00:AND
  • 01:OR
  • 10:ADD
  • 11:其他操作

具体编码依硬件设计而定,ALUop 本身不是固定的通用标准。

为什么与相邻节点相连: ALUop 是送给2.2.1 ALU或其控制译码器的操作选择编码,编码经译码后使相应的算术或逻辑通路工作;在采用并行生成候选结果的 ALU 中,2.2.1 MUX的选择端接收 ALUop 本身或由它译码得到的控制信号,从 AND、OR、ADD 等结果中选出一路,因此具体编码和连接方式由硬件设计决定。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.1 ALUop”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 00:AND

连接答案: ALUop 是送给2.2.1 ALU或其控制译码器的操作选择编码,编码经译码后使相应的算术或逻辑通路工作;在采用并行生成候选结果的 ALU 中,2.2.1 MUX的选择端接收 ALUop 本身或由它译码得到的控制信号,从 AND、OR、ADD 等结果中选出一路,因此具体编码和连接方式由硬件设计决定。


2.2.1 MUX

一句话定义

Multiplexer,多路选择器。多个候选输入同时连接到 MUX,控制信号决定哪一路被送到输出。

详细讲解

Multiplexer,多路选择器。多个候选输入同时连接到 MUX,控制信号决定哪一路被送到输出。

在 ALU 中,不同门路可以分别产生 AND、OR、ADD 等候选结果,MUX 再根据控制码选择最终结果。

为什么与相邻节点相连: MUX 是2.2.1 ALU内部常用的结果选择部件:各功能通路可并行产生 AND、OR、ADD 等候选值,MUX 只把被选中的一路送到 ALU 输出;2.2.1 ALUop本身或经译码后的控制位驱动 MUX 的选择端,所以 ALUop 回答“做哪种运算”,MUX 落实“让哪一路结果通过”。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.1 MUX”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Multiplexer,多路选择器。多个候选输入同时连接到 MUX,控制信号决定哪一路被送到输出。

连接答案: MUX 是2.2.1 ALU内部常用的结果选择部件:各功能通路可并行产生 AND、OR、ADD 等候选值,MUX 只把被选中的一路送到 ALU 输出;2.2.1 ALUop本身或经译码后的控制位驱动 MUX 的选择端,所以 ALUop 回答“做哪种运算”,MUX 落实“让哪一路结果通过”。


2.2.2 逻辑移位

一句话定义

逻辑左移:高位移出,低位补 0。

详细讲解

  • 逻辑左移:高位移出,低位补 0。
  • 逻辑右移:低位移出,高位补 0。
  • 主要用于无符号数和位操作。

为什么与相邻节点相连: 2.1.3 无符号整数的操作过程常使用逻辑移位;2.2.4 迭代式无符号乘法器依赖逻辑移位完成关键步骤;2.2.4 恢复余数法的工作过程使用逻辑移位;2.2.2 逻辑右移与算术右移用于辨析逻辑移位。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.2 逻辑移位”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 逻辑左移:高位移出,低位补 0。

连接答案: 2.1.3 无符号整数的操作过程常使用逻辑移位;2.2.4 迭代式无符号乘法器依赖逻辑移位完成关键步骤;2.2.4 恢复余数法的工作过程使用逻辑移位;2.2.2 逻辑右移与算术右移用于辨析逻辑移位。


2.2.2 算术移位

一句话定义

补码算术左移:高位移出、低位补 0,位模式与逻辑左移相同,但必须检查有符号溢出。

详细讲解

  • 补码算术左移:高位移出、低位补 0,位模式与逻辑左移相同,但必须检查有符号溢出。
  • 补码算术右移:低位移出,高位补原符号位,从而尽量保持负数符号。
  • 整数除法通常向 0 截断;负数算术右移常表现为向负无穷方向取整,因此不能在所有语言和机器上简单把“除以 2”与右移完全等同。

为什么与相邻节点相连: 2.1.2 补码的操作过程常使用算术移位;2.2.4 Booth 乘法依赖算术移位完成关键步骤;2.2.2 逻辑右移与算术右移用于辨析算术移位。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.2 算术移位”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 补码算术左移:高位移出、低位补 0,位模式与逻辑左移相同,但必须检查有符号溢出。

连接答案: 2.1.2 补码的操作过程常使用算术移位;2.2.4 Booth 乘法依赖算术移位完成关键步骤;2.2.2 逻辑右移与算术右移用于辨析算术移位。


2.2.3 补码加减法

一句话定义

A−B = A+[−B]补 = A+¬B+1

详细讲解

减法可化为加法:

A−B = A+[−B]补 = A+¬B+1

硬件中通常把 B 各位送入受 Sub 控制的异或/反相电路,并把 Sub 同时作为最低位进位 Cin:

  • Sub=0:执行 A+B。
  • Sub=1:执行 A+¬B+1,即 A−B。

为什么与相邻节点相连: 2.1.2 补码把 A−B 转换为 A+(¬B)+1,使加法和减法都能由2.2.1 ALU中的同一条加法通路完成;2.2.1 一位 ALU 与多位 ALU说明各位全加器怎样传播进位。运算产生的结果位进一步形成CF、OF和2.2.3 ZF 与 SF;2.2.4 Booth 乘法、2.2.4 恢复余数法与2.2.4 不恢复余数法都要反复执行加或减,因此复用这套补码加减硬件。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.3 补码加减法”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: A−B = A+[−B]补 = A+¬B+1

连接答案: 2.1.2 补码把 A−B 转换为 A+(¬B)+1,使加法和减法都能由2.2.1 ALU中的同一条加法通路完成;2.2.1 一位 ALU 与多位 ALU说明各位全加器怎样传播进位。运算产生的结果位进一步形成CF、OF和2.2.3 ZF 与 SF;2.2.4 Booth 乘法、2.2.4 恢复余数法与2.2.4 不恢复余数法都要反复执行加或减,因此复用这套补码加减硬件。


2.2.3 CF:进位/借位标志

一句话定义

Carry Flag,主要服务于无符号运算。

详细讲解

Carry Flag,主要服务于无符号运算。

  • 无符号加法中,CF 表示最高位是否产生进位。
  • 在本书约定的无符号减法中,CF=1 表示发生借位,即 A<B。
  • CF 不能用于判断有符号数是否超出补码范围。

为什么与相邻节点相连: CF 用来解释固定字长2.1.3 无符号整数加法的最高位进位和减法的借位;2.2.3 补码加减法所用的 n 位加法器会同时形成这一进位或借位信息,但 CF 不负责判断有符号溢出;2.2.3 OF:溢出标志判断补码有符号结果是否越界,因而与 CF 构成对照;2.2.3 OF 与 CF 的根本区别专门解释二者分别对应无符号解释和有符号解释;2.2.1 ALU执行加减后输出 CF;2.2.3 CF 与 OF是集中辨析这两个标志位的复习节点。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.3 CF:进位/借位标志”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Carry Flag,主要服务于无符号运算。

连接答案: CF 用来解释固定字长2.1.3 无符号整数加法的最高位进位和减法的借位;2.2.3 补码加减法所用的 n 位加法器会同时形成这一进位或借位信息,但 CF 不负责判断有符号溢出;2.2.3 OF:溢出标志判断补码有符号结果是否越界,因而与 CF 构成对照;2.2.3 OF 与 CF 的根本区别专门解释二者分别对应无符号解释和有符号解释;2.2.1 ALU执行加减后输出 CF;2.2.3 CF 与 OF是集中辨析这两个标志位的复习节点。


2.2.3 OF 与 CF 的根本区别

一句话定义

把操作数当无符号数看,是否超出 0~2ⁿ−1,由 CF 描述。

详细讲解

同一串结果位可同时产生两种解释:

  • 把操作数当无符号数看,是否超出 0~2ⁿ−1,由 CF 描述。
  • 把操作数当补码有符号数看,是否超出 −2ⁿ⁻¹~2ⁿ⁻¹−1,由 OF 描述。

ALU 只计算位模式和标志,不知道程序员最终把数据解释成 signed 还是 unsigned。

为什么与相邻节点相连: 2.2.3 OF:溢出标志判断同一串结果位按补码有符号数解释时是否越界,CF:进位/借位标志判断其按无符号数解释时是否出现最高位进位或减法借位;两者可在同一次加减中独立取值,2.2.3 CF 与 OF因此把本节点作为进一步理解这种根本区别的复习入口。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.3 OF 与 CF 的根本区别”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 把操作数当无符号数看,是否超出 0~2ⁿ−1,由 CF 描述。

连接答案: 2.2.3 OF:溢出标志判断同一串结果位按补码有符号数解释时是否越界,CF:进位/借位标志判断其按无符号数解释时是否出现最高位进位或减法借位;两者可在同一次加减中独立取值,2.2.3 CF 与 OF因此把本节点作为进一步理解这种根本区别的复习入口。


2.2.3 OF:溢出标志

一句话定义

Overflow Flag,主要服务于有符号补码运算。

详细讲解

Overflow Flag,主要服务于有符号补码运算。

  • 同号数相加得到异号结果时,发生溢出。
  • 异号数相加不会发生有符号溢出。
  • A−B 可看作 A+(−B),再按加法符号规律判断。
  • 也可比较最高数值位向符号位的进位与符号位向外的进位:二者不同则 OF=1。

为什么与相邻节点相连: OF 判断 n 位2.1.2 补码加减结果是否超出有符号表示范围;它与面向无符号进位或借位的CF:进位/借位标志相互独立,不能混用;2.2.3 补码加减法执行后会产生 OF;2.1.2 模 2 补码与模 4 补码中的双符号位 01、10 可直接识别正溢出和负溢出;2.2.3 OF 与 CF 的根本区别概括二者分别服务于有符号和无符号解释;减法比较时,2.2.3 ZF 与 SF中的 ZF 判断相等,SF 与 OF 通过 SF⊕OF 判断有符号小于;2.2.1 ALU负责生成 OF;2.2.3 CF 与 OF是二者的集中辨析入口。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.3 OF:溢出标志”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Overflow Flag,主要服务于有符号补码运算。

连接答案: OF 判断 n 位2.1.2 补码加减结果是否超出有符号表示范围;它与面向无符号进位或借位的CF:进位/借位标志相互独立,不能混用;2.2.3 补码加减法执行后会产生 OF;2.1.2 模 2 补码与模 4 补码中的双符号位 01、10 可直接识别正溢出和负溢出;2.2.3 OF 与 CF 的根本区别概括二者分别服务于有符号和无符号解释;减法比较时,2.2.3 ZF 与 SF中的 ZF 判断相等,SF 与 OF 通过 SF⊕OF 判断有符号小于;2.2.1 ALU负责生成 OF;2.2.3 CF 与 OF是二者的集中辨析入口。


2.2.3 ZF 与 SF

一句话定义

ZF(Zero Flag):结果全 0 时置 1。

详细讲解

  • ZF(Zero Flag):结果全 0 时置 1。
  • SF(Sign Flag):通常等于结果最高位,反映结果位模式的符号。
  • SF 不能单独判断有符号大小;发生溢出时还需结合 OF。

为什么与相邻节点相连: 2.2.3 补码加减法完成后,ZF 检查结果各位是否全为 0,SF 直接取结果最高位;2.2.1 ALU会生成这两个状态标志。ZF 可判断相等,而补码有符号比较中的“小于”不能只看 SF,因为溢出会翻转结果符号,必须与2.2.3 OF:溢出标志组合成 SF⊕OF。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.3 ZF 与 SF”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: ZF(Zero Flag):结果全 0 时置 1。

连接答案: 2.2.3 补码加减法完成后,ZF 检查结果各位是否全为 0,SF 直接取结果最高位;2.2.1 ALU会生成这两个状态标志。ZF 可判断相等,而补码有符号比较中的“小于”不能只看 SF,因为溢出会翻转结果符号,必须与2.2.3 OF:溢出标志组合成 SF⊕OF。


2.2.4 被乘数与乘数

一句话定义

X 是被乘数。

详细讲解

在 X×Y 中:

  • X 是被乘数。
  • Y 是乘数。

二者数学地位对称,但在具体硬件算法中通常分别放入固定寄存器,承担不同控制作用。

为什么与相邻节点相连: 被乘数与乘数定义了2.2.4 迭代式无符号乘法器所处理的操作数;被乘数与乘数定义了2.2.4 Booth 乘法所处理的操作数;被乘数与乘数定义了2.2.4 阵列乘法器所处理的操作数。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 被乘数与乘数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: X 是被乘数。

连接答案: 被乘数与乘数定义了2.2.4 迭代式无符号乘法器所处理的操作数;被乘数与乘数定义了2.2.4 Booth 乘法所处理的操作数;被乘数与乘数定义了2.2.4 阵列乘法器所处理的操作数。


2.2.4 被除数、除数、商与余数

一句话定义

X 是被除数。

详细讲解

在 X/Y 中:

  • X 是被除数。
  • Y 是除数。
  • Q 是商。
  • R 是余数。

为什么与相邻节点相连: 被除数、除数、商与余数给出了理解2.2.4 恢复余数法所需的基本定义;被除数、除数、商与余数给出了理解2.2.4 不恢复余数法所需的基本定义。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 被除数、除数、商与余数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: X 是被除数。

连接答案: 被除数、除数、商与余数给出了理解2.2.4 恢复余数法所需的基本定义;被除数、除数、商与余数给出了理解2.2.4 不恢复余数法所需的基本定义。


2.2.4 不恢复余数法

一句话定义

不够减时不立即加回除数,而是在下一轮根据当前余数符号决定加 Y 还是减 Y,从而减少“减后又恢复”的操作次数。考研复习中通常重点掌握其思想和与恢复余数法的区别,不必机械背诵所有符号规则,除非题目明确要求手算。

详细讲解

不够减时不立即加回除数,而是在下一轮根据当前余数符号决定加 Y 还是减 Y,从而减少“减后又恢复”的操作次数。考研复习中通常重点掌握其思想和与恢复余数法的区别,不必机械背诵所有符号规则,除非题目明确要求手算。

为什么与相邻节点相连: 不恢复余数法是在2.2.4 恢复余数法基础上的改进;不恢复余数法的工作过程使用2.2.3 补码加减法;2.2.4 被除数、除数、商与余数给出了理解不恢复余数法所需的基本定义;2.2.4 除法异常预检发生在不恢复余数法之前。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 不恢复余数法”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 不够减时不立即加回除数,而是在下一轮根据当前余数符号决定加 Y 还是减 Y,从而减少“减后又恢复”的操作次数。考研复习中通常重点掌握其思想和与恢复余数法的区别,不必机械背诵所有符号规则,除非题目明确要求手算。

连接答案: 不恢复余数法是在2.2.4 恢复余数法基础上的改进;不恢复余数法的工作过程使用2.2.3 补码加减法;2.2.4 被除数、除数、商与余数给出了理解不恢复余数法所需的基本定义;2.2.4 除法异常预检发生在不恢复余数法之前。


2.2.4 乘法溢出

一句话定义

无符号乘法:高 n 位不全为 0,则溢出。

详细讲解

n 位数相乘的完整积最多需要 2n 位。若机器只保留低 n 位:

  • 无符号乘法:高 n 位不全为 0,则溢出。
  • 补码乘法:高 n 位不是低 n 位符号位的正确扩展,则溢出。

Booth 算法能够正确算出完整补码乘积,但不能消除“结果装不进目标位宽”这种溢出。

为什么与相邻节点相连: 乘法溢出是否发生取决于2.3.4 bit、Byte、word 与机器字长所规定的目标位宽;2.2.4 迭代式无符号乘法器的结果可能出现乘法溢出;2.2.4 Booth 乘法的结果可能出现乘法溢出;2.2.4 阵列乘法器的结果可能出现乘法溢出。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 乘法溢出”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 无符号乘法:高 n 位不全为 0,则溢出。

连接答案: 乘法溢出是否发生取决于2.3.4 bit、Byte、word 与机器字长所规定的目标位宽;2.2.4 迭代式无符号乘法器的结果可能出现乘法溢出;2.2.4 Booth 乘法的结果可能出现乘法溢出;2.2.4 阵列乘法器的结果可能出现乘法溢出。


2.2.4 除法异常预检

一句话定义

除数是否为 0。

详细讲解

正式迭代前可以先检查:

  • 除数是否为 0。
  • |X|<|Y| 时,商直接为 0,余数为 X,可跳过 n 轮。
  • 补码除法的特殊溢出:最小负数 ÷ −1,结果超出正数最大值。

补码除法中,余数的符号应与被除数相同。

为什么与相邻节点相连: 除法异常预检发生在2.2.4 恢复余数法之前;除法异常预检发生在2.2.4 不恢复余数法之前;除法异常预检会检查与2.1.2 补码有关的异常条件。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 除法异常预检”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 除数是否为 0。

连接答案: 除法异常预检发生在2.2.4 恢复余数法之前;除法异常预检发生在2.2.4 不恢复余数法之前;除法异常预检会检查与2.1.2 补码有关的异常条件。


2.2.4 迭代式无符号乘法器

一句话定义

X:被乘数寄存器。

详细讲解

典型寄存器:

  • X:被乘数寄存器。
  • Y:乘数寄存器。
  • P:部分积寄存器。

每轮检查当前 Y₀:

  • Y₀=1:P←P+X。
  • Y₀=0:P 不变。
  • 随后把 P、Y 作为一个整体右移,使原来的 Y₁ 成为下一轮的新 Y₀。

n 位乘数需要检查 n 个乘数位,因此通常迭代 n 轮。

为什么与相邻节点相连: 2.2.4 被乘数与乘数确定 X 是被乘数、Y 是乘数;迭代结构逐轮检查 Y 的最低位,必要时复用2.2.1 ALU把 X 加入部分积,再用2.2.2 逻辑移位送入下一乘数位,n 位乘数通常执行 n 轮。2.2.4 迭代式与阵列式的区别说明这种时间复用以较少硬件换取较多周期;若完整 2n 位积被压缩到目标位宽,高位不全为 0 就会出现2.2.4 乘法溢出;2.2.4 变量乘常数与变量乘变量则用于判断能否把常数乘法化简为固定移位加法而省去通用迭代乘法器。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 迭代式无符号乘法器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: X:被乘数寄存器。

连接答案: 2.2.4 被乘数与乘数确定 X 是被乘数、Y 是乘数;迭代结构逐轮检查 Y 的最低位,必要时复用2.2.1 ALU把 X 加入部分积,再用2.2.2 逻辑移位送入下一乘数位,n 位乘数通常执行 n 轮。2.2.4 迭代式与阵列式的区别说明这种时间复用以较少硬件换取较多周期;若完整 2n 位积被压缩到目标位宽,高位不全为 0 就会出现2.2.4 乘法溢出;2.2.4 变量乘常数与变量乘变量则用于判断能否把常数乘法化简为固定移位加法而省去通用迭代乘法器。


2.2.4 迭代式与阵列式的区别

一句话定义

迭代式:复用一个 ALU 和移位器,多轮完成;硬件少、速度慢。

详细讲解

  • 迭代式:复用一个 ALU 和移位器,多轮完成;硬件少、速度慢。
  • 阵列式:展开多个部分积和加法单元,并行完成;硬件多、速度快。

为什么与相邻节点相连: 2.2.4 迭代式无符号乘法器按多个时钟周期反复复用少量加法和移位硬件,面积较小但延迟较长;2.2.4 阵列乘法器把部分积生成与加法归并网络在空间上展开,用更多面积和功耗换取较少计算周期。二者相连是为了比较时间复用与空间并行两种实现取舍。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 迭代式与阵列式的区别”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 迭代式:复用一个 ALU 和移位器,多轮完成;硬件少、速度慢。

连接答案: 2.2.4 迭代式无符号乘法器按多个时钟周期反复复用少量加法和移位硬件,面积较小但延迟较长;2.2.4 阵列乘法器把部分积生成与加法归并网络在空间上展开,用更多面积和功耗换取较少计算周期。二者相连是为了比较时间复用与空间并行两种实现取舍。


2.2.4 恢复余数法

一句话定义

  1. 将余数/商组合寄存器整体左移,把被除数下一位带入 R。

详细讲解

典型过程:

  1. 将余数/商组合寄存器整体左移,把被除数下一位带入 R。
  2. 试做 R−Y。
  3. 若结果非负,说明够减:保留结果,并令当前商位为 1。
  4. 若结果为负,说明不够减:执行 R←R+Y,恢复减法前的 R,并令当前商位为 0。

“恢复原值”指把刚刚错误试减掉的除数加回来,不是把全部寄存器恢复到除法开始前。

n 位被除数通常需要确定 n 个商位,因此一般执行 n 轮。

为什么与相邻节点相连: 恢复余数法的工作过程使用2.2.3 补码加减法;恢复余数法的工作过程使用2.2.2 逻辑移位;2.2.4 被除数、除数、商与余数给出了理解恢复余数法所需的基本定义;2.2.4 不恢复余数法是在恢复余数法基础上的改进;2.2.4 除法异常预检发生在恢复余数法之前。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 恢复余数法”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 1. 将余数/商组合寄存器整体左移,把被除数下一位带入 R。

连接答案: 恢复余数法的工作过程使用2.2.3 补码加减法;恢复余数法的工作过程使用2.2.2 逻辑移位;2.2.4 被除数、除数、商与余数给出了理解恢复余数法所需的基本定义;2.2.4 不恢复余数法是在恢复余数法基础上的改进;2.2.4 除法异常预检发生在恢复余数法之前。


2.2.4 阵列乘法器

一句话定义

各乘数位对应的部分积并行生成。

详细讲解

  • 各乘数位对应的部分积并行生成。
  • 部分积通过规则排列的加法器阵列并行归并。
  • 延迟较短、速度快,但硬件面积和功耗较大。

“同时求和”不是瞬间一次相加完毕,而是多级组合电路同时传播,最终在一个较长组合逻辑延迟后得到乘积。

为什么与相邻节点相连: 阵列乘法器把2.2.4 被乘数与乘数的各位两两相与,并按乘数位权对齐生成部分积,再用规则排列的半加器或全加器网络并行归并;它与2.2.1 一位 ALU 与多位 ALU的共同点是都由位级加法单元扩展成多位运算网络,但它并非由完整 ALU 位片直接组成;相较2.2.4 迭代式与阵列式的区别中的迭代方案,它以更多硬件面积和功耗换取较少计算周期;2.2.4 变量乘常数与变量乘变量说明通用阵列更适合变量乘变量,而乘常数常可由固定移位加减电路替代;若只保留完整 2n 位积的一部分,是否发生2.2.4 乘法溢出取决于被舍弃高位是否只是合法的零扩展或符号扩展。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 阵列乘法器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 各乘数位对应的部分积并行生成。

连接答案: 阵列乘法器把2.2.4 被乘数与乘数的各位两两相与,并按乘数位权对齐生成部分积,再用规则排列的半加器或全加器网络并行归并;它与2.2.1 一位 ALU 与多位 ALU的共同点是都由位级加法单元扩展成多位运算网络,但它并非由完整 ALU 位片直接组成;相较2.2.4 迭代式与阵列式的区别中的迭代方案,它以更多硬件面积和功耗换取较少计算周期;2.2.4 变量乘常数与变量乘变量说明通用阵列更适合变量乘变量,而乘常数常可由固定移位加减电路替代;若只保留完整 2n 位积的一部分,是否发生2.2.4 乘法溢出取决于被舍弃高位是否只是合法的零扩展或符号扩展。


2.2.4 Booth 乘法

一句话定义

00:不操作。

详细讲解

Booth 算法用于补码有符号乘法。它通过观察 Y₀ 和辅助位 Y₋₁ 的组合识别连续的 1:

  • 00:不操作。
  • 01:P←P+X。
  • 10:P←P−X。
  • 11:不操作。

每轮随后进行算术右移。算术右移和符号扩展保证负数的补码意义不被破坏。

核心直觉:一串连续的 1 可以用“高一位的 1 减去低端的 1”表示,从而减少连续加法次数。

为什么与相邻节点相连: Booth 乘法依赖2.2.2 算术移位完成关键步骤;Booth 乘法的工作过程使用2.2.3 补码加减法;Booth 乘法借助2.1.2 补码实现有符号运算;Booth 乘法的结果可能出现2.2.4 乘法溢出;2.2.4 被乘数与乘数定义了Booth 乘法所处理的操作数;2.2.4 变量乘常数与变量乘变量可应用到Booth 乘法。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.2.4 Booth 乘法”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 00:不操作。

连接答案: Booth 乘法依赖2.2.2 算术移位完成关键步骤;Booth 乘法的工作过程使用2.2.3 补码加减法;Booth 乘法借助2.1.2 补码实现有符号运算;Booth 乘法的结果可能出现2.2.4 乘法溢出;2.2.4 被乘数与乘数定义了Booth 乘法所处理的操作数;2.2.4 变量乘常数与变量乘变量可应用到Booth 乘法。


2.3.1 ±0、±∞ 与 NaN

一句话定义

阶码全 0、尾数全 0:±0。

详细讲解

  • 阶码全 0、尾数全 0:±0。
  • 阶码全 1、尾数全 0:±∞。
  • 阶码全 1、尾数非 0:NaN。

NaN 的符号位可以是 0 或 1,判断 NaN 只看阶码和尾数字段。

为什么与相邻节点相连: ±0、±∞ 与 NaN用于表示2.3.1 范围与精度中的边界值和异常值;±0、±∞ 与 NaN用于表示2.3.2 浮点上溢与下溢产生的特殊结果;2.3.1 IEEE 754 单精度包含±0、±∞ 与 NaN;2.3.1 IEEE 754 双精度包含±0、±∞ 与 NaN。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 ±0、±∞ 与 NaN”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 阶码全 0、尾数全 0:±0。

连接答案: ±0、±∞ 与 NaN用于表示2.3.1 范围与精度中的边界值和异常值;±0、±∞ 与 NaN用于表示2.3.2 浮点上溢与下溢产生的特殊结果;2.3.1 IEEE 754 单精度包含±0、±∞ 与 NaN;2.3.1 IEEE 754 双精度包含±0、±∞ 与 NaN。


2.3.1 范围与精度

一句话定义

单精度最小规格化正数:1.0×2⁻¹²⁶。

详细讲解

  • 单精度最小规格化正数:1.0×2⁻¹²⁶。
  • 单精度最小非规格化正数:2⁻¹⁴⁹。
  • 单精度最大有限正数:(2−2⁻²³)×2¹²⁷。
  • 单精度可连续精确表示整数到 2²⁴;超过后,相邻可表示数的间距逐渐变大。

浮点数“范围大”不等于“所有范围内的整数都能精确表示”。

为什么与相邻节点相连: 范围与精度用于解释2.3.2 大数吃小数;2.3.1 规格化数会影响范围与精度;2.3.1 非规格化数用于扩展范围与精度靠近零的表示范围;2.3.1 ±0、±∞ 与 NaN用于表示范围与精度中的边界值和异常值;2.3.3 int 与 float依赖范围与精度完成关键步骤。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 范围与精度”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 单精度最小规格化正数:1.0×2⁻¹²⁶。

连接答案: 范围与精度用于解释2.3.2 大数吃小数;2.3.1 规格化数会影响范围与精度;2.3.1 非规格化数用于扩展范围与精度靠近零的表示范围;2.3.1 ±0、±∞ 与 NaN用于表示范围与精度中的边界值和异常值;2.3.3 int 与 float依赖范围与精度完成关键步骤。


2.3.1 非规格化数

一句话定义

阶码字段全 0、尾数字段非 0。其尾数为 0.F,没有隐藏的前导 1。

详细讲解

阶码字段全 0、尾数字段非 0。其尾数为 0.F,没有隐藏的前导 1。

单精度非规格化数真值为:

(−1)ˢ × 0.F × 2⁻¹²⁶

它用于在最小规格化数与 0 之间实现渐进下溢。

为什么与相邻节点相连: 非规格化数用于扩展2.3.1 范围与精度靠近零的表示范围;非规格化数通过渐进表示缓解2.3.2 浮点上溢与下溢中的下溢问题;2.3.1 IEEE 754 单精度包含非规格化数;2.3.1 IEEE 754 双精度包含非规格化数;2.3.1 规格化数与非规格化数共同衔接正常数和接近零的表示范围;2.3.1 规格化数与非规格化数用于辨析非规格化数。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 非规格化数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 阶码字段全 0、尾数字段非 0。其尾数为 0.F,没有隐藏的前导 1。

连接答案: 非规格化数用于扩展2.3.1 范围与精度靠近零的表示范围;非规格化数通过渐进表示缓解2.3.2 浮点上溢与下溢中的下溢问题;2.3.1 IEEE 754 单精度包含非规格化数;2.3.1 IEEE 754 双精度包含非规格化数;2.3.1 规格化数与非规格化数共同衔接正常数和接近零的表示范围;2.3.1 规格化数与非规格化数用于辨析非规格化数。


2.3.1 浮点数的一般结构

一句话定义

数值 = 符号 × 尾数 × 基数的阶码次幂

详细讲解

浮点数可抽象为:

数值 = 符号 × 尾数 × 基数的阶码次幂

  • 符号位:决定正负。
  • 阶码:主要决定表示范围和小数点位置。
  • 尾数:主要决定有效数字和精度。
  • 基数:二进制浮点数通常以 2 为基数,编码中不需要保存。

总位数固定时,阶码越长,范围越大但尾数越短、精度越低;尾数越长,精度越高但阶码范围变小。

为什么与相邻节点相连: 2.3.1 IEEE 754 单精度和2.3.1 IEEE 754 双精度是浮点数通用结构的两种具体字段编码;阶码与尾数分开表示,使2.3.2 浮点加减流程必须依次完成对阶、尾数运算、规格化和舍入;2.1.2 移码用于编码阶码,把可正可负的真实指数映射为非负位模式。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 浮点数的一般结构”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 数值 = 符号 × 尾数 × 基数的阶码次幂

连接答案: 2.3.1 IEEE 754 单精度和2.3.1 IEEE 754 双精度是浮点数通用结构的两种具体字段编码;阶码与尾数分开表示,使2.3.2 浮点加减流程必须依次完成对阶、尾数运算、规格化和舍入;2.1.2 移码用于编码阶码,把可正可负的真实指数映射为非负位模式。


2.3.1 规格化数

一句话定义

阶码字段既不全为 0,也不全为 1。尾数默认是 1.F,前导 1 被隐藏。

详细讲解

阶码字段既不全为 0,也不全为 1。尾数默认是 1.F,前导 1 被隐藏。

规格化的主要作用是充分利用有限尾数位,提高有效精度,并让非零数具有较统一的表示形式。

为什么与相邻节点相连: 规格化数与2.3.1 非规格化数共同衔接正常数和接近零的表示范围;规格化数会影响2.3.1 范围与精度;2.3.1 IEEE 754 单精度包含规格化数;2.3.1 IEEE 754 双精度包含规格化数;2.3.1 规格化数与非规格化数用于辨析规格化数。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 规格化数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 阶码字段既不全为 0,也不全为 1。尾数默认是 1.F,前导 1 被隐藏。

连接答案: 规格化数与2.3.1 非规格化数共同衔接正常数和接近零的表示范围;规格化数会影响2.3.1 范围与精度;2.3.1 IEEE 754 单精度包含规格化数;2.3.1 IEEE 754 双精度包含规格化数;2.3.1 规格化数与非规格化数用于辨析规格化数。


2.3.1 IEEE 754 单精度

一句话定义

1 位符号位 S。

详细讲解

共 32 位:

  • 1 位符号位 S。
  • 8 位阶码字段 E,偏置 127。
  • 23 位尾数字段 F。

规格化数真值为:

(−1)ˢ × 1.F × 2ᴱ⁻¹²⁷

由于前导 1 隐含不存储,实际有效数字为 24 位。

为什么与相邻节点相连: IEEE 754 单精度把 32 位分成 1 位符号、8 位阶码和 23 位小数字段,是2.3.1 浮点数的一般结构的具体实现;阶码采用2.1.2 移码思想并使用偏置 127。阶码既非全 0 又非全 1 时表示2.3.1 规格化数,阶码全 0 时可表示2.3.1 非规格化数或零,阶码全 1 时表示±∞ 或 NaN;2.3.1 IEEE 754 双精度改用 64 位、11 位阶码和 52 位小数字段,因此范围和精度更高。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 IEEE 754 单精度”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 1 位符号位 S。

连接答案: IEEE 754 单精度把 32 位分成 1 位符号、8 位阶码和 23 位小数字段,是2.3.1 浮点数的一般结构的具体实现;阶码采用2.1.2 移码思想并使用偏置 127。阶码既非全 0 又非全 1 时表示2.3.1 规格化数,阶码全 0 时可表示2.3.1 非规格化数或零,阶码全 1 时表示±∞ 或 NaN;2.3.1 IEEE 754 双精度改用 64 位、11 位阶码和 52 位小数字段,因此范围和精度更高。


2.3.1 IEEE 754 双精度

一句话定义

1 位符号位。

详细讲解

共 64 位:

  • 1 位符号位。
  • 11 位阶码字段,偏置 1023。
  • 52 位尾数字段。

规格化数实际有 53 位有效数字。

为什么与相邻节点相连: IEEE 754 双精度把 64 位分成 1 位符号、11 位阶码和 52 位小数字段,是2.3.1 浮点数的一般结构的具体实现;阶码采用2.1.2 移码思想并使用偏置 1023。阶码普通取值编码2.3.1 规格化数,全 0 编码2.3.1 非规格化数或零,全 1 编码±∞ 或 NaN;相较2.3.1 IEEE 754 单精度,它用更多阶码位扩大范围、更多尾数位提高精度。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.1 IEEE 754 双精度”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 1 位符号位。

连接答案: IEEE 754 双精度把 64 位分成 1 位符号、11 位阶码和 52 位小数字段,是2.3.1 浮点数的一般结构的具体实现;阶码采用2.1.2 移码思想并使用偏置 1023。阶码普通取值编码2.3.1 规格化数,全 0 编码2.3.1 非规格化数或零,全 1 编码±∞ 或 NaN;相较2.3.1 IEEE 754 单精度,它用更多阶码位扩大范围、更多尾数位提高精度。


2.3.2 大数吃小数

一句话定义

单精度有效位为 24 位。两数阶差过大时,小阶操作数右移后有效位全部落到舍入范围之外,对最终结果不再有影响。

详细讲解

单精度有效位为 24 位。两数阶差过大时,小阶操作数右移后有效位全部落到舍入范围之外,对最终结果不再有影响。

在就近舍入下,阶差 ΔE≥25 时,可直接把结果视为较大操作数;ΔE=24 时,小数仍可能影响舍入。

为什么与相邻节点相连: 大数吃小数是2.3.3 浮点运算不满足结合律的典型表现;2.3.2 对阶可能导致大数吃小数;2.3.1 范围与精度用于解释大数吃小数;2.3.2 舍入方式会影响大数吃小数。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 大数吃小数”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 单精度有效位为 24 位。两数阶差过大时,小阶操作数右移后有效位全部落到舍入范围之外,对最终结果不再有影响。

连接答案: 大数吃小数是2.3.3 浮点运算不满足结合律的典型表现;2.3.2 对阶可能导致大数吃小数;2.3.1 范围与精度用于解释大数吃小数;2.3.2 舍入方式会影响大数吃小数。


2.3.2 对阶

一句话定义

小阶码向大阶码对齐:把小阶操作数的尾数右移,同时增大其阶码。

详细讲解

小阶码向大阶码对齐:把小阶操作数的尾数右移,同时增大其阶码。

  • 规格化数对阶前要先恢复隐藏的前导 1。
  • 前导 1 与尾数一起右移,可能被移出,不能始终固定为 1。
  • 非规格化数没有隐藏 1。

选择小阶向大阶对齐,是因为右移主要损失低位精度;反向对阶会让大数尾数左移并破坏统一格式,还可能更容易溢出。

为什么与相邻节点相连: 2.3.2 同号相加、异号相减在对阶之后执行;对阶可能导致2.3.2 大数吃小数;对阶会导致2.3.3 浮点运算不满足结合律;2.3.2 浮点加减流程的第一步是对阶。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 对阶”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 小阶码向大阶码对齐:把小阶操作数的尾数右移,同时增大其阶码。

连接答案: 2.3.2 同号相加、异号相减在对阶之后执行;对阶可能导致2.3.2 大数吃小数;对阶会导致2.3.3 浮点运算不满足结合律;2.3.2 浮点加减流程的第一步是对阶。


2.3.2 浮点加减流程

一句话定义

  1. 对阶。

详细讲解

  1. 对阶。
  2. 尾数加减。
  3. 规格化。
  4. 舍入。
  5. 判断阶码上溢、下溢及特殊结果。

为什么与相邻节点相连: 浮点加减流程的第一步是2.3.2 对阶;2.3.1 浮点数的一般结构规定或引出浮点加减流程的运算方式。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 浮点加减流程”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 1. 对阶。

连接答案: 浮点加减流程的第一步是2.3.2 对阶;2.3.1 浮点数的一般结构规定或引出浮点加减流程的运算方式。


2.3.2 浮点上溢与下溢

一句话定义

上溢:规格化或舍入后阶码超过最大有限指数,结果通常转为无穷并报告异常。

详细讲解

  • 上溢:规格化或舍入后阶码超过最大有限指数,结果通常转为无穷并报告异常。
  • 下溢:结果绝对值过小。先进入非规格化数范围;继续变小到无法表示时才成为机器零。
  • 尾数暂时超出规格化范围不等于最终溢出,它通常可通过左规或右规修正;最终关键看阶码。

为什么与相邻节点相连: 2.3.2 左规与右规可能导致浮点上溢与下溢;2.3.2 舍入方式可能触发浮点上溢与下溢;2.3.1 非规格化数通过渐进表示缓解浮点上溢与下溢中的下溢问题;2.3.1 ±0、±∞ 与 NaN用于表示浮点上溢与下溢产生的特殊结果。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 浮点上溢与下溢”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 上溢:规格化或舍入后阶码超过最大有限指数,结果通常转为无穷并报告异常。

连接答案: 2.3.2 左规与右规可能导致浮点上溢与下溢;2.3.2 舍入方式可能触发浮点上溢与下溢;2.3.1 非规格化数通过渐进表示缓解浮点上溢与下溢中的下溢问题;2.3.1 ±0、±∞ 与 NaN用于表示浮点上溢与下溢产生的特殊结果。


2.3.2 舍入方式

一句话定义

保护位 G:保留位之后的第一位。

详细讲解

保护位、舍入位与粘滞位

  • 保护位 G:保留位之后的第一位。
  • 舍入位 R:保护位之后的一位。
  • 粘滞位 S:更低所有被舍弃位的逻辑或,只要其中有一个 1,S 就为 1。

它们用于在有限尾数位数下判断如何舍入。

  • 就近舍入:选择距离原值最近的可表示数;恰好位于中点时通常舍入到偶数。
  • 朝 +∞ 舍入:选择不小于精确结果的最小可表示数。
  • 朝 −∞ 舍入:选择不大于精确结果的最大可表示数。
  • 朝 0 舍入:直接截去超出的低位,也称截断。

为什么与相邻节点相连: 舍入方式会影响2.3.2 大数吃小数;舍入方式可能触发2.3.2 浮点上溢与下溢;舍入方式会导致2.3.3 浮点运算不满足结合律;舍入方式在2.3.2 左规与右规之后执行;2.3.3 int 与 float的转换过程可能使用舍入方式。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 舍入方式”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 保护位 G:保留位之后的第一位。

连接答案: 舍入方式会影响2.3.2 大数吃小数;舍入方式可能触发2.3.2 浮点上溢与下溢;舍入方式会导致2.3.3 浮点运算不满足结合律;舍入方式在2.3.2 左规与右规之后执行;2.3.3 int 与 float的转换过程可能使用舍入方式。


2.3.2 同号相加、异号相减

一句话定义

两个操作数有效符号相同,尾数绝对值相加,结果符号保持不变。

详细讲解

这里描述的是尾数绝对值的处理:

  • 两个操作数有效符号相同,尾数绝对值相加,结果符号保持不变。
  • 两个操作数有效符号不同,尾数绝对值相减,结果符号取绝对值较大者的符号。

若原运算是减法,应先把第二个操作数符号取反,再判断是“同号”还是“异号”。

为什么与相邻节点相连: 2.3.2 左规与右规在同号相加、异号相减之后执行;同号相加、异号相减在2.3.2 对阶之后执行。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 同号相加、异号相减”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 两个操作数有效符号相同,尾数绝对值相加,结果符号保持不变。

连接答案: 2.3.2 左规与右规在同号相加、异号相减之后执行;同号相加、异号相减在2.3.2 对阶之后执行。


2.3.2 左规与右规

一句话定义

尾数绝对值 ≥2 时右规:尾数右移 1 位,阶码加 1。

详细讲解

  • 尾数绝对值 ≥2 时右规:尾数右移 1 位,阶码加 1。
  • 尾数形如 0.00…1 时左规:尾数左移到规格化形式,阶码相应减小。
  • 右规可能引起阶码上溢;左规可能引起阶码下溢。

为什么与相邻节点相连: 2.3.2 舍入方式在左规与右规之后执行;左规与右规可能导致2.3.2 浮点上溢与下溢;左规与右规在2.3.2 同号相加、异号相减之后执行。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.2 左规与右规”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 尾数绝对值 ≥2 时右规:尾数右移 1 位,阶码加 1。

连接答案: 2.3.2 舍入方式在左规与右规之后执行;左规与右规可能导致2.3.2 浮点上溢与下溢;左规与右规在2.3.2 同号相加、异号相减之后执行。


2.3.3 浮点运算不满足结合律

一句话定义

(a+b)+c ≠ a+(b+c)

详细讲解

由于每一步都可能对阶和舍入,通常有:

(a+b)+c ≠ a+(b+c)

当一个数远大于另一个数时,小数可能在对阶中被舍弃。

为什么与相邻节点相连: 2.3.2 对阶会导致浮点运算不满足结合律;2.3.2 舍入方式会导致浮点运算不满足结合律;2.3.2 大数吃小数是浮点运算不满足结合律的典型表现。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.3 浮点运算不满足结合律”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: (a+b)+c ≠ a+(b+c)

连接答案: 2.3.2 对阶会导致浮点运算不满足结合律;2.3.2 舍入方式会导致浮点运算不满足结合律;2.3.2 大数吃小数是浮点运算不满足结合律的典型表现。


2.3.3 int 与 float

一句话定义

32 位 int 转 float:范围通常足够,但 float 只有 24 位有效数字,较大整数可能舍入。

详细讲解

  • 32 位 int 转 float:范围通常足够,但 float 只有 24 位有效数字,较大整数可能舍入。
  • float 转 int:小数部分向 0 截断;若超出 int 范围,结果具有风险。
  • int 转 double:32 位 int 通常能被 53 位有效数字的 double 精确表示。
  • float 转 double:原 float 值可被 double 精确表示。
  • double 转 float:可能发生范围溢出或精度损失。

为什么与相邻节点相连: int 与 float依赖2.3.1 范围与精度完成关键步骤;int 与 float的转换过程可能使用2.3.2 舍入方式;2.1.4 整数提升与混合运算包含int 与 float。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.3 int 与 float”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 32 位 int 转 float:范围通常足够,但 float 只有 24 位有效数字,较大整数可能舍入。

连接答案: int 与 float依赖2.3.1 范围与精度完成关键步骤;int 与 float的转换过程可能使用2.3.2 舍入方式;2.1.4 整数提升与混合运算包含int 与 float。


2.3.4 按字节编址

一句话定义

每个地址对应 1B。一个 4B 的 int 占用 4 个连续地址,但变量地址通常指它的起始地址。

详细讲解

每个地址对应 1B。一个 4B 的 int 占用 4 个连续地址,但变量地址通常指它的起始地址。

为什么与相邻节点相连: 按字节编址以2.3.4 bit、Byte、word 与机器字长为基本单位和背景;按字节编址决定2.3.4 大端方式的字节地址排列;按字节编址决定2.3.4 小端方式的字节地址排列;按字节编址决定3.1.2 MAR 与 MDR中的地址如何解释;2.1.4 常见类型宽度会影响按字节编址的存储占用。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 按字节编址”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 每个地址对应 1B。一个 4B 的 int 占用 4 个连续地址,但变量地址通常指它的起始地址。

连接答案: 按字节编址以2.3.4 bit、Byte、word 与机器字长为基本单位和背景;按字节编址决定2.3.4 大端方式的字节地址排列;按字节编址决定2.3.4 小端方式的字节地址排列;按字节编址决定3.1.2 MAR 与 MDR中的地址如何解释;2.1.4 常见类型宽度会影响按字节编址的存储占用。


2.3.4 边界对齐

一句话定义

char 常按 1B 对齐。

详细讲解

数据起始地址通常要求是其对齐值的整数倍:

  • char 常按 1B 对齐。
  • short 常按 2B 对齐。
  • int/float 常按 4B 对齐。
  • double 的对齐规则取决于 ABI,常见为 4B 或 8B。

对齐有利于 CPU 用较少访存次数取得完整数据,是以少量空间换取访问速度。

为什么与相邻节点相连: 边界对齐会导致2.3.4 结构体填充;边界对齐会影响3.2.3 同时启动中的跨块访问次数;2.1.4 常见类型宽度决定边界对齐的常见要求。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 边界对齐”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: char 常按 1B 对齐。

连接答案: 边界对齐会导致2.3.4 结构体填充;边界对齐会影响3.2.3 同时启动中的跨块访问次数;2.1.4 常见类型宽度决定边界对齐的常见要求。


2.3.4 大端方式

一句话定义

MSB 放在低地址,字节存放顺序与十六进制标准书写顺序一致。

详细讲解

MSB 放在低地址,字节存放顺序与十六进制标准书写顺序一致。

为什么与相邻节点相连: 2.3.4 MSB 与 LSB定义多字节数据的最高和最低有效字节;在2.3.4 按字节编址的内存中,大端方式把 MSB 放在最低地址。2.3.4 小端方式恰好把 LSB 放在最低地址,所以两者保存的数值不变,只是各字节地址顺序相反。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 大端方式”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: MSB 放在低地址,字节存放顺序与十六进制标准书写顺序一致。

连接答案: 2.3.4 MSB 与 LSB定义多字节数据的最高和最低有效字节;在2.3.4 按字节编址的内存中,大端方式把 MSB 放在最低地址。2.3.4 小端方式恰好把 LSB 放在最低地址,所以两者保存的数值不变,只是各字节地址顺序相反。


2.3.4 结构体填充

一句话定义

每个成员从满足自身对齐要求的地址开始。

详细讲解

  • 每个成员从满足自身对齐要求的地址开始。
  • 成员之间可能插入填充字节。
  • 结构体总大小通常是最大成员对齐值的整数倍,尾部也可能填充。
  • 数组中每个结构体元素的跨度等于 sizeof(结构体),而不是各成员字节数的简单相加。

为什么与相邻节点相连: 2.3.4 边界对齐会导致结构体填充;2.1.4 常见类型宽度会影响结构体填充。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 结构体填充”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 每个成员从满足自身对齐要求的地址开始。

连接答案: 2.3.4 边界对齐会导致结构体填充;2.1.4 常见类型宽度会影响结构体填充。


2.3.4 小端方式

一句话定义

LSB 放在低地址。数值 12345678H 从低地址到高地址依次存放:78H、56H、34H、12H。

详细讲解

LSB 放在低地址。数值 12345678H 从低地址到高地址依次存放:78H、56H、34H、12H。

端序只改变多字节数据的字节排列,不改变一个字节内部的位顺序。

为什么与相邻节点相连: 2.3.4 MSB 与 LSB定义多字节数据的最高和最低有效字节;在2.3.4 按字节编址的内存中,小端方式把 LSB 放在最低地址。2.3.4 大端方式把 MSB 放在最低地址,因此两者的区别是字节排列,不是每个字节内部的二进制位倒序。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 小端方式”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: LSB 放在低地址。数值 12345678H 从低地址到高地址依次存放:78H、56H、34H、12H。

连接答案: 2.3.4 MSB 与 LSB定义多字节数据的最高和最低有效字节;在2.3.4 按字节编址的内存中,小端方式把 LSB 放在最低地址。2.3.4 大端方式把 MSB 放在最低地址,因此两者的区别是字节排列,不是每个字节内部的二进制位倒序。


2.3.4 bit、Byte、word 与机器字长

一句话定义

bit(位,b):一个二进制位,是最小信息单位。

详细讲解

  • bit(位,b):一个二进制位,是最小信息单位。
  • Byte(字节,B):通常由 8 bit 构成,是现代计算机常用的基本编址单位。
  • word(字):体系结构约定的数据组织单位,不是一个中文字符或英文单词。不同体系结构对 word 的长度定义可能不同。
  • 机器字长:CPU 定点运算数据通路的宽度,通常与通用寄存器宽度一致,如 32 位机、64 位机。

机器字长主要影响定点整数的表示范围、运算精度、寄存器和 ALU 位宽,也会影响硬件规模和成本;它不直接规定 float 一定有多少位。

为什么与相邻节点相连: bit 是一个二进制位,Byte 通常是 8 bit,word 是体系结构约定的数据单位,机器字长通常对应 CPU 定点数据通路与通用寄存器宽度;固定位宽决定2.1.3 无符号整数、2.1.2 原码、2.1.2 反码和2.1.2 补码的编码范围,也约束2.1.4 常见类型宽度及3.1.2 MAR 与 MDR等寄存器或通路宽度;2.3.4 按字节编址以 Byte 作为地址单位,而2.2.4 乘法溢出取决于完整积能否装入目标字长;2.3.4 word 与机器字长专门提醒 word 并非英文单词,也不必在所有体系结构中都等于机器字长。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 bit、Byte、word 与机器字长”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: bit(位,b):一个二进制位,是最小信息单位。

连接答案: bit 是一个二进制位,Byte 通常是 8 bit,word 是体系结构约定的数据单位,机器字长通常对应 CPU 定点数据通路与通用寄存器宽度;固定位宽决定2.1.3 无符号整数、2.1.2 原码、2.1.2 反码和2.1.2 补码的编码范围,也约束2.1.4 常见类型宽度及3.1.2 MAR 与 MDR等寄存器或通路宽度;2.3.4 按字节编址以 Byte 作为地址单位,而2.2.4 乘法溢出取决于完整积能否装入目标字长;2.3.4 word 与机器字长专门提醒 word 并非英文单词,也不必在所有体系结构中都等于机器字长。


2.3.4 MSB 与 LSB

一句话定义

MSB:最高有效字节或最高有效位。

详细讲解

  • MSB:最高有效字节或最高有效位。
  • LSB:最低有效字节或最低有效位。

描述端序时应使用 MSB/LSB,而不要依赖纸面上的“左边/右边”。

为什么与相邻节点相连: MSB 与 LSB定义了2.3.4 大端方式讨论的高、低有效部分;MSB 与 LSB定义了2.3.4 小端方式讨论的高、低有效部分。

关联概念

复盘自测

不看上文:你能否用一句话说明“2.3.4 MSB 与 LSB”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: MSB:最高有效字节或最高有效位。

连接答案: MSB 与 LSB定义了2.3.4 大端方式讨论的高、低有效部分;MSB 与 LSB定义了2.3.4 小端方式讨论的高、低有效部分。


3.1.1 存取方式

一句话定义

随机存取:访问时间与存储位置无关,如 SRAM、DRAM、ROM。

详细讲解

  • 随机存取:访问时间与存储位置无关,如 SRAM、DRAM、ROM。
  • 直接存取:先定位到附近,再顺序寻找,如机械硬盘。
  • 顺序存取:必须按记录顺序访问,如磁带。

“随机存取”是访问方式;“随机存储器 RAM”是一类存储器名称。ROM 也能随机读取,但不是 RAM。

为什么与相邻节点相连: 存取方式按“访问某位置是否依赖其物理位置和此前访问顺序”分类:3.2.1 SRAM、3.2.1 DRAM和3.2.2 ROM都可按地址直接随机读取,磁盘属于直接存取,磁带属于顺序存取;3.1.1 随机存取与 RAM专门提醒随机存取是一种访问方式,而 RAM 是存储器类别,所以能随机读取的 ROM 并不因此变成 RAM。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.1 存取方式”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 随机存取:访问时间与存储位置无关,如 SRAM、DRAM、ROM。

连接答案: 存取方式按“访问某位置是否依赖其物理位置和此前访问顺序”分类:3.2.1 SRAM、3.2.1 DRAM和3.2.2 ROM都可按地址直接随机读取,磁盘属于直接存取,磁带属于顺序存取;3.1.1 随机存取与 RAM专门提醒随机存取是一种访问方式,而 RAM 是存储器类别,所以能随机读取的 ROM 并不因此变成 RAM。


3.1.1 破坏性读出与读后再生

一句话定义

DRAM 读出会扰动存储电容,因此读出后需要把刚读出的数据重新写回,这称为读后再生。

详细讲解

DRAM 读出会扰动存储电容,因此读出后需要把刚读出的数据重新写回,这称为读后再生。

  • 刷新:即使 CPU 不访问,也要周期进行,解决自然漏电。
  • 读后再生:发生在读取之后,解决破坏性读出。

二者都可能表现为“读出再写回”,但触发原因不同。

为什么与相邻节点相连: 3.2.1 DRAM通过感应微小电容电荷读出数据,这个过程会扰动甚至耗尽原电荷,因此检测后必须把原值重新写回,这就是读后再生;3.2.1 刷新则是为抵消未访问时也会发生的自然漏电而周期性恢复。3.2.1 刷新与读后再生把两种都会补电荷、但触发原因不同的机制集中辨析。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.1 破坏性读出与读后再生”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: DRAM 读出会扰动存储电容,因此读出后需要把刚读出的数据重新写回,这称为读后再生。

连接答案: 3.2.1 DRAM通过感应微小电容电荷读出数据,这个过程会扰动甚至耗尽原电荷,因此检测后必须把原值重新写回,这就是读后再生;3.2.1 刷新则是为抵消未访问时也会发生的自然漏电而周期性恢复。3.2.1 刷新与读后再生把两种都会补电荷、但触发原因不同的机制集中辨析。


3.1.1 易失性与非易失性

一句话定义

易失性:断电后信息丢失,如 SRAM、DRAM。

详细讲解

  • 易失性:断电后信息丢失,如 SRAM、DRAM。
  • 非易失性:断电后信息仍保留,如 ROM、Flash、磁盘、磁带。

为什么与相邻节点相连: 该分类直接看断电后数据是否保留:3.2.1 SRAM和3.2.1 DRAM都要靠持续供电维持状态,因此属于易失性;3.2.2 ROM与3.2.2 Flash断电后仍保存内容,因此属于非易失性,其中 Flash 又提供受限次数的电擦写能力。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.1 易失性与非易失性”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 易失性:断电后信息丢失,如 SRAM、DRAM。

连接答案: 该分类直接看断电后数据是否保留:3.2.1 SRAM和3.2.1 DRAM都要靠持续供电维持状态,因此属于易失性;3.2.2 ROM与3.2.2 Flash断电后仍保存内容,因此属于非易失性,其中 Flash 又提供受限次数的电擦写能力。


3.1.2 存储元件、存储单元与存储阵列

一句话定义

存储元件:保存 1 bit 的基本物理电路。

详细讲解

  • 存储元件:保存 1 bit 的基本物理电路。
  • 存储单元:一次按地址选中的若干存储元件,宽度通常固定。
  • 存储阵列:大量存储单元按行列组织形成的核心区域。

为什么与相邻节点相连: 一个存储元件保存 1 bit,若干元件并排组成一次可读写的存储单元,许多单元再按行列组织成存储阵列;3.1.2 地址译码器把地址转换成选通信号以选中目标行或单元。3.2.1 SRAM用双稳态电路实现每一位,3.2.1 DRAM用电容与晶体管实现每一位,所以它们是同一层次结构的两种物理实现。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.2 存储元件、存储单元与存储阵列”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 存储元件:保存 1 bit 的基本物理电路。

连接答案: 一个存储元件保存 1 bit,若干元件并排组成一次可读写的存储单元,许多单元再按行列组织成存储阵列;3.1.2 地址译码器把地址转换成选通信号以选中目标行或单元。3.2.1 SRAM用双稳态电路实现每一位,3.2.1 DRAM用电容与晶体管实现每一位,所以它们是同一层次结构的两种物理实现。


3.1.2 地址译码器

一句话定义

把地址引脚输入的二进制地址转换为对某一行、列或存储单元的选择信号。

详细讲解

把地址引脚输入的二进制地址转换为对某一行、列或存储单元的选择信号。

为什么与相邻节点相连: 地址译码器受3.2.1 地址引脚与数据引脚提供的输入信号驱动;地址译码器选中目标后把通路连接到3.2.1 I/O 读写电路;3.1.2 存储元件、存储单元与存储阵列中的目标单元由地址译码器选择;3.3.2 位扩展与字扩展的工作过程使用地址译码器。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.2 地址译码器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 把地址引脚输入的二进制地址转换为对某一行、列或存储单元的选择信号。

连接答案: 地址译码器受3.2.1 地址引脚与数据引脚提供的输入信号驱动;地址译码器选中目标后把通路连接到3.2.1 I/O 读写电路;3.1.2 存储元件、存储单元与存储阵列中的目标单元由地址译码器选择;3.3.2 位扩展与字扩展的工作过程使用地址译码器。


3.1.2 MAR 与 MDR

一句话定义

MAR(Memory Address Register):保存当前访存地址,位数通常与可寻址地址空间有关。

详细讲解

  • MAR(Memory Address Register):保存当前访存地址,位数通常与可寻址地址空间有关。
  • MDR(Memory Data Register):保存本次读写的数据,位数通常与单次数据通路宽度有关。

为什么与相邻节点相连: MAR 与 MDR通过地址通路连接3.2.1 地址引脚与数据引脚;MAR 与 MDR通过数据通路连接3.2.1 I/O 读写电路;2.3.4 按字节编址决定MAR 与 MDR中的地址如何解释;2.3.4 bit、Byte、word 与机器字长会影响MAR 与 MDR的寄存器或通路宽度。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.2 MAR 与 MDR”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: MAR(Memory Address Register):保存当前访存地址,位数通常与可寻址地址空间有关。

连接答案: MAR 与 MDR通过地址通路连接3.2.1 地址引脚与数据引脚;MAR 与 MDR通过数据通路连接3.2.1 I/O 读写电路;2.3.4 按字节编址决定MAR 与 MDR中的地址如何解释;2.3.4 bit、Byte、word 与机器字长会影响MAR 与 MDR的寄存器或通路宽度。


3.1.3 存储层次

一句话定义

典型层次:寄存器 → Cache → 主存 → 辅存。

详细讲解

典型层次:寄存器 → Cache → 主存 → 辅存。

  • 越靠近 CPU:速度快、容量小、单位成本高。
  • 越远离 CPU:速度慢、容量大、单位成本低。
  • Cache—主存层主要缓解速度差异。
  • 主存—辅存层主要扩展容量并提供持久化。

为什么与相邻节点相连: 3.5.1 局部性原理说明程序近期更可能再次访问刚用过或邻近的数据,因此少量高速层可以替较慢的大容量层命中多数访问;3.2.1 SRAM速度快、成本高,适合作 Cache,3.2.1 DRAM容量大、成本较低,适合作主存,3.2.2 Flash非易失且容量较大,常用于 SSD 等辅存,于是三类器件分别落在存储层次的不同位置。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.3 存储层次”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 典型层次:寄存器 → Cache → 主存 → 辅存。

连接答案: 3.5.1 局部性原理说明程序近期更可能再次访问刚用过或邻近的数据,因此少量高速层可以替较慢的大容量层命中多数访问;3.2.1 SRAM速度快、成本高,适合作 Cache,3.2.1 DRAM容量大、成本较低,适合作主存,3.2.2 Flash非易失且容量较大,常用于 SSD 等辅存,于是三类器件分别落在存储层次的不同位置。


3.1.4 存储周期

一句话定义

连续启动两次独立存取操作之间允许的最小时间间隔。存储周期通常大于或等于存取时间,因为器件还可能需要恢复、预充电等过程。

详细讲解

连续启动两次独立存取操作之间允许的最小时间间隔。存储周期通常大于或等于存取时间,因为器件还可能需要恢复、预充电等过程。

为什么与相邻节点相连: 3.1.4 存取时间只量到数据有效或写入完成,而存储周期还包含恢复到可接受下一次独立访问的时间,因此前者是后者的组成部分且存储周期通常更长;它决定单模块连续访问频率,从而限制3.1.4 带宽上限,并通过 m×r ≥ T 约束3.2.3 轮流启动所需的模块数或启动间隔;3.1.4 时钟周期与存储周期负责把它与 CPU 节拍区分,3.1.4 存取时间与存储周期则集中比较两个存储器时间指标。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.4 存储周期”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 连续启动两次独立存取操作之间允许的最小时间间隔。存储周期通常大于或等于存取时间,因为器件还可能需要恢复、预充电等过程。

连接答案: 3.1.4 存取时间只量到数据有效或写入完成,而存储周期还包含恢复到可接受下一次独立访问的时间,因此前者是后者的组成部分且存储周期通常更长;它决定单模块连续访问频率,从而限制3.1.4 带宽上限,并通过 m×r ≥ T 约束3.2.3 轮流启动所需的模块数或启动间隔;3.1.4 时钟周期与存储周期负责把它与 CPU 节拍区分,3.1.4 存取时间与存储周期则集中比较两个存储器时间指标。


3.1.4 存取时间

一句话定义

从发出读/写请求,到数据可用或写入完成所需的时间。

详细讲解

从发出读/写请求,到数据可用或写入完成所需的时间。

为什么与相邻节点相连: 3.1.4 存储周期从一次访问开始量到允许下一次独立访问,通常还包含恢复时间;存取时间只量到数据有效或写入完成,因此前者通常不小于后者。3.1.4 存取时间与存储周期把这两个容易混淆的时间指标放在一起辨析。机械磁盘的3.4.1 磁盘性能指标也包含存取时间,但额外细分为寻道、旋转等待和数据传输三部分。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.4 存取时间”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 从发出读/写请求,到数据可用或写入完成所需的时间。

连接答案: 3.1.4 存储周期从一次访问开始量到允许下一次独立访问,通常还包含恢复时间;存取时间只量到数据有效或写入完成,因此前者通常不小于后者。3.1.4 存取时间与存储周期把这两个容易混淆的时间指标放在一起辨析。机械磁盘的3.4.1 磁盘性能指标也包含存取时间,但额外细分为寻道、旋转等待和数据传输三部分。


3.1.4 带宽

一句话定义

带宽 = 每次传输的数据量 ÷ 连续传输的时间间隔

详细讲解

单位时间内能够传输的数据量:

带宽 = 每次传输的数据量 ÷ 连续传输的时间间隔

注意区分 bit/s 与 B/s,1B=8b;MB/s 与 MiB/s 的进制也可能不同。

为什么与相邻节点相连: 3.1.4 存储周期决定带宽的理论上限;3.2.3 轮流启动能够提高带宽;3.2.3 同时启动能够提高带宽;3.2.1 SDRAM能够提升带宽;3.2.3 单体多字存储器能够提高带宽。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.4 带宽”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 带宽 = 每次传输的数据量 ÷ 连续传输的时间间隔

连接答案: 3.1.4 存储周期决定带宽的理论上限;3.2.3 轮流启动能够提高带宽;3.2.3 同时启动能够提高带宽;3.2.1 SDRAM能够提升带宽;3.2.3 单体多字存储器能够提高带宽。


3.1.4 时钟周期与存储周期

一句话定义

时钟周期是 CPU/同步电路的基本时间单位。

详细讲解

  • 时钟周期是 CPU/同步电路的基本时间单位。
  • 存取时间和存储周期是存储器的性能参数。
  • 可以把存储周期换算成若干 CPU 时钟周期,但二者不是同一个概念。

为什么与相邻节点相连: 1.3.1 时钟频率与时钟周期中的时钟周期是 CPU 和同步电路推进状态的基本节拍;3.1.4 存储周期是存储器从一次访问开始到允许下一次独立访问的最短间隔,往往跨越多个时钟周期。题目把纳秒换算成“多少个时钟周期”时要用存储周期 ÷ 时钟周期,因此两个“周期”必须连接但不能视为同一个量。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.1.4 时钟周期与存储周期”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 时钟周期是 CPU/同步电路的基本时间单位。

连接答案: 1.3.1 时钟频率与时钟周期中的时钟周期是 CPU 和同步电路推进状态的基本节拍;3.1.4 存储周期是存储器从一次访问开始到允许下一次独立访问的最短间隔,往往跨越多个时钟周期。题目把纳秒换算成“多少个时钟周期”时要用存储周期 ÷ 时钟周期,因此两个“周期”必须连接但不能视为同一个量。


3.2.1 地址复用

一句话定义

DRAM 把完整地址拆成行地址和列地址,分两个时刻通过同一组地址引脚送入,从而减少芯片引脚数。

详细讲解

DRAM 把完整地址拆成行地址和列地址,分两个时刻通过同一组地址引脚送入,从而减少芯片引脚数。

若总地址需要 2k 位,行列各 k 位且规模相等,则只需约 k 根地址引脚,而不是 2k 根。

为什么与相邻节点相连: 地址复用能够减少3.2.1 地址引脚与数据引脚所需的数量或硬件资源;3.2.1 DRAM的工作过程使用地址复用。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 地址复用”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: DRAM 把完整地址拆成行地址和列地址,分两个时刻通过同一组地址引脚送入,从而减少芯片引脚数。

连接答案: 地址复用能够减少3.2.1 地址引脚与数据引脚所需的数量或硬件资源;3.2.1 DRAM的工作过程使用地址复用。


3.2.1 地址引脚与数据引脚

一句话定义

N 表示可寻址存储单元数,若 N=2ᵏ,非复用情况下通常需要 k 根地址引脚。

详细讲解

容量写作 N×W 位时:

  • N 表示可寻址存储单元数,若 N=2ᵏ,非复用情况下通常需要 k 根地址引脚。
  • W 表示每个单元的位数,通常需要 W 根数据引脚。

地址引脚决定“选哪一个单元”,数据引脚决定“一次传多少位”。

为什么与相邻节点相连: 3.1.2 地址译码器受地址引脚与数据引脚提供的输入信号驱动;3.2.1 I/O 读写电路与地址引脚与数据引脚位于同一条数据或控制通路上;3.1.2 MAR 与 MDR通过地址通路连接地址引脚与数据引脚;3.2.1 地址复用能够减少地址引脚与数据引脚所需的数量或硬件资源;3.3.2 位扩展与字扩展会改变地址引脚与数据引脚。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 地址引脚与数据引脚”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: N 表示可寻址存储单元数,若 N=2ᵏ,非复用情况下通常需要 k 根地址引脚。

连接答案: 3.1.2 地址译码器受地址引脚与数据引脚提供的输入信号驱动;3.2.1 I/O 读写电路与地址引脚与数据引脚位于同一条数据或控制通路上;3.1.2 MAR 与 MDR通过地址通路连接地址引脚与数据引脚;3.2.1 地址复用能够减少地址引脚与数据引脚所需的数量或硬件资源;3.3.2 位扩展与字扩展会改变地址引脚与数据引脚。


3.2.1 刷新

一句话定义

以行为单位周期性读出并按原内容重新写入。

详细讲解

  • 以行为单位周期性读出并按原内容重新写入。
  • 目的是补充因漏电而减弱的电荷。
  • 刷新会占用存储器,可能与 CPU 正常访存冲突,形成“死时间”。

为什么与相邻节点相连: 3.2.1 DRAM的电容即使不被访问也会逐渐漏电,所以控制器必须在规定时间内逐行恢复电荷;3.2.1 SDRAM只是把接口操作与时钟同步,本质仍是 DRAM,因而仍要刷新。3.1.1 破坏性读出与读后再生是在一次读取后立即写回被扰动的数据,3.2.1 刷新与读后再生则连接二者以强调刷新由时间流逝触发,而再生由读操作触发。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 刷新”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 以行为单位周期性读出并按原内容重新写入。

连接答案: 3.2.1 DRAM的电容即使不被访问也会逐渐漏电,所以控制器必须在规定时间内逐行恢复电荷;3.2.1 SDRAM只是把接口操作与时钟同步,本质仍是 DRAM,因而仍要刷新。3.1.1 破坏性读出与读后再生是在一次读取后立即写回被扰动的数据,3.2.1 刷新与读后再生则连接二者以强调刷新由时间流逝触发,而再生由读操作触发。


3.2.1 行缓冲器

一句话定义

选中一行后,整行数据先进入行缓冲器。随后访问同一行的不同列会更快。行缓冲器通常使用 SRAM 结构实现。

详细讲解

选中一行后,整行数据先进入行缓冲器。随后访问同一行的不同列会更快。行缓冲器通常使用 SRAM 结构实现。

为什么与相邻节点相连: 行缓冲器通常采用3.2.1 SRAM实现;3.5.1 局部性原理为行缓冲器提供原理支撑;3.2.1 DRAM配备行缓冲器;3.2.1 SDRAM利用行缓冲器提高效率。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 行缓冲器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 选中一行后,整行数据先进入行缓冲器。随后访问同一行的不同列会更快。行缓冲器通常使用 SRAM 结构实现。

连接答案: 行缓冲器通常采用3.2.1 SRAM实现;3.5.1 局部性原理为行缓冲器提供原理支撑;3.2.1 DRAM配备行缓冲器;3.2.1 SDRAM利用行缓冲器提高效率。


3.2.1 DRAM

一句话定义

Dynamic Random Access Memory,动态随机存储器。

详细讲解

Dynamic Random Access Memory,动态随机存储器。

  • 使用电容中的电荷表示 0/1。
  • 电容会漏电,需要定期刷新。
  • 集成度高、成本低、容量大,但速度较 SRAM 慢。
  • 常用于主存。

为什么与相邻节点相连: 3.1.3 存储层次中通常用 DRAM 作为主存,因为它在容量、成本和速度之间取得了合适折中;DRAM 的电容型存储元件按行列组成存储单元与阵列,因而连接3.1.2 存储元件、存储单元与存储阵列;电容会漏电,所以必须定期3.2.1 刷新,读出又会扰动原有电荷,因此需要3.1.1 破坏性读出与读后再生;3.2.1 地址复用分时传送行地址和列地址以减少引脚,激活的一整行则暂存在3.2.1 行缓冲器中;按3.1.1 存取方式分类,DRAM 属于随机存取,按3.1.1 易失性与非易失性分类,它属于易失性存储器;3.2.1 SDRAM是与时钟同步工作的 DRAM 子类,3.1.1 随机存取与 RAM则用于区分“随机存取方式”和“RAM 存储器类别”。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 DRAM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Dynamic Random Access Memory,动态随机存储器。

连接答案: 3.1.3 存储层次中通常用 DRAM 作为主存,因为它在容量、成本和速度之间取得了合适折中;DRAM 的电容型存储元件按行列组成存储单元与阵列,因而连接3.1.2 存储元件、存储单元与存储阵列;电容会漏电,所以必须定期3.2.1 刷新,读出又会扰动原有电荷,因此需要3.1.1 破坏性读出与读后再生;3.2.1 地址复用分时传送行地址和列地址以减少引脚,激活的一整行则暂存在3.2.1 行缓冲器中;按3.1.1 存取方式分类,DRAM 属于随机存取,按3.1.1 易失性与非易失性分类,它属于易失性存储器;3.2.1 SDRAM是与时钟同步工作的 DRAM 子类,3.1.1 随机存取与 RAM则用于区分“随机存取方式”和“RAM 存储器类别”。


3.2.1 I/O 读写电路

一句话定义

读操作:感测存储阵列中的微弱信号并放大,经输出缓冲送往数据引脚。

详细讲解

  • 读操作:感测存储阵列中的微弱信号并放大,经输出缓冲送往数据引脚。
  • 写操作:把数据引脚送来的数据转换为足以改变存储元件状态的写入信号。

典型数据通路:

地址引脚 → 地址译码器 → 选中单元 → I/O 读写电路 → 输出缓冲器 → 数据引脚 → 数据总线/MDR

为什么与相邻节点相连: I/O 读写电路与3.2.1 地址引脚与数据引脚位于同一条数据或控制通路上;3.1.2 地址译码器选中目标后把通路连接到I/O 读写电路;3.1.2 MAR 与 MDR通过数据通路连接I/O 读写电路。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 I/O 读写电路”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 读操作:感测存储阵列中的微弱信号并放大,经输出缓冲送往数据引脚。

连接答案: I/O 读写电路与3.2.1 地址引脚与数据引脚位于同一条数据或控制通路上;3.1.2 地址译码器选中目标后把通路连接到I/O 读写电路;3.1.2 MAR 与 MDR通过数据通路连接I/O 读写电路。


3.2.1 SDRAM

一句话定义

Synchronous DRAM,同步动态随机存储器。

详细讲解

Synchronous DRAM,同步动态随机存储器。

  • 仍然是 DRAM,仍需刷新。
  • 与系统时钟同步交换命令和数据,时序可预测。
  • 可配合突发传输和行缓冲提高连续访问效率。

“同步”描述接口时序,不表示其存储元件变成了 SRAM。

为什么与相邻节点相连: SDRAM属于3.2.1 DRAM;SDRAM虽然经过改进,但仍需要3.2.1 刷新;SDRAM利用3.2.1 行缓冲器提高效率;SDRAM能够提升3.1.4 带宽。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 SDRAM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Synchronous DRAM,同步动态随机存储器。

连接答案: SDRAM属于3.2.1 DRAM;SDRAM虽然经过改进,但仍需要3.2.1 刷新;SDRAM利用3.2.1 行缓冲器提高效率;SDRAM能够提升3.1.4 带宽。


3.2.1 SRAM

一句话定义

Static Random Access Memory,静态随机存储器。

详细讲解

Static Random Access Memory,静态随机存储器。

  • 使用双稳态电路保存 0/1。
  • 只要不断电,状态可保持,不需要周期刷新。
  • 速度快、集成度较低、成本高、功耗较大。
  • 常用于 Cache 和高速缓冲部件。

“静态”表示不需要刷新,不表示断电后还能保存数据。

为什么与相邻节点相连: 3.1.3 存储层次通常把速度快但单元面积大、成本高的 SRAM 用作 Cache,而非大容量主存;它以双稳态电路构成3.1.2 存储元件、存储单元与存储阵列,只要不断电便能保持状态且不需刷新;按3.1.1 存取方式分类,SRAM 属于随机存取,按3.1.1 易失性与非易失性分类,它属于断电丢失数据的易失性存储器;DRAM 的3.2.1 行缓冲器常用 SRAM 锁存已激活的一行;3.1.1 随机存取与 RAM用于区分“随机存取方式”和“RAM 存储器类别”。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.1 SRAM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Static Random Access Memory,静态随机存储器。

连接答案: 3.1.3 存储层次通常把速度快但单元面积大、成本高的 SRAM 用作 Cache,而非大容量主存;它以双稳态电路构成3.1.2 存储元件、存储单元与存储阵列,只要不断电便能保持状态且不需刷新;按3.1.1 存取方式分类,SRAM 属于随机存取,按3.1.1 易失性与非易失性分类,它属于断电丢失数据的易失性存储器;DRAM 的3.2.1 行缓冲器常用 SRAM 锁存已激活的一行;3.1.1 随机存取与 RAM用于区分“随机存取方式”和“RAM 存储器类别”。


3.2.2 EEPROM

一句话定义

Electrically Erasable Programmable ROM,可用电信号擦除和写入,通常支持比 Flash 更细粒度的改写。

详细讲解

Electrically Erasable Programmable ROM,可用电信号擦除和写入,通常支持比 Flash 更细粒度的改写。

为什么与相邻节点相连: EEPROM 是3.2.2 ROM家族中可用电信号擦除和写入的类型,相比3.2.2 EPROM无需紫外线且可更细粒度地改写;3.2.2 Flash沿用浮栅和电擦写思想,但通常按块擦除,以更高密度和较快批量操作换取较粗的擦除粒度。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.2 EEPROM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Electrically Erasable Programmable ROM,可用电信号擦除和写入,通常支持比 Flash 更细粒度的改写。

连接答案: EEPROM 是3.2.2 ROM家族中可用电信号擦除和写入的类型,相比3.2.2 EPROM无需紫外线且可更细粒度地改写;3.2.2 Flash沿用浮栅和电擦写思想,但通常按块擦除,以更高密度和较快批量操作换取较粗的擦除粒度。


3.2.2 EPROM

一句话定义

Erasable Programmable ROM,可用紫外线整片擦除,再重新写入。擦写慢,不适合作为频繁读写的 RAM。

详细讲解

Erasable Programmable ROM,可用紫外线整片擦除,再重新写入。擦写慢,不适合作为频繁读写的 RAM。

为什么与相邻节点相连: EPROM 属于3.2.2 ROM的可编程类型:它比只能写一次的3.2.2 PROM多了紫外线整片擦除能力,但擦除时通常要离开电路且粒度很粗;3.2.2 EEPROM进一步改为电擦除和电写入,可以在电路内以更细粒度改写。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.2 EPROM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Erasable Programmable ROM,可用紫外线整片擦除,再重新写入。擦写慢,不适合作为频繁读写的 RAM。

连接答案: EPROM 属于3.2.2 ROM的可编程类型:它比只能写一次的3.2.2 PROM多了紫外线整片擦除能力,但擦除时通常要离开电路且粒度很粗;3.2.2 EEPROM进一步改为电擦除和电写入,可以在电路内以更细粒度改写。


3.2.2 Flash

一句话定义

属于非易失性半导体存储器。

详细讲解

  • 属于非易失性半导体存储器。
  • 电擦除,但通常按块擦除。
  • 写入前往往需要先擦除,写/擦速度明显慢于读取。
  • 擦写次数有限,需要磨损均衡等管理。
  • U 盘、SSD、存储卡等常使用 Flash。

为什么与相邻节点相连: Flash 使用电信号写入和按块擦除,是与3.2.2 EEPROM同属浮栅非易失半导体存储的相关技术,但以块擦除换取更高密度;它与3.2.2 ROM都能断电保存数据,却具有可擦写能力;按3.1.1 易失性与非易失性分类,Flash 属于非易失性;在3.1.3 存储层次中,它常作为 SSD、U 盘等容量大且需持久保存数据的辅存介质。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.2 Flash”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 属于非易失性半导体存储器。

连接答案: Flash 使用电信号写入和按块擦除,是与3.2.2 EEPROM同属浮栅非易失半导体存储的相关技术,但以块擦除换取更高密度;它与3.2.2 ROM都能断电保存数据,却具有可擦写能力;按3.1.1 易失性与非易失性分类,Flash 属于非易失性;在3.1.3 存储层次中,它常作为 SSD、U 盘等容量大且需持久保存数据的辅存介质。


3.2.2 PROM

一句话定义

Programmable ROM,用户可编程一次,写入后不能正常擦除重写。

详细讲解

Programmable ROM,用户可编程一次,写入后不能正常擦除重写。

为什么与相邻节点相连: 3.2.2 ROM是非易失只读存储器家族,PROM 是其中只能由用户编程一次、之后不能擦除重写的类型;3.2.2 EPROM可用紫外线整片擦除后重新编程,因此与 PROM 的“一次性”形成直接对比。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.2 PROM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Programmable ROM,用户可编程一次,写入后不能正常擦除重写。

连接答案: 3.2.2 ROM是非易失只读存储器家族,PROM 是其中只能由用户编程一次、之后不能擦除重写的类型;3.2.2 EPROM可用紫外线整片擦除后重新编程,因此与 PROM 的“一次性”形成直接对比。


3.2.2 ROM

一句话定义

Read-Only Memory,只读存储器。主要特征是非易失和正常运行时以读取为主。ROM 同样可以随机访问其中的地址。

详细讲解

Read-Only Memory,只读存储器。主要特征是非易失和正常运行时以读取为主。ROM 同样可以随机访问其中的地址。

为什么与相邻节点相连: 3.2.2 PROM只能编程一次,3.2.2 EPROM用紫外线整片擦除,3.2.2 EEPROM可用电信号更细粒度地擦写,它们都是 ROM 家族的具体可编程形式;3.2.2 Flash同样是非易失浮栅存储,但通常按块擦除并追求更高密度,因此与 ROM 密切相关而具有不同写入特性;按3.1.1 易失性与非易失性分类它们断电后都能保存数据,按3.1.1 存取方式又都能随机读取;3.1.1 随机存取与 RAM提醒随机读取并不等于属于 RAM。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.2 ROM”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: Read-Only Memory,只读存储器。主要特征是非易失和正常运行时以读取为主。ROM 同样可以随机访问其中的地址。

连接答案: 3.2.2 PROM只能编程一次,3.2.2 EPROM用紫外线整片擦除,3.2.2 EEPROM可用电信号更细粒度地擦写,它们都是 ROM 家族的具体可编程形式;3.2.2 Flash同样是非易失浮栅存储,但通常按块擦除并追求更高密度,因此与 ROM 密切相关而具有不同写入特性;按3.1.1 易失性与非易失性分类它们断电后都能保存数据,按3.1.1 存取方式又都能随机读取;3.1.1 随机存取与 RAM提醒随机读取并不等于属于 RAM。


3.2.3 单体多字存储器

一句话定义

一个存储单元同时存放并读出多个机器字,再通过较宽数据通路送出。它可以提高连续数据访问速度,但遇到转移或不连续访问时,预先读出的其他字可能无用。

详细讲解

一个存储单元同时存放并读出多个机器字,再通过较宽数据通路送出。它可以提高连续数据访问速度,但遇到转移或不连续访问时,预先读出的其他字可能无用。

为什么与相邻节点相连: 单体多字存储器能够提高3.1.4 带宽;3.5.1 局部性原理为单体多字存储器提供原理支撑;3.2.3 同时启动与单体多字存储器都体现了一次输出更宽数据的思路。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 单体多字存储器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 一个存储单元同时存放并读出多个机器字,再通过较宽数据通路送出。它可以提高连续数据访问速度,但遇到转移或不连续访问时,预先读出的其他字可能无用。

连接答案: 单体多字存储器能够提高3.1.4 带宽;3.5.1 局部性原理为单体多字存储器提供原理支撑;3.2.3 同时启动与单体多字存储器都体现了一次输出更宽数据的思路。


3.2.3 低位交叉编址

一句话定义

模块号 = 地址 mod 模块数

详细讲解

用低位地址选择模块,连续地址轮流分散到不同模块:

模块号 = 地址 mod 模块数

各模块有独立读写电路,可错开启动,从而提高连续访存吞吐率。

为什么与相邻节点相连: 低位交叉编址把连续地址依次分散到不同模块,使这些模块能够3.2.3 轮流启动,从而提高连续访存吞吐率;若在同一模块的存储周期结束前再次访问该模块,就会发生3.2.3 访存冲突;高位交叉/顺序编址用高位选择模块、使连续地址集中在同一模块,与用低位选择模块的低位交叉方式形成对照。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 低位交叉编址”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 模块号 = 地址 mod 模块数

连接答案: 低位交叉编址把连续地址依次分散到不同模块,使这些模块能够3.2.3 轮流启动,从而提高连续访存吞吐率;若在同一模块的存储周期结束前再次访问该模块,就会发生3.2.3 访存冲突;高位交叉/顺序编址用高位选择模块、使连续地址集中在同一模块,与用低位选择模块的低位交叉方式形成对照。


3.2.3 访存冲突

一句话定义

低位交叉中,如果相邻若干次访问过早地再次落到同一模块,而该模块上一次存取尚未结束,就会发生模块冲突,后一次请求需要等待。

详细讲解

低位交叉中,如果相邻若干次访问过早地再次落到同一模块,而该模块上一次存取尚未结束,就会发生模块冲突,后一次请求需要等待。

为什么与相邻节点相连: 3.2.3 低位交叉编址执行时可能发生访存冲突;3.2.3 轮流启动工作时需要避免访存冲突。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 访存冲突”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 低位交叉中,如果相邻若干次访问过早地再次落到同一模块,而该模块上一次存取尚未结束,就会发生模块冲突,后一次请求需要等待。

连接答案: 3.2.3 低位交叉编址执行时可能发生访存冲突;3.2.3 轮流启动工作时需要避免访存冲突。


3.2.3 高位交叉/顺序编址

一句话定义

用高位地址选择存储模块,一个模块保存一段连续地址。适合按模块划分容量,但连续地址大多集中在同一模块,难以让多个模块流水工作。

详细讲解

用高位地址选择存储模块,一个模块保存一段连续地址。适合按模块划分容量,但连续地址大多集中在同一模块,难以让多个模块流水工作。

为什么与相邻节点相连: 高位交叉或顺序编址用地址高位选择存储模块,使一段连续地址先集中落在同一模块中;3.2.3 低位交叉编址改用低位选择模块,让连续地址轮流分布到不同模块以支持并行流水访问。因此两者相连是为了比较连续地址的模块分布方式及其吞吐效果。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 高位交叉/顺序编址”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 用高位地址选择存储模块,一个模块保存一段连续地址。适合按模块划分容量,但连续地址大多集中在同一模块,难以让多个模块流水工作。

连接答案: 高位交叉或顺序编址用地址高位选择存储模块,使一段连续地址先集中落在同一模块中;3.2.3 低位交叉编址改用低位选择模块,让连续地址轮流分布到不同模块以支持并行流水访问。因此两者相连是为了比较连续地址的模块分布方式及其吞吐效果。


3.2.3 轮流启动

一句话定义

m×r ≥ T

详细讲解

不同模块依次相隔一个总线传输周期启动,类似流水线。若存取周期为 T、总线周期为 r、模块数为 m,为避免同一模块尚未结束又被重新启动,应满足:

m×r ≥ T

流水线充满后,理论上每隔 r 就能完成一个数据传送。

为什么与相邻节点相连: 轮流启动把多个模块按固定时间间隔错开工作,使一次访问尚未结束时下一模块已经开始,流水充满后可提高3.1.4 带宽;启动间隔受3.1.4 存储周期和模块数约束,若过早重新访问同一模块就会产生3.2.3 访存冲突;3.2.3 低位交叉编址把连续地址分散到不同模块,正好为这种错峰启动提供地址组织基础;3.2.3 同时启动让多个模块同一时刻共同输出一个宽数据字,因而与轮流启动的时间并行形成对照,3.2.3 轮流启动与同时启动集中辨析二者。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 轮流启动”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: m×r ≥ T

连接答案: 轮流启动把多个模块按固定时间间隔错开工作,使一次访问尚未结束时下一模块已经开始,流水充满后可提高3.1.4 带宽;启动间隔受3.1.4 存储周期和模块数约束,若过早重新访问同一模块就会产生3.2.3 访存冲突;3.2.3 低位交叉编址把连续地址分散到不同模块,正好为这种错峰启动提供地址组织基础;3.2.3 同时启动让多个模块同一时刻共同输出一个宽数据字,因而与轮流启动的时间并行形成对照,3.2.3 轮流启动与同时启动集中辨析二者。


3.2.3 同时启动

一句话定义

多个芯片或模块在同一时刻并行读写,共同组成一次总线宽度的数据。例如 8 个 8 位芯片同时工作,可一次提供 64 位。

详细讲解

多个芯片或模块在同一时刻并行读写,共同组成一次总线宽度的数据。例如 8 个 8 位芯片同时工作,可一次提供 64 位。

并行读取通常以总线宽度对应的对齐块为单位;数据跨越两个块时可能需要两次访问。

为什么与相邻节点相连: 同时启动让多个芯片或模块在同一时刻各提供一部分位,共同组成更宽的数据,因此能提高一次传输的数据量和3.1.4 带宽,也常配合3.3.2 位扩展与字扩展组成目标字长;它与3.2.3 单体多字存储器都体现一次取出更宽数据,但硬件组织并不相同;若数据因2.3.4 边界对齐问题跨越两个并行块,就可能需要两次访问;3.2.3 轮流启动是在时间上错开模块,3.2.3 轮流启动与同时启动则专门比较这两种并行方式。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.2.3 同时启动”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 多个芯片或模块在同一时刻并行读写,共同组成一次总线宽度的数据。例如 8 个 8 位芯片同时工作,可一次提供 64 位。

连接答案: 同时启动让多个芯片或模块在同一时刻各提供一部分位,共同组成更宽的数据,因此能提高一次传输的数据量和3.1.4 带宽,也常配合3.3.2 位扩展与字扩展组成目标字长;它与3.2.3 单体多字存储器都体现一次取出更宽数据,但硬件组织并不相同;若数据因2.3.4 边界对齐问题跨越两个并行块,就可能需要两次访问;3.2.3 轮流启动是在时间上错开模块,3.2.3 轮流启动与同时启动则专门比较这两种并行方式。


3.3.2 位扩展与字扩展

一句话定义

位扩展:多个芯片并行工作,增加每个存储字的位数;各芯片共用地址和控制信号,分别提供不同数据位。

详细讲解

  • 位扩展:多个芯片并行工作,增加每个存储字的位数;各芯片共用地址和控制信号,分别提供不同数据位。
  • 字扩展:增加可寻址单元数量;通过高位地址译码产生片选信号,一次只选中一组芯片。
  • 实际系统可同时进行位扩展和字扩展。

位平面

存储阵列中负责一个数据位的平面。若芯片组织为 N×W 位,可理解为 W 个 N×1 位的位平面并行组成。

为什么与相邻节点相连: 位扩展与字扩展的工作过程使用3.1.2 地址译码器;位扩展与字扩展会改变3.2.1 地址引脚与数据引脚;3.2.3 同时启动常用于实现位扩展与字扩展。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.3.2 位扩展与字扩展”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 位扩展:多个芯片并行工作,增加每个存储字的位数;各芯片共用地址和控制信号,分别提供不同数据位。

连接答案: 位扩展与字扩展的工作过程使用3.1.2 地址译码器;位扩展与字扩展会改变3.2.1 地址引脚与数据引脚;3.2.3 同时启动常用于实现位扩展与字扩展。


3.4 外部存储器

一句话定义

外部存储器位于主存之外,用于长期、大容量、非易失地保存程序和数据;本节的两类代表是机械磁盘和固态硬盘。

详细讲解

外部存储器位于主存之外,用于长期、大容量、非易失地保存程序和数据;本节的两类代表是机械磁盘和固态硬盘。

为什么与相邻节点相连: 3.1.3 存储层次将主存之外、用于长期保存数据的存储设备作为辅存;本节的3.4.1 磁盘存储器与3.4.2 固态硬盘分别代表机械磁介质与半导体闪存两类外部存储器。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4 外部存储器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 外部存储器位于主存之外,用于长期、大容量、非易失地保存程序和数据;本节的两类代表是机械磁盘和固态硬盘。

连接答案: 3.1.3 存储层次将主存之外、用于长期保存数据的存储设备作为辅存;本节的3.4.1 磁盘存储器与3.4.2 固态硬盘分别代表机械磁介质与半导体闪存两类外部存储器。


3.4.1 磁记录原理

一句话定义

磁头和磁性记录介质发生相对运动时,通过电磁转换实现数据读/写。

详细讲解

磁头和磁性记录介质发生相对运动时,通过电磁转换实现数据读/写。

  • 写入时,二进制数据按特定规则转换为磁层中的磁化翻转状态序列。
  • 读取时,磁头检测磁化状态变化并转换回电信号。

为什么与相邻节点相连: 3.4.1 磁盘存储器要完成读盘或写盘,必须让磁头与盘面发生相对运动,通过本原理在电信号与磁化翻转状态之间转换数据;这一物理过程是3.4.1 磁盘地址与工作过程最终读写目标扇区的基础。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.1 磁记录原理”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 磁头和磁性记录介质发生相对运动时,通过电磁转换实现数据读/写。

连接答案: 3.4.1 磁盘存储器要完成读盘或写盘,必须让磁头与盘面发生相对运动,通过本原理在电信号与磁化翻转状态之间转换数据;这一物理过程是3.4.1 磁盘地址与工作过程最终读写目标扇区的基础。


3.4.1 磁盘存储器

一句话定义

磁盘存储器由磁盘驱动器、磁盘控制器和盘片组成。盘片上可记录的一面称为记录面,每个磁头负责一个记录面的读/写。

详细讲解

磁盘存储器由磁盘驱动器、磁盘控制器和盘片组成。盘片上可记录的一面称为记录面,每个磁头负责一个记录面的读/写。

磁盘的存储区域按层次组织:记录面上有多条同心磁道;每条磁道划分为多个扇区,扇区是磁盘读/写的最小单位;所有记录面上半径相同、编号相同的磁道共同构成一个柱面。

磁盘高速缓存(Disk Cache)是在内存中开辟的一部分空间,用于暂存待写入或刚读出的磁盘数据。磁盘以由若干连续扇区组成的簇为单位写入;缓存可减少频繁小块写入,且中间结果若在写回前再次使用,可以直接从缓存读取。

为什么与相邻节点相连: 3.4 外部存储器中的机械磁盘通过盘片旋转和磁头移动保存、定位数据;其记录面、磁道、扇区与柱面组织决定了3.4.1 磁盘地址与工作过程如何定位数据,磁盘高速缓存利用3.5.1 局部性原理减少再次访问机械盘的机会;机械读写原理见3.4.1 磁记录原理,性能由3.4.1 磁盘性能指标衡量。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.1 磁盘存储器”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 磁盘存储器由磁盘驱动器、磁盘控制器和盘片组成。盘片上可记录的一面称为记录面,每个磁头负责一个记录面的读/写。

连接答案: 3.4 外部存储器中的机械磁盘通过盘片旋转和磁头移动保存、定位数据;其记录面、磁道、扇区与柱面组织决定了3.4.1 磁盘地址与工作过程如何定位数据,磁盘高速缓存利用3.5.1 局部性原理减少再次访问机械盘的机会;机械读写原理见3.4.1 磁记录原理,性能由3.4.1 磁盘性能指标衡量。


3.4.1 磁盘地址与工作过程

一句话定义

主机向磁盘控制器发送的磁盘地址通常由柱面(磁道)号、盘面(磁头)号和扇区号三部分组成。

详细讲解

主机向磁盘控制器发送的磁盘地址通常由柱面(磁道)号、盘面(磁头)号和扇区号三部分组成。

磁盘的主要操作包括寻址、读盘和写盘;每种操作对应一个控制字。工作时先读取控制字,再执行相应操作。由于磁盘是机械式部件,读/写操作串行执行。

为什么与相邻节点相连: 3.4.1 磁盘存储器的柱面、盘面(磁头)、扇区层次被编码为磁盘地址;控制器据此先寻址,再读盘或写盘。执行中磁头移动和扇区旋转等待共同构成3.4.1 磁盘性能指标中的主要机械延迟,数据的物理读写则依赖3.4.1 磁记录原理。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.1 磁盘地址与工作过程”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 主机向磁盘控制器发送的磁盘地址通常由柱面(磁道)号、盘面(磁头)号和扇区号三部分组成。

连接答案: 3.4.1 磁盘存储器的柱面、盘面(磁头)、扇区层次被编码为磁盘地址;控制器据此先寻址,再读盘或写盘。执行中磁头移动和扇区旋转等待共同构成3.4.1 磁盘性能指标中的主要机械延迟,数据的物理读写则依赖3.4.1 磁记录原理。


3.4.1 磁盘性能指标

一句话定义

记录密度指单位面积上可存储的二进制数据量,通常用道密度、位密度和面密度表示。

详细讲解

记录密度指单位面积上可存储的二进制数据量,通常用道密度、位密度和面密度表示。

  • 道密度:沿磁盘半径方向单位长度上的磁道数。
  • 位密度:单条磁道单位长度上可记录的二进制位数。
  • 面密度:位密度与道密度的乘积,反映单位面积的存储能力。

磁盘容量分为:

  • 非格式化容量:磁记录表面可利用的磁化单元总数。
  • 格式化容量:按特定格式组织后实际可用的存储容量。

非格式化容量大于格式化容量,因为格式化时需要预留扇区间隙、同步字段等开销。

响应时间与存取时间:完整响应时间包括请求排队延迟、控制器时间、寻道时间、旋转等待时间和数据传输时间;其中存取时间 = 寻道时间 + 旋转等待时间 + 数据传输时间。

  • 寻道时间:磁头移动到目标磁道所需时间;平均寻道时间通常取最大寻道时间的一半。
  • 旋转等待时间:目标扇区旋转到磁头下方所需时间;随机访问时平均等待半周。
  • 数据传输时间:读取或写入一个扇区所需时间,取决于磁盘转速和数据密度。

数据传输速率指磁盘单位时间向主机传送的数据量,单位为 B/s。若磁盘转速为 r 转/秒、单磁道容量为 N 字节,则最大数据传输速率 Dₜ = rN。

为什么与相邻节点相连: 本节点把教材同一标题下的记录密度、非格式化与格式化容量、响应时间与存取时间、寻道时间、旋转等待时间、数据传输时间和数据传输速率放在同一结构中理解;它与通用的3.1.4 存取时间相关,但机械磁盘还额外包含寻道和旋转等待两类机械延迟。RAID 通过多盘并行读写和冗余组织会影响这类性能与可靠性的取舍,因此连接3.4.1 RAID。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.1 磁盘性能指标”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 记录密度指单位面积上可存储的二进制数据量,通常用道密度、位密度和面密度表示。

连接答案: 本节点把教材同一标题下的记录密度、非格式化与格式化容量、响应时间与存取时间、寻道时间、旋转等待时间、数据传输时间和数据传输速率放在同一结构中理解;它与通用的3.1.4 存取时间相关,但机械磁盘还额外包含寻道和旋转等待两类机械延迟。RAID 通过多盘并行读写和冗余组织会影响这类性能与可靠性的取舍,因此连接3.4.1 RAID。


3.4.1 RAID

一句话定义

RAID(独立冗余磁盘阵列)把多个独立物理磁盘组合成一个逻辑磁盘;数据在多个物理盘上交叉分割存储并并行访问,以获得更高的存储性能、可靠性与安全性。

详细讲解

RAID(独立冗余磁盘阵列)把多个独立物理磁盘组合成一个逻辑磁盘;数据在多个物理盘上交叉分割存储并并行访问,以获得更高的存储性能、可靠性与安全性。

常见方案对比:

方案 核心组织 优点 代价
RAID0 数据块交叉分布在多个磁盘 可并行读/写,容量利用率高、速度快 无冗余、无校验;任一盘损坏都无法恢复
RAID1 两块磁盘保存完全相同的数据 镜像备份,可靠性高;一盘故障仍可读取 有效容量约为总容量的一半
RAID5 数据块与奇偶校验信息分布在各磁盘 有容错能力,且无专用校验盘瓶颈 需要维护分布式奇偶校验

RAID2 使用海明码纠错,RAID3 使用位交叉与奇偶校验,RAID4 使用块交叉与专用奇偶校验盘;考研复习中重点辨析 RAID0、RAID1、RAID5。

为什么与相邻节点相连: RAID 将多块独立物理磁盘组合成一个逻辑磁盘。RAID0 用数据条带化换取并行速度但没有容错;RAID1 用完整镜像换取可靠性;RAID5 用分布式奇偶校验兼顾容错与避免专用校验盘瓶颈。它属于3.4 外部存储器的多磁盘组织方式,并影响3.4.1 磁盘性能指标中的性能与可靠性取舍。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.1 RAID”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: RAID(独立冗余磁盘阵列)把多个独立物理磁盘组合成一个逻辑磁盘;数据在多个物理盘上交叉分割存储并并行访问,以获得更高的存储性能、可靠性与安全性。

连接答案: RAID 将多块独立物理磁盘组合成一个逻辑磁盘。RAID0 用数据条带化换取并行速度但没有容错;RAID1 用完整镜像换取可靠性;RAID5 用分布式奇偶校验兼顾容错与避免专用校验盘瓶颈。它属于3.4 外部存储器的多磁盘组织方式,并影响3.4.1 磁盘性能指标中的性能与可靠性取舍。


3.4.2 固态硬盘

一句话定义

固态硬盘(SSD)是基于闪存技术的存储设备,存储介质与 U 盘类似,但容量更大、存取性能更优。SSD 由一个或多个闪存芯片及闪存翻译层组成。

详细讲解

固态硬盘(SSD)是基于闪存技术的存储设备,存储介质与 U 盘类似,但容量更大、存取性能更优。SSD 由一个或多个闪存芯片及闪存翻译层组成。

闪存翻译层(FTL)把 CPU 发出的逻辑块读/写请求转换为底层物理闪存的读/写控制信号,相当于 SSD 中磁盘控制器的角色。

为什么与相邻节点相连: 3.4 外部存储器中的 SSD 使用3.2.2 Flash作为非易失介质,FTL 将逻辑块读写请求转换为底层物理闪存控制信号;它不依赖磁头寻道和盘片旋转,因此与3.4.1 磁盘存储器在访问延迟来源上形成对比。闪存的页写块擦与回收见3.4.2 闪存读写与垃圾回收,寿命管理见3.4.2 磨损均衡。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.2 固态硬盘”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 固态硬盘(SSD)是基于闪存技术的存储设备,存储介质与 U 盘类似,但容量更大、存取性能更优。SSD 由一个或多个闪存芯片及闪存翻译层组成。

连接答案: 3.4 外部存储器中的 SSD 使用3.2.2 Flash作为非易失介质,FTL 将逻辑块读写请求转换为底层物理闪存控制信号;它不依赖磁头寻道和盘片旋转,因此与3.4.1 磁盘存储器在访问延迟来源上形成对比。闪存的页写块擦与回收见3.4.2 闪存读写与垃圾回收,寿命管理见3.4.2 磨损均衡。


3.4.2 磨损均衡

一句话定义

闪存块擦写寿命有限,通常仅为几百至几千次。磨损均衡通过分散擦写负载,避免少数物理块被过快磨损。

详细讲解

闪存块擦写寿命有限,通常仅为几百至几千次。磨损均衡通过分散擦写负载,避免少数物理块被过快磨损。

两种策略:

  • 动态磨损均衡:写入新数据时,优先选择擦写次数较少的空闲块,避免反复写入同一区域,使写入负载分散到更多物理块上。
  • 静态磨损均衡:即使没有新数据写入,控制器也会定期扫描并自动迁移数据:高磨损块转为以读为主,低磨损块承担更多写入任务,从而均衡整体寿命。

为什么与相邻节点相连: 3.2.2 Flash块擦写次数有限,SSD 通过动态磨损均衡优先写入低擦写空闲块,并通过静态磨损均衡主动迁移已有数据,使负载分散以延长3.4.2 固态硬盘寿命。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.2 磨损均衡”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 闪存块擦写寿命有限,通常仅为几百至几千次。磨损均衡通过分散擦写负载,避免少数物理块被过快磨损。

连接答案: 3.2.2 Flash块擦写次数有限,SSD 通过动态磨损均衡优先写入低擦写空闲块,并通过静态磨损均衡主动迁移已有数据,使负载分散以延长3.4.2 固态硬盘寿命。


3.4.2 闪存读写与垃圾回收

一句话定义

一个闪存芯片由多个块组成,每个块又包含多页。页通常为 512 B~4 KiB,是读/写操作单位;块通常包含 32~128 页,是擦除操作单位。

详细讲解

一个闪存芯片由多个块组成,每个块又包含多页。页通常为 512 B~4 KiB,是读/写操作单位;块通常包含 32~128 页,是擦除操作单位。

闪存读/写以页为单位、擦除以块为单位。只有在整个块被擦除后,才能向其中的页写入新数据。修改已经写有数据的页时,SSD 先把所在块的其他有效页复制到新的已擦除块,再写入更新后的页;旧块随后擦除并回收。这一回收旧块、形成空闲块的机制称为垃圾回收。

为什么与相邻节点相连: 闪存芯片按页读写、按块擦除;修改已写页时,必须迁移同块其他有效页、写入更新页,再擦除旧块回收空间。这一规则来自3.2.2 Flash的物理组织,并由3.4.2 固态硬盘内部的 FTL 负责管理。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.4.2 闪存读写与垃圾回收”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 一个闪存芯片由多个块组成,每个块又包含多页。页通常为 512 B~4 KiB,是读/写操作单位;块通常包含 32~128 页,是擦除操作单位。

连接答案: 闪存芯片按页读写、按块擦除;修改已写页时,必须迁移同块其他有效页、写入更新页,再擦除旧块回收空间。这一规则来自3.2.2 Flash的物理组织,并由3.4.2 固态硬盘内部的 FTL 负责管理。


3.5.1 局部性原理

一句话定义

时间局部性:刚访问过的信息近期可能再次访问。

详细讲解

  • 时间局部性:刚访问过的信息近期可能再次访问。
  • 空间局部性:某位置被访问后,附近位置近期可能被访问。

Cache、行缓冲和块传送等机制都利用了局部性。

为什么与相邻节点相连: 局部性原理为3.1.3 存储层次提供原理支撑;局部性原理为3.2.1 行缓冲器提供原理支撑;局部性原理为3.2.3 单体多字存储器提供原理支撑;3.4.1 磁盘存储器利用局部性原理提高效率。

关联概念

复盘自测

不看上文:你能否用一句话说明“3.5.1 局部性原理”是什么,并解释它与相邻节点为什么相连?

参考答案(点击展开)
概念答案: 时间局部性:刚访问过的信息近期可能再次访问。

连接答案: 局部性原理为3.1.3 存储层次提供原理支撑;局部性原理为3.2.1 行缓冲器提供原理支撑;局部性原理为3.2.3 单体多字存储器提供原理支撑;3.4.1 磁盘存储器利用局部性原理提高效率。


只展示最近30条日记
Profile Image of the Author
xiyurumeng
那年夏天,我还是相信你会赢的
Announcement
Welcome to my blog!
目录
技能展示
日记
时间线
文章
相册
项目展示
分类
标签
目录