计算机组成原理 总线与微命令实验-程序员宅基地

技术标签: 微命令  寄存器  总线  存储器  计算机组成原理  

总线与微命令实验

实验环境

计算机组成原理实验环境

实验目的

  1. 理解总线的概念和作用。
  2. 连接运算器与存储器,熟悉计算机的数据通路。
  3. 理解微命令与微操作的概念。

实验要求

  1. 做好实验预习,读懂实验电路图,熟悉实验元器件的功能特性和使用方法。
  2. 按照实验内容与步骤的要求进行实验,对预习时填写好的微命令进行验证与调试,遇到问题请冷静、独立思考,认真仔细地完成实验。

实验电路

       本实验使用的主要元器件有:4 位算术逻辑运算单元 74LS181 , 8 位数据锁存器 74LS273 ,三态输出的总线收发器 74LS245,2K x 8 静态随机存储器 6116 ,时序发生器,与非门、 与门、开关、指示灯等。芯片详细说明请见附录。

       时序发生器用于产生四个等间隔时序信号 T1 、T2 、T3 和 T4 。在本虚拟实验系统中,连续发出的一轮 T1 ~ T4 时序信号对应一个 CPU 周期。图 1 为时序发生器的简单电路连接图,其中,Ts 为时钟源输入信号,Stop 为停止信号,Start 为开始信号,Step 为单步运行信号。在 Step=0 时,单击 Start 连接的单脉冲按钮,时序信号 T1~T4 会周而复始地发送出去,时序发生器处于连续运行状态,若此时单击 Stop 按钮,发送完此周期时序信号后就会停机。在 Step=1 时,处于单步运行状态,即每发送完一个CPU周期时序信号就自动停机。本实验使用单步运行方式。

       图 2 为本实验数据通路总框图,其中 ALU 由 2 片 74LS181 构成,DRI 、DR2 和 AR 均为一片 74LS273 , RAM 为一片 6116 芯片,△ 表示三态门 74LS245 。时序发生器为虚拟实验系统提供的虚拟组件。
图1时序发生器

图2 数据通路总框图
实验电路中涉及的其他控制信号如下:

  1. M:选择 ALU 的运算模式 ( M=0,算术运算;M=1,逻辑运算 )。
  2. S3, S2, S1, S0:选择 ALU 的运算类型。如 M=0 时,设为 1001 表示加法运算。
  3. Cn :向 ALU 最低位输入的进位信号, Cn=0 时有进位输入, Cn=1时无进位输入。
  4. LDDR1:DR1 的数据加载信号,与 T4 脉冲配合将总线上的数据打入 DR1 中。LDDR1 和 T4 通过与门进行与运算之后连接到74LS273芯片的CP引脚,当 LDDR1=1 时在 T4 的上升沿将数据锁存到 DR1 。
  5. LDDR2:DR2 的数据加载信号,与 T4 脉冲配合将总线上的数据打入 DR2 中。LDDR2 和 T4 通过与门进行与运算之后连接到 74LS273 芯片的 CP 引脚,当 LDDR2=1 时在 T4 的上升 沿将数据锁存到 DR2 。
  6. MR:芯片7 4LS273 的清零信号,低电平有效。本实验恒置为 1 。
  7. ALU-BUS:ALU输出三态门使能信号,为 0 时将 ALU 运算结果输出到总线。
  8. SW-BUS:开关输出三态门使能信号,为 0 时将 SW7 ~ SW0 数据发送到总线。
  9. SW-BS:6116 片选信号。为 0 时 6116 正常工作。
  10. OE:存储器读信号。 CE=0 , OE=0 时为读操作,实验中将其接地,恒置为 0。
  11. WE:存储器写信号,与 T3 脉冲配合实现存储器写操作 ,WE 与 T3 通过与非门进行与非运算之后连接到 6116 芯片的 WE 引脚, WE 引脚低电平有效。在 CE=0、 OE=0 的条件,与 WE=1,T3=1 时进行行写操作,否则进行读操作。
  12. LDAR:AR 的地址加载信号,与 T3 脉冲配合将总线上的地址打入到 AR 中,LDAR 和 T3 通过与门进行与运算之后连接到 74LS273 芯片的 CP 引脚,当 LDAR=1 时在 T3 的上升沿将地址锁存到 AR。

