计算机组成原理实验(6) 微程序控制单元实验

实验六 微程序控制单元实验 

一、实验目的

1、熟悉微程序控制器的原理

2、掌握微程序编制、写入并观察运行状态

二、实验要求 

按照实验步骤完成实验项目,掌握设置微地址、微指令输出的方法

三、实验说明

3.1  微程序控制单元的构成:(如图3-1)

8位微地址寄存器由2片74LS161组成;3片6264(3*8位)为微程序存储器;24位微指令锁存器由3片74LS374组成。

图 3-1

3.2  微程序控制单元原理:(如图3-2)

1、由于本系统中指令系统规模不大、功能较简单,微指令可以采用全水平、不编码的方式,每一个微操作控制信号由1位微代码来表示,24位微代码至少可表示24个不同的微操作控制信号。如要实现更多复杂的操作可通过增加一些译码电路来实现。

2、增量方式来控制微代码的运行顺序,每一条指令的微程序连续存放在微指令存储器连续的单元中。

3、每一指令的微程序的入口地址是通过对指令操作码的编码来形成的。在本系统内指令码最长为8位,那么最多可形成256条指令。

4、在微程序存储器的0单元存放取指指令,在启动时微地址寄存器清零,执行取指指令。每一段微程序都以取指指令结束,以取得下一条指令。在本系统内,MLD为置微地址的控制信号,MCK为工作脉冲。当MLD=0、MCK有上升沿时,把MD0~MD7的值作为微程序的地址,打入微地址寄存器。当MLD=1、MCK有上升沿时,微地址计数器自动加1。

图 3-2

3.3  控制信号说明:

信号名称

作  用

有效电平

MCK

微程序工作脉冲

上升沿用效

MOCK

微程序存储器输出工作脉冲

低电平有效

MLD

微地址控制信号

低电平有效

MD0—MD7

微地址选择开关

四、实验步骤:

● 将MD0~MD7、MLD接入二进制的开关上,将MCK、MOCK分别接入脉冲单元上的PLS1、PLS2上。(请按下表接线)。

信号定义

接入开关位号

MCK

PLS1   

MOCK

PLS2   

MD0

H0     

MD1

H1     

MD2

H2     

MD3

H3     

MD4

H4     

MD5

H5     

MD6

H6     

MD7

H7     

MLD

H23   

接线图示:

● 按启停单元中的停止按键,使实验平台处于停机状态。通过键盘把数据写入微程序存储器中,例如微地址0H中输入11H、11H、11H三个字节、在05H中输入55H、55H、55H三个字节、在06H中输入66H、66H、66H。

输入过程结果图片如下:

微地址0H中输入11H、11H、11H
微地址05H中输入55H、55H、55H
微地址06H中输入66H、66H、66H

实验一:微地址打入操作

● 按启停单元中的停止按键,使实验平台处于停机状态,此时微地址寄存器被清零。

● 按启停单元中的运行按键,使实验平台处于运行状态。此时微程序存储器为读状态,微地址寄存器(74LS161)确定了当前微程序存储器的地址,并且输出24位微操作(M0~M23)。

● 按脉冲单元中的PLS2脉冲按键,在MOCK上产生一个上升沿,把当前微程序存储器输出的微指令打入微指令锁存器。可在右上的微指令指示灯显示出当前微指令,应为11H,11H,11H。

● 置MLD=0,微代码的地址MD0~MD7(对应二进制开关H0~H7)为05H (对应开关如下表)。

实验显示结果图片如下:

微指令显示灯为11H,置MLD=0,微代码的地址MD0~MD7置为05H

H7

H6

H5

H4

H3

H2

H1

H0

H23

MD7

MD6

MD5

MD4

MD3

MD2

MD1

MD0

MLD

0

0

0

0

0

1

0

1

0

● 按脉冲单元中的PLS1脉冲按键,在MCK上产生一个上升沿,把MD0~MD7打入74LS161,微地址显示灯MA0~MA7将显示05H,微程序存储器把05H单元的内容输出

实验显示结果图片如下:

微地址显示灯MA0~MA7将显示05H

● 按脉冲单元中的PLS2脉冲按键,在MOCK上产生一个上升沿的脉冲,把当前微指令打入微指令锁存器,在右板上的微指令指示灯应显示55H,55H,55H

实验显示结果图片如下:

右板上的微指令指示灯应显示55H,55H,55H

注意:微代码由3片74LS374作为微指令锁存器,它的OE端已经接地,只要MOCK端上有上升沿,即可锁存并输出微代码。

实验二:微地址+1操作

● 置MLD=1。

● 按启停单元中的运行按键,使实验平台处于运行状态。

● 按脉冲单元中的PLS1脉冲按键,在MCK上产生一个上升沿,微地址寄存器自动加1。若原来微地址寄存器的值为05H,那么当前的微地址显示灯MA0~MA7将显示06H,同时微程序存储器输出06H单元中的内容。

● 按脉冲单元中的PLS2脉冲按键,在MOCK上产生一个上升沿,将微程序存储器的输出的微指令,打入微指令锁存器并输出,在CPT-B板上的微指令指示灯应显示66H,66H,66H。

实验显示结果图片如下:

置MLD=1
微地址显示灯MA0~MA7显示06H
微指令指示灯显示66H,66H,66H

五、实验总结

 实验原理

本实验聚焦于微程序控制单元(Microprogrammed Control Unit, MCU)的基本原理与实现,通过微程序进行指令控制,以便实现计算机不同操作的执行。微程序控制单元是现代计算机中用于指令解析和控制信号生成的重要组成部分。以下是微程序控制单元的关键构造与功能:

1. 微程序控制单元的组成:

   - 微地址寄存器(MAR):由两个74LS161计数器组成,用于存储当前要执行的微指令地址。

   - 微程序存储器:由三片6264 SRAM组成,负责存放微程序的指令。

   - 微指令锁存器:由三片74LS374锁存器组成,用于存储从微程序存储器中读取的微指令,这里微指令用24位代码表示。

2. 微程序控制原理:

   - 微程序采用全水平、不编码的方式,简单明了。每个微操作控制信号由1位微代码表示,24位微指令能够表示至少24种不同的控制信号。

   - 微程序通过增量地址的方式自动执行,指令的一段连续存储在微程序存储器中。

   - 微指令的入口地址通过指令的操作码编码生成。最高支持256条不同的指令(8位操作码)。

   - 取指令(Fetch)操作的微程序存于存储器的0单元,系统启动时清零微地址寄存器,以便开始执行取指令。控制信号MLD用于选择微地址,而MCK则作为执行脉冲,控制微程序的正式执行。

3. 控制信号功能:

   - `MCK`:微程序工作脉冲,活跃在上升沿。

   - `MOCK`:微程序存储器输出工作脉冲,低电平有效。

   - `MLD`:微地址控制信号,低电平有效,决定是否写入新的微地址。

   - `MD0 - MD7`:微地址的选择开关,各自对应二进制的位,设置微地址寄存器指向的存储单元。

 实验结果分析

在本实验过程中,通过设定微地址、加载微指令并观察控制单元的工作状态,我们完成了以下几个关键操作:

1. 微地址及微程序的写入:

   - 微地址0H中成功输入数据`11H`(三次),在05H中输入数据`55H`,在06H中输入数据`66H`。通过键盘输入确保数据按照设计计划存入微程序存储器中。

2. 操作验证:

   - 进行了微地址打入操作,微程序存储器的输出被准确地锁存并显示在微指令指示灯上。通过监控输出,可以观察到在微指令指示灯上显示的值符合写入要求(`11H`、`55H`、`66H`)。

3. 微地址自增操作:

   - 通过将MLD设置为1,执行微地址的自动加1操作。运行状态下,微地址寄存器成功自增,从05H变为06H,且微程序存储器输出相应的微指令(显示`66H`)满足实验要求。

