计算机组成原理实验(7) 堆指令部件模块实验

实验七 堆指令部件模块实验

一、实验目的

1、掌握指令部件的组成方式。

2、熟悉指令寄存器的打入操作,PC计数器的设置和加1操作,理解跳转指令的实现过程。

二、实验要求

按照实验步骤完成实验项目,掌握数据打入指令寄存器IR1、PC计数器的重置,PC计数器自动加1和实现跳转指令的方法。

三、实验说明

3.1  指令部件模块实验的构成:(如图3-2)

1、1片74LS374作为指令模块的指令寄存器IR1,另1片74LS374作为地址锁存器IR2。8芯插座PC-IN作为数据输入端,可通过短8芯扁平电缆把数据输入端连接到数据总线上。

2、2片74LS161作为PC计数器。

3、2片74LS245(同时只有1片输出)作为当前地址的输出。8芯插座PC-OUT作为地址输出端,可通过短8芯扁平电缆把地址输出端连接到地址总线上。

4、1片74LS153来实现多种条件跳转指令(JZ,JC,JMP等跳转指令)。

图 3-1

3.2  指令部件模块原理:(如图3-2)

1、指令寄存器IR1(74LS374)的 EIR1为低电平并且IR1CK有上升沿时,把来自数据总线的数据打入IR1,IR1的输出就作为本系统内的8位指令I0~I7。在本系统内由这8位指令可最多译码256条不同的指令,通过编码可对应出这些指令在微程序存储器中入口地址,并且输出相应的微指令。

2、2片74LS161组成了PC计数器,它由信号ELP、信号PC-O、脉冲PCCK来控制PC计数器+1和PC计数器置数操作。在停机状态下,由控制台置起始地址,给出打入脉冲并置入74LS161。当ELP=0,PCCK有上升沿时可重新置PC值。当PCO=0、ELP=1, PCCK是上升沿时把当前PC计数器加1,并且把PC计数器的值作为地址输出到地址总线上。

3、置EIR2为低电平,并且IR2CK有上升沿时,数据总线的数据打入IR2锁存器后,置IR2-O=0,PC-O=1时,把IR2的值作为地址输出到地址总线上。  

4、74LS153是4选1的芯片,可通过JS0、JS1来选择用JC还是JZ来实现条件跳转的指令。

JS1

JS0

功  能

0

0

选择JZ  当通用寄存器为0时跳转

0

1

选择JC  当进位寄存器为0时跳转

1

0

选择JN  提供给用户自定义,JN=0跳转

1

1

重新设置当前PC指针,实现JMP指令

图 3-2

3.3  控制信号说明

信号名称

作   用

有效电平

IR1CK

IR1的工作脉冲

上升沿有效

IR2CK

IR2的工作脉冲

上升沿有效

PCCK

PC计数器工作脉冲

上升沿有效

EIR1

选通指令寄存器IR1

低电平有效

EIR2

选通指令寄存器IR2

低电平有效

IR2-O

IR2输出允许

低电平有效

PC-O

PC计数器内容输出允许

低电平有效

ELP

74LS161控制信号

高电平可重置PC值;低电平时PC值自动加1

JS0-JS1

选择开关

见上表

JZ

条件跳转

为零跳转

四、实验步骤

● 在启停单元中按“运行”按钮,使实验平台处于运行状态。

● 把EIR1,EIR2,PC-O,IR2-O,ELP,JS0,JS1接入二进制拨位开关中。把IR1CK和IR2CK接入脉冲单元PLS1,PCCK接入PLS2中。用长8位扁平电缆把PC-IN与右板上的二进制开关单元中J03相连(对应二进制开关H0~H7),PC-OUT用短8位扁平电缆连接地址总线AJ1,其他控制信号请按下表接线。

信号定义

接入开关位号

IR1CK

PLS1 孔

IR2CK

PLS1 孔

PCCK

PLS2 孔

EIR1

H20  

EIR2

H19  

IR2-0

H18  孔

PC-O

H17  

ELP

H16  

JS0

H15  

JS1

H14  

JZ

H13  孔

接线图示:

实验一:PC计数器置数

● 二进制开关H0~H7作为数据输入,置05H(对应开关如下表)。

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

0

0

0

0

1

0

1

05H

● 置控制信号如下:

H20

H19

H18

H17

H16

H15

H14

EIR1

EIR2

IR2-O

PC-O

ELP

JS0

JS1

1

0

1

1

0

1

1

实验结果图片如下:

置控制信号如图

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

● 按脉冲单元中的PLS1脉冲按键,在IR2CK上产生一个上升沿,把当前数据总线数据打入IR2锁存器,按脉冲单元中的PLS2脉冲按键,在PCCK上产生一个上升沿,将IR2锁存器中的地址打入PC计数器(2片74LS161)中,这样的操作过程可实现无条件跳转指令。若要观测输出结果,再置信号PC-O=0,此时PC计数器把其内容作为地址输出到地址总线上,地址总线上的指示灯IAB0~IAB7应显示05H。

实验结果图片如下:

地址总线上的指示灯IAB0~IAB7显示05H

实验二:PC计数器加1

● 完成实验1后,重置各控制信号如下:

H20

H19

H18

H17

H16

H15

H14

EIR1

EIR2

IR2-O

PC-O

ELP

JS0

JS1

1

1

1

0

1

1

1

实验结果图片如下:

置控制信号如图

● 按脉冲单元中的PLS2脉冲按键,在PCCK上产生一个上升沿,因PC-O=0,PC计数器将加1,PC计数器为06H,并且输出至地址总线。此时地址总线上的指示灯IAB0~IAB7应显示06H。

实验三:置当前指令寄存器

● 二进制开关H0~H7作为数据输入,置5FH(对应开关如下表)。

H7

H6

H5

H4

H3

H2

H1

H0

数据总线值

D7

D6

D5

D4

D3

D2

D1

D0

8位数据

0

1

0

1

1

1

1

1

5FH

● 置控制信号如下:

H20

H19

H18

H17

H16

H15

H14

EIR1

EIR2

IR2-O

PC-O

ELP

JS0

JS1

0

1

1

1

1

0

0

实验结果图片如下:

指令寄存器的指示灯I0~I7显示5FH

五、实验总结

 实验原理

本实验主要围绕指令部件模块及其在计算机体系结构中的作用进行,具体讲述了如何利用硬件实现指令的打入、程序计数器(PC)的设置与加1,以及跳转指令的实现。实验所涉及的关键概念包括指令寄存器、程序计数器以及条件跳转的控制信号。以下是详细的实验原理分析:

● 指令寄存器(IR1):

指令寄存器(IR1)用于存储当前正在执行的指令。通过74LS374芯片实现,当控制信号EIR1为低电平时,正当IR1CK(时钟脉冲)有上升沿信号到来时,数据总线上的数据就会被打入IR1,从而使系统能够读取并执行该指令。在本实验中,IR1能够存储8位二进制指令,最多可编码出256条不同的指令。

● 程序计数器(PC):

程序计数器(PC)是一个存放下一条将要被执行的指令的地址的寄存器。通过74LS161芯片实现。PC的控制包括两种基本操作:重置和自增。设定控制信号ELP为低电平时,PC的值自增1;如果设定为高电平时,PC也可以被置为一个新的下一个指令地址。PC的输出通过控制信号PC-O可以输出到地址总线。

● 跳转指令:

跳转类型指令如JZ、JC和JMP是程序控制流的重要组成部分。使用74LS153芯片作为选择开关,在这里根据指定条件生成控制信号,允许程序跳转到新的指令位置。例如,当某寄存器的值为零时执行JZ指令,或者当进位标志为零时执行JC指令。这种条件跳转通过选通控制信号来决定程序流转向。

 实验结果分析

在实验中,按照设计步骤成功实现了以下几个重要操作:

● PC计数器置数:

在进行PC计数器置数时,成功将05H输入地址锁存器(IR2),并将内容打入PC计数器。当执行后,地址总线的指示灯成功显示为05H,验证输入的准确性。

● PC计数器加1:

通过控制信号设置,在PC计数器之前的状态下,通过时钟脉冲成功将PC值加1,最终在地址总线指示灯处观察到输出结果为06H。这表明程序计数器的自增操作正确实现。

● 当前指令寄存器的设置:

将数据5FH通过二进制开关输入后,持续设置新的控制信号,以成功打入指令寄存器IR1。在按下时钟脉冲后,IR1的指示灯显示了5FH,表明指令读取过程正常。

这些实验结果确立了指令部件在处理和执行微指令中的关键作用,为基础的计算机组成原理提供了验证。

 个人感悟

        通过这次实验,我对计算机指令处理的基本原理和硬件实现有了更深入的理解。实验中的每一步都强化了我对计算机体系结构及其构件之间相互关系的认识,特别是在指令寄存器和程序计数器的功能与操作上。

        此外,我对硬件之间的时序控制与信号传递有了更加直观的理解。在实际构建和调试过程中,动态的观察信号变化及其对系统状态的影响,让我感受到了硬件设计中的细致与严谨。通过实验,我意识到理论知识与实际操作之间的密切联系,这让我在进行未来更复杂的项目时更加自信。

        接下来的学习中,我希望能够深入探讨更复杂的指令系统设计及其在现代计算机中的实用性的更多应用,为进一步的研究和开发奠定基础。

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

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

相关文章

2022 年 6 月大学英语四级考试真题(第 2 套)——阅读版——仔细阅读题

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,目前中南大学MBA在读,也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 &…

磁盘文件系统

磁盘文件系统 一、磁盘结构1.1 认识一下基础的硬件设备以及真实的机房环境1.2 磁盘物理结构与存储结构1、磁盘物理结构2、磁盘的存储结构3、CHS地址定位4、磁盘的逻辑结构(LBA)5 磁盘真实过程5 CHS && LBA地址 二、理解分区、格式化1 引⼊"…

基于LangChain 实现 Advanced RAG-后检索优化(下)-上下文压缩与过滤

摘要 Advanced RAG 的后检索优化,是指在检索环节完成后、最终响应生成前,通过一系列策略与技术对检索结果进行深度处理,旨在显著提升生成内容的相关性与质量。在这些优化手段中,上文压缩与过滤技术是提升检索结果质量的重要手段。…

为什么 Vite 速度比 Webpack 快?

一、webpack会先进行编译,再运行,vite会直接启动,再按需编译文件。 首先看两张图,可以清晰的看到,上面的图是webpack编译过的,而下面的图是vite直接使用工程内文件。 二、区别于Webpack先打包的方式&am…

C# 操作符

C# 操作符 一、操作符概览二、优先级与运算顺序三、各类操作符的实例 一、操作符概览 操作符(运算符)的本质是函数的简记法 操作符不能脱离与它关联的数据类型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//输出1double a 5.0; double b…

C++设计模式:面向对象的八大设计原则之四

里氏替换原则(Liskov Substitution Principle,LSP)是面向对象设计中的一个重要原则,它指出子类必须能够替换它的基类,并且程序的行为不会发生改变。也就是说,在任何使用基类对象的地方,都可以透…

网络通信领域的基础或流行协议

一、TCP(传输控制协议) 1. 宏观介绍 TCP:全称“Transmission Control Protocol”——传输控制协议,是互联网最基础的传输协议之一。传输层协议,提供面向连接、可靠的字节流传输服务。它通过三次握手建立连接、四次挥手断开连接,确保数据有序、完整地传输作用:让两个设备…

【教学类-34-10】20250503(通义万相)4*3蝴蝶拼图(圆形、三角、正方、半圆的凹凸小块+参考图灰色)

背景需求 2023年从网站上搜索拼图代码,陆续改良了圆形、三角形、菱形凹凸) 【教学类-34-05】20230425拼图(“圆角”凹凸拼图)3*4格子(中班主题《个别化拼图》偏美术)_拼图的槽叫什么形状-CSDN博客文章浏览阅读1.1k次。【教学类-34-05】20230425拼图(“圆角”凹凸拼图)…

bellard.org‌ : QuickJS 如何使用 qjs 执行 js 脚本

