Sunday, December 6, 2009

AHCI vs IDE

Been troubled by AHCI when trying to install xp on my laptop. Seems like xp couldn't be installed on SATA HDD using AHCI setting (it would always give me the "blue screen of death" when trying to load windows setup).

After some googling, I found that this could be worked around the hard way by rebuilding the xp cd setup to insert SATA driver. But, better yet, the easiest way is to just change the setting of HDD in BIOS from AHCI to IDE, and voila, xp setup run smooth again like usual.

So, what is AHCI ?? here's some explanation that I found from http://expertester.wordpress.com/2008/07/24/ahci-vs-ide-–-benchmark-advantage/ :


AHCI vs IDE

Recently, more and more user start to notice (note : not enthausiast) their main board or notebook has AHCI, instead of IDE (or legacy IDE). Most of us already aware what is IDE but what the heck is AHCI? What advantage could be gain from AHCI? Is AHCI is future thing of good old IDE interface. Will it slow down my system? Will it conflict my system?

What is AHCI ?

AHCI stand for Advance Host Controller Interface. AHCI is a hardware mechanism that allows software to communicate with Serial ATA (SATA) devices (such as host bus adapters) that are designed to offer features not offered by Parallel ATA (PATA) controllers, such as hot-plugging and native command queuing (NCQ). The specification details a system memory structure for computer hardware vendors in order to transfer data between system memory and the device.

Many SATA controllers can enable AHCI either separately or in conjunction with RAID support. Intel recommends choosing RAID mode on their motherboards (which also enables AHCI) rather than the plain AHCI/SATA mode for maximum flexibility, due to the issues caused when the mode is switched once an operating system has already been installed.

AHCI is fully supported out of the box for Microsoft Windows Vista and the Linux operating system from kernel 2.6.19. NetBSD also supports drivers in AHCI mode out of the box in certain versions. Older operating systems require drivers written by the host bus adapter vendor in order to support AHCI.

Advantage of AHCI

  1. Hot-Plugging (will not cover here as it will not affect computer performance)
  2. Native Command Queuing (might improve computer/system/hard disk responsiveness, espcially in multi-tasking environment

Will it slow down my computer

Several websites claim, NCQ (one of AHCI component) will cause performance degradation in single threaded benchmark, but other author claim otherwise. Let put our think hat here.

Their claims might correct at certain extent, but it is hard to prove that those single threaded benchmark will reflect real world application. Nowadays, hard disk is the slowest component in any modern PC (except we are using SSD). Antivirus, firewall, anti-spyware, windows update, background defragmentation, indexing (search), user applications (firefox, word, media player) ; all contribute to super multi-tasking, which I believe NCQ (AHCI) will show it advantage. So, in order to have better understanding on how NCQ (AHCI) could improve system responsiveness, let see what is NCQ actually is.

So, what is NCQ?

In principle, Native Command Queuing is relatively simple. It allows the drive to execute write /read commands that are transmitted randomly in order to optimise the movement of the reading head.



Speed is increased but there is also an impact on power consumption and noise level which is reduced. Of course, applications don’t have to work simultaneously and don’t have to wait for the previous result to send the next command. This of course isn’t always possible. Another possibility in using NCQ is multitasking in the case where you run two very heavy applications simultaneously from the drive point of view.

To better explain this situation, imagine an elevator, in which two people enter simultaneously on the ground floor. The first pushes the 12th floor button and the second the 2nd floor. It would be counterproductive to go to the 12th floor and then to the 2nd floor. The principle of NCQ was already in the ATA norm since 1997 with TCQ (Tagged Command Queuing). This heavier protocol could sometimes lead to significant performance losses in the case of low loads (no or very little command reorganisation to do) and has been integrated in a limited number of controllers. Hitachi supports it on 7K250 drives, like Western and the Raptor WD740GD, while on the chipset side, we can count on NVIDIA but not Intel.

SATA 3.0 Gbits /s defines a new speed of data transmission for the Serial ATA interface. Initially, SATA reached up to 1.5 Gbits /s, which really corresponds to 150 mega-octets per second as 20% of information is dedicated to error correction. The transfer rate is now increased to 300 MB/s but we have to keep in mind that this is the interface speed. It has nothing to do with disc speed alone. At most, cache speed would be affected.

For NCQ to be enabled, it must be supported and turned on in the SATA host bus adapter and in the hard drive itself. The appropriate driver must be loaded into the operating system to enable NCQ on the host bus adapter. Many newer chipsets support the Advanced Host Controller Interface (AHCI), which should allow a generic driver supplied by the operating system to control them and enable NCQ. In fact, newer mainstream Linux kernels support AHCI natively. Unfortunately, Windows XP requires the installation of a vendor-specific driver even if AHCI is present on the host bus adapter. Windows Vista corrects this situation by including a generic AHCI driver.


No comments:

Post a Comment