ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:425.04KB ,
资源ID:10973060      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10973060.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(计算机组成及系统结构实验报告.doc)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

计算机组成及系统结构实验报告.doc

1、计算机组成及系统结构实验报告2 评语: 课中检查完成的题号及题数: 课后完成的题号及题数: 成绩: 自评成绩: 95 实验报告 实验名称: 1.4 CPU 及简单模型机设计实验 日期: 2015.11.16 班级: 学号: 2013302534 姓名: 杨添文 一、 实验目的: (1) 掌握一个简单CPU 的组成原理。 (2) 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。 (3) 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。 二、 实验内容: 1、 实验原理:

2、本实验要实现一个简单的CPU,并且在此CPU 的基础上,继续构建一个简单的模型计算机。CPU 由运算器(ALU)、微程序控制器(MC)、通用寄存器(R0),指令寄存器(IR)、程序计数器(PC)和地址寄存器(AR)组成,如图2-1-1 所示。这个CPU 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,CPU 必须和主存挂接后,才有实际的意义,所以还需要在该CPU 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。 图1-4-1 基本CPU 构成原理图 除了程序计数器(PC),其余部件在前面的实验中都已用到,在此不再讨论。系统的程

3、序计数器(PC)由两片74LS161 和一片74LS245 构成,其原理如图1-4-2 所示。PC_B 为三态门的输出使能端,CLR 连接至CON 单元的总清端CLR,按下CLR 按钮,将使PC 清零,LDPC 和T2 相及后作为计数器的计数时钟,当LOAD 为低时,计数时钟到来后将CPU 内总线上的数据打入PC。 图1-4-2 程序计数器(PC)原理图 本模型机和前面微程序控制器实验相比,新增加一条跳转指令JMP,共有五条指令:IN(输入)、ADD(二进制加法)、OUT(输出)、JMP(无条件转移),HLT(停机),其指令格式如下(高4位为操作码): 助记符 机器指令码

4、 说明 IN 0010 0000 IN→R0 ADD 0000 0000 R0 + R0→R0 OUT 0011 0000 R0→OUT JMP addr 1100 0000 ******** addr→ PC HLT 0101 0000 停机 其中JMP 为双字节指令,其余均为单字节指令,********为addr 对应的二进制地址码。微程序控制器实验的指令是通过手动给出的,现在要求CPU 自动从存储器读取指令并执行。根据以上要求,设计数据通路图,如图1-4-3 所示。 本实验在前一个实验的基础上增加了三个部件,

5、一是PC(程序计数器),另一个是AR(地址寄存器),还有就是MEM(主存)。因而在微指令中应增加相应的控制位,其微指令格式如表1-4-1 所示。 图1-4-3 数据通路图 表1-4-1 微指令格式 23 22 21 20 19 18-15 14-12 11-9 8-6 5-0 M23 M22 WR RD IOM S3-S0 A字段 B字段 C字段 MA5-MA0 18 / 18 14 13 12 选择 0 0 0 NOP 0 0 1 LDA 0 1 0 LDB 0 1 1 LDR0 1 0

6、 0 保留 1 0 1 LOAD 1 1 0 LDAR 1 1 1 LDIR 14 13 12 选择 0 0 0 NOP 0 0 1 P<1> 0 1 0 保留 0 1 1 保留 1 0 0 保留 1 0 1 LDPC 1 1 0 保留 1 1 1 保留 14 13 12 选择 0 0 0 NOP 0 0 1 ALU-B 0 1 0 R0-B 0 1 1 保留 1 0 0 保留 1 0 1 保留 1 1 0 PC-B 1 1

7、1 保留 系统涉及到的微程序流程见图1-4-4 所示,当拟定“取指”微指令时,该微指令的判别测试字段为P<1>测试。指令译码原理见图1-3-3 所示,由于“取指”微指令是所有微程序都使用的公用微指令,因此P<1> 的测试结果出现多路分支。本机用指令寄存器的高6 位(IR7—IR2)作为测试条件,出现5路分支,占用5个固定微地址单元,剩下的其它地方就可以一条微指令占用控存一个微地址单元随意填写,微程序流程图上的单元地址为16 进制。 当全部微程序设计完毕后,应将每条微指令代码化,表1-4-2 即为将图1-4-2 的微程序流程图按微指令格式转

