1 / 30

计算机组成原理课程设计

计算机组成原理课程设计. 脱机方式下微码装入及执行. 实验六 脱机方式下微码装入及执行. 一、 相关单元介绍 Clock Unit, Ins Unit, Manual Unit, Main Control Unit, ALU Unit, Reg Unit, Address Unit, Input/Output Device, Mem Unit. Main Control Unit. ① 控制存储器 CM.

tangia
Download Presentation

计算机组成原理课程设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 计算机组成原理课程设计 脱机方式下微码装入及执行

  2. 实验六 脱机方式下微码装入及执行 • 一、相关单元介绍 Clock Unit, Ins Unit, Manual Unit, Main Control Unit, ALU Unit, Reg Unit, Address Unit, Input/Output Device, Mem Unit

  3. Main Control Unit

  4. ① 控制存储器CM • CM由3片2816(2K×8位)组成,存放24位的微指令。3片2816的高位地址A10~A7均接地,因此,控存的实际容量为128×24位,即可以存放128条微指令。

  5. ① 控制存储器CM • 控存的地址端接有7个微地址显示灯,控存的地址 • 可以由微地址锁存器µAR提供(手动“编程PROM”或“校验READ”状态下); • 也可以由后继微地址修改逻辑来提供(“运行RUN”状态下),或者由PC机控制送出(联机状态下)。 • 控存中的24位微码,高16位送微指令寄存器µIR保存并译码,低7位(下址字段)送散转逻辑电路。

  6. 微控器逻辑框图

  7. ② 微地址锁存器µAR • µAR由一片74LS374(8位锁存器)构成,用于锁存手动操作时由开关拨入的微地址MA6~MA0,并提供给控存。 • µAR的输入端以排针的形式引出,标记为MA6~MA0,用以连接手动单元(MANUAL UNIT)的开关;输出端接至控存的地址输入端;但µAR的输出使能OE#则同样由GAL芯片控制产生。

  8. ③ 微指令寄存器µ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微指令的格式一节。

  9. ④ 微指令译码器 • 微指令译码器由两片74LS138和两片GAL芯片组成,其功能是根据微指令的格式及各字段的定义,将µIR送来的编码字段进行译码,产生全机所需要的各种微操作控制信号,以实现该条微指令功能。

  10. ⑤ 控存地址寄存器CMAR • CMAR功能是:由输入信号SE6#~SE0#控制修改当前微指令的下址字段M6~M0(即MA6~MA0),以产生即后继微地址。 • CMAR由四片74LS74(2位带清零预置端的寄存器)和一片74LS245(8位三态缓冲器)连接而成,四片74LS74的清零端均接CLR开关,预置端则分别接自输入信号SE6#~SE0#,因为预置端低电平有效,所以当SEi#=0时,相应的Mi即MAi被置1。

  11. ⑤ 控存地址寄存器CMAR • 四片74LS74的输入端接控存CM的数据输出端的最低7位M6~M0,经过预置端SE6#~SE0#的修改,形成输出信号MA6~MA0,连接至三态缓冲器(74LS245)的输入,输出则作为后继微地址送至控存2816的地址输入端,以寻址下条微指令。三态门74LS245的使能信号E#由编程开关的控制电路产生。

  12. ⑥ 开关与显示灯 • 微控器单元包含有一组逻辑开关和两组发光二极管显示灯: • 微代码输入开关MK23~MK0:通过三片三态缓冲器74LS245(8位)接在控存的数据总线上,用于手动拨入24位微码。三态门74LS245的DIR接地,即数据传送B到A;其使能信号E# 则由编程开关的控制电路产生,控制三态门的打开和关闭。

  13. ⑥ 开关与显示灯 • 微地址输入开关MAK6~MAK0:通过微地址锁存器74LS 374接控存的地址线MA6~MA0。 • 微代码显示灯MD23~MD0:经驱动接控存的数据总线上,用于指示当前读出的微指令的24位微码。 • 微地址显示灯MA6~MA0:经驱动接控存的地址线,用于指示下条微指令的7位微地址(修改过的后继微地址)。

  14. ⑦ 编程开关及控制电路 • 微控器单元设有一个编程开关,它有三种状态:PROM(编程)、READ(校验)、RUN(运行)。根据编程开关的状态,控制电路产生本单元中各芯片的控制或使能信号,来实现各种不同的手动和联机操作。 • 编程开关处于编程状态“PROM”时: • 可以实现手动输入微码。 • 编程开关处于校验状态“READ”时: • 可以实现手动校验微码。

  15. ⑦ 编程开关及控制电路 • 编程开关处于运行状态“RUN”时: • 可以实现运行微程序。此时,控存执行的是读操作,控存的地址是由后继微地址修改逻辑提供的,控存的数据则一面由24位的微代码显示灯显示输出,一面在时钟控制下送至µIR并译码产生微操作控制信号。

  16. ⑦ 编程开关及控制电路 • 因此,在“RUN”状态下 • 微地址锁存器µAR(374)的输出无效(输出使能信号OE#=1) • 微代码输入开关的三态门(245)关闭(使能信号E#=1) • 后续微地址三态门(245)打开(使能信号E#=0) • 控存(2816)读有效(片选CS#=0,输出使能OE#=0,写使能WE#=1)。 • 此时,若启动时序电路,即可从微地址显示灯所指示的微地址开始向下运行。

  17. 二、微指令格式

  18. 三、实验原理 • 微控器单元(MAIN CONTROL UNIT)、时序电路单元(CLOCK UNIT)。 • 通过微控器单元中的编程开关(三个状态)来控制实现微码装入、校验、执行。微码装入与校验时的微地址,由手动单元(MANUAL UNIT)的开关拨入(经排线连接)。

  19. 四、实验接线 • 时序电路单元(CLOCK UNIT)中的T1~T4信号,必须送至MAIN CONTROL UNIT的T1~T4(通过排线),其它各个单元使用的时序信号T1~T4均已和MAIN CONTROL UNIT的T1~T4连好。

  20. 五、实验步骤 • 装入微码。 • 方法一:脱机手工装入。 • 将微控器单元(MAIN CONTROL UNIT)右上角的编程开关置于“PROG”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“STEP”状态。 • 从手动单元(MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。

  21. 五、实验步骤 • 从微代码开关MK23~MK0上拨入微代码,24位开关对应着24位显示灯(灯亮表示“1”,灯灭表示“0”)。 • 按动START按键,启动时序,即将24位微代码写入到控存(2816)的相应单元(由微地址MA6~MA0所指定)中。 • 重复步骤①~⑤,即可将微指令代码一条条装入控存。 • 方法二:联机装入。

  22. 五、实验步骤 • 校验微码。 • 方法一:手动校验。 • 将编程开关置于“READ”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“STEP”状态。 • 从手动单元(MANUAL UNIT)中的开关“MA6~MA0”上拨入微地址MA6~MA0。

  23. 五、实验步骤 • 按动START按键,启动时序,读出微代码,观察显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”),检查读出的微代码是否与写入的相同。如果不同,则将编程开关重新置于“PROG”状态,再执行操作3,装入正确的微代码即可。 • 重复步骤①~④,即可校验每一条微指令代码。

  24. 五、实验步骤 • 执行微程序。 • 方法一:单步运行。 • 将编程开关置于“RUN”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“STEP”状态。

  25. 五、实验步骤 • 操作CLR开关(在实验板的右下角),使CLR信号“1→0→1”,从而使微地址MA6~MA0清零,即本机的微程序运行入口为0000000B(00H)。 • 按动START按键,启动时序电路,每按动一次START按键,即读出(执行)一条微指令代码,然后停机。此时,实验台上的微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的状态(灯亮表示“1”,灯灭表示“0”)指示所读出的微指令的地址和代码。

  26. 五、实验步骤 • 执行微程序。 • 方法二:连续运行。 • 将编程开关置于“RUN”状态。 • 将时序电路单元(CLOCK UNIT)中的RUN#/STEP开关置于“RUN”状态。 • 操作CLR开关,使CLR信号“1→0→1”,从而使微程序运行入口为00H。 • 按动START按键,启动时序电路,则可以连续读出(执行)微指令代码。 • 片刻之后,将RUN#/STEP开关置于“STEP”状态,即可停机。

  27. 六、实验要求 • 1、将微码表中的微代码全部装入控存并校验。 • 2、从零地址开始执行微程序,观察并记录微地址的变化顺序,解释为什么。 • 3、观察微地址显示灯MA6~MA0和微代码显示灯MD23~MD0的最低7位MD6~MD0状态是否始终保持一致?从理论上讲,是否应该这样?分析为什么。 • 4、若要强制使微程序从07H单元开始执行,请结合微控器的结构和原理,说明你的方法,并实现。(提示:使用控制信号SE6#~SE0#来实现)

More Related