欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

将硬盘从PIO模式改成DMA模式不必每次手动设定

程序员文章站 2023-09-26 17:34:09
将硬盘从PIO模式改成DMA模式不必每次手动设定DMA是指一种高速的数据传输操作,PIO一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式,那么如何将硬盘从PIO模式改成DMA模式呢,下面有个不错的方法,大家不妨参考下... 14-05-12...
1. 右键“我的电脑”选择“属性”,再选择“硬件”选项卡下的“设备管理器”:

2. 展开“ide ata/atapi 控制器”节点;

3. 双击您的“主要ide控制器”;

4. 点击“高级设置”,改为dma即可

下面为大家详细解析下硬盘的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 就会开启,不必每次手动设定。