عنوان الذاكرة

في جهاز كمبيوتر يستخدم الذاكرة الافتراضية ، قد يتضمن الوصول إلى الموقع المقابل لعنوان الذاكرة مستويات عديدة.

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

الأنواع

العناوين الفعلية

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

العناوين المنطقية

يستخدم برنامج الحاسوب عناوين الذاكرة لتنفيذ التعليمات البرمجية ، ولتخزين البيانات واسترجاعها . في الحواسيب القديمة، كانت العناوين المنطقية (التي تستخدمها البرامج) والعناوين الفيزيائية (المواقع الفعلية في ذاكرة الجهاز) متطابقة. ولكن مع ظهور الذاكرة الافتراضية ، لم تعد معظم برامج التطبيقات تتعامل مباشرةً مع العناوين الفيزيائية. بل تستخدم عناوين منطقية أو افتراضية، تُترجم إلى عناوين فيزيائية بواسطة وحدة إدارة الذاكرة (MMU) في الحاسوب وآليات تعيين الذاكرة في نظام التشغيل .

حل وحدة العنوان

معظم الحواسيب الحديثة قابلة للعنونة بالبايت . يُحدد كل عنوان بايتًا واحدًا ( ثمانية بتات ) من مساحة التخزين. يمكن تخزين البيانات الأكبر من بايت واحد في سلسلة من العناوين المتتالية. توجد أيضًا حواسيب قابلة للعنونة بالكلمة ، حيث تكون أصغر وحدة تخزين قابلة للعنونة هي كلمة المعالج نفسها . [ أ ] على سبيل المثال، استخدم الحاسوب المصغر Data General Nova ، والحواسيب الصغيرة Texas Instruments TMS9900 و National Semiconductor IMP-16 ، كلماتٍ من 16 بت ، وهناك العديد من الحواسيب المركزية القديمة التي تستخدم عنونة الكلمات من 36 بت (مثل IBM 7090 ، بعناوين كلمات من 15 بت، مما يوفر مساحة عناوين تبلغ 2 ^15 كلمة من 36 بت، أي ما يقارب 128 كيلوبايت من التخزين، و DEC PDP-6 / PDP-10 ، بعناوين كلمات من 18 بت، مما يوفر مساحة عناوين تبلغ 2 ^18 كلمة من 36 بت، أي ما يقارب 1 ميجابايت من التخزين)، وليس عنونة البايت. يعتمد نطاق عنونة الذاكرة على حجم بتات ناقل البيانات المستخدم للعناوين - فكلما زاد عدد البتات المستخدمة، زاد عدد العناوين المتاحة للحاسوب. على سبيل المثال، يمكن لجهاز ذي عناوين بايتية 8 بت وناقل عناوين 20 بت (مثل Intel 8086 ) عنونة 2^ 20 (1,048,576) موقعًا في الذاكرة، أي ما يعادل 1 ميجابايت من الذاكرة، بينما يمكن لجهاز ذي ناقل عناوين 32 بت (مثل Intel 80386 ) عنونة 2 ^32 (4,294,967,296) موقعًا، أي ما يعادل 4 جيجابايت من مساحة العناوين. في المقابل، يمكن لجهاز ذي عناوين كلمات 36 بت وناقل عناوين 18 بت عنونة 2^ 18 (262,144) موقعًا فقط من مواقع 36 بت (9,437,184 بت)، أي ما يعادل 1,179,648 بايتًا من 8 بت، أو 1152 كيلوبايت ، أو 1.125 ميجابايت - أي أكثر بقليل من جهاز 8086.

عدد قليل من الأجهزة القديمة قابلة للعنونة على مستوى البت . على سبيل المثال، تحدد تعليمة طول الحقل المتغير (VFL) في جهاز IBM 7030 "Stretch" عنوان بت، وحجم بايت من 1 إلى 8، وطول حقل.

بعض الحواسيب القديمة ( الحواسيب العشرية ) قابلة للعنونة بالأرقام العشرية . على سبيل المثال، كان كل عنوان في ذاكرة النواة المغناطيسية لجهاز IBM 1620 يُحدد رقمًا عشريًا واحدًا مُشفّرًا ثنائيًا بستة بتات ، يتكون من بت التكافؤ ، وبت العلم ، وأربعة بتات عددية. [ 2 ] استخدم جهاز 1620 عناوين عشرية بخمسة أرقام، لذا نظريًا كان أعلى عنوان ممكن هو 99999. عمليًا، كان المعالج يدعم 20000 موقع ذاكرة، ويمكن إضافة ما يصل إلى وحدتي ذاكرة خارجيتين اختياريتين، تدعم كل منهما 20000 عنوان، ليصبح المجموع 60000 عنوان (من 00000 إلى 59999).

