# 计组亡魂

image-20240616200008213

# 缩写汇总

缩写全称中文解释
ISAInstruction Set Architecture指令集架构
CISCComplex Instruction Set Computer复杂指令集计算机
RISCReduced Instruction Set Computer精简指令集计算机
ACAccumulator累加寄存器
MARMemory address register存储器地址寄存器
MBRMemory buffer register存储器缓冲寄存器
PCProgram counter程序计数器
IRInstruction register指令寄存器
InregInput register输入寄存器
OutregOutput register输出寄存器
GPRGeneral-Purpose Register通用寄存器
NOP
SaaSSoftware as a Service软件即服务
PaaSPlatform as a Service平台即服务
IaaSInfrastructure as a Service基础设施即服务
RTLRegister Transfer Language寄存器传输语言
RTNRegister Transfer Notation寄存器传输表示
SISDSingle Instruction Stream, Single Data Stream单指令流单数据流
SIMDSingle Instruction, Multiple Data单指令多数据
MISDMultiple Instruction Stream, Single Data Stream多指令流单数据流
MIMDMultiple Instruction, Multiple Data多指令多数据
NOP
RAMRandom Access Memory随机存取存储器
ROMRead-Only Memory只读存储器
SRAMStatic Random-Access Memory静态随机存取存储器
DRAMDynamic Random-Access Memory动态随机存取存储器
CAMContent-Addressable Memory内容寻址存储器
FIFOFirst-In, First-Out先进先出策略
LRULeast Recently Used最近最少使用
EATEffective Access Time有效访问时间
NOP
TLBTranslation Lookaside Buffer转换后备缓冲器
MMUMemory Management Unit内存管理单元
NOP
DMADirect Memory Access直接内存访问
RDMARemote Direct Memory Access远程直接内存访问
HDDHard Disk Drive硬盘驱动器
SSDSolid State Drive固态硬盘
RAIDRedundant Array of Independent Disks独立磁盘冗余阵列
RSRedundant System冗余系统
NOP
VMVirtual Machine虚拟机
LPARLogical Partition逻辑分区
PVPara-Virtualization半虚拟化
HVMHardware Virtual Machine硬件虚拟机
KVMKernel-based Virtual Machine基于内核的虚拟机
VMXVirtual Machine Extensions虚拟机扩展指令
NOP
SoCSystem on Chip片上系统
PLDProgrammable Logic Device可编程逻辑设备
PLA**Programmable Logic Array **可编程阵列阵列
PALProgrammable Array Logic可编程阵列逻辑
FPGAField-Programmable Gate Array现场可编程逻辑门阵列
ASICApplication-Specific Integrated Circuit专用集成芯片
VHDLVrey-High-Speed Integrated Circuit Hardware Description Language硬件描述语言
NOP
MTTFMean Time To Failure平均无故障时间

# 第一章 - 计算机系统概述

# 1. 计算机发展的历史

计算机系统 = 硬件 + 软件

计算机硬件的发展:

第一代计算机:(使用电子管),

Atanasoff Berry Computer (1937 - 1938) solved systems of linear equations. ✓ 可求解线性方程组

第二代计算机:(使用晶体管),
第三代计算机:(使用较小规模的集成),
第四代计算机:(使用较大规模的集成),

VLSI

已经经历了 4 代,计算机的速度越来越快,并且体积变得越来越小。
发展趋势:更微型、多用途;更巨型、超高速

摩尔定律,集成电路上的晶体管数量每 18 月就会翻一翻,所以每 18 月计算机的处理效率就会提高一倍。

洛克定律,制造半导体的资本设备成本将每四年翻一番

# 计算机层次化结构

image-20240616145516754

# 2. 云计算

云计算出现的契机:网络技术的发展、大型数据中心的兴起:冗余计算资源

云计算的优势:硬件成本、维护成本、管理成本大幅下降;服务弹性;资源利用率,云计算依赖于弹性概念,可以根据需要添加和删除资源