整体来看,实验中每一步的设置和结果都符合预期,表明微程序控制单元的设计和工作机制能够有效实现。

 个人感悟

        本实验使我对微程序控制单元及其在计算机体系结构中所扮演的角色有了更深入的理解。微程序作为机器指令的底层实现方式,展示了计算机在执行复杂任务时的灵活性和模块化设计。在实际操作中,我体会到了理论与实践结合的重要性,不仅加深了对微程序控制的理解,也锻炼了我在电子电路搭建和调试方面的技能。

        通过观察不同开关、脉冲信号对微程序控制单元状态的影响,我感受到在设计出好的硬件系统时如何需要周全的控制信号设计和精确的时序控制。此外,实验中的每个操作、每个细节都让我明白了严密的工程思维的重要性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/79424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ECMAScript 2(ES2):标准化的微调与巩固

1. 版本背景与发布 发布时间:1998 年 6 月,由 ECMA International 正式发布,标准编号为 ECMA-262 Edition 2。核心定位:作为 ECMAScript 标准的第二次修订版,ES2 的核心目标是修正 ES1 中的错误、完善规范定义&#x…

基于蒙特卡洛模拟的电路容差分析与设计优化

蒙特卡洛模拟在电路设计中的应用 背景知识: 蒙特卡洛模拟是一种通过随机抽样来解决问题的数值方法。在电路设计中,它通过在元件参数的公差范围内随机生成大量样本值,模拟电路在不同参数组合下的行为,从而评估和优化电路设计&…

node.js 实战——mongoDB

MongoDB MongoDB 简介 MongoDB 是一种基于文档型 (document-oriented) 的 NoSQL 数据库,使用类 JSON 的 BSON 格式存储数据,自然支持复杂数据结构。它特别适合需要快速变化、大量数据处理和高应用扩展性的场景。 MongoDB 特性: 无法表、无…

如何掌握 Lustre/Scade 同步数据流语言

从 KPN 的萌芽开始,到 Lustre/Scade 的发展,再到 Velus/Zelus/Swan 在形式化编译、连续时间建模、MBD 平权等各方面的边界拓展,同步数据流语言已经历许多。现在,我们讨论如何掌握 Lustre/Scade 这类法式技术,从语言基础…

神州趣味地名-基于天地图和LeafLet的趣味地名探索

目录 前言 一、搜索API据介绍 1、官方API 2、Leaflet集成 二、成果介绍 1、令人忍俊不禁的地名 2、黑地名 3、数字地名 4、文艺地名 三、总结 前言 在华夏大地广袤的土地上,地名承载着深厚的历史文化底蕴,它们如同一颗颗璀璨的明珠,…

第6篇:EggJS数据库操作与ORM实践

在Web应用开发中,数据库操作是核心环节之一。EggJS通过集成Sequelize ORM框架,提供了高效、安全的数据库操作方案。本文将深入讲解如何在EggJS中配置MySQL数据库、定义数据模型、优化复杂查询,以及管理数据库迁移与种子数据。 一、MySQL基础配…

法线纹理采样+可视化Shader编辑器

法线贴图,对主纹理凹凸显示 建模原理 法线贴图:切线空间,存储xy切线,映射法线,法线信息存储在切线空间中。 模型是否凹凸,是由模型顶点决定的,现在实现的法线贴图,控制凹凸,实际上是…

OID是什么?

什么是 OID? OID 是 Object Identifier(对象标识符) 的缩写,是SNMP(Simple Network Management Protocol,简单网络管理协议)中用来唯一标识被管理对象(比如设备的某项信息)的一串数字。

STM32 ZIBEE DL-20 无线串口模块

一.配置方法 二.串口中断 u8 i; u16 buf[20],res; u8 receiving_flag 0; // 新增一个标志,用于标记是否开始接收数组 void USART1_IRQHandler(void) {if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) //接收中断{res USART_ReceiveData(USART1);if(receiv…

