20155322 2017-2018-1《信息安全系统设计》第九周学习总结
教材学习内容总结
第六章《存储器层次结构》
存储器
- 随机访问存储器(RAM):
- 静态RAM:用来作为高速缓存存储器,每个位存储在一个双稳态的存储器单元里。双稳态:电路可以无限期的保持在两个不同的电压配置或者状态之一。只要供电,就会保持不变。
- 动态RAM:用来作为主存以及图形系统的帧缓冲区。将每个位存储为对一个电容的充电,当电容的电压被扰乱之后,他就永远都不会再恢复了。暴露在光线下会导致电容电压改变。优势是密集度低,成本低。
传统的DRAM:DRAM芯片中的单元(位)被分成了d个超单元,每个超单元都由w个DRAM单元组成, 一个d*w的DRAM共存储dw位信息。超单元被组织成一个r行c列的长方形阵列,rc=d。每个超单元的地址用(i,j)来表示(从零开始)。设计成二维矩阵是为了降低芯片上地址引脚的数量。息通过称为引脚的外部连接器流入/流出芯片,每个引脚携带一个1位信号。DRAM芯片包装在存储器模块中,它是插到主版的扩展槽上的。 - 内存模块:DRAM芯片封装在内存模块中,它插到主板的扩展槽上。通过将多个内存模块连接到内存控制器,能够聚合成主存。
- 增强的DRAM:
-
快页模式DRAM(FPM DRAM):许对同一行连续的访问可以直接从行缓冲区得到服务。
-
扩展数据输出DRAM(EDO DRAM):允许单独的CAS信号在时间上靠的更紧密一点。
-
同步DRAM(SDRAM):用驱动存储控制器相同的外部时钟信号的上升沿来替代许多的异步信号,比异步的更快。
-
双倍数据速率同步DRAM(DDR DRAM):通过使用两个时钟沿作为控制信号,使得DRAM的速度翻倍。
-
视频RAM(VRAM):用在图形系统的缓冲中。输出通过以此对内部缓冲区的整个内容进行移位得到的;允许对内存并行地读和写。
-
非易失性存储器:如果断电,DRAM和SRAM都会丢失信息。非易失型存储器:即使在关电后,也仍然保存着它们的信息;称为ROM。
-
PROM:只能被编程一次。
可擦写可编程ROM(EPROM):紫外线光照射过窗口,EPROM就被清除为0,被擦除和重编程的次数为1000次。
电子可擦除ROM(EEPROM):不需要一个物理上独立的编程设备,因此可以直接在印制电路卡上编程,能够编程的次数为10^3。
闪存:基于EEPROM,为大量的电子设备提供快速而持久的非易失性存储。当一个计算机系统通电之后,它会运行存储在ROM中的固件。
-
教材学习中的问题和解决过程
- 问题:x86和y86有什么不同?
- 解决:通过上网搜索,我了解到其实Y86指令是不存在的,这是教材作者受到 IA32指令,也就是“x86”的启发,所假想出来的一种处理器体系结构,Y86指令集的数据类型、指令和寻址方式都要少一些,字节级编码也比较简单。但是它仍然足够完整。
- 补充:Y86的基本指令
图片-
halt :这个指令会停止指令的执行。在IA32中有个与之相当的指令 hlt,不过IA32的应用程序不允许使用这条指令,因为它会导致整个系统暂停运行。而对于Y86来讲,执行 halt 指令会导致处理器停止,并将状态码设置为 HLT。
-
nop:这是一个占位指令,它不做任何事情,后续为了实现流水线,它有一定的作用。
-
xxmovl:这是一系列的数据传送指令,其中r代表寄存器,m代表存储器,i代表立即数。比如rrmovl指令,则代表将一个寄存器的值,赋给另外一个寄存器。
-
OPl:这包括4个整数操作指令,addl、subl、andl和xorl。他们只对寄存器数据进行操作。
-
jXX:包括7个跳转指令,jmp,jle,jl,je,jne,jge,jg。根据分支指令的类型和条件码的设置来选择分支。
-
cmovXX:包括6个条件传送指令,cmovle,cmovl,cmove,cmovne,cmovge和cmovg,只发生在两个寄存器之间,不会将数据传送到存储器。
-
call:指令将返回地址入栈,然后跳到目的地址。
-
ret:call是过程调用,ret是返回。将返回地址入PC,并跳到返回地址。
-
pushl和popl:指令实现了地址的入栈和出栈
-
代码调试中的问题和解决过程
本周结对学习情况
- 结对学习内容:
- 教材第八章
- 教材第十章
代码托管
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/0 | 1/1 | 10/10 | |
第三周 | 200/200 | 2/3 | 10/20 | |
第四周 | 100/300 | 1/4 | 10/30 | |
第五周 | 200/500 | 3/7 | 10/40 | |
第六周 | 500/1000 | 2/9 | 30/70 | |
第七周 | 500/1500 | 2/11 | 15/85 | |
第八周 | 223/1723 | 3/14 | 15/100 | |
第九周 | 783/2506 | 3/17 | 15/115 |
-
计划学习时间:15小时
-
实际学习时间:15小时
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)