بعض الحواسيب القديمة قابلة للعنونة باستخدام الأحرف، حيث تحتوي أحرف BCD ذات 6 بتات على منطقة من بتين ورقم من 4 بتات؛ وتتكون الأحرف في العنوان من قيم رقمية فقط تمثل الأرقام من 0 إلى 9. عادةً ما تكون بعض بتات المنطقة جزءًا من العنوان، بينما تُستخدم بتات أخرى لأغراض مختلفة، مثل سجل الفهرسة أو العنوان غير المباشر. [ 3 ]

بعض الحواسيب القديمة قابلة للعنونة باستخدام الكلمات العشرية، وعادةً ما تكون عناوينها مكونة من 4 أرقام. [ 4 ] في بعض الأجهزة، تحدد حقول العنوان أيضًا سجلات الفهرسة، مما يحد من نطاق العناوين الممكنة. [ 5 ]

حجم الكلمة مقابل حجم العنوان

حجم الكلمة هو أحد خصائص بنية الحاسوب، ويشير إلى عدد البتات التي يمكن لوحدة المعالجة المركزية معالجتها في وقت واحد. عادةً ما يكون حجم الكلمة في المعالجات الحديثة، بما في ذلك الأنظمة المدمجة ، 8 أو 16 أو 24 أو 32 أو 64 بتًا؛ وتستخدم معظم الحواسيب العامة الحديثة 32 أو 64 بتًا. وقد استُخدمت أحجام مختلفة عبر التاريخ، منها 8 و9 و10 و12 و18 و24 و36 و39 و40 و48 و60 بتًا.

في كثير من الأحيان، عند الإشارة إلى حجم الكلمة في الحاسوب الحديث، يُقصد أيضًا حجم مساحة العناوين فيه. على سبيل المثال، الحاسوب الذي يُوصف بأنه " 32 بت " يسمح عادةً بعناوين ذاكرة 32 بت؛ إذ يمكن لحاسوب 32 بت، قابل للعنونة بالبايت، عنونة 2^ 32 = 4,294,967,296 بايت من الذاكرة، أو 4 جيبيبايت (GiB). وهذا يسمح بتخزين عنوان ذاكرة واحد بكفاءة في كلمة واحدة.

مع ذلك، لا ينطبق هذا دائمًا. قد تحتوي أجهزة الكمبيوتر على عناوين ذاكرة أكبر أو أصغر من حجم الكلمة. على سبيل المثال، دعمت العديد من المعالجات ذات 8 بت ، مثل MOS Technology 6502 ، عناوين 16 بت ، وإلا لكانت محدودة بـ 256 بايت فقط من عنونة الذاكرة. دعمت معالجات Intel 8088 و Intel 8086 ذات 16 بت عنونة 20 بت عبر التجزئة ، مما سمح لها بالوصول إلى 1 ميجابايت من الذاكرة بدلًا من 64 كيلوبايت. تتضمن جميع معالجات Intel Pentium منذ Pentium Pro امتدادات العناوين الفيزيائية (PAE) التي تدعم ربط العناوين الفيزيائية 36 بت بعناوين افتراضية 32 بت. احتفظت العديد من تطبيقات LISP المبكرة ، على سبيل المثال، معالجات 36 بت ، بعنوانين لكل كلمة نتيجة لعملية cons . احتفظت بعض المعالجات المبكرة بعنوانين، بل وحتى ثلاثة، لكل كلمة تعليمات.

من الناحية النظرية، يمكن لأجهزة الكمبيوتر الحديثة ذات 64 بت والقابلة للعنونة بالبايت أن تعنون 264 بايت (16 إكسابايت )، ولكن من الناحية العملية، فإن مقدار الذاكرة محدود بواسطة وحدة المعالجة المركزية أو وحدة التحكم في الذاكرة أو تصميم لوحة الدوائر المطبوعة (على سبيل المثال، عدد موصلات الذاكرة الفعلية أو مقدار الذاكرة الملحومة).

محتويات كل موقع من مواقع الذاكرة

