计算机组成原理实验

计算机组成原理实验
计算机组成原理实验

计算机组成原理

实验报告

学院(系):软件学院

专业:软件设计

班级:软件设计一班

学号:1415925365

姓名:沈烨

2016年11月24日

实验1 Cache模拟器的实现

一.实验目的

(1)加深对Cache的基本概念、基本组织结构以及基本工作原理的理解。

(2)掌握Cache容量、相联度、块大小对Cache性能的影响。

(3)掌握降低Cache不命中率的各种方法以及这些方法对提高Cache性能的好处。

(4)理解LRU与随机法的基本思想以及它们对Cache性能的影响。

二、实验内容和步骤

1、启动CacheSim。

2、根据课本上的相关知识,进一步熟悉Cache的概念和工作机制。

3、依次输入以下参数:Cache容量、块容量、映射方式、替换策略和写策略。

4、读取cache-traces.zip中的trace文件。

5、运行程序,观察cache的访问次数、读/写次数、平均命中率、读/写命中率。思考:1、Cache的命中率与其容量大小有何关系?

Cache 的容量与块长是影响cache效率的重要因素;

Cache 容量越大,其CPU命中率就越高,当然容量过大,增加成本,而且cache 容量达到一定值时,命中率已不因容量的增加而又明显的提高;

2、Cache块大小对不命中率有何影响?

Cache 当块由小到大,在已被访问字的附近,近期也可能访问,增大块长,可将更多有用字存入缓存,提高命中率;但是继续增大块长,命中率可能下降,因为所装入缓存的有用数据反而少于被替换掉的有用数据,由于块长增大,块数减少,装入新的块要覆盖旧块,很可能出现少数块刚装入就被覆盖,故命中率可能下降;

3、替换算法和相联度大小对不命中率有何影响?

替换算法中:LRU算法的平均命中率比FIFO的高

LRU算法比较好地利用访存局部性原理,替换出近期用得最少的字块,它需要随时记录cache 各个字块使用情况。FIFO不需要记录各个字块的使用情况,比较容易实现开销小,但是没有根据访存的局部性原理,最早调入的信息可能以后还要用到,或经常用到例如循环程序;

Cache 容量一定时,随着相联度的不断增加,不命中率渐渐减小,但是当相连度增加到一定程度时,不命中率保持不变;

三.实验结果分析

?Cache的命中率与其容量大小的关系

将所有测试的数据绘制成折线图,更清晰的展现,如下

?Cache块大小对不命中率的影响

替换算法对命中率影响数据分析

FIFO

LRU

Random

相关度大小对命中率的影响

*折线图

四.实验心得

从书中学习了cache发展历程,基本工作原理;对实验所需要的重点名词,进行了理解;命中率,访问效率,平均访问时间例题进行了理解,从而分析了Cache容量,相关度,块大小,替换算法对命中率的影响;因为LRU 、FIFO 、RANDOM替换算法对命中率也有这一些影响;看了主存地址映射:有直接映射,全相连映射,感觉有一些迷糊了;不是太容易理解了,然后百度搜了一些相连

度大小对命中率影响,然后运用CacheSim模拟器,仅仅从一个数值中值看出来简单的变化;但是并不能看出有什么规律;然后把它们用excel做成折线图,发现其中存在的规律;然后翻阅书籍;解释为什么会存在着现象;这种实践让在学习知识点的过程中,更加有说服性了;

实验2运算器的编程实现

一、实验目的

1、加深对计算机中运算器的基本概念、运算方法和基本原理的理解。

2、提高学生对计算机编程语言掌握的熟练程度。

二、实验内容

运用一种编程语言实现计算器的基本功能。

思考:1、计算机中数据是如何表示的?

2、计算机中二进制数的加、减、乘、除四则运算如何实现?

3、运算器的基本结构和功能有哪些?

三.实验结果分析

计算器运行结果:

1: 计算机中数据是如何表示的?

计算机中数据都是以二进制形式表示的;

实际数表示方法:符号(正负数)

数值处理(数制转换)

小数点的处理(定点浮点)

机器数的表示方法:原码反码补码

解释:原码、反码、补码

对于有符号的数而言

1:二进制的最高位是符号位:0表示正数; 1表示负数

2:正数的原码、反码、补码都一样

3:负数的反码=它的原码符号位不变,其他位取反 1->0

4:负数的补码 = 它的反码+1

5: 0的反码,补码都是0;

6:在计算机运算时,都是以补码的方式来运算的;

简单补码反码原码运算图形表示:

4个位运算:分别是& | ^ ~

按位与& :两位都为1,结果为1

按位或| :两位有一个为1,结果为1;

按位异或^:两位一个为0,一个为1,结果为1;

按位取反~:0->1; 1->0

三个移位运算符

算术右移>>,算术左移<<

算术右移:低位溢出,符号位不变,并用符号位补溢出的高位算术左移:符号位不变,低位补0

逻辑右移>>>:低位溢出,高位补0

加减运算

2: 计算机中二进制数的加、减、乘、除四则运算如何实现?

全部采用的是二进制,因为它只使用0,1两个数字符号,非常简单方便,易于用电子方式实现,计算机内部处理的信息,都是采用二进制数来表示,二进制(binary)数用0和1两个数字及其组合来表示任何数,进位规则是逢“2进1”数字1在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增。

3: 运算器的基本结构和功能有哪些?

运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成;针对没一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器,当需要完成逻辑运算时,势必需要配置相应的逻辑电离能,而ALU电路是既能完成算术运算又能完成逻辑运算的部件;

功能:运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作

四.实验心得

通过本次实验对计算器的用语言编写的写法有了更大的提高;同时清楚了计算机内部的运行原理,每个操作大概是如何实现的。这对我以后的计算机系统结构的学习打下了坚实的基础,让我不断提高,增长了我的知识。

实验3 MIPS指令系统和MIPS体系结构

一.实验目的

(1)了解和熟悉指令级模拟器

(2)熟悉掌握MIPSsim模拟器的操作和使用方法

(3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解

(4)熟悉MIPS体系结构

二. 实验内容和步骤

首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。

(1)启动MIPSsim(用鼠标双击MIPSsim.exe)。

(2)选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。

(3)参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。

(4)选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000100)。

(5)查看“寄存器”窗口PC寄存器的值:[PC]=0X00000000。

(6)执行load和store指令,步骤如下:

1)单步执行一条指令(F7)。

2)下一条指令地址为=0X00000004 ,是一条有(有,无)符号载入字节

(字节,半字,字)指令。

3)单步执行一条指令(F5)。

4)查看R1的值,[R1]=0XFFFFFFFFFFFFFF80。

5)下一条指令地址为0X00000008 ,是一条有(有,无)符号载入字(字

节,半字,字)指令。

6)单步执行1条指令。

7)查看R1的值,[R1]=0X0000000000000080。

8)下一条指令地址为0x0000000c,是一条无(有,无)符号载入字节(字

节,半字,字)指令。

9)单步执行1条指令。

10)查看R1的值,[R1]=0X0000000000000080 。

11)单步执行1条指令。

12)下一条指令地址为0X00000014,是一条保存字(字节,半字,字)

指令。

13)单步执行一条指令(F5)。

14)查看内存BUFFER处字的值,值为0X00000080 。

(7)执行算术运算类指令。步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为2。

2)双击“寄存器”窗口中的R2,将其值修改为3。

3)单步执行一条指令。

4)下一条指令地址为0x00000020,是一条加法指令。

5)单步执行一条指令。

6)查看R3的值,[R3]= 0x0000000000000005 。

7)下一条指令地址为0x00000024 ,是一条乘法指令。

8)单步执行一条指令。

9)查看LO、HI的值,[LO]=0x0000000000000006 ,

[HI]=0x0000000000000000。

(8)执行逻辑运算类指令。步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。

