五 计算机组成

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

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

组成计算机的这三个子系统。

5.1 中央处理单元

中央处理单元(CPU)用于数据的运算。在大多数体系结构中,它有三个组成部分: * 算术逻辑单元(ALU)

  • 控制单元
  • 寄存器组、快速存储定位

5.1.1 算术逻辑单元(ALU)

算术逻辑单元(ALU)对数据进行 逻辑、移位和算术 运算。

  • 逻辑运算: 四种逻辑运算 与 或 非 异或。这些运算把输入数据作为二进制位模式, 运算的结果也是二进制位模式。
  • 移位运算: 逻辑移位运算 和 算术移位运算。用途是用 2除 或 乘 一个整数。
  • 算术运算: 整数 和 实数的 加 减 运算

5.1.2 寄存器

寄存器是用来 存放临时数据 的 高速独立 的存储单元。 CPU的运算离不开大量寄存器的使用。

cpu的作用是从内存中逐条地取出指令,并将取出的指令存储在 指令寄存器 中。解释并执行指令

  • 数据寄存器: 用来保存运算的中间结果,命名位 $R_1$ 到 $R_n$
  • 指令寄存器(IR): 存储CPU从内存中获取的指令
  • 程序计数器(PC): 程序计数器中 保存着当前正在执行的指令。当前的指令执行完后, 计数器将自动加1,指向下一条指令的内存地址。

5.1.3 控制单元

CPU 的第三个部分是控制单元,控制单元 控制各个子系统的操作

控制是通过从控制单元到其他子系统的 信号 来进行。

5.2 主存储器(内存)

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

数据 以字的位组的形式 在内存中传入和传出。字可以是8位、16位、32位, 甚至有时是64位(还在增长),如果字是8位,一般称为1字节。 术语字节在计算机科学中使用相当普遍,因此有时称16位为2字节,32位为4字节。

5.2.1 地址空间

在存储器中存取每个字都需要有相应的标识符。尽管程序员使用命名的方式来区分字(或一组字的集合), 但在硬件层次上,每个字都是通过地址来标识的。 所有在存储器中标识的独立的地址单元的总数称为地址空间。

例如,一个64 KB、字长为1字节 的内存的地址空间的范围为0~65 535

经常用来表示存储大小的单位名称如下图。

注意这些专用术语可能有误导,好像以10的幂的形式来近似表示字节数, 而实际上字节的数目是2的幂。采用2的幂形式为单位使得寻址更为方便。

内存地址用无符号二进制整数定义

由于计算机都是以 位模式 存储数并进行运算,因此 地址本身也是用位模式表示的。 如果一个内存是64K($2^{16}$),字长为 1 字节,那么就需要16位的位模式来确定地址。

地址用无符号整数表示(不用负的地址)。换言之,起始地址通常是 0000000000000000(地址0), 最后一个地址通常是1111111111111111(地址65535)。

如果一个计算机有N个字的存储空间,那就需要有 $log_2 N$ 位的无符号整数来确定一个存储单元。

5.2.2 存储器类型

主要有两种类型的存储器: RAM 和 ROM

RAM

随机存取存储器(RAM)是计算机中主存的主要组成部分。在随机存取设备中, 可以使用存储单元地址来随机存取一个数据项,而不需要存取位于它前面的所有数据项。

RAM的另一个特点是 易失性。 当系统断电后,信息(程序或数据)将丢失 。 换句话说,当计算机断电后,存储在RAM中的信息将被删除。

RAM技术又可以分为两大类: SRAM 和 DRAM

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

ROM

只读存储器(ROM) 的内容是由制造商写进去的。用户只能读但不能写,

它的优点是 非易失性当切断电源后,数据也不会丢失

通常用来存储那些关机后也不能丢失的程序或数据。 例如,用ROM来存储那些在开机时运行的程序。

其他存储器

5.2.3 存储器的层次结构

计算机用户需要许多存储器,尤其是速度快且价格低廉的存储器。 但这种要求并不总能得到满足。存取速度快的存储器通常都不便宜。 因此需要寻找一种折中的办法。解决的办法是采用如下的存储器层次结构

1. 当对速度要求很苛刻时可以使用少量高速存储器。CPU中的寄存器就是这种存储器

  1. 用适量的中速存储器来存储经常需要访问的数据。高速缓冲存储器就属于这一类。
  2. 用大量的低速存储器存储那些不经常访问的数据。主存就属于这一类。

5.2.4 高速缓冲存储器

高速缓冲存储器的 存取速度要比主存快,但是比 CPU及其内部的寄存器要慢

高速缓冲存储器通常 容量较小,且常被置于CPU 和主存之间

1. CPU 首先检查高速缓冲存储器。

  1. 如果要存取的字存在,CPU 就将它复制; 如果不存在,CPU 将从主存中复制一份从需要读取的字开始的数据块。 该数据块将覆盖高速缓冲存储器中的内容。
  2. CPU 存取高速缓冲存储器并复制该字。

5.3 输入输出子系统

计算机中的第三个子系统是称为 输入/输出(I/O)子系统 的一系列设备。 这个子系统可以 使计算机与外界通信,并在 断电的情况下存储程序和数据。 输人/输出设备可以分为两大类: 非存储设备 和 存储设备。

5.3.1 非存储设备

非存储设备使得CPU/内存可以与外界通信,但它们不能存储信息

  1. 键盘和监视器

两个最常见的非存储 输入/输出设备 是键盘和监视器。键盘提供输入功能; 监视器 显示输出并同时响应键盘的输入。程序、命令和数据的输人或输出都是 通过字符串进行的。字符则是通过字符集(如ASCII码)进行编码。 此类中其他的设备有鼠标、操纵杆等。

  1. 打印机

打印机是一种用于 产生永久性记录的输出设备。它是非存储设备, 因为要打印的材料不能够直接由打印机输入计算机中,而且也不能再次利用, 除非有人通过打字或扫描的方式再次输入计算机中。

5.3.2 存储设备

尽管存储设备被分为 输人/输出设备,但它可以存储大量的信息以备后用。 它们要比主存便宜得多,而且存储的信息也不易丢失(即使断电信息也不会丢失)。 有时称它们为 辅助存储设备,通常分为 磁介质 和 光介质 两种。

磁介质存储设备

磁介质存储设备使用 磁性 来存储位数据。如果一点有磁性则表示 1,如果没有磁性则表示 0

磁盘

磁盘是由一张一张的 磁片叠加 而成的。这些磁片由薄磁膜封装起来。 信息是通过盘上每一个磁片的 读/写磁头 读写磁介质表面来进行读取和存储的。

  • 表面结构。为了将数据存储在磁盘的表面,每个盘面都被划分成磁道,每个磁道又分成若干个扇区。 磁道间通过磁道内部间隔隔开,扇区之间通过扇区内部间隔隔开。
  • 数据存取。磁盘是一个随机存取设备。在随机存取设备中,数据项可以被随机存取, 而不需要存取放置在其前的所有其他数据。但是,在某一时间可以读取的 最小的存储区域 只能是一个扇区。数据块可以存储在一个或多个扇区上,而且该信息的获取不需要通过 读取磁盘上的其他信息。
  • 性能。磁盘的性能取决于几个因素:最重要的因素是 角速度寻道时间 和 传送时间
  • 角速度定义了 磁盘的旋转速度
  • 寻道时间定义了 读/写磁头 寻找数据所在磁道的时间
  • 传送时间定义了 将数据从磁盘移到 CPU/内存 所需要的时间

