计算机组成原理知识总结
计算机组成原理知识总结(一)计算机概论
计算机组成原理知识总结(二)运算方法和运算器
存储系统
3.1 存储系统概述
3.1.1 存储系统的层次结构
利用不同容量、成本、功耗和速度的多种存储器构成有机结合的多级存储系统。
程序的局部性原理
在某一段时间内频繁访问某一局部的存储器地址空间,而对此范围以外的地址空间则很少访问的现象称为程序的局部性原理。
- 时间局部性:最近访问的信息很可能还要被访问
- 空间局部性:最近访问的信息邻近地址的信息也可能被访问。
多级存储系统的组成
内存储器速度高、容量小、价格高,有半导体器件构成。
外存储器速度低、容量大、价格便宜,由磁盘存储器、光盘存储器等非半导体器件或者固态半导体存储器构成。
在常规的内存储器与CPU之间增加了速度更高但容量更小的半导体高速缓冲存储器,cache。

还有将cache分为一级二级的。

3.1.2 存储的分类
存储介质,半导体器件和磁性材料。存储一位二进制代码。称为存储位元。许多个存储单元组成一个存储器。
存储介质
半导体器件、磁性材料和光存储器
存储方式
随机存取存储器、顺序存取存储器和半顺序存取存储器
读写功能
只读存储器(ROM)、随机存取存储器(RAM)
信息易失性
易失性存储器、非易失性存储器
与CPU的耦合程度
内外存储器
习惯分为RAM和ROM。RAM分为静态RAM(SRAM)和动态RAM(DRAM),ROM分为掩膜ROM、一次可编程ROM(PROM)和可擦除PROM(EPROM),后者又分为紫外线擦除EPROM(UV-EPROM)、电擦除EPROM(EEPROM)和闪速(Flash)只读存储器。
3.1.3 存储器的编制和端模式
存放一个机器字的存储单元,通常称为字存储单元,相应的单元地址称为字地址。而存放一字节的单元,称为字节存储单元,相应的地址称为字节地址。
一个存储字内部的多字节排列顺序问题,排列方式称为端模式,大端和小端。

3.1.4 存储器的技术指标
- 存储容量
- 存取时间
- 存储周期
- 存储器带宽
3.2 静态随机存取存储器
SRAM
3.2.1 基本的静态存储元阵列
只要直流供电,就可以无限期地保持记忆。断电数据就丢失了。

3.2.2 基本的SRAM逻辑结构
双译码方式,以便组织更大的存储容量。

3.2.3 SRAM读/写时序
一般 t R Q t_{RQ} tRQ= t W C t_{WC} tWC,叫做存取周期。
SRAM DRAM时序分析


3.2.4 存储器容量的扩充
芯片数:d=设计要求的存储器容量/已知芯片存储容量
- 位扩展
- 字扩展
- 字位扩展
3.3 动态随机存取存储器
3.3.1 DRAM存储元的工作原理
DRAM 的存储密度高,主存储器。但是附属电路比较复杂,访问时需要额外的电路和操作支持。

3.3.2 DRAM芯片的逻辑结构

3.3.3 DRAM读/写时序

3.3.4 DRAM的刷新操作
读取数据会破坏电荷,需要刷新。刷新间隔是64ms。
- 集中式刷新策略
- 分散式刷新策略
3.3.5 突发传输模式
突发访问是指在存储器同一行中对相邻的存储单元进行连续访问的方式,突发长度可以从几字节到数千字节不等。
3.3.6 同步DRAM(SDRAM)
传统的DRAM是异步的,在DRAM接口上增加时钟信号则可以降低存储芯片与控制器同步的开销,优化DRAM与CPU之间的接口,这是同步DRAM(SDRAM)的主要改进。
SDRAM的特征

- 同步操作
- 多存储体配置
- 命令控制
- 模式寄存器

SDRAM的控制方式

SDRAM的命令

3.3.7 双倍数据率SDRAM(DDR SDRAM)
本质上是一个2n的预取结构

3.3.8 DRAM读/写校验

3.3.9 CDRAM
CDRAM芯片的结构

CDRAM存储模块

3.4 只读存储器
3.4.1 只读存储器概述
非易失性,访问速度比RAM稍低,可以按地址随机访问并在线执行程序。

3.4.2 NOR闪存
NOR闪存的外部接口与逻辑结构


NOR闪存的区块划分
NOR闪存的总线操作与工作方式


3.5 并行存储器
- 芯片技术
- 结构技术
- 系统结构技术
3.5.1 双端口存储器
双端口存储器的逻辑结构
由于同一个存储器具有两组相互独立的读写控制电路而得名。高速工作的存储器
无冲突的读写控制
当两个端口地址不相同是,在两个端口上进行读写操作,一定不会发生冲突。
有冲突的读写控制
两端口同时存取存储器同一存储单元,会设置 B U S Y ‾ \overline{BUSY} BUSY标志。
3.5.2 多模块交叉存储器
存储器的模块化组织
顺序方式和交叉方式