实验原理

       实路所用数据通路如图 2 所示,数据开关、数据显示灯、运算器、存储器通过总线相连,数据开关 (SW7~ SW0) 用于设置数据或地址,数据和地址经三态门发送至总线。DR1 和DR2 从总线上接受数据并传送到ALU进行运算,运算结果经三态门送回至总线。地址寄存器AR从总线上获取地址并送至存储器,存储器按地址进行读写,将读出的数据发送至总线,或者从总线输入数据并写入。数据显示灯与总线相连,流经总线的所有数据和地址都将在数据灯上显示。

       计算机控制器通过控制线向执行部件发出各种控制命令,这些控制命令被称为微命令,执行部件接收微命令后所进行的操作,叫作微操作。图 2 中的控制信号线都与控制器相连,并由控制器的相应微命令控制,例如当控制器中表示 SW-BUS 的微命令位设置为0时, 低电平信号通过控制线传送到数据开关的三态门,三态门即执行“打开”微操作。

       为方便进行实验,将图 2 中所有控制信号归纳在表中。实验的主要任务就是确定这些控制信号在每一个 CPU 周期的取值。
在这里插入图片描述
       可以设计不同的微命令组合,来实现不同的功能。例如,微命令组合 0000 0110 01010 表 示 DR1 载入,数据开关三态门打开,存储器、DR2 和 ALU 三态门都关闭,其功能即为:将数据开关上的数据送入DR1。注意,表 4-1 里的微命令只是实际计算机中的部分, 计算机话行所需要的微命令远不止这些。

       在存储逻辑型控制器中,计算机需要用到的所有微命令组合都已预先设计好并存储在控制存储器中,由控制器根据程序自动找出需要的微命令组合,通过控制线发送给各执行部件执行。其中的每一个微命 令组合又叫一条微指令。本实验用人工设置数据开关的方法来代替控制器生成微命令,完成一系列操作和任务。

实验内容与步骤

  1. 运行虚拟实验系统,导入实验电路,接好表 4-1 中列出的控制信号线,将控制线分别接至电路图上方的数据开关上,并仔细检查一遍, 确保连接正确。连接好的电路下图所示。
    在这里插入图片描述
  2. 进行电路预设置。将 DR1、 DR2 和 AR 的 置 1,时序发生器的 Step 置1。
  3. 打开电源开关。
  4. 求 A+B, A 从数据开关输入,B 是存储器操作数,B 的地址也从数据开关输入,运算结果在数据显示灯上显示。具体步骤如下:
    (1) 准备好要使用的微命令,如表 4-2 所示。
    在这里插入图片描述
    (2) 打开电源。
    (3) 设置控制信号:数据开关 DR1 ( 0000011001010 );将数据开关设置为 A (00000011) ;单击时序发生器的 Start 按钮。等待一个 CPU 周期后,数据开关上的值已存入 DR1 。
    (4)设置控制信号:存储器操作数 DR2 (000010010110);将数据开关设为B的地址(0000010); 单击 Start 按钮。等待一个 CPU 周期后,B 的值已存入 DR2 。
    (5)设置控制信号: DR1+DR2 DR1(1001011000001)。运算结果在数据灯上显示。
  5. 计算 C-D→存储单元 E,数据 C、 D 和地址 E 都从数据开关输入。具体步骤如下:
    (1) 设计微命令,填入表 4-3 中:
    在这里插入图片描述
    (2) 设置控制信号:数据开关 → DR1( 0000011001010 );将数据开关设置为 C ( 00010111 );单击时序发生器的 start 按钮。等待一个 CPU 周期后, C 已存入 DR1。
    (3) 设置控制信号:数据开关 →DR2( 0000011000110 );将数据开关设置为 D ( 00001000 );单击start 按钮。等待一个 CPU 周期后, D 已存入 DR2。
    (4) 设置控制信号:存储单元地址 →AR( 0000011010010 );将数据开关设置为 E ( 00000000 );单击 start 按钮。等待一个 CPU 周期后,地址 E 已存入 AR。
    (5) 设置控制信号: DR1-DR2→存储单元( 0110000100001 );单击 start 按钮。等待一个 CPU 周期后,运算结果已存入存储单元 00H。
    (6) 单击菜单中的“工具/存储器芯片设置”,查看存储单元 00H 的值是否正确,如果不正确,找到错误的原因,调试至正确为止。
  6. 计算 F∧G→存储单元 H。 F 和 G 都是存储器操作数, F、 G 的地址以及地址 H 都从数据开关输入。具体步骤如下:
    (1) 设计微命令,填入表 4-4 中:
    在这里插入图片描述
    (2) 设置控制信号: 存储器操作数 →DR1( 0000011001010 );单击 start 按钮。等待一个 CPU 周期后, F 已存入 DR1。
    (3) 设置控制信号: 存储器操作数 →DR2(0000011000110 );单击 start 按钮。等待一个 CPU 周期后, G 已存入 DR2。
    (4) 设置控制信号:存储单元地址 →AR( 0000011010010 );将数据开关设置为 H ( 00001100 );单击 start 按钮。等待一个 CPU 周期后,地址 H 已存入 AR。
    (5) 设置控制信号: DR1∧DR2→存储单元( 1011110100001 );单击 start 按钮。等待一个 CPU 周期后,运算结果已存入存储单元 00H。
    (6) 单击菜单中的“工具/存储器芯片设置“,查看存储单元 00H 的值是否正确,如果不正确,找到错误的原因,调试至正确为止。

