计算机组成原理——计算机系统概论

软硬件概念
计算机系统由硬件和软件两大部分组成。

  • 硬件:计算机的实体部分,指看得见,摸得着的各种电子元器件各类光、电、机设备的实物组成。
  • 软件:看不见摸不着,由人们事先编制的具有各类特殊功能的程序组成。寄寓于各类媒体,通常放在计算机的主存或辅存中。

软件又可分为两大类:系统软件和应用软件。

  • 系统软件:由称为系统程序,主要用来管理整个计算机系统,监视服务器,使系统资源得到合理调度,高效运行。它包括:标准程序库、语言处理库、操作系统、服务程序、数据库管理系统、网络软件等。
  • 应用软件:又称为应用程序,它是用户根据任务需要所编制的各种程序。

计算机系统的层次结构
通常由用户用高级语言编写程序称为源程序,然后将它和数据一起送入计算机内,再由计算机将其翻译成机器能识别的机器语言程序重嗯为目标程序。机器自动运行该程序,并将结果输出。

  • 机器语言:早期计算机使用的语言,用户必须使用二进制代码(1,0)编写程序难度大,操作过程也很容易出错,但编写的程序可以直接在机器的行执行。

  • 汇编语言:符号式的程序语言。用符号表示指令或数据所在存储单元地址,但实际上还得先将汇编语言程序翻译成机器语言程序,然后才能被机器接受并自己运行。

  • 高级语言:对问题的描述十分接近人们的习惯,并且还具有较强的通用性。只要掌握这类高级语言的语法和语义便可直接用这种高级语言来编程。实际上再进入实际机器M1之前先将高级语言翻译成汇编语言或其他中间语言,在翻译成机器语言进入M1进行运行。

将高级语言翻译成机器语言程序的软件称为翻译程序。有两种:编译程序和解释程序。

  • 编译程序:将高级程序的全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序。
  • 解释程序:将源程序翻译一条执行一条,再翻译下一条。

实际机器向下延伸形成下一级的微程序机器M。机器M时将机器M1中的每一条机器指令翻译成一组微指令,机器M每次执行完对应于一条机器指令的微程序后,便由机器M1中的下一条机器指令使机器M自动进入与其相对应的另一个微程序执行,实际上是对实际机器M1的分解。
实际上再实际机器和汇编语言虚拟机之间还有一级由操作系统软件构成的虚拟机。操作系统提供了在汇编语言和高级语言的使用和实现化过程中所需的某些基本操作,还起到控制并管理计算机系统全部硬件和软件资源的作用。做作系统的功能是通过其控制语言来实现的。