2)双击“寄存器”窗口中的R2,将其值修改为0XFF00FF00。

3)单步执行一条指令。

4)下一条指令地址为0x00000030 ,是一条逻辑与运算指令,第二个操作数

寻址方式是寄存器直接寻址(寄存器直接寻址,立即数寻址)。

5)单步执行一条指令。

6)查看R3的值,[R3]= 0x00000000FF000000。

7)下一条指令地址为0x00000034,是一条逻辑与指令,第二个操作数寻址

方式是立即数寻址(寄存器直接寻址,立即数寻址)。

8)单步执行一条指令。

9)查看R3的值,[R3]= 0x0000000000000000。

(9)执行控制转移类指令。步骤如下:

1)双击“寄存器”窗口中R1,将其值修改为2。

2)双击“寄存器”窗口中R2,将其值修改为2。

3)单步执行一条指令。

4)下一条指令地址为0x00000040__________,是一条BEQ指令,其测试条件是__相等________,目标地址为0x0000004C__________。

5) 单步执行1条指令。

6) 查看PC的值,[PC]=0x0000004c__________,表明分支_成功_________(成功,失败)。

7) 一条指令是一条BGEZ指令,其测试条件是大于或等于零________,目标地址为0x00000058__________。

8) 单步执行1条指令。

9) 查看PC的值,[PC]=0x00000058_________,表明分支___成功_______(成功,失败)。

10) 下一条指令是一条BGEZAL指令,其测试条件是___小于或等于零转移_______,目标地址为0x00000064__________。

11) 单步执行1条指令。

12) 查看PC的值,[PC]=0x00000064_________,表明分支___成功_______(成功,失败);查看R31的值,[R31]=0x000000000000005C_______________。

13) 单步执行1条指令。

14)查看R1的值,[R1]=0x0000000000000074_______________。

15)下一条指令地址为0x00000068________,是一条JALR指令,保存目标地址的寄存器为R1_____,保存返回地址的目标寄存器为R3___。

16)单步执行1条指令。

17)查看PC和R3的值,[PC]=0x00000074____,[R3]=0x000000000000006C________。

三、实验结果分析

四.实验心得

MIPSsim模拟器的基础操作以及使用方法;单步执行,程序的载入,以及配置方式中的流水;熟悉MIPS指令系统;加深对MIPS指令操作语义的理解;并对代码区,寄存器进行了剖析,但是对时钟周期内存这部分理解的还不是很清晰;在以后的实验中解决;思考了LB,字节,字,双字,以及无符号如何查看,以及buffer如何查看内容;然后通过对对代码区中的符号指令进行了自我学习;以及对ARM进行了很好的温习;认识LW,LB,LU,ADDU,ADDIU,SLL,MUL,BEQ,等简单的指令的含义进行了分析;但是仍然存在部分的寄存器值的变化未清楚其详细步骤;在接下来的继续环节中需要弄懂;

实验4

一.实验目的

(1)理解计算机流水线基本概念。

(2)理解MIPS结构如何用5段流水线来实现。

(3)理解各段的功能和基本操作。

(4)加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响。

(5)进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。

二.实验内容和步骤

首先要掌握MIPSsim模拟器的使用方法。

(1)启动MIPSsim。

(2)根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容)

(3)参照MIPSsim模拟器使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中)。然后分别以单步执行一条周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。

(4)选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。(5)观察程序在流水线中的执行情况,步骤如下:

1)选择MIPSsim的“文件”—>“载入程序”选项来加载pipeline.s (在模拟器所在文件夹下的“样例程序”文件夹中)。

2)关闭定向功能。这是通过“配置”—>“定向”(使该项前面没有√号)来实现的。

3)用单步执行一个周期的方式(在“执行”菜单中)或按F7键执行该程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。

4)当执行到第13个时钟周期时,各段分别正在处理的指令是:

IF:_____ BEQ $r1,$r0,ret ___________________________

ID:_____ LW $r4,60($r6)___________________________

EX:_____ ADDI $r3,$r0,25___________________________

MEM:______ ADDI $r1,$r1,-1________________________

WB:_______ ADDI $r6,$r0,8_________________________

画出这时的时钟周期图。

(6)这时各流水寄存器中的内容为:

IF/ID.IR:________270532612_______________

IF/ID.NPC:________52______________________

ID/EX.A:__________8______________________

ID/EX.B:__________0______________________

ID/EX.Imm:_______60_______________________

ID/EX.IR:_______2361655356_______________

EX/MEM.ALUo:_____25______________________

EX/MEM.IR:_____530767545_________________

MEM/WB.LMD:______0_____________________

MEM/WB.ALUo:______4_____________________

MEM/WB.IR:_______539099135_______________

(7)观察和分析结构冲突对CPU性能的影响,步骤如下:

1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。 2)执行该程序,找出存在结构冲突的指令ADD,D $f2,$f0,$f1和ADD.D $f5,$f0,$f1对以及导致结构冲突的部件:存储器。

3)记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比:71.42857%。

4)把浮点加法器的个数改为4个。

5)再次重复步骤①~③的工作。

6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。

结构冲突对CPU性能的影响:当发生冲突时,流水线会出现停顿,从而降低了CPU的性能。

解决结构冲突的方法:在流水线处理机中设置相互独立的指令存储器和数据存储器

(8)观察数据冲突并用定向技术来减少停顿,步骤如下:

1)全部复位。

2)加载data_hz.s(在模拟器所在的文件夹下的“样例程序”文件夹中)。

3)关闭定向功能。这是通过“配置”->“定向”(是该项前面没有√号)来实现的。

4)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。

答:在第三个周期的时候发生了写后读冲突,即在执行ADDIU $r2,$r0,56时,刚执行到访问存储器的时候,LW $r1,0($r2)就执行到读的阶段了,所以发生了先写后读冲突。

5)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。

答:停顿时钟周期数为7,执行的周期总数为15,则停顿时钟周期数占总执行周期数的百分比为46.66667%。

6)复位CPU 。

7)打开定向功能。这是通过“配置”->“定向”(是该项前面有√号)来实现的。

8)用单步执行一个周期的方式(F7)执行该程序,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与步骤3的结果进行比较。

答:ADDIU $r2,$r0,56和LW $r1,0($r2),LW $r1,0($r2)和ADD $r1,$r1,$r3,SW $r1,0($r2)和LW $r5,0($r1)发生了RAW冲突。与步骤3的结果进行比较,停顿的周期数明显减少,这样可以使CPU的性能大大提升。

9)记录数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数。计算采用定向技术后的性能是原来的几倍。

答:数据冲突引起的停顿时钟周期数为3,程序执行的总时钟周期数为15。采用定向技术后的性能是原来的2.3倍

三.实验结果分析

1、由于指令处理过程分为取指令和执行指令两个阶段,不采用流水技术计算机里,取指闲时间较高;所以有了流水线技令和执行指令是周而复始重复出现,

但是问题来了,取指令与执行指令有它们的各自部件来完成,所以执行部件利用率不高,空术;

2、好的流水线要充分流水;不发生断流;由于数据相关,结构相关,控制相关,导致我们的流水线不断流实现起来很困难;

3、为什么三种相关会对流水线造成影响?

结构相关:指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突是产生,例如:大多数电脑指令和数据保存在同一个存储器;某一时钟周期里,流水线既要完成某条指令对操作数的存储器访问操作MEM,又要完成另一条指令的取操作IF;

如何解决:暂停一个时钟周期,或者设置2个独立存储器存放操作数和指令

数据相关:由于指令相挨太近,上一条执行的结果要在下一条指令中执行;但是由于五段流水方式导致,先写后读的顺序变为了先读后写,发生先写后读RAM 的数据相关冲突;

如何解决:后推法(停顿后继指令的运行,直至前面指令结果已经产生)

