实验(四):指令部件实验

一、实验内容与目的

        实验要求:

        利用CP226实验仪上的小键盘将程序输入主存储器EM,通过指令的执行实现微程序控制器的程序控制。

        实验目的:

1.掌握模型机的操作码测试过程;

2.掌握模型机微程序控制器的基本结构以及程序控制的基本原理。

二、实验步骤

一条机器指令有一个微程序解释执行,一个微程序有若干条微指令构成。每条指令的操作码OP就是微程序第一条微指令在控制存储器uM的微地址,通过操作码找到第一条微指令地址的过程称为操作码测试或P1测试。微程序的多条微指令在控制存储器uM的组织方式可以是链表式(下一条微指令的微地址由当前微指令的顺序控制部分决定),也可以是顺序式(下一条微指令的微地址是当前微指令的微地址加1产生)。

模型机的操作码测试规则如下:

指令的六位操作码 OP,低位补加两个零构成八位微地址作为微程序第一条微指令的微地址。

指令 MOV A, #12H 的操作码OP=011111B,低位补加00B,解释执行该机器指令的第一条微指令的微地址是01111100B,即7CH。该微指令在控制存储器的7CH单元。

模型机的微程序组织方式是顺序式。

实验程序段:

MOV	A, #12H
MOV	A, R1
MOV	A,@R2
MOV	A, 10H
IN  A,SW
OUT	LED,A

将该程序转换为机器码写入主存储器 EM。

2.1 微地址实验

下面以第一条指令为例说明微地址的形成方式。

指令MOV  A, #12H 开始执行的第1条微指令一定是取指令的微指令,由于所有指令取指令的微指令都一样,所以取指令的微指令作为公共操作放在控制存储器的00H单元。

解释执行指令MOV       A, #12H 的第一条微指令的微地址是7CH。

执行完指令MOV    A, #12H 需要取下一条指令,第二条微指令是取值的微指令,微地址是7DH。

标明微地址的指令周期图如下所示。指令周期图的一个方块是一个机器周期(一次STEP 按键操作),对应一条微指令,方框上面的数字就是微地址,波浪号是取指公操作。

将指令地址 PC 和微指令地址 uPC 置为 00H,如果不是可以通过小键盘输入改写,按下 STEP 按键,观察 uPC 值得变化。 

2.2 微指令实验

模型机的微程序组织方式是顺序式,微指令只有 24 位操作控制字段,没有顺序字段,微指令格式如下:

X

R

D

E

M

W

R

E

M

W

P

C

O

E

E

M

E

N

I

R

E

N

E

I

N

T

E

L

P

M

A

R

E

N

M

A

R

O

E

O

U

T

E

N

S

T

E

N

R

R

D

R

W

D

C

N

F

E

N

X

2

X

1

X

0

W

E

N

A

E

N

S

2

S

1

S

0

24 个操作控制位是 3 个字节,最高 8 位称为微指令的高字节,简写为 MH;中间 8 位称为微指令的中字节,简写为 MM;最低 8 位称为微指令的低字节,简写为 ML。

下面以第一条指令为例说明微微程序控制。

指令 MOV A, #12H 开始执行的第 1 条微指令是取指令的微指令,取指的微指令在控存 00H 单元,将 00H 单元的微指令读出,其值为 CBFFFFH,具体操作详见 1.3 的第 5 部分的观察和修改微程序控制器 uM 的内容。

该微指令对应的三个控制位是 EMRD、PCOE、及 IREN 为低,此三位有效,其它所有位都处于无效状态。在程序第一次运行时或复位后,uPC 和 PC 的值都为 0。PCOE 有效将 PC 值送到 ABUS,做为主存储器 EM 的指令地址,同时 PC 加 1;EMRD 信号有效就是从主存储器 EM 中读出程序指令,IREN 将读出的指令送到 IR 寄存器。

此微指令的作用就是:从主存储器 EM[0]的读取指令,并存入 IR 中进行操作码测试,得到微程序入口地址 7CH 来修改 uPC,同时 PC 加 1 为读下一条指令或数据做准备。

将 7CH 单元的微指令读出,其值为 C7FFF7H,对应到各个控制位是 EMRD、PCOE、 EMEN 及 AEN 为低,处于有效状态,其它控制位为无效状态。PCOE 是将 PC 输出到 ABUS 做为主存储器 EM 的地址,同时 PC 加 1;EMRD 就是从程序存储 EM 中读出数据,EMEN 将读出的数据送到 DBUS 总线上,AEN 是将 DBUS 总线上的值存入累加器 A 中。

