# معمارية فون نيومان

معمارية فون نيومان (بالإنجليزية: Von Neumann architecture)‏ هي مجموعة من القواعد الأساسية وضعها العالم الرياضي جون فون نيومان ومعاونوه عام 1954م وتُستعمل حتى الآن في تصميم الحاسبات.

## قواعد معمارية فون نيومان

تُختصر القواعد في ثماني نقاط، هي:
* هيكلة الحاسبات على أساس وحدات منفردة لكل منها مهمتها الخاصة.
* تقسيم الذاكرة الداخلية إلى وحدات أولية تدعى بالخلايا (cellules)، وترفق كل خلية برقم خاص يدعى بالعنوان (address).
* تخزن الخلية وحدة أولية واحدة من المعلومات.
* يستعمل نظام الترقيم الثنائي لتشفير كل الأوامر والتعليمات والمعطيات.
* تخزن الأوامر والمعطيات في نفس الذاكرة الداخلية (المركزية).
* تتابع ترقيم عناوين خلايا الذاكرة التي تحفظ الأوامر المتتالية التنفيذ.
* تنفذ الأوامر (Commands) بشكل تتابعي - (يبدأ الثاني بعد انتهاء الأول).
* يمكن إيقاف ترتيب تنفيذ التعليمات بواسطة تدخلات شرطية (Conditionals) أو غير شرطية (Inconditionals).

## التاريخ

تمكَّن العالِم فون نيومان (von Neumann) في عام 1946م، من جعل الكمبيوتر قادراً على تخزين وتنفيذ برامج عديدة. وقد سُميت فكـرته «بمبدأ تخزين البرامج»، وطُبقت في بريطانيا في عام 1949م عند ابتكار جهاز «ايدساك» (EDSAC).
ألف جون فون نيومان كتاباً بعنوان «المسودة الأولى من تقرير حول ال EDVAC» والذي أجمل فيه هندسة برامج الحاسوب المخزنة بينما تغيرت التقنيات المستخدمة في الحاسبات بصورة مثيرة منذ ظهور أوائل الحاسبات الإلكترونية متعددة الأغراض من أربعينات القرن العشرين، ما زال معظمها يستخدم بنية البرنامج المخزن (يطلق عليها في بعض الأحيان بنية von Neumann)، حيث استطاع التصميم جعل الحاسب العالمي حقيقيًا جزئيًا.

## المكونات الأساسية

