2018-2019-1 20165330 《信息安全系统设计基础》第四周学习总结
学习内容总结
学习目标
- 了解ISA抽象的作用
- 掌握ISA,并能举一反三学习其他体系结构
学习内容
Y86-64指令
-
程序员可见状态
- 15个程序寄存器(RF):每个寄存器存储一个64位的字
- 3个条件码(CC):保存最近的算术或逻辑指令所造成影响的有关信息
- ZF:零标志(操作结果为0 ZF=1;结果不为0 ZF=0)
- SF:符号标志(结果最高位为0 SF=0;结果最高位为1 SF=1)
- OF:溢出标志(对有符号 结果无溢出 OF=0;结果溢出计算出错 OF=1)
- 程序状态(Stat)
数值 名称 含义 1 AOK 正常操作 2 HLT 遇到执行halt指令 3 ADR 遇到非法地址 4 INS 遇到非法指令 - 程序计数器(PC):存放当前指令的地址
- 内存(DMEM):是很大的字节数组,存放程序或数据
- 15个程序寄存器(RF):每个寄存器存储一个64位的字
-
Y86-64指令
- Y86-64程序寄存器标识符
- 存储在CPU的一个寄存器文件中
- 不应访问任何寄存器:用
0xF
表示
- Y86-64指令编码
- 编码长度:1字节~10字节
- 编码组成:
一个单字节的指令指示符
+一个单字节的寄存器指示符
+一个八字节的常数字
- 整数操作指令
OPq
:addq
subq
andq
xorq
- 跳转指令
jXX
:jmp
jle
jl
je
jne
jge
jg
- 传送指令
comvXX
:comvle
comvl
comove
cmovne
cmovge
comovq
- 字段fn(功能码)指明是某个整数操作、数据传送条件或是分支条件
- Y86-64程序寄存器标识符
逻辑设计与硬件控制语言HCL
- HCL表达式
- AND
&&
、OR||
、NOT!
- 与、或、非三种逻辑门可以用一种与非门或者或非门实现
- AND
- HCL整数表达式
- 情况表达式格式:
[ select 1: expr 1 select 2: expr 2 . select k: expr k ]
- 集合关系:
iexp in{ iexp1,iexp2,...iexpk }
- 算术/逻辑单元(ALU)
Y86-64的顺序实现
- 将处理组织成阶段
- 取值fetch-->译码decode-->执行execute-->访存memory-->写回write back-->更新PC update
- SEQ硬件结构
- 白色方框表示时钟寄存器
- 淡蓝色方框表示硬件单元
- 灰色圆角矩形表示控制逻辑块
- 白色圆圈中表示线路的名字
- 中等粗线表示宽度为字长的数据连接
- 细线表示宽度为字节或更窄的数据连接
- 虚线表示单个位的连接