常见的云计算类型:计算即服务、软件即服务、平台即服务、基础设施即服务

# 3. 冯诺依曼模型

image-20240616150629014

img

冯・诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
程序的执行过程称为 “取指 - 译码 - 执行 “
主要特点有:
(1) 在 CPU 和主存之间有且仅有一个数据通路 (也被称为冯 - 诺依曼瓶颈)
(2) 由三部分硬件系统构成:中央处理单元 (CPU)、主存、输入 / 输出系统
(3) 可以执行指令序列;
(4) 数据以二进制表示;
(5) 指令由操作码和操作数组成;

# 4. 其他架构

# 哈佛架构

有两根总线,允许同时传送指令和数据,而且有数据和指令分开存储的存储器,数据和指令用不同的总线,

【没有划分总线类型】

image-20240616150607044

# 系统总线模型

image-20240616150652918

# 5. 现代计算机

image-20240420194129333 img

# 6. 计算机性能指标

image-20240420211922668 image-20240420212119114 image-20240420212311148 image-20240420212334634

# 7.Excersice

image-20240627184132716

C. 错误,数据存在地址里。指令通常包含操作码和地址码,地址码指向操作数的内存地址。

image-20240627184510210

D.Arithmetic Operations and Logical Operations.

image-20240627192131030

CPU 时间 = CPI * 指令总数 * 时钟周期 (s)

CPU_1 / CPU_2 = (2xn/1.5) / (1xn/1.2) = 1.6

image-20240628161239555

# 第二章 - 计算机系统中的数据表示

# 1. 前缀乘数

大数

Kilo- (K)/Kibi-(Ki) = 1 thousand = 103 / 210 (千)
Mega- (M)/Mebi-(Mi) = 1 million = 106 / 220 (兆)
Giga- (G)/Gibi-(Gi) = 1 billion = 109 / 230 (吉)
Tera- (T) /Tebi-(Ti)= 1 trillion = 1012 / 240 (太)

小数

Milli- (m) = 1 thousandth = 10−3 (毫)
Micro- (μ) = 1 millionth = 10−6 (微)
Nano- (n) = 1 billionth = 10−9 (纳)
Pico- (p) = 1 trillionth = 10−12 (皮)

# 2. 进制转换

# 整数

image-20240616151026124

# 小数

image-20240616151044094

# 3. 计算机中的数字表示

# 3.1 整数和小数

# Signed magnitude

原码

原码表示允许零有两种表示:正零和负零

# One’s complement

1 的补码 反码

反码的实现比原码表示更简单,但还是存在零的两种表示: -0 和 + 0

image-20240616152322008

# Two’s complement

计算机系统采用补码系统表示数值

2 的补码 补码

image-20240616152456858

# 三码转换

image-20240616152559731

# 三码总结

image-20240421170353209

# 移码

image-20240421170635538

# 布斯算法(乘法)

image-20240616151326845

# 3.2 浮点数

# IEEE754 标准

# 单精度

尾数在小数点的左边有一个隐含的 1

IEEE-754 单精度浮点标准使用 8 位指数(偏置为 127)和 23 位尾数

【总长:1+8+23】32 位 4B

真实阶码 = 当前阶码 - 127

image-20240616153623064

# 规格数

image-20240616154208655

阶码为 2^(-126)

# 特殊数

image-20240616154318028

# 0 的表示

0 的指数和尾数为全 0,但符号位可以是 1 或者 0

image-20240627212939307

# 双精度

IEEE-754 双精度标准使用 11 位指数(偏置为 1023)和 52 位尾数

【总长:1+11+52】64 位 8B

# 3.3 小结

image-20240627192658756

# 4. 编码

二进制编码十进制(BCD)Binary-coded decimal (BCD)

EBCDIC (扩展的 BCD)是最早广泛使用的支持大小写字母字符以及特殊字符(如标点符号和控制字符)的计算机代码之一

