حافظه cache

35
ه ظ ف حاcache ر گ ا ت م س ق عال ف ه م ا رن ب و داده ها را در ه ظ حاف ع" ی ر س و ی ک) ح و کار ر ق م،" ی ه د م" ی ن وا ی م ا ن م ک7 ردن ک7 ن" گی ن ا" ی م7 مان ر ی س ر ست د ه ب ه ظ حاف7 مان ر رای ج ا امه رن ب راE ش ه کا م" ی ه د. 7 ن" ی ا ه ظ حاف ع" ی ر س وI ک) ح و ک را ه ظ حافcache ی م د ی م ا ن. ه ظ حاف ولا م ع مcache 7 مان ر ی س ر ست د ری مت ک ار" ی س ب ت ب س ب ه ب ه ظ حاف ی صل ا دارد5 ) ا ن10 ر ب را ب ر مت ک( I ک" ی در ر ب و" ت[ ی م کا7 ن ک م م ت س ا ل م عcache ا ن د ن) چ ح ط سار ر ک ن ردد گ.

Upload: winfred-smith

Post on 03-Jan-2016

78 views

Category:

Documents


0 download

DESCRIPTION

حافظه cache. اگر قسمت فعال برنامه و داده ها را در حافظه سریع و کوچکی قرار دهیم، میتوانیم با کم کردن میانگین زمان دسترسی به حافظه زمان اجرای برنامه را کاهش دهیم . این حافظه سریع و کوچک را حافظه cache می نامند . - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: حافظه  cache

cache حافظه

سریع حافظه در را ها داده و برنامه فعال قسمت اگر میانگین کردن کم با میتوانیم دهیم، قرار کوچکی و

را برنامه اجرای زمان حافظه به دسترسی زمان.دهیم کاهش

حافظه را کوچک و سریع حافظه این cache نامند می. حافظه بسیارکمتری دسترسی زمان cache معموال

) کمتر برابر 10 تا (5 دارد اصلی حافظه به نسبتعمل است ممکن کامپیوتر دریک cache سطح چند تا

.گردد تکرار

Page 2: حافظه  cache

registers

on-chip L1cache (SRAM)

main memory(DRAM)

local secondary storage(local disks)

Larger, slower,

and cheaper (per byte)storagedevices

remote secondary storage(distributed file systems, Web servers)

Local disks hold files retrieved from disks on remote network servers.

Main memory holds disk blocks retrieved from local

disks.

off-chip L2cache (SRAM)

L1 cache holds cache lines retrieved from the L2 cache

memory.

CPU registers hold words retrieved from L1 cache.

L2 cache holds cache lines retrieved from main memory.

L0:

L1:

L2:

L3:

L4:

L5:

Smaller,faster,and

costlier(per byte)storage devices

حافظه مراتب سلسله از مثالی

Page 3: حافظه  cache

cache عمل نحوه

که وقتی cpu ابتدا دارد حافظه به دسترسی به نیاز این در داده اگر: مینماید جستجو را cache حافظه در میشود استفاده آن از بود موجود سریع حافظه

که داده از بلوکی حافظه به رجوع با اینصورت غیر اصلی حافظه از میشود cpu نیاز مورد داده شامل

.میگردد منتقل cache حافظه به

اصلی حافظه32K x 12

CPU cache حافظه512 x 12

Word access

Block transfer

Page 4: حافظه  cache

Hit Rate and Miss Penalty

Hit Rate Ratio of hits to attempted accesses Greater than 0.9 essential for high performance

Miss Penalty Extra time needed to bring desired info into the

cache

Page 5: حافظه  cache

موفقیت درصد

حافظه کارائی cache موفقیت درصد نام با ضریبی با hit ratio میشود گیری اندازه.

در داده که دفعاتی تعداد نسبت از است عبارت درصد این cache حافظه به رجوع دفعات کل تعداد به شده یافت.

به دسترسی سرعت باشد بیشتر درصد این مقدار چه هر .میشود نزدیکتر cache سرعت به حافظه

مثال:100 دسترسی زمان با کامپیوتر یکns حافظه برای cache

درصد داشتن صورت در اصلی حافظه برای1000ns و. داشت خواهد 200ns با برابر دسترسی زمان0.9 موفقیت

Page 6: حافظه  cache

Cache Operation (Read)

Read Hit Item in cache

Read Miss Block copied from main memory to cache

word sent to processor after copy word sent to processor as soon as available )load-

through(

Page 7: حافظه  cache

Cache Operation (Write)

Write Hit Write-through

cache and main memory updated simultaneously Write-back

only cache updated dirty )modified( bit block written back when removed from cache

Page 8: حافظه  cache

Cache Operation (Write)

Write Miss Write-through

main memory written directly Write-back

block first brought into cache then desired word in cache overwritten

Page 9: حافظه  cache

های بلوک اندازه cacheتاثیر

های بلوک اندازه شدن بزرگ با کلی حالت درcache میزانhit rate . به اما یابد می افزایش

میزا ترتیب که miss penaltyهمین زمانی یعنینیز است الزم کاشه به اطالعات انتقال برای

. یافت خواهد افزایشAverageAccess

Time

Increased Miss Penalty& Miss Rate

Block Size

Average Access Time: = Hit Time x Hit Ratio + Miss Penalty x (1 – Hit Ratio)

Page 10: حافظه  cache

00011011

Index Tag Data

00110101

00 + 00 = 0000InvalidInvalid

01 + 11 = 0111

Main memoryaddress in cache block

1001

ValidBit

حالتشروع

اطالعات هیچ و است خالی حافظه کار، به شروع حالت در . از وضعیت این دادن نشان برای ندارد وجود آن در معتبری

بیت .VALIDیک میشود استفاده پر صفر با ها بیت این همه کامپیوتر بکار شروع حالت در

در. داده نوشتن با به cacheمیشوند بیت داده 1این تغییرمیشود.

Page 11: حافظه  cache

نگاشت

حافظه به اصلی حافظه از داده انتقال عمل cache طریق سه به اینکار. مینامند نگاشت را :میشود انجام

Direct MappingAssociate MappingSet-associative mapping

Page 12: حافظه  cache

Direct مستقیم نگاشتMapping

سازی پیاده برای روش این در cache یک از :میشود استفاده سریع RAM حافظه

2 دارای اصلی حافظه اگرn حافظه و کلمه cache k و n به ترتیب به نتیجه در باشند کلمه 2k دارای

.داشت خواهند نیاز آدرس بیت آدرس n تقسیم زیر بصورت اصلی حافظه بیتی

میشودIndexTag

n-k k

Page 13: حافظه  cache

Direct مستقیم نگاشتMapping

حافظه در cache مربوط اطالعات داده بر عالوه .میشود ذخیره هم Tag به

1220

2340

3450

4560

6710

00 1220

00000

0077701000

0177702000

27777

567027 6710

000

777

Index Tag Data

Cache

Main memory

Page 14: حافظه  cache

Direct مستقیم نگاشتMapping

توسط آدرسی که وقتی CPU با میشود تولید حافظه از کلمه یک آن Index قسمت از استفادهcache مقدار و شده خوانده Tag آن در شده ذخیره

.میگردد مقایسه آدرس Tag مقدار بادو اگر Tag داده بودند یکسان cacheاستفاده مورد

( hit )میگیرد قراراینصورت غیر در( miss )شده خوانده حافظه از داده

.میشود نوشته cache در جدید Tag با همراه وبا آدرسهائی به رجوع اگر روش این در index یکسان

.میاید پائین موفقیت درصد بیافتد، اتفاق زیاد

Page 15: حافظه  cache

نگاشت در داده به دسترسیمستقیم

0123......

10221023

Index Tag DataValidAddress (32 bits)

=

To CPU

Hit

1022

Index

Tag

Page 16: حافظه  cache

در داده cacheنوشتن The lowest k bits of the address specify a cache block. The upper )m - k( address bits are stored in the block’s tag field. The data from main memory is stored in the block’s data field. The valid bit is set to 1.

0123... ......

Index Tag DataValidAddress (32 bits)

1022

Index

Tag

Data

1

Page 17: حافظه  cache

بلوک مستقیم نگاشت اندازه بابزرگتر

گرفته نظر در یک از بزرگتر بلوک اندازه معموالمیشود:

01

01

3450

6578Block 0

Tag Data

Cache

Index000

00700

00

1340

1658

010

017Block 1

BlockTag

n-k k

Word

Page 18: حافظه  cache

Set-associative mapping

حافظه از محل هر روش این در cache میتواند .نماید ذخیره را یکسان Index آدرس با کلمه چندین

تعداد data-tag یک حافظه در شده ذخیره های set .میشود خوانده

مقایسه برای tag ذخیره مقادیر با شده تولید آدرس .میشود استفاده associative ازحافظه شده

شدن بزرگ با set موفقیت درصد ها cache افزایش یابد می

Page 19: حافظه  cache

2-way Set-associative mapping

00 1220

02 6710

000

777

Index Tag Data

Cache

02 5670

00 2340

Tag Data

Cache

Cache that has k blocks per set is referred to as a k-way set-associative cache

Page 20: حافظه  cache

جایگزینی های الگوریتم

یک که وقتی miss صورتیکه در افتد، می اتفاق های داده از یکی تا میشود الزم باشد پر set یک.شود cache وارد جدید داده و شده خالی آن

دارد وجود اینکار برای مختلفی روشهای:first-in, first-outRandom replacementLeast recently used )LRU(

Page 21: حافظه  cache

Cache Data

Cache Block 0

Cache TagValid

:: :

Cache Data

Cache Block 0

Cache Tag Valid

: ::

Cache Index

Mux 01Sel1 Sel0

Cache Block

CompareAdr Tag

Compare

OR

Hit

Page 22: حافظه  cache

Example: 4-way set associative Cache

Page 23: حافظه  cache

cache حافظه در نوشتن

حافظه با ارتباط در مهم مسایل از یکی cache عمل نحوه .است حافظه در اطالعات نوشتن هنگام در

در داده وقتی ها داده خواندن هنگام cache داشته وجود داده وقتی اما نیست اصلی حافظه به رجوع به نیازی باشد،

عمل طریق دو به است ممکن مینویسیم حافظه در را:شود

:write through هم داده حافظه در نوشتن بار درهر روش این در .میشود نوشته اصلی حافظه در هم و cache در

:write back در فقط داده روش این در cache یک با و شده نوشته این از دارد قرار cache در داده این زمانیکه تا. میشود set پرچم مقدارcache از داده انتقال صورت در اما شد، خواد استفاده داده

.میگردد update نیز اصلی حافظه در آن

Page 24: حافظه  cache

80486 در cache حافظه

8 کاشه یک پردازنده این داخل درk نظر در بایتی استفاده بایتی 16 های بلوک واز. است شده گرفته

.میشودروش از کاشه در نوشتن برای write through

.میشود استفادهاست صد در 90 از باالتر موفقیت درصد.نمود استفاده نیز دیگر خارجی کاشه یک از میتوان.

Page 25: حافظه  cache

Intel Pentium 4, 2.2 GHz Processor.

ComponentAccess Speed(Time for data to be

returned)

Size of Component

Registers1 cycle = 0.5 nanoseconds

32 registers

L1 Cache3 cycles =1.5 nanoseconds

Separate Data and Instruction Caches: 8 Kbytes each

L2 Cache20 cycles =10 nanoseconds

256 Kbytes, 8-way set associative

L3 Cache30 cycles =15 nanoseconds

512 Kbytes, 8-way set associative

Memory400 cycles =200 nanoseconds

16 Gigabytes

در حافظه مراتب سلسلهجدید های پردازنده

Page 26: حافظه  cache

associative حافظه

های داده بین در جستجو عمل تسریع برای حافظه این از .میشود استفاده شده ذخیره

از آدرس، از استفاده بجای جستجو زمان کاهش برای گاهی را روش این. میشود استفاده داده خود محتوی

content addressable memory )CAM( مینامند همنیست آدرس به نیازی حافظه این در داده نوشتن هنگام!را داده و نموده پیدا را خالی جای تا است قادر حافظه این

.مینماید ذخیره آنجا درداده هنگام آن از بخشی یا و داده مقدار حافظه، از خواندن

ای شده ذخیره کلمات تمامی حافظه و شده ارائه حافظه به کرده گذاری عالمت را هستند یکسان نظر مورد داده با که رامینماید خواندن آماده و

Page 27: حافظه  cache

مربوطه افزار سخت

Argument Register )A(

Key Register )K(

Associative memory array and logic

m wordsn bit per words

Input

read

write

Output

N

match register

Page 28: حافظه  cache

Associate mapping

یک سازی پیاده راه سریعترین که روش این از cacheدر استحافظه . associativeیک میشود استفاده

. میشوند ذخیره کلمه یک محتوی هم و آدرس هم حافظه این درنتیجه ذخیره cacheدر را حافظه از محل هر محتوی میتواند

نماید. حافظه به آن آدرس داده یک برای جستجو هنگام

associative . در متناظری ورودی صورتیکه در میشود عرضه . غیر در میگردد ظاهر خروجی در مربوطه داده باشد، حافظه

حافظه در داه و آدرس دوی هر ذخیره associativeاینصورت. شد خواهند

الگوریتم از در FIFOمعموال جایگزینی استفاده cacheبرایمیشود

Page 29: حافظه  cache

Associate mapping

00 1220

02 6710

Address Data

Cache

Argument Register

CPU Address

Page 30: حافظه  cache

Associative Mapping

Main memory block can be placed into any cache block

Contention occurs only when cache is full Replacement algorithm required to chose block to

repalce Associative search of tags in parallel Most flexible

Costly

Page 31: حافظه  cache

Instructions versus Data

Modern system designs frequently use a pair of separate cache memories, one for storing processor instructions and another for storing the program’s data

Why is this a good idea?

Page 32: حافظه  cache

AMD Opteron – caches, etc

Page 33: حافظه  cache

Cache memory, L1 cache, L2 cache

This is a Pentium from 1993!

Now processor cores are even smaller.

Page 34: حافظه  cache

Cache memory, L1 cache, L2 cache

Page 35: حافظه  cache

Questions?