计算机组成与设计 计算机的核心部件--处理器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• 条件码建立与转移判断:
– ①在转移指令中先完成比较运算,然后根据比 较的结果来判断转移条件是否成立,如果条件 为“真”则转移,否则顺序执行下一条指令。 – ②由转移指令之前的指令来建立条件码,转移 指令根据条件码来判断是否转移。 – 条件码:进位C、结果为零Z、结果溢出V、结 果为负N、奇偶校验P。
• 指令格式
操作码 操作数地址
• 操作码指本条指令执行什么操作。 • 地址码指明操作数的来源(源地址)与运算结 果的去向(目的地址)。
字长与指令长度的关系
• 字长是指计算机直接处理二进制数据的位 数。 • 通常机器字长/指令长度都是字节长度的整 数倍。 • 指令长度=f(操作码长度, 操作数地址长度, 操作数地址的个数)
4.2 信息存储
• 内存的地址是按字节编址。 • 处理器字长一般是8b、16b、32b、64b等之 一,是字节的整数倍。 • 设机器字长为32(4B)位,计算机的指令和数 据可以是字节、半字(16位)、字(32位)、双 字(64位) 。在内存中如何存取呢?
– 填鸭式的存储(不要求对准边界)。只要有空字 节就可以存。 – 要求对准边界。按信息的整数边界原则进行存 储。优点是便于硬件实现。缺点是浪费了存储 空间。
半字(地址12) 字节(地址17) 字节(地址16)
(b)多字节数据对准边界 图 存储器中数据的存放(举例)
• 信息的整数边界原则: 指信息的地址(按字节编址,用存放信息 低8位的字节地址表示)必须是该信息宽度 (字节数)的整数倍。 • 各种宽度的信息地址: 字节地址 ·· ·XXXX 半字地址 ·· · ·XXX0 · 字地址 ·· ·XX00 双字地址 ·· · ·X000 · 其中X为任意二进制数码。
• 一种方法如下:
(1)15条三地址指令 0001 … 1111 0000
(扩展到A1)
(3)15条一地址指令 0000 0000 0001 … 0000 0000 1111 0000 0000 0000 (操作码扩展到A3) (4)16条零地址指令 0000 0000 0000 0000 … 0000 0000 000 01111
– 指令的长度不一定是相等的。
• 指令长度与机器字长没有固定的关系,它 既可以小于或等于机器字长(短格式指令), 也可以大于机器字长 (长格式指令)。
• 一条指令存放在连续的存储单元中。 • 地址码的长度决定了指令直接寻址的能力, 若为n位,则给出的n位直接地址可寻址2n个 存储单元。 • 扩大寻址能力的方法:
堆栈及堆栈操作指令
• 堆栈是由若干个连续存储单元组成的先进后 出存储区,所有的数据操作都在栈顶进行。 • 栈底是固定不变的,而栈顶是随着数据的入 栈和出栈在不断变化。 • 可以用一个寄存器或存储器单元指出栈顶的 地址,这个寄存器或存储器单元称为堆栈指 针SP。
• 用于堆栈访问的指令


