الصفحة الصفرية
الصفحة الصفرية أو صفحة الأساس هي كتلة الذاكرة في بداية مساحة عناوين الحاسوب ؛ أي الصفحة التي يبدأ عنوانها من الصفر. يعتمد حجم الصفحة على السياق، وتختلف أهمية ذاكرة الصفحة الصفرية مقارنةً بالذاكرة ذات العناوين الأعلى باختلاف بنية الجهاز. على سبيل المثال، تُعامل معالجات Motorola 6800 و MOS Technology 6502 أول 256 بايت من الذاكرة معاملةً خاصة، [ 1 ] بينما لا تفعل ذلك العديد من المعالجات الأخرى.
على عكس الأجهزة الحديثة، كانت سرعة ذاكرة الوصول العشوائي (RAM) في الحواسيب خلال سبعينيات القرن الماضي مماثلة لسرعة المعالجات المركزية (CPU). لذا، كان من المنطقي استخدام عدد قليل من المسجلات والاعتماد على الذاكرة الرئيسية كمخزن إضافي للمسجلات. في الأجهزة ذات ناقل عناوين عريض نسبيًا (16 بت) وناقل بيانات ضيق نسبيًا (8 بت) ، قد تستغرق عملية حساب عنوان في الذاكرة عدة دورات. كان عنوان الصفحة الصفرية (بايت واحد) أصغر حجمًا، وبالتالي أسرع في القراءة والحساب من المواقع الأخرى، مما جعل الصفحة الصفرية مفيدة للبرامج عالية الأداء.
أصبحت معالجة الصفحة الصفرية ذات أهمية تاريخية في الغالب، حيث أن التطورات في تكنولوجيا الدوائر المتكاملة جعلت إضافة المزيد من المسجلات إلى وحدة المعالجة المركزية أقل تكلفة وعمليات وحدة المعالجة المركزية أسرع بكثير من عمليات الوصول إلى ذاكرة الوصول العشوائي.
مقاس
يُحدد تصميم المعالج الدقيق الحجم الفعلي لصفحة الصفر بالبايت ، وفي التصاميم القديمة، غالبًا ما يساوي أكبر قيمة يمكن الوصول إليها بواسطة سجلات فهرسة المعالج. على سبيل المثال، تحتوي المعالجات ذات 8 بت المذكورة سابقًا على سجلات فهرسة 8 بت وحجم صفحة يبلغ 256 بايت. لذلك، تمتد صفحة الصفر الخاصة بها من العنوان 0 إلى العنوان 255.
أجهزة كمبيوتر ذات عدد قليل من مسجلات وحدة المعالجة المركزية
في الحواسيب القديمة، مثل PDP-8 ، كانت الصفحة الصفرية تتمتع بنمط عنونة سريع خاص ، مما سهّل استخدامها للتخزين المؤقت للبيانات وعوّض عن قلة سجلات وحدة المعالجة المركزية . كان لدى PDP-8 سجل واحد فقط، لذا كانت عنونة الصفحة الصفرية ضرورية. في طرازات PDP-10 KA-10 الأصلية، كانت السجلات المتاحة هي ببساطة أول 16 كلمة، بطول 36 بت ، من الذاكرة الرئيسية. يمكن الوصول إلى هذه المواقع كسجلات ومواقع ذاكرة.
على عكس الأجهزة الحديثة، كانت ذاكرة الوصول العشوائي (RAM) في حواسيب السبعينيات بنفس سرعة المعالج (CPU). لذا، كان من المنطقي استخدام عدد قليل من المسجلات، مع توظيف الذاكرة الرئيسية كمخزن إضافي للمسجلات. في الحواسيب ذات ناقل عناوين 16 بت وناقل بيانات 8 بت ، كان الوصول إلى مواقع الصفحة الصفرية أسرع من الوصول إلى المواقع الأخرى. ولأن مواقع الصفحة الصفرية يمكن الوصول إليها بواسطة بايت واحد ، فإن التعليمات اللازمة للوصول إليها تكون أقصر، وبالتالي أسرع في التحميل.
على سبيل المثال، تحتوي عائلة معالجات MOS Technology 6502 على مسجل واحد للأغراض العامة فقط: المُراكم. وللتغلب على هذا القيد وتحقيق ميزة في الأداء، صُممت معالجات 6502 للاستفادة بشكل خاص من الصفحة الصفرية، حيث توفر تعليمات ذات معاملات مكونة من 8 بتات بدلاً من 16 بت، مما يقلل من دورات جلب البيانات من الذاكرة. تُكتب العديد من التعليمات بشكل مختلف لعناوين الصفحة الصفرية وعناوين الصفحات الأخرى؛ ويُطلق على هذا في مصطلحات معالجات 6502 اسم " عنونة الصفحة الصفرية" (ويُطلق عليه اسم " العنونة المباشرة" في مصطلحات معالجات Motorola 6800 ؛ كما يشير مركز التصميم الغربي 65C816 إلى عنونة الصفحة الصفرية باسم " عنونة الصفحة المباشرة ").
LDA $ 12 ; عنونة الصفحة الصفرية LDA $ 0012 ; عنونة مطلقةفي لغة التجميع 6502، تُنجز التعليمات المذكورة أعلاه نفس المهمة: تحميل قيمة موقع الذاكرة $12في .Aالمسجل (المراكم) ( $حيث يُمثل رمز لغة التجميع من موتورولا/موس تكنولوجي عددًا سداسيًا عشريًا). مع ذلك، يبلغ طول التعليمة الأولى بايتين فقط وتتطلب ثلاث دورات ساعة لإكمالها. أما التعليمة الثانية، فيبلغ طولها ثلاثة بايتات وتتطلب أربع دورات ساعة للتنفيذ. قد يُصبح هذا الفرق في وقت التنفيذ ذا أهمية في التعليمات البرمجية المتكررة.
تستخدم بعض المعالجات، مثل موتورولا 6809 وWDC 65C816 المذكورة سابقًا، "مسجل الصفحة المباشر" DPالذي يُحدد للمعالج عنوان البداية في ذاكرة الوصول العشوائي (RAM ) لما يُعتبر الصفحة الصفرية. في هذا السياق، يُعدّ عنونة الصفحة الصفرية افتراضية؛ إذ لن يكون الوصول الفعلي إلى الصفحة الصفرية الفعلية إذا DPتم تحميل المسجل بعنوان آخر غير $00(أو $0000في حالة 65C816).
متجهات المقاطعة
مع ذلك، لا تزال بعض بنى الكمبيوتر تحتفظ ببداية مساحة العناوين لأغراض أخرى؛ على سبيل المثال، تحتفظ أنظمة Intel x86 بأول 256 كلمة مزدوجة من مساحة العناوين لجدول متجه المقاطعة (IVT) إذا كانت تعمل في الوضع الحقيقي .
استُخدمت تقنية مشابهة في معمارية ARM، وهي استخدام الصفحة الصفرية لتخزين متجهات متعلقة بالأجهزة. في البرامج سيئة الكتابة، قد يؤدي ذلك إلى سلوك "ofla"، حيث يحاول البرنامج قراءة معلومات من منطقة ذاكرة غير مخصصة، ويتعامل مع التعليمات البرمجية القابلة للتنفيذ كبيانات أو العكس. ويُصبح هذا الأمر إشكاليًا بشكل خاص إذا استُخدمت منطقة الصفحة الصفرية لتخزين متجهات قفز النظام، وتم خداع البرامج الثابتة للكتابة فوقها. [ 2 ]
سي بي/إم
في نظام التشغيل CP/M ذي 8 بت ، تُستخدم الصفحة الصفرية للتواصل بين البرنامج قيد التشغيل ونظام التشغيل.
عنوان الصفحة
في بعض بنى المعالجات، مثل معالج إنتل 4004 ذي 4 بت، كانت الذاكرة تُقسّم إلى صفحات (256 بايت)، وكان لا بد من اتخاذ احتياطات خاصة عند عبور تدفق التحكم لحدود الصفحات ، حيث أظهرت بعض تعليمات الآلة سلوكًا مختلفًا إذا كانت موجودة في التعليمات القليلة الأخيرة من الصفحة، لذلك يُنصح بنقل عدد قليل فقط من التعليمات بين الصفحات. [ 3 ]
مؤشرات فارغة
على عكس الاستخدام التفضيلي الأصلي للصفحة الصفرية، فإن بعض أنظمة التشغيل الحديثة مثل FreeBSD و Linux و Solaris و macOS و Microsoft Windows [ 4 ] تجعل الصفحة الصفرية غير قابلة للوصول فعليًا لكشف استخدامات المؤشرات الفارغة . قد تشير قيم هذه المؤشرات بشكل مشروع إلى قيم غير مهيأة أو عقد مراقبة، لكنها لا تشير إلى كائنات صالحة. قد يحاول الكود المعيب الوصول إلى كائن عبر مؤشر فارغ، ويمكن كشف ذلك على مستوى نظام التشغيل باعتباره انتهاكًا للوصول إلى الذاكرة . من خلال جعل الصفحة بأكملها غير صالحة، بدلًا من مجرد المؤشر الفارغ ذي القيمة الصفرية، يستطيع نظام التشغيل كشف الكود الذي، على سبيل المثال، يحتوي على مؤشر فارغ يشير إلى بنية، ويحاول الوصول إلى عنصر من عناصر البنية عند إزاحة من المؤشر الفارغ.
انظر أيضاً
- انخفاض الذاكرة - أول 64 كيلوبايت من الذاكرة (القطاع 0) في نظام التشغيل DOS
- نقل حدود الصفحة
مراجع
- ↑ سيودين، توماس؛ جونسون، يوهان (2006). أوراق بحثية طلابية في هندسة الحاسوب (ملف PDF) . أوميو، السويد. ص 29. S2CID 14355431. مؤرشف من الأصل (ملف PDF) بتاريخ 9 مارس 2019. تم الاطلاع عليه بتاريخ 21 أغسطس 2019 .
{{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط ) - ↑ "ثغرة أمنية في معالج ARM تشبه ثغرة في معالجات Ofla" . drobe.co.uk. 24 أبريل 2007. مؤرشف من الأصل في 14 مايو 2011. تم الاطلاع عليه في 22 أكتوبر 2008 .
- ↑ "4.1 عبور حدود الصفحات". دليل برمجة لغة التجميع MCS-4 - دليل برمجة نظام الحاسوب الصغير INTELLEC 4 (ملف PDF) (طبعة أولية ). سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . ديسمبر 1973. الصفحات 2-4، 2-14، 3-41، 4-1. MCS-030-1273-1. مؤرشف (ملف PDF) من الأصل بتاريخ 2020-03-01 . تم الاطلاع عليه بتاريخ 2020-03-02 .
[...] تعمل بعض التعليمات بشكل مختلف عند وجودها في البايت الأخير (أو البايتات الأخيرة) من الصفحة مقارنةً بوجودها في مكان آخر. [...] يكون عنوانان على نفس الصفحة إذا كان أعلى رقم سداسي عشري في عنوانيهما متساويًا. إذا كانت تعليمة JIN موجودة في آخر موقع من صفحة في الذاكرة، فسيتم زيادة أعلى 4 بتات من عداد البرنامج بمقدار واحد، مما يؤدي إلى نقل التحكم إلى الموقع المقابل في الصفحة التالية. أما إذا كانت تعليمة JIN موجودة في العنوان 255 عشريًا (0FF سداسيًا عشريًا)، فسيتم نقل التحكم إلى العنوان 115 سداسيًا عشريًا، وليس 015 سداسيًا عشريًا. هذه ممارسة برمجية خطيرة، ويجب تجنبها قدر الإمكان. تُخزن البرامج إما في ذاكرة القراءة فقط (ROM) أو ذاكرة الوصول العشوائي (RAM) الخاصة بالبرنامج، وكلاهما مقسم إلى صفحات. تتكون كل صفحة من 256 موقعًا، كل منها 8 بتات. تشمل العناوين من 0 إلى 255 الصفحة الأولى، ومن 256 إلى 511 الصفحة الثانية، وهكذا. بشكل عام، من الممارسات البرمجية الجيدة عدم السماح لتدفق البرنامج بتجاوز حدود الصفحة إلا باستخدام تعليمة JUN أو JMS.
- ↑ "إدارة الذاكرة الافتراضية" . مايكروسوفت . 2014-12-05 . تم الاطلاع عليه بتاريخ 2014-12-05 .
للمزيد من القراءة
- براي، أندرو سي؛ ديكنز، أدريان سي؛ هولمز، مارك أ. (1983). دليل المستخدم المتقدم لحاسوب بي بي سي الصغير ( الطبعة الثالثة). مركز كامبريدج للحاسوب الصغير. ISBN 0-946827-00-1.
- روث، ريتشارد ل. (فبراير 1978) [1977]. "إعادة التوطين ليست مجرد نقل برامج" . دكتور دوبز . المجلد 3، العدد 2. ريدجفيلد، كاليفورنيا، الولايات المتحدة الأمريكية: شركة بيبلز كمبيوتر . الصفحات 14-20 (70-76). ISBN 0-8104-5490-4رقم ٢٢. مؤرشف من الأصل بتاريخ ٢٠ أبريل ٢٠١٩. تم الاطلاع عليه بتاريخ ١٩ أبريل ٢٠١٩ .
- "1. مقدمة: محاذاة القطاعات". أدوات عائلة 8086 - دليل المستخدم لأنظمة التطوير القائمة على معالجات 8080/8085 (ملف PDF) . المراجعة E (A620/5821 6K DD ed.). سانتا كلارا، كاليفورنيا، الولايات المتحدة الأمريكية: شركة إنتل . مايو 1982 [1980، 1978]. الصفحات 1-6. رقم الطلب: 9800639-04. مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 29 فبراير 2020. تم الاطلاع عليه بتاريخ 29 فبراير 2020 .
- إدارة الذاكرة
