نظام إدارة الأوامر الأصلي

تتيح تقنية NCQ للقرص نفسه تحديد الترتيب الأمثل لاسترجاع الطلبات المعلقة. وهذا قد يسمح، كما هو الحال هنا، للقرص بتلبية جميع الطلبات في عدد أقل من الدورات وبالتالي في وقت أقل.

في مجال الحوسبة ، تُعدّ تقنية Native Command Queuing ( NCQ ) امتدادًا لبروتوكول Serial ATA ، حيث تُمكّن محركات الأقراص الصلبة من تحسين ترتيب تنفيذ أوامر القراءة والكتابة الواردة داخليًا. يُقلّل هذا من حركة رأس القراءة/الكتابة غير الضرورية، مما يُحسّن الأداء (ويُقلّل من استهلاك القرص بشكل طفيف) في التطبيقات التي تتضمّن طلبات قراءة/كتابة متزامنة متعددة، وهو ما يحدث غالبًا في تطبيقات الخوادم .

تاريخ

سبقت تقنية Native Command Queuing نسخة Parallel ATA من تقنية Tagged Command Queuing (TCQ). وقد قيّد شرط استخدام محولات ناقل المضيف ATA لبروتوكولات أجهزة ناقل ISA للتفاعل مع نظام التشغيل محاولة ATA لدمج TCQ . وساهمت الزيادة الكبيرة في استهلاك وحدة المعالجة المركزية والتحسن الطفيف في الأداء في عدم قبول تقنية ATA TCQ في السوق.

يختلف بروتوكول NCQ عن بروتوكول TCQ في أن كل أمر في NCQ له نفس الأهمية، لكن محول ناقل المضيف في NCQ يقوم أيضًا ببرمجة محرك DMA الخاص به باستخدام معلمات DMA التي يوفرها المعالج المركزي أثناء تنفيذ تسلسل الأوامر، بينما في TCQ، تتم مقاطعة المعالج المركزي أثناء استعلامات الأوامر، مما يتطلب منه تعديل محرك DMA الخاص بمحول ناقل المضيف ATA . يُفضل استخدام بروتوكول NCQ لأن محرك الأقراص لديه معرفة أدق بخصائص أدائه، وقادر على مراعاة موضعه الدوراني. يبلغ الحد الأقصى لطول قائمة الانتظار في كل من NCQ وTCQ 32 أمرًا معلقًا. [ 1 ] [ 2 ] نظرًا لأن بروتوكول ATA TCQ نادر الاستخدام، فإن Parallel ATA (ووضع IDE في بعض الشرائح) يدعم عادةً أمرًا معلقًا واحدًا فقط لكل منفذ.

لتفعيل تقنية NCQ، يجب أن تكون مدعومة ومفعلة في محول ناقل SATA وفي القرص الصلب نفسه. يجب تحميل برنامج التشغيل المناسب في نظام التشغيل لتفعيل NCQ على محول ناقل SATA. [ 3 ]

تدعم العديد من الشرائح الحديثة واجهة التحكم المضيف المتقدمة (AHCI)، مما يسمح لأنظمة التشغيل بالتحكم بها بشكل شامل وتفعيل تقنية NCQ. يدعم نظام DragonFly BSD واجهة AHCI مع NCQ منذ الإصدار 2.3 في عام 2009. [ 4 ] [ 5 ] تدعم نواة لينكس واجهة AHCI بشكل أصلي منذ الإصدار 2.6.19، ويدعمها نظام FreeBSD بشكل كامل منذ الإصدار 8.0. كما يدعم نظاما التشغيل Windows Vista و Windows 7 واجهة AHCI بشكل أصلي، ولكن يجب تفعيل دعم AHCI فيهما (عبر خدمة msahci) يدويًا من خلال تعديل سجل النظام إذا لم يكن دعم وحدة التحكم موجودًا أثناء التثبيت الأولي. لا تُمكّن واجهة AHCI في Windows 7 تقنية NCQ فحسب، بل تُمكّن أيضًا دعم TRIM على محركات أقراص SSD (مع البرامج الثابتة الداعمة لها ). تتطلب أنظمة التشغيل القديمة مثل Windows XP تثبيت برنامج تشغيل خاص بالبائع (على غرار تثبيت وحدة تحكم RAID أو SCSI ) حتى في حالة وجود AHCI على محول ناقل المضيف، مما يجعل الإعداد الأولي أكثر صعوبة وتحويلات التثبيتات الحالية صعبة نسبيًا لأن معظم وحدات التحكم لا يمكنها تشغيل منافذها في وضع AHCI-SATA/IDE/legacy المختلط.

محركات الأقراص الصلبة

أداء

أظهر اختبار أُجري عام 2004 على محرك الأقراص NCQ من الجيل الأول (Seagate 7200.7 NCQ) أنه على الرغم من أن تقنية NCQ حسّنت أداء IOMeter، إلا أن أداء تطبيقات سطح المكتب انخفض. [ 6 ] ووجدت مراجعة أخرى أُجريت عام 2010 تحسينات بنسبة 9% تقريبًا (في المتوسط) عند تفعيل تقنية NCQ في سلسلة من اختبارات تعدد المهام لنظام التشغيل Windows. [ 7 ]

قد يؤثر NCQ سلبًا على مُجدول الإدخال/الإخراج في نظام التشغيل ، مما يُقلل الأداء؛ [ 8 ] وقد لوحظ ذلك عمليًا على نظام لينكس مع RAID-5 . [ 9 ] لا توجد آلية في NCQ تُمكّن المُضيف من تحديد أي نوع من المواعيد النهائية للإدخال/الإخراج، مثل عدد مرات تجاهل طلب لصالح طلبات أخرى. نظريًا، يُمكن لمحرك الأقراص تأخير طلب مُدرج في قائمة الانتظار لفترة زمنية غير مُحددة أثناء خدمته لطلبات أخرى (ربما جديدة) تحت ضغط الإدخال/الإخراج. [ 8 ] نظرًا لأن الخوارزميات المُستخدمة داخل البرامج الثابتة لمحركات الأقراص لترتيب إرسال NCQ غير معروفة للعامة، فإن هذا يُضيف مستوى آخر من عدم اليقين لأداء الأجهزة/البرامج الثابتة. أظهرت الاختبارات التي أُجريت في جوجل حوالي عام 2008 أن NCQ يُمكن أن يُؤخر عملية الإدخال/الإخراج لمدة تصل إلى 1-2 ثانية. يتمثل الحل المُقترح في أن يقوم نظام التشغيل بتقليل عدد عمليات الإدخال/الإخراج في قائمة انتظار NCQ بشكل مُصطنع في وقت مُبكر لتلبية احتياجات التطبيقات ذات زمن الاستجابة المنخفض في الوقت المُناسب. [ 10 ]

في بعض البرامج الثابتة لمحركات الأقراص، مثل محرك WD Raptor الذي صدر عام 2007 تقريبًا، يتم تعطيل خاصية القراءة المسبقة عند تمكين NCQ، مما يؤدي إلى تباطؤ الأداء التسلسلي. [ 11 ]

تستفيد محركات الأقراص الصلبة SATA بشكل كبير من قدرتها على تخزين أوامر متعددة في قائمة انتظار لأحمال العمل المتوازية. أما بالنسبة لمحركات الأقراص الصلبة NVMe القائمة على PCIe ، فقد تم زيادة عمق قائمة الانتظار لدعم ما يصل إلى 65,535 قائمة انتظار، تحتوي كل منها على ما يصل إلى 65,535 أمرًا.

السلامة (FUA)

من الميزات الأقل شهرة لتقنية NCQ، على عكس سابقتها ATA TCQ، أنها تتيح للمضيف تحديد ما إذا كان يرغب في تلقي إشعار عند وصول البيانات إلى أسطوانات القرص، أو عند وصولها إلى ذاكرة التخزين المؤقت (الذاكرة الداخلية). وبافتراض تطبيقها بشكل صحيح على مستوى الأجهزة، تضمن هذه الميزة اتساق البيانات عند استخدام ذاكرة التخزين المؤقت للقرص بالتزامن مع استدعاءات النظام مثل fsync . [ 12 ] ويُطلق على علامة الكتابة المرتبطة بها، والمستعارة أيضًا من SCSI، اسم " فرض الوصول إلى الوحدة" (FUA). [ 13 ] [ 14 ] [ 15 ]

محركات الأقراص الصلبة

تُستخدم تقنية NCQ أيضًا في محركات الأقراص الصلبة الحديثة حيث يواجه محرك الأقراص تأخيرًا على النظام المضيف، وليس العكس. على سبيل المثال، يستخدم محرك الأقراص الصلبة X25-E Extreme من إنتل تقنية NCQ لضمان وجود أوامر جاهزة للمعالجة على محرك الأقراص أثناء انشغال النظام المضيف بمعالجة مهام وحدة المعالجة المركزية. [ 16 ]

