۰
subtitle
ارسال: #۱
  
سوال: نگاشت k-way set associative همراه با بلاک بندی
با سلام به دوستان گل مانشتی
وقتی جافظه کش رو با استفاده از نگاشت k-way set associative بلاک بندی میکنیم تعداد کلمات حافظه کش و نحوه ی پیدا کردن کلمه وقتی cpu ادرسی را تولید میکند چطوریه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با تشکر فرررررررررررررررررررراون
وقتی جافظه کش رو با استفاده از نگاشت k-way set associative بلاک بندی میکنیم تعداد کلمات حافظه کش و نحوه ی پیدا کردن کلمه وقتی cpu ادرسی را تولید میکند چطوریه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
با تشکر فرررررررررررررررررررراون
۱
ارسال: #۲
  
RE: سوال: نگاشت k-way set associative همراه با بلاک بندی
وقتی که کش چند تا WAY داره واسه اینکه بدونیم برای آدرس دهی کش به چند بیت نیاز داریم تنها چیزی که مهم هست تعداد SET هاست همون سطرها.اگه مثلا ۴تا سطر داشتیم و هر سطر هم ۲ ستون بود یعنی WAY=2 کاری به ستون نداریم و فقط چون۴ تا سطر داریم پس به ۲بیت واسه آدرس دهی کش نیاز داریم
فقط یه نکته داره که خود سطرها بر اساس ستونها تعیین میشن. وقتی میگن مثلا کش ۸تا بلاک داره خب باید توجه کنیم که اینجا هر سطری ۲تا بلاک داره(به دلیل WAY=2) نه یک بلاک، پس کلا ۴تا سطر داریم نه ۸تا!
کل آدرس هم مث زمانیه که نگاشت مستقیم داریم فقط در اینجا باید آدرس کش رو براساس WAY و SET حساب کنیم.
سرچ کنید مطالب زیاد هست حتی با شکل
فقط یه نکته داره که خود سطرها بر اساس ستونها تعیین میشن. وقتی میگن مثلا کش ۸تا بلاک داره خب باید توجه کنیم که اینجا هر سطری ۲تا بلاک داره(به دلیل WAY=2) نه یک بلاک، پس کلا ۴تا سطر داریم نه ۸تا!
کل آدرس هم مث زمانیه که نگاشت مستقیم داریم فقط در اینجا باید آدرس کش رو براساس WAY و SET حساب کنیم.
سرچ کنید مطالب زیاد هست حتی با شکل
ارسال: #۳
  
RE: سوال: نگاشت k-way set associative همراه با بلاک بندی
(۲۵ آذر ۱۳۹۲ ۰۴:۱۲ ب.ظ)maryam.raz نوشته شده توسط: وقتی که کش چند تا WAY داره واسه اینکه بدونیم برای آدرس دهی کش به چند بیت نیاز داریم تنها چیزی که مهم هست تعداد SET هاست همون سطرها.اگه مثلا ۴تا سطر داشتیم و هر سطر هم ۲ ستون بود یعنی WAY=2 کاری به ستون نداریم و فقط چون۴ تا سطر داریم پس به ۲بیت واسه آدرس دهی کش نیاز داریم
فقط یه نکته داره که خود سطرها بر اساس ستونها تعیین میشن. وقتی میگن مثلا کش ۸تا بلاک داره خب باید توجه کنیم که اینجا هر سطری ۲تا بلاک داره(به دلیل WAY=2) نه یک بلاک، پس کلا ۴تا سطر داریم نه ۸تا!
کل آدرس هم مث زمانیه که نگاشت مستقیم داریم فقط در اینجا باید آدرس کش رو براساس WAY و SET حساب کنیم.
سرچ کنید مطالب زیاد هست حتی با شکل
واقعا ممنونم دوست عزیز
من اینطوری فکر میکنم که در هر سطر بلاک قرار نمیگیره بلکه یه کلمه از بلاک قرار میگیره . اینطوری که یک بلاک قرار بگیره طول کلمه ی حافظه کش بسته به بلاک بندی ما متفاوت میشه!!!!!!!
و اینجاست که کلا قاطی میکنم.....
درست فکر میکنم؟؟؟؟؟؟؟؟؟؟؟
نظرتون رو بگید خوشحال میشم
ارسال: #۴
  