定向技术:(不必等执行结果送回寄存器,再次寄存器读出该结果,而是作为下一条指令的源操作数,直接将结果送到指令需要的地方,EX段末尾处产生结果)

四.实验心得

通过本次实验,需要知道五个流水线产生的背景,学习MIPS五个流水线的具体含义,以及各段的具体含义,IF ID EX MEM WB主要作用,知道数据结构控制相关所可能产生的数据冲突,结构冲突;对两种冲突所提出的解决的方法;数据冲突采用定向功能对RAW(先写后读)冲突所产生得影响,后推法以及定向技术对冲突有所改进;结构冲突可以插入暂停周期,停顿一拍再运行;或者设置相互独立的指令存储器和数据存储器,设置相互独立的指令/数据cache;了指令的流水原理,以及分析了影响流水线性能的因素,并找出了很好的解决方案。

实验5指令调度和延迟分支

一.实验目的

(1)加深对指令调度技术的理解。

(2)加深对延迟分支技术的理解。

(3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。

(4)进一步理解指令调度技术对CPU性能的改进。

(5)进一步理解延迟分支技术对CPU性能的改进。

二.实验内容和步骤:

(1)启动MIPSsim。

(2)进一步理解流水段的构成和各个流水寄存器的功能。

(3)选择“配置”下的“流水方式”,让模拟器工作于流水方式下。

(4)采用指令调度技术解决流水线中的数据冲突。步骤如下:

1)载入程序schedule.s。

2)关闭定向功能。

3)执行载入的程序。观察时钟周期图,找出程序执行中各种冲突发生的次

数,发生冲突的指令组合以及程序执行的总时钟周期数。

时钟周期图如下:

由以上知:RAW数据冲突发生了16次,其中load停顿6次,自陷停顿1次。

发生冲突的指令组合:

ADDIU $r1,$r0,A

LW $r2,0($r1)与上条写后读冲突;

ADD $r4,$r0,$r2

SW $r4,0($r1)与上条指令写后读冲突;

LW $r6,4($r1)

ADD $r8,$r6,$r1与上条指令写后读冲突;

MUL $r12,$r10,$r1

ADD $r16,$r12,$r1与上条指令写后读冲突;

ADD $r18,$r16,$r1 与上条指令组件冲突

SW $r18,16($r1) 与上条指令写后读冲突;;

LW $r20,8($r1)

MUL $r22,$r20,$r14与上条指令写后读冲突;

程序执行的总时钟周期数为33。

4)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的指令存

到after-schedule.s中。

答:after-schedule.s指令代码如下:

.text

main:

ADDIU $r1,$r0,A

MUL $r22,$r20,$r14

LW $r2,0($r1)

MUL $r24,$r26,$r14

ADD $r4,$r0,$r2

LW $r6,4($r1)

SW $r4,0($r1)

ADD $r8,$r6,$r1

MUL $r12,$r10,$r1

ADD $r18,$r16,$r1

ADD $r16,$r12,$r1

SW $r18,16($r1)

LW $r20,8($r1)

TEQ $r0,$r0

.data

A:

.word 4,6,8

5)载入after-schedule.s。

6)执行程序,观察程序在流水线中的执行情况,记录程序执行的总时钟周

期数。

则程序执行的总时钟周期数为21。

7)根据记录结果,比较调度前和调度后的性能。论述指令调度对提高CPU

性能的作用。

时钟周期图:

调度前的执行周期为33,调度后的执行周期数为21。指令调度让指令顺序重新组织顺序可以消除部分的数据冲突,指令调度影响CPU性能,通过使用指令调度提高了CPU的使用率,大大减少了指令冲突的次数,提高了CPU 性能。

(5)采用延迟分支减少分支指令对性能的影响。步骤如下:

1)启动MIPSsim。

2)载入branch.s。

3)关闭延迟分支功能。通过“配置”下取消“延迟槽”选项。

4)执行该程序,观察并记录发生分支延迟的时刻。

答:分支延迟的时刻为第13个周期。

5)记录该程序执行的总时钟周期数。

程序执行的总时钟周期数为38。

6)假设延迟槽为一个,对程序进行指令调度,然后保存到delay-branch.s

中。

delay-branch.s的指令代码:

.text

main:

ADDI $r2,$r0,1024

ADD $r3,$r0,$r0

ADDI $r4,$r0,8

loop:

LW $r1,0($r2)

ADDI $r1,$r1,1

ADDI $r3,$r3,4

SUB $r5,$r4,$r3

计算机组成原理实验题

一.这是一个判断某一年是否为润年的程序,运行可执行程序Ifleap.exe后,输入具体的年份,可输出是本年是否为闰年的提示信息。 DATA SEGMENT ;定义数据段 INFON DB 0DH,0AH,'PLEASE INPUT A YEAR: $' Y DB 0DH,0AH,'THIS IS A LEAP YEAR! $' N DB 0DH,0AH,'THIS IS NOT A LEAP YEAR! $' W DW 0 BUF DB 8 DB ? DB 8 DUP(?) DATA ENDS STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,SS:STACK,CS:CODE START:MOV AX,DATA MOV DS,AX LEA DX,INFON ;在屏幕上显示提示信息 MOV AH,9 INT 21H LEA DX,BUF ;从键盘输入年份字符串 MOV AH,10 INT 21H MOV CL, [BUF+1] LEA DI,BUF+2 CALL DATACATE CALL IFYEARS JC A1 LEA DX,N MOV AH,9 INT 21H

JMP EXIT A1: LEA DX,Y MOV AH,9 INT 21H EXIT: MOV AH,4CH INT 21H 二.这是一个显示系统日期和时间的程序,运行时,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;输入大写字母“T”,可显示系统当前时间;输入大写字母“Q”,可结束程序。 DATACATE PROC NEAR; PUSH CX; DEC CX LEA SI,BUF+2 TT1: INC SI LOOP TT1 ;LEA SI,CX[DI] POP CX MOV DH,30H MOV BL,10 MOV AX,1 L1: PUSH AX SUB BYTE PTR [SI],DH MUL BYTE PTR [SI] ADD W,AX POP AX MUL BL DEC SI LOOP L1 RET DATACATE ENDP

计算机组成原理实验1-汇编语言实验

微处理器与接口技术 实验指导

实验一监控程序与汇编语言程序设计实验 一、实验要求 1、实验之前认真预习,明确实验的目的和具体实验内容,设计好主要的待实验的程序,做好实验之前的必要准备。 2、想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果。 3、在教学实验过程中,要爱护教学实验设备,认真记录和仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。 4、实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。 二、实验目的 【1】学习和了解TEC-XP16教学实验系统监控命令的用法; 【2】学习和了解TEC-XP16教学实验系统的指令系统;

【3】学习简单的TEC-XP16教学实验系统汇编程序设计。 三、实验注意事项 (一)实验箱检查 【1】连接电源线和通讯线前TEC-XP16实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP16实验系统上的芯片和PC机的串口造成损害。 【2】五位控制开关的功能示意图如下: 【3】几种常用的工作方式【开关拨到上方表示为1,拨到下方为0】 (二)软件操作注意事项 【1】用户在选择串口时,选定的是PC机的串口1或串口2,而不是TEC-XP16实验系统上的串口。即选定的是用户实验时通讯线接的PC机的端口; 【2】如果在运行到第五步时没有出现应该出现的界面,用户需要检查是不是打开了两个软件界面,若是,关掉其中一个再试; 【3】有时若TEC-XP16实验系统不通讯,也可以重新启动软件或是重新启动PC再试; 【4】在打开该应用软件时,其它的同样会用到该串口的应用软件要先关掉。

计算机组成原理实验