8、化而成的“二进制微代码表”。 图1-4-4 简单模型机微程序流程图 表1-4-2 二进制微代码表 地址 十六进制 高五位 S3-S0 A字段 B字段 C 字段 MA5-MA0 00 00 00 01 00000 0000 000 000 000 000001 01 00 6D 43 00000 0000 110 110 101 000011 03 10 70 70 00010 0000 111 000 001 110000 04 00 24 05 00000 0000 010 010 000 000

9、101 05 04 B2 01 00000 1001 011 001 000 000001 1D 10 51 41 00010 0000 101 000 101 000001 30 00 14 04 00000 0000 001 010 000 000100 32 18 30 01 00011 0000 011 000 000 000001 33 28 04 01 00101 0000 000 010 000 000001 35 00 00 35 00000 0000 000 000 000 110

10、101 3C 00 6D 5D 00000 0000 110 110 101 011101 设计一段机器程序,要求从IN 单元读入一个数据,存于R0,将R0 和自身相加,结果存于R0,再将R0 的值送OUT 单元显示。根据要求可以得到如下程序,地址和内容均为二进制数。 地址 内容 助记符 说明 00000000 00100000 ; START: IN R0 从 IN 单元读入数据送 R0 00000001 00000000 ; ADD R0,R0 R0 和自身相加,结果送 R0 00000010 0011000

11、0 ; OUT R0 R0 的值送 OUT 单元显示 00000011 11100000 ; JMP START 跳转至 00H 地址 00000100 00000000 00000101 01010000 ; HLT 停机 2、 实验步骤: 1. 按图1-4-5 连接实验线路。 图1-4-5 实验接线图 2. 写入实验程序,并进行校验,分两种方式,手动写入和联机写入,本次实验采用联机写入。 联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT 为后缀

12、的文件中,微程序和机器程序的格式如下: 本次实验程序如下,程序中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉: ; //*************************************// ; // // ; // CPU及简单模型机实验指令文件 // ; // // ; //*************************************// ; //***** Start Of Ma

13、in Memory Data *****// $P 00 20 ; START: IN R0 从IN单元读入数据送R0 $P 01 00 ; ADD R0,R0 R0和自身相加,结果送R0 $P 02 30 ; OUT R0 R0的值送OUT单元显示 $P 03 E0 ; JMP START 跳转至00H地址 $P 04 00 ; $P 05 50 ; HLT 停机 ; //***** End Of Main Memory Data ***

14、// ; //** Start Of MicroController Data **// $M 00 000001 ; NOP $M 01 006D43 ; PC->AR,PC加1 $M 03 107070 ; MEM->IR, P<1> $M 04 002405 ; R0->B $M 05 04B201 ; A加B->R0 $M 1D 105141 ; MEM->PC $M 30 001404 ; R0->A $M 32 183001 ; IN->R0 $M 33 28

15、0401 ; R0->OUT $M 35 000035 ; NOP $M 3C 006D5D ; PC->AR,PC加1 ; //** End Of MicroController Data **// 选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。 选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令

16、为例,先用鼠标左键单击指令区的‘微存’TAB 按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6 位数据并回车,编辑框消失,并以红色显示写入的数据。 3. 运行程序 将MC 单元的编程开关置为‘运行’档,MEM 单元的编程开关也置为‘运行’档,进入软件界面,选择菜单命令“【实验】—【简单模型机】”,打开简单模型机数据通路图。 按动CON 单元的总清按钮CLR,然后通过软件运行程序,选择相应的功能命令,即可联机运行、监控、调试程序,当模型机执行完JMP 指令后,检查OUT 单元显示的数是否为IN 单元值的2 倍。在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、

