300 likes | 522 Views
计算机组æˆåŽŸç†è¯¾ç¨‹è®¾è®¡. 脱机方å¼ä¸‹å¾®ç è£…å…¥åŠæ‰§è¡Œ. å®žéªŒå… è„±æœºæ–¹å¼ä¸‹å¾®ç è£…å…¥åŠæ‰§è¡Œ. 一〠相关å•å…ƒä»‹ç» Clock Unit, Ins Unit, Manual Unit, Main Control Unit, ALU Unit, Reg Unit, Address Unit, Input/Output Device, Mem Unit. Main Control Unit. ①控制å˜å‚¨å™¨ CM.
E N D
计算机组成原理课程设计 脱机方式下微码装入及执行
实验六 脱机方式下微码装入及执行 • 一、相关单元介绍 Clock Unit, Ins Unit, Manual Unit, Main Control Unit, ALU Unit, Reg Unit, Address Unit, Input/Output Device, Mem Unit
① 控制存储器CM • CM由3片2816(2K×8位)组成,存放24位的微指令。3片2816的高位地址A10~A7均接地,因此,控存的实际容量为128×24位,即可以存放128条微指令。
① 控制存储器CM • 控存的地址端接有7个微地址显示灯,控存的地址 • 可以由微地址锁存器µAR提供(手动“编程PROM”或“校验READ”状态下); • 也可以由后继微地址修改逻辑来提供(“运行RUN”状态下),或者由PC机控制送出(联机状态下)。 • 控存中的24位微码,高16位送微指令寄存器µIR保存并译码,低7位(下址字段)送散转逻辑电路。
② 微地址锁存器µAR • µAR由一片74LS374(8位锁存器)构成,用于锁存手动操作时由开关拨入的微地址MA6~MA0,并提供给控存。 • µAR的输入端以排针的形式引出,标记为MA6~MA0,用以连接手动单元(MANUAL UNIT)的开关;输出端接至控存的地址输入端;但µAR的输出使能OE#则同样由GAL芯片控制产生。
③ 微指令寄存器µIR • 微指令寄存器µIR的功能是存放从控存CM中读出的高16位的微码M23~M8(低7位M6~M0是下址字段,M7为空) • µIR由两片74LS273(8位寄存器)组成的。 • 清零端CLR#接CLR开关,在总清时µIR清零。 • 数据输入端接控存CM的数据I/O端; • 数据输出端,一面以排针M13~M8的形式直接引出,另一面,M23~M14另送微指令译码器进行译码。M23~M0的定义参见3.5.3微指令的格式一节。
④ 微指令译码器 • 微指令译码器由两片74LS138和两片GAL芯片组成,其功能是根据微指令的格式及各字段的定义,将µIR送来的编码字段进行译码,产生全机所需要的各种微操作控制信号,以实现该条微指令功能。
⑤ 控存地址寄存器CMAR • CMAR功能是:由输入信号SE6#~SE0#控制修改当前微指令的下址字段M6~M0(即MA6~MA0),以产生即后继微地址。 • CMAR由四片74LS74(2位带清零预置端的寄存器)和一片74LS245(8位三态缓冲器)连接而成,四片74LS74的清零端均接CLR开关,预置端则分别接自输入信号SE6#~SE0#,因为预置端低电平有效,所以当SEi#=0时,相应的Mi即MAi被置1。
⑤ 控存地址寄存器CMAR • 四片74LS74的输入端接控存CM的数据输出端的最低7位M6~M0,经过预置端SE6#~SE0#的修改,形成输出信号MA6~MA0,连接至三态缓冲器(74LS245)的输入,输出则作为后继微地址送至控存2816的地址输入端,以寻址下条微指令。三态门74LS245的使能信号E#由编程开关的控制电路产生。
⑥ 开关与显示灯 • 微控器单元包含有一组逻辑开关和两组发光二极管显示灯: • 微代码输入开关MK23~MK0:通过三片三态缓冲器74LS245(8位)接在控存的数据总线上,用于手动拨入24位微码。三态门74LS245的DIR接地,即数据传送B到A;其使能信号E# 则由编程开关的控制电路产生,控制三态门的打开和关闭。
⑥ 开关与显示灯 • 微地址输入开关MAK6~MAK0:通过微地址锁存器74LS 374接控存的地址线MA6~MA0。 • 微代码显示灯MD23~MD0:经驱动接控存的数据总线上,用于指示当前读出的微指令的24位微码。 • 微地址显示灯MA6~MA0:经驱动接控存的地址线,用于指示下条微指令的7位微地址(修改过的后继微地址)。
⑦ 编程开关及控制电路 • 微控器单元设有一个编程开关,它有三种状态:PROM(编程)、READ(校验)、RUN(运行)。根据编程开关的状态,控制电路产生本单元中各芯片的控制或使能信号,来实现各种不同的手动和联机操作。 • 编程开关处于编程状态“PROM”时: • 可以实现手动输入微码。 • 编程开关处于校验状态“READ”时: • 可以实现手动校验微码。
⑦ 编程开关及控制电路 • 编程开关处于运行状态“RUN”时: • 可以实现运行微程序。此时,控存执行的是读操作,控存的地址是由后继微地址修改逻辑提供的,控存的数据则一面由24位的微代码显示灯显示输出,一面在时钟控制下送至µIR并译码产生微操作控制信号。
⑦ 编程开关及控制电路 • 因此,在“RUN”状态下 • 微地址锁存器µAR(374)的输出无效(输出使能信号OE#=1) • 微代码输入开关的三态门(245)关闭(使能信号E#=1) • 后续微地址三态门(245)打开(使能信号E#=0) • 控存(2816)读有效(片选CS#=0,输出使能OE#=0,写使能WE#=1)。 • 此时,若启动时序电路,即可从微地址显示灯所指示的微地址开始向下运行。
三、实验原理 • 微控器单元(MAIN CONTROL UNIT)、时序电路单元(CLOCK UNIT)。 • 通过微控器单元中的编程开关(三个状态)来控制实现微码装入、校验、执行。微码装入与校验时的微地址,由手动单元(MANUAL UNIT)的开关拨入(经排线连接)。
四、实验接线 • 时序电路单元(CLOCK UNIT)中的T1~T4信号,必须送至MAIN CONTROL UNIT的T1~T4(通过排线),其它各个单元使用的时序信号T1~T4均已和MAIN CONTROL UNIT的T1~T4连好。
五、实验步骤 • 装入微码。 • 方法一:脱机手工装入。 • 将微控器单元(MAIN CONTROL UNIT)右上角的编程开关置于“PROG”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“STEP”状态。 • 从手动单元(MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。
五、实验步骤 • 从微代码开关MK23~MK0上拨入微代码,24位开关对应着24位显示灯(灯亮表示“1”,灯灭表示“0”)。 • 按动START按键,启动时序,即将24位微代码写入到控存(2816)的相应单元(由微地址MA6~MA0所指定)中。 • 重复步骤①~⑤,即可将微指令代码一条条装入控存。 • 方法二:联机装入。
五、实验步骤 • 校验微码。 • 方法一:手动校验。 • 将编程开关置于“READ”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“STEP”状态。 • 从手动单元(MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。
五、实验步骤 • 按动START按键,启动时序,读出微代码,观察显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”),检查读出的微代码是否与写入的相同。如果不同,则将编程开关重新置于“PROG”状态,再执行操作3,装入正确的微代码即可。 • 重复步骤①~④,即可校验每一条微指令代码。
五、实验步骤 • 执行微程序。 • 方法一:单步运行。 • 将编程开关置于“RUN”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“STEP”状态。
五、实验步骤 • 操作CLR开关(在实验板的右下角),使CLR信号“1→0→1”,从而使微地址MA6~MA0清零,即本机的微程序运行入口为0000000B(00H)。 • 按动START按键,启动时序电路,每按动一次START按键,即读出(执行)一条微指令代码,然后停机。此时,实验台上的微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)指示所读出的微指令的地址和代码。
五、实验步骤 • 执行微程序。 • 方法二:连续运行。 • 将编程开关置于“RUN”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“RUN”状态。 • 操作CLR开关,使CLR信号“1→0→1”,从而使微程序运行入口为00H。 • 按动START按键,启动时序电路,则可以连续读出(执行)微指令代码。 • 片刻之后,将RUN#/STEP开关置于“STEP”状态,即可停机。
六、实验要求 • 1、将微码表中的微代码全部装入控存并校验。 • 2、从零地址开始执行微程序,观察并记录微地址的变化顺序,解释为什么。 • 3、观察微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的最低7位MD6~MD0状态是否始终保持一致?从理论上讲,是否应该这样?分析为什么。 • 4、若要强制使微程序从07H单元开始执行,请结合微控器的结构和原理,说明你的方法,并实现。(提示:使用控制信号SE6#~SE0#来实现)