يحتوي كل موقع ذاكرة في حاسوب ذي برنامج مخزن على رقم ثنائي أو رقم عشري من نوع ما . ويتم تحديد تفسيره، كبيانات من نوع بيانات معين أو كتعليمات، واستخدامه من خلال التعليمات التي تسترجعه وتتعامل معه.

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

مساحة العناوين في برمجة التطبيقات

في بيئة تعدد المهام الحديثة، عادةً ما تحتوي عملية التطبيق في مساحة عنوانها (أو مساحاتها) على أجزاء من الذاكرة من الأنواع التالية:

قد لا يتم تعيين بعض أجزاء مساحة العناوين على الإطلاق.

تعتمد بعض الأنظمة على بنية ذاكرة "مجزأة" حيث توجد شفرة الآلة والثوابت والبيانات في مواقع مختلفة، وقد تختلف أحجام عناوينها. على سبيل المثال، تحتوي وحدات التحكم الدقيقة PIC18 على عداد برنامج 21 بت لعنونة شفرة الآلة والثوابت في ذاكرة الفلاش، وسجلات عناوين 12 بت لعنونة البيانات في ذاكرة SRAM.

مخططات المعالجة

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

كما أن ربط العناوين المنطقية بالذاكرة الفعلية والافتراضية يضيف عدة مستويات من التوجيه غير المباشر؛ انظر أدناه.

نماذج الذاكرة

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

مع ذلك، لم تدعم العديد من الحواسيب القديمة نموذج الذاكرة المسطحة هذا ، ولا سيما الحواسيب ذات بنية هارفارد التي تفرض فصل تخزين البرنامج تمامًا عن تخزين البيانات. تحتوي العديد من معالجات الإشارات الرقمية الحديثة (مثل موتورولا 56000 ) على ثلاث مناطق تخزين منفصلة: تخزين البرنامج، وتخزين المعاملات، وتخزين البيانات. تسترجع بعض التعليمات الشائعة الاستخدام البيانات من المناطق الثلاث جميعها في آنٍ واحد، لذا فإن تقليل عدد مناطق التخزين (حتى لو كان إجمالي سعة التخزين متساويًا) سيؤدي إلى إبطاء تنفيذ هذه التعليمات.

نماذج الذاكرة في بنية x86

تستخدم معالجات x86 المبكرة عناوين نموذج الذاكرة المجزأة بناءً على مزيج من رقمين: مقطع الذاكرة ، والإزاحة داخل هذا المقطع.

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

نماذج الذاكرة في IBM S/360 والمعالجات المتعددة اللاحقة

في معالجات 360/65 و 360/67 ، قدمت IBM مفهومًا يُعرف باسم "البادئة". [ 6 ] البادئة هي مستوى من مستويات ترجمة العناوين يُطبق على العناوين في الوضع الحقيقي وعلى العناوين المُولدة بواسطة ترجمة العناوين الديناميكية، باستخدام بادئة فريدة مُخصصة لكل وحدة معالجة مركزية في نظام متعدد المعالجات. في معالجات 360/65 و360/67 وكل معالج لاحق قبل z/Architecture ، تقوم هذه التقنية منطقيًا بتبديل كتلة تخزين بحجم 4096 بايت بكتلة أخرى مُخصصة لوحدة المعالجة المركزية. في z/Architecture، [ 7 ] تعمل البادئة على كتل بحجم 8196 بايت. تُصنف IBM العناوين في هذه الأنظمة على النحو التالي: [ 8 ]

  • العناوين الافتراضية: عناوين تخضع لترجمة العناوين الديناميكية
  • العناوين الحقيقية: العناوين المُولَّدة من ترجمة العناوين الديناميكية، والعناوين التي يستخدمها الكود الذي يعمل في الوضع الحقيقي
  • العناوين المطلقة: العناوين الفعلية

في طرازات 360/65، وفي طرازات S/370 بدون DAT وعند التشغيل مع إيقاف الترجمة، لا يوجد سوى مساحة عنوان حقيقية مسطحة ومساحة عنوان مطلقة مسطحة.

في أجهزة 360/67 وS/370 وما بعدها حتى S/390 ، عند تشغيل الترجمة، تحتوي العناوين على رقم مقطع ورقم صفحة وإزاحة. مع أن الطرازات الأولى كانت تدعم أحجام صفحات 2 كيلوبايت و4 كيلوبايت، إلا أن الطرازات اللاحقة كانت تدعم 4 كيلوبايت فقط. أضافت IBM لاحقًا تعليمات لنقل البيانات بين مساحة عنوان أساسية ومساحة عنوان ثانوية.

