- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LC-3结构状态图简化与修改
LC-3 结构状态图的简化与修改
状态图修改 与 微操作流程表的 对应关系
说明:
1)状态图简化修改原则:能在一个状态(周期)完成的微操作,尽量在合在一起。
图中,去除 数据寄存器MDR,设暂存器TMP、地址总线MA、数据总线MD。
2)凡访问存贮器时:
读--要发读RD;写--数据输出允许WC,写命令WE。并去除等待状态Ready(SRAM),且
地址为寄存器类输出,不经地址寄存器MAR(可少用一个CLK):地址需计算(加)输出经MAR输出,这是为为减小周期时间,保证地址信号完整性。
3)有关中断(原文请求是INTV)
中断请求(外)本设计仅一个,所以无优先级问题。也不设置中断允许屏蔽寄存器。
但非法指令异常优先于外中断。且两者矢量均固定设置。不用设计查找表。
irq_r----外部请求IRQ的立即保存请求寄存器,否则会丢失外请求,IRQ可↑沿或↓沿或高电平或低电平有效,本设计简化为↑沿有效。置“1”int_r同时清“0” irq_r。
int_r----中断标志寄存器,中断响应 通常在指令的结束周期(非取指令时),图中现已改为:
凡 To 18 均改成判别int_r,若Int_r=1 转入中断隐操作首周期T4,否则转取指令T0;
int_flag ----中断响应标志寄存器,Int_r必须在中断隐操作结束时清“0”。RTI时清“0” int_flag
EXC----非法指令none异常标志寄存器
注意:设计多级中断时,外部请求IRQ[ ]的↑/↓/1/0 有效控制寄存器(用存贮I/O空间的一个单元)→ irq[ ] →r int_r[ ]→int_flag[ ]逻辑、中断允许屏蔽与送到PSR的优先级设置寄存器(均用存贮I/O空间的一个单元)、优先级与中断允许嵌套判别及其嵌套逐级RTI返回清“0” int_flag[?]次序逻辑、矢量查找表(Int_r[]作地址,输出矢量地址)等都要设计。
详见《计算机原理》CPU部件实验的6.中断系统及其硬堆栈 设计
4)有关堆栈:实际使用通用寄存器R6作栈指针,原图中SP均改为R6。不用操作系统时,也不分特权指针SP和用户指正SSP,也无需分别保护。
据设计要求与实际情况,LC-3结构图修改如下:
图中,MD即MD[15:0], MA即MA[15:0], 增设暂存器TMP,
有的选择电路图内空间限制等未绘出,但已注明。
三态门,因FPGA仅引脚处有三态门而内部没有,所以原地址选择用三态门均去除。
改为多选择电路,数据输出必须用三态门,合为一处(经选择电路后)。
完整图中修改(未绘出)同 图C-3(即前图), 处是据设计要求和实际情况简化或取消
AA
set CC即置状态寄存器
N----负数
P-----正数
Z-----数或运算结果=“0”
VFp—正溢
VFn---负溢
T0
T1
int_r=?
to T4
左边指令均同
见下图
0
1
AA
发RD
JSRR
MA←MAR
凡圈连到的状态,现合为一个周期状态Ti
JSR
MA←TMP
MA←MAR
均组合逻辑
发RD
TMP
R7←PC
MA←TMP
TMP←MD
TMP←MD
T1
T1
T1
MA←TMP
均
发RD
T2
均
发WC
WE
T1
T3
T2
MA←MAR
T2
MA←MAR
T1
T1
T1
T3
T1
T1
T1
T3
T1
MA←MAR
TMP←MD
T1
发RD
T1
T2
新加
VFp
VFn
MA←MAR
检测程序用
TRAP 10
MA←TMP
MA←R6
MD←PSR
T1
int_r=1: 检测用
x0184 or x0040
EXC=1:
x0104 or x0044
相应服务程序指针,在主程序里已存入这两个单元
发RD
T0
中断进入前期 隐操作 如下:
当发生外部中断时:
⑴ 在IRQ的↑置“1”中断请求暂存器irq_r。
⑵ 在irq_r=1后的第一个CLK↑:
置“1”中断标志寄存器int_r,并清irq_r,
置PM=0。
⑶ 在指令的结束周期,若非none码,且int_r=1,置“1”中断响应标志寄存器int_flag,转隐操作首周期 T4。
1
0
每条指令
结束周期
Int_r=?
(To 18)
非取指令时响应中断,取消PC-1
保护PSR
TMP←MD
MA←R6
发WC
文档评论(0)