بعض الأفكار السخيفة لمصنعي الأقراص الصلبة
خسر محرك الأقراص الثابتة مؤخرًا في المعركة ضد محركات الأقراص ذات الحالة الصلبة ، والتي يوجد على جانبها السرعة وعدم الخوف من الذعر من الاهتزازات ، مما يوفر نفسه فقط بسبب التكلفة الرخيصة لوضع غيغابايت من البيانات والمزيد من دورات إعادة الكتابة. دعونا نفكر في ما إذا كانت الأفكار القليلة التالية ستساعد في إعطاء السبق لمحرك الأقراص الصلبة.يتكون القرص الصلب من قرص واحد أو عدة أقراص رقيقة ذات سطح مغناطيسي حديدي مركب على عمود ، يتم لفه بواسطة المحرك بسرعة عدة آلاف دورة في الدقيقة. الجزء المنفصل هو كتلة من الرؤوس التي تتحرك على طول نصف قطر القرص. إذا تم استخدام أنظمة سابقة قامت بتحريك كتلة الرؤوس في خط مستقيم (مثل النظام المستخدم في CD / DVD) ، فعادة ما يتم الآن استخدام الروك. يتم تثبيت الرؤوس في أحد طرفي العارضة ، ويوجد نظام متحرك على الجانب الآخر. في البداية ، كانت الماكينات مسؤولة عن جميع الحركات ، ولكن بعد أن تعلموا كيفية صنع مغناطيس قوي "كثيرًا ورخيصًا" ، بدأ استخدام آلية تفاعل المجال المغناطيسي للمغناطيس والمجالات الكهرومغناطيسية لفائف الأسلاك التي تم تزويد التيار الكهربائي بها.للتخزين ، يوفر القرص الصلب ثلاثة أبعاد:- ilinder - هي مسافة معينة من مركز القرص ، تتم خلالها عمليات القراءة والكتابة ، وقبل بدء تشغيلها ، تحتاج إلى تحريك كتلة الرأس إلى أسطوانة واحدة أو أخرى ؛
- الرأس - كل جانب من القرص على سطحه يمكن وضع البيانات فيه ، والذي يتم وضع الرأس فوقه على التوالي ، هناك أيضًا مفهوم "مسار" يحدد البيانات الموضوعة على سطح معين على أسطوانة معينة ؛
- مقطع - جزء من دائرة المسار يتم وضعه على أحد أسطح العمل التي توجد بها قطعة من البيانات بالفعل.
لقراءة مقطع البيانات ، يجب على القرص الثابت نقل كتلة الرؤوس إلى الاسطوانة المطلوبة ، وتحديد تدفق البيانات من الرأس المطلوب والانتظار حتى يتحول القرص إلى الجزء المطلوب تحت كتلة الرؤوس وعندها فقط يمكن قراءة البيانات أو كتابتها.يختلف وقت الوصول للبيانات اعتمادًا على مدى حظك ، وهناك العديد من المواقف.الحالة 1: أنت محظوظ ، وبعد تلقي أمر للقراءة ، رأى القرص الصلب أن كتلة الرأس تقع على الأسطوانة المطلوبة ، وبدأ في قراءة البيانات وقراءة الجزء الأول هو ما تحتاجه. لحساب مدى حظك ، دعنا نحاول حساب الوقت الذي ستستغرقه هذه العملية:حدد المتغيرات:- t1 هو الوقت الذي تم فيه إرسال الأمر إلى محرك الأقراص الثابتة ؛
- t2-time لمعالجة الأمر بواسطة القرص الثابت ؛
- t3- ;
- t4- ;
- t5- ;
- t6-
تميل t3 و t4 للحالة الموصوفة إلى الصفر وسنقوم بتجاهلها ، بالإضافة إلى وقت إرسال الأمر t1 (بالنسبة إلى 10-12 بايت من الأمر سيكون هذا 1/100 جزء من البيانات) ووقت معالجة الأمر t2 (يعتمد على مدى تعقيد الحسابات والسرعة المعالج ، ولكننا نفترض أنه سريع بما يكفي لتجاهل هذه الفترة).لا يزال هناك t5 و t6 لحساب هذه القيم ، نأخذ خصائص الواجهات ونستمر في القراءة من القرص (سرعة قراءة عدد معين من المقاطع في صف واحد من مسار واحد). من أجل بساطة الحسابات ، نحدد أن مقطعًا من 1000 بايت (في الواقع هو 512 أو 4096 بايت من البيانات بالإضافة إلى كمية معينة من بيانات الخدمة) ، وقراءة تيار 50 ميجا بايت / ثانية (هناك أكثر ، هناك أقل).t5 - 1000 بايت * (1 / 50،000،000 بايت / ثانية) = 20 pers لكل قراءة / كتابة قطعة واحدةt6 - يعتمد على سرعة نقل البيانات ، دعنا نحسبها لواجهات مختلفة:IDE- DMA33 - 33 ميجابت / ثانية = 1000 * (1/33 000000) = 30 ميكرومتر (أكثر من الوقت الذي تستغرقه القراءة)
- DMA66 - 66 ميجابايت / ثانية = 1000 * (1/66 000000) = 15 ميكرو ثانية
- DMA100-100 ميجا بت / ثانية = 1000 * (1/1000000000) = 10 ميكرو ثانية
SATA- SATA I -1500 جيجابت / ثانية = 150 ميجابايت / ثانية = 1000 * (1500/1000 000) = 6.6 ميكرو ثانية
- SATA II / SAS -3000 جيجابت / ثانية = 300 ميجابت / ثانية = 1000 * (1/300000 000) = 3.3 μs
- SATA III / SAS 2-6000 Gb / s = 600 ميجابايت / ثانية = 1000 * (1/600000 000) = 1.6 μs
لماذا قمت بتقسيم سرعة SATA على 10 على الرغم من أن البايت هو 8 بت؟ والحقيقة هي أن الإرسال يحدث في الوضع التسلسلي ومن أجل نقل البيانات بشكل موثوق ، إما استخدام إشارات المزامنة (بتات البدء والإيقاف ، منفذ مرحبا COM ) أو يتم ترميز البيانات حتى لا تحصل على قناة مشبعة ، يتم استخدام الترميز على الرغم من من خلال قيمة تدفق البايت الأصلي (كل 0 أو 255) ، ونتيجة لذلك نحصل على مزيج مع عدد متساوٍ من الأصفار والأصفار ، كما ينخفض تردد الإشارة بسبب تحويل ترميز الإشارة (نعم ، التردد أقل والسرعة أعلى).بشكل عام ، نحصل على ذلك في حالة الحظ ، سوف تتلقى بياناتك في 21.6 - 50 μs ، ومن حسابات هذه الحالة تفهم سبب قيام الشركات المصنعة بإنشاء واجهات جديدة عالية السرعة ، على الرغم من حقيقة أن سرعة القراءة من الأقراص أبطأ بكثير (كلما كانت واجهة الاتصال أسرع ، أسرع ، يمكن نقل بياناتك من لحظة أنها جاهزة بين المرسل والمستلم).الحالة 2: أنت لست محظوظًا للغاية ، وتحتاج إلى نقل كتلة الرأس إلى أسطوانة أخرى ، وبعد العثور على الأسطوانة المطلوبة ، يجب الانتظار حتى يدور القرص 180 درجة للوصول إلى الجزء المطلوب.لسوء الحظ ، لا أعرف وقت تحريك الرأس ووضعه ، ولكن يمكنك حساب مقدار الوقت المستغرق لتحريك المقطع في دائرة ، وأخذ وقت تحديد الموقع يساوي نصف وقت دوران القرص ، وهذه القيمة معروفة ، ولذا فنحن نعتبر وقت دوران القرص (نصف لتحديد الموقع نصف دورة القرص القراءة).من أجل الحساب ، تحتاج إلى معرفة عدد الدورات التي تحدث في الثانية ، ثم معرفة الفترة بقسمة 1 على عددالدورات : 5400 دورة في الدقيقة - 1 (5400/60)= 11 مللي ثانية 5900 دورة في الدقيقة - T = 10 مللي ثانية7200 دورة في الدقيقة - T = 8 مللي ثانية10000 دورة في الدقيقة - T = 6 مللي ثانية15000 دورة في الدقيقة - T = 4 مللي ثانيةهل تجد أي معاني مألوفة؟ حق! متوسط وقت الوصول إلى البيانات للقرص يساوي تقريبًا أو يساوي فترة دوران القرص ، لماذا المتوسط؟ لأن هناك:الحالة 3: إذا كنت محظوظًا ، فإن كتلة الرأس على الأسطوانة الأولى ، والجزء على آخر ، استغرق وقت تحريك كتلة الرأس تقريبًا أو نفس فترة دوران القرص بعد وضع كتلة الرأس على الأسطوانة المطلوبة ، وقراءة البيانات بدأت ، تبين أننا حصلنا على المقطع التالي بعد الجزء المطلوب ، ومن أجل قراءته ، عليك الانتظار حتى يقوم القرص بعمل ثورة أخرى ، بينما لا أقول شيئًا عن الحالة 4: عندما لا تكون البيانات من أول (وربما لاحقًا) الوقت كانوا العلاقات العامة اقرأ (احسب كم يستغرق الأمر بسهولة ، Minium * T 2 vol.).ما الاستنتاج الذي يمكن التوصل إليه في هذه المرحلة؟ "يوريكا: تحتاج إلى تدوير المغزل إلى 100500 ثورة!". ولكن ليس كل شيء بسيطًا جدًا ، إذا كنت تدور على دائري ، فيجب أن تعرف أنه إذا لم يكن دائري الغزل سريعًا جدًا ، فمن السهل البقاء عليه في أي جزء ، إذا كان دائري غير مبرر بسرعة كبيرة ، فإن الطريقة الوحيدة للبقاء هي أن تكون أقرب إلى المركز وتمسك بشدة. ماذا سيحدث للأقراص إذا كانت غير مفكوكة بقوة: أولاً ، ستبدأ حواف القرص في التشتت في اتجاهات مختلفة بسبب قوى الطرد المركزي ، وسيبدأ القرص بالتوسع في البداية في اتجاهات مختلفة ، وبما أن سرعة الدوران لا تنخفض ، ويزداد حجم القرص ، تزداد الحواف بالطرد المركزي أيضًا القوى ، مما يؤدي إلى تدمير الروابط الجزيئية ونحصل على "bigbadabum" ، وعدة قطع من القرص.هذا بسبب عمل قوى الطرد المركزي ، تجعل الأقراص عالية السرعة قطرًا أصغر بحيث لا تمزق.هنا تظهر أول فكرة سخيفة : لماذا من المستحيل جعل كتلتين من الرؤوس متقابلة بدلاً من واحدة (وإذا نجحت مع اثنتين ، فجرّب 3 ، 4 يمكن حتى 5 ، 6). ما يعطينا ذلك:
1) مع زيادة عدد الأجزاء ، تنخفض "موثوقية" النظام ، ولكن نظرًا لأننا نحصل على نظام نسخ احتياطي ، فإننا "نزيد من الموثوقية".2) تتحرك كتل الرأس بشكل متزامن (لا تعمل النبضات الناتجة عن حركة الرؤوس أثناء قراءة / كتابة البيانات) ، وإذا تم تخطي المقطع للتو ، فستحصل كتلة الرأس الثانية على فرصة لقراءته من خلال T rev / 2 (لهذا ، في الحالة الكلاسيكية ، نحتاج فإنه سوف تدور المغزل مرتين بسرعة).3) تعمل كتل الرأس على مهام منفصلة (لا يكون تأثير نبضات الحركة لكتلة الرأس ضروريًا لعمليات القراءة / الكتابة) ، حيث يمكن لوحدة التحكم معرفة مكان هذا الجزء أو ذلك الجزء تحريك كتلة الرؤوس الأكثر فائدة في الموضع ، لتقليل الوقت الضائع على دوران المغزل والعدد سوف تتضاعف عمليات الإدخال / الإخراج.4) هناك حالتان عندما نحتاج إلى معالجة كمية كبيرة من البيانات في وقت واحد:-نسخ / نقل ملف كبير (Hi Blu-ray) ؛-قراءة-تعديل-كتابة ملف واحد (مرحبا لقواعد البيانات).في الإصدار الكلاسيكي من محرك الأقراص الثابتة ، عند النسخ ، نقرأ كتلة البيانات في المخزن المؤقت ، وننقل كتلة الرؤوس إلى جزء آخر ، ونكتب البيانات ، ونرجع لجزء جديد من البيانات ، مع كمية صغيرة من المخزن المؤقت ، نفقد قدرًا كبيرًا من الوقت عند نقل كتلة الرؤوس بكمية كبيرة من البيانات . في حالة تعديل ملف واحد ، نقوم بملء المخزن المؤقت وتعديله (يمكن القيام بذلك بالتوازي مع القراءة ، بمجرد استلام البيانات الأولى في التكوين المطلوب) ، وبعد التعديل الذي نكتبه. في مخطط معدل ، يمكننا نسخ الملف بأقصى سرعة ، وقراءة البيانات من كتلة واحدة من الرؤوس ، وكتابة الكتلة الثانية بأعلى سرعة ممكنة ، والتي ستعتمد بشكل أساسي على تجزئة الملف ، وهذا ممكن الآن لمحركات الأقراص الصلبة ، وهذا ممكن إذا تم استخدام محركي أقراص ، قراءة واحدة ،اكتب لآخر.الجانب الثاني من تشغيل القرص الثابت هو موثوقيته ، وعلى وجه الخصوص الأعطال النموذجية ، نحذف الأعطال المنطقية للبرنامج ، وهذا يحتاج إلى إصلاح في مكان آخر ، سأعلن فقط عن الأعطال التي تعتمد على ميزات التصميم للقرص الصلب:- تشويش المغزل أثناء بدء التشغيل (حسنًا ، هناك فرصة لتمرير المغزل بإجراء خارجي ، وبدء القرص ، وقراءة البيانات وإرسالها إلى الراحة) ؛
- تشويش المغزل أثناء التشغيل (هنا تعتمد العواقب بالفعل على حظك) ؛
- , , , () ( , );
- , , , , , ;
- , , , , .
يعلم الجميع أن أكبر قيمة ليست تكلفة القرص الصلب (hi $ -y) ، ولكن تلك الجيجابايت من "المعلومات المفيدة" التي تم جمعها بعناية. من أجل حفظ البيانات ، يتم استخدام أنظمة RAID بمستويات مختلفة ، والتي من الضروري استخدام العديد من محركات الأقراص الثابتة. هذا هو المكان الذي ظهرت فيه الفكرة السخيفة الثانية : استخدام تقنية RAID داخل محرك أقراص واحد.في حالة فشل القرص بالكامل ، بالطبع لن يتم حفظه ، ولكن في حالة فقدان البيانات من مقطعين أو اثنين ، سيساعد ذلك تمامًا في تصحيح الموقف.النهج الأول ، الذي يتم تنفيذه بسهولة بواسطة البرنامج ، هو وضع السطح بالكامل ، أو البيانات الهامة أو الهامة فقط (الجزء 0 ، جدول التقسيم ، ملفات تكوين النظام) باستخدام تقنية RAID 5: A + B = Sum ، الحصول على جزئين من أصل ثلاثة يمكننا بسهولة استعادة العنصر الثالث ، يتم استخدام النسخة المتطابقة أو التكرار على نطاق واسع ، على سبيل المثال ، يتم تكرار العديد من إدخالات جدول الملفات الرئيسية في NTFS ، ولكن هذا لا يوفر الكثير في حالة حدوث فشل خطير ، بالإضافة إلى ذلك ، تفقد "المرآة" نصف الحجم في الضعف ، بينما في حالة جمع الإحصائيات شرائح غير قابلة للقراءة ، من الممكن إدراك إمكانية وضع البيانات على "A + B + C + D + E + E + F + G = I" سنفقد 1/9 من الحجم ، ولكننا سنزيد من فرصة استعادة البيانات في حالة فقدان مقطع بيانات واحد.النهج الثاني المتعلق بتعديل منطق عمل وحدة التحكم هو استخدام البيانات مع المجموع الاختباري لوضع البيانات ليس على مسار واحد ، ولكن على الأسطح المختلفة للأقراص ، سيحفظ هذا التطبيق الوضع عندما توقف أحد رؤساء العمل عن الاستجابة تمامًا ، نقرأ دائمًا ستتلقى القيم من الأسطح الأخرى البيانات الأولية ، ولكن من خلال حفظ البيانات يمكننا تهدئة المصاب رسميًا.في الواقع ، ستكون الفكرة الثالثة السخيفة (على الرغم من أنها تتعلق بالفعل بمحركات أقراص خارجية كفئة) ما يلي: دعم المفوضين لتخصيص الملفات ودعم نظام الملفات لوحدة تحكم القرص.بفضل: owniumo
لديك بالفعل: محرك أقراص ثابت حركي لتخزين الأشياء القابلة للتطوير
كيف سيساعد هذا: المعالج المركزي سينقل فقط واصف الملف ، والقطعة التي يحتاجها ، متوقفًا عن تشتيت المقاطعات المرتبطة ببناء سلسلة FAT ، على سبيل المثال ، وسيحسب جهاز التحكم مكان تخزين القطع المحددة وسيعطي وحدة التحكم فقط الجزء المطلوب من الملف.يمكنك تنفيذ هذا:- تطوير واستبدال البرامج الثابتة الخاصة بالمصنع (ربما على الأجهزة الحالية ، ولكنها مكلفة من حيث التعديلات اللاحقة ، وعدد خيارات القرص ، مرحبًا بمطوري تطبيقات الهاتف المحمول) ؛
- تطوير نظام ملفات يدعم البرامج الثابتة لمصنعي الأقراص ؛
- تطوير وتنفيذ لغة برمجة في البرنامج الثابت يمكنك من خلالها وصف العمل بنظام الملفات
هنا في الواقع ثلاث أفكار سخيفة يصعب اختبارها بنفسك ، لكنها لا تمنحك نومًا هنيئًا بالليل.ملاحظة: إن الاستخدام العشوائي للعلامات التجارية المسجلة أو براءات الاختراع عشوائي. جميع الأفكار الأصلية متاحة للاستخدام بموجب اتفاقية ترخيص النمل . Source: https://habr.com/ru/post/ar383225/
All Articles