چنار کامپیوتر

چنار کامپیوتر
طبقه بندی موضوعی
  • ۱
  • ۰

 

5.2 Caches are important to providing a high-performance memory hierarchy
to processors. Below is a list of 64-bit memory address references, given as word
addresses.
0x03, 0xb4, 0x2b, 0x02, 0xbf, 0x58, 0xbe, 0x0e, 0xb5, 0x2c, 0xba, 0xfd

 

سوال به ما یک سری آدرس داده و گفته است که این آدرس ها را داخل حافظه نهان (cache) بریزید. خب همان طور که سوال گفته آدرس ها 64بیتی هستند و همگی به یک Word از حافظه اصلی اشاره میکنند که این در بعضی سوالات Byte هم آمده است.

ادامه سوالات و حل تشریحی را در ادامه مطلب مشاهده کنید.


 

5.2.1 [10] <§5.3> For each of these references, identify the binary word address,
the tag, and the index given a direct-mapped cache with 16 one-word blocks. Also
list whether each reference is a hit or a miss, assuming the cache is initially empty.

راه حل و توضیحات:

 سوال از ما میخواهد که برای هر کدام از ارجاع ها، آدرس دودویی word را به دست آوریم، قسمت tag و index را مشخص کنیم. در این سوال هر سطر یا entity حافظه نهان شامل 16 بلاک یک کلمه ای میشود. خب هدف نهایی هم تشخیص hit یا miss برای این ارجاع هایی است که سوال به ما داده.


 از آنجا که در هر بلاک 16 کلمه داریم و ارجاع به حافظه اصلی هم به هر کلمه است پس 4 بیت ما صرف index میشود،
یعنی آدرس باینری که محاسبه کردیم 4 بیت از سمت راست آن را برای index در نظر میگیریم.:

16 blocks => 4bit index

چون ارجاع به حافظه اصلی به هر Word است و هر بلاک cache هم یک Word دارد، پس دیگر offset نداریم.

خب حالا که پارامترهای cache را بررسی کردیم، میتوانیم برای ارجاع هایی که سوال به ما داده جدول بکشیم و وضعیت hit یا miss را مشخص کنیم.

address decimal address binary address tags index miss/hit
0x03 3 0000 0011 0000 0011 miss
0xb4 180 1011 0100 1011 0100 miss
0x2b 43 0010 1011 0010 1011 miss
0x02 2 0000 0010 0000 0010 miss
0xbf 191 1011 1111 1011 1111 miss
0x58 88 0101 1000 0101 1000 miss
0xbe 190 1011 1110 1011 1110 miss
0x0e 14 0000 1110 0000 1110 miss
0xb5 181 1011 0101 1011 0101 miss
0x2c 44 0010 1100 0010 1100 miss
0xba 186 1011 1010 1011 1010 miss
0xfd 240 1111 1101 1111 1101 miss

 

 


 


5.2.2 [10] <§5.3> For each of these references, identify the binary word address,
the tag, the index, and the offset given a direct-mapped cache with two-word blocks
and a total size of eight blocks. Also list if each reference is a hit or a miss, assuming
the cache is initially empty.

 

راه حل و توضیحات:

two-words = 2*4 = 8 bytes => Byte offset = 3bit

در این قسمت سوال کل حافظه cache ما شامل هشت بلاک است؛ یعنی اگر بلاک را یک سطر در نظر بگیریم کل حافظه cache از 8 سطر تشکیل شده است، بنابراین باید 3 عدد بیت را برای شماره گذاری این 8 بلاک در نظر بگیریم.

8 blocks => 3bit index

چون ارجاع به حافظه اصلی به هر Word است و هر بلاک cache هم دو Word دارد، پس یک بیت offset داریم، یعنی بیت کم ارزش یا آخرین بیت برای cache مهم نیست چرا که هر بلاک cache دارد به دو آدرس حافظه اشاره میکند. دقت کنید که تشخیص این بیت offset در hit یا miss شدن ارجاع تاثیر گذار است.

و در آخر هر تعداد بیتی که از سمت راست اضافه آمد بیتهای tag حافظه cache را تشکیل میدهند؛ حالا که پارامترهای cache را بررسی کردیم، میتوانیم برای ارجاع هایی که سوال به ما داده جدول بکشیم و وضعیت hit یا miss را مشخص کنیم.

 

address decimal address binary address tags index Word offset miss/hit
0x03 3 0000 0011 0000 001 1 miss
0xb4 180 1011 0100 1011 010 0 miss
0x2b 43 0010 1011 0010 101 0 miss
0x02 2 0000 0010 0000 001 0 hit
0xbf 191 1011 1111 1011 111 1 miss
0x58 88 0101 1000 0101 100 0 miss
0xbe 190 1011 1110 1011 111 0 hit
0x0e 14 0000 1110 0000 111 0 miss
0xb5 181 1011 0101 1011 010 1 hit
0x2c 44 0010 1100 0010 110 0 miss
0xba 186 1011 1010 1011 101 0 miss
0xfd 240 1111 1101 1111 110 1 miss

 



5.2.3 [20] <§§5.3, 5.4> You are asked to optimize a cache design for the given
references. There are three direct-mapped cache designs possible, all with a total of
eight words of data:
■ C1 has 1-word blocks,
■ C2 has 2-word blocks, and
■ C3 has 4-word blocks.  

 

راه حل و توضیحات:

 

>>> Cache optimize rate: C2 > C1 > C3

 

 


منبع سوال: کتاب Computer Organization and Design ARM® EDITION

 

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی