计算机组成

  计算机系统主要有以下三部分组成:中央处理单元(CPU)、主存储器和输入输出子系统。

  中央处理器(CPU)主要包括三部分组成:算术逻辑单元(ALU)、控制单元、寄存器组,通常我们会说计算机包括控制器和运算器

中央处理器(CPU) 

 

  算术逻辑单元(ALU)主要负责三件事:逻辑运算即与或非和异或、移位操作逻辑移位、算术移位)和算术运算(加减乘除)。

  寄存器组是用来临时存放数据的高速独立的存储单元,CPU的运算直接与高速寄存器进行交互。寄存器主要组成:数据寄存器指令寄存器(IR)程序计数器(PC寄存器)

  数据寄存器:存储输入数据和运算结果或者中间结果

  指令寄存器:计算机存储的不仅有数据还有存储在内存中的程序,CPU的主要职责就是从内存中逐条取出指令,并将取出的指令存储在指令寄存器中,解释并执行指令

  程序计数器程序计数器中保存着当前正在执行的指令的地址,当前指令执行完成后,计数器将自动加1,指向下一条指令的内存地址

  控制单元:控制各个子系统的操作,控制主要从控制单元发送到其他子系统的信号来进行。

主存储器


   主存储是存储单元的集合,每个存储单元有唯一的标识符,就是地址 ,这与每个人家中有一个门牌号是一个道理的,数据是以的形式在内存中传入和传出。字可以是8位、16位、32位、64位,假如字是8位,一般称为一个字节,16位为2个字节。

  既然存储器中每个存储单元都有唯一地址,那么在存储器中所有的独立地址单元总数就是地址空间,例如64KB,字长是1个字节的地址空间就是[0,65535],一般地址使用16进制来表示[0000H,FFFFH]。

  存储器的类型主要包括两类:RAM(随机存储器)和ROM(只读存储器),RAM和ROM的区别就是:用户可以读写RAM,即用户可以往RAM中写入信息,但是RAM有个特点就是易失性,系统断电数据将丢失;ROM则用户只能进行读,而不能写入,当切断电源,数据也不会丢失。通常存储那些关机后也不会丢失的程序或者数据,例如ROM存储开机时运行的程序

  存储的层次机构,计算机由许多存储器,尤其是速度快价格便宜的存储器,但是往往价格贵的存储容量小,因此采用了下面这种的办法:

 

  高速缓存是介于寄存器与内存之间的存储器,速度比主存要快,比寄存器要慢,通常容量较小,且常被至于CPU和主存之间

  CPU要存储主存中一个字时通常会首先检测高速缓存,如果高速缓存中有该数据,那么直接复制,如果没有,则从内存中取数据,然后将数据拷贝到高速缓存中,可能有读者就在想设计这个有什么目的:其实这是由于80-20规则,即计算机花费80%的时间存取20%的数据,换句话说,相同的数据会被存储多次。

输入输出子系统


  输入输出子系统分成两类:非存储设备和存储设备。非存储设备主要有:键盘、显示器打印机等,存储设备主要有:磁盘、光盘等。

  那么各个CPU、主存以及输入输出是如何连接的呢?CPU和内存之间通常由称为总线的三组线路连接在一起,分别是数据总线、地址总线和控制总线。数据总线有多根组成,每一根传送1位的数据,线的数量取决于该字的大小,比如我们常说的32位机(4个字节),那么需要32根线的数据总线,才能同时传送32位的字。地址总线的线数取决于存储空间的大小,如果存储容量是2的n次方,那么就需要n根地址线。控制总线负责CPU与内存之间传送信息。

  IO设备不能直接与CPU和内存相连,一般会使用一个输入输出设备控制器作为中间桥梁,这是由CPU内存和输入输出设备的特性所决定的。目前还是用的控制器主要有:SCSI、火线和USB(通用串行总线)。输入输出设备的寻址主要分成两种:IO独立寻址和IO存储映射寻址。IO独立寻址是用来读写内存的指令和用来读写IO设备的指令是完全不同的,因此两者互不影响;而IO存储映射寻址则是CPU将IO设备的每个寄存器看成内存中的某个存储单元,换言之,CPU没有单独的指令用来表示内存或者输入输出设备传送的数据。

程序执行


  CPU是利用重复的机器周期来执行程序的指令,一步一步,直到结束,一个简化的周期包括:取指令,译码,执行。

  取指令:控制单元命令系统将下一条要执行的指令复制到CPU的指令寄存器(IR),被负责的指令的地址存储在程序计数器中,复制完成后,程序计数器自动加1指向内存中的下一条指令。

  译码:当指令进入指令寄存器,由控制单元负责译码,指令译码一般是产生一系列的二进制代码。

  执行:译码完成后,控制单元发送任务命令到CPU的某个部位,例如控制单元告知系统,从内存中加载数据项。

 简单计算机


  简单计算机只是一个计算机模型,而真正的计算机远比这里讲解的要复杂的多。简单计算机由三部分组成:CPU、内存和输入输出设备。

                                                         

  CPU包括:数据寄存器、ALU和控制单元;

  数据寄存器是16个16位的数据寄存器,他们的16进制地址为(0,1,2,F)16,但是称为R0,R1,R2,R15

  控制单元,指令寄存器(IR)是16位寄存器,程序计数器(PC)是8位寄存器,保存内存地址

  主存,主存有256个存储单元,16进制的地址是(00H-FFH),最后两个FE和FF分别是输入和输出设备

  指令集,简单计算机由16条指令集合的能力,每条指令由16位组成,分别是操作数和操作码

  例子:计算C = A + B

  假设数据A存储在M40的内存地址,B存储在M41的内存地址,数据寄存器使用R0暂存A,使用R1暂存B,结果保存在R2中,最后存储在M42的内存地址

  1、内存M40的内容装入寄存器R0;2、内存M41的内容装入寄存器R1;3、相加R0和R1的内容,结果放入R2中;4、把R2的内容存入M42中;5、停机

  存储程序和数据,我们把程序和数据存储在内存中,可以从内存中(00)到(04)存储5行程序,数据则存储在(40)16,(41)16和(42)16中,计算机中每条指令使用一个指令周期,5条指令的小程序,需要5个指令周期,每个周期包括三个步骤:取指令,译码和执行。  

  周期1:取出存储在内存单元(00)中的指令,放入指令寄存器中,PC的值加1;控制单元进行译码,控制单元执行指令,此时存储在内存中的整数拷贝纸R0中

  周期2:取出存储在内存单元(01)中的指令,放入指令寄存器中,PC的值加1;控制单元进行译码,控制单元执行指令,此时存储在内存中的整数拷贝纸R1中

  周期3:取出存储在内存单元(02)中的指令,放入指令寄存器中,PC的值加1;控制单元进行译码,控制单元执行指令,执行R0+R1并将结果存储在R2中

  周期4:取出存储在内存单元(03)中的指令,放入指令寄存器中,PC的值加1;控制单元进行译码,控制单元执行指令,将R2的数据存储到内存地址为(42)的内存中

  周期5:取出存储在内存单元(04)中的指令,放入指令寄存器中,PC的值加1;控制单元进行译码,控制单元执行指令,结束程序

 

posted @ 2018-12-18 21:56  Trami  阅读(1015)  评论(0编辑  收藏  举报