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

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

ما المقصود بمعمارية الحاسوب؟

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

وتنقسم معمارية الحاسوب إلى ثلاثة أقسام:

  • تصميم النظام: يشمل جميع المعدات المادية في الحاسوب، ومن ضمنها معالجات البيانات (باستثناء وحدة المعالجة المركزية) مثل وحدة معالجة الرسومات والوصول المباشر للذاكرة، طرق البيانات، وحدات التحكم بالذاكرة، والمعالجة التعددية.
  • معمارية التعليمات (Instruction Set Architecture (ISA: لغة البرمجة المضمنة في وحدة المعالجة المركزية CPU، والتي تحدد وظائف وإمكانيات CPU بناءً على البرمجيات القادرة على معالجتها أو القيام بها. وهذا يتضمن أنماط مسجلات المعالج، أنماط عنونة الذاكرة، صيغ البيانات، ومجموعة التعليمات التي يستخدمها المبرمجون.
  • معمارية الحاسوب المصغرة Microarchitecture: أو ما يعرف أيضًا بتنظيم الحاسوب. يحدد هذا القسم طرق البيانات، معالجة البيانات، عناصر التخزين، وكيفية تطبيقها في الISA.2

ما هو نموذج Von Neumann في معمارية الحاسوب

قام الرياضيُّ John Von Neumann عام 1945 بوضع نموذجٍ في معمارية الحاسوب ما زال يتم العمل به حتى وقتنا هذا، ويتضمن:

  • وحدة المعالجة المركزية (Central Processing Unit (CPU: وهي الدارة الكهربائية المسؤولة عن تنفيذ تعليمات برنامج الحاسوب، وتشمل وحدة التحكم، وحدة الحساب والمنطق، وعدة مسجلات.
  • وحدة الذاكرة الأساسية Main Memory Unit.
  • أجهزة الإدخال والإخراج Input/Output Units.
  • النواقل Buses.

وحدة التحكم (Control Unit (CU

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

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

وحدة الحساب والمنطق (Arithmetic and Logic Unit (ALU

مسؤولة عن كافة العمليات الحسابية (جمع، طرح، وغيرها) والعمليات المنطقية (And, Or, Not وغيرها) التي تقوم بها وحدة المعالجة المركزية في معمارية الحاسوب .

المسجلات Registers

هي مناطق تخزينٍ عالية السرعة تتوضع بها البيانات قبل معالجتها، وتشمل:

  • مسجل عنوان الذاكرة (MAR (Memory Address Register: يتضمن موقع البيانات المراد الوصول لها في الذاكرة.
  • مسجل البيانات في الذاكرة (MDR (Memory Data Register: يتضمن البيانات التي يتم نقلها من وإلى الذاكرة.
  • المجمع (AC (Accumulator: المكان الذي تخزن به النتائج الوسطية للعمليات الحسابية والمنطقية.
  • عداد البرامج (PC (Program Counter: يحمل عنوان التعليمة التالية التي يجب تنفيذها، ويحولها إلى MDR.
  • مسجل التعليمة الحالية (CIR (Current Instruction Register: يتضمن التعليمة خلال عملية معالجتها.
  • مسجل التعليمات المرحلي (IBR (Instruction Buffer Register: تتوضع به التعليمات التي لن يتم تنفيذها مباشرةً.

وحدة الذاكرة Memory Unit

تشمل هذه الوحدة من معمارية الحاسوب ذاكرة RAM (ذاكرة الوصول العشوائي) وهي ذاكرة الحاسوب الأساسية (على عكس القرص الصلب الذي يعتبر ذاكرةً ثانويةً). تكون هذه الذاكرة سريعةً، سهلةَ الوصول من قبل CPU، ومجزأةً إلى أقسامٍ كل منها مكون من عنوانٍ ومحتوى.

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

النواقل Buses

وهي الطريقة التي تنتقل خلالها البيانات بين أجزاء الحاسوب حيث تصل جميع المكونات الكبرى الداخلية للحاسوب مع وحدة المعالجة المركزية والذاكرة.

يتكون ناقل وحدة المعالجة المركزية القياسيّ من:

  • ناقل العنوان Address bus: يحمل عنوان البيانات (وليس البيانات بحد ذاتها) بين المعالج والذاكرة.
  • ناقل البيانات Data Bus: يحمل البيانات بين المعالج، وحدة الذاكرة، وأجهزة الإدخال والإخراج.
  • ناقل التحكم Control Bus: يحمل تعليمات التحكم من وحدة المعالجة المركزية (وإشارات الحالة من الأجهزة الأخرى) بغاية التحكم وتنسيق جميع العمليات داخل الحاسوب.

أجهزة الإدخال والإخراج Input/Output Device

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

بعد معالجة البيانات وتخزينها، يتم عرضها وتقديمها للمستخدم من خلال أجهزة الإخراج.

الفرق بين نموذج Von Neumann و Harvard و Harvard المعدل في معمارية الحاسوب

كانت المشكلة في نموذج Von Neumann أنه يوظف نفس الناقل لأخذ التعليمات من الذاكرة ونقل البيانات من مكانٍ لآخر مما يعيق أداء وحدة المعالجة المركزية، وبذلك ظهر نموذج Harvard الذي يفصل التخزين وطرق الإشارة لبيانات البرنامج والتعليمات.

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

الطريقة الأمثل لوصف معمارية الحواسيب الحالية هو نموذج Harvard المعدل حيث تحتوي على ناقلين منفصلين للإشارة والتخزين في حين أن الذاكرة بحد ذاتها هي قطعةٌ واحدةٌ مشتركة.4

المراجع