Fondamenti di Informatica T [A-K] Prof. Jorge E. Fernandez A.A. 2013-2014 Fondamenti di Informatica T [A-K] 2013-2014 Programma del corso • Introduzione alla programmazione e architettura del sistema di calcolo • Utilizzo in modalità console del sistema operativo Windows (cenni di Linux). • Programmazione di alto livello: o Il linguaggio FORTRAN 90 o Cenni di C++ • Calcolo numerico Fondamenti di Informatica T [A-K] 2013-2014 Informazioni varie Ricevimento Prof. Fernandez martedì 14-17 presso Laboratorio di Montecuccolino via dei Colli 16 (Autobus 52) Tel: 051/2087718 Testi • S.J.Chapman. Fortran 90/95 – Guida alla programmazione 2/ed McGraw-Hill • Dispense del docente Testo integrativo (calcolo numerico) • G. Monegato. Fondamenti di Calcolo Numerico. Levrotto e Bella. Torino Visitate il sito: http://fimecc.ing.unibo.it Fondamenti di Informatica T [A-K] 2013-2014 Account per i laboratori http://ccib.ing.unibo.it/content/account Fondamenti di Informatica T [A-K] 2013-2014 Cos’è un calcolatore? Strumento usato per elaborare delle informazioni Caratteristiche: • Elettronico - circuiti elettronici • Binario – informazione codificata seguendo l’algebra binaria • Capace di immagazzinare programmi e dati • General-purpose – può trattare molteplici tipi di problemi Fondamenti di Informatica T [A-K] 2013-2014 Cenni storici sullo sviluppo del calcolatore automatico • 1944: Eniac – Univ. della Pensylvania (USA) 19000 valvole, peso 30 ton, potenza 200 KW • 1974: Altair MITS (Intel 8800) sistema operativo: Basic • 1976: Apple I; 1977: Apple II • 1981: PC originali IBM (chip Intel 8088) – Informazioni dettagliate sulla costruzione – Sistema operativo Microsoft – Contratto non esclusivo con Microsoft Vedi sito: www.computermuseum.it Fondamenti di Informatica T [A-K] 2013-2014 ENIAC: si programmava intervenendo manualmente su interruttori e connessioni dei cavi Fondamenti di Informatica T [A-K] 2013-2014 Altair MITS 8800 Apple I – MOS 6502 Fondamenti di Informatica T [A-K] 2013-2014 Alcuni tipi di calcolatore • Desktop PC • Notebook: calcolatore portatile • Ultrabook: ultraleggeri, memoria stato solido, batteria lunga durata • Convertibile: può essere usato anche come tablet • NetPC: calcolatore super-portatile, con (in genere) basse prestazione (ideato per navigare in internet) • Workstation: ha le caratteristiche di un PC ma è dotato di risorse di alte prestazioni • Mainframe: sistema di grandi dimensioni che mette a disposizione degli utenti la sua memoria centrale e le sue enormi memorie di massa. Gli utenti accedono al mainframe tramite terminali. • Macchine parallele • Supercomputer Fondamenti di Informatica T [A-K] 2013-2014 Componenti di un elaboratore elettronico • HARDWARE: (componenti fisici del sistema) insieme di tutti i circuiti delle macchine e dei componenti elettronici, elettrici e meccanici di un sistema elaboratore • SOFTWARE: insieme dei programmi operanti sulla macchina, sufficienti a coprire tutte le esigenze di elaborazione Fondamenti di Informatica T [A-K] 2013-2014 Architettura di riferimento dei calcolatori • Modello di Von Neumann • Funzioni che il calcolatore deve svolgere – Input – Output – Elaborazione – Conservazione delle informazioni – Controllo Ipotesi: – singolo processore – istruzioni sequenziali Fondamenti di Informatica T [A-K] 2013-2014 Architettura dal punto di vista delle funzioni “esterne” • CPU Elaborazione dei dati • Memoria dati Immagazzinamento dei • Dispositivi input/output Trasferimento dei dati Fondamenti di Informatica T [A-K] 2013-2014 Macchina base di Von Neumann I, D UNITA’ DI INPUT MEMORIA Dati UNITA’ DI OUTPUT D Istruzioni CPU UNITA’ ARITMETICO LOGICA Controllo UNITA’ DI CONTROLLO Controllo Caratteristica importante: separazione controllo-calcolo Fondamenti di Informatica T [A-K] 2013-2014 Clock il clock e' utilizzato come segnale di base per sincronizzare le attività all'interno del calcolatore Si tratta di un segnale periodico fisso caratterizzato da periodo (o ciclo) T e frequenza f (f = 1/T) Hertz e' l'unita' di misura della frequenza Ogni istruzione di CPU e' eseguita in un numero finito di cicli di clock. Il ciclo di clock e' una importante figura di merito di un calcolatore T Fondamenti di Informatica T [A-K] 2013-2014 Struttura del calcolatore BUS UNITA’ CENTRALE DI ELABORAZIONE (CPU) MEMORIA PRINCIPALE DISPOSITIVI DI INGRESSO/USCITA BUS = interfaccia standard di trasferimento delle informazioni Il bus è il mezzo fisico che permette a periferiche e componenti del sistema di dialogare tra loro Possiamo avere diversi tipi di bus (degli indirizzi, dei dati, di controllo) E’ stato necessario definire uno standard per i BUS Fondamenti di Informatica T [A-K] 2013-2014 L’interconnessione Bus CPU ALU MEMORIA CU BUS UNITA’ DI INPUT UNITA’ DI OUTPUT UNITA’ DI I/O CPU svincolata dagli altri dispositivi Ogni dispositivo aggiuntivo interagisce autonomamente con il resto del sistema mediante un controllore connesso al bus di sistema => si possono aggiungere nuovi dispositivi senza modificare quelli esistenti Fondamenti di Informatica T [A-K] 2013-2014 Alcune definizioni… Bit (binary digit): la più piccola unità di informazione in una macchina. “Scatola” che può contenere “1” o “0” Unità di misura della memoria: multipli del byte 1 byte = 8 bit Ogni byte possiede un indirizzo, cioè un numero che indica dove è memorizzato nella memoria principale Byte = la più piccola quantità di memoria accessibile in quanto possiede un proprio indirizzo word = sequenza di byte consecutivi nella memoria. Contiene tanti bit quanti un determinato calcolatore ne può elaborare interamente in un unico momento (32 o 64 bit) Fondamenti di Informatica T [A-K] 2013-2014 Unità di misura della memoria KB = kilo byte = 1024 byte 103 byte MB = mega byte = 1024*1024 byte = 1 048 576 byte 106 byte GB = giga byte = 1024 MB = 1 073 741 824 byte 109 byte TB = tera byte 1012 byte Fondamenti di Informatica T [A-K] 2013-2014 Memoria • Memoria principale (memoria centrale o primaria) Capacità: Mbyte (smartphone) o Gbyte (PC) ; velocità: 10-20 ns • Memoria secondaria o di massa (disco ottico, magnetico o stato solido (SSD) ) • Memorie di transito (registri, memoria cache) Cache: memoria molto veloce, spesso interna alla CPU, utilizzata per memorizzare istruzioni e dati durante l’esecuzione. Diversi livelli secondo la velocità. Fondamenti di Informatica T [A-K] 2013-2014 Gerarchia delle memorie nanosec word Registri Tempo di accesso Capacità Memoria cache Memoria principale Stato solido SSD Dischi magnetici Nastri Dischi ottici Gbyte sec Fondamenti di Informatica T [A-K] 2013-2014 Gerarchia delle memorie Livello Dimensioni Tempo di accesso Registri < 1 KB < 0.5 ns Cache < 2 MB ns RAM < 4 GB < 10 ns SSD < 512 GB < 100 micros Hard disk > 128 GB micros Dischi ottici 650 MB – 17 GB micros millis Nastri > 10 GB 100 millis Fondamenti di Informatica T [A-K] 2013-2014 Memoria di massa Hard disk Uno o più dischi magnetici che ruotano ad alta velocità e dotati di testine lettura/scrittura. Capacità in continua crescita Chiave USB Memoria flash (semiconduttore) di dimensioni contenute che comunica con il PC grazie allo standard di comunicazione USB (= Universal Serial Bus). Velocita' di trasferimento : 12 Mbit/s (USB 1.1); 480 Mbit/s (USB 2.0); 4.8 Gbit/s (USB 3.0) SSD (Solid State Drive) Memoria di massa a semiconduttore, utilizzata anche per sostituire i dischi magnetici. Dimensioni in continua crescita (≈ 512 GB) Floppy disk Supporto magnetico di tipo rimovibile. Capacità: 1,44 MB Fondamenti di Informatica T [A-K] 2013-2014 Memorie di Massa Dischi ottici a sola lettura CD ~ 650 MB DVD +R/-R ~ 4 GB (single layer), ~ 8 GB (double layer) BLU-RAY ~25-50 GB a lettura/scrittura CD RW DVD RW Fondamenti di Informatica T [A-K] 2013-2014 Hard disk • uno o più dischi (piatti) in alluminio o vetro, rivestiti di materiale ferromagnetico in rapida rotazione (10000-15000 giri al minuto) • su ogni lato e’ presente una testina (2 testine per disco) in grado di leggere/scrivere la superficie sottostante • ogni piatto e’ suddiviso in anelli concentrici tracce e in “fette” detti settori • si chiama cilindro l’insieme delle tracce alla stessa distanza dal centro ma su dischi diversi • si chiama formattazione l’operazione in cui si organizza la superficie del disco • capacita’ da 40GB a 2TB Struttura di un piatto: A) Traccia B) Settore C) Settore di una traccia D) Cluster, insieme di settori contigui Fondamenti di Informatica T [A-K] 2013-2014 Hard disk – dischi multipli • Per aumentare la capacita' del disco si possono usare piu' superfici sovrapposte Direzione di rotazione Movimento braccio di accesso • Ogni superficie ha una testina di lettura/scrittura • Le testine sono rigidamente vincolare allo stesso braccio Superficie 1 Testine di lettura/scrittura Superficie 0 • Cilindro: insieme delle tracce sulla stessa verticale Ogni blocco e' univocamente identificato dalla tripla: <Superficie, Cilindro, Settore> Fondamenti di Informatica T [A-K] 2013-2014 MEMORIA PRINCIPALE: RAM e ROM Supporto di memorizzazione alla CPU: tutte le informazioni da elaborare e tutti i risultati vengono sempre presi e/o inviati alla memoria principale RAM (Random Access Memory) ROM (Read Only Memory) • Accesso in lettura/scrittura ad accesso diretto (il tempo di accesso al singolo contenitore di memoria è indipendente dalla sua posizione) • Memorie a sola lettura, programmabili una sola volta • Il contenuto della memoria RAM è volatile: al cessare dell’alimentazione si perde l’informazione contenuta • Il contenuto della ROM è permanente (non si perde al cessare dell’alimentazione) • Contiene informazioni vitali per la fase di avvio del computer (Basic Input Output System = BIOS) Fondamenti di Informatica T [A-K] 2013-2014 RAM (Random Access Memory) Esempio: memoria di 16 Mbyte 0 1 2 3 4 5 6 0 1 0 1 1 0 1 1 word Indirizzo: stringa di K bit contenente il numero di ordine della singola unità di memoria Ogni cella di memoria ha un suo indirizzo che ne rappresenta la posizione. 16277213 16277214 16277215 Spazio di indirizzamento fisico: l’insieme dei 2k indirizzi (k = larghezza del BUS indirizzi di memoria) Fondamenti di Informatica T [A-K] 2013-2014 Memoria cache Memoria intermedia tra RAM e registri Capacita’ da 64 KB a 8 MB (piu’ alta e’ piu’ e’ costosa) Permette di memorizzare una parte del programma in fase di esecuzione senza dover accedere alla RAM Organizzata per livelli (L1, L2, L3, ..., Ln) dimensione aumenta da L1 a Ln Velocità diminuisce da L1 a Ln Puo’ essere interna o esterna al processore Fondamenti di Informatica T [A-K] 2013-2014 Gerarchia della cache Memoria principale Cache L3 Cache L2 Fondamenti di Informatica T [A-K] 2013-2014 L1 L1 CPU Memoria cache Quando la CPU ha bisogno di un dato cerca questo in L1: se qui e' presente lo carica in un registro (L1 cache hit), altrimenti (L1 cache miss) lo cerca in L2 … cache miss: penalità (in cicli di clock) nel caricare il dato nei registri (può causare uno stallo se il processore non ha niente altro da eseguire) Perche' conviene: perche' si sfruttano i principi di localita' spaziale e temporale Fondamenti di Informatica T [A-K] 2013-2014 CPU (CENTRAL PROCESSING UNIT ovvero PROCESSORE) Nucleo di un calcolatore preposto alla elaborazione dei dati Unità aritmetico-logica (ALU) + Unità di controllo (CU) + alcuni registri + cache memory Clock = orologio interno che regola tutte le operazioni generando impulsi regolari ad un certa frequenza (-> coordinamento tra le varie attività della CPU) CPU cycle time: tempo richiesto dalla più breve microperazione della CPU CPU clock rate (frequenza della CPU): reciproco del cycle time [MHz], rappresenta una figura di merito della CPU Fondamenti di Informatica T [A-K] 2013-2014 Componenti CPU MEMORIA PRINCIPALE BUS DATI MAR MDR registri BUS CONTROLLO BUS INDIRIZZI ALU PC IR Fondamenti di Informatica T [A-K] 2013-2014 CU Componenti CPU: Registri Piccole unita’ di memoria (qualche byte), molto veloci, che memorizzano i dati e le istruzioni che sono in fase di elaborazione Sono presenti in numero limitato (qualche decina) Si dividono in speciali e generali Registri speciali: Program Counter (PC) Instruction Register (IC) Registro indirizzi di memoria (MAR) Registro dati di memoria (MDR) Fondamenti di Informatica T [A-K] 2013-2014 Componenti CPU: Registri speciali • Program Counter (PC): contiene l’indirizzo della prossima istruzione da eseguire • Instruction Register (IC): contiene l’istruzione in esecuzione; la CU legge tale istruzione e la esegue • Registro indirizzi di memoria (MAR): contiene l’indirizzo della cella di memoria da cui andare a leggere o scrivere • Registro dati di memoria (MDR): contiene il dato da leggere o da scrivere in memoria Fondamenti di Informatica T [A-K] 2013-2014 Registri speciali: Program counter (PC) contiene l’indirizzo della prossima istruzione da eseguire all’inizio dell’esecuzione di un programma viene caricato con l’indirizzo della prima istruzione di quel programma quando l'istruzione viene eseguita, il PC viene incrementato per contenere l’indirizzo dell'istruzione successiva Fondamenti di Informatica T [A-K] 2013-2014 Registri generali in numero limitato (8, 16, 24) sono usati come memorie temporanee per contenere gli operandi delle istruzioni e i risultati parziali durante l’esecuzione delle istruzioni Fondamenti di Informatica T [A-K] 2013-2014 Fetch-decode-execute CICLO fetch-decode-execute Si accede all'istruzione che corrisponde all'indirizzo contenuto nel PC L’istruzione è copiata nel registro delle istruzioni (Current Instruction Register – IR) Incremento del PC (contiene l’indirizzo dell’istruzione successiva a quella in esecuzione) Esecuzione dell’istruzione caricata Fondamenti di Informatica T [A-K] 2013-2014 UNITA' ARITMETICO LOGICA (ALU) Esegue calcoli e operazioni logiche con i dati presenti nella memoria preleva gli operandi e deposita il risultato delle operazioni (da/in i registri generali) A volte oltre alla ALU possiamo avere anche un co-processore matematico Fondamenti di Informatica T [A-K] 2013-2014 Cosa fa la UC? Esempio: addizione fra due numeri 1.Preleva la prossima istruzione (usando l'indirizzo presente nel) PC e la copia nel IR (-> fetch) 2.Il PC viene incrementato all'istruzione successiva X=A+B 3.Decodifica l’istruzione: somma (-> decode) 4.Determina dove si trovano i due operandi, li preleva e li trasferisce nei registri della ALU 5.Segnala all’ALU di eseguire la somma e di porre il risultato in un registro 6.Trasferisce il risultato alla memoria centrale Fondamenti di Informatica T [A-K] 2013-2014 execute Limite alla velocità dei componenenti GHz) Fondamenti di Informatica T [A-K] 2013-2014 Legge di Moore Fondamenti di Informatica T [A-K] 2013-2014 Calcolo Parallelo v 1 Number of processing elements Fondamenti di Informatica T [A-K] 2013-2014 Scheda madre (motherboard) E' una scheda elettronica (circuito stampato) che contiene i componenti del calcolatore Contiene gli alloggiamenti (socket) per il processore, per i banchi di memoria, e quelli per le schede di espansione (slot) Provvede alle linee di collegamento da/per la CPU (bus) Fondamenti di Informatica T [A-K] 2013-2014 Unità di input/output Unità di input Unità di output • • • • • • • • • • • • Tastiera Mouse Scanner Trackball Unità audio/video Webcam Touch screen Video Stampante Plotter Altoparlanti Dispositivi controllati (video proiettore, TV, ecc.) Fondamenti di Informatica T [A-K] 2013-2014 Scanner Plotter Trackball Fondamenti di Informatica T [A-K] 2013-2014 Tastiera Principale strumento di input Esistono vari tipi di layout QWERTY (Italia, UK, USA, etc.) QWERTZ (Germania) AZERTY (Francia, Belgio) Fondamenti di Informatica T [A-K] 2013-2014 Monitor / Video Principale unita' di output La dimensione e' misurata in pollici (lunghezza della diagonale). Il rapporto tra i lati può essere 4:3 o 16:9 (panoramico) Consiste di una matrice rettangolare di pixel (picture element). Ogni pixel del monitor può assumere un colore tra quelli disponibili. Il pixel occupa una zona quadrata, il cui lato varia da monitor a monitor. Il numero di pixel di base e il numero di pixel in altezza sono le dimensioni in pixel del monitor (per esempio 1024 x 768 pixel). Dimensioni comuni di questa matrice rettangolare di pixel sono le seguenti 640 pixel di base per 480 di altezza (standard VGA); 800 pixel di base per 600 di altezza; 1024 pixel di base per 768 di altezza (standard XGA) 1280 pixel di base per 1024 di altezza (standard SuperVGA). 1920 pixel di base per 1080 di altezza (full HD) La risoluzione del monitor è il numero di pixel per unità di misura (pollice o centimetro): pixel per pollice (ppi, pixel per inch); pixel per centimetro (ppc). Fondamenti di Informatica T [A-K] 2013-2014 Stampanti Principali tipologie a getto d'inchiostro laser Definizioni dpi (dots per inch): numero di punti stampati in un pollice lineare (2.54 cm) indica la qualità di stampa ppm (pagine per minuto): numero di pagine stampate in un minuto indica la velocità di stampa Fondamenti di Informatica T [A-K] 2013-2014