计算机系统概述(1)计算机基本结构、处理器寄存器和指令的执行过程

一、基本构成

宏观上看,计算机系统由处理器、I/O设备和内存组成。如下图所示,他们通过系统总线连接在一起。

处理器的一种功能是和存储器交换数据,所以其内部有两类寄存器:地址寄存器和缓冲寄存器。地址寄存器确定下一次读写的地址或输入输出设备;缓冲寄存器暂时存放需要读写的数据。

内存模块由一组单元组成,这些单元由顺序编号的地址定义。每个单元包含一个二进制数,可以解释为一个指令或数据。

输入/输出模块包含内存缓冲区,用于临时保存数据,直到它们被发送出去。

 

                                                计算机系统概述(1)计算机基本结构、处理器寄存器和指令的执行过程

操作系统控制和协调应用程序对硬件资源的使用,可以将操作系统看做资源分配器。计算机系统可能有许多资源,用来解决CPU时间、内存空间、文件存储空间、I/O设备等问题。操作系统管理这些资源。面对许多甚至冲突的资源请求,操作系统必须决定如何为各个程序和用户分配资源,以便计算机系统能有效而公平地运行。 

二、处理器寄存器

寄存器可以提供一定的存储能力,访问速度比内存快,但存储空间有限。可分为用户可见寄存器控制和状态寄存器

用户可见寄存器可以由程序决定哪些变量保存在内存或寄存器中,对所有的程序可用。通常包括数据寄存器和地址寄存器。

           数据寄存器可以被分配给各种函数。它们实际上是通用的,可被执行数据操作的任何机器指令使用。但通常也有一些限制,例如对浮点数运算使用专用的寄存器,而对整数运算使用其他寄存器。

           地址寄存器存放数据和指令的内存地址,或者存放用于计算完整地址或有效地址的部分地址。这些寄存器可以是通用的,或者可以用来以特定方式或模式寻址存储器。

                   变址寄存器:通过给一个基值加一个索引来获得有效地址。

                   段指针:对于分段寻址方式,存储器被划分成段,这些段由长度不等的字块组成。,段由若干长度的字组成。一个存储器引用由一个特定段号和段内的偏移量组成;采用这种寻址方式需要一个寄存器保存段的基地址(起始地址)。

                   栈指针:对用户可见的栈进行寻址,应该有一个专门的寄存器指向栈顶。这样就可以使用不包含地址域的指令,如入栈和出栈。

控制和状态寄存器由操作系统例程使用,用于控制处理器的操作。比如MAR、MBR、I/O AR、I/O BR寄存器(如图1.1所示),程序计数器(将取指令的地址)和指令寄存器(最近取的指令内容)都是指令执行必须的。

 

                                                计算机系统概述(1)计算机基本结构、处理器寄存器和指令的执行过程

三、指令的执行

处理器执行的程序是由一组保存在存储器中的指令组成的。在一个指令周期内,存在取指阶段和执行阶段,处理区从存储器中一次读取一条指令然后执行。

 

                                                计算机系统概述(1)计算机基本结构、处理器寄存器和指令的执行过程

每个指令周期开始时,处理器会从存储器中取一条指令,程序计数器(PC)保存下一次要取的指令地址。取得指令被放置在处理器的指令寄存器(IR)中,包含确定处理器将要执行的操作的位。处理器会解释并执行对应的操作:

  • 处理器一存储器:数据可以从处理器传送到存储器,或者从存储器传送到处理器。
  • 控制:某些指令可以改变执行顺序。例如,处理器从地址为149的存储单元中取出一条指令, 该指令指定下一条指令应该从地址为182的存储单元中取,这样处理器要把程序计数器设置为182。因此,在下一个取指阶段中,将从地址为182的存储单元而不是地址为150的存储单元中取指令。
  • 数据处理:处理器可以执行很多与数据相关的算术操作或逻辑操作。
  • 处理器一I/O:通过处理器和I/O模块间的数据传送,数据可以输出到外部设备,或者从外部设备输人数据。

指令执行实例:

假设一台机器的处理器包含一个称为累加器(AC)的数据寄存器,所有指令和数据长度均为16位,指令格式中有4位是操作码,剩余的12位都用于存放数据。具体特征如下图所示:

 

                                               计算机系统概述(1)计算机基本结构、处理器寄存器和指令的执行过程

累加过程:将地址为940的存储单元中的内容与地址为941的存储单元中的内容相加。注意:300~302中指令四个数字的第一个数字代表了将要进行的操作,参考图1.3。940~941存储单元存放的是将要运算的数值。具体的累加过程如下图所示。

 

                                               计算机系统概述(1)计算机基本结构、处理器寄存器和指令的执行过程

I/O模块(例如磁盘控制器)可以直接与处理器交换数据。正如处理器可以通过指定存储单元的地址来启动对存储器的读和写一样,处理器也可以从I/O模块中读数据或向I/O模块中写数据。对于后一种情况,处理器需要指定被某一I/O模块控制的具体设备。因此,指令序列的格式与图1.4中的格式类似,只是用I/O指令代替了存储器访问指令。

在某些情况下,允许I/O模块直接与内存发生数据交换,以减轻在完成I/O任务过程中的处理器负担。此时,处理器允许I/O模块具有从存储器中读或往存储器中写的特权,这样I/O模块与存储器之间的数据传送无需通过处理器完成。在这类传送过程中,I/O模块对存储器发出读命令或写命令,从而免去了处理器负责数据交换的任务。这个操作称为直接内存存取(DirectMemory Access, DMA )。