7 位 ASCII(美国信息交换标准编码)作为 6 位编码的替代品

当今的许多系统都采用 Unicode,这是一种 16 位编码系统,可以对世界上每种语言的字符进行编码。最低位的 Unicode 字符包括 ASCII 码

# 5. 数据查错和纠错

# 奇偶校验

一串二进制流,末尾加 1 / 0

1 的个数为奇数,奇校验

1 的个数为偶数,偶校验

# CRC

image-20240616151359677

# 汉明码

image-20240616155606972

# 6.Excersise

image-20240627212132085

image-20240628163558833

# 第三章 - 布尔代数和数字逻辑

image-20240421214302310

# 通用门

image-20240616182623657

# Excercise

image-20240627214236648

# 第四章 - 一个简单的计算机模型

# 1.CPU 基本结构

基本作用:CPU 负责获取程序指令,解码获取的每条指令,并对正确的数据执行指示的操作序列。

image-20240616161046926

# 数据通路 (Datapath)

# Register

Registers hold data that can be readily accessed by the CPU.

MARIE 中的参考如下

ACAccumulator累加寄存器16,用来存储指令运算操作数和运算结果
MARMemory address register存储器地址寄存器12,保存一条指令的内存地址或一条指令的操作数
MBRMemory buffer register存储器缓冲寄存器16,用于在数据从内存中检索或放置之前保存的数据
PCProgram counter程序计数器12,保存下一条将要执行的程序指令的地址
IRInstruction register指令寄存器16, 保存下一条将要执行的指令
InregInput register输入寄存器8,保存来自输入设备的数据
OutregOutput register输出寄存器8,保存要输出到输出设备的数据
# ALU

The arithmetic-logic unit (ALU) carries out logical and arithmetic operations as directed by the control unit

# Bus

Two types of buses are commonly found in computer systems: point-topoint, and multipoint buses

Buses consist of data lines, control lines, and address lines.

# 控制单元(Control Unit)

监视,调度,控制数据通路中的数据传输。

# 实现

控制单元(Control Unit, CU)是计算机处理器的核心部件之一,负责生成控制信号以协调其他部件的操作。控制单元的实现方式主要有两种:组合逻辑控制和微程序控制。

# 组合逻辑控制(硬布线逻辑控制)

优点

  1. 速度快:由于是硬件直接实现,没有额外的解码过程,执行速度较快。
  2. 结构简单:对于简单的指令集,组合逻辑控制可以实现较为直接的控制逻辑。

缺点

  1. 灵活性差:一旦设计完成,修改控制逻辑较为困难,不利于扩展。
  2. 可维护性低:随着指令集的增加,控制逻辑变得复杂,难以维护。
  3. 成本问题:对于复杂的指令集,所需的门电路数量增多,可能导致成本上升。
# 微程序控制

优点

  1. 灵活性高:通过改变微程序来实现不同的控制逻辑,方便修改和扩展。
  2. 易于维护:微程序的修改和调试相对容易,有利于系统的长期维护。
  3. 可读性好:微程序类似于程序设计,具有较好的可读性。

缺点

  1. 速度较慢:存在微指令的解码过程,可能导致执行速度较慢。
  2. 硬件复杂性:需要额外的控制存储器和微指令寄存器等硬件支持。

# 2. 总线仲裁方法

# 总线构成

image-20240616183831276

# 仲裁方式

image-20240616161104867

image-20240616182956693

菊链: 权限从最高优先级设备传递到最低优先级设备。

image-20240628085616505

集中并行: 每个设备直接连接到一个仲裁电路。

image-20240628085653733

使用自我检测的分布式: 设备决定哪一个在它们之间得到总线。

使用冲突检测的分布式:任何设备都可以尝试使用总线, 如果它的数据与另一个设备的数据冲突, 它会重试。

# 例题

image-20240616183715410

# 3. 内存交叉寻址

image-20240616191102274

# 4.MARIE

image-20240616191936233

image-20240616191908492

# 扩展指令集

image-20240616203056320

# 5. 寄存器传输表示 / 语言

# RTL

# 取指

image-20240616201915680

# eg.LOAD

image-20240616192117465

# eg.SKIPCOND

image-20240616192312277

# RTN

寄存器传输表示

image-20240616192606838

# 6. 根据寄存器传输模式确定控制信号

image-20240616195440858 image-20240616195524206

# 7. 汇编

image-20240616193106954

image-20240616202339766

# 8.Real World

# CISC

Complex Instruction Set Computer 复杂指令集计算机 Intel 架构

# RISC

Reduced Instruction Set Computer 精简指令集计算机 MIPS、ARM

MIPS 的设计考虑了性能:它是一种加载 / 存储架构,这意味着只有加载和存储指令才能访问内存

# 9.Exercise

image-20240616204223970

image-20240616202125939

image-20240627215005179

# 第五章 - 指令集架构

# 1. 计算模型

image-20240616212756083

按照 CPU 中数据存储的方式,指令集所代表的计算模型可以分为:

・堆栈型架构 (stack architecture)

in a stack architecture, instructions and operands are implicitly taken from the stack.

・累加器型架构 (accumulator architecture)

In an accumulator architecture, one operand of a binary operation is implicitly in the accumulator.

Why? One operand is in memory, creating lots of bus traffic

・通用寄存器型架构 (General-purpose register architecture, GPR)

Faster than accumulator architecture.

Efficient implementation for compilers.

Results in longer instructions.

# 2. 指令格式

# 字节序 Byte Ordering

endianness

image-20240616204417388

# 前中后缀的表达转换

Stack architectures require us to think about arithmetic expressions a little differently。

平常:中缀 infix

堆栈:后缀 postfix RPN(reverse polish notation 逆波兰式)

中缀 => 后缀:先用中缀画出二叉树,注意连续减,不要变号,仔细读题,从左到右。

image-20240616211444571

后缀转前缀:堆栈法

数字进栈,遇到操作符,弹出栈顶两元素,计算加括号再压入

image-20240616220127892

# 3. 指令集的编码和扩展操作码

# 三地址

image-20240616211736220

# 双地址 (要求至少一个 Reg)

# 单地址

image-20240616211919461

# 栈指令

image-20240616211946459

# 小结

image-20240616212449516

# 扩展操作码

不需要操作数的操作,例如 HALT ,在使用固定长度指令时必然会浪费空间

一种恢复方法是使用扩展操作码

image-20240616213028846

转义符 111- escape opcode

image-20240616213040637

image-20240616213415013

# 4. 内存寻址模式

・立即寻址 (Immediate Addressing) 数据是指令的一部分

・直接寻址 (Direct Addressing) 在指令中给出数据地址

​ 寻址空间:地址位数决定,12 位则为 2^12

・寄存器直接寻址 (Register Direct Addressing) 数据位于寄存器中

・间接寻址 (Indirect Addressing) 给出指令中数据地址的地址

​ 寻址空间:字长决定,因为真正寻的是内存里存的

・寄存器间接寻址 (Register Indirect Addressing) 使用寄存器存储数据地址的地址

・变址寻址 (Indexed Addressing) 使用寄存器作为偏移量,将其添加到操作数中的地址中

​ 寻址空间为 字长 和 地址 一个加法,直接 + 间接的

・基址寻址 (Based Addressing) 使用基址寄存器而非索引寄存器

・堆栈寻址 (Stack Addressing) 操作数在堆栈中

image-20240616214039133

# 5. 指令流水线

# 理论加速比计算

image-20240616214127334

image-20240616214153884

# 例题

image-20240616220304830

# 冲突产生与解决

image-20240616214301229

・常见的流水线冒险可以分为三类:

–结构冒险(Structural hazard) 资源冲突

–数据冒险(Data hazard) 数据依赖

–控制冒险(Control hazard)

・解决流水线冒险的方式:

–数据旁路

–流水线阻塞

