CoderMrWu

生活诚可期,爱情价更高!

简述我们不怎么了解的计算机系统硬件部件

在计算机系统中,中央处理器能直接访问的唯一的存储空间是内存储器。任何程序和数据必须被装入内存储器之后,中央处理器才能对它们进行操作,因而一个作业必须把它的程序和数据存储在内存储器中才能运行,而且操作系统本身也要存储在内存储器中并运行。

如果是多道程序系统,就会有若干个程序和相关的数据要存储在内存储器中。操作系统要管理、保护这些程序和数据,使它们不至于受到破坏,不会互相影响和出现冲突。内存储器以及与存储器管理有关的硬件机构是支持操作系统运行的硬件环境的一个重要方面。

此外,IO系统和时钟部件也是计算机硬件的重要组成部分,为计算机用户交互及计算机时间系统提供基础

本节介绍与操作系统密切相关的计算机硬件部件的知识,具体见以下内容。

一、存储系统

1、存储器的类型

(1)类型

在微型计算机中使用的半导体存储器有若干种不同的类型,但基本上可划分为两类:一种是读写型的存储器,另一种是只读型的存储器

所谓读写型的存储器,是指可以把数据存入其中任一地址单元,并且可在以后的任何时候把数据读出来,或者重新存入新的数据的一种存储器。这种类型的存储器常被称为随机访问存储器( Random Access Memory,RAM)。RAM主要用作存储随机存取的程序的数据。

另一种是只读型的存储器,只能从其中读取数据,但不能随意地用普通的方法向其中写入数据。通常要向其中写入数据只能用特殊的方法进行。这种类型的存储器被称为只读存储器(Read- Only Memory,ROM)。作为其变型,还有PROM和 EPROM。PROM是一种可编程的只读存储器,它可由用户使用特殊PROM写人器向其中写入数据。 EPROM是可用特殊的紫外线光照射此芯片,以“擦去”其中的信息位,使之恢复原来的状态,然后使用特殊EPROM写入器写入数据。

(2)存储分块

存储的最小单位称为“二进位”,它包含的信息为0或1。存储器的最小编址单位是字节,一个字节一般包含8个二进位。而2个字节一般称为一个字,4个字节称为双字。再大点,1024个字节称为1KB,1024个1KB称为1MB,1024个1MB称为1GB,等等。现在主流的个人计算机的内存一般在4GB~16GB之间,而辅助存储器(外存,一般为硬盘)的 存储量一般在2TB~8TB。而各种工作站、服务器的内存大约在16GB~64GB之间,硬盘容量则可以高达数百TB,有的系统还配有磁带机,它们用于海量数据存取。

为了简化对存储器的分配和管理,在不少计算机系统中把存储器分成块。在为用户分配内存空间时,以块为最小单位,这样的块有时被称为一个物理页(Page)。而块的大小随机器而异,512B、1KB、4KB、8KB的都有,也有其他大小的。

2、存储器的层次结构​

计算机存储系统的设计主要考虑三个问题:容量、速度和成本

首先,容量是存储系统的基础。任何一个计算机系统都希望配备尽可能大的存储系统,对容量的需求一般来说是无止境的。存储系统的速度则要能匹配处理器的速度,在处理器处理时不应该因为等待指令和操作符而发生暂停。在设计一个实际的存储系统时,成本问题也是一个很重要的问题,存储器的成本和其他部件相比应该在一个合适的范围之内。

(1)容量、速度和成本的匹配

一般来说,容量、速度和成本这三个目标不可能同时达到最优,需要做权衡。存取速度越快,平均每比特价格越高,容量越小;存取速度越慢,平均毎比特的价格越低,同时容量也增大。这就给设计带来了一个二律悖反的情况,一方面需要较低的比特价格和较大的容量,另一方面对计算机性能又有着高要求,这又要价格相对昂贵、存储量较小但速度很快的存储器。这个问题的解决方案就是采用层次化的存储体系结构。当沿着层次下降时,每比特的价格将下降,容量将增大,速度将变慢而处理器的访问频率也将下降。

