590 likes | 773 Views
Informatica e automazione. Automatizzare i calcoli matematici Automatizzare funzioni gestionali ripetitive Automazione di fabbrica Supporto all’attività personale Embedded systems Comunicazione tra utenti Accesso alla rete. Informatica e automazione. Come e’ fatta la macchina
E N D
Informatica e automazione • Automatizzare i calcoli matematici • Automatizzare funzioni gestionali ripetitive • Automazione di fabbrica • Supporto all’attività personale • Embedded systems • Comunicazione tra utenti • Accesso alla rete
Informatica e automazione • Come e’ fatta la macchina • Il software per poterla utilizzare • sistema operativo • linguaggi di programmazione • strumenti • office • Word • Excel
Informatica e automazione • Come e’ fatta la macchina • Il software per poterla utilizzare • sistema operativo • linguaggi di programmazione • Strumenti • office • Word: elaborazione di testi • Excel: foglio elettronico che fornisce la possibilita’ di creare tabelle dinamichei n cui compiere operazioni e creare relazioni tra i dati. Permette di organizzare dati secondo criteri personali, trasformarli in grafici e diagrammi, costruire modelli previsionali.
Tipologie di computer Tipo Prezzo (€) Esempio Embedded computer 10 Orologi, elettrodomestici Consolle 100 Playstation PC 1000 Desktop Server 10000 Server di rete Cluster di Workstation 100000 Elaboratore parallelo Mainframe 1000000 Elaborazione dati bancari Supercomputer 10000000 Previsioni meteo
Architettura dei computer • In un computer possiamo distinguere quattro unità funzionali: • il processore • la memoria principale o centrale • le memorie secondarie o di massa • i dispositivi di input/output e un collegamento tra le diverse parti: il bus • Il processore e la memoria principale sono le due componenti del computer che costituiscono l’unità centrale • Il processore, la memoria principale, i bus, icontroller di alcuni dispositivi di input/output sono contenute nella scheda madre: un grosso circuito stampato di forma rettangolare
Unità centrale Memoria Processore principale (centrale) Bus Controller Stampante Terminale Memorie di massa Periferiche di input/output (secondarie) Componenti principali di un computer
Il computer non lavora su elementi fisici, ma su un’entita’ astratta: l’informazione Piu’ precisamente il computer opera mediante la memorizzazione, l’elaborazione e la trasmissione di informazioni sotto forma di impulsi elettrici. Esso codifica tutte le informazioni in forma binaria, utilizzando cioe’ due soli simboli che si riferiscono a due stati elettrici fondamentali: assenza o presenza di corrente. L’unita’ fondamentale di informazione puo’ quindi avere solo due valori, indicati con 0 e 1, e viene chiamata bit (BInary digiT) Un raggruppamento di 8 bit viene chiamato byte
La memoria principale • Fornisce la capacità di “memorizzare” le informazioni • Può essere vista come una lunga sequenza di componenti elementari, ognuna delle quali può contenere un’unità di informazione (un bit) • Le componenti elementari sono aggregate tra di loro e formano delle strutture complesse dette PAROLE (otto bit formano un byte) • La memoria può essere vista come una sequenza di parole
0 1 2 3 4 N La memoria principale • Ciascuna parola è caratterizzata da un indirizzo • Gli indirizzi corrispondono all’ordinamento delle parole nella sequenza • Gli indirizzi sono numeri interi (partono da 0)
La memoria principale • Un altro nome con cui viene indicata la memoria principale è memoria RAM (Random Access Memory) • Questa definizione indica che il tempo di accesso ad una parola è lo stesso, indipendente dalla sua posizione in memoria • Le operazioni che un Processore può effettuare sulla memoria sono le operazioni di lettura e scrittura di informazioni nelle parole
La memoria principale • Una parola di memoria è, a seconda del tipo di computer, un aggregato di due, quattro o addirittura otto byte, sul quale si può operare come su un blocco unico • Per eseguire le operazioni di lettura e scrittura sulla memoria, si deve specificare l’indirizzo della parola su cui si vuole operare • L’indirizzo di una parola è un numero intero e quindi lo si può codificare in binario • Il numero di parole di memoria determina il numero di bit necessari a rappresentare l’indirizzo Spazio di indirizzamento
La memoria principale • Le dimensioni della memoria principale variano a seconda del tipo di computer e vengono espresse mediante le seguenti unità di misura: • 1 Kilobyte (KB) corrisponde a 1024 byte (210) • 1 Megabyte (MB) corrisponde a 1024 Kbyte (220 byte) • 1 Gigabyte (GB) corrisponde a 1024 Mbyte (230 byte) • 1 Terabyte (TB) corrisponde a 1024 Gbyte (240 byte) • Nei computer attuali le dimensioni tipiche della memoria principale vanno dai 16 ai 128 Mbyte
La memoria principale • Una parola di memoria è, a seconda del tipo di computer, un aggregato di due, quattro o addirittura otto byte, sul quale si può operare come su un blocco unico • Nei computer attuali le dimensioni tipiche delle parole di memoria vanno dai 2 agli 8 byte • Un altro aspetto che caratterizza la memoria è il tempo di accesso (tempo necessario per leggere o scrivere un’informazione in una parola)
Le memorie principali dei computer attuali sono molto veloci e i loro tempi di accesso sono di qualche decina di nanosecondi (1 ns = un miliardesimo di secondo) • La memoria principale perde ogni suo contenuto quando si interrompe l’alimentazione elettrica. Questa caratteristica viene chiamata volatilità • È quindi necessario per mantenere le informazioni (programmi e dati) avere altri tipi di memoria che conservano il contenuto anche senza alimentazione elettrica
Il Processore • Il processore è la componente dell’unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale • L’elaborazione avviene in accordo a sequenze di istruzioni (istruzioni macchina) • Il linguaggio in cui si scrivono queste istruzioni viene chiamato linguaggio macchina • Il ruolo del processore è quello di eseguire programmi in linguaggio macchina
La memoria contiene almeno due tipi di informazioni: • la sequenza di istruzioni che devono essere eseguite dal processore; • l’insieme di dati su cui tali istruzioni operano • Il processore è costituito da varie componenti che svolgono compiti differenti
REGISTRI Bus Interno Program Counter (PC) Registro di Stato (PS) Unità di Registro Istruzioni (RI) Controllo Registri Generali (8 o 16) Unità Aritmetico- Registro Indirizzi Memoria (RIM) Logica Registro Dati Memoria (RDM) Registro di Controllo (RC) Componenti di un processore
Il Processore: l’unità di controllo • L’Unità di Controllo (UC) si occupa di coordinare le diverse attività che vengono svolte all’interno del processore • Il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde l’esecuzione di una istruzione macchina • Ad ogni ciclo vengono svolte diverse attività controllate e coordinate dalla UC • si legge dalla memoria principale la prossima istruzione da eseguire; • si esegue l’istruzione
Il Processore: l’unità di controllo • La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock • Ad ogni impulso di clock la UC esegue un’istruzione macchina • La velocità di elaborazione di un processore dipende dalla frequenza del suo clock • I processori attuali hanno valori di frequenza di clock che arrivano fino a 800 MHz e, nei processori più recenti, a 2 GHz (rispettivamente 800 milioni e 2 miliardi di impulsi al secondo)
Il Processore: i registri • Il processore contiene un certo numero di registri, che sono unità di memoria estremamente veloci • Le dimensioni di un registro sono di pochi byte (2, 4) • I registri contengono delle informazioni di necessità immediata per il processore • Esistono due tipi di registri: • i registri speciali utilizzati dalla UC per scopi particolari; • i registri di uso generale (registri aritmetici)
I registri PC e RI • Il processore esegue ad ogni ciclo un’istruzione prelevata dalla RAM, l’indirizzo della parola da cui prelevare la prossima istruzione è mantenuto nel registro Program Counter: PC • La dimensione del PC deve essere uguale alla dimensione di un indirizzo di RAM • Il registro Registro delle Istruzioni (RI) contiene l’istruzione in esecuzione • La dimensione del registro RI deve essere uguale alla dimensione di una istruzione (solitamente una parole di memoria)
Il Processore: l’unità di controllo Le attività svolte dalla UC ad ogni ciclo di clock si possono ulteriormente dettagliare: • si legge dalla memoria principale l’ istruzione che si trova all’indirizzo indicato dal registro PC; • l’istruzione viene scritta nel registro RI • si modifica il valore del PC aumentandolo di 1 • l’UC decodifica l’ istruzione e individua la sequenza di azioni che devono essere svolte • si eseguono le azioni specificate dall’istruzione Fase di fetch Fase di execute
I registri RIM, RDM e RC I registri RIM, RDM e RC servono per leggere e scrivere dati in memoria principale; sono lo strumento di collegamento tra processore e RAM . RIM: Registro Indirizzi di Memoria RDM: Registro Dati di Memoria RC: Registro di Controllo
I registri RIM, RDM e RC • Le operazioni di lettura/scrittura richiedono di conoscere: • l’indirizzo della parola su cui si deve operare e, • - se si tratta di una scrittura, anche il dato da memorizzare • - se si tratta di una lettura, una posizione in cui trasferire il dato letto. Il registro degli indirizzi serve al primo scopo, il registro dei dati al secondo; il registro di controllo ha invece il compito di specificare se si tratta di lettura o di scrittura e di controllare il buon esito dell’operazione.
0 1 2 3 4 N RC Circuito di decodifica Circuito di decodifica RIM RDM
Per eseguire un’istruzione di scrittura di un dato xxx nella parola di memoria di indirizzo yyy, il processore: • mette yyy nel registro RIM • mette xxx nel registro RDM • mette il codice di scrittura nel registro RC • il dato xxx viene scritto nella parola di indirizzo yyy • Per eseguire un’istruzione di lettura di un dato contenuto nella parola di memoria di indirizzo yyy, il processore: • mette yyy nel registro RIM • mette il codice di lettura nel registro RC • il dato contenuto nella parola di indirizzo yyy viene copiato nel registro RDM
Tipologia della CPU • Ogni programma in esecuzione è composto da molteplici istruzioni. Ogni istruzione in linguaggio macchina è eseguita attraverso una o piu’ operazioni della CPU. • Esistono due tipi di CPU • CISC (Complete Instruction Set Computer) • RISC (Restricted Instruction Set Computer)
L’Unità Aritmetico-Logica • L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico • La ALU legge i dati contenuti nei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali • Vi sono circuiti in grado di eseguire la somma di due numeri binari contenuti in due registri e di depositare il risultato in un registro, circuiti in grado di eseguire il confronto tra due numeri … • In alcuni elaboratori oltre alla ALU si può avere un processore specializzato per effettuare operazioni matematiche particolari, il coprocessore matematico
Memoria cache • Nei processori più recenti alla RAM è affiancata la cache RAM: RAM molto veloce che contiene i dati e le istruzioni utilizzate più di frequente. • È di solito organizzata a due livelli: • la cache di primo livello (L1), racchiusa nel chip di silicio che ospita il processore, lavora alla sua stessa frequenza ed e’ la piu’ veloce, ma e’ molto costosa. • la cache di secondo livello o esterna (L2), e’ sulla scheda madre, un po’ piu’ lenta, ma meno costosa e, a differenza della cache L1 puo’ essere ampliata.
La memoria secondaria • La memoria principale non può essere troppo grande a causa del suo costo elevato • Non consente la memorizzazione permanente dei dati (volatilità) • Per questi motivi sono stati introdotti due tipi di memoria: • Memoria principale veloce, volatile, di dimensioni relativamente piccole; • Memoria secondaria, più lenta e meno costosa, con capacità di memorizzazione maggiore ed in grado di memorizzare i dati in modo permanente
La memoria secondaria • La memoria secondaria viene utilizzata per mantenere tutti i programmi e tutti i dati che possono essere utilizzati dal computer • La memoria secondaria viene anche detta memoria di massa • Quando si vuole eseguire un certo programma, questo dovrà essere copiato dalla memoria di massa a quella principale (caricamento)
La memoria secondaria • La memoria secondaria deve avere capacità di memorizzazione permanente e quindi per la sua realizzazione si utilizzano tecnologie basate sul magnetismo (dischi e nastri magnetici) o tecnologie basate sull'uso dei raggi laser (dischi ottici) • Nel primo caso si sfrutta l’esistenza di sostanze che possono essere magnetizzate. La magnetizzazione può essere di due tipi (positiva e negativa)
La memoria secondaria • La magnetizzazione è permanente fino a quando non viene modificata per effetto di un agente esterno • I due diversi tipi di magnetizzazione corrispondono alle due unità fondamentali di informazione (bit) • Le tecnologie dei dischi ottici sono completamente differenti e sono basate sull'uso di raggi laser • Il raggio laser è un particolare tipo di raggio luminoso estremamente focalizzato che può essere emesso in fasci di dimensioni molto ridotte
Caratteristiche dei vari tipi di memoria secondaria • I supporti di memoria di massa sono molto più lenti rispetto alla memoria principale (presenza di dispositivi meccanici) • Le memorie di massa hanno capacità di memorizzazione (dimensioni) molto maggiori di quelle delle tipiche memorie principali • Il processore non può utilizzare direttamente la memoria di massa per l'elaborazione dei dati • Il programma in esecuzione deve essere in memoria principale e quindi le informazioni devono essere trasferite dalla memoria secondaria a quella principale ogni volta che servono
Caratteristiche dei vari tipi di memoria secondaria • Nel caso della memoria principale si ha sempre l'accesso diretto ai dati, nel caso della memoria secondaria solo alcuni supporti consentono l'accesso diretto mentre altri supporti permettono solo l'accesso sequenziale • La memoria principale consente di indirizzare il singolo byte di informazione, nelle memorie di massa le informazioni sono organizzate in blocchi di dimensioni più grandi, di solito da 1 KByte in su
I dischi magnetici • I dischi magnetici sono i dispositivi di memoria secondaria più diffusi • Sono dei supporti di plastica o vinile, su cui è depositato del materiale magnetizzabile • Nel corso delle operazioni i dischi vengono mantenuti in rotazione a velocità costante e le informazioni vengono lette e scritte da testine del tutto simili a quelle utilizzate nelle cassette audio/video • Entrambi i lati di un disco possono essere sfruttati per memorizzare le informazioni
I dischi magnetici • I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una fetta di disco. I settori suddividono ogni traccia in porzioni di circonferenza dette blocchi (o record fisici) Traccia Blocco Testina
I dischi magnetici • La suddivisione della superficie di un disco in tracce e settori viene detta formattazione • Il blocco è dunque la minima unità indirizzabile in un disco magnetico e il suo indirizzo è dato da una coppia di numeri che rappresentano il numero della traccia e il numero del settore • I dischi magnetici consentono l'accesso diretto in quanto è possibile posizionare direttamente la testina su un qualunque blocco senza dover leggere quelli precedenti
I dischi magnetici • Per effettuare un'operazione di lettura (scrittura) su un blocco è necessario che la testina raggiunga l'indirizzo desiderato (la testina è ferma ed è il disco che si muove) • Il tempo di accesso alle informazioni sul disco è dato dalla somma di tre tempi dovuti a: • spostamento della testina in senso radiale fino a raggiungere la traccia desiderata (seek time); • attesa che il settore desiderato si trovi a passare sotto la testina; tale tempo dipende dalla velocità di rotazione del disco (latency time); • tempo di lettura vero e proprio dell'informazione
I dischi magnetici • Una classificazione dei dischi magnetici è quella che distingue tra hard disk e floppy disk • Gli hard disk sono dei dischi che vengono utilizzati come supporto di memoria secondaria fisso all'interno dell'elaboratore • Sono generalmente racchiusi in contenitori sigillati in modo da evitare qualunque contatto con la polvere • I dischi rigidi hanno capacità di memorizzazione elevata, si va da dischi da circa 100 MByte per i personal computer più semplici, fino a dischi da uno o più GByte (10 - 80 GB, tempo d’accesso 10 ms)
I dischi magnetici • I floppy disk (dischetti flessibili) sono supporti rimovibili • Ogni elaboratore è dotato di almeno una unità di lettura-scrittura detta drive, all'interno della quale l'utente può inserire i propri dischetti • I floppy disk sono di materiale plastico e ricoperti da un piccolo stato di sostanza magnetizzabile, devono essere tenuti lontano da campi magnetici • I tempi di accesso sono più alti di quelli dei dischi rigidi • Oggi sono comuni floppy disk da 3.5" (a bassa densità DS/DD o ad alta densità DS/HD) (capacità di memorizzazione 1440 KB)
I dischi ottici • I dischi ottici sono basati sull’uso di un raggio laser per operazioni di lettura • Quasi tutte le unità per dischi ottici consentono solamente operazioni di lettura poiché la scrittura è un'operazione complicata, che richiede delle modifiche fisiche del disco. • Quando le unità consentono la scrittura, i dischi ottici generalmente possono essere scritti una sola volta perché le modifiche fisiche che avvengono durante la fase di scrittura sono irreversibili
I dischi ottici • I dischi ottici vengono usati solitamente per la distribuzione dei programmi e come archivi di informazioni che non devono essere modificate • I dischi ottici hanno una capacità di memorizzazione superiore rispetto ai dischi magnetici • Le dimensioni tipiche per i dischi ottici utilizzati oggi vanno dai 500 MByte in su, fino a uno o più GByte • I dischi ottici hanno costo inferiore e sono molto più affidabili e difficili da rovinare
registri 8 byte cache L1 64 KB cache L2 512 KB memoria centrale 64MB60 ns hard disk 10 GB 10 ms altre memorie di massa non limitata
Gerarchia di memorie dimensione tempi d’accesso registri cache L1 cache L2 memoria centrale hard disk altre memorie di massa costo
I dispositivi di input/output • I dispositivi di input/output (anche detti periferiche), permettono di realizzare l'interazione tra l'uomo e la macchina • La loro funzione primaria è quella di consentire l'immissione dei dati all'interno dell'elaboratore (input), o l'uscita dei dati dall'elaboratore (output) • Solitamente hanno limitata autonomia rispetto al processore centrale (sono completamente gestiti, controllati e coordinati dal processore)
I dispositivi di input/output • Una caratteristica comune a tutti i dispositivi è quella di operare in modo asincrono rispetto al processore • Consideriamo una tastiera che produce dei dati di input. Il processore non è in grado di prevedere e di controllare il momento in cui un dato di input sarà a disposizione • Allo stesso modo, il processore non può prevedere il momento in cui un dispositivo in output avrà terminato di produrre i dati in uscita • Sono pertanto necessarie delle forme di sincronizzazione tra i dispositivi e il processore
I dispositivi di input/output • Un dispositivo di input deve avvertire il processore quando un dato di input è disponibile • Un dispositivo di output deve avvertire il processore quando ha terminato di produrre dati in uscita • Le operazioni di sincronizzazione delle attività sono fondamentali nell'interazione tra il processore e i dispositivi • I dispositivi che hanno terminato un'operazione inviano al processore un segnale, detto interrupt, per richiedere l'attenzione del processore stesso
I dispositivi di input/output • Ad ogni ciclo di clock, l'unità di controllo, prima di iniziare l'esecuzione della prossima istruzione del programma in corso, verifica se è arrivato un segnale di interrupt da parte di qualche dispositivo • Se non c'è nessun segnale di interrupt il processore prosegue normalmente, altrimenti sospende per un attimo l'esecuzione del programma in esecuzione ed esegue le operazioni richieste dal dispositivo • I vari dispositivi di input/output sono collegati al processore attraverso un bus, su ognuno dei quali viene inserito una componente hardware, il controller, che gestisce la comunicazione con il dispositivo