具体连线步骤

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

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

在这里插入图片描述
注意是 与非门 和不要缺少 ALU-BS
在这里插入图片描述

实验验证

电路预设置

打开电源
右上角按钮分别对应
S3、 S2、 S1、 S0、 M、 Cn、 CE、 WE、 LDAR、 LDDR1、 LDDR2、 ALU-BS、 SW-BS、
在这里插入图片描述

设置微命令

  1. SW-BS 设置使能端低电平有效
  2. ALU-BS 设置为高电平无效
  3. S3 S2 S1 S0 运算器,因为这里没有用到,所以全部设置为无效信号
  4. S3 S2 S1 S0 高电平有效设置为低电平
  5. M 高电平有效,设置为低电平
  6. Cn 低电平有效,设置为高电平,因为用不到控制信号
  7. CE 片选,低电平有效,设置为高电平
  8. WE 写,高电平有效,设置为低电平,因为用不到控制信号
  9. LDAR 地址载入信号,高电平有效,设置为低电平
  10. LDDR1 数据载入到寄存器1,设置为有效
  11. LDDR2 数据载入到寄存器1,设置为无效

设置微命令的原则:需要哪个控制信号就设置为有效,其他都为无效

在这里插入图片描述

设置控制信号1

数据开关 DR1(0000011001010);将数据开关设置为A (00000011);单击时序发生器的Start按钮,执行微命令。等待一个CPU周期后,会产生T1,T2,T3,T4 的时钟脉冲,在时钟脉冲的配合下,数据开关上的值已存入DR1。
在这里插入图片描述

设置控制信号2

设置好地址00000010,打开三态门,把地址送到地址寄存器
在这里插入图片描述
让存储器为读,WE为1是写,让WE为0 ,通过总线读到DR2,因为要送到DR2
LDDR2 数据载入到寄存器2,设置为有效

在这里插入图片描述
存储器操作数 DR2 (000010010110);将数据开关设为B的地址(00000010); 单击Start按钮。等待一个CPU周期后,B的值已存入DR2。
在这里插入图片描述
进行算数运算,DR1+DR2 →DR1(1001011000001)。运算结果在数据灯上显示。
在这里插入图片描述

思考与分析

  1. 总线的功能是什么?连接部件可以分为几类?
  2. 为什么要设总线判优控制?集中式总线控制有哪几种,各有什么样的特点。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Long_UP/article/details/124017632

智能推荐

js-选项卡原理_选项卡js原理-程序员宅基地

文章浏览阅读90次。【代码】js-选项卡原理。_选项卡js原理

设计模式-原型模式(Prototype)-程序员宅基地