–分支预测

- 指令优化

# 6.Exercise

image-20240616220340834

# 第六章 - 存储器

# 1. 存储器的类型

# ROM (Read-only memory)

–数据读取速度快、存储时间长

–只需要很少的电能用于维持数据

–通常指数据在主机断电后依然有效的存储器,并非完全 “只读”

–例子:BIOS,CD-ROM,闪存

# RAM (Random-access memory)

–可以对随机位置的数据进行读写

–需要通电才能保存数据

–SRAM & DRAM

# 2. 层次化存储结构

# 金字塔

image-20240616221559506 image-20240616221645513

# 优势

最大化利用局部原理:一旦访问到某字节,附近的元素很快也会被访问

局部特性的三种形式:时间局部性,空间局部性,顺序局部性

时间局部性 (temporal locality):最近访问的数据在不远的将来很有可能会再次访问
空间局部性 (spatial locality):即将访问的数据和最近访问的数据地址空间接近
顺序局部性 (sequential locality):数据按顺序访问

# 局部性应用在实际程序中

高速缓存

# 根据实际访问过程计算 EAT 有效访问时间

# 数据访问过程

为了访问特定的数据, CPU 首先向其最近的内存(通常是缓存)发送请求。

如果数据不在缓存中,则查询主存。如果数据不在主存中,则请求转到磁盘。

一旦数据被定位,那么数据及其附近的一些数据元素就被提取到高速缓存中。

image-20240616221913201 image-20240616222211048

# 例题

并行:Parallel

image-20240616222353903

# 3. 缓存以及缓存映射策略

image-20240616223028129 image-20240616223137607

# 高速缓存

高速缓存的目的是通过将最近使用的数据存储在靠近 CPU 的位置来加快访问速度,而不是将其存储在主存中;单个大缓存搜索需要更长的时间

CAM:content addressable memory

# 直接映射

image-20240616222659422

image-20240616223341818

# 全相联映射

image-20240616223612514

# 组相连映射

相当于把多个块合成一个 set,就是把 set 变大了,结合了全相联和直接映射。

2-way 代表一个组有两个块

image-20240616223645378

# 小结

image-20240616223812704

# 4. 缓存的替换策略

替换策略通常源于局部性,尤其是时间局部性

# LRU(最近最少使用)

最近最少使用(LRU)算法追踪上次访问块的时间,并驱逐最长时间未使用的块。

# FIFO(先进先出)

无论最后一次使用是什么时候,缓存中最长的块会被替换

# 随机替换

随机选择一个块并用一个新块替换它,这回使得经常使用或者就要使用的块被替换,但它不会导致颠簸(Thrash)

# LFU

# RR(轮转)

# 5. 缓存的写策略

# 写策略发生

image-20240616224112893

# 其他方案

1. 许多现代系统为数据和指令使用单独的缓存,即哈佛缓存,代价是变得复杂

2. 更大的缓存空间

3. 跟踪高速缓存

# 6. 缓存状态分析

image-20240616225050903

# 7. 虚拟内存

# 虚拟内存的意义

1)(主存)程序的可寻址地址空间大于主存的实际容量

2)(硬盘)实际使用的内存空间大于主存的实际容量

虚拟内存的核心思想:将一部分数据存储在硬盘上,提高内存的存储能力。

存储在硬盘上的部分称为页面文件(page file)

image-20240617090528519

# 地址转换

# 分页

image-20240617090354686

image-20240617090326121 image-20240617091451144

0x1363->0x0553

# 分段

分页会受到内部碎片的影响,因为进程可能不需要页面中包含的整个地址范围。因此,可能有许多页面包含未使用的内存片段。

分段受到外部碎片的影响,当连续的内存块随着时间的推移分配和释放段而被分解时,就会发生这种情况

image-20240617091936148

虚拟地址分为两个字段:段编号 + 段内偏移值

对应的物理地址为 基地址 + 偏移值

段编号 ===> 基地址,得到物理地址

