计算机系统概述

基本构成

计算机有4个主要的结构化部件:

  • 处理器(processor): 控制计算机的操作,执行数据处理能力。当只有一个处理器时,它通常指中央处理单元(CPU)。
  • 内存(main memory): 存储数据和程序。此类存储器通常是易失的,即当计算机关机时,存储器的内容会丢失。相反,当计算机关机时,磁盘存储器的内容不会丢失。内存通常也称为 实存储器(real memory) 或者主存储器(primary memory)
  • 输出/输出模块(I/O module): 在计算机和外部环境之间移动数据。外部环境由各种外部设备组成,包括辅助存储器设备(如硬盘)、通信设备和终端。
  • 系统总线(system bus): 为处理器、内存和输入/输出模块间提供通讯的设施。

处理器寄存器

  • 用户可见寄存器: 优先使用这些寄存器,可以减少使用机器语言或汇编语言的程序员对内存的访问次数。
  • 控制和状态寄存器: 用以控制处理器的操作,且主要被具有特权的操作系统例程使用,以控制程序的执行。

用户可见寄存器

数据寄存器(data register)可以被程序员分配给各种函数。

地址寄存器(address register) 存放数据和指令的内存地址,或者存放用于计算完整地址或有效地址的部分地址。

  • 变址寄存器(index register): 变址地址是一种最常见的寻址方式,它通常给一个基值加一个索引来获得有效地址。
  • 段指针(segment pointer): 对于分段寻址方式,存储器被划分成段,这些段由长度不同的字块组成,段由若干长度的字组成。
  • 栈指针(stack pointer): 如果对用户可见的栈进行寻址,则应该有一个专门的寄存器指向栈顶。这样就可以使用不包含地址域的指令,如入栈(push)和出栈(pop)。

控制和状态寄存器

  • 程序计数器(Program Counter, PC): 包含将取指令的地址。
  • 指令寄存器(Instruction Register, IR): 包含最近取的指令内容。

条件码(condition code) 是处理器硬件为操作结果设置的位。

指令的执行

一个单一的指令需要的处理称为一个指令周期。包含两个步骤分别称作取址阶段执行阶段

取指令和执行指令

指令中包含确定处理器将要执行的操作的位,处理器解释指令并执行对应的操作。大体上,这些操作可分为4类:

  • 处理器-存储器: 数据可以从处理器床送到存储器,或者从存储器传送到处理器。
  • 处理器-I/O: 通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输入数据。
  • 数据处理: 处理器可以执行很多与数据相关的算术操作或逻辑操作。
  • 控制: 某些指令可以改变执行顺序。

I/O函数

I/O模块(例如磁盘控制器)可以直接与处理器交换数据。直接内存存取(Direct Memory Access,DMA)

中断

事实上所有计算机都提供了允许其他模块(I/O、存储器)中断处理器正常处理过程的机制。表1.1列出了最常见的中断类别。

中断最初是用于提高处理器效率的一种手段。(大多数I/O设备比处理器慢很多)

表1.1 中断的分类

类别 说明说明
程序中断 在某些条件下由指令执行的结果产生,例如算术溢出、除数为0、试图执行一条非法的机器指令以及访问到用户不允许的存储器位置
时钟中断 由处理器内部的计时器产生,允许操作系统以一定规律执行函数
I/O中断 由I/O控制器产生,用于发信号通知一个操作的正常完成或各种错误条件
硬件故障中断 由诸如掉电或存储器奇偶错误之类的故障发生

中断和指令周期

利用中断功能,处理器可以在I/O操作的执行过程中执行其他指令。

中断处理

多个中断

多道程序设计

如果完成I/O操作的时间远远大于I/O调用期间用户代码的执行时间,则在大部分时间处理器是空闲的。解决这个问题的方法是允许多道用户程序同时处于活跃状态。

存储器的层次结构

计算机存储器的设计目标可以归纳成三个问题:多大的容量?多块的速度?多贵的价格?

局部性原理

高速缓存

动机

在全部指令周期中,处理器在取指令时至少访问一次存储器,而且通常还要多次访问存储器用于取操作数或保存结果。处理器执行指令的速度显然受存储周期的限制(从存储器中读一个字或写一个字到存储器中所花的时间)。长期以来,由于处理器和内存的速度不匹配,这个限制已经成为很严重的问题。近年来,处理器速度的提高一直快于存储器访问速度的提高,这需要在速度价格和大小之间进行折中。理想情况下,内存的构造技术可以采用与处理器中的寄存器相同的构造技术,这样主存的存储周期才跟得上处理器周期。但这样成本太高,解决的方法是利用局部性原理(priciple of locality),即在处理器和内存之间提供一个容量小而速度快的存储器,称做高速缓存。

高速缓存原理

高速缓存设计

I/O通信技术

对I/O操作有三种可能的技术:可编程I/O、中断驱动I/O、直接内存存取(DMA)。

Reference

操作系统 精髓与设计原理

More than your eyes can see