第3章存储系统_第1页
第3章存储系统_第2页
第3章存储系统_第3页
第3章存储系统_第4页
第3章存储系统_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章存储系统本章内容:存储器概述SRAM存储器DRAM存储器只读存储器并行存储器cache存储器

虚拟存储器3.1存储器概述

存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。

构成存储器的存储介质,目前主要采用半导体器件和磁性材料。存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的一个磁化元,它们可以存储一位二进制数据,称为存储元。由若干个存储元组成一个存储单元,然后再由许多存储单元组成一个存储体。

存储器的分类-按存储介质分

半导体存储器:用半导体器件组成的存储器。磁表面存储器:用磁性材料做成的存储器。-按存储方式分随机存储器:存取时间和存储单元的物理位置无关。顺序存储器:存取时间和存储单元的物理位置有关。

-按存储器的读写功能分只读存储器(ROM):只能读出而不能写入的半导体存储器。随机读写存储器(RAM):既能读出又能写入的半导体存储器。

-按信息的可保存性分非永久记忆的存储器:断电后信息即消失的存储器。永久记忆性存储器:断电后仍能保存信息的存储器。-按在计算机系统中的作用分主存储器、辅助存储器、高速缓冲存储器、控制存储器等。存储器的分级结构高低小大快慢辅存寄存器缓存主存磁盘光盘磁带光盘磁带速度容量价格位/ALUCPU主机主存储器的技术指标:1)存储容量:指主存能存放二进制代码的总数。现代计算机中用半导体触发器的两个状态表示1和0,一个半导体触发器可以保存一个二进制数,称为一个bit(位),8个触发器可以保存八个二进制数,称为一个BYTE(字节)。2)存储速度a.存取时间(访问时间):指从一次读(写)操作命令发出到该操作完成将数据读到数据缓冲寄存器为止所经历的时间。以ns为单位,存取时间又分读出时间、写入时间两种。b.存取周期:指存储器连续启动两次独立的操作所需间隔的最小时间,以ns为单位,存取周期=存取时间+等待时间。c.存储器带宽:每秒从存储器进出信息的最大数量,单位为位/秒或者字节/秒。如存取周期为500ns,每个存取周期可访问16位,则存储器带宽为:

16位/(500×10-9)秒=3.2×107位/秒=32×106位/秒=32M位/秒存储器与CPU的联系

CPU与存储器的信息交换主要依靠系统总线来完成,根据总线传递信息的不同,系统总线被分为数据总线,地址总线和控制总线三大类。-数据总线DB(databus):传输CPU与存储器之间的二进制数据,双向线。数据总线的位数决定了CPU一次可以和存储器交换数据的位数,是微型机的重要指标。-地址总线AB(addressbus):传输CPU送出的地址信息,用来确定和CPU交换数据的存储单元,单向线。地址总线的位数决定了CPU可以直接寻址的内存空间。可寻址空间=2n(n为地址总线的位数)-控制总线CB(controlbus):传输CPU发出的控制信号,包括片选信号、读/写信号,访存允许信号,双向线。-地址译码驱动方式:根据地址总线的信息选中存储元的过程。译码电路0#1#2#3#A1A00010译码电路0#1023#A9A0………………线选法:译码器只有一个,译码器的输出称为字选择线,被选单元由字选择线直接选定,地址输入线有N根,则能够确定2n个字地址,该方式下译码输出线过多,只适用于容量较小的存储芯片。重合法:译码器有两个,X译码器称为行译码器,决定选中某行,Y译码器称为列译码器,决定选中某列,被选单元由X、Y两个方向的译码输出决定。该方式可以极大的节省译码输出线。D数据总线A3A0A2A1地址总线控制总线MREQR/W010110处理器半导体存储器的结构行地址译码器

存储器

列地址译码器

地址寄存器…

…读写放大器数据寄存器

控制电路A19~A0读写…

…D15~D0…

…片选芯片容量译码驱动存储矩阵读写电路1K×8位64K×16位片选线读/写控制线地址线…数据线…地址线(单向)数据线(双向)1081616字长字决定字长决定字译码驱动存储矩阵读写电路片选线读/写控制线地址线…数据线…片选线

读/写控制线(低电平写)CSCEWEOEWRRD(写/输入使能,低电平写高电平读)(低电平读)(低电平芯片选中工作)(读/输出使能,低电平读高电平写)R/W(读/写使能,低电平写高电平读)3.2SRAM存储器广泛使用的内部存储器是半导体存储器。根据信息存储的机理不同可以分为两类:-静态读写存储器(SRAM):速度快,结构复杂容量小-动态读写存储器(DRAM):速度慢,结构简单容量大SRAM中,用一个锁存器(触发器)作为存储元。只要直流供电电源一直加在这个记忆电路上,它就无限期地保持记忆的1状态或0状态。如果电源断电,那么存储的数据(1或0)就会丢失。基本静态存储元阵列与CPU交换信息的信号线:地址线、数据线、控制线基本静态元存储结构SRAM选择线数据入数据出1101101基本静态元存储结构SRAM选择线数据入数据出1010010-静态RAM芯片举例Intel2114外特性存储容量1K×4

位I/O1I/O2I/O3I/O4A0A8A9WECSVCCGNDIntel2114…A4A5A6A7A8A9A0A1A2A315…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS0000000000150311647326348…………0163248CSWE…………读写电路读写电路读写电路读写电路I/O1I/O2I/O3I/O4读过程第一组第二组第三组第四组0000000000A4A5A6A7A8A9A0A1A2A3写过程15…031…1647…3263…48150311647326348读写电路读写电路读写电路读写电路……………………0163015……行地址译码列地址译码I/O1I/O2I/O3I/O4WECS第一组第二组第三组第四组150311647326348…………I/O1I/O2I/O3I/O4读写电路读写电路读写电路读写电路0163248CSWEIntel2114:1K×4位,片上有4096个六管存储元电路,排成64×64方阵,地址线10位(A0~A9),其中A3~A8(6根)用于行译码→64行,A0~A2,A9(4根)用于列译码→16条列选线,每条列选线同时连接4列(共16×4=64列)SRAM逻辑结构读周期

tRC

地址有效下一次地址有效SRAM的读周期ADOUTCSOE

有效地址

有效数据tRCtAWtAW

地址有效片选有效的滞后时间tAtCOtCO

片选有效数据稳定读时间

tA

地址有效数据稳定tWRtWR

片选失效下一次地址有效SRAM的写周期tWRtWCtAWtW写周期

tWC

地址有效下一次地址有效tAW

地址有效片选有效的滞后时间tCO

片选有效数据稳定ACSWEDIN

有效地址

有效数据tCOtDW数据稳定

WE失效写时间

tW

写命令WE

的有效时间tWR

片选失效下一次地址有效tDW[例]下图是SRAM的写入时序图。其中R/W是读/写命令控制线,当R/W线为低电平时,存储器按给定地址把数据线上的数据写入存储器。请指出下图写入时序中的错误,并画出正确的写入时序图。

R/W线加负脉冲时,地址线和数据线的电平必须是稳定的。当R/W线达到低电平时,数据立即被存储。因此,当R/W线处于低电平时,如果数据线改变了数值,那么存储器将存储新的数据⑤。

当R/W线处于低电平时地址线如果发生了变化那么同样数据将存储到新的地址②或③。单管动态存储元写入:行选择线为“1”,T管导通,如果位线为高电平1则向电容C中充电;否则电容C不会充电;写入完毕后电容C是否含有电荷表征存储的数据。读出:行选择线为“1”,如果电容C上有电荷则通过T输出到位线上,形成电流;否则位线上没有电流,通过读出放大器判断电流即可得到存储信息。破坏性读出:在读出“1”的过程中,电容C上的电荷会向位线输出形成电流,信息读出的同时存储的信息也遭到破坏。刷新:电容C上存储的信息电荷有泄漏,随着时间增长会丢失信息,必须由外界按一定的规律给它充电,补充信息电荷,这一过程我们称为“刷新”。优点:单管电路的优点是管子少,集成度高,芯片面积小缺点:刷新麻烦,读出1时具有破坏性,需要读出放大器配合。13.3DRAM存储器位线Cs行线列线-动态RAM芯片举例Intel2164A外特性存储容量16K×1

位DOUTDINA0A5A6WECSVCCGNDIntel2164…RASCAS读出放大器读出放大器读出放大器…………………………06364127128根行线CS01271128根列线读/写线数据输入I/O缓冲输出驱动DOUTDINCS位线位线位线读出放大器读出放大器读出放大器………63000I/O缓冲输出驱动OUTDDRAM(16K*1)读过程读出放大器读出放大器读出放大器…………………………06364127128根行线CS01271128根列线读/写线数据输入I/O缓冲输出驱动DOUTDINCS位线位线位线…数据输入I/O缓冲I/O缓冲DIN读出放大器读出放大器630DRAM(16K*1)写过程单元电路读写控制电路列地址译码器………读选择线写选择线D行地址译码器001131311A9A8A7A6A531A4A3A2A1A0刷新放大器写数据线读数据线……………0…0000000000D…0读写控制电路…1103(1K*1)读过程单元电路读写控制电路列地址译码器………读选择线写选择线D行地址译码器001131311A9A8A7A6A531A4A3A2A1A0刷新放大器写数据线读数据线……………0…11111…01000…1D读写控制电路1103(1K*1)写过程单元电路读写控制电路列地址译码器………读选择线写选择线D行地址译码器001131311A9A8A7A6A531A4A3A2A1A0刷新放大器写数据线读数据线……………0…00000…单元电路1103(1K*1)刷新过程DRAM的逻辑结构:因为内部存储器的容量越大越大,所以地址线引入量也增大了,为降低成本并增加成品率,一般的DRAM芯片采用地址线减半的措施。

应有地址引入线线实有地址引入线

64K×4:168128K×4:179256K×4:189512K×4:19101024K×4:2010·片内增设行、列地址缓冲锁存器

·在片外多路选择器件的引导下先在地址线上送入行地址,由RAS信号锁存,后在地址线上送入列地址,由CAS信号锁存。

·核心阵列(矩阵)与行、列地址译码、读写放大器如常规。

·刷新控制计数器用于产生刷新时所须的行地址。

·输出为三态门控制。

·刷新周期2-64毫秒不等,DRAM逻辑结构图DRAM的读写周期

行、列地址分开传送写时序行地址RAS有效写允许WE无效(高)数据

DOUT

有效数据

DIN

有效读时序行地址RAS有效写允许WE有效(低)列地址CAS有效列地址CAS有效DRAM的刷新周期为什么要刷新?因为靠电容存储电荷的原理保存信息,而电荷一般只能保持1~2ms,所以必须在2ms内对其所有存储单元通过读取动作(不输出读取结果)恢复一次原状态,该过程叫刷新或再生。什么是刷新周期?在刷新的过程中,依次使行选择线(字选择线)有效,每次再生一行,即可完成对整个存储器的刷新。从上一次对整个存储器刷新结束到下一次对整个存储器全部刷新一遍为止的时间称为刷新周期,一般2ms。刷新的方式有哪些?根据刷新方式的不同,刷新一般分为三种:一种是集中式刷新,一种是分散式刷新,一种是异步式刷新。-集中式刷新指在一个刷新周期内,利用一段固定时间,依次对存储器的所有行逐一刷新,在此期间停止对存储器的读/写操作。例:128*128的矩阵存储器,设读/写的周期为0.5us,刷新的时间为2ms则:每个刷新周期内有2000/0.5=4000个读/写工作周期,其中128个读周期用于刷新存储器的128行,此段时间不能访问存储器,称为存储器的死区,4000-128=3872个用于正常的读/写操作周期。

-分散式刷新两个读/写周期构成一个存储周期,存储周期前一个读写/周期用来进行正常读/写操作或维持信息,存储周期后一个读写/周期用作刷新存储器的一行。这样,N行的存储器经过N个系统周期时间,整个存储器便全部刷新一遍。例:128*128的矩阵存储器,设读/写的周期为0.5us,刷新的时间为2ms则:存储器系统周期为1us(前0.5us用于读/写,后0.5us用于刷新)。每个存储器系统周期刷新一行,整个存储器刷新128行需要128us,比允许的刷新周期2ms少的多,但存储效率下降一倍,-异步式刷新方式是集中刷新和分散刷新结合,在刷新周期的Tms内将N行的存储器要刷新一遍,则每隔(T/N)ms必须刷新一行,如果在(T/N)ms时间内包含M个读/写周期,则任取一个读/写周期完成1次刷新,剩余M-1个读/写周期完成正常的读写操作,这种刷新方式称为异步式刷新。实际产品多数是集中刷新和分散刷新结合。例:128*128的矩阵存储器,设读/写的周期为0.5us,刷新的时间为2ms。则:每隔2ms/128=15.5μs时间产生完成一次刷新,即在31读/写周期中使用1个读/写周期进行一行的刷新,30个读写/周期用于读写操作。例1:1M(512*2048)×1位DRAM,刷新周期定为8ms,读/写周期为0.5μs,给出3种方式的刷新。

1)8ms进行512次的集中刷新方式

2)0.5μs*2=1μs刷新一次的分散式刷新方式

3)8ms÷512=15.5μs刷新一次的异步刷新方式动态RAM和静态RAM的比较DRAMSRAM存储原理集成度芯片引脚功耗价格速度刷新电容触发器高低少多小大低高慢快有无主存缓存存储器扩展

CPU对存储器进行读/写操作,首先由地址总线给出地址信号,然后要发出读操作或写操作的控制信号,最后在数据总线上进行信息交流,要完成地址线的连接、数据线的连接和控制线的连接。存储器芯片的容量是有限的,为了满足实际存储器的容量要求,需要对存储器进行扩展。主要方法有:-位扩展:存储器的存储单元数不变,每个单元的位数(字长)增加。例:由1K×4位的芯片构成1K×8位的存储器分析:可用芯片1K×4:1K个单元,每单元为4位。存储器1K×8:1K个单元,每单元为8位。要10根地址线,8根数据线方法:共需2片芯片,地址总线(10根):将所有地址线并联入所有芯片;数据总线(8根):每1个芯片4位I/O线连接数据总线的4位控制线:CS并联(全选),WE并联。

用2片1K

×

4位存储芯片组成1K

×

8位的存储器10根地址线8根数据线DD……D0479AA0•••1k×41k×4CSWE-字扩展:每单元位数不变,增加单元个数。例:用16K×8的芯片构成64K×8的存储器分析:可用芯片16K×8:16K个单元,每单元为8位。存储器64K×8:64K个单元,每单元为8位。要16根地址线,8根数据线方法:共需4片芯片,数据总线:每片芯片的数据线分别与数据总线D0~D7相连地址总线:每片芯片的是16K,需要14位地址线,将地址总线的低位地址A0~A13并联入各芯片,高两位通过译码器作片选信号控制线:CS接高两位地址的译码输出,WE并联接入每个芯片。4片地址分配:芯片1:

0000000000000000

~0011111111111111

0000H~3FFFH芯片2:

0100

000000000000

~0111

1111111111114000H~7FFFH芯片3:

1000

000000000000~10111111111111118000H~BFFFH芯片4:

1100000000000000~1111111111111111C000H~FFFFH用4片16K

×8位存储芯片组成64K

×

8位的存储器16K

×8位16K

×8位16K

×8位16K

×8位……………A13~A0A15A142-4译码器Y3Y2Y1Y0CS0CS1CS2CS3D7D0……WE8根数据线16根地址线-字位同时扩展法:一个存储器的容量假定为M×N位,若使用L×k位的芯片(L<M,k<N),需要在字向和位向同时进行扩展,共需要(M/L)×(N/k)个存储器芯片。例:用1K×4的芯片构成4K×8的存储器分析:4K×8指4K个单元(12根地址线),每单元为8位(8根数据线)。方法:1)共需2片芯片进行位扩展,构成1K*8的存储器。地址总线:将地址线的A0~A9并联入所有芯片;数据总线:1片芯片连数据线4位,共8位;控制线:CS并联(全选),WE并联。

2)共需4组芯片(每组两片)进行字扩展,构成4K*8的存储器。数据总线:每组芯片的数据线分别与数据总线D0~D7相连地址总线:每组芯片的是1K,需要10位地址线,将地址总线的低位地址A0~A9并联入各芯片,高两位地址通过译码器作作为4组芯片的片选信号。控制线:CS接高两位地址的译码输出,WE并联接入每个芯片。用8片1K

×

4位存储芯片组成4K

×

8位的存储器8根数据线12根地址线WEA8A9A0...D7D0……A11A10CS0CS1CS2CS3片选译码................1K×41K×41K×41K×41K×41K×41K×41K×4例:CPU的地址总线16根(A15—A0,A0为低位),双向数据总线8根(D7—D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平为读命令,低电平为写命令)。现有如下存储器芯片:

RAM:1K×8位,2K×8位,4K×8位,8K×8位主存地址空间分配如下:

6000H~67FFH为系统程序区

6800H~6BFFH为用户程序区上述芯片中选择适当芯片设计该计算机主存储器,说明选哪些存储器芯片,选多少片;画出主存储器逻辑框图,注意画出选片逻辑(可选用门电路及3∶8译码器)与CPU的连接。(1)写出对应的二进制地址码(2)确定芯片的数量及类型0110000000000000A15A14A13A11A10…A7…

A4A3…

A0…01100111111111110110100000000000…01101011111111112K×8位1K×8位RAM1片1K×8位RAM1片2K×8位(3)分配地址线A10~A0接2K×8位RAM的地址线A9~A0接1K×8位RAM的地址线(4)确定片选信号CBA0110000000000000A15A13A11A10…A7…A4A3…

A0…01100111111111110110100000000000…01101011111111112K

×

8位1片RAM1K

×

8位1片RAMMREQA14A15A13A12A11A10A9A0…D7D4D3D0WR2K

×8位RAM

1K

×8位

RAM……Y5Y4G1CBAG2BG2A…………………高性能的DRAM结构

DRAM芯片有两个发展趋势:一是进一步提高集成度,几乎一直以两年4倍的速度向前发展;二是提高存取速度,这包括采用更先进的半导体材料、改进工艺等。下面介绍具有典型意义的增强DRAM芯片,以及用它组成的内存条。-FPMDRAM

在DRAM中,为了确定存储单元的地址,首先由RAS信号确定行地址,由CAS信号确定列地址,完成一次寻址。

FPMDRAM快速页模式动态存储器,它是根据程序的局部性原理来实现的。页是由一个行地址和该行所有列地址确定的若干存储单元的集合。当RAS信号变为有效并保持,行地址被选定,同时CAS信号连续变换,每一次CAS信号变为有效时,当前行的一个列地址选定,经过一个快速页周期,该行所有的单元进行了操作。-CDRAM

SRAM的特点是存取速度快,不需要刷新,但集成度不高容量小。DRAM的特点是集成度高容量大,但存取速度慢,需要刷新。CDRAM芯片又称增强型DRAM芯片,它在DRAM芯片上集成了一个SRAM实现的小容量高速缓冲存储器,从而使DRAM芯片的性能得到显著改进。第一步:访问1M×4位的CDRAM芯片需20位内存地址。在行选通信号的作用下,内存地址的高11位经A0~A10地址引脚输入,作为行地址被锁存并保存在最后读出行地址锁存器中。DRAM阵列的2048行中此地址指定行的全部数据512×4位,被读取到SRAMcache中暂存。第二步:内存地址的低9位,在列选通信号作用下经过A0~Al0地址引脚输入,作为列地址并被锁存。读允许信号有效时,512个4位组的SRAMcache中某一4位组被此列地址选中,其4位组经D0~D3送出芯片。第三步:下一次读取时,输入的行地址立即与最后读出行地址锁存器的内容相比较,若相符则SRAMcache命中,由输入的列地址从cache选择某一位组送出即可。只在比较不相符时,才需要如刚才所述那样驱动DRAM阵列。比较

以SRAM保存一行内容的办法,对成块传送非常有利。如果连续的地址高11位相同,意味着属于同一行地址,那么连续变动的9位列地址就会使SRAM中相应位组连续读出,这称为猝发式读取。

CDRAM的这种结构还带来另外两个优点:-在SRAM读出期间可同时对DRAM阵列进行刷新。-芯片内的数据输出路径与输入路径是分开的,允许在写操作完成的同时来启动同一行的读操作。-CDRAM内存条

1片CDRAM的容量为1M×4位,8片这样的芯片可组成1M×32位的存储模块。

8个芯片共用片选信号CS。行选通信号RAS、刷新信号Ref和地址输入信号A0~A10。两片1M×4位的CDRAM芯片的列选通信号CAS接在一起,形成一个1M×8位(1MB)的片组。4个片组成一个1M×32位(4MB)的存储模块。

块选(2位)块内字地址(20位)字节允许(2位)存储地址(24位)行地址(11位)列地址(9位)决定列选通信号CAS的有效性4个模块的片选信号

这样的存储模块本身具有高速的成块存取能力。如果块的连续地址是高13位保持不变(A23~A22是模块选择,A21~A11是块内行地址),那么只有第一个存储字需要经过一个完整的存取周期(DRAM要6个总线时钟周期),后续存储字的存取,因其内容已在SRAMcache中,故存取周期大为缩短(SRAM要2个总线时钟周期)。读取4个32位的字,使用了6--2--2--2个总线时钟周期;存储器写入也有相似的速度提高。这种模块内存储字完全顺序排放,以猝发式存取来完成高速成块存取的方式,在当代微型机中获得了广泛应用。PC通常是将这种由若干个DRAM芯片组成的模块做成电路插件板,称为内存条。-几种新型存储器芯片简介

EDRAM(带高速缓存动态存储器)

与CDRAM类似,在DRAM芯片上集成一定数量的高速SRAM,来提高存储器性能。SDRAM(同步动态存储器)

与DRAM的最大不同是需要外部时钟。连续读写时可达到一个CLOCK一个数据,一般达到4-1-1-1(第1个数据需4个时钟,第2-4个数据一个时钟),比CDRAM的6-2-2-2快。DRDRAM(接口动态存储器)

