
微型计算机存储器ppt课件.ppt
115页第九章 微型计算机存储器第一节 存储器概述一、存储器分类 1、按存取速度和在计算机系统中的位置分类 ⑴ 主存储器:速度较快,容量较小,价钱较高,用于存储当前计算机运转所需求的程序和数据,可与CPU直接交换信息,习惯上称为主存,又称内存 ⑵ 辅存储器:速度较慢,容量较大,价钱较低,用于存放计算机当前暂时不用的程序、数据或需求永久坚持的 信息辅存又称外存或海量存储器2、按存储介质和作用机理分类 ⑴ 磁存储器,主要有磁芯、磁带、磁盘、磁泡和磁鼓 ⑵ 光存储器,只读式CD-ROM、可擦写光盘,还有一种介于磁和光之间的存储设备叫磁光盘〔MO盘〕 ⑶ 半导体存储器,当前计算机系统的主存主要用半导体存储器3、按存取方式分类 ⑴ 微机内部 ① 可读写存储器RAM,特点是存储器中的信息可读可写,半导体RAM断电后信息会全部丧失〔易失性〕 ② 只读存储器ROM,特点是存储器中信息只能读出,不能写入,关机后信息不会丧失〔非易失性〕 ⑵ 微机外部 ① 直接存取存储器DAM,如磁盘、光盘等,可直接对存储器中任何单元进展访问,存取时间与存储单元的物理位置无关。
② 顺序存取存储器SAM,如磁带对存储单元的访问是按顺序进展的,与存储单元的物理位置有关二、存储器的性能目的 1、存储器容量 存储器容量是指存储器可以包容的二进制信息总量,即存储信息的总位〔Bit〕数设微机的地址线和数据线位数分别是p和q,那么该存储器芯片的地址单元总数为2p,该存储器芯片的位容量为2p × q 例如:存储器芯片6116,地址线有11根,数据线有8根那么该芯片的位容量是: 位容量=211 ×8 = 2048 ×8 = 16384位 存储器通常是以字节为单位编址的,一个字节有8位,所以有时也用字节容量表示存储器容量,例如上面讲的6116芯片的容量为2KB,记作2K ×8,其中: 1KB = 1024B(Byte)=1024 ×8 =8192位 存储器容量越大,那么存储的信息越多目前存储器芯片的容量越来越大,价钱在不断地降低,这主要得益于大规模集成电路的开展2、存取速度 存储器的速度直接影响计算机的速度存取速度可用存取时间和存储周期这两个时间参数来衡量存取时间是指CPU发出有效存储器地址从而启动一次存储器读写操作,到该读写操作完成所阅历的时间,这个时间越小,那么存取速度越快。
目前,高速缓冲存储器的存取时间已小于5ns存储周期是延续启动两次独立的存储器操作所需求的最小时间间隔,这个时间普通略大于存取时间3、可靠性 存储器的可靠性用MTBF(Mean Time Between Failures)平均缺点间隔时间来衡量, MTBF越长,可靠性越高,内存储器常采用纠错编码技术来延伸MTBF以提高可靠性4、性能/价钱比 这是一个综合性目的,性能主要包括上述三项目的—存储容量、存储速度和可靠性对不同用途的存储器有不同的要求例如,有的存储器要求存储容量,那么就以存储容量为主;有的存储器如高速缓冲器,那么以存储速度为主第二节 半导体存储器一、半导体存储器的特点分类 1、半导体存储器的特点 ⑴ 速度快,存取时间可到ns级; ⑵ 集成度高,不仅存储单元所占的空间小,而且译码电路和缓冲存放器、读出写入电路等都制造在同一芯片中目前已到达单片1024Mb〔相当于128M字节〕 ⑶ 非破坏性读出,即信息读出后存储单元中的信息还在,特别是静态RAM,读出后不需求再生 ⑷ 信息的易失性〔对RAM〕,即断电后信息丧失 ⑸ 信息的挥发性〔对DRAM〕,即存储的信息过一定时间要丧失,所以要周期地再生〔刷新〕。
⑹ 功耗低,特别是CMOS存储器 ⑺ 体积小,价钱在不断地下降 2、半导体存储器的分类 半导体存储器的分类如图9.1所示主要分为两大类,可读写存储器RAM和只读存储器ROM RAM分为静态RAM〔SRAM〕和动态RAM〔DRAM〕两种目前计算机内的主存储器都是DRAM,它的集成度高、功耗很低,缺陷是需求再生SRAM是非挥发的,所以不需求再生,但集成度比DRAM要低,计算机中的高速缓冲存储器大多用SRAM. 如今有一些新的RAM,如组合RAM〔IRAM〕,将刷新电路与DRAM集成在一同;非易失RAM〔NVRAM〕,实践上是由SRAM和EEPROM共同构成正常情况下,它和普通SRAM一样,而在系统掉电瞬间它把SRAM中的信Flash存储器息保管在EEPROM中,从而使信息不丧失 只读存储器ROM的特点是用户在运用时只能读出其中的信息,不能修正和写入信息 近几年出现了一中新的存储器叫Flash存储器〔闪烁存储器〕,这是一种电可擦除的非易失性只读存储器,我们将在后面详细引见二、半导体存储器的组成 半导体存储器组成的框图如图9.2所示。
它普通由存储体、地址选择电路、输入输出电路和控制电路组成 1、存储体 存储体是存储1和0信息的电路实体,它由许多个存储单元组成,每个存储单元普通由假设干位(8位)组成,每一位需要一个存储元件,每个存储单元有一个编号,称为地址存储器的地址用一组二进制数表示,其地址线的根数n与存储单元的数量N之间的关系为: 2n = N地址线数与存储单元数之间的关系列于表9-1中 2、地址选择电路 地址选择电路包括地址译码器和地址码存放器地址译码器用来对地址译码设其输入端的地址线有n根,输出线数为N,那么它分别对应2n个不同的地址码,作为对地址单元的选择线这些输出的选择线又叫做字线地址译码的方式有两种: ⑴ 单译码方式 它的全部地址码只用一个电路译码,译码输出的字选择线直接选中对应的存储单元,如上面图9.2所示这一方式需求的选择线数较多,只适用于容量较小的存储器 ⑵ 双译码方式〔或称矩阵译码〕 双译码方式如图9.3所示它将地址码分为X与Y两部分,用两个译码电路分别译码X向译码称为行译码,其输出线称为行选择线,它选中存储矩阵中一行的一切存储单元。
Y向译码又称为列译码,其输出线称为列选择线,它选中一列的一切单元只需X向和Y向的选择线同时选中的那一位存储单元,才干进展读写操作由图可见,具有1024个根本单元的存储体陈列成32×32的矩阵,它的 X向和Y向译码器各有32根译码输出线,共64根假设采用单译码方式,那么要1024根译码输出线因此,双译码方式所需求的选择线数目较少 ,也简化了存储器的结构,故它适用于大容量的存储器3、读写控制电路 读写控制电路包括读写放大器、数据存放器〔三态双向缓冲器〕等它是数据信息输入输出的通道 外界对存储器的控制信号有读信号RD、写信号WR和片选信号CS三、可读写存储器〔RAM〕 1、静态RAM〔SRAM〕 ⑴ 静态RAM的根本电路 静态RAM的根本存储电路是由6个MOS管组成的双稳态触发器,如图9.4所示图中,T3、T4是负载管, T1、T2组成RS触发器,它有两个稳定形状在A点〔相当于Q端〕与B点〔相当于Q端〕可以分别积存信息1和0T5、T6为行向选通门,受行选线的电平控制T7、T8为列向选通门,受列选线的电平控制由此组成了双译码方式当行选线与列选线上的电平都是高电平常,那么分别将T5、T6与T7、T8导通,使A、B两点的信息经D与D两点分别送至输入输出电路的I/O线及I/O线上,从而存储器某单元位线上的信息同存储器外部相通。
这时,就可以对该单元位线上的信息进展读写操作 写入时,被写入的信息从I/O线和I/O线输入如写1时,使I/O线为高电平, I/O线为低电平,经T7、T5与T8、T6分别加至A端和B端,使T1截止而T2导通,于是A端为高电平,触发器为存1的稳态;反之亦然 读出时,只需电路被选中, T5 、 T6与T7、 T8导通,A端和B端的电位就送到I/O线及I/O线上假设原存的信息为1,那么I/O线上为1,I/O线上为0;反之亦然读出时,触发器的形状不受影响,故为非破坏性读出 ⑵ 静态RAM的组成 静态RAM的组成如图9.5所示存储体是一个由64×64= 4096个6管静态存储电路组成的存储矩阵在存储矩阵中,X地址译码器输出为X0-X63共64根行选择线,Y地址译码器输出为Y0-Y63共64根列选择线只需行列都被选中的那个存储电路,才干进展读出和写入 图中为4K×1位的存储器,因此它仅有一个I/O电路如果要组成字长为8位的存储器,那么同时有8个存储电路与外界交换信息这种存储器,将列按8位分组,每根列选择线控制一组的列向门同时翻开,相应地也应有8个I/O电路每一组的同一位,共用一个I/O电路。
对于每块芯片,都有一个片选控制端CS,只需当该端加上有效信号时,才干对该芯片进展读写操作 ⑶ 静态RAM芯片举例 常用的静态RAM芯片有2114〔1K × 4位〕、2142 〔1K × 4位〕 、2141 〔4K × 1位〕 6116 〔2K × 8位〕 、6264〔8K × 8位〕、62256 〔32K × 8位〕和628128 〔128K × 8位〕等 ① 6116有2K × 8位=16384个存储位,2K 表示芯片内的地址有11位〔A0-A10〕,8位表示一个单元有8个二进制位 芯片内有128×128的存储单元矩阵它有11条地址线,7条用于行地址译码,4条用于列地址译码,每条列地址译码线控制8个根本存储单元〔128 × 16 × 8〕6116的任务方式如表9-2所示 表9-2:6116芯片的任务方式② 6264芯片〔 8K × 8位〕:片内地址13根,每个存储单元8位目前常用的6264是8K × 8位的静态RAM芯片,它的引脚如图9.7所示它有13根地址线,有两个片选信号CE1和CE2,运用时可以只用一根,这时使另一根总是有效CSOEWE任务方式001读010写1××未选通它的操作控制如表9-3所示。
图9.7 6264的引脚图 2、动态RAM〔DRAM〕 ⑴ 动态RAM的根本单元 动态RAM是以MOS管栅极电容能否充有电荷来存储信息的,其根本单元如图9.8所示 由于只用一个管子,所以功耗很低,存储容量可做得很大它是由T1管和寄生电容Cs组成的 ① 读操作时,地址译码电路使某条字选择线为高电平, T1管导通,那么存储在Cs上的信息经过T1管送到D线上,再经过放大,即可得到存储的信息 ② 写操作时,使字选线上为高电平,T1管导通 ,待写入的信息由位线D〔数据线〕存入Cs Cs上的信息被读出后,其存放的电压由0.2V下降为0.1V,,所以这是一种破坏性读出,读出后必需重写 ③ 刷新操作 由于电容上的信息随时间添加渐渐消逝所以这种存储单元必需定期刷新,以坚持他所存的信息刷新操作实际上也是一次读操作不过这时信息并不读到数据线上目前计算机的内存大多采用这种单管的动态存储器 ⑵ 动态RAM芯片举例 MCM511000是1M×1位的高速动态RAM,图9.9是它的引脚图10根9根1根 在芯片中有10条地址线,被行列分时复用;D和Q分别是数据输入线和数据输出线;控制线有读写线W、行地址选通线RAS、列地址选通线CAS和测试功能使能线TF。
芯片内部功能如图9.10所示芯片的存储体是一个512行×2048列 = 1048576位的存储阵列 A0-A9 10位地址线在RAS控制下先送到行地址锁存器,其中9位行地址译码后产生512根行选择线另一根行地址线与A0-A9 10位列地址在CAS控制下,译码产生2048根列选择线 读出和写入是分开的,W=低时为写入,D引脚上的数据经信号放大和 I/O门控写入选中的存储单元W=高时为读出操作,被选中单元的数据被读出到Q线上 刷新是逐行进展的,由刷新地址计数器〔9位〕和刷新控制器进展,要求8ms对整个存储体刷新一次,那么对每一行 刷新要8000/512=15.6微秒 ⑶ 动态RAM刷新控制逻辑 图9.11是由4 K×1位动态存储器组成的存储模块中的刷新控制逻辑该逻辑分为两大部分:32个4 K×1位动态RAM组成的存储模块、总线驱动器和外围电路每个芯片上有两条控制信号线CS和CE,在刷新操作时CS为高电平,数据输入输出处于高阻态被制止CE是芯片使能控制逻辑的另一部分是总线驱动器和外围电路,外围电路主要是刷新时钟发生器、刷新地址计数器、芯片使能逻辑和2到1的多路转换器。
2到1的多路转换器输出动态RAM的行地址,正常操作时,输出从地址总线来的行地址;刷新操作时,输出有刷新地址计数器来的行地址 刷新时,刷新时序使一切芯片的CS处于无效形状,数 据输入输出被制止并使4个存储组的CE全部有效,同时对4个存储组刷新每一个存储组共有64行×512列根本存储单元一个刷新周期内只刷新有刷新地址计数器所选中的那一行中的全部单元在每次刷新周期终了后,刷新计数器加1动态存储器刷新时间间隔普通为2ms,因此在2ms内要刷新64行 ⑷ 动态RAM控制器 与SRAM比,DRAM要复杂的外部电路支持图9.12显示了DRAM控制器的根本构造,它由以下几个部分组成: ① 地址多路开关:它一方面将CPU的地址总线转换成分时的DRAM行列地址,另一方面在地址总线与刷新地址之间切换 ② 刷新地址计数器:每次刷新由它提供刷新地址 ③ 刷新定时器:提供刷新定时信号 ④ 仲裁电路:因CPU访存与刷新是异步的,故有能够发生冲突可以根据一定的战略决议谁有优先权〔通常是刷新优先〕 ⑤ 定时发生器:担任产生行、列地址选通讯号、读写控制信号等 如今曾经有将DRAM芯片和DRAM控制器集成在一同的产品。
⑸ DRAM的演化和DIMM ① DRAM的演化 存储器芯片的容量和速度在不断地提高,此外还改良存储器的组织构造和访问方式 较早时的FPM 〔快页方式〕DRAM,EDO〔扩展数据输出〕 DRAM,到目前的SDRAM〔同步DRAM〕,以致新一代的DDR〔双数据率〕 SDRAM和RDRAM(Rambus DRAM〕等 SDRAM可用一个时钟周期完成一个数据的访问和刷新,因此大大提高了数据传输率,成为目前微机的主流 ② SDRAM DIMM的接口信号 目前运用168线的双边接触内存模块〔DIMM〕插槽,存储条可直接插在上面168个信号分成6组:地址线、数据信号线、串行存在探测〔SPD:Serial Presence Detect〕信号线、控制线、电源信号和其它信号线 3、双端口RAM ⑴ 双端口RAM的根本构造 双端口RAM提供了两个独立的端口,每个端口有本人的控制线、地址线和输入输出数据线具有两个端口的DS1609的内部构造如图9.13所示主要由双口存储阵列和两个完全独立的端口A、B组成其中双口存储阵列中的存储单元电路如图9.14的左图所示,其中心仍属静态存储器,由8个MOS管构成;A、B端口分别由地址/数据复用线控制逻辑和芯片操作控制逻辑构成。
⑵ 读写操作 读周期时,地址/数据复用线AD0-AD7分时运用, CE#和OE#〔这里的#号表示低电平有效,相当于上划线〕同时有效为读操作,这时WE#必需维持高电平 写周期时,地址/数据复用线AD0-AD7分时运用, CE#和WE#〔这里的#号表示低电平有效,相当于上划线〕同时有效为写操作,这时OE#必需维持高电平 ⑶ 仲裁 对两个端口同时进展读操作时不需求仲裁,但是当两个端口同时进展读和写操作或同时进展写操作,那么需求进展仲裁处理的方法有硬件判优、中断方法、令牌传送和软件判优等方法,这里不作详细引见 4、先进先出存储器FIFO 先进先出存储器(FIFO)的主体是静态存储器,是一种允许以不同速率进展读写操作的存储器,主要用作两种或多种速度不匹配接口电路的中间缓冲 图9.15是美国德州仪器公司消费的SN74ALVC7804/06/14低功耗单向18位的FIFO构造图其操作在装载时钟LDCK和卸载时钟UNCK控制下同步进展写入操作在LDCK的作用下同步,读出操作在UNCK的作用下同步 写入时,在LDCK的上升沿,数据写入这种FIFO;读出时,在UNCK的上升沿,数据从这种FIFO读出,OE#为低。
FIFO的形状信号有FULL#、EMPTY#、HF和AF/AE,分别表示存储器满、空、半满和几乎满/几乎空当存储器为满时, FULL#输出低,否那么为高;当存储器空时, EMPTY#输出为低,否那么为高;当存储器中装满一半时,HF输出为高,否那么为低 PEN#为编程允许信号,平常不用,为高电平加电时,FIFO必需复位,在RESET#为低期间,FIFO复位 四、只读存储器ROM 1、只读存储器的特点 ⑴ 信息需预先写入,运用过程中信息只能读出,不能写入 ⑵只读存储器是非易失性的,即断电后信息不会丧失 ⑶只读存储器主要用于存放不经常修正的信息或程序在计算机中常用于存放各种系统软件〔如BIOS〕和系统配置参数、运用程序和常数、表格等 2、只读存储器的原理和组成 ⑴只读存储器存储信息的原理 ROM的存储元件如图9.16所示,它可以看作是一个单导游通的开关电路当字线选中该单元时,假设开关S是断开的,位线D上将输出信息1;假设S是接通的,那么位线D经T1接地,将输出信息0 ⑵ ROM的组成构造 ROM的组成构造与RAM类似,普通也由地址译码电路、存储矩阵、读出电路及控制电路等部分组成。
图9.17是有16个存储单元、字长为1位的ROM构造图图中采用了复合译码方式,其 图9.16 ROM存储单元行列地址各占2位,行列线的交叉点为选中单元再根据被选中单元的开关形状,数据线上将读出1或0图中所示是16个存储单元的1位,8个这样的阵列,才干组成一个16×8位的ROM存储器 3、掩膜式ROM 掩膜ROM由厂家制成后,用户不能修正,图9.18是一个简单的4×4位MOS型ROM,采用单向译码构造假设地址为10,那么选中2号单元,输出为0101图中存储内容如表9-4所示 4、可编程只读存储器PROM 可编程只读存储器PROM可根据用户要求写入存储信息,但只能写一次厂家出厂时,交叉点处均有二极管或三极管,用户可以利用外部地址对存储矩阵的管子进展选择,如一些被烧断,其他坚持原状,这样就完成了编程,但一旦写入,那么无法更改,所以是一次性写入的ROM 这种片子如今已很少运用,几乎被EPROM或闪烁存储器替代 5、可编程可擦写只读存储器EPROM ⑴ EPROM根本单元大多采用浮栅MOS管,P沟道浮栅MOS管EPROM的根本单元如图9.19所示。
初始时浮栅上没有电荷,管子内没有导电沟道,S〔源极〕和D〔漏极〕不导通写入时,在D和S间加上较高负电压,另外加编程脉冲,D和S之间瞬时产生雪崩击穿,大量电子穿过绝缘层注入到浮动栅,当高电压撤去后,由于浮栅被绝缘层所包围,注入电子在室温、无光照下可以长期保管在浮栅中于是在D和S之间构成了导电沟道,EPROM单元导通,存储电路输出为“0〞S和D不导通时那么输出为“1〞 EPROM芯片上方有一个石英玻璃窗口,当用紫外线照射时,就可以使浮栅上的电荷放掉,而恢复初态普通要照射20-30分钟 ⑵ EPROM芯片举例 目前运用最多的是Intel公司的EPROM系列,如图9.20所示从2716到27512,容量从2KB到64KB都有下面以2764A为例,引见EPROM的任务方式和性能 2764A是8K×8位的芯片,有13根地址线,8根数据线,2根电压输入端Vpp〔编程电压〕和Vcc,一根芯片允许端CE和一个编程端PGM,其功能框图如图9.21所示 2764A有7种任务方式,如表9-5所示,分别是读方式、输出制止方式、备用方式、编程方式、校验方式、编程制止方式和标识符方式256 × 32 ×8• 6、电可擦除可编程只读存储器EEPROM• EPROM虽可多次编程,但即使内部只需一位数据有错•误,都必需重写,而且要用紫外线照射,运用不太方便。
•近年来出现的电可擦除可编程的只读存储器EEPROM能•以字节为单位擦除和改写,给用户带来极大的方便 早期的EEPROM编程时要加21V高电压,很难编程和擦除如今的EEPROM只需外加单一+5V电源,除可独立编程和擦除外,也可以编程和擦除 例如:Intel 2815,2K×8位 EEPROM,需加编程电压21V; Intel 2864A,8K×8位 EEPROM,不用加编程电压 图9. 22 2864A引脚图,只加单一+5V,可编程和擦除,其引脚如图9.22所示2864A的任务方式如表9-6所示表9-6:2864A的任务方式EEPROM的读写操作与SRAM根本一样,只是写入时间较长,写一字节大约要1-5ms7、新一代可编程只读存储器FLASH〔闪烁存储器〕 闪烁存储器兼有EEPROM的可编程才干和不易失性,并且容量大,速度快最新的闪烁存储器已达64M位,只需单一+5V供电,便可读写、编程和擦除等操作目前根本上有三类闪烁存储器 ⑴ 规范并行FLASH:如Intel 公司的A28F× ×系列;AMD公司的Am 28F× ×系列; ATMEL公司的AT29C × ×系列。
⑵ 与非〔NAND〕 FLASH 韩国三星公司的KM29N × ×系列,采用I/O总线为命令/地址/数据分时复用的方法,所以用于接口的引脚减少 ⑶ 串行FLASH 由于采用串行接口,故接口引脚大大减少,总共只需6条引脚如美国国家半导体公司的NM29A040/080〔4M/8M位〕 FLASH与其他类型的存储器比较,有一些特点,参看表9-7和表9-8 图9.23是日立公司消费的规范FLASH 8M位 HN29WT800引脚图和引脚阐明它有2048×256个存储节点,每个节点有16个根本单元,总共是2048×256 ×16 = 8Mb 它有19条地址线,分为11条译码产生2048条行地址;8条译码产生256条列地址,组成2048×256 矩阵它的输入输出线有16条,可以进展8位和16位数据的操作其它还有一些控制线,这里不再细说第三节 存储器与CPU的衔接一、存储器与CPU衔接时要思索的问题 1、存储器的容量 一个大的存储器系统有几十、几百M字节,普通要根据系统来定对于嵌入式或用户本人做的运用系统,可根据实践需求来设计存储器的容量。
2、存储空间的安排 微机内存包括ROM区和RAM区,它们都由许多芯片组成,所以要安排地址空间,即地址分配;每个存储器芯片还需求片选信号,这些信号如何产生等问题 3、CPU总线的负载才干 通常CPU总线的负载才干是一个TTL器件或20个MOS器件,当总线上接的器件很多,超越允许值时,应该在总线上加接缓冲器或驱动器,以添加CPU的负载才干 4、CPU的时序和存储器速度之间的配合 CPU执行存储器读写指令都有固定的时序,为保证CPU读写存储器的准确性,存储器的速度必需与CPU匹配 5、一个8位微机的存储器子系统 如图9.24所示,有4片2732〔4K ×8位〕 EPROM组成的16KB的ROM区,4片6116 〔2K ×8位〕 SRAM组成的8KB的RAM区二、存储器中的片选译码 1、地址译码器 74LS ⑴ 集成译码器74LS 集成地址译码器常用74LS,它的引脚和逻辑电路如图9.25所示 74LS的功能如表9-9所示它有三个使能端G1 =1 、G2A = 0 和G2B = 0;3个译码输入端C、B、A决议8个输出端的形状。
在图9.24中4片2732EPROM和4片6116SRAM,其地址F8000-F8FFFH F9000-F9FFFH FA000-FAFFFH FB000-FBFFFH FC000-FC7FFHFC800-FCFFFHFD000-FD7FFH FD800-FDFFFH范围计算如表9-10所示: EPROM1:F8000-F8FFFH ;4KB EPROM2:F9000-F9FFFH;4KB EPROM3:FA000-FAFFFH;4KB EPROM4:FB000-FBFFFH;4KB SRAM1: FC000-FC7FFH;2KB SRAM2: FC800-FCFFFH;2KB SRAM3: FD000-FD7FFH;2KB SRAM4: FD800-FDFFFH;2KB⑵ 采用根本门电路 内存芯片较少的存储器系统可用一些根本逻辑门电路来实现图9.24的系统,假设用根本门电路来做,那么EPROM1和EPROM2的片选电路如图9.26或9.27所示 图9.26和图9.27中,当高位地址 A19-A12为11111000,且 IO/M = “L〞时,门电路1输出“L〞,选中EPROM1;而当 A19-A12为11111001,且IO/M = “L〞时,门电路2输出“L〞,选中EPROM2。
图9.24的系统假设全部用门电路译码,那么需求6个这样的门电路组合 IO/M 图9. 26中EPROM1的片选信号CE,用非门和或门来实现,逻辑表达式表示如下:CE = A19+A18+A17+A16+A15+A14+A13+A12+IO/M 图9. 27中EPROM1的片选信号CE,用非门和与非门来实现,逻辑表达式表示如下:CE = A19 · A18 · A17 · A16 · A15 · A14 · A13 · A12 · IO/M 同理,可写出图9.28中EPROM2的片选信号CE的逻辑表达式2、实现片选的三种方法 ⑴ 全译码法 图9.24所示的存储器译码电路中,CPU的全部地址线 A19-A0都参与地址译码,因此对应于存储器芯片中的任意单元都有独一确定的地址,这种片选方法称为全译码 有些CPU有IO/M线来区分IO读写,还是存储器读写;有的CPU没有IO/M线,但有独立的IO线,如IOR、IOW和存储器读写线MR、MW ⑵ 部分译码法图9.24所示的存储器译码电路中, 假设A19不参与译码,即74LS的G1端接+5V,那么A19不论是“0〞还是“1〞,只需A18-A12满足1111000都能选中EPROM1,那么EPROM1的地址范围为78000-78FFFH和F8000-F8FFFH,那么一个存 储单元可以由两个地址码来选中,这种片选方法称为“部 分译码〞。
由此可见,部分译码法,地址将产生重叠景象 ⑶ 线选法 线选法是只用高位地址总线中的某一条来控制片选 A0-A11 A0-A10 A0-A10 假设一个微机系统存储容量较小,例如只需求4KB的EPROM区和4KB的SRAM区,那么可不采用译码器芯片74LS,而采用图9.28所示的片选电路 该图中,有1片2732EPROM和2片6116SRAM,共8KB的存储器系统图中A11-A0直接同2732的地址线相连,A10-A0直接同6116的地址线相连地址线A11用来区分两片6116的地址范围地址线最高位A19用来划分4KBEPROM区和4KB SRAM区的地址范围 A19=0选中SRAM, A19=1选中EPROM 4KB EPROM区和4KB SRAM区分别对应于512K个地址,这样一个存储单元可以有128个地址来选中,凡是A19、A11-A0这13位地址固定,A18-A12这7位地址为恣意值的128种地址码都能选中同一存储单元,这称为“地址重叠〞 三、存储器芯片的衔接 1、位扩展和字节扩展 存储器芯片可以是1位、4位和8位的构造,而存储器系统都是以字节编址的。
一个大的存储器系统是由很多芯片组成的,这些芯片采用位并联来进展位扩展,采用地址串联进展字节扩展 例如:用256×4位的芯片构成1KB的存储器,如图9.29所示由于每块芯片只需4位,所以要进展位扩展,图中采用两块并联方法组成8位〔一个字节〕;每块芯片只需256个存储单元,所以要进展字节扩展,图中采用地址串联方法组成1024个存储单元〔1KB〕图中采用部分译码法,只用A8、A9两根地址线译码产生四根片选线每根 对应的地址范围分别为0-255、256-511、512-767和768-1023〔A9以上的地址线固定为0〕 例如:用64K×1位RAM构成256KB的存储器系统,问: ① 需求多少个RAM芯片? ② 设系统地址线有20位,采用全译码,那么需求多少 位地址作为片外地址译码?片内地址多少位? 解:需求芯片数= 位扩展数×字节扩展数,此题中 位扩展数=8/1=8 字节扩展数=256/64= 4 所以需求芯片数=8 ×4=32〔片〕 片内地址16位,片外地址= 20-16= 4位 2、存储器芯片存取时序及与CPU时序的配合 由于CPU对存储器的读写有固定的时序,因此要保证CPU对存储器的正确存取,存储器的存取时序必需与CPU的时序相匹配。
8086的读写周期都是4个时钟周期,假设存储器的速度较慢,在规定的4个时钟周期内不能完成读写操作,那么必需在T3周期后插入等待周期Tw,详细插入几个等待周期,要视存储器芯片而定可以参看书上 P153-P154页的图第四节 PC微机的存储器一、PC微机存储器的空间分布表9-11:Intel CPU芯片的存储空间CPU芯片地址线〔根〕寻址空间数据线〔根〕8086201 MB16802862416MB1680386324GB3280486324GB32805863664GB64(32) 8088/8086只需20根地址线,可寻址1MB空间表9-12是IBM PC/XT存储器空间分布地址00000-BFFFFH共768KB RAM存储区,地址C0000H-FFFFFH 共256KB ROM区 80386地址线有32条,可寻址4GB物理地址空间实践内存容量为4MB或8MB图9.30是一个80386微机系统4MB 内存分布图,其中低端640KB为根本内存,从 A0000-FFFFFH的384KB是上位内存区从100000H到3FFFFFH的3MB是扩展内存,扩展内存的第一个64KB称为高端内存区。
此外,还有1MB的扩展内存二、PC微机内存类型及管理 1、系统存储器 系统存储器就是PC/XT所运用的1MB地址空间,由常规内存和上位内存区组成 ⑴ 常规内存:存储器低端640KB,地址为00000-9FFFFH,由DOS一致管理,主要存放BIOS、DOS、常驻内存程序和运用程序等 ⑵ 上位内存区:从A0000H-FFFFFH的384KB是上位内存区,只读ROM、显示适配器磁盘驱动器缓冲器及其它硬件扩展卡都运用这部分存储器 下面引见的上位内存块和扩展存储器64KB的存储窗口,均位于上位内存区中2、扩展存储器 扩展存储器是指80286以上微机系统中1MB以上的内存 扩展存储器运用专门的扩展存储器驱动程序,扩展存储器规范 XMS一致运用扩展存储器的规范,并定义了内存中三个特殊区域:高端内存区、上位内存块、扩展内存块 ⑴ 高端内存区:是扩展内存的第一个64KB空间,80286以上微机可将DOS安装到高端内存区,从而留出更多的常规内存供应用程序运用 ⑵ 上位内存块:是上位内存区中一些未被运用的存储空间,经过专门的硬件或内存管理软件可访问到在80386中,可以在这部分空间中运转设备驱动程序和内存驻留程序。
⑶扩展内存块:是扩展存储器中除高端内存区以外的剩余存储区域3、扩展存储器 扩展存储器通常安装在专门的扩展内存卡上,由扩展内存管理程序来管理扩展存储器的技术规范是扩展存储器规范EMS 扩展存储器被划分成假设干个16KB的页面,经过访问上位内存区中一个64KB的存储窗口,可以读写扩展存储器的4个不同的页面 在此80386以上微机系统中,可以将扩展存储器中的一些内存模拟成扩展存储器来运用 由于存储器的集成技术越来越高,如今的微机曾经不用扩展存储器第五节 PC 微机存储器的扩展技术一、高速缓冲存储器〔Cache〕 1、运用Cache的必要性 计算机内存主要是DRAM,价钱低、容量大,但存取速度难以提高;而CPU速度提高很快目前CPU的速度比DRAM要快一个数量级以上,导致两者速度不匹配慢速存储器限制了高速CPU的性能,限制了计算机性能的进一步开展和提高 半导体存储器中,只需双极型TTL SRAM,存取速度与CPU处于同一量级,但这种RAM价钱较贵,功耗很大,集成度低,所以不能将一切DRAM都采用SRAM折中的 方法是分级处置,在主存和CPU之间加一个容量相对小的双极型SRAM作为高速缓冲存储器Cache。
目前Cache的容量大多为256KB、512KB,分为一级Cache、二级Cache等CPU访问Cache的命中率可到达90% - 98%,这样就大大提高了CPU访问数据的速度 2、程序的部分性原理 对大量典型程序的运转情况分析结果阐明,在一个较短时间内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内在多数情况下,指令是顺序执行的,因此指令地址的分布就是延续的,再加上循环程序段和子程序段要反复执行多次,因此对这些地址的访问就具有时间上集中分布的倾向数据这种集中倾向不如指令明显,但对数组的存储和访问,以及任务单元的选择都 可以使存储器地址相对集中 这种对部分范围的存储器地址频繁访问,而对此范围以外的地址那么访问较少的景象,称为程序访问的部分性 Cache的设计利用了程序访问的部分性原理在主存和CPU之间设置Cache,把正在执行的指令地址附近的一部分指令或数据从主存装入Cache中,供CPU一段时间运用,这是完全可行的 3、 Cache的根本任务原理 目前微机中Cache普通装在主板上,在Intel 486 CPU中集成了8KB的数据和指令共用的Cache;在Pentium CPU中集成了8KB的数据Cache和8KB的指令Cache,与主板上的Cache构成两级Cache构造。
CPU首先在第一级Cache中查找数据,假设找不到,那么在在第二级Cache中查找;假设数据不在这两级Cache中,那么Cache控制器从主存中获取数据,同时将数据提供应CPU,并修正两级Cache两级Cache的结合,提高了命中率命中率是指CPU访问Cache操作的胜利概率,可高达98% 图9.31显示了带有Cache存储器的存储系统的构造中间方框中的Cache控制部件实践上为一块芯片〔82385〕,其任务原理大致如下: ⑴ 由于Cache对CPU是透明的,故CPU每次均假定访问主存,因此CPU送出的地址均是主存地址该地址保管在Cache控制部件内的主存地址存放器MA中 ⑵ Cache容量远小于主存容量,故只需一部分主存内容保管在Cache中的,控制部件应能检索哪一部分内容在Cache中为此,可以用MA中的地址作为关键字在主存 -Cache地址变换部件〔由按内容进展访问的相联存储器CAM构成〕中进展检索 ⑶ 假设检索胜利,阐明要访问的主存的某一部分曾经保管在Cache中此时可根据CAM中的Cache地址转而访问Cache ⑷ 假设检索不胜利,阐明要访问的主存的某一部分不在Cache中。
此时CPU可直接访问主存,同时根据某种算法将从主存中获得的信息以及该地址附近的内容送入Cache〔由于根据某种假设,这块数据很能够还要被访问〕 由此可见, cache控制部件主要需求处理三个问题:如何在主存地址与cache地址之间进展转换;在cache不命中时如何交换cache中的内容;如何坚持主存与cache的一致性 4、 cache地址映象和变换〔不要求〕 在主存的地址和cache地址间建立一种确定的逻辑关系,即根据主存的地址来构成cache的地址这样的逻辑关系称为地址映象 地址映象关系可用一张表来表示,这张表反映主存单元和cache单元的对应关系通常用快速存储器来实现⑴ 直接映象 一个主存块只能映象到cache中的独一一个指定块的地址映象方式称为直接映象 地址映象方法普通是将主存块地址对cache的块数取模得到cache中的块地址,这相当于将主存的空间按cache的尺寸分区,每区内一样的块号映象到cache中一样的位置如图9.37所示 实现地址转换的过程如图9.38所示其中地址映象用 主存分为M个区,每个区有N个块,总共有MN块,编号从0到MN-1。
Cache有N个块的块表中包含cache存储器各块的区号主存地址分成三段:区号、块号和块内地址区号作为标志存放在地址映象表中,用于判别命中与否主存的块号直接用于查地址映象表,块内地址用于块内寻址 在访存操作时,根据主存地址中的块号读出块表中的区号,并与当前地址的区号进展比较,结果一样表示cache命中,访问可对cache 进展;不一样那么表示不命中,访问需对主存进行例1:设一个cache的容量为2KB,每个块为16B,求: ① 该cache可包容多少个块? ② 假设主存容量是256KB,那么主存有多少个块? ③ 主存的地址有多少位? Cache地址有多少位? ④ 在直接映象方式下,主存中的第i块映象到Cache中哪 一个块中? ⑤ 进展地址映象时,存储器地址分成哪几段?各段有几位? 解:① cache中有2048/16=128个块 ② 主存有256K/16=16384个块 ③ 主存容量为256KB=218字节,所以主存字节地址有18位 Cache容量为2KB=211字节,所以cache的字节地址为11位 ④在直接映象方式下,主存中的第i块映象cache中第i MOD 128 块中。
⑤ 存储器的字节地址分成三段:区号、块号和块内地址,分别为7位、7位和4位 ⑵ 全相联映象 每个主存块都可以映象到任何cache块的地址映象方式称为全相联映象如图9.39所示 采用全相联映象后,地址变换方式如图9.40所示 Cache地址中,块内地址即主存的块内地址, cache块号那么根据主存从块表中查到块表中包含cache存储器各块的主存块号以及对应的cache块号在访存操作时,根据主存地址中块号,在块表中查找能否有一样的主存块号假设有一样的,那么表示cache命中,将对应的cache块号取出以对cache进展访问没有一样的,那么表示cache不命中,在对主存进展访问并将主存中的块调入cache时,将主存块号和cache块号写入块表中,以改动映象关系 查找地址映象表时需求查找表中的每一项,全部查完才干确定cache不命中 全相联映象简单,只需用查到的cache块号交换主存块号即可构成cache地址缺陷是每次要在很短时间内进展块表查找,实现起来构造复杂,操作时间长,硬件昂贵所以全相联的cache普通用于容量较小的cache中。
⑶ 组相联映象 组相联映象指的是将存储空间分成假设干组,各组之间是直接映象,而组内各块之间那么是全相联映象如图9.41所示这时主存也按cache的容量分区,每个分区又分成假设干个组,每个组包含假设干个块, cache也进展同样的分组 主存中的数据块可调入cache中一个指定组内的恣意块中,但主存中一个组的地址空间只能映象到一样的组中,即组内是全相联映象,组间是直接映象 组相联映象中,组的个数和组内的块数普通是2的幂次主存地址分成四段:区号、组号、主存组内块号和块内地址 cache地址分为三段:组号、组内块号和块内地址 组相联映象的地址变换如图9.42所示 Cache的块内地址和组号直接取自主存地址〔由于组间是直接映象〕,组内的块号那么是查找块表的结果 块表中包含cache存储器各块的主存区号、组内块号以及对应的cache组内块号在访存操作时,根据主存地址中的区号和块号在块表中对应的假设干项中查找能否有一样的主存区号和组内块号,假设有,那么表示命中,将对应的cache组内块号取出以对cache进展访问;没有一样的,那么表示不命中那么将主存中的块调入cache中的同时将主存区号、组内块号和cache的组内块号写入块表中,以改动地址映象关系。
5、交换算法 cache的容量远小于主存,因此cache的命中率不能够等于1因此,当CPU访问的数据不在cache内〔即不命中〕时,应访问主存,并把数据所在的块调入cache,以交换cache中的块终究cache中的哪一块应被交换呢?这就是交换算法问题,交换的原那么是保证交换以后的命中率尽能够高 ⑴ 随机交换法〔RAND〕 这种方法是在cache中恣意选一块交换该方法没有考虑程序运转的历史记录,因此效果不太好 ⑵ 先进先出〔FIFO〕算法 它把最先调入的块作为被交换对象,故每页均保管一个装入 顺序数优点是实现简单,但命中率不高 ⑶ 最近最少运用法〔LRU〕算法 此法基于这样一种假设,即最近最少运用的块未来被使用的概率也很小,故在交换时总是选择在cache中最近很少运用的块这种算法思索了程序的运转特性,但这种算法要求提供每一块的运用频度,并且交换时要做大量比较,以找出最少运用的块,因此实现复杂,速度较慢 ⑷ 最久没有运用〔LFU〕算法 这是LRU算法的一个变种,它和LRU算法根本一样,但选择曾经有最长时间不运用的块进展交换。
因此,它把比较数值的大小变为有和无的判别,因此运算速度快,是目前常用的算法 6、 cache的一致性问题 cache中保管的信息实践上是主存的一小部分的副本由于cache的命中率很高,所以CPU大部分时间实践上直接访问cache而不是访问主存这就有一个主存和cache的内容一致性的问题主要有两个缘由会导致主存和cache内容的不一致:一是改动了cache的内容,而主存没有改动;二是输入输出设备或其他主控部件改动了主存内容,而cache的内容没有随之改动 对于前一个缘由,常用的处理方法是写直达法和写回法两种 ⑴ 写直达〔Write Through〕法:这种方法是在写入cache的同时也写入主存它的优点是可以一直保证CPU操作时主存和cache内容的一致性但缺陷是这势必会呵斥CPU访存速度的降低 ⑵ 写回〔Write Back〕法:在CPU写入cache时,主存并不更新,而是在cache中加以标志当该页被从cache中淘汰时,再把该页全部写回主存而只读或没有被更矫正的cache页面那么无需写回操作 至于第二个缘由呵斥的cache和主存不一致,有“共享数据不放入cache〞、 “共享cache〞、“播写法〞等多种处理方法,这里就不再引见了。
二、虚拟存储器 1、虚拟存储器的根本概念 ⑴ 主存-辅存层次 主存普通由半导体器件构成,辅存普通为磁存储器和光存储器主存的速度远高于辅存,但辅存本钱低,容量大,而且断电后信息不会丧失 CPU不能直接访问辅存,辅存主要用于存放大量程序、数据文件当CPU执行某程序时,在存储管理软件和有关硬件的支持下,把有关程序从辅存调入主存,再由CPU执行,这样便构成了主-辅存的存储层次 ⑵ 虚拟存储器的概念 一台计算机主存容量有限,而辅存容量很大,假设一个程序及数据要比主存容量大,就无法运转为处理这类问题,采用了硬件和软件的综合技术 —虚拟存储器 虚拟存储器是将主存和辅存的地址空间一致编址,构成一个庞大的存储空间,如图9.33所示程序运转时,允许存放在虚拟存储器中的数据或程序只需一部分调入主存,CPU以虚拟地址访问主存,由硬件和软件找出虚地址和物理地址的对应关系,判断这个虚地址指示的单元内容能否已装入主存假设在主存,CPU直接执行已在主存的程序;假设不在主存,便由 存储管理软件和相应的硬件把要访问的程序块从辅存调入主存,并把程序虚地址变为实地址后运转。
这种调度是以程序块为单位进展的 ⑶ 实地址和虚地址 用户编制程序时运用的地址称为虚地址或逻辑地址,其对应的存储空间称为虚存空间或逻辑地址空间;而计算机物理内存的访问地址那么称为实地址或物理地址,其对应的存储空间称为物理存储空间或主存空间程序进展虚地址到实地址转换的过程称为程序的再定位 为了地址映象方便,实地址和虚地址通常是分页或分段的:实地址有实页号p和主存页内地址d组成;而虚地址那么由用户号U、虚页号P和虚存页内地址D构成〔通常D=d〕,如图9.34所示 2、 虚拟存储器的任务原理 虚存空间的用户程序按照虚地址编程并存放在辅存中程序运转时,由地址变换机构根据当时分配给该程序的实地址空间把程序的一部分调入实存每次访问时,首先判别该虚地址所对应的部分能否在实存中:假设是,那么进展地址变换并用实地址访问主存;否那么,按照某种算法将辅存中的部分程序调度进主存,再按同样的方法访问主存对运用程序而言,假设主存的命中率很高,虚存的访问时间就接近于主存访问时间虚拟存储系统的任务过程如下: ① 每个程序运转时只把用户当前运用的假设干页调入内存,并建立页表; ② 调入后的再定位过程中,在页表中建立用户虚页和实页之间的对应关系; ③ 程序运转时,根据用户虚页号查页表,假设命中那么由查到的实页号和页内地址得到物理地址并访问主存; ④ 假设查不到相应的实页〔不命中〕,那么应从外存调页:假设内存有空页,那么直接调入;假设没有空页,那么用某种算法 交换原有的页; ⑤ 访问外存,应把虚地址变换为辅存地址,也就是将虚页号变为外存所对应的磁道号和扇区号。
虚拟存储器要处理的关键问题是: ① 调度问题:决议哪些程序和数据应被调入主存 ② 地址映象问题:在访问主存时把虚地址变为主存物理地址,在访问辅存时把虚地址变成辅存的物理地址前者称为内地址变换,后者称为外地址变换 ③ 交换问题:决议哪些程序和数据应被调出主存3、虚拟存储器的地址变换 目前运用的地址变换方式有页式、段式和段页式虚存地址变换三种 ⑴ 页式虚拟存储器 把主存和辅存都划分成等长的页,页的大小普通是固定 的CPU访问主存时送出的是虚地址,判别该地址的内容能否在主存,假设不在,那么将所在页的内容从辅存调入主存后才执行;假设在主存中,那么找出该存储内容在主存中哪一页,即对应的实页号 程序中的逻辑地址由基号、虚页号和页内地址三部分组成,实践地址分为页号和页内地址两部分,地址映象机构将虚页号转换成实页号基号是操作系统给每个程序产生的附加地址字段,以便于区分不同程序的地址空间 在任一时辰,每个虚地址都对应一个实地址,这个实地址能够在内存中,也能够在外存中为此要建立一张虚地址页 号与实地址页号的对照表,称为页表页表记录虚页调 入主存时安排在主存中的位置,是由存储 管理软件自动建立的。
页表是虚拟页号〔或称为逻辑页号〕与物理页号的映象表在地址映象时,首先根据基号找到页基址表,该表中每一行代表一个运转程序的页表信息,包括页表起始地址和页表长度如图9.35所示,根据页基址表找到页表的起始地址;然后用虚页号从页表中查找实页号,同时判别该页能否装入内存假设该页已装入内存,那么从页表中取出实页号,与页内地址一同构成物理地址 例1:如图9.36所示,程序有4个页面组成,第0页映象到内存第2页,第1页映象到内存第6页,第2页映象到内存的度7页,第3页映象到外存试画出地址映象方式图 解:页地址映象机构包括一个页基址表和页表 如图9.35所示,根据基号找到页基址表,从中找到页表的起始地址,页表中4项分别对应程序地址空间的4页装入位为1表示该页已装入页表最后一行的装入位为0表示该页未装入主存,该页的主存页字段无效 假设装入位为0表示该页未装入主存,就从外存中调页普通先经过查外页表,将虚拟地址变换为外存中的实际地址,然后经过输入输出接口调入内存 页式管理在存储空间很大时,由于页表过大,任务效率将降低当页面数量很多时,页表本身占用的存储空间将很大,此时对页表能够又要分页管理了。
为此人们提出了段式虚拟存储器的概念 ⑵ 段式虚拟存储器 这种存储器把主存和虚存分生长度可变的段,普通按程序的逻辑构造分段段作为独立的逻辑单位可以被其他程序段调用每个程序均经过段表完成虚地址和实地址之间的变换 在段式虚拟存储器中,程序中的逻辑地址有基号、段号和段内地址三部分组成如图9.37所示,首先由基号找到相应的段基址表,从中得到段表的起始地址,然后用段号查找该段在内存中的起始地址,同时判别该段能否在内存假设该段已装入内存,那么从段表中取出段起始地址,与段内地址相加构成被访问的物理地址否那么,由操作系统控制,首先在外存中找到这个段,然后决议将这个段装入到什麽地方段表中内容包括段起点、装入位和段长等段起点是指该段在主存中的起始位置;装入位是表示该段能否已装入主存;段长是该段的长度;段表中还可包括访问方式字段,如只读、可写和只能执行等 段式管理的优点是管理简单、段表占用存储器空间较 少缺陷是整个段必需一同调入或调出,这使得段长不能大于内存容量 ⑶ 段页式虚拟存储器 段页式虚拟存储器是段式和页式的组合它将存储空间按逻辑模块分成段,每段又分成假设干页,页的大小普通也是固定的。
这种访问是经过一个段表和假设干个页表进展段的长度必需是页的整数倍,段的起点必需是某一页的起点在段页式虚拟存储器中,虚拟地址分为基号、段号、页号和页内地址四个字段,如图9.38所示 进展地址映象时,首先根据基号查找段基址表,从表中查出段表的起始地址,然后用段号从段表中查找该段的页表起始地址,然后再根据段内页号在页表中查找该页在内存中的起始地址,即实页号,同时判别该页能否已装入,假设该页已装入,那么从页表中取出实页号,与页内地址一起拼接成要访问的物理地址 段页管理需求两次查表,即段表和页表每个运转程序经过一个段表和相应的一组页表来建立虚拟地址和物理地址的映象关系段表中的每一项对应一个段,其中的装入位表示该段的页表能否已装入主存假设已装入主存,那么地址项指出该段的页表在主存中的起始地址,段长项指示该段页表的行数页表中包括的装入位指示该页是否已装入主存,还有访问方式等4、80X86微机系统中的虚拟存储技术 80X86微机有三种任务方式:实地址方式、虚地址维护方式和虚拟8086方式 实地址方式下,运用低20位地址线,寻址空间1MB 虚地址维护方式下,80286采用段式虚拟存储技术;80386以上微机采用段页式虚拟存储技术,虚拟地址〔逻辑地址〕经过分段部件变换为线性地址,再由分页部件将线性地址变换为物理地址。
所以段页式虚拟存储器有三种地址空间:虚拟地址空间、线性地址空间和物理地址空间有关段页式的地址变换将在第11章中详述三、磁盘高速缓存区〔磁盘Cache〕和虚拟磁盘技术 1、运用扩展内存作为磁盘高速缓存区 为了加快对辅存〔硬盘〕的访问速度,通常建立磁盘高速缓存区〔磁盘Cache )所谓磁盘高速缓存区就是用DOS提供的工具在扩展内存中划出一块作为磁盘读写数据的缓冲区,其作用原理和主机板上的cache类似 根据程序部分性原理,程序对磁盘中数据的读写有较大约率可以直接访问磁盘cache,而不用访问低速的硬盘,从而大大减少对硬盘的访问时间 DOS提供磁盘cache的安装程序是SMARTDRV.EXE,格式为: smartdrv [Drive] [InitCacheSize [WinCacheSize]] …其中: Drive是建立磁盘缓冲区的磁盘名 InitCacheSize是cache区的大小 WinCacheSize是Windows设置的cache区的大小例如:C:\DOS\smartdrv C+ D 4096 512 表示设置C盘读写缓存,D盘仅为读缓存,缓存大小为4MB,Windows设置的cache区为512KB留意此命令必需在CONFIG.SYS中装入HIMEM.SYS。
这里C后面的+号表示可读写,假设用-号表示封锁该磁盘的缓存 ,假设不加符号表示为只读缓存 2、用扩展内存建立虚拟磁盘〔RAM盘〕 用DOS工具在内存中划出一块区域作为磁盘用,运用方法与磁盘一样,也有盘符,所以虚拟磁盘是主存的一部分由于虚拟磁盘实践上就是存储器,防止了机械动作,速度快但缺陷是只需封锁电源,虚拟盘中的信息象存储器那样会丧失所以虚拟盘常用于保管一些运转中的暂时创建的文件 DOS中提供RAMDRIVE.SYS驱动程序来设置虚拟盘,格式为: DEVICE=C:\DOS\RAMDRIVE.SYS [SIZE] [SECTOR] [FILE]/盘符其中: SIZE是虚拟盘的大小,缺省值为64KB SECTOR是虚拟盘每个扇区的大小,缺省值为512字节 FILE是虚拟盘所能包容文件的最大数目 /盘符是虚拟盘的盘符,跟在系统逻辑盘的后面 例如:系统原来有A、B、C、D、E盘,其中E盘是光盘,那么/E表示E盘是虚拟盘,而光盘变成F盘 例如:DEVICEHIGH=C:\DOS\RAMDRIVE.SYS 2048/E表示把RAMDRIVE.SYS 装入高端内存,2048指建立2MB的虚拟盘,盘符为 E。
该命令必需放在CONFIG.SYS文件中,且在加载HIMEM.SYS和DOS=HIGH语句后面 可在AUTOEXEC.BAT中用SET命令设置TEMP变量,如 : SET TEMP = E:\ ,告知虚拟盘E处存放暂时文件。
