320 likes | 568 Views
Struttura e funzionamento di un microprocessore. Campi di utilizzo dei m P. Dai primi calcolatori alle attuali applicazioni. Contenuti. Lo schema di Von Neumann. ENIAC: il primo computer elettrico. EDVAC. Nuovi computer con componenti elettronici a semiconduttore: APPLE II.
E N D
Struttura e funzionamento di un microprocessore
Campi di utilizzo dei mP Dai primi calcolatori alle attuali applicazioni
Contenuti • Lo schema di Von Neumann • ENIAC: il primo computer elettrico • 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.
RAM (Memoria Centrale) Unità di Calcolo INPUT OUTPUT MemorieAusiliarie Lo schema di Von Neumann RAM • 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. RAM • L’idea fu quella di memorizzare all’interno del computer, non solo i dati ma anche il programma che li doveva elaborare.
diventa elaboratore(macch. per il trattamento delle informazioni) Elaboratore RAM (Memoria Centrale) Unità di Calcolo INPUT OUTPUT MemorieAusiliarie • ilcalcolatore(macchina per calcolare)
EDVAC • EDVAC ideato da VON NEUMANN • Primo diagramma di flusso ideato da Von Neumann per l’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 • 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) • 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.
Architettura e logica di funzionamento
CPU Memoria Disp. di I/O ALU UC BUS Contenuti CPU • Blocchi di un sistema a mP Memoria • Architettura a BUS • Suddivisione del BUS • Architettura interna del mP • Prelievo (fetch) ed esecuzione (execute) di istruzioni in memoria
REG ALU REG Blocchi componenti un sistema a mP • CPU (mP) CPU • Esegue operazioni (ALU) • Prende decisioni (UC) UC • Memorizza temp. dati (Registri) • Memoria • Conserva Istruzioni e Dati Memoria 00110101 00110101 sotto forma di parole binarie 0000h • accessibili mediante un indirizzo • Dispositivi di I/O • Consentono lo scambio informazioni con il mondo esterno
Architettura a BUS 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) CPU Memoria Dispositivi di I/O 00110101 00110101 00110101 BUS SCRITTURA su Mem LETTURA da Mem LETTURA da I/O SCRITTURA su I/O
BUS INDIRIZZI BUS CONTROLLI BUS DATI Suddivisione del BUS Dal punto di vista funzionale il BUS di collegamento può essere suddiviso in: CPU Memoria Dispositivi di I/O
CPU UC BUS INTERNO REG ALU REG …… Architettura interna del Microprocessore Reg. istruzioni Reg. di Stato Registri di uso generale CPU Accumulatore Decodificatore di istruzioni ALU Stack Pointer Reg. temporaneo Unità di controllo e temporizzazione Program Counter BufferDati Buffer Indirizzi RESET CLOCK BUS INDIRIZZI BUS CONTROLLI BUS DATI
…… fetch Prelievo istruz. dalla mem. ( fetch ) e loro esecuzione (execute) execute Memoria Reg. istruzioni 00001100 ADD A,B A INC A 11000011 11010000 11010000 00001000 11010001 00001000 CPU Decodificatore di istruzioni PROG INC A ADD A,B + +1 ALU B 11001000 11001000 Unità di controllo e temporizzazione 0002h 0000h 0000h 0001h 0001h Program Counter 0 0 1 1 0 1 DATI
Architettura e logica di funzionamento del MICROPROCESSORE 8088 INTEL
AD[0:7] A [8:19] WR# RD# IO/M# CPU Contenuti • Il circuito integrato • I registri • Architettura interna • La segmentazione degli indirizzi AX EXTRA SEGMENT STACK SEGMENT DATA SEGMENT CODE SEGMENT
WR RD Circuito integrato: segnali per il controllo della memoria e delle periferiche • 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 AD[0:7] A [8:19] CPU IO/M
WR DEN RD DT/R IO/M Circuito integrato: segnali per la separazione DATI/INDIRIZZI • 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 AD[0:7] ALE A [8:19]
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) AX AH AL
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)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 x x x x x x x Status Register (Registro di Stato) • Memorizza lo stato del processore dopo ogni operazione • Ogni singolo bit viene modificato singolarmente STATUS REGISTER OF DF IF TF SF ZF AF PF CF S F O F I F Z F C F Overflow 0: l’ultima operazione non ha avuto overflow 1:l’ultima operazione ha avuto overflow Flag Interrupt 0: Interrupt abilitato 1: Interrupt non abilitato Flag Sign 0: il risultato dell’ultima operazione è positivo 1: il risultato dell’ultima operazione è negativo Flag Zero 0: il risultato dell’ultima operazione non è nullo 1: il risultato dell’ultima operazione è nullo Flag Carry 0: il risultato dell’ultima operazione non ha generato riporto 1: il risultato dell’ultima operazione ha generato riporto Flag
Architettura interna A[8:19] AD[O:7] DT/R# DEN# ALE Registri di segmento CS INTA# DS INTERFACCIA BUS RD# SS ES WR# Program counter Logica di Controllo IP CK BIU VCC MN/MX# RESET BUS INTERNO (16 bit) CODA (4 byte) INTR NMI READY Registri di uso generale AH AL GND BH BL CH CL ALU DH DL Registri indice SI DI STATUS REGISTER Registri Puntatori SP EU BP
I Segmenti (1) • Un segmento è un’area di memoria di 64 Kilobyte (216 byte) 0FFFF h FFFF 00000 h 0000
FFFFFh 8FFFF h 80000 h 6FFFF h 60000 h 3FFFF h 30000 h 1FFFF h 10000 h 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 Segment EXTRA SEGMENT FFFF 64K 0000 STACK SEGMENT FFFF 64K 0000 DATA SEGMENT FFFF 64K 0000 CODE SEGMENT FFFF 64K 0000
Posizionedei segmenti • I segmenti possono essere: • Disgiunti • Adiacenti • Coincidenti • Sovrapposti EXTRA SEGMENT STACK SEGMENT DATA SEGMENT CODE SEGMENT
Indirizzi fisici e indirizzi segmentati • Indirizzo segmentato: usato dal programmatore Offset o spiazzamento 1000 1000 : 2345 2345 Indirizzo di base del segmento 0 + 12345 INDIRIZZO FISICO • Indirizzo fisico: usato dal microprocessore