RE: سوال: نگاشت k-way set associative همراه با بلاک بندی
(۲۶ آذر ۱۳۹۲ ۰۱:۴۴ ق.ظ)masume_ml نوشته شده توسط:ظرفیت کش همیشه براساس بلاک گفته مشه ، کش کاری به کلمه نداره فقط بلاک رو میشناسه. حالا اگر ما یک way داشتیم پس هر بلاکی در یه سطر قرار میگیره و اگر ۲تا way داشتیم در هرسطر ۲بلاک وهمینجور ...(25 آذر ۱۳۹۲ ۰۴:۱۲ ب.ظ)maryam.raz نوشته شده توسط: وقتی که کش چند تا WAY داره واسه اینکه بدونیم برای آدرس دهی کش به چند بیت نیاز داریم تنها چیزی که مهم هست تعداد SET هاست همون سطرها.اگه مثلا ۴تا سطر داشتیم و هر سطر هم ۲ ستون بود یعنی WAY=2 کاری به ستون نداریم و فقط چون۴ تا سطر داریم پس به ۲بیت واسه آدرس دهی کش نیاز داریم
فقط یه نکته داره که خود سطرها بر اساس ستونها تعیین میشن. وقتی میگن مثلا کش ۸تا بلاک داره خب باید توجه کنیم که اینجا هر سطری ۲تا بلاک داره(به دلیل WAY=2) نه یک بلاک، پس کلا ۴تا سطر داریم نه ۸تا!
کل آدرس هم مث زمانیه که نگاشت مستقیم داریم فقط در اینجا باید آدرس کش رو براساس WAY و SET حساب کنیم.
سرچ کنید مطالب زیاد هست حتی با شکل
واقعا ممنونم دوست عزیز
من اینطوری فکر میکنم که در هر سطر بلاک قرار نمیگیره بلکه یه کلمه از بلاک قرار میگیره . اینطوری که یک بلاک قرار بگیره طول کلمه ی حافظه کش بسته به بلاک بندی ما متفاوت میشه!!!!!!!
و اینجاست که کلا قاطی میکنم.....
درست فکر میکنم؟؟؟؟؟؟؟؟؟؟؟
نظرتون رو بگید خوشحال میشم
وقتی تعداد way و set مشخص بشه ما فقط به یک طریق میتونیم بلاک بندی کنیم چیزی دست ما نیست. این خود کش هست که ممکنه ساختار متفاوتی داشته باشه و تعداد بیت های آدرسش هم بسته به way ,set تغییر میکنه
ارسال: #۵
  
RE: سوال: نگاشت k-way set associative همراه با بلاک بندی
[/quote]
ظرفیت کش همیشه براساس بلاک گفته مشه ، کش کاری به کلمه نداره فقط بلاک رو میشناسه. حالا اگر ما یک way داشتیم پس هر بلاکی در یه سطر قرار میگیره و اگر ۲تا way داشتیم در هرسطر ۲بلاک وهمینجور ...
وقتی تعداد way و set مشخص بشه ما فقط به یک طریق میتونیم بلاک بندی کنیم چیزی دست ما نیست. این خود کش هست که ممکنه ساختار متفاوتی داشته باشه و تعداد بیت های آدرسش هم بسته به way ,set تغییر میکنه
[/quote]
مرسی دوست عزیز
کتاب پوران نوشته که بر اساس کلمه است و با بلاک بندی میتونیم اونو بهبودش بدیم !!!!!!!!!
شدید گیج شدم
ظرفیت کش همیشه براساس بلاک گفته مشه ، کش کاری به کلمه نداره فقط بلاک رو میشناسه. حالا اگر ما یک way داشتیم پس هر بلاکی در یه سطر قرار میگیره و اگر ۲تا way داشتیم در هرسطر ۲بلاک وهمینجور ...
وقتی تعداد way و set مشخص بشه ما فقط به یک طریق میتونیم بلاک بندی کنیم چیزی دست ما نیست. این خود کش هست که ممکنه ساختار متفاوتی داشته باشه و تعداد بیت های آدرسش هم بسته به way ,set تغییر میکنه
[/quote]
مرسی دوست عزیز
کتاب پوران نوشته که بر اساس کلمه است و با بلاک بندی میتونیم اونو بهبودش بدیم !!!!!!!!!
شدید گیج شدم
ارسال: #۶
  