# 查找缺失

发生页面故障,触发中断,中断程序将页面加载到内存中,更新页表。

# TLB

(translation look-aside buffer)转换后备缓冲器

一种特殊的关联缓存,用于存储虚拟页面到物理页面的映射

image-20240617092302931

image-20240617090620332

image-20240617111541853

# EAT

image-20240617091427437

# 内存管理

image-20240617090647471

# 8.Exercise

直接映射:direct mapped

偏移:word fieleds

全相联映射:fully associative

# 地址转换

image-20240617094739480

image-20240617095518605

128M = 27*220 ==> addr have 27 bits

32K/2 = 2^4 * 2^10 ==> set have 14bits

# EAT 计算和访问顺序

image-20240617102844298

image-20240617103156089

image-20240617102910173

d)如果页面不再存在于页表中,那么缓存的值就会变得陈旧

image-20240617103140834

# 虚拟内存

image-20240617103627753

image-20240617103637228

# 计算机存储设计

【多级缓存 + TLB + 关联存储类型】

如果您是计算机组装者,试图使您的系统尽可能具有价格竞争力,您将为其内存层次结构选择以下特性和组织方式:【便宜 + 大容量】

  • 选择更便宜的非关联性缓存(如直接映射缓存)。
  • 为了降低成本,可能完全不包括第二级缓存。
  • 可以设置一个非常小的 TLB(Translation Lookaside Buffer,转换后备缓冲器)。
  • 使用成本较低的主存,但配备一个大容量硬盘以吸引购买者。

如果您是计算机购买者,希望从系统中获得最佳性能,您在其内存层次结构中应寻找以下特性:【关联缓存 + 二级缓存 + 省钱 + 性价比】

  • 寻找具有两级缓存的机器,第一级是某种类型的关联性内存。
  • 注意,更大的缓存并不总是意味着更好。在一定程度上,更多的缓存可以提高命中率,但超过某个点后,命中率的提高就不再显著(所以不要为不需要的东西支付)。
  • 一个合适大小的 TLB 将有助于提高性能。
  • 一个大型且快速的主存绝对是一个显著的优势。

# 第 7 章 - I/O 和存储系统

# 1. 阿姆达尔定律

系统的整体性能提升受到其最慢部分的限制。换句话说,如果系统中有一部分无法并行处理,即使其他部分的并行性能得到极大提升,整个系统的性能提升也会受到限制。

f 是由更快组件完成的工作比例;而 k 是更快组件的加速比

image-20240617141313033

image-20240617110651696

# 2.I/O 访问的方式

・有五种常见的 I/O 控制方法

–程序控制 I/O (Programmed I/O)

–中断驱动 I/O (Interrupt-driven I/O)

–内存映射 I/O (Memory-mapped I/O)

–直接内存访问 I/O (Direct Memory Access, DMA)

–通道 I/O (Channel I/O)

image-20240617111048104

# 3. 磁盘结构和计算

# 磁盘结构

image-20240617112559302

# 机械硬盘数据读写

image-20240617112648899

# 硬盘访问时间与数据传输时间

image-20240617112803894

Seek time + rotational delay = access time.

# 硬盘的缺陷

Low cost is the major advantage of hard disks.
But their limitations include:
◼ Very slow compared to main memory
✓ 与主内存相比非常慢
◼ Fragility
✓ 脆弱性
◼ Moving parts wear out
✓ 运动部件磨损

# 4. 持久化存储

固态硬盘(Solid State Drive, SSD)

