72
ه ظ ف حا مان ساز ل ص ف12 و ن ما اب ت کAmirkabir University of Technology Computer Engineering & Information Technology Department

سازمان حافظه فصل 12 کتاب مانو Amirkabir University of Technology Computer Engineering & Information Technology Department

  • View
    214

  • Download
    1

Embed Size (px)

Citation preview

حافظه سازمان

مانو 12فصل کتاب

Amirkabir University of TechnologyComputer Engineering & Information Technology Department

اصلی حافظه

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

. مینماید نگهداری اجرا: است نوع دو بر

ROMRAM

حافظه دیاگرام بلوک

Example: 2MB memory, byte-addressable N = 8 (because of byte-addressability) K = 21 (1 word = 8-bit)

2k wordsN-bit per word

حافظه واحد

N-bit Data Input(for Write)

N-bit Data Output(for Read)

K-bit address lines

Read/Write

Chip Enable

N

N

K

حافظه دیاگرام بلوک

cs1cs2RDWRAD7

Chip Select 1Chip Seleect2

Read Write7-bit address

128X8RAM

8-bit data bus

پردازنده با حافظه ارتباط

mainmemoryModules

bus interface

ALU

register file

CPU chip

memory bus

Memory Interface

حافظه آدرس نقشه هر به شده داده اختصاص حافظه مقدار کامپیوتر طراحی موقع در

های حافظه از .RAM , ROMیک میگردند مشخص

:مثال

Component Address A10 A9 A8A7A6A5A4A3A2 A1

RAM1 0000-007F 0 0 0 x x x x x x x

RAM2 0080-00FF 0 0 1 x x x x x x x

RAM3 0100-017F 0 1 0 x x x x x x x

RAM4 0180-01FF 0 1 1 x x x x x x x

ROM 0200-03FF 0 x x x x x x x x x

RAMحافظه

حافظه از کامپیوتر اصلی حافظه ساخته RAMعمدهمیشود.

حافظه نوع دو کامپیوترها در مورد RAMمعموال: هستند استفاده

DRAM: Dynamic Random Access Memory High density, low power, cheap, slow Dynamic: need to be “refreshed” regularly

SRAM: Static Random Access Memory Low density, high power, expensive, fast Static: content will last “forever” (until lose power)

•Write:–1. Drive bit line–2. Select row

•Read:–1. Precharge bit line to Vdd/2–2. Select row–3. Cell and bit line share charges

•Very small voltage changes on the bit line–4. Sense (fancy sense amp)

•Can detect changes of ~106 electrons–5. Write: restore the value

•Refresh–1. Just do a dummy read to every cell.

row select

bit

حافظه DRAMساختار

SRAMحافظه Static Random Access Memory (SRAM)

: روی بر نظر مورد مقدار نوشتن روی Bitlineبرای بر آن معکوس داده Bitlineو قرارسپس و .WL=1شده میشود

: دوی هر خواندن مقدار Bitlineو Bitlineبرای سپس Vdd (1)با و میشوند شارژWL=1 . میشود

BitLineBitLine

Wordline (WL)

6-Transistor SRAM Cell

•Write:

1. Drive bit lines (bit=1, bit=0)

2. Select row

bit bit

wordword(row select)

حافظه SRAMساختار

•Read:

1. Precharge bit and bit to Vdd or Vdd/2 => make sure equal!

2. Select row

3. Cell pulls one line low

4. Sense amplifier on column detects difference between bit and bit

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

. میشود ساخته

حافظه توصیف

: میشود بیان زیر بصورت حافظه یک ظرفیت #addresses x Word size

:مثال

Memory #of addr #of data lines #of addr lines #of total bytes

1M x 8 1,048,576 8 20 1 MB

2M x 4 2,097,152 4 21 1 MB

1K x 4 1024 4 10 512 B

4M x 32 4,194,304 32 22 16 MB

16K x 64 16,384 64 14 128 KB

حافظه دهی آدرس نحوه

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

0

1

2

3

D7 D6 D5 D4 D3 D2 D1 D0

4x8 Memory2-to-42-to-4

DecoderDecoder

A0

A1

CS

ChipSelect

حافظه دهی آدرس نحوه

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

0

1

2

3

D7 D6 D5 D4 D3 D2 D1 D0

4x8 Memory2-to-42-to-4

DecoderDecoderA0=1

A1=0

Access address = 0x1

CS

ChipSelect=1

شماره محل حافظه 1انتخاب

Use 2 Decoders

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

0

1

2

3

8x4 Memory8x4 Memory2-to-42-to-4

DecoderDecoder

RowRowDecoderDecoder

A1

A2

1-to-2 Decoder 1-to-2 Decoder Column DecoderColumn Decoder

D0D1D2D3

TristateBuffer (read)

0 1

A0

CS

ChipSelect CS

حالته سه بافرTristate Buffer

یا و ها رجیستر ارتباط برای معموال. میشود استفاده باس با حافظه