RE: سوال: نگاشت k-way set associative همراه با بلاک بندی
ظرفیت کش همیشه براساس بلاک گفته مشه ، کش کاری به کلمه نداره فقط بلاک رو میشناسه. حالا اگر ما یک way داشتیم پس هر بلاکی در یه سطر قرار میگیره و اگر ۲تا way داشتیم در هرسطر ۲بلاک وهمینجور ...
وقتی تعداد way و set مشخص بشه ما فقط به یک طریق میتونیم بلاک بندی کنیم چیزی دست ما نیست. این خود کش هست که ممکنه ساختار متفاوتی داشته باشه و تعداد بیت های آدرسش هم بسته به way ,set تغییر میکنه
[/quote]
مرسی دوست عزیز
کتاب پوران نوشته که بر اساس کلمه است و با بلاک بندی میتونیم اونو بهبودش بدیم !!!!!!!!!
شدید گیج شدم
[/quote]
خب ما هم از روش بهبود یافته استفاده می کنیم خود آقای اجلالی هم گفتن بر اساس بلاک هست سوالات رو هم ببینی بر اساس بلاک گفتن.شما تعداد بیت های آدرس کش رو ازت خواستن بر اساس بلاک مشخص کن
البته این لغات بلاک و کلمه توی هر کتابی یه معنی میده!
وقتی تعداد way و set مشخص بشه ما فقط به یک طریق میتونیم بلاک بندی کنیم چیزی دست ما نیست. این خود کش هست که ممکنه ساختار متفاوتی داشته باشه و تعداد بیت های آدرسش هم بسته به way ,set تغییر میکنه
[/quote]
مرسی دوست عزیز
کتاب پوران نوشته که بر اساس کلمه است و با بلاک بندی میتونیم اونو بهبودش بدیم !!!!!!!!!
شدید گیج شدم
[/quote]
خب ما هم از روش بهبود یافته استفاده می کنیم خود آقای اجلالی هم گفتن بر اساس بلاک هست سوالات رو هم ببینی بر اساس بلاک گفتن.شما تعداد بیت های آدرس کش رو ازت خواستن بر اساس بلاک مشخص کن
البته این لغات بلاک و کلمه توی هر کتابی یه معنی میده!
۰
ارسال: #۷
  
RE: سوال: نگاشت k-way set associative همراه با بلاک بندی
سلام این این حرف درست نیس که کش همیشه بر اساس بلاک گفته میشه ، خیلی از سوالا رو میبینیم که ظرفیت بر اساس تعداد کلمات حافظه گفته میشه ،
ببین اول باید بدونی چجوری پردازنده ادرسشو پیدا میکنه ، ما از یه مجموعه استفاده کردیم ، شما یه جدول ساده رو در نظر بگیر ، هر سطر یه مجموعه میشه Set .
حالا هر سطر این جدولو به K بخش تقسیم کردیم (K-Way) یعنی هر سطرمون K قسمت شده (به هر بخش یه بلاک میگیم)، مابرای پیدا کردن هر قسمت بش یه Tag میدیم که وقتی امدیم توی این سطر مثلا بتونیم به قسمت ۳وم دسترسی داشته باشیم(پس برای هر قسمت یه Tag ذخیره میکنیم)، توی هرکدوم از این قسمت ها هم میتونیم چندتا کلمه قرار بدیم ، تا اینجاش فک کنم بتونی تصور کنی چه شکلیه ، حالا وقتی پردازنده میخواد یه کلمه از کش رو بخونه ، اول میاد و سطرمون توی این جدولو پیدا میکنه،بعدش باید Tag ادرس رو با خونهای سطر مقایسه کنه تا بدونه کدوم قسمت از این سطر رو نیاز داریم ، و بعدش از توی این قسمت کلمه مورد نظرشو برداره
پس اگر ما یه حافظه کش داشته باشیم مثلا ۴way ، و حافظه کش مثلا شامل ۶۴ کلمه باشه و در هر بلاک ۴ کلمه هست و ادرس های پردازنده ۸ بیتی باشن ،
۱/ حافظه اصلی دارای ۲به توانه ۸ بیت ادرس است . یعنی ۲۵۶ کلمه مختلف
۲/کش دارای ۶۴ کلمه است که هر ۴ کلمه توی ۱ بلاک قرار میگیرند ، پس ۶۴/۴ برابر میشه با ۱۶ بلاک
۳/سوال گفته ۴way یعنی در هر مجموعه(در هر سطر جدول) ۴تا بلاک داریم ، پس از ۱۶/۴ برابر میشه با ۴ مجموعه Set
۴/برای هر بلاک یه Tag قرار دادیم ، پس تعداد ( Tag=Block= 16 )
۵/طبق نتیجه گیریمون ۸ بیت هر ادرس پردازنده داره ، خب همونطور که گفتم ، اول باید سطر رو پیذاکنه توی جدول (اول باید مجموعه رو پیدا کنیم ) خب میبینیم که ۴تا Set توی کش داریم ، پس برای نمایش ۴ عدد (برای انتخاب بین این ۴تا )۲ بیت نیاز داریم ، بعدش که مجموعه رو پیدا کردیم باید بلاک رو پیدا کنیم (یعنی باید توی سطرمون ، اون بخش مورد نظرمونو پیدا کنیم) ، چجوری؟ خب میدونیم که گفتیم برای هر بلاک یه Tag قرار دادیم که بتونیم راحت اون بلاکو پیدا کنیم ، پس ، Tag ادرس رو با ۴تا تگ موجود توی این Set مقاییسه میکنیم تا پیدا تگ پیدا بشه و بلاکمون رو بفهمیم کدوم ، ولی راستی Tag چند بیت داره ؟ خب ما ۱۶تا بلاک توو کل کش داریم ، یعنی برای هر بلاک یه تگ ذخیره کردیم ، پس ۱۶ عدد متفاوت داریم برای نمایش ۱۶ عدد ۴ بیت میخوایم دیگه ، پس تگ هامون ۴ بیتی هستن ، حالا که بلاک رو پیدا کردیم ، باید از داخل کلماتش یکیو انتخاب کنیم ، گفته توی هر بلاک ۴ کلمه داریم ، دقت کن مقدار کلمه برامون مهم نیس ، ما ۴تا کلمه دارین که صفر میشه اولین کلمه ، ۱ میشه دومین ... مقدارش مهم نیس جای قرار گیریش مهمه ، حالا برای این ۴ عدد ، ۲ بیت میخوایم که نشون بده کدوم کلمه انتخاب شده
۶/پس ۲بیت برای انتخاب کلمه ، ۲ بیت برای انتخاب ست و ۴ بیت برای انتخاب Tag
شکلشم کشیدم توو عکس هست
ببین اول باید بدونی چجوری پردازنده ادرسشو پیدا میکنه ، ما از یه مجموعه استفاده کردیم ، شما یه جدول ساده رو در نظر بگیر ، هر سطر یه مجموعه میشه Set .
حالا هر سطر این جدولو به K بخش تقسیم کردیم (K-Way) یعنی هر سطرمون K قسمت شده (به هر بخش یه بلاک میگیم)، مابرای پیدا کردن هر قسمت بش یه Tag میدیم که وقتی امدیم توی این سطر مثلا بتونیم به قسمت ۳وم دسترسی داشته باشیم(پس برای هر قسمت یه Tag ذخیره میکنیم)، توی هرکدوم از این قسمت ها هم میتونیم چندتا کلمه قرار بدیم ، تا اینجاش فک کنم بتونی تصور کنی چه شکلیه ، حالا وقتی پردازنده میخواد یه کلمه از کش رو بخونه ، اول میاد و سطرمون توی این جدولو پیدا میکنه،بعدش باید Tag ادرس رو با خونهای سطر مقایسه کنه تا بدونه کدوم قسمت از این سطر رو نیاز داریم ، و بعدش از توی این قسمت کلمه مورد نظرشو برداره
پس اگر ما یه حافظه کش داشته باشیم مثلا ۴way ، و حافظه کش مثلا شامل ۶۴ کلمه باشه و در هر بلاک ۴ کلمه هست و ادرس های پردازنده ۸ بیتی باشن ،
۱/ حافظه اصلی دارای ۲به توانه ۸ بیت ادرس است . یعنی ۲۵۶ کلمه مختلف
۲/کش دارای ۶۴ کلمه است که هر ۴ کلمه توی ۱ بلاک قرار میگیرند ، پس ۶۴/۴ برابر میشه با ۱۶ بلاک
۳/سوال گفته ۴way یعنی در هر مجموعه(در هر سطر جدول) ۴تا بلاک داریم ، پس از ۱۶/۴ برابر میشه با ۴ مجموعه Set
۴/برای هر بلاک یه Tag قرار دادیم ، پس تعداد ( Tag=Block= 16 )
۵/طبق نتیجه گیریمون ۸ بیت هر ادرس پردازنده داره ، خب همونطور که گفتم ، اول باید سطر رو پیذاکنه توی جدول (اول باید مجموعه رو پیدا کنیم ) خب میبینیم که ۴تا Set توی کش داریم ، پس برای نمایش ۴ عدد (برای انتخاب بین این ۴تا )۲ بیت نیاز داریم ، بعدش که مجموعه رو پیدا کردیم باید بلاک رو پیدا کنیم (یعنی باید توی سطرمون ، اون بخش مورد نظرمونو پیدا کنیم) ، چجوری؟ خب میدونیم که گفتیم برای هر بلاک یه Tag قرار دادیم که بتونیم راحت اون بلاکو پیدا کنیم ، پس ، Tag ادرس رو با ۴تا تگ موجود توی این Set مقاییسه میکنیم تا پیدا تگ پیدا بشه و بلاکمون رو بفهمیم کدوم ، ولی راستی Tag چند بیت داره ؟ خب ما ۱۶تا بلاک توو کل کش داریم ، یعنی برای هر بلاک یه تگ ذخیره کردیم ، پس ۱۶ عدد متفاوت داریم برای نمایش ۱۶ عدد ۴ بیت میخوایم دیگه ، پس تگ هامون ۴ بیتی هستن ، حالا که بلاک رو پیدا کردیم ، باید از داخل کلماتش یکیو انتخاب کنیم ، گفته توی هر بلاک ۴ کلمه داریم ، دقت کن مقدار کلمه برامون مهم نیس ، ما ۴تا کلمه دارین که صفر میشه اولین کلمه ، ۱ میشه دومین ... مقدارش مهم نیس جای قرار گیریش مهمه ، حالا برای این ۴ عدد ، ۲ بیت میخوایم که نشون بده کدوم کلمه انتخاب شده
۶/پس ۲بیت برای انتخاب کلمه ، ۲ بیت برای انتخاب ست و ۴ بیت برای انتخاب Tag
شکلشم کشیدم توو عکس هست
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close