多模块交叉存储器的基本结构

二模块交叉存储器距离

3.6 cache存储器
3.6.1 cache基本原理
cache的功能
为了解决CPU和主存之间速度不匹配而采用的一项重要技术。

cache的基本原理
除了包含SRAM外,还要有控制逻辑。有就直接提取,没有就从主存里找。

cache 的命中率
在一个程序执行器件,设 N c N_c Nc表示cache完成存取的总次数, N m N_m Nm表示主存完成存取的总次数, h h h定义为命中率,则有
h = N c N c + N m h=\frac{N_c}{N_c+N_m} h=Nc+NmNc
cache结构设计必须解决的问题
cache设计遵循的两原则
- 希望cache的命中率尽可能高,实际应接近于1
- 希望cache对CPU而言是透明的,不论是否有cache,CPU的访存方法都是一样的。
3.6.2 主存与cache的地址映射
全相联映射方式


直接映射方式
多对一的映射方式,但一个主存块只能拷贝到cache的一个特定行位置上去。
组相联映射方式
适度地兼顾了前两者的优点,由尽量避开二者的缺点,因此被普遍采用。
3.6.3 cache的替换策略
cache要求它尽量保存最新数据,当一个新的主存块需要拷贝到cache,而允许存放此块的行位置都被其他主存块占满时,就要产生替换。
- 最不经常使用(LFU)算法
- 近期最少使用(LRU)算法
- 随即替换
3.6.4 cache的写操作策略
- 写回法
- 全写法
- 写一次法
3.6.5 Pentium 4的cache组织

Pentium 4 处理器的核心由下列四个主要部件组成:
- 取值/译码单元
- 乱序执行逻辑
- 执行单元
- 存储器子系统
3.6.6 使用多级cache减少缺失损失
在高性能微处理器可支持附加一级的cache,位于处理器芯片内或者外单独一组SRAM,主cache却是后就会访问它。
3.7 虚拟存储器
3.7.1 虚拟存储器的基本概念
实地址与虚地址
用户编制程序时使用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存地址空间或逻辑地址空间;而计算机物理内存的访问地址则称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间。程序进行虚地址到实地址转换的过程称为程序的再定位。
虚存的访问过程
虚存空间的用户程序按照虚地址编程并放在辅存中。程序运行时,由地址变换机构依据当时分配给该程序的实地址空间把程序的一部分调入实存。
cache与虚存的异同
相同
- 出发点相同
- 原理相同
不同
- 侧重点不同
- 数据通路不同
- 透明性不同
- 未命中时的损失不同
虚存机制要解决的关键问题
- 调度问题
- 地址映射问题
- 替换问题
- 更新问题
3.7.2 页式虚拟存储器
页式虚存地址映射

内页表和外页表
上面所述页表式虚地址到主存物理地址的变换表,为内页表。虚地址与辅存地址之间的变换叫做外页表。
转换后援缓冲器(TLB)
这个专用于页表缓存的高速存储不见通常称为转换后援缓冲器(TLB),又称为块表。保存在主存的完整页表称为慢表。

虚拟存储器、TLB和cache的协同操作

3.7.3 段式虚拟存储器和段页式虚拟存储器
段式虚拟存储器
页面时主存物理空间中划分出来的登场的固定区域。另一种划分可寻址的存储空间的方法称为分段。段是按照程序的自然分界划分的长度可以动态改变的区域。
每个程序设置一个段表,段表的每一个表项对应一个段。
- 有效位
- 段起址
- 段长

段页式虚拟存储器
段式虚拟存储器和页式虚拟存储器的结合

3.7.4 虚存的替换算法
当从辅存调页至主存已满时,也需要进行主存页面的替换。下虚拟存储器的替换算法与cache的替换算法类似
虚拟存储器的替换算法与cache的替换算法不同
- cache的替换全部靠硬件实现,而虚拟存储器的替换有操作系统的支持。
- 虚存缺页对系统性能的影响比cache未命中要大得多,因为调页需要访问辅存,并且要进行任务切换。
- 虚存页面替换的选择余地很大,属于一个进程的页面都可替换。
3.7.5 存储管理部件
存储管理部件(Memory Management Unit,MMU)是系统中进行虚实地址转换的核心部件。
3.8 奔腾系列机的虚存组织
3.8.1 存储器模型

- 平坦存储器模型(flat memory model)内存被组织成单一的、连续的地址空间,称为“线性地址空间”。
- 分段存储器模型(segmented memory model)每个程序均使用一组独立的地址空间,每个地址空间就是一个段,段的最大长度是 2 32 B 2^{32}B 232B。
- 实地址模式存储器模型(real-address model memory model)是为保持与早期的8086处理机兼容的存储器模式。
3.8.2 虚地址模式
IA-32体系结构微处理机的虚拟存储器可以通过两种方式实现:分段和分页。
3.8.3 分页模式下的地址转换

总结
数据的存储机制