حالت دو بر عالوه میتواند آن خروجیکه 0,1 باشد سومی حالت دارای

حالت یا و باال امپدانس بصورت عمال. میکند عمل قطع

Input Output

En

Input Output

En

Output

En

EnInput

Vdd

CMOS circuit

های گیت از استفاده با طرفه دو باس ساختحالته سه

Direction(control data flow for read/write)

A

B

Input/Output

Read/Write Memory

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

0

1

2

3

8x4 Memory8x4 Memory

2-to-42-to-4RowRow

DecoderDecoder

A1

A2

1-to-2 Column Decoder1-to-2 Column Decoder

D0D1D2D3

0 1

A0

CS

ChipSelect = 0

CS

Rd/Wr = 0

Read/Write Memory

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit 1-bit

0

1

2

3

8x4 Memory8x4 Memory

2-to-42-to-4RowRow

DecoderDecoder

A1

A2

1-to-2 Column Decoder1-to-2 Column Decoder

D0D1D2D3

0 1

A0

CS

ChipSelect = 1

CS

Rd/Wr = 1

با بزرگتر های حافظه ساختنکم های چیپ از استفاده

تر ظرفیت :حافظه یک طراحی حافظه 1Mx8مثال های چیپ از استفاده 1MX4با

D3

D2

D1

D0

A19A18A17

A0

1Mx41Mx4

R/WCS

D7

D6

D5

D4

A19A18

1Mx41Mx4

R/WCS

A17

A0CS

با بزرگتر های حافظه ساختنکم های چیپ از استفاده

تر ظرفیت :حافظه یک طراحی حافظه 2Mx4مثال های چیپ از استفاده 1MX4با

A19A18A17

A0

1Mx41Mx4

R/WCS

A19A18A17

A0

1Mx41Mx4

R/WCS

A20 1-to-2Decoder

CS

1

0

D3

D2

D1

D0

Note that 1-to-2 decoder is the wireitself (or use an inverter)

با بزرگتر های حافظه ساختنکم های چیپ از استفاده

تر ظرفیت :حافظه یک طراحی حافظه 2Mx8مثال های چیپ از استفاده 1MX4با

A19A18A17

A0

1Mx41Mx4

CS R/W

A19A18A17

A0

1Mx41Mx4

CS R/W

A19A18A17

A0

1Mx41Mx4

CS R/W

A19A18A17

A0

1Mx41Mx4

CS R/W

D7

D6

D5

D4

D3

D2

D1

D0

A19A18A17

A0

A20 1-to-2Decoder

CS

1

0