计算机组成原理 一、8 位算术逻辑运算 8 位算术逻辑运算实验目的 1、掌握简单运算器的数据传送通路组成原理。 2、验证算术逻辑运算功能发生器74LS181的组合功能。 8 位算术逻辑运算实验内容 1、实验原理 实验中所用的运算器数据通路如图3-1所示。其中运算器由两片74LS181以并/串形成8位字长的ALU构成。运算器的输出经过一个三态门74LS245(U33)到ALUO1插座,实验时用8芯排线和内部数据总线BUSD0~D7插座BUS1~6中的任一个相连,内部数据总线通过LZD0~LZD7显示灯显示;运算器的两个数据输入端分别由二个锁存器74LS273(U29、U30)锁存,两个锁存器的输入并联后连至插座ALUBUS,实验时通过8芯排线连至外部数据总线EXD0~D7插座EXJ1~EXJ3中的任一个;参与运算的数据来自于8位数据开并KD0~KD7,并经过一三态门74LS245(U51)直接连至外部数据总线EXD0~EXD7,通过数据开关输入的数据由LD0~LD7显示。 图中算术逻辑运算功能发生器74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M并行相连后连至SJ2插座,实验时通过6芯排线连至6位功能开关插座UJ2,以手动方式用二进制开关S3、S2、S1、S0、CN、M来模拟74LS181(U31、U32)的功能控制信号S3、S2、S1、S0、CN、M;其它电平控制信号LDDR1、LDDR2、ALUB`、SWB`以手动方式用二进制开关LDDR1、LDDR2、ALUB、SWB来模拟,这几个信号有自动和手动两种方式产生,通过跳线器切换,其中ALUB`、SWB`为低电平有效,LDDR1、LDDR2为高电平有效。 另有信号T4为脉冲信号,在手动方式下进行实验时,只需将跳线器J23上T4与手动脉冲发生开关的输出端SD相连,按动手动脉冲开关,即可获得实验所需的单脉冲。 2、实验接线 本实验用到4个主要模块:⑴低8位运算器模块,⑵数据输入并显示模块,⑶数据总线显示模块,⑷功能开关模块(借用微地址输入模块)。

计算机组成原理上机实验报告

《计算机组成原理实验》课程实验报告 实验题目组成原理上机实验 班级1237-小 姓名 学号 时间2014年5月 成绩

实验一基本运算器实验 1.实验目的 (1)了解运算器的组成原理 (2)掌握运算器的工作原理 2.实验内容 输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。 表 1-1运算器逻辑功能表 运算类 A B S3 S2 S1 S0 CN 结果 逻辑运算65 A7 0 0 0 0 X F=( 65 ) FC=( ) FZ=( ) 65 A7 0 0 0 1 X F=( A7 ) FC=( ) FZ=( ) 0 0 1 0 X F=( ) FC=( ) FZ=( ) 0 0 1 1 X F=( ) FC=( ) FZ=( ) 0 1 0 0 X F=( ) FC=( ) FZ=( ) 移位运算0 1 0 1 X F=( ) FC=( ) FZ=( ) 0 1 1 0 0 F=( ) FC=( ) FZ=( ) 1 F=( ) FC=( ) FZ=( ) 0 1 1 1 0 F=( ) FC=( ) FZ=( ) 1 F=( ) FC=( ) FZ=( ) 算术运算 1 0 0 0 X F=( ) FC=( ) FZ=( ) 1 0 0 1 X F=( ) FC=( ) FZ=( ) 1 0 1 0X F=( ) FC=( ) FZ=( ) 1 0 1 0X F=( ) FC=( ) FZ=( ) 1 0 1 1 X F=( ) FC=( ) FZ=( ) 1 1 0 0 X F=( ) FC=( ) FZ=( ) 1 1 0 1 X F=( ) FC=( ) FZ=( ) 表1-2运算结果表

计算机组成原理实验

实验一基础汇编语言程序设计 一、实验目的: 1、学习和了解TEC-XP16教学实验系统监控命令的用法。 2、学习和了解TEC-XP16教学实验系统的指令系统。 3、学习简单的TEC-XP16教学实验系统汇编程序设计。 二、预习要求: 1、学习TEC-XP16机监控命令的用法。 2、学习TEC-XP16机的指令系统、汇编程序设计及监控程序中子程序调用。 3、学习TEC-XP16机的使用,包括开关、指示灯、按键等。 4、了解实验内容、实验步骤和要求。 三、实验步骤: 在教学计算机硬件系统上建立与调试汇编程序有几种操作办法。 第一种办法,是使用监控程序的A命令,逐行输入并直接汇编单条的汇编语句,之后使用G命令运行这个程序。缺点是不支持汇编伪指令,修改已有程序源代码相对麻烦一些,适用于建立与运行短小的汇编程序。 第二种办法,是使用增强型的监控程序中的W命令建立完整的汇编程序,然后用M命令对建立起来的汇编程序执行汇编操作,接下来用G命令运行这个程序。适用于比较短小的程序。此时可以支持汇编伪指令,修改已经在内存中的汇编程序源代码的操作更方便一些。 第三种办法,是使用交叉汇编程序ASEC,首先在PC机上,用PC机的编辑程序建立完整的汇编程序,然后用ASEC对建立起来的汇编程序执行汇编操作,接下来把汇编操作产生的二进制的机器指令代码文件内容传送到教学机的内存中,就可以运行这个程序了。适用于规模任意大小的程序。

在这里我们只采用第一种方法。 在TEC-XP16机终端上调试汇编程序要经过以下几步: 1、使教学计算机处于正常运行状态(具体步骤见附录联机通讯指南)。 2、使用监控命令输入程序并调试。 ⑴用监控命令A输入汇编程序 >A 或>A 主存地址 如:在命令行提示符状态下输入: A 2000↙;表示该程序从2000H(内存RAM区的起始地址)地址开始 屏幕将显示: 2000: 输入如下形式的程序: 2000: MVRD R0,AAAA ;MVRD 与R0 之间有且只有一个空格,其他指令相同 2002: MVRD R1,5555 2004: ADD R0,R1 2005: AND R0,R1 2006: RET ;程序的最后一个语句,必须为RET 指令 2007:(直接敲回车键,结束A 命令输入程序的操作过程) 若输入有误,系统会给出提示并显示出错地址,用户只需在该地址重新输入正确的指令即可。 ⑵用监控命令U调出输入过的程序并显示在屏幕上 >U 或>U 主存地址

计算机组成原理实验一

_计算机_学院计算机科学与技术专业_10(5)班______组、学号3210006075 姓名钟柳贤协作者___________ 教师评定 实验题目_基础汇编语言程序设计_______________________ 一、实验目的: 1.学习和了解TEC-XP教学实验系统监控命令的用法; 2.学习和了解TEC-CP教学实验系统的指令系统; 3.学习简单的TEC-XP教学实验系统汇编程序设计; 二、实验设备与器材: TEC-XP+教学实验系统 仿真终端软件PCEC 三、实验内容: 1.学习联机使用TEC-XP教学实验系统和仿真终端软件PCEC。 2.使用监控程序的R命令显示/修改寄存器内容,D命令显示存储器内容,E命令修改存储器内容: 3.使用A命令写一小段汇编程序,U命令反汇编刚输入的程序,用G命令连续运行该程序,用T,P命令单步运行并观察程序单步执行情况: 四、实验步骤: 一、实验具体操作步骤 1.准备一台串口工作良好的PC机; 2.将TXC-XP放在实验台上,打开实验箱的盖子,确定电源处于断开状态; 3.将黑色的电源线一端接220V交流电源,另一端插在TEC—XP实验箱的电源插座里;4.取出通讯线,将通讯的9芯插头接在TEC—XP实验箱上的串口“COM1”或“COM2”上,另一端接到PC机的串口上; 5.将TEC—XP实验系统左下方的五个黑色的控制机器运行状态的开关置于正确的位置,在这个实验中开关应置为00110(连续、内存读指令、组合逻辑、联机、16位),控制开关的功能在开关上、下方有标示;开关拨向上方表示“1”,拨向下方表示“0”,“X”表示任意,其它实验相同; 6.打开电源,船形开关和5V电源指示灯亮。 7.在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为“1” 或“2”,其它设置一般不作改动,直接回车即可。 8.按一下“RESET”按键,再按一下“START”按键,主机上显示:

计算机组成原理实验完整版

河南农业大学 计算机组成原理实验报告 题目简单机模型实验 学院信息与管理科学学院 专业班级计算机科学与技术2010级1班 学生姓名张子坡(1010101029) 指导教师郭玉峰 撰写日期:二○一二年六月五日

一、实验目的: 1.在掌握各部件的功能基础上,组成一个简单的计算机系统模型机; 2.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程; 3定义五条机器指令,编写相应微程序并具体上机调试。 二、实验要求: 1.复习计算机组成的基本原理; 2.预习本实验的相关知识和内容 三、实验设备: EL-JY-II型计算机组成原理试验系统一套,排线若干。 四、模型机结构及工作原理: 模型机结构框图见实验书56页图6-1. 输出设备由底板上上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据结构的数据送入数据管显示注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序寄存器时,只有低8位有效。 在本实验我们学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,CPU从内存中取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令分别由相应的微程序段来完成。

为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计三个控制操作微程序。 存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。 存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。 启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“11”时,按“单步”键,即可转入第01号“取指”微指令,启动程序运行。 注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式有监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关控制。 五、实验内容、分析及参考代码: 生成的下一条微地址 UA5 UA0 MS5 MS0 微地址

计算机组成原理-实验一

《计算机组成原理-实验一》 实验报告 韶关学院数信学院 2010级信息与计算科学 2012年 9月

实验一:本实验分三部分: 1熟悉Linux常用命令(上) 2 Linux下程序设计基础(中) 3汇编语言与机器指令(下)(暂略) 实验一熟悉Linux常用命令(上) 一,实验要求: 1,熟练Linux下的常用命令. 2,熟练地操作linux. 二,实验内容: 练习使用Linux常用命令; 三,实验环境: windows7的vmware的Redhat。 四,Linux下常用命令实验操作:(以下命令若权限不够,要在命令前加sudo) 1. 写出下面命令每个部分含义,字符C表示命令(Command)、O表示选项(Option)、OA表示选项的参数(Option Argument)、CA表示命令的参数(Command Argument),如: C OOA O OA C A Answer $ lpr –Pspr –n 3 proposal.ps Command line Linux命令行的语法结构: $ command [[-]option(s)] [option argument(s)] [command argument(s)] 含义: ● $:linux系统提示符,您的linux系统可能是其他的提示符 ● Command :linux命令的名字 ● [[-]option(s)] :改变命令行为的一个或多个修饰符,即选项 ● [option argument(s)] :选项的参数 ● [command argument(s)] :命令的参数 1) ls -la convert.txt 2) more convert.txt 3) pwd 4) cat file1 file2 file3 5) rm -r temp 6) ping –c 3 https://www.360docs.net/doc/544893996.html, 7) telnet https://www.360docs.net/doc/544893996.html, 13 8) cc -o short short.c -lbaked 9) chmod u+rw file1.c 10) uname –n

计算机组成原理实验七

图16 启停单元布局图 序电路由1片74LS157、2片74LS00、4个LED PLS2、PLS3、PLS4)组成。当LED发光时 图17

图17 时序单元布局图 (二)启停、脉冲单元的原理 1.启停原理:(如图18) 启停电路由1片7474组成,当按下RUN按钮,信号输出RUN=1、STOP=0,表示当前实验机为运行状态。当按下STOP 按钮,信号RUN=0、STOP=1,表示当前实验机为停止状态。当 系统处于停机状态时,微地址、进位寄存器都被清零,并且可 通过监控单元来读写内存和微程序。在停止状态下,当HALT 时有一个高电平,同时HCK有一个上升沿,此时高电平被打入 寄存器中,信号输出RUN=1、STOP=0,使实验机处于运行状态。

图18 启停单元原理图 2.时序电路: 时序电路由监控单元来控制时序输出(PLS1、PLS2、PLS3、PLS4)。实验所用的时序电路(如图19)可产生4个等间隔的时序信号PLS1、PLS2、PLS3、PLS4。为了便于监控程序流程,由监控单元输出PO信号和SIGN脉冲来实现STEP(微单步)、GO (全速)和HALT(暂停)。当实验机处于运行状态,并且是微单步执行,PLS1、PLS2、PLS3、PLS4分别发出一个脉冲,全速执行时PLS1、PLS2、PLS3、PLS4脉冲将周而复始的发送出去。在时序单元中也提供了4个按钮,实验者可手动给出4个独立的脉冲,以便实验者单拍调试模型机。

图19 时序电路图 实验步骤 1.交替按下“运行”和“暂停”,观察运行灯的变化(运行:RUN 亮;暂停:RUN灭)。 2.把HALT信号接入二进制拨动开关,HCK接入脉冲单元的PLS1。按下表接线 接入开关位号 信号定 义 HCK PLS1孔 HALT H13孔 3.按启停单元中的停止按钮,置实验机为停机状态,HALT=1。 4.按脉冲单元中的PLS1脉冲按键,在HCK上产生一个上升

计算机组成原理实验五

上海大学计算机学院 《计算机组成原理实验》报告一 姓名:学号:教师: 时间:机位:报告成绩: 实验名称:指令系统实验 一、实验目的:1. 读出系统已有的指令,并理解其含义。 2. 设计并实现一条新指令。 二、实验原理:利用CP226实验仪(用74HC754即8D型上升沿触发器)上的K16…K23 开关为数据总线DBUS设置数据,其他开关作为控制信号,一条指令执行完 毕PC会自动加1,系统顺序执行下一条指令,但系统要进入一个新的指令序 列时,如跳转、转子程序等,必须给PC打入新的起始值——新指令序列的 入口地址。实验箱实现把数据总线的值(目标地址)打入PC的操作,以更新 PC值。 三、实验内容:1. 考察机器指令64的各微指令信号,验证该指令的功能。(假设R0=77H, A=11H, 77地址单元存放56H数据,64指令的下一条指令为E8) 2. 修改机器指令E8,使其完成“输出A+W的结果左移一位后的值到OUT” 操作。 四、实验步骤:1. 考察机器指令64的各微指令信号,验证该指令的功能。(假设R0=77H, A=11H, 77地址单元存放56H数据,64指令的下一条指令为E8) ①在初始化系统(Reset),进入微程序存储器模式(μEM状态),用NX键观 察64H,65H,66H,67H, 地址中原有的微指令,分析并查表确定其功能。 ②在EM状态下,Adr打入A0,DB打入64;按NX键,Adr显示A1,DB 打入E8。 ③在μEM状态下,在E8H、E9H、EAH、EBH下分别打入:FFDED8、CBFFFF、 FFFFFF、FFFFFF。 ④给μPC状态下,打入μPC(00)、PC(A0)、A(11)、W(00),按3次 NX输入R0(77)。 ⑤按下STEP键,观察实验现象。 2. 修改机器指令E8,使其完成“输出A+W的结果左移一位后的值到OUT” 操作。 ⑥继续按STEP键,直到进入E8状态下。 ⑦在EM状态下,打入Adr为77,DB为56。 ⑧按STEP键执行指令,观察实验现象。 五、实验现象:OUT寄存器的值为5A。 六、数据记录、分析与处理:实验结果和预期的一样。 七、实验结论:1、机器指令64对应的各微指令码为:FF77FF、D7BFEF、FFFE92、CBFFFF。其功能为:将R0寄存器的值打入地址寄存器MAR;存贮器EM将MAR输出地址所对应的值打入W寄存器;ALU直通门输出的值打入A寄存器,A、W中的值进行“与”运算,结果在A输出;PC+1,读出下一条指令并立即执行。 八、建议:暂无。

