当前位置:
文档之家› 简化CPU模型中微指令的分析和设计方法
简化CPU模型中微指令的分析和设计方法
宋 静
( 安庆师范学院 计算机与信息学院 安徽 安庆 246011 )
摘 要 : 简化 CPU 模型中主要包括算逻单元 ALU, 程序计数器 PC, 指令寄存器 IR, 数据寄存器 DR, 地 址寄存器 AR 和指令译码器 , 这些部件对于微指令的执行起着至关重要的作用 , 而微指令流的顺序执行又 导致了指令的执行 , 因此微指令如何构成以及如何执行就成了程序运行的硬件基础 , 从这个意义上说 , 微 指令的分析与设计对于理解整个 CPU 的结构和功能至关重要。 关键词 : 指令 ; 控制器 ; 控制信号 ; 微指令 中图分类号 : TP391 文献标识码 : A 文章编号 : 1007- 4260 ( 2006 ) 01- 0073- 03
An Analysis and Programming of CPU Microinstructions
SONG Jing
( School of Computer and Information ,Anqing Teachers College,Anqing 246011,China)
Abstr act : A simplified CPU model consists of ALU,PC,IR,DR,AR and Instruction Decoder, which play an important role in the exexution of microinstructions, while several microinstructions make an instruction. As a result, a programme is based on the construction and execution of microinstructions. Therefore, the analysis and designming of microinstructions are very important to learn and understand the structure and function of CPU. Key wor ds : instruction;control unit;control signal;microinstruction
ALU 进行运算 , 那么很显然控制信号 1~ 3 都应该
是运算操作 , 而 4~ 根据前面的 12 则是数据传送。 分析, 可以很快得出( 下面的箭头都表示数据流 向) :
1、 + 2、 - 3、 M 4、 R1→A
图3
5、 R2→A 8、 R2→B
6、 R3→A 9、 R3→B
7、 R1→B
第1期
图1
例 1 CP U 逻辑框图
17 13 12 0 OP X 加法指令可写为“ , 其功能是 ADD X ( Ri) “
收稿日期 : 2005- 11- 29 作者简介 : 宋静( 1975-
) , 男 , 安徽安庆人 , 安庆师范学院计算机与信息学院讲师。研究方向是计算机体系结构与仿真。
2006 年 2 月
第 12 卷第 1 期
安庆师范学院学报 (
自然科学版 )
Feb.2006 Vol.12 No.1
J ourna l of Anqing Te a che rs Colle ge ( Na tura l S cie nce Edition )
简化 CPU 模型中微指令的分析和设计方法
1~ 12 表示的运算器操作的控制信号 , ( 2 ) 指出互斥性微操作 , ( 3 ) 设计适合此运算器的微指令格式 ( 下址
位长 10 位 ) 分析 : 要设计 , 首先要把图读懂。该运算器包 含 三 个 寄 存 器 R1 、 R2 和 R3 , 多路开关 送往两个锁 存 器 , 运算。 ( 1 ) 写出 12 个控制 信号 : 在上面 这个简化模 型中, 从 总 线 到 ALU 之 间 都 是 数 据 的 传 送 , 而 通过数据总线 ( BUS) 将 数 据 送 到 寄 存 器 ห้องสมุดไป่ตู้ 再 通 过 两 个 三 选 一 的 进 而 送 到 ALU 进 行
宋静 : 简化 CPU 模型中微指令的分析和设计方法
・ 75 ・
10 、 BUS→R1
11 、 BUS→R2
12 、 BUS→R3
( 2 ) 写出互斥性微操作 : 这里的微操作指的就是前述控制信号。针对这个问题来看 , ALU 的三种操 作 +、 -、 M 显然是不能同时进行的 , 因此它们是互斥的 ; 多路开关只能选通其中的一路 , 也就是三个寄存 因此 , 综合以上的分 器无法同时将数据打入锁存器 ; 而总线 BUS 也不能同时完成数据送往三个寄存器。 析 , 可以得到四组互斥微操作 : 第一组 : 1 、 2、 3 第二组 : 4 、 5、 6 第三组 : 7 、 8、 9 第四组 : 10 、 11 、 12
!"# 2 ! !"# 2 ! !"# 2 ! !"# 2 ! 00 1 4 7 10 10 2 5 8 11 11 3 6 9 12
!" 10 !
( 3 ) 设计微指令格式 : 微指令的格式包括两部分 : 控制信号和下址。前者表明该条微指令需发出并 执行几个微操作 , 后者指明该条微指令之后的微指令地址。题目已明确说明了下址 10 位 , 因此此题就 集中于控制信号的设计。 综合考虑三种方法以及此题的特点 , 决定采用字段直接编译法。 四组互斥微操作 , 分别用两位来表 示 , 具体见图 4 :
・ 74 ・
安庆师范学院学报 ( 自然科学版 )
2006 年
( AC0) +( ( Ri) +X) →AC1, 其 中 ( ( Ri) +X) 部 分 通 过 寻 址 方 式 指 向 数 据 存 储 器 DM。 现 取 Ri 为 R1 。 分 析 数据通路” 和相应的微操作控制信号。 ADD 指令的指令周期流程 , 写明“ 分析 : 该题中的加法指令“ 是一条隐含指令 , 其中一个操作数来自 AC0, 另一个操作数 ADD X( Ri) ” 在 DM 中 , 寻址方式是变址寻址 , 其地址由通用寄存器的内容 ( Ri) 加上指令格式中的偏移量 X 决定。另 外根据所学知识应该可判断出 IAR 是指令地址寄存器 , IDR 是指令缓冲寄存器 , DAR 是数据地址 寄存 器 , DDR 是数据缓冲寄存器 , 而 IM 和 DM 实际可看作是现代 CPU 中的高速缓存 Cache 。 那么接下来就要分析指令流程了 , 也就是微指令序 列。此加法指令的流程是 : 首先取指令 , 通过 PC 指出指 令 地 址 , 并 从 IM 读 指 令 进 入 IDR 和 IR ; 第 二 步 计 算 变 址寻址的操作数地址 , 将 ( Ri ) 和 X 送入 ALU 进行计算 , 并 将 该 地 址 送 入 AC1 暂 存 ; 第 三 步 读 取 该 操 作 数 , 将
计算机的核心部件 CPU 包含两大部分 , 运算器和控制器。在进行运 算时 , 控制 器给出相关 的微指 令 , 并发出控制信号给运算器 , 运算器相应的完成运算功能。若干条微指令按顺序执行可完成一条机器 指令的功能。 在此过程中 , 控制信号和微指令起着至关重要的作用。 下面通过一些简化的 CPU 模型来讨 论一下其分析和设计方法。 微指令流的分析 1、 在这里 , 分析问题的理论基础是控制器结构和指令执行过程。 控制器构成 有这样几个 重要寄存器 : 程序计数器 , 存储指令地 址 : 指令寄 存器 , 存放正 在 执 行 的 指 令 ; 指令译码器 ; 地址寄存器 , 存放数据地址 ; 数据寄存器。 指令执行过程大体上分为三步 : 取指令 , 分析指令和执行指令。 取指令阶段 : 首先当然从 PC 中读取 指令地址 , 接 着发出访存 命令 , 通过总 线将指令寄 存器 ; 分析指 令阶段没 有太多需要 解决的问题 ; 执 行 取操作数、 计算以及存数等 , 各种 指令阶段要根据各种不同指令具体分析 , 一般来说 , 有计算数据地址、 操作如何完成都要清楚掌握。比如计算数据地址 , 首先要将指令中提供的基址寄存器数据读入数据寄 存器 , 再将该数据和指令中 提供的地址 偏移量同时 送入 ALU( 算术 逻辑单元 ) 进 行加法运算 , 其结果送 入地址寄存器。这些步骤 务必清晰透 彻的掌握 , 否则微指令流分析无从进行。 例 1. 图 1 所 示 的 CPU 逻 辑 框 图 中 , 有 两 条 独立的总线和两个独立的存储器。已知指令存储 器 IM 最大容器为 16384 字 ( 字长 18 位 ) , 数据存 储器 DM 最大容器是 65536 字 ( 字 长 16 位 ) 。 各 寄存器均有“ 打入” ( Rin) “ 送出” ( Rout) 控制命令 , 但 图中未标出。 ( 清华大学考研模拟题 ) 设计器指令格式为
[参考文献 ]
[1] [2] [3] [4] William Stallings.Computer Organization and Architecture- Designing for Performance ( fourth edition ) [M].Prentive Hall,1996.
白中英 , 等 . 计算机组成原理题解、 题库、 实验 ( 第三版 ) [M]. 科学出版社 , 2001. 王爱英 . 计算机组成与结构 ( 第三版 ) [M] . 清华大学出版社 , 2001. 杨晨宜 . 计算机组成与结构 [M]. 东南大学出版社 , 2005.
AC1 的地址送往 DAR , 并根据该地址将操作数通过 DM
读入 DDR ; 第四步 完成加法运 算 , 两个操 作 数 都 已 准 备 好 , 直接送到 ALU 相加 , 并将结果暂存入 AC1 。 综上所述 , 可给出指令流程如图 2 : 微指令格式的设计 2、 设计的关健是有两个 : 一是互斥控制信号的辨别 , 二是采用什么样的控制字段编译方法。 控制信号指的就是控制器发出的指示计算机各部 件执行动作的电信号。一般来说 , 控制信号无非两种形 式 , 一种指示数据传送方向 , 另一种指示执行的操作。 前 一种直接用数据传送的源端和目的端 , 中间加上箭头表 示即可。后一种例如运算器的运算类型。而互斥控制信 号就是不能同时存在的控制信号 , 例如运算器同时只能 进行一种运算。 控制信号格式的设计有三种 : 图 2 指令流程图 ( a ) 直接控制法 , 即一位表示一个控制信号。 这种方法简 单明了 , 但缺点是微指令太长 , 执行效率低 , 因此很少采用。 ( b ) 字段直接编译法 , 将一组互斥信号编为一组 , 用若干位二进制来表示。这种方法可以 大幅缩短微 指 令的长度 , 具有很高的效率 , 但只能用于互斥控制信号。 ( c ) 字段间接编译法 , 在前者的基础上进一步缩短指令长度的方法 , 但给微指令的译码造成困难。 例 2. 图 3 所示为 某运算器简 化结构图 , 具 有 +( 加 ) 、 - ( 减) 、 M( 数据 传送 ) 三种操 作。 ( 1 ) 写 出 图 中