حافظه مدل از استفاده تا 32با میتوان آدرس دهی 4GB (232بیت آدرس را حافظه محل

کرد.

Flat Memory ModelFlat Memory Model

0x0A

0xB6

0x41

0xFC

LowerMemoryAddress

0x00000000

HigherMemoryAddress

0x00000001

0x00000002

0x00000003

0xFFFFFFFF 0x0D

ROMحافظه

نوشته یکبار آن محتوی که خواندنی فقط است ای حافظهداده آن در تغییری کامپیوتر در نصب از پس و شده

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

bootstrap loader مورد کامپیوتر اولیه اندازی راه برای که. میشود استفاده هستند نیاز

: دارد مختلفی انواع حافظه اینMasked ROM PROMEPROMEEPROM

Read Only Memory (ROM)

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

. نمیروند بین از برق قطع با اطالعات

2k wordsN-bit per work

ROMROMN-bit Data OutputK-bit

address lines NK

32x8 ROM32x8 ROM

85

0123

28293031

D7 D6 D5 D4 D3 D2 D1 D0

A4

A3

A2

A1

A0

5-to-32

Decoder

Each represents 32 wires

Fuse can beimplemented as a diode or a pass transistor

Programming the 32x8 ROM

A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 1 1 0 0 0 1 0 1

0 0 0 0 1 1 0 0 0 1 0 1 1

0 0 0 1 0 1 0 1 1 0 0 0 0

… … … … … … … … … … … … …

1 1 1 0 1 0 0 0 1 0 0 0 0

1 1 1 1 0 0 1 0 1 0 1 1 0

1 1 1 1 1 1 1 1 0 0 0 0 1012

293031

D7 D6 D5 D4 D3 D2 D1 D0

A4

A3

A2

A1

A0

5-to-32

Decoder

از ROMکاربردیLookup Tableمثال:

تابع محاسبه برای جدولی F(X) = XF(X) = X22طراحی

X F(X)=X2

0 0

1 1

2 4

3 9

4 16

5 25

6 36

7 49

X F(X)=X2

000 000000

001 000001

010 000100

011 001001

100 010000

101 011001

110 100100

111 110001

Square Lookup Table using ROM

X F(X)=X2

000 000000

001 000001

010 000100

011 001001

100 010000

101 011001

110 100100

111 110001

0

1

2

3

F5 F4 F3 F2 F1 F0

X2

X1

X0

3-to-8

Decoder 4

5

6

7

Square Lookup Table using ROM

X F(X)=X2

000 000000

001 000001

010 000100

011 001001

100 010000

101 011001

110 100100

111 110001

= X0= X0Not UsedNot Used

0

1

2

3

F5 F4 F3 F2 F1 F0

X2

X1

X0

3-to-8

Decoder 4

5

6

7

Square Lookup Table using ROM

X F(X)=X2

000 000000

001 000001

010 000100

011 001001

100 010000

101 011001

110 100100

111 110001

0

1

2

3

F5 F4 F3 F2 F0

X2

X1

X0

3-to-8

Decoder 4

5

6

7

F1

حافظه اهمیت

دارد؟ اهمیت نظر چه از حافظه برای اصلی گلوگاه یک حافظه به دسترسی سرعت

است کامپیوتر کارائی افزایش

DRAM

Year Size Cycle Time

1980 64 Kb 250 ns

1983 256 Kb 220 ns

1986 1 Mb 190 ns

1989 4 Mb 165 ns

1992 16 Mb 145 ns

1995 64 Mb 120 ns

1000:1! 2:1!

حافظه تکنولوژی پیشرفت

بسرعت حافظه حجم گذشته سالیان در حالیکه درزمان در کاهش است، کرده پیدا افزایش

بسیار پیشرفت حافظه محتوی به دسترسی. اشت داشته کمتری

مسئله صورت

: حافظه ویژگیهای هستند کند بزرگ های حافظه هستند کوچک سریع های حافظه

:و سریع ، بزرگ حافظه میتوان چگونه سوالداشت؟ ارزانی

مراتب سلسله از استفاده موازی دسترسی

به رجوع بودن محلی اصلحافظه

در که است شده مشخص کامپیوتری های برنامه آنالیز بایا داده به دسترسی برای حافظه به رجوع زمانی فاصله یک

و ها داده حول ناحیه یک اطراف در معموال دستورالعمل. اند گرفته قرار رجوع مورد اخیرا که است دستوراتی

محل از را دستورات ها برنامه که است دلیل این به امر ایناجرای هنگام در همچنین و میکنند اجرا هم سر پشت های

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

sum = 0;for (i = 0; i < n; i++)

sum += a[i];return sum;

به رجوع بودن محلی اصلحافظه

: است صورت بدو حافظه به رجوع بودن محلیTemporal locality: قرار استفاده مورد اخیرا که دستوراتی و ها داده

گرفت خواهند قرار رجوع مورد مجددا اند، گرفتهSpatial locality: هم به نزدیک های خانه در که دستوراتی یا ها داده

هم از اندکی زمانی فاصله با دارند قرار حافظه. گرفت خواهند قرار رجوع مورد

مثال

رجوع خاصیت دارای زیر های برنامه از کدامیکهستند؟ بهتری محلی

int sumarrayrows(int a[M][N]){ int i, j, sum = 0;

for (i = 0; i < M; i++) for (j = 0; j < N; j++) sum += a[i][j]; return sum}

int sumarraycols(int a[M][N]){ int i, j, sum = 0;

for (j = 0; j < N; j++) for (i = 0; i < M; i++) sum += a[i][j]; return sum}

حافظه به دسترسی زمان) : حافظه به دسترسی از vعب) Access Timeزمان است زت

میکشد طول آن شدن آماده و داده تقاضای بین که زمانی) : سیکل تکرار) Cycle Timeزمان دو بین زمان از است عبارت

متوالی

زمان حالیکه در مثال حافظه برای یک به DRAMدسترسیاست انتقال 60nsممکن برای الزم های زمان احتساب با باشد

سیکل ... زمان و ها، باس تاخیر حافظه، به پردازنده از آدرسبه است ممکن .ns 250-180آن برسد

TimeAccess Time

Cycle Time

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حافظه میشود نزدیکتر

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

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

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حافظه میشود استفاده سریع

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

. داشت خواهند نیاز آدرس بیت آدرس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در خوانده حافظه از دادهبا همراه در Tagو .cacheجدید میشود نوشته

با آدرسهائی به رجوع اگر روش این 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در با و شده نوشته. setپرچم در داده این زمانیکه تا این cacheمیشود از دارد قرار

از داده انتقال صورت در اما شد، خواد استفاده مقدار cacheدادهنیز اصلی حافظه در .updateآن میگردد

80486در cacheحافظه

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

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

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

Intel Pentium 4, 2.2 GHz Processor.

Component Access Speed(Time for data to be

returned)

Size of Component

Registers 1 cycle = 0.5 nanoseconds

32 registers

L1 Cache 3 cycles =1.5 nanoseconds

Separate Data and Instruction Caches: 8 Kbytes each

L2 Cache 20 cycles =10 nanoseconds

256 Kbytes, 8-way set associative

L3 Cache 30 cycles =15 nanoseconds

512 Kbytes, 8-way set associative

Memory 400 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?