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占有率,这种数据传输模式很快就被淘汰。
(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禁止使用DMA模式:
/dev/sda:
HDIO_GET_IDENTITY failed: Invalid argument
[cnangel@cadev03 ~]$sudo hdparm -d0 /dev/sda因为系统安装完毕後,硬盘的 DMA 模式默认是没有打开的,一般方法是在 /etc/rc.d/rc.local 最後面加上一行
/dev/sda:
setting using_dma to 0 (off)
HDIO_SET_DMA failed: Invalid argument
/sbin/hdparm -d1 -c3 -m16 /dev/sda这样每次开机後,硬盘的 DMA 就会开启,不必每次手动设定。