0%

输入输出

输出传输控制方式

  • 程序控制方式 分为无条件传送和程序查询两种方式。是在CPU与外设之间的,方法简单,硬件开销小,但IO能力不高,严重影响CPU的利用率

    • CPU和IO只能串行工作
    • 由CPU将数放入内存
  • 程序中断方式 与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。

    (执行过程:CPU无需等待也不必查询IO状态,当IO系统准备好以后,会发出中断请求信号通知CPU,CPU接到中断请求后,保存现场(程序现场信息保存在堆栈中),打断的程序当前位置即为断点,通过中断向量表转入IO中的服务程序的执行,完成IO系统的数据交换,然后恢复现场返回被打断的程序继续执行)

    • CPU和IO可并行工作
  • DMA方式(直接主存存取,Direct Memory Access) DMA方式是为了在主存和外设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式和中断方式更高效。不需要CPU参与数据的交换。

    (执行过程:DMAC向总线裁决提出总线请求,CPU执行完当前总线周期即可释放总线控制权,此时DMA响应,通过DMAC通知IO接口开始DMA传输)每传送一个数据需要占用一个总线周期

    • CPU和IO可并行工作
    • 不需要CPU参与数据交换,只有开始和结束才需要CPU的干预
    • 由外设直接将数据存入内存

总线

一条总线同一时刻仅允许一个设备发送,但允许多个设备接收

分为

  • 数据总线 Data Bus 在CPU与RAM之间来回传送需要处理或是需要储存的数据
  • 地址总线 Address Bus 用来指定在RAM职中储存的数据的地址
  • 控制总线 Control Bus 将微处理器控制单元的信号传送到周边设备

常见的总线

  • PCI总线 目前微型机上广泛使用的内总线,采用并行传输方式
  • SCSI总线 小型计算机系统接口时一条并行外总线,广泛用于连接软硬磁盘、光盘、扫描仪等。

存储系统

层次化存储结构

1
2
3
4
5
6
7
8
9
10
11
12
13
从上到下速度越来越慢,容量越来越大
^ CPU 寄存器,单位是bit,32位、64
|
| Cache 按内容存取,单位是M
|
| 内存 单位是G,4G、8G、16G
|
| 外存(辅存) 如硬盘、光盘、U盘等,512G、1T
|
|
v
虚拟存储器 = 内存+外存
三级存储体系 = Cache+内存+外存

局部性原理是层次化存储结构的支撑

  • 时间局部性 刚被访问的内容,立即又被访问(如循环体)
  • 空间局部性 刚被访问的内容,临近的内容很快会被访问(顺序执行)
阅读全文 »

校验码

校验码中的概念

码距

任何一种编码都由许多码字构成,任意两个码字之间的最小距离就称为数据检验码的码距

检错

检错就是可以检查出错误

纠错

纠错就是可以在检查出错误的基础上纠正错误

常用的校验码

奇偶检验码

编码方法是 由若干位有效信息,再加上一个二进制位(校验位)组成校验码,奇校验就是整个校验码中1的个数为奇数,偶检验就是整个校验码中1的个数为偶数

只能做简单的检查错误(只能检查奇数个数据位出错),不可以进行纠错

CRC循环冗余校验码

编码方法是 在k位信息码之后拼接r位检验码。应用CRC码的关键是如何从k位信息位简便的得到r位校验码,以及如何从k+r位信息码判断是否出错

用约定的生成多项式G(X)使用模二除法来进行判断的,如果正确,则余数为0;如果某一位出错,则余数不为0。不同的位数出错余数不同,余数和出错位序号之间有唯一的对应关系

可以进行检查错误,但不可以进行纠错

海明校验码

编码方式是 在有效信息位中加入几个检验位形成海明码,使码距均匀地拉大,并把海明码的每个二进制位分配到几个奇偶检验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化

由于是通过扩大码距来进行检验的,所以码距肯定大于1

既可检错,也可纠错

设数据位是n位,校验位是k位,n和k的关系需要满足$2^k>=n+k+1$

逻辑运算符

逻辑运算符分为与或非三种

  • 逻辑与 && 相当于AND
  • 逻辑或 || 相当于OR
  • 逻辑非 ! 相当于NOT

运算符的优先级

优先级最高的是 逻辑非!,然后是算术运算符 */+-,接着是关系运算符 >、<、==、!=,然后是逻辑运算符 逻辑与&&、逻辑或||

进制转换

二进制(B)、八进制(O)、十进制(D)、十六进制(H)

十进制转为其他进制使用短除法,也就是除基取余法

如将94转化为二进制数,余数从下往上,二进制为 1011110

1
2
3
4
5
6
7
8
2|940
2|47 1
2|23 1
2|11 1
2|5 1
2|2 0
2|1 1

二进制转八进制与十六进制

转八进制使用每三位一组,高位补零

转十六进制使用每四位一组,高位补零