版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成原理实验报告实验一 基本运算器实验一、实验目的1. 了解运算器的组成结构2. 掌握运算器的工作原理3. 深刻理解运算器的控制信号二、实验设备PC机一台、TD-CMA实验系统一套三、实验原理1. (思考题)运算器的组成包括算数逻辑运算单元ALU(Arithmetic and Logic Unit)、浮点运算单元FPU(Floating Point Unit)、通用寄存器组、专用寄存器组。 算术逻辑运算单元ALU(Arithmetic and Logic Unit) ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还有专门用于处理移
2、位操作的移位器。 通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。 浮点运算单元FPU(Floating Point Unit) FPU主要负责浮点运算和高精度整数运算。有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。 通用寄存器组 通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。 专用寄存器 专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。而运算器内部有三个独立运算部件,分别为算术、逻辑和移位运
3、算部件,逻辑运算部件由逻辑门构成,而后面又有专门的算术运算部件设计实验。下图为运算器内部原理构造图2. 运算器的控制信号实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。T4由时序单元的TS4提供(脉冲信号),其余控制信号均由CON单元的二进制数据开关模拟给出。控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。下图为ALU和外围电路的连接。图中的小方框代表排针座。在运算器的工作过程中,S3 S2 S1 S0 和CN为控制信号,FC为进位标志,FZ为运算器零标志。运算器的逻辑功能见下表,
4、表中功能栏的FC、FZ表示当前运算会影响到该标志。(思考题)运算器功能的选择:如图在表中,可以通过调整S3 S2 S1 S0和CN的值来改变运算类型,功能如上图所示,不同的S3 S2 S1 S0和CN的值对应不同的运算类型和结果。CON单元的数据开关控制数据的形成。(思考题)运算器的数据通路:以下为数据通路图(思考题)运算器的各组成部件的控制信号的作用:LDA和LDB控制存入数据的位置(具体运行方式如上图所示)SD27到SD20通过开和关两个状态控制输入数据而S3 S2 S1 S0和Cn控制运算的类型(Cn只用于移位运算)四、实验内容(1) 按图1-1-5连接实验电路,并检查无误。图中将用户需
5、要连接的信号用圆圈标明(其它实验相同)。 图1-1-5 实验接线图(2) 将时序与操作台单元的开关KK2置为单拍档,开关KK1、KK3置为运行档。 (3) 打开电源开关,如果听到有嘀报警声,说明有总线竞争现象,应立即关闭电源,重新检查接线,直到错误排除。然后按动CON单元的CLR按钮,将运算器的A、B和FC、FZ清零。 (4) 用输入开关向暂存器A置数。 拨动CON单元的SD27SD20数据开关,形成二进制数01100101(或其它数值),数据显示亮为1,灭为0。 置LDA=1,LDB=0,连续按动时序单元的ST按钮,产生一个T4上沿,则将二进制数01100101置入暂存器A中,暂存器A的值通
6、过ALU单元的A7A0八位LED灯显示。 (5) 用输入开关向暂存器B置数。 拨动CON单元的SD27SD20数据开关,形成二进制数10100111(或其它数值)。 置LDA=0,LDB=1,连续按动时序单元的ST按钮,产生一个T4上沿,则将二进制数10100111 置入暂存器B中,暂存器B的值通过ALU单元的B7B0八位LED灯显示。 (6) 改变运算器的功能设置,观察运算器的输出。置ALU_B=0、LDA=0、LDB=0,然后按表1-1-1置S3、S2、S1、S0和Cn的数值,并观察数据总线LED显示灯显示的结果。如置S3、S2、S1、S0为0010,运算器作逻辑与运算,置S3、S2、S1
7、、S0为1001,运算器作加法运算。 如果实验箱和PC联机操作,则可通过软件中的数据通路图来观测实验结果(软件使用说明请看附录一),方法是:打开软件,选择联机软件的“【实验】【运算器实验】”,打开运算器实验的数据通路图,如图1-1-6所示。进行上面的手动操作,每按动一次ST按钮,数据通路图会有数据的流动,反映当前运算器所做的操作,或在软件中选择“【调试】【单节拍】”,其作用相当于将时序单元的状态开关KK2置为单拍档后按动了一次ST按钮,数据通路图也会反映当前运算器所做的操作。 重复上述操作,并完成表1-1-2。然后改变A、B的值,验证FC、FZ的锁存功能。实验结果及解释运算类型ABS3 S2
8、S1 S0CN结果解释逻辑运算65 A70 0 0 0XF=65 FC=0 FZ=0 F=A(直通)65 A7 0 0 0 1 XF=A7 FC=0 FZ=0 F=B(直通)65 A70 0 1 0XF=25 FC=0 FZ=0F=AB(逻辑乘法)65 A70 0 1 1 XF=E7 FC=0 FZ=0F=A+B(逻辑加法)65 A70 1 0 0 XF=9A FC=0 FZ=0F=/A(逻辑非运算)移位运算65 A70 1 0 1XF=CA FC=0 FZ=0F=A不带进位循环右移B(取低三位)位65 A70 1 1 00F=32 FC=0 FZ=0F=A 逻辑右移一位65 A71F=B2
9、FC=1 FZ=0F=A 带进位循环右移一位65 A70 1 1 10F=CA FC=1 FZ=0F=A 逻辑左移一位65 A71 F=CA FC=0 FZ=0F=A 带进位循环左移一位算术运算65 A71 0 0 0XF=65 FC=0 FZ=0置FC=CN65 A71 0 0 1XF=0C FC=1 FZ=0F=A加B65 A71 0 1 0(FC=0)XF=0C FC=1 FZ=0F=A加B加FC65 A71 0 1 0(FC=1)F=0D FC=1 FZ=065 A71 0 1 1F=BE FC=1 FZ=0F=A减B65 A71 1 0 0F=64 FC=0 FZ=0F=A减165
10、A71 1 0 1F=66 FC=0 FZ=0F=A加1五、实验中遇到的问题以及解决办法在算术运算中,在进行1010运算时,不知道如何控制FC的值。解决办法:使用1000运算对FC赋值,问题解决。六、实验体会本次实验内容比较简单也很容易理解,从整体上对运算器有了基本认知。通过简单地操作以及观察电脑的数据通路图对运算器的运作有了整体的了解。实验二 微程序控制器一、实验目的1. 掌握微程序控制器的组成原理。2. 掌握微程序的编制、写入,观察微程序的运行过程。二、实验设备PC机一台,TD-CMA实验系统一套三、实验原理1. 微程序控制器原理框图(思考题)各部分作用:(1) 控制存储器:用来存放实现全
11、部指令系统的微程序,是一种只读型存储器(即只读不写)。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令(2) 微指令寄存器(微地址寄存器和微命令寄存器):微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。(3) 地址转移逻辑:在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支
12、时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段P和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。(4) OP:指令的操作码,表示该指令应进行什么性质的操作。2.微指令的格式及编码方法微指令的格式大体分成两类:水平型微指令和垂直型微指令。(1) 水平型微指令一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。水瓶微指令的一般格式如下:控制字段判别测试字段下地址字段(2) 垂直型微指令微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。下面用4条垂
13、直型微指令的微指令格式加以说明。设微指令字长为16位,微操作码3位。寄存器-寄存器传送型微指令。15 13 12 8 7 3 2 0 000源寄存器编址目标寄存器编址其他功能是把源寄存器数据送目标寄存器。运算控制型微指令。15 13 12 8 7 3 2 0 001左输入源编址右输入源编址ALU其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。访问主存微指令。15 13 12 8 7 3 2 1 0 010寄存器编址存储器编址读写其他其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。条件转移微指令。15 13 12
14、 4 3 0011D测试条件其功能是根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。3.微指令的编码方法(1)直接表示法 微指令结构如下图。特点是操作控制字段中的每一位表示一个微命令。(2)编码表示法微指令结构图如下。编码表示法是把一组相斥性的微命令信号组成一个小组(即一个字段),然后通过小组(字段)译码器对每一个微命令信号进行译码,译码输出作为操作控制信号。(3)混合表示法这种方法是把直接表示法与字段编码法混合使用,以便能综合考虑微指令字长、灵活性、执行微程序速度等方面的要求。4.微程序控制器与计算器的数据通路图中MA5MA0为6位的后续微地址,SE5.SE0是
15、微控器单元微地址锁存器的强制端输出MCR表示控制字段 NMA表示P字段IN为输入单元 OUT为输出单元左图为微程序的相关指令流程图。由于微程序控制器的数据通路走向已有箭头标出,不再进行详细解释。对运算器数据通路的解释:IN微指令0010 0000:IN单元载入数据,将数据置入R0暂存器。ADD微指令0000 0000:将R0打入A,R0打入B后,A和B相加(通过ALU算术逻辑单元)后,打入RO。OUT微指令0011 0000:将RO打入OUT单元。HLT微指令0101 0000:停机。四、实验内容1. 按照实验指导书连接好实验线路。2对微控器进行读写操作,分两种。1)手动读写(1)手动对微控器
16、进行编程(写)1. 按图所示连接实验线路,仔细查线无误后接通电源。如果有滴报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。1) 手动读写 (1) 手动对微控器进行编程(写) 将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为控存档,KK5置为置数档。 使用CON单元的SD05SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。 将时序与操作台单元的开关KK5置为加1档。 IN单元给出中8位应写入的数据,连续两次按动时序与操作台的
17、开关ST,将IN单元的数据写到该单元的中8位。IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。 重复、四步,将表3-2-2的微代码写入2816芯片中。(2) 手动对微控器进行校验(读) 将时序与操作台单元的开关KK1置为停止档,KK3置为校验档,KK4置为控存档,KK5置为置数档。 使用CON单元的SD05SD00给出微地址,连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯 M7M0显示该单元的低8位。 将时序与操作台单元的开关KK5置为加1档。 连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯 M15M8显示该单元的
18、中8位,MC单元的指数据指示灯 M23M16显示该单元的高8位。 重复、四步,完成对微代码的校验。如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。2) 联机读写用联机软件的“【转储】【装载】”功能将该格式(*.TXT)文件装载入实验系统。装入过程中,在软件的输出区的结果栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。; /*/; / /; / 微控器实验指令文件 /; / /; / By TangDu CO.,LTD /; / /; /*/; /* Start Of MicroController Data */ $M 00 000001 ;
19、NOP $M 01 007070 ; CON(INS)->IR, P<1> $M 04 002405 ; R0->B $M 05 04B201 ; A加B->R0 $M 30 001404 ; R0->A $M 32 183001 ; IN->R0 $M 33 280401 ; R0->OUT $M 35 000035 ; NOP; /* End Of MicroController Data */3. 运行微程序运行时也分两种情况:本机运行和联机运行。1) 本机运行 将时序与操作台单元的开关KK1、KK3置为运行档,按动CON单元的CLR按钮,
20、将微地址寄存器(MAR)清零,同时也将指令寄存器(IR)、ALU单元的暂存器A和暂存器B清零。 将时序与操作台单元的开关KK2置为单拍档,然后按动ST按钮,体会系统在T1、 T2、T3、T4节拍中各做的工作。T2节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;T3、T4节拍根据T2节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。 按动CON单元的CLR按钮,清微地址寄存器(MAR)等,并将时序与单元的开关KK2置为
21、单步档。 置IN单元数据为00100011,按动ST按钮,当MC单元后续微地址显示为000001时,在CON单元的SD27SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微地址显示为000001时,说明当前指令已执行完;在CON单元的SD27SD20给出ADD指令00000000,该指令将会在下个T3被打入指令寄存器(IR),它将R0中的数据和其自身相加后送R0;接下来在CON单元的SD27SD20给出OUT指令00110000并继续单步执行,在MC单元后续微地址显示为000001时,观查OUT单元的显示值是否为01000110。2) 联机运行联机运行时,进入软件界面,在
22、菜单上选择【实验】【微控器实验】,打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图3-2-8所示。将时序与操作台单元的开关KK1、KK3置为运行档,按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的MAR)为000001时,置CON单元SD27SD20,产生相应的机器指令,该指令将会在下个T3被打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。按本机运行的顺序给出数据和指令,观查最
23、后的运算结果是否正确。运行过程:CON单元SD27.SD20给出微指令,而后IN单元输入数据。首先IN单元数据打入R0(微指令0010 0000),将R0打入A,R0打入B后,A和B相加(通过ALU算术逻辑单元)后,打入RO(微指令0000 0000),将RO打入OUT单元(微指令0011 0000)。实验结果:OUT单元的显示值为01000110与实验一的区别:两者有交叉的部分,但实验一主要是使用运算器,通过手动控制的情况下,输入命令实现了逻辑运算、算术运算、移位运算,而实验二主要是在使用微程序控制器的情况下,通过存储微指令而后输入微指令实现微程序控制运算的进行,而微指令中又是通过地址寻找下
24、一个微指令以此进行下去。但本实验中只实现了算术运算(R0+R0)。微指令和机器指令的关系:第一, 一条机器指令对应一个微程序,这个微程序是由若干条微指令序列组成的。因此,一条机器指令的功能是由若干条微指令组成的序列来实现的。简言之,一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行。第二, 从指令与微指令,程序与微程序,地址与微地址的一一对应关系来看,前者与内存储器有关,后者与控制存储器有关。与此相关,也有相对应的硬设备。第三, 每一个CPU周期(从内存读取一条指令字的最短时间)对应一条微指令。五、实验中遇到的问题以及解决办法在输入完成后,运行的过程中译码器无法正确译码,
25、操作一直都是ADD指令。原因:接线错误,写微地址的SE5.SE0无法取出正确的微地址以及判别标志p1接线错误,无法实现地址转移。 解决方法:修正接线。六、实验体会 本次实验相比较上次实验而言有一定的难度,本次实验对我最大的启发是细节的重要性,只有正确的接线,才有可能做出正确的结果。以后在接线过程中一定要细心再细心,对每一条线都认真核对。实验三 CPU与简单模型机实验一、实验目的1. 掌握一个简单CPU的组成原理。2. 在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。3. 为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。二、实验设备PC机一台,TD-CMA实验系统一
26、套。三、实验原理1.基本CPU构成原理图如下:工作原理:PC程序计数器装入指令地址,PC程序计数器中取出地址,读出命令而后放入指令寄存器IR,指令寄存器IR中的操作码OP被译码,取指周期结束。而后控制器发出指令开始使其运作。2.CPU的数据通路图3.指令周期流程图 4. 与实验二的区别指令上来说,增加了一条JMP指令,跳转指令。增加了三个部件:PC程序计数器、MEM主存、AR寄存器,用来完成实验二的手动输入指令的过程。实验二是手动输入指令,而实验三则是由cpu代替人手实现输入指令的过程。5. 指令格式一条指令的结构的表示:操作字段OP地址码字段A地址码:三地址指令 OP码A1A2A3二地址指令
27、OP码A1A2 一地址指令OP码A 零地址指令OP码二地址指令:从操作数的物理位置来说,分为存储器存储器(SS)型指令,寄存器-寄存器(RR)型指令,寄存器-存储器(RS)型指令。四、实验内容1.写入实验程序,并进行校验,可用手动或联机写入。 (1)手动写入或校验 1)手动写入微程序 将开关KK1置为“停止”,KK3置“编程”,KK4置“控存”,KK5置为“置 数”挡; 使用CON单元的SD5SD0给出微地址,IN单元给出低8
28、位应写入的数 据,连续两次按动开关ST,将IN单元的数据写到该单元的低8位; 开关KK5置为“加1”挡; IN单元给出低8位应写入的数据,连续两次按动开关ST,将IN单元的 数据写到该单元的中8位;IN单元给出低8位应写入的数据,连续两 次按动开关ST,将IN单元的数据写到该单元的高8位; 重复、四步,将表5-1-2的微代码写入EPROM2816芯片。 2)手动检验微程序
29、将KK1置为“停止”,KK3置为“校验”,KK4置为“控存”,KK5置为“置 数” 使用CON单元的SD05SD00给出微地址,连续两次按动开关ST,MC单元的数据指示灯M7M0显示该单元的低8位; 将开关KK5置为“加1”挡; 连续两次按动开关ST,MC单元的数据指示灯M15M8显示该单元的中8 位;MC单元的数据指示
30、灯M23M16显示该单元的高8位; 重复、四步,完成对微代码的校验。 3)手动写入机器指令程序 将KK1置为“停止”,KK3置为“校验”,KK4置为“主存”,KK5置为“置 数” 使用CON单元的SD05SD00给出地址,IN单元给出该单元应写入的数据, 连续两次按动开关ST,将IN单元的数据写到该存储器单元; 开关KK5置为“加1”挡; IN单元给出下一个地址
31、(地址自动加1)应写入的数据,连续两次按动 开关ST,将IN单元的数据写到该存储器单元中;然后地址会又加1, 只需在IN单元输入后续地址(地址自动加1)应写入的数据,连续两 次按动开关ST,即可完成对该单元的写入。 亦可、两步,将所有机器指令写入主存芯片中。 4)手动校验机器指令程序 将KK1置为“停止”,KK3为“校验”,KK4为“主存”,KK5为“置数” 使用CON单元的SD07
32、SD00给出地址,连续两次按动开关ST,CPU内总 线的数据指示灯D7D0显示该单元的数据; 开关KK5置为“加1”挡; 连续两次按动开关ST,地址自动加1,CPU内总线的数据指示灯D7D0 显示该单元的数据;此后每两次按动开关ST,地址自动加1,CPU内总 &
33、#160; 线的数据指示灯D7D0显示该单元的数据,继续进行该操作,直至完成 校验。(2)联机写入和校验 选择联机软件的“转储装载”功能,在打开文件对话框中选择相关文件,软件自动将机器指令程序和微程序写入指定单元。 选择联机软件的“转储刷新指令区”功能,可以读出下位机所有的机器指令和微指令,并在指令区显示。对照文件检查微程序和机器指令程序是否正确。将开关KK1、KK3置为“运行”档,按动CON单元的总清开关CLR,将使PC、AR和微程序地址为00H,程序可以从
34、头开始运行,暂存器A,B,指令寄存器IR和OUT单元也会被清零。 将KK2置为“单步”档,每按动一次ST按钮,即可单步运行一条微指令,对照微程序流程图,观察微地址显示灯是否和流程一致。每运行完一条微指令,观察一次CPU内总线和地址总线.实验线路图:实验结果:(IN单元输入值是7转换成二进制00000111)输出结果(OUT单元)是14(二进制00001110)数据通路图如下: IN单元:输入数据的单元,用来输入数据。OUT单元:输出数据的单元,经过一系列命令运作后的结果将从这里输出。MEM:主存储器,简称主存,是计算机系统的系统的主要存储器,用来存放指令和数据。AR:数据地址寄存器,
35、用来保存当前CPU所访问的数据cache存储器中(简称数存)单元的地址。由于要对存储器阵列进行地址译码,所以必须要使用地址寄存器来保持地址信息,直到一次读/写操作完成为此。PC:程序计数器,用于存放指令的地址,使程序能够连续地执行下去。但遇到JMP指令时,后续指令的地址(即PC的内容)必须从指令寄存器中的地址字段取得。在这种情况下,下一条从指存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。IR:指令寄存器,用来保存当前正在执行的一条指令。控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制
36、器的主要功能有:(1) 从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置。(2) 对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。比如一次数据cache的读/写操作,一个算术逻辑运算操作,或一个输入/输出操作。(3) 指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向。运算器:由算术逻辑单元(ALU),通用寄存器(R0),用来暂存由数据总线或通用寄存器送来的操作数,并把它作为另一个操作数。主要功能:(1) 执行所有的算术运算。(2) 执行所有的逻辑运算,并进行逻辑测试。R0:通用寄存器,功能是:当算术逻辑单元(ALU)执行算术或逻辑运
37、算时,为ALU提供一个工作区。A和B:暂存器,用于保存操作数。工作流程:从PC中取出第一条指令的地址,从主存中取出该地址相对应的指令并装入指令寄存器,PC内容加1,为取下一条指令做准备。(取指过程)IN单元输入数据,而后控制器将指令译码,并发出控制指令,控制指令的运行。(执行过程)附:指令内容及地址地 址 内 容 助记符 说 明 00000000 00100000 ; START: IN R0 从IN单元读入数据送R0 00000001 00000000 ; ADD R0,R0 R0和自身相加,结果送R0 00000010 00110000 ; OUT R0 R0的值送OUT单元显示 0000
38、0011 11100000 ; JMP START 跳转至00H地址 00000100 00000000 ; 00000101 01010000 ; HLT 停机 注意在地址00000011中的指令JMP是跳转指令,此时指令跳转到00而不是继续向该地址加1的地址执行。五、实验中遇到的问题及解决办法遇到的问题:数据通路中数据的走向不正确解决办法:重新连线,重新调试。六、实验体会本次实验虽然接线上相比第二次要复杂一些,但是通过实验上的操作,充分理解了微指令的取值过程以及执行过程,对整体的流程有了更深刻、更完整的了解,在接线上也有了更强的动手能力和排错能力,在以后的实验中要更加注重理论与实践的结合,
39、将理论应用于实践,从实践中加深对理论的理解。实验四 复杂模型机设计实验一、实验目的综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。二、实验设备PC机一台,TD-CMA实验系统一套。三、实验原理1. CPU组成原理及工作原理Cpu模型如上CPU的功能CPU的基本功能如下。 程序控制:CPU通过执行指令来控制程序的执行顺序。 操作控制:一条指令功能的实现需要若干操作信号来完成,CPU产生每条指令的操作信号并将操作信号送往不同的部件,控制相应的部件按指令的功能要求进行操作。 时间控制:CPU对各种操作进行时间上的控制。 数据处理:CPU对数据进行算术运算及逻辑运算等方式进行加工处理。CP
40、U的基本组成部件控制器:由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制器的主要功能有:(1) 从指令cache中取出一条指令,并指出下一条指令在指令cache中的位置。(2) 对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。比如一次数据cache的读/写操作,一个算术逻辑运算操作,或一个输入/输出操作。(3)指挥并控制CPU、数据cache和输入/输出设备之间数据流动的方向。运算器:由算术逻辑单元(ALU),通用寄存器(R0),用来暂存由数据总线或通用寄存器送来的操作数,并把它作为另一
41、个操作数。主要功能:(1) 执行所有的算术运算。(2) 执行所有的逻辑运算,并进行逻辑测试。2. CPU的数据通路图3.相关指令的指令周期流程图4.与实验三的区别(1) 增加了机器指令,通过不同的寻址方式执行机器指令。(2) 增加了很多微指令。(3) 增加了寄存器,采用二四译码的方式选择不同寄存器。(4) 8253和8259构成输入输出接口单元。(5) 执行的指令不同,该实验用于完成1+2+X的累加和。5.指令格式(1)微指令格式(2)机器指令格式(3)寻址方式说明(4)指令描述(5)指令代码:根据要求可以得到如下程序,地址和内容均为二进制数。 地 址 内 容 助记符 说 明 00000000
42、 00100000 ; START: IN R0,00H 从IN单元读入计数初值 00000001 00000000 00000010 01100001 ; LDI R1,0FH 立即数0FH送R1 00000011 00001111 00000100 00010100 ; AND R0,R1 得到R0低四位 00000101 01100001 ; LDI R1,00H 装入和初值00H 00000110 00000000 00000111 11110000 ; BZC RESULT 计数值为0则跳转 00001000 00010110 00001001 01100010 ; LDI R2,6
43、0H 读入数据始地址 00001010 01100000 00001011 11001011 ; LOOP: LAD R3,RI,00H 从MEM读入数据送R3, 变址寻址,偏移量为00H 00001100 00000000 00001101 00001101 ; ADD R1,R3 累加求和 00001110 01110010 ; INC R2 变址寄存加1,指向下一数据 00001111 01100011 ; LDI R3,01H 装入比较值 00010000 00000001 00010001 10001100 ; SUB R0,R3 00010010 11110000 ; BZC RE
44、SULT 相减为0,表示求和完毕 00010011 00010110 00010100 11100000 ; JMP LOOP 未完则继续 00010101 00001011 00010110 11010001 ; RESULT: STA 70H,R1 和存于MEM的70H单元 00010111 01110000 00011000 00110100 ; OUT 40H,R1 和在OUT单元显示 00011001 01000000 00011010 11100000 ; JMP START 跳转至START 00011011 00000000 00011100 01010000 ; HLT 停机
45、 01100000 00000001 ; 数据 01100001 00000010 01100010 00000011 01100011 00000100 01100100 00000101 01100101 00000110 01100110 00000111 01100111 00001000 01101000 00001001 01101001 00001010 01101010 00001011 01101011 00001100 01101100 00001101 01101101 00001110 01101110 00001111理解:以下以一个指令说明$P 0B CB ;LOO
46、P:LAD R3,RI,OOH 从MEM读入数据,采用变址寻址的方式,以RI里的数据为基础(在这里是R2)加上偏移量00H,寻找地址。R2中的数据由该命令可知: $P 09 62 ;LDI R2,60H则地址就是60$P 60 01 则60地址的数据被01,故读入的数据为01,并将01送入R3中。四、实验内容(一)实验步骤1. 按图5-3-6连接实验线路,仔细检查接线后打开实验箱电源。 2. 写入实验程序,并进行校验,分两种方式,手动写入和联机写入。 1) 手动写入和校验 (1) 手动写入微程序 将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为控存档,KK5置为置数档。
47、使用CON单元的SD05SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。 将时序与操作台单元的开关KK5置为加1档。 IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位。IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。 重复、四步,将表5-3-5的微代码写入2816芯片中。 (2) 手动校验微程序 将时序与操作台单元的开关KK1置为停止档,KK3置为校验档,KK4置为控存档,KK5置为置数档。 使用CON单元的S
48、D05SD00给出微地址,连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯 M7M0显示该单元的低8位。 将时序与操作台单元的开关KK5置为加1档。 连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯 M15M8显示该单元的中8位,MC单元的指数据指示灯 M23M16显示该单元的高8位。 重复、四步,完成对微代码的校验。如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。 (5) 手动写入机器程序 将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为主存档,KK5置为置数档。 使用CON单元的SD7SD0给出地址,IN单元给出该单元应写入
49、的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该存储器单元。 将时序与操作台单元的开关KK5置为加1档。 IN单元给出下一地址(地址自动加1)应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元中。然后地址会又自加1,只需在IN单元输入后续地址的数据,连续两次按动时序与操作台的开关ST,即可完成对该单元的写入。 亦可重复、两步,将所有机器指令写入主存芯片中。 (6) 手动校验机器程序 将时序与操作台单元的开关KK1置为停止档,KK3置为校验档,KK4置为主存档,KK5置为置数档。 使用CON单元的SD7SD0给出地址,连续两次按动时序与操作台的开关ST
50、,CPU内总线的指数据指示灯 D7D0显示该单元的数据。 将时序与操作台单元的开关KK5置为加1档。 连续两次按动时序与操作台的开关ST,地址自动加1,CPU内总线的指数据指示灯 D7D0显示该单元的数据。此后每两次按动时序与操作台的开关ST,地址自动加1,CPU内总线的指数据指示灯 D7D0显示该单元的数据,继续进行该操作,直至完成校验,如发现错误,则返回写入,然后校验,直至确认输入的所有指令准确无误。 亦可重复、两步,完成对指令码的校验。如果校验出指令码写入错误,重新写入、校验,直至确认指令的输入无误为止。 2) 联机写入和校验 联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序
51、和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT为后缀的文件中,本次实验程序如下,程序中分号;为注释符,分号后面的内容在下载时将被忽略掉。【实验线路图】; /* / ; / / ; / 复杂模型机实验指令文件 / ; / / ; / By TangDu CO.,LTD / ; / / ; /* / ; /* Start Of Main Memory Data * / (解释: $P的后面两位十六进制是地址,而第三位和第四位十六进制则是该地址的内容,在解读时可将十六进制化为二进制进行解读。) $P 00 20 ; START: IN R0,00H 从IN单元读入计数初值 $P 01 00 $P 02 61 ; LDI R1,0FH 立即数0FH送R1 $P 03 0F $P 04 14 ; AND R0,R1 得到R0低四位 $P 05 61 ; LDI R1,00H 装入和初值00H $P 06 00 $P 07 F0 ; BZC RESULT 计数值为0则跳转 $P 08 16 $P 09 62 ; LD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国奶茶产品市场规模分析及投资前景规划研究报告
- 2024-2030年中国大口徑HDPE水管项目投资风险分析报告
- 2024-2030年中国商品防伪标签市场竞争状况及投资趋势分析报告
- 2024-2030年中国印刷滚筒抹布资金申请报告
- 2024年水利水电施工环保责任承诺书3篇
- 2024年度图书印刷与网络销售渠道合作合同2篇
- 2024年版车位独家销售代理协议版B版
- 眉山药科职业学院《生物化学(B类)》2023-2024学年第一学期期末试卷
- 2024年生物科技研究与发展合同
- 专业知识 电视新闻采访与编辑中同期声的技巧
- 气相色谱检测器FID-培训讲解课件
- 新教材人教A版高中数学选择性必修第一册全册教学课件
- 《HSK标准教程1》-HSK1-L8课件
- 幼儿园小班绘本:《藏在哪里了》 课件
- 上册外研社六年级英语复习教案
- 替班换班登记表
- 社会保险法 课件
- 阿利的红斗篷 完整版课件PPT
- 桥梁工程挡土墙施工
- 供应商质量问题处理流程范文
- 实验室生物安全手册(完整版)资料
评论
0/150
提交评论