introduzione alla programmazione - math.unipd.itaceccato/lezione-19-gennaio-2011.pdf ·...
TRANSCRIPT
Anno accademico 2010-2011Anno accademico 2010-201111
Introduzione alla programmazioneIntroduzione alla programmazione
22Anno accademico 2010-2011Anno accademico 2010-2011
22
Introduzione alla ProgrammazioneIntroduzione alla Programmazione
• Docente: Alessia CeccatoDocente: Alessia Ceccato• Mail: Mail: [email protected]@interfree.it• Ricevimento: a fine lezione o su Ricevimento: a fine lezione o su
appuntamentoappuntamento
33Anno accademico 2010-2011Anno accademico 2010-2011
33
Introduzione alla ProgrammazioneIntroduzione alla Programmazione
• Orario lezioni:Orario lezioni:
• Martedì dalle 14:00 alle 17:00 Martedì dalle 14:00 alle 17:00
presso il laboratorio di informatica P140 presso il laboratorio di informatica P140 del Paolottidel Paolotti
44Anno accademico 2010-2011Anno accademico 2010-2011
44
Programma del corso:Programma del corso:
• La struttura del calcolatoreLa struttura del calcolatore L’architettura a BUSL’architettura a BUS La CPULa CPU La gerarchia di memorieLa gerarchia di memorie
La memoria centraleLa memoria centraleLa memoria secondariaLa memoria secondaria
I dispositivi di I/OI dispositivi di I/O
• Circuiti logici e sistema binarioCircuiti logici e sistema binario• La rappresentazione dell'informazioneLa rappresentazione dell'informazione
55Anno accademico 2010-2011Anno accademico 2010-2011
55
Programma del corso:Programma del corso:• Il linguaggio macchina e assemblerIl linguaggio macchina e assembler
• Esempi di programmi in assemblerEsempi di programmi in assembler
• Il sistema operativoIl sistema operativo
• Un esempio di SO: LinuxUn esempio di SO: Linux
• Le retiLe reti
• Cenni sul linguaggio di programmazione CCenni sul linguaggio di programmazione C
• Esempi di programmi in CEsempi di programmi in C
66Anno accademico 2010-2011Anno accademico 2010-2011
Materiale del corso:Materiale del corso:
• Fondamenti di Informatica Fondamenti di Informatica
(lib progetto- Filé,Colussi,Rossi)(lib progetto- Filé,Colussi,Rossi)
• Dispense del corso scaricabili dalla pagina:Dispense del corso scaricabili dalla pagina:
http://www.math.unipd.it/~aceccatohttp://www.math.unipd.it/~aceccato
77Anno accademico 2010-2011Anno accademico 2010-2011
Modalità di esame
• La prova d'esame verrà svolta in La prova d'esame verrà svolta in laboratoriolaboratorio
• Divisa in due parti:Divisa in due parti:– Una parte teorica con domande a risposta Una parte teorica con domande a risposta
apertaaperta– Una parte pratica di creazione di un Una parte pratica di creazione di un
semplice programma in assembler e in Csemplice programma in assembler e in C
88Anno accademico 2010-2011Anno accademico 2010-2011
Modalità di esame
Valutazione:Valutazione:
• Per ottenere l'idoneità entrambe le parti Per ottenere l'idoneità entrambe le parti dell'elaborato dovranno essere dell'elaborato dovranno essere sufficienti!!!sufficienti!!!
99Anno accademico 2010-2011Anno accademico 2010-2011
Il laboratorio informatico è diviso in più aule; una tabella che mostra l'occupazione di ogni aula viene aggiornata periodicamente ed affissa sulla porta di ciascuna aula.Infatti l'accesso agli studenti è libero durante l'orario di apertura a condizione che l'aula non sia occupata per una lezione.Per accedere ai PC delle aule bisogna essere in possesso di un account valido, cioè di un nome utente (login) e password.
Dov'è il laboratorioAl terzo piamo del Paolotti.
1010Anno accademico 2010-2011Anno accademico 2010-2011
Come richiedere l'accountOgni studente iscritto ad uno dei corsi di laurea in informatica o in matematica può richiede un account per accedere al laboratorio informatico. Ci sono due modi per fare questa richiesta:1) utilizzando un PC dedicato presente in laboratorio (seguire le indicazioni presenti nell'atrio del laboratorio)2) accedendo con un qualsiasi computer collegato ad internet al sito http://iscrizioni.math.unipd.it In entrambi i casi viene richiesto di compilare un modulo in cui specificare cognome, nomematricola e corso di studi; seguire attentamente le istruzioni riportate prima di iniziare la compilazione.Nota: gli studenti Erasmus o in trasferimento, sprovvisti del numero di matricola, devono scegliere come corso di studi Erasmus oppure In Trasferimento e lasciare vuoto il campo matricola.Dopo due o tre giorni dall'inoltro della richiesta di account, lo studente deve passare presso l'ufficio del laboratorio informatico provvisto di LIBRETTO DI ISCRIZIONE (NON BASTA IL SOLO BADGE!) per ritirate i dati del proprio account.
1111Anno accademico 2010-2011Anno accademico 2010-2011
Cose da sapere per usare i PCOgni PC ha installati i sistemi operativi Linux e Windows 2000. La scelta di quale sistema usare viene proposta all'avvio del computer (attenzione: ci sono pochi secondi per fare la scelta!).IMPORTANTE: per riavviare un computer NON USARE IL PULSANTE DI SPEGNIMENTO ma usare la procedura propria di ogni sistema operativo (es. su Linux: cliccare il menù applicazioni escegliere shutdown). L'uso dei PC, oltre ad essere consentito solo quando non ci sono lezioni in corso, è anche vincolatodal fatto che ogni studente ha a disposizione una quota, cioè:– uno spazio disco limitato– un tempo settimanale fissato per utilizzare i PC– un numero limitato di stampe settimanaliDeroghe a tali limitazioni possono essere richieste solo in casi speciali (es. studenti in tesi e previa richiesta del relatore).
1212Anno accademico 2010-2011Anno accademico 2010-2011
1313
• InformaticaInformatica fusione delle parole informazioneinformazione e automaticaautomatica l’insieme delle discipline che studiano gli strumenti per l’elaborazione automatica dell’informazione e i metodi per un loro uso corretto ed efficace
• L’informatica è la scienza della rappresentazione e L’informatica è la scienza della rappresentazione e dell’elaborazione dell’informazionedell’elaborazione dell’informazione L’accento sull’ “informazione” fornisce una spiegazione del
perché l’informatica sia ormai parte integrante di molte attività umane: laddove deve essere gestita dell’informazione, l’informatica è un valido strumento di supporto
Il termine “scienza” sottolinea il fatto che, nell’informatica, l’elaborazione dell’informazione avviene in maniera sistematica e rigorosa, e pertanto può essere automatizzata
Che cos’è l’informatica Che cos’è l’informatica −− 1 1
1313Anno accademico 2010-2011Anno accademico 2010-2011
1414
• L’informatica non è la scienza dei calcolatori elettronici: il calcolatore è lo strumento che la rende “operativa”
• L’elaboratoreelaboratore (computer, calcolatore) è un’apparecchiatura digitaledigitale, elettronicaelettronica ed automaticaautomatica capace di effettuare trasformazioni sui dati: Digitale:Digitale: i dati sono rappresentati mediante un alfabeto finito,
costituito da cifre, digitdigit, che ne permette il trattamento mediante regole matematiche
Elettronica: Elettronica: realizzazione tramite tecnologie di tipo elettronico Automatica: Automatica: capacità di eseguire una successione di
operazioni senza interventi esterni• “La disumanità del computer sta nel fatto che, una volta
programmato e messo in funzione, si comporta in maniera perfettamente onesta.” (Isaac Asimov)
Che cos’è l’informatica Che cos’è l’informatica −− 2 2
1414Anno accademico 2010-2011Anno accademico 2010-2011
1515
• L’informatica è lo studio sistematico degli algoritmi che L’informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l’informazione: la loro teoria, descrivono e trasformano l’informazione: la loro teoria, analisi, progetto, efficienza, realizzazione (ACM, Association analisi, progetto, efficienza, realizzazione (ACM, Association for Computing Machinery)for Computing Machinery)
• NotaNota
È possibile svolgere concettualmente un’attività di tipo informatico senza l’ausilio del calcolatore, per esempio nel progettare ed applicare regole precise per svolgere operazioni aritmetiche con carta e penna; l’elaboratore, tuttavia, è uno strumento di calcolo potente, che permette la gestione di quantità di informazione altrimenti intrattabili
Ancora sull’informatica…Ancora sull’informatica…
1515Anno accademico 2010-2011Anno accademico 2010-2011
1616
• Tramite un elaboratore si possono risolvere problemi di varia natura: emissione di certificati anagrafici, gestione dei c/c di un istituto di credito, prenotazioni aeree…
• Il problema deve essere formulato in modo opportuno, perché sia possibile utilizzare un elaboratore per la sua soluzione
• Per analisi e programmazioneanalisi e programmazione si intende l’insieme delle attività preliminari atte a risolvere problemi utilizzando un elaboratore, dalla formulazione del problema fino alla predisposizione dell’elaboratore Scopo dell’analisi Scopo dell’analisi definire un algoritmoalgoritmo Scopo della programmazione Scopo della programmazione definire un programmaprogramma
Analisi e programmazione Analisi e programmazione −− 1 1
1616Anno accademico 2010-2011Anno accademico 2010-2011
1717
Analisi e programmazione Analisi e programmazione −− 2 2
• Algoritmo:Algoritmo: elenco finito di istruzioni, che specificano le operazioni eseguendo le quali si risolve una classe di problemi Un particolare problema della classe viene risolto tramite
l’apposito algoritmo sui dati che lo caratterizzano Un algoritmo non può essere eseguito direttamente Un algoritmo non può essere eseguito direttamente
dall’elaboratoredall’elaboratore• Programma:Programma: ricetta che traduce l’algoritmo ed è
direttamente comprensibile, pertanto eseguibile, da parte di un elaboratore
• Linguaggio di programmazione:Linguaggio di programmazione: linguaggio rigoroso che permette la formalizzazione di un algoritmo in un programma
1717Anno accademico 2010-2011Anno accademico 2010-2011
1818RisultatiRisultati
ProblemaProblema
ANALISIANALISI
ELABORAZIONEELABORAZIONE DatiDati
PROGRAMMAZIONEPROGRAMMAZIONE
AlgoritmoAlgoritmo
ProgrammaProgramma
Le fasi del procedimento di Le fasi del procedimento di analisi e programmazioneanalisi e programmazione
1919Anno accademico 2010-2011Anno accademico 2010-2011
2020
• AlgoritmoAlgoritmo deriva dal nome del matematico uzbeco Mohammed ibnMohammed ibn−−Musa AlMusa Al−−KhuwarizmiKhuwarizmi, vissuto nel IX secolo d.C. (dalla cui opera è nata l’algebra moderna), e significa procedimento di calcoloprocedimento di calcolo
• Un algoritmo è una successione di istruzioniistruzioni o passipassi che definiscono le operazioni da eseguire sui dati per ottenere i risultati; un algoritmo fornisce la soluzione ad una classe di classe di problemiproblemi
• Lo schema di esecuzioneschema di esecuzione di un algoritmo specifica che i passi devono essere eseguiti in sequenza, salvo diversa ed esplicita indicazione
Definizione di algoritmo Definizione di algoritmo −− 1 1
2020Anno accademico 2010-2011Anno accademico 2010-2011
Cominciamo con l'analisi della struttura di un Cominciamo con l'analisi della struttura di un calcolatore...calcolatore...
Anno accademico 2010-2011Anno accademico 2010-20112222
• Il sogno di costruire macchine capaci di effettuare calcoli automatici affonda le radici nel pensiero filosofico del ‘600:
Wilhelm Schickard introdusse la prima macchina moltiplicatrice dotata di accumulatori cilindrici
Cenni storici Cenni storici −− 1 1
• La presenza “invasiva” dell’informatica nella vita di tutti i giorni è un fenomeno relativamente recente; non recente è invece la necessità di avere a disposizione strumenti e metodi per contare rapidamente, elaborare dati, “calcolare” Le prime testimonianze di strumenti per contare risalgono a 30.000
anni fa I primi esempi di algoritmi procedure di calcolo “automatico”
sono stati scoperti in Mesopotamia su tavolette babilonesi risalenti al 1800−1600 a.C.
Macchina moltiplicatrice (1624)Macchina moltiplicatrice (1624)
Wilhelm Schickard (1592-1635)Wilhelm Schickard (1592-1635)
Anno accademico 2010-2011Anno accademico 2010-20112323
• Pascal e Leibnitz non solo affrontarono il problema, già studiato da Cartesio, di automatizzare il ragionamento logico−matematico, ma si cimentarono anche nella realizzazione di semplici macchine per calcolare (capaci di effettuare somme e sottrazioni)
Cenni storici Cenni storici −− 2 2Gottfried Leibnitz (1646-1716) Gottfried Leibnitz (1646-1716) Blaise Pascal (1623-1662) Blaise Pascal (1623-1662)
Macchina computazionale (G. Leibnitz) Macchina computazionale (G. Leibnitz)
Macchina addizionatrice Macchina addizionatrice −− la Pascalina (B. Pascal) la Pascalina (B. Pascal)
Anno accademico 2010-2011Anno accademico 2010-20112424
• La macchina alle differenzemacchina alle differenze, concepita da Babbage nel 1833, rappresenta il primo esempio di macchina programmabile di utilità generale
• In seguito, lo stesso Babbage progetta la macchina analiticamacchina analitica (mai realizzata, troppo complessa e critica la sua costruzione per le tecnologie meccaniche dell’epoca)
La prima programmatrice nella storia dell’informatica è Ada Augusta Byron, contessa di Lovelace
Cenni storici Cenni storici −− 3 3Charles Babbage (1791-1871) Charles Babbage (1791-1871)
Macchina alle differenze: modello Macchina alle differenze: modello ricostruito presso il Museo della Scienza ricostruito presso il Museo della Scienza di Londra seguendo il progetto del 1849 di Londra seguendo il progetto del 1849
Anno accademico 2010-2011Anno accademico 2010-20112525
• Fu Herman Hollerith, nel 1890, a sviluppare la macchina a schede perforatemacchina a schede perforate, per compiere le statistiche del censimento decennale degli Stati Uniti I dati venivano immessi su schede di
cartone opportunamente perforate, le stesse schede che sono state usate fino a due decenni or sono
Le schede venivano successivamente “contate” da una sorta di pantografo che permetteva diversi tipi di elaborazioni (totali, medie, statistiche, etc.)
Si impiegarono due anni e mezzo ad analizzare i dati (contro i sette anni del censimento del 1880), nonostante l’incremento di popolazione da 50 a 63 milioni
Cenni storici Cenni storici −− 4 4Herman Hollerith (1860-1929) Herman Hollerith (1860-1929)
Census Tabulator (1890) Census Tabulator (1890)
Anno accademico 2010-2011Anno accademico 2010-20112626
• Successivamente la macchina a schede perforate venne utilizzata con successo per i censimenti in Austria, Norvegia e Russia, tanto che Hollerith decise di fondare una società: la Computing Computing Tabulating Recording CompanyTabulating Recording Company che, nel 1923, divenne l’International Business International Business MachineMachine, o IBMIBM
• Nel 1932, il tedesco Konrad Zuse realizza una macchina elettromeccanica in grado di eseguire calcoli con controllo programmato, ed introduce il sistema di numerazione binario (la cui algebra era stata definita da Leibnitz e da Boole)
Cenni storici Cenni storici −− 5 5Konrad Zuse (1910-1995) Konrad Zuse (1910-1995)
Il calcolatore Z1 (1939) Il calcolatore Z1 (1939)
Anno accademico 2010-2011Anno accademico 2010-20112727
• Durante la seconda guerra mondiale, fioriscono i progetti di elaboratori da utilizzarsi per scopi bellici
La macchina EnigmaLa macchina Enigma
Cenni storici Cenni storici −− 6 6Alan Turing (1912-1954) Alan Turing (1912-1954)
EnigmaEnigma, realizzata dai tedeschi (A. Scherbius) per codificare le comunicazioni militari
Red PurpleRed Purple, di costruzione giapponese Computer ColossusComputer Colossus, costruito dagli inglesi
per la decifrazione dei messaggi tedeschi, alla cui progettazione e realizzazione collaborò Alan TuringAlan Turing, permise la vittoria anglo−americana sull’Atlantico
Anno accademico 2010-2011Anno accademico 2010-20112828
• Con l’invenzione del tubo a vuototubo a vuoto (1904), del transistortransistor (1947) e, infine, dei circuiti integraticircuiti integrati (1969), l’evoluzione dei computer divenne inarrestabile
• Finora la potenza di calcolo degli elaboratori si è decuplicata ogni 5−6 anni (…ma non può durare, almeno con le tecnologie in uso)
Cenni storici Cenni storici −− 7 7
Anno accademico 2010-2011Anno accademico 2010-20112929
• La costruzione dei primi calcolatori risale all’inizio degli anni ‘40, grazie alla tecnologia elettronica; i primi esemplari venivano programmati mediante connessioni elettriche e commutatori (ENIACENIAC, Mark I Mark I)
• Il nome di Von Neumann è legato invece ai primi calcolatori a programma memorizzato realizzati alla fine degli anni ‘40 (EDSACEDSAC, WhirlwindWhirlwind, IASIAS, UNIVACUNIVAC)
Per la prima volta, vige il principio di unitarietà di rappresentazione di unitarietà di rappresentazione di dati e istruzionidati e istruzioni, che vengono codificati, all’interno dell’elaboratore, in maniera indistinguibile
• La diffusione dei calcolatori a livello mondiale è avvenuta nei decenni ‘60 e ‘70
Cenni storici Cenni storici −− 8 8John Von Neumann (1903-1957) John Von Neumann (1903-1957)
Anno accademico 2010-2011Anno accademico 2010-20113030
EDSAC (1949)EDSAC (1949)ENIAC (1946)ENIAC (1946) Mark I (1948)Mark I (1948)
UNIVAC (1952)UNIVAC (1952)Whirlwind (1949)Whirlwind (1949) IAS (1952)IAS (1952)
Cenni storici Cenni storici −− 9 9
Anno accademico 2010-2011Anno accademico 2010-20113131
• Tuttavia, l’esplosione dell’informatica come fenomeno di massa è datata 1981, anno in cui l’IBM introdusse un tipo particolare di elaboratore: il Personal ComputerPersonal Computer (PC)
• La particolarità dei PC consisteva nell’essere “assemblati” con componenti facilmente reperibili sul mercato (e quindi a basso costo) Possibilità per qualsiasi casa produttrice di costruire “cloni”
• Attualmente i PC, o meglio il loro componente fondamentale il microprocessoremicroprocessore è utilizzato in tutti i settori applicativi (non solo per elaborare dati): Telefoni cellulari, ricevitori satellitari digitali, GPS Bancomat e carte di credito Lavatrici e forni a micro−onde Computer di bordo e ABS ...
Cenni storici Cenni storici −− 10 10
Anno accademico 2010-2011Anno accademico 2010-20113232
• L’esigenza di realizzare sistemi di elaborazione dotati di più processori operanti in parallelo è stata sentita fin dalla preistoria dell’informatica In una relazione dello scienziato, generale e uomo politico italiano
Luigi Menabrea, datata 1842, sulla macchina analitica di Babbage, si fa riferimento alla possibilità di usare più macchine dello stesso tipo in parallelo, per accelerare calcoli lunghi e ripetitivi
• Solo la riduzione dei costi dell’hardware ha consentito, verso la fine degli anni ‘60, l’effettiva costruzione dei primi supercalcolatori, come le macchine CDC6600CDC6600 e IlliacIlliac e, successivamente, il CrayCray e le macchine vettoriali
• A partire dagli anni ‘90, gli ulteriori sviluppi della microelettronica hanno permesso la realizzazione di calcolatori a parallelismo massiccio, caratterizzati dall’interconnessione di decine di migliaia di unità di elaborazione elementari: le reti neuralireti neurali, capaci di “simulare” il comportamento del cervello umano, sulla base degli studi di McCulloch e Pitts (1943)
Cenni storici Cenni storici −− 11 11
Anno accademico 2010-2011Anno accademico 2010-20113333
CDC 6600 (1963)CDC 6600 (1963)Illiac (1955)Illiac (1955)
PC IBM (1981)PC IBM (1981)
Cray 1 (1976)Cray 1 (1976) Cray XE6 (2010)Cray XE6 (2010)
Portatile e Palmare (oggi)Portatile e Palmare (oggi)
Cenni storici Cenni storici −− 12 12
3333Anno accademico 2010-2011Anno accademico 2010-2011
3333
• “Penso che ci sia mercato nel mondo per non più di cinque computer.” (Thomas Watson, Presidente di IBM, 1943)
• “Ho girato in lungo e in largo questo paese e ho parlato con le migliori menti e posso assicurarvi che questa moda dell’elaborazione automatica è un capriccio che non vedrà la fine dell’anno.” (Editor di libri scientifici di Prentice Hall, 1947)
• “Una unità di calcolo sull’ENIAC è dotata di 18.000 tubi elettronici a vuoto e pesa 30 tonnellate, ma è possibile che in futuro i computer abbiano soltanto 1000 tubi e pesino soltanto una tonnellata e mezzo.” (Popular Mechanics, 1949)
• “Abbiamo un computer qui a Cambridge, ce n’è uno a Manchester e uno al laboratorio nazionale di fisica. Immagino che sarebbe giusto averne uno anche in Scozia, ma non di più.” (Douglas Hartree, fisico inglese, 1951)
• “Ma... a che serve?” (Un ingegnere della Advanced Computing Systems, Divisione dell’IBM, commentando il microchip, 1965).
• Nel 1976, il New York Times New York Times pubblicò un libro dal titolo La scienza nel ventesimo secoloLa scienza nel ventesimo secolo, nel quale il calcolatore veniva menzionato una sola volta e indirettamente, in relazione al calcolo delle orbite dei pianeti
• “Non c’è ragione perché qualcuno possa volere un computer a casa sua.” (Ken Olson, fondatore di Digital, 1977)
• “640 Kbytes should be enough for anybody.” (Bill Gates, 1981)
Frasi celebri ed altro…Frasi celebri ed altro…
3434Anno accademico 2010-2011Anno accademico 2010-2011
3434
• La capacità dell’elaboratore di eseguire successioni di operazioni in modo automatico è determinata dalla presenza di un dispositivo di memoriamemoria Nella memoria sono registrati i datidati e... ...le operazioni da eseguire su di essi (nell’ordine secondo cui
devono essere eseguite): il programmaprogramma, la “ricetta” usata dall’elaboratore per svolgere il proprio compito
• Il programma viene interpretato dall’unità di controllounità di controllo
Modello di Von NeumannModello di Von Neumann
L’architettura di Von NeumannL’architettura di Von Neumann
3535Anno accademico 2010-2011Anno accademico 2010-2011
3535
• Programma:Programma: sequenza di operazioni atte a predisporre l’elaboratore alla soluzione di una determinata classe di problemi Il programma è la descrizione di un algoritmoalgoritmo in una forma
comprensibile all’elaboratore• Algoritmo:Algoritmo: sequenza finita di istruzioni attraverso le quali
un operatore umano è capace di risolvere ogni problema di una data classe; non è direttamente eseguibile dall’elaboratore
• L’elaboratore è una macchina universalemacchina universale: cambiando il programma residente in memoria, è in grado di risolvere problemi di natura diversa (una classe di problemi per ogni programma)
La macchina universaleLa macchina universale
3636Anno accademico 2010-2011Anno accademico 2010-2011
3636
La struttura del calcolatoreLa struttura del calcolatoreIBM S/360 Mod 40 (1964) IBM S/360 Mod 40 (1964) 1.6 MHz 32KB1.6 MHz 32KB−−256KB256KB225.000$225.000$
IBM S/360 Mod 50 (1964)IBM S/360 Mod 50 (1964)2.0 MHz 128KB2.0 MHz 128KB−−256KB256KB550.000$550.000$
IBM S/360 Mod 65 (1964)IBM S/360 Mod 65 (1964)5.0 MHz 256KB5.0 MHz 256KB−−1MB1MB1.200.000$1.200.000$
3737Anno accademico 2010-2011Anno accademico 2010-2011
3737
• Si possono considerare diversi livelli di astrazione: Circuiti elettronici (hardware) Architettura e linguaggio macchina Sistema operativo (software di sistema) Linguaggi di programmazione Programmi applicativi
Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con l’algebra di Boole; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, di effettuare calcoli, etc.
Silicon GraphicsSilicon Graphics
La struttura del calcolatoreLa struttura del calcolatore
3838Anno accademico 2010-2011Anno accademico 2010-2011
3838
• Tutti i calcolatori attuali si rifanno all’architettura di Von Neumann, costituita dalle quattro componenti:
CPU (Central Processing Unit)CPU (Central Processing Unit)
Memoria centraleMemoria centrale
Bus di sistemaBus di sistema
PeriferichePeriferiche
BUS di sistemaBUS di sistema
CPUCPU
tastieratastiera mousemouse memoria dimemoria dimassamassa monitormonitor
Memoria Memoria centralecentrale
PeriferichePeriferiche
La macchina di Von Neumann La macchina di Von Neumann −− 1 1
3939Anno accademico 2010-2011Anno accademico 2010-2011
3939
La macchina di Von Neumann La macchina di Von Neumann −− 2 2
• Carratteristiche del modello di Von NeumannCarratteristiche del modello di Von Neumann
Proceduralità:Proceduralità: possibilità di eseguire differenti programmi memorizzati
Il modello è basato sul paradigma di programmazione procedurale: il programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad una data classe di problemi
Sequenzialità:Sequenzialità: regola della selezione dell’istruzione da eseguire rigidamente fissata
Connessione tra le unità funzionali con singolo flusso di informazione tra memoria e processore: architettura a BUSarchitettura a BUS
4040Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
4141Anno accademico 2010-2011Anno accademico 2010-2011
4141
• L’architettura più consolidata per il calcolatore prevede quindi unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il busbus
• Il bus è fisicamente realizzato mediante un insieme di connettori elettrici
MemoriaprincipaleCPU I/O I/OI/O
BUSIndirizziDatiControllo
Dispositivi di Input/Output
Architettura a BUSArchitettura a BUS
4242Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
4343Anno accademico 2010-2011Anno accademico 2010-2011
4242
l’orologio del sistemaorologio del sistema che fornisce al computer un battito regolare
• La CPU lavora a N GHz: segue un ritmo di N miliardi di impulsi al secondo (es., una CPU con un clock a 3 GHz è temporizzata da tre miliardi di impulsi al secondo)
Intel PentiumIntel Pentium
• La Central Processing UnitCentral Processing Unit è l’unità centrale di elaborazione: esegue le istruzioni dei programmi e ne regola il flusso, esegue i calcoli
• La CPU è un dispositivo sincronosincrono, cioè può cambiare stato solo quando riceve un impulso di clockclock,
La CPU La CPU −− 1 1
4444Anno accademico 2010-2011Anno accademico 2010-2011
4343
• La frequenza di clock determina la velocità di elaborazione del computer: più alta è la frequenza di clock, maggiore è la velocità di elaborazione
• La velocità e la potenza di un computer dipendono però anche dalla larghezza del bus, ovvero dal numero di bit (ampiezza del singolo dato) che il processore è in grado di ricevere e di elaborare simultaneamente Attualmente, i processori sono in grado di elaborare dati
rappresentati con 64 bit
La CPU La CPU −− 2 2
4545Anno accademico 2010-2011Anno accademico 2010-2011
4444
• La CPU è costituita da tre elementi fondamentali: Unità AritmeticoUnità Aritmetico−−Logica (ALU)Logica (ALU) RegistriRegistri Unità di Controllo (CU)Unità di Controllo (CU)
EUExecution Unit}
ALUALU CUCU
PCPC
IRIR
registriregistriContatore di programma(Program CounterProgram Counter) <P>
Registro Istruzione(Instruction RegisterInstruction Register) <IP>BUSBUS
BIUBus Interface Unit
La CPU La CPU −− 3 3
4646Anno accademico 2010-2011Anno accademico 2010-2011
4545
• A livello “macroscopico”, ad ogni impulso di clock, la CPU:
“legge” il suo stato interno (determinato dal contenuto dei registri di stato) e la sequenza di ingresso (determinata dal contenuto dei registri istruzione e dati)
produce un nuovo stato “dipendente” dallo stato in cui si trovava originariamente
• In pratica, la CPU realizza una complessa funzione logica, con decine di ingressi e di uscite
la corrispondente tabella di verità avrebbe un numero enorme di righe (miliardi di miliardi)
La CPU La CPU −− 4 4
4747Anno accademico 2010-2011Anno accademico 2010-2011
4646
• Lo stato della CPU è costituito da informazioni (memorizzate negli opportuni registri) su:
dati da elaborare (contenuti nei registri datiregistri dati) istruzione da eseguire (nel registro istruzioniregistro istruzioni) indirizzo in memoria della prossima istruzione da eseguire
(nel program counterprogram counter) eventuali anomalie o eventi verificatisi durante
l’elaborazione (nei registri flagregistri flag)
La CPU La CPU −− 5 5
4848Anno accademico 2010-2011Anno accademico 2010-2011
4747
• Set di istruzioni di base: somma (da cui sottrazione) scorrimento (shift) operazioni logiche operazioni di accesso alla memoria
trasferimento di un dato da una locazione di memoria ad un’altra trasferimento da memoria a un registro della CPU trasferimento da un registro della CPU a memoria
operazioni di confronto • Le operazioni (eccetto quelle di accesso alla memoria) sono
eseguite all’interno della ALU e “coordinate” dall’unità di controllo
}(da cui moltiplicazione e divisione)
La CPU La CPU −− 6 6
4949Anno accademico 2010-2011Anno accademico 2010-2011
4848
• Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CU
• Le operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandi
• Esiste una unità specializzata per le operazioni in virgola mobile (FPUFPU)
• L’ALUALU (ArithmeticArithmetic−−Logic UnitLogic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su 2 operandi, rappresentati su n bit (es. 32/64 bit); oltre al risultato dell’operazione può produrre informazioni ulteriori su linee specifiche (il risultato è zero, si è verificato un overflow, etc.)
L’Unità AritmeticoL’Unità Aritmetico−−LogicaLogica
ALU ResultZero
Overflow
a
b
ALU operation
CarryOut
5050Anno accademico 2010-2011Anno accademico 2010-2011
4949
• I registri sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati che contengono; hanno dimensioni prefissate (es. 32/64 bit)
• Alcuni registri hanno funzioni specifiche (es. contatore di programma)
• Nella maggior parte delle architetture, le operazioni della ALU si possono effettuare solo fra dati presenti nei registri ed anche il risultato viene momentaneamente memorizzato in un registro
EIP Instruction pointer (PC)
EFLAGS Condition codes
Code segment pointerCS
Stack segment pointer (top of stack)SS
Data segment pointer 0DS
Data segment pointer 1ES
Data segment pointer 2FS
Data segment pointer 3GS
031
GPR 0EAX
GPR 3EBX
GPR 1ECX
GPR 2EDX
GPR 6ESI
GPR 7EDI
GPR 5EBP
GPR 4ESP
Name Use
Registri del PentiumRegistri del Pentium
I registriI registri
5151Anno accademico 2010-2011Anno accademico 2010-2011
5050
• Esegue le istruzioni prelevandole dalla memoria nella fase di accessaccess• La prossima istruzione da eseguire è individuata dall’indirizzo presente nel
registro contatore di programmaregistro contatore di programma (PC)• L’istruzione in esecuzione è memorizzata nel registro istruzioneregistro istruzione (IR)• L’istruzione è un codice binario che deve essere decodificatodecodificato dalla CU;
specifica il tipo di operazione, gli eventuali operandi, etc.• Normalmente le istruzioni sono eseguite in sequenza: dopo l'access, il PC PC
viene incrementatoviene incrementato, per fare riferimento all’istruzione successiva
CU
IR
PC
memoriaBUS
Istruzione 1Istruzione 2Istruzione 3
02AD77F2
02AD77F2
Segnali di controllo(ALU, Registri, etc.)
L’unità di controlloL’unità di controllo
5252Anno accademico 2010-2011Anno accademico 2010-2011
5151
• Il processore esegue le istruzioni di un programma una una alla voltaalla volta in sequenza: estrae le istruzioni dalla memoria, le interpreta e le esegue una dopo l’altra Un programma indica la sequenza di istruzioni da eseguire
per ottenere la soluzione ad un data classe di problemi• Il processore esegue ogni istruzione mediante una
sequenza ben definita di operazioni detta ciclo di ciclo di istruzioneistruzione o ciclo macchinaciclo macchina Estrazione di una istruzione: fase di accessfase di access
Decodifica di una istruzione: fase di decodefase di decode Esecuzione dell’istruzione: fase di executefase di execute
Come si eseguono i programmi Come si eseguono i programmi −− 1 1
5353Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
SCHEMA DELLA CPU
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
5454Anno accademico 2010-2011Anno accademico 2010-2011
Ciclo ADE della CPU (10-9 sec)
• Reperimento dell’istruzione (access): – lettura della cella di RAM il cui indirizzo e’ contenuto
nel contatore di programma– caricamento del registro istruzione con l’istruzione– Incremento del contatore programma
• Decodifica dell’istruzione (decode):– Trova gli operandi a seconda del codice operativo– Modifica contatore programma se istruzione di salto
• Esecuzione dell’istruzione (execute):– Attiva i circuiti necessari
5555Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
ACCESS
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
In IR viene messa l’istruzione da eseguire (contenuta nellaRAM all’indirizzo specificato all’inteno del registro PC)
In P Cviene messo l’indirizzo della RAM dove è contenuta laprossima istruzione da eseguire.
5656Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
DECODE
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
La ALU riconosce l’istruzione come una delle istruzionimacchina I1, ..., Ik possibili
5757Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
EXECUTE
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
La ALU attiva la corrispondente componente (ad esempioCI2 che esegue l’istruzione richiesta)
5858Anno accademico 2010-2011Anno accademico 2010-2011
Esempio di esecuzione di istruzioni
1. Carica nel registro R3 il contenuto della cella di memoria 10
2. Carica nel registro R4 il contenuto della cella di memoria 11
3. Somma di interi sul contenuto dei registri R3 e R4, risultato nel registro R0
4. Trasferisci il contenuto del registro R0 nella cella 12
5. STOP
5959Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
6060Anno accademico 2010-2011Anno accademico 2010-2011
5959
• Le memorie sono dispositivi per “lo stoccaggio” delle informazioni
• Ogni memoria è costituita da celle, a cui si accede tramite un indirizzo
• In ogni elaboratore vi sono tre tipi di memorie: Registri: Registri: contengono informazioni necessarie alla
elaborazione della singola istruzione Memoria centrale:Memoria centrale: contiene dati e istruzioni attualmente
elaborati dal processore Memorie di massa:Memorie di massa: contengono dati e programmi che
non sono oggetto di elaborazione immediata
Le memorie Le memorie −− 1 1
6161Anno accademico 2010-2011Anno accademico 2010-2011
6060
• I parametri fondamentali che definiscono una memoria sono: Dimensione della parolaDimensione della parola (locazione di memoria) Modalità di accessoModalità di accesso (diretto o sequenziale) Permanenza o volatilità dei datiPermanenza o volatilità dei dati CapacitàCapacità (numero di locazioni disponibili), espressa in KB, MB,
GB, etc. Tempo di accessoTempo di accesso, necessario per accedere ad una locazione di
memoria per un’operazione di lettura o scrittura, espresso in nanosec, millisec, sec
• In base agli ultimi due parametri, le memorie si collocano a diversi livelli di una gerarchia, che va da memorie più capaci ma più lente (memorie di massa) a memorie piccole e veloci (registri)
Le memorie Le memorie −− 2 2
Anno accademico 2010-2011Anno accademico 2010-2011
Gerarchia di memorieGerarchia di memorie
Tbyte
Gbyte
6363Anno accademico 2010-2011Anno accademico 2010-2011
• La memoria centrale o memoria principale, detta anche RAMRAM (Random Access MemoryRandom Access Memory, ovvero memoria ad accesso casuale, perché qualsiasi cella può essere letta/scritta in un tempo, mediamente, costante), è la memoria in linea con il processore, che contiene i dati e i programmi che sono attualmente utilizzati/in esecuzione
• Un programma, quando non è oggetto di elaborazione, è memorizzato su memoria di massa (dischi)
• Quando deve essere eseguito, viene caricato tutto o in parte, in memoria centrale (memoria virtuale)
La memoria centrale La memoria centrale −− 1 1
6464Anno accademico 2010-2011Anno accademico 2010-2011
6363
• Le caratteristiche fondamentali della memoria centrale sono: accesso diretto alle informazioniaccesso diretto alle informazioni velocità elevatavelocità elevata volatilitàvolatilità: quando il computer viene spento, i dati e i
programmi presenti in memoria vengono cancellati• La tecnologia utilizzata per la memoria centrale è
quella dei dispositivi a semiconduttori, che la fanno apparire come una matrice di bit Ogni bit è presente come stato (alto o basso) di tensionee viene rappresentato con le cifre binarie 0/1
La memoria centrale La memoria centrale −− 2 2
6565Anno accademico 2010-2011Anno accademico 2010-2011
6464
• La memoria principale è un insieme di locazioni o celle• L’unità di memorizzazione, la dimensione della singola
cella, è il byte (sequenza di 8 bit) • Ciascun byte nella memoria è individuato da un
indirizzoindirizzo che lo distingue da tutti gli altri, costituito da un numero variabile da 0 a 2N−1, dove N è la dimensione in bit dell’indirizzo (es. numero di bit/fili sul bus indirizzi)
La memoria centrale La memoria centrale −− 3 3
6666Anno accademico 2010-2011Anno accademico 2010-2011
Unità di misura della RAM(e della memoria in generale)
1 KiloByte (KB) = 210 byte = 1.024 byte; circa 1.000 byte
1 MegaByte (MB) = 220 byte = 1.024 KB; circa 1.000.000 byte
1 GigaByte (GB) = 230 byte = 1.024 MB; circa 1.000.000.000 byte
1 TeraByte (TB) = 240 byte = 1.024 GB; circa 1.000.000.000.000 byte
6767Anno accademico 2010-2011Anno accademico 2010-2011
Indirizzi di memoriaIndirizzo ByteInd. parola Ind. decimale Indirizzo binario
0 0 000000 00
0 1 000000 01
0 2 000000 10
0 3 000000 11
1 4 000001 00
1 5 000001 01
1 6 000001 10
1 7 000001 11
2 8 000010 00
2 9 000010 01
2 10 000010 10
2 11 000010 11
6868Anno accademico 2010-2011Anno accademico 2010-2011
6868
• La connessione tra memoria e processore rappresenta un limite degli elaboratori di Von Neumann Limite architetturale: il bus permette l’accesso ad una sola
informazione per volta (“collo di bottiglia”) Limite tecnologico: la velocità con cui il processore ottiene le
informazioni dalla memoria centrale (velocità di accesso della RAM) è inferiore alla velocità con cui è in grado di elaborarle
• SoluzioniSoluzioni Allargamento del bus dati, in modo da poter estrarre più
istruzioni e/o dati per volta Superamento del limite tecnologico mediante introduzione di introduzione di
una memoria intermedia tra memoria centrale e processore una memoria intermedia tra memoria centrale e processore che approssimi la velocità del processoreche approssimi la velocità del processore
Processore e RAMProcessore e RAM
6969Anno accademico 2010-2011Anno accademico 2010-2011
6969
• Piccola RAM molto veloce, interposta tra CPU e memoria principale, per migliorare le prestazioni del sistema
Quando viene indirizzata una parola, quella parola e alcune di quelle vicine vengono trasferite dalla lenta memoria centrale nella più piccola e veloce memoria cache, in modo che la parola successiva sia accessibile più velocemente (principio di principio di località spaziolocalità spazio−−temporale del softwaretemporale del software)
La memoria cacheLa memoria cache
7070Anno accademico 2010-2011Anno accademico 2010-2011
7070
• Una parte della memoria centrale è la ROMROM (Read Only Read Only MemoryMemory ), una memoria a sola lettura, destinata a contenere informazioni non variabili
• Caratteristiche delle memorie ROM: accesso casuale alle informazioniaccesso casuale alle informazioni velocità elevata velocità elevata (inferiore alle RAM)
• La ROM viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette, ma mai riscritte
• Viene usata per memorizzare programmi di sistema
La memoria ROMLa memoria ROM
7171Anno accademico 2010-2011Anno accademico 2010-2011
7171
• La ROM contiene il software e i dati necessari ad inizializzare il computer ed a far funzionare i dispositivi periferici
• Il nucleo del software della ROM è costituito dalle routine di avviamentoroutine di avviamento che comprendono il caricatore di caricatore di bootboot−−strapstrap ed il ROM BIOSROM BIOS
• Le routine di avviamento routine di avviamento realizzano l’inizializzazione del calcolatore: Ne effettuano un rapido controllo di affidabilità, per
accertare che tutte le componenti hardware siano perfettamente funzionanti
Caricano il sistema operativo dal disco (caricatore di boot−strap)
Il software della ROM Il software della ROM −− 1 1
7272Anno accademico 2010-2011Anno accademico 2010-2011
7272
Il software della ROM Il software della ROM −− 2 2
• Il caricatore di bootcaricatore di boot−−strap strap ha la funzione di leggere un programma di lancio dal disco, detto bootstrapbootstrap, e di trasferire ad esso il controllo: il boostrap carica il nucleo del sistema operativo e lo manda in esecuzione
• Il ROM BIOS ROM BIOS Binary InputBinary Input−−Output System Output System è la parte della ROM attiva quando il computer è al lavoro: il suo ruolo è quello di fornire un insieme di servizi di base richiesti per il funzionamento delle periferiche
7373Anno accademico 2010-2011Anno accademico 2010-2011
7373
• Le operazioni che si effettuano sulla memoria sono operazioni di letturalettura e scritturascrittura
• Entrambe presuppongono l’utilizzo di un indirizzo che identifica univocamente la cella interessata all’operazione
• L’operazione di scrittura è distruttivadistruttiva, cioè cancella l’informazione precedentemente contenuta nella cella
• L’operazione di lettura preserva il contenuto della cella indirizzata: all’esterno della memoria centrale viene trasferita copia dell’informazione
Operazioni sulla memoria centraleOperazioni sulla memoria centrale
7474Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
7575Anno accademico 2010-2011Anno accademico 2010-2011
7575
Il disco fisso è costituito da uno o più piatti metallici ricoperti di materiale magnetico su entrambe le facce
Ciascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere/ scrivere l’informazione organizzata in tracce concentriche
Dischi magneticiDischi magnetici
• Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk), dischi ottici (CD, DVD), dispositivi USB, memorie flash
• Memoria non volatile ad alta capacità
La memoria secondariaLa memoria secondaria
7676Anno accademico 2010-2011Anno accademico 2010-2011
7676
• I dischi magnetici dischi magnetici rappresentano il mezzo fondamentale per la memorizzazione di massa I dischi ruotano ad una velocità (costante) compresa tra i 60 e i
200 giri al secondo
I dischi magnetici I dischi magnetici −− 1 1
7777Anno accademico 2010-2011Anno accademico 2010-2011
7777
• L’informazione è disposta sul disco in traccetracce, ovvero in cerchi concentrici
• La densità dei bit decresce dalle tracce interne alle più esterne per mantenere costante la quantità di dati che passano sotto le testine nell’unità di tempo
• Le tracce sono divise in settorisettori• La capacità di memorizzazione dei dischi cresce in
conseguenza allo sviluppo tecnologico
Platter
Track
Platters
Sectors
Tracks
I dischi magnetici I dischi magnetici −− 2 2
7878Anno accademico 2010-2011Anno accademico 2010-2011
7878
• Il numero di bit contenuti in una traccia è dell’ordine delle centinaia di migliaia (512/4096 byte a settore)
• Centinaia di settori (512/1024 per traccia)• Decine di migliaia di cilindri (tracce concentriche
disposte sulle diverse facce dei diversi dischi)• Per leggere (o scrivere) sul disco, la testina si deve
posizionare sulla traccia che contiene il dato ed attendere che il dato passi sotto di essa Le operazioni di lettura/scrittura si basano sulla proprietà
del campo magnetico di indurre/essere indotto il/dal passaggio di corrente in una bobina
I dischi magnetici I dischi magnetici −− 3 3
7979Anno accademico 2010-2011Anno accademico 2010-2011
• La magnetizzazione avviene infatti mediante la testina testina magneticamagnetica (una piccola bobina racchiusa in un involucro di metallo dotato di una minuscola fessura, il traferrotraferro)
• Facendo passare corrente nella bobina si induce un campo magnetico nel traferro (invertendo la corrente si inverte anche il campo)
• Quando si fa passare corrente attraverso la testina alternandone la direzione, le aree del disco al di sotto della testina si magnetizzano in una delle due direzioni: questo procedimento rappresenta la scrittura su disco scrittura su disco
I dischi magnetici I dischi magnetici −− 4 4
8080Anno accademico 2010-2011Anno accademico 2010-2011
• II dati binari che l’unità scrive sul disco sono tradotti in dati binari che l’unità scrive sul disco sono tradotti in un formato costituito da una serie di aree magnetizzate un formato costituito da una serie di aree magnetizzate in un senso o nell'altroin un senso o nell'altro
• Lettura da discoLettura da disco: poiché le particelle magnetizzate sono circondate da un campo magnetico, quando il traferro passa sul disco le variazioni del campo inducono sulla testina una corrente che si manifesta con variazioni di voltaggio alle estremità della bobina; i circuiti di lettura decodificano le variazioni nell’andamento dell’intensità di corrente riconducendole a 0/1
I dischi magnetici I dischi magnetici −− 5 5
8181Anno accademico 2010-2011Anno accademico 2010-2011
• Il tempo medio di accesso all’informazione memorizzata su disco è dato da
tseek è il tempo di ricercatempo di ricerca, necessario per posizionare la testina sulla traccia che contiene l’informazione; dipende dall’ampiezza dello spostamento
tlat è il tempo di latenzatempo di latenza, necessario perché l’informazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischi
ttr è il tempo di trasferimentotempo di trasferimento ; dipende dalla velocità di rotazione, dalla densità di registrazione e dalla quantità di informazione da trasferire
T = tseek + tlat + ttr
Accesso al discoAccesso al disco
8282Anno accademico 2010-2011Anno accademico 2010-2011
8282
• Sui dischi ottici dischi ottici si utilizza la tecnologia laser per realizzare le operazioni di lettura/scrittura
• Densità dei bit uniforme Un’unica traccia elicoidale o…
…tracce più lontane dal centro del disco sono più lunghe e contengono un maggior numero di settori (fino al 40% in più rispetto alle tracce vicine al centro di rotazione)
I dischi ottici I dischi ottici −− 1 1
8383Anno accademico 2010-2011Anno accademico 2010-2011
8383
• Sui dischi di lettura/scrittura i dati possono essere modificati più e più volte (dischi a cambio di fasedischi a cambio di fase)
• I dischi WORMWORM, Write OnceWrite Once−−Read ManyRead Many, si possono scrivere una sola volta
• La tecnologia originale per dischi WORM consiste nell’inserire una pellicola di alluminio tra due piatti di plastica o di vetro (o un pigmento polimerico)
• Per scrivere un bit, l’unità usa un raggio laser per praticare un piccolo foro nell’alluminio (o opacizzare il pigmento): l’informazione può venir distrutta ma non alterata
I dischi ottici I dischi ottici −− 2 2
8484Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
8585Anno accademico 2010-2011Anno accademico 2010-2011
Comportamento:Comportamento: Input (read once), output (write only), memoria (rilettura/riscrittura)
Partner:Partner: uomo o macchina Velocità del flusso dei dati:Velocità del flusso dei dati: quantità di dati trasferiti nell’unità
di tempo da o verso la CPU o la memoria centrale
• Insieme di dispositivi che consentono l’acquisizione di dati (inputinput), la loro archiviazione (storagestorage) e la loro presentazione verso il mondo esterno (outputoutput)
• Si possono classificare in base a tre diverse caratteristiche:
TastieraTastiera inputinput uomo uomo
MouseMouse inputinput uomo uomo
ReteRete input/outputinput/output macchina macchina Hard DiskHard Disk storagestorage macchinamacchina
velo
cità
velo
cità
++
−−
≈≈101044 KB/s KB/s
≈≈1010−−22 KB/s KB/s
I dispositivi di InputI dispositivi di Input−−OutputOutput
2020Anno accademico 2010-2011Anno accademico 2010-2011
Cominciamo con l'analisi della struttura di un Cominciamo con l'analisi della struttura di un calcolatore...calcolatore...
2121Anno accademico 2010-2011Anno accademico 2010-2011
2222
• Il sogno di costruire macchine capaci di effettuare calcoli automatici affonda le radici nel pensiero filosofico del ‘600:
Wilhelm Schickard introdusse la prima macchina moltiplicatrice dotata di accumulatori cilindrici
Cenni storici Cenni storici −− 1 1
• La presenza “invasiva” dell’informatica nella vita di tutti i giorni è un fenomeno relativamente recente; non recente è invece la necessità di avere a disposizione strumenti e metodi per contare rapidamente, elaborare dati, “calcolare” Le prime testimonianze di strumenti per contare risalgono a 30.000
anni fa I primi esempi di algoritmi procedure di calcolo “automatico”
sono stati scoperti in Mesopotamia su tavolette babilonesi risalenti al 1800−1600 a.C.
Macchina moltiplicatrice (1624)Macchina moltiplicatrice (1624)
Wilhelm Schickard (1592-1635)Wilhelm Schickard (1592-1635)
2222Anno accademico 2010-2011Anno accademico 2010-2011
2323
• Pascal e Leibnitz non solo affrontarono il problema, già studiato da Cartesio, di automatizzare il ragionamento logico−matematico, ma si cimentarono anche nella realizzazione di semplici macchine per calcolare (capaci di effettuare somme e sottrazioni)
Cenni storici Cenni storici −− 2 2Gottfried Leibnitz (1646-1716) Gottfried Leibnitz (1646-1716) Blaise Pascal (1623-1662) Blaise Pascal (1623-1662)
Macchina computazionale (G. Leibnitz) Macchina computazionale (G. Leibnitz)
Macchina addizionatrice Macchina addizionatrice −− la Pascalina (B. Pascal) la Pascalina (B. Pascal)
2525Anno accademico 2010-2011Anno accademico 2010-2011
2626
• Successivamente la macchina a schede perforate venne utilizzata con successo per i censimenti in Austria, Norvegia e Russia, tanto che Hollerith decise di fondare una società: la Computing Computing Tabulating Recording CompanyTabulating Recording Company che, nel 1923, divenne l’International Business International Business MachineMachine, o IBMIBM
• Nel 1932, il tedesco Konrad Zuse realizza una macchina elettromeccanica in grado di eseguire calcoli con controllo programmato, ed introduce il sistema di numerazione binario (la cui algebra era stata definita da Leibnitz e da Boole)
Cenni storici Cenni storici −− 5 5Konrad Zuse (1910-1995) Konrad Zuse (1910-1995)
Il calcolatore Z1 (1939) Il calcolatore Z1 (1939)
2626Anno accademico 2010-2011Anno accademico 2010-2011
2727
• Durante la seconda guerra mondiale, fioriscono i progetti di elaboratori da utilizzarsi per scopi bellici
La macchina EnigmaLa macchina Enigma
Cenni storici Cenni storici −− 6 6Alan Turing (1912-1954) Alan Turing (1912-1954)
EnigmaEnigma, realizzata dai tedeschi (A. Scherbius) per codificare le comunicazioni militari
Red PurpleRed Purple, di costruzione giapponese Computer ColossusComputer Colossus, costruito dagli inglesi
per la decifrazione dei messaggi tedeschi, alla cui progettazione e realizzazione collaborò Alan TuringAlan Turing, permise la vittoria anglo−americana sull’Atlantico
2727Anno accademico 2010-2011Anno accademico 2010-2011
2828
• Con l’invenzione del tubo a vuototubo a vuoto (1904), del transistortransistor (1947) e, infine, dei circuiti integraticircuiti integrati (1969), l’evoluzione dei computer divenne inarrestabile
• Finora la potenza di calcolo degli elaboratori si è decuplicata ogni 5−6 anni (…ma non può durare, almeno con le tecnologie in uso)
Cenni storici Cenni storici −− 7 7
2828Anno accademico 2010-2011Anno accademico 2010-2011
2929
• La costruzione dei primi calcolatori risale all’inizio degli anni ‘40, grazie alla tecnologia elettronica; i primi esemplari venivano programmati mediante connessioni elettriche e commutatori (ENIACENIAC, Mark I Mark I)
• Il nome di Von Neumann è legato invece ai primi calcolatori a programma memorizzato realizzati alla fine degli anni ‘40 (EDSACEDSAC, WhirlwindWhirlwind, IASIAS, UNIVACUNIVAC)
Per la prima volta, vige il principio di unitarietà di rappresentazione di unitarietà di rappresentazione di dati e istruzionidati e istruzioni, che vengono codificati, all’interno dell’elaboratore, in maniera indistinguibile
• La diffusione dei calcolatori a livello mondiale è avvenuta nei decenni ‘60 e ‘70
Cenni storici Cenni storici −− 8 8John Von Neumann (1903-1957) John Von Neumann (1903-1957)
2929Anno accademico 2010-2011Anno accademico 2010-2011
3030
EDSAC (1949)EDSAC (1949)ENIAC (1946)ENIAC (1946) Mark I (1948)Mark I (1948)
UNIVAC (1952)UNIVAC (1952)Whirlwind (1949)Whirlwind (1949) IAS (1952)IAS (1952)
Cenni storici Cenni storici −− 9 9
3030Anno accademico 2010-2011Anno accademico 2010-2011
3131
• Tuttavia, l’esplosione dell’informatica come fenomeno di massa è datata 1981, anno in cui l’IBM introdusse un tipo particolare di elaboratore: il Personal ComputerPersonal Computer (PC)
• La particolarità dei PC consisteva nell’essere “assemblati” con componenti facilmente reperibili sul mercato (e quindi a basso costo) Possibilità per qualsiasi casa produttrice di costruire “cloni”
• Attualmente i PC, o meglio il loro componente fondamentale il microprocessoremicroprocessore è utilizzato in tutti i settori applicativi (non solo per elaborare dati): Telefoni cellulari, ricevitori satellitari digitali, GPS Bancomat e carte di credito Lavatrici e forni a micro−onde Computer di bordo e ABS ...
Cenni storici Cenni storici −− 10 10
3131Anno accademico 2010-2011Anno accademico 2010-2011
3232
• L’esigenza di realizzare sistemi di elaborazione dotati di più processori operanti in parallelo è stata sentita fin dalla preistoria dell’informatica In una relazione dello scienziato, generale e uomo politico italiano
Luigi Menabrea, datata 1842, sulla macchina analitica di Babbage, si fa riferimento alla possibilità di usare più macchine dello stesso tipo in parallelo, per accelerare calcoli lunghi e ripetitivi
• Solo la riduzione dei costi dell’hardware ha consentito, verso la fine degli anni ‘60, l’effettiva costruzione dei primi supercalcolatori, come le macchine CDC6600CDC6600 e IlliacIlliac e, successivamente, il CrayCray e le macchine vettoriali
• A partire dagli anni ‘90, gli ulteriori sviluppi della microelettronica hanno permesso la realizzazione di calcolatori a parallelismo massiccio, caratterizzati dall’interconnessione di decine di migliaia di unità di elaborazione elementari: le reti neuralireti neurali, capaci di “simulare” il comportamento del cervello umano, sulla base degli studi di McCulloch e Pitts (1943)
Cenni storici Cenni storici −− 11 11
3232Anno accademico 2010-2011Anno accademico 2010-2011
3333
CDC 6600 (1963)CDC 6600 (1963)Illiac (1955)Illiac (1955)
PC IBM (1981)PC IBM (1981)
Cray 1 (1976)Cray 1 (1976) Cray XE6 (2010)Cray XE6 (2010)
Portatile e Palmare (oggi)Portatile e Palmare (oggi)
Cenni storici Cenni storici −− 12 12
4040Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
4242Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
5353Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
SCHEMA DELLA CPU
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
5555Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
ACCESS
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
In IR viene messa l’istruzione da eseguire (contenuta nellaRAM all’indirizzo specificato all’inteno del registro PC)
In P Cviene messo l’indirizzo della RAM dove è contenuta laprossima istruzione da eseguire.
5656Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
DECODE
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
La ALU riconosce l’istruzione come una delle istruzionimacchina I1, ..., Ik possibili
5757Anno accademico 2010-2011Anno accademico 2010-2011
ALU RAM
BUS
c
ALUALU
EXECUTE
....CI1
CI2
CIk
R0
Rn
RC
....IR
PC
La ALU attiva la corrispondente componente (ad esempioCI2 che esegue l’istruzione richiesta)
5959Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
6767Anno accademico 2010-2011Anno accademico 2010-2011
Indirizzi di memoriaIndirizzo ByteInd. parola Ind. decimale Indirizzo binario
0 0 000000 00
0 1 000000 01
0 2 000000 10
0 3 000000 11
1 4 000001 00
1 5 000001 01
1 6 000001 10
1 7 000001 11
2 8 000010 00
2 9 000010 01
2 10 000010 10
2 11 000010 11
7474Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS
8484Anno accademico 2010-2011Anno accademico 2010-2011
L'architettura di Von Neumann
CPU RAM Memoria secondaria I/O
BUS