计算机组成原理【2】

       这一篇博客我主要写一下计算机的输入输出设备以及计算机的一些运算方法。

一.输入输出设备(I/O设备)

1.主机在和I/O交换信息时,主要有五种控制方式,是下面介绍三种程序查询、程序中断和DMA。
1>程序查询方式
(1)简介:CPU如果启动了I/O设备,那么就要立马终止现在所进行的程序,也就是CPU要时刻检查I/O设备是否准备就绪,准备就绪就立刻与其交换信息。
(2)多个I/O设备的查询流程:按照各个I/O设备在系统中的优先级来进行逐级地查询,打个比方,如果设备1准备就绪,那么处理I/O设备1,处理完毕之后检查设备2,如果设备2没有准备好继续检查设备3,如果准备好,那么就继续检查设备2,就这样以此类推。
那么单个设备的程序查询流程就显得比较简单了。
(3)程序查询方式的程序流程:首先要保存寄存器中的内容,接着要设置I/O设备与主机交换数据的计数值以及想要传送数据在主存缓冲区的首地址,一切准备好之后,CPU启动I/O设备,不断检查I/O设备是否准备好,一旦准备好了,就传输一个数据,并且修改主存地址,接着修改计数值(若原设置的计数值为原码,依次减一,若原设置计数值为负数的补码,则依次加一),然后判断计数值,若显示计数值为0,表示传送完毕,结束I/O设备的传送,继续执行现行程序。
2>程序中断方式
(1)简介:当CPU启动I/O设备后,不需要停止现在所进行的程序。I/O设备自己进入准备阶段,当它准备好之后,自己向CPU提出请求,这样就不用CPU时刻检查I/O设备的准备情况了。然后当中断服务程序结束后,CPU重新执行未完成的程序。
(2)单重中断:当CPU在执行中断程序的时候,出现了新的中断请求,但是CPU不予理睬。
         多重中断:当CPU在执行中断程序的时候,它的中断请求比现行的中断请求高,此时CPU先去处理级别高的,也就是中断里面嵌套了中断,那么这就是多重中断。
3>DMA方式
(1)简介:DMA方式主要是在主存和DMA接口之间有一条直接数据通路,这也就是说当DMA方式传送数据的时候,不需要经过CPU。比如当DMA接口要传送数据的时候,就会向CPU发出一个信号,CPU会把地址线、数据线和有关控制线的使用权给DMA接口,然后进行数据传送,传送之后再把线的使用权还给CPU。这样做就不会出现中断。
(2)当CPU交出总线控制权的时候,会出现周期挪用。简单来讲就是,当I/O设备有DMA请求时会出现三种情况:
         1】CPU不在访存,那么I/O设备的请求不发生冲突。
         2】CPU正在访存,等存取周期结束后,CPU将总线控制权交出。
         3】CPU与I/O设备同时访存,CPU放弃总线控制权,由I/O设备先占有几个周期。
(3)DMA的传送过程
         DMA的传送主要分为三个阶段,分别为欲处理、数据传送和后处理。
         ^在欲处理阶段,要经过四个阶段,才能启动设备。首先明确数据传送的方向是输入还是输出;接着就是设备地址的传送(送到DAR)、主存首地址的传送(送到AR)以及传            送数据字数的传送(送到WC)。
        ^在数据传送阶段,首先,将主存地址送到总线;接着,将数据送到I/O设备;然后修改主存地址和字计数器,当所有的数据块都传送结束后才可以结束。
        ^在后处理阶段,主要就是检测有没有出错,要不要再继续传送数据等等。
2.I/O设备主要分为I/O软件和I/O硬件,软件部分主要就是将用户编制的程序输入至主机,将运算结果输送给用户;硬件部分就是一些I/O处理机、设备控制器和I/O设备这几大部分组成。
I/O设备的编址方式与存储器有统一编址和独立编址两种。
统一编址:I/O地址是存储器地址的一部分。
独立编址:I/O地址和存储器地址是分开的,有专门的I/O指令访问I/O。
需要注意的一点,统一编址影响存储空间,但是独立编址不影响存储空间。

二、计算机的运算方法

1.数的表示
在计算机中,机器是无法识别正负的,所以一般情况下,用“0”表示正,用“1”表示负。
(1)真值:有正负号的就是真值。
(2)机器数:把前面的正负号数字化的就是机器数。
(3)原码:就是一开始它本身的这个数
(4)补码:真值为正,补码与原码相同;真值为负,补码是原码的求反加1。
(5)反码:真值为正,反码与原码相同;真值为负,反码是原码的每位求反。
PS:原码、补码、反码既可以表示小数,也可以表示整数。
        移码只能表示整数。
(6)定点:小数点固定在某一个位置那么就称为定点。
         纯小数:小数点位于数符和第一数值位之间。
         纯整数:小数点位于数值位之后。
(7)浮点:小数点的位置是可以改变的。
         浮点数由阶码j和尾数S两部分组成,阶码和尾数都是可正可负的。
        ^ 阶码是整数,浮点数的表示范围及小数点的实际位置由阶符和阶码的位数m合起来反映。
        ^尾数是小数,浮点数的精度就是由它的位数n反映的。
2.定点运算
 1>移位运算
移位运算包括算术移位和逻辑移位。算术移位时,最高位符号位不变;逻辑移位时,最高位可变。
2>加减法运算
(1)加法运算:整数【A】补+【B】补=【A+B】补(mod2的n+1次方)  n为整数的位数
                           小数【A】补+【B】补=【A+B】(mod2)
(2)减法运算:整数【A】补+【-B】补=【A-B】补(mod2的n+1次方)  n为整数的位数
                           小数【A】补+【-B】补=【A-B】补(mod2)
3.浮点运算
由于浮点数是由阶码和尾数组成,所以浮点运算的特点就是阶码运算和尾数运算分开进行。
浮点的加减运算一律用补码进行运算,浮点乘除运算的阶码采用补码或移码,尾数采用补码或原码。






你可能感兴趣的:(计算机组成原理)