❶ 虚存和内存有什么区别
虚拟空间:即虚拟主机。 虚拟主机(Virtual Host Virtual Server)是使用特殊的软硬件技术,把一台计算机主机分成一台台"虚拟"的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能。
虚存空间:把内存与外存有机的结合起来使用的空间,从而得到一个容量很大的“内存”空间,这就是虚存空间。
虚拟储存器:虚拟存储器只是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器.它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用.
希望我的回答对你有帮助!
1) 内存的基本概念
内存(内存储器)是微型计算机主机的组成部分,用来存放当前正在使用的或随时要使用的程序或数据。
CPU可以直接访问内存。
微机以字节为单位线性地组织内存储器,每个存储单元(一个字节)都有一个唯一的编号。24位地址总线可以提供的地址编号为224=16M字节。
内存储器按其工作特点分为:只读存储器ROM(Read-Only Memory)和随机存取存储器RAM(Random Access Memory)。
虚拟存储器的工作原理
虚拟存储器可以分为三类:页式、段式和段页式。本节我们主要学习页式虚拟存储器。
在页式虚拟存储器中通过把主存空间和程序空间都机械等分成固定大小的页(页面大小随机器而定,一般为4KB到4MB),按页顺序编号,用相应的映像表机构来指明该程序的某页是否已经装入主存。若已经装入主存,则应同时指明其在主存中所处的位置;如果未装入主存,则去辅存中调页,并建立起程序空间和实存空间的地址映像关系。这样,程序执行时通过查映像表将程序地址(虚拟地址)变换成实际主存地址(物理地址)再访问主存。
此存储系统具有主存的速度和辅存的容量,提高了存储器系统的性能价格比。CPU直接访问主存,主存与辅存之间的信息交换由操作系统和硬件来完成,这种把辅存看作是主存的一部分,以扩大主存容量的技术,称之为虚拟技术。用虚拟技术设计的存储器,称为虚拟存储器。
这些主存与辅存之间实际存在的操作和辅助软、硬件,对应用程序设计者来讲是透明的。但虚拟存储器对系统程序员来讲基本上是不透明的,只是某些部分(如虚拟地址到主存地址的变换)由于采用硬件实现才是透明的。
虚拟地址----又称逻辑地址,是指访问虚拟空间的地址。由于指令中给出的地址码是按虚存空间来统一编址的,因此指令的地址码实际上是虚拟地址。
❷ 页面虚拟存储器与段式虚拟存储器的区别
页面虚拟存储器与段式虚拟存储器区别:
1、页面虚拟存储器
页式虚拟存储系统中,虚拟空间分成页,称为逻辑页;主存空间也分成同样大小的页,称为物理页。页表中每一个虚存逻辑页号有一个表目,表目内容包含该逻辑页所在的主存页面地址(物理页号),用它作为实存地址的高字段,与虚存地址的页内行地址字段相拼接,产生完整的实主存地址,据此来访问主存。
2、段式虚拟存储器
段式虚拟存储器是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长,它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂。将这两种方法结合起来便构成段页式调度。在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间页同样小的页面。
❸ 为什么说cache对程序员是透明的
cache对程序员是透明的是因为程序员不需要知道其运行原理。因为程序员不需要知道cache的缓存机制,直接调用cache接口即可实现cache缓存。
cache独一无二地提供了三种整合的、能并发访问同一数据的数据库技术:成熟的对象访问方式,高性能的 SQL 访问方式以及丰富的多维访问。在对象数据、关系型数据以及多维数据视图之间不需要映射,这样就大大节省了开发和运行时间。
(3)段氏虚拟存储器对程序员是否透明扩展阅读:
cache的作用
Caché提供了快速 Web 应用开发、高速的事务处理、大规模的扩展性、对事务数据的实时查询。 Caché运行概述对Caché架构和性能进行了深层次的描述。 Caché的技术优势主要在为什么选择Caché这一文档中称述。
在小册子以多维引擎全面整合对象和 SQL 中,你可以了解到后关系型技术更多的优势。 Caché问与答中主要回答了一些关于Caché的常见问题,以及为什么增值商和企业选择Caché来提升他们应用的性能。
❹ 虚拟存储器() A.对用户是透明的B.对程序员是透明的C.对OS是透明的D.操作系统的设计者
现在的计算机存储系统可以分为3级:
1)CPU内部的高速缓存(也就是cache,cache也分级,例如我的CPU是i5-540M,一级cache 64KB,2级cache 2x256KB,3级cache 3MB);
2)内存,也就是我们通常说的存储器(我的笔记本是4GB)
3)就是你说的虚拟存储器,这个可以在系统里设置,占用硬盘的资源。
分级存储系统是为了平衡存储速度和费用。cache会非常贵,不可能做到上GB的规模。因为系统的调度功能和预先读取功能,可以保证接下来用到的程序和数据在cache和存取器中,所以最终的结果是系统的价格接近最便宜的硬盘,系统的速度接近最快的cache。
如想详细了解可以看看有关的计算机基础的教材。
现在回答你的问题:
虚拟存储器对用户和程序员都是透明的,但是对操作系统不透明。
cache对所有的程序都是透明的,我们编程是无法访问指定cache的,但是可以访问指定的内存。cache有CPU硬件来调度。
❺ 怎样使用“虚拟存储器”
虚拟存储器
virtual memory
为了给用户提供更大的随机存取空间而采用的一种存储技术。它将内存与外存结合使用,好像有一个容量极大的内存储器,工作速度接近于主存,每位成本又与辅存相近,在整机形成多层次存储系统。
虚拟存储器源出于英国ATLAS计算机的一级存储器概念。这种系统的主存为16千字的磁芯存储器,但中央处理器可用20位逻辑地址对主存寻址。到1970年,美国RCA公司研究成功虚拟存储器系统。IBM公司于1972年在IBM370系统上全面采用了虚拟存储技术。虚拟存储器已成为计算机系统中非常重要的部分。
虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。④从地址变换表读出与逻辑组号a对应的物理组号a。⑤从物理组号a和组内字节地址b得到物理地址。⑥根据物理地址从主存中存取必要的信息。
调度方式有分页式、段式、段页式3种。页式调度是将逻辑和物理地址空间都分成固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度辅存中程序的各页可以离散装入主存中不同的页面位置,并可据表一一对应检索。页式调度的优点是页内零头小,页表对程序员来说是透明的,地址变换快,调入操作简单;缺点是各页不是程序的独立模块,不便于实现程序和数据的保护。段式调度是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长,它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂。将这两种方法结合起来便构成段页式调度。在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间页同样小的页面。段页式调度综合了段式和页式的优点。其缺点是增加了硬件成本,软件也较复杂。大型通用计算机系统多数采用段页式调度。
虚拟存储器地址变换基本上有3种形虚拟存储器工作过程式:全联想变换、直接变换和组联想变换。任何逻辑空间页面能够变换到物理空间任何页面位置的方式称为全联想变换。每个逻辑空间页面只能变换到物理空间一个特定页面的方式称为直接变换。组联想变换是指各组之间是直接变换,而组内各页间则是全联想变换。
替换规则用来确定替换主存中哪一部分,以便腾空部分主存,存放来自辅存要调入的那部分内容。常见的替换算法有4种。①随机算法:用软件或硬件随机数产生器确定替换的页面。②先进先出:先调入主存的页面先替换。③近期最少使用算法:替换最长时间不用的页面。④最优算法:替换最长时间以后才使用的页面。这是理想化的算法,只能作为衡量其他各种算法优劣的标准。
虚拟存储器的效率是系统性能评价的重要内容,它与主存容量、页面大小、命中率,程序局部性和替换算法等因素有关。
❻ 计算机组成原理是什么
计算机组成原理是什么
计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。计算机由什么组成的,有什么原理呢?下面我为大家分析一下!
【计算机性能指标】
计算机的性能指标主要是CPU性能指标、存储器性能指标和I/O吞吐率。
处理机字长:是指处理机运算器中一次能够完成二进制运算的位数。
总线宽度:一般指CPU中运算器与存储器之间进行互连的内部总线二进制位数。
存储器带宽:单位时间内从存储器读出事物二进制数信息量,一般用字节数/秒表示。
主频/时钟周期:CPU的工作节拍受主时钟控制,主时钟不断产生固定频率的时钟,主时钟的频率(f)叫CPU的主频。主频的倒数称为CPU的周期(T)。
CPI:表示每条指令周期数,即执行一般程序所占用的CPU时间,
CPU执行时间=CPU时钟周期数*CPU时钟周期
MIPS:表示平均每秒执行多少百万条定点指令数,
FLOPS:表示每秒执行浮点操作的次数,用来衡量机器浮点操作的性能。
FLOPS=程序中的浮点操作次数/程序执行时间(s)
【定点数的表示和运算】
一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有纯小数和纯整数两种表示方法。在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。两个原码表示的数相除时,商的符号位由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。
【算数逻辑单元ALU】
为运算器构造的简单性,运算方法中算数运算通常采用补码加、减法,原码乘除法或补码乘除法。为了运算器的高速性和控制的简单性,采用了先行进位、阵列乘除法、流水线等并行技术措施。ALU不仅具有多种算术运算和逻辑运算的功能,而且具有先行进位逻辑,从而能实现高速运算。
【存储器的分类】
按存储介质,用半导体器件组成的存储器称为半导体存储器,用磁性材料做成的存储器称为磁表面存储器;作为存储介质的基本要求,必须有两个明显区别的物理状态,分别用来表示二进制的代码0和1。另一方面,存储器的存取速度又取决于这种物理状态的改变速度。
按存取方式,存储器中任何存储单元的内容都能被随机存取,且存取时间和存储单元的位置无关的存储器称为随机存储器,存储器只能按某种顺序来存取,即存取时间和存储单元的物理位置有关的存储器称为顺序存储器;半导体存储器是随机存储器,RAM和ROM都是采用随机存取的方式进行信息访问,磁带存储器是顺序存储器。
按信息易失性,断电后信息消失的存储器称为易失性存储器,断电后仍能保存信息的存储器称为非易失性存储器;半导体读写存储器RAM是易失性存储器,ROM是非易失性存储器,磁性材料做成的存储器是非易失性存储器。
按存储内容可变性,有些半导体存储器存储的内容是固定不变的,即只能读出而不能写入,这种半导体存储器称为只读存储器(ROM),既能读出又能写入的半导体存储器称为随机读写存储器(RAM);
按系统中的作用,可分为内部存储器、外部存储器;又可分为主存储器、高速缓冲存储器、辅助存储器、控制存储器;半导体存储器是内部存储器,磁盘是外部存储器,又是辅助存储器。
【存储器的层次化结构】
目前在计算机系统中,通常采用多级存储器体系结构,即使用高级缓冲存储器(cache)、主存储器和外存储器。CPU能直接访问的存储器称为内存储器,它包括cache和主存储器。CPU不能直接访问外存储器,外存储器的信息必须调入内存储器后才能为CPU进行处理。cache是计算机系统中的一个高速小容量半导体存储器,在计算机中利用cache来高速存取指令和数据。cache的工作原理基于程序运行中具有的空间局部性和时间局部性特征。cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。与主存容量相比。cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。主存储器是计算机系统的主要存储器,由MOS半导体存储器组成,用来存放计算机运行期间的大量程序和数据,能和cache交换数据和指令。外存储器是大容量辅助存储器,通常用来存放系统程序和大型数据文件及数据库。
存储器的技术指标有存储容量、存取时间、存储周期、存储器带宽。存取时间、存储周期、存储器带宽三个概念反映了主存的速度指标。
存取时间:指一次读操作命令发出到该操作完成,将数据读出到数据总线上所经历的时间。通常取写操作时间等于读操作时间,故称为存储器存取时间,存取时间又称存储器访问时间。
存储周期:指连续两次读操作所需间隔的最小时间。通常,存储周期略大于存取时间。
“位(bit)”是电子计算机中最小的数据单位,每一位的状态只能是0或1。8个二进制位构成一个“字节(Byte)”,字节是储存空间的基本计量单位,一个字节可以储存一个英文字母,2个字节可以储存一个汉子。“字”由若干字节构成,字的位数叫作字长,不同档次的机器有不同的字长。存储器的基本单位字节的长度是8 bit。表示主存容量的常用单位字节B,是基本单位。此外还有KB、MB、GB、TB。一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元,均可以存储一位二进制代码。这个二进制代码位是存储器中最小的存储单位,称为存储位元。
所有的SRAM的特征是用一个锁存器(触发器)作为存储元,触发器具有两个稳定的状态,只要直流供电电源一直加在这个记忆电路上,它就无限期地保持记忆的1或0状态;如果电源断电,那么存储的数据(1或0)就会丢失。SRAM是易失性存储器。半导体静态存储器 SRAM 的存储原理是依靠双稳态电路。SRAM存储器的存储元是一个触发器,它具有两个稳定的状态。SRAM的优点是存取速度快,但存储容量不如DRAM大。动态MOS随机读写存储器DRAM的存储容量极大,通常用作计算机的主存储器。主存也可以用SRAM实现,只是成本高。与SRAM相比,DRAM成本低、功耗低,但需要刷新。动态RAM存储信息依靠的是电容。DRAM存储器的存储元是由一个MOS晶体管和电容器组成的记忆电路,其中MOS晶体管作为开关使用,而所存储的信息1或0则是由电容器上的电荷量来体现--当电容器充满电荷时,代表储存了1,当电容器放电没有电荷时,代表存储了0。读出过程也是刷新过程。输入缓冲期与输出缓冲器总是互锁的。这是因为读操作和写操作是互斥的,不会同时发生。与SRAM不同的是:DRAM增加了行地址锁存器和列地址锁存器,增加了刷新计数器和相应的控制电路。DRAM比SRAM集成度更高。DRAM读出后必须刷新,而未读写的存储元也要定期刷新,而且要按行刷新,所以刷新计数器的长度等于行地址锁存器。DRAM存储位元是基于电容器上的电荷量存储,这个电荷量随着时间和温度而减少,因此必须定期地刷新,以保持它们原来记忆的信息。DRAM是易失性存储器。一次读操作会自动地刷新选中行中的所有存储位元。然而通常情况下,人们不能准确地预知读操作出现的频率,因此无法阻止数据丢失。在这种情况下,必须对DRAM进行定期刷新。DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。DRAM存储器有读周期、写周期和刷新周期,刷新周期比读/写周期有更高的优先权。DRAM存储器需要逐行进行定时刷新,以使不因存储信息的电容漏电而造成信息丢失。另外,DRAM芯片的读出是一种破坏性读出,因此在读取之后要立即按读出信息予以充电再生。动态MOS随机读写存储器DRAM的存储容量极大,通常用作计算机的主存储器。SRAM和DRAM都是随机读写存储器,它们的特点是数据可读可写。ROM叫作只读存储器,在它工作时只能读出,不能写入,其中存储的原始数据必须在它工作以前写入。FLASH叫作闪存存储器,是高密度非易失性的读/写存储器,高密度意味着它具有巨大比特数目的存储容量,非易失性意味着存放的数据在没有电源的情况下可以长期保存。FLASH存储元是在EPROM存储元基础上发展起来的。闪存存储器有三个主要的基本操作,它们是编程操作、读取操作和擦除操作。可编程ROM有PROM、EPROM、EEPROM。其中,PROM是一次性编程。EPROM叫作光擦除可编程只读存储器,它的存储内容可以根据需要写入,当需要更新时将原存储内容抹去,再写入新的内容。EEPROM叫作电擦除可编程只读存储器,其储存元是一个具有两个栅极的NMOS管,这种存储器在出厂时,存储器内容为全“1”状态。使用时,可根据要求把某些存储元写“0”。EPROM是可改写的,但它不能用作为随机存储器用。
【主存储器与CPU的连接】
主储存器和CPU之间增加cache的目的是解决CPU和主存之间的`速度匹配问题。程序和数据存储在主存中,主存通常采用多体交叉存储器,以提高访问速度。cache是一个高速缓冲存储器,用以弥补主存和CPU速度上的差异。指令部件本身又构成一个流水线,它由取指令、指令译码、计算操作数地址、取操作数等几个过程段组成。指令队伍是一个先进先出(FIFO)的寄存器栈,用于存放经过译码的指令和取来的操作数。它也是由若干个过程段组成的流水线。执行部件可以具有多个算数逻辑运算部件,这些部件本身又用流水线方式构成。为了使存储器的存取时间能与流水线的其他各过程段的速度匹配,一般采用多体交叉存储器。执行段的速度匹配问题,通常采用并行的运算部件以及部件流水线的工作方式来解决。一般采用的方法包括:将执行部件分为定点执行部件和浮点执行部件两个可并行执行的部分,分别处理定点运算指令和浮点运算指令;在浮点执行部件中,又有浮点加法部件和浮点乘/除部件,它们也可以同时执行不同的指令;浮点运算部件都以流水线方式工作。所谓资源相关,是指多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突。在一个程序中,如果必须等前一条指令 执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的。为了解决数据相关冲突,流水CPU的运算器中特意设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用,这称为“向前”或定向传送技术。控制相关冲突是由转移指令引起的。当执行转移指令时,依据转移条件的产生结果,可能为顺序取下条指令;也可能转移到新的目标地址取指令,从而使流水线发生断流。为了减小转移指令对流水线性能的影响,常采用以下两种转移处理技术:由编译程序重排指令序列来实现的延迟转移法、硬件方法来实现的转移预测法。
【双口RAM和多模块存储器】
双端口存储器采用空间并行技术,能进行高速读/写操作。双端口存储器提供了两个相互独立的读写电路,可以对存储器中任意位置上的数据进行独立的存取操作。事实上双端口存储器也可以由DRAM构成。当两个端口的地址不相同时,在两个端口上进行读写操作,一定不会发生冲突。当两个端口同时存取存储器同一存储单元时,便发生冲突。总之,当两个端口均为开放状态且存取地址相同时,发生读写冲突。
一个由若干模块组成的主存储器是线性编址的,这些地址在各模块中的安排方式有两种:一种是顺序方式,一种是交叉方式。从定性分析,对连续字的成块传送,交叉方式的存储器可以实现多模块流水式并行存取,大大提高存储器的带宽,由于CPU的速度比主存快,假如能同时从主存取出n条指令,这必然会提高机器的运行速度。多模块交叉存储器是一种并行存储器结构。
【高速缓冲存储器(cache)】
cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。其原理基于程序运行中具有的空间局部性和时间局部性特征。cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。当前随着半导体器件集成度的进一步提高,cache已放入到CPU中,其工作速度接近于CPU的速度,从而能组成两级以上的cache系统。cache除包含SRAM外,还要有控制逻辑。若cache在CPU芯片外,它的控制逻辑一般与主存控制逻辑合成在一起,成为主存/cache控制器;若cache在CPU内,则由CPU提供它的控制逻辑。CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。当CPU读取内存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字是否在cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。从CPU看,增加一个cache的目的,就是在性能上使主存的平均读出时间尽可能接近cache的读出时间。为了达到这个目的,在所有的存储器访问中由cache满足CPU需要的部分应占很高的比例,即cache的命中率应接近于1.由于程序访问的局部性,实现这个目标是可能的。运算器由算数逻辑单元(ALU)、通用寄存器、数据缓冲寄存器DR和状态条件寄存器PSW组成,它是数据加工处理部件。运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器有两个主要功能:(1)执行所有的算数运算;(2)执行所有的逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。通常,一个算数操作产生一个运算结果,而一个逻辑操作则产生一个判决。
与主存容量相比,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。为了把主存块放到cache中,必须应用某种方法把主存地址定为到cache中,称做地址映射。“映射”的物理含义是确定位置的对应关系,并用硬件来实现。这样当CPU访问存储器时,它所给出的一个字的内存地址会自动变换成cache的地址。由于采用硬件,这个地址变换过程很快,软件人员丝毫感觉不到cache的存在,这种特性成为cache的透明性。地址映射方式有全相联方式、直接方式和组相联方式三种。在全相联映射中,将主存中一个块的地址(块号)与块的内容(字)一起存于cache的行中,其中块地址存于cache行的标记部分中。这种带全部块地址一起保存的方法,可使主存的一个块直接拷贝到cache中的任意一行上。全相联映射方式的检索过程:CPU访存指令指定了一个内存地址(包括主存和cache),为了快速检,指令中的块号与cache中所有行的标记同时在比较器中进行比较。如果块号命中,则按字地址从cache中读取一个字;如果块号未命中,则按内存地址从主存中读取这个字。在全相联cache中,全部标记用一个相联存储器来实现,全部数据用一个普通RAM来实现。全相联方式的主要缺点是比较器电路难于设计和实现,因此只适合于小容量cache采用。直接映射方式也是一种多对一的映射关系,但一个主存块只能拷贝到cache的一个特定行位置上去。直接映射方式的优点是硬件简单,成本低。缺点是每个主存块只有一个固定的行位置可存放,如果块号相距m整数倍的两个块存于同一cache行时,就要发生冲突。发生冲突时就要将原先存入的行换出去,但很可能过一段时间又要换入。频繁的置换会使cache的效率下降。因此直接映射方式适合于需要大容量cache的场合,更多的行数可以减小冲突的机会。采用直接映射时,cache无需考虑替换问题。从存放位置的灵活性和命中率来看,全相联映射方式为优;从比较器电路简单及硬件投资来说,直接映射方式为佳。组相联映射方式将cache分成u组,每组v行,主存块存放到哪个组是固定的,至于存到该组哪一行是灵活的。组相联映射方式的比较器电路容易设计和实现,而块在组中的排放又有一定的灵活性,使冲突减少。全相联映射方式和组相联映射方式速度较低,通常适合于小容量cache。
cache工作原理要求它尽量保存最新数据。当一个新的主存块需要拷贝到cache,而允许存放此块的行位置都被其他主存块占满时,就要产生替换。对直接映射方式来说,因一个主存块只有一个特定的行位置可存放,所以只要把此特定位置上的原主存块换出cache即可。对全相联和组相联cache来说,就要允许存放新主存块的若干特定行中选取一行换出。cache的替换全部靠硬件实现。
如何选取就涉及替换策略,又称替换算法,硬件实现的常用算法主要有以下三种:1)近期最少使用(LRU)算法:将近期内长久未被访问的行换出;2)最不经常使用(LFU)算法:将一段时间内被访问次数最少的那行数据换出;3)随机替换:实际上是不要什么算法,从特定的行位置中随机地选出一行换出即可。在Cache替换算法中,近期最少使用法比较正确地利用了程序访存局部性原理,替换出近期用得最少的存储块,命中率较高,是一种比较好的替换算法;随机法是随机地确定替换的存储单元,先进先出法是替换最早调入的存储单元,它们都没有根据程序访存局部性原理,命中率较低;而后进先出法不是cache所使用的替换算法,此法在堆栈存储结构中使用。
【虚拟存储器】
常用的虚拟存储系统由主存-辅存两级存储器组成,其中辅存是大容量的磁表面存储器。在虚拟存储器中,主存的内容只是辅存的一部分内容。虚拟存储系统是为了提高存储系统的性能价格比而构造的分层存储体系,力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。虚拟存储利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。虚拟存储主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员“半透明”)。主存未命中时系统的性能损失要远大于cache未命中时的损失。
【虚拟内存管理】
虚存机制也要解决一些关键问题:(1)调度问题:决定哪些程序和数据应被调入主存;(2)地址映射问题:在访问主存时把虚地址变为主存物理地址,在访问辅存时把虚地址变为辅存的物理地址,以便换页;(3)替换问题:解决哪些程序和数据应被调出主存;虚拟存储器的替换算法与cache的替换算法类似,有FIFO算法、LRU算法、LFU算法,虚拟存储器的替换有操作系统的支持(4)更新问题:确保主存和辅存的一致性。虚拟存储器分为页式、段式、段页式三种。
页式虚拟存储系统中,虚地址空间被分成等长大小的页,称为逻辑页;主存空间也被分成同样大小的页,称为物理页。相应地,虚地址分为两个字段:高字段为逻辑页号,低字段为页内地址(偏移量);实存地址也分为两个字段:高字段为物理页号,低字段为页内地址。通过页表可以把虚地址(逻辑地址)转换成物理地址。在大多数系统中,每个进程对应一个页表。现代的中央处理机通常有专门的硬件支持地址变换。每个进程所需的页数并不固定,所以页表的长度是可变的,因此通常的实现方法是把页表的基地址保存在寄存器中,而页表本身则放在主存中。由于虚地址空间可以很大,因而每个进程的页表有可能非常长。由于页表通常在主存中,因而即使逻辑页已经在主存中,也要至少访问两次物理存储器才能实现一次访存,这将使虚拟存储器的存取时间加倍。为了避免对主存访问次数的增多,可以对页表本身实行二级缓存,把页表中的最活跃部分存放在高速存储器中。这个专用于页表缓存的高速存储部件通常称为转换后援缓冲器(TLB),又称快表。而保存在主存中的完整页表则称为慢表。快表的作用是加快地址转换。TLB的作用和与主存与CPU之间的cache作用相似,通常由相联存储器实现,容量比慢表小得多,存储慢表中部分信息的副本,可以完成硬件高速检索操作。地址转换时,根据逻辑页号同时查快表和慢表,当在快表中有此逻辑号时,就能很快地找到对应的物理页号。根据程序的局部性原理,多数虚拟存储器访问都将通过TLB进行,从而有效降低访存的时间延迟。由于TLB的缓冲过程与cache的缓冲过程是独立的,所以在每次存储器访问过程中有可能要经历多次变换。
;❼ 计算机中的对应用程序员、系统程序员等透明的透明什么意思
程序状态字对应用程序员是透明的,对系统程序员是不透明的。
❽ 构造虚拟储存器必须具备哪些条件
cache存储器、主存和辅存是构成虚拟存储器的重要部分,cache和主存构成了系统的内存,而主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。
一、异构体系
从虚存的概念可以看出,主存-辅存的访问机制与cache-主存的访问机制是类似的。这是由cache存储器、主存和辅存构成的三级存储体系中的两个层次。cache和主存之间以及主存和辅存之间分别有辅助硬件和辅助软硬件负责地址变换与管理,以便各级存储器能够组成有机的三级存储体系。cache和主存构成了系统的内存,而主存和辅存依靠辅助软硬件的支持构成了虚拟存储器。
在三级存储体系中,cache-主存和主存-辅存这两个存储层次有许多相同点:
(1)出发点相同:二者都是为了提高存储系统的性能价格比而构造的分层存储体系,都力图使存储系统的性能接近高速存储器,而价格和容量接近低速存储器。
(2)原理相同:都是利用了程序运行时的局部性原理把最近常用的信息块从相对慢速而大容量的存储器调入相对高速而小容量的存储器。
但cache-主存和主存-辅存这两个存储层次也有许多不同之处:
(1)侧重点不同:cache主要解决主存与CPU的速度差异问题;而就性能价格比的提高而言,虚存主要是解决存储容量问题,另外还包括存储管理、主存分配和存储保护等方面。
(2)数据通路不同:CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存;而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。
(3)透明性不同:cache的管理完全由硬件完成,对系统程序员和应用程序员均透明;而虚存管理由软件(操作系统)和硬件共同完成,由于软件的介入,虚存对实现存储管理的系统程序员不透明,而只对应用程序员透明(段式和段页式管理对应用程序员"半透明")。
(4)未命中时的损失不同:由于主存的存取时间是cache的存取时间的5~10倍,而主存的存取速度通常比辅存的存取速度快上千倍,故主存未命中时系统的性能损失要远大于cache未命中时的损失。
二、关键问题
(1)调度问题:决定哪些程序和数据应被调入主存。
(2)地址映射问题:在访问主存时把虚地址变为主存物理地址(这一过程称为内地址变换);在访问辅存时把虚地址变成辅存的物理地址(这一过程称为外地址变换),以便换页。此外还要解决主存分配、存储保护与程序再定位等问题。
(3)替换问题:决定哪些程序和数据应被调出主存。
(4)更新问题:确保主存与辅存的一致性。
在操作系统的控制下,硬件和系统软件为用户解决了上述问题,从而使应用程序的编程大大简化。
三、工作原理
虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将这组信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登录在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
❾ 计组,请问这个对程序员透明怎么理解
也就是站在程序员的角度,感觉不到缓存和物理内存的存在,能看到的只有虚拟内存。
❿ “对程序员是透明的”中的“透明”是什么意思
字面理解透明的意思,透明有两种解释:
一种是:能看见一个容器里面的详细、具体的内容。
二种:整个容器都是透明的,什么也看不见呢
两种完全对立的理解,但在程序员的世界里,透明对应的是第二种理解。就是你完全不知道某模块内部实现,也不需要知道,因为无论它的内部是如何实现的,它提供的对外接口是一致的,调用接口的人无需关心其内部实现原理。