操作系统课程设计.doc_第1页
操作系统课程设计.doc_第2页
操作系统课程设计.doc_第3页
操作系统课程设计.doc_第4页
操作系统课程设计.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳理工大学课程设计专用纸 no26目录一、实验计算机的设计11整机逻辑框图设计12指令系统的设计23微操作控制部件的设计33.1微指令编码的格式设计33.2微操作控制信号设计43.3微程序顺序控制方式设计53.4微程序设计104设计组装实验计算机接线表185编写调试程序19二、实验计算机的组装19三、实验计算机的调试231调试前准备232程序调试过程253调试结果25参考资料26一、实验计算机的设计1整机逻辑框图设计 图1-1 模型机结构框图2指令系统的设计指令格式:1) 算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址。其格式如下:7 6 5 43 21 0op-codersrd其中op-code为操作码,rs为源寄存器,rd为目的寄存器,并规定:rs或rd选定寄存器00r001r110r29条算术逻辑指令的名称、功能和具体格式见表2-12) 访问及转移指令设定有2条访问指令,即存数(sta)、取数(lda),2条转移指令,即无条件转移(jmp)、结果为零或有进位转移指令(bzc),指令格式如下7 65 43 21 000mop-coderdd其中op-code为操作码,rd为目的寄存器地址(lda、sta指令使用)。d为位移量(正负均可),m为寻址模式,其定义如下:寻址模式m有效地址e说明00011011e=de=(d)e=(r1)+de=(pc)+d直接寻址间接寻址ri变址寻址相对寻址规定变址寄存器ri指定为寄存器r2。3) i/o指令输入(in)和输出(out)指令采用单字节指令,其格式如下:7 6 5 43 21 0op-codeaddrrd其中addr=01时,选中“数据输入电路”中的开关组作为输入设备,addr=10时,选择“输出显示电路”中的数码管作为输出设备。4) 停机指令指令格式如下:7 6 5 43 21 0op-code0000halt指令,用于实现停机操作。指令系统:本机共有16条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令4条。输入输出指令2条,其他指令1条。表2-1列出了各条指令的格式、汇编符号和指令功能。汇编符号指令格式功能clr rdmov rs,rdadc rs,rdsbc rs,rdinc rdand rs,rdcom rdrrc rs,rdrlc rs,rd0111 00 rd1000 rs rd1001 rs rd1010 rs rd1011 rs rd1100 rs rd1101 rs rd1110 rs rd1111 rs rd0-rdrs-rdrs+rd+cy-rdrs-rd-cy-rdrd+1-rdrsrd-rdrd-rdrd逻辑右移rd逻辑左移lda m,d,rdsta m,d,rdjmp m,dbzc m,d00 m 00 rdd00 m 01 rdd00 m 10 00d00 m 11 00de-rsrd-ee-pc当cy=1或z=1时,e-pcin addr,rdout addr,rd0100 01 rd0101 10 rdaddr-rdrd-addrhalt停机表2-13微操作控制部件的设计3.1微指令编码的格式设计本系统设计的微程序字长共24位,其控制位顺序如下:24232221201918171615 14 1312 11 109 8 7654321s3s2s1s0mcnwe1a1bf1f2f3ua5ua4ua3ua2ua1ua03.2微操作控制信号设计微指令编码中前18位为操作控制字段和测试字段。ua5-ua0为6位的下地址字段微地址。微指令中个控制位的含义如下:s3、s2、s1、s0、m、cn是控制运算器的逻辑和算术运算的微命令。s3、s2、s1、s0、m、cn组合功能表(其中符号“+”表示逻辑“或”运算,符号“*”表示逻辑“与”运算,符号“/”表示逻辑“非”运算,符号“加”表示算术加运算,符号“减”表示算术减运算):选择m=1逻辑操作m=0 算术操作s3 s2 s1 s0cn=1(无进位)cn=0(有进位)0 0 0 0 f=/af=af=a加10 0 0 1f=/(a+b)f=a+bf=(a+b)加10 0 1 0f=/a*bf=a+/bf=(a+/b)加10 1 0 0f=/(a*b)f=a加a*/bf=a加a*/b加10 1 0 1f=/bf=(a+b)加a*/bf=(a+b)加a*/b加10 1 1 0f=(/a*b+a*/b)f=a减b减1f=a减b0 1 1 1f=a*/bf=a*/b减1f=a*/b1 0 0 0f=/a+bf=a加a*bf=a加a*b加11 0 0 1f=/(/a*b+a*/b)f=a加bf=a加b加11 0 1 0f=bf=(a+/b)加a*bf=(a+/b)加a*b加11 0 1 1f=a*bf=a*b减1f=a*b1 1 0 0f=1f=a加af=a加a加11 1 0 1f=a+/bf=(a+b)加af=(a+b)加a加10 0 1 1f=0f=减1(2的补)f=01 1 1 0f=a+bf=(a+/b)加af=(a+/b)加a加11 1 1 1f=af=a减1f=awe是写内存的微命令,状态“1”有效。1a、1b是输入电路选通、内存ram选通、输出led选通控制微命令,分别对应状态“11”、“10”、“01”。 状态“00”为无效。f1、f2、f3为三个译码字段,分别由三个控制位经指令译码电路74138译码输出8种状态,前7种状态分别对应一组互斥性微命令中的一个,状态“111”为无效。f3字段包含p1- p4四个测试字位。其功能是根据机器指令代码及相应微指令代码进行译码测试,使微程序转入相应的微地址入囗,从而实现微程序的顺序、分支、循环运行。、三个字段的编码方案如下表。 f1字段 f2字段 f3字段15 14 13 选择12 11 10选择9 8 7选择0 0 0 ldri0 0 0 rag0 0 0 p10 0 1load0 0 1alu-g0 0 1ar0 1 0 ldr20 1 0 rcg0 1 0 p30 1 1 0 1 1 0 1 1 1 0 0ldr11 0 0rbg1 0 0p21 0 1 lar1 0 1 pc-g1 0 1 lpc1 1 0ldir1 1 0299g1 1 0p4 其中微命令ldri表示写寄存器操作。微命令load表示程序计数器pc写操作。微命令ldr2表示数据暂存器lt2写操作。微命令ldr1表示数据暂存器lt1写操作。微命令lar表示地址寄存器ar写操作。微命令ldir表示指令寄存器写操作。微命令rag表示源寄存器读操作。微命令alu-g表示运算器输出操作。微命令rcg表示目的寄存器读操作。微命令pc-g表示程序计数器pc读操作。微命令lpc表示程序计数器pc选通操作。微命令299-g表示移位寄存器读写操作。微命令rbg表示变址寄存器读操作。3.3微程序顺序控制方式设计3.3.1微程序控制部件组成原理它主要由控制存储器、微指令寄存器和地址转移逻辑三大部分组成。控制存储器用来存放实现全部指令系统的微程序,它是一种只读存储器。一旦微程序固化,机器运行时则只读不写。其工作过程是:每读出一条微指令,则执行这条微指令;接着又读出下一条微指令,又执行这一条微指令。读出一条微指令并执 行微指令的时间总和称为一个微指令周期。通常,在串行方式的微程序控制器中,微指令周期就是只读存储器的工作周期。控制存储器的字长就是微指令字的长度,其存储容量视机器指令系统而定,即取决于微程序的数量。对控制存储器的要求是速度快,读出周期要短。 微指令寄存器用来存放由控制存储器读出的一条微指令信息。其中微地址寄存器决定将要访问的下一条微指令的地址,而微命令寄存器则保存一条微指令的操作控制字段和判别测试字段的信息。在一般情况下,微指令由控制存储器读出后直接给出下一条微指令的地址,通常我们简称微地址,这个微地址信息就存放在微地址寄存器中。如果微程序不出现分支,那么下一条微指令的地址就直接由微地址寄存器给出。当微程序出现分支时,意味着微程序出现条件转移。在这种情况下,通过判别测试字段p和执行部件的“状态条件”反馈信息,去修改微地址寄存器的内容,并按改好的内容去读下一条微指令。地址转移逻辑就承担自动完成修改微地址的任务。 微程序控制原理图3.3.2微程序入口地址形成方法采用多路转移方式,根据判别测试条件,通过微地址形成电路使微程序转入相应的微地址入口。本系统有3个判别测试位:p4判别测试位是根据指令译码输入ca1、ca2的状态为测试条件,通过修改下地址字段微地址的ma0、ma1位产生3路分支转移,使微程序分别转移到写机器指令、读机器指令、和执行机器指令三种状态的微程序的入口。p1判别测试位是根据指令中的前4位操作码ir7、ir6、ir5、ir4的状态为测试条件,通过修改下地址字段微地址的ma3、ma2、ma1、ma0位产生16路分支转移,使微程序分别转移到in指令、add指令、mov指令、out指令、rrc指令等16条机器指令执行阶段的微程序的入口。p2判别测试位是根据指令中的2位操作码ir3、ir2的状态为测试条件,通过修改下地址字段微地址的ma1、ma0位产生4路分支转移,使微程序分别转移到lda指令、sta指令、bzc指令和jmp指令4条机器指令执行阶段的微程序的入口。3.3.3控存的下地址确定方法微程序顺序控制方式也即微程序执行过程中下一条微指令地址的确定方式。常用的有两种方式:计数增量方式和“下地址场”断定方式。计数增量方式是指微程序在执行过程中,通过微程序控制部件中的微地址计数器mpc增量计数,来产生下一条微指令地址。因此,采用这种方式的微指令格式中可以不设置“下地址场”字段,微程序存储在控存的若干个连续单元中。“下地址场”断定方式是指微程序在执行过程中,通过微程序控制部件中的微地址形成电路,直接接受微指令中“下地址场”字段的信息,来产生下一条微指令地址。因此,采用这种方式的微指令格式中设有“下地址场”字段,一条机器指令所对应的微程序在控存中可以不连续存放。本实验计算机的顺序控制是采用“下地址场”断定方式。无论是在微程序的顺序执行过程中,还是最后一条微指令执行结束之后进入下一条机器指令的取指过程,都是由微指令中“下地址场”字段的微地址,通过微程序控制部件中的微地址形成电路,直接来产生下一条微指令地址。微程序控制部件组成结构示意图如下: 微程序控制信号3.3.4微程序在控存中的分布情况3.4微程序设计3.4.1写出每条指令对应的微程序流程图(1) 输入指令in in指令的微程序流程图(2) 存数指令 sta sta指令直接寻址的微程序流程图 sta指令间接寻址的微程序流程图sta指令相对寻址的微程序流程图(3) 取数指令lda lda指令直接寻址的微程序流程图 lda指令间接寻址的微程序流程图lda指令的微程序流程图(4) 输出指令outout指令的微程序流程图(5) 清零指令clrclr指令的微程序流程图(6) 转移指令jmpjmp指令的微程序流程图3.5.2写出每段微程序中各微指令的二进制编码、16进制编码根据指令执行流程和微指令格式,编写各指令对应的微程序中每条微指令的编码(分别写出2进制和16进制编码)in指令的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010100000000011 000111111000001out指令的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010101000000101111 010111000001clr指令的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010111001111000000 001111000001sta直接寻址的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010000000000000101101 101000011000011000000010 100111111000100000100000000010101111100100000100000000000010 000111111000001100001000000110111100111000001sta间接寻址的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010001000000000 101 101101000101000101000000010101111111000110000110000000010 100111111000111000111000000010 101111 100100000100000000000010 000111111000001100001000000110111100111000001sta相对寻址的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010011000000000 101 101 101100110100110000000010100111111100111100111000000000 010101111101000101000100101000101 100111101001101001100101000100100100100000100000000000010 000111111000001100001000000110111100111000001jmp指令的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010000000000000101101 101000011000011000000010 100111111000100000100000000010 100111111100000100000000000010 000111111000001100010000000010 001 111 101000001lda直接寻址的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010000000000000101101 101000011000011000000010 100111111000100000100000000010101111100100000100000000000010 000111111000001lda间接寻址的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010001000000000 101 101101000101000101000000010101111111000110000110000000010 100111111000111000111000000010 101111 100100000100000000000010 000111111000001lda相对寻址的编码微地址(二进制)s3s2s1 s0 m cn we 1a 1bf1f2f3ua5-ua0000001000000000101101101000010000010000000010 110111111111101111101000000010110111000010000010011000000000 101 101 101100110100110000000010100111111100111100111000000000 010101111101000101000100101000101 100111101001101001100101000100100100100000100000000000010 0001111110000014设计组装实验计算机接线表 5编写调试程序程序:in r0输入数据到r0sta r0,0fh 将r0中的内容存到地址0f中in r0输入数据到r0mov r0,r1 将r0中的内容保存到r1lda 0fh,r2取出地址0f中的内容到r2adc r1,r2 将r1与r2中的内容相加保存在r2中out r2 输出r2中的内容bzc 20h如果z=1,程序跳转到地址20h去执行rrc r2,r0 右移r2,结果保存在r0jmp 30h 跳转到地址30h每条指令所对应的机器码(16进制编码)及在内存中的存放位置:地址(16进制)指令(二进制)指令(16进制)助记符000100010044in r0010000010004sta r0,0fh02000011110f030100010044in r0041000000181mov r0,r1050000001002lda r2,0fh06000011110f071001011096adc r1,r208010110105aout r209000011000cjz 20h0a0010000020rrc r2,r00b11101000e8jmp 30h0c00001000080d0011000030200000000000300000000000二、实验计算机的组装根据各部分的组成,连线步骤如下:r0g-r2g(寄存器堆电路) r0g-r2g(指令寄存器电路) lr0-lr2(寄存器堆电路) lr0-lr2(指令寄存器电路) ir2-ir7(指令寄存器电路) ir2-ir7(指令寄存器电路) io0-io3(指令寄存器电路) io0-io3(指令寄存器电路) ca1(指令寄存器电路)e4(控制总线) ca2(指令寄存器电路)e5(控制总线) y2(i/o控制电路)d-g(输出显示电路) y1(i/o控制电路)ce(主存储器电路) wr(输出显示电路)w/r(读写控制电路) f1-f4(控制总线)t1-t4(读写控制电路) ad7-ad0(地址总线)ma7-ma0(主存储器电路) we(主存储器电路)w/r(读写控制电路) aluj2(运算器电路) bd7-bd0(数据总线) aluj1(运算器电路) bd7-bd0(数据总线) pcj1(程序计数器电路) bd7-bd0(数据总线) rj1(寄存器堆电路) bd7-bd0(数据总线) mc16-mc17(微程序控制器电路)1a-1b(i/o控制电路) 299-g(微程序控制器电路) 299-g(运算器电路) mc24-mc19(微程序控制器电路) s3-cn(运算器电路) ldr1(微程序控制器电路)ldr1(运算器电路) ldr2(微程序控制器电路)ldr2(运算器电路) alu-g(微程序控制器电路)alu-g(运算器电路) ar(微程序控制器电路)ar(运算器电路) pc-g(微程序控制器电路)pc-g(程序计数器电路) load(微程序控制器电路)load(程序计数器电路) lpc(微程序控制器电路)lpc(程序计数器电路) lri(微程序控制器电路)lri(指令译码电路) rag-rcg(微程序控制器电路)rag-rcg(指令译码电路) sa5-sa0(微程序控制器电路)sa5-sa0(指令译码电路) p1-p4(微程序控制器电路)p1-p4(指令译码电路) ldir(微程序控制器电路)ldir(指令寄存器电路) uaj1(微程序控制器电路)c1-c6(控制总线) mc18(微程序控制器电路)we(读写控制电路) lar(微程序控制器电路)lar(地址寄存器电路) d0-d7(输出显示电路) bd7-bd0(数据总线) md7-md0(主存储器电路)bd7-bd0(数据总线) 按照组装图将各接口处用连接线连接起来,连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。实验计算机接线图如下图三、实验计算机的调试1调试前准备1、按照实验指导说明书连接硬件系统 2、启动实验软件,打开实验课题菜单,选中实验课题打开实验课题参数对话窗口:微指令操作时如图3.1图3.1 微指令操作 1) 写:在编辑框中输入实验指导书中的微指令程序(格式:两位八进制微地址+空格+六位十六进制微代码),或直接打开随机附带的程序ex6.msm,将实验箱上的k4k3k2k1拨至“0010”写状态,然后按写入按钮,微程序写入控制存储器电路; 2) 读:将实验箱上的k4k3k2k1拨至“0100”读状态,在“读出微地址”栏中填入两位八进制地址,按读出按钮,则相应的微代码显示在“读出微代码”栏中; 3)保存:按保存按钮,微程序代码保存在一给定文件(*.msm)中; 4)打开:按打开按钮,打开已有的微程序文件,并显示在编辑框中 机器指令操作如图3.2 图3.2 机器指令操作1) 写:在编辑框中输入实验指导书中机器指令程序(格式:两位十六进制地址+空格+2位或4位十六进制代码),或直接打开随机附带的程序ex6.asm,将实验箱上的k4k3k2k1拨至“0101”运行状态,拨动“clr”开关对地址和微地址清零,然后按写入按钮,机器指令写入存储器电路;注:对于8位机,十六进制代码为2位;对于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论