磁带

  • 表面结构。磁带的宽度可以分为9个磁道; 磁道上的每个点可以存储1位的信息。 垂直切面的9个点可以存储8位(即1字节)的信息,还有 1位用作错误检测
  • 数据存取。磁带是 顺序存取设备。尽管磁带的表面可能会分成若干块,但是却没有 寻址装置来读取每个块。要想读取指定的块就需要按照顺序通过其前面所有的块。
  • 性能。尽管磁带的 速度比磁盘慢,但它非常便宜。现在, 人们使用磁带来存储大容量的数据。

光存储设备

光存储设备是一种新技术,它使用 光(激光)技术 来存储和读取数据。 在发明了CD(光盘)后人们利用光存储技术来保存音频信息。现在,相同的技术(稍作改进) 被用于存储计算机上的信息。 常见的光盘分为如下几类

  • 只读光盘 (CD-ROM)

  • 可刻录光盘 (CD-R)

  • 可重写光盘 (CD-RW)

  • 数字多功能光盘 (DVD)。

5.4 子系统互联

它们三者之间在内部是如何连接的,内部连接扮演着很重要的角色, 因为信息需要在这三个子系统中交换。

5.4.1 CPU和存储器的连接

CPU和存储器之间通常由称为 总线 的 三组线路连接在一起,它们分别是: * 数据总线

  • 地址总线
  • 控制总线

数据总线

数据总线是由 多根线组成,每一根线上每次传送1 bit的数据。线的数量取决于计算机的字的大小。

例如,计算机的字是32位(4字节),那么需要有32根线的数据总线, 以便同一时刻能够同时传送32位的字。

地址总线

地址总线 允许访问存储器中的某个字,地址总线的线数取决于存储空间的大小。 如果存储器容量为 $2^n$ 个字,那么地址总线一次需要传送n位的地址数据。 因此它需要n根线。

控制总线

控制总线负责 在中央处理器和内存之间传送信息。例如,必须有一个代码从CPU发往内存, 用于指定进行的是读操作还是写操作。控制总线的线数取决于计算机所需要的控制命令的总数。

如果计算机有 $2^m$ 条控制命令,那么控制总线就需要有m根,因为m位可以定义$2^m$个不同的操作。

5.4.2 I/O设备的连接

输入/输出设备 不能够直接与连接CPU和内存的总线相连。因为输入/输出设备的本质与 CPU和内存的本质不同,输入/输出设备都是些 机电、磁性或光学设备

CPU和内存是电子设备。与CPU和内存相比,输入/输出设备的操作速度要慢得多。 因此必须要有 中介 来处理这种差异,输入/输出设备 是通过一种被称为 输入/输出控制器 或接口 的器件连接到总线上的。每一个 输入/输出设备 都有一个特定的 控制器

控制器

控制器,或者说接口,清除了 输入/输出设备 与 CPU及内存 在本质上的障碍。 控制器可以是 串行或并行 的设备。

  • 串行控制器: 只有一根数据线 连接到设备上
  • 而并行控制器: 有数根数据线 连接到设备上,使得一次能同时传送多个位。

有几种控制器至今还在使用,如今最常用的有SCSI、火线、USB和 HDMI

  1. SCSI总线
    小型计算机系统接口(SCSI)最初是1984年为Macintosh计算机而设计的。 今天还有许多系统使用它。它是一个816或 32 线的 并行接口。 SCSI接口如下图所示,它提供了 菊花链 连接,连接链的两端都必须有 终结器, 并且每个设备都必须要有唯一的地址(目标 ID)。

  1. 火线
    IEEE标准1394规定的 串行接口,俗称为 火线。它是一种 高速的串行接口, 数据采用 数据包 的形式传送,数据的传输速度高达50 MB/s,然而对于版本最新的 数据线,这个速度可以翻一倍。它可以在一条 菊花链 或 树形连接 (只用一根线) 上连接多达63个设备。和SCSI相比,它不需要终结器。

  1. USB
    通用串行总线 (USB) 控制器是一种可以和火线控制器相媲美的控制器。 虽然术语使用了词bus,但USB是一种 串行控制器, 用以连接与计算机相连的一些 低速和高速设备。USB控制器与总线间的连接和设备与控制器间的连接如下图。

  • 根集线器(USB控制器): 多个设备可以被连接到一个 USB控制器上

