logo资料库

计算机组成原理论文计算机组成原理论文.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
X0:
“计算机组成原理”课程设计报告 微 程 序 控 制 器 的 设 计 班级:03042 学号:0304248 姓名:黄元佳 完成时间:2007.4.1 一、设计思路 按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存 器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。从而可以想到如下指令: (1)24 位控制位分别介绍如下: XRD : 外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 EMWR: 程序存储器 EM 写信号。 EMRD: 程序存储器 EM 读信号。 PCOE: 将程序计数器 PC 的值送到地址总线 ABUS 上。 EMEN: 将程序存储器 EM 与数据总线 DBUS 接通,由 EMWR 和 EMRD 决定是将 DBUS 数据写到 EM 中,还是从 EM 读出数 据送到 DBUS。 IREN: 将程序存储器 EM 读出的数据打入指令寄存器 IR 和微指令计数器 uPC。 EINT: 中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP: PC 打入允许,与指令寄存器的 IR3、IR2 位结合,控制程序跳转。 MAREN:将数据总线 DBUS 上数据打入地址寄存器 MAR。
MAROE:将地址寄存器 MAR 的值送到地址总线 ABUS 上。 OUTEN:将数据总线 DBUS 上数据送到输出端口寄存器 OUT 里。 STEN: 将数据总线 DBUS 上数据存入堆栈寄存器 ST 中。 RRD: 读寄存器组 R0-R3,寄存器 R?的选择由指令的最低两位决定。 RWR: 写寄存器组 R0-R3,寄存器 R?的选择由指令的最低两位决定。 CN: 决定运算器是否带进位移位,CN=1 带进位,CN=0 不带进位。 FEN: 将标志位存入 ALU 内部的标志寄存器。 X2: X2、X1、X0 三位组合来译码选择将数据送到 DBUS 上的寄存器。 X1: 见 16 页表。 X0: WEN: 将数据总线 DBUS 的值打入工作寄存器 W 中。 AEN: 将数据总线 DBUS 的值打入累加器 A 中。 S2: S2、S1、S0 三位组合决定 ALU 做何种运算。 本实验还需用到的五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令 格式如下: 说明 “INPUT DEVICE”中的开关状态R0 助记符 IN ADD addr STA addr OUT addr addr JMP 机器指令码 0000 0000 0000 ×××× 0001 0010 0000 ×××× 0011 0000 0100 0000 ×××× R0+[addr] R0 R0 [addr] ×××× [addr] BUS addrPC 其中 IN 为单字长(8 位),其余为双字长指令,××××××××为 addr 对应的二进制地址码。 为了向 RAM 写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。 存储器读(KRD):拨动总清开关 CLR 后,控制台开关 SWB、SWA 为“0 0”时,按 START 微动开关,可对 RAM 连续手动读操 存储器写(KWE):拨动总清开关 CLR 后,控制台开关 SWB、SWA 为“0 1”时,按 START 微动开关,可对 RAM 连续手动写操 作。 作。 启动程序(RP):拨动总清开关 CLR 后,控制台开关 SWB、SWA 为“1 1”时,按 START 微动开关,即可转入到第 01 号“取 址”微指令,启动程序运行。 上述三条控制台指令用两个开关 SWB、SWA 的状态来设置,其定义如下: SWB 0 0 1 SWA 0 1 1 控制台指令 读内存(KRD) 写内存(KWE) 启动程序(RP) (二)在实验中使用的模型机的微指令格式如下表给定,长度共 24 位。 其中最后六位 uA0~uA5 为 6 位的下一条微指令的地址, 前面几位为直接控制字段,直接与相应的控制门连接,A,B,C 为 3 个译码字段,分别由三个控制位译码出多位。其含义如下: A 字段 15 14 13 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 选择 LDRi LDDR1 LDDR2 LDIR LOAD LDAR B 字段 12 11 10 0 0 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 控制位含义 选择 RS-B ALU-B PC-B 9 0 0 0 0 1 1 1 C 字段 8 0 0 1 1 0 0 1 7 0 1 0 1 0 1 0 选择 P(1) P(4) LDPC
微程序控制器的结构与微指令的格式密切相关。 微程序控制器由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令 寄存器两者的总长度即为一条微指令的长度,二者合在一起称为微指令寄存器。 ●控制存储器(ROM) ROM 中存放微程序,也就是全部的微指令。ROM 的容量取决于微指令的总数。假如控制器需要 128 条微指令,则微 地址寄存器长度为 7 位。ROM 的字长取决于微指令长度。如果微指令为 32 位,则 ROM 的字长就是 32 位。实际应用中 ROM 可采用 EPROM 或 E2PROM、EAROM,用户写入和修改微程序比较方便。 ●微命令寄存器 微命令寄存器暂存由控制存储器中读出的当前微指令中控制字段与测试判别字段信息,可由 8D 寄存器组成。 ●微地址寄存器 微地址寄存器暂存由控制存储器读出的当前微指令的下址字段信息。它可由带 RD、SD 强置端的 D 触发器组成。其 中时钟端和 D 端配合用做 ROM 的读出打入,用 SD 进行下址修改。 ●地址转移逻辑 微指令由 ROM 读出后直接给出下一条微指令的地址,这个地址就放在微地址寄存器中。当微程序出现分支时通过 地址转移逻辑去修改微地址寄存器内容,并按修改好的微地址读出下条微指令。地址转移逻辑是一个组合逻辑电路,其 输入是当前微指令的判别测试字段 Pi、执行部件反馈的“状态条件”及时间因素 T4。 ●控制时序信号 上图中标明了一个基本机器周期中的控制时序信号。例如用上一周期的 T4 时间按微地址寄存器内容从 ROM 中读一 条微指令,经过一段时间后被读出,用当前周期的 T1 时间打入到微指令寄存器。T2、T3 时间用来控制执行部件进行操 作。T4 时间修改微地址寄存器内容并读出下一条微指令。 二、设计步骤: (一)、拟订指令系统 指令系统是设计计算机的依据 ,拟订指令系统将涉及基本字长、指令格式、指令种类、寻址方式等内容。 基本字长: 程序设计平台中配置的存储器容量为256*8,可知道基本字长定为8位。 指令格式: 指令格式可有单字长和双字长指令两种,在双字长格式中,第二字节一般定义为操作数或操作数地址。 指令格式为: 操作码OP 源操作数 目的操作数 指令类型: 模型机有单操作数指令、双操作数指 令和无操作数指令。 操作码OP共四位,最多可定义16条指令。 数据的传送单位为 8 位 数据的传送范围 R—>R R—>RAM RAM—>R 寻址方式: 由于指令较短,操作数字段仅两位,为了简化硬件设计,将操作数字段和目的操作数字段的寻址定义为不同的含义。 源操作数字段寻址方式 目的操作数寻址方式 00 01 10 11 R0 (R0) I D 00 01 10 11 R1 (R1) I D Ri 表示操作数就在寄存器中 (Ri)表示操作数地址在寄存器中 I 指令的第二个字节为操作数或称立即寻址 (D)指令的第二个字节为操作数的地址 源操作数使用 R0 寻址 目的操作数 R1 寻址 (二)、确定总体结构 根据要求设计数据通路框图:
2.1 流程图 图 2-1 数据通路结构框图 PC->AR, PC+1 RAM->BUS, P(1) STA OUT JMP IN ADD RW->R0 PC->AR, PC->AR, PC+1 PC->AR, PC+1 PC->AR, PC+1 RAM->BUS, RAM->BUS, RAM->BUS, RAM->BUS, RAM->BUS, RAM->BUS, RAM->BUS, R0->DR1 DR1->LED (DR1)+(DR2) ->R0 图 2-2 微程序流程图 当拟定“取指”微指令时,该微指令的判别测试字段为 P(1)测试。由于“取指”微指令是所有微指令都使用的公用微指 令,因此 P(1)的测试结果会出现多路分支。我们使用指令寄存器的前 4 位(IR7-IR4)作为测试条件,出现 5 路分支,占用 5 个固定微地址单元。 控制台命令的微程序流程,01 为取指令微指令的地址: 图 2-3 控制台流程图
控制台操作作为 P(4)测试,它以控制开关 SWB,SWA 作为测试条件,出现了 3 路分支,占用 3 个固定微地址单元。当 分支微地址单元固定后,剩下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。 2.2 微代码表 当全部微程序设计完毕后,将每条微指令代码化,把流程图按微指令格式转化成“二进制微代码表”,如下: 表 2-5 二进制微 代码表 2.3 确定连线图 根据各部件的功能,确定好电路各个 芯片的连接,如下: 微 地 址 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 S3 S2 S1 S0 M CN WE A9 A8 A B C UA5…UA0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 000 000 100 010000 110 110 110 000010 100 000 001 001000 000 000 001 000100 011 000 000 000101 010 101 000 000110 001 101 000 000001 110 000 000 001101 001 000 000 000001 110 110 110 000011 110 110 110 000111 110 110 110 001110 110 110 110 010110 000 001 000 000001 110 000 000 001111 010 000 000 010101 110 110 110 010010 110 110 110 010100 010 000 000 010111 000 000 000 00000 010 000 000 011000 000 101 000 000001 101 000 110 000001 000 101 000 010000 000 101 000 010001
图 2-4 接线图 各部件功能: 指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一行指令时。先把它从内存取到缓冲寄存器中, 然后在传至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成,执行任何给定的指令,必须对操作码进行测试[P (1)],通过节拍脉冲 T4 的控制以便识别所要求的操作。 指令译码器(ID):根据指令中的操作码译码强制微控器单元的微地址,使下一条微指令指向相应的微程序首地址。 输入设备(INPUT DEVTICE):是一种二进制代码开关,实现数据输入。输入时,二进制开关数据直接经过三态门送到总 线上,只要开关状态不变,输入的信息也不变。 输出设备(OUTPUT DEVICE):是一种数码块,完成数据输出。输出时,匠输出数据送到数据总线上,当写信号(W/R) 有效时,将数据打入输出锁存器,驱动数据块显示。 (三)设置情况 1、寄存器的设置: R0,R1为通用寄存器,8位。 IR为指令寄存器,8位。 PC程序寄存器,8位。 MAR为地址寄存器,8位。 2、加法器的设置: 采用8位带串行进位并行加法器。 3、选择器的设置: 连入A选择器的数据来源是RAM的读出数据和R0寄存器的数据。连入B选择器的数据来源是PC的数据和R1的数据。 4、数据通路: 数据通路的设计,在总体结构中是最重要的一个问题,模型机的数据通路是以总线为基础,以CPU为核心的。 信息的传送路径: 取指令 MA CPIR RAM—>选择器 A—>Σ—>BUS—>IR 送指令地址 PB CPMAR PC—>选择器 B—>Σ—>BUS—>MAR
指令计数器+1 PB C0 CPPC PC—>选择器 B—>Σ—>BUS—>PC R0—>R1 RA CRR1 R0—>选择器 A—>Σ—>BUS—>R1 R1—>RAM RB WR R1—>选择器 B—>Σ—>BUS—>RAM (四)逻辑设计: 总体结构设计之后,便开始总体结构中各部件的逻辑设计和部件之间的连接。 1、加法器的逻辑设计: 如附图2所示,模型机中的加法器是由八个一位全加器构成,全加器之间采用简单的串行进位。全加器逻辑原理如附图3所 示:附图3如下 a b 53 26 ci 19 I3 I4 I5 I7 I6 6 s I2 a1 a0 I8 7 co I1 I9 I10 I63 I62 I61 I60 z3 z2 z1 z0 2、选择器的设计: 选择器A和选择器B的结构形式一样,如附图4所示,在控制电位EN0和EN1的控制下,分别选择R0的或R1的数据通过选择器, 进入加法器。EN0和EN1是互斥的,高电平有效。 3、寄存器的设计: 不带复位的寄存器: 结构中 R0,R1 通用寄存器,可存入操作数或结果、中间结果,每个寄存器均由 8 个 D 触发器构成。在 CPRi 的作用下接收 总线的数据送入寄存器,输出连入选择器。结构如附图 5 所示。指令寄存器 IR 其结构同通用寄存器。 带复位的寄存器: 结构中 MAR 地址寄存器是一个带复位的寄存器,带复位是指当有复位信号时,MAR 清零。逻辑图如附图 6 所示。 程序计数器的设计: 程序计数器结构如附图 6 所示。PC 加 1 是通过加法器实现的。 复位信号 RET 的作用是有复位信号时,计数器 PC 清零。 部件之间的连接: 由系统结构可看出,部位之间的连接是采用以 CPU 为中心的总线连接方式。加法器的输出通过总线 BUS 连接到所有寄存器 和存储器的输入端,除指令寄存器 IR 和地址寄存器 MAR 的输出端外,其他部件的输出端分别送入选择器 A 和选择器 B。 连线图如附图1所示。 (五)、确定控制方式 控制命令是确定信息的流向,不同的数据通路需要不同的控制指令。即组合逻辑方式和微程序方式,模型机采用微程序方 式。微程序的执行方式采用增量、垂直方式。 1、微程序控制器的结构: 微程序控制器的部件由设计平台提供。 2、微程序控制器的时序: 微程序控制器的时序如图所示: P P’ P 脉冲的低电平用做控制存储器读命令µRD P 脉冲的上升边沿将读出的微指令µIR I97 I96 I95 I94 I93 I92 I91 I90 I89 I82 I88 负脉冲P的上升边沿将形成的后继地址送微程序计数器µPC,同时将运算结果(总线的数据)送指定的寄存器。 I87 3、微指令格式: 微指令格式由三部分组成,既微指令字段定义,微命令形成逻辑和后继微地址产生逻辑。 后继微地址产生逻辑: I86 I85 I84 I83 I80 I79 I78 I77 I81 I76 I75 I74
为简单起见只选三种后继微地址生成方式即增量方式、无条件转移方式、按操作码转移方式。 当 EN=1 时,微程序计数执行加 1 操作 当 EN=0 且 JP=1 时,无条件转移 当 EN=0 且 QJP=1 时,按操作码转移 4、 微程序编写: (1)程序 MOV1 05#,R0 MOV2 01#,R1 ADD R0,R1 MOV3 R1,(R0) (2)操作码二进制代码 MOV1:0001 MOV2:0010 ADD:0011 MOV3:0100 (3)微程序入口(16进制代码) 取指令入口:00H MOV1入口:10H MOV2入口:20H ADD入口:30H MOV3入口:40H (4)指令执行流程图: 指令流程: 00 RAM PC+1 10 PC IR PC 20 30 MAR PC MAR R0+R1 R1 PC+1 PC PC+1 PC PC MAR 40 R0 R1 MAR RAM RAM R0 RAM R1 JP PC MAR PC MAR PC MAR JP JP JP (5)编制微程序 根据指令流程跟微指令格式开始编制微程序。 二-四译码器逻辑原理如附图3所示。 三-八译码器逻辑原理如附图8所示。 全部微程序如表1所示。 (六)分调 将模式开关至于分调 1、伟福系统 平台上的所有开关和发光二极管均随意编制用做数据输入和状态显示 典型部件如下: 选择器A 带复位的寄存器MAR 不带复位的寄存器R0 程序计数器PC 在部件设计无错、连线无错、1032E 的管脚定义无错时可生成下载文件下载到 1032E 中。 2、单片机系统 微程序经过检查无误后,将模式开关至分调后通过键盘写入响应的单元中。 (七)统调 将模式开关置于统调,此时平台上的开关及发光二极管的设置情况如下: 开关 K15--K0 无效,不可编程使用
分享到:
收藏