此微指令的作用就是:从主存储器 EM[1] 的读取数据 12H 送入 A,uPC 加 1,给出下一条微指令的地址,同时 PC 加 1 为读下一条指令或数据做准备。

将 7DH 单元的微指令读出,其值为 CBFFFFH 与 00H 单元微指令作用一样。

三、实验过程分析

3.1 微地址实验

1. 实验过程分析

  • 实验准备:

在开始实验之前,需要将指令地址 PC 和微指令地址 uPC 设置为 00H,以确保模型机处于初始状态。这样,我们可以从第一条微指令开始执行,并观察微地址的变化。

  • 第一条指令 MOV A, #12H:

根据给定的程序段,第一条指令是将立即数 12H 存储到寄存器 A 中。根据转换得到的机器码(0111 1100),将该机器码写入主存储器 EM 的相应地址单元。按下 STEP 按键后,模型机执行取指令的微指令,微地址为 7CH。

  • 第二条指令 MOV A, R1:

根据给定的程序段,第二条指令是将寄存器 R1 的值存储到寄存器 A 中。根据转换得到的机器码(0111 0001),将该机器码写入主存储器 EM 的相应地址单元。按下 STEP 按键后,模型机执行取值的微指令,微地址为 71H。

  • 第三条指令 MOV A, @R2:

根据给定的程序段,第三条指令是将寄存器 R2 指向的内存单元的值存储到寄存器 A 中。根据转换得到的机器码(0111 0110),将该机器码写入主存储器 EM 的相应地址单元。按下 STEP 按键后,模型机执行取值的微指令,微地址为 76H。

  • 第四条指令 MOV A, 10H:

根据给定的程序段,第四条指令是将立即数 10H 存储到寄存器 A 中。根据转换得到的机器码(0111 1000),将该机器码写入主存储器 EM 的相应地址单元。按下 STEP 按键后,模型机执行取值的微指令,微地址为 78H。

  • 第五条指令 IN A, SW:

根据给定的程序段,第五条指令是将开关 SW 的值输入到寄存器 A 中。根据转换得到的机器码(1100 0000),将该机器码写入主存储器 EM 的相应地址单元。按下 STEP 按键后,模型机执行取值的微指令,微地址为 C0H。

  • 第六条指令 OUT LED, A:

根据给定的程序段,第六条指令是将寄存器 A 的值输出到 LED 灯。根据转换得到的机器码(1100 0100),将该机器码写入主存储器 EM 的相应地址单元。按下 STEP 按键后,模型机执行取值的微指令,微地址为 C4H。

通过按下 STEP 按键,我们可以观察到微地址在每个指令周期(一次按键操作)中的变化。微地址的变化对应着不同的微指令的执行,通过控制存储器中存储的微指令,模型机可以按照特定的顺序执行指令,并完成相应的操作。

2. 补全指令流程图中的微地址

 

3.2 微指令实验

实验过程分析:

  • 第一条指令:MOV A, #12H

微地址 7CH:将立即数 12H 送入累加器 A

EMRD、PCOE、EMEN、AEN 有效,其余控制位无效

将 PC 的值送到 ABUS,作为主存储器 EM 的地址,同时 PC 加 1

从主存储器 EM 中读取数据 12H,将数据存入累加器 A

1 第一条指令的微程序

  • 第二条指令:MOV A, R1

微地址 70H:将寄存器 R1 的值送入累加器 A

EMRD、PCOE、EMEN、REN、AEN 有效,其余控制位无效

将 PC 的值送到 ABUS,作为主存储器 EM 的地址,同时 PC 加 1

从主存储器 EM 中读取寄存器 R1 的值,将值存入累加器 A

2 第二条指令的微程序

  • 第三条指令:MOV A, @R2

微地址 74H:将间址存储器 R2 的值送入累加器 A

EMRD、PCOE、EMEN、MA、AEN 有效,其余控制位无效

将 PC 的值送到 ABUS,作为主存储器 EM 的地址,同时 PC 加 1

从主存储器 EM 中读取间址存储器 R2 的值,将值存入累加器 A

3 第三条指令的微程序

  • 第四条指令:MOV A, 10H

微地址 78H:将立即数 10H 送入累加器 A

EMRD、PCOE、EMEN、AEN 有效,其余控制位无效

将 PC 的值送到 ABUS,作为主存储器 EM 的地址,同时 PC 加 1

从主存储器 EM 中读取数据 10H,将数据存入累加器 A

4 第四条指令的微程序

  • 第五条指令:IN A, SW