文章浏览阅读67次。原型模式是一种对象创建型模式,它采用复制原型对象的方法来创建对象的实例。它创建的实例,具有与原型一样的数据结构和值分为深度克隆和浅度克隆。浅度克隆:克隆对象的值类型(基本数据类型),克隆引用类型的地址;深度克隆:克隆对象的值类型,引用类型的对象也复制一份副本。UML图:具体代码:浅度复制:import java.util.List;/*..._prototype 设计模式

个性化政府云的探索-程序员宅基地

文章浏览阅读59次。入选国内首批云计算服务创新发展试点城市的北京、上海、深圳、杭州和无锡起到了很好的示范作用,不仅促进了当地产业的升级换代,而且为国内其他城市发展云计算产业提供了很好的借鉴。据了解,目前国内至少有20个城市确定将云计算作为重点发展的产业。这势必会形成新一轮的云计算基础设施建设的**。由于云计算基础设施建设具有投资规模大,运维成本高,投资回收周期长,地域辐射性强等诸多特点,各地在建...

STM32问题集之BOOT0和BOOT1的作用_stm32boot0和boot1作用-程序员宅基地

文章浏览阅读9.4k次,点赞2次,收藏20次。一、功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。BOOT1=x BOOT0=0 // 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 // 从系统存储器启动,这种模式启动的程序_stm32boot0和boot1作用

C语言函数递归调用-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏22次。C语言函数递归调用_c语言函数递归调用

明日方舟抽卡模拟器wiki_明日方舟bilibili服-明日方舟bilibili服下载-程序员宅基地

文章浏览阅读410次。明日方舟bilibili服是一款天灾驾到战斗热血的创新二次元废土风塔防手游,精妙的二次元纸片人设计,为宅友们源源不断更新超多的纸片人老婆老公们,玩家将扮演废土正义一方“罗德岛”中的指挥官,与你身边的感染者们并肩作战。与同类塔防手游与众不同的几点,首先你可以在这抽卡轻松获得稀有,同时也可以在战斗体系和敌军走位机制看到不同。明日方舟bilibili服设定:1、起因不明并四处肆虐的天灾,席卷过的土地上出..._明日方舟抽卡模拟器

随便推点

Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all-程序员宅基地

文章浏览阅读437次。Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all

斐波那契数列、素数、质数和猴子吃桃问题_斐波那契日-程序员宅基地

文章浏览阅读1.2k次。斐波那契数列(Fibonacci Sequence)是由如下形式的一系列数字组成的:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …上述数字序列中反映出来的规律,就是下一个数字是该数字前面两个紧邻数字的和,具体如下所示:示例:比如上述斐波那契数列中的最后两个数,可以推导出34后面的数为21+34=55下面是一个更长一些的斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,_斐波那契日

PHP必会面试题_//该层循环用来控制每轮 冒出一个数 需要比较的次数-程序员宅基地

文章浏览阅读363次。PHP必会面试题1. 基础篇1. 用 PHP 打印出前一天的时间格式是 2017-12-28 22:21:21? //>>1.当前时间减去一天的时间,然后再格式化echo date('Y-m-d H:i:s',time()-3600*24);//>>2.使用strtotime,可以将任何字符串时间转换成时间戳,仅针对英文echo date('Y-m-d H:i:s',str..._//该层循环用来控制每轮 冒出一个数 需要比较的次数

windows用mingw(g++)编译opencv,opencv_contrib,并install安装_opencv mingw contrib-程序员宅基地

文章浏览阅读1.3k次,点赞26次,收藏26次。windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。打开cmake gui程序,在下面两个框中分别输入opencv的源文件和编译目录,build-mingw为你创建的目录,可自定义命名。1、如果已经安装Qt,则Qt自带mingw编译器,从Qt安装目录找到编译器所在目录即可。1、如果已经安装Qt,则Qt自带cmake,从Qt安装目录找到cmake所在目录即可。2、若未安装Qt,则安装Mingw即可,参考我的另外一篇文章。_opencv mingw contrib

5个高质量简历模板网站,免费、免费、免费_hoso模板官网-程序员宅基地

文章浏览阅读10w+次,点赞42次,收藏309次。今天给大家推荐5个好用且免费的简历模板网站,简洁美观,非常值得收藏!1、菜鸟图库https://www.sucai999.com/search/word/0_242_0.html?v=NTYxMjky网站主要以设计类素材为主,办公类素材也很多,简历模板大部个偏简约风,各种版式都有,而且经常会更新。最重要的是全部都能免费下载。2、个人简历网https://www.gerenjianli.com/moban/这是一个专门提供简历模板的网站,里面有超多模板个类,找起来非常方便,风格也很多样,无须注册就能免费下载,_hoso模板官网

通过 TikTok 联盟提高销售额的 6 个步骤_tiktok联盟-程序员宅基地

文章浏览阅读142次。你听说过吗?该计划可让您以推广您的产品并在成功销售时支付佣金。它提供了新的营销渠道,使您的产品呈现在更广泛的受众面前并提高品牌知名度。此外,TikTok Shop联盟可以是一种经济高效的产品或服务营销方式。您只需在有人购买时付费,因此不存在在无效广告上浪费金钱的风险。这些诱人的好处是否足以让您想要开始您的TikTok Shop联盟活动?如果是这样,本指南适合您。_tiktok联盟