You are on page 1of 33

‫الترتيب الهرمي للذواكر‬

‫‪1‬‬ ‫‪ 27‬شباط‪19 ،‬‬


‫)‪Random-Access Memory (RAM‬‬
‫مقدمة ‪:‬‬ ‫•‬
‫– توطد ذواكر الرام في رزم على هيئة شرائح‬
‫– وتكون وحدة التخزين الرئيسية فيها هي الخلية حيث تحتوي الخلية على بت وحيد‪.‬‬
‫– تكون هذه الشرائح العديدة الذاكرة‬
‫• الذواكر الستاتيكية )‪Static RAM (SRAM‬‬
‫كل خلية تخزن بت تتألف من دارة تشكلها ستة ترانزستورات‬ ‫–‬
‫تبقى القيمة المخزنة في هذه الذاكرة طالما أنها مربوطة بالتغذية‬ ‫–‬
‫غير حساسة نسبيا إلى اإلضطرابات كالضجيج الكهربائي‬ ‫–‬
‫أسرع وأغلى ثمنا من الـ ‪DRAM‬‬ ‫–‬
‫• الذواكر الديناميكية )‪Dynamic RAM (DRAM‬‬
‫كل خلية تخزن بت تتألف من دارة تشكلها ترانزستور ومكثف‬ ‫–‬
‫ويجب إنعاش القيمة التي يحملها هذا البت كل ‪ 100-10‬ميلي ثانية‬ ‫–‬
‫حساسة لإلضطرابات‬ ‫–‬
‫أبطأ ولكنها بالمقابل أرخص ثمنا من الـ ‪SRAM‬‬ ‫–‬
SRAM vs DRAM Summary

‫عدد‬ ‫زمن‬ ‫حساسة‬ ‫التطبيق‬


‫دائمة؟‬ ‫الكلفة‬
‫الترانزستورات‬ ‫الوصول‬ ‫للتغيرات؟‬ Application

SRAM 6 1X YES NO 100X Cash Memory

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

internal row buffer


Reading DRAM Supercell (2,1)
. ‫ السطر الثاني‬Row address strobe (RAS) ‫ يختار الـ‬: ‫• الخطوة األولى‬
‫ إلى عازل داخلي خاص بالسطور‬DRAM ‫ثم ينسخ هذا السطر من مصفوفة التخزين‬
16 x 8 DRAM chip
cols
0 1 2 3
RAS = 2
2
/ 0
addr
1
rows
memory
controller 2

8 3
/
data

internal row buffer


.1 ‫ باختيار العمود‬Column access strobe (CAS) ‫ يقوم الـ‬:‫• الخطوة الثانية‬
CPU ‫) من العازل إلى خطوط البيانات ويتم إرجاعها إلى الـ‬2,1( ‫اآلن تنسخ الخلية‬

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

internal row buffer


supercell
(2,1)
Memory Modules

addr (row = i, col = j)


: supercell (i,j)
DRAM 0

64 MB
memory module
consisting of
DRAM 7
eight 8Mx8 DRAMs

bits bits bits bits bits bits bits bits


56-63 48-55 40-47 32-39 24-31 16-23 8-15 0-7

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.

L5: Remote secondary remote secondary storage


storage(distributed
(distributed file systems, Web servers)
file system , Web servers)
‫البنية الهرمية للذواكر‬
‫تتألف هذه االبنية الهرمية في الحواسب بشكل عام من ‪:‬‬ ‫•‬
‫سجالت المعالج ‪ :‬و تؤمن أسرع طريقة وصول (عادة دورة ‪CPU‬‬ ‫•‬
‫واحدة) وحجمها حوالي عدة مئات من البايتات فقط‬
‫المستوى األول هو المستوى األول من الكاش ‪ L1 cash‬وغالبا ما يتم‬ ‫•‬
‫الوصول إليها في عدة دورات وحجمها عشرات الكيلو بايتات‬
‫المستوى الثاني هو المستوى الثانية من الكاش ‪ L2 cash‬ولها معدل‬ ‫•‬
‫زمن نفاذ أعلى من المرحلة األولى ب ضعف إلى عشرة أضعاف‬
‫غالبا حوالي ‪ 512‬كيلو بت أو أكثر‬
‫الذاكرة الرئيسية أو ال ‪ DRAM‬وقد تأخذ المئات من الدورات ويمكن‬ ‫•‬
‫أن تكون بحجم الغيغا بايت‬
‫‪ disk storage‬التخزين على األقراصي يأخذ ماليين الدورات‬ ‫•‬
‫وحجم هائل‬
‫البنية الهرمية للذواكر‬

‫يوضح الشكل السابق البنية الهرمية للذاكرة و بالطبع فكل جزء‬ ‫•‬
‫من هذه البنية الهرمية مختلف عن اآلخر بعدة عوامل من ناحية‬
‫الحجم سواء الفيزيائي أو حتى المنطقي و من ناحية السرعة و‬
‫بالتالي تأثيره على عامل التكلفة‪.‬‬
‫الخالصة‬ ‫•‬
‫إن تنظيم الذواكر في بنية هرمية يسمح لنا باالستفادة من ميزتي‬ ‫•‬
‫السرعة العالية للذواكر الصغيرة والسعة الضخمة للذواكر الكبيرة‬
‫البطيئة‪.‬‬
‫ويفيدنا إستخدام ذاكرة الكاش المرتبطة بهذا الهرم من التخلص‬ ‫•‬
‫من مشكلة البطء الزمني المقترن بالـ ‪DRAM‬‬
‫هرمية الذاكرة واداء المعالج‬
‫• لقد زادت الحاجة إلى هرمية الذاكرة بشكل كبير مع ازدياد أداء‬
‫المعالجات ‪ ،‬حيث كان تصميم غالبية المعالجات دون ذاكرة (‪) Cache‬‬
‫‪ ،‬بينما في عام (‪ ) 1995‬أصبحت غالبية المعالجات تأتي مزودة‬
‫بمستويين من ذواكر (‪ ، ) Cache‬باإلضافة لذلك فإن أداء المعالجات بدأ‬
‫يتقدم بنسبة (‪ ) 55%‬كل سنة بد ًء من العام (‪ ) 1987‬في حين أنه كان‬
‫يتحسن بنسبة (‪ ) 33%‬حتى العام (‪.) 1986‬‬
‫•‬
‫• والشكل التالي يظهر مدى تحسن أداء الـ (‪ ) CPU‬خالل فترة محددة و‬
‫التحسن في زمن النفاذ إلى الذاكرة الرئيسية (‪) Main memory‬‬
‫المقابل له ‪ .‬حيث نالحظ بوضوح و جود فجوة كبيرة بين أداء الذاكرة و‬
‫أداء المعالج تجعل من الواجب على مصممي نظم الكمبيوتر إغالق هذه‬
‫الفجوة‬
‫ذواكر الكاش‬
‫ذاكرة الكاش ‪ :‬هي عبارة عن أداة تخزين سريعة وصغيرة وتكون على هيئة مرحلة‬ ‫•‬
‫إنتقالية لتخزين جزء بيانات موجود في مكان أكبر وأقل سرعة‬

‫• الفكرة األساسية المرتبطة بهرم الذاكرة ‪:‬‬


‫– من أجل كل ‪ K‬فإن هذه األداة الصغيرة (في المستوى ‪ )k‬تتصرف وكأنها ذاكرة‬
‫كاش للمستوى األعلى ‪K+1‬‬

‫• لماذا تعمل هذه البنية بالشكل الصحيح ؟‬


‫– في الواقع فإن البرنامج يميل إلى التعامل والوصول إلى البيانات التي في المستوى‬
‫‪K‬بشكل أكثر تكرارية من التعامل مع البيانات في المستوى ‪.K+1‬‬
‫– وبهذا فإن يمكن للتخزين في المستوى ‪ K+1‬أن يكون أبطأ أي أنه سيكون أكبر وأقل‬
‫سرعة إذا يمكننا اآلن أخذ الذواكر األرخص بالنسبة للبايت‪.‬‬
‫– وبهذا نحصل على خاصية هامة تسمى تأثير الشبكة ‪NET EFFECT :‬‬
‫– أي أنه يمكننا الحصول على كمية كبيرة من الذاكرة بسعر رخيص في أسفل الهرم‬
‫ولكننا في نفس الوقت سنحصل بالنسبة للبرنامج على سرعة أي أنها توصل البيانات‬
‫بمعدل سرعة كما لو كانت هذه الذواكر سريعة وغالية كما التي في قمة الهرم‪.‬‬
‫باستخدام الكاش‬
Smaller, faster, more expensive
48 9 14
10 3 device at level k caches a
subset of the blocks from level k+1

Data is copied between


4
10 levels in block-sized transfer units

0 1 2 3

4 5 6 7 Larger, slower, cheaper storage


device at level k+1 is partitioned
8 9 10 11 into blocks.

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‬‬ ‫عنصر ضحية‬
‫مع هذا فإن الزمن يبقى مقبوال‬ ‫–‬
‫أمثلة عن ذاكرة الكاش في البنية الهرمية للذواكر في الحاسب‬

Cache Type What Cached Where Cached Latency (cycles) Managed By

Registers 4-byte word CPU registers 0 Compiler


TLB Address On-Chip TLB 0 Hardware
translations
L1 cache 32-byte block On-Chip L1 1 Hardware
L2 cache 32-byte block Off-Chip L2 10 Hardware
Virtual Memory 4-KB page Main memory 100 Hardware+OS

Buffer cache Parts of files Main memory 100 OS


Network buffer Parts of files Local disk 10,000,000 AFS/NFS
cache client
Browser cache Web pages Local disk 10,000,000 Web browser

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‬‬

‫• تعتبر هذه التقنية من البدائل للتقنية السابقة حيث يتم توظيف‬


‫عملية الجلب المسبق للتعليمات لطلب المعطيات قبل الحاجة‬
‫لها و تتم هذه الطريقة من خالل ‪:‬‬
‫• مسجل للجلب المسبق يتم تحميل القيمة المرادة ضمنه ‪.‬‬
‫• ذاكرة كاش للجلب المسبق يتم تحميل المعطيات فيها عوضا ً‬
‫عن المسجل‪.‬‬
‫•‬

You might also like