文章

1

粉丝

2

获赞

0

访问

19622

头像
计算机组成原理知识点总结
组成原理
发布于2020年5月19日 11:11
阅读数 19622

2.信息的表示和处理

熟悉二进制、十六进制与十进制的关系

整数:补码,有符号表示与无符号表示

加法:判断溢出的方法:双符号位法

 

3.程序的机器级表示

汇编代码,能看懂,根据些许C语言推到汇编代码或者根据汇编代码反推C语言就行

数据格式:b(字节 -- 8位),w(字 -- 16位),l(双字 -- 32位)

数据传输指令: movs(有符号)、movz(无符号)

算术和逻辑操作:

inc D(D+1) dec D(D-1) neg D(-D) not D(~D)
add S, D sub S, D imul S, D xor S, D
or S, D and S, D    
sal k, D 左移 shl k, D 左移 sar k, D 算术右移 shr k, D 逻辑右移

leal S, D:加载有效地址 → 可运用为加法运算

控制:

CF:进位标志(1:进位)

ZF:零标志(1:为0)

SF:符号标志(1:为负)

OF:溢出标志(1:溢出)

指令 同义名 描述
jmp X   直接跳转
je X jz 相等/零
jne X jnz 不相等/非零
js X   负数
jns X   非负数
jg X jnle 大于(有符号>)
jge X jnl 大于或等于(有符号>=)
jl X jnge 小于(有符号<)
jle X jng 小于或等于(有符号<=)
ja X jnbe 超过(无符号>)
jae X jnb 超过或相等(无符号>=)
jb X jnae 低于(无符号<)
jbe X jna 低于或相等(无符号<=)

great :less

above:below

跳转语句与循环语句的汇编代码

栈帧(stack frame): %esp 栈指针(表示栈当前指的位置),%ebp 帧指针,%eip 指令指针寄存器

push X:栈指针先上移(减4),再存数据

pop X:移出数据,栈指针下移(加4)

call X:先保存返回地址,再转入子过程

熟悉下练习题 3.33。

 

4.12 Y86指令

会看就行,与写下面的 4.3 有关

4.2 逻辑设计和硬件控制语言HCL

四条表达式:

判断位相等:bool eq = (a && b) || (!a && !b)

单位多路复用器:bool out = (s && a) || (!s && b)

情况表达式:

int Out = [

​ select_1 : expr_1

​ select_2 : expr_2

​ ...

​ 1 : expr_n

]

集合关系:bool s1 = code in { a1 a2 ... an };

4.3 Y86的顺序实现

组成阶段:取指 → 译码 → 执行 → 访存 → 写回 → 更新PC → 取指 → ...

根据以上 6 个过程可以写出以下格式:

取指 icode : ifun
  rA, rB
  valC
  valP
译码 valA
  valB
运算 valE
  Cond, Cnd
访存 valM
写回 dstE
  dstM
PC更新 PC

稍微详细的补充:

icode : ifun:分别是指令代码与指令功能,分别占四位(bit)。

rA, rB:指明两个寄存器操作数指示符(就是记录使用哪两个寄存器)

valC:一个四字节常数字(涉及到常数或者内存的时候出现)

valP:PC值加上已取出指令的长度(汇编可见的左侧地址的下一条)

valA, valB:从rA和rB读出的值

valE:经过运算得到的值(一般有ALU的运算或者栈针的移动)

Cond, Cnd:检查跳转码和跳转条件时是否选择分支产生的信号与判断

valM:写入存储器或从存储器写出的值

dstE, dstM:写回寄存器文件的最多是两个

PC:下一条指令地址(指令地址)

 

6.存储器层次结构

局部性:倾向于引用(邻近于其他最近引用过的数据项的)数据项,或者最近引用过的数据项本身。

良好的时间局部性:被引用过一次的存储器位置可能在不远的将来再被多次引用。

良好的空间局部性:被引用过一次的存储器位置可能在不远的将来引用附近的一个存储器位置。

另外的知识点:存储技术、存储器层次结构、高速缓存(了解就行)



登录后发布评论

暂无评论,来抢沙发