سجل الفهرس

شاشة عرض سجل الفهرس على جهاز حاسوب مركزي من طراز IBM 7094 من أوائل الستينيات

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

بشكل عام، تُضاف محتويات سجل الفهرس إلى عنوان فوري (قد يكون جزءًا من التعليمات نفسها أو مخزنًا في سجل آخر) (وفي بعض الحالات تُطرح منه) لتكوين العنوان الفعلي للبيانات (المعامل). تُقدَّم عادةً تعليمات خاصة لاختبار سجل الفهرس، وإذا فشل الاختبار، يزيد سجل الفهرس بمقدار ثابت فوري ثم ينتقل إلى بداية الحلقة. في حين أن المعالجات التي تسمح للتعليمات بتحديد سجلات فهرس متعددة تجمع محتوياتها عادةً، فقد أنتجت شركة IBM سلسلة من الحواسيب التي كانت تجمع محتوياتها باستخدام عملية OR. [ 4 ]

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

تاريخ

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

استُخدمت سجلات الفهرسة، المعروفة باسم خطوط B في أجهزة الكمبيوتر البريطانية المبكرة، وسجلات B في بعض الأجهزة وسجلات X [ أ ] في أجهزة أخرى، لأول مرة في جهاز الكمبيوتر البريطاني مانشستر مارك 1 ، في عام 1949. وبشكل عام، أصبحت سجلات الفهرسة جزءًا أساسيًا من أجهزة الكمبيوتر خلال الجيل الثاني من هذه التقنية ، تقريبًا بين عامي 1954 و 1966 . وكانت معظم أجهزة سلسلة IBM 700/7000 مزودة بها ، بدءًا من جهاز IBM 704 في عام 1954، على الرغم من أنها كانت اختيارية في بعض الأجهزة الأصغر حجمًا مثل IBM 650 و IBM 1401 .

تشمل "الآلات الصغيرة" المبكرة المزودة بسجلات فهرسة جهاز AN/USQ-17 ، حوالي عام 1960، وسلسلة 9 من أجهزة الكمبيوتر في الوقت الحقيقي من شركة Scientific Data Systems ، من أوائل الستينيات.

يحتوي جهاز UNIVAC 1107 لعام 1962 على 15 مسجل X، أربعة منها كانت أيضًا مسجلات A.

يحتوي جهاز GE-635 لعام 1964 على 8 سجلات X مخصصة؛ ومع ذلك، فإنه يسمح أيضًا بالفهرسة بواسطة عداد التعليمات أو بواسطة نصف السجل A أو Q.

لا يشتمل جهاز PDP-6 من شركة Digital Equipment Corporation (DEC) ، الذي طُرح عام 1964، وجهاز IBM System/360 ، الذي أُعلن عنه عام 1964، على سجلات فهرسة مخصصة؛ بل يحتويان على سجلات عامة الأغراض (تُسمى "مُراكمات" في PDP-6) يمكنها احتواء قيم عددية أو عناوين. عنوان الذاكرة لأي مُعامل، في PDP-6، هو مجموع محتويات سجل عام الأغراض وإزاحة 18 بت، وفي System/360، هو مجموع محتويات سجلين عامين الأغراض وإزاحة 12 بت. [ 6 ] [ 7 ] تعمل سلسلة PDP-10 المتوافقة ، التي تلت PDP-6، وجهاز IBM System/370 ، والإصدارات اللاحقة المتوافقة مع System/360، بما في ذلك z/Architecture الحالي ، بنفس الطريقة.

وفرت الحواسيب الصغيرة Data General Nova (1969 ) وخليفتها Eclipse ، بالإضافة إلى DEC PDP-11 (1970 )، سجلات للأغراض العامة (تُسمى "مُراكمات" في Nova وEclipse)، بدلاً من مُراكمات وسجلات فهرسة منفصلة، ​​كما هو الحال في الحواسيب الصغيرة الفائقة Eclipse MV و VAX (32 بت) التي تلتها. في PDP-11 وVAX، كان بالإمكان استخدام أي سجل عند حساب عنوان الذاكرة لمعامل ما؛ أما في Nova وEclipse وEclipse MV، فكان بالإمكان استخدام السجلين 2 و3 فقط. [ 8 ] [ 9 ] [ 10 ]

يحتوي جهاز CDC STAR-100 لعام 1971 على ملف سجلات يتألف من 256 سجلًا من 64 بت، منها 9 سجلات محجوزة. وعلى عكس معظم أجهزة الكمبيوتر، فإن تعليمات STAR-100 لا تحتوي إلا على حقول سجلات وحقول معاملات، لذا فإن السجلات تعمل كمؤشرات أكثر من كونها سجلات فهرسة تقليدية.

بينما سمح معالج Intel 8008 لعام 1972 بالعنونة غير المباشرة عبر أزواج السجلات، يبدو أن أول معالج دقيق مزود بسجل فهرسة حقيقي كان معالج Motorola 6800 لعام 1974 .

في عام 1975، كان معالج MOS Technology 6502 ذو 8 بت يحتوي على سجلين للفهرسة 'X' و 'Y'. [ 11 ]

في عام 1978، كان لدى معالج Intel 8086 ، وهو أول معالج x86 ، ثمانية سجلات 16 بت، يشار إليها باسم "الأغراض العامة"، والتي يمكن استخدامها جميعًا كسجلات بيانات عددية صحيحة في معظم العمليات؛ يمكن استخدام أربعة منها، وهي 'SI' (مؤشر المصدر)، و'DI' (مؤشر الوجهة)، و'BX' (القاعدة)، و'BP' (مؤشر القاعدة)، عند حساب عنوان الذاكرة لمعامل، وهو مجموع أحد هذه السجلات وإزاحة، أو مجموع أحد 'BX' أو 'BP'، وأحد 'SI' أو 'DI'، وإزاحة. [ 12 ] يعمل معالج Intel 8088 لعام 1979 ، ومعالجات Intel 80186 و Intel 80188 و Intel 80286 ذات 16 بت، بنفس الطريقة. في عام 1985، ظهر معالج i386 ، وهو معالج 32 بت خلف لتلك المعالجات، وقدم إصدار IA-32 ذو 32 بت من بنية x86، حيث تم توسيع السجلات الثمانية ذات 16 بت إلى 32 بت، مع إضافة الحرف "E" إلى بداية اسم السجل؛ في IA-32، عنوان الذاكرة عنوان الذاكرة لأي معامل هو مجموع أحد السجلات الثمانية، وأحد سبعة منها (لا يُسمح باستخدام مؤشر المكدس كسجل ثانٍ هنا) مضروبًا في 1 أو 2 أو 4 أو 8، بالإضافة إلى قيمة الإزاحة. [ 13 ] : 3-11–3-12، 3-22–3-23. قدّم معالج أوبترون من شركة أدفانسد مايكرو ديفايسز ، الذي صدر أول نموذج منه عام 2003، معمارية x86-64 ، وهي نسخة 64 بت من مجموعة تعليمات x86؛ في x86-64، تم توسيع سجلات الأغراض العامة إلى 64 بت، وأُضيفت ثمانية سجلات أغراض عامة إضافية؛ عنوان الذاكرة لأي معامل هو مجموع اثنين من تلك السجلات الستة عشر بالإضافة إلى قيمة الإزاحة. [ 14 ] [ 13 ] : 3-12، 3-24

توفر مجموعات تعليمات الحوسبة ذات مجموعة التعليمات المختصرة (RISC)، التي طُرحت في ثمانينيات وتسعينيات القرن الماضي، سجلات عامة الأغراض يمكنها استيعاب قيم عددية أو عناوين. في معظم هذه المجموعات، يوجد 32 سجلاً عامًا (في بعضها، تُضبط قيمة أحد هذه السجلات على الصفر) يمكن استخدامها لحساب عنوان المعامل؛ ولم تكن تحتوي على سجلات فهرسة مخصصة. في الإصدار 32 بت من معمارية ARM ، التي طُوّرت لأول مرة عام 1985، يوجد 16 سجلاً مُصنّفًا على أنه "سجلات عامة الأغراض"، ولكن 13 منها فقط تُستخدم لجميع الأغراض، ويحتوي السجل R15 على عداد البرنامج . عنوان الذاكرة لتعليمات التحميل أو التخزين هو مجموع أي من السجلات الـ 16 وإما قيمة إزاحة أو قيمة سجل آخر باستثناء R15 (الذي قد يُزاح إلى اليسار لأغراض القياس). [ 15 ] في النسخة ذات 64 بت من بنية ARM، يوجد 31 مسجلاً للأغراض العامة بحجم 64 بت بالإضافة إلى مؤشر مكدس ومسجل صفري؛ عنوان الذاكرة لتعليمات التحميل أو التخزين هو مجموع أي من المسجلات الـ 31 وإما قيمة إزاحة أو قيمة مسجل آخر. [ 16 ]

أمثلة

فيما يلي مثال بسيط لاستخدام سجل الفهرس في الشفرة الزائفة للغة التجميع التي تجمع مصفوفة مكونة من 100 عنصر من الكلمات ذات 4 بايت:

 مُجمِّع المسح تحميل_الفهرس 400، الفهرس2 // تحميل 4* حجم المصفوفة في سجل الفهرس 2 (الفهرس2) loop_start : Add_word_to_accumulator array_start,index2 // أضف الكلمة الموجودة في العنوان (array_start + index2) إلى المُجمِّع تفرع_وإنقاص_إذا_كان_الفهرس_ليس_صفرًا loop_start,4,index2 // حلقة تنقص بمقدار 4 حتى يصبح سجل الفهرس صفرًا

انظر أيضاً

ملحوظات

  1. تم استخدام مصطلح X-registers أيضًا للمراكم على سبيل المثال، CDC 6600 .
  2. لم تكنالطرازات 702 و705 و7080 تحتوي على سجلات فهرسة.

مراجع

  1. "التعليمات: الكلمات المفتاحية" (ملف PDF) . مبادئ تشغيل IBM 7070-7074 (ملف PDF) . IBM. 1962. ص  11. GA22-7003-6.
  2. "ما هو سجل الفهرسة؟ (مع صورة)" . EasyTechJunkie . تم الاطلاع عليه بتاريخ 24-07-2022 .
  3. دليل مرجعي لجهاز IBM 709، النموذج A22-6501-0، 1958، صفحة 12
  4. مبادئ تشغيل IBM 7094 (ملف PDF) . الطبعة الخامسة. IBM. 21 أكتوبر 1966. A22-6703-4.
  5. دليل مرجعي لنظام معالجة البيانات IBM 1401 (ملف PDF) . IBM . 1962. الصفحات 103-107 . A24-1403-5. 
  6. دليل معالج البيانات المبرمج-6 (PDF) . شركة المعدات الرقمية . أغسطس 1964. الصفحات 20-22 . 
  7. مبادئ تشغيل نظام IBM System/360 (ملف PDF) ( الطبعة الثامنة ). IBM . سبتمبر 1968. الصفحات 12-14 . A22-6821-7.  
  8. دليل مرجعي للمبرمج، حواسيب نوفا لاين (ملف PDF) . داتا جنرال . يناير 1976. الصفحات I-1، II-7. 
  9. دليل مرجعي للمبرمج، حواسيب خط إكليبس (ملف PDF) . داتا جنرال . مارس 1975. الصفحات 1-1 ، 2-6 . 
  10. مبادئ تشغيل أنظمة ECLIPSE ذات 32 بت (ملف PDF) . داتا جنرال . أغسطس 1984. الصفحات 1-2 . 
  11. "سجلات - تجميع 6502" . www.6502.buss.hk. تم الاطلاع عليه بتاريخ 24-07-2022 .
  12. "دليل مستخدم عائلة 8086" (ملف PDF) . شركة إنتل. أكتوبر 1979. الصفحات 2-6 ، 2-68 . مؤرشف (ملف PDF) من الأصل في 4 أبريل 2018. تم الاطلاع عليه في 28 مارس 2018 . 
  13. 1 2 دليل مطوري البرامج لبنيتي Intel® 64 و IA-32، المجلد 1: البنية الأساسية . شركة Intel. مارس 2018. الفصل 3. مؤرشف من الأصل في 26 يناير 2012. تم الاطلاع عليه في 19 مارس 2014 .
  14. دليل مبرمج معمارية AMD64، المجلد 1: برمجة التطبيقات (ملف PDF) . شركة Advanced Micro Devices . أكتوبر 2020. الصفحات 3، 16. 
  15. دليل مرجعي لهندسة ARM . Arm . 2005. الصفحات A2-6، A3-21. 
  16. دليل مرجعي لهندسة معمارية Armv8، لملف تعريف هندسة معمارية Armv8-A . Arm . 2022. الصفحات C1-227، C3-252.