微地址 C0H:将开关 SW 的值输入到累加器 A

EMRD、PCOE、INEN、AEN 有效,其余控制位无效

将 PC 的值送到 ABUS,作为主存储器 EM 的地址,同时 PC 加 1

从主存储器 EM 中读取开关 SW 的值,将值存入累加器 A

5 第五条指令的微程序

  • 第六条指令:OUT LED, A

微地址 C4H:将累加器 A 的值输出到 LED

EMRD、PCOE、OUTEN、AEN 有效,其余控制位无效

将 PC 的值送到 ABUS,作为主存储器 EM 的地址,同时 PC 加 1

将累加器 A 的值输出到 LED

图6 第六条指令的微程序

四、实验总结

本次实验旨在通过实践,掌握模型机的程序控制方式以及微程序控制器的基本结构和原理。实验一主要针对微地址的形成方式进行了实验,而实验二则重点在于微指令的执行和控制过程。通过对实验一和实验二的进行分析和实验操作,我们对模型机的程序控制有了更深入的了解。

实验一中,我们使用了给定的程序段,并将其转换为机器码写入主存储器 EM。通过将指令转换为机器码,我们能够更好地理解指令在计算机中的表示方式和存储方式。在实验过程中,我们首先设置微地址为00H,并通过按下STEP按键,观察uPC值的变化。实验结果表明,uPC值根据指令的执行逐步递增,说明微程序控制器按顺序执行微指令。通过这一实验,我们深入了解了微地址的形成方式以及微程序控制的基本原理。

实验二则更加注重微指令的执行和控制过程。我们根据实验中给定的微指令格式,以第一条指令为例,详细分析了微指令的控制位和对应的操作。通过对微指令的解析,我们了解到微指令中的每个控制位都对应着不同的控制信号,控制着计算机的各个部件的工作状态。实验过程中,我们根据微指令的地址,逐步执行微指令,并观察各个控制信号的状态变化。这样的实验设计使我们更加直观地了解了微指令的执行流程和控制机制。

通过本次实验,我们对模型机的程序控制方式有了更深入的了解。我们掌握了指令的机器码表示和存储方式,了解了微地址的形成方式以及微程序控制器的基本结构和原理。我们通过实验操作,观察了微指令的执行过程,并分析了不同控制位对计算机各部件的控制作用。这些实验帮助我们更好地理解了计算机的工作原理和程序执行的过程。

通过本次实验,我们还加深了对计算机体系结构的认识。我们理解了指令的执行过程是通过微程序控制器来实现的,微指令控制着计算机的各个部件的工作状态,从而完成指令的执行。我们意识到微程序控制器在计算机体系结构中的重要性,它为计算机提供了灵活的指令执行方式和可扩展的控制功能。

总而言之,我们在实践中深入了解了模型机的程序控制方式和微程序控制器的工作原理。我们通过对实验一和实验二的分析和操作,掌握了指令的机器码表示、微地址的形成方式以及微指令的执行和控制过程。这些实验对于我们加深对计算机体系结构的理解和掌握计算机的程序控制技术具有重要意义。通过实验,我们提高了对计算机工作原理的认识和理解,为今后的学习和研究打下了坚实的基础。

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

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

相关文章

界面控件DevExpress WPF流程图组件,完美复制Visio UI!(一)

DevExpress WPF Diagram(流程图)控件帮助用户完美复制Microsoft Visio UI,并将信息丰富且组织良好的图表、流程图和组织图轻松合并到您的下一个WPF项目中。 P.S:DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至…

pytorch中.to(device) 和.cuda()的区别

