第五章 计算机部件《计算机科学概论》

冯·诺依曼体系结构

在这里插入图片描述
(图 1)

结构说明
内存单元存储数据和指令
算术逻辑单元对数据执行算术和逻辑运算
输入单元把数据从外部世界转移到计算机中
输出单元把结果从计算机内部转移到外部世界
控制单元调度读取-执行周期

冯·诺依曼原理:数据和指令都存储在内存中,以同样的方式处理

内存单元

最基本的存储单元是位,(也称比特,BIT,binary digit)能存放1和0,这些位被组合成字节(8位,byte),字节被组合成字(word)。内存是存储单元的集合,每个存储单元有一个唯一的物理地址。这里通称单元,而不是用字节或字,因为不同机器中每个可编址(称为可编址性1)的位置的位数不同。内存中每个单元从0开始连续进行编号。

算术逻辑单元

算术逻辑单元(Arithmetic/Logic Uint,ALU),执行算术运算(加法、减法、乘法和除法)和逻辑运算(与运算、或运算与非运算)的计算机部件。ALU操作的是字,即与特定计算机设计相关联的数据的自然单位。
寄存器(register),CPU中的一小块存储区域,用于存储中间值或特殊数据,能容纳一个字(word)。

输入/输出单元

输入单元 input unit

接受要存储在内存中的数据的设备。

输出单元 output unit

一种设备,用于把存储在内存中的数据打印或显示出来,或者把存储在内存或其他设备中的信息制成一个永久副本。

控制单元 control unit

掌管着读取-执行周期,控制其他部件的动作,从而执行指令序列的计算机部件。控制单元中有两种特殊的寄存器,分别存放用于存放正在执行的指令和写一条要执行的指令的地址。
指令寄存器(Instruction Register,IR):存放当前正在执行的指令的寄存器。
程序计数器(Program Counter,PC):存放下一条要执行的指令的地址的寄存器。
由于ALU和控制单元的协作非常的紧密,所以他们常被看做一个单元,即中央处理器(Central Processing Unit,CPU),是计算机用于解释和执行指令的“大脑”。

总线

在这里插入图片描述
(图 2)
上图是冯·诺依曼机中的各部件的信息流,由一组电线连接在一起,称为总线,数据通过总线在计算机中传递。每条总线携带三种信息:地址、数据和控制信息地址是用来选择内存位置或设备以决定数据的流向或数据的来源。数据在CPU、内存和I/O设备之间的总线上传递。控制信息用来管理地址和数据的流向。
总线宽度(bus width)是可以在总线上并行传输的比特数/位数,总线越宽,一次就能传送的地址和数据比特越多。
一个n位的处理器,指的是中央处理器一般寄存器中的位数:两个n位的数据能通过一条指令相加。同样也能表示总线的地址宽度,也就是可寻址的内存大小,并非总是如此。
流水线(pipelining),是一种读取-执行周期的技术,用于将指令分解为可以重叠执行的小步骤,前提是无数据依赖
缓存(cache memory),一种用于存储常用数据的小型高速存储器

读取执行-执行周期

计算机的定义概述了它的能力:计算机是一种能够存储、检索和处理数据的设备。
数据和指令都是可以编址的,指令存储在连续的内存区域中,操作的数据存储在另外一块内存区域中。要启动一个读取-执行周期,第一条指令的地址将被装入程序计数器。
处理周期中的4个步骤如下:
● 读取下一条指令
● 译解指令
● 如果需要,获取数据
● 执行指令

读取下一条指令

程序计数器(PC)存放的是下一条要执行的指令的地址,因此控制单元将访问程序计数器中指定的内存地址,复制其中的内容,把副本放入到指令寄存器中,此时,指令寄存器存放的是将要执行的指令。
在进入周期的下一步之前,必须更新程序计数器,使它存放当前指令执行完时要执行的下一条指令的地址。由于指令连续存储在内存中,所以给程序计数器加1就可以把下一条指令的地址存入程序计数器。因此,控制单元将把程序计数器加1,也有可能是指令执行完之后才更改程序计数器。

译解指令

为了执行指令寄存器中的指令,控制单元必须确定它是什么指令。可能是访问来自输入设备的数据的指令,也可能是把数据发送给输出设备的指令,还可能是对数值执行某种运算的指令。
在这一阶段,指令将被译解成控制信号,CPU中的电路逻辑将决定执行什么操作,这里说明了为什么一台计算机只能执行用它自己的语言表示的指令,指令本身被逐字地嵌入了电路

如果需要,获取数据

被执行的指令要完成它的任务,可能需要额外的内存访问。例如,如果一条指令要把某个内存单元中的内容装入寄存器,控制单元就必须得到这个内存单元的内容。

执行指令

一旦译解了指令和读取了操作数(数据),控制单元就为执行指令做好了准备。执行指令要把信号发送到算术逻辑单元以执行处理。把一个数加到一个寄存器中内容的情况下,操作数将被发送给ALU,加到寄存器中的内容上。
当执行完成时,下一个周期开始。如果上一条指令是把一个值加到寄存器中的内容上,那么下一条执行可能是把结果存储到内存中的某处。但是,下一条指令也可能是一条控制指令,询问关于上一条指令的结果的问题,而且可能会改变程序计数器的内容。
在这里插入图片描述

并行体系结构

并行计算有4种一般的形式:比特级、指令级、数据级和任务级

并行级别说明
比特级比特级的并行是基于增加计算机的字长,减少处理必字长更长的数值所需的操作。一个8位的处理器中,要处理一个16位长的数值需要两个操作:一个操作用于高8位,一个操作用于地8位。对于16位的处理器,一条指令就可以完成以上操作。
指令级指令级的并行是基于程序中的某些指令能够同时独立地完成。如果一个程序需要处理相互无关的数据,那么对无关数据的处理操作能同时完成。
数据级数据级的并行是基于同一组指令集能同时对不同的数据执行,这种并行称为SIMD(单指令多数据)。它依赖于一个控制单元来指导在不同的操作数集合上执行相同的操作。
任务级任务级的并行是基于不同的处理器能在相同或者不同的数据集上执行不同的操作

  1. 可编织性(addressability):内存中每个可编址位置存储的位数 ↩︎

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值