多层层次结构的计算机系统
![这里写图片描述](https://img-blog.csdn.net/20180830095407648?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

对计算机结构和计算机组成的理解
计算机结构是指那些能够被程序员所见到的计算机的属性,即概念性的结构与功能特性。
计算机组成是指如何实现计算机体系结构所体现的属性。因此当两台机器指令系统相同时,只能认为其具有相同的结构,至于这两台机器如何实现其指令的功能,完全可以不同,则他们的组成方式是不同的。

计算机的基本组成

冯 诺依曼计算机的特点

  • 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成;
  • 指令和数据以同等地位存放于存储器内,并可按地址访问;
  • 指令和数据均以二进制数表示;
  • 指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置。
  • 指令在存储器中按顺序存放;
  • 机器以运算器为中心,输入输出设备和存储器间的数据传送通过运算器完成。
**以存储器为中心的计算机结构框图**
![这里写图片描述](https://img-blog.csdn.net/20180830103737593?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 各部分的功能:
  • 运算器用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器中。
  • 存储器用来存放数据和程序。
  • 控制器用来控制、指挥程序和数据输入、运行以及处理运算结果。
  • 输入设备用来将人们熟悉的信息形式转换为机器能识别的信息形式。
  • 输出设备和输入设备相反。

运算器和控制器统称为中央处理器,输入和输出设备简称为I/O设备。

计算机的工作步骤

上机前的准备

  • 建立数学模型
  • 确定计算方法
  • 编制解题程序
    程序是适合于机器运算的全部步骤,编制解题程序就是将运算步骤用一一对应的机器指令描述。
    例如:将axx+bx+c可分解以下步骤:
    (1)将x取至运算器中;
    (2)乘以x,得x**(x平方),存于运算器中;
    (3)再乘以a得ax**,存于运算器中;
    (4)将ax送至存储器中;
    (5)取b至运行算器中。
    (6)乘以x,得bx,存于运算器中;
    (7)将ax
    从存储器中取出与bx相加,得ax**+bx,存于运算器中;
    (8)再取出c与ax**+bx相加得ax**+bx+c,存于运算器中。
    将上述运算步骤写成某计算机一一对应的机器指令,就完成了运算程序的编写。

设谋机的指令子长为16位,其中操作码占6位,地址码为10位。
这里写图片描述
**操作码:**表示机器所执行的各种操作,如取数、存数、加减乘除、停机、打印等。操作码和地址码都采用0、1代码的组合来表示。

操作码与操作性质的对应表
|操作码|操作性质|具体内容| |-|-| |000001|取数|将指令地址码值是的存储单位中的操作数取道运算器的累加器ACC中| |000010|存数|将ACC中的数存至指令地址码指示的存储单位中| |000011|加|将ACC中的数与指令地址码指示的存储单位中的树相加,结果存于ACC中| |000100|乘|将ACC中的数与指令地址码指示的存储单位中的树相乘,结果存于ACC中| |00101|打印|将指令地址码指示的存储单元中的操作数打印输出| |000110|停机|| **计算机的工作过程** ![这里写图片描述](https://img-blog.csdn.net/20180830122656479?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21hc2hhb2thbmcxMzE0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) (1)主存储器 主存储器简称为主存或内存草阔存储媒体M、各种逻辑部件以及控制电路。存储体由许多存储单位组成,每个存储单位有包含若干个存储元件,每个存储元件可存储一串二进制代码。这串二进制代码称为一个**存储字**,这串二进制代码的位数称为**存储字长**。 主存的工作方式就是按存主单位的地址号来实现对存储字各位的存、取。这种存取方式称为按地址存取方式,即按地址访问存储器(简称访存),这种工作性质对计算机的组成和操作是十分有利的。只要**事先将编号的程序按顺序存入主存各单位**,当运行程序时,**先给出该程序在主存首地址**,**然后采用程序计数器加1的方法**,自动形成下一条指定所在存储单元的地址,机器便可以自动完成整个程序的操作。 由于数据和指令都存方才存储体内各自所占的不同单元中,因此当需要反复使用某个数据或某指令时,只要指出其相应的单元地址号即可,而不必占用更多的存主单元重复访问同一条数据或指令,大大提高里存储空间的利用率。 为了实现按地址访问的方式,主存中必须配置两个寄存器**MAR**和**MDR**
  • MAR:是存储器地址寄存器,用来存放欲访问的存储单元地址,其位数对应存储单元的个数,
  • MDR:是存储器数据寄存器,用来存放从存储体某单元取出的代码或者准备往某存储单元存入的代码,其位数与存储字节相等。

如果想要完整的完成一个取或存的操作,CPU还得给主存加以各种控制信号。
运算器
运算器至少包括三个寄存器和一个算术逻辑单位(ALU)。其中ACC为累加器,MQ为乘商寄存器,X为操作数寄存器。

|寄存器/操作数/运算|加法|减法|乘法|除法|
|-|-|-|-|
|ACC|被加数及和|被减数及差|乘积高位|被除数及余数|
|MQ|||乘数及乘积低位|商|
|X|加数|减数|被乘数|除数|
加减乘除运算的操作过程
M表示存储器的任意地址号,[M]表示对应M地址号单元中的内容;X表示X寄存器,[X]表示X寄存器中的内容;ACC表示累加器,[ACC]表示累加器中的内容;MQ表示乘商寄存器,[MQ]表示乘商寄存器中的内容。

  • 加法:
    [M]——>X
    [ACC]+[X]——ACC
    即将[ACC]看作加数,先从主存中取出一个存放再M地址号单位内的加数[M],送至运算器的X寄存器中,然后将被加数[ACC]与加数[X]相加,结果保留在ACC中。

控制器
控制器是计算机的神经中枢,由它指挥各部件自动协调的工作。他首先要命令存储器读取一条指令,称为取指过程;接着,它要对这条指令进行分析,指出该指令要完成什么样的操作,并按寻址特征指明操作数的地址,称为分析过程;最后根据操作数所在的地址以及指令的操作码完成某种操作,称为执行过程
控制器由程序计数器(PC)、指令计数器(IR)以及控制单元(CU)组成。

  • PC:用来存放当前欲执行指令的地址,它与主存的MAR之间有一条直接通路,且具有自动加1的功能。
  • IR:用来存放当前的指令,IR的内容来自主存的MDR。IR重的操作码送至CU,用来分析指令;其地址码作为操作数的地址发送至存储器的MAR。
  • CU:用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。
    I/O
    I/O子系统包括各种I/O设备以及其相应的接口。每一种I/O设备都由I/O接口与主机联系,它接受CU发出的各种控制命令,并完成相应操作。

猜你喜欢

转载自blog.csdn.net/mashaokang1314/article/details/82215332