Professional Documents
Culture Documents
- البنية الهرمية للذواكر
- البنية الهرمية للذواكر
Maim Mem ,
DRAM 1 10X NO YES 1X
Frame Buffers
d x w DRAM:
dw total bits organized as d supercells of size w bits
16 x 8 DRAM chip
colums
0 1 2 3
2 bits 0
/
addr
1
rows
memory 2 supercell
controller (2,1)
(to CPU)
3
8 bits
/
data
8 3
/
data
16 x 8 DRAM chip
cols
0 1 2 3
CAS = 1
2
/ 0
addr
To CPU 1
rows
memory
controller 2
8 3
supercell /
(2,1) data
64 MB
memory module
consisting of
DRAM 7
eight 8Mx8 DRAMs
63 56 55 48 47 40 39 32 31 24 23 16 15 8 7 0
Memory
controller
64-bit doubleword at main memory address A
64-bit doubleword
البنية الهرمية للذواكر
ولهذا تم إقتراح تنظيم للذواكر ونظم التخزين على هيئة هرم •
الختيار المناسب منها وسمي هذا الهرم بالبنية الهرمية
للذواكر.
بسبب تزايد سرعات ال CPUفإن أغلب وقتها تقضيه عاطلة •
عن العمل في انتظار الذاكرة أو الدخل \خرج
صمم هذا الهرم للسماح للبرامج بشغل أفضل تنسيق بالنسبة •
للذواكر التي تتعامل معها .
كل مستوى في هذا الهرم يتمتع بعرض حزمة أعرض حجم •
أصغر وزمن نفاذ أقل من المراحل الدنيا
An Example Memory Hierarchy
Smaller, Registers
L0:
faster, registers CPU registers hold words retrieved from L1
and cache.
On-chip L1
on-chip L1
costlier L1:
(per byte) cache
cache (SRAM) L1 cache holds cache lines retrieved from
storage (SRAM) the L2 cache memory.
devices L2: off-chip L2
cache (SRAM)
Off-chip L2 L2 cache holds cache lines retrieved
from main memory.
cache(SRAM)
L3: main memory
Larger, (DRAM)
Main memory holds disk
slower, Main memory(DRAM) blocks retrieved from local
and disks.
cheaper local secondary storage
L4:
(per byte) Local secondary storage(local
(local disks)
storage Local disks hold files
disks) retrieved from disks on
devices remote network servers.
يوضح الشكل السابق البنية الهرمية للذاكرة و بالطبع فكل جزء •
من هذه البنية الهرمية مختلف عن اآلخر بعدة عوامل من ناحية
الحجم سواء الفيزيائي أو حتى المنطقي و من ناحية السرعة و
بالتالي تأثيره على عامل التكلفة.
الخالصة •
إن تنظيم الذواكر في بنية هرمية يسمح لنا باالستفادة من ميزتي •
السرعة العالية للذواكر الصغيرة والسعة الضخمة للذواكر الكبيرة
البطيئة.
ويفيدنا إستخدام ذاكرة الكاش المرتبطة بهذا الهرم من التخلص •
من مشكلة البطء الزمني المقترن بالـ DRAM
هرمية الذاكرة واداء المعالج
• لقد زادت الحاجة إلى هرمية الذاكرة بشكل كبير مع ازدياد أداء
المعالجات ،حيث كان تصميم غالبية المعالجات دون ذاكرة () Cache
،بينما في عام ( ) 1995أصبحت غالبية المعالجات تأتي مزودة
بمستويين من ذواكر ( ، ) Cacheباإلضافة لذلك فإن أداء المعالجات بدأ
يتقدم بنسبة ( ) 55%كل سنة بد ًء من العام ( ) 1987في حين أنه كان
يتحسن بنسبة ( ) 33%حتى العام (.) 1986
•
• والشكل التالي يظهر مدى تحسن أداء الـ ( ) CPUخالل فترة محددة و
التحسن في زمن النفاذ إلى الذاكرة الرئيسية () Main memory
المقابل له .حيث نالحظ بوضوح و جود فجوة كبيرة بين أداء الذاكرة و
أداء المعالج تجعل من الواجب على مصممي نظم الكمبيوتر إغالق هذه
الفجوة
ذواكر الكاش
ذاكرة الكاش :هي عبارة عن أداة تخزين سريعة وصغيرة وتكون على هيئة مرحلة •
إنتقالية لتخزين جزء بيانات موجود في مكان أكبر وأقل سرعة
0 1 2 3
12 13 14 15
اعتبارات عامة
لنفرض أن البرنامج يحتاج للعنصر dالموجود في •
Request البلوك b
14
12
12 14 • Cache hitإصابة الكاش
0 1 2 3
Level – أي أن البرنامج قد وجد البلوك في الكاش في
12
*4 9 14 3
k: المستوى kو ليكن مثالblock14.
• Cache missالكاش لم تصب
12
*4 Request
12 أي أن الكاش لم تجد العنصر في المستوى k –
عندئذ تحاول أن تصيب في المستوى k+1مثال
block 12..
0 1 2 3 إذا كان مسنوى الكاش kمملوءا عندها يستبدل –
Level 4
*4 5 6 7 عنصر ما قديم بالعنصر الجديد
k+1: 8 9 10 11 هناك عدة طرق الستبدال العنصر و اختيار –
12 13 14 15 عنصر ضحية
مع هذا فإن الزمن يبقى مقبوال –
أمثلة عن ذاكرة الكاش في البنية الهرمية للذواكر في الحاسب
Web cache Web pages Remote server disks 1,000,000,000 Web proxy
server
أداء ذاكرة الكاش Cache Performance
• يتم تقييم أداء المعالج من خالل دورات آلة التعليمات Instruction count
بسبب أنها مستقلة عن العتاد المادي للحاسب . hardwareوأيضاً تقييم أداء
هرمية الذواكر يعتمد على مع ّدل الفقد miss rateألنه أيضاً مستقل عن
سرعة العتاد المادي ,لكن القياس األفضل لتقييم أداء هرمية الذواكر يكون
بحساب القيمة الوسطية لزمن الوصول للذاكرة :
• Average memory access time = Hit time + Miss rate ´ Miss
penalty
•
• حيث :
• :Hit timeهو زمن اإلصابة.
• :Miss penaltyعقوبة اإلخفاق.
• :Miss rateمعدل الفقد.
تحسين أداء الذاكرة كاش
أعطتنا الصيغة ( ) AMATإطار عمل عند القيم المثالية •
لذاكرة الكاش باإلضافة لتقنيات تحسين الذاكرة كاش .
و هنا تم تنظيم هذه القيم المثالية للذاكرة كاش في ثالث •
تصنيفات :
انقاص معدل الفقد . •
انقاص نسبة الفقد . •
انقاص زمن اإلصابة ( ) hitإلى الكاش . •
•
انقاص إخفاقات (الفقد) الكاش
• وللحصول على رؤية واضحة عن أسباب الفقد (اإلخفاقات)
يجب أن نقدم تصنيف لجميع اإلخفاقات ( )Missesفي ثالث
أصناف بسيطة:
• اإلجباري (اإللزامي) :يحدث هذا اإلخفاق عند الوصول
األول لبلوك غير موجود في الذاكرة كاش ،لذلك يجب
إحضار هذا البلوك إلى الذاكرة كاش ،وتدعى هذه الحالة
بإخفاقات البداية الباردة ( )Cold start missesأو إخفاقات
المرجعية األولي (.)First reference misses
• السعة (المقدرة) :يحدث هذا اإلخفاق إذا لم تحتوي الكاش على
جميع البلوكات الفردية خالل تنفيذ البرنامج ،وعندها يتم التوقف
واسترجاع الملفات (البلوكات) الحقا ً
• التعارض :إذا كانت خوارزمية توضع البلوكات في الذاكرة هي
اإلسقاط المباشر أو المشتركة ،عندها يحدث اإلخفاق التعارضي
باإلضافة إلى النوعين السابقين من اإلخفاقات عندما يكون تحميل
البلوك متوقف وسوف يسترجع الحقاً ،وذلك بسبب وجود العديد
من البلوكات التي يجب إحضارها
• يبين الجدول التالي التكرار المتواصل لفقد أو إخفاقات الكاش
مقسمة بواسطة ثالثة شرائح
االستراتيجيات المتبعة إلنقاص معدل الفقد
• حجم بلوك أكبر
• تعتبر هذه التقنية من أبسط الطرق و هي تعتمد على زيادة حجم البلوك ،حيث
• العالقة العكسية بين حجم البلوك و معدل الفقد ،حيث نالحظ أن زيادة حجم
البلوك سيؤدي حتما ً إلى إنقاص معدل الفقد .إن هذا النقص في معدل الفقد
يحدث نتيجة أن إمكانية التوضع للبلوك يكون لها نوعين :إما توضع مؤقت
( ) temporal localityأو توضع مكاني ( ، ) spatial localityو
البلوكات الكبيرة الحجم تمتاز بخاصية التوضع المكاني ،و بنفس الوقت تؤدي
زيادة حجم البلوك إلى زيادة عقوبة اإلخفاق ( ، ) miss penaltyولكن من
الجدير بالذكر أنه في حال كان حجم الذاكرة ( ) cacheصغير فإن زيادة حجم
البلوكات سيؤدي إلى زيادة اإلخفاقات عنما تتنازع البلوكات مع بعضها لتحتل
مكانا ً لها في الذاكرة ،كما تؤدي إلى زيادة سعة اإلخفاقات .من ناحية أخرى
علينا أن نأخذ بعين اإلعتبار أن إنقاص معدل الفقد يكون غير مفيد في حال
رافق ذلك زيادة في زمن النفاذ الوسطي للذاكرة
التقنية الثانية () higher associativity
• تعتمد هذه التقنية على زيادة الترابطية (التشارك) بين الذواكر
لتحسين زمن الفقد ،ولكن يجب أن نذكر في هذا الخصوص
أن تحسين زمن النفاذ للذاكرة يتعارض في كثير من األحيان
مع أشياء أخرى ،فمثالً زيادة حجم البلوك ينقص من معدل
الفقد و لكن يزيد من عقوبة اإلخفاق (، ) miss penalty
كذلك فإن تحسين التشارك بين الذواكر ()associativity
يكون على حساب الكلفة في تحسين زمن اإلصابة ( hit
) time
التقنية الثالثة () Victim Caches
• تعتبر هذه التقنية أحد الحلول المتبعة لتخفيف اإلخفاق الناتج عن التنازع
على الذاكرة كاش بين البلوكات ( ) conflict missو ذلك عنما يكون
حجم الذاكرة كاش صغير ،حيث تعتمد هذه التقنية على إضافة ذاكرة
كاش مشتركة بالكامل ( ) Fully associative Cacheبين الذاكرة
كاش و بين الممر الذي يصل بين وحدة الـ ( ) CPUو الذاكرة كاش
نفسها و الذي يدعى ( ، ) refill pathو يظهر الشكل التالي موضع الـ
( . ) Victim cacheفي هذه التقنية تحتوي الذاكرة () Victim cache
فقط على البلوكات التي يتم استبعادها من الذاكرة كاش بسبب اإلخفاق ،
حيث يتم فحص هذه البلوكات و التأكد من عدم وجود معطيات مرغوبة
فيها قبل أن تنتقل (البلوكات) إلى المستوى األدنى من الذاكرة ،و في
حال وجود معطيات مرغوبة في البلوك الموجود في الذاكرة ( Victim
) cacheيتم استبدال هذا البلوك
التقنية الرابعة (الذواكر العشوائية التشارك
) Pseudo-associative caches:
تستخدم هذه التقنية لتحسين معدل الفقد في طريقة اإلسقاط المشترك لمجموعة •
البلوكات في الذاكرة كاش ( ، ) set-associative cacheو الحصول على
معدل إصابة أسرع في طريقة التقابل المباشر (. ) direct-mapped
في هذه التقنية يتم تسريع النفاذ إلى الذاكرة كاش في حالة التقابل المباشر •
بهدف تحسين زمن اإلصابة ،وفي حالة اإلخفاق و قبل أن ينتقل البلوك إلى
المستوى األدنى من البنية الهرمية للذاكرة ،يتم إجراء فحص على ذاكرة كاش
أخرى مدخلة للتحقق من وجود تطابق هناك.
من الطرق البسيطة المتبعة هي عكس البتات األعلى وزنا ً في حقل الدليل •
بهدف إيجاد بلوكات أخرى في المجموعة العشوائية (. ) Pseudo set
تمتلك ذاكرة الكاش في هذه التقنية إصابة سريعة أو إصابة بطيئة و ذلك بما •
يتوافق مع نوع اإلصابة منتظمة أو عشوائية ،باإلضافة إلى غرامة اإلخفاق
.يبين الشكل التالي العالقة بين اإلصابة المنتظمة و العشوائية :
التقنية الخامسة (الجلب المسبق للبيانات و التعليمات
باإلعتماد على العتاد )
• تعتمد هذه التقنية على الجلب المسبق للعناصر قبل أن يتم
طلبها من قبل المعالج .و هنا يمكن إجراء الجلب المسبق
للتعليمات و البيانات مباشرة إلى الذاكرة كاش أو إلى بفر
( ) Bufferخارجي ،و هذا يعطي إمكانية نفاذ أسرع من
استخدام الذاكرة الرئيسية .
•
األوامر Compiler-controlled pre-:
:)fetching