struttura e funzionamento di un microprocessore. campi di utilizzo dei p dai primi calcolatori alle...
TRANSCRIPT
Struttura e
funzionamento di un
microprocessore
Campi di utilizzo dei P
Dai primi calcolatori alle
attuali applicazioni
Contenuti• ENIAC: il primo computer elettrico• Lo schema di Von Neumann
• EDVAC
• Nuovi computer con componenti elettronici a semiconduttore: APPLE II
• Campi di applicazione dei microprocessori
• Dal mondo analogico al PC
• Memorie a semiconduttore: RAM e ROM
ENIAC: primo computer elettrico
L’ENIAC (electric numerical integrator analyzer and computer) fu costruito tra il 1943 e il 1945 dall’esercito statunitense per calcolare la traiettoria delle prime armi atomiche. Costruito da più di 17000 valvole a vuoto, Eniac eseguiva 5000 operazioni al secondo, risolvendo un problema medio in circa 2 secondi, ma richiedendo due giorni per la preparazione. Pesava 30 tonnellate era lungo 30 m alto 2,5 m. Assorbiva 200 Kw di potenza.
• Una delle innovazioni introdotte fu la RAM (Random Access Memory) cioè la memoria centrale o memoria di lavoro (allora memoria a nuclei magnetici), una memoria elettronica interna all’elaboratore destinata a contenere il programma.
Lo schema di Von Neumann
RAM (Memoria Centrale)
Unità di CalcoloINPUT OUTPUT
Memorie Ausiliarie
RAM
RAM
• L’idea fu quella di memorizzare all’interno del computer, non solo i dati ma anche il programma che li doveva elaborare.
RAM (Memoria Centrale)
Unità di CalcoloINPUT OUTPUT
Memorie Ausiliarie
il calcolatore (macchina per calcolare)
elaboratore (macch. per il trattamento delle informazioni)
diventa
Elaboratore
• EDVAC ideato da VON NEUMANN
• Primo diagramma di flusso ideato da Von Neumann per l’EDVAC
EDVAC
Nuovi computer con componenti elettronici a
semiconduttore • Con l’avvento dei transistor a
semicondutore (Bell labs 1947) • L’IBM nel 1954 realizzò il primo
computer a transistor, e anche il primo messo in commercio. Ne furono vendute 120 unità.
• Nel 1958 la TEXAS INSTRUMENTS costruì il primo circuito integrato, consentendo la costruzione dei microprocessori, e di computer sempre più piccoli e potenti, ma sempre dai costi non accessibili a tutti limitandone così la vendita, e quindi la produzione.
• Solamente nel 1975 fu costruito il primo prototipo di PC l’ALTAIR 8800 della MITS il processore era l’INTEL 8080 e aveva 256 byte di RAM. Costava 367 dollari.
APPLE II Il trionfo del software
• Ma intanto l’IBM realizza il suo primo PC cercando di accontentare le richieste di mercato: basso prezzo e possibilità di aggiornare i componenti e il software. Non brevettò il PC, consentendo ai concorrenti di copiarne la struttura. Questa fu l’idea di mercato vincente, perché la maggior parte dei PC erano così compatibili con i componenti IBM,e i creatori di software si basarono sul loro hardware, tra questi c’era la Microsoft. Nasce l’era del software, che deciderà il futuro dei PC.
• Realizzato nel 1976, fu il primo vero PC commerciale, che sancì il successo del calcolo elettronico grazie ai software a lui dedicati. In particolare venne realizzato il primo foglio elettronico (Visicalc)
CAMPI DI APPLICAZIONE
DEI MICROPROCESSO
RI
Architettura e
logica di funzionamento
Contenuti• Blocchi di un sistema a P
• Architettura a BUS
• Suddivisione del BUS
• Architettura interna del P
• Prelievo (fetch) ed esecuzione (execute) di istruzioni in memoria
CPUDisp. di
I/OMemoria
BUS
CPU
ALU
UC
Memoria
Blocchi componenti un sistema a P
• Memoria– Conserva Istruzioni e Dati
• Dispositivi di I/O– Consentono lo scambio informazioni con il
mondo esterno
• CPU (P) CPU
ALU
UC
– Esegue operazioni (ALU)– Prende decisioni (UC)
– Memorizza temp. dati (Registri)
REG
REG
Memoria
sotto forma di parole binarieaccessibili mediante un indirizzo
00110101 00110101
0000h
Architettura a BUS
CPU Dispositivi diI/O
BUS
Memoria00110101
LETTURA da Mem
Il BUS di collegamento consente lo scambio di informazioni:
dalla memoria verso il microprocessore (LETTURA da Memoria) dai dispositivi di I/O verso il microprocessore (LETTURA da I/O) dal microprocessore verso la memoria (SCRITTURA su Memoria)
dal microprocessore verso i dispositivi di I/O (SCRITTURA su I/O)
00110101
LETTURA da I/OSCRITTURA su MemSCRITTURA su I/O
00110101
Suddivisione del BUS
CPU Memoria
BUS INDIRIZZI
BUS DATI
BUS CONTROLLI
Dispositivi diI/O
Dal punto di vista funzionale il BUS di collegamento può essere suddiviso in:
Architettura interna del Microprocessore
Reg. istruzioni Reg. di Stato
Accumulatore
Reg. temporaneo
Buffer Dati Buffer Indirizzi
Program Counter
Stack Pointer
Registri di
uso generale
ALU
Decodificatore di istruzioni
Unità di
controllo e temporizzazione
RESET CLOCKBUS INDIRIZZIBUS DATI
BUS INTERNO
……
BUS CONTROLLI
CPU
CPUALU
UC
REG
REG
……
Memoria
0000h 00001100
0001h 11000011
Prelievo istruz. dalla mem. ( fetch ) e loro esecuzione (execute)
PROG
DATI
0000h
ADD A,B
00001100
0000h
A
B
0001h
INC A
00001000
11001000
0
0
1
00001000
11001000
+ALU
11010000
11000011
ADD A,B
INC A
fetch
1
0
1
+1
11010000
execute
0002h0001h
11010001
Unità di
controllo e
temporizzazione
Program Counter
Decodificatore di istruzioni
Reg. istruzioni
CPU
Architettura e
logica di funzionamento del
MICROPROCESSORE 8088 INTEL
Contenuti
• Il circuito integrato
• I registri
• Architettura interna
• La segmentazione degli indirizzi
AD[0:7]
A [8:19]
WR#
RD#
IO/M#
CPU
AX
CODE SEGMENT
DATA SEGMENT
STACK SEGMENT
EXTRA SEGMENT
Circuito integrato: segnali per il controllo della memoria e delle
periferiche
AD[0:7]
A [8:19]
WR
RD
IO/M
AD[0:7]: linee del BUS DATI multiplexate con le prime 8 linee del BUS INDIRIZZI
A[8:19]: le rimanenti 12 linee del BUS INDIRIZZI
WR#: segnale di scrittura
RD#: segnale di lettura
IO/M#: segnale di attivazione periferica I/O o memoria
CPU
Circuito integrato: segnali per la separazione DATI/INDIRIZZI
AD[0:7]
A [8:19]
WR
RD
IO/M
ALE
DEN
DT/R
ALE: indica la presenza degli indirizzi sulle linee
AD[0:7]
DEN#: indica la presenza di un dato valido sulle linee AD[0:7]
DT/R#: indica la direzione dei dati
I Registri di uso generale
• AX registro ACCUMULATORE• BX registro BASE• CX registro CONTATORE• DX registro DATI
– Possono essere divisi in due byte (es.:AL e AH), dando luogo a un set possibile di 8 registri a 8 bit
L = LOW (BASSO)H = HIGH (ALTO)
AH ALAX
UTILIZZO dei registri di uso generale
• Operazioni aritmetiche a 8 o a 16 bit• Operazioni logiche• Trasferimento dati• Funzioni specifiche ( es.: AX è
coinvolto nelle operazioni di Input/Output dei dati, BX è usato come puntatore nell’indirizzamento della memoria)
Status Register (Registro di Stato)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
x x x x x x xOF DF IF TF SF ZF AF PF CFSTATUS REGISTERF
Flag
O
Overflow0: l’ultima operazione non ha avuto overflow
1:l’ultima operazione ha avuto overflow
FlagInterrupt0: Interrupt abilitato
1: Interrupt non abilitato
FI
FlagSign0: il risultato dell’ultima operazione è
positivo
1: il risultato dell’ultima operazione è negativo
FS
FlagZero0: il risultato dell’ultima operazione non è
nullo
1: il risultato dell’ultima operazione è nullo
FZ
FlagCarry0: il risultato dell’ultima operazione non ha generato
riporto
1: il risultato dell’ultima operazione ha generato riporto
FC
• Memorizza lo stato del processore dopo ogni operazione• Ogni singolo bit viene modificato singolarmente
DSCS
Architettura interna
SSES
Logica
di
Controllo
IP
CODA (4 byte)
SIDI
SPBP
INTERFACCIA BUS
ALU
STATUS REGISTER
AH ALBH BLCHDH
CLDL
BUS INTERNO (16 bit)
EU
Registri di uso generale
Registri di segmento
Program counter
Registri indice
Registri Puntatori
BIUCK
VCCMN/MX#
RESET
INTR
NMI
READY
GND
AD[O:7]
A[8:19] DT/R# DEN# ALE
INTA#
RD#
WR#
I Segmenti (1)
• Un segmento è un’area di memoria di 64 Kilobyte (216 byte)
01001111 b
…………
10101010 b
11001110 b 00000 h
0FFFF h
0000
FFFF
1FFFF h
10000 h
30000 h
3FFFF h
60000 h
6FFFF h
80000 h
8FFFF h
FFFFFh
00000h
I Segmenti (2)
• Contemporaneamente la CPU 8088 può utilizzare al massimo 4 segmenti (256 Kilobyte):– CODE SEGMENT: contiene
il codice (programma)– DATA SEGMENT: contiene i
dati (iniziali e i risultati)– STACK SEGMENT: contiene
lo stack, magazzino temporaneo di dati e indirizzi
– EXTRA SEGMENT: è un ampliamento del Data SegmentCODE SEGMENT
DATA SEGMENT
STACK SEGMENT
EXTRA SEGMENT
0000
FFFF
0000
FFFF
0000
FFFF
0000
FFFF
64K
64K
64K
64K
Posizione dei segmenti
• I segmenti possono essere:– Disgiunti– Adiacenti– Coincident
i– Sovrappos
tiCODE SEGMENT
DATA SEGMENT
STACK SEGMENT
EXTRA SEGMENT
Indirizzi fisici e indirizzi segmentati• Indirizzo segmentato: usato dal programmatore
1000 2345:
• Indirizzo fisico: usato dal microprocessore
Indirizzo di base del segmento
Offset o spiazzamento
0 +
1000 2345
12345
INDIRIZZO FISICO