`
gengu
  • 浏览: 84297 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

CPU,主存,外设I/O读写速度不匹配的解决

阅读更多

CPU与主存

 

我们都知道计算机的存储器分为:寄存器,主存,辅存,更加具体的分类如下

CPU寄存器 寄存器
主存 高速缓存
主存
磁盘缓存
辅存 磁盘
可移动存储介质

 

       在计算机存储层次中,寄存器和主存储器都是可执行存储器,存储于其中的信息与存放在辅存中的信息相比较而言,计算机所采取的访问机制是不一样的,所需耗费的时间也不同,进程可以在很少的始终周期使用一条load和store指令对可执行存储器进行访问,但对辅存的访问则需要I/O设备来实现,因此,访问中将涉及到中断,设备驱动程序以及物理设备的运行,所需耗费的时间远远高于对可执行存储器访问的时间。

 

       主存储器:计算机系统中的一个主要部件,用于存储进程运行时的程序和数据,也称为可执行存储器,CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器读取并将他们装入到寄存器中,或者从寄存器存入到主存储器,CPU与外围设备交换的信息一般也依托于主存储器地址空间。

 

  一:由于主存储器的访问速度与CPU执行指令的速度不一致,在计算机系统中引入了寄存器和高速缓存。

 

寄存器 :访问速度非常快,能与CPU的速度匹配,但价格昂贵,它的长度一般以字(word)为单位。它用于加速存储器的访问速度,如用寄存器存放操作数,或用做地址寄存器加快地址转换速度等。

 

高速缓存 :访问速度很快,但是也低于CPU和寄存器,但容量远远大于寄存器。由于程序执行的局部性原理,如果将主存中一些经常访问的信息房子啊高速缓存中,减少访问主存储器的次数,通常进程的程序和数据是存放在主存中,每当使用时,被临时复制到速度叫快得缓冲中,CPU要访问某些程序或者数据时,会先检查高速缓存中是不是存在,如果有,就直接使用。大多数的操作系统都有指令高速缓存,用来存储下一条要执行的指令。

 

二:由于I/O传输数据的速度远远低于CPU的执行熟读,在计算机系统中引入了缓冲区

 

为了缓和CPU和I/O之间速度不匹配的矛盾,提高CPU与I/O设备的并行性,在现代操作系统中,几乎所有的I/O设备与处理机交换数据时都用了缓冲区。

1:缓和CPU与I/O设备间速度不匹配的矛盾。

2:减少对CPU的中断操作,放宽对CPU中断响应时间的限制。

3:提高CPU与I/O设备间的并行性,缓冲的引入可以显著的提高CPU和I/O设备间的并行操作程度,提高系统的吞吐量和设备的利用率。

缓冲技术一般分为四种:单缓冲,双缓冲,循环缓冲,缓冲池


三:既然I/O是计算机系统速度的最大瓶颈,那么操作系统采取了什么措施来优化呢?

 

CPU一共有四种方式控制I/O设备与内存或者CPU的数据传送方式。

 

程序直接控制方式: 程序直接控制方式就是由用户进程来直接控制内存或CPU与外设之间的信息传送,这种控制方式的管理者是用户进程,当用户需要数据时,它通过CPU发出设备准备启动的命令,然后进程进入等待状态,在这期间,CPU不断的用测试指令检查描述外设的工作状态的控制状态寄存器,而外设只有将数据传送的准备工作做好之后,才将寄存器置为“完毕”状态,只有CPU检测到该状态时,设备才开始真正的传输数据,反之,当用户进程需要传出数据时,也必须同样发送启动命令来启动设备。

优点:控制简单

缺点:CPU与外设串行工作,由于I/O速度慢,所以CPU大部分时间都在等待;CPU在一段时间内只能和一台外设交换数据信息。

 

中断方式: 在中断方式中,当进程需要数据时,首先通过CPU发出指令启动外设准备数据,然后该进程放弃CPU。这时CPU可以去处理其他的任务。当输入完毕之后,I/O控制器向CPU发出中断信号,CPU接收到中断信号之后,运行预先设计好的中断处理程序对数据传送工作进行响应的处理。所以这样CPU不用等待I/O传输完。当数据传输到缓冲寄存器并发出中断信号之后,CPU接受中断信号,并进行处理。

优点:使CPU的利用率大大提高,并且能支持躲到程序和设备的并行操作

缺点:由于缓冲寄存器容量有限,所以,可能在一次传输中会产生的中断请求过多,这样也会消耗大量的CPU处理时间;如果外设过多,则可能会由于中断次数的急剧增加而造成CPU无法响应中断和出现数据丢失现象;

 

DMA方式: 它的基本思想是,通过DMA控制器在外设和内存之间开辟直接的数据交换通路,从而在无需CPU控制的情况下实现内存和设备之间的成批数据交换。

它与中断方式最大的不同在于,中断方式是在缓冲寄存器满的时候就向CPU发送中断信号,而DMA是在所有的数据块都传送结束时才要求CPU进行处理,这大大减少了CPU的干预次数;另外中断方式的控制者是CPU,而DMA方式是在DMA控制器的控制下不需要经过CPU控制完成的,这就降低了由于外设过多造成CPU来不及处理而造成数据丢失的现象。

 

I/O通道方式: 是独立与CPU的专用于I/O控制的处理机,他控制设备与内存直接进行数据交换,它有自己的通道指令,这些指令有CPU启动,并在结束时向CPU发出中断信号。

在通道方式下,CPU只需要发出启动指令,指出通道响应的操作和I/O设备,该指令就可以启动通道并使通道从内存中调出响应的通道指令并执行。通道指令一般包括:数据在内存中英占据的位置。传送方向,数据长度以及被控制的I/O设备的地址信息,特征信息等。

 

可以看到在java.nio中大量使用了操作系统中使用到的概念。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics