这是《深入理解计算机系统》的读书笔记
最近在看深入理解计算机系统。
- 计算机的硬件结构
- cpu
- 寄存器
- 通用寄存器(临时存储数据)
- 专用寄存器(堆栈指针sp,基址寄存器…)
- pc 寄存器(寻找下一条指令)
- alu 计算单元(算术运算,逻辑运算)
- 浮点计算单元(浮点运算)
- 一二级cache
- 寄存器和 一二级 cache 一般是用 sram 做的,不会被电磁干扰,访问速度很快,但是造价高。
- 内存(主存)
- 用的是 dram(动态 ram)。具备电失性。切容易被电磁干扰,需要隔段时间就动态刷新。
- 主存是二维矩阵的方式组合在一起,每次取值时,先定位到某一行,把这一行的内容复制到临时存放区,在定位到这一行的某一列,取出数据。
- io
- 键盘鼠标显示器等等都是 io 设备。
计算机的数据表示:
数字:
整数:
有符号数:
第一位表示符号,剩下的位数表示数字
有符号数一般用补码表示,因为补码可以使加法和减法共用一个电路。
无符号数 :
是正整数,从 0 — 2ⁿ-1
浮点数:
整数部分+浮点数部分。
浮点数部分的值是: 0.5 0.25 0.125 …. 所以浮点数的值无法准确表示,只能采用近似的方法。
原码:
反码:各位取反
补码:
正整数和原码相同,负数,将原码取反后加 1。
补码表示法的一个优点是加法和减法运算可以使用相同的电路,同时还解决了反码中的两个零的问题(正零和负零)。
字符:ascii 字符 unicode-uft8 等等