1
MEMORIA IN PC
1. Clasificarea memoriilor
2. Limitarile memoriei. Ierarhizarea
3. Managementul memoriei
4. Organizarea memoriei PC-ului in mod real
5. Aplicatii
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-823-computer-system-architecture-fall-2005/lecture-notes/
2
333
1. CLASIFICAREA MEMORIILOR
Tipuri de Memorii
&
Dispozitive stocare
Primara
Secundara
Volatile
Registre
Cache (I, II, III)
RAM
SRAMDRAM SDRAMEDRAMEDOFLASH RAM
NevolatileROM
PROM
EPROMEEPROM, FLASH
Memorii MagneticeTapeHD, Zip DiskFDD
Memorii Optice
CD-ROM, CD-R, CD-RWDVD-ROM, DVD-R
DVD- RW
(Semiconductor – chip). Main Memory
(Devices)
2ns
5ms
~100ns
4
5
6
Tehnologie Viteza Putere consumata Capacitate Cost
TTL + + - +
ECL ++ ++ -- ++
NMOS 0 - ++ --
CMOS - -- + -
Clasificarea diferitelor tipuri de memorii semiconductoare
7*STT-RAM: Spin Transfer Torque Random Access Memory
Semiconductor Memory Technology Comparison
8
Ce caracteristici fac ca un sistem de memorie sa fie bun?
2. Limitarile memoriei. Ierarhizarea
• Latenta = timpul pentru un acces singular (Memory access time >> Processor cycle time)
• Banda = numarul de accese/unitatea de timp –>Daca sunt m instructiuni load/store, 1 + m accese/instr.,( CPI = 1) cere cel putin 1 + m accese memorie/ciclu)
• Latenta redusa
• Banda mare
• Capacitate mare
• Numar mare de bancuri
9
Legea lui Amdahl
• Performanta unui sistem este limitata de componenta cea mai lenta
• Decalajul de performanta dintre Procesor-Memorie
https://www.quora.com/Why-is-the-gap-between-the-CPU-and-the-main-memory-speed-widening
10
Limitarile introduse de Memorie
PROBLEMA
– Frecventele procesoarelor continua sa creasca– Este nevoie de memorie care sa tina pasul cu procesoarele
• altfel, sunt prea multe intarzieri in pipeline – Este nevoie de memorii de mare capacitate ptr. a satisface nevoile
crescande ale aplicatiilor SW, paralelism– Memoria DRAM
• Capacitate mare la cost redus (GBs) – bine• Acces lent (10-100x de cicli procesor ) – slab
- Memoria SRAM • Capacitate mare este ft. scumpa (MBs) – slab• Acces rapid (1-10 ciclii procesor ) – bine
– Putem obtine capacitatea si costul DRAM la viteza de acces a SRAM?
11
SOLUTIA :
12
Level Access Time Typical Size Technology Managed By
Registers 1-3 ns <1 KB ? Custom CMOS Compiler
Level 1 Cache (on-chip) 2-8 ns 8 KB-128 KB SRAM Hardware
Level 2 Cache (off-chip) 5-12 ns 0.5 MB - 8 MB SRAM Hardware
Main Memory 10-60 ns 64 MB - 1 GB DRAM Operating System
Hard Disk3,000,000 -10,000,000 ns
20 - 100 GB MagneticOperating System/User
3. Managementul Memoriei
CPU UMM MEMORIE
AdresaFizica
AdresaLogica
http://www.c-jump.com/CIS77/ASM/Memory/lecture.html#M77_0010_addressing
MODURI de OPERARE
• Real-address mode- nativ MS-DOS
• Protected mode- mod nativ (Windows, Linux)
• Virtual-8086 mode- hibrid al modului Protejat- fiecare program are propriul procesor virtual 8086
• Management mode- managementul puterii, Securitate sistem, diagnostic
• 1 MB RAM maximum adresabil (20-biti adresa)
• Aplicatiile pot accesa orice zona a memoriei
• Single-tasking
• Suportat de SO MS-DOS
• Orice program are acces la orice caracteristica hardware
3.1 MOD REAL de ADRESARE
Real mode segmentation
Memoria Segmentata
• Adresarea memoriei segmentate: adresa fizica (lineara) este o combinatie a valorii de 16-biti a segmentului (*16) adunata cu 16-biti ai offset-ului
00000
10000
20000
30000
40000
50000
60000
70000
80000
90000
A0000
B0000
C0000
D0000
E0000
F0000
8000:0000
8000:FFFF
seg ofs
8000:0250
0250
un segment
(64K)
Adresa fizica:
80000h + 0250h = 80250h
3.2 MODUL PROTEJAT
• 4 GB de DRAM adresabili (32-biti adresa) - (00000000 - 0FFFFFFFFh)
• Fiecare program are alocata o partitie de memorie care e protejata de alte programe
• Proiectat ptr. multitasking
• Suportat de Linux & MS-Windows
MODUL PROTEJAT
• Tabele de descriptori de Segment
• Structura Programului
– Zone de cod, date, stiva
– CS, DS, SS descriptori de segment
– global descriptor table (GDT)
• Programele MASM utilizeaza modelul de memorie Microsoft flat
Modelul de segmentare Flat
• Toate segmentele sunt mapate pe intreg spatiul de adresare fizica de 32-biti, cu cel putin 2 segmente unul ptr. date si unul ptr. cod
• global descriptor table (GDT)
Modelul Multi-segment
• Fiecare program are un local descriptor table (LDT)
✓pastreaza descriptorul ptr. fiecare segment utilizat de program
3000
RAM
00003000
Local Descriptor Table
0002
00008000 000A
00026000 0010
base limit access
8000
26000
* 1000h
Translatarea Adreselor
• Procesoarele IA-32 utilizeaza un proces in unul sau doi pasi de a converti o adresa logica intr-o locatie unica de memorie
• Primul pas combina o valoare de segment cu o variabla offset ptr. a crea o adresa lineara
• Al doilea pas (optional), numit translatarea paginii, converteste o adresa lineara intr-o adresa fizica
a. Convertirea adresei Logice in adresa Lineara
• Selectorul de segment pointeaza la un segment descriptor, care contine
adresa de baza a unui segment de memorie
• Offset-ul de 32-biti al adresei logice este adunat la adresa de baza a
segmentului, generand o adresa lineara de 32-biti
Selector Offset
Logical address
Segment Descriptor
Descriptor table
+
GDTR/LDTR
(contains base address of
descriptor table)
Linear address
Indexarea intr-o Tabela de Descriptori
• Fiecare descriptor de segment indexeaza in local descriptor table (LDT) al programului. Fiecare intrare in tabela este mapata la o adresalineara
Logical addresses
0018 0000003A
(unused)
DRAM
SS ESP
001A0000
0002A000
0001A000
00003000
Local Descriptor Table
0010 000001B6
0008 00002CD3
LDTR register
DS
18
10
08
00
(index)
Linear address space
IP
offset
• Memoria virtuala utilizeaza discul ca parte a memoriei, astfelpermitand ca suma dimensiunilor programelor sa fie mai mare decatmemoria fizica
• La un moment dat numai anumite parti ale programului trebuiepastrate in memorie, in timp ce partile ramase sunt pastrate pe disc
• Memoria folosita de program este divizata in unitati mai mici numitepagini (4kbytes)
• In timp ce programul ruleaza, procesorul elibereaza selectiv paginileinactive din memorie si incarca alte pagini care sunt imediat cerute
b. Paginarea
Translatarea Paginilor
• O adresa liniara este divizata in 3 campuri: page directory field, page table field
si page frame offset. CPU foloseste cele 3 campuri ptr. a calcula adresa fizica.
• SO mentine page directory si page table
• Translatarea paginilor: CPU converteste adresa lineara in adresa fizica
• Page fault: apare cand e nevoie de o pagina care nu este in memorie si CPU intrerupe programul
• Virtual memory manager (VMM) – este utilitarul SO care coordoneaza incarcarea sidescarcarea paginilor
• SO copiaza pagina in memorie si
programul reia executia
Directory Table Offset
Directory Entry
CR3
Page Directory
Page-Table Entry
Page Table
Physical Address
Page Frame
Linear Address
10 10 12
32physical base address of page directory
27Modul de calcul al adresei fizice la 8086/286
in modul real de lucru
4. Organizarea memoriei in mod real de adresare
28
29
Circuit decodor pentru selectia memoriei
30
31
32Interfata cu memoria în modul "minim" (MN/MX="1")
33Interfata cu memoria în modul "maxim" (MN/MX=„0")
34
35
4. Memoria PC in modul real de adresare
- Memoria de baza 0-9FFFFh- Upper Memory Area-UMA (A0000h-FFFFFh)
→ ROM Shadowing→ Mem. Expandata (EMS)*→ ROM Scan
- High Memory Area-HMA (100000h-10FFEFh) - eXtended Memory Specification-XMS(>1Mo)
•EMS=Memorie aditionala in zona UMA accesibila
prin “bank-switching”
•FFFF:0…….FFFF:FFFF FFFF0+•FFFF0….. 10FFEF FFFF
10FFEF
36
37
Harta memoriei intr-un PC-AT
REFERINTE
http://savage.net.au/Ron/html/hex-ram-tutorial.html
http://en.wikipedia.org/wiki/Upper_Memory_Area
https://software.intel.com/en-us/articles/intelr-memory-latency-checker
38
5. Aplicatie. Conectati la un PC (pe ISA BUS):
16kB de EPROM (2x 2764) incepand cu adresa CC000h si
16kB (2x6264) SRAM la adresa D0000h.
2764- 64K (8K x 8) UV EPROM
39
40
11 0 0 11 x x x xx x
41
1
1
1
1
0
0
43
44
6264 SRAM
45
46
47
Tema. Studiati schema de conectarea a memoriei.