AHCI (رابط کنترل کننده میزبان پیشرفته)

Advanced Host Controller Interface یا AHCI یک استاندارد فنی برای رابطی است که نرم افزار را قادر می سازد با دستگاه های Serial ATA (SATA) ارتباط برقرار کند. این دستگاه‌های کلاس اتصال اجزای جانبی (PCI) داده‌ها را بین حافظه سیستم و رسانه ذخیره‌سازی SATA منتقل می‌کنند.

تاریخ/توسعه
در سال ۲۰۰۴، اینتل مشخصات AHCI را برای تعریف رفتار عملکردی و رابط نرم افزاری AHCI منتشر کرد. این مشخصات همچنین یک روش استاندارد برای برنامه ریزی آداپتورهای SATA-AHCI ارائه می دهد.

این مشخصات توسط AHCI Contributor Group که متشکل از سخت‌افزار، نرم‌افزار و فروشندگان OEM بود، توسعه داده شد و ریاست آن بر عهده اینتل بود. شرکت‌های این گروه شامل AMD، Dell، Marvell، Maxtor، Microsoft، Red Hat، Seagate و StorageGear بودند.

AHCI بخش مهمی از ایجاد شتاب برای فناوری SATA II بود، و یک رابط کنترل کننده استاندارد را ارائه می کرد که ویژگی های پیشرفته SATA را که با رابط استاندارد قدیمی تر Integrated Drive Electronics (IDE) در دسترس نبود، بهینه می کند. نسخه ۱.۳.۱ جدیدترین تکرار مشخصات AHCI است.

نحوه عملکرد AHCI
اکثر مادربردها AHCI را به طور پیش‌فرض در رابط میان‌افزار توسعه‌پذیر یکپارچه (UEFI) یا BIOS فعال کرده‌اند. مادربردهای قدیمی ممکن است حالت IDE را به طور پیش فرض فعال کرده باشند و قبل از نصب سیستم عامل (OS) باید به AHCI تغییر دهید.

AHCI در ویندوز ویستا و نسخه های بعدی ویندوز پشتیبانی می شود. لینوکس از نسخه ۲.۶.۱۹; OS X; و سیستم عامل های متن باز مختلف، مانند OpenBSD، NetBSD و FreeBSD. در حالی که ویندوز ویستا و ویندوز ۷ شامل درایور AHCI هستند، این سیستم‌عامل‌ها اگر در کنترلر درایو بوت فعال نباشد، AHCI را نصب نمی‌کنند.

هارد دیسک‌های SATA و درایوهای حالت جامد (SSD) چندین حالت کار را ارائه می‌دهند: IDE، AHCI یا RAID که معمولاً AHCI را فعال می‌کند. با این حال، تغییر تنظیمات BIOS از حالت IDE به AHCI پس از نصب سیستم عامل آسان نیست. ویندوز دارای یک راه حل رجیستری است که به AHCI اجازه می دهد پس از نصب سیستم عامل فعال شود. نسخه‌های قدیمی‌تر سیستم‌عامل برای پشتیبانی از AHCI به درایورهای مخصوص سخت‌افزار نیاز دارند.

به عنوان یک پروتکل ذخیره سازی سنتی توسعه یافته برای هارد دیسک و نوار، AHCI برای مدیریت یک صف درخواست ذخیره سازی طراحی شده است. برای AHCI، این صف دارای عمق – تعداد درخواست‌های ورودی/خروجی است که می‌توان در انتظار سرویس‌دهی در صف پورت نگه داشت .

مزایا و معایب AHCI
AHCI ویژگی های پیشرفته SATA را فعال می کند، مانند تعویض و فرمان (NCQ). Hot swapping باعث می‌شود درایوهای SATA بدون نیاز به خاموش کردن رایانه خاموش شوند.

NCQ روشی را بهینه می‌کند که SSD و هارد دیسک‌ها درخواست‌های هم‌زمان برای داده را رسیدگی می‌کنند، حرکت هدهای خواندن و نوشتن را به حداقل می‌رساند و زمان دسترسی به هارد دیسک‌ها را با استفاده از AHCI افزایش می‌دهد. در حافظه های SSD، NCQ عملکرد انتقال فایل های بزرگ را بهبود می بخشد.

یکی از نکات منفی AHCI، تأخیر بالا در استفاده از SSD است، زیرا این مشخصات برای چرخش رسانه ذخیره سازی و نه فلاش ایجاد شده است. همچنین، عمق صف محدود AHCI به این معنی است که تعداد درخواست‌های ورودی/خروجی می‌تواند به راحتی به یک گلوگاه تبدیل شود. برای جلوگیری از شکست درخواست‌های ورودی/خروجی به دلیل اینکه از عمق صف فراتر رفته‌اند، مدیریت بیشتری لازم است.

AHCI در مقابل NVMe
Nonvolatile memory express (NVMe) یک رابط ارتباطی است که برای فلش NAND و SSDهای با کارایی بالا با استفاده از فناوری اسلات کارت PCI Express (PCIe) توسعه یافته است.

از آنجایی که به طور خاص برای SSD ها توسعه داده شده است، NVMe بسیار سریعتر از AHCI است، تأخیر را کاهش می دهد و IOPS بهتری ارائه می دهد. به طور خاص، NVMe تعداد صف های ورودی/خروجی ممکن را با عمق صف تا ۶۵۰۰۰ افزایش می دهد.