从整个系统来看,在计算机系统中的层次化的存储体系是由寄存器、高速缓存、内存储器、硬盘存储器、磁带机和光盘存储器等装置构成的,如图2-2所示。较小、较贵而快速的存储设备由较大、较便宜而慢速的存储设备作后盾,在整体上通过对访问频率的控制来提高存储系统的效能。

(2)存储访问局部性原理

提高存储系统效能的关键在于程序的存储访问局部性原理。程序执行时,处理器为了取寄存器得指令和数据而访问存储器。由于现代的程序设计技术很注重程序代码的复用,这样,程序中会有很多的循环和子程序调用,一旦进入这样的程序段,就会重复存取相同的指令集合对数据存取也有类似的局部性现象。在经过段时间以后,使用到的代码和数据的集合会改变,但在较短的时间内它们能比较稳定地保持在一个存储器的局部区域中,处理器也主要和存储器的这个局部打交道。

基于这一原理,就有充分的理由设计出多级存储的体系结构,并使得存取级别较低的存储器的比率小于存取级别较高的存储器的比率。

为了估算访问时间,我们进行如下三个假定:处理器存取两级存储器,第Ⅰ级包含1KB,存取时间为0.1μs,第Ⅱ级包含MB,存取时间为1us;处理器直接存取I级中的内容,如果需要的内容在Ⅱ级中,它首先被转移到Ⅰ级,然后再由处理器存取;用于确定这个内容所在位置的时间可以忽略。

如果处理器在Ⅰ级存储器中发现存取对象的概率是95%,那么平均访问时间为:

(0.95)(0.1μs)+(0.05)(0.1ps+1us)=0.15μs

这个结果是非常接近1级存储的存取时间的。

3、存储器保护

存储在内存中的用户程序和操作系统,以及它们的数据,有可能受到正在CPU上运行的某用户程序的有意或无意的破坏,这会造成十分严重的后果。一旦有程序向操作系统区写人了数据,将有可能造成系统崩溃。对内存中的信息加以严格的保护,使操作系统及其他程序不被破坏,是其正确运行的基本条件之一。

要实现存储保护,必须要有硬件的支持。如果在某种计算机系统中没有对存储器的硬件保护机构,想单纯通过操作系统保护住存储内容不受有意或无意的破坏,那是无法做到的。

可见,存储保护机构是操作系统运行环境中一个非常重要的部分。

界地址寄存器是被广泛使用的一种存储保护技术。这种机制比较简单,易于实现。其方法是在处理器中设置一对界限寄存器来存储该用户作业在内存中的下限和上限地址,分别称为下限寄存器和上限寄存器。也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)的方法来指出程序在内存的存储区域。每当处理器要访问内存时,硬件自动将被访问的内存地址与界限寄存器的内容进行比较,以判断是否越界。如果未越界,则按此地址访问内存,否则将产生程序中断—越界中断或称为存储保护中断,如图2-3所示。

二、IO部件

1、IO结构

在一台计算机系统中,可能有大量的外部设备,为了满足对这些IO设备的控制,提高处理器和外部设备的运行效率,出现了各种不同的IO硬件结构。

在每台外部设备中都配有各自的IO设备控制器,由LO设备控制器分别控制各台外部设备的运行。在IO设备控制器与处理器之间的IO硬件结构,则有不同的设计方案。

在早期的计算机系统中,外部设备的控制器通过IO硬件结构与中央处理器连接。对设备控制器的操作是由处理器直接发出的IO指令来实现的。在这种方法中,中央处理器定期轮询各个IO设备控制器的状态。如果有IO处理请求,中央处理器就处理IO操作,直到该IO处理完毕。这种程序直接控制IO的主要缺陷是,处理器为了关注IO设备控制器的状态,必须耗费大量的时间轮询各个外部设备以获得这些信息,这就严重地降低了整个系统的性能。这种早期IO结构,由于效率太低,已经淘汰。

2、通道