大分类小分类原理结构特点
磁性存储磁盘磁头读写磁盘上的磁性材料旋转的磁盘片,磁头容量大,成本较低,易受物理损伤
固态硬盘 (SSD)电子方式读写 NAND Flash控制单元,多个闪存芯片速度快,耐用,无噪音,体积小,写入次数有限
光学存储光盘激光技术读写数据塑料基底,反射层容量有限,成本较低,便携性,易受刮擦影响
CD红色激光读取数据光盘的一种,数据密度高音频和数据存储,容量约 700MB
DVD不同波长激光读取数据光盘的一种,可双层或多层存储容量大,用于存储数据和视频,容量 4.7GB 至 17GB
蓝光短波长蓝色激光读取数据光盘的一种,更高数据密度高容量,用于高清视频存储,单层 25GB,双层 50GB
磁带存储磁带磁头在磁带上磁化和消磁存储数据塑料基带,磁性颗粒容量大,成本低,适合长期存储,访问速度慢,顺序读取

# 5.RAID

RAID,即独立磁盘冗余阵列(Redundant Array of Independent Disks)

按照 RAID 中的数据组织方式进行划分:

RAID 级别原理优点缺点容错能力访问速度有效存储比应用场景
RAID 0条带化存储1. 读写速度快 2. 100% 空间利用率 3. 成本最低1. 无数据冗余 2. 单点故障 3. 不可靠,比单磁盘更糟糕快(并行访问)100%日志存储、个人娱乐、图像工作站
RAID 1镜像存储1. 数据安全性高 2. 良好读性能1. 成本高 2. 无数据校验单磁盘故障读快写慢50%存放重要数据、数据存储领域
RAID 2位级条带化加汉明码校验1. 有数据校验机制成本高,性能较差单磁盘故障小于 100%影像处理或 CAD/CAM 工作站
RAID 3位级条带化加单一奇偶校验1. 有数据校验机制校验盘易成瓶颈单磁盘故障读快写慢n-1数据库、WEB 服务器、视频编辑
RAID 4块级条带化加单一奇偶校验1. 有校验机制 2. 块存储完整写效率差,硬盘损耗高单磁盘故障读快写慢n-1数据安全性要求高的环境
RAID 5块级条带化加分布式奇偶校验1. 读写性能高 2. 有校验机制磁盘越多,安全性越差单磁盘故障读写快n-1金融、数据库、存储系统
RAID 6块级条带化加双奇偶校验1. 随机读性能好 2. 有校验机制写入速度慢,成本高双磁盘故障读写快n-2对数据安全级别要求高的企业
RAID DP块级条带化加双奇偶校验1. 容错性好 2. 性能较 RAID 6 好性能较 RAID 5 下降双磁盘故障读写快较低需要高容错性的场景
  • 容错能力指的是 RAID 系统能够容忍多少磁盘同时出现故障而数据不丢失。
  • 访问速度是指数据读写的速度,其中读快写慢意味着读取操作可以快速完成,但写入操作可能较慢,特别是涉及到奇偶校验更新的情况。
  • 有效存储比是指相对于总磁盘容量,实际可用于数据存储的空间比例。

备注:

1.RAID-0: 性能最高

2.RAID-5:避免奇偶校验驱动器的竞争,不将奇偶校验放在同一驱动器上,是应用最广泛的 RAID 系统

3.Dual Parity RAID:双重奇偶校验 RAID

# 6.Exercise

The hardest part of data storage may be in locating the data after it’s stored.
✓ 数据存储中最困难的部分可能是在数据存储后定位数据

# I/O 架构

image-20240617125130868

# 容量、访问时间计算

容量 = 全部乘起来

access time = rotatioanl delay + seek time

image-20240617125623177

image-20240617125739592

为什么除以 2?

由于磁盘是均匀旋转的,平均情况下,目标扇区距离当前磁头位置的角度是磁盘周长的一半,即 180 度,所以除以 2。

# 第 8 章 - 系统软件

# 1. 环境保护

・多用户场景下需要对计算、存储等资源进行分配隔离

・保护环境是提供资源、进程和数据的运行环境

–由硬件、(主机)操作系统或虚拟机监控程序进行保护

・实现受保护环 S 境的常见技术

–虚拟机(Virtual Machine,VM)

–子系统(Subsystem)

–逻辑分区(Logical Partitioning,LPAR)

