توضيح: يعمل المعالج بسرعة 800 ميجاهرتز و 200 ميجا هرتز DDR ذاكرة الوصول العشوائي

StackOverflow https://stackoverflow.com/questions/4096049

سؤال

لديّ مجموعة تقييم لها تنفيذ Cortex-A8 Core. تنص ورقة بيانات المعالج على أنه يحتوي على ملف

Arm Cortex A8 ™ Core ، الذي يعمل بسرعة تصل إلى 800 ميجا هرتز وما يصل إلى 200 ميجا هرتز DDR2 ذاكرة الوصول العشوائي.

ماذا يمكنني أن أتوقع من هذا النظام؟ هل أنا محق في افتراض أن الوصول إلى الذاكرة سيكون عنق الزجاجة لأنه يعمل بسرعة 200 ميجا هرتز فقط؟

بحاجة إلى مزيد من المعلومات حول كيفية تفسير هذا.

هل كانت مفيدة؟

المحلول

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

يتم وصف مدى سرعة الحصول على خط ذاكرة التخزين المؤقت من ذاكرة الوصول العشوائي الرئيسية بواسطة معلمتين ، يسمى وقت الإستجابة و عرض النطاق. الكمون هو مقدار الوقت بين اللحظة التي يصدر فيها المعالج الطلب ، وفي اللحظة التي يتم فيها استلام بايت خط التخزين المؤقت الأول. الكمون النموذجي حوالي 30ns. في 800 ميغاهيرتز ، 30ns يعني 24 دورة الساعة. يصف النطاق الترددي عدد البايتات لكل نانو ثانية يمكن إرسالها على الحافلة. "200 MHz DDR2" تعني أن ساعة الحافلة ستعمل على 200 ميجاهرتز. يمكن لـ DDR2 RAM إرسال عنصرين بيانات لكل دورة (وبالتالي 400 ملايين العناصر في الثانية). يعتمد النطاق الترددي بعد ذلك على عدد الأسلاك الموجودة بين وحدة المعالجة المركزية والذاكرة RAM: مع حافلة 64 بت ، و 200 ميجاهرتز DDR2 ذاكرة الوصول العشوائي ، يمكنك أن تأمل في 3.2 GBYTES/S في ظروف مثالية. بحيث يستغرق الحصول على بعض البايت الأول لبعض الوقت (الكمون مرتفع فيما يتعلق بما يمكن أن تفعله وحدة المعالجة المركزية) ، يتم قراءة بقية خط ذاكرة التخزين المؤقت بسرعة كبيرة.

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

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

انظر صفحة ويكيبيديا على ذاكرة التخزين المؤقت لمقدمة ومؤشرات على مسألة ذاكرة التخزين المؤقت.

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

نصائح أخرى

نعم ، قد تكون الذاكرة عنق الزجاجة ولكن من غير المرجح أن تقوم بتشغيل تطبيق ولا شيء لكن اقرأ واكتب إلى الذاكرة.

داخل وحدة المعالجة المركزية ، لن يكون عنق الزجاجة الذاكرة تأثير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top