IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 计算机组成原理 微程序控制器实验 -> 正文阅读

[嵌入式]计算机组成原理 微程序控制器实验

微程序控制器实验

实验环境

计算机组成原理实验环境

实验目的

  1. 掌握微程序控制器的组成原理和工作过程。
  2. 理解微指令和微程序的概念,理解微指令与指令的区别与联系。
  3. 掌握指令操作码与控制存储器中微程序的对应方法。熟悉根据指令操作码从控制存储器中读出微程序的过程。

实验要求

  1. 做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。
  2. 按照实验内容与步骤的要求,独立思考,认真仔细地完成实验。
  3. 写出实验报告。

实验电路

???????本实验使用的主要元器件有: 4 位数据锁存器 74LS175,2Kx8 EPROM2716,时序发生器,或门、与门、开关、指示灯等。芯片详细说明请见附录。
???????图 8.1 为实验电路图,其中3片EPROM2716构成控制存储器,1片74LS175为微地址寄存器,与74LS175 数据输入引脚相连的输入信号线及6个门电路构成了地址转移逻辑。注意,2716输出信号中带后缀“#”的信号为低电平有效信号,不带后缀“#”的信号为高电平有效信号。为简化电路结构,本实验没有使用微命令寄存器,并且在虚拟实验系统中,将3片EPROM组合为一个虚拟EPROM组件。本实验使用的EPROM和时序发生器一样, 均为虚拟实验系统提供的虚拟组件。

???????实验电路中涉及的主要控制信号如下:

  1. CE :2716 芯片的片选信号。为 0 时 2716 正常工作,实验中将其接地,恒置为 0 。
  2. OE :2716 读信号。 CE = 0 , OE = 0 时为读操作,实验中将其接地,恒置为 0 。
  3. CLR : 芯片 74LS175 的清零信号,低电平有效。
  4. T1:微地址加载信号,在 T1 的上升沿将微地址锁存到 74LS175 。
  5. IR5 ~IR7 指令操作码的输入信号,这几条信号线本应与指令寄存器的输出引脚相连,但在本实验中,与数据开关相连,指令操作码通过数据开关手动设置。
    图8.1微程序控制器电路

实验原理

???????在存储逻辑型计算机中,一条机器指令对应了一个微程序,不同的机器指令对应了不同的微程序,执行一条指令其实就是运行其对应的一个微程序,微程序由微指令组成,是微指令的有序集合。微程序是在设计一台计算机时就预先设计好并且固化在只读存储器中的,以后每当要执行某条指令时,只需找到并运行其对应的微程序。
???????控制存储器专门用于存放微程序,在本实验中,控制存储器由 3 片 EPROM2716 组成,为了减少连线的复杂度,虚拟实验系统把三片 EPROM2716 集成到一片芯片上,因此,本实验所用到的是 EPROM2716 x 3 (2Kx24位),其中地址输入引脚为 A10 ~ A0 ,实验中仅用到 A3 ~ A0 ,高 7 位地址线 A4 ~ A10 接地,实际存储容量为 16 x 3 字节。Q0 ~ Q23 这 24 个输出引脚与 24 位的微指令相对应。
???????微指令格式如表 8-1 所示,采用全水平型,字长 24 位,其中操作控制字段 19 位,全部采用直接表示法,不使用译码器,每一位表示一个微命令,用于发出全机的操作控制信号;顺序控制字段 5 位,包括后续微地址 μA3 ~ μA0 和判别位 P1 ,用于决定下一条微指令的地址。
表8-1微指令格式
???????地址转移逻辑电路用于产生下一条微指令的地址,主要由两级与门、或门构成。地址转移逻辑需要用到的数据信号有:后续微地址 μA3 ~ μA0 、判别位 P1 、指令操作码 IR7 ~ IR5 。当判别位 P1 = 0 时,下一条微指令的地址即为后续微地址 μA3 ~ μA0 ;当判别位 P1 = 1 时,下一条微指令的地址由指令操作码 IR7 ~ IR5 决定,一般是将操作码进行简单变换,把变换后的值作为下一条微指令的地址,此地址就是该操作码对应的微程序的入口地址。
???????微地址寄存器 74LS175 为控制存储器提供微指令地址。当 CLR = 0 时,微地址寄存器清零,从控制存储器 00H 地址开始执行微程序,地址转移逻辑生成下一条微指令的地址。此后,每当 T1 上升沿到来时,新的微指令地址会打入微地址寄存器,控制存储器随即输出这条微指令,地址转移逻辑继而生成下一条微指令的地址。如果时序信号连续发生,微指令也会按一定的顺序接连输出。
???????为了教学简单明了,本实验仅用到四条机器指令: IN (输入)、ADD (加法)、STA (存数)、JMP (无条件转移),操作码分别为 000、001、 010、 011,指令格式如表 8-2 所示。
表8.2机器指令格式
???????上述四条指令的微程序流程设计如图 8.2 所示,其中一个方框就对应一条微指令, 方框右上角的数字为八进制表示的微地址。一个方框也表示一个CPU周期,执行一条微指令需要一个CPU周期。四条指令对应四个微程序,每个微程序包括N条微指令,需要执行N个CPU周期。
???????图 8.2 中的每条微指令都按照表 8-1 的格式编写了二进制代码,并预存在控制存储器芯片 EPROM2716 x 3 中。其中部分微指令二进制代码如表 8-3 所示,注意:微地址用八进制表示。
图8.2微程序流程图
表8-3 微程序二进制代码表
在这里插入图片描述
图8.3控制器虚拟实验电路
?????????????????????????????????????????????????????????????????????????????图 8.3 控制器虚拟实验电路
(2) 电路预设置:将 EPROM2716 芯片的CE 、OE 、A4、A5 引脚置 0 ,微地址寄存器 74LS175 的 CLR 置 0 ,时序发生器的 Step 置 1 。
(3) 打开电源。此时由于 CLR = 0 ,微地址寄存器清零,给出微程序入口地址 00H,控制存储器随之输出第 00 号微指令。
(4) 将 CLR 设置为 1 ,否则微地址寄存器会一直处于清零状态。
(5) 将 IR7 ~ IR5 均设置为 0 ,思考并回答问题:若此时连续不断地发出时序信号,微程序的执行流程是怎样的?
00->01->02->03->10->02->03->10->02->03
(6) 连续单击 Start 按钮,观察微指令的输出顺序,检验控制存储器输出的微指令是否与表 8-3 中的相符,验证上一步预测的顺序是否正确。
(7) 设置 IR7 ~ IR5 的不同组合,用单步方式分别读出 ADD 、STA 和 JMP 三条指令的微程序,用后续微地址和判别指示灯跟踪微程序执行及转移情况,将表 8-3 中缺少的微程序代码补充完整。

微地址 微指令(对应下面的指示灯,若显示不一样样则没有成功)
04: 000001001001001111100101
05: 000001101010000111000110
06: 100101101100000011100010
07: 000001001000001111101100
14: 000001011000000111000010
15: 000001000000010111100010

(8) 思考并回答问题:若不改变控制器实验电路,IN、ADD、STA 和 JMP 四条指令的微程序在控制存储器中的存放位置是否可以随意安排?有什么限制??为什么?

具体连线步骤

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验验证

电路预设置

将 EPROM2716 芯片的 OE、CE 、A4、A5 引脚置 0 ,微地址寄存器 74LS175 的 CLR 置 0,时序发生器的 Step 置 1 。
在这里插入图片描述
打开电源
在这里插入图片描述
点击 Start 按钮,此时由于 CLR = 0,微地址寄存器清零,给出微程序入口地址 00H ,控制存储器随之输出第 00 号微指令。
在这里插入图片描述
将 CLR 设置为 1 (否则微地址寄存器会一直处于清零状态),点击 Start 按钮。此时显示的是图 8.3 微程序二进制代码表 01 号单元的微指令。
在这里插入图片描述
点击 Start 按钮。根据图 8.2 微程序流程图 02 地址,此时显示的是图 8.3 微程序二进制代码表 02 号单元的微指令。
在这里插入图片描述
点击 Start 按钮。根据图 8.2 微程序流程图 03 地址,此时显示的是图 8.3 微程序二进制代码表 03 号单元的微指令。
在这里插入图片描述
再次 Start 按钮将显示 10 地址,从这开始点击Start将进入00 -> 01 -> 02 -> 03 -> 10 -> 02 -> 03 -> 10 -> 02 -> 03 循环
后面的地址是由操作码决定的,要先改变要更改操作码,
四条机器指令: IN (输入)、ADD (加法)、STA (存数)、JMP (无条件转移),操作码分别为 000、001、 010、 011

001操作码

操作码设置为001,点击 Start 按钮。根据图 8.2 微程序流程图显示 04 地址在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 05 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 06 地址
在这里插入图片描述
点击 Start 按钮,显示 11 再次点击返回到 02 单元
在这里插入图片描述
点击 Start 进入 02 -> 03 -> 04 -> 05 -> 06 -> 11 -> 02 循环

010操作码

更改操作码,点击 Start 按钮,根据图 8.2 微程序流程图显示 03 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 12 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 07 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 14 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 02 地址
在这里插入图片描述
点击 Start 按钮 进入 02-> 03->12->07->14 循环

011操作码

更改操作码,点击 Start 按钮,根据图 8.2 微程序流程图显示 13 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 15 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 02 地址
在这里插入图片描述
点击 Start 按钮,根据图 8.2 微程序流程图显示 03 地址
在这里插入图片描述
点击 Start 按钮,进入 02 -> 03 ->13 -> 15 -> 02 循环

思考与分析

  1. 微程序控制器主要由哪些部件组成?各部件的功能是什么?
  2. 本实验中,地址转移逻辑电路是怎样利用判别测试字段(P字段)实现微程序分支的?
  3. 如果把微程序控制器看作一个黑盒子,那么它的输入信号有哪些?这些信号是哪些部件提供给它的?她的输出信号有哪些?这些信号是发送给哪些部件的?
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:08:40  更:2022-05-21 19:09:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:17:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计