在USB2.0协议中,可以允许127个设备组成树状拓扑结构连接到 一个USB控制器 上。 * 控制器为根节点,集线器为中间节点,设备为叶节点(末端节点)

  1. 控制器(根集线器)能感知到树中其他集线器的存在
  2. 而其他集线器是被动的设备,不能感知它下面的集线器。它们只是简单地传送数据。
    设备可以 不需要关闭计算机很容易地被移除或连接到树中。这称为 热交换。 当集线器被从系统中移除时,与此集线器相连的所有设备和其他集线器也被移除。

    1. USB2: 提供三种传送速率: 1.5 Mbps(每秒兆位)、12 Mbps和 480 Mbps
  • 低速率可以用于低速设备,如键盘和鼠标;
  • 中速率用于打印机
  • 高速率用于大容量的存储设备。
  1. USB 3.0: 增加了一个新的叫做“SuperSpeed”(超感)的传输模式, 这个模式可以将数据传输的速率提升至4.8 Gbit/s。 根据承诺,USB 3.0的速率将更新至 10 Gbit/s
  1. HDMI
    高清晰度多媒体接口(HDMI)是现有 视频模拟标准 的数字化替代品。 用于从一个资源向另一个兼容的计算机显示器、视频投影仪、数字电视或 数字音像设备传输视频数据和数字音像数据。

5.4.3 I/O设备的寻址

通常 CPU 使用 相同的 总线 在 主存和输人/输出设备 之间读写数据。 唯一的不同是指令

  • 如果指令涉及主存中的字,那么数据会在 主存和CPU 之间传送。
  • 如果指令涉及 输人/输出设备,那么数据会在 输人/输出设备和CPU 之间传送。

有两种方法用来对输入/输出设备进行寻址,即 I/O独立寻址 和 I/O存储器映射寻址

I/O独立寻址

IO独立寻址中,用来 读/写内存 的指令与用来 读/写输入/输出设备的指令是完全不同的。

有专门的指令完成对 输入/输出设备的测试、控制以及读写操作。每个 输人/输出设备 有自己的地址。 因为指令的不同,所以 输入/输出地址 可以和 内存地址重叠 而不会产生混淆。

例如,CPU 可以使用读命令Read 101来从内存中读取字101。 它也可以使用输入命令Input 101来从地址端口为 101的输入/输出设备中读取数据。 这里不会发生混淆,因为Read指令是规定从内存中读取数据, 而Input 指令则是规定从输入/输出设备中读取数据。

IO存储器映射寻址

在 IO存储器映射寻址方式 中,CPU将 输入/输出控制器 中的每一个寄存器都看作 内存中的某个存储字。换言之,CPU没有不同的指令用来表示是从 内存 或是 从 输人/输出设备传送数据。

例如,在指令集中只有一条Read指令, 如果地址指定的是内存中的某个单元,则从内存中读取数据。 如果地址指定的是输人/输出设备中的某个寄存器,那么就从寄存器中读取数据。

存储器映射的输入/输出的配置 优点 在于 有一个较小的指令集, 所有对 内存 的操作指令都同样适合于 输入/输出设备

其 缺点 是 输入/输出控制器 占用了一部分内存地址。

例如,假使有5个输人/输出控制器,每个控制器有4个寄存器,则共占用20个地址。 相应的内存的大小就减小了20个字。

5.5 程序执行

当今,通用计算机使用称为 程序 的一系列指令来处理数据。 计算机通过 执行程序,将 输入数据转换成输出数据。程序和数据都放在内存中。

5.5.1 机器周期