与DRAM区别:引脚定义随命令而变,同一组引脚线可以被定义成地址或控制线,其引脚数仅为正常DRAM的1/3。DDRDRAM(双数据传输率同步动态存储器)

在SDRAM的基础上采用延时锁相环技术,在时钟脉冲的上升沿和下降沿都可传输数据,使数据传输率提高1倍,目前广泛的应用在PC机上。SLDRAM(同步链动态存储器)

在原DDRDRAM基础上发展起来,但Intel公司不支持这种标准,故未来一段时间不会成为主流产品。只读存储器(ROM)它的特点是可以随机的读出其中的内容,但不能写入,是一种非易失性存储器,掉电后存储在其中的信息不会丢失。一般用来存放监控程序、管理软件。制作集成电路时掩模固化程序利用紫外线或者X射线擦除

只读存储器ROM掩模式MROM光可擦EPROM可编程PROM电可擦E2PROM允许用户编程写入一次利用特定电压的电信号擦除3.4只读存储器1.掩模ROM(MROM)

行线位线VCC1行线位线VCC02.可编程ROM(PROM)熔丝断为“0”为“1”熔丝未断VCC行线位线熔丝16*8位ROM阵列3.光擦可编程只读存储器(EPROM)1)基本存储元

N+N+PSiO2G栅极S源级D漏极D端加正电压形成浮动栅S与D不导通为“0”D端不加正电压不形成浮动栅S与D导通为“1”GS

N+N+P+++++___D浮动栅GDS+25V不形成浮空栅,读出“1”(默认输出)01111形成浮空栅,读出“0”10+25VGS

N+N+P___D擦出,全部抹成“1”紫外线GDSCS列线行线+5VD02)EPROM实例(2716)

2716为16K位(2K*8)的EPROM芯片,11条地址线,7条用于行译码,4条用于列译码,具有8位输出缓冲,正常工作电压VCC为5V,脱机编程时的写入电压VPP为25伏。…控制逻辑Y译码X译码数据缓冲区Y控制128×128存储矩阵……VCC/VPPCSA10A7…A6A0……DO0…DO74.电擦可编程只读存储器(EEPROM)电可擦写局部擦写全部擦写5.闪速型存储器(FlashMemory)EPROM价格便宜集成度高速度快EEPROM电可擦洗重写具备RAM功能例:CPU的地址总线16根(A15—A0,A0为低位),双向数据总线8根(D7—D0),控制总线中与主存有关的信号有MREQ(允许访存,低电平有效),R/W(高电平为读命令,低电平为写命令)。主存地址空间分配如下:0—8K为系统程序区,由只读存储芯片组成;8K—24K为用户程序区;最后(最大地址)4K地址空间为系统程序工作区。上述地址为十进制,按字节编址。现有如下存储器芯片:

RAM:1K×4位,4K×8位,8K×8位

ROM:2K×8位,4K×8位,8K×8位上述芯片中选择适当芯片设计该计算机主存储器,画出主存储器逻辑框图,注意画出选片逻辑(可选用门电路及3∶8译码器74LS138)与CPU的连接,说明选哪些存储器芯片,选多少片。分析:CPU有16根地址线,可寻址64K空间。系统程序区:0-8KB(8K×8),用1片ROM。用户程序区:8KB-24KB(2*8K*8),用2片8K×8RAM。系统程序工作区:最后4K,用一片4K×8RAM。主存地址空间分布如右图:8K(ROM)16K(SRAM)36K(空)4K(SRAM)0K8K24k64K0000000000000000~00011111111111110010000000000000~00111111111111110100000000000000~01011111111111111111

000000000000~1111

111111111111A15~A13片选,A12~A0片内存储单元选择A15~A13片选,A12必须为高电平,低12位片内存储单元选择8K

×8位ROM8K

×8位

RAM4K

×8位

RAM………Y7Y0G1CBAG2BG2A…5VMREQA15A14A13A12A11A0…D7D0WR…………8K

×8位

RAM……Y2Y13.5

并行存储器

由于CPU和主存储器在速度上不匹配,而且在一个CPU周期中可能需要用几个存储器字,这便限制了高速计算,为了使CPU不至因为等待存储器读写操作的完成而无事可做,可以采取一些加速CPU和存储器之间有效传输的特殊措施:-主存储器采用更高速的技术来缩短存储器的读出时间,或者增加存储器的字长来增加一次读出的数据量。-采用并行工作的双端口存储器。-采用多模块交叉的存储技术-采用高速缓冲存储器(cache)来缩短读出时间双端口存储器双端口存储器是指同一个存储器具有两组相互独立的读写控制线路,是一种高速工作的存储器。

2K×16位双端口存储器IDT7133的逻辑功能方框图

左端口右端口-无冲突的读写操作双端口存储器提供了两个相互独立的端口,即左端口右端口。它们分别具有各自的地址线、数据线和控制线,可以对存储器中任何位置上的数据进行独立的存取操作。地址1地址2数据输出左端口读地址1右端口读地址2数据输出-无冲突的读写操作在两个端口上同时进行读写操作,只要读写的存储单元的地址不相同,一定不会发生冲突。地址1地址2数据输出左端口读地址1右端口读地址2数据输出-有冲突的读写判断当两个端口同时读写一个存储单元时发生发生冲突,由判忙逻辑决定那一个端口优先进行读写操作,另一个端口暂时关闭置,即置BUSY为0。地址2地址2左端口读地址2右端口读地址2数据输出01-端口优先的判断条件1.CE判断:如果左右端口访问的存储单元的地址相同且在CE之前有效,片上的控制逻辑在左右端口的片选信号CEL和CER之间进行判断来选择端口。即片选信号早到的优先进行读写2.地址有效判断:如果片选信号CE在左右端口地址匹配之前变为有效,片上的控制逻辑在左、右地址间进行判断来选择端口。即地址早到的优先进行读写。如果判断逻辑根据判断条件决定对哪个端口优先进行读写操作,就会暂时关闭另一个被延迟的端口,即将其BUSY位置为低电平,一旦优先端口完成读写操作,才将被延时端口BUSY置为高电平,开放此端口。双端口存储器读写功能判断表左端口右端口标志功能CEL(A10~A0)LCER(A10~A0)RBUSYLBUSYR1×1×11无冲突0Any1×11无冲突1×0Any11无冲突0≠(A10~A0)R0≠(A10~A0)L11无冲突0LV5R0LV5R10左端口取胜0RV5L0RV5L01右端口取胜LL5R=(A10~A0)RLL5R=(A10~A0)L10左端口取胜RL5L=(A10~A0)RRL5L=(A10~A0)L01右端口取胜LV5R:左地址有效先于右地址RV5L:右地址有效先于左地址LL5R:CEL有效先于CER

