学习笔记
前言
本文主要是对于b站尚硅谷的计算机组成原理的学习笔记,仅用于学习交流。
容量拓展
1. 字扩展
字扩展中,两个芯片的数据线是完全并联的,因此存储器的"字长"(即数据线的位数)不会增加。其逻辑如下:
-
地址线分配:
-
低位地址线(如 A0~A9)连接到每个芯片的地址引脚,用于访问单个芯片的存储单元。
-
高位地址线(如 A10)用于控制每个芯片的片选信号(CS)。
-
-
存储单元的扩展:
-
容量变为两倍。
-
数据宽度(字长)保持为4位,因为数据线没有增加。
-
-
逻辑控制:
- 系统根据高位地址信号,控制具体哪个芯片处于工作状态(每次只有一个芯片被选中)。
2. 位扩展
以两个1K×4的存储器通过位扩展组成一个1K×8的存储器为例:
-
地址线并联:
-
两个芯片的地址线完全相同,即系统的地址信号同时传递到每个芯片,所有芯片的地址空间是重叠的。
-
如果有10根地址线(A0~A9),每个芯片都响应这10根地址线。
-
-
数据线分配:
-
两个芯片的数据线不重叠,而是分别连接到系统数据总线的不同部分。
-
例如:
-
第一个芯片的4条数据线(D0~D3)连接到系统数据总线的低4位。
-
第二个芯片的4条数据线(D4~D7)连接到系统数据总线的高4位。
-
-
这样,每个地址单元的数据宽度从4位变为8位。
-
-
控制线共享:
- 两个芯片的读写控制信号(如 /WE 和 /OE)完全共享。系统对一个地址的读写操作会同时作用于所有芯片。
3. 位扩展与字扩展的对比
特性 | 字扩展 | 位扩展 |
---|---|---|
数据位宽变化 | 不变 | 增加 |
地址空间变化 | 增加 | 不变 |
存储单元数量 | 增加 | 不变 |
数据线分配 | 全部并联 | 分别连接到不同的部分 |
地址线分配 | 低位地址线并联,高位地址线用于片选 | 完全并联 |
控制信号 | 片选信号区别不同芯片 | 所有芯片共享相同信号 |
多模块存储系统
-
多模块存储系统是一种并行存储体系结构,通过将数据分散到多个存储模块中并行访问,提高存储器的带宽和访问效率。
-
与单体存储器不同,多模块存储系统可以在一个存储周期内同时访问多个地址的数据。
1. 特点
-
存储器被划分为多个存储模块,每个模块可以独立访问数据。
-
多个模块之间协同工作,CPU可以同时读取或写入多个地址。
-
CPU无需等待单个存储模块完成数据访问,从而减少存储访问延迟。
2. 地址分配方式
为了实现并行访问,需要合理分配地址到多个存储模块。常见的分配方式有以下两种:
-
高位交叉:
-
地址空间按照模块编号顺序分配。
-
例如:
-
存储模块1:地址
0~3
-
存储模块2:地址
4~7
-
-
优点:逻辑简单。
-
缺点:可能导致并行性不足。例如,访问地址
0~3
会集中在存储模块1,其他模块闲置。
-
-
低位交叉分配(Interleaved Addressing):
-
地址的低位决定存储模块编号,高位表示模块内地址。
-
例如:
-
地址
0, 4, 8
分配到存储模块1。 -
地址
1, 5, 9
分配到存储模块2。 -
简单来说就是地址最后几位相同(地址取模)的分在一个模块中
-
-
优点:大大提高了访问的并行性。
-
3. 实例对比
假设CPU需要访问连续的8个存储地址:
-
单体存储器:
-
每次只能访问1个地址。
-
如果存储周期为1,则需要8个周期完成。
-
-
多模块并行存储器(4个存储模块):
-
地址
0, 4, 8
分配到存储模块1,1, 5, 9
分配到存储模块2,依此类推。 -
在1个周期内可以并行访问4个地址。
-
总时间为 2个周期,效率理论上提高了4倍。
-
4. 其他值得注意的点
-
当模块分时启动的时间间隔 <= 总线传输周期,此时可以取得的存储器带宽最大(我姑且先理解为效率最大了)
-
SDRAM可以实现在CPU需要等待存储器读取操作的时候让CPU去干其他的,待读取操作完毕,直接得到数据就行。
外部存储器
-
定义:与计算机系统分开的存储设备,用于扩展存储容量或备份数据。
-
性能指标:道密度/位密度/存储容量/平均寻址时间/数据传输率
-
常见外部存储器:
-
移动硬盘
-
U盘
-
SD卡
-
光盘(CD/DVD)
-
网络存储(NAS)
-
RAID和SSD
-
定义:将多个SSD组合以实现数据冗余和性能提升的技术。
-
常见RAID级别:
-
RAID 0:数据条带化,提供高性能,但没有冗余,任何一块硬盘故障都将导致数据丢失。
-
RAID 1:数据镜像,每块硬盘均保存相同的数据,提供冗余,能够在一块硬盘故障的情况下继续工作,但存储效率较低(可用容量为总容量的一半)。
-
RAID 2:利用汉明码实现错误检测和修正,实际应用较少,通常不被广泛使用。
-
RAID 3:数据条带化且使用一块专用的奇偶校验盘,适合大型文件的存储。
-
RAID 4:类似于 RAID 3,但数据条带化是基于块而非字节,使用专用奇偶校验盘。
-
RAID 5:数据分布在多个硬盘上,并且每个硬盘上都有奇偶校验信息,能够承受一块硬盘故障,兼具高性能和冗余。
-
RAID 6:类似于 RAID 5,但提供双重奇偶校验,能够承受两块硬盘同时故障,更高的安全性。
-
RAID 10(RAID 1+0):结合 RAID 1 和 RAID 0,提供高性能和冗余,但需要至少四块硬盘。
-
高速缓冲存储器(Cache)
-
性质:缓存是位于主存与CPU之间的存储器,速度比主存更快,但容量通常较小。
-
功能:缓存通过存储近期使用的数据或即将使用的数据,加快数据访问,使系统能够更高效地工作。
-
命中率
1. 缓存管理
-
直接映射:每个主存地址映射到缓存的特定位置。
-
全相联映射:主存的任意块可存放在缓存的任意位置,提高灵活性。
-
组相联映射:前两者相结合, 缓存分为多个组,每组可以存放多个块, 减少冲突。
2. 替换算法
-
最少使用(LRU):根据最近最少使用原则替换数据。
-
先进先出(FIFO):最早进入缓存的数据最先被移除。
-
最不常用(LFU):基于访问频率进行替换。
-
随机替换(RAND):随机选择缓存中的一项进行替换。
3. 写策略
-
写直达(Write-Through):
-
数据同时写入缓存和主存,确保数据一致性。
-
优点:数据一致性高,适合对数据安全性要求高的场景。
-
缺点:性能较低。
-
-
写回(Write-Back):
-
数据写入缓存,只有在替换时才写入主存。
-
优点:提高性能,适合频繁写入的数据场景。
-
缺点:数据可能丢失,需处理数据一致性问题。
-
虚拟存储器
-
定义:虚拟存储器是一种内存管理技术,允许计算机系统使用硬盘或其他外存作为扩展内存,从而实现比实际物理内存更大的有效内存容量。
-
工作原理:
-
将程序的逻辑地址空间划分为逻辑段和页。
-
使用段表和页表进行地址转换。
-
1. 快表
-
定义 :快表是一种用于管理缓存存储的数据结构,记录缓存的状态以提高数据访问的效率(相当于慢表的cache)。
-
结构组成:
-
索引:定位缓存条目的关键字段。
-
标签(Tag):缓存条目的标识,帮助区分不同数据。
-
状态位:指示缓存条目的有效性、脏数据状态等
-
2. 段页式虚拟存储器
-
基本概念:
-
段:程序的逻辑地址空间被划分为多个段,每个段可能具有不同的大小(例如,代码段、数据段、堆栈段)。
-
页:段内部进一步被划分为固定大小的页。
-
-
地址转换机制:
-
逻辑地址:由段号、页号和页内偏移组成。
-
段表:记录每个段的基础地址和长度。
-
页表:每个段都有对应的页表,用于映射段内虚拟页到物理页框。
-
结语
学到关于"命中/未命中"这一部分,死去的记忆突然袭击我了,这不就是CSP的大模拟那道题吗,唉唉,真是令人感慨万千,多亏了当时那道题,令我现在理解起来很轻松~
感觉学到现在还是没有太多实感,但也只能一步一个脚印走了。。