硬盘DMA模式和PIO模式

    DMA的英文拼写是“Direct Memory Access”(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。整个数 据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在 大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
    (Ultra-DMA/33),1996年由Intdl和Quantum制定的一种数据传输方式,该方式I/O系统的突发数据传输速度可达33MB/s,还可以降低I/O系统对CPU资源的占用率。现在又出现了UDMA/66,速度多出两倍。

      PIO的英文拼写是“Programming Input/Output Model”,PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式。是最早先的硬盘数据传输模式,数据传输速率低下,CPU占 有率也很高,大量传输数据时会因为占用过多的CPU资源而导致系统停顿,无法进行其它的操作。PIO数据传输模式又分为PIO mode 0、PIO mode 1、PIO mode 2、PIO mode 3、PIO mode 4几种模式,数据传输速率从3.3MB/s到16.6MB/s不等。受限于传输速率低下和极高的CPU占有率,这种数据传输模式很快就被淘汰。
   
如何使用磁盘的DMA模式呢?使用hdparm工具可以查看:
比如我们查看磁盘缓存时,会出现如下错误:
[cnangel@cadev03 ~]$sudo hdparm -i /dev/sda
/dev/sda:
 HDIO_GET_IDENTITY failed: Invalid argument
禁止使用DMA模式:
[cnangel@cadev03 ~]$sudo hdparm -d0 /dev/sda
/dev/sda:
 setting using_dma to 0 (off)
 HDIO_SET_DMA failed: Invalid argument
因为系统安装完毕後,硬盘的 DMA 模式默认是没有打开的,一般方法是在 /etc/rc.d/rc.local 最後面加上一行
/sbin/hdparm -d1 -c3 -m16 /dev/sda
这样每次开机後,硬盘的 DMA 就会开启,不必每次手动设定。

Monthly Archives

Pages

Powered by Movable Type 7.7.2

About this Entry

This page contains a single entry by Cnangel published on May 9, 2011 4:51 PM.

ImageMagick的使用 was the previous entry in this blog.

fedora15刚刚发布 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.