在PyTorch中,使用GPU加速可以显著提高模型的训练速度。在将数据传递给GPU之前,需要将其转换为GPU可用的格式。 函数原型如下: def cuda(self: T, device: Optional[Union[int, device]] None) -> T:return self._apply(lambda t: t.cuda…

steamui.dll找不到指定模块,要怎么修复steamui.dll文件

当我们使用Steam进行游戏时,有时可能会面对一些令人无奈的技术问题。一种常见的问题是“找不到指定模块steamui.dll”,这可能是由于缺少文件、文件损坏或软件冲突等原因导致。但别担心,这篇文章将提供几种解决此问题的方法,并针对…

Apache Airflow (十三) :Airflow分布式集群搭建及使用-原因及

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹…

线程池[重点]

线程池概述 线程池就是一个可以复用线程的技术。 不使用线程池的问题 :如果用户每发起一个请求,后台就创建一个新线程来处理,下次新任务来了又要创建新线程,而创建新线程的开销是很大的,这样会严重影响系统的性能。 …

身为程序员哪一个瞬间让你最奔溃 ?

身为程序员,有时候最让我感到沮丧的瞬间之一是遇到难以追踪和解决的 Bug。这些 Bug 可能出现在我写的代码中,也可能是由于不可预测的外部因素引起的。其中一个让我最奔溃的瞬间是在一个大型项目中,我遇到了一个非常复杂的Bug,这个…

Linux--网络概念

1.什么是网络 1.1 如何看待计算机 我们知道,对于计算机来说,计算机是遵循冯诺依曼体系结构的(即把数据从外设移动到内存,再从内存到CPU进行计算,然后返回内存,重新读写到外设中)。这是一台计算机…

HCIP-一、RSTP 特性及安全

一、RSTP 特性及安全 实验拓扑实验需求及解法 实验拓扑 实验需求及解法 //1.SW1/2/3是企业内部交换机,如图所示配置各设备名称。 //2.配置VLAN,需求如下: //1)SW1/2/3创建vlan10 [SW1]vlan batch 10 [SW2]vlan batch 10 [SW3]vla…

HugeGraph安装与使用

1、HugeGraph-Server与HugeGraph-Hubble下载 HugeGraph官方地址:https://hugegraph.apache.org/ 环境为:linux 官网是有模块版本对应关系,尽量下载较新版本,hubble1.5.0之前是studio功能比较少。官网已经下架server,其他模块下载也比较慢。可以在网上找…

机器视觉技术在现代汽车制造中的应用

原创 | 文 BFT机器人 机器视觉技术,利用计算机模拟人眼视觉功能,从图像中提取信息以用于检测、测量和控制,已广泛应用于现代工业,特别是汽车制造业。其主要应用包括视觉测量、视觉引导和视觉检测。 01 视觉测量 视觉测量技术用于…

分布式系统的认证授权

一.分布式系统的认证授权大致架构 以云音乐系统为例: 注:一般情况下,我们会把认证的部分的接口提取为一个单独的认证服务模块中。 二.单点登录(Single Sign On) 单点登录,Single Sign On,简称…

C语言--输入三角形的三边,输出三角形的面积

一.题目描述 输入三角形的三边,输出三角形的面积。比如:输入三角形的三边长度是3,4,5.输出6 二.思路分析 利用海伦公式可以很好解决 海伦公式的表达式如下: s (a b c) / 2 面积 sqrt((s * (s - a) * (s - b) * (…

北邮22级信通院数电:Verilog-FPGA(0)怎么使用modelsim进行仿真?modelsim仿真教程一份请签收~

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 最近很多uu问我怎么用quartus连接的modelsim软件进…

HarmonyOS ArkTS List组件和Grid组件的使用(五)

简介 ArkUI提供了List组件和Grid组件,开发者使用List和Grid组件能够很轻松的完成一些列表页面。常见的列表有线性列表(List列表)和网格布局(Grid列表): List组件的使用 List是很常用的滚动类容器组件&…

【giszz笔记】产品设计标准流程【8】

(续上回) 真的没想到写了8个章节,想参考之前文章的,我把链接给到这里。 【giszz笔记】产品设计标准流程【7】-CSDN博客 【giszz笔记】产品设计标准流程【6】-CSDN博客 【giszz笔记】产品设计标准流程【5】-CSDN博客 【giszz笔…

ES7-ES13有何新特性?

目录 ES7 ES8 ES9 ES10 ES11 ES12 ES13 hello,大家好呀!之前发布的两篇关于ES6新特性的文章学习完了吗?今天来给大家介绍ES6之后,截止到2022年的ES13每个时期新增的一些新特性!快来一起学习吧! ES7 …

基于单片机公交安全预警系统仿真设计

**单片机设计介绍, 基于单片机公交安全预警系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的公交安全预警系统可以被设计成能够实时监测公交车辆的行驶状态,并在发生异常情况时进行…

图Graph的存储、图的广度优先搜索和深度优先搜索(待更新)

目录 一、图的两种存储方式 1.邻接矩阵 2.邻接表 生活中处处有图Graph的影子,例如交通图,地图,电路图等,形象的表示点与点之间的联系。 首先简单介绍一下图的概念和类型: 图的的定义:图是由一组顶点和一…

Qt 基于海康相机的视频绘图

需求 在视频窗口上进行绘图,包括圆,矩形,扇形等 效果: 思路: 自己取图然后转成QImage ,再向QWidget 进行渲染,根据以往的经验,无法达到很高的帧率。因此决定使用相机SDK自带的渲染…