首页 > 课堂 > 电脑知识 > 正文

如何将硬盘从PIO模式改成DMA模式?

2024-05-08 15:15:54
字体:
来源:转载
供稿:网友

  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 就会开启,不必每次手动设定。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表