17、数据总线以及微指令显示和下位机是否一致。 三、 项目要求及分析: 1. 试修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容 相加;增加存数、取数和减法三条机器指令,指令助记符分别为 STA、LAD 和SUB, 指令操作码分别为十六进制的60、70和80。 2. 利用修改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。 分析: (1) 根据ADD指令:R0 + R0→R0,就是将寄存器中的数加两次,现在题目要求将两个不同的数A及B进行相加减,可以另外设计一个方案:A的值还是来自寄存器,但B的值可以设计来自于存储器,即增加存数、取数

18、指令,从存储器中取数,将取出的数存入运算单元。即: 1、将R0的值送入ALU的A端; 2、将另一个数B存入内存中; 具体内容为: ①从IN单元读取要存储的数据地址; ②将地址送到地址寄存器AR; ③从IN单元读取要存储的数据; ④将数据送到内存中的相应存储单元。 3、计算另一个数B的内存地址; 4、利用取数指令取出相应数B: 具体内容为: ①从IN单元读入数据的存储地址; ②将存储地址送至地址寄存器AR; ③将取出的数送至RO。 5、寄存器R0中的数送到ALU的B; 6、进行加减法运算,结果送

19、回R0; 7、连接OUT单元,显示结果输出。 (2) 要进行两个16位的二进制数加减,可以先将两个二进制数的高八位及低八位分别存入不同的地址中,接着取出两个数的低八位相加,送到OUT单元显示,进位要进行存储;然后进行两个数的高八位相加,结果在数据总线显示,其中,最高位的进位忽略。 具体操做: 1、根据已经构思好的指令变化具体步骤(要添加的指令有STA、LAD、SUB以及需更新的ADD),变化微指令,微指令结构为 23 22 21 20 19 18-15 14-12 11-9 8-6 5-0 M23 M22 WR RD IOM S3-S0 A字

20、段 B字段 C字段 MA5-MA0 其中,S3-S0为控制信号,1010表示A+B+CN,1011表示A-B,0000为直通;MA5-MA0为后续微地址;A、B、C字段分别如下表示: 14 13 12 选择 0 0 0 NOP 0 0 1 LDA 0 1 0 LDB 0 1 1 LDR0 1 0 0 保留 1 0 1 保留 1 1 0 保留 1 1 1 LDIR 14 13 12 选择 0 0 0 NOP 0 0 1 ALU-B 0 1 0 R0-B 0 1 1 保留

21、 1 0 0 保留 1 0 1 保留 1 1 0 保留 1 1 1 保留 14 13 12 选择 0 0 0 NOP 0 0 1 P<1> 0 1 0 保留 0 1 1 保留 1 0 0 保留 1 0 1 保留 1 1 0 保留 1 1 1 保留 指令译码原理图如下,操做码00、60、70、80分别映射成微地址为30、36、37、38。 画出微程序流程图如下:

22、 00 NOP 01 PC->AR PC+1 02 MEN->IR 30 P<1> ADD IN OUT HLT JMP LAD STA SUB 30 32 33 35 3C

23、 37 36 38 R0->A IN->R0 RO->OUT NOP PC->AR IN->R0 IN->R0 RO->A 17 PC+1 15 11 2C IN->R0 01 01 01 1D R0->AR R0->AR IN->R0 18 MEM->PC

24、 16 12 2D R0->AR MEM->R0 IN->RO R0->AR 19 01 13 2E MEM->B 01 R0->MEM MEM->B 05

25、 2F A+B->R0 01 A-B->R0 01 01 改变后的二进制微代码表为: 地址 十六进制 高五位 S3-S0 A字段 B字段 C字段 MA5-MA0 00 00 00 01 00000

26、 0000 000 000 000 000001 01 00 6D 42 00000 0000 110 110 101 000010 02 10 70 73 00010 0000 111 000 001 000011 03 05 32 01 00000 1010 011 001 000 000001 11 00 64 12 00000 0000 110 010 000 010010 12 18 30 13 00011 0000 011 000 000

27、 010011 13 20 04 01 00100 0000 000 010 000 000001 15 00 64 16 00000 0000 110 010 000 010110 16 10 30 01 00010 0000 011 000 000 000001 17 18 30 18 00011 0000 011 000 000 011000 18 00 64 19 00000 0000 110 010 000 011001 19 10 20 05

