在计算机系统中,中央处理器能直接访问的唯一的存储空间是内存储器。任何程序和数据必须被装入内存储器之后,中央处理器才能对它们进行操作,因而一个作业必须把它的程序和数据存储在内存储器中才能运行,而且操作系统本身也要存储在内存储器中并运行。 如果是多道程序系统,就会有若干个程序和相关的数据要存储在内存储器中。操作系统要管理、保护这些程序和数据,使它们不至于受到破坏,不会互相影响和出现冲突。内存储器以及与存储器管理有关的硬件机构是支持操作系统运行的硬件环境的一个重要方面。 此外,I/O系统和时钟部件也是计算机硬件的重要组成部分,为计算机用户交互及计算机时间系统提供基础。
存储器的类型
(1)类型
在微型计算机中使用的半导体存储器有若干种不同的类型,但基本上可划分为两类:一种是读写型的存储器,另一种是只读型的存储器。 所谓读写型的存储器,是指可以把数据存入其中任一地址单元,并且可在以后的任何时候把数据读出来,或者重新存入新的数据的一种存储器。这种类型的存储器常被称为随机访问存储器( Random Access Memory,RAM)。RAM主要用作存储随机存取的程序的数据。 另一种是只读型的存储器,只能从其中读取数据,但不能随意地用普通的方法向其中写入数据。通常要向其中写入数据只能用特殊的方法进行。这种类型的存储器被称为只读存储器( Read-Only Memory,ROM)。作为其变型,还有PBOM和 EPROM。PROM是一种可编程的只读存储器,它可由用户使用特殊PROM写入器向其中写入数据。 EPROM是可用特殊的 紫外线光照射此芯片,以“擦去”其中的信息位,使之恢复原来的状态,然后使用特殊EPROM写人器写入数据。
(2)存储分块
存储的最小单位称为“二进位”,它包含的信息为0或1。存储器的最小编址单位是字节,一个字节一般包含8个二进位。而2个字节一般称为一个字,4个字节称为双字。再大点,104个字节称为1KB,1024个1KB称为1MB,1024个MB称为1GB,等等。现在主流的个人计算机的内存一般在4GB16GB之间,而辅助存储器(外存,一般为硬盘)的存储量一般在2TB8TB。而各种工作站、服务器的内存大约在16GB~64GB之间,硬盘容量则可以高达数百TB,有的系统还配有磁带机,它们用于海量数据存取。 为了简化对存储器的分配和管理,在不少计算机系统中把存储器分成块。在为用户分配内存空间时,以块为最小单位,这样的块有时被称为一个物理页(Pge)。而块的大小随机器而异,512B、1KB、4KB、8KB的都有,也有其他大小的。
存储器的层次结构
计算机存储系统的设计主要考虑三个问题:容量、速度和成本。 首先,容量是存储系统的基础。任何一个计算机系统都希望配备尽可能大的存储系统,对容量的需求一般来说是无止境的。存储系统的速度则要能匹配处理器的速度,在处理器处理时不应该因为等待指令和操作符而发生暂停。在设计一个实际的存储系统时,成本也是一个很重要的问题,存储器的成本和其他部件相比应该在一个合适的范围之内。
(1)容量、速度和成本的匹配
一般来说,容量、速度和成本这三个目标不可能同时达到最优,需要做权衡。存取速度越快,平均每比特价格越高,容量越小;存取速度越慢,平均每比特的价格越低,同时容量也增大。这就给设计带来了一个二律悖反的情况,一方面需要较低的比特价格和较大的容量,另一方面对计算机性能又有着高要求,这又要价格相对昂贵、存储量较小但速度很快的存储器。这个问题的解决方案就是采用层次化的存储体系结构。当沿着层次下降时,每比特的价格将下降,容量将增大,速度将变慢而处理器的访问频率也将下降。 从整个系统来看,在计算机系统中的层次化的存储体系是由寄存器、高速缓存、内存储器、硬盘存储器、磁带机和光盘存储器等装置构成的,如图22所示。较小、较贵而快速的 存储设备由较大、较便宜而慢速的存储设备作后盾,在整体上通过对访问频率的控制来提高存储系统的效能。
(2)存储访问局部性原理
提高存储系统效能的关键在于程序的存储访问局部性原理。程序执行时,处理器为了取得指令和数据而访问存储器。由于现代的程序设计技术很注重程序代码的复用,这样,程序中会有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合。对数据存取也有类似的局部性现象。在经过一段时间以后,使用到的代码和数据的集合会改变,但在较短的时间内它们能比较稳定地保持在一个存储器的局部区域中,处理器也主要和存储器的这个局部打交道。 基于这一原理,就有充分的理由设计出多级存储的体系结构,并使得存取级别较低的存储器的比率小于存取级别较高的存储器的比率。 为了估算访问时间,我们进行如下三个假定:处理器存取两级存储器,第Ⅰ级包含1KB,存取时间为0.1μs,第Ⅱ级包含1MB,存取时间为1μs;处理器直接存取I级中的内容,如果需要的内容在Ⅱ级中,它首先被转移到I级,然后再由处理器存取;用于确定这个内容所在位置的时间可以忽略。 如果处理器在I级存储器中发现存取对象的概率是95%,那么平均访问时间为 (0.95)(0.1μs)+(0.05)(0.1μs+1μs)=0.15μs 这个结果是非常接近I级存储的存取时间的。
存储器保护
存储在内存中的用户程序和操作系统,以及它们的数据,有可能受到正在CPU上运行的某用户程序的有意或无意的破坏,这会造成十分严重的后果。一旦有程序向操作系统区写 入了数据,将有可能造成系统崩溃。对内存中的信息加以严格的保护,使操作系统及其他程序不被破坏,是其正确运行的基本条件之一。 要实现存储保护,必须要有硬件的支持。如果在某种计算机系统中没有对存储器的硬件保护机构,想单纯通过操作系统保护住存储内容不受有意或无意的破坏,那是无法做到的。可见,存储保护机构是操作系统运行环境中一个非常重要的部分。 界地址寄存器是被广泛使用的一种存储保护技术。这种机制比较简单,易于实现。其方法是在处理器中设置一对界限寄存器来存储该用户作业在内存中的下限和上限地址,分别称为下限寄存器和上限寄存器。也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)的方法来指出程序在内存的存储区域。每当处理器要访问内存时硬件自动将被访问的内存地址与界限寄存器的内容进行比较,以判断是否越界。如果未越界,则按此地址访问内存,否则将产生程序中断—越界中断或称为存储保护中断。