RL5L:CER有效先于CEL

多模块交叉存储器-存储器的模块化组织一个由若干个模块组成的主存储器是线性编址的。这些地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。

顺序方式:设存储器容量32字,分为4个模块,每个模块8个字,访问地址按顺序分配给一个模块后,在按顺序分配给下一个模块。特点:某个模块进行存取时,其他模块不工作,某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。但对于连续字的成块传输,各模块串行工作,存储器的带宽受限制。例如:设存储器容量为32字,模块数m=4,字长64位,数据总线宽度为64位,按照顺序方式组织存储器。存储器的存储周期T=200ns,总线传送周期τ=50ns。问顺序存储器带宽是多少?

顺序存储器连续读出m=4个字的信息总量都是:q=64位×4=256位设连续读出的4个字在同一个模块上,所需的时间为:

t=mT=4×200ns=800ns=8×10-7s;

顺序存储器的带宽是:W=q/t=256÷(8×10-7)=32×107bps交叉方式:设存储器容量32字,分为4个模块,每个模块8个字,访问线性依次地址按顺序分配给各个模块的同一个字,直到线形地址分配完毕。特点:地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。

模块字长等于数据总线宽度,模块存取一个字的存储周期为T,总线传送周期为τ,存储器的交叉模块数为4,连续字(W4、W5、W6、W7)成块传输实现流水线方式存取的示意图如下所示:

字W7W6W5W4模块M3M2M1M0ττττττT传送M个连续字的时间t=T+(M-1)τ例如:设存储器容量为32字,模块数m=4,字长64位,数据总线宽度为64位,按照交叉方式组织存储器。存储器的存储周期T=200ns,总线传送周期τ=50ns。问交叉存储器带宽是多少?

交叉存储器连续读出m=4个字的信息总量都是:q=64位×4=256位连续读出交叉模块上4个字所需的时间为:t=200+3*50=350ns=3.5*10-7S

交叉存储器的带宽是:W=q/t=256÷(3.5×10-7)=73×107bps二模块交叉存储器举例

体选(3位)块内字地址(18位)字节允许(2位)存储地址(24位)列地址(9位)决定列选通信号CAS的有效性行地址(9位)8个存储体的片选信号块24位存储器物理地址按照“存储体-字-块”进行寻址,地址中A2作为块选择信号,当A2=0时,RAS0有效(选中存储块0),A2=1时,RAS1有效(选中存储块1),是2模块的交叉存储,连续的存储字交错分布在两个模块上,偶地址在模块0,奇地址在模块1。

DRAM存储器需要逐行定时刷新,而且,DRAM芯片的读出是一种破坏性读出,因此在读取之后要立即按读出信息予以充电再生。这样,如果采用顺序方式组织存储器,若CPU先后两次读取连续的存储字(W3,W4),如果使同一模块连续选通的话,CPU在接收到第一个存储字之后必须插入等待状态,直至前一存储字再生完毕才开始第二个存储字的读取。如果采用m=2的交叉存取方式,两个连续地址字(W3,W4)的成块传送之间不必插入等待状态(零等待存取)。3.6Cache存储器Cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。它能高速地向CPU提供指令和数据,加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。当CPU读取主存中一个字时,发出此字的内存地址到Cache和主存。此时,Cache控制逻辑根据地址来判断此字当前是否在Cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到Cache中。-CPU与Cache之间的数据交换是以字为单位,而Cache与主存之间的数据交换是以块为单位。-若Cache已满,由管理Cache的硬件电路来实现Cache的替换10001100121002310034……2B56457A0000FFFF……………………CPU地址数据10002B561001457A100200001003FFFF……815000008151FFBB8152FA3181530012替换管理逻辑CacheCAM,是相联存储器1块10001100121002310034……2B56457A0000FFFF……………………CPU地址数据10002B561001457A100200001003FFFF……815000008151FFBB8152FA3181530012替换管理逻辑CacheCAM,是相联存储器1块100010002B5610001100121002310034……2B56457A0000FFFF…………CPU地址数据10002B561001457A100200001003FFFF……815000008151FFBB8152FA3181530012替换管理逻辑CacheCAM,是相联存储器1块8150815000000000FFBBFA310012Cache的读操作策略

访问Cache取出信息送CPU

访问主存取出信息送CPU将新的主存块调入Cache中执行替换算法腾出空位

结束命中?Cache满?CPU发出访问地址

开始是否是否Cache的命中率设Nc表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有:我们希望命中率接近于1

若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,则Cache/主存系统的平均访问时间ta为:

ta=h×tc+(1-h)×tm

我们希望平均读出时间尽可能接近Cache的读出时间

若e表示访问效率,则有:

例:CPU执行一段程序时,Cache完成存取的次数为1900次,主存完成存取的次数为100次,已知Cache存取周期为50ns,主存存取周期为250ns,求Cache/主存系统的平均访问时间和效率求命中率:

h=Nc/(Nc+Nm)=1900/(1900+100)=0.95

求平均访问时间:

ta=h×tc+(1-h)×tm=0.95×50+0.05×250=60ns

求访问效率:

e=tc/ta=50/60=0.833=83.3%例:CPU执行一段程序时,Cache完成存取的次数为1000次,主存完成存取的次数为250次,已知Cache存取周期为10ns,主存存取周期为100ns,求Cache/主存系统的平均访问时间和效率主存与Cache的地址映射

Cache的容量很小,它保存的内容只是主存内容的一个子集,且Cache与主存的数据交换是以块为单位。地址映射即是应用某种方法把主存地址定位到Cache中。地址映射方式有全相联方式、直接方式和组相联方式三种。

Cache的字块大小称为行,用Li表示;主存的字块大小称为块,用Bj表示。Cache的每一行和主存的每一块包含相同的连续个字。字0字1字2字3CacheL0L1L2L3字0字1字2字3……B0B1主存块内地址块号内存地址行内地址行号缓存地址-全级联映射:设主存有256块,Cache有4行字0字1字2字3字0字1字2字3…………字0字1字2字3B0B1B255字2Cache00001011L000000001L100010000L210001010L30000000110CAM

比较22L0L1L2L3全级联映射的主存地址表示成:字块标记块内地址0000000110标记字块2m-1字块B1字块B0……2c-1行L1行L0行…标记标记标记主存字块标记

块内地址m位b位m位…主存中的任一块可以映射到缓存中的任一行Cache存储器主存储器字块B0

主存中一个块的块号位于快表中,该块的内容存于Cache的一行中,这种方法中,通过快表的映射可使主存的一个块直接拷贝到Cache中的任意一行上,非常灵活。它的主要缺点是比较器电路难于设计和实现,因此只适合于小容量Cache采用。-直接映射方式:设主存有256块,Cache有4行这也是一种多对一的映射关系,但一个主存块只能拷贝到Cache的一个特定行位置上去。

Cache的行号i和主存的块号j有如下函数关系:

i=jmodm

(m为Cache中的总行数)故允许存于Cache第:L0行:B0(00000000),B4(00000100),B8(00001000),共64块;L1行:B1(00000001),B5(00000101),B9(00001001),共64块;L2行:B2(00000010),B6(00000110),B10(00001010),共64块;L3行:B3(00000011),B7(00000111),B11(00001011),共64块;字0字1字2字3……字0字1字2字3……字0字1字2字3B0B6B255

字2Cache000001L0000000L1000001L2100011L30000011010CAM220000011010

比较相等,命中L0L1L2L3标记字0字1字2字3……字0字1字2字3……字0字1字2字3B0B10B255

字2Cache000001L0000000L1000001L2100011L30000101010CAM20000101010

比较不相等没有读命中L0L1L2L3直接级联映射的主存地址表示成:标记行号块内地址字块2m-1字块2c+1字块2c+1-1字块2c

+1字块2c字块2c-1字块1字块0………L1行标记

L0行标记2c-1行标记…t位i=j

mod

C…(C=2c)主存储器Cache存储器m位块内地址主存字块标记t位c位b位Cache行号每个缓存行i

可以和若干个主存块对应每个主存块j

只能和一个缓存行对应字块2c+1

字块2c字块0L0行

直接映射方式的优点是比较电路硬件结构简单,成本低。缺点是每个主存块只有一个固定的行位置可存放,容易产生冲突。因此适合大容量Cache采用。-组相联映射方式:主存有256块,Cache有4行全级联映射存放位置灵活,命中率高,但比较电路相对复杂;直接映射方式比较电路硬件结构简单,但位置固定,命中率低;两者的优缺点正好相反。组级联方式是两种方法的折中考虑。它将Cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的,有如下函数关系:

Cache的总行数m=u×v块存放的组号q=jmodu设4行Cache共分2组,每组2行,则允许存于Cache第:L0组:B0(00000000),B2(00000010),B4(00000100),共128块;L1组:B1(00000001),B3(00000111),B5(00000101),共128块;字0字1字2字3……字0字1字2字3……字0字1字2字3B0B7B255

字2Cache0000001L00000000L00000011L10100100L10000011110CAM220000011110L0L1相等,命中

比较标记组相联映射方式中的每组行数v一般取值较小,这种规模的v路比较器容易设计和实现。而块在组中的排放又有一定的灵活性,冲突减少。字0字1字2字3……字0字1字2字3……字0字1字2字3B0B11B255

字2Cache0000001L00000000L00000011L10100100L10000101110CAM20000101110L0L1

比较不相等没有读命中组级联映射的主存地址表示成:标记组号块内地址字块2m-1字块2c-r+1

字块2c-r+1字块2c-r字块2c-r

-1字块1字块0………L3行标记

L1行标记2c-1行标记L2行标记

L0行标记2c-2行标记…………0组1组D-1组i=jmod

Dt位t位(D=2d=2c-r)Cache存储器(每组2r行)主存储器某一主存块j

按模D

映射到缓存的第i

组中的任一行

字块0L1行L0行

字块2c-r

字块2c-r+1m位块内地址主存字块标记t位d位b位Cache组号替换策略

Cache工作原理要求它尽量保存最新数据,当新的主存块需要拷贝到Cache中,但存放此块的位置被其他主存块占用必然要产生替换。替换问题与采用的地址映射方式有关,直接映射的Cache来说,只要把此特定位置上的原主存块换出Cache即可,不需要替换算法。对全相联和组相联Cache来说,就要从允许存放新主存块的若干特定行中选取一行换出。采用何种方式决定决定将那一行换出就是替换策略。常用的替换策略有三种:-随机替换-最不经常使用(LFU)算法-最近最少使用(LRU)算法