实现保护环境的技术的对比和实例分析

技术描述优点缺点实例分析
虚拟机(VM)在物理服务器上模拟出多个虚拟的计算环境,每个虚拟机都有自己独立的操作系统和应用程序。- 高度的隔离性和安全性 - 灵活性和可移植性 - 易于备份和迁移- 资源占用较高 - 性能开销 - 管理复杂性VMware, Hyper-V, KVM
子系统 (subsystem)在单个操作系统内创建隔离的环境,共享操作系统但有独立的资源配额和权限。- 资源共享和优化 - 较低的开销 - 较易管理- 隔离性不如虚拟机 - 受限于宿主操作系统Docker 容器,AIX 工作负载分区
逻辑分区(LPAR)将大型物理服务器分割成多个独立的逻辑服务器,每个逻辑分区都有独立的处理器、内存和其他资源。- 高度的隔离性和安全性 - 灵活的资源分配 - 高可用性- 成本较高 - 需要特定的硬件支持 - 管理复杂性IBM PowerVM

image-20240628160235403

# 第 9 章 - 体系结构

# 1.RISC & CISC

RISC (eg.ARM)CISC (x86)
许多寄存器集一个寄存器集
一条指令包含最多三个操作数一条指令通常只有 1 个或 2 个操作数
通过寄存器窗口传递参数通过内存栈传递参数
单周期指令,高度流水线化多周期指令,流水线化程度低
硬连线电路实现微代码控制
指令数量少,长度等长指令数量多,长度不同
只有 LOAD 和 STORE 指令可以访问内存许多指令都可以访问内存
寻址方法较少支持多种寻址方法

# 2. 费林分类法

image-20240617134103075

# 3. 并行体系结构

体系结构类型原理并行机制优点缺点
超标量流水线允许单个 CPU 核心在单个时钟周期内执行多条指令。通过流水线技术提高指令的吞吐量。通过指令级并行(Instruction-Level Parallelism, ILP)执行多条指令。- 提高单个核心的执行效率 - 更好的利用了 CPU 资源。- 需要复杂的硬件支持 - 存在潜在的资源冲突和流水线冒险。
超长指令字一条指令中包含多个操作,可以并行执行。通过编译器优化指令的并行性。编译时确定并行操作,硬件并行执行。- 减少 CPU 的解码工作量 - 优化编译器可以发掘更多并行性。- 编译器负担重 - 对编译器优化要求高。
矢量机用于执行可以表示为数组或向量操作的指令,支持单指令多数据(SIMD)执行。通过数据级并行(Data-Level Parallelism, DLP)执行多个数据操作。- 适合大规模数据处理 - 高效执行科学和工程计算。- 需要数据的并行性 - 不适合非向量化的代码。

# 4. 多处理器体系结构

特性说明
定义一个计算系统,内含多个处理器,能够协同工作处理任务。
类型- 紧密耦合:处理器通过高速总线连接,共享内存。- 松散耦合:处理器通过网络连接,拥有独立内存。
优点- 增加吞吐量:多任务并行处理。- 提高响应性:更快的任务处理。- 改善可扩展性:容易增加处理器数量。
缺点- 复杂通信:需要有效机制以避免瓶颈。- 同步挑战:保持数据一致性难度增加。
应用场景- 高性能计算:大规模数值计算。- 实时处理:快速响应时间要求。- 大数据分析:处理大量数据集。
关键技术- 缓存一致性:如 MESI 协议,保持多级缓存数据同步。- 多线程编程:有效利用多核处理器。- 分布式共享内存:在松散耦合系统中共享数据。
设计考虑- 处理器配置:数量、速度和互联方式。- 内存架构:共享或分布式内存设计。- I/O 架构:高效的数据输入输出策略。
例子- 对称多处理器(SMP):均衡的多核处理器。- 非一致性内存访问(NUMA):内存访问时间取决于内存与处理器的物理位置。- 集群计算:地理上分散的计算机集合,协同工作。