(1)压栈指令(PUSH)是把指定的操作数送入堆栈 的栈顶。 (2)弹出指令(POP)是把栈顶的数据取出,送到 指令所规定的目的地。 向下生长的栈--从高地址向低地址扩展。 向上生长的栈--从低地址向高地址扩展。
字(地址2) 字节(地址7) 字节(地址6)
半字(地址0) 字(地址4)
半字(地址10)
半字(地址8)
字节(地址15) 字节(地址14) 字节(地址13) 字节(地址12) (a)不要求对准边界 半字(地址0) 半字(地址10) 字(地址4) 字节(地址9) 字节(地址8)
字节(地址15) 字节(地址14)
I1 I2 I3 I4 I5 I6 I7
45% 28% 17% 5% 3% 1% 1%
00 01 10 1100 1101 1110 1111
2位 2位 2位 4位 4位 4位 4位
• 对于不同数据类型的操作应当用不同的操 作码,如整数加法和浮点加法应当使用不 同的操作码,视为不同的指令。 • 按指令的功能分类,可分为 • 1、算术逻辑运算指令
4.1 处理器的工作过程简介
• CPU的执行过程: 首先将程序和数据输入计算机的存储器 中,然后从内存中“程序入口(程序执行的 第一条指令的地址)”开始依次取出指令和数 据,并根据指令的要求对数据进行加工处 理,得到需要的结果后,结束运行。 • 因此,控制器控制程序的执行过程实际上 是控制指令的执行过程。
– 算术运算:整数和浮点数的加、减、乘、除等。 – 表征结果的特征:Z,C,V,N – 逻辑运算:与、或、非(反)、异或等,及位操 作指令,如位测试、位清除、位求反等。
• 2、移位操作指令
– 按移位性质分为: 算术移位(需考虑溢出) 逻辑移位 循环移位 – 按移位方向分为: 左移 右移, – 按移位位数分为: 一位 多位 – 算术移位、逻辑移位和循环移位如下图。
• (2)可变格式,即操作码的长度可变,且分散 地放在指令字的不同字段中。
– 优点:能够有效地压缩程序中操作码的平均长度, 节省存储器空间,缩短了经常使用的指令的译码 时间。在微型机上广泛使用。 – 缺点:增加指令译码和分析的难度,使控制器的 设计复杂化,需要更多的硬件来支持。
• 指令可变格式的做法
– (1)通过增加机器字长来增加地址码的长度; – (2)采用地址扩展技术,把存储空间分成若干个 段,用基地址加位移量的方法(见寻址方式)来 增加地址码的长度。
4.3.1 操作码
• 若某机器的操作码长度为K位,则它最多只 能有2K条不同的指令。 • 指令操作码的编码格式: • (1)固定格式,即操作码的长度固定,且集 中放在指令字的一个字段(若干连续位)中。 • 例如操作码长度为8位,则最多可有28=256 条指令。 • 优点:简化硬件设计,减少指令译码时间, 在大中型机和超级小型机及RISC上广泛采 用。
(2)15条二地址指令 0000 0001 … 0000 1111 0000 0000
(操作码扩展到A2)
• 扩展操作码的原则: 使用频率(指指令 在程序中的出现概率) 高的指令应分配短的操 作码;反之分配较长的 操作码。 • 应考虑操作码的规整性, 否则会引起硬件实现复 杂。
表 指令出现概率与 操作码长度的选择 指 概率Pi 操作 操作码 令 码 长度
• 有些机器设置了数据交换指令。
半字节交换
8 9
9 8
•4、转移类指令 •用于控制程序流的转移。
• 按转移性质分为 • (1)无条件转移
– 无条件转移指令不受任何条件约束,直接把程序 转移到指令所规定的目的地,在那里继续执行程 序。
• (2)条件转移指令
– 是根据计算机的处理结果来决定程序如何执行。 它先测试条件码,然后根据所测试的条件是否满 足来决定是否转移。
对指令系统的要求
• 一条指令必须包含下列信息。 • (1)操作码。说明操作的性质及功能,具有 唯一性。通过识别该操作码来完成不同的 操作。 • (2)操作数地址。可以直接给出操作数或者 指出操作数的存储器(寄存器)地址。 • (3)操作结果的存储地址。 • (4)下一条指令的地址。当程序顺序执行时, 下一条指令的地址由程序计数器(PC)指出; 仅当改变程序的执行顺序时,下条指令的 地址才由指令给出。
• 问题:如何区分内存中某单元的内容是数 据还是指令?
– 一般用户无法区分; – 程序员可以事先安排好; – 处理器在取指令周期取出的是指令,否则取出 的是数据。
• 处理器支持的指令集构成了该处理器的指 令系统。指令系统功能越强,处理器也就 功能越强。
• 指令系统分类
–精简指令系统的计算机RISC,其特点是:提供数 目较少、格式与功能简单、运行高效的指令,追 求的是计算机控制器实现简单,运行高速,更容 易在单块超大规模集成电路的芯片内制做出来。 –复杂指令系统的计算机CISC, 其特点是:指令条 数多,格式多样,寻址方式复杂,每条指令的功 能强,优点是汇编程序设计容易,但控制器实现 困难,很多指令被使用的机会并不多。
4.3 指令格式(机器码格式)
计算机的指令系统对计算机本身的硬件 结构的复杂程度和运行性能,对用户完成 程序设计的难易程度和工作效率,有非常 重要的影响,必须对设计指令系统的工作 给以足够的重视。
完备性: 指令齐全,编程方便 高效性:占内存少,运行省时 规整性:指令与运算规则统一 兼容性:新旧机指令软件兼容
算术移位 左移
右移 循环移位
C
逻辑移位 0 左移 C
右移 0 C
源自文库
0
C
小循环移位 左移
右移
C
C
大循环移位 左移
右移 图5.10 移位操作
C
C
• 3、数据传送指令 • 实现数据传送: 寄存器—寄存器 寄存器—存储器单元 存储器单元—存储器单元 寄存器—外设(接口) • 对于存储器(寄存器)来讲,数据传送包括了 对一个或一批数据的读或写操作。 • 数据传送时,数据从源地址传送到目的地 址,而源地址中的数据保持不变。
• 由于程序(指令序列)预先存放在存储器中, 所以指令执行的过程分为取指令和执行指令。 如下图。
• 假设程序和数据已经存放在内存中,执行 指令执行步骤如下(要求记下来):
– 根据程序计数器PC的内容从内存中取出一条指 令,放置于指令寄存器IR中。 – 分析IR中的操作码,决定应执行的操作。 – 根据IR的地址码取出参加运算的操作数。 – 对操作数进行运算。 – 根据IR的地址码把运算结果存放指定地址。 – 本条指令执行完毕,修改PC内容决定下一条指 令所在的地址。
• 转移地址形成:
– ①相对转移,即执行PC←(PC)+位移量, – ②绝对转移,即PC←目标(有效)地址。
• (3)调用指令与返回指令 • 在编写程序过程中,常常需要编写一些经 常使用的,能够独立完成某一特定功能的 程序段,在需要时能随时调用,以节省存 储器空间和简化程序设计。这种程序段就 称为子程序、过程、函数。 • 通常使用调用指令(过程调用/系统调用/转子 程序) 来实现从一个程序转移到另一个程序 的操作。
• 提高计算机速度的途径
– 提高集成电路工艺水平,缩短门电路的延迟时 间,提高处理器的时钟频率。 – 改进设计(如采用流水线和并行技术),提高单 个处理器的运算速度。 – 使用多个处理器并行工作,提高整个计算机的 运算速度。
• 本章先介绍单个处理器的工作原理,并以 简化的处理器模型为实例介绍其设计方法。
– 在指令字中用一个固定长度的字段来表示基本操 作码,而对于一部分不需要某个地址码的指令, 把操作码扩充到该地址字段。
• 例如设某机器的指令长度为16位,包括4位 基本操作码字段和三个4位地址字段,其格 式如下:
15 12 11 8 7 4 3 0
OP
A1
A2
A3
• 如果需要61条指令,其中三地址指令15条, 两地址指令15条,一地址指令15条,零地址 指令16条,应如何安排操作码?
• 按栈的生长方向,堆栈分:

• 设栈为向下生长的栈,且按字节编址,操作数为2 字节。 压栈指令 弹栈指令 PUSH OPD POP OPD 其操作是 (SP)-2→SP 其操作是 ((SP))→OPD OPD→(SP) (SP)+2→SP
• 子程序调用与条件、无条件指令的主要区别:
– 子程序调用需要保存返回地址,即返回到原调 用的程序继续执行子程序调用指令的下一条指 令。 – 返回地址一般保存在堆栈中,随同保存的还有 状态寄存器。 – 返回Return指令从堆栈中取出返回地址。
• (4)陷阱(Trap)与陷阱指令 • 在计算机运行过程中,有时可能出现电源电 压不稳、校验错、输入/输出设备出现故障、 非法操作码等意外情况,使得计算机不能正 常工作,若不及时采取措施处理这些故障, 将影响到整个系统的正常运行。因此,一旦 出现故障,计算机就发出陷阱信号,并暂停 当前程序的执行(称为中断),转入故障处理 程序进行相应的故障处理。 • 陷阱指令一般作为隐含指令不提供给用户使 用,只有在出现故障时,才由CPU自动产生 并执行。
第4章
计算机的核心部件—处理器
学习指南
• 中央处理器(CPU) 由运算器和控制器组成(集 成在一个芯片上)。 • 掌握控制器的工作原理、逻辑设计要点为目 标。 • 掌握计算机运行过程中各硬件部件的作用。 • 掌握控制器控制各个部件的工作过程及实现 方法。 • 控制器可以分为硬连线控制器和微程序控制 器两大类。本章将结合EDA工具介绍CPU的 设计,达到事半功倍的效果。
相关文档
最新文档