9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
تمرین درس معماری کامپیوتر
مهلت تحویل 91 :اردیبهشت
هدف تمرین :حافظهی نهان
نحوهی تحویل :پاسخ های خود را به صورت تایپ شده در قالب فایل .pdfدر مهلت معین به ایمیل درس ارسال
نمایید.
سواالت خود را در پیاتزا مطرح نمائید.
1
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
سوال 9
فرض کنید حافظهی نهان داده ( )data cacheبه صورت Direct Mapو هر بالک آن 32بایت است .همچنین
فرض کنید سیاست writeدر آن به صورت write-backو ( write-allocateدر هنگام write missبالک مورد
نظر به داخل حافظه نهان آورده میشود) است .شمای کلی سختافزاری آن به صورت زیر است:
الف) در صورتی که فضای آدرس فیزیکی 4GBباشد ،مشخص کنید هر کدام از K3 ،K2 ،K1و K4
مشخص شده در شکل ،کدام بخش از آدرس فیزیکی را شامل شده و هر کدام چند بیت است.
ب) اندازه tag arrayرا محاسبه کنید.
ج) اگر فرض شود که حافظهی نهان در ابتدا خالی بوده است ،به ازای هر یک از آدرسهای زیر مشخص
کنید ،کدام یک hitو کدام یک missمیشوند.
2
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
Address
0x24325
0x439af
0x34328
0x24330
0x439bf
0x24327
0x34330
0x24330
0x439bf
0x34328
0x24325
0x439af
0x24327
0x34330
Instruction
Store
Load
Store
Load
Store
Store
Load
Store
Load
Store
Load
Store
Store
Load
سوال 2
یک حافظهی نهان با مشخصات زیر در نظر بگیرید:
سیاست جایگزینی LRU2-way set associative
Write-back
بالک سایز برابر 91بایتاین حافظهی نهان نیازمند 92121بیت برای پیادهسازی tag arrayاست .همانطور که میدانید tag array
عالوه بر ذخیرهی ،tagشامل بیتهای الزم برای سیاست ،LRUتشخیص validبودن و dirty bitدر صورت
لزوم است .اندازه data arrayرا بدست آورید.
سوال 3
3
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
قطعه کد زیر را در نظر بگیرید .فرض کنید آرایهی Xو Yهرکدام دارای اندازهی 1MBهستند و پشت سر
یکدیگر در حافظه قرار گرفتهاند .آرایهی Xو Yهر دو از نوع intهستند و هر 4 ،intبایت به خود اختصاص
میدهد.
)for (int i=0; i< 1024; i++
)for(int j=0; j<1024; j++
;]Y[j*1024 + i] = X [i*1024 + j
الف) فرض کنید که قطعه کد را بر روی یک حافظهی نهان با اندازهی ،2-way set associative ،4KBاندازهی
بالک 32بایتی و سیاست جایگزینی LRUاجرا میکنیم Miss rate .مربوط به دستورات loadچقدر خواهد
بود؟ miss rateمربوط به دستورات storeچطور؟
ب) حافظهی نهان را مشابه قسمت الف در نظر بگیرید ،با این تفاوت که سیاست جایگزینی این بار FIFOباشد.
در این صورت miss rate ،مربوط به دستورات loadو storeچه تغییری خواهد کرد؟
ج) فرض کنید همان پیکربندی قسمت الف را برای حافظهی نهان در نظر میگیریم write-through .یا write-
backبودن حافظهی نهان ،و همچنین write-allocateبودن یا write-no-allocateبودن را با توجه به کارایی
بهتر ،مشخص کنید .یعنی با توجه به قطعه کد فوق ،بهترین سیاست مربوط به writeبه منظور کارایی بهتر،
کدام است؟
د) فرض کنید که قطعه کد را بر روی یک حافظهی نهان با اندازهی ،fully associative ،4KBاندازهی بالک 32
بایتی و سیاست جایگزینی LRUاجرا میکنیم .آیا امکان دارد که به گونهای کد را تغییر دهید (بدون اینکه
منطق کد تغییر کند) که همهی missها به جز Compulsory missاز بین برود؟ توضیح دهید.
سوال 4
4
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
دو کد زیر را در نظر بگیرید .در این سوال تنها آرایهی Xباعث دسترسی به حافظهی نهان داده ()data cache
میشود و دستورات در حافظهی نهان دستورات ( )instruction cacheقرار میگیرد .فرض کنید که حافظهی
نهان داده در ابتدا خالی و هر 4 intبایت است .همچنین فرض کنید آرایهی Xبه صورت Row orderدر
حافظه قرار گرفته است.
کد :9
کد :2
#define N1 64
#define N1 64
#define N2 128
#define N2 128
;]int X[N2][N1
;]int X[N2][N1
;int ans=0
;int ans=0
)(int main
)(int main
{
{
)for(int i=0; i<N2; i++
)for(int j=0; j<N1; j++
)for(int j=0; j<N1; j++
)for(int i=0; i<N2; i++
;]ans+=X[i][j
;]ans+=X[i][j
}
الف) فرض کنید این قطعه کد بر روی یک حافظهی نهان داده با اندازهی Direct map ،4KBو اندازه بالک 32
بایتی اجرا میشود .در این صورت محاسبه کنید که به ازای اجرای هرکدام از این دو قطعه کد ،چند missرخ
میدهد.
ب) فرض کنید این قطعه کد بر روی یک حافظهی نهان داده به صورت Direct mapو اندازه بالک 32بایتی
اجرا میشود .در این صورت محاسبه کنید که در صورت اجرای کد 9کمترین تعداد setهای حافظهی نهان
چقدر باشد تا به جز ،compulsory missهیچ missدیگری رخ ندهد؟ برای کد 2نیز محاسبه کنید.
5
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
}
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
ج) فرض کنید این قطعه کد بر روی یک حافظهی نهان داده با اندازهی Fully associative ،4KBو اندازه بالک
32بایتی اجرا میشود .سیاست جایگزینی آن FIFOاست .در این صورت محاسبه کنید که به ازای اجرای
هرکدام از این دو قطعه کد ،چند missرخ میدهد.
سوال 5
همانطور که میدانید ،در سیستمهای ،high performanceحافظهی نهان سطح اول ،به دلیل قرار گرفتن در
مسیر بحرانی پردازنده ،باید سریع باشد .به همین منظور در بیشتر معماریها ،در سطح اول ،از حافظهی نهان به
صورت direct mapاستفاده میکنند .بزگترین مزیت hit time ،direct mapسریع آن است .در مقابل ،مشکل
بزرگ direct mapتعداد زیاد conflict missاست .در صورتی که به جای ،direct mapاز set associative
استفاده کنیمconflict miss ،ها تا حد زیادی کاهش مییابد ولی به دلیل اینکه ،tag checkدر مسیر بحرانی
قرار دارد hit time ،افزایش مییابد.
برای اینکه از مزیت این دو پیکربندی ( hit timeسریع مربوط به miss rate ،Direct Mapپایین مربوط به Set
) associativeبه صورت همزمان استفاده کنیم ،یک معماری جدید برای حافظهی نهان ارایه کردیم .این
معماری به صورت 2way set associativeاست ولی همواره داده از way0خوانده میشود.
فرض کنید پردازنده درخواست خواندن یک داده را به حافظهی نهان میدهد .نحوهی کار به این صورت است:
-
اگر دادهی مورد نظر در way0بود ،داده سریعا برای پردازنده فرستاده میشود .به این حالت perfect
hitمیگوییم.
در صورتی که داده در way0نبود way1 ،بررسی میشود .اگر داده در way1بود ،داده برای پردازندهفرستاده میشود ،و دادهی موجود در way1با دادهی موجود در way0جابهجا ( )swapمیشود .به این
حالت slow hitمیگوییم.
-
اگر داده در هیچ یک از دو wayنبود miss ،رخ میدهد .داده از سطوح پایینتر آورده شده و برای
پردازنده فرستاده میشود .همچنین دادهی موجود در way0در داخل way1قرار گرفته و دادهای که از
سطوح پایینتر آورده شده ،در way0قرار میگیرد.
6
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
در صورتی که perfect hitرخ دهد ،تنها یک cycleزمان میبرد تا داده برای پردازنده فرستاده شود .در
هنگامی که slow hitرخ میدهد ،چهار cycleبه طول میکشد تا داده برای پردازنده فرستاده شود .این
چهار cycleشامل:
)9بررسی way0و رخ دادن missدر آن
)2بررسی ،way1نوشتن دادههای way0و way1در دو ثبات برای swapکردن
Swap )3کردن wayها در صورت رخ دادن hit
)4خواندن داده از way0و فرستادن آن به پردازنده
با توجه به توضیحات باال به سواالت زیر پاسخ دهید:
الف) سخت افزار مورد نیاز برای پیاده کردن این معماری برای عملیات خواندن را رسم کنید .برای کشیدن
سخت افزار ،مشابه آنچه در کالس حل تمرین آموختید ،عمل کنید.
ب) توضیح دهید که چرا hit timeمربوط به این معماری از 2way set associativeبهتر است .برای تحلیل
این موضوع باید از مقایسهی مسیر بحرانی کمک بگیرید.
فرض کنید میخواهیم قطعه کد زیر را بر روی این معماری جدید و یک حافظهی نهان 2way set associative
اجرا کنیم .هر دو حافظهی نهان دارای 256 setو بالک با اندازهی 91بایت و سیاست replacementآنLRU ،
است .فضای آدرسدهی فیزیکی نیز برابر 4MBاست.
در قطعه کد زیر ،آرایهی Xو Yاز نوع intو اندازهی آنها برابر 4MBاست .این دو به صورت پشت سرهم در
حافظه قرار گرفتهاند .نوع دادهی 4 ،intبایت در نظر گرفته میشود.
)for(int i=0; i<4096; i++
;]X[i] = 2*Y[i] – 13*X[i
با توجه به قطعه کد و توضیحات باال به سواالت زیر پاسخ دهید:
ج) در صورت اجرای قطعه کد باال بر روی حافظهی نهان با معماری جدید و miss ،2way set associative
rateرا برای هر کدام محاسبه کنید.
7
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
9313/2/91
تمرین حافظه نهان :درس معماری کامپیوتر -دکتر سربازی
د) در صورت اجرای قطعه کد باال بر روی حافظهی نهان با معماری جدید perfect hit rateو slow hit rate
را محاسبه کنید.
ط) اگر فرض کنیم miss penaltyبرابر ،100 nsزمان دسترسی به حافظهی نهان (در هنگام hitشدن) در
این معماری جدید برابر 1110 psو زمان دسترسی به 2way set associativeبرابر 1540 psاست ،و cycle
پردازنده با زمان دسترسی به حافظهی نهان برابر است Average Memory Access Time ،را پس از اجرای
قطعه کد باال بدست آورید.
ح) کارایی این معماری جدید کامال به perfect hit rateبستگی دارد ،در صورتی که بخواهیم Average
Memory Access Timeبرای این معماری و 2way set associativeیکسان باشد ،نسبت perfect hit
rateبه slow hit rateچقدر باید باشد (با توجه به قطعه کد باال) ؟
موفق باشید
برومند
8
- 32404دانشکده مهندسی کامپیوتر -دانشگاه صنعتی شریف
© Copyright 2026 Paperzz