全感官交互革命:当 AI 大模型学会 “看、听、说、创”

引言:从 “文字对话” 到 “全感官体验”,AI 正在重塑人类认知边界 当 AI 不再局限于文本对话,而是能 “看懂” 图像、“听懂” 语音、“生成” 视频,并将这些模态无缝融合时,一场关于人机交互的革命已然开启。DeepSe…

C++模板知识

目录 引言 一、非类型模板参数 二、类模板的特化 (一)概念 (二)函数模板特化 (三)类模板特化 1. 全特化 2. 偏特化 (四)类模板特化应用示例 三、模板的分离编译 …

Pillow 移除或更改了 FreeTypeFont.getsize() 方法

w, h self.font.getsize(label) # text width, height AttributeError: FreeTypeFont object has no attribute getsize 在Pillow 项目的变更日志里可以查到哪个版本移除了 getsize() 方法,Pillow仓库: Releases python-pillow/Pillow GitHub 因为…

Matlab自学笔记

一、我下载的是Matlab R2016a软件,打开界面如下: 二、如何调整字体大小,路径为:“主页”->“预设”->“字体”。 三、命令行窗口是直接进行交互式的,如下输入“3 5”,回车,就得到结果“…

VR汽车线束:汽车制造的新变革

汽车线束,作为汽车电路网络的主体,宛如汽车的 “神经网络”,承担着连接汽车各个部件、传输电力与信号的重任,对汽车的正常运行起着关键作用。从汽车的发动机到仪表盘,从传感器到各类电子设备,无一不是通过线…

目标检测YOLO实战应用案例100讲-基于多级特征融合的小目标深度检测网络

目录 知识储备 基于多级特征融合的小目标深度检测网络实现 一、环境配置 二、核心代码实现 1. 多级特征融合模块(models/fpn.py ) 2. 主干网络(models/backbone.py ) 3. 检测头(models/detector.py ) 三、完整网络架构(models/net.py ) 四、训练代码(train.p…

【云原生】基于Centos7 搭建Redis 6.2 操作实战详解

目录 一、前言 二、Redis 6.2 安装过程 2.1 下载安装包 2.2 安装包解压 2.3 安装包编译 2.3 安装 2.4 启动redis 2.4.1 前台启动(不推荐) 2.4.2 后启动(推荐) 2.4.3 关闭redis服务 2.4.4 设置客户端连接 三、写在最后 …

云计算-容器云-服务网格

服务网格:创建VirtualService(3分) ​ 将Bookinfo应用部署到default命名空间下,为Bookinfo应用创建一个名为reviews的VirtualService,要求来自名为Jason的用户的所有流量将被路由到reviews服务的v2版本。(需要用到的软件包:ServiceMesh.tar.gz) # 上传解压 tar -xf Se…

【Res模块学习】结合CIFAR-100分类任务学习

初次尝试训练CIFAR-100:【图像分类】CIFAR-100图像分类任务-CSDN博客 1.训练模型(MyModel.py) import torch import torch.nn as nnclass BasicRes(nn.Module):def __init__(self, in_cha, out_cha, stride1, resTrue):super(BasicRes, sel…

爱胜品ICSP YPS-1133DN Plus黑白激光打印机报“自动进纸盒进纸失败”处理方法之一

故障现象如下图提示: 用户的爱胜品ICSP YPS-1133DN Plus黑白激光打印机在工作过程中提示自动进纸盒进纸失败并且红色故障灯闪烁; 给出常见故障一般处理建议如下: 当您的爱胜品ICSP YPS-1133DN Plus 黑白激光打印机出现“自动进纸盒进纸失败”…

Flinkcdc 实现 MySQL 写入 Doris

Flinkcdc 实现 MySQL 写入 Doris Flinkcdc 实现 MySQL 写入 Doris 一、环境配置 Doris:3.0.4 JDK 17 MySQL (业务数据库):5.7 MySQL(本地数据库):5.7 Flink:flink-1.19.1 flinkc…