Struktura a architektura počítačů
Paměti počítače DMA přenos
České vysoké učení technické Fakulta elektrotechnická Ver.1.20
J. Zděnek 20131
Paměť počítače •
Paměť počítače je zařízení pro uchování programu a dat
•
Základní funkce paměti: • Uložení informace do paměti – zápis • Vyzvednutí informace z paměti – čtení
•
Třídění pamětí – různá hlediska: • Způsob použití v počítači • Metoda přístupu k informacím v paměti • Uchování a změna informace v paměti • Fyzikální princip paměti • Rychlost přístupu k informaci • Kapacita paměti • …
2
Třídění pamětí počítače •
Způsob použití v počítači • Operační paměť (Main Memory) • Externí paměť • Vyrovnávací paměť (cache, nebo mezi počitači) • Komunikační paměť (mezi počítači)
•
Metoda přístupu k informacím v paměťi: • Libovolný (náhodný) výběr položky (adresovatelná paměť) • Jednobránová, dvoubránová, vícebránová • Sekvenční (postupný) výběr položky (sériová paměť) • Fronta (Queue, FIFO – First In First Out) • Zásobník (Stack, LIFO – Last In First Out) • Asociativní paměť (Contents Addressable Memory)
3
Třídění pamětí počítače •
Uchování a změna informace v paměti: • Volatilní – po vypnutí napájení ztrácejí informaci • SRAM – Statická RAM (Static Random Access Memory) • DRAM – Dynamická RAM • SDRAM – Synchronní dynamická RAM • Nevolatilní – po vypnutí napájení informace zůstává v paměti • ROM (Read Only Memory) • EPROM (Erasable ROM) • EEPROM (Electrically Erasable ROM) • FLASH • SRAM zálohovaná baterií • Magnetické disky • Optické disky • … 4
Třídění pamětí počítače •
Fyzikální princip paměti: • Polovodičové (Elektronické) • Magnetické • Optické
•
Rychlost přístupu k informaci: • Rychlé pro zápis i čtení (R/W) • SRAM • DRAM • SDRAM • Rychlé pro čtení • ROM • EPROM • EEPROM • FLASH 5
Třídění pamětí počítače •
Rychlost přístupu k informaci (pokrač.): • Pomalejší pro zápis • EPROM • EEPROM • FLASH • Pomalé (relativní pojem) • Magnetické disky • Optické disky • Magnetické karty • Velmi pomalé • Diskety
6
Třídění pamětí počítače •
Kapacita paměti: • Velmi velká • Magnetické disky • Velká • Optické disky • Střední • Polovodičové paměti • DRAM • SDRAM • FLASH • Menší • Polovodičové paměti • EEPROM • Malá • Diskety 7
Principy stavby paměťových buněk •
•
SRAM • Paměťová buňka tvořena bistabilním klopným obvodem (obvykle ze šesti tranzistorů) • Počet zápisů a čtení paměťové buňky není omezen • Pokud je paměť napájená, nevyžaduje obnovování informace • Paměť je rychlá DRAM, SDRAM • Paměťová buňka tvořena tranzistorem a paměťovým kondezátorem (levnější a zabírá méně prostoru na čipu proti SRAM) • Počet zápisů a čtení paměťové buňky není omezen • Paměť vyžaduje pravidelné obnovování informace (refresh)(řádově desítky milisekund), jinak paměťový kondezátor postupně informaci ztratí. • Paměť je rychlá (speciálně SDRAM – Synchronní DRAM, která je přesně řízena externím synchronizačním signálem (clock).
8
Paměťová buňka SRAM
9
Paměťová buňka DRAM - read
10
Paměťová buňka DRAM - write
11
DRAM - časování
12
SDRAM paměti a moduly
13
Principy stavby paměťových buněk •
•
•
EPROM • Paměťová buňka tvořena tranzistorem s plovoucím hradlem • EPROM je elektricky programovatelná (po bytech), záznam je trvalý (>10 let) • Paměť se smaže (celá) osvícením výbojkou přes okénko nad čipem • Technologie dnes už zastaralá FLASH • Paměťová buňka tvořena tranzistorem s plovoucím hradlem • Paměť elektricky programovatelná (po bytech) a elektricky mazatelná (celá nebo po velkých sektorech). Záznam je trvalý (>10 let) • Počet přeprogramování 104-106, mazání pomalé (ms), zápis (µs) EEPROM • Konstrukce podobná (složitější) jako FLASH • Paměť je elektricky programovatelná (po bytech) a též elektricky mazatelná (též po bytech). Záznam je trvalý (>10 let) • Počet přeprogramování 104-106, mazání byte pomalé (µs), zápis (µs)
14
Principy stavby paměťových buněk •
EPROM
•
FLASH
15
Paměť s libovolným (náhodným) výběrem položky RAM – Random Access Memory
Selected Address 0400h
Address
Contents
0000h
data1
0001h
data2
0002h
0400h
dataN
0401h
dataN+1
Data dataN
Word width
16
Paměť SRAM (el. součástka)
Address
A0-X
Chip Select
nCS
Read
nRD
Write
nWR
D0-Y
Data
Static RAM
17
SRAM – cyklus READ
18
SRAM – cyklus WRITE
19
Rozšíření kapacity paměti (128 KB x 16 bitů) Address Bus
nCS0 A16-17 nCS1 DECODER 2 to 4
D0-15
A0-15
nCS0 nRD nWR
Data Bus
STATIC RAM
CS RD
WR 64k x 16
D0-15
A0-15 Control Bus nCS1 nRD nWR
STATIC RAM
CS RD WR
64k x 16
20
Zvětšení šířky slova (64 KB x 32 bitů) Address Bus
nCS0 A16-17
D16-31
A0-15
DECODER 2 to 4
nCS0 nRD nWR
STATIC RAM
CS
Data Bus
RD WR 64k x 16
D0-15
A0-15 Control Bus nCS0 nRD nWR
STATIC RAM
CS RD WR
64k x 16
21
Synchronní dynamická paměť s libovolným výběrem SDRAM – Sychronous Dynamic Random Access Memory
Column Addr. Latch
Column Addr. Decoder
nCAS nRAS
Row Addr. Decoder
DQ0-Y
Row Addr. Latch
AD0-X
Storage Cell Matrix (Capacitor Based)
Sense Amplifiers
nWE
CLK Simplified
22
Paměť SDRAM (el. součástka) Multiplexed Address
AD0-X
Row Address Strobe
nRAS
DQ0-Y
Data In Out
SDRAM
nCAS Write Enable
nWE
System Clock Column Address Strobe
CLK
CPU DATA READ ADDR.BUS
Row Addr
Col. Addr
CPU DATA WRITE (to MEMORY) Row Addr
Col. Addr
DATA BUS
nRAS
nCAS
nWE NOTE: nREAD, nWRITE - SIGNAL ACTIVE IN ”0”
23
Paměť s libovolným výběrem položky (dvoubránová) Dualport RAM – Random Access Memory
Selected Left Address 0400h
Left Address
Contents
Right Address
0000h
data1
0000h
0001h
data2
0001h
0002h
0002h
0400h
dataN
0400h
0401h
dataN+1
0401h
Selected Right Address 0600h
Right Data
Left Data
dataR
dataN 0600h
dataR
0600h
Word width
24
Paměť Dualport SRAM (el. součástka)
Left Address
LA0-X
Left Data
LD0-Y Dualport Static RAM
RA0-X
Right Address
RD0-Y
Right Data
nRCS
Right Chip Select
Left Chip Select
nLCS
Left Read
nLRD
nRRD
Right Read
Left Write
nLWR
nRWR
Right Write
Left Wait
LWAIT
RWAIT Right Wait
Dvoubránová paměť
25
Dvoubránová paměť – komunikace mezi počítači Data Bus
A0-15
Address Bus
A0-15
D0-15
A0-15
D0-15 PROCESSOR 1
WAIT
D0-15
Data Bus
D0-15
Address Bus
A0-15
D0-15
D0-15 nCS0 nCS1
CS
STATIC RAM
RD
RD
WR
WR
nCS0
WAIT
A0-15
A0-15
D0-15
D0-15
Dualport Static RAM RRD LRD LWR
PROCESSOR 2
nCS0 nCS1 CS
STATIC RAM
RD
RD
WR
WR
nCS0
RWR
LWAIT RWAIT
Paralelní komunikace mezi počítači 26
Sériová paměť (sekvenční nebo libovolný přístup) Serial Sequential/Random Access Memory SIN
Serial to Parallel
Parallel to Serial
addr./data/cmd
data
SOUT
CLK
Selected Address 0400h
Internal Address
Contents
0000h
data1
0001h
data2
0002h
Auto Increment
0400h
dataN
0401h
dataN+1
Data In data in
Word width
27
Sériová paměť FLASH (el.součástka)
Chip Select
nCS1
Address/Data/Command In
SIN
Clock
CLK
nCS SERIAL SI SO FLASH CLK
SOUT
Data Out
Sekveční (obvyklé) nebo libovolný výběr položky
28
Sériová paměť FLASH – natažení aplikace Data Bus
A0-15
Address Bus
A0-15
D0-15
D0-15
D0-15 nCS0 PROCESSOR
STATIC RAM
nCS1
CS
RD
RD
WR
WR
Download aplication from serial FLASH memory to main memory
SPI
nCS1 SIN CLK
nCS SERIAL SI SO FLASH CLK
SOUT
29
Paměť typu fronta (Queue, FIFO) QUEUE (FIFO – First In First Out) Memory Contents Word width
data1
Tail
data2
dataN
dataN+1
Write Data data
Read Data data
Head Queue Depth (Size)
Konec fronty
Čelo fronty
30
Paměť typu fronta (Queue, FIFO) – (el. Součástka)
DO0-7
Data Out
nWR
nFE
FIFO Empty
nRD
nFF
FIFO Full
Data In
DI0-7
Data Reset
nRESET
Write Data Read Data
FIFO
31
FIFO (fronta) – komunikace mezi počítači A0-15 D0-7 PROCESSOR 1
Address Bus
A0-15
Data Bus
D0-7
nCS0
PROCESSOR 2
nCS1
RD PORT
Address Bus Data Bus nCS0 nCS1
RD PORT
WR
DI0-7
WR
DO0-7 nRD
nRESET FIFO nWR nRD
WR RD
FE FF
nFE nFF
Paralelní komunikace mezi počítači
32
Paměť typu zásobník (Stack, LIFO) STACK (LIFO – Last In First Out ) Memory Pop Data
Push Data dataN Contents
dataN dataN–1
TOS Top of Stack
Stack size (depth)
Stack Pointer
dataN
data2 data1 Word width
33
Asociativní paměť (CAM) CAM – Contents Addressable Memory
Search Address
Address
Key
Contents
0000h
keyA
data1
0001h
keyB
data2
0020h
keyX
dataN
0021h
keyY
dataN+1
0002h
Data dataN
Key to Search keyX Word width
34
Cache – vyrovnávací paměť • • • • •
•
•
Urychlení práce počítače Část informace přesunuta do menší ale rychlé paměti (cache) Přístup procesoru k této informaci rychlejší Pokud informace v cache není, nutno ji přisunout do cache z operační paměti Cache může být rozdělena na více úrovní (hladin) – jedna z úrovní je přímo v procesoru, druhá může být vně procesoru (ale sestavená z rychlejší paměti než je paměť operační) Cache může být určena jen pro data nebo i pro instrukce • Data cache • Instruction cache • Virtual-to-physical address translation cache (u počítače s virtuální pamětí, kde je paměťový prostor rozšířen z operační paměti i na disk) Data cache – po zpracování dat se data uloží: • Ihned zpět do operační paměti (write-through method) • Do data cache (write-back method). Zpět do operační paměti se uloží později, při novém plnění data cache
35
Cache – Vyrovnávací paměť - jednohladinová
Single Level Cache
36
Cache – Vyrovnávací paměť - dvouhladinová
Multi Level Cache
37
Virtuální paměť (Virtual Memory) - princip Physical Address
Logical Address Main Memory
Main Memory
Page 0 Page 1
+
Page 2 Page 3 Page 4 Disk
Page 5
Disk
Page N
38
Virtuální paměť (Virtual Memory) •
Virtuální paměť • Paměťový prostor je rozšířen na disk • Adresy (logické) mohou mít hodnotu větší než odpovídá operační paměti • Část instrukcí a dat spuštěného programu je odložena (Swap) na disk (ty, které nejsou právě třeba při provádění programu) • Paměťová jednotka, která se přenáší mezi virtuální a fyzickou pamětí se nazývá stránka (Page)
39
Architektura „von Neumann“ – připojení operační paměti
CPU
Common Bus
MAIN MEMORY
Program Memory
Operační paměť
Data Memory
Output I/O Channels
World Input 40
Architektura „Harvard“ – připojení operační paměti
MAIN MEMORY Program Memory
CPU
Operační paměť
Data Memory
24
16
Output
Typicky různá šířka
I/O Channels
World Input
41
Mod. architektura „Harvard“ – připojení operační paměti Paralelní čtení/zápis dat
MAIN MEMORY CPU Program Memory
Data Memory
24
24
Data Bridge
16 16
Output
Čtení konstant z paměti programu
I/O Channels
World Input
42
Paměti počítače Common Bus XTAL Clock
CPU
Program Memory
MAIN MEMORY
BIOS Operating System
PROGRAM INSTRUCTIONS
Application Program BUS MASTER CPU - SYNCHRONOUS FINITE STATE MACHINE (FSA, FSM) SEQUENTIAL PROGRAM PROCESSING (ONE INSTRUCTION AT A TIME)
PROGRAM VARIABLES & PROGRAM STACK
Data Memory
CD/DVD Output COMMON DATA PATH (BIDIRECTIONAL)
HDD
I/O Channels Input
EXTERNAL MEMORY
FLASH Corsair
43
Připojení operační paměti k CPU CB DB AB
CPU
Clock
Program Memory
ADDRESS DECODER MEMORY ARRAY
BUS MASTER
ADDRESS VALID
DATA VALID
TRANSFER DIRECTION (TRANSFER PATH)
ADDR.BUS
ADDRESS DECODER Data Memory
ADDRESS DECODER Output
DATA BUS
I/O Channels
nREAD
Input INPUT/ OUTPUT REGISTERS
nWRITE CPU DATA READ
MEMORY ARRAY
CPU DATA WRITE (to MEMORY)
NOTE: nREAD, nWRITE - SIGNAL ACTIVE IN ”0”
Common Bus BUS TRANSFER DIRECTIONS: DB = BIDIRECTIONAL CB, AB = UNIDIRECTIONAL
44
Operační paměť (Main Memory) Common Bus
Clock
BIOS Operating System Application Program
CPU RESET
Power Supply
MAIN MEMORY
Program Memory
PROGRAM INSTRUCTIONS
Power Monitor INTRQ
PROGRAM VARIABLES & PROGRAM STACK
INTACK Data Memory
IRQ1 IRQ2 IRQn
Interrupt Controller INTERRUPT CONTROLLER
Output I/O Channels
Input
World
45
Cyklus obsluhy přerušení (Interrupt Cycle) Common Bus XTAL (CRYSTAL) STABLE SYNC. SIGNAL
Power Supply
Clock
BIOS Operating System Application Program
CPU RESET
MAIN MEMORY
Program Memory
PROGRAM INSTRUCTIONS
Power Monitor INTRQ
PROGRAM VARIABLES & PROGRAM STACK
INTACK Data Memory
IRQ1 IRQ2 IRQn
Interrupt Controller INTERRUPT CONTROLLER
Output I/O Channels
Input
World
46
DMA cyklus (Direct Memory Access Cycle) Common Bus XTAL (CRYSTAL) STABLE SYNC. SIGNAL Power Supply
Clock
BIOS Operating System Application Program
CPU RESET HOLD
Power Monitor
DRQ1 DRQn
IRQn
PROGRAM INSTRUCTIONS
HLDA
DMA Controller
PROGRAM VARIABLES & PROGRAM STACK
Data Memory
IRQ1 IRQ2
MAIN MEMORY
Program Memory
Output Interrupt Controller
I/O Channels
Input
World
47
DMA - princip BUS MASTER 1
XTAL (CRYSTAL) Clock STABLE SYNC. SIGNAL DMA Controller
Common Bus
BIOS Operating System Application Program
CPU
MAIN MEMORY
Program Memory
PROGRAM INSTRUCTIONS
HOLD
Control Commands DRQn
Transfer Count
HLDA INTRQ
PROGRAM VARIABLES & PROGRAM STACK
INTACK Data Memory
Destination Address Source Address
IRQ1 BUS MASTER 2
IRQ2 IRQn
Output Interrupt Controller
I/O Channels
Input
World
48
DMA – převzetí řízení sběrnice DMA TRANSFER CYCLE BUS REQUEST ADDRESS VALID
BUS RELEASED
DMA END
CPU CONTINUES
DATA VALID
ADDR.BUS
DATA BUS
nREAD
nWRITE
HOLD
HLDA BUS MASTER 1 - CPU
BUS MASTER 2 – DMA CONTROLLER
NOTE: nREAD, nWRITE - SIGNAL ACTIVE IN ”0”
49
Struktura a architektura počítačů
Paměti počítače DMA přenos KONEC
České vysoké učení technické Fakulta elektrotechnická 50