首页 > 代码库 > 补基础:自学:计算机科学导论 第五章 计算机组成

补基础:自学:计算机科学导论 第五章 计算机组成

计算机的组成部件分为三大类(或子系统):

  • 中央处理器(CPU)
  • 主存储器
  • 输入/输出子系统

 

5.1 中央处理单元(CPU)

用于数据的运算。

CPU又有三个组成部分:

  • 算术逻辑单元(ALU):可对数据进行,逻辑、移位和算数运算
  • 控制单元:控制各个子系统的操作。控制是通过从控制单元发送到其他子系统的信号来进行
  • 寄存器组(快速存储单元):用来临时存放数据的高速独立的存储单元。
    1. 数据寄存器
        提高运算速度,保存这些运算的中间结果
    2. 指令寄存器
        CPU从内存中逐条地取出指令,并将取出的指令存储在指令寄存器中
    3. 程序计数器
        保存着当前正在执行的指令。当前指令执行完后,计数器自动加1,指向下一条指令的内存地址

5.2 主存储器

存储单元的合集,每一个存储单元都有唯一的标识,称为地址。

数据以称为字的位组的形式在内存中传入和传出。字可以使8位、16位、32位,甚至有时是64位。8位为一个字节。

5.2.1 地址空间

所有在存储器中标识的独立的地址单元的总数称为地址空间。

作为为模式的地址

计算机都是以位模式存储、运算数的,所以存储地址也是用为模式表示的。

如果一个内存是64K(216),字长为一个字节,那么需要16位的位模式来确定地址。

起始地址通常是00000000 00000000(地址0),最后一个地址通常是11111111 11111111(地址65535)。

通常,如果一个计算机有N个字的存储空间的话,那就需要有log2N位的无符号整数来确定每隔存储单元

例5.1 一台计算机有32MB内存,需要多少位来寻址内存中的任意一个字节?

解:内存地址空间是32MB,即225(25 * 220)。这就意味着需要log2225(25位)来标识没一个字节。

例5.2 一台计算机有128MB内存。计算机字长为8字节,需要多少位来寻址内存中任意一个字节?

解:128MB = 227。每个字节是8(23)字节,那就意味着需要224个字,也就是说需要log2224(即24位)来标识每一个字

5.2.2 存储器的类型

  • RAM
  • ROM

两者区别:用户可读写RAM,即用户可以在RAM中写信息,之后可以方便地通过覆盖来擦除原有信息。

1.RAM(随机存取存储器)

在此设备中,可使用存储单元地址来随机存取一个数据项,而不需要存取位于它前面的所有数据项。

RAM具有易失性的特点。当系统断电后信息(程序或数据)将丢失。

RAM技术又分为两大类:

  1. SRAM(静态RAM)
    使用传统的触发器门电路(有0和1两个状态的门)来保存数据。这些门保持状态(0或1),也就是说当通电的时候数据始终存在,不需要刷新。SRAM速度快,但是价格昂贵
  2. DRAM(动态RAM)
    使用电容器。如果电容器充电,则此时的状态是1;如果放电则为0。因为电容器会随时间而漏掉一部分电,所以内存单元需要周期性地刷新。DRAM速度比较慢,但是比较便宜。

2. ROM(只读存储器)

ROM的内容是由制造商写进去的。用户只能读但不能写,它的有点事非易失性:当切断电源后,数据也不会丢失。
可用ROM来存储那些在开机时运行的程序

  1. PROM(可编程只读存储器)
    这种计算机发货时是空白的,用户借助一些特殊的设备可以将程序存储在上面。当程序呗存储后,它就会像ROM一样不能够重写。
  2. EPROM(可擦除的可编程只读存储器)
    用户可以对它进行编程,但是得用一种可以发出紫外光的特殊仪器对其擦写。此存储器需要拆下来擦除再重新安装
  3. EEPROM(电可擦除的可编程只读存储器)
    对它的编程和擦除用电子脉冲即可,无需从计算机上拆下来


5.2.3 存储器的层次结构

存取速度快的存储器通常都不便宜,可利用存储器的层次结构折中一下

  • 对速度要求很苛刻时可以使用少量高速存储器。如CPU中的寄存器
  • 用适量的中苏存储器来存储经常需要访问的数据。如高速缓冲存储器
  • 用大量的低速存储器存储那些不经常访问的数据。如主存

5.2.4 高速缓冲存储器

存取速度比主存快,但是比CPU及其内部的寄存器慢。

容量较小,常被置于CPU和主存之间。

任何时间都含有主存中一部分内容的副本。当CPU要存取主存中的一个字时,步骤如下:

  1. CPU首先检查高速缓存
  2. 如果要存取的字存在,CPU就将它赋值;如果不存在,CPU将从主存中拷贝一份从需要读取的字开始的数据块。该数据将覆盖高速缓存中的内容
  3. CPU存取高速缓冲存储器并拷贝该字

5.3 输入/输出子系统

这个子系统可以使计算机与外界通信,并在断电的情况下存储程序和数据。

分为两大类:

  • 非存储设备
  • 存储设备

5.3.1 非存储设备

使CPU/内存可以与外界通信,但不能存储信息

1. 键盘和监视器

2. 打印机

5.3.2 存储设备

1. 磁介质存储设备

用磁性来存储位数据。如果一点有磁性表示1, 没有则为0

1) 磁盘 (不深入)

2)磁带

2. 光存储设备

使用光(激光)技术来存储和读取数据

1) CD-ROM (只读光盘)

2) CD-R (可刻录光盘)

 

5.4 子系统的互连

5.4.1 CPU和存储器的连接

CPU和内存之间通常由称为总线的三组线路连接在一起

  • 数据总线
    由多根线组成,每一根线上每次传送1个位的数据。线的总量取决于该字的大小。例如,计算机的字是32位(4个字节),那么需要有32根线的数据总线,以便同一时刻能够同时传送32位的字
  • 地址总线
    允许访问存储器中的某个字,地址总线的线数取决于存储空间的大小。如果存储器容量为2n个字,那么地址总线一次需要传送n位的地址数据,因此它需要n根线
  • 控制总线
    负责在CPU和内存之间传送信息。例如,必须有一个代码从CPU发往内存,用于指定进行的是读操作还是写操作。
    控制总线的线数取决于计算机所需要的控制命令的总数,如果计算机有2m条控制命令,那么控制总线就需要有m根,因为m位可以定义2m个不同的操作

5.4.2 I/O设备的连接

I/O设备不能直接与连接CPU和内存的总线相连。因为I/O设备都是机电、磁性或光学设备,CPU和内存是电子设备。

I/O设备的操作熟读比CPU和内存慢得多。所以需要通过输入/输出控制器或接口的器件连接到总线上。

控制器

清除了I/O设备与CPU及内存在本质上的障碍。

控制器可以使串行或并行的设备。

串行控制器则只有一根数据线连接到设备上,并行控制器则有数根数据线。

1)SCSI(小型计算机系统接口)

它是一个8、16或32线的并行接口。连接链的两端都必须有终结器,并且每个设备都必须要有唯一的地址(目标ID)

2)火线

它是一种高速的串行接口,数据采用数据包的形式传送,数据传输速度高达50MB/秒。

它可以在一条菊花链或树型连接(只用一根线)上连接多达63个设备。

它不需要终结器

3)USB(通用串行总线)

串行控制器。用以连接与计算机相连的一些低俗和高速的设备。

USB-2允许多达127个设备组成树状拓扑结构连接到一个USB控制器上,其中控制器作为树的根,集线器作为中间节点,设备作为末端节点。

USB使用4根线的电缆。两根线(+5伏和地)用来为键盘和鼠标这样的低压设备供电。其他两根线(缠绕在一起,以减小噪声)用来传送数据、地址和控制信号。

USB-2提供三种传输速率:1.5Mbps、12Mbps和480Mbps。低速率用于低速设备,如键盘鼠标;中速率用于打印机;高速率用于大容量存储设备。

USB的数据是以包的形式传输。每个包含有:地址部分(设备标识)、控制部分、要被传送到其他设备的数据部分。

5.4.3 输入/输出设备的寻址

  1. I/O独立寻址
    用来读/写内存的指令与用来读/写输入/输出的指令完全不同。
    例如,可以使用读命令Read 101从内存中读取字101。也可以使用输入命令Input 101从地址端口为101输入/输出设备中读取数据
  2. I/O存储器映射寻址
    此方法中,CPU将输入/输出控制器中的每一个寄存器都看作是内存中的某个存储字。也就是说,CPU没有单独的指令用来表示是从内存或是输入/输出设备传送数据。

 

5.5 程序执行

5.5.1 机器周期

一个简化的周期有3步:

  1. 取指令
    此阶段,控制单元命令系统将下一条要执行的命令复制到CPU的指令寄存器中。被复制指令的地址被保存在程序计数器中。复制完成后,程序计数器将自动加1指向内存中的下一条指令。
  2. 译码
    当指令置于指令寄存器后,该指令将由控制单元负责译码。指令译码的结构是产生一系列系统可执行的二进制代码
  3. 执行
    指令译码完毕后,控制单元发送任务命令到CPU的某个部件,例如,控制单元告知系统,让它从内存中加载(读)数据项,或是CPU让算术逻辑单元将两个输入寄存器中的内容相加并将结果保存在输出寄存器。

 

5.5.2 输入/输出操作

计算机需要通过命令把数据从I/O设备传输到CPU和内存。因为输入/输出设备的运行速度比CPU要慢得多,因此CPU的操作在某种程度上必须和输入/输出设备同步。有三种方法。

  1. 程序控制输入/输出
    CPU等待I/O设备。
    当CPU遇到一条I/O指令时,它就停止工作直到数据传输完毕。CPU不时地查询I/O驱动器的状态:如果设备做好了传输准备,那么数据将被传送到CPU。如果没有,那么CPU将继续查询I/O驱动器的状态直到I/O驱动器准备好为止。
  2. 中断控制输入/输出
    首先CPU告知I/O设备即将开始传输,但CPU并不需要不停地查询I/O设备的状态。
    当I/O设备准备好时,它通知(中断)CPU。在这个过程中,CPU还可以做其他工作。
    与程序控制输入/输出一样,此方法也在I/O设备和CPU之间传输数据。数据在输入操作后呗传送到内存,在输出操作前则是从内存中取出。
  3. 直接存储器存取(Direct Memory Access,DMA)
    用于在高速I/O设备间传输大量的数据块,例如磁盘、内存。
    这种方法需要一个DMA控制器来承担CPU的一些功能。
    DMA控制器中有寄存器,可以在内存传输前后保存数据块。
    进行I/O操作时,CPU发送信息给DMA。这些信息包括传输类型(输入或输出)、内存单元的起始地址以及传输的字节数。之后CPU就可做其他工作。
    当准备好传输数据时,DMA控制器通知CPU来获得总线的使用权。此时,CPU停止使用总线并转交给DMA控制器使用。
    内存和DMA间的数据传输完成后,CPU继续进行正常操作。

 

5.6 不同的体系结构

5.6.1 CISC(复杂指令集计算机 complex instruction set computer)

5.6.2 RISC(精简指令集计算机 reduce instruction set computer)

5.6.3 流水线

5.6.4 并行处理

补基础:自学:计算机科学导论 第五章 计算机组成