-随机替换策略从特定的行位置中随机地选取一行换出。在硬件上容易实现,且速度也比后两种策略快。缺点是很可能刚换出的行马上又要使用,降低了命中率和Cache工作效率。-最不经常使用(LFU)算法这种算法每行设置一个计数器。从0开始计数,每访问一次,被访行的计数器增1。当需要替换时将计数值最小的行换出,同时将这些行的计数器都清零。LFU算法将一段时间内被访问次数最少的那行数据换出,不能严格反映近期访问情况。-最近最少使用(LRU)算法

LRU算法将近期内长久未被访问过的行换出。每行也设置一个计数器,Cache每命中一次,命中行计数器清零,其它各行计数器增1。当需要替换时,将计数值最大的行换出。这种算法保护了刚拷贝到Cache中的新数据行,有较高的命中率。Cache的写操作策略

当CPU读取内存某个字时,如果该字在Cache中,直接从Cache中读取,我们称为读命中。当CPU写内存某个字时,如果该字在Cache中,我们称为写命中;CPU是仅仅改写Cache的内容还是Cache和内存的内容同时修改,不同的写方法我们称为写操作策略。-写回法当CPU写Cache命中时,只修改Cache的内容,而不立即写入主存;只有当此行被换出时才写回主存。这种方法减少了访问主存的次数,但是存在不一致性的隐患。实现这种方法时,每个Cache行必须配置一个修改位,以反映此行是否被CPU修改过。-全写法当CPU写Cache命中时,Cache与主存同时发生写修改,因而较好地维护了Cache与主存的内容的一致性。当写Cache未命中时,直接向主存进行写入。Cache中每行无需设置一个修改位,但却失去了写缓存。-写一次法只是第一次写命中时要同时写入主存。这便于维护系统全部Cache的一致性。奔腾CPU中采用了写一次法。3.7虚拟存储器什么是虚拟存储器

虚拟存储器不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,以透明的方式给用户提供了一个比实际主存空间大得多的程序地址空间,使之为更大或更多的程序所使用。虚拟存储器采用的依据是程序的局部性原理,即当程序要求运行时,不是将它全部装入内存,而是将其一部分需要执行的程序装入内存,另一部分暂时不装入内存,驻留于外存。在实际内存没有变化的情况下,会有更多的或更大的程序存入其中,使用者认为内存的总量为物理内存加用于驻留程序的外存。虚拟存储器的实质就是用外存模拟内存。虚拟存储器依赖于程序的部分装入,程序的部分装入又依赖于对程序的分隔,根据对程序的分隔的方式的不同,虚拟存储器可以分为:页式虚拟存储器,段式虚拟存储器,段页式虚拟存储器。页式虚拟存储器分页式存储系统中把用户程序逻辑空间分割为大小相等的片,称为一个逻辑页或者页,同时按照同样的大小将系统物理内存分割为大小相等的存储块,我们称为物理块或者块。0页1页2页3页4页5页6页……n页用户程序0块1块2块3块4块5块6块7块……物理内存分页系统的优点:

-实现程序的离散装入

-实现程序的部分装入如何知道程序的某一页装入了内存的哪一块呢?-页表:在分页系统中,允许程序的每一页离散的存储在内存的任一物理块中,为了能在内存中找到每个页面所对应的物理块,为每一个程序建立了一个反映逻辑页和物理块之间的映射关系的表,称为页表。0页1页2页3页4页5页6页……n页用户程序0块1块2块3块4块5块6块7块……物理内存01142637

页号块号页表

在分页系统中,用户的逻辑空间可以用页号与页内偏移地址构成,系统的物理空间可以用块号与块内偏移地址构成。0页1页2页3页4页5页6页……n页用户程序页号:3页内地址:10010001142637

页号块号页表0块1块2块3块4块5块6块7块……物理内存100块号:块内地址:7100逻辑地址物理地址地址变换-分页系统的地址变换机构为了将用户程序的逻辑地址变换成内存的物理地址,在系统中有地址变换机构,完成逻辑地址向物理地址的转化,由于页内地址和块内地址相同,地址变换机构的任务就是把逻辑地址的页号通过页表转换成物理地址的块号。逻辑地址逻辑页号(3)页内地址物理地址物理块号块内地址页表寄存器页表始址页表长度01142637……

页号块号页表越界中断(7)-页面置换策略依据是程序的局部性原理,即当程序要求运行时,不是将它全部装入内存,而是将其一部分需要执行的程序装入内存,另一部分暂时不装入内存,驻留于外存。在分页系统中,就是把程序执行用到的部分页面装入内存的物理块,因此分配给程序的物理块总是小于程序的页面,在程序运行的过程中,如果请求的页面不在内存的物理块中,就需要将已经存在于物理块中的不用页面与该页面进行对换,到底把存在于物理块中的哪一个页面换出,这就是置换策略,常用的置换策略有:

1)先进先出置换算法(FIFO)2)最近最久未使用置换算法(LRU)FIFO置换算法:该算法将最先进入内存的页面换出。例如:某系统为程序分配了3个物理块,考虑下面的页面号引用串:

7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1利用FIFO算法描述页面调入过程,计算缺页率。70120304230321201701770701201231230430420423023013012712702共进行了12次的页面置换,缺页率是60%。LRU置换算法:该算法选择最近最久没有使用的页面换出。70170120304230321201701770701201203403402432032132102107共进行了9

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论