计算机组成原理第讲虚拟存储器_第1页
计算机组成原理第讲虚拟存储器_第2页
计算机组成原理第讲虚拟存储器_第3页
计算机组成原理第讲虚拟存储器_第4页
计算机组成原理第讲虚拟存储器_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理第讲虚拟存储器实验课题3控制器部件设计实验内容:

按照题目要求设计计算机控制器各主要部件的逻辑,决定外部的端口(名称、有效电平)和内部各元件的连接,画出系统框图和逻辑图,设计仿真数据,用VHDL编程和仿真。

一、主要元件设计

1.程序计数器功能要求:8位二进制计数器,同步并行置数,同步复位(清零),三态输出。提示:注意程序计数器的“加一”功能。

2.数据寄存器功能要求:8位,同步并行置数,双向三态输出。

3.地址寄存器功能要求:8位,同步并行置数,三态输出。(2学时)第2页,共33页,2024年2月25日,星期天实验课题3控制器部件设计实验内容:

一、主要元件设计

4.指令寄存器功能要求:8位,同步并行置数。

5.指令译码器功能要求:3-8译码器。

二、仿真设计仿真波形数据,要考虑到所有可能的情况。在实验报告中必须清楚说明仿真波形数据是怎样设计的。第3页,共33页,2024年2月25日,星期天第7章存储系统(3)Chapter7StorageSystemVirtualmemoryisacomputersystemtechniquewhichgivesanapplicationprogramtheimpressionthatithascontiguousworkingmemory,whileinfactitmaybephysicallyfragmentedandmayevenoverflowontodiskstorage.Systemsthatusethistechniquemakeprogrammingoflargeapplicationseasieranduserealphysicalmemory(e.g.RAM)moreefficientlythanthosewithoutvirtualmemory.第4页,共33页,2024年2月25日,星期天

虚拟存储器指的是“主存-辅存”层次。它能使该层次具有辅存的容量,接近于主存的等效速度和辅存的每位成本。它使得程序员可以按比主存大得多的虚存空间编制程序。

对于大的程序,可以先分配少数几个页面,将该程序的一部分装入主存。在运行中间,发生缺页时再按需陆续调入。只要主存容量大于某个最小值,不论机器配备多大容量的主存,程序可不必作任何修改照样能运行。主存实际容量的大小会影响系统工作的效率和解题速度。

虚拟存储系统的设计目标是:设法获得主存储器的最佳使用,形成一个高性能、低价格的大容量存储器。虚拟存储器的管理方法有:页式、段式和段页式。§7.3虚拟存储器(VirtualMemory)第5页,共33页,2024年2月25日,星期天

虚拟存储器的地址映象(或称定位算法)是指每个虚页按什么规则(算法)装入(定位于)实存,地址变换是指程序按照映象关系装入实存后,在程序运行时虚地址如何变换成对应的实存地址。

当处理机发出访存地址时,首先进行虚地址到主存实地址的映象变换,如果出现页故障,再进行虚地址到辅存实地址的映象变换。

虚地址到主存实地址的地址映射变换有:直接映射,相联映射,组相联映射,段相联映射等。

虚拟存储器和Cache-主存层次的管理原则基本相同。把程序中常用的页(块)驻留在较高速的存储器中。一旦某页变的不常用了,则把它替换出去。第6页,共33页,2024年2月25日,星期天

当CPU访问主存不命中时,必须从辅存把包含这个字的1个数据块传送到主存,然后,CPU才能在主存中访问到这个字。若传送该数据块的时间为TB,TA2=TB+TM则“主存-辅存”层次的平均访问时间TA=H·TA1+(1—H)·TA2=H·TM+(1—H)·(TB+TM)

