- 冯诺依曼体系
- 但是这样,会造成CPU和存储器速率之间的问题无法调和。因为CPU处理得更快,CPU就会经常空转等待数据传输,浪费资源。
- 现代计算机结构
- 存储器为更高速的设备(内存、CPU的寄存器),可以理解为以存储器为核心
计算机层次与编程语言
- 程序翻译与程序解释
- 计算机执行的指令都是L0
- 翻译过程生成新的L0程序,解释过程不生成新的L0程序
- 解释过程由L0编写的解释器去解释L1程序
- 中文编码集
- windows系统默认使用GBK编码
- 编程推荐使用UTF-8编码,所以在win上使用IDE工具时,注意需要改
计算机的输入输出设备
- 程序中断
- 提供低速设备通知CPU的一种异步的方式
- CPU可以高速运转同时兼顾低速设备的响应
- DMA(直接存储器访问)
- 当主存与IO设备交换信息时,不需要中断CPU
- 可以提高CPU的效率
计算机存储器概览
- 存储器的层次结构(缓存-主存层次)
- 原理:局部性原理
- 实现:在CPU与主存之间增加一层速度快(容量小)的cache
- 目的:解决主存速度不足的问题
- 主存-辅存层次
- 原理:局部性原理
- 实现:主存之外增加辅助存储器(磁盘、SD卡、U盘等)
- 目的:解决主存容量不足的问题
计算机的控制器
- 程序计数器
- 程序计数器用来存储下一条指令的地址
- 循环从程序计数器中拿出指令
- 当指令被拿出时,指向下一条指令
- 时序发生器
- 电气工程领域,用于发送时序脉冲
- CPU依据不同的时序脉冲有节奏的进行工作
- 指令译码器
- 指令译码器是控制器的主要部件之一
- 计算机指令由操作码和地址码组成
- 翻译操作吗对应的操作以及控制传输地址码对应的数据
- 指令寄存器
- 也是控制器的主要部件之一
- 从主存或高速缓存取计算机指令
- 主存地址寄存器
- 保存当前CPU正要访问的内存单元的地址
- 主存数据寄存器
- 保存当前CPU正要读或写的主存数据
- 通用寄存器
- 用于暂时存放或传送数据或指令
- 可保存ALU的运算中间结果
- 容量比一般专用寄存器要大
计算机的运算器
- 数据缓冲器
- 分为输入缓冲和输出缓冲
- 输入缓冲暂时存放外设发送过来的数据
- 输出缓冲暂时存放发送往外设的数据
- ALU
- 算术逻辑单元,是运算器的主要组成
- 常见的位运算(左右移、与或非等)
- 算术运算(加减乘除等)
进制运算
十进制 | 原码 | 补码 | 反码 |
---|---|---|---|
13 | 0,1101 | 0,1101 | 0,1101 |
-13 | 1,1101 | 1,0011 | 1,0010 |
-7 | 1,0111 | 1,1001 | 1,1000 |
-1 | 1,0001 | 1,1111 | 1,1110 |
- 负数的反码=原码除符号位外按位取反
定点数与浮点数
- 浮点数的表示方法
- 计算机处理的很大程度上不是纯小数或纯整数
- 数据范围很大,定点数难以表达
- 浮点数的规格化
- 尾数规定使用纯小数
- 尾数最高位必须是1
- 定点数与浮点数的对比
- 当定点数与浮点数位数相同时,浮点数表示的范围更大
- 当浮点数尾数为规格化数时,浮点数的精度更高
- 浮点数运算包含阶码和尾数,浮点数的运算更为复杂
- 浮点数在数的表示范围、精度、溢出处理、编程等方面均优于定点数
- 浮点数在数的运算规则、运算速度、硬件成本方面不如定点数
- 定点数的加减法运算