参阅上一篇:Fabrice Bellard(个人网站:‌bellard.org‌)介绍 Fabrice Bellard(个人网站:‌bellard.org‌)是计算机领域最具影响力的程序员之一,其贡献跨越多个技术领域并持续推动开…

数据结构---

案例一 1.随机生成n个工人工时,100以内,工号分别为2021101到2021100n 2.以工时数为关键字分别使用选择排序、冒泡排序、插入排序进行升序排序。 3.把排序后的结果输出,包括工号工时数 4.比较三种算法对相同的n值数组排序所花的时间 代码如下&…

Python硬核革命:从微控制器到FPGA的深度开发指南

1. 重新定义硬件开发:Python的颠覆性突破 传统硬件开发长期被C/C++和Verilog/VHDL统治,但Python正通过两条路径改变这一格局: 1.1 微控制器领域的MicroPython革命 完整Python 3.4语法支持,运行在资源受限的MCU上(最低要求:64KB ROM,16KB RAM) 直接内存访问能力,突破…

基于springboot+vue的宠物共享平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat12开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系统展示 宠物寄养管理 宠…

day 11 超参数调整

一、内参与外参(超参数) 内参是模型为了适应训练数据而自动调整的,是模型内部与训练数据紧密相关的因素,不同的训练数据会导致模型学习到不同的参数值,这些参数在模型训练完成后就固定下来。 超参数是在模型训练前需…

快速搭建对象存储服务 - Minio,并解决临时地址暴露ip、短链接请求改变浏览器地址等问题

其他文章 服务容错治理框架resilience4j&sentinel基础应用---微服务的限流/熔断/降级解决方案-CSDN博客 conda管理python环境-CSDN博客 快速搭建对象存储服务 - Minio,并解决临时地址暴露ip、短链接请求改变浏览器地址等问题-CSDN博客 大模型LLMs的MCP入门-…

朴素贝叶斯分类器

朴素贝叶斯分类器 朴素贝叶斯是一种基于密度估计的分类算法,它利用贝叶斯定理进行预测。该算法的核心假设是在给定类别的情况下,各个特征之间是条件独立的,尽管这一假设在现实中通常不成立,但朴素贝叶斯分类器依然能够生成对有偏…

在 Trae CN IDE 中配置 Python 3.11的指南

在 Trae CN IDE 中配置 Python 3.11的指南 下载 python 3.11 安装 Python 3.11 首先,我们需要确保安装了 Python 3.11。可以从Python 官方网站下载适合你操作系统的版本。 链接 如果你已经安装了 Python 3.11,可以通过以下命令确认: 文…

MQTT 协议与 HTTP 协议的区别

在现代的网络通信中,MQTT 协议和 HTTP 协议都扮演着重要的角色,但它们有着不同的特点和适用场景。下面我们就从多个方面来详细探讨它们之间的区别。 一.协议设计理念 1. MQTT 协议 MQTT(Message Queuing Telemetry Transport)即…

Postgresql源码(145)优化器nestloop参数化路径评估不准问题分析

相关 《Postgresql源码(133)优化器动态规划生成连接路径的实例分析》 1 问题 最近遇到一个问题,评估行数和真实行数存在较大差距,导致计划不准的问题。 nestloop内表评估是根据外表的参数来的。因为外表驱动表每取一条&#xff…

HTML与CSS实现风车旋转图形的代码技术详解

在前端开发中,HTML和CSS是构建网页的基础技术。通过巧妙运用HTML的结构搭建和CSS的样式控制,我们能够实现各种精美的视觉效果。本文将对一段实现旋转图形效果的HTML和CSS代码进行详细解读,剖析其中的技术要点。 一、运行效果 HTML与CSS实现风…

linux下,ollama会把模型文件保存在哪里?

文章目录 运行ollama,有两种形式,估计得分开讨论首先是使用自动启动的ollama:先跑个“小一点的大模型”但是现在模型文件存在哪儿呢?运行ollama,有两种形式,估计得分开讨论 我们用两种方式,来运行ollama。 首先是使用自动启动的ollama: ps -aux | grep ollama系统自…