تَصف البنية حاسبًا ذا أربعة أقسام رئيسية:
- وحدة الحساب والمنطق (ALU)، وهي المسؤولة عن تنفيذ العمليات الحسابية والمنطقية.
- ودائرة التحكم، وهي المسؤولة عن تنسيق أنشطة الحاسب وتنفيذ الأوامر.
- الذاكرة، وهي المسؤولة عن تخزين الأوامر والبيانات.
- أجهزة الإدخال والإخراج (I/O)، وهي المسؤولة عن إدخال البيانات إلى الحاسب وإخراج النتائج منه.
هذه الأجزاء تتصل ببعضها عن طريق حزم من الأسلاك (تسمى «النواقل» عندما تكون نفس الحزمة تدعم أكثر من مسار بيانات)، وتكون في العادة مساقه بمؤقت أو ساعة (مع أن الأحداث الأخرى تستطيع أن تقود دائرة التحكم).
فكريا، من الممكن رؤية ذاكرة الحاسب كأنها قائمة من الخلايا ولكل خلية لها عنوان مرقم وتستطيع الخلية تخزين كمية قليلة وثابتة من المعلومات. هذه المعلومات من الممكن أن تكون إما تعليمه (أمر) والتي تخبر الحاسب بما يجب أن يفعله وإما أن تكون بيانات وهي المعلومات التي يقوم الحاسب بمعالجتها باستخدام الأوامر التي تم وضعها على الذاكرة عموما، يمكن استخدام أي خلية لتخزين إما أوامر أو بيانات.
إن وحدة الحساب هي قلب الحاسب؛ فهي قادرة على تنفيذ نوعين من العمليات الأساسية: الأولى هي العمليات الحسابية، جمع أو طرح رقمين سويا. إن مجموعة العمليات الحسابية قد تكون محدودة جدا، حتى أن بعض التصميمات لا تدعم عمليتا الضرب والقسمة بطريقة مباشرة (عوضا عن الدعم المباشر، يستطيع المستخدمون دعم عمليتي الضرب والقسمة وذلك من خلال برامج تقوم بمعالجات متعددة للجمع والطرح والأرقام الأخرى). القسم الثاني من عمليات وحدة الحساب والمنطق هي عمليات المقارنة: بإدخال رقمين، تقوم هذه الوحدة بالتحقق من تساوي أو عدم تساوي الرقمين وتحديد أي الرقمين هو الأكبر.
أنظمة الإدخال والإخراج هي الوسائل التي تجعل الحاسب يستقبل المعلومات من الخارج ويقرر النتائج ثانية. في الحاسب الشخصي العادي تتضمن أجهزة الإدخال مكونات مثل لوحة المفاتيح والفأرة وتتضمن أجهزة الإخراج الشاشات والطابعات وما يشابهها، ولكن من الممكن توصيل مجموعة ضخمة ومتنوعة من الأجهزة إلى الحاسب وتعمل كأجهزة إدخال وإخراج.
نظام التحكم يجمع كل ذلك. إن وظيفته هي قراءة الأوامر والبيانات من الذاكرة أو من أجهزة الإدخال والإخراج، وكذلك فك شفرة الأوامر، تغذي وحدة الحساب والمنطق بالمدخلات الصحيحة طبقا للأوامر، تخبر وحدة الحساب والمنطق بالعملية الواجب تنفيذها على تلك المدخلات وتعيد إرسال النتائج إلى الذاكرة أو إلى أجهزة الإدخال والإخراج. يعتبر العداد من المكونات الرئيسية في نظام التحكم والذي يقوم بمتابعة عنوان الأمر الحالي، في العادة يزداد قيمة العنوان في كل مرة يتم فيها تنفيذ الأمر إلا إذا أشار الأمر نفسه إلى أن الأمر التالي يجب أن يكون في عنوان آخر (ذلك يسمح للحاسب بتنفيذ نفس الأوامر بطريقة متكررة).
بدءًا من ثمانينات القرن العشرين، صارت كل من وحدة الحساب والمنطق ووحدة التحكم (يسميان مجتمعان بوحدة المعالجة المركزية CPU) في المعتاد موجودتان في دائرة متكاملة واحدة تسمى المعالج الدقيق (المايكروبروسيسور)(microprocessor).
إن آلية عمل أي حاسب في الأساس تكون واضحة تماما. في المعتاد، في كل دورة زمنية يقوم الحاسب بجلب الأوامر والبيانات من الذاكرة الخاصة به. يتم تنفيذ الأوامر، يتم تخزين النتائج، ثم يتم جلب الأمر التالي. هذا الإجراء يتكرر حتى تتم مقابلة أمر التوقف.
إن الأوامر التي تقوم وحدة التحكم بتفسيرها وتقوم وحدة الحساب والمنطق بتنفيذها يكون عددها محدود، ومحددة بدقة وتكون عمليات بسيطة جدا. بصفة عامة، فإنها تندرج ضمن واحد أو أكثر من أربعة أقسام:
نقل بيانات من مكان لآخر (مثال على ذلك أمر «يخبر» وحدة المعالجة المركزية أن «تنسخ محتويات الخلية 5 من الذاكرة ووضع النسخة في الخلية 10») تنفيذ العمليات الحسابية والمنطقية على بيانات (على سبيل المثال «قم بإضافة محتويات الخلية 7 إلى محتويات الخلية 13 وضع الناتج في الخلية 20») اختبار حالة البيانات («لو أن محتويات الخلية 999 هي 0 فإن الأمر التالي يكون موجود في الخلية 30») تغيير تسلسل العمليات (يغير المثال السابق تسلسل العمليات ولكن الأوامر مثل «الأمر التالي يوجد في الخلية 100» تكون أيضا قياسية). إن الأوامر تكون ممثلة مثل البيانات في صورة شفرة ثنائية (نظام للعد قاعدته الرقم 2). على سبيل المثال، الشفرة لنوع من أنواع عملية «نسخ» في المعالجات الدقيقة من نوع Intel x86 هي 10110000. إن الأمر الجزئي يكون معد بحيث أن حاسب معين يدعم ما يعرف بلغة آلة الحاسب. إن استخدام لغة الآلة سابقة التبسيط جعلها أكثر سهولة لتشغيل برامج موجودة على آلة جديدة: وهكذا في الأسواق حيثما تكون إتاحة البرامج التجارية أمرا ضروريا فإن المزودين يتفقون على واحد أو عدد صغير جدا من لغات الآلة البارزة.
إن الحاسبات الأكبر مثل (minicomputers و mainframe computers و servers) تختلف عن الأنواع السابقة في أمر هام هو أن بدلا من وجود وحدة معالجة مركزية واحدة فإنه في الغالب يوجد أكثر من وحدة. غالبا ما تمتلك الحاسبات السوبر بنيات غير عادية بدرجة كبيرة وهذه البنيات مختلفة اختلافاً ملحوظاً عن بنية البرنامج المخزن الأساسية وفي بعض الأحيان تحتوي على الآلاف من وحدة المعالجة المركزية، ولكن مثل هذه التصميمات تصبح ذات فائدة فقط لأغراض متخصصة.

## إيجابيات وسلبيات هيكلة نيومان

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

## مكونات الحاسب

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

## انظر أيضا

* بنية هارفارد

## مراجع

* ↑ "معلومات عن هيكلة فون نيومان على موقع babelnet.org". babelnet.org. مؤرشف من الأصل في 2020-10-27.
* بوابة أعلام
* بوابة تقانة المعلومات
* بوابة علم الحاسوب