تتطور الصناعة يوماً بعد يوم و بشكل متسارع , فالمتابع الجيد يعرف مدي تطور المعالجات المركزية CPUs فى العقد الأخير بعد إعلان AMD عن أول معالجات بقتنية 64Bit تلاها إعلان INTEL عن معالجات CORE وكانت تلك الفترة بمثابة طفرة فى عالم صناعة المعالجات وقفزت بسقف الأداء عالياً حتي وصلنا بعيداً , فالبداية كانت إنطلاقة ثورية غيرت مجري الصناعة تماماً .
حتي فى مجال المعالجات الرسومية GPUs فالوضع تغير كثيراً في العقد الأخير فى مجال الرسوميات ثلاثية الأبعاد و حتي يومنا هذا فنحن ننتظر المعالجات رسومية Pascal من NVIDIA و ARCTIC ISLANDS من AMD .
وحتي فى مجال الشبكات والاتصالات وصلنا لسرعات مرتفعة جداً .
ويبدو أننا في الحقبة القادمة سنمر بفترة أخري لنشهد تطوير وسائط التخزين , التي أصبحت حالياً هي العائق المنيع أمام الوصول لأقصي سرعة ممكنة من جهازك فتخيل معي أنك مثلاً تريد نقل بعض الملفات ذات الأحجام الكبيرة نسبياً ولنقل مثالاً للتبسيط لعبة بحجم 60 جيجابايت من قرص H.D.D إلى آخر, فكم من الوقت ستستغرقه تلك العملية ؟ بالطبع الكثير والعائق هنا ليس المعالج المركزي CPU بل قرص التخزين HDD نفسه لأنه بطيئ . حتي وإن زادت سرعة لفات رأس القراءة إلى 7200 لفة بالدقيقة RPM أو حتي 10,000RPM إو ان انتقلنا من منفذ SATA II إلى SATA III فالوضع سواء . العيب في التقنية بحد ذاتها لأنها تعتمد في عملها على الحركة الميكانيكة لا التخزين الرقمي .
ويبدو أننا فى سبيلنا لنري طفرة فى السنين القادمة لتغيّر من مفهوم سرعات وسائط التخزين حتي نجد بديلاً لأقراص H.D.D المعتادة البطيئة جداً والتي تعد كا فى وجه الطائرة إذا ما قورنت بحلول التخزين الرقمي كأقراص ال SSDs مثلاً . وهذا ما دفع الصناعة دفعاً باتجاه أقراص الحالة الثابتة SSDs التى تستخدم شرائح NAND فى التخزين , ولا جدوي في إعتقادي من سرد لإثبات أن أقراص SSDs أسرع بكثير من HDDs , فلربما الجميع يمتلك واحداً الآن ويعرف فرق الأداء جيداً .
أقراص الحالة الثابتة SSD وإن لم تكن تعرف عنها الكثير فيمكنك قراءة مقالتنا التي شرحنا فيها الفوارق بين ال SSDs وال HDDs .
ويمكنك أيضاً مراجعة كيفية عمل شرائح NAND وأنواعها الثلاثة من هذا الموضوع . أما عن الأداء فيمكنك الرجوع لأحد مراجعاتنا للتعرف على أداء تلك الأقراص .
فأقراص SSD يعوّل عليها فى المستقبل أن تحل محل أقراص HDD كلياً بعد أن يتم انتاجها بسعات أكبر ويقل ثمنها مقارنة بأقراص HDD . ومنذ وقت قريب نجد العديد من الشركات تطور من شرائح NAND وابتكرت SAMSUNG شرائح V-NAND التى تساهم بشكل كبير فى تقليل عدد الشرائح الموجودة فى الSSD لتقديم نفس المساحة التخزينية .
أما عن حديث عن السرعات التى تستطيع الوصول إليها تلك الشرائح نظرياً فسنصل إلى 2.2GB/s لقرص بحجم 256GB . ولكن لماذا لانحصل على تلك السرعة فعلياً ؟ مالذي يعيق تلك الشرائح من إطلاق عنانها فى سباق السرعة ؟ الإجابة ببساطة منافذ SATA والتى تحد كثيراً من أداء تلك الشرائح بالإضافة إلى عدة عوامل جانبية بسيطة أيضاً ألخصها فى تلك النقاط :
- المنافذ والممرات التى تصل القرص بشريحة اللوحة الأم PCH وهي فى حالتنا هذه هي منافذ SATA III .
- البروتوكول البرمجي للتعامل مع تلك الممرات .
- سرعة القنوات بين شرائح ال NAND و المتحكمات الموجودة على أقراص SSD.
- سرعة الناقل بين الشريحة PCH والمعالج .
- تطوير شرائح NAND نفسها.
ولكن يظل العائق الأكبر هو النقطة الثانية حيث اعتماد أقراص SSD على واجهة SATAIII وبروتوكول AHCI الذي يقم باندويث قليل نسبياً .
فبأي شكل من الأشكال تطوير شرائح NAND وحده لن يكفي , فالقرص حتي وإن كان سريعاً يجب أن يتصل بالمعالج المركزي بممرات سريعة حتي لا تحدث عنق زجاجة , وهنا نأتي لموضوع المقال الذي سردنا من أجله تلك المقدمة الطويلة ألا وهو منفذ SATA ويظل السؤال المهم ماذا حدث في العامين الماضيين؟
فى الحقبة الماضية كان الإعتماد الكلي ولازال بنسبة كبيرة على أقراص HDD البطيئة لأنها كانت وكما أسلفنا تعتمد على الحركة الميكانيكية ولا نستطيع حتي أن نصل إلى كامل الباندويث أو السرعة لمنفذ SATA 1.5Gbps العتيق .
ولكن لم يكن لمنظمة SATA-IO أي مانع من تطوير المنفذ في تلك الفترة حتي وصلنا اليوم إلى منفذ SATA III والذي يصل لباندويث 6Gbit/s وهو الأمر الذي أصبح ملحاً بعد فترة من إطلاقه لاستخدامه مع أقراص SSD التي تستخدم شرائح NAND تستطيع أن تتخطي حاجز ال 6Gbit/s الذي يقدمه منفذ SATA III , لنثبت ذلك الأمر دعونا نقوم بعملية حسابية صغيرة .
قراءة 16KB من البيانات تستغرق 115 ميكرو ثانية من شريحة NAND بحجم 128Gbit بدقة 20nm أي سرعة 140Mbyte/s , وقرص بحجم 256GB سيحمل 16 شريحة من شرائح 128Gbit NAND – للتحويل من Gbit إلى GByte نقسم على 8 أي أن الشريحة بججم 16GB – ف 16 شريحة بحجم 16GB يشكلون قرص 256GB , أي بحسبة بسيطة نجد أن القرص يحتاج إلى 2.2GB/s وهو ما يعتبر 3 أضعاف ما يقدمه منفذ SATA III 6Gbit/s حيث أن 6Gbit/s تحوّل إلى 0.75GByte/s فقط . لاحظ الفرق بين GBit و GByte ولا تنخدع .
كل هذا بالطبع يقع فى الجانب النظري حيث أن قراءة البيانات تحتاج أكثر من عملية وهو ما يؤثر سلباً على تلك الأرقام .
فبداية تنتقل البيانات من شرائح NAND إلى ما يسمي المتحكم عن طريق قنوات نقل ذات سرعة أقل نسبياً ولكن يبدو أن هذا لن يكون عائقاً بعد ذلك مع شرائح NAND من أجيال ONFI 3.x أو Toggle-Mode 2.0 التى ستتيح قنوات نقل من شرائح الNAND حتي المتحكم بباندويث 3.2GByte/s ثمانية القناة مما يلغي احتمالية وجود عائق مثل هذا . وبهذا نكون قد قضينا على أول عائق من ثلاث ويبقي لدينا أكبرهم وهو الممر الذي تنتقل به البيانات من قرص SSD إلى شرائح اللوحة الأم كشرائح Z170 مثلاً عن طريق منافذ SATA III .
دعونا نتفق أن منفذ SATA III بسعته التى تصل إلى 6Gbit/s لا يصلح لاستخدامه مع شرائح NAND أبداً فحتي مع أول ظهور للمنفذ في عام 2011 عندما قامت INTEL بدمجه مع شرائحها وانتشر مع جيل معالجات IVY-Bridge كانت متحكمات SF-2000 من SandForce تستطيع أن تستغل هذا المنفذ .
إذاً فنحن وصلنا إلى مربط الفرس وهو أن منافذ SATA III لن تكون مستقبل ال SSD ويجب أن يتم تطويرها أوحتي تطوير غيرها حتي نصل بالأداء إلى عنانه .
قررت SATA-IO المسئولة عن تطوير المنفذ أن تتخذ الخطوة التالية ولكن ماهي تلك الخطوة ؟ SATA 12Gbit/s ؟ الاجابة لا .
لماذا إذا ؟ الجواب ببساطة أن 12Gbit/s أو 1.5GByte/s تظل حلاً غير جذرياً ولن يكون حلاً للمدي الطويل فنحن نتجه دائماً إلى الاتجاه إلى حلول المدي الطويل خصوصاً فى المنافذ حتي لا نغير منفذاً كل عام ويضطر المستهلك من تغيير لوحته الأم كل فترة لتغيير القرص مثلاً . فما الفائدة من الانتقال إلى SATA 12Gbit/s وتغييره بعد سنة لأنه لم يصبح كافياً وشرائح NAND تريد المزيد ؟ فما الحل إذا؟
الحل الذي توجهت نحوه الكثير من الأفكار هو استغلال ممرات PCI-E التى تتيح باندويث كبير جداً .
فتم الإعلان منذ عامين عن منفذ SATA Express وهو ما تبنته INTEL مؤخراً فى شرائح Z97 التى لم يكن هناك أي تغيير أضافته عن سابقتها Z87 سوي دعم SATA express و منافذ M.2 التى سينالها أيضاً حظٌ كبير فى السطور القادمة من المقال .
كانت منافذ SATA Express بمثابة استغلال منفذ SATA لممرات PCI-E وبدعم لممرات PCI-E Gen2-3 وهو ما يتيح له باندويث كبير خصوصاً اذا تم اعتماد ممرات gen3 .
إستغلال ممرات PCI-E بدلاًمن SATA ليس بالأمر الجديد وهو ما اعتدنا عليه فى الحقيقة فى الفترة السابقة مع انتاج PCI-E SSDs ولكنهاموجهة لفئة الخوادم وليست للمستخدمين , ولكن الآن SATA Express تستغل ممرات PCI-E فبدلاً من تركيب SSD على هيئة بطاقة سيمكنك تركيبه كقرص 2.5″ عن طريق Sata Express أو ببساطة ربط القرص بالمنفذ عن طريق الكيبل . يميز هذا المنفذ أيضاً أنك تستطيع استغلاله كمنفذين SATAIII ولكن في هذا الحال سيعتمد على ممرات SATA III وهو ما يعتبر ميزة لدعم الأقراص القديمة backward compatibility حيث يمكنك دعم SATA Express و SATA III في نفس الوقت وهو شيئ مميز فى صالح هذا المنفذ , ولكن على الرغم من كل هذا فلم يُعتمد على هذا المنفذ أبداً حتي منذ إطلاقه فى لوحات Z97 و لم نشهد إنتاج أقراص تستخدمه , لماذا ؟
الجواب يتلخص فى نقطتين:
- العيب الأول وهي ال Form Factor أو الأبعاد الفيزيائية وهو شيئ مهم جداً فى الحقيقة لسبب و هو تعدد المنافذ الذي تعودنا عليه من منافذ SATA III لصغر حجمها حتي وصلت بعض اللوحات الأم إلى 24 منفذ SATA ولكن تخيل معي كيف ستسع لوحة أم إلى 10 منافذ SATA Express وهو بهذا الحجم ؟ تخيل معي أيضاً كيف سيصبح مشهد الكابلات العريض الذي يذكرنا بالماضي و كابلات IDE ؟
- العيب الثاني هو محدودية دعمه لممرات PCI-E التي تقتصر على دعم ممرين اثنين فقط X2 مما يحد من الباندويث إلى 1969MByte/s أو 1.9GByte/s فقط والذي يعتبر سقفاً يسهل تخطيه في المستقبل القريب وكما قلنا نحن نبحث عن حل على المدي الطويل لا نحتاج لتغييره كل عام مع تطور الأقراص .
أما عن منفذ M.2 فى لوحات Z97 فبالمقارنة مع منفذ SATA Express فهم يشتركون فى الكثير من أوجه التشابه ويختلفون أيضاً فى كثير من الأوجه , حيث يشترك كلاهما في قدرتهما على العمل مع ممرات PCI-E جالبين أضعاف الباندويث مقارنة بممرات SATAIII. ويتفقون أيضاً بقدرتهم على التعامل مع الجيل الثاني والثالث من PCI-E , أما عن أوجه الإختلاف فهي مربط الفرس فى النزاع حيث يتفوق منفذ SATA Express في أنه يمكنك استغلاله وتوصيل اثنين SATA III ان كنت تريد احد الاقراص العاملة به , أما M.2 فلا يمكنك توصيل به كابلات SATA III إلا عن طريق محول خارجي .
وثاني نقطة يختلف فيها المنفذين هو استغلال منفذ M.2 إلى 4 ممرات PCI-e أي x4 والتي تسمح بباندويث حتي 4GByte/s تقريباً . وهي نقطة فيصلية تتفوق فيها منافذ M.2 حيث أن منافذ SATA Express تدعم حتي منفذين فقط .
وثالث نقطة اختلاف هو أن منفذ SATA Express يعتمد على التوصيل بالكابلات أما منفذ M.2 فهو يعتمد على التوصيل المباشر وهو أمر مميز في الحلول المحمولة كأجهزة اللابتوب أما عن الحاسب الشخصي فمن الأفضل التوصيل عن طريق كابلات , فالتوصيل المباشر لن يكون حلاً مميزاً في حالة تعدد الأقراص وهنا يأتي دور منفذ sff-8639 المعاد تسميته إلى U.2 حتي يسهل نطقه بعيداً عن المسميات الكودية .
فهو يأتي بجميع مواصفات منفذ M.2 فيستطيع أن يستغل حتي 4 ممرات PCI-E gen3 وييعتمد على التوصيل عن طريق كابلات بعكس m.2 اللذي يعتمد على التوصيل المباشر و أيضاً حجمه صغير ومقبول ممايتيح تعدد المنافذ يعيبه فقط أن ارتفاعه يصل إلى 15 ميلليمتر وهو تقريباً ضعف ارتفاع منافذ SATA و SATA express التى تصل إلى 7 ميلليمتر .
ظهر هذا المنفذ لأول مرة تحت مسمي U.2 مع أقراص INTEL 750 Series SSDs التى تتواجد على هيئتين الاولى كبطاقة HHHF يتصل بشقوق PCI-E والثانية في هيئة قرص 2.5″ و يتعامل هذا القرص بواجهة U.2 والتى لم تكن متوفرة فى اللوحات حينها فأنتجت ASUS محولاً من M.2 إلى U.2 وتلتها بعد ذلك Gigabyte و MSI و ASRock وسيعتمد عليه إلي حين يتم دمجه فى المستقبل بشكل مباشر فى اللوحات , أما عن اللوحات التي تدعمه حتي الآن فهي:
تقدم ASUS العديد من اللوحات التي تحمل U.2 بدون الاحتياج إلي محول وهي :
Maximus VIII Extreme و VIII Hero Alpha وVIII Impact بالاضافة الى Z170Premium مع بعض الأخبار عن VIII Formula أيضاً , أما عن باقي اللوحات فيمكنك استخدام محول Adapter من M.2 إلى U.2 .
أما عن MSI و Gigabyte فلا تتواجد لوحات تقدم منفذ U.2 من جيل Z170 ولكن أعلنت MSI عن إرفاقها لمحول Adapter من M.2 إلى U.2 فى لوحاتها وبذلك تكون جميع لوحاتها الداعمة ل M.2 داعمة أيضاً U.2 .
ننتقل هنا من نقطة الممرات إلى نقطة البروتوكولات البرمجية وهي مرتبطة ارتباطاً وثيقاً بالممرات , ألا وهو NVMe أو NVMHCI و يأتي اختصاراً لـ Non-Volatile Memory Host Controller Interface Specification وهو يأتي ليكرس هذا التقدم فى صورة ناتج فعلى وليستغل ممرات PCI-E بديلاً عن بروتوكول AHCI المستخدم حالياً مع واجهات SATA .
فالحلول العتادية Hardware وتطويرها ليست معنية وحدها بتقديم أداء أفضل , بل يجب تطويع تلك القدرات العتادية من قبل البروتوكولات البرمجية التى تسهل استغلال هذا الهاردوير وتقديم أقصي أداء ممكن , وهنا ظهر بروتوكول NVMe المصمم للعمل مع ممرات PCI-E ليستغل شرائح الNAND و أقراص ال SSD أقصي استغلال .
ماهي NVMe ؟ وماذا تقدم مواجهة ب AHCI ؟
اختصاراً للحديث فالبروتوكول البرمجي AHCI المستخدم حالياً على نطاق واسع فى ظل انتشار منافذ SATA III مبني للعمل مع تلك المنافذ وأصبح من الصعب جداً تطويعه للعمل مع شرائح ال NAND حيث أن معدل الزمني للتأخير هو 6 ميكرو ثانية وهو زمن كبير جداً يؤثر بالسلب على الأداء العام وهو ما نلاحظه دائماً بأقراص الSSD الحالية العاملة بواجهة SATA III AHCI .
فهنا جاء دور العديد من الشركات أبرزهم INTEL و SAMSUNG لتطوير بروتوكول يتعامل مع ممرات PCI-E .
والناتج هو بروتوكول NVMe ولعل أبرز ما قدمه هو تقليل زمن التأخير حتي 2.8 ميكرو ثانية فقط وهو أمر مذهل , وأما عن معدل التأخير الكلي بداية من الاستجابة للتطبيق البرمجي وحتي عمليات قراءة شرائح الNAND فيمكننا فى السمتقبل تقليل زمن التأخير خمس مرات أقل فحالياً نتعامل مع معدل تأخير 100 ميكرو ثانية مقابل 20 ميكرو ثانية فى المستقبل بعد العديد من عمليات التطويع التى لا سعة لذكرها حالياً .
و ليس فقط هذا هو وجه التفوق الوحيد فبروتوكول NVMe يستطيع أن يقدم IOPS يفوق ال AHCI أضعاف أضعاف المرات كما تظهره النتائج فى الجدول التالى :
هو معدل كبير جداً والفضل يعود لتقليل زمن التأخير كثيراً .
ولكن بعد كل هذا تقف الآن عقبة كبيرة أمامنا وهي من أين سنحصل على ممرات PCI-E ؟ فنحن الآن جهزنا كل شيئ تقريباً حتي وصلنا إلي منفذ U.2 و بروتوكول NVMe وطورنا شرائح NAND لاستغلال ممرات PCI-E , ولكن هل تتوفر بالعدد المطلوب لاستغلالها ؟ سنعرف هذا فى السطور القادمة.
سأخص بحديثي ذكر معالجات INTEL ولن أتطرق إلى AMD ليس تعسفاً مني ولكن لأنها غابت عن تقديم أي أجيال جديدة منذ فترة بعيدة جعلتنا ننسي أنها تصنع معالجات مركزية CPUs بالأصل مع التنبيه أن هناك لوحات أطلقت مؤخراً تدعم M.2 ولكن بممرات PCI-E gen2 وليس gen3 .
فمعالجات INTEL هي المهيمنة حالياً وحتي فترة كتابة هذا المقال ولا نعلم إن كانت معالجات ZEN القادمة من AMD ستحدث تغييراً أم لا .
فمعالجات INTEL الرئيسية وحتي الجيل الرابع والخامس Haswell و broadwell لا تقدم سوي 16 ممراً من PCI-E Gen3 فقط يذهبون جميعهم للبطاقة الرسومية ولا يستطيع أن يزاحمهم وسائط التخزين فال16 ممر هم للبطاقات الرسومية فقط .
فأما عن حلول التخزين فكالعادة حيث يتم تقديم الممرات الخاصة بهامن خلال الشريحة PCH كشريحة Z97 التي تقدم في تلك الأجيال ممرات PCI-E Gen2 وليس الجيل الثالث حيث كان الاعتماد الكلى على SATA III في وسائط التخزين لا PCI-E فلم يكن هناك داع لزيادة أعداد تلك الممرات.
وأيضاً كان الناقل الذي يربط المعالج بالشريحة DMI2.0 في الأجيال قديمة بطئ نسبياً حيث يكون من ثمان ممرات بباندويث يصل إلى 2GB/s وهو ما يحد من قدرة الأقراص كثيراً خصوصاً إن قمت باستغلال لأحد منافذ USB مثلاً في نفس الوقت فسيشكل الناقل مثابة عنق زجاجة وسيزاحم الممرات فى الباندويث , فماذا إذاً ؟ فنحن نواجه مشكلة نقص عدد الممرات ونوعها و مشكلة ضعف الناقل بين ال PCH و والمعالج .
قامت INTEL بطرح جيل معالجات Skylake مؤخراً من سلسلة أجيال المعالجات الرئيسية وقد اتهمه البعض أنه لم يقدم جديداً سوي دعم ذواكر DDR4 , فالاتهام خطأ ولكن يحتمل بعض الصواب , كيف ذلك ؟ بالفعل على مستوي المعالج لم يقدم سوي دعماً لذواكر DDR4 و قدم زيادة طفيفة فى الأداء ولكن لم تزد الممرات PCI-E التي تقدم من المعالج نفسه حتي تنافس أخوتها من سلسلة extreme – كمعالج 5960X مثلا – واقتصرت على 16 ممر فقط , أما عن الجانب الخطأ فهو أن إطلاق تلك المعالجات الجديدة صاحب طقم شرائح جديد وهو Z170 الذي جاء بتغيير جذري فبدلاً من 8 ممرات من الجيل الثاني PCI-E Gen2 في الأجيال السابقة أصبح الآن عدد الممرات يصل إلى 20 ممر من الجيل الثالث PCI-E Gen3 تقدم من الشريحة PCH Z170 .
ولم تكتف INTEL بذلك فقد طورت الناقل بين المعالج والشريحة إلى ما أسمته DMI 3.0 و هو القادر على توفير باندويث حتي 3.93GB/s الذي في اعتقادي سيتم تطويره في المستقبل ليتيح أكثر من ذلك حتي لا يشكل عنق زجاجة.
وهو ما يتجه صوب الانتقال الكامل نحو NVMe و أقراص U.2 وبالفعل كانت لوحة ASUS Maximus VIII Extreme تقدم منفذ U.2 مع توقع لأن ينتشر بصورة أكبر في الأجيال القادمة من اللوحات الأم ليشق طريقه ويحل محل SATA III بالنسبة لأقراص SSD .
أما عن المستقبل البعيد فيبدو أن هذا العقد سيتسم بتطوير حلول وسائط التخزين بصورة كبيرة جداً فقد أعلنت INTEL بالتعاون مع micron إلى الابتكار نوع جديد من الذواكر تحت مسمي 3D Xpoint وهو ما يرجح أنه أسرع 1000 مرة من شرائح NAND فيرسم صورة تقريبية للمستقبل وكيف ستكون ملامحه مع تضخم أحجام الملفات الهائل وكم البيانات وتلك السرعة الكبيرة وكيف سننظر حينها إلى أيامنا هذه ونتعجب كيف تعايشنا مع ما نراه سريعاً حالياً .