学号 《信息安全系统设计基础》第6周学习总结
教材学习内容总结
实现一个数字系统需要的三个组成部分:计算对位进行操作的函数的组合逻辑、存储位的存储器元素,以及控制存储器元素更新的时钟信号。
Y86异常
状态码Stat代码值总共有4种:
1:AOK,表示程序执行正常
2:HLT,表示处理处执行一条halt指令
3:ADR,表示处理器试图从一个非法存储器地址读或者向一个非法存储器地址写,可能是当取指令的时候,也可能是当读或者写数据的时候。
4:INS,表示遇到了非法的指令代码。
逻辑门是数字电路的基本计算元素,它们的输出,等于它们输入位值的某个布尔函数。
AND用&&表示,OR用||表示,NOT用!表示。
注:逻辑门总是活动的,一个门输入变化了,就会输出相应的变化值。
很多逻辑门组成的网就是组合电路,但构建这些网有两条限制:
1 两个或多个逻辑门的输出不能连接在一起,否则它们可能会使线上的信号矛盾,可能会导致一个不合法的电压或者电路故障。
2 这个网必须是无环的,因为有环会导致网络计算函数有歧义。
Y86的顺序实现:
1 取指:从存储器读取指令字节,地址为程序计数器PC的值
2 译码:从寄存器读入最多两个操作数,得到valA或valB
3 执行:算术/逻辑单元要么执行指令指明的操作,计算存储器引用的有效地址,要么增加或减少栈指针。得到的值为valE。
4 访存:将数据写入存储器,或从存储器中读出数据,读出的值为valM。
5 写回:最多可以写两个结果到寄存器文件
6 更新PC:将PC设为下一条指令的地址
注:以上阶段处理器无限循环执行,在简化的实现中,一旦出现问题,处理器就会停止。
Y86的模拟器过程:
sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5安装TCL和TK
解压tar
修改makefile文件
make clean和make之后,asuml.yo编译前后结果:
图形运行界面:
代码git:
教材学习中的问题和解决过程
看陈俊达同学的Y86模拟器安装过程中给的网站
http://csapp.cs.cmu.edu/public/students.html
用寝室网打不开···,后来在Q群里下的。
本周代码托管截图
http://git.oschina.net/HZW20145322/WEEK-6
其他(感悟、思考等,可选)
越来越发现课本上的知识点才是我们更该掌握的!
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 100/100 | 1/1 | 13/20 | |
第二周 | 100/200 | 1/2 | 15/38 | |
第三周 | 100/300 | 1/3 | 20/60 | |
第五周 | 70/370 | 2/5 | 30/90 | |
第六周 | 200/570 | 2/7 | 40/90 |