《计算机组成原理》是计算机及有关信息技术专业的一门核心基础课程。
在学习《计算机导论》、《程序设计基础》等课程、对计算机应用有基本掌握之后,便需要了解计算机的基本组成和工作原理。此外,对于后继课程,如《操作系统》等的学习,也需要在掌握计算机基本工作原理的基础上来进行。因此,从课程的地位来说,《计算机组成原理》在整个课程体系中起着承上启下的作用,是计算机及相关专业的主要课程之一。
以上介绍引用自《计算机组成原理》教材“引言”部分。
本文取材于学习时所做的课程笔记,引用资料部分另行标注。
本人水平有限,错误之处在所难免,欢迎读者批评、指正,我也会在适当时间进行修正与补充。
本章主要介绍了计算机的发展史和发展趋势,并对计算机的应用领域有一综合的描述。随后从硬件系统和软件系统的角度介绍了计算机系统的组成结构,着重介绍了五大功能部件以及操作系统的功能。并从层次结构的角度分析了计算机的层次结构。最后就如何衡量计算机的性能做了初步讨论。
【传送门】
本章主要讨论了计算机中数值数据的表示方法,介绍二、八、十、十六进制数据的表示和相互转化方法。接着了讨论有符号数据在计算机中的表示(原码、反码、补码和移码等)。同时介绍了非数值数据——字符、汉字、声音、图形、图像在计算机中的表示方法。最后讨论了计算机中常用的检验编码(奇偶校验码、交叉校验码、CRC校验码和海明校验码)。
【传送门】
本章讨论了在计算机内部完成各种基本逻辑运算和算术运算的方法。主要基于定点数和浮点数的运算方法,较详细地论证了各种运算方法的依据。在论证过程中又主要针对补码表示的机器数进行讨论。
【传送门】
现代计算机是依据存储程序的原理而设计的。计算机的工作步骤和处理对象都存放在存储器中。存储器采用什么样的存储介质、怎样组织存储系统,以及怎样控制存储器存取操作都是至关重要的。
【传送门】
指令是要求计算机执行某种操作的命令,一台计算机所有机器指令的集合就构成该机器的指令系统。
本章首先说明指令系统的发展与性能要求,然后介绍指令的一般格式。重点讲述寻址方式、指令的分类及功能。
计算机的硬件由控制器、运算器、存储器、输入设备和输出设备五部分组成。随着集成电路的出现及其集成度的提高,设计者将控制器和运算器集成在一片集成电路上,称作微处理器,通常称之为中央处理器(Central Processing Unit,简称CPU)。CPU是计算机的核心部件。本章介绍CPU的功能、结构及工作原理。
CPU是计算机的中央处理部件,非常重要。
6.1.1 CPU的功能
CPU用来完成从存储器中取出指令并执行指令的任务。
【CPU的基本功能】
{ ① 指 令 控 制 : 控 制 程 序 的 执 行 顺 序 ② 操 作 控 制 : 将 产 生 的 一 系 列 控 制 信 号 送 往 相 应 部 件 进 行 工 作 ③ 时 间 控 制 : 控 制 信 号 执 行 的 先 后 顺 序 ④ 数 据 加 工 : 对 数 据 进 行 算 术 运 算 和 逻 辑 运 算 \left\{ \begin{array}{c} ① 指令控制:控制程序的执行顺序 \\ ② 操作控制:将产生的一系列控制信号送往相应部件进行工作 \\ ③ 时间控制:控制信号执行的先后顺序 \\ ④ 数据加工:对数据进行算术运算和逻辑运算 \end{array}\right. ⎩⎪⎪⎨⎪⎪⎧①指令控制:控制程序的执行顺序 ②操作控制:将产生的一系列控制信号送往相应部件进行工作③时间控制:控制信号执行的先后顺序 ④数据加工:对数据进行算术运算和逻辑运算
CPU由控制器和运算器组成。
(1)控制器的组成和功能
【基本功能】
{ ① 取 指 令 ② 分 析 指 令 ③ 执 行 指 令 ④ 发 出 各 种 微 操 作 命 令 ⑤ 改 变 指 令 的 执 行 顺 序 ⑥ 控 制 程 序 和 数 据 的 输 入 与 结 果 输 出 ⑦ 对 异 常 情 况 和 某 些 请 求 的 处 理 \left\{ \begin{array}{c} ① 取指令 \\ ② 分析指令 \\ ③ 执行指令 \\ ④ 发出各种微操作命令 \\ ⑤ 改变指令的执行顺序 \\ ⑥ 控制程序和数据的输入与结果输出 \\ ⑦ 对异常情况和某些请求的处理 \end{array}\right. ⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧①取指令 ②分析指令 ③执行指令 ④发出各种微操作命令 ⑤改变指令的执行顺序 ⑥控制程序和数据的输入与结果输出⑦对异常情况和某些请求的处理
【组成部件】
{ ① 指 令 寄 存 器 I R : 存 放 当 前 正 在 执 行 的 一 条 指 令 ② 程 序 计 数 器 P C : 提 供 后 继 指 令 的 地 址 ③ 地 址 寄 存 器 A R : 保 存 当 前 C P U 所 访 问 的 内 存 单 元 的 地 址 ④ 指 令 译 码 器 I D : 对 指 令 中 的 操 作 码 字 段 进 行 分 析 解 释 \left\{ \begin{array}{c} ① 指令寄存器IR:存放当前正在执行的一条指令 \\ ② 程序计数器PC:提供后继指令的地址 \\ ③ 地址寄存器AR:保存当前CPU所访问的内存单元的地址 \\ ④ 指令译码器ID:对指令中的操作码字段进行分析解释 \end{array}\right. ⎩⎪⎪⎨⎪⎪⎧①指令寄存器IR:存放当前正在执行的一条指令 ②程序计数器PC:提供后继指令的地址 ③地址寄存器AR:保存当前CPU所访问的内存单元的地址④指令译码器ID:对指令中的操作码字段进行分析解释
(2)运算器的组成与功能
【主要功能】执行所有的算术运算和逻辑运算。
【组成部件】① 算术逻辑单元ALU:实现对数据的算术运算和逻辑运算。
② 累加寄存器AC:为ALU执行算术或逻辑运算时,提供一个工作区。
③ 数据缓冲寄存器DR:暂时存放由内存储器读写的一条指令或一个数据。
④ 状态条件寄存器PSW:保存由算术指令和逻辑指令运行和测试的结果所建立的各种条件码内容。
进位标志:C=1,表示运算时最高位有进位或借位
C=0,表示运算时最高位无进位或借位
为零标志:Z=1,表示运算等于零
Z=0,表示运算不等于零
溢出标志:V=1,表示运算结果有溢出
V=0,表示运算结果无溢出
为负标志:N=1,表示运算结果为负
N=0,表示运算结果非负
6.2.1 指令周期
指令周期:CPU取指令到执行完这条指令所需的时间。
指令周期可以细分为若干个CPU周期(也称机器周期),CPU周期又包含若干个时钟周期(也称节拍脉冲或T周期)。
6.2.2 典型程序举例
八进制地址 指 令
020 CLA
021 ADD 30
022 STA 40
023 NOP
024 JMP 21
…
030 数据 06
031 数据 40
… 数据 …
040 数据 23
非访问主存指令CLA的功能:对累加器AC清零
(1)取指令阶段(第一个CPU周期):
步骤:1)PC → AR
2)PC + 1
3)AR → ABUS
4)M → DBUS → DR
5)DR → IR
6)译码、测试
7)CPU识别出CLA指令
(2)执行指令阶段(第二个CPU周期):
步骤:1)控制器送一控制信号让ALU工作
2)0 → AC
直接访主存指令ADD 30的功能:将累加器AC的内容加上地址为30存储单元的内容
(1)取指令阶段(第一个CPU周期):
步骤:同上
(2)执行指令阶段
送操作数地址(第二个CPU周期):
步骤:IR(30)→ AR
两操作数相加(第三个CPU周期):
步骤:1)AR → ABUS
2)M → DBUS → DR
3)AC + DR → AC
间接访主存指令STA 40的功能:将累加器的值存储到地址为40的存储单元
(1)取指令阶段(第一个CPU周期):
步骤:同上
(2)执行指令阶段
送地址指示器(第二个CPU周期):
步骤:IR(40)→ AR
存储和数(第三个CPU周期):
步骤:1)AC → DR
2)AR → ABUS
3)DR → DBUS
4)DBUS → M
程序控制指令NOP的功能:空操作
(1)取指令阶段(第一个CPU周期):
步骤:同上
(2)执行指令阶段(第二个CPU周期):
CPU空转,不发出任何控制信号
程序控制指令JMP 21的功能:程序无条件的转移到存储单元地址为21的指令开始执行。
(1)取指令阶段(第一个CPU周期):
步骤:同上
(2)执行指令阶段(第二个CPU周期):
步骤:1)IR(21)→ PC
控制器的控制方式:控制不同操作序列时序信号的方法。
【三种控制方式】
① 同步控制方式:指在任何情况下,给定的指令在执行时所需的机器周期数和时钟周期数都是固定不变的。
② 异步控制方式:每条指令的指令周期可由多少不等的机器周期数组成,每条指令、每个操作控制信号需要多少时间就占用多少时间。
③ 联合控制方式:大部分操作序列安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件“回答”信号作为本次操作的结束。
【微程序控制的基本思想】
(1)将指令分解成基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序。每种指令对应一段微程序,在制造CPU时固化在CPU中的控制存储器中。执行一条指令时,CPU依次从控制存储器中取微指令,从而产生微命令。
(2)一条微指令包含的微指令,控制实现一步操作;若干条微指令组成的一段微程序解释执行一条指令。控制存储器中的微程序能解释执行整个指令系统的所有指令。
6.4.1 微程序设计技术
【微程序设计的基本概念】
微命令:由控制部件向执行部件发出控制命令,这种控制命令称微命令。
微操作:执行部件接受微命令后,完成的最基本的操作称微操作。
{ 相 容 性 微 操 作 : 在 同 时 或 同 一 个 C P U 周 期 内 可 以 并 行 执 行 的 微 操 作 。 相 斥 性 微 操 作 : 在 同 时 或 同 一 个 C P U 周 期 内 不 能 并 行 执 行 的 微 操 作 。 \left\{ \begin{array}{c} 相容性微操作:在同时或同一个CPU周期内可以并行执行的微操作。 \\ 相斥性微操作:在同时或同一个CPU周期内不能并行执行的微操作。 \end{array}\right. {相容性微操作:在同时或同一个CPU周期内可以并行执行的微操作。相斥性微操作:在同时或同一个CPU周期内不能并行执行的微操作。
微指令:一组微命令的组合。
微程序:一组微指令序列的集合;一段微程序对应一条指令。
控制存储器:在控制器内部用来存放微程序的存储器。
【微指令基本结构】
(1)微指令的基本格式
操作控制部分:用来发出管理和指挥全机工作的控制信号。
顺序控制部分:用来决定产生下一条指令的地址。
(3)微程序设计技术
【设计微指令结构的目标】
① 有利于缩短微指令字长度
② 有利于减小控制存储器的容量
③ 有利于减少微程序长度
④ 有利于提高微程序的执行速度
⑤ 有利于对微指令的修改
⑥ 有利于提高微程序设计的灵活性
1)微指令的编码译码控制方法:对微指令中的操作控制字段进行编码的表示,并且给出操作控制信号的方法。
① 位直接控制法:操作控制字段中的每一位代表一个微命令。
② 字段直接译码控制法:把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。(其微指令结构如教材P161 图5-17)
2)微地址的形成方法及微程序流的控制
现行微指令:当前正在执行的微指令
后继微指令:下一条微指令
后继微地址: 后继微指令的地址
【产生后继微地址的三种方法】
① 计数器方式:
● 在顺序执行微指令时,后继微地址由现行微地址加上一个增量来产生;
● 在非顺序执行微指令时,必须通过转移方式,使先现行微指令执行后,转去执行指定后继微地址的下一条微指令。
② 增量方式与评定方式相结合:
微指令由控制字段、条件选择字段、转移地址字段组成。
微命令控制字段可以编码或直接控制;
条件选择字段用来规定条件转移微指令要测试的外部条件,
● 当转移条件满足时,转移地址字段用作下一个微地址;
● 如无转移要求,要使用微程序计数器uPC提供下一条微指令的地址。
③ 多路转移方式:
● 当微程序不产生分支时,后继微地址直接由微指令的顺序控制字段给出;
● 当微程序产生分支时,有若干个“候选”微地址可供选择:即按顺序控制字段的“判别测试”标志和“状态条件”信息来选择其中一个微地址。
6.4.2 微程序控制器
微程序控制器的组成
1)控制存储器:存放实现全部指令系统的微程序。
2)微指令寄存器:存放从控制存储器中读出的微指令。
3)微地址寄存器:存放将要访问的下一条微指令的地址。
4)地址转移逻辑:当微程序出现分支时,地址转移逻辑根据判别测试字段和状态条件去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。
以上所有配图摘自《计算机组成原理》。
8086/8088寻址方式
【8086/8088汇编语言指令格式】
[标号:] 操作码 [操作数,…] [;注释]
标号:表示该指令在代码段中的偏移地址
操作码:表示该操作的功能
操作数:表示该指令所需的操作数
注释:对指令的说明
立即数操作数:操作数在指令中
寄存器操作数:操作数在寄存器中
存储器操作数:操作数在存储器中
I/O操作数:操作数在I/O端口中
与数据有关的寻址方式
① 立即寻址方式:操作数直接放在指令中,或紧跟在指令操作码后面。
例:MOV AL,56H
ADD BH,‘A’
② 寄存器寻址方式:操作数在指令指明的寄存器中
例:MOV AL,56H
ADD BH,AL
③ 直接寻址方式
总线技术是计算机系统的一个重要技术,总线的结构直接影响着计算机的性能,它是承载计算机系统各个部件之间信息传递的桥梁。
【传送门】
计算机的外围设备主要包括输入设备、输出设备、外部存储设备,以及数据通信设备和过程控制设备。它们的功能是在计算机和其他设备之间,以及计算机与计算机之间提供联系。
【传送门】
计算机系统输入/输入(I/O)的种类日益增多,使得输入/输出设备在计算机系统中的影响日益显著。
【传送门】
(已完结 2021.05.23)