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
حافظه در 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برایمیشود
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?