مخزن مؤقت للقرص

تحتوي لوحة التحكم في محرك الأقراص الصلبة هذا على دائرة متكاملة لذاكرة الوصول العشوائي (RAM) تُستخدم كمخزن مؤقت للقرص.
قرص صلب من ويسترن ديجيتال بسعة 500  جيجابايت مع ذاكرة تخزين مؤقتة 16 ميجابايت 

في مجال تخزين البيانات الحاسوبية ، تُعرف ذاكرة التخزين المؤقت للقرص (والتي تُسمى أحيانًا ذاكرة التخزين المؤقت للقرص أو ذاكرة التخزين المؤقت ) بأنها الذاكرة المدمجة في محرك الأقراص الصلبة (HDD) أو محرك الأقراص ذي الحالة الصلبة (SSD)، وتعمل كحلقة وصل بين باقي مكونات الحاسوب وقرص التخزين الصلب الفعلي أو ذاكرة الفلاش المستخدمة للتخزين. [ 1 ] تأتي محركات الأقراص الصلبة الحديثة مزودة بذاكرة تخزين مؤقت تتراوح سعتها بين 8 و256 ميجابايت ، بينما تصل سعة ذاكرة التخزين المؤقت في محركات الأقراص ذي الحالة الصلبة إلى 4 جيجابايت. [ 2 ]  

منذ أواخر ثمانينيات القرن الماضي، أصبحت جميع الأقراص المباعة تقريبًا مزودة بوحدات تحكم دقيقة مدمجة وواجهة إما من نوع ATA أو Serial ATA أو SCSI أو Fibre Channel . وتحتوي دوائر محرك الأقراص عادةً على ذاكرة صغيرة تُستخدم لتخزين البيانات الواردة والصادرة من أسطوانات القرص.

يختلف مخزن البيانات المؤقت للقرص فعليًا عن ذاكرة التخزين المؤقت للصفحات، التي يحتفظ بها نظام التشغيل عادةً في الذاكرة الرئيسية للحاسوب ، كما يختلف استخدامه عن ذاكرة التخزين المؤقت للصفحات. يتحكم المتحكم الدقيق في محرك الأقراص الصلبة بمخزن البيانات المؤقت للقرص، بينما يتحكم الحاسوب المتصل بالقرص بذاكرة التخزين المؤقت للصفحات. عادةً ما يكون مخزن البيانات المؤقت للقرص صغيرًا جدًا، ويتراوح حجمه بين 8 ميجابايت و4 جيجابايت، بينما تشغل ذاكرة التخزين المؤقت للصفحات عادةً كامل الذاكرة الرئيسية غير المستخدمة. في حين يُعاد استخدام البيانات في ذاكرة التخزين المؤقت للصفحات عدة مرات، نادرًا ما يُعاد استخدام البيانات في مخزن البيانات المؤقت للقرص. [ 3 ] من هذا المنطلق، يُعدّ مصطلحا " ذاكرة التخزين المؤقت للقرص" و "مخزن البيانات المؤقت" غير دقيقين؛ إذ يُطلق على ذاكرة المتحكم المدمج اسم " مخزن البيانات المؤقت للقرص" بشكل أدق .

لاحظ أن وحدات التحكم في مصفوفة الأقراص ، على عكس وحدات التحكم في الأقراص ، عادة ما يكون لديها ذاكرة تخزين مؤقت عادية تبلغ حوالي 0.5 - 8  جيجابايت.

الاستخدامات

القراءة المسبقة/القراءة اللاحقة

عندما يقوم متحكم القرص بتنفيذ عملية قراءة فعلية، يقوم المحرك بتحريك رأس القراءة/الكتابة إلى الأسطوانة الصحيحة (أو بالقرب منها). بعد فترة من الاستقرار، وربما بعض التعديلات الدقيقة، يبدأ رأس القراءة في التقاط بيانات المسار، وكل ما تبقى هو الانتظار حتى دوران القرص الدوار ليجلب البيانات المطلوبة.

البيانات التي تتم قراءتها قبل الطلب أثناء هذا الانتظار تكون غير مطلوبة ولكنها متاحة، لذلك يتم حفظها عادةً في مخزن القرص المؤقت في حالة طلبها لاحقًا.

وبالمثل، يمكن قراءة البيانات مجانًا بعد البيانات المطلوبة إذا كان بإمكان رأس القراءة/الكتابة البقاء على المسار الصحيح لأنه لا توجد عملية قراءة أخرى للتنفيذ أو يمكن أن تبدأ عملية التشغيل التالية لاحقًا وتكتمل في الوقت المحدد. [ 4 ]

إذا كانت عدة قراءات مطلوبة على نفس المسار (أو قريبة على مسار حلزوني)، فسيتم قراءة معظم البيانات غير المطلوبة بينها في كل من المقدمة والمؤخرة.

مطابقة السرعة

نادراً ما تتطابق سرعة واجهة الإدخال/الإخراج للقرص مع سرعة نقل البيانات من وإلى قرص التخزين الصلب . لذا، يُستخدم مخزن مؤقت للقرص لضمان عمل كل من واجهة الإدخال/الإخراج ورأس القراءة/الكتابة بأقصى سرعة.

تسارع الكتابة

قد تُرسل وحدة التحكم الدقيقة المدمجة في القرص إشارةً إلى الحاسوب الرئيسي تُفيد باكتمال عملية الكتابة فور استلامها، حتى قبل كتابة البيانات فعليًا على القرص. تُمكّن هذه الإشارة المبكرة الحاسوب الرئيسي من مواصلة العمل حتى قبل كتابة البيانات. قد يكون هذا الأمر خطيرًا بعض الشيء، لأنه في حال انقطاع التيار الكهربائي قبل تثبيت البيانات نهائيًا على الوسائط المغناطيسية، ستُفقد البيانات من ذاكرة التخزين المؤقت للقرص، وقد يُصبح نظام الملفات على القرص في حالة غير متناسقة.

في بعض الأقراص، قد تطول هذه الفترة الحرجة بين الإشارة إلى اكتمال الكتابة وإصلاح البيانات بشكل كبير، إذ يمكن تأجيل الكتابة إلى أجل غير مسمى بسبب الطلبات الواردة حديثًا. لهذا السبب، يُعدّ استخدام تسريع الكتابة أمرًا مثيرًا للجدل. مع ذلك، يمكن الحفاظ على اتساق البيانات باستخدام نظام ذاكرة مدعوم ببطارية لتخزين البيانات مؤقتًا، على الرغم من أن هذا النظام عادةً ما يوجد فقط في وحدات تحكم RAID المتطورة .

بدلاً من ذلك، يمكن ببساطة إيقاف التخزين المؤقت عندما تُعتبر سلامة البيانات أهم من سرعة الكتابة. وثمة خيار آخر يتمثل في إرسال البيانات إلى القرص بترتيب مُدار بعناية، وإصدار أوامر "مسح ذاكرة التخزين المؤقت" في المواضع المناسبة، وهو ما يُشار إليه عادةً بتطبيق حواجز الكتابة .

ترتيب الأوامر

تستطيع أقراص SATA الحديثة ومعظم أقراص SCSI استقبال أوامر متعددة أثناء تنفيذ أمر واحد عبر "تجميع الأوامر" (انظر NCQ و TCQ ). يخزن متحكم القرص المدمج هذه الأوامر حتى اكتمالها. ومن مزايا هذه التقنية إمكانية إعادة ترتيب الأوامر لمعالجتها بكفاءة أكبر، بحيث تُجمّع الأوامر التي تؤثر على نفس مساحة القرص معًا. وفي حال أشارت عملية قراءة إلى البيانات الموجودة في وجهة عملية كتابة مُدرجة في قائمة الانتظار، فسيتم إرجاع البيانات المراد كتابتها.

يُستخدم NCQ عادةً مع تمكين التخزين المؤقت للكتابة. في حالة أمر قراءة/كتابة FPDMA مع ضبط بت الوصول القسري للوحدة (FUA، انظر أدناه ) على 0 وتمكين التخزين المؤقت للكتابة، قد يرى نظام التشغيل أن عملية الكتابة قد انتهت قبل كتابة البيانات فعليًا على الوسائط. أما في حالة ضبط بت FUA على 1 وتمكين التخزين المؤقت للكتابة، فإن عملية الكتابة لا تُستكمل إلا بعد كتابة البيانات فعليًا على الوسائط.

التحكم في ذاكرة التخزين المؤقت من المضيف

مسح ذاكرة التخزين المؤقت

ستُكتب البيانات التي تم قبولها في ذاكرة التخزين المؤقت للكتابة على القرص الصلب إلى أسطوانات القرص، شريطة عدم حدوث أي نقص في البيانات نتيجةً لعيوب في البرامج الثابتة ، وعدم انقطاع التيار الكهربائي عن القرص قبل كتابة جميع البيانات المخزنة مؤقتًا إلى أسطوانات القرص. وللتحكم في ذاكرة التخزين المؤقت للكتابة، تضمنت مواصفات ATA الأمرَين FLUSH CACHE (E7h) و FLUSH CACHE EXT (EAh). يُجبر هذان الأمران القرص على إكمال كتابة البيانات من ذاكرته المؤقتة، وسيعود القرص إلى حالة "جيد" بعد كتابة البيانات الموجودة في ذاكرة التخزين المؤقت للكتابة إلى وسائط التخزين. بالإضافة إلى ذلك، عندما يتلقى القرص أمر STANDBY IMMEDIATE، فإنه على وسائط التخزين القرصية يُوقف رأس القراءة/الكتابة مؤقتًا، وعلى وسائط التخزين الفلاشية يحفظ جدول تعيين FTL . [ 5 ]

يقوم نظام التشغيل الحديث ( مثل ويندوز ولينكس ) بإرسال أوامر FLUSH CACHE و STANDBY IMMEDIATE إلى محركات الأقراص الصلبة أثناء عملية إيقاف التشغيل. كما يقوم نظام التشغيل الحديث بتنفيذ وظيفة sync() بشكل دوري، والتي عادةً ما تُنفذ أمر FLUSH CACHE. [ 6 ]

يُستخدم مسح ذاكرة التخزين المؤقت الإلزامي في لينكس لحواجز الكتابة في بعض أنظمة الملفات (على سبيل المثال، ext4 )، إلى جانب أمر الكتابة Force Unit Access لكتل ​​الالتزام في السجل . [ 7 ]

الوصول إلى وحدة القوة (FUA)

يُعدّ خيار " فرض الوصول إلى الوحدة " (FUA) أحد خيارات أوامر الكتابة في عمليات الإدخال/الإخراج، حيث يُجبر البيانات المكتوبة على الوصول مباشرةً إلى وحدة التخزين الدائمة. [ 8 ] على عكس الأوامر المقابلة التي لا تستخدم FUA، تقوم أوامر الكتابة FUA (WRITE DMA FUA EXT 3Dh، WRITE DMA QUEUED FUA EXT 3Eh، WRITE MULTIPLE FUA EXT CEh) بكتابة البيانات مباشرةً إلى وسائط التخزين، بغض النظر عن تفعيل خاصية التخزين المؤقت للكتابة في الجهاز. لن يُنهي أمر الكتابة FUA عمله حتى يتم كتابة البيانات إلى وسائط التخزين، وبالتالي تبقى البيانات المكتوبة بواسطة أمر الكتابة FUA المكتمل موجودة على وسائط التخزين الدائمة حتى في حال إيقاف تشغيل الجهاز قبل إصدار أمر FLUSH CACHE. [ 9 ] [ 10 ]   

ظهرت أوامر FUA في مجموعة أوامر SCSI ، ثم اعتمدتها SATA لاحقًا مع NCQ . تتميز FUA بدقة أكبر، إذ تسمح بتنفيذ عملية كتابة واحدة على وسائط تخزين ثابتة، وبالتالي يكون تأثيرها على الأداء العام أقل مقارنةً بالأوامر التي تُفرغ ذاكرة التخزين المؤقت للقرص بالكامل، مثل مجموعة أوامر ATA FLUSH CACHE. [ 10 ] [ 11 ]

يدعم نظام التشغيل Windows (Vista والإصدارات الأحدث) بروتوكول FUA كجزء من نظام الملفات NTFS للمعاملات ، ولكن فقط لأقراص SCSI أو Fibre Channel حيث يكون دعم FUA شائعًا. [ 12 ] من غير المعروف ما إذا كان محرك أقراص SATA الذي يدعم أوامر كتابة FUA سينفذ الأمر فعليًا ويكتب البيانات على أسطوانات القرص كما هو مطلوب؛ لذلك، يرسل نظاما التشغيل Windows 8 و Windows Server 2012 أوامر لمسح ذاكرة التخزين المؤقت للكتابة على القرص بعد عمليات كتابة معينة. [ 13 ]

على الرغم من أن نواة لينكس دعمت تقنية NCQ حوالي عام 2007، إلا أن خاصية SATA FUA لا تزال معطلة افتراضيًا بسبب مشاكل ظهرت عام 2012 عند اختبار دعم النواة لهذه الخاصية. [ 14 ] [ 15 ] تدعم نواة لينكس خاصية FUA على مستوى طبقة الكتل. [ 16 ]

انظر أيضاً

مراجع

  1. مارك كيرنين. "ما الذي يجب البحث عنه في القرص الصلب" . about.com . مؤرشف من الأصل بتاريخ 4 أبريل 2015. تم الاطلاع عليه بتاريخ 20 ديسمبر 2014. ذاكرة التخزين المؤقت للقرص هي مقدار من ذاكرة الوصول العشوائي (RAM) على القرص لتخزين البيانات التي يتم الوصول إليها بشكل متكرر.
  2. "محرك أقراص سامسونج SSD 860 PRO | محرك أقراص سامسونج V-NAND للمستهلكين | موقع سامسونج العالمي لأشباه الموصلات" . سامسونج . مؤرشف من الأصل في 6 أبريل 2018. تم الاطلاع عليه في 16 يوليو 2018. ذاكرة التخزين المؤقت: 4 جيجابايت DDR4 منخفضة الطاقة (4096 جيجابايت)
  3. كوزيروك، تشارلز م. (17 أبريل 2001). "حجم ذاكرة التخزين المؤقت الداخلية (المخزن المؤقت)" . دليل الحاسوب الشخصي . مؤرشف من الأصل في 30 ديسمبر 2018. تم الاطلاع عليه في 20 ديسمبر 2014 .
  4. أقراص لمراكز البيانات .
  5. هيتاشي (2006). مواصفات محرك الأقراص Deskstar 7K80، الإصدار الرابع (مراجعة 1.6) (12 سبتمبر 2006) النهائي . هيتاشي جلوبال ستوريدج تكنولوجيز. الصفحات 99، 130، 131. 
  6. https://manpages.debian.org/stable/e2fsprogs/ext4.5.en.html
  7. كريستوف هيلويغ؛ ثيودور تسو . "هل يرسل نظام الملفات ext4 أمر FUA لمسح ذاكرة التخزين المؤقت للقرص؟" . spinics.net . تاريخ الاسترجاع: 18 مارس 2014 .
  8. جوناثان كوربيت (18 أغسطس 2010). "نهاية الحواجز" . LWN.net . تاريخ الاسترجاع: 27 يونيو 2015 .
  9. "تكنولوجيا المعلومات - الملحق 8 - مجموعة أوامر ATA/ATAPI (ATA8-ACS)" (ملف PDF) . T13/1699-D، المراجعة 6أ، 6 سبتمبر 2008. المعهد الوطني الأمريكي للمعايير. مؤرشف من الأصل (ملف PDF) في 6 أغسطس 2020. تم الاطلاع عليه في 14 ديسمبر 2020 .
  10. 1 2 غريغوري سميث (2010). PostgreSQL 9.0: الأداء العالي . Packt Publishing Ltd. ص 78. ISBN  978-1-84951-031-8.
  11. بروس جاكوب؛ سبنسر نغ؛ ديفيد وانغ (2010). أنظمة الذاكرة: ذاكرة التخزين المؤقت، وذاكرة الوصول العشوائي الديناميكية، والقرص . مورغان كوفمان. ص 734. ISBN  978-0-08-055384-9.
  12. "نشر نظام الملفات NTFS للمعاملات (ويندوز)" . Msdn.microsoft.com. 2013-12-05 . تم الاطلاع عليه بتاريخ 2014-01-24 .
  13. "الوصول القسري للوحدة | العمل الجاد في مجال تكنولوجيا المعلومات" . Workinghardinit.wordpress.com. ١٢ أكتوبر ٢٠١٢. مؤرشف من الأصل في ١٢ يناير ٢٠١٤. تم الاطلاع عليه في ٢٤ يناير ٢٠١٤ .
  14. "تراجع متعلق بالتخزين في linux-next 20120824" . 12-09-2012 . تم الاطلاع عليه بتاريخ 27-06-2015 .
  15. "إلغاء " libata: تفعيل اكتشاف أخطاء قرص SATA على الوضع الافتراضي " " . GitHub . 2012-09-13 . تم الاسترجاع في 2015-06-27 .
  16. "وثائق نواة لينكس: Documentation/block/writeback_cache_control.txt" . kernel.org . 2013-08-12 . تم الاطلاع عليه بتاريخ 2014-01-24 .