第五章存储系统.docx
《第五章存储系统.docx》由会员分享,可在线阅读,更多相关《第五章存储系统.docx(14页珍藏版)》请在冰豆网上搜索。
第五章存储系统
第五章存储系统
一、教学内容
1.半导体存储器
2.系统内存扩充
3.高速缓冲存储器
4.虚拟存储器
5.PC系列机中的主存储器
二、要求明白得和把握存储器的组成原理及用途、存储器的种类及其性能指标、从逻辑地址——线性地址——物理地址的转换原理及进程。
三、重点把握存储器与CPU的(三总线的连接)接口、存储器的读写时序和存储器的读写操作原理。
四、难点在于对内存储器治理的原理、概念的明白得。
五、本章分为3讲,每讲2学时。
第一讲
存储器是用来寄存程序和数据,是冯诺依曼结构运算机的重要组成部份。
存储器系统的设计目标:
尽可能快的存取速度;
尽可能大的存储容量;
尽可能低的单位本钱(价钱/位);
三级存储体系结构:
内存(主存储器或主存)/外存(辅助存储器或辅存)
1)主存(内存)
要紧寄存CPU当前要利用的程序和数据。
2)辅存(外存)
寄存大量的后备程序和数据。
3)高速缓存(Cache)
寄存CPU在当前一段时刻内多次利用的程序和数据。
1.半导体存储器
1)存储器的分类
①按存储介质分类
半导体存储器/磁存储器/光存储器
②按存储器的存取方式分类
只读存储器/随机存取存储器/顺序存取存储器/直接存取存储器
③按存储信息的可保留性分类
易失性存储器/非易失性存储器
2)存储器的要紧性能指标
微型运算机系统存储器的性能指标很多,如存储容量、存取速度、存储器的靠得住性、功耗、价钱、性能价钱比及电源种类等,最重要的性能指标是存储容量和存取速度。
①存储器容量
是指一块存储器芯片所能存储的二进制总位数。
经常使用字节数或单元数×位数两种方式来描述。
Ø字节数
假设主存按字节编址,即每一个存储单元有8位。
1KB=1024B1MB=1KB×1KB=1024×1024B
Ø单元数×位数
假设主存按字编址,即每一个存储单元寄存一个字,字长超过8位。
例如:
机械字长32位,其存储容量为4MB,假设按字编址,那么它的存储容量可表示为1MW。
②存取时刻
Ø存取时刻(访问时刻):
是指从启动一次存储器操作到完成该操作所经历的时刻。
Ø存取周期:
又称读写周期或访问周期,持续启动两次独立的存储器操作所需的最短时刻距离。
3)半导体存储器
4)随机存取存储器RAM
①静态RAM(SRAM)
ØSRAM:
依托双稳态电路内部交叉反馈的机制存储信息。
Ø特点:
✧不断电信息能够长时刻保留,不需要刷新,外围电路简单。
✧功耗大,速度快。
作Cache
ØSRAM的大体存储电路
ØSRAM的结构
✧存储体:
用来存储信息,它由静态MOS存储元组成,采纳二维矩阵的连接方式。
假定X方向有M根选择线,Y方向有N根选择线,那么存储矩阵为M×N,在每一个X、Y选择线的交叉点有一个存储元。
✧地址译码器:
作用是依照输入的地址选择所要访问的存储单元。
设计方案有两种:
单译码、双译码。
Ø典型SRAM芯片
②动态RAM(DRAM)
Ø单管DRAM大体存储电路
ØDRAM的刷新方式
周期性地对动态存储器进行读出、放大、再写回
Ø典型DRAM芯片
2.系统内存扩充
在微型运算机中,CPU对存储器进行读/写操作,第一要由地址总线给出地址信号,然后要发出存储器读/写操纵信号,最后才能在数据总线上进行信息互换。
因此,存储器与CPU的连接,主若是地址线的连接、数据线的连接和存储器读或写操纵线的连接。
地址线与存储单元间的关系是:
存储单元=2X(x为地址线数)
即每增加1根地址线,其中所含的存储单元数就在原基础上翻一倍。
1)位扩展(扩展字长)
对字长进行扩充(当所用存储芯片中每一个单元的位数小于CPU字长时,就采纳位扩展)。
方式:
将各芯片地址端、读写操纵端、片选信号端(CS)并联,数据端别离引出。
例:
用64k×1位芯片组成64k×8位的存储器。
解:
假定CPU的字长为8位,那么需要8片64k×1位芯片并联利用。
有64k个存储单元,需地址线16根,A15-A0。
2)字扩展(当位知足,而字不够时)
当所用存储芯片中每一个单元的位数与CPU相同时,若是所要求的存储容量大于一片芯片的存储容量,就采纳字扩展法。
方式:
各芯片地址线、数据线、读写操纵线并联,扩展后的地址端通过译码器电路接各芯片CS端。
例:
用16k×8位芯片组成64k×8位的存储器。
解:
假定CPU的字长为8位。
一片16k×8位芯片,有地址线14根,A13-A0为片内地址。
组成64k×8位的存储器,地址线16根,即A15-A0,需16k×8位芯片4片。
扩展的地址线A15-A14与2-4译码器的两个输入端相连,输出端与4个芯片的cs信号端相连。
3)字、位扩展
第二讲高速缓冲存储器(Cache)
cache是介于CPU和主存之间的小容量存储器,存取速度比主存快。
它能高速地向CPU提供指令和数据,加速程序的执行速度。
它是为了解决CPU和主存之间速度不匹配而采纳的一项重要技术。
1.cache的功能
CPU主存之间的数据传输都必需通过Cache操纵器,Cache操纵器以后自CPU的数据读写请求,转向Cache存储器,若是数据在Cache中,那么CPU对Cache进行操作,称为一次命中。
命中时,CPU从Cache中读写数据,那么CPU与Cache达到同步。
假设数据不在Cache中,那么CPU对主存操作,称为一次失败。
失败时,CPU必需在其机械周期中插入等待周期。
2.利用cache的必要性
指令是顺序执行的,即执行完当前指令后,紧接着执行存储地址相邻的下一条指令。
因此指令地址的散布是持续的。
碰到转移或挪用指令,在完成转移和挪用后,又进入顺序执行方式。
指令地址持续散布的特点,加上循环程序段和子程序段的重复执行,对这些地址的访问自然具有时刻上集中散布的偏向。
3.利用Cache的可行性
对大量的典型程序的运行情形分析结果说明,在一个较短的时刻内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。
这种对局部范围内的存储器地址频繁访问,而对范围之外的地址访问甚少的现象称为程序访问的局部性。
一样,数据访问也存在局部性。
依照程序的局部性原理,在主存和CPU之间设置Cache,把正在执行的指令地址周围的一部份指令和数据从主存转入Cache中,供CPU在一段时刻内利用,是完全可行的。
4.Cache的工作进程
在存储系统的层次结构中引入Cache是为了解决CPU与主存之间的速度不同,提高CPU工作效率。
Cache是缓冲接口技术在存储体系中的一个具体应用。
Cache中寄存着主存内容的一部份副本。
80486芯片内部的一级Cache寄存着数据和指令的混合体(即统一的读/写存储空间)。
Pentium机芯片内的Cache那么采纳哈佛结构,即指令和数据别离存储在各自的独立空间里。
当CPU读取指令或数据时,第一访问Cache,假设有关信息已在Cache中,称为读命中,可直接从Cache中取用。
假设不命中,那么从主存中掏出,同时掏出与该指令或数据地址相邻假设干单元内容(称为一页)写入Cache。
由于局部访问原理的存在,CPU下次访问Cache时,就会命中。
严格来讲,命中并非指所需要的具体指令或数据已在Cache中,而是指寄存它们的存储器单元地址已在Cache中,CPU按地址去获取信息。
主存向Cache发送页面内容时,将原有的地址信息也一并输入,通俗地说,对CPU而言Cache无独立的总线地址、无固定的总线地址。
当CPU向Cache写入数据内容时,有几种不同的方式。
1)遍写
CPU访问命中时将内容同时写入Cache和主存,这关于多个处置器共用一个主存时,数据及时共享提供了方便。
2)回写
CPU访问命中时将内容只写入Cache,在规定的时候(如调出Cache)将修悔改的内容写入主存。
它的益处是运算中间的结果可只写入Cache,方便CPU调度更改,只有最后结果才写入内存,减少了没必要要的操作。
目前Pentium机多采纳此种方式。
3)写未命中时,直接写主存
在读未命中时,需调入被访问单元所在的新页主存副本。
当Cache存储空间有空闲时,可直接调入;当Cache已满时,需要依照必然的调度方式先将其中一页(块)调出Cache后,再调入。
从80486芯片起,开始采纳了LRU(最近最少利用)算法自动更新,即最近利用过的指令和数据保留,而长期未用到的被自动替换出去。
为进一步提高CPU访问Cache的命中率,可适当加大Cache容量,进一步改善程序和数据结构,增强预测判定和采纳更好的优化调度算法等。
在两级Cache中,页(块)大小不同,显然两级Cache一次调度单元数量多,而且其页多,容量大。
两级Cache间及Cache与主存的调度算法和读/写操作,全由辅助硬件完成,速度快。
5.主存与cache的地址映射
cache的容量很小,它保留的内容只是主存内容的一个子集,且cache与主存的数据互换是以块为单位。
地址映射即是应用某种方式把主存地址定位到cache中。
地址映射方式有全相联方式、直接方式和组相联方式三种。
1)直接映射方式
Ø是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。
Øcache的行号i和主存的块号j有如下函数关系:
i=jmodm(m为cache中的总行数)
Ø直接映射方式的优势是硬件简单,本钱低。
Ø缺点是每一个主存块只有一个固定的行位置可寄存,容易产生冲突。
因此适合大容量cache采纳。
2)全相联映射方式
Ø主存中一个块的地址与块的内容一路存于cache的行中,其中块地址存于cache行的标记部份中。
Ø这种方式可使主存的一个块直接拷贝到cache中的任意一行上,超级灵活。
Ø它的要紧缺点是比较器电路难于设计和实现,因此只适合于小容量cache采纳。
3)组相联映射方式
Ø这种方式是前两种方式的折衷方案。
这种方式将存储空间分成假设干组,各组之间为直接映射,而组内各块之间那么为全相联影射。
Ø它将cache分成u组,每组v行,主存块寄存到哪个组是固定的,至于存到该组哪一行是灵活的,即有如下函数关系:
m=u×v、组号 q=jmodu
Ø组相联映射方式中的每组行数v一样取值较小,这种规模的v路比较器容易设计和实现。
而块在组中的排放又有必然的灵活性,冲突减少。
第三讲
1.虚拟存储器
1)虚拟存储器概述
程序和数据最初都寄存在某个大容量的辅存中(例如硬盘),当需要时才把他们从辅存中传到内存中去,然后执行。
有时,一个程序及数据要比主存的容量还大,这就无法运行。
为解决这种问题,采纳硬件和软件的综合技术——虚拟存储器(VirtualMemory)。
它将主存和辅存的地址空间统一编址,形成一个庞大的存储空间。
程序运行时,许诺存在虚拟存储器中的数据或程序只有一部份调入主存,CPU以虚地址访问主存,那么硬件和软件找出虚地址和物理地址的对应关系,判定那个虚地址指示的存储单元内容是不是已装入内存。
若是在主存,CPU就直接执行程序块从辅存调入主存,并把程序虚地址变成实地址,覆盖原先存在的一部份程序后继续运行。
这种调度是以程序块为单元进行的。
虚拟存储器许诺用户把主存、辅存视为一个统一的虚拟内存。
用户能够对海量辅存中的存储内容按统一的虚地址编排,在程序中利用虚地址。
当程序运行,CPU访问虚地址内容时,发觉已存于主存中(命中),可直接利用;假设发觉未在主存中(未命中),那么仍需调入主存,并存在适当空间,有了实址后,CPU能够真正访问利用。
上述进程虽未改变主存,辅存的地位、性质,但最重要程序的调度工作由运算机系统的硬件和软件(操作系统)统一治理,自动进行,辅存相对用户是透明的,大大方便了用户。
2)虚拟存储器与Cache对照
ØCache弥补主存与CPU间的速度差距,虚存弥补主存与辅存间的容量差距。
Ø CPU能够直接访问Cache,但不能直接访问辅存
Ø 每次信息块调动时,Cache小块定长,虚存分页或分段大块调动。
Ø Cache由硬件治理实现,虚存由软硬件综合治理
3)实地址和虚地址
物理地址(实地址即主存地址):
由CPU地址引脚送出,用于访问主存的地址。
虚拟地址(逻辑地址):
由编译程序生成的,是程序的逻辑地址,其地址空间的大小受到辅助存储器容量的限制。
4)程序局部性原理
主存-外存层次和cache-主存层次用的地址变换映射方式和替换策略是相同的,都基于程序局部性原理。
它们遵循的原那么是:
①把程序中最近经常使用的部份驻留在高速的存储器中。
②一旦这部份变得不经常使用了,把它们送回到低速的存储器中。
③这种换入换出是由硬件或操作系统完成的,对用户是透明的。
④力图使存储系统的性能接近高速存储器,价钱接近低速存储器。
2.PC系列机中的主存储器
1)PC系列机中主存的大体情形
PC系列机不断进展,其主存容量、速度和利用器件等方面常常有所转变,但当前利用的多种PC机,仍有一些一起的特点:
Ø主存采纳动态RAM,Cache采纳静态RAM。
Ø作为通用微型运算机,主存仅有少量的ROM(约几十KB),留有必然的用户ROM空间,大量的是RAM器件,供多用户多任务利用。
2)特殊存储器
①显示存储器(VRAM)
显示卡上都设有一块与屏幕显示位置对应的存储区,称为显示缓存VRAM,它事实上是一块动态随机存取存储器DRAM,用来寄存当前屏幕显示的数据。
也确实是说,显示缓存中某一地址的数据,决定了当前屏幕上某一点的色彩属性。
因此,显示存储器的容量决定了最大显示分辨率及显示深度。
显存容量的大小决定着显存临时存储数据的能力,在必然程度上也会阻碍显卡的性能。
显存容量也是随着显卡的进展而慢慢增大的,而且有愈来愈增大的趋势。
显存容量从初期的512KB、1MB、2MB等极小容量,进展到8MB、12MB、16MB、32MB、64MB、128MB,一直到目前主流的256MB、512MB和高级显卡的1024MB,某些专业显卡乃至已经具有2GB的显存。
② CMOSRAM
CMOSRAM采纳CMOS工艺制成,功耗很少。
在断电后,它由电容电池(或钮扣电池)等供电,维持内存信息。
开机后,由CPU读取以明确硬件环境,便于正常工作。
由于CMOSRAM可读可写,在开机后由启动设置程序(SETUP)等软件支持,选择或改变系统配置参数。
若是显现由于某种缘故引发CMOSRAM内容犯错,造成主机无法正常启动时,可在断电后,短接电容电池,使其放电,清除CMOSRAM内容,以后利用专门软盘启动后再重写CMOSRAM内容。
注意:
CMOSRAM不占用内存空间地址,而具体操作时被作为I/O接口处置。
③ROMBIOS
ROMBIOS用于寄存大体的输入/输出系统程序,是操作系统驻留在内存中的最大体部份,其要紧用于:
Ø开机后的自检。
检测对象涉及运算机系统的各要紧功能部件,包括CPU、ROM、RAM、系统接口电路和键盘,软、硬磁盘等外设。
Ø读取CMOSSRAM中的设备配置,确信硬件运行环境。
Ø系统引导、启动。
Ø大体的输入/输出操纵程序。
Ø存储一些重要的数据参数。
Ø部份机械还含有硬化的部份操作系统。
④CMOS与BIOS的区别
CMOS是互补金属氧化物半导体的缩写。
其本意是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片。
在那个地址一般是指微机主板上的一块可读写的RAM芯片。
它存储了微机系统的实时钟信息和硬件配置信息等,共计128个字节。
系统在加电引导机械时,要读取CMOS信息,用来初始化机械各个部件的状态。
它靠系统电源和后备电池来供电,系统掉电后其信息可不能丢失。
BIOS是大体输入输出系统的缩写,指集成在主板上的一个ROM芯片,其中保留了微机系统最重要的大体输入输出程序、系统开机自检程序等。
它负责开机时,对系统各项硬件进行初始化设置和测试,以保证系统能够正常工作。
由于CMOS与BIOS都跟微机系统设置紧密相关,因此才有CMOS设置和BIOS设置的说法。
CMOSRAM是系统参数寄存的地址,而BIOS中系统设置程序是完成参数设置的手腕。
因此,准确的说法应是通过BIOS设置程序对CMOS参数进行设置。
此刻的厂商把CMOS程序做到了BIOS芯片中,当开机时就可按特定键进入CMOS设置程序对系统进行设置。
因此又被人们叫做BIOS设置。