940 likes | 1.11k Views
计算机组成原理与汇编语言 (组成原理部分) 2000 级. 北航计算机学院 刘旭东 Tel : 82316285 , 82317634 Mail : liuxd@buaa.edu.cn. 第二部分 存储系统. 存储系统概述 主存储器的组成与工作原理 高速缓冲存储器的结构与工作原理 辅助存储器(磁表面存储器) 虚拟存储系统. 存储系统概述 主存储器的组成与工作原理 高速缓冲存储器的结构与工作原理 辅助存储器(磁表面存储器) 虚拟存储系统. 1.1 存储系统概述. 存储器分类 按介质分类: 半导体存储器 磁介质存储器 光盘存储器
E N D
计算机组成原理与汇编语言(组成原理部分)2000级计算机组成原理与汇编语言(组成原理部分)2000级 北航计算机学院 刘旭东 Tel :82316285,82317634 Mail:liuxd@buaa.edu.cn
第二部分 存储系统 存储系统概述 主存储器的组成与工作原理 高速缓冲存储器的结构与工作原理 辅助存储器(磁表面存储器) 虚拟存储系统
存储系统概述 • 主存储器的组成与工作原理 • 高速缓冲存储器的结构与工作原理 • 辅助存储器(磁表面存储器) • 虚拟存储系统
1.1 存储系统概述 • 存储器分类 • 按介质分类: • 半导体存储器 • 磁介质存储器 • 光盘存储器 • 按访问方式分类: • 随机访问存储器 (Random Access Memory—RAM) • 只读存储器 (Read Only Memory—ROM) • 顺序访问存储器 (Tape) • 直接访问存储器 (Disk) • 联想存储器 (某些Cache) • 按功能分类: • 高速缓冲存储器 • 主存储器 • 辅助存储器 • 控制存储器
1.1 存储系统概述 • 存储器的性能指标 • 访问时间(Access Time): • 随机访问存储器:访问时间指读或写操作所用时间,即从给定地址到存储器完成读或写操作所需时间。 • 其他类型:指将读写机构定位到目标位置所需的时间。 • 存储周期(Cycle Time): • 仅对RAM而言,指两次访问存储器单元之间的最小时间间隔。一般均大于访问时间。 • 带宽(Bandwidth)/数据传输率(Transfer Rate) • 一般的随机访问存储器:1/Cycle Time; • 其他类型:TN=TA+N/R TN:读写N Bits所需的平均时间 TA:访问时间 N:N Bits R:存储部件的数据传输率( bits /s)
Processor Control Secondary Storage (Disk) Second Level Cache (SRAM) Main Memory (DRAM) Tertiary Storage (Tape) On-Chip Cache Datapath Registers 10,000,000s (10s ms) Speed (ns): 1s 10s 100s 10,000,000,000s (10s sec) Size (bytes): 100s Ks Ms Gs Ts 1.1 存储系统概述 • 存储器的层次/性能特征
1.1 存储系统概述 • 存储器的层次结构 二级存储系统指:高速缓冲存储器(Cache)+主存储器
1.2 半导体存储器 • 随机访问存储器(RAM) • SRAM(Static RAM):静态存储器,相对动态而言,集成度低,但不必刷新。 • DRAM(Dynamic RAM):动态存储器,需要刷新,相对而言,集成度高。 • FPM (Fast Page Mode) DRAM:串行访问方式,传统的DRAM类型(RAS,CAS选择型)。 • EDO (Extended Data Out) DRAM:可并行访问的DRAM类型(实际上是一种简单的Pipelining型存储器类型。上一个地址访问结束前可以开展下一个地址访问,提高了整个存储器的BandWidth)。FPM DRAM、EDO DRAM均属于非同步型DRAM。 • SDRAM( Synchronous DRAM):同步DRAM(与CPU保持同步), 由系统时钟驱动的DRAM,在存储器完成存取操作期间,CPU可以进行其他工作,从而提高了系统的性能。而非同步型DRAM,在存取操作期间,CPU只能处于等待状态。 • DDR(Double Data Rate)DRAM
1.2 半导体存储器 • 只读存储器(ROM) • 固定掩膜(Masks)ROM • PROM(Programmable ROM):一次性可编程 • EPROM(Erasable PROM):可擦除可编程(紫外线擦除) • EEPROM(Electrically Erasable PROM):电擦除(字节一级) • Flash Memory:电擦除(Block Level)
存储系统概述 • 主存储器的组成与工作原理 • 高速缓冲存储器的结构与工作原理 • 辅助存储器(磁表面存储器) • 虚拟存储系统
2.1 存储单元电路 • 基本要求 • 具有两种稳定(或半稳定)状态,用来表示二进制的 1 和 0 ; • 可以实现状态写入(或设置); • 可以实现状态读去(或感知)。
读出:字选线高电平,T5和T6导通,D线读出内部电平(状态)。读出:字选线高电平,T5和T6导通,D线读出内部电平(状态)。 写 1:D线高电平,D 线低电平,字选线高电平,T5 和 T6 导通,T1截止,T2导通,写入 1。 写 0:D线低电平,D 线高电平,字选线高电平,T5 和 T6 导通,T2截止,T1导通,写入 0。 2.1 存储单元电路 • SRAM存储单元电路(六管单元电路) T1,T2:工作管; T3,T4:负载管; T5,T6:门控管; 稳定状态:T1 截止,T2 导通,表示 1 T2 截止,T1 导通,表示 0 保持状态:字选线低电平,T5 和 T6 截止,内部保持稳定状态。
2.1 存储单元电路 • DRAM存储单元电路(单管单元电路) • Cs电容 <<Cd电容 • C上有电荷表示‘1’,无电荷表示‘0’ • 保持状态:字选线低电平,T截止,内部保持稳定状态。但电容有漏电流,状态不能长久保持 ,需要不断刷新(再生)。 读出时:D线预充电到 Vpre=2.5V,字选线高电平,T导通,若单元电路保存信息是 1,Vcs=3.5V,电流方向从单元电路内部向外;若单元电路保存信息是 0,Vcs=0.0V,电流方向从外向单元电路内部;因此,根据数据线上电流的方向可判断单元电路保存的是 1还是 0。 读出过程实际上是Cs与Cd上的电荷重新分配的过程,也是Cs与Cd上的电压重新调整的过程。Cd上的电压,即是D线上的电压。 写入时:D 线加高电平(1)或低电平(0),对C充电或放电。
2.1 存储单元电路 • DRAM单管单元电路的工作特征 D线上的电压在读出过程中的变化量实例计算:
2.1 存储单元电路 • DRAM存储单元电路的信号刷新问题 1. 由于读出过程D线电压变化量较小,需要对变化量进行放大才能得到有效的数据,所以单管存储单元电路中D线上必须增加放大器(Sense Amplifier)。 • (不考虑Sense Amplifier的作用的前题下)读出操作是一种破坏性操作,读1时,Cs在放电;读0时,Cs在充电;所以读出操作后,原保存在Cs上的数据(电荷)被破坏,应该立即进行恢复(重写或刷新)。 • 在保持状态下,T管截止,Cs与外部隔开,但Cs两级间存在漏电流,所以,Cs上的电荷也会出现变化,必须在一个时间内重写数据,这个时间称为单元电路的刷新周期,一般为4ms、8ms。 • 刷新由Sense Amplifier 在读出过程中同时实现刷新。在D线上增加了Sense Amplifier后读过程实际上就是一次刷新过程。事实上,DRAM的刷新就是通过读操作来实现的。
读出阶段 读出阶段 2.1 存储单元电路 • DRAM单管单元电路 • D线上的电压在读出过程中的变化情况 预充电阶段 结论:DRAM的读过程就是刷新过程
2.1 存储单元电路 • 符号表示
2.2 存储芯片逻辑 • 存储芯片结构(一维地址结构) 1024* 1 :1024 个字单元,每个字单元 1 个二进制位。 存储单元电路 存储器地址 字选择线
2.2 存储芯片逻辑 • 二维地址结构(SRAM):4096* 4 :4096 个字,每个字 4 位。 128 X 128存储单元矩阵 行地址数与列地址数不等 列地址 行地址
2.2 存储芯片逻辑 • 二维地址结构(DRAM):4096* 4 :4096 个字,每个字 4 位。 64 X 256 存储单元矩阵 行地址数与列地址数相等 列地址 行地址
2.2 存储芯片逻辑 • SRAM2114(1024*4)芯片结构 片选信号
2.2 存储芯片逻辑 • DRAM 4M*4 DRAM芯片结构(内部包含刷新电路) Row Access Strobe Column Access Strobe
2.3 RAM读写时序 • Intel 2114 SRAM的读时序 TRC:读周期 TA:读出时间 Tco:从片选有效到输出数据稳定所需时间 Tcx:片选有效到输出有效(不一定稳定)所需的时间 TOTD:片选无效到输出数据维持的时间 TOHA:地址改变后初出数据的维持时间
存储器芯片结构总结 • SRAM普遍采用全地址线方式,即芯片地址管脚安排了内部所需要的全部行地址和列地址。芯片采用片选信号CS。 • DRAM为压缩芯片面积,减少管脚数目,普遍采用地址线复用方式,即芯片地址管脚只安排内部所需要的地址的一半,行地址线与列地址线复用,内部设置行地址和列地址锁存器,分时输入行地址和列地址。采用行选信号RAS和列选信号CAS分别控制行地址和列地址的输入,RAS同时作为芯片的片选信号。
2.4 存储器芯片的扩展 • 位扩展 • 存储器芯片提供的字空间满足整个存储空间的字空间要求,但存储器芯片的位空间不能满足要求。 • 基本思路: • 确定每个芯片的地址管脚数、数据管脚数。 • 整个存储空间与存储芯片的地址空间一致,所以所需的地址总线也一样。单数据总线数量不一样。 • 计算所需存储器芯片的数量,确定每个存储器芯片在整个存储空间中的地址空间范围、位空间范围。 • 所有芯片的地址管脚全部连接到地址总线对应的地址线上。 • 同一字空间的存储芯片CS信号连在一起。 • 不同位空间的数据线连接到对应的数据总线上。 • 所有芯片的CS逻辑连接在一起。 • 统一读写控制。
2.4 存储器芯片的扩展 例:1K 4的SRAM存储芯片构造1K 8的存储器
2.4 存储器芯片的扩展 • 字扩展 • 存储器芯片提供的字空间不能满足整个存储空间的字空间要求,但存储器芯片的位空间满足要求。 • 基本思路: • 确定每个芯片的地址管脚数、数据管脚数。 • 确定整个存储空间所需的地址总线和数据总线的数量。 • 计算所需存储器芯片的数量,确定每个存储器芯片在整个存储空间中的地址空间范围、位空间范围。 • 所有芯片的地址管脚全部连接到地址总线对应的地址线上。 • 同一字空间的存储芯片CS信号连在一起。 • 同一位空间的数据线连在一起,并连接到对应的数据总线上。 • 根据每个存储器芯片的地址空间范围设计存储器芯片所需要的片选信号逻辑,CS逻辑电路的输入一定是地址总线中没有连接到芯片的地址管脚上的哪部分地址线。 • 统一读写控制。
2.4 存储器芯片的扩展 • 例:1Kx8 SRAM存储芯片构成4Kx8的存储器
2.4 存储器芯片的扩展 • 混合扩展 • 存储器芯片提供的字空间不能满足整个存储空间的字空间要求,位空间也不能满足要求。 • 基本思路: • 确定每个芯片的地址管脚数、数据管脚数。 • 确定整个存储空间所需的地址总线和数据总线的数量。 • 计算所需存储器芯片的数量,确定每个存储器芯片在整个存储空间中的地址空间范围、位空间范围。 • 所有芯片的地址管脚全部连接到地址总线对应的地址线上。 • 同一字空间的存储芯片CS信号连在一起。 • 同一位空间的数据线连在一起,并连接到对应的数据总线上。 • 根据每个存储器芯片的地址空间范围设计存储器芯片所需要的片选信号逻辑,CS逻辑电路的输入一定是地址总线中没有连接到芯片的地址管脚上的哪部分地址线。 • 统一读写控制。
2.4 存储器芯片的扩展 • 例:1Kx4 SRAM存储芯片构成16Kx8的存储器
2.4 存储器芯片的扩展 • DRAM扩展的特殊性 • DRAM芯片地址的特殊性问题:行地址与列地址复用,行地址与列地址的定时与选通问题。CPU(或总线)提供的是完全的地址,如何将全部地址分成行地址和列地址?如何产生行选通信号RAS和列选通信号CAS? • DRAM芯片的片选问题:行地址选通信号RAS作为片选信号。 • DRAM芯片扩展是刷新的问题必须:刷新由谁来完成,谁提供刷新地址,刷新的控制,刷新的定时,刷新与CPU访问内存时的冲突策略等问题。 • 解决的办法 • 在CPU与存储器之间设计专用的DRAM存储器控制电路,完成刷新控制、刷新定时、地址划分与选通信号的产生与定时等。 • 由DRAM芯片控制器来实现上述定时、控制与刷新等操作。
2.4 存储器芯片的扩展 • DRAM控制器
2.4 存储器芯片的扩展 • DRAM存储芯片的扩展 • DRAM芯片:41256A8(256K X 8)芯片4个,组成1MByte存储器,同时要提供16位字访问方式和8位字节方式方式。存储器按字节编址。 • DRAM控制器:Intel 82C08,18位地址多路复用到256K存储器件的9个地址,它可控制两个存储体(BS信号决定),所以可以实现512K个地址空间。 • 按字节访问时最低位地址A0有意义,按16位字访问时,最低位地址A0没有意义。 • CPU(或总线)提供BHE信号,表明是字节访问方式还是16位字访问方式。
2.5 DRAM的刷新 • DRAM的刷新 • 刷新操作:读操作; • 按行刷新、所有芯片同时进行 ; • 刷新操作与CPU访问内存分开进行; • 刷新周期:2ms, 4ms, 6ms, 16ms; • 刷新地址及刷新地址计数器 • DRAM的刷新方式 • 集中刷新 :将刷新周期分成两部分,在一个时间段内刷新存储器所有行,此时CPU停止访问内存,另一个时间段CPU访问内存,刷新电路不工作。 • 分散隐含刷新:CPU与刷新电路交替访问内存,一个存储周期刷新1行,下一个存储周期刷新另一行,直至最后1行后,又开始刷新第1行。同1行两次被刷新的时间间隔可能小于存储芯片的刷新周期。 • 分布式刷新:保证在一个刷新周期内将存储芯片内的所有行刷新一遍,可能等时间间距,也可能不等。
2.5 DRAM的刷新 • 刷新方式
2.6 ROM(只读存储器) • 固定掩膜ROM单元电路 含二级管的电路表示1,不含电路表示0 含三级管的电路表示1,不含电路表示0 含MOS管的电路表示0,不含电路表示1
2.6 ROM(只读存储器) • 可编程的PROM单元电路 • 出厂时所有位均为1。 • 编程时(写入数据),对写0的单元加入特定的大电流,熔丝被烧断,变为另一种表示0的状态,且不可恢复。 • 工作时,加入正常电路。
2.6 ROM(只读存储器) • 紫外线擦除可编程的EPROM单元电路 • 出厂时所有位均为1,FAMOS(栅极浮动)管G极无电荷,处于截止状态。 • 编程时(写入数据),对写0的单元加入特定的电压,FAMOS上的G极与D极被瞬时击穿,大量电子聚集到G极上,撤销编程电压后,G极上的聚集的电子不能越过隔离层,FAMOS导通,表示0。 • 工作时,加入正常电路,FAMOS 的状态维持不变。 • 擦除时,用紫外线照射,FAMOS聚集在G极上的电子获得能量,越过隔离层泄漏,FAMOS恢复截止状态。
2.6 ROM(只读存储器) • ROM芯片的结构
存储系统概述 • 主存储器的组成与工作原理 • 高速缓冲存储器的结构与工作原理 • 辅助存储器(磁表面存储器) • 虚拟存储系统
Main Memory CPU Block Word Cache 3.1 高速缓冲存储器(CACHE)的结构 • Cache产生的前提 • 单级存储系统中,主存的存储速度与CPU的速度不匹配,造成CPU资源的浪费; • 程序运行时访问内存在一定的时间内存在明显的局部性; • 存在比主存普遍采用的DRAM速度更快的存储单元电路; • 在CPU与内存之间设置一个高速的容量相对小的存储机构,把CPU正在执行的指令或数据附近一部分主存内容取来保存在这个存储机构中,供CPU使用。在一段时间内CPU可以减少访问内存的频度,提高运行效率。这个存储机构就是高速缓冲存储器(CACHE)。
3.1 高速缓冲存储器(CACHE)的结构 • Cache要解决的问题 • 提供快速访问的能力; • 具有存取数据的能力和与主存交换数据的能力; • 由于CPU总是以主存地址访问存储器,所以CACHE应具备判断CPU当前要访问的内容是否在CACHE中的能力,并具有将主存地址转换成CACHE地址的能力,或者具有根据主存地址在CACHE中访问到相应数据单元的能力。 • 具备在CACHE容量不够的前提下替换CACHE中的内容的决策机制。
Tag Block Block Tag Block Main Memory Tag Block Tag Block Block Cache 的基本结构 3.1 高速缓冲存储器(CACHE)的结构 • Cache的基本结构 • 存储机构:保存数据,存取数据,一般采用SRAM构成。以Block(若干字)为单位; • 地址机构:地址比较机制,地址转换机制,地址标示(Tag),一个Block具有一个Tag(实际上可以是一个寄存器); • 替换机制:记录Block的使用情况,替换策略;
3.1 高速缓冲存储器(CACHE)的原理 • Cache的有关术语 • 数据块(Block):CACHE与主存的基本划分单位,也是主存与CACHE一次交换数据的最小单位,由多个字节(字)组成,取决与主存一次读写操作所能完成的数据字节数。也表明主存于CACHE之间局部总线的宽度。 • 标记(Tag):地址标记,CACHE每一Block具有一个唯一的标记,用来指明该Block中的数据属于主存中哪个数据Block的副本。 • 组(Set):若干块(Block)构成一个组,地址比较一般能在组内各块间同时进行。 • 路(Way):Cache相关联的等级,每一路具有独立的地址比较机构,各路地址比较能同时进行(一般与组结合),路数即指一组内的块数。 • 命中:CPU要访问的数据在CACHE中。 • 失效:CPU要访问的数据不在CACHE中。
3.2 CACHE的工作原理 • Cache的读操作
3.3 CACHE与主存之间的映射 • 全相联映射(Associative Mapping) • 主存分为若干Block,Cache按同样大小分成若干Block,Cache中的Block数目显然比主存的Block数少得多。 • 主存中的某一Block可以映射到Cache中的任意一Blcok。
3.3 CACHE与主存之间的映射 全 相 联 映 射 的 Cache 组 织
Block Number Offset 3.3 CACHE与主存之间的映射 • 全相联映射的地址 • 主存的地址格式: • Cache的Tag内容:主存中与该Cache数据块对应的数据块的块地址。 • 全相联映射举例 • 主存:16M Bytes • Cache:64K Bytes • Block:8 Bytes • 解答 • 主存共分为:2M Blocks • 主存地址:24为,其中高21位为块地址,低3位为块内地址(块内偏移) • Cache共分为:8K Blocks • Cache的Tag应该为21位。
3.3 CACHE与主存之间的映射 • 组相联映射(Set Associative Mapping) • 映射关系:Cache 分成 K 组,每组分成 L 块;主存的块 J 以下列原则映射到 Cache 的组 I中的任何一块。 I = J mod K • 实际上主存与Cache都分成 K 组,主存每一组内的块数与Cache一组内的块数不一致, 主存组M内的某一块只能映射到Cache组M内,但可以是组M内的任意一块.