通道是独立于中央处理器的,专门负责数据I/O传输工作的处理单元。从现代计算机系统的结构上看,各种外部设备均配有相应的设备控制器,这些设备控制器再通过通道连接在计算机系统的公共系统总线上。

通道对外部设备实行统一的管理,它代替处理器对Ⅰ/O操作进行控制,从而使处理器和外部设备可以并行工作。所以通道又称为I/O处理器

下面介绍通道的具体工作原理。

在采用通道的计算机系统运行过程中,中央处理器按程序规定的顺序执行一条条指令。当处理器执行到一条“启动外设”(“启动IO”)的指令时,就按指令中给定的参数启动指定的设备。

设备启动之后,对该外部设备的控制权转移到通道,由通道控制该外部设备的有关操作。

在该外部设备与内存储器之间发生的信息传送,由通道控制,而中央处理器则继续执行程序。可见,这时处理器与外部设备是并行工作的,外部设备独立工作,不需要中央处理器的干预。

在该外部设备工作结束后,会产生形成一个“输人输出操作结束”的IO中断事件。这是因为该外部设备是由处理器根据程序的要求而启动的,所以仍由操作系统的处理程序处理这个I/O中断事件。操作系统进行分析后,就可以知道外部设备的具体工作情况。

采用通道这种IO结构的最大优点是,可以实现中央处理器和各种外部设备并行工作

采用通道之后,处理器和外部设备都能够访问内存储器。不过,当处理器和外部设备同时申请访问内存储器时,就要竞争存储周期。由内存储器的控制线路处理这些竞争,并保证这些访问同步有序进行。

有了通道,利用处理器与外部设备之间以及各外部设备之间的并行工作能力,操作系统就可以让多个程序同时执行,并在同一时刻让各个程序分别使用计算机系统的不同资源。

举例来说,如果程序A启动了某个硬盘设备读取一块数据,它必须等待该硬盘设备完成信息传送后才能继续执行。此刻该程序A处于等待状态,暂停执行指令。这时操作系统可以让另一个程序B占用中央处理器运行。当然程序B在执行时也可能申请使用某个外部设备,若程序B启动了一台DVD设备也等待信息传送,那么操作系统可以调用程序C占用中央处理器运行。从这里可以看到,有了通道,多道程序的运行使得处理器和外部设备的运行效率都得到了提高。

通道技术一般用于大型机系统和对I/O处理能力要求比较严格的系统中

3、DMA技术

直接存储器访问( Direct Memory Access,DMA)技术通过系统总线中的一个独立控制单元—DMA控制器,自动地控制成块数据在内存和IO单元之间的传送。当处理器需要读写一整块数据的时候,它给DMA控制单元发送一条命令,在命令中通常包含了IO设备的编址、开始读或写的内存编址、需要传送的数据长度、是否请求一次读或写等信息。处理器在给DMA控制单元发送完一条命令之后,就可以处理其他的事情了。而DMA控制器将自动管理整块数据的传送。当这个传送过程完成后,它会给处理器发一个中断。这样处理器只需要在整块数据开始传送和传送结束时关注一下就可以了。可见DMA技术大大提高了处理IO的效能。

不过,处理器和DMA传送也不是完全并行的,它们之间会有总线竞争的情况发生,此时总线上正在进行DMA传送,而处理器也想使用总线。不过这种总线竞争不会引起中断,也不会引起程序上下文的保存,通常这个过程只会使用一个总线周期,于是处理器会稍微等待。也就是说,在DMA传送发生时,处理器访问总线的速度会有所变慢。尽管如此,对于 有大量数据的0传送来说,DMA技术是很有价值的。

4、缓冲技术

缓冲技术是用在外部设备与其他硬件部件之间的一种数据暂存技术,它利用存储器件在外部设备中设置了数据的一个存储区域,称为缓冲区。缓冲技术一般有两种用途,一种是用在外部设备与外部设备之间的通信上的,还有一种是用在外部设备和处理器之间的。

