سازماندهي حافظه
DESCRIPTION
سازماندهي حافظه. سازماندهي حافظه. سلسله مراتب حافظه حافظة اصلي حافظة جانبي حافظة انجمني حافظة نهان حافظة مجازي سخت افزار مديريت حافظه. سلسله مراتب حافظه. سلسله مراتب حافظه به خاطر سرعت بخشيدن دسترسي به حافظه با حداقل هزينه بوجود آمده است. - PowerPoint PPT PresentationTRANSCRIPT
سازماندهي حافظه
سازماندهي حافظه
سلسله مراتب حافظه•حافظة اصلي•حافظة جانبي•حافظة انجمني•حافظة نهان•حافظة مجازي•سخت افزار مديريت حافظه•
سلسله مراتب حافظه
سلسله مراتب حافظه به خاطر سرعت بخشيدن دسترسي •به حافظه با حداقل هزينه بوجود آمده است.
در سلسله مراتب حافظه هرم)كه قاعدة آن در پائين است( •اگر از پائين به باال حركت كنيم:
سرعت دسترسي به حافظه بيشتر مي شود.1.
هزينه سخت افزار افزايش پيدا مي كند.2.
حجم حافظه كاهش پيدا مي كند.3.
سلسله مراتب حافظه
سلسله مراتب حافظهMagnetic
tapes
Magneticdisks
I/Oprocessor
CPU
Mainmemory
Cachememory
Auxiliary memory
Register
Cache
Main Memory
Magnetic Disk
Magnetic Tape
حافظة اصلي
ROMوRAMحافظه هاي •RAMنمونه اي از يك حافظة–
Chip select 1Chip select 2
ReadWrite
7-bit address
CS1CS2RDWRAD 7
128 x 8RAM
8-bit data bus
CS1 CS2 RD WR
0 0 x x 0 1 x x 1 0 0 0 1 0 0 1 1 0 1 x 1 1 x x
Memory function
Inhibit Inhibit Inhibit Write Read Inhibit
State of data bus
High-impedenceHigh-impedenceHigh-impedenceInput data to RAMOutput data from RAMHigh-impedence
ROMROMنمونه اي از يك حافظة–
Chip select 1Chip select 2
9-bit address
CS1CS2
AD 9
512 x 8ROM
8-bit data bus
نگاشت آدرس حافظه
نگاشت آدرس به يك تراشة حافظه.•مثال:
.ROMبايت 512و RAMبايت512نگاشت
RAM 1RAM 2RAM 3RAM 4ROM
0000 - 007F0080 - 00FF0100 - 017F0180 - 01FF0200 - 03FF
ComponentHexa
address
0 0 0 x x x x x x x0 0 1 x x x x x x x0 1 0 x x x x x x x0 1 1 x x x x x x x1 x x x x x x x x x
10 9 8 7 6 5 4 3 2 1
Address bus
نگاشت آدرس حافظه
.CPUاتصال حافظه به •متصل CPUاز طريق گذرگاه داده و آدرس به ROMوRAMتراشه هاي –
مي شوند.بيت هاي كم ارزش تر در خطوط آدرس بايت هاي درون يك تراشة –
حافظة وبيت هاي با ارزش بيشتر يك تراشه از چندين تراشة حافظه را انتخاب مي كنند.
CPUاتصال حافظه به
CS1CS2RDWRAD7
128 x 8RAM 1
CS1CS2RDWRAD7
128 x 8RAM 2
CS1CS2RDWRAD7
128 x 8RAM 3
CS1CS2RDWRAD7
128 x 8RAM 4
Decoder3 2 1 0
WRRD9 8 7-11016-11Address bus
Data bus
CPU
CS1CS2
512 x 8ROMAD9
1- 78
Dat
aD
ata
Dat
aD
ata
Dat
a
Associative Memory حافظة انجمني()حافظه(تداعيگر(
دسترسي به اين گونه حافظه ها بر اساس محتواي داده صورت •مي گيرد نه آدرس آن.
( CAMاين گونه حافظه ها به حافظه هاي قابل آدرس دهي با)•محتوا هم ناميده مي شوند.
Argument register(A)سازماندهي سخت افزاري•
Key register (K)
Associative memoryarray and logic
m wordsn bits per word
Matchregister
Input
Read
Write
M
Associative حافظة انجمني Memory
عملكرد حافظة انجمني•CAM(Content Addressable Memory )نام ديگر : – A(Argumentهركلمه در حافظه به طور موازي با محتويات ثبات –
Register).مقايسه مي شود.M[i]=1 آنگاه word[i]=Aاگر درحافظه،– آن به صورت ترتيبي از حافظه M[i]=1مقدارCAMتمام كلماتي كه در –
خوانده مي شود.استفاده مي Aبراي ماسك كردن يك فيلد و يا كليد در ثبات Kاز ثبات –
باشند Kدر بيت متناظر در ثبات 1كه داراي يك Aشود)تنها بيت هاي از ثباتمورد مقايسه قرار مي گيرند(.
CAMسازماندهي
CAMسازماندهي داخلي•
C11Word 1
Word i
Word m
Bit 1 Bit j Bit n
M1
Mi
Mm
A1Aj An
K1Kj Kn
C1j C1n
Ci1 Cij Cin
Cm1 Cmj Cmn
CAMسازماندهي
.CAM(در Cijسازماندهي داخلي يك سلول)•
Aj
R S Matchlogic
Input
Write
Read
Kj
M iToF ij
Match Logic
• Match Logic : Fig. 12-9– Aj = Argument, Fij = Cell ij
– xj = Aj Fij (1 AND 1)+ Aj’ Fij’ (0 AND 0)
– n bits match : Mi = x1x2…..xn
– Key bit Kj : xj + Kj’
» Kj = 0: Aj and Fij no comparison ( Kj : xj + 1 = 1 )
» Kj = 1 : Aj and Fij comparison ( Kj : xj + 0 = xj )
– Match Logic for word I :
Mi = (x1 + K1’) (x2 + K2’)…. (xn + Kn’)
مدار انطباق
(.match logicسازماندهي داخلي مدار انطباق)•
F'i1 F i1
K1 A1
F'i2 F i2
K2 A2
F'in F in
Kn An
. . . .
M i
حافظة نهان
اصل مراجعات محلي به حافظه•طب]ق اين اص]ل دسترس]ي ب]ه حافظ]ه در ب]ازه ه]اي زم]اني معين تماي]ل دارد –
كه به سلول هاي مجاور حافظه باشد.اين ن]واحي حافظ]ه را ب]ه زي]ر مجموع]ه ايي تقس]يم مي كن]د ك]ه در ط]ول –
زمان اين زير مجموعه ها با زير مجموعه هاي جديد عوض مي شوند.محلي ب]ودن م]وقت:طب]ق اين اص]ل اطالع]اتي ك]ه در آين]دة نزدي]ك م]ورد –
استفاده قرار مي گيرند،احتماال̂ هم اكنون مورد استفاده قرار گرفته اند.محلي ب]ودن ف]يزيكي:طب]ق اين اص]ل اگ]ر ي]ك كلم]ه م]ورد دس]تيابي ق]رار –
گ]رفت،كلم]ه ه]اي مج]اور ب]ا اين كلم]ه در آين]دة نزدي]ك م]ورد دس]تيابي ق]رار مي گيرن]د)ب]ه عن]وان مث]ال داده ه]اي مرب]وط ب]ه هم در ي]ك آراي]ه پشت س]رهم پش]ت اغلب و ت]رتيب ب]ه برنام]ه ي]ك در دس]تورات مي ش]وند،وي]ا ذخ]يره
سرهم اجرا مي شوند.(.
حافظة نهان
حافظة نهان•اصل محلي بودن مراجعات علت كاركرد حافظة نهان مي باشند.–حافظه ه]اي نه]ان ،حافظه ه]اي س]ريع و كم حجمي هس]تند ك]ه اطالع]اتي را –
ك]ه احتم]ال دارد ب]ه زودي م]ورد دس]تيابي ق]رار گيرن]د را در خ]ود ذخ]يره مي كنند.
Main memory
Cache memoryCPU
كارائي حافظة نهان
ترتيب دسترسي حافظه•ه]دايت – نه]ان حافظ]ة س]مت ب]ه ابت]دا حافظ]ه ب]ه دسترس]ي ها تم]ام
مي شوند.ب]ود،حافظ]ة نه]ان م]ورد دس]تيابي – اگ]ر كلم]ة م]ورد نظ]ر در حافظ]ة نه]ان
قرار مي گيرد.اگ]ر كلم]ة م]ورد نظ]ر در حافظ]ة نه]ان نب]ود بل]وك و ي]ا خطي ك]ه كلم]ة م]ورد –
نظ]ر را در ب]ر دارد از حافظ]ة اص]لي ج]ايگزين ي]ك بل]وك در حافظ]ة نه]ان مي شود.
كارائي حافظة نهان
كارائي سيستم حافظة پنهان•Hit Rate درص]دي از ك]ل دسترس]ي ه]اي ب]ه حافظ]ه ك]ه از طري]ق:
حافظة نهان برآورده مي شود.Tc.زمان دسترسي به حافظة نهان:
Tm.زمان دسترسي به حافظة اصلي:
Te ب]ه ي]ك كلم]ه از حافظ]ه درسيس]تمي كه :زم]ان م]وثر دسترس]ي ازحافظةنهان استفاده مي كند.
Te = Tc + (1 - h) Tm
مثال:Tc = 0.4µs, Tm = 1.2µs, h = 0.85%
Te = 0.4 + (1 - 0.85) * 1.2 = 0.58µs
نگاشت حافظة اصلي و نهان
انتق]ال داده ه]ا از حافظ]ة اص]لي ب]ه حافظ]ة نه]ان فراين]د نگاش]ت •ناميده مي شود.
انواع نگاشت:•نگاشت انجمني.)تداعيگر(–نگاشت مستقيم.–نگاشت انجمني مجموعه اي.–
نگاشت حافظة اصلي و نهان )نگاشت انجمني(
نگاشت انجمني•هر بل]وك از حافظ]ة نه]ان مي توان]د ه]ر بل]وك از حافظ]ة اص]لي را ذخ]يره –
كند)قابليت انعطاف(.جدول نگاشت در حافظة انجمني پياده سازي مي شود)سريع و گران(.–ذخ]يره – را آن محتوي]ات هم و حافظ]ه كلم]ة آدرس ،هم نگاش]ت جدول
address (15 bits) مي كند.
Argument register
Address Data
0 1 0 0 00 2 7 7 72 2 2 3 5
3 4 5 06 7 1 01 2 3 4
CAM
نگاشت حافظة اصلي و نهان )نگاشت مستقيم(
مي توان]د • نه]ان حافظ]ة از مك]ان ي]ك در تنه]ا حافظ]ه بل]وك هر ذخيره شود.
حافظة• از نگاش]ت حافظ]ة RAMجدول مي ش]ود بجاي س]اخته انجمني.
آدرس• تقس]]يم nيك زي]]ر قس]]مت دو ب]]ه حافظةاص]]لي -بيتي مي شوند.
–k بيت برايINDEX.–n-k بيت برايTAG.
از nاز آدرس • ب]ه حافظ]ة اص]لي و ب]راي دسترس]ي -بيت k-بي]تي براي دسترسي به حافظة نهان استفاده مي شود.
روابط بين آدرس ها•
Tag(6) Index(9)
32K x 12
Main memoryAddress = 15 bitsData = 12 bits
512 x 12Cache memory
Address = 9 bitsData = 12 bits
00 000
77 777
000
777
نگاشت حافظة اصلي و نهان )نگاشت مستقيم(
سازماندهي حافظة نهان با نگاشت مستيم:•
Memoryaddress Memory data
00000 1 2 2 0
0077701000
0177702000
02777
2 3 4 03 4 5 0
4 5 6 05 6 7 0
6 7 1 0
Indexaddress Tag Data
000 0 0 1 2 2 0
0 2 6 7 1 0777
Cache memory
نگاشت حافظة اصلي و نهان )نگاشت مستقيم(
عملكرد نگاشت مستقيم:•–cpu (يك درخواست حافظه بصورتTAG;INDEX.توليد مي كند )طري]ق – مي كن]د،يع]ني INDEXاز پي]دا دسترس]ي نه]ان حافظ]ة ب]ه
مقايسه مي كند.tagرا باTAG(و tag;dataبه)از TAG=tagاگ]ر– را ه]ا داده اس]ت.بنابراين رخ]داده اص]ابت ي]ك پس
بر مي گرداند.CPUحافظة نهان بازيابي مي كند و به پس ي]ك ع]دم اص]ابت رخ]داده و بن]ابر اين عملي]ات زي]ر TAG<>tagاگ]ر–
:حافظة نهان(:Cache:حافظة اصلي،Mرا به ترتيب انجام مي دهد).1. انتقال مي دهد رم حافظه روي بر مربوطه بلوك از پنهان حافظة ار را ها داده.2. مي كند روز به جديد هاي داده با را پنهان حافظةبه 3. اصلي حافظة روي از را ها كند cpuداده مي ارسال
نگاشت حافظة اصلي و نهان )نگاشت انجمني مجموعه اي(
در • مكانه]ا از مجم]وعه اي داراي اص]لي حافظ]ة در كلمه اي هر حافظة نهان است كه مي تواند در آنها بار شود.
مقايسه نشانه ها بصورت انجمنی صورت می گيرد•:2نگاشت انجمني مجموعه اي با مجموعه هايي با اندازة •
Index Tag Data
000 0 1 3 4 5 0 0 2 5 6 7 0
Tag Data
777 0 2 6 7 1 0 0 0 2 3 4 0
نگاشت حافظة اصلي و نهان )نگاشت انجمني مجموعه اي(
عملكرد نگاشت انجمني مجموعه اي:•( توليد مي كند.TAG;INDEX يك درخواست حافظه بصورت)–از – اس]تفاده مي كن]د.يعني INDEXبا پي]دا دسترس]ي نه]ان حافظ]ة ب]ه
((.tag1,data1(و)tag0,data0به)كلمه هاي حافظة پنهان)مقايسه مي كند.tag1وtag0را با TAGبه ترتيب ––if tag i=TAG ->Hit, CPU<-data i. –if tag i <>TAG->Miss.
(را ج]ايگزين مي كن]د)در اينج]ا tag 1,data 1(و)tag 0,data 0يكي از دو كلم]ة )•ك]نيم) ب]ه tag0,data0ف]رض مي را زي]ر ك]نيم(و س]پس عملي]ات ج]ايگزين (را
ترتيب انجام مي دهيم: M[tag 0, INDEX] <- Cache[INDEX](data 0)
Cache[INDEX](tag 0, data 0) <- (TAG, M[TAG,INDEX]),
CPU <- Cache[INDEX](data 0)