=TM+(1—H)·TBEmbeddedsystemsandotherspecial-purposecomputersystemswhichrequireveryfast,veryconsistentresponsetimedonotgenerallyusevirtualmemory.第7页,共33页,2024年2月25日,星期天Almostallimplementationsofvirtualmemorydividethevirtualaddressspaceofanapplicationprogramintopages;Apageisablockofcontiguousvirtualmemoryaddresses.页式虚拟存储器(Pagedvirtualmemory

页式虚拟存储器把虚存空间分成页,实存空间也分成同样大小的页,称为实页和物理页,虚存的页面称为虚页或逻辑页。

虚存空间划分成个页面,每个页面容量为个存储单元。实存只有个页面。<<页面大小一般为1k字~8K字。

程序员按虚存空间编制程序。虚地址是逻辑地址,由虚页号及页内地址组成,必须经过地址变换得到主存/辅存实地址。页的划分是机械的,与程序结构和大小无关。第8页,共33页,2024年2月25日,星期天

程序在装入主存前由操作系统分配页面。如果分配的页面比程序需要的少,就先装入一部分,其他部分在需要的时候再装入。

虚存地址到主存实地址的映象变换是由页表实现的。页表应该在主存中,这样每次访存都要加上一次访存查页表PageTable。Almostallimplementationsusepagetablestotranslatethevirtualaddressesseenbytheapplicationprogramintophysicaladdresses(alsoreferredtoas"realaddresses")usedbythehardwaretoprocessinstructions.Eachentryinapagetablecontainsthestartingvirtualaddressoftheeithertherealmemoryaddressatwhichthepageisactuallystored,oranindicatorthatthepageiscurrentlyheldinadiskfile.若采用全相联映象,任何虚页能映射到实存任何页面位置。第9页,共33页,2024年2月25日,星期天在实存的RAM中有一个页表,页表共有行,每行对应一个虚页。页表中有每个虚页是否装入主存的标志(装入位)和主存实页号。CPU访存时,首先做虚地址到主存实地址的地址变换—查页表。虚页号页内地址实页号00112……3装入位4实存地址虚地址页表命中若该行的装入位为1,则该页在实存中,对应的实页面地址在该行中。将与拼接,得到实存地址。

若该行的装入位为0,则需从辅存调入。(页故障)用Nv在页表中选中一行。第10页,共33页,2024年2月25日,星期天页表的容量为。每行字节,实存页面。实存容量16MB,按字节编址,虚存空间1024M,页容量1KB。虚存页面,页表有行,

为位。1M16K1M22MB虚页号页内地址实页号0

0112……3装入位4实存地址虚地址页表命中例如,14全相联映象的优点是实页冲突概率最小。第11页,共33页,2024年2月25日,星期天每个虚页只能映射到实存一个特定页面。直接映象的页式虚拟存储器ndNrnvnrnpNs01

个单元页表页面失效相等nv比较地址页表中存放的是。用做地址去查表。将页表中对应的读出与

中的比较。如果相符,表示该虚页已在实存中。将虚地址中的和作为实地址。否则,页面失效。实页冲突概率高,实存利用率低。第12页,共33页,2024年2月25日,星期天将实存空间和虚存空间都分成组,每组K=2S页。组相联映象的页式虚拟存储器K值越大,实页冲突概率越低。实存共个页,分成组,整个实存是一区。虚存分成与实存同样大小的区。Nv区号nd页内地址NrNs组内页号S`组号q`nvnp页内地址nr组内页号S组号q当K=时是全相联。当K=1时是直接映象。第13页,共33页,2024年2月25日,星期天组相联映象的页式虚拟存储器第0组第1组010213465723012302134657810911121413150组1组0组1组第0区第1区实存虚存组相联的目录表有2q组,每组2S行。表的总容量行。实存共个页,分成组,整个实存是一区。虚存分成与实存同样大小的区。第14页,共33页,2024年2月25日,星期天组相联映象的页式虚拟存储器目录表相等相联比较ndNrS`q`nrSqSndS`不等地址变换过程:先用虚地址中的q`按地址访问,在2q组中选出一组。对该组再用(Tag)在2S行中进行相联查找。如果在2S行中查不到相符的,则表示该虚页不在实存中。如果查到,则将表中相应的S与q`拼接,就是实地址。第15页,共33页,2024年2月25日,星期天页表也构成表层次。

因为整个页表是连续存储的。当一个页表的大小超过一个页面的大小时,页表就可能分成若干页,分存于几个不连续的页面中。

这些页表的起始地址又放在一个新的页表(页表的表)中,形成二级页表层次。通常把第一级页表驻留在主存中。第二级页表只有一部分在主存中,大部分可保存在辅存,需要时再调入。Systemscanhaveonepagetableforthewholesystemoraseparatepagetableforeachapplication.第16页,共33页,2024年2月25日,星期天段式虚拟存储器(Segmentation)

段式虚拟存储器是把一个程序分成多个在逻辑上形成整体、相互独立或基本独立,而且可清楚定义的模块。如:子程序,过程,数据表,等。这些模块的大小可以是不同的,甚至预先不知道。令每个模块是一个段Segment,都从该段的起点开始编址。如;代码段、堆栈段、数据段、等。Usingsegmentation,anapplication'svirtualaddressspaceisdividedintovariable-lengthsegments.Avirtualaddressconsistsofasegmentnumberandanoffsetwithinthesegment.第17页,共33页,2024年2月25日,星期天

由于各段是按其逻辑特点组合的,容易以段为单位实现存储保护。段的分界与程序的自然分界相对应。

段的逻辑独立性使它易于编译、管理、修改和保护,便于多道程序共享已经在主存中的程序和数据。

在调入该段时,由操作系统赋予该段一个基址。由基址和原来在段内的地址相加形成该段每个单元在主存的实地址。

用段表指明各段在主存的位置。每段有自己的名称、段起点、段长等。段表本身也是一个段,一般在主存中。第18页,共33页,2024年2月25日,星期天段页式虚拟存储器

段页式虚拟存储器把程序按逻辑结构分段后,再把每段分成固定大小的页(与实存页面大小相同)。程序对主存的调入调出是按页面进行的。

每道程序通过一个段表和一组页表来进行定位。段表中的每行对应一个段,每行有一个指向该段的页表的起始地址及该段的控制保护信息。

由页表指明该段各页在主存中的位置及是否已装入、已修改等。第19页,共33页,2024年2月25日,星期天

由于采用分页,所以与纯段式的主要区别是段的起点不能是任意的,必须是位于实存中页面的起点。

多道程序(多用户)的每一道(每个用户)有一个基号(用户标志号),可由它指明该道程序的段表起点(在基址寄存器中)。虚地址包括:基号,段号,页号,页内地址。

段页式存储管理,由虚地址向主存实地址的变换至少需2次查表。段表和页表构成表层次。通常设置TLB表加快地址变换。第20页,共33页,2024年2月25日,星期天虚地址到辅存实地址的地址变换

当发生页故障时,必须访问辅存。虚地址实际上也是辅存的逻辑地址,还须经虚存空间到辅存实空间的地址变换。

辅存一般是按信息块编址,而不是按字编址。如果一个块的大小等于一个虚页面的大小,就只需由虚页号Nv变换到NVd即可完成虚地址到辅存实地址的变换。虚页号Nv页内地址Nr磁头号柱面号地址变换(软件实现)外页表装入位辅存地址虚地址块号磁盘机号0NVd101

实际的虚页面可大于信息块,也可小于信息块。

变换采用查外页表的方式。外页表可放在辅存,只在需要查用时才调入主存。第21页,共33页,2024年2月25日,星期天主存已满调入页调入页实页号10在辅存辅存实地址Nvd外部地址变换虚地址→辅存实地址虚地址NvNr内部地址变换虚页号→主存实页号实地址nvnr主存辅存I/O处理机(通道)(DMA)实存页面表页面替换算法主存未满访辅存不在辅存访主存中断页故障装入位被替换页被替换页虚拟存储器工作的全过程第22页,共33页,2024年2月25日,星期天快表与慢表虚拟存储器工作过程有两种地址变换:虚拟存储器的速度,关键是虚地址到主存实地址的变换速度。这个速度如果达不到要求,虚拟存储器就不能被采用。如何从逻辑结构上提高虚地址到主存实地址的变换速度正是系统结构设计的任务。①由虚地址变换成主存实地址,每次访存都得进行一次,要求速度高;②由虚地址到辅存实地址的变换,仅当页面失效时才进行,变换速度可低些。

而替换算法仅在页面失效且主存已满时才用,使用概率更低,速度可更低些。第23页,共33页,2024年2月25日,星期天

由于程序访问局部性的特点,查表时对表内各行的使用有簇聚性。在一段时间里实际上只用到表内很少的几行。因此引入用快速硬件构成的部分“相联目录表”—“快表”。把行的全相联目录表的很少几行装入快表。“快表”只是“慢表”的一个小小的副本。只有在查快表不命中时才从慢表中取实页号。

页表法:页表在主存中,每访问主存一次,得再加一次访存查页表。段页式:仅查表就需要访存2次(一次段表、一次页表)。

内部地址变换是通过查表得到实地址的。不同的表结构,其查表速度不同。第24页,共33页,2024年2月25日,星期天

查表时,由虚页号同时去查快表和慢表。当快表中有此虚页号,就很快找到对应的实页号,并使慢表的查找作废。从而做到虽然采用虚拟存储器但访问主存的速度几乎没有下降。

如果在快表中查不到,就需要一个访问主存的时间查慢表。查到实页号,并将此虚页号和对应的实页号送入快表,替换快表中应移掉的内容。

虚拟存储器只是有了快表才得以真正实用。快表命中率对系统效率影响很大。快表与慢表也构成表层次。快表对系统程序员是透明的。快表容量越大,命中率越高,但相联比较时间长,速度下降。第25页,共33页,2024年2月25日,星期天Pentium处理机的虚拟存储器Pentium处理机的虚拟地址被称为逻辑地址。虚地址长度为48位,由16位段地址和32位位移地址构成。

段地址中有2位用于存储保护,所以,有效的逻辑地址为46位,虚拟地址空间为246。Pentium的存储器结构,根据其段表和页表可以设置成4种组合:①无段表和无页表的存储器(非虚拟存储器)。其逻辑地址就是物理地址。②无段表和有页表的存储器(页式虚拟存储器)。③有段表和无页表的存储器(段式虚拟存储器)。④有段表和有页表的存储器(段页式虚拟存储器)。第26页,共33页,2024年2月25日,星期天逻辑地址(48位)段位移+段表目录位移页线性地址(32位)页表+物理地址当Pentium采用段页式管理时,地址转换机制为:

通过段地址查段表,将表中地址与位移地址相加得到32位线性地址,然后通过页面转换得到物理地址。

页面转换是通过页目录和页表实现的。线性地址由页目录(10位)、页号(10位)和位移地址(12位)组成。页面大小为4KB。Pentium还允许将页面大小设置为4MB。此时页面转换只要查一次页表。第27页,共33页,2024年2月25日,星期天§7.5存储保护

由于多个用户对主存的共享,就有多个用户程序和系统软件存在于主存中。

存储保护主要包括两个方面:存储区域保护和访问方式保护。存储保护都是由硬件实现的。

为了使系统能正常工作,要防止由于一个用户程序出错而破坏其他用户的程序和系统软件,还要防止一个用户程序不合法地访问不是分配给它的主存区域。为此,系统应该提供存储保护。第28页,共33页,2024年2月25日,星期天1.存储区域保护(1)界限寄存器方式

设置上、下界寄存器,为每个程序划定存储区域,禁止越界访问。

上、下界寄存器只有特权指令能访问,用户程序不能改变上、下界的值。

一旦用户程序出错,只能破坏该用户自身的程序,不能侵犯其他用户程序和系统程序。

界限寄存器方式只适用于每个用户占用一个或几个连续的主存区域。

在虚拟存储系统中,由于一个用户程序的各页能够分散在不连续的主存区域,不能用界限寄存器方式保护。通常用页表保护和键保护方式。第29页,共33页,2024年2月25日,星期天(2)页表保护

每个程序都有自己的页表和段表。段表和页表本身都有自己的保护功能。地址出错只能影响到相应的几个主存页面。

如果虚页号出错,超出范围,必然在页表中找不到,访问不了主存,不会侵犯其它程序空间。

温馨提示

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

评论

0/150

提交评论