1.12k likes | 1.34k Views
计算机组成原理. —— 第 4 章 主存储器逻辑设计. 半导体存储器的组成与控制. 1. 存储器容量扩展 位扩展 字扩展 字位扩展 2. 存储控制 集中刷新 分散刷新 异步刷新 3. 存储校验线路. 片选信号 CS :只有 CS 有效时,芯片才被选中,所连地址线才有效,才能进行读 / 写操作。. 读 / 写信号 WE :为 0 ,控制写入电路进行写入;为 1 ,控制读出电路进行读出。. 复习(一). RAM 存储器芯片总结 RAM 存储器芯片有多种型号,每一 RAM 存储器芯片具有: 地址线 A i :引脚数与存储芯片的单元数有关;
E N D
计算机组成原理 ——第4章 主存储器逻辑设计
半导体存储器的组成与控制 1. 存储器容量扩展 • 位扩展 • 字扩展 • 字位扩展 2. 存储控制 • 集中刷新 • 分散刷新 • 异步刷新 3. 存储校验线路
片选信号CS:只有CS有效时,芯片才被选中,所连地址线才有效,才能进行读/写操作。片选信号CS:只有CS有效时,芯片才被选中,所连地址线才有效,才能进行读/写操作。 • 读/写信号WE:为0,控制写入电路进行写入;为1,控制读出电路进行读出。 复习(一) • RAM存储器芯片总结 RAM存储器芯片有多种型号,每一RAM存储器芯片具有: • 地址线Ai:引脚数与存储芯片的单元数有关; • 数据线Di:引脚数与存储芯片的字长有关; • 电源线、地线
复习(二) 例1:某RAM芯片,其存储容量为16K×8位,问: (1)该芯片引出线的最小数目应为多少? (2)存储器芯片的地址范围是什么? 解: (1)16K=214,所以地址线14根;字长8位,所以数据线8根。 14 + 8 + 1 + 1 + 1 + 1 = 26 地址线 数据线 片选 读/写 电源线 地线 (2)存储器芯片的地址范围为0000H~3FFFH 存储器芯片的地址范围: 地址线从全“0”到全“1”的所有编码
Vcc A7 A8 A9 D0 D1 D2 D3 WE 18 10 2114(1K×4) 1 9 A6 A5 A4 A3 A0 A1 A2 CS GND 复习(三) • SRAM芯片2114(1K×4位) 外特性: 地址端: A9~A0(入) 数据端: D3~D0(入/出) = 0 选中芯片 片选CS 控制端: = 1 未选中芯片 = 0 写 写使能WE = 1 读 电源、地
1、存储器容量扩展 位扩展—— 扩展每个存储单元的位数(扩展宽度) 字扩展—— 扩展存储单元的个数(扩展长度) 字位扩展—— 两者的综合(扩展宽度和长度) 假设扩展同种芯片,则需要的芯片 : 总片数=总容量/(容量/片) … … … … … … 位扩展 字扩展 字位扩展
1、存储器容量扩展——位扩展 例2 使用8K×1位RAM芯片组成8K×8位的存储器,画出逻辑框图。 分析: ①芯片位数小于存储器所要求的位数,需进行位扩展。 ②8个芯片的关系是平等的,同时工作,并联的,对应的地址一一相连。 ③详细的连接见下图:
CS 每片一位组成一个字节 WE A0 A12 地址线 D0 数据线 D7 8K×1位RAM芯片组成8K×8位的存储器 I/O I/O I/O I/O I/O I/O I/O 8K×1 I/O
例:用64K×1b的存储器芯片组成64K×8b(64KB)的存储器。例:用64K×1b的存储器芯片组成64K×8b(64KB)的存储器。 采用位扩展方式,需要芯片数为: = 8片 每片芯片应有16根地址线:A0 – A15, 8片芯片的地址线A15~A0分别连在一起同CPU的地址线A15~ A0相连;每片只有一位数据线,8片芯片的8位数据线分别和CPU的 数据线D7~D0相连。 当CPU访问该存储器时,其发出的16位地址同时传给8个芯片,选 中每个芯片的同一单元;CPU发出的 读/写控制信号同时传给8个芯片。
位扩展总结: • 当构成内存的存储芯片的字长 < 内存单元的字长时,就要进行位扩展,使每个单元的字长满足要求。 • 位扩展方法: 将每片的地址线、片选CS、读写控制线并联,数据线分别引出。 • 位扩展特点: 存储器的单元数不变,位数增加。 …
存储器容量扩展——字扩展 例使用16K×8位的RAM芯片组成一个64K×8位的存储器。 分析: ①芯片的字数不够,需进行字扩展。 ②共需芯片数目是64K÷16K=4。将4片RAM的地址线、数据线、读写线一一对应并联。 ③出现地址线不够问题,如何解决?可以用高2位地址作为选片端。 ④详细的连接见下图:
CS WE CS WE CS WE CS WE CS WE 16K×8位的RAM芯片组成一个64K×8位的存储器 10 地址端 地址端 地址端 地址端
例: 用64K×8b的存储器芯片组成512K×8b(512KB)的存储器。 采用字扩展方式,所需芯片数为: = 8 片 每片芯片应有16根地址线:A0 - A15;计算机系统有20根地址线: A0-A19, 8片芯片的地址线A15~A0分别连在一起同CPU的20位地址线中 A15~ A0相连; 采用全译码方式时,高4位地址线 A16 ~A19通过译码器译码产生 16个片选信号,其中8个分别同8片芯片的片选信号连接;每片只有8位 数据线,8片芯片的8位数据线并联分别和CPU的数据线D7~D0相连。 采用字扩展法的存储器连接如图所示。
字扩展总结: • 特点: 地址空间的扩展。芯片每个单元中的字长满足,但单元数不满足。 • 扩展原则: 每个芯片的地址线、数据线、读写控制线并联,仅片选端分别引出,以实现每个芯片占据不同的地址范围。 …
M N L K × 存储器容量扩展——字位扩展 • 实际存储器往往需要在字向、位向两个方向同时扩展。 • 一个存储器的容量为M×N位,若使用L×K位的存储芯片,则该存储器共需的芯片个数为: • 需解决: 芯片的选用、 … … 地址分配与片选逻辑、 … 信号线的连接。 …
2114(1K×4)SRAM芯片组成容量为4K×8的存储器 例4 用2114(1K×4)SRAM芯片组成容量为4K×8的存储器。 要求: 1、确定整个存储器所需的芯片数及芯片的分组情况 ; 2、确定存储器及每组芯片的地址范围; 3、说明地址线的分配方法,并画出存储器的结构图。
每组需2114(1K×4)SRAM 芯片2片,共4组。 位扩展2片芯片CS连在一起,4组字扩展CS要分开。 2114(1K×4)SRAM芯片组成容量为4K×8的存储器 分析: 1.计算芯片数 整个存储器所需要芯片数=(4×8)/ (1×4)=8片 先扩展位数,再扩展单元数。 2片1K×4 1K×8 8片 4组1K×8 4K×8
2114(1K×4)SRAM芯片组成容量为4K×8的存储器 2.地址分配与片选逻辑 芯片内的寻址系统(二级译码) 存储器寻址逻辑 芯片外的地址分配与片选逻辑 为芯片分配哪几位地址,以便寻找片内的存储单元 由哪几位地址形成芯片选择逻辑,以便寻找芯片 存储空间分配: 4KB存储器在16位地址空间(64KB)中占据任意连续区间。
64KB 1K×4 1K×4 1K×4 1K×4 1K×4 1K×4 1K×4 1K×4 2114(1K×4)SRAM芯片组成容量为4K×8的存储器 片选 芯片地址 A11 A10 A9……A0 0 0 0 …… 0 0 0 1 …… 1 0 1 0 …… 0 0 1 1 …… 1 4KB 1 0 0 …… 0 需12位地址寻址: 1 0 1 …… 1 1 1 0 …… 0 A11~A0 1 1 1 …… 1 低位地址分配给芯片,高位地址形成片选逻辑。 2114芯片为1K×4位,片内寻址需要10根地址线,为A0~A9
2114(1K×4)SRAM芯片组成容量为4K×8的存储器 芯片 芯片地址 片选信号 片选逻辑 1K A9~A0 CS0 A11A10 1K A9~A0 CS1 A11A10 1K A9~A0 CS2 A11A10 1K A9~A0 CS3 A11A10 整个存储器的地址范围:000H~FFFH 共分为4组,每组的地址范围为: 第一组:000H~3FFH 第二组:400H~7FFH 第三组:800H~BFFH 第四组:C00H~FFFH
11 10 01 00 2114(1K×4)SRAM芯片组成容量为4K×8的存储器 3.连接方式 (1)扩展位数 (2)扩展单元数 (3)连接控制线 (4)形成片选逻辑电路
例:某半导体存储器总容量4K×8位。其中固化区2K字节,选用EPROM芯片2716(2K×8位);工作区2K字节,选用SRAM芯片2114(1K×4/片)。地址总线A15~A0(低),双向数据总线D7~D0(低)。例:某半导体存储器总容量4K×8位。其中固化区2K字节,选用EPROM芯片2716(2K×8位);工作区2K字节,选用SRAM芯片2114(1K×4/片)。地址总线A15~A0(低),双向数据总线D7~D0(低)。
确定芯片:1块2716,4块2114,如图组织逻辑地址确定芯片:1块2716,4块2114,如图组织逻辑地址 • 位扩展就是并联多个芯片的地址线,可以视为多组8位芯片 • 字扩展就是确定片选信号,根据地址线总宽度和地址分配情况,确定片选信号产生逻辑 • 芯片1:/A11 • 芯片2:A11·/A10 • 芯片3:A11·A10 设计目标: 4K×8的地址空间 2K×8 1K×4 1K×4 1K×4 1K×4 0000 07FF 0800 1K×8 0BFF 1K×8 0C00 0FFF
片选信号的产生逻辑—寻找地址空间的特征值 • 4K空间需12位地址,A15~A12不用 • 芯片1:0000~07FF,A10~A0全部占用为地址信号,A11始终为0,此空间外地址的A11必为1,故片选逻辑为/A11 • 芯片2:0800~0BFF,A9~A0全部占用为地址信号,A11始终为1, A10始终为0,故片选逻辑为A11·/A10 • 芯片3:0C00~0FFF,A9~A0全部占用为地址信号,A11始终为1, A10始终为1,故片选逻辑为A11·A10 字扩展:片选逻辑具有排他性,确保同一时刻只有一个芯片在工作
2K×8 1K×4 1K×4 1K×4 1K×4 • 设计结果 • 芯片1使用11位地址A10~A0, A11用于片选 • 芯片2、3都使用并联的10位地址A9~A0,并将A11、A10用于片选 0000 07FF 0800 0BFF 0C00 0FFF
D7~4 D3~0 R/W 2716 2114 2114 CS0 CS2 CS1 2114 2114 A10~0 地址 A9~0 A9~0 A11 A11 A10 A11 A10
芯片级存储器逻辑图应表示出: • 所用存储芯片。 • 各芯片的地址线。 • 片选逻辑。 注意,芯片的片选信号一般是/CS,即低电平有效,设计往往先从逻辑命题真写出逻辑式 • 数据线。数据总线是双向总线,数据通路宽度8位。ROM芯片数据为单向输出。RAM芯片为双向连接。2114每片4位,分别连到数据线D7~D4和D3~D0,两组拼接为8位。 • 读/写控制R/W。2716没有R/W输入端,R/W信号只送至RAM芯片2114。
ROM芯片在联机工作中是只读不写,即单向输出,无WE线。ROM芯片在联机工作中是只读不写,即单向输出,无WE线。 RAM芯片可读可写,双向连接。 思考题: 用8K×8位的ROM芯片和8K×4位的RAM芯片组成存储器,按字节编址,其中RAM的地址为2000H~7FFFH,ROM的地址为C000H~FFFFH,画出此存储器组成结构图及与CPU的连接图。 解题提示:
思考题: 1.计算容量和芯片数 RAM区:地址范围展开为 0010 0000 0000 0000 0010 0000 0000 0000 RAM单个芯片的容量为8K=213 0111 1111 1111 1111 0111 1111 1111 1111 高位地址A15A14A13为001~011,RAM的容量为8K×3=24K, 需要8K×4位的RAM芯片6片。 ROM区:末地址-首地址=FFFFH -C000H=3FFFH 所以ROM的容量为214=16K,需要8K×8位的ROM芯片2片。 ROM的地址范围展开为 1100 0000 0000 0000 1111 1111 1111 1111 高位地址A15A14A13为110~111
64KB 8K×4 8K×4 8K×4 8K×4 1 1 1 1 1 1 0 1 1 0 1 1 0 1 0 0 1 0 8K×4 8K×4 8K×8 8K×8 CS2 A15A14A13 CS1 A15A14A13 CS6 A15A14A13 CS3 A15A14A13 思考题: A15A14A13A12……A0 0 0 1 0 …… 0 RAM 40KB 需16位地址寻址: 0 0 11 …… 1 1 1 00 …… 0 ROM 1 1 01 …… 1 A15~A0 低位地址分配给芯片,高位地址形成片选逻辑。 选用3:8译码器(74LS138) 片选信号 片选逻辑 CS7 A15A14A13
存储系统 • CPU与主存 • 巨大的性能差距——Memory Wall • 提高访存效率的途径 • 增强存储器的性能 • 增加存储器字长 • 采用并行操作的双端口存储器 • 每个周期存取多个字 • CPU与主存之间插入高速的Cache
存储系统 • 根据各种存储器的存储容量、存取速度和价格比的不同,将它们按照一定的体系结构组织起来,使所放的程序和数据按照一定的层次分布在各种存储器中。 CPU CACHE 主存(内存) 辅存(外存)
高速缓冲存储器(Cache) Cache是为弥补主存速度的不足,在CPU 和主存之间设置的高速、小容量的缓冲存储器。 组成: 小容量的SRAM和高速缓存控制器组成。 • 功能:将CPU当前快要用到的部分数据块由主存复制到容量小、速度快的SRAM中,由SRAM向CPU直接提供它所需要的数据。
高速缓冲存储器(Cache) 为了使CPU不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施。实现的途径有: 主存储器采用更高速的技术来缩短存储器的读出时间,或加长存储器的字长; 采用并行操作的双端口存储器; 在CPU和主存储器之间插入一个高速缓冲存储器(cache),以缩短读出时间; 在每个存储器周期中存取几个字。
图4 -39 CPU存储器系统的关系 Cache的基本原理 • 介于CPU与主存之间 • 基于高速的SRAM • 小容量、高速度 • 硬件实现的管理功能 • 对程序员透明 一种高速缓冲器,解决CPU与主存之间速度不匹配的一项技术 可以集成到CPU中
图4 -40 cache原理图 Cache的基本原理 • 读操作 • CPU发送地址到Cache/主存 • Cache命中则直接读出数据 • 否则主存将数据送至CPU和Cache 主存 →Cache 以块为单位,即:复制目标存取字在内的一块数据 目的:下次读取时可以直接访问Cache
Cache的基本原理 • 程序局部性原理 CPU访问存储器时,无论是取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。 • 两种不同类型的局部性 • 时间局部性(Temporal Locality):如果一个信息项正在被访问,那么在近期它很可能还会被再次访问。程序循环、堆栈等是产生时间局部性的原因。 • 空间局部性(Spatial Locality):在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。指令的顺序执行、数组的连续存放等是产生空间局部性的原因。
Cache的基本原理 • 帕雷托法则(Pareto principle),也称为80/20法则,此法则指在众多现象中,80%的结果取决于20%的原因,而这一法则在很多方面被广泛的应用。 • 在计算机科学里,帕雷托法则可借由观察80%的资源是由20%所操作使用,来最佳化资源。在软件工程上,常有接近90%的电脑程序执行次数花费在10%的程式源代码执行。在图书资讯学里,一间图书馆的20%馆藏是由80%的读者所借阅。
图4 -40 cache原理图 Cache的基本原理 • Cache的组成 • 基于SRAM的存储实体 • 硬件控制逻辑 • 存取单位 • CPU与Cache之间的数据交换以字为单位 • Cache与主存之间的数据交换以块为单位,一个块由若干字组成,是定长的。
Cache的基本原理 • 数据块 • Cache与主存之间的数据交换单位 • 主存单元的逻辑划分 • 主存中的块对应Cache中的行,二者长度相等且固定—一一对应 • 数据字地址被划分为块号/行标记和块/行内部地址两部分 主存 Cache 块 行 标记 命中:地址的块号与某一行的行标记匹配
主存与Cache的地址映射 主存 Cache 块 行 ? 标记
7位 4位 9位 块内地址 主存地址 主存标记 Cache块号 主存块号 4位 9位 块内地址 cache地址 Cache块号
图4 -40 cache原理图 主存与Cache的地址映射 • 地址映射 • 建立主存数据块与Cache行,以及主存地址与Cache存储单元的对应关系 • 利用硬件实现 • 对CPU/程序员透明 • 映射策略 • 全相联映射 • 直接映射 • 组相联映射
主存与Cache的地址映射 • 直接映射 • 主存中的某个字块只能缓存与Cache中的特定行 • 利用模运算克服Cache与主存的容量差距,模即为Cache中的行数 • 例如: • 对于4行Cache而言,主存中的第0、4、8、16…块均只能缓存于第0行
主存与Cache的地址映射 • 直接映射实例 主存为1MB,划分2048块;Cache容量为8KB,直接映射Cache如何设计? • 主存容量为1MB,块内容量512B。Cache容量为8KB,行容量为512B,共16行。 • 主存可以划分为2048/16=128个区,每区含16块。总地址为20位;其中块内地址9位,4位地址作为区内编号(地址),高7位作为区编号。区编号作为行标记存储。
主存与Cache的地址映射 • 直接映射实例 • 读过程 • CPU给出20位地址。 • Cache利用中间4位的区内编号确定目标行。 • Cache将高7位的区编号与该行的标记进行比较。 • 命中则利用低9位的块(行)内地址完成访问。 • 否则从主存读出数据并复制数据块到Cache。 例如: 地址0000000 1000 XXXXXXXXX 对应某区的第8块和Cache的第8行,只要该行标记为0000000,则表示第0区的第8行位于Cache中,即命中
主存地址 i = j mod n相当于将主存的地址空间按Cache的空间大小分区,每 个区内可按Cache块号编号,这样主存地址结构如下: 主存块号 “区号”作为标记(表示为Tag)存放在“地址映像表”中,用于判断是 否命中; “块号”是区内块号,同Cache块号,用于直接查“地址映像表”(用作 查表索引),以及在Cache中进行“块寻址”; “块内地址”用于在块内选择字或字节(表示为BS); 例如 一块有1024个字(16位)或字节,则块内地址为10位(1024个字 节)或11位(1024个字)。在上例中,主存地址中区号为5位,块号为 3位,块内地址为10位(块内字地址)共18位。
直接映像的访存过程 访存过程以图表示。