计算机组成原理实验报告材料

福建农林大学计算机与信息学院信息工程类实验报告系:计算机科学与技术专业:计算机科学与技术年级: 09级 姓名:张文绮学号: 091150022 实验课程:计算机组成原理 实验室号:___田405 实验设备号: 43 实验时间:2010.12.19 指导教师签字:成绩: 实验一算术逻辑运算实验 1.实验目的和要求 1. 熟悉简单运算器的数据传送通路; 2. 验证4位运算功能发生器功能(74LS181)的组合功能。 2.实验原理 实验中所用到的运算器数据通路如图1-1所示。其中运算器由两片74181

以并/串形式构成8位字长的ALU。运算器的输出经过一个三态门(74245)和数据总线相连,运算器的两个数据输入端分别由两个锁存器(74373)锁存,锁存器的输入连接至数据总线,数据开关INPUT DEVICE用来给出参与运算的数据,并经过一个三态门(74245)和数据总线相连,数据显示灯“BUS UNIT”已和数据总线相连,用来显示数据总线内容。 图1-2中已将用户需要连接的控制信号用圆圈标明(其他实验相同,不再说明),其中除T4为脉冲信号,其它均为电平信号。由于实验电路中的时序信号均已连至W/R UNIT的相应时序信号引出端,因此,在进行实验时,只需将W/R UNIT 的T4接至STATE UNIT的微动开关KK2的输出端,按动微动开关,即可获得实验所需的单脉冲,而S3,S2,S1,S0,Cn,LDDR1,LDDR2,ALU-B,SW-B各电平控制信号用SWITCH UNIT中的二进制数据开关来模拟,其中Cn,ALU-B,SW-B为低电平控制有效,LDDR1,LDDR2为高电平有效。 3.主要仪器设备(实验用的软硬件环境) ZYE1603B计算机组成原理教学实验系统一台,排线若干。 4.操作方法与实验步骤

计算机组成原理实验五存储器读写实验

实验五 存储器读写实验实验目的 1. 掌握存储器的工作特性。 2. 熟悉静态存储器的操作过程,验证存储器的读写方法。 二、实验原理 表芯片控制信号逻辑功能表

2. 存储器实验单元电路 芯片状态 控制信号状态 DO-D7 数据状态 M-R M -W 保持 1 1 高阻抗 读出 0 1 6116-^总钱 写人 1 0 总线-*6116 无效 报警 ^2-10 D7—DO A7—A0

團2-8存储器实验电路逻辑图 三、实验过程 1. 连线 1) 连接实验一(输入、输出实验)的全部连线。 2) 按逻辑原理图连接M-W M-R 两根信号低电平有效信号线 3) 连接A7-A0 8根地址线。 4) 连接B-AR 正脉冲有效信号 2. 顺序写入存储器单元实验操作过程 1) 把有B-AR 控制开关全部拨到0,把有其他开关全部拨到1,使全部信号都处 于无效 状态。 2) 在输入数据开关拨一个实验数据,如“ 00000001”即16进制的01耳 把IO-R 控制开关拨下,把地址数据送到总线。 3) 拨动一下B-AR 开关,即实现“1-0-1 ”产生一个正脉冲,把地址数据送地 址寄存器保存。 4) 在输入数据开关拨一个实验数据,如“ 10000000',即16进制的80耳 把IO-R 控 制开关拨下,把实验数据送到总线。 3. 存储器实验电路 0 O O 0 0 olo O O O O 0 00 OUTPUT L/O :W 8-AR £ ■」2 ■七 ol^Fgr' L P O 74LS273 A7- AO vz 0 o|o 0 r 6116 A7 INPUT D7-O0 [olololololololol T2

计算机组成原理实验实验报告

计算机组成原理实验报告 学院信息与管理科学学院 专业班级计算机科学与技术2010级2班学生姓名毛世均 1010101046 指导教师郭玉峰 撰写日期:二○一二年六月四日

SA4=1 1.根据上边的逻辑表达式,分析58页图6-2的P1测试和P4测试两条指令的微地址转移方向。 P1测试:进行P1测试时,P1为0,其他的都为1, 因此SA4=1, SA3=I7,SA2=I6,SA1=,SA0=I4 微地址011001,下址字段为001000下址字段001000译码后,高两位不变,仍然为00,低四位受到机器指令的高四位I7-I4的影响。 机器指令的高四位为0000时,下一条微指令地址为001000,转到IN 操作。机器指令高四位0010时,下一条微指令地址为001010,转到MOV 操作。机器指令高四位为0001时,下一条微指令地址为001001,转到ADD 操作。机器指令高四位为0011时,下一条微指令地址为001011,转到OUT 操作。机器指令高四位为0100时,下一条微指令地址001100,转到JMP 操作 P4测试:进行P4测试时,P4为0,其他的都为1. 因此SA4=SA3=SA2=1,SA1=CA2,SA0=CA1 微地址000000,下址字段为010000. 010000被译码之后,高四位不变,0100低两位由CA2和CA1控制。CA2和CA1的值是由单片机的键盘填入控制的。 当实验选择CtL2=1时,CA2和CA1被填入0和1,这时低两位被译码电路翻译成01,所以下一条微地址就是010001,然后进入写机器指令的状态。当实验选择CtL2=2时,CA2和CA1被填入1和0,这时低两位被译码电路翻译成10,所以下一条微地址就是010010,然后进入读机器指令的状态。当实验选择CtL2=2时,CA2和CA1被填入1和1,这时低两位被译码电路翻译成 11,所以下一条微地址就是010011,然后进入运行机器指令的状态。 2.分析实验六中五条机器指令的执行过程。

计算机组成原理实验报告5- PC实验

2.5 PC实验 姓名:孙坚学号:134173733 班级:13计算机日期:2015.5.15 一.实验要求:利用CPTH 实验仪上的K16..K23 开关做为DBUS 的数据,其它开关做为控制信号,实现程序计数器PC的写入及加1 功能。 二.实验目的:1、了解模型机中程序计数器PC的工作原理及其控制方法。2、了解程序执行过程中顺序和跳转指令的实现方法。 三.实验电路:PC 是由两片74HC161构成的八位带预置记数器,预置数据来自数据总线。记数器的输出通过74HC245(PCOE)送到地址总线。PC 值还可以通过74HC245(PCOE_D)送回数据总线。 PC 原理图 在CPTH 中,PC+1 由PCOE 取反产生。 当RST = 0 时,PC 记数器被清0 当LDPC = 0 时,在CK的上升沿,预置数据被打入PC记数器 当PC+1 = 1 时,在CK的上升沿,PC记数器加一 当PCOE = 0 时,PC值送地址总线

PC打入控制原理图 PC 打入控制电路由一片74HC151 八选一构成(isp1016实现)。 当ELP=1 时,LDPC=1,不允许PC被预置 当ELP=0 时,LDPC 由IR3,IR2,Cy,Z确定 当IR3 IR2 = 1 X 时,LDPC=0,PC 被预置 当IR3 IR2 = 0 0 时,LDPC=非Cy,当Cy=1时,PC 被预置 当IR3 IR2 = 0 1 时,LDPC=非Z,当Z=1 时,PC 被预置 连接线表 四.实验数据及步骤: 实验1:PC 加一实验

置控制信号为: 按一次STEP脉冲键,CK产生一个上升沿,数据PC 被加一。 实验2:PC 打入实验 二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据12H 置控制信号为: 每置控制信号后,按一下STEP键,观察PC的变化。 五.心得体会: 经过上一个实验的练习,在做这个实验的时候更加得心应手,了解了模型机中程序计数器PC的工作原理及其控制方法,还有了解了程序执行过程中顺序和跳转指令的实现方法。

计算机组成原理实验1-运算器

《计算机组成原理》 实验报告 实验一运算器实验

一、实验目的 1.掌握运算器的组成及工作原理; 2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操 作和逻辑操作的具体实现过程; 3.验证带进位控制的74LS181的功能。 二、实验环境 EL-JY-II型计算机组成原理实验系统一套,排线若干。 三、实验内容与实验过程及分析(写出详细的实验步骤,并分析实验结果) 实验步骤:开关控制操作方式实验 1、按图1-7接线图接线: 连线时应注意:为了使连线统一,对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。 图1-1 实验一开关实验接线图 2、通过数据输入电路的拨开关开关向两个数据暂存器中置数: 1)拨动清零开关CLR,使其指示灯。再拨动CLR,使其指示灯亮。置ALU-G =1:关闭ALU的三态门;再置C-G=0:打开数据输入电路的三态门; 2)向数据暂存器LT1(U3、U4)中置数:

(1)设置数据输入电路的数据开关“D15……D0”为要输入的数值; (2)置LDR1=1:使数据暂存器LT1(U3、U4)的控制信号有效,置LDR2=0:使数据暂存器LT2(U5、U6)的控制信号无效; (3)按一下脉冲源及时序电路的【单脉冲】按钮,给暂存器LT1送时钟,上升沿有效,把数据存在LT1中。 3)向数据暂存器LT2(U5、U6)中置数: (1)设置数据输入电路的数据开关“D15……D0”为想要输入的数值; (2)置LDR1=0:数据暂存器LT1的控制信号无效;置LDR2=1:使数据暂存器LT2的控制信号有效。 (3)按一下脉冲源及时序电路的“单脉冲”按钮,给暂存器LT2送时钟,上升沿有效,把数据存在LT2中。 (4)置LDR1=0、LDR2=0,使数据暂存器LT1、LT2的控制信号无效。 4)检验两个数据暂存器LT1和LT2中的数据是否正确: (1)置C-G=1,关闭数据输入电路的三态门,然后再置ALU-G=0,打开ALU 的三态门; (2)置“S3S2S1S0M”为“F1”,数据总线显示灯显示数据暂存器LT1中的数,表示往暂存器LT1置数正确; (3)置“S3S2S1S0M”为“15”,数据总线显示灯显示数据暂存器LT2中的数,表示往暂存器LT2置数正确。 3、验证74LS181的算术和逻辑功能: 按实验步骤2往两个暂存器LT1和LT2分别存十六进制数“1234H”和“5678H”,在给定LT1=1234H、LT2=5678H的情况下,通过改变“S3S2S1S0MCn”的值来改变运算器的功能设置,通过数据总线指示灯显示来读出运算器的输出值F,填入上表中,参考表1-1的功能表,分析输出F值是否正确。分别将“AR”开关拨至“1”和“0”的状态,观察进位指示灯“CY”的变化并分析原因。 实验结果表为:

计算机组成原理实验报告(运算器组成、存储器)

计算机组成原理实验报告 一、实验1 Quartus Ⅱ的使用 一.实验目的 掌握Quartus Ⅱ的基本使用方法。 了解74138(3:8)译码器、74244、74273的功能。 利用Quartus Ⅱ验证74138(3:8)译码器、74244、74273的功能。 二.实验任务 熟悉Quartus Ⅱ中的管理项目、输入原理图以及仿真的设计方法与流程。 新建项目,利用原理编辑方式输入74138、74244、74273的功能特性,依照其功能表分别进行仿真,验证这三种期间的功能。 三.74138、74244、74273的原理图与仿真图 1.74138的原理图与仿真图 74244的原理图与仿真图

1. 4.74273的原理图与仿真图、

实验2 运算器组成实验 一、实验目的 1.掌握算术逻辑运算单元(ALU)的工作原理。 2.熟悉简单运算器的数据传送通路。 3.验证4位运算器(74181)的组合功能。 4.按给定数据,完成几种指定的算术和逻辑运算。 二、实验电路 附录中的图示出了本实验所用的运算器数据通路图。8位字长的ALU由2片74181构成。2片74273构成两个操作数寄存器DR1和DR2,用来保存参与运算的数据。DR1接ALU的A数据输入端口,DR2接ALU的B数据输入端口,ALU的数据输出通过三态门74244发送到数据总线BUS7-BUS0上。参与运算的数据可通过一个三态门74244输入到数据总线上,并可送到DR1或DR2暂存。 图中尾巴上带粗短线标记的信号都是控制信号。除了T4是脉冲信号外,其他均为电位信号。nC0,nALU-BUS,nSW-BUS均为低电平有效。 三、实验任务 按所示实验电路,输入原理图,建立.bdf文件。 四.实验原理图及仿真图 给DR1存入01010101,给DR2存入10101010,然后利用ALU的直通功能,检查DR1、

计算机组成原理实验1.

计算机组成原理实验1 运算器(脱机)实验 通过开关、按键控制教学机的运算器执行指定的运算功能,并通过指示灯观察运算结果。实验原理: 为了控制Am2901运算器能够按照我们的意图完成预期的操作功能,就必须向其提供相应的控制信号和数据。 控制信号包括 1、选择送入ALU的两路操作数据R和S的组合关系(实际来源)。 2、选择ALU的八种运算功能中我们所要求的一种。这可通过提供三位功能选择码I5、 I4、I3实现。 3、选择运算结果或有关数据以什么方式送往何处的处理方案,这主要通过通用寄存器 组合和Q寄存器执不执行接收操作或位移操作,以及向芯片输出信息Y提供的是 什么内容。这是通过I8、I7、I6三位结果选择码来控制三组选择门电路实现的。 外部数据包括 1、通过D接收外部送来的数据 2、应正确给出芯片的最低位进位输入信号C n 3、关于左右移位操作过程中的RAM3、RAM0、Q3和Q0的处理。 4、当执行通用寄存器组的读操作时,由外部送入的A地址选中的通用寄存器的内容送 往A端口,由B地址选中的通用寄存器的内容送往B端口,B地址还用作通用寄 存器的写汝控制。 对于芯片的具体线路,需说明如下几点: 1、芯片结果输出信号的有无还受一个/OE(片选)信号的控制。 2、标志位F=0000为集电极开路输出,容易实现“线与”逻辑,此管脚需经过一个电阻 接到+5V。 3、RAM3、RAM0、Q3和Q0均为双向三态逻辑,一定要与外部电路正确连接。 4、通用寄存器组通过A端口、B端口读出内容的输出处均有锁存器线路支持。 5、该芯片还有两个用于芯片间完成高速进位的输出信号/G和/P。 6、Am2901芯片要用一个CLK(CP)时钟信号作为芯片内通用寄存器、锁存器和Q寄 存器的打入信号。 实验步骤如下: (1)选择运算器要完成的一项运算功能,包括数据来源,运算功能,结果保存等;(2)需要时,通过数据开关向运算器提供原始数据; (3)通过24位的微型开关向运算器提供为完成指定运算功能所需要的控制信号; (4)通过查看指示灯或用电表量测,观察运算器的运行结果(包括计算结果和特征标志)。实验准备 12为微型开关的具体控制功能分配如下: A口和B口地址:送给Am2901器件用于选择源与目的操作数的寄存器编号; I8~I0:选择操作数来源、运算操作功能、选择操作数处理结果和运算器输出内容的3组3位控制码; Sci,SSH和SST:用于确定运算器最低位的进位输入、移位信号的入/出和怎样处理Am2901产生的状态标志位的结果。

计算机组成原理专题实验

计算机组成原理专题实验 课程设计方案 学院:电信学院 班级:计算机16 学号:2110505136 姓名:冯旭 指导老师:姜欣宁 提交日期:2014年4月1日