28、00010 0000 010 000 000 000101 1D 10 51 41 00010 0000 101 000 101 000001 2C 18 30 2D 00011 0000 011 000 000 101101 2D 00 64 2E 00000 0000 110 010 000 101110 2E 10 20 2F 00010 0000 010 000 000 101111 2F 05 B2 01 00000 1011 011 0

29、01 000 000001 30 00 14 17 00000 0000 001 010 000 010111 32 18 30 01 00011 0000 011 000 000 000001 33 28 04 01 00101 0000 000 010 000 000001 35 00 00 35 00000 0000 000 000 000 110101 36 18 30 11 00011 0000 011 000 000 010001 37 18

30、 30 15 00011 0000 011 000 000 010101 38 00 14 2C 00000 0000 001 010 000 101100 3C 00 6D 5D 00000 0000 110 110 101 011101 四、 具体实现: 由设计的微程序流程图,可以很容易写出以下两个16位二进制数的加法程序: ; //***** Start Of Main Memory Data *****// $P 00 60 ; STA A0 存储A的低八

31、位 $P 01 60 ; STA B0 存储B的低八位 $P 02 60 ; STA A1 存储A的高八位 $P 03 60 ; STA B1 存储B的高八位 $P 04 70 ; LDA A0 取出A的低八位存入R0中 $P 05 00 ; ADD R0,A0,B0 A和B的低八位相加 $P 06 30 ; OUT 低八位相加的结果在OUT单元输出显示 $P 07 70 ; LDA

32、 取出A的高八位存入R0中 $P 08 00 ; ADD R0,A1,B1 A和B的高八位相加 $P 09 50 ; HLT 停机 ; //***** End Of Main Memory Data *****// ; //** Start Of MicroController Data **// $M 00 000001 ; NOP $M 01 006D42 ; PC->AR,PC+1 $M 02 107073 ; MEM->IR, P<1> $M 03

33、053201 ; $M 11 006412 ; R0->AR $M 12 183013 ; IN->R0 $M 13 200401 ; R0->MEM $M 15 006416 ; R0->AR $M 16 103001 ; MEM->R0 $M 17 183018 ; IN->R0 $M 18 006419 ; R0->AR $M 19 102005 ; MEM->B $M 1D 105141 ; MEM->PC $M 2C 18302D ; IN->R0 $M 2D 00642E

34、 ; R0->AR $M 2E 10202F ; MEM->B $M 2F 05B201 ; A-B->R0 $M 30 001417 ; R0->A $M 32 183001 ; IN->R0 $M 33 280401 ; R0->OUT $M 35 000035 ; NOP $M 36 183011 ; IN->R0 $M 37 183015 ; IN->R0 $M 38 00142C ; R0->A $M 3C 006D5D ; PC->AR,PC+1 ; //** End Of

35、MicroController Data **// 需要注意的是,OUT单元显示的是低八位相加的结果,高八位相加以及进位(如果有的话)的结果在数据总线中显示,最高位的进位不考虑,减法类似。 五、 调试运行结果: 1、验证加法: 输入A:1001 1001,1011 1111(99BF) 输入B:0101 0010,0100 0001(5241) 结果: 1110 1100,0000 0000(EC00) 2、 验证减法: 输入A:1001 1001,1011 1111(99BF) 输入B

36、0101 0010,0100 0001(5241) 结果: 0100 0111,0111 1110(477E) 六、 所遇问题及解决方法: 运算错误,实验结果及理论结果差别很大,因此猜想可能是译码错误或者机器连线出错,排除机器的连线问题后,发现译码的时候将加法的操作码00误当成IN的操作码20,结果译码出错,重新译码后结果正确。 七、 实验总结: 思考题部分的设计跟验证很考验能力,要想做好不同两个数的加减法,不仅需要清晰的思维思路,如将16位数分为低八位及高八位再分别运算,还要深入理解计算机内部的电子电路组成跟运行流程,二者缺一不可,这次实验对我提升很大,将前面几次实验的知识都整合了一遍。 八、 建议: 无。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服