أضاف نظام S/370-XA عناوين 31 بت، ولكنه احتفظ بالتسلسل الهرمي للقطاع/الصفحة/الإزاحة مع صفحات بحجم 4 كيلوبايت.

أضافت ESA/370 16 سجل وصول (ARs) ووضع التحكم في الوصول إلى AR، حيث يتم ترجمة عنوان 31 بت باستخدام مساحة العنوان المحددة بواسطة AR معين.

يدعم نظام z/Architecture عناوين افتراضية وحقيقية ومطلقة 64 بت، مع جداول صفحات متعددة المستويات.

انظر أيضاً

ملحوظات

  1. تحتوي بعض الحواسيب التي تُعنون بالكلمات على تعليمات لمعالجة البايتات، تدعم عادةً أحجام بايتات تصل إلى كلمة واحدة، ولكنها لا تدعم البايتات التي تمتد على كلمات متعددة. على سبيل المثال،يحتوي كل من DEC PDP-6 و PDP-10 على
    • بايت الإيداع (DPB)
    • مؤشر زيادة البايت (IBP)
    • زيادة وإيداع البايت (IDPB)
    • زيادة وتحميل البايت (ILDB)
    • تحميل البايت (LDB)

مراجع

  1. أبراهامسون، كارل ر. (20 أغسطس 2022). "5.10.1. الذاكرة وعناوين الذاكرة" . جامعة كارولينا الشرقية . تم الاطلاع عليه في 3 فبراير 2023 .
  2. وحدة المعالجة المركزية IBM 1620، الطراز 1 (ملف PDF) . مكتبة مراجع الأنظمة. IBM . A26-5706-3 . تاريخ الاسترجاع: 7 مارس 2025 .
  3. دليل مرجعي للنظام - RCA 3301 (ملف PDF) . RCA EDP. سبتمبر 1967. 94-16-000 . تم الاطلاع عليه في 7 مارس 2025 .
  4. مبادئ تشغيل IBM 7070-7074 (ملف PDF) . مكتبة مراجع الأنظمة. IBM . GA22-7003-6 . تاريخ الاسترجاع: 7 مارس 2025 .
  5. جهاز معالجة البيانات ذو الأسطوانة المغناطيسية 650 - دليل التشغيل (PDF) . IBM 22-6060-2. يونيو 1955. 22-6060-2 . تم الاطلاع عليه في 7 مارس 2025 .
  6. "تشغيل متعدد الأنظمة" ( ملف PDF) . مبادئ تشغيل نظام IBM System/360 (ملف PDF) . مكتبة مراجع الأنظمة ( الطبعة الثامنة). سبتمبر 1968. ص 18. A22-6821-7 . تاريخ الاسترجاع: 21 يوليو 2024. ينطبق إجراء إعادة التوطين على أول 4096 بايت من مساحة التخزين. تحتوي هذه المنطقة على جميع تخصيصات التخزين الدائمة، ولها أهمية خاصة لبرامج الإشراف. تتم عملية إعادة التوطين بإضافة بادئة من 12 بت في كل عنوان، حيث تكون أعلى 12 بت منها مُعيّنة على الصفر، وبالتالي، فهي تُشير إلى الموقع من 0 إلى 4095.  
  7. "إضافة البادئات في الوضع المعماري z/Architecture" (ملف PDF) . مبادئ تشغيل z/Architecture (ملف PDF) ( الطبعة الرابعة عشرة). مايو 2022. ص 3-21–3-23. SA22-7832-13 . تاريخ الاسترجاع: 21 يوليو 2024. تتيح إضافة البادئات إمكانية تخصيص كتلة من العناوين الحقيقية التي تحتوي على مواقع تخزين مُخصصة لكتلة مختلفة في التخزين المطلق لكل وحدة معالجة مركزية، مما يسمح لأكثر من وحدة معالجة مركزية تتشارك في التخزين الرئيسي بالعمل في وقت واحد بأقل قدر من التداخل، لا سيما في معالجة المقاطعات.  
  8. "أنواع العناوين" (ملف PDF) . مبادئ تشغيل بنية z (ملف PDF) ( الطبعة الرابعة عشرة). مايو 2022. الصفحات 3-4 - 3-5 . SA22-7832-13 . تم الاطلاع عليه في 21 يوليو 2024 .