380 likes | 644 Views
Seconda Università degli Studi di Napoli Facoltà di Economia. Corso di Informatica. Prof.ssa Zahora Pina. Architettura di un calcolatore Cap 2 pagg. 35-48 Abstract. Descrizione della macchina di von Neumann Elementi della macchina di von Neumann.
E N D
Seconda Università degli Studi di NapoliFacoltà di Economia Corso di Informatica Prof.ssa Zahora Pina
Architettura di un calcolatoreCap 2 pagg. 35-48Abstract • Descrizione della macchina di von Neumann • Elementi della macchina di von Neumann L’architettura della maggior parte dei calcolatori è organizzata secondo il modello della Macchina di von Neumann
Architettura di un calcolatoreElementi della macchina di von Neumann • La macchina di von Neumann è costituita da quattro elementi funzionali fondamentali: • L’unità di elaborazione (CPU) • La memoria centrale • RAM • ROM • Le periferiche (interfacce): • Terminali • Stampanti • … • Memorie di massa • Il bus di sistema • Dati • Indirizzi • Controlli
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma • In un calcolatore i dati e le istruzioni di un programma sono codificate in forma binaria, ossia in una sequenza finita di 1 e di 0. • La più piccola unità di informazione memorizzabile o elaborabile da un calcolatore è il bit (BInary Digit)
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma • Bit (0,1) • Le componenti di un calcolatore sono formate da dispositivi fisici che possono trovarsi in 2 stati (acceso, spento) • Un bit corrisponde ad uno stato di un dispositivo fisico: • Acceso = 1 • Spento = 0
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma CODICE Per codice si intende una modalità per rappresentare mediante un opportuno insieme di simboli un insieme di oggetti materiali o un'insieme di informazioni tendenzialmente più complesse dei simboli che le codificano Es: Si codifichino le seguenti istruzioni utilizzando delle lampadine: I1: Pericolo – Non entrare I2: Nessun pericolo – Entrare Codice: I1 = I2 =
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma Osservazione: Se si volessero codificare 4 istruzioni sono necessarie + lampadine: I1: Pericolo – Non entrare I2: Nessun pericolo – Entrare uno per volta I3: Nessun pericolo – Entrare due per volta I4: Nessun pericolo – Entrare tre per volta I1 = I2 = I3 = I4=
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma • Un calcolatore tratta diversi tipi di dati: • Numeri • Naturali • Interi • Reali • Frazionari • Testi • Immagini • Suoni • Tutti i tipi di dati vengono trasformati in sequenze di bit
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma 1 bit 2 simboli 21 da 0 a 21-1=1 0-1 22 2 bit 4 simboli 0-1-2-3 da 0 a 22-1=3 3 bit 8 simboli 23 da 0 a 23-1=7 0-1-2-3-4-5-6-7 n bit 2n simboli da 0 a 2n - 1
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma Byte Un byte è composto da 8 bit byte 1 0 1 1 0 1 0 0 Numeri naturali 28 simboli da 0 a 28 – 1=255 8 bit
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma Numeri interi da -27 – 1 a +27 – 1 28 simboli 8 bit da -127 a +127 • Il primo bit viene utilizzato per il segno: • 0 positivo • 1 negativo
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma Numeri reali I numeri reali sono numeri contenenti una parte intera e una parte frazionaria parte frazionaria Es:8.345 parte intera Notazione in virgola fissa Si codifica separatamente la parte intera e la parte frazionaria Es: 8.345 8 00001000 0.345 01011000 8.345 00001000.01011000
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma Caratteri I caratteri sono codificati in sequenze di bit mediante un codice di traduzione. Il più diffuso è il codice ASCII (American Standard Code for Information Interchange) Codice ASCII • I caratteri vengono codificati utilizzando 7 bit. • Ad ogni carattere è assegnata una sequenza di bit corrispondnte ad un numero naturale compreso tra 0 e 127 Es: A 01000001 65 ; 00111011 59
Architettura di un calcolatoreCodifica dei dati e delle istruzioni di programma • Le istruzioni che compie un calcolatore possono essere: • Trasferimento di dati da una posizione ad un’altra • Operazioni tra dati • Le istruzioni sono formate da: • Operatore • Operandi Es: somma a e b Operatore: somma Operandi: a,b Operandi e operatori vengono codificati in sequenze di bit secondo particolari convenzioni 00010000 Es: 010000000 leggi un valore in input ponilo nella cella 16 operatore operando
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM • La memoria centrale e destinata ad accogliere il "materiale di lavoro" su cui l'elaboratore opera: dati e programmi. • Analogia con l'organizzazione della mente umana: • la memoria centrale contiene informazione a breve o medio termine • nella memoria di massa viene memorizzata informazione a lungo termine • La memoria centrale è in genere di dimensioni ridotte e può quindi accogliere solo una parte dell'informazione disponibile. • Tuttavia essa è un "passaggio obbligato": prima di poter essere elaborata l'informazione deve essere acquisita dalla memoria centrale • In genere, ciò comporta una operazione di ingresso/uscita in cui cioè l'informazione viene trasferita dalla memoria di massa a quella centrale o viceversa
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM • Da un punto di vista concettuale, la memoria centrale e una sequenza di celle di memoria ciascuna cella contiene una parola (word) • Le parolesono sequenze di bit • Le parole di uno stesso elaboratore sono tutte della stessa lunghezza • Elaboratori diversi possono avere parole di lunghezza diversa: • 1 byte = 8 bit • 2 byte = 16 bit • 3 byte = 32 bit • …. Nei calcolatori moderni le parole hanno lunghezza >=32 • Ciascuna parola assumerà durante la computazione un particolare valore
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM • Tecnologicamente le memorie sono realizzate con dispositivi a semiconduttori • Una memoria può essere idealizzata come una grossa "tabella“: • righe celle • colonne (in numero pari alla lunghezza di parola) individuano ciascun bit di memoria. • L'informazione è presente in memoria come stato (alto 1 basso 0) di tensione nelle posizioni della memoria individuate agli incroci delle righe con le colonne
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM byte bit 1 2 3 4 5 6 7 8 cella 1a parola cella 2a parola cella 3a parola
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM • Ingenere, la memoria centrale è volatile: • il suo contenuto viene perduto quando il calcolatore viene spento o quando, per esempio, viene a mancare l'energia elettrica • nel riprendere dopo una interruzione il valore degli 0 e 1 nelle celle di memoria non è significativo • La memoria di massa è permanente: • l'informazione in essa contenuta non va persa quando il calcolatore viene spento Alcune memorie centrali di nuova concezione sono alimentate da batterie autonome e divengono pertanto anch' esse permanenti
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM • Ciascuna cella di memoria può essere indirizzata: • capacità dell' elaboratore di selezionare una particolare cella di memoria • l' indirizzodi una cella di memoria e semplicemente la sua posizione relativa (numero d'ordine) rispetto alla prima cella di memoria, cui viene normalmente attribuita la posizione zero • l'indirizzamento delIa memoria avviene tramite un opporluno registro (registro indirizzi) che si trova nell"unita di elaborazione.
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM 0 1 registro indirizzi (AR) 210 = 1024 celle 210 -1 = 1023
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria RAM
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria ROM • La memoria ROM (Read Only Memory) contiene dati e programmi che servono per inizializzare il sistema • La memoria ROM può essere solo letta e non scritta dall’utente • Le memorie ROM sono persistenti
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La memoria ROM • Memorie ROM • EROM (Erasable ROM): possono essere cancellate sottoponendole a raggi ultravioletti per essere riutilizzate • PROM (Programmable ROM): la scrittura della memoria può avvenire anche utilizzando particolari dispositivi (programmatori di ROM) piuttosto che solo durante il processo di costruzione • EPROM: ROM cancellabili e programmabili Le ROM hanno alcune caratteristiche dell’hardware e altre del software Il software contenuto nella ROM è detto firmware (“a cavallo” fra hw e sw)
Architettura di un calcolatoreComportamento della macchina di Von Neumann – Il bus di sistema • Il bus di sistema è costituito da un insieme di interconnessioni elementari (linee) lungo le quali viene trasferita l’informazione • Collega la CPU con la memorie e le interfacce di I/O • In ogni istante il bus è occupato a collegare due unità: • Trasmettitore • Ricevitore • Le interconnessioni possibili avvengono tra: • CPU e Memoria • CPU e interfacce di I/O • Il bus è sotto il controllo della CPU (master) che decide di attivare le altre unità funzionali (slave) • Durante ogni operazione il bus realizza un determinato collegamento per un certo tempo (velocità di trasmissione)
Architettura di un calcolatoreComportamento della macchina di Von Neumann – Il bus di sistema master CPU bus di sistema slave slave RAM I/O
Architettura di un calcolatoreComportamento della macchina di Von Neumann – Il bus di sistema • Il bus di sistema si suddivide in 3 categorie: • Bus dati • Bus indirizzi • Bus controlli
Architettura di un calcolatoreComportamento della macchina di Von Neumann – Il bus di sistema • Il bus dati trasferisce dati dalla unità master alla slave o viceversa RAM 0 Es: lettura 1 registro dati (DR) lettura CPU
Architettura di un calcolatoreComportamento della macchina di Von Neumann – Il bus di sistema • Il busindirizzi trasmette il contenuto del registro indirizzi dalla CPU alla memoria RAM 0 Es: lettura 1 registro indirizzi (AR) lettura registro dati (DR) CPU
Architettura di un calcolatoreComportamento della macchina di Von Neumann – Il bus di sistema • Il buscontrolli trasmette • dall’unità master all’unità slave un codice corrispondente all’istruzione da eseguire • dall’unità slave all’unità master informazioni relative all’espletamento dell’istruzione RAM 0 1 codiceistruzione espletamento istruzione CPU
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La CPU • La CPU (Central Processing Unit) contiene gli elementi circuitali che regolano il funzionamento dell’elaboratore • Funzioni: • Eseguire i programmi contenuti nella memoria centrale • Preleva (fetch) • Decodifica • Esegue (execute)
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La CPU • La CPU è composta da: • Unità di controllo (CU = Control Unit) • Orologio di sistema (clock) • Unità aritmetico logica (ALU = Arithmetic and Logic Unit) • Registri CPU CU ALU registri clock
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La CPU • La CU • Preleva e decodifica le istruzioni • Invia i segnali di controllo che provocano • Trasferimenti • Elaborazioni • Il Clock • Sincronizza le operazioni rispetto ad una data frequenza • Ad ogni oscillazione del clock viene eseguita una operazione • Il numero di oscillazioni del clock per unità di tempo indica la frequenza (velocità) misurata in Mhz • L’ALU • Realizza le operazioni aritmetiche e logiche • I registri • Elementi di memoria che possono essere letti e scritti molto velocemente • Contengono: • Risultati parziali dell’elaborazione • Informazioni necessarie al controllo
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La CPU • Principali registri • Registro dati (DR = Data Register) • Registro indirizzi (AR = Address Register) • Registro istruzione corrente (CIR = Current Instruction Register) • Contiene l’istruzione in esecuzione • Contatore di programma (PC = Program Counter) • Contiene l’indirizzo della successiva istruzione • Registro interruzioni (INTR = INTerrupt Register) • Contiene alcune informazioni sullo stato di funzionamento delle periferiche • Registri che contengono • Operandi • Risultati • Registri di lavoro (veloci) Contengono • Dati o istruzioni di uso frequente • Risultati intermedi • Registro di stato (SR = State Register)
Architettura di un calcolatoreComportamento della macchina di Von Neumann – La CPU • Registro di stato (SR = State Register) contiene bit tra cui: • Bit di carryindica la presenza di un riporto • Bit zeroindica la presenza di un valore nullo nel registro A • Bit di segnoriporta il segno di un’operazione aritmetica • Bit di overflowindica una situazione di errore che si verifica quando il risultato dell’ultima operazione supera il massimo valore contenibile nel registro A
Architettura di un calcolatoreComportamento della macchina di Von Neumann – L’ALU • L’ALU può essere molto sofisticata e capace di operazioni complesse • ALU semplificata (+, - ,* /) ALU A A 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 dopo + B B 0 0 0 0 0 0 1 0 undefined CU Come opera: • A e B vengono caricati con gli operandi • L’ALU viene messa in azione dalla CU che le invia un codice corrispondente all’operazione • A viene caricato con il risultato dell’operazione • B • se l’operazione è di divisione viene caricato con il resto della divisione • altrimenti non è definito