我读过一些关于PCI和IDE / ATA的文章,现在我有点困惑。 PCI类0x01(大容量存储控制器)包含IDE(0x01)和ATA(0x05)子类。但是,来自https://superuser.com/questions/341452/whats-the-difference-between-ata-pata-and-ide:
该标准被命名为IBM PC / AT的“AT Attachment” 转向意味着先进技术,但ATA不是先进技术 附件)。但IDE和ATA是同义词。 ATA是一个更好的术语。
那么,如果它们是相同的,为什么它们有2个不同的子类?此外,在这篇文章中提到了
两种类型的驱动器(SATA和PATA)都是IDE设备。
...但是当我在oracle VM中配置虚拟机时,有不同的:IDE,SATA,ect ...控制器。
此外,这篇文章:https://sg.answers.yahoo.com/question/index?qid=20090723091840AA40xd6告诉IDE和PCI用于不同的连接,但我认为ATA'控制器'连接到PCI总线,这就是为什么我必须在那里检查它们。
它们有所不同...... PCI用于声卡视频卡等...... IDE用于CD ROMS硬盘驱动器等。
在VirtualBox中,当我连接IDE,软盘控制器,SCSI或任何存储设备时,它会出现在PCI总线上,就像声卡和网卡一样。
我读的文章越多,我就越困惑。对它们进行一些清晰的描述会很好。
答案 0 :(得分:2)
术语" IDE"," ATA"和" PATA"可互换使用。它们通常都指的是传统的40 / 44pin带状线硬盘接口。请注意,PCI或PCI Express IDE / ATA / PATA控制器可以以两种模式之一运行:
传统模式 - 从原始PC模拟传统ISA总线IDE控制器。使用IRQ 14和15. IRQ不能像普通PCI设备那样共享/重新映射。仅支持有限数量的IDE通道(主要/次要)。自PC诞生以来,每个操作系统都向后兼容。
纯模式 - 像传统的PCI设备一样。 IRQ编号不固定,可以与其他PCI设备共享。支持系统中任意数量的控制器。需要Windows 2000或更高版本。
随着SATA的推出,我们又有了另一层兼容性。通常可以将SATA控制器配置为以下两种模式之一:
IDE模式 - 与传统的IDE / ATA / PATA控制器类似。允许向后兼容较旧的操作系统(Windows XP和更早版本)。请注意,在IDE模式下,您仍然可以选择上面列出的Legacy vs Native Mode。
AHCI模式 - SATA控制器的现代编程接口。 Windows Vista及更高版本本机支持。
因此,SATA控制器可以是:
为了让事情变得混乱,一些BIOS将IDE模式称为" Legacy"和AHCI模式为" Native"。此外,并非所有上面列出的模式都必须适用于您的芯片组/ BIOS。较旧的芯片组可能不支持AHCI。一些较新的芯片组不再支持旧模式。此外,在具有多个SATA端口的主板上,可能存在哪些端口可以处于哪种模式的限制。
清除泥土?大!现在,这如何映射到PCI类代码?在PCI基类01h(海量存储)下,PCI规范中定义了几个子类。有三个与您的问题相关。
子类01h = IDE控制器
大多数IDE / ATA / PATA控制器都将使用此子类
IDE模式下的SATA控制器
Legacy和Native Mode IDE控制器都将使用此子类。您可以查询寄存器映射中的其他位以确定您所处的模式。
子类05h =带ADMA的ATA控制器
这是一个具有特殊DMA功能的特殊情况IDE / ATA控制器。
我从未见过使用此子类的Intel或AMD芯片组。
子类06h = SATA控制器
通常这意味着AHCI模式下的SATA控制器。
但是,一些早期的SATA控制器有一个专有接口。
编程接口寄存器将告诉您它处于什么模式。
对于Oracle VM,它可能会让您选择"虚拟" HDD被呈现给客户操作系统。虽然我面前没有副本。只是看一下文档,看起来有IDE的选择(不清楚是Native / Legacy / AHCI)还是SCSI。