虚拟存储器的作用是扩大整个主存的容量,允许在程序中使用比主存容量大得多的虚拟存储器。同时可以减轻人们编程中对程度进行分块的苦恼,从而提高软件开发的效率。虚拟存储器是实现利用小容量的主存运行大规模的程序的一种有效的办法。尽管实现虚拟存储要增加一些额外的投资和软件开销,虚拟存储技术在各种计算机系统中仍得到了广泛的应用。虚拟存储器必须建立在主存-辅存结构上,但一般的主存-辅存系统并不一定是虚拟存储器,虚拟存储器与一般的主存-辅存系统的本质区别是:
①虚拟存储器允许人们使用比主存容量大得多的地址空间来访问主存,非虚拟存储器最多只允许人们使用主存的整个空间,一般只允许使用操作系统分配的主存中的某一部分空间。
②虚拟存储器每次访问主存时必须进行虚、实地址的变换,而非虚拟存储系统则不必变换。
(2)虚拟存储的工作原理
虚拟存储技术,实际上是将编写程序时所用的虚拟地址(逻辑地址)转换成较小的物理地址。在程序运行时随时进行这种变换。为了便于主存与辅存之间信息的交换,虚拟存储器一般采用二维或三维的复合地址格式。采用二维地址格式时,将整个存储器划分为若干页(或段),每个页(或段)又包括若干存储单元。采用三维地址格式时将整个存储空间分为若干段,每段分为若干页,每页又包括若干存储单元。根据地址格式不同,虚拟存储器分为:页式虚拟存储器、段式虚拟存储器和段页式虚拟存储器。
在虚拟存储器中逻辑地址与物理地址之间的对应称为地址映象。通常有三种地址映象的方式:全相联映象、直接映象和组相联映象。
①全相联映象
任一逻辑页能映象到实际主存的任意页面位置称为全相联映象,通常利用页表法进行地址间的变换。
②直接映象
每个逻辑页只能映象到一个特定页面的方式称为直接映象。如主存实际有2 P 页,虚拟存储器的逻辑空间有2 P 页,则将逻辑空间按物理空间大小分为2 P -P块,块内各页只能映象到主存的相应页中。即所有各块的第0页对应主存的第0页,各块的第n页对应主存的第n页。若程序需要轮流使用第i块和第j块的第m页,只能将两页交替在主存和辅存之间调入调出,形成存储页面的“抖动”。
③组相联映象 组相联映象方法是先按直接映象方法将虚拟存储空间(逻辑空间)分成若干块,在主存和逻辑空间中的各块内划分为若干组,每个组间按直接映象方法控制。可以这样理解,如果将组相联映象方法中的组按直接映象方法的页来看待,组相联方法与直接映象方法相同,逻辑空间各组内的页只能与对应的物理空间组相联。但在组内各页与物理空间的页面之间采用全相联映象方法处理。因此,可以认为组相联映象是全相联映象和直接映象方法的结合。6.缓冲技术使用
缓冲技术就是为缓解慢速设备对整个计算机系统速度的影响,在计算机的某些部件中划定一块区域,模拟慢速设备的操作,将对慢速设备的操作先存放在此区域中,其他部件完成这一操作后可以继续其他工作,而慢速设备可以用自己的速度逐渐完成相应的操作。做为中间缓冲的区域称为缓冲区,相应的技术称为缓冲技术。
在整个存储体系的组织中,缓冲技术成为解决容量与速度之间矛盾的主要方法。实际上在计算机系统中缓冲技术解决了许多难题,促进了计算机系统的发展。在存储体系中,缓冲技术主要体现在Cache的应用和磁盘缓冲的使用。
(1)Cache的原理和作用Cache的工作原理基于对大量典型程序运行实例的分析。分析结果表明,在较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间很小的范围内。指令地址的分布又是连续的,加上循环程序和子程序段的重复执行,对这些地址的访问自然具有时间上集中分布的倾向。这种对局部范围的存储器地址频繁访问,对此范围外的地址访问甚少的现象称为程序访问的局部性。程序访问的局部性为Cache的引入提供了理论依据。
Cache是缓冲技术在存储体系中的一个具体应用。Cache处于主存与CPU之间,负责解决主存与CPU之间速度的协调问题。Cache中存放着主存的一部分副本(主存中的部分内容),当存储器接到有关读取指令时,先在Cache中查找此信息是否存在,若有则不经主存直接从Cache中取出;否则直接从主存中取出,同时写入Cache,以备再次使用。当向存储器写入内容时,由辅助硬件采用各种方法保证主存中的内容同Cache中的内容保持一致。
为保证写入时两者内容一致的方法有:①将内容同时写入主存和Cache;②数据仅写入主存,若Cache中有此内容则将其释放;③数据只写入Cache,在规定的时候将修改过的Cache的内容写入主存。
Cache的主要特点是:①存取速度快,一般Cache的速度完全可以跟上CPU的运算速度;②存储量小,由于Cache的速度快,其价格也相当昂贵,因此为保证整个存储器的性能价格比,一般采用适当容量的Cache,其容量小于主存。
(2)磁盘缓冲技术
磁盘缓冲技术的目的是减少由于主、辅存之间的速度差异对计算机总体性能的影响。磁盘是存储系统中的辅助部分,其主要作用是用来存储不常用的数据和程序等信息,减轻对主存容量的需求压力。由于磁盘中的信息不能被计算机的其他部件直接调用,因此在信息的输入/输出过程中必须在主存中开辟一定的空单位和为与磁盘上信息交换的中间过渡区域称为磁盘缓冲区。如从键盘(输入设备)向磁盘中输入一个信息,此信息必须通过总线先输入到主存中的特定区域中,通过程序控制将信息存放到主存中对应于磁盘输入/输出的一个特定区域内,然后将此信息转存到磁盘上。一般将主存中对应于磁盘的特定区域称为磁盘缓冲区。
为了提高磁盘的读写速度,操作系统一般根据程序运行的需要设置磁盘缓冲区的大小及输入/输出操作。同Cache技术相类似,不立即覆盖磁盘缓冲区的内容,当系统需要继续读入磁盘中的信息时,首先检查磁盘缓冲区中是否有所需要的信息,若有则直接使用,否则根据信息的位置将磁盘上特定扇区的内容调入磁盘缓冲区后再加以使用。这样可以提高磁盘的信息读取速度,减少因磁盘存取速度慢对系统整体性能的影响。
九、输入与输出系统
1.输入输出系统的发展
输入输出系统的发展大致分为五种方式,即程序控制的输入输出方式、中断方式,DMA方式、输入/输出通道方式和I/O处理机等五种方式。
程序查询方式和程序中断方式适用于数据传输率比较低的外部设备。而DMA方式、通道方式和I/O处理机方式适用于数据传输率比较高的设备。目前,小型机和微型机大都采用程序查询方式、程序中断方式和DMA方式。通道方式I/O处理机方式大都用在中、大型计算机中。为了介绍方便,我们把通道方式和I/O处理机方式视为一种方式。
2.程序查询方式
程序查询方式又叫程序控制I/O方式。在这种方式中,数据在CPU和外部设备之间的传送完全靠计算机程序控制,是在CPU主动控制下进行的,当输入/输出时,CPU暂停执行主程序,转去执行输入/输出的服务程序,根据服务程序中的I/O指令进行数据传送。
这是一种最简单、最经济的输入/输出方式。它只需很少的硬件,因此几乎所有的机器都具有程序查询方式。特别是在微、小型机中,常用程序查询方式来实现低速设备的输入输出管理。
3.程序中断方式
“中断”概念的提出,是计算机系统结构设计中的一个重大变革。在程序中断方式中,某一外设的数据准备就绪后,它“主动”向CPU发请求中断的信号,请求CPU暂时中断目前的工作而进行数据交换。当CPU响应这个中断时,便暂停运行主程序,并自动转移到该设备的中断服务程序。当中断服务程序结束以后,CPU又回到原来的主程序。其原理和调用子程序相仿,不过,这里要求转移到中断服务子程序的请求是由外部设备发出的。中断方式特别适合于随机出现的服务。
4.DMA方式
(1)DMA方式的基本概念
直接访问内存DMA方式,是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU中完全接管对总线的控制,数据交换不经过CPU,而直接在内存储器和I/O设备之间进行。DMA方式一般用于高速地传送成组的数据。DMA控制器将向内存发出地址和控制信号、修改地址、对传送的字的个数计数,并且以中断方式向CPU报告传送操作的结束。DMA方式的主要优点是速度快。由于CPU根本不参加传送操作,因此就省去了CPU取指令、取数、送数等操作。在数据传送过程中,也不象中断方式那样,要进行保存现场、恢复现场之类的工作。内存地址修改、传送字个数的计数等,也不是由软件实现,而是用硬件线路直接实现的。DMA的种类很多,但各种DMA至少能执行以下一些基本操作:①从外部设备发出DMA请求;
②CPU响应请求,把CPU工作改成DMA操作方式,DMA控制器从CPU接管总线的控制;③由DMA控制器对内存寻址,即决定数据传送的内存单元首地址及数据传送个数的计数,并执行数据传送的操作;
④向CPU报告DMA操作的结束。
(2)DMA技术的出现,使得外部设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序。那么DMA控制器与CPU怎样分时使用内存呢?通常采用以下三种方法:①停止CPU访问;②周期挪用;
③DMA与CPU交替访问。
(3)基本的DMA控制器
一个DMA控制器实际上是采用DMA方式的外部设备与系统总线之间的接口电路。这个接口电路是在中断接口的基础上再加DMA机构组成。习惯上将DMA方式的接口电路称为DMA控制器。
①内存地址计数器
用于存放内存中要交换的数据地址。在DMA传送前,需通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当DMA传送时,每交换一次数据,将地址计数器加“1”,从而以增量方式给出内存中要交换的一批数据的地址。
②字计数器
用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之间由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1”,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU发出中断信号。
③数据缓冲寄存器
用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。
④“DMA请求”标志
每当设备准备好一个数据字后给出一个控制信号,使“DMA”请求标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA请求”标志复位,为交换下一个字做好准备。
⑤“控制/状态”逻辑它由控制和时序电路,以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。⑥中断机构
当字计数器溢出时(全0),意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。这里的中断与前面介绍的I/O中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。因此它们是I/O系统中不同的中断事件。
5.通道方式
(1)通道的功能
DMA控制器的出现已经减轻了CPU对数据输入输出的控制,使得CPU的效率有显著的提高。而通道的出现则进一步提高了CPU的效率。这是因为通道是一个特殊功能的处理器,它有自己的指令和程序专门负责数据输入输出的传输控制,而CPU将“传输控制”的功能下放给通道后只负责“数据处理”功能。这样,通道与CPU分时使用内存,实现了CPU内部运算与I/O设备的并行工作。
通道的基本功能是执行通道指令、组织外部设备和内存进行数据传输,按I/O指令要求启动外部设备,向CPU报告中断等,具体有以下五项任务:
①接受CPU的I/O指令,按指令要求与指定的外部设备进行通信;
②从内存选取属于该通道程序的通道指令,经译码后向设备控制器和设备发送各种命令;
③组织外部设备和内存之间进行数据传送,并根据需要提供数据中间缓存的空间,以及提供数据存入内存的地址和传送的数据量;
④从外部设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供CPU使用;
⑤将外部设备的中断请求和通道本身的中断请求,按次序及时报告CPU。
(2)通道类型
根据通道的工作方式,通道可分为:①选择通道。②数组多路通道。③字节多路通道。④通道适配器。
6.外部设备
外部设备分为输入设备、输出设备、输入输出兼用设备、外存设备、数据通信设备和过程控制设备等。
①输入设备②输出设备③汉字设备
④数据通信设备
⑤过程控制设备