设计目的 通过对一个简单模型机的设计与实现,对计算机的基本组成、部件的设计、部件间的 连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。 在掌握部件单元电路实验的基础上,进一步将其组成系统地构造一台基本模型计算机。 指令集的设计 1.机器位数及寻址特性及时间特性 计划设计一个16位系统,提供256字的寻址空间和16个16位的通用寄存器。寻址方式提供立即数寻址、寄存器寻址和直接寻址3种方式。 计划每条指令由两个机器周期完成(第一个机器周期取指令,第二个机器周期执行指令),每个机器周期固定占4个时钟周期。 2.指令类型 计划提供16种指令,其中算逻类指令8条,其他类指令8条。 指令采用类似MIPS的方式,即只能使用load和store指令来访问存储器,一切运算均在寄存器之间进行。同时由于所设计的系统是简化系统不含I/O设备,所以指令集中不提供I/O类指令。 具体指令及其所采用的寻址方式,如下所示: 非算逻类指令: 指令名指令格式指令含义 LOAD Load dr,addr 将地址addr中的数存入dr寄存器 STORE Storedr,addr 将dr寄存器中的数写入地址addr所指的空间 JMP Jmp addr 跳转到地址addr JNE Jne addr 若标志位z无效跳转到地址addr JC Jc addr 若标志位c有效跳转到地址addr NOP nop 空指令 MOV Mov dr,sr 将sr寄存器中的值复制到sr寄存器 MOVI Movi dr,imm 将8位立即数imm写入dr寄存器 算逻类指令: ADD Add dr,sr 将dr寄存器中的值与sr寄存器中的值相加,结果存dr寄存器 SUB Sub dr,sr 将dr寄存器中的值与sr寄存器中的值相减,结果存dr寄存器 AND And dr,sr 将dr寄存器中的值与sr寄存器中的值按位做逻辑与,结果存dr寄存器 OR Or dr,sr 将dr寄存器中的值与sr寄存器中的值按位做逻辑或,结果存dr寄存器 NOT Not dr 将dr寄存器中的值按位取反 SHL Shl dr,sr 将dr寄存器中的值逻辑左移sr中值那么多位 SHR Shr dr,sr 将dr寄存器中的值逻辑右移sr中值那么多位 INC Inc dr 将dr寄存器中的值自增1 3.指令格式 我们采用16位固定位指令格式,根据操作数寻址方式的不同,对这16位可以划分为两种不同的理解方式,即可以认为是提供两种相似的格式: 其中操作码部分均为4位,占指令中15到12的高4位。DR和SR均为通用寄存器的编号,各占4位,ADDR/IMM部分为地址或立即数(8位)占指令中最低8位。 根据指令中操作数的数量和寻址类型的不同选用不同的格式,其主导思想为:

计算机组成原理实验五参考

实验五CPU组成与机器指令执行实验 第一步,对机器指令系统组成的简单程序进行译码。 第二步,接线 本实验的接线比较多,需仔细。 1.将跳线开关J1用短路子短接。时序发生器的输入TJI接控制存储器的输出TJ。控制器的输入C接运算器ALU的C。控制器的输入IR7、IR6、IR5、IR4依次指令寄存器IR的输出IR7、IR6、IR5、IR4。共6条线。

2.控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS_BUS#、ALU_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0 依次与数据通路的对应信号连接。共27条线。

3.指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。共6条线。 合上电源。按CLR#按钮,使实验系统处于初始状态。 第三步,利用控制台微程序KLD设置通用寄存器R2、R3的值 在本操作中,我们打算使R2 = 60H,R3 = 61H。 1.令DP = 0,DB = 0,DZ =0,使实验系统处于连续运行状态。令SWC = 0、SWB = 1、SWA = 1,使实验系统处于寄存器加载工作方式KLD。按CLR#按钮, 使实验系统处于初始状态。 2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。 该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储 器单元的内容。例如可将该地址设置为0FFH。按一次QD按钮,将0FFH写入AR1 和AR2。

计算机组成原理实验一运算器组成实验

实验一运算器组成实验 一、实验目的 1.熟悉双端口通用寄存器堆的读写操作。 2.熟悉简单运算器的数据传送通路。 3.验证运算器74LS181的算术逻辑功能。 4.按给定数据,完成指定的算术、逻辑运算。 二、实验电路 S3 S2 S1 S0 M 图3.1 运算器实验电路 图3.1示出了本实验所用的运算器数据通路图。参与运算的数据首先通过实验台操作板上的八个二进制数据开关SW7-SW0来设置,然后输入到双端口通用寄存器堆RF中。 RF(U54)由一个ispLSI1016实现,功能上相当于四个8位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从B端口(右端口)读出的通用寄存器,RD1、RD0用于选择从A端口(左端口)读出的通用寄存器。而WR1、WR0用于选择写入的通用寄存器。LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。RF的A、

B端口分别与操作数暂存器DR1、DR2相连;另外,RF的B端口通过一个三态门连接到数据总线DBUS上,因而RF中的数据可以直接通过B端口送到DBUS上。

DR1(U47)和DR2(U48)各由1片74LS273构成,用于暂存参与运算的数据。DR1接ALU 的A输入端口,DR2接ALU的B输入端口。ALU(U31、U35)由两片74LS181构成,ALU的输出通过一个三态门(74LS244)发送到数据总线DBUS上。 实验台上的八个发光二极管DBUS7-DBUS0显示灯接在DBUS上,可以显示输入数据或运算结果。另有一个指示灯C显示运算器进位标志信号状态。 图中尾巴上带粗短线标记的信号都是控制信号,其中S3、S2、S1、S0、M、Cn#、LDDR1、LDDR2、ALU_BUS#、SW_BUS#、LDRi、RS1、RS0、RD1、RD0、WR1、WR0都是电位信号,在本次实验中用拨动开关K0—K15来模拟;T2、T3为时序脉冲信号,印制板上已连接到实验台的时序电路。实验中进行单拍操作,每次只产生一组T1、T2、T3、T4时序脉冲,需将实验台上的DP、DB开关进行正确设置。将DP开关置1,DB开关置0,每按一次QD按钮,则顺序产生T1、T2、T3、T4一组单脉冲。 三、实验设备 1.TEC-5计算机组成实验系统1台 2.逻辑测试笔一支(在TEC-5实验台上) 3.双踪示波器一台(公用) 4.万用表一只(公用) 四、实验任务 1.按图3.1所示,将运算器模块与实验台操作板上的线路进行连接。由于运算器模块 内部的连线已由印制板连好,故接线任务仅仅是完成数据开关、控制信号模拟开 关、与运算器模块的外部连线。注意:为了建立清楚的整机概念,培养严谨的科 研能力,手工连线是绝对必要的。 2.用开关SW7—SW0向通用寄存器堆RF内的R0—R3寄存器置数。然后读出R0—R3 的内容,在数据总线DBUS上显示出来。 3.验证ALU的正逻辑算术、逻辑运算功能。 令DR1=55H,DR2=0AAH,Cn#=1。在M=0和M=1两种情况下,令S3—S0的值从0000B变到1111B,列表表示出实验结果。实验结果包含进位C,进位C由指示灯显示。 注意:进位C是运算器ALU最高位进位Cn+4#的反,即有进位为1,无进位为0。 五、实验要求 1.做好实验预习,掌握运算器的数据传输通路及其功能特性,并熟悉本实验中所用 的模拟开关的作用和使用方法。 2.写出实验报告,内容是: (1)实验目的。 (2)按实验任务3的要求,列表表示出实验结果。 (3)按实验任务4的要求,在表中填写各控制信号模拟开关值,以及运算结果值。 六、实验步骤和实验结果 (1)实验任务2 的实验步骤和结果如下:(假定令R0=34H,R1=21H,R2=52H,R3=65H)1.置DP=1,DB=0,编程开关拨到正常位置。

相关文档
最新文档