1.计算机语言的分类:高级语言,低级语言(汇编语言与机器语言)。P8
2.冯·诺依曼原理的内容理解;冯·诺依曼结构计算机中数据采用二进制编码表示,冯·诺依曼计算机中,CPU如何区分取出的二进制流是指令还是数据?P14
3. 计算机系统性能评价,学会计算:CPI,用户CPU时间,P17- P18
1.浮点数尾数的规格化:尾数如果采用原码,规格化尾数必定是±0.1****格式。浮点数所能表示的范围和精度分别取决于阶码与尾数。
2.IEEE-754单精度、双精度浮点数格式,能够根据给出的真实值能求出IEEE格式的浮点数。
十进制数0.3125转换为IEEE-754单精度浮点数。
答案:将0.3125表示为二进制数为0.0101,对其规范化后变为1.01 x 2^-2。因此,阶码为-2+127=125,二进制表示为01111101。尾数为01000000000000000000000,因此IEEE格式的单精度浮点数为0 01111101 01000000000000000000000。
3.大端方式和小端方式,学会按字节编址的存储空间里如何存储数据。
大端方式是指高字节存储在内存低地址,而小端方式是指高字节存储在内存高地址
以16位整数0x1234为例:
- 在大端方式中,0x12存储在低地址,0x34存储在高地址。
- 在小端方式中,0x12存储在高地址,0x34存储在低地址。
大端正常顺序(平常上课见到的那种顺序),小端是大端的逆序
1.C语言,包括位扩展及位截断。P53
2.ALU干啥的? ALU的核心是加法器。
ALU是专门的算术逻辑部件,用来完成基本逻辑运算和定点数加减运算。
3.结合习题,学会定点数一位乘法(原码一位乘法、补码一位乘法[布斯公式],掌握步骤及特点)。(以例题、习题复习)
另外注意:补码的乘法不具备[X×Y]补=[X]补×[Y]补的性质。
原码一位乘法:1101 × 1011
关于最后什么时候停止——直到原来的乘数所有位都被丢弃为止
补码一位乘法x=0.1101, y=-0.1011
关于什么时候停止运算——当乘数所有位数都参与完比较后(最后要右移),最后结果低4位不包含原来乘数的位数
4.浮点数的加减法、乘法除法运算步骤(特别注意尾数规格化),结合习题,学会计算。
例如采用IEEE-754扩展的浮点数格式(例如8位浮点数包含1位符号位,4位阶码和3位尾数,阶码的偏置为7),实现浮点数相乘过程。
浮点数加减法(用补码表示)
更早的应该是先将给出的十进制数转为二进制数(IEEE规格化——1.xxx),然后再转成浮点数
(1)对阶:采用小阶向大阶看齐的方法,实现对阶(尾数要移动相应的对阶数)
(2)尾数相加减:尾数进行相加减,并保留正确的长度。(正常加减)
(3)规格化
(3)舍入:将结果舍入为对应精度的数值,如四舍五入。
(4)溢出判断:如果加减后的结果超出了该浮点数所能表示的范围,发生了溢出,需要进行错误处理。
规格化后应该是——1.xxx
- 尾数相乘(原码乘法)、阶码相加(减)
- 尾数规格化
- 尾数舍入处理
- 阶码溢出判断
答案
答案
注意尾数相加处——先用原码相加,如果没有进位则为减数的符号,有进位是被减数的符号(其实,也可以直接根据十进制看正负)。如果符号是负的,还要再用补码进行表示。可以自己算算这里的尾数相加
1.指令操作码编码:固定长度操作码,扩展操作码。 例如习题6。
一条指令的格式:
| 操作码 | 地址码A1 | 地址码A2 | 地址码A3 |
指令的长度是固定的,题设会给,一般是16字节,地址码长度一般也会给
1.固定操作码编码
指令的操作码部分采用固定长度编码
2.扩展操作码编码
2.1 等长扩展法
2.2 不等长扩展法
2.指令系统中采用不同灵活的寻址方式,使用尽量短的地址码访问尽可能大的寻址空间。例如变址寻址的目标地址计算、相对寻址方式的计算。
变址寻址:PC+偏移量
相对寻址:寄存器内容+偏移量
3.CISC与RISC的主要特点(尤其RISC特点,选择题角度出发,理解含义就可)。
CISC:
- 采用复杂指令集,指令长度不固定,有多种寻址方式和操作类型。
- 拥有大量的指令集和复杂的指令编码方式,可以完成高级操作并减少代码长度。
- 硬件资源相对较多,能够充分利用硬件实现各种复杂的指令。
- 对编译器和开发人员的要求较低,直接翻译高级语言到汇编语言即可。
- 适合于数据密集型应用,如数据库、图像处理等。
RISC:
- 采用精简指令集,指令长度固定,只支持简单的寻址方式和操作类型。
- 指令集数量较少,每个指令执行的操作也比较简单,可以提高指令执行速度和效率。
- 硬件资源相对较少,采用流水线处理等技术来加速指令执行。
- 对编译器和开发人员的要求较高,需要更多的工作来优化代码。
- 适合于计算密集型应用,如数据挖掘、模拟仿真等。
P= I×CPI×T
其中I是指令数,CPI是执行每条指令所需的平均周期数,T时钟周期。单周期CPU:CPI=1,还有流水线CPU,而超标量流水CPU<1。4.结合习题,学会C高级语言的MIPS机器代码表示,注意MIPS寄存器的使用约定。注意MIPS汇编语句的执行过程,例如算术移位、逻辑移位。
算术移位——带符号
逻辑移位——不带符号
假定某计算机中有一条转移指令,采用相对寻址方式,共占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),CPU每次从内存只能取一个字节。假设执行到某转移指令时PC的内容为200,执行该转移指令后要求转移到100开始的一段程序执行,则该转移指令第二字节的内容应该是多少
注意取完操作码之后再计算,所以是202
用补码表示
相对寻址和变址寻址都是计算完之后就是有效地址,里面的内容就是操作数
其中,扩展编码时:二地址留出一种编码(1111)用来给一地址扩展简而言之——给出1111时,计算机辨认出要进行扩展
。所以,零地址时,要二地址和一地址的扩展编码总共10位
1: 将 a2 的内容左移 2 位,即乘 4
2: 将 a3 的内容左移 2 位,即乘 4
3: 将 v 0 v0 v0 置零
4: 将 t 0 t0 t0 置零
5: 将第一个数组的首地址存放在 t 4 t4 t4
6: 取第一个数组的第一个元素存放在 t 4 t4 t4
7: 将 t1 置零
8: 将第二个数组的首地址存放在 t 3 t3 t3
9: 取第二个数组的第一个元素存放在 t3
10: 如果 t3 和 t4 不相等,则跳转到 s k i p skip skip
11: 将 v0 的值加 1,结果存于 v 0 v0 v0
12: 将 t1 的值加 4,结果存于 t 1 t1 t1
13:如果 t 1 t1 t1 不等于 a 3 a3 a3 , 即还未取完数组中所有元素,则转移到 i n n e r inner inner
14: 将 t 0 t0 t0 的值加 4 4 4
15:如果 t 0 t0 t0 不等于 a 2 a2 a2 , 即还未取完数组中所有元素,则转移到 o u t e r outer outer
十进制25在MIPS语句中也是直接用十进制(看上去是这样的)
注意一下 L U I LUI LUI
s u b sub sub $t1 $t1 $t2—— t 1 − t 2 t1 - t2 t1−t2 存到 t 1 t1 t1 上