例如,在人们使用键盘输入数据时,输入速度是很慢的,再快的专业数据输人员,每秒钟击键的次数也很难超过10次。如果让处理器等待这样缓慢的数据输入完成之后,再进行处理,显然效率太低了。有了缓冲区就可减少输入输出的次数。当我们从键盘输入设备输入数据时,通常是先把数据送入到键盘数据缓冲区中,然后处理器再把数据从缓冲区读入用户工作区中进行处理。

采用缓冲技术最根本的原因是:处理器处理数据速度与设备传输数据速度不相匹配,需要用缓冲区缓解其间的速度矛盾

那么为什么不直接把数据送入用户工作区,而要设置缓冲区来暂存呢?如果把用户工作区直接作为缓冲区则有许多不便。首先,当一个用户从工作区向设备输出或从设备向工作区输入时,工作区被长期占用而使其他用户无法使用。其次,为了减少输入输出次数,以减轻对通道和输入输出设备的压力。第三,缓冲区信息可供多个用户共同使用以及反复使用,减少了不必要的信息传递工作,提高了效率,方便了对缓冲区的管理。

为了提高设备利用率,通常使用单个缓冲区是不够的,可以设置双缓冲区,甚至多缓冲区。比如,在单缓冲区情况下,当外部设备向缓冲区输入数据装满之后,必须等待处理器将其取完,才能继续向其中输入数据。如果有两个缓冲区,在一个缓冲区等待处理器取用数据时,另一个可以继续接收数据,这样设备利用率可大为提高。

三、时钟部件

在计算机系统中,设置时钟是十分必要的。这是由于时钟可以为计算机完成以下的必不可少的工作。

1)在多道程序运行的环境中,时钟可以为系统发现一个陷入死循环(由编程错误引起)的作业,从而防止机时的浪费。

2)在分时系统中,用时钟间隔来实现各个作业按时间片轮转运行。

3)在实时系统中,按要求的时间间隔输出正确的时间信号给相关的实时控制设备。

4)定时唤醒要求按照事先给定的时间执行的各个外部事件(如定时为各进程计算优先数,银行系统中定时运行某类结账程序等)。

5)记录用户使用各种设备的时间和记录某外部事件发生的时间间隔。

6)记录用户和系统所需要的绝对时间,即年、月、日。

由上述时钟的这些作用可以看到,时钟是操作系统运行的必不可少的设施。时钟一般分成硬件时钟和软件时钟

硬件时钟的工作原理是,在电路中的晶体振荡器,每隔一定间隔产生固定的脉冲频率,时钟电路中的时钟寄存器依据时钟电路所产生的脉冲数,对时钟寄存器进行加1的工作

软件时钟,常用作相对时钟,它的工作原理主要是利用内存单元模拟时钟寄存器,并采用一段程序来计算相应的脉冲数,对内存时钟寄存器进行加1或减1的工作,从而模拟了时钟的功能。由于硬件提供的时钟总是比较少的,往往不能满足操作系统和应用程序对时钟的要求,因而软件时钟是经常需要的。软件时钟与硬件时钟的同步工作,由操作系统负责。

维护时钟的用途可以分为绝对时钟和相对时钟

绝对时钟是在计算机系统中不受外界干扰、独立运行的一种时钟。一般来说,绝对时钟很准确,它通常不会被停止,当计算机系统关机时,绝对时钟值仍然始终不停地保持运行作为整个计算机系统中的时间参考基准。绝对时钟通常提供公元日历的时间(即年、月、日、时、分、秒)显示。

相对时钟又称间隔时钟。它只计算从某一个时间初值开始的一段时间间隔。由操作人员置上时间间隔的初值,以后每经过一个单位的时间,时钟值自动减1,直到该值为负时,则触发一个时钟中断,并进行相应的处理。间隔时钟可以通过时钟寄存器来实现,如许多操作系统的实用程序中提供的电子闹钟,每隔固定时间发一次中断,触发一个音响事件。当然,间隔时钟也可以通过软件时钟来实现。

点赞