Hardware Reference
In-Depth Information
functions for communicating with PCIe or SATA Express devices. SSDs are by nature very low
latency devices, a characteristic that NVMe is designed to fully exploit. NVMe is also designed to
more fully utilize the parallelism built in to modern systems such as multicore hyper-threaded
processors, multi-lane buses, and multi-tasking operating systems. The biggest technical difference
between AHCI and NVMe is that AHCI supports a single command queue with up to 32 commands,
while NVMe supports up to 64K queues with up to 64K commands per queue. Having many more and
much deeper queues allows for commands to be far more rapidly delivered to SSDs, where due to
their low-latency characteristics they can be processed much more rapidly than drives with spinning
disks.
SATA Express host adapters support both AHCI and NVMe modes. Using AHCI mode will allow for
backward compatibility with existing AHCI drivers, while choosing NVMe mode will require new
NVMe drivers. Since NVMe drivers were not included by default with Windows 8 and earlier
versions, NVMe drivers will need to be supplied during the OS installation procedure for Windows
to recognize any devices connected to SATA Express host adapters in NVMe mode. Using AHCI
mode instead, you can install Windows Vista and later on SATA Express drives right out of the box,
with no additional drivers necessary; however, there will be some loss in performance.
SATA Transfer Modes
SATA transfers data in a completely different manner from PATA. As indicated previously, the
transfer rates are 1.5Gbps (150MBps), 3Gbps (300MBps), and 6Gbps (600MBps), with most drives
today supporting the 3Gbps or 6Gbps rates. Note that speeds are backward compatible—for example,
drives supporting the 6Gbps rate also work at 3Gbps or 1.5Gbps. Note that because SATA is
designed to be backward compatible with PATA, some confusion can result because the BIOS and
drives can report speeds and modes that emulate PATA settings for backward compatibility.
For example, many motherboards detect and report a SATA drive as supporting Ultra DMA Mode 5
(ATA/100), which is a PATA mode operating at 100MBps. This is obviously incorrect because even
the slowest SATA mode (1.5Gbps) is 150MBps, and Ultra DMA modes simply do not apply to
SATA drives.
PATA and SATA are completely different electrical and physical specifications, but SATA does
emulate PATA in a way that makes it completely software transparent. In fact, the PATA emulation in
SATA specifically conforms to the ATA-5 specification.
This is especially apparent in the IDENTIFY DEVICE command that the autodetect routines use in
the BIOS to read the drive parameters. The SATA specification indicates that many of the items
returned by IDENTIFY DEVICE are to be “set as indicated in ATA/ATAPI-5,” including available
UDMA modes and settings.
The SATA 1 specification also says,
Emulation of parallel ATA device behavior, as perceived by the host BIOS or software driver, is
a cooperative effort between the device and the SATA host adapter hardware. The behavior of
Command and Control Block registers, PIO and DMA data transfers, resets, and interrupts are
emulated. The host adapter contains a set of registers that shadow the contents of the traditional
device registers, referred to as the Shadow Register Block. All SATA devices behave like
Device 0 devices. Devices shall ignore the DEV bit in the Device/Head field of received
Register FISs, and it is the responsibility of the host adapter to gate transmission of Register FISs
to devices, as appropriate, based on the value of the DEV bit.
 
 
Search WWH ::




Custom Search