本次笔记内容:
P5 计算机组成原理(05)
P6 计算机组成原理(06)
注:本节课开始,我找到了对应内容的课件,请见于GitHub的CS笔记仓库。因此,为了节省时间,我只记录老师上课强调的内容与对应ppt页码。
本节课对应幻灯片:组成原理13 data,第1页起。
文章目录
内容提要
- 数据表示的需求(哪些数据需要放到计算机中)
- 逻辑型数据表示
- 字符的表示
- 整数的表示
- 浮点数本节课不讲,以后讲
- 检错纠错码
计算机的核心功能就是对数据进行加工。而程序则是人与计算机的交换工具。
引例
程序设计举例(1)
如上图,以L1 R1 1这条指令为例,L1对应01101为操作码,R1为001为寄存器编号,1对应00000001为立即数。
下面的FF对应1111111,代表-1。
程序设计举例(2)
;WELCOME
MFPC R7 // 把PC的值给R7
ADDIU R7 0x0003 // 把R7的值加3
NOP // 空操作
B TESTW // 跳转到TESTW函数,测试串口
// 串口能写,则返回
// 不能写,则在串口陷入循环
LI R6 0X00BF // 把端口号BF00送给R6
SLL R6 R6 0x0000
LI R0 0x004F // 将0x004F送给串口(终端)
// 终端可以是屏幕等
// 0x004F即ASCII中的O
SW R6 R0 0x0000
NOP
数据编码与表示
总述
需要在计算机中表示的对象:
- 程序、整数、浮点数、字符(串)、逻辑值
- 通过编码表示
表示方式:
- 用数字电路的两个状态表示,存放在机器字中;
- 由上一层的抽象计算机来识别不同的内容。
编码原则:
- 少量简单的基本符号(0 1)
- 一定的规则
- 表示大量复杂的信息
- 方便使用
编码表示
基本元素:
- 0、1两个基本符号
字符:
- 26字母=>5位
- 大/小写 + 其他符号 => 7 bits (in 8)
- 世界上其他语言的文字 => 16 bits (unicode)
无符号整数:
- 0, 1, 2, … , 2^n - 1
逻辑值:
- 0 => False
- 1 => True
此外,编码表示的还有颜色、位置/地址/指令等。
应注意,n位只能代表2^n个不同的对象。
P9 逻辑型数据
用数字电路实现其运算,也很容易。
逻辑型数据可以用1位来表示,但是因为现在计算机最小访问单元是一个字或者字节,因此其大小也并不为一个位。
P18 补码求真值
之所以如此设计补码(取反码再加1),是因为补码可以直接求真值。
补码求真值:
N = − b n − 1 × 2 n − 1 + ∑ i = 0 n − 2 b i 2 i N = -b_{n-1} \times 2^{n-1} + \sum_{i=0}^{n-2} b_i 2^i