1、组成原理课程第四章优选组成原理课程第四章3本章知识点:本章知识点:4.1 4.1 存储器概述存储器概述 1)存储器主要技术指标 2)主存中的数据存放:大、小端存放 3)主存的基本结构和工作过程 4)存储系统层次结构4.2 4.2 半导体存储器半导体存储器 1)SRAM的工作原理 2)DRAM的工作原理4.3 4.3 主存的组织及与主存的组织及与CPUCPU的连接的连接 1)位扩展 2)字扩展4.4 4.4 并行存储系统并行存储系统 1)双端口存储器 2)单体多字存储器 3)多体交叉存储器4.5 4.5 高速缓冲存储器高速缓冲存储器 1)程序访问的局部性原理 2)Cache的组织及访问Cache
2、流程 3)三种常见的Cache地址映射及地址变换方法 4)Cache的替换算法 5)Cache的写策略 6)应用举例4.6 4.6 虚拟存储器虚拟存储器 1)虚拟存储器的基本概念及种类 2)页式虚拟存储器 3)TLB(快表)41.主存的常用技术指标主存的常用技术指标1)1)存储容量指标:存储器所能存储的二进制信息的位数存储容量指标:存储器所能存储的二进制信息的位数.2)2)速度指标:速度指标:(1)(1)存取时间存取时间(存储器访问时间存储器访问时间)启动存取操作到操作完成所经历的时间启动存取操作到操作完成所经历的时间 (2)(2)存储周期存储周期(读写周期读写周期):对存储器进行连续两次存取
3、操作所需的最短时间间隔。存储器在对存储器进行连续两次存取操作所需的最短时间间隔。存储器在一次存取操作后需要一定的恢复时间一次存取操作后需要一定的恢复时间,故该时间一般大于存取时间故该时间一般大于存取时间.(3)(3)存储器带宽:存储器带宽:单位时间内存储器所存取的信息位,也称存储器的数据传输率单位时间内存储器所存取的信息位,也称存储器的数据传输率.即即存储器总线宽度存储器总线宽度/存储周期存储周期,单位为位单位为位/秒秒4.1.存储器概述存储器概述51)1)信息存储及存储器编址信息存储及存储器编址(1)(1)存储字长与数据字长的概念存储字长与数据字长的概念 存储字长:主存的一个存储单元所包含的
4、二进制位数存储字长:主存的一个存储单元所包含的二进制位数 数据字长数据字长(字长字长):计算机一次能处理的二进制数的位数:计算机一次能处理的二进制数的位数(2)(2)目前大多数计算机的主存采用按字节编址目前大多数计算机的主存采用按字节编址,而计算机的字长又包而计算机的字长又包含多个字节含多个字节,如如1616位字长、位字长、3232位字长和位字长和6464位字长,所包含的字节数分位字长,所包含的字节数分别为别为2 2、4 4、8 8。2.主存中的数据存放主存中的数据存放62)2)大端大端(big-endian)(big-endian)和小端和小端(little-endian)(little-e
5、ndian)数据存放方式数据存放方式 big-endian:big-endian:最高字节最高字节地址地址(最左边最左边)作为字地址作为字地址 (正常存放方式正常存放方式)MSBLSB0 1 2 3字节地址字节地址4 5 6 7字地址字地址04 little-endian:little-endian:最低字节最低字节地址地址(最右边最右边)作为字地址作为字地址MSBLSB0 1 2 3字节地址字节地址4 5 6 7字地址字地址04 68000 68000 采用大端采用大端,Intel,Intel采用小端,采用小端,ARMARM两者都支持两者都支持7 数据存放方式数据存放方式 应用举例应用举例设
6、某程序执行前设某程序执行前r0=0 x 11223344r0=0 x 11223344执行下列指令:执行下列指令:r1=0 x100r1=0 x100 STR r0,r1 STR r0,r1 LDRB r2,r1 LDRB r2,r1执行后:执行后:小端模式下:小端模式下:r2=0 x44r2=0 x44大端模式下:大端模式下:r2=0 x11r2=0 x1183)3)字节编址的存储器按边界对齐数据存放方法字节编址的存储器按边界对齐数据存放方法 若数据字长若数据字长3232位,存储字长位,存储字长6464位。则半字长位。则半字长1616位,双字长位,双字长6464位位 边界对齐的数据存放如下图
7、所示。边界对齐的数据存放如下图所示。双字数据的起始地址的最末三位为双字数据的起始地址的最末三位为000000(8 8字节的整数倍)字节的整数倍),表示访问表示访问一个一个6464位字长的字位字长的字,如果要访问其中的某字节或半字则用低三位中的部如果要访问其中的某字节或半字则用低三位中的部分位来选择分位来选择.单字数据的起始地址的最末二位为单字数据的起始地址的最末二位为0000(4 4字节的整数倍)字节的整数倍)半字数据的起始地址的最末一位为半字数据的起始地址的最末一位为0 0(字节的整数倍)(字节的整数倍)字节字节半字半字双字双字单字单字半字半字半字半字字节字节64位位93.主存结构及其工作过
8、程主存结构及其工作过程CPUCPU与存储器交换信息时,先给出地址与存储器交换信息时,先给出地址,该地址经地址译码驱动器后选中该地址经地址译码驱动器后选中存储体中对应的存储单元,然后由控制线路控制读出或写入。存储体中对应的存储单元,然后由控制线路控制读出或写入。读出时,将选中的存储单元所存的数据送入数据寄存器,原存储单元读出时,将选中的存储单元所存的数据送入数据寄存器,原存储单元中的内容不变。中的内容不变。CPUCPU从数据寄存器取走该数据进行指令所要求的处理。从数据寄存器取走该数据进行指令所要求的处理。写入时,将写入时,将CPUCPU送来并已存放于数据寄存器中的数据写入选中的存储单送来并已存放
9、于数据寄存器中的数据写入选中的存储单元,原数据将被新数据所取代。元,原数据将被新数据所取代。104 4、存储系统层次结构、存储系统层次结构1)1)分级结构的提出分级结构的提出对存储系统追求的目标对存储系统追求的目标:大容量、快速度、低价格大容量、快速度、低价格2)2)分级结构分级结构CPUCACHE主存主存辅助存储器辅助存储器最后的效果最后的效果(左向右看左向右看):CacheCache的速度,辅存的容量和价格的速度,辅存的容量和价格11正常情况下,Cache是主存的副本,但经过一段时间后,可所有芯片的片选控制线并联接低电平。0 0,0 0 0 0,0 0 0 0,0 0 0 0Address
10、es generated by the CPU correspond directly to bytes in physical memory.则CD 上的电荷经T2泄漏 D=0字扩展:当容量不足时门控管:T5、T6、T7、T8现在被访问的指令在不久的将来还将再次 被访问。16 13=3 根以小容量的为目标,每个片选译码输出选择4K的存储范围不用LRU,只要有冲突就直接替换原Cache行中 的页面,因为是多对一的关系时其他各行的计数器值加1,当需要发生页面调度时,比如果ROM存储器芯片采用8K8的芯片,RAM存储器芯片采用4K8的芯片,试画出存储器与CPU的连接图。将程序分成固定长度的页作为主
11、存和辅存之间交换的存储字长:主存的一个存储单元所包含的二进制位数使用段表和页表来登记段和页的调入情况。3)3)存储分级的理论基础存储分级的理论基础 !程序的局部性原理程序的局部性原理 ,又包括又包括时间局部性和空间局部性时间局部性和空间局部性 时间局部性时间局部性 现在被访问的指令在不久的将来还将再次现在被访问的指令在不久的将来还将再次 被访问。被访问。12345时间局部性的程序结构体现:时间局部性的程序结构体现:循环循环 空间局部性空间局部性 现在访问指令现在访问指令2 2,下一次访问的指令在,下一次访问的指令在2 2的附近。的附近。空间局部性的程序结构体现:空间局部性的程序结构体现:顺序顺
12、序 1 1、SRAM(Static Random Access Memory)SRAM(Static Random Access Memory)工作原理工作原理1)1)基本存储单元基本存储单元 -存放一位二进制信息的电路存放一位二进制信息的电路2)SRAM2)SRAM存储单元结构及其工作原理存储单元结构及其工作原理工作管:工作管:T T1 1、T T2 2负载管:负载管:T T3 3、T T4 4门控管:门控管:T T5 5、T T6 6、T T7 7、T T8 8Source:Source:源极源极 DrainDrain:漏极漏极GateGate:栅极栅极衬底一般与衬底一般与S S极相连,与
13、极相连,与G G极之间绝缘,大多数情况下极之间绝缘,大多数情况下S S和和D D可互换可互换4.24.2半导体存储器半导体存储器13写过程写过程行选通行选通 T T5 5、T T6 6 通通A A与与 D D 连通连通列选通列选通 T T7 7、T T8 8 通通 B B与与 D D 连通连通写写1 1的过程的过程D=1 D=1 A=1A=1 T T2 2 通通B=0 B=0 T T1 1 截止截止D D=0=0 B=0B=0 T T1 1截止截止A=1 A=1 T T2 2通通此时此时,T T1 1、T T2 2形成了稳态,形成了稳态,A=1A=1、B=0B=0写写0 0的过程的过程D=0
14、D=0 A=0A=0 T T2 2截止截止B=1 B=1 T T1 1通通D D=1=1 B=1B=1 T T1 1 通通A=0 A=0 T T2 2 截止截止此时,此时,T T1 1、T T2 2形成了稳态,形成了稳态,B=1B=1、A=0A=0即:六管静态存储单元是以即:六管静态存储单元是以T1T1和和T2T2构成的稳定互锁态保存信息构成的稳定互锁态保存信息14读过程读过程行选通行选通 T T5 5、T T6 6 通通A A与与 D D 连通连通列选通列选通 T T7 7、T T8 8 通通 B B与与 D D 连通连通读读1 1的过程的过程若原来保存的是若原来保存的是1 1,则此时,则此
15、时,D=1D=1、D D=0=0,D D和和D D外接一个读出放大器,放外接一个读出放大器,放大器中的电流从大器中的电流从D D流向流向D D ,表示读出为,表示读出为1 1读读0 0的过程的过程若原来保存的是若原来保存的是0 0,则此时,则此时,D=0D=0、D D=1=1,D D和和D D外接一个读出放大器,放外接一个读出放大器,放大器中的电流从大器中的电流从D D 流向流向 D D,表示读出为,表示读出为0 0读出的内容是通过外接在读出的内容是通过外接在D D和和D D之间电流放大器中的电流的方向来判断之间电流放大器中的电流的方向来判断152 2、动态存储器、动态存储器 -DRAM-DR
16、AM1)1)构成构成工作管:工作管:T T1 1、T T2 2门控管:门控管:T T5 5、T T6 6、T T7 7、T T8 8 2)2)信息的保存:信息的保存:分布电容分布电容C1C1、C2C2上的电荷上的电荷3)3)写操作:写操作:基本步骤同六管静态单元基本步骤同六管静态单元A=1 A=1 对对C2C2充电,充电,T2T2导通导通 B=0 B=0 对对C1C1放电,放电,T1T1截止截止 写写1A=0 A=0 对对C2C2放电,放电,T1T1导通导通 B=B B=B 对对C1C1充电,充电,T2T2截止截止 写写0164)4)读操作读操作通过通过T T9 9 T T1010给给D D线
17、和线和D D线上的分布电线上的分布电容容C CD D、C CD D预充电预充电.读出信息:读出信息:X X有效有效 T5T5、T6 T6 通通 Y Y有效有效 T7T7、T8 T8 通通 若原来写入为若原来写入为1 1则则C CD D 上的电荷经上的电荷经T T2 2泄漏泄漏 D D=0=0而而C CD D只向只向C C2 2微充电微充电 D=1 D=1 有有D D到到D D的电流,即读出的为的电流,即读出的为“1 1”若原来写入为若原来写入为0 0则则C CD D 上的电荷经上的电荷经T T1 1泄漏泄漏 D=0D=0而而C CD D只向只向C C1 1微充电微充电 D D=1=1 有有D
18、D到到D D的电流,即读出的为的电流,即读出的为“0 0”173)字节编址的存储器按边界对齐数据存放方法解:地址空间分布分析:对存储器进行连续两次存取操作所需的最短时间间隔。页表指示虚拟地址不在内存中5 s,再将每段时间分成两部分,其中前面的15 s用于读写,最后的0.Addresses generated by the CPU correspond directly to bytes in physical memory.此次访问将不会命中,将发生页面调度。虚页号为2,查页表可得到物理页号为000111,则对应的物理地址为:但每个Aij只被访问一次,故时间局部性差!因为用TLBI定位PTE,
19、因此,TLB中只需Tag举例:CPU要读内存地址为:1 1,1 1 1 1,1 1 1 1,1 1 1 1由2n个容量相同存储器的组成,各有自己的读写线路、地址寄存器、数据寄存器;0 0,0 0 0 0,0 0 0 0,0 0 0 0高速缓冲存储器的地址映射和替换策略全由硬件实现,对程序员和系对于RAM而言,控制线包括片选信号和读/写控制,而对于ROM而言则只有片选信号线。因为此时该虚拟页已经调入主存,因此,重新访问时该页将命中。操作系统负责所有的替换策略不用LRU,只要有冲突就直接替换原Cache行中 的页面,因为是多对一的关系5)5)还需要什么状态?还需要什么状态?5)5)刷新操作刷新操作
20、 刷新原理:对刷新原理:对C1C1、C2C2充电充电 只给字线只给字线 T5T5、T6T6导通导通 C CD D对对C2C2充电充电 或或C CD D对对C1C1充电。充电。即刷新是按行进行,因此,必须知道动态存储器的内部行列结构。即刷新是按行进行,因此,必须知道动态存储器的内部行列结构。一次刷新是一次不完全的读操作。刷新地址由刷新计数器给出。一次刷新是一次不完全的读操作。刷新地址由刷新计数器给出。需要刷新的原因:需要刷新的原因:保存信息的电容保存信息的电容C1C1、C2C2上的电上的电荷维持的时间有限荷维持的时间有限(一般一般2ms)2ms)。186)6)三种刷新方式(设刷新周期为三种刷新方
21、式(设刷新周期为2ms2ms,存储矩阵采用,存储矩阵采用128128128128结构,存结构,存储体的读储体的读/写周期为写周期为0.5 0.5 s s )集中式刷新:集中式刷新:将将2ms2ms的读写周期分成的读写周期分成2000/0.5=40002000/0.5=4000个读写时间段。前面个读写时间段。前面4000-128=38724000-128=3872个读写时间段用于读个读写时间段用于读/写,后面写,后面128128个读写时间个读写时间段用于刷新,在此阶段,不允许进行读写操作,故称为死时间段用于刷新,在此阶段,不允许进行读写操作,故称为死时间.38723872个读写周期个读写周期 1
22、28128个刷新周期个刷新周期采用集中刷新的存储器平均读写周期采用集中刷新的存储器平均读写周期 T=2ms/(4000 2ms/(4000 128)=0.5165 128)=0.5165 s s19分散刷新分散刷新将每一个存储周期分成两部分,前一部分为读将每一个存储周期分成两部分,前一部分为读/写时间段,后一部分写时间段,后一部分为刷新时间段,对于本例的实际则是存储器的读写周期变成了为刷新时间段,对于本例的实际则是存储器的读写周期变成了1 1 s s,其中前其中前 0.5 0.5 s s为读为读/写时间,写时间,0.5 0.5 s s为刷新时间。为刷新时间。20002000个读写周期个读写周期
23、 T=1 s20异步刷新异步刷新是集中刷新和分散刷新的结合,将是集中刷新和分散刷新的结合,将2ms2ms分成分成128128个时间段,每段的时间为个时间段,每段的时间为 2000/128=15.5 2000/128=15.5 s s,再将每段时间分成两部分,其中前面的,再将每段时间分成两部分,其中前面的15 15 s s用于读写,最后的用于读写,最后的0.5 0.5 s s用于刷新。用于刷新。15.5 s15.5 sT=2ms/(4000 128)=0.5165 s21三种刷新方式的比较三种刷新方式的比较集中刷新:用于高速存储器中,但存在死时间集中刷新:用于高速存储器中,但存在死时间分散刷新:
24、虽然不存在死时间,但大大降低了存储体分散刷新:虽然不存在死时间,但大大降低了存储体 的速度的速度异步刷新:异步刷新:既不存在死时间,也保持了存储体的高速特性既不存在死时间,也保持了存储体的高速特性7)7)关于动态存储器刷新的几点说明:关于动态存储器刷新的几点说明:不同材料及生产工艺的动态存储器的刷新周期不同不同材料及生产工艺的动态存储器的刷新周期不同(2ms(2ms、4ms4ms、8ms8ms等等)。刷新按行进行刷新按行进行,要知道存储体的行、列结构,即行译码器输出的线数,要知道存储体的行、列结构,即行译码器输出的线数,当存储器是由若干单体构成时,以单体的容量为计算的依据,同时考虑当存储器是由
25、若干单体构成时,以单体的容量为计算的依据,同时考虑双译码的原则。双译码的原则。如由如由256K256K的存储体构成的存储体构成2M2M的存储器。行为的存储器。行为2 29 9,若由,若由512K512K的单体构成,则的单体构成,则行可以是行可以是2 29 9或或2 21010,但要说明。,但要说明。刷新地址是由专门的器件刷新地址是由专门的器件-刷新地址计数器给出。刷新地址计数器给出。221 1、SRAMSRAM存储器与存储器与CPUCPU的连接及扩展的连接及扩展1)1)需要连接的线需要连接的线 连接的地址线的数量与连接的地址线的数量与CPUCPU要访问的主存容量有关;要访问的主存容量有关;连接
26、的数据线的数量与计算机字长有关;连接的数据线的数量与计算机字长有关;对于对于RAMRAM而言,控制线包括片选信号和读而言,控制线包括片选信号和读/写控制,而对于写控制,而对于ROMROM而言则只而言则只有片选信号线。有片选信号线。DRAMDRAM没有片选控制线,容量扩展时,利用没有片选控制线,容量扩展时,利用RASRAS和和CASCAS控制芯片的选择。控制芯片的选择。从上述连接线可检查存储扩展是否正确从上述连接线可检查存储扩展是否正确2)2)存储器扩展的种类存储器扩展的种类 位扩展位扩展 :当数据位不足时:当数据位不足时 字扩展字扩展 :当容量不足时:当容量不足时 字位同时扩展:当数据位和存储
27、体的容量均不足时使用字位同时扩展:当数据位和存储体的容量均不足时使用4.3 4.3 主存的组织及与主存的组织及与CPUCPU的连接的连接 232.2.位扩展位扩展 当储芯片的数据位小于当储芯片的数据位小于CPUCPU对数据位的要求时,采用位扩展对数据位的要求时,采用位扩展 将所有存储芯片的地址线、读写控制线并联同时分别与将所有存储芯片的地址线、读写控制线并联同时分别与CPUCPU的地址线的地址线和读写控制线连接;和读写控制线连接;存储芯片的数据线依次与存储芯片的数据线依次与CPUCPU的数据线相连;所有芯片的片选控制线的数据线相连;所有芯片的片选控制线并联接低电平。并联接低电平。仅进行位扩展时
28、,所需存储芯片的数量为:仅进行位扩展时,所需存储芯片的数量为:L=L=存储器的数据位存储器的数据位 /存储芯片的数据位存储芯片的数据位 =8/2=4=8/2=42.2.字扩展字扩展 容量不够时字扩展容量不够时字扩展 所需芯片数量所需芯片数量:L=L=主存容量主存容量/存储体容量存储体容量 =2=2(CPU(CPU地址线数地址线数-存储体地址线数存储体地址线数)本例中本例中L=64/16=4L=64/16=4 片选产生办法片选产生办法:线选法线选法 全译码法全译码法 部分译码法部分译码法 将将CPUCPU多余地址送片选译码输入端多余地址送片选译码输入端CPUCPU每次只能选中一个存储芯片中的每次
29、只能选中一个存储芯片中的某个单元某个单元.25按程序的自然段作为主存和辅存之间交换的信息单位。则不命中不同存储体的全局地址范围算法:i=j mod 8(i 是Cache行号,j是主存块号)是一种多对一的映射5:CPU从高速缓存/主存读取所请求的数据。6)三种类型的虚拟存储器1:处理器生成一个虚拟地址,并把它传送给MMU(存储管理单元);具有相互独立的两组读/写控制电路,正常情况下各自独立进行读/写2、动态存储器-DRAM双字数据的起始地址的最末三位为000(8字节的整数倍),表示访问一个64位字长的字,如果要访问其中的某字节或半字则用低三位中的部分位来选择.0 0,0 0 0 0,0 0 0
30、0,0 0 0 0提供更为有效的管理存储设备的方法6:缺页处理程序调入新的页面,并更新页表;字扩展:当容量不足时1)Cache命中的流程全相联、直接相联、组相联要充分发挥计算机硬件的高速特性,要求用户的程序满7)关于动态存储器刷新的几点说明:即刷新是按行进行,因此,必须知道动态存储器的内部行列结构。以便实现硬件与软件的完美结合!读出的内容是通过外接在D和D之间电流放大器中的电流的方向来判断 不同存储体的全局地址范围不同存储体的全局地址范围体号体号 地址范围地址范围16进制值进制值A15A14 A13 -A00000 0,0 0 0 0,0 0 0 0,0 0 0 0 0000H 03FFFH0
31、01 1,1 1 1 1,1 1 1 1,1 1 1 11010 0,0 0 0 0,0 0 0 0,0 0 0 004000H07FFFH011 1,1 1 1 1,1 1 1 1,1 1 1 12100 0,0 0 0 0,0 0 0 0,0 0 0 08000H0BFFFH101 1,1 1 1 1,1 1 1 1,1 1 1 13110 0,0 0 0 0,0 0 0 0,0 0 0 00CFFFH0FFFFH111 1,1 1 1 1,1 1 1 1,1 1 1 126例例1 1 某计算机的主存地址空间中,从地址某计算机的主存地址空间中,从地址0000H0000H -3FFFH-3F
32、FFH 为为ROMROM存储区域,存储区域,从从4000H-5FFFH4000H-5FFFH为保留地址区域,暂时不用,从为保留地址区域,暂时不用,从6000H-FFFFH6000H-FFFFH为为RAMRAM地址区地址区域。域。RAMRAM的控制信号为的控制信号为CS#CS#和和WE#WE#,CPUCPU的地址线为的地址线为A A1515-A-A0 0,数据线为,数据线为D D7 7-D-D0 0,控制信号有控制信号有R/W#R/W#和访存请求和访存请求MREQ#.MREQ#.如果如果ROMROM存储器芯片采用存储器芯片采用8K8K8 8的芯片,的芯片,RAMRAM存储器芯片采用存储器芯片采用
33、4K4K8 8的芯片,试画出存储器与的芯片,试画出存储器与CPUCPU的连接图。的连接图。解解:地址空间分布分析:地址空间分布分析:0000H0000H -3FFFH-3FFFH (16K):ROM(16K):ROM 011 1111 1111 1111 011 1111 1111 1111 000 0000 0000 0000=11 1111 1111 1111 000 0000 0000 0000=11 1111 1111 11114000H-5FFFH(8K):4000H-5FFFH(8K):保留区保留区6000H-FFFFH(40K):RAM6000H-FFFFH(40K):RAM区区
34、(FFFFH-6000H=1001FFFFH-6000H=1001,11111111,11111111,1111=21111=21515+8K+8K)需要需要ROMROM的芯片数量为:的芯片数量为:16K 16K 8 88K 8K 8 8=2=2需要需要RAMRAM的芯片数量为:的芯片数量为:40K 40K 8 84K 4K 8 8=10=1027如何选择译码输入如何选择译码输入?以大容量的为目标以大容量的为目标(8k(8k单体单体),),此时送入译码器的输入地址线的数量为:此时送入译码器的输入地址线的数量为:16 16 13=3 13=3 根根 共产生共产生8 8个译码输出线,每根译码输出线
35、选择的内存个译码输出线,每根译码输出线选择的内存空间范围是:空间范围是:64K/8=8K64K/8=8K 7 3-8 译码 3 1 0 A15-13 A15-0 ROM OE#MREQ#R/W#CPU D7-D0 A CE 4K8 WE*D A CE 4K8 WE*D A CE 4K8 WE*D A CE 4K8 WE*D A CE 8K8 D A CE 8K8 D A12-0 2 每个片选译码线选择每个片选译码线选择8K8K的存储空间的存储空间 7 3-8 译码 3 1 0 A15-13 A15-0 A12 A12 A11-0 RAM ROM OE#MREQ#R/W#CPU D7-D0 A
36、CE 4K8 WE*D A CE 4K8 WE*D A CE 4K8 WE*D A CE 4K8 WE*D A CE 8K8 D A CE 8K8 D A12-0 2 每个片选译码线选择每个片选译码线选择8K8K的存储空间的存储空间30如以小容量的为目标如以小容量的为目标(4K的单体的单体)此时送入译码器的输入地址线的数量为:此时送入译码器的输入地址线的数量为:16 16 12=4 12=4 根根 共产生共产生1616个译码输出线,每根译码输出线选择的内存个译码输出线,每根译码输出线选择的内存 空间范围是:空间范围是:64K/16=4K64K/16=4K 显然,为了留出显然,为了留出8K8K的
37、保留区,必须预留出的保留区,必须预留出2 2根片选信号根片选信号31以小容量的为目标以小容量的为目标,每个片选译码输出选择每个片选译码输出选择4K4K的存储范围的存储范围324.4 4.4 并行存储器并行存储器1 1、问题的提出、问题的提出 (1)CPU(1)CPU和主存速度上存在差异和主存速度上存在差异 (2)(2)一个一个CPUCPU周期内需要多个存储字周期内需要多个存储字60%/yr.DRAM7%/yr.110100100019801981198319841985198619871988198919901991199219931994199519961997199819992000DRA
38、MCPU1982Processor-MemoryPerformance Gap:(grows 50%/year)Performance“Moores Law”2 2、双端口存储器、双端口存储器构造及工作原理:构造及工作原理:具有相互独立的两组读具有相互独立的两组读/写控制电路写控制电路,正常情况下各自独立进行读正常情况下各自独立进行读/写写 左右读左右读/写不同单元时不发生冲突写不同单元时不发生冲突 左右同时存取同一个单元时左右同时存取同一个单元时,发生读写发生读写冲突冲突.此时此时,由判断逻辑来延时一个读由判断逻辑来延时一个读写控制器的工作并设该端口写控制器的工作并设该端口.BUSY=0.B
39、USY=0.343 3、多体交叉存储器、多体交叉存储器(低位低位)1)1)多体交叉存储器的结构多体交叉存储器的结构由由2 2n n个容量相同存储器的组成个容量相同存储器的组成,各有自各有自己的读己的读 写线路、地址寄存器、数据寄写线路、地址寄存器、数据寄存器;存器;各模块的读写过程将重叠进行,对于各模块的读写过程将重叠进行,对于每个模块而言,读写时间不变,但对每个模块而言,读写时间不变,但对CPUCPU而言,在一个存储周期内连续访问而言,在一个存储周期内连续访问四个模块;四个模块;用用CPUCPU的高位连接存储芯片的地址;的高位连接存储芯片的地址;是一种并行存储器结构是一种并行存储器结构对于对
40、于m m体低位交叉存储器而言,连续读体低位交叉存储器而言,连续读m m 个字的时间个字的时间:t1=T+(m t1=T+(m 1)1)不采用多体交叉时读不采用多体交叉时读m m 个字的时间个字的时间:t1=Tm t1=Tm 352)2)低位多体交叉方式下的数据特征低位多体交叉方式下的数据特征相邻地址分布在不同存储体中相邻地址分布在不同存储体中同一存储体中的地址不相邻同一存储体中的地址不相邻四片的地址通项公式分别为四片的地址通项公式分别为:4i+0 4i+0 、4i+14i+1、4i+24i+2、4i+34i+3能在一个存储周期内存取多个字能在一个存储周期内存取多个字36例例2 2 设计算机字长
41、设计算机字长6464位位,存储器容量为存储器容量为128MW,128MW,采用模采用模8 8的存储器交的存储器交叉方式组织叉方式组织(低位低位).).存储周期存储周期T=200ns,T=200ns,数据总线宽度为数据总线宽度为6464位位,总线总线传输周期传输周期=50ns,=50ns,计算存储器最高带宽。计算存储器最高带宽。解解:交叉方式下,连续读交叉方式下,连续读8 8个字所需要的时间个字所需要的时间t=T+7t=T+7=550ns=550ns则,交叉方式下存储器带宽则,交叉方式下存储器带宽 =64=64*8/t8/t =64 =64*8/550ns8/550ns =9.31 =9.31
42、10108 8bpsbps374.5 4.5 高速缓冲存储器高速缓冲存储器1.1.程序访问的局部性原理程序访问的局部性原理 时间局部性时间局部性:针对同一个数据的多次访问针对同一个数据的多次访问 空间局部性空间局部性:针对一个数据块中的不同数据针对一个数据块中的不同数据例例3.3.以下程序以下程序A A和和B B中,哪一个对数组中,哪一个对数组A20482048A20482048访问的空间局部性访问的空间局部性更好?时间局部性呢?变量更好?时间局部性呢?变量sumsum的空间局部性和时间局部性如何?对于的空间局部性和时间局部性如何?对于指令来说,指令来说,forfor循环体的空间局部性和时间局
43、部性如何?循环体的空间局部性和时间局部性如何?38(1)(1)数组数组A A:访问顺序为访问顺序为A00,A01,A00,A01,A02047;,A02047;与存放顺序一致,故空间局部性好!与存放顺序一致,故空间局部性好!但每个但每个AijAij只被访问一次,故时间局部性差!只被访问一次,故时间局部性差!(2)(2)变量变量sumsum:单个变量不考虑空间局部性;:单个变量不考虑空间局部性;每次循环都要访问每次循环都要访问sumsum,所以其时间局部性较好!,所以其时间局部性较好!(3)for(3)for循环体:循环体内指令按序连续存放,所以空间局部性好!循环体:循环体内指令按序连续存放,所
44、以空间局部性好!循环体被连续重复执行循环体被连续重复执行2048x20482048x2048次,所以时间局部性好!次,所以时间局部性好!39程序段程序段B B的时间局部性和空间局部性分析的时间局部性和空间局部性分析(1)(1)变量变量sumsum:(同程序:(同程序A A)(2)for(2)for循环体:(同程序循环体:(同程序A A)(3)(3)数组数组A A:访问顺序为:访问顺序为A00-A20470;A00-A20470;与存放顺序不一致,每次跳过与存放顺序不一致,每次跳过20482048个单元,若主存与个单元,若主存与CacheCache之间交换信息的之间交换信息的块小于块小于2KB2
45、KB,则没有空间局部性!,则没有空间局部性!(每个数组变量只被访问一次,没有时间局部性,同程序(每个数组变量只被访问一次,没有时间局部性,同程序A A)402.Cache2.Cache的组织及访问的组织及访问CacheCache流程流程CPUCPU与与CacheCache之间交换信息的基本单之间交换信息的基本单位是字位是字,而而CacheCache与主存之间信息交与主存之间信息交换的单位是块。换的单位是块。Cache Cache的一个块包含若干个字。的一个块包含若干个字。CPUCPU访问主存时,先根据该主存地访问主存时,先根据该主存地址到址到CacheCache中查找,如果查找成功中查找,如果
46、查找成功(命中命中),则直接从,则直接从CacheCache中读取,反中读取,反之之(不命中不命中)CPU)CPU访问主存,同时将该访问主存,同时将该字所在的块送入字所在的块送入Cache Cache,并在,并在CAMCAM中中登记相关信息登记相关信息相联存储器是一种根据内容访问的相联存储器是一种根据内容访问的存储器存储器当不命中时当不命中时,存在页面调度的问题存在页面调度的问题,常用的算法有常用的算法有LRULRU41 应用于应用于CacheCache中的主存地址格式中的主存地址格式 块内偏移地址(块内地址)块内偏移地址(块内地址)表示表示CPUCPU所要访问的单元在某块内的偏移值。所要访问
47、的单元在某块内的偏移值。索引索引(Index)(Index)索引是比主存块地址粒度更细的地址,作为索引是比主存块地址粒度更细的地址,作为CacheCache存储体的地址指示器,指存储体的地址指示器,指出出CPUCPU访问访问CacheCache存储体的范围。存储体的范围。标记标记(Tgg)(Tgg)标记也是比主存块地址粒度更细的地址,作为判断标记也是比主存块地址粒度更细的地址,作为判断CPUCPU要访问的内容是否在要访问的内容是否在CacheCache中的依据。中的依据。不同主存与不同主存与CacheCache地址映射方法,对主存地址的不同划分,这是掌握地址映射方法,对主存地址的不同划分,这是
48、掌握CacheCache工工作原理的关键。作原理的关键。主存块地址主存块地址是是CPUCPU访问主存单元地址按块大小划分后访问主存单元地址按块大小划分后得到地址,用于标识得到地址,用于标识CPUCPU所访问的主存单所访问的主存单元所在的主存块号。元所在的主存块号。42 CacheCache的访问流程的访问流程1)Cache1)Cache命中的流程命中的流程 (1)(1)从从CPUCPU送出的主存地址中画分出记送出的主存地址中画分出记(Tag)(Tag)、索引、索引(Index)(Index)、块内地址;、块内地址;(2)(2)按按IndexIndex的值从的值从CacheCache标记存储体特
49、定单元读出标记存储体特定单元读出Tag,Tag,并与并与(1)(1)中的中的TagTag比较;比较;(3)(3)若比较结果相同若比较结果相同(称为命中称为命中),),则形成则形成CacheCache地址;地址;(4)(4)根据形成的根据形成的CacheCache地址访问地址访问CacheCache数据存储体数据存储体,Index,Index部分数据存储体的范围;部分数据存储体的范围;(5)(5)从从CacheCache中读出信息送中读出信息送CPUCPU。433.3.三种常见的三种常见的CacheCache地址映射及地址变换方法地址映射及地址变换方法(1)(1)主存与主存与CacheCache
50、之间的映射方式之间的映射方式地址映射:将主存地址变换成地址映射:将主存地址变换成CacheCache地址的方法地址的方法地址映射的作用地址映射的作用 :CPUCPU访问主存时,主存地址变换成访问主存时,主存地址变换成CacheCache地址,从而查找地址,从而查找CacheCache。地址映射的实现:地址映射的实现:硬件实现,对软件人员硬件实现,对软件人员 (包括程序员和系统程序员包括程序员和系统程序员)透明透明三种地址映射方法:三种地址映射方法:全相联、直接相联、组相联全相联、直接相联、组相联442)2)全相联映射方式全相联映射方式主存分块,主存分块,CacheCache分行,包含相同数量的