Architettura di un Sistema di Elaborazione Hardware e Software: Prima scomposizione di un "sistema informatico": • Hardware: componenti fisici del sistema • Software: i programmi che vengono eseguiti dal sistema Il confine tra hardware e software in realta‘ non e‘ sempre ben definito (v. firmware). UTENTE Software Firmware Hardware FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 1 Modello di Von Neumann Architettura di un elaboratore Organizzata secondo il modelIo della macchina di von Neumann definita nei tardi anni ’40 all’Institute for Advanced Study di Princeton. E` costituita da quattro elementi funzionali fondamentali: • • • • Unità centrale di elaborazione (CPU); Memoria Centrale; Periferiche; Bus di sistema. Bus di sistema Unita’ di elaborazione Memoria centrale Interfacce verso periferiche Architettura di un elaboratore FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 2 • La CPU contiene i dispositivi elettronici in grado di acquisire, interpretare ed eseguire le istruzioni di ogni programma, trasformando i dati. Le istruzioni vengono eseguite in sequenza. Dati ed istruzioni vengono trasferiti da (e verso) la memoria centrale. • La memoria centrale contiene sia le istruzioni che i dati (informazioni necessarie per eseguire un programma). Ha dimensioni limitate ed e` volatile (cioe` le informazioni memorizzate vengono perse allo spegnimento del computer). • Le periferiche consentono uno scambio di informazioni fra l'elaboratore e l'esterno (ingresso/uscita, memoria secondaria). In particolare, la memoria secondaria (o memoria di massa) viene utilizzata per memorizzare grandi quantita' di informazioni in modo persistente. Ha dimensioni elevate, ma l’accesso e' meno rapido, rispetto alla memoria centrale. • Il bus di sistema collega questi elementi funzionali. Fornisce il supporto fisico per la trasmissione dei dati tra i vari elementi. FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 3 Introduzione Che cos’è un calcolatore? Come funziona un calcolatore? ➔ ➔ è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso punto di vista in questo corso, il punto di vista prevalente è quello del calcolatore come macchina programmabile, ovvero in grado di eseguire programmi Fondamenti di Informatica – Architettura Calcolatori 2 Hardware e software La prima decomposizione di un calcolatore è relativa alle seguenti macrocomponenti: hardware ➔ la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici software ➔ ➔ l’insieme dei programmi che consentono all’hardware di svolgere dei compiti utili il software comprende il software di base (tra cui il sistema operativo) e il software applicativo Fondamenti di Informatica – Architettura Calcolatori 4 Organizzazione a livelli Hardware e software sono organizzati a livelli (o strati). Ogni livello usa i servizi offerti dal livello sottostante. Un utente agisce usando i servizi del livello software applicativo (web, videogames, programmi di grafica etc) Le applicazioni a loro volta usano i servizi del software di base (es. sistema operativo) Il livello software di base, utilizza il livello hardware. Fondamenti di Informatica – Architettura Calcolatori Utente Software applicativo Software di base Hardware 5 Macchina di Von Neumann L’architettura dell’hardware di un calcolatore reale è molto complessa n viene introdotta la macchina di Von Neumann , che è un modello semplificato dei calcolatori moderni l Von Neumann è stato il progettista (intorno al 1950) del primo calcolatore in cui i programmi potevano essere memorizzati anziché codificati mediante cavi e interruttori 8 Architettura dei calcolatori ENIAC girls US-Army photo Elementi della macchina di Von Neumann La macchina di Von Neumann è composta da quattro tipologie di componenti funzionali fondamentali n unità centrale di elaborazione (CPU) l componente in grado di eseguire istruzioni per l’elaborazione dei dati l svolge anche funzioni di controllo (ovvero, di coordinamento) delle altre componenti funzionali n memoria centrale l memorizza e fornisce l’accesso a dati e programmi n interfacce di ingresso e uscita l componenti di collegamento con le periferiche del calcolatore (considerate esterne al calcolatore), che consentono lo scambio di dati tra calcolatore e utente n bus l svolge la funzionalità di trasferimento di dati e di informazioni di controllo tra le varie componenti funzionali 9 Architettura dei calcolatori Vista funzionale di un Calcolatore Ambiente Trasferimento Controllo Elaborazione Fondamenti di Informatica – Architettura Calcolatori Memorizzazione 6 Componenti di un Calcolatore Fondamenti di Informatica – Architettura Calcolatori 7 Rappresentazione delle Informazioni e Memorizzazione: Unita‘ di misura I sistemi di elaborazione sono realizzati con tecnologia digitale: le informazioni sono rappresentate mediante segnali elettrici a 2 valori di tensione {Vlow, Vhigh} (oppure {0,1}). • Per questo motivo, l’unita` logica di memorizzazione (e, in generale, di rappresentazione delle informazioni) e` il bit (binary digit): +un bit e` una grandezza il cui dominio di variazione e` composto dai due valori {0,1}. • il byte equivale ad 8 bit Unita` successive: • potenze in base 2 del byte (con esponente multiplo intero di 10): Kilobyte 210 byte Megabyte 220 byte Gigabyte 230 byte Terabyte 240 byte FONDAMENTI DI INFORMATICA 1024 byte 1048576 byte ~109 byte ~1012 byte KB MB GB TB STRUTTURA DEI CALCOLATORI 4 Rappresentazione delle informazioni e dati Lo scopo fondamentale di un calcolatore è di permettere l’elaborazione di informazioni n le informazioni sono rappresentate sotto forma di dati n un dato è una informazione elementare I dati che un calcolatore sa rappresentare ed elaborare direttamente sono molto semplici n i dati vengono rappresentati nel calcolatore mediante delle codifiche binarie n i tipi di dato in un calcolatore l numeri interi l numeri razionali l caratteri l valori di verità (vero/falso) n per essere manipolate da un calcolatore, le informazioni di interesse devono essere organizzate in termini di questi tipi di dato 12 Architettura dei calcolatori Elaborazione Le istruzioni del linguaggio macchina di un calcolatore corrispondono ad operazioni elementari di manipolazione dei dati n operazioni aritmetiche l somma, prodotto, ... n operazioni relazionali l confronto tra dati n operazioni su caratteri e valori di verità n altre operazioni numeriche l calcolo di logaritmi e funzioni trigonometriche Un calcolatore sa dunque svolgere poche tipologie di operazioni n ma le sa eseguire in modo molto efficiente n un calcolatore può eseguire circa 50-100 milioni di istruzioni del linguaggio macchina al secondo L’elaborazione dei dati viene svolta dall’unità aritmetico -logica (ALU), che è un componente dell’unità centrale di elaborazione 13 Architettura dei calcolatori Memorizzazione Un calcolatore ha la necessità di memorizzare, in modo temporaneo o permanente, i dati per la rappresentazione delle informazioni di interesse La memoria è l’unità responsabile della memorizzazione dei dati n una unità di memoria è organizzata in celle l a ciascuna cella è associato un indirizzo, che la identifica l ciascuna cella è in grado di memorizzare un singolo dato Una unità di memoria fornisce due operazioni n memorizzazione di un dato in una cella (scrittura) l dato il valore da memorizzare e l’indirizzo della cella, modifica lo stato della memoria n accesso al dato memorizzato in una cella (lettura) l dato l’indirizzo della cella, restituisce il valore Nella memoria vengono memorizzati anche i programmi n viene utilizzata una opportuna codifica delle istruzioni 14 Architettura dei calcolatori Trasferimento Il bus è il componente del calcolatore dedicato al trasferimento dei dati e di informazioni di controllo tra le varie parti del calcolatore n il bus è l’insieme dei collegamenti su cui vengono trasferiti i dati e i segnali di controllo in un calcolatore L’idea alla base del bus n ci sono due modalità per collegare tutte i componenti di un calcolatore (per permettere lo scambio di dati tra i componenti) l collegare ciascun componente con ogni altro componente l collegare tutti i componenti a un unico insieme di linee (il bus, appunto) n l’uso del bus favorisce la modularità e l’espandibilità del calcolatore 15 Architettura dei calcolatori Controllo Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo n l’unità di controllo è un altro componente dell’unità centrale di elaborazione n ogni componente dal calcolatore esegue solo le azioni che gli vengono richieste dall’unità di controllo L’attività di controllo svolta dall’unità di controllo n avviene in modo sincrono rispetto alla scansione temporale imposta dall’orologio di sistema (clock) n è un coordinamento dell’esecuzione temporale delle funzioni che devono essere svolte sia internamente all’unità di elaborazione che negli altri elementi funzionali 16 Architettura dei calcolatori Frequenza di clock La frequenza con cui si eseguono i cicli di esecuzione è scandita dal clock (orologio interno) n ad ogni impulso di clock l’unità di controllo esegue un ciclo di esecuzione n la velocità di elaborazione di un microprocessore dipende dalla frequenza del suo clock (300, 400,... MHz) (es.: 300 milioni di cicli al secondo). Attualmente si parla di GHz. PDF created with pdfFactory trial version www.pdffactory.com Unità centrale di elaborazione L’unità centrale di elaborazione (o processore ) è composta dall’unità di controllo e dall’unità aritmetico-logica n l’unità centrale di elaborazione controlla l’esecuzione di un programma (memorizzato in memoria centrale sotto forma di una sequenza di istruzioni del linguaggio macchina) eseguendo ordinatamente le istruzioni del programma L’esecuzione di ciascuna istruzione avviene mediante lo svolgimento delle seguenti tre operazioni di base n (lettura) fetch l legge dalla memoria la prossima istruzione da eseguire n (decodifica) decode l determina il tipo di istruzione che deve essere eseguito n (esecuzione) execute l richiede lo svolgimento di tutte le azioni necessarie per l’esecuzione dell’istruzione — ciascuna azione viene richiesta al componente opportuno 17 Architettura dei calcolatori Periferiche e interfacce di ingresso-uscita Un calcolatore può essere collegato a diversi dispositivi di ingresso e/o uscita (chiamati periferiche ) n ad esempio, la tastiera, il mouse, lo schermo, le stampanti, il modem n anche le memorie di massa (ad esempio, le unità disco e il lettore di CD-ROM) sono considerati periferiche Nella macchina di Von Neumann, le periferiche non fanno parte del calcolatore n ogni periferica viene controllata mediante un’opportuna interfaccia n una interfaccia ha il compito di tradurre i segnali interni del calcolatore in un formato comprensibile alla periferica stessa, e viceversa 18 Architettura dei calcolatori 2 A rchitettura del calcolatore Il Bus di Sistema Bus di Sistema: collega tra loro le varie unità Bus di Sistema funzionali (la CPU, la memoria e le varie interfacce di I/O). In ogni istante, il bus collega 2 unità funzionali, (es. CPU e memoria oppure CPU e l’interfaccia di una specifica periferica). Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni Ing. Giancarlo Iannizzotto 19 2 – Architettura del calcolatore Il Bus di Sistema • Il bus è sempre sotto il controllo della CPU che: – seleziona l'interconnessione da attivare – indica l'operazione da compiere • Le altre unità funzionali (slave) si attivano solo dopo essere state selezionate dalla CPU (master) Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni Ing. Giancarlo Iannizzotto 20 2 – Architettura del calcolatore Il Bus di Sistema • La durata di un'interconnessione dipende sia dalla velocità di trasmissione del bus, sia dalla velocità dei dispositivi ad esso connessi. • Le linee del bus vengono suddivise in tre categorie in base al tipo di informazione trasportata: Il bus di sistema consiste di un bus dati, un bus dati bus indirizzi e un bus controllo. bus indirizzi bus controllo Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni Ing. Giancarlo Iannizzotto 21 Tipi di Bus Bus dati: utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU e interfacce di I/O) Bus indirizzi: che identifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere Bus di controllo: in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura o lettura) Fondamenti di Informatica – Architettura Calcolatori 8 Architettura di Von Neumann Burks, Goldstein e Von Neumann sono stati i primi a proporre che il codice del programma potesse essere memorizzato nella stessa memoria dei dati Indirizzi CPU Dati Memoria Controllo Memoria indifferenziata per dati o istruzioni Solo l'interpretazione da parte di CPU stabilisce se una data configurazione di bit è da riguardarsi come un dato o come un'istruzione Fondamenti di Informatica – Architettura Calcolatori 9 John Von Neumann (1903-1957) Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Organizzazione Bus indirizzi: origina dalla CPU e contiene gli indirizzi della cella di memoria da leggere/scrivere Bus controlli: comandi della CPU, risposte, indicatori di stato Bus Dati Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Memoria centrale PDF created with pdfFactory trial version www.pdffactory.com Memorie RAM e memorie ROM o Le memorie RAM (random access memory) n possono essere accedute sia in lettura che in scrittura n sono volatili (i dati memorizzati vengono persi allo spegnimento del calcolatore) n sono usate per memorizzare dati e programmi PDF created with pdfFactory trial version www.pdffactory.com Memoria centrale La memoria è la componente del calcolatore in cui vengono immagazzinati e da cui vengono acceduti i dati e i programmi n la memoria centrale (o principale ) è la memoria che può essere acceduta direttamente dal processore Una memoria n si compone di celle (o locazioni ) n ogni cella di memoria è in grado di memorizzare una parola di memoria (ovvero, un sequenza di bit di lunghezza fissata) n ogni cella è caratterizzata da l un indirizzo , che è un numero che identifica la cella e ne consente l’accesso l un valore , che è la sequenza di bit memorizzata dalla cella n fornisce le operazioni di lettura e scrittura 27 Architettura dei calcolatori Struttura di una memoria centrale La struttura semplificata di una memoria centrale 128 celle di memoria di 16 bit ciascuna bus indirizzi 0 1 1 1 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 cella selezionata leggi/scrivi bus di controllo 28 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 bus dati Architettura dei calcolatori indirizzo della cella 00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 ........ ........ ........ ........ 01111000 01111001 01111010 01111011 01111100 01111101 01111110 01111111 parola letta o da scrivere 2 – Architettura del calcolatore La Memoria Centrale • E’ volatile; esistono però anche memorie ROM, PROM, EPROM... • E’ indirizzabile direttamente tramite il registro indirizzi di memoria (MAR), che si trova nella CPU • E’ estendibile in relazione al numero di bit dedicati all’indirizzamento • è copiabile tramite il registro dati di memoria (MDR) Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni Ing. Giancarlo Iannizzotto 17 2 – Architettura del calcolatore Parametri caratteristici della memoria • Capacità: quantità di informazione che può Capacità essere immagazzinata. Si esprime in numero di byte. • Tempo di accesso: tempo necessario all' Tempo di accesso accesso in lettura o in scrittura, misurato dall'istante in cui si richiede di accedere all'unità di informazione all'istante in cui questa è disponibile (centinaia o decine di nanosecondi, 1ns=10E­9s) Corso di Fondamenti di Informatica 1 per Ingegneria Informatica e delle Telecomunicazioni Ing. Giancarlo Iannizzotto 18 Caratteristiche delle memorie centrali Le caratteristiche principali di una memoria centrale n la capacità l il numero di bit che possono essere memorizzati, misurati in byte (e multipli del byte) 10 byte = 1024 byte l 1Kbyte indica 2 20 byte = 1024 Kbyte = 1 048 576 byte l 1Mbyte indica 2 30 byte = 1024 Mbyte = 1 073 741 824 l 1Gbyte indica 2 byte n la velocità di accesso l misura la velocità di esecuzione delle operazioni di lettura/scrittura n la volatilità l le memorie RAM (random access memory) possono essere sia lette che scritte, ma i dati memorizzati vengono persi allo spegnimento del calcolatore l le memorie ROM (read only memory) possono essere solo lette, in cui i dati sono memorizzati in modo permanente 29 Architettura dei calcolatori Dispositivi fisici utilizzati per la memoria centrale • RAM: Random Access Memory (ad accesso casuale): su di essa si possono svolgere operazioni sia di lettura che di scrittura. • ROM: Read Only Memory (a sola lettura): non volatili e non scrivibili; in esse vengono contenuti i dati e programmi per inizializzare il sistema. • PROM: Programmable ROM. Si possono scrivere soltanto una volta, mediante particolari apparecchi (detti programmatori di ROM). • EPROM = Erasable-programmable ROM (si cancellano sottoponendole a raggi ultravioletti). + Firmware : e‘ costituito dal software memorizzato nelle ROM (codice microprogrammato). FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 7 L’Unità Centrale di Elaborazione (CPU) Fondamenti di Informatica – Architettura Calcolatori 10 Caratteristiche dei microprocessori Le caratteristiche principali di un microprocessore n repertorio di istruzioni l le istruzioni del linguaggio macchina del processore n velocità (misurata come frequenza del clock) l la frequenza del clock misura la durata del ciclo macchina, che è l’unità di tempo all’interno del processore l va osservato che l’esecuzione di ciascuna istruzione richiede solitamente più cicli macchina n ampiezza del bus l numero di bit nel bus interno del processore n co-processore l i moderni processori sono integrati a co-processori specializzati (ad esempio, il co-processore matematico) n cache l una memoria veloce locale al processore, che consente un’accelerazione nell’esecuzione dei programmi 26 Architettura dei calcolatori Elementi di una CPU Unità di controllo Legge le istruzioni dalla memoria e ne determina il tipo Unità aritmetico-logica Esegue le operazioni necessarie per eseguire le istruzioni Registri Memoria ad alta velocità usata per risultati temporanei Determina il parallelismo della CPU Esistono registri generici e registri specifici Program Counter (PC) Instruction Register (IR) … Fondamenti di Informatica – Architettura Calcolatori 11 Struttura di una unità centrale di elaborazione La struttura semplificata di una unità centrale di elaborazione e dei suoi collegamenti con le altre unità funzionali leggi scrivi PC bus controllo IR memoria centrale o bus indirizzi registro registro ... MDR 24 PSW MAR periferiche bus dati unità di controllo registro stato ALU esegui operazione unità centrale di elaborazione Architettura dei calcolatori Registri L’unità centrale di elaborazione contiene un numero limitato di celle di memoria (chiamate registri ) con scopi specifici n registro contatore delle istruzioni (PC, program counter) l indirizzo della prossima istruzione da eseguire n registro delle istruzioni (IR, instruction register) l l’istruzione che deve essere eseguita (codificata) n registro di indirizzamento della memoria (MAR) l indirizzo della cella di memoria che deve essere acceduta o memorizzata n registro dati di memoria (MDR) l dato che è stato acceduto o che deve essere memorizzato n parola di stato del processore (PSW) l contiene informazioni, opportunamente codificate, circa l’esito dell’ultima istruzione che è stata eseguita n altri registri, utilizzati ad esempio per la memorizzazione degli operandi e del risultato di una operazione 25 Architettura dei calcolatori Tre Tipologie di Istruzioni Istruzioni Aritmetico Logiche (Elaborazione dati) Somma, sottrazione, divisione, … And, Or, Xor, … Maggiore, minore, uguale, maggiore uguale, … Controllo del flusso delle istruzioni Sequenza Selezione Ciclo a condizione iniziale, a condizione finale, … Trasferimento di informazione Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di I/O Fondamenti di Informatica – Architettura Calcolatori 12 Struttura del “data path” Registri Registri di ingresso all’ALU Registro di uscita dell’ALU B A + B A ALU B A + B A Bus di ingresso all’ALU Fondamenti di Informatica – Architettura Calcolatori 13 Esecuzione delle Istruzioni Ciclo Fetch-Decode-Execute Prendi l’istruzione corrente dalla memoria e mettila nel registro istruzioni (IR) [Fetch] Incrementa il program counter (PC) in modo che contenga l’indirizzo dell’istruzione successiva Determina il tipo dell’istruzione corrente [Decodifica] Se l’istruzione usa una parola in memoria determina dove si trova Carica la parola, se necessario, in un registro della CPU Esegui l’istruzione [Execute] Torna al punto 1. Fondamenti di Informatica – Architettura Calcolatori 14 Esempio: Somma di due registri Fase di Fetch (1 di 2) Bus Controllo Leggi Scrivi Unità di controllo PC Bus Indirizzi Dato Bus Dati M A R M D R Registro Registro ... Registro Operazione Indirizzo PSW Esegui IR stato Memoria centrale o periferiche ALU Unità centrale Fondamenti di Informatica – Architettura Calcolatori 16 Esempio: Somma di due registri Fase di Fetch (2 di 2) Bus Controllo Leggi Scrivi Unità di controllo PC Bus Indirizzi Dato Bus Dati M A R M D R Registro Registro ... Registro Operazione Indirizzo PSW Esegui IR stato Memoria centrale o periferiche ALU Unità centrale Fondamenti di Informatica – Architettura Calcolatori 17 Esempio: Somma tra due registri Decodifica Bus Controllo Leggi Scrivi Unità di controllo PC Bus Indirizzi Dato Bus Dati M A R M D R Registro Registro ... Registro Operazione Indirizzo PSW Esegui IR stato Memoria centrale o periferiche ALU Unità centrale Fondamenti di Informatica – Architettura Calcolatori 18 Esempio: Somma tra due registri Esecuzione Bus Controllo Leggi Scrivi Unità di controllo PC Bus Indirizzi Dato Bus Dati M A R M D R Registro Registro ... Registro Operazione Indirizzo PSW Esegui IR stato Memoria centrale o periferiche ALU Unità centrale Fondamenti di Informatica – Architettura Calcolatori 19 La codifica delle istruzioni (Linguaggio assemblativo) LD R1, Var ; (forma compatta) R1 M[Var] ADD Rd, Rs1, Rs2 ; Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Rd Rs1 + Rs2 Copyright © 2009 – The McGraw-Hill Companies srl La codifica delle istruzioni Rappresentazione binaria Codice operativo su 6 bit: LD -> 100011 Id. Registro su 5 bit: R1 -> 00001 Indirizzo di memoria su 21 bit -> 0 0000 0000 0011 1111 1100 LD R1, Var -> 10 0011 0 0001 0 0000 0000 0011 1111 1100 Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl La codifica delle istruzioni Rappresentazione binaria di ADD R7, R10, R3 Codice operativo su 6 bit: ADD -> 000101 Id. Registro su 5 bit: R7 -> 00111, R10 -> 01010, R3 -> 00011 I restanti 11 bit sono inutilizzati ADD R7, R10, R3 -> 00 0101 0 1010 0 0011 0 0111 xxxxxxxxxxx Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Sequenze di istruzioni in memoria Lo statement a = b + c si traduce come: LD R2, B ;B indirizzo a cui è allocata la parola b LD R3, C ;C indirizzo a cui è allocata la parola c ADD R1, R2, R3 ST A, R1 ;A indirizzo a cui è allocata la parola a Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl La CPU UC: responsabile dell’esecuzione delle istruzioni: - Legge le istruzioni dalla memoria - interpreta il OP e lo trasforma in sequenze temporizzate di comandi alla OU e/o alla memoria / dispositivi di I/O Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl La CPU OU: esegue le manipolazioni dell’informazione: - Legge i dati dalla memoria usando registri locali - esegue i comandi della UC sui dati acquisiti attraverso la ALU (rete che esegue operazioni logiche e aritmetiche) - fornisce alla UC informazioni intermedie della elaborazione (condizioni) - produce dati in uscita (memoria – I/O) Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl La CPU Il funzionamento della CPU è scandito dal clock. Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl La CPU Macrofasi del processo di elaborazione di una istruzione Fetch: -viene letta l’istruzione contenuta nella cella indirizzata dal PC (registro Program Counter) -Viene decodificata l’istruzione per pilotare la sua esecuzione Execute: - Viene eseguita l’istruzione Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl La CPU Macrofasi del processo di elaborazione di una istruzione Es. I (LD, R2, B) a)La UC comanda la lettura della istruzione (parola) presente nell’indirizzo di Memoria contenuto nel PC (registro della CPU che contiene l’indirizzo (puntatore) dell’istruzione successiva da eseguire). a)In base al OP (LD) la UC pilota la OU alla lettura della parola nell’indirizzo B in memoria; la OU riceve il dato e lo memorizza nel suo registro R2 b)Il PC viene incrementato di 4 per puntare alla instruzione successiva. Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Parti componenti la CPU PC (Program Counter) ALU (Arithmetic and Logic Unit): rete combinatoria IR (Instruction Register) usato per contenere l’istruzione in corso di esecuzione viene caricato nella fase di fetch e rappresenta l’ingresso che detrmina la azioni svolte nella fase di esecuzione. General Purpose Registers R1, R2, .. , Rn impiegati per contenere i dati su cui l’ALU esegue le proprie operazioni MAR (Memory Address Register) deputato a contenere l’indirizzo della locazione di memoria da leggere o scrivere. La sua uscita è sul bus indirizzi e viene abilitata durante le operazioni di lettura/scrittura DTR (Data Transfer Register) registro attraverso il quale viene scambiata l’informazione fra la memoria e la CPU Calcolatori elettronici – Architettura e organizzazione Giacomo Bucci Copyright © 2009 – The McGraw-Hill Companies srl Frequenza di clock La frequenza con cui si eseguono i cicli di esecuzione è scandita dal clock (orologio interno) n ad ogni impulso di clock l’unità di controllo esegue un ciclo di esecuzione n la velocità di elaborazione di un microprocessore dipende dalla frequenza del suo clock (300, 400,... MHz) (es.: 300 milioni di cicli al secondo). Attualmente si parla di GHz. PDF created with pdfFactory trial version www.pdffactory.com Periferiche e interfacce di ingresso-uscita Un calcolatore può essere collegato a diversi dispositivi di ingresso e/o uscita (chiamati periferiche ) n ad esempio, la tastiera, il mouse, lo schermo, le stampanti, il modem n anche le memorie di massa (ad esempio, le unità disco e il lettore di CD- ROM) sono considerati periferiche Nella macchina di Von Neumann, le periferiche non fanno parte del calcolatore n ogni periferica viene controllata mediante un’opportuna interfaccia n una interfaccia ha il compito di tradurre i segnali interni del calcolatore in un formato comprensibile alla periferica stessa, e viceversa 18 Architettura dei calcolatori Memorie secondarie Una memoria secondaria ha le seguenti caratteristiche fondamentali, che la differenziano dalla memoria centrale n non volatilità l i dati memorizzati non vengono persi allo spegnimento del calcolatore (perché memorizzati in forma magnetica o ottica e non elettronica) n grande capacità l una unità di memoria secondaria ha capacità maggiore (anche di diversi ordini di grandezza) rispetto alla memoria centrale n bassi costi l il costo per bit di una memoria secondaria è minore (di diversi ordini di grandezza) rispetto alla memoria centrale 30 Architettura dei calcolatori Memorie secondarie Altre caratteristiche delle memorie secondarie rispetto alle memorie centrali n minore velocità di accesso l i tempi di accesso a una memoria secondaria sono maggiori (di qualche ordine di grandezza) rispetto alla memoria principale n i dati di una memoria secondaria per essere acceduti dal processore devono comunque transitare nella memoria centrale In pratica n la memoria secondaria memorizza tutti i programmi e di dati del calcolatore n la memoria centrale memorizza i programmi in esecuzione e i dati necessari per la loro esecuzione 31 Architettura dei calcolatori Dischi magnetici Un disco magnetico (disco fisso) è composto da uno o più piatti di alluminio rotanti ricoperti di materiale magnetico e da testine n una testina permette la scrittura e lettura di bit su un disco, memorizzati sotto forma di stati di polarizzazione (positiva e negativa) In un disco magnetico n ciascun piatto è composto da due superfici (facce) n ciascuna faccia è suddivisa in tracce (circolari) e settori (a spicchio) l un cilindro è l’insieme delle tracce in una data posizione radiale n i settori sono le unità logiche di memorizzazione l la capacità di un settore è tipicamente di 512 byte n l’indirizzo di un settore è dato dalle seguenti informazioni l cilindro, superficie, settore 32 Architettura dei calcolatori Dischi magnetici Esempio di organizzazione fisica di un disco magnetico 33 Architettura dei calcolatori Memoria secondaria (o di massa) La memoria secondaria si basa su dispositivi per la memorizzazione di grandi masse di dati. I dati memorizzati in questo tipo di memoria sopravvivono all’esecuzione dei programmi (persistenti ). La capacità (dimensione della memoria) varia molto da dispositivo a dispositivo: dalle decine di mega-byte (106 byte) ai giga-byte (109 byte) o tera-byte (1012 byte). Anche la velocità di accesso/trasferimento varia da dispositivo a dispositivo (comunque molto superiore a quella della memoria centrale). Taccesso(memoria centrale) ≅ Taccesso(dischi magnetici) ≅ 10-20 msec Taccesso (dischetti) ≅ 100 nsec 100 msec (1 msec = 10-3 sec; 1 nsec = 10-9 sec) FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 8 Dispositivi di memoria di massa Due classi fondamentali in base al metodo di accesso consentito: 1. ad accesso sequenziale (ad esempio, nastri): per cercare un dato è necessario accedere a tutti quelli che lo precedono sul dispositivo; 2. ad accesso diretto ai dati (ad esempio, dischi). E` possibile accedere direttamente a qualunque dato memorizzato, grazie all’indirizzamento di porzioni (blocchi) del dispositivo. Nel caso di dispositivi magnetici (nastri o dischi) l’informazione è presente in memoria come stato di polarizzazione magnetica, che può essere positivo o negativo (codifica binaria). FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 9 Dischi magnetici traccia 0 traccia 100 traccia 200 Settore Un disco e‘ costituito da un certo numero di piatti di materiale magnetizzabile con due superfici che ruotano attorno ad un perno centrale. Ciascuna superficie ha una serie di cerchi concentrici o tracce e viene suddivisa in spicchi di ugual grandezza chiamati settori. Tutte le tracce equidistanti dal centro formano un cilindro. La testina si sposta longitudinalmente lungo le tracce. I dati sono scritti occupando posizioni successive lungo le tracce. Corrispondono ad uno stato di polarizzazione (positiva o negativa) del materiale magnetizzabile che costituisce i dischi. Ogni blocco di ingresso/uscita è selezionabile mediante la terna <superficie, traccia, settore> (indirizzo). FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 10 Funzionamento copia il programma in RAM programma programma CPU RAM HARD DISK PDF created with pdfFactory trial version www.pdffactory.com esegui le istruzioni del programma Dispositivi di input/output (I/O, PERIFERICHE) o Terminali. Tastiera + Video: n risoluzione, dimensione in pollici,… o Stampanti: n ad aghi, a getto, d’inchiostro, laser,… o Modem: per collegarsi in rete o Scanner: per digitalizzare le immagini PDF created with pdfFactory trial version www.pdffactory.com Dispositivi di Input Tastiera Mouse trackball Tavoletta grafica Microfono Touch pad Webcam Penna ottica Scanner Fotocam. Dig. Schermi touch screen PDF created with pdfFactory trial version www.pdffactory.com Joystick Dispositivi di Output Plotter Monitor Stampante Videoproiettore Casse acustiche Cuffie PDF created with pdfFactory trial version www.pdffactory.com Personal Computer • Memoria di massa generalmente composta da disco rigido (hard disk) fisso e dischetti (floppy disk) estraibili. • L'informazione nella memoria di massa e' organizzata in archivi (o file) caratterizzati da un nome. • Varie classi di PC in base al tipo di processore (Intel, Macintosh, etc.) FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 14 Personal Computer “IBM-compatibili”: hanno processori della famiglia Intel 80x86 : 8086 80286 80386 80486 80586 (pentium) ... prestazioni • • le prestazioni sono influenzate anche da altri parametri : - frequenza del clock - dimensione RAM - velocita` del BUS - ... unita` di misura delle prestazioni: MIPS (migliaia di istruzioni per secondo) Mflops (migliaia di operazioni floating point per secondo) FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 15 Altri sistemi di calcolo Workstation: sistemi generalmente dedicati ad un utente, ma con capacita‘ di supportare piu‘ attivita‘ contemporanee. Prestazioni piu‘ elevate dei PC. Mini-calcolatori: Macchine capaci di servire decine contemporaneamente, collegati tramite terminali. di utenti Super-calcolatori: Hanno molti processori e grandi memorie di massa (centinaia o migliaia di terminali) + Possibilita‘ di connettere vari calcolatori di tipo anche diverso mediante una rete di interconnessione (Sistemi Distribuiti). FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 16 Reti locali: collegano elaboratori fisicamente vicini (nello stesso ufficio o stabilimento). L’obiettivo e` la condivisione di risorse: Stampante di qualita‘ Stampante ad aghi Disk server Bus di rete Workstation Workstation Workstation Workstation Workstation Reti geografiche: collegano elaboratori distribuiti su un’area geografica di dimensioni estese (anche intercontinentali). Rete geografica printer Host Host terminali remoti PC mini Host Rete locale Linea telefonica Evoluzione e complessità' sia dell'hardware che del software (protocolli di collegamento). FONDAMENTI DI INFORMATICA STRUTTURA DEI CALCOLATORI 17