كما تتيح تقنية NCQ لوحدة التحكم SSD إكمال الأوامر بشكل متزامن (أو بشكل متزامن جزئيًا، على سبيل المثال باستخدام خطوط الأنابيب) حيث يسمح التنظيم الداخلي للجهاز بمثل هذه المعالجة.

يدعم معيار NVM Express (NVMe) أيضًا نظام قوائم الانتظار للأوامر، بصيغة مُحسَّنة خصيصًا لمحركات الأقراص الصلبة SSD. [ 17 ] يسمح NVMe بوجود قوائم انتظار متعددة لوحدة تحكم وجهاز واحد، مما يتيح في الوقت نفسه أعماقًا أكبر بكثير لكل قائمة انتظار، وهو ما يتوافق بشكل أدق مع طريقة عمل مكونات محرك الأقراص الصلبة SSD الأساسية. [ 18 ]

انظر أيضاً

مراجع

  1. ورقة بيضاء بصيغة PDF حول NCQ من إنتل وسيغيت
  2. "المجلد الأول من المسودة النهائية لمعيار ATA-7" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 2012-02-06 . تم الاطلاع عليه بتاريخ 2007-01-02 .
  3. "نظرة عامة على نظام إدارة الأوامر الأصلي لـ SATA II"، ورقة بيضاء من إنتل، أبريل 2003.
  4. ماثيو ديلون (2009-06-04). ""ردًا على: DragonFly-2.3.1.165.g25822 master sys/dev/disk/ahci Makefile TODO ahci.c ahci.h ahci_attach.c ahci_cam.c ahci_dragonfly.c ahci_dragonfly.h atascsi.h"" .
  5. ماثيو ديلون (2009). "ahci(4) — واجهة تحكم مضيف متقدمة لـ Serial ATA" . مرجع BSD المتقاطع . DragonFly BSD .
  6. "محرك الأقراص الصلبة باراكودا 7200.7 NCQ من سيجيت - التقرير التقني - الصفحة 13" . التقرير التقني. 17 ديسمبر 2004. تاريخ الاطلاع: 11 يناير 2014 .
  7. "تعدد المهام باستخدام نظام إدارة الأوامر الأصلي - التقرير التقني - الصفحة 5" . التقرير التقني. 3 أغسطس 2005. تاريخ الاسترجاع: 11 يناير 2014 .
  8. يو ، واي جيه؛ شين، دي آي؛ إيوم، إتش؛ يوم، إتش واي (2010). "NCQ مقابل مُجدوِل الإدخال/الإخراج". معاملات ACM في التخزين . 6 : 1-37 . doi : 10.1145/1714454.1714456 . S2CID 14414608 . أُرشف بتاريخ 11 يناير 2014 في أرشيف الإنترنت (Wayback Machine) .
  9. "محرك الأقراص الصلبة - ضعف أداء برنامج RAID 5 في نظام لينكس مع NCQ" . موقع Server Fault . تاريخ الاسترجاع: 11 يناير 2014 .
  10. ^ Gwendal Grignou، NCQ Emulation، ملخص نقاش FLS'08 (ص 109) الشرائح
  11. "مارك لورد: ردًا على: انخفاض معدل نقل البيانات عالي الدقة مع تفعيل NCQ؟" . LKML. 2007-04-03 . تم الاطلاع عليه بتاريخ 2014-01-11 .
  12. مارشال كيرك ماكوسيك . "الأقراص من منظور نظام الملفات - ACM Queue" . Queue.acm.org . تم الاطلاع عليه بتاريخ 11 يناير 2014 .
  13. ↑ غريغوري سميث ( 2010). PostgreSQL 9.0: الأداء العالي . Packt Publishing Ltd. ص 78. ISBN  978-1-84951-031-8.
  14. "نظام ترتيب الأوامر الأصلي" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 17-05-2004.
  15. جوناثان كوربيت (18 أغسطس 2010). "نهاية الحواجز" . LWN.net . تاريخ الاسترجاع: 27 يونيو 2015 .
  16. غاسيور، جيف (23 نوفمبر 2008). "محرك الأقراص الصلبة X25-E Extreme من إنتل - الآن مع ذاكرة فلاش أحادية المستوى" . تقرير تقني .
  17. ديف لاندسمان (9 أغسطس 2013). "AHCI وNVMe كواجهات لأجهزة SATA Express - نظرة عامة" (ملف PDF) . SATA-IO . تم الاطلاع عليه بتاريخ 2 أكتوبر 2013 .
  18. "نظرة عامة على NVM Express" . nvmexpress.org . تم الاطلاع عليه بتاريخ 26-11-2014 .