هندسة هارفارد المعمارية

هندسة هارفارد المعمارية

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

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

لقد شكك بعض الباحثين في مفهوم هندسة جامعة هارفارد. ووفقًا لدراسة محكمة نُشرت عام 2022 حول هذا الموضوع، [ 5 ] [ 6 ]

  • "تم صياغة مصطلح "هندسة هارفارد" بعد عقود، في سياق تصميم المتحكمات الدقيقة" و"تم تطبيقه بأثر رجعي على أجهزة هارفارد ثم تم تطبيقه لاحقًا على معالجات RISC الدقيقة ذات الذاكرة المؤقتة المنفصلة"؛
  • "غالباً ما يتم تصوير ما يسمى بـ "هارفارد" و "فون نيومان" على أنهما ثنائيتان ، لكن الأجهزة المختلفة التي تصنف على أنها الأولى تشترك في الكثير مع الأخيرة أكثر مما تشترك فيه مع بعضها البعض"؛
  • "باختصار [هندسة هارفارد المعمارية] ليست هندسة معمارية ولم تستمد من العمل في هارفارد".

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

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

تفاصيل الذاكرة

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

على النقيض من عمارة فون نيومان

في نظام ذي بنية فون نيومان خالصة ، تُخزَّن التعليمات والبيانات في نفس الذاكرة، لذا تُستجلب التعليمات عبر نفس مسار البيانات المستخدم لجلب البيانات. هذا يعني أن وحدة المعالجة المركزية لا تستطيع قراءة التعليمات وقراءة أو كتابة البيانات من الذاكرة أو إليها في الوقت نفسه. أما في حاسوب يستخدم بنية هارفارد، فيمكن لوحدة المعالجة المركزية قراءة التعليمات وإجراء عملية الوصول إلى البيانات في الذاكرة في الوقت نفسه، [ 8 ] حتى بدون ذاكرة تخزين مؤقتة . وبالتالي، يمكن أن يكون حاسوب بنية هارفارد أسرع بالنسبة لتعقيد دائرة معينة، لأن جلب التعليمات والوصول إلى البيانات لا يتنافسان على مسار ذاكرة واحد.

كذلك، تتميز أجهزة معمارية هارفارد بمساحات عناوين منفصلة للتعليمات والبيانات: فعنوان التعليمات صفر ليس هو نفسه عنوان البيانات صفر. قد يشير عنوان التعليمات صفر إلى قيمة مكونة من 24 بت، بينما قد يشير عنوان البيانات صفر إلى بايت مكون من 8 بتات ليس جزءًا من تلك القيمة المكونة من 24 بت.

قارن ذلك بهندسة هارفارد المعدلة

تُشبه الآلة ذات بنية هارفارد المُعدّلة إلى حد كبير الآلة ذات بنية هارفارد الأصلية، لكنها تُخفف من الفصل الصارم بين التعليمات والبيانات مع السماح لوحدة المعالجة المركزية بالوصول المتزامن إلى ناقلين (أو أكثر) من نواقل الذاكرة. يتضمن التعديل الأكثر شيوعًا وجود ذاكرات تخزين مؤقت منفصلة للتعليمات والبيانات مدعومة بمساحة عناوين مشتركة. أثناء تنفيذ وحدة المعالجة المركزية من ذاكرة التخزين المؤقت، فإنها تعمل كآلة هارفارد أصلية. عند الوصول إلى الذاكرة الرئيسية، فإنها تعمل كآلة فون نيومان (حيث يمكن نقل التعليمات البرمجية كما تُنقل البيانات، وهي تقنية فعّالة). ينتشر هذا التعديل على نطاق واسع في المعالجات الحديثة، مثل بنية ARM و Power ISA ومعالجات x86 . يُطلق عليها أحيانًا اسم بنية هارفارد بشكل عام، متجاهلين حقيقة أنها في الواقع "مُعدّلة".

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

سرعة

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

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

التصميم الداخلي مقابل التصميم الخارجي

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

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

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

الاستخدامات الحديثة لهندسة هارفارد المعمارية

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

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

ملحوظات

  1. تحتوي خطوط IAP الخاصة بوحدات التحكم الدقيقة المتوافقة مع 8051 من STC على ذاكرة فلاش مزدوجة المنافذ، حيث يتم توصيل أحد المنفذين بناقل التعليمات الخاص بنواة المعالج، ويتم توفير المنفذ الآخر في منطقة سجل الوظائف الخاصة.
  2. كما هو الحال في حالة Intel 80486 الموصوفة جيدًا . [ 9 ] : 26-34 [ 10 ]

مراجع

  1. نورغارد، تامي (2005). هندسة الأنظمة المدمجة: دليل شامل للمهندسين والمبرمجين . نيونس. ISBN 978-0-7506-7792-9.
  2. كونغ، جيه إتش؛ أنغ، إل إم؛ سينغ، كيه بي (2010). معالج AES ذو مجموعة تعليمات دنيا باستخدام بنية هارفارد . المؤتمر الدولي الثالث لعلوم الحاسوب وتكنولوجيا المعلومات، 2010. المجلد 9. الصفحات 65-69 . doi : 10.1109/ICCSIT.2010.5564522 . ISBN   978-1-4244-5537-9.
  3. فينكاتيسان، تشاندرا؛ سلطانة، م. ثابسيرا؛ سوميثرا، م. ج.؛ سوريا، م. (2019). تصميم معالج RISC ذي بنية هارفارد 16 بت بتقنية كادنس 45 نانومتر . المؤتمر الدولي الخامس للحوسبة المتقدمة وأنظمة الاتصالات (ICACCS) لعام 2019. الصفحات 173-178 . doi : 10.1109/ICACCS.2019.8728479 . ISBN  978-1-5386-9531-9.
  4. فوربر، إس بي (19-09-2017). بنية وتنظيم VLSI Risc . روتليدج. ISBN 978-1-351-40537-9.
  5. باوسون، ريتشارد (30 سبتمبر 2022). "أسطورة هندسة هارفارد". حوليات IEEE لتاريخ الحوسبة . 44 (3): 59-69 . Bibcode : 2022IAHC...44c..59P . doi : 10.1109/MAHC.2022.3175612 . S2CID 252018052 . 
  6. باوسون، ريتشارد (2022)، "أسطورة هندسة هارفارد" (ملف PDF) ، حوليات IEEE لتاريخ الحوسبة ، 44 (3): 59، Bibcode : 2022IAHC...44c..59P ، doi : 10.1109/MAHC.2022.3175612
  7. "دليل مستخدم كاليمبا دي إس بي" (ملف PDF) . يوليو 2006. صفحة 18. تم الاطلاع عليه بتاريخ 23-09-2022 . هذا تصميم معماري هارفارد ثلاثي البنوك. 
  8. " 386 مقابل 030: المسار السريع المزدحم ". مجلة دكتور دوب ، يناير 1988.
  9. براون، جون فورست (1994). برمجة الأنظمة المدمجة بلغة C ولغة التجميع . نيويورك: فان نوستراند رينهولد. ISBN 0-442-01817-7. OCLC 28966593 . 
  10. "برمجة الأنظمة المدمجة: مخاطر ذاكرة التخزين المؤقت للحاسوب الشخصي" . users.ece.cmu.edu . مؤرشف من الأصل بتاريخ 15 يناير 2020. تم الاطلاع عليه بتاريخ 26 مايو 2022 .
  11. أونجربوك، جي.؛ مايوالد، دي.؛ كايزر، إتش بي؛ شيفيلات، بي آر؛ بيرو، جيه بي (1985). "بنية معالج الإشارات الرقمية" . مجلة آي بي إم للبحوث والتطوير . 29 (2): 132-139 . doi : 10.1147/rd.292.0132 .
  12. هو، يو-لي؛ كاو، جيا-لين؛ ران، فنغ؛ ليانغ، تشي-جيان (2004). "تصميم متحكم دقيق عالي الأداء". وقائع المؤتمر السادس لجمعية مهندسي الكهرباء والإلكترونيات (IEEE) حول تصميم وتغليف الأنظمة الدقيقة عالية الكثافة وتحليل أعطال المكونات (HDP '04) . الصفحات 25-28 . doi : 10.1109/HPD.2004.1346667 . ISBN  0-7803-8620-5.