CPU利用重复的机器周期来执行程序中的指令,一步一条,从开始到结束。 一个简化的 周期 包括3步:取指令译码 和 执行

  1. 取指令: 将下一条执行的指令复制到指令寄存器中,然后程序计数器自动加1

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

  1. 译码: 解析指令,产生一系列系统可以执行的二进制代码

机器周期的第二阶段是译码阶段。当指令置于指令寄存器后,该指令将由 控制单元负责译码。 指令译码的结果是 产生一系列系统可以执行的二进制代码

  1. 执行: 执行指令参数的二进制代码

指令译码完毕后,控制单元发送 任务命令 到 CPU 的某个部件, 例如,控制单元告知系统,让它从内存中加载(读)数据项, 或者是CPU让算术逻辑单元将两个输人寄存器中的内容相加并将结果保存在输出寄存器。 这就是执行阶段。

5.5.2 输入输出操作

计算机需要通过命令把数据从 IO设备传输 到 CPU和内存。

因为 输入/输出设备 的运行速度比 CPU慢得多, 因此 CPU 的操作在某种程度上必须 和 输入/输出设备 同步。

有三种方法被设计用于同步,分别为 * 程序控制 输入/输出

  • 中断控制 输入/输出
  • 直接存储器存取(DMA)。

程序控制IO

特点是 CPU 等待 I/O设备。

当 CPU 遇到 IO 指令后,CPU停止工作直到数据传输完成。

CPU不时地查询IO设备的状态: 1. 如果设备做好了传输准备,那么数据将被传送到CPU;

  1. 如果设备没有做好传输准备,那么CPU将继续查询IO设备的状态直到I/O设备准备好为止。

中断控制IO

在 中断控制IO 中,首先CPU告知IO设备即将开始传输, 但是CPU并不需要不停地查询I/O设备的状态。当IO设备准备好时, 它通知(中断)CPU。在这过程中,CPU还可以做其他工作。 例如,运行其他程序,从其他的 I/O设备 读入或传出数据

在这种方法中,CPU时间没有被浪费。当慢速的IO设备正在完成一项任务时, CPU可以做其他工作。注意,像程序控制IO 一样,这种方法也在IO设备 和 CPU 之间传输数据。数据在输入操作后被传送到内存,在输出操作前则是从内存中取出。

直接存储器存取(DMA)

第三种传输数据的方法是 直接存储器存取 (DMA)。 这种方法用于在 高速I/O设备间传输大量的数据块

例如磁盘、内存(不需要通过CPU的数据传输)。 这种方法需要一个 DMA 控制器来承担CPU的一些功能。 DMA 控制器中有寄存器,可以在内存传输前后保存数据块。

DMA与数据、地址和控制总线的连接情况如下图。

在使用这种方法进行IO操作时,CPU发送信息给DMA。 这信息包括 传输类型(输入或输出)内存单元的起始地址以及传输的字节数。 之后 CPU就可做其他的工作。

当准备好传输数据时,则由 DMA 控制器通知 CPU 它需要获得总线的使用权。 这时 CPU 停止使用总线并转交给 DMA 控制器使用。 在内存和 DMA 间的数据传输完成后,CPU 继续进行正常操作。

CPU 仅当在 DMA 和内存 间传输数据时才空闲, 而不是在设备为传输数据做准备时。

5.6 不同的结构体系

5.6.1 CISC

CISC(读作[sisk])是 复杂指令集计算机。 * 设计策略: 使用大量的指令,包括复杂指令

  • 优点: 程序设计更容易,每个简单的或复杂的任务都有一条对应的指令
  • 缺点: 指令集的复杂性使得CPU和控制单元电路非常复杂
  • 优化方案: CPU不直接执行机器语言指令,只执行被称为微操作的简单操作, 复杂指令被转化为一系列简单操作后由CPU执行,

5.6.2 RISC

RISC(读作[risk])是精简指令集计算机。 * 设计策略 使用少量的指令完成最少的简单操作。复杂指令用简单指令子集模拟。

  • 缺点: 程序设计比在其他设计中更难、更费时,因为复杂指令都用简单指令来模拟。

5.6.3 流水线

计算机对于每条指令使用 取指令译码 和 执行 三个阶段

  • 早期计算机,每条指令的这三个阶段需要串行完成。
  • 现代计算机使用称为流水线的技术来改善吞吐量(在单位时间内完成的指令总数)

这个理念是如果 控制单元 能同时执行 两个或三个 阶段, 那么 下一条指令 就可以在 前一条指令 完成前开始。

5.6.4 并行处理

如今计算机可以拥有具有 多个控制单元多个算术逻辑单元 和 多个内存单元 的计算机。 这个思想称为 并行处理。像流水线一样,并行处理能改善吞吐量

并行处理可能发生在数据流、指令流或两者都有

计算机的组织(从数据处理来看)可以分成 4 类

SISD

单指令流,单数据流(SISD)组织表示计算机有 一个 控制单元、 一个 算术逻辑单元 和 一个内存单元。指令被 顺序执行, 每条指令可以存取数据流中的一个或多个数据项。

SIMD

单指令流,多数据流 (SIMD)组织表示计算机有 一个 控制单元、 多个处理单元 和 一个内存单元。所有 处理器单元 从控制单元接收 相同的指令, 但在 不同的数据项 上操作。

MISD

多指令流,单数据流(MISD)体系结构是属于 多个指令流的 多个指令作用于相同的数据项 的体系结构。

MIMD

多指令流,多数据流(MIMD)体系结构是属于 多个指令流的 多个指令作用于多个数据流 (每条指令作用于一个数据项)。

5.7 简单计算机

  • 数据寄存器:1616位的数据寄存器R0R15
  • 控制单元:有两个专用寄存器,程序计数器PC和指令寄存器IR
    • 程序计数器PC,只含有8位,保存的是下一条被执行的指令的内存存储单元地址, 在每一个机器周期后,程序计数器加1,指向下一条指令
    • 指令寄存器IR,含有16位,保存当前机器周期译码的指令
  • 主存

    • 有256个16位的存储单元,二进制的地址空间为$(00000000~11111101)2$ 或是十六进制的 $(00~FD){16}$
    • 主存中 既有数据又有程序,前64个存储单元 $(00~3F){16}$被专用于程序指令, 任何程序的程序指令存储在连续的内存单元中, 内存单元$(40~FD){16}$用来存储数据
  • 输入/输出子系统

子系统由一个 键盘和显示器 组成,子系统通过 内存映射地址(I/O存储器映射寻址), 它们的地址分别为$(FE){16}$和$(FF){16}$

  • 指令集

    • 简单计算机具有 $16$ 条指令集合的能力。

  • 每条计算机指令由两部分构成: 操作码(opcode) 和 操作数(operand)。 操作码 指明了在操作数上执行的操作的类型 。
  • 每条指令由 16 位组成,被分成 4 个 4 位的域。最左边的域含有操作码, 其他 3 个域含有 操作数 或 操作数的地址

  • 不需要的操作数域被填以
  • 寄存器地址是用 单个 十六进制数来表示的,所以只用一个域。
  • 内存单元是用 两个 十六进制数来表示,所以用两个域。
  • 指令处理
  1. 取指令阶段: 其地址由程序计数器PC决定的指令 从内存 中得到, 被装入 指令寄存器IR中。
  2. 译码阶段: IR中的指令被译码,所需要的操作数从寄存器或内存中取得。
  3. 执行阶段: 指令被执行,结果被放入合适的内存单元或寄存器中

一旦三个阶段结束,控制单元又开始新的机器周期,现在PC指向下一条指令, 直到CPU遇到HALT指令。

5.7.1 示例

让我们显示简单计算机如何进行整数 A 和 B 的相加的,创建的结果为C。 假定整数是 二进制补码格式 。在数学上,这个操作表示为:

$$ C=A+B $$

为了用简单计算机解决这个问题,有必要把前面两个整数存放在寄存器中(例如 R0 和 R1)。 操作的结果存放在第三个寄存器中(例如 R2)。ALU只能操作那些存储在CPU数据寄存器中 的数据。但是,大多数计算机(包括简单的计算机)在CPU中只有有限的寄存器。 如果数据项的数量很大,并且它们在程序执行过程中应该保留在计算机中, 比较好的方法是把它们存储在内存中,临时地把它们调入寄存器中。

这样我们假定前两个整数存储在内存单元$(40){16}$和$(41){16}$。 结果应该被存储在内存单元$(42)_{16}$中。这就意味着两个整数需要被调入CPU中, 结果需要被存储在内存中。因此,完成这个简单加法的简单程序需要5条指令,显示如下:

  1. 把内存 M40 的内容装人寄存器R0(R0 <- M40)。
  2. 把内存 M41 的内容装入寄存器R1(R1 <- M41)。
  3. 相加 R0 和 R1 的内容,结果放入R2中。(R2 <- R0 + R1 )。
  4. R2的内容存入M42中(M42 <- R2)。
  5. 停机。

指令被码为

5.7.2 存储程序和数据

为了遵循冯·诺依曼模型,我们需要把程序和数据存储在内存中,

  • 可以从内存单元$(00){16}$到$(04){16}$存储5行程序。
  • 数据也需要被存储在内存单元$(40){16}$、$(41){16}$和$(42)_{16}$中。

5.7.3 指令周期

计算机每条指令使用一个指令周期。如果有5条指令的小程序,那么需要5个指令周期。 每个周期通常由三个步骤组成: 取指令、译码、执行

  • 周期1: PC指向程序的第一条指令,它在内存单元$(00)_{16}$中。

  1. 控制单元取出存储在内存单元$(00)_{16}$中的指令,放入IR中,PC的值加1;
  2. 控制单元译码指令$(1040)_{16}$为 R0 <- M40;
  3. 控制单元执行指令,这意味着存储在内存单元$(40)_{16}$中的整数的 副本 被装人寄存器R0中。
  • 周期2:

  • 周期3:

  • 周期4:

  • 周期5:

输入操作必须总是 从输入设备读数据到内存 ; 输出操作必须总是 从内存写数据到输出设备

计算机科学导论:第五章 计算机组成相关推荐

  1. 计算机科学导论第五章计算机组成课后答案,计算机科学导论第五章计算机组成.ppt...

    计算机科学导论第五章计算机组成.ppt 计算机导论 第5章计算机组成 计算机硬件系统的组成 计算机系统由硬件子系统和软件子系统组成 硬件 Hardware 子系统 组成一台计算机的物理设备的总称叫做计 ...

  2. 导论 计算机组成 ppt,计算机科学导论 第五章 计算机组成.ppt

    计算机科学导论 第五章 计算机组成.ppt (58页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 计算机导论第5章 计算机组成计算机硬件 ...

  3. 计算机科学导论第五章计算机组成 学习笔记+习题答案

    第五章 计算机组成 通过本章的学习,学生应该能够∶ 列出计算机的三个子系统; 描述计算机中央处理单元(CPU)的作用; 描述典型计算机中指令周期的取指令-译码-执行阶段; 描述主存和它的地址空间; 区 ...

  4. 本课程中拟学的计算机思维,南京理工大学计算机科学导论 第1章计算机、计算与计算思维练习题答案解析...

    大学基础课程,计算机导论 第1章计算机.计算与计算思维 1.各种自动化设备,如数控机床.自助加油站中有计算机吗? (A)YES:(B) NO 2.计算机包括___D__. (A)台式机.便携机: (B ...

  5. 计算机科学导论第六章计算机网路 学习笔记+习题答案

    笔记 通过本章学习,学生应该能够: 描述网络标准.物理结构和网络分类; 区分互联网(internet)与因特网(Internet); 描述作为因特网网络模型的TCP/IP协议族; 定义TCP/IP协议 ...

  6. 导论 计算机组成 ppt,计算机科学导论五章计算机组成.ppt

    计算机科学导论五章计算机组成 CPU cpu风扇 内存 显卡 主板 声卡 外存储器 1.磁盘 磁盘内部组成 磁盘与磁盘驱动器是封装在一起的. 磁盘片 读写磁头 外存储器 2.光盘(Compact Di ...

  7. 计算机科学导论第五版_五月份将开始提供438项免费在线编程和计算机科学课程

    计算机科学导论第五版 Five years ago, universities like MIT and Stanford first opened up free online courses to ...

  8. 美国计算机科学公司的全球化发展历程,计算机科学导论第1章 概述.ppt

    计算机科学导论第1章 概述 本章小结 计算机科学是以计算机为研究对象的一门科学,它是一门研究范畴十分广泛.发展非常迅速的新兴学科.全面地了解计算机科学技术的学科内涵和研究范畴,对于读者而言是十分必要的 ...

  9. 计算机科学导论专业理解,浅析计算机专业_计算机科学导论_课程的现状及思考.doc...

    浅析计算机专业_计算机科学导论_课程的现状及思考 傅勇 1,张琳 2 (1.南昌大学 人民武装学院 计算机系,江西 南昌 330043:2.南昌陆军指挥学院,江西 南昌 330043)摘要:<计 ...

  10. 软件工程导论第五章复习总结附思维导图及部分习题答案

    软件工程导论第五章复习总结附思维导图及部分习题答案 总体设计 一.设计过程 1.设想提供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.设计数据库 7.制定测试计 ...

最新文章

  1. python编写自定义函数计算一维numpy数组中与指定目标数值最接近(距离最近)的数值(find closest value in numpy array to a certain value)
  2. 数秒植入木马,一击即破,你的DNN模型还安全吗?
  3. FLASH与E²PROM的区别
  4. 使用log4j日志-配置载入问题
  5. .NET Core 3.1之深入源码理解HealthCheck(二)
  6. 【结论】游戏(jzoj 1984)
  7. hdfs查看目录大小文件大小
  8. 基于JAVA+SpringMVC+Mybatis+MYSQL的个人记账管理系统
  9. ASP.NET中 Bin,App_Browser,App_code,App_Data,App_Theme 等文件
  10. 数据分析中的常用数学模型实战教程笔记(上)
  11. JAVA 逆向工程技术研究日志
  12. ubifs代码解析之ubi_attach_mtd_dev--个人学习
  13. java怎么弹出页面_java怎么样实现弹出窗口
  14. java期刊影响因子_[转]计算机类中文核心期刊影响因子
  15. Android学习笔记之如何使用圆形菜单实现旋转效果...
  16. Android系统的指纹开发
  17. win10计算机里的工具在哪里设置,win10系统桌面上添加自带日历小工具的设置办法...
  18. datastage(IBM InfoSphere Information Server )日志的获取和分析
  19. 【论文阅读】Regional Semantic Contrast and Aggregation for Weakly Supervised Semantic Segmentation
  20. java国际象棋棋牌_用java画国际象棋棋盘

热门文章

  1. 图像抗锯齿手段MSAA
  2. Atrous_unet
  3. ArcGIS栅格数据SetNull IsNull Con函数
  4. 我的网页作品(div+css)
  5. html4不换行,html不换行代码?
  6. H5 div 居中显示
  7. 如何在Adobe Illustrator中绘制多肉盆栽插图
  8. 使用thyme leaf模板CRUD时遇到的坑
  9. Java 微信公众平台开发(二)——事件推送与被动回复
  10. 【Java进阶营】MyBatis四大核心概念