حافظه cache
DESCRIPTION
حافظه cache. اگر قسمت فعال برنامه و داده ها را در حافظه سریع و کوچکی قرار دهیم، میتوانیم با کم کردن میانگین زمان دسترسی به حافظه زمان اجرای برنامه را کاهش دهیم . این حافظه سریع و کوچک را حافظه cache می نامند . - PowerPoint PPT PresentationTRANSCRIPT
cache حافظه
سریع حافظه در را ها داده و برنامه فعال قسمت اگر میانگین کردن کم با میتوانیم دهیم، قرار کوچکی و
را برنامه اجرای زمان حافظه به دسترسی زمان.دهیم کاهش
حافظه را کوچک و سریع حافظه این cache نامند می. حافظه بسیارکمتری دسترسی زمان cache معموال
) کمتر برابر 10 تا (5 دارد اصلی حافظه به نسبتعمل است ممکن کامپیوتر دریک 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
حافظه مراتب سلسله از مثالی
cache عمل نحوه
که وقتی cpu ابتدا دارد حافظه به دسترسی به نیاز این در داده اگر: مینماید جستجو را cache حافظه در میشود استفاده آن از بود موجود سریع حافظه
که داده از بلوکی حافظه به رجوع با اینصورت غیر اصلی حافظه از میشود cpu نیاز مورد داده شامل
.میگردد منتقل cache حافظه به
اصلی حافظه32K x 12
CPU cache حافظه512 x 12
Word access
Block transfer
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
موفقیت درصد
حافظه کارائی cache موفقیت درصد نام با ضریبی با hit ratio میشود گیری اندازه.
در داده که دفعاتی تعداد نسبت از است عبارت درصد این cache حافظه به رجوع دفعات کل تعداد به شده یافت.
به دسترسی سرعت باشد بیشتر درصد این مقدار چه هر .میشود نزدیکتر cache سرعت به حافظه
مثال:100 دسترسی زمان با کامپیوتر یکns حافظه برای cache
درصد داشتن صورت در اصلی حافظه برای1000ns و. داشت خواهد 200ns با برابر دسترسی زمان0.9 موفقیت
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(
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
Cache Operation (Write)
Write Miss Write-through
main memory written directly Write-back
block first brought into cache then desired word in cache overwritten
های بلوک اندازه 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)
00011011
Index Tag Data
00110101
00 + 00 = 0000InvalidInvalid
01 + 11 = 0111
Main memoryaddress in cache block
1001
ValidBit
حالتشروع
اطالعات هیچ و است خالی حافظه کار، به شروع حالت در . از وضعیت این دادن نشان برای ندارد وجود آن در معتبری
بیت .VALIDیک میشود استفاده پر صفر با ها بیت این همه کامپیوتر بکار شروع حالت در
در. داده نوشتن با به cacheمیشوند بیت داده 1این تغییرمیشود.
نگاشت
حافظه به اصلی حافظه از داده انتقال عمل cache طریق سه به اینکار. مینامند نگاشت را :میشود انجام
Direct MappingAssociate MappingSet-associative mapping
Direct مستقیم نگاشتMapping
سازی پیاده برای روش این در cache یک از :میشود استفاده سریع RAM حافظه
2 دارای اصلی حافظه اگرn حافظه و کلمه cache k و n به ترتیب به نتیجه در باشند کلمه 2k دارای
.داشت خواهند نیاز آدرس بیت آدرس n تقسیم زیر بصورت اصلی حافظه بیتی
میشودIndexTag
n-k k
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
Direct مستقیم نگاشتMapping
توسط آدرسی که وقتی CPU با میشود تولید حافظه از کلمه یک آن Index قسمت از استفادهcache مقدار و شده خوانده Tag آن در شده ذخیره
.میگردد مقایسه آدرس Tag مقدار بادو اگر Tag داده بودند یکسان cacheاستفاده مورد
( hit )میگیرد قراراینصورت غیر در( miss )شده خوانده حافظه از داده
.میشود نوشته cache در جدید Tag با همراه وبا آدرسهائی به رجوع اگر روش این در index یکسان
.میاید پائین موفقیت درصد بیافتد، اتفاق زیاد
نگاشت در داده به دسترسیمستقیم
0123......
10221023
Index Tag DataValidAddress (32 bits)
=
To CPU
Hit
1022
Index
Tag
در داده 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
بلوک مستقیم نگاشت اندازه بابزرگتر
گرفته نظر در یک از بزرگتر بلوک اندازه معموالمیشود:
01
01
3450
6578Block 0
Tag Data
Cache
Index000
00700
00
1340
1658
010
017Block 1
BlockTag
n-k k
Word
Set-associative mapping
حافظه از محل هر روش این در cache میتواند .نماید ذخیره را یکسان Index آدرس با کلمه چندین
تعداد data-tag یک حافظه در شده ذخیره های set .میشود خوانده
مقایسه برای tag ذخیره مقادیر با شده تولید آدرس .میشود استفاده associative ازحافظه شده
شدن بزرگ با set موفقیت درصد ها 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
جایگزینی های الگوریتم
یک که وقتی miss صورتیکه در افتد، می اتفاق های داده از یکی تا میشود الزم باشد پر set یک.شود cache وارد جدید داده و شده خالی آن
دارد وجود اینکار برای مختلفی روشهای:first-in, first-outRandom replacementLeast recently used )LRU(
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
Example: 4-way set associative Cache
cache حافظه در نوشتن
حافظه با ارتباط در مهم مسایل از یکی cache عمل نحوه .است حافظه در اطالعات نوشتن هنگام در
در داده وقتی ها داده خواندن هنگام cache داشته وجود داده وقتی اما نیست اصلی حافظه به رجوع به نیازی باشد،
عمل طریق دو به است ممکن مینویسیم حافظه در را:شود
:write through هم داده حافظه در نوشتن بار درهر روش این در .میشود نوشته اصلی حافظه در هم و cache در
:write back در فقط داده روش این در cache یک با و شده نوشته این از دارد قرار cache در داده این زمانیکه تا. میشود set پرچم مقدارcache از داده انتقال صورت در اما شد، خواد استفاده داده
.میگردد update نیز اصلی حافظه در آن
80486 در cache حافظه
8 کاشه یک پردازنده این داخل درk نظر در بایتی استفاده بایتی 16 های بلوک واز. است شده گرفته
.میشودروش از کاشه در نوشتن برای write through
.میشود استفادهاست صد در 90 از باالتر موفقیت درصد.نمود استفاده نیز دیگر خارجی کاشه یک از میتوان.
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
در حافظه مراتب سلسلهجدید های پردازنده
associative حافظه
های داده بین در جستجو عمل تسریع برای حافظه این از .میشود استفاده شده ذخیره
از آدرس، از استفاده بجای جستجو زمان کاهش برای گاهی را روش این. میشود استفاده داده خود محتوی
content addressable memory )CAM( مینامند همنیست آدرس به نیازی حافظه این در داده نوشتن هنگام!را داده و نموده پیدا را خالی جای تا است قادر حافظه این
.مینماید ذخیره آنجا درداده هنگام آن از بخشی یا و داده مقدار حافظه، از خواندن
ای شده ذخیره کلمات تمامی حافظه و شده ارائه حافظه به کرده گذاری عالمت را هستند یکسان نظر مورد داده با که رامینماید خواندن آماده و
مربوطه افزار سخت
Argument Register )A(
Key Register )K(
Associative memory array and logic
m wordsn bit per words
Input
read
write
Output
N
match register
Associate mapping
یک سازی پیاده راه سریعترین که روش این از cacheدر استحافظه . associativeیک میشود استفاده
. میشوند ذخیره کلمه یک محتوی هم و آدرس هم حافظه این درنتیجه ذخیره cacheدر را حافظه از محل هر محتوی میتواند
نماید. حافظه به آن آدرس داده یک برای جستجو هنگام
associative . در متناظری ورودی صورتیکه در میشود عرضه . غیر در میگردد ظاهر خروجی در مربوطه داده باشد، حافظه
حافظه در داه و آدرس دوی هر ذخیره associativeاینصورت. شد خواهند
الگوریتم از در FIFOمعموال جایگزینی استفاده cacheبرایمیشود
Associate mapping
00 1220
02 6710
Address Data
Cache
Argument Register
CPU Address
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
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?
AMD Opteron – caches, etc
Cache memory, L1 cache, L2 cache
This is a Pentium from 1993!
Now processor